diff options
Diffstat (limited to 'drivers/message')
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_cnfg.h | 60 | ||||
| -rw-r--r-- | drivers/message/fusion/mptbase.c | 10 | ||||
| -rw-r--r-- | drivers/message/fusion/mptbase.h | 3 | ||||
| -rw-r--r-- | drivers/message/fusion/mptfc.c | 7 | 
4 files changed, 11 insertions, 69 deletions
| diff --git a/drivers/message/fusion/lsi/mpi_cnfg.h b/drivers/message/fusion/lsi/mpi_cnfg.h index 3770cb1cff7d..1167a16d8fb4 100644 --- a/drivers/message/fusion/lsi/mpi_cnfg.h +++ b/drivers/message/fusion/lsi/mpi_cnfg.h @@ -1018,14 +1018,6 @@ typedef struct _CONFIG_PAGE_IOC_2_RAID_VOL  #define MPI_IOCPAGE2_FLAG_VOLUME_INACTIVE           (0x08) -/* - * Host code (drivers, BIOS, utilities, etc.) should leave this define set to - * one and check Header.PageLength at runtime. - */ -#ifndef MPI_IOC_PAGE_2_RAID_VOLUME_MAX -#define MPI_IOC_PAGE_2_RAID_VOLUME_MAX      (1) -#endif -  typedef struct _CONFIG_PAGE_IOC_2  {      CONFIG_PAGE_HEADER          Header;                              /* 00h */ @@ -1034,7 +1026,7 @@ typedef struct _CONFIG_PAGE_IOC_2      U8                          MaxVolumes;                          /* 09h */      U8                          NumActivePhysDisks;                  /* 0Ah */      U8                          MaxPhysDisks;                        /* 0Bh */ -    CONFIG_PAGE_IOC_2_RAID_VOL  RaidVolume[MPI_IOC_PAGE_2_RAID_VOLUME_MAX];/* 0Ch */ +    CONFIG_PAGE_IOC_2_RAID_VOL  RaidVolume[] __counted_by(NumActiveVolumes); /* 0Ch */  } CONFIG_PAGE_IOC_2, MPI_POINTER PTR_CONFIG_PAGE_IOC_2,    IOCPage2_t, MPI_POINTER pIOCPage2_t; @@ -1064,21 +1056,13 @@ typedef struct _IOC_3_PHYS_DISK  } IOC_3_PHYS_DISK, MPI_POINTER PTR_IOC_3_PHYS_DISK,    Ioc3PhysDisk_t, MPI_POINTER pIoc3PhysDisk_t; -/* - * Host code (drivers, BIOS, utilities, etc.) should leave this define set to - * one and check Header.PageLength at runtime. - */ -#ifndef MPI_IOC_PAGE_3_PHYSDISK_MAX -#define MPI_IOC_PAGE_3_PHYSDISK_MAX         (1) -#endif -  typedef struct _CONFIG_PAGE_IOC_3  {      CONFIG_PAGE_HEADER          Header;                                /* 00h */      U8                          NumPhysDisks;                          /* 04h */      U8                          Reserved1;                             /* 05h */      U16                         Reserved2;                             /* 06h */ -    IOC_3_PHYS_DISK             PhysDisk[MPI_IOC_PAGE_3_PHYSDISK_MAX]; /* 08h */ +    IOC_3_PHYS_DISK             PhysDisk[] __counted_by(NumPhysDisks); /* 08h */  } CONFIG_PAGE_IOC_3, MPI_POINTER PTR_CONFIG_PAGE_IOC_3,    IOCPage3_t, MPI_POINTER pIOCPage3_t; @@ -1093,21 +1077,13 @@ typedef struct _IOC_4_SEP  } IOC_4_SEP, MPI_POINTER PTR_IOC_4_SEP,    Ioc4Sep_t, MPI_POINTER pIoc4Sep_t; -/* - * Host code (drivers, BIOS, utilities, etc.) should leave this define set to - * one and check Header.PageLength at runtime. - */ -#ifndef MPI_IOC_PAGE_4_SEP_MAX -#define MPI_IOC_PAGE_4_SEP_MAX              (1) -#endif -  typedef struct _CONFIG_PAGE_IOC_4  {      CONFIG_PAGE_HEADER          Header;                         /* 00h */      U8                          ActiveSEP;                      /* 04h */      U8                          MaxSEP;                         /* 05h */      U16                         Reserved1;                      /* 06h */ -    IOC_4_SEP                   SEP[MPI_IOC_PAGE_4_SEP_MAX];    /* 08h */ +    IOC_4_SEP                   SEP[] __counted_by(ActiveSEP);  /* 08h */  } CONFIG_PAGE_IOC_4, MPI_POINTER PTR_CONFIG_PAGE_IOC_4,    IOCPage4_t, MPI_POINTER pIOCPage4_t; @@ -2295,14 +2271,6 @@ typedef struct _RAID_VOL0_SETTINGS  #define MPI_RAID_HOT_SPARE_POOL_6                       (0x40)  #define MPI_RAID_HOT_SPARE_POOL_7                       (0x80) -/* - * Host code (drivers, BIOS, utilities, etc.) should leave this define set to - * one and check Header.PageLength at runtime. - */ -#ifndef MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX -#define MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX        (1) -#endif -  typedef struct _CONFIG_PAGE_RAID_VOL_0  {      CONFIG_PAGE_HEADER      Header;         /* 00h */ @@ -2321,7 +2289,7 @@ typedef struct _CONFIG_PAGE_RAID_VOL_0      U8                      DataScrubRate;  /* 25h */      U8                      ResyncRate;     /* 26h */      U8                      InactiveStatus; /* 27h */ -    RAID_VOL0_PHYS_DISK     PhysDisk[MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX];/* 28h */ +    RAID_VOL0_PHYS_DISK     PhysDisk[] __counted_by(NumPhysDisks); /* 28h */  } CONFIG_PAGE_RAID_VOL_0, MPI_POINTER PTR_CONFIG_PAGE_RAID_VOL_0,    RaidVolumePage0_t, MPI_POINTER pRaidVolumePage0_t; @@ -2455,14 +2423,6 @@ typedef struct _RAID_PHYS_DISK1_PATH  #define MPI_RAID_PHYSDISK1_FLAG_INVALID         (0x0001) -/* - * Host code (drivers, BIOS, utilities, etc.) should leave this define set to - * one and check Header.PageLength or NumPhysDiskPaths at runtime. - */ -#ifndef MPI_RAID_PHYS_DISK1_PATH_MAX -#define MPI_RAID_PHYS_DISK1_PATH_MAX    (1) -#endif -  typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_1  {      CONFIG_PAGE_HEADER              Header;             /* 00h */ @@ -2470,7 +2430,7 @@ typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_1      U8                              PhysDiskNum;        /* 05h */      U16                             Reserved2;          /* 06h */      U32                             Reserved1;          /* 08h */ -    RAID_PHYS_DISK1_PATH            Path[MPI_RAID_PHYS_DISK1_PATH_MAX];/* 0Ch */ +    RAID_PHYS_DISK1_PATH            Path[] __counted_by(NumPhysDiskPaths);/* 0Ch */  } CONFIG_PAGE_RAID_PHYS_DISK_1, MPI_POINTER PTR_CONFIG_PAGE_RAID_PHYS_DISK_1,    RaidPhysDiskPage1_t, MPI_POINTER pRaidPhysDiskPage1_t; @@ -2555,14 +2515,6 @@ typedef struct _MPI_SAS_IO_UNIT0_PHY_DATA  } MPI_SAS_IO_UNIT0_PHY_DATA, MPI_POINTER PTR_MPI_SAS_IO_UNIT0_PHY_DATA,    SasIOUnit0PhyData, MPI_POINTER pSasIOUnit0PhyData; -/* - * Host code (drivers, BIOS, utilities, etc.) should leave this define set to - * one and check Header.PageLength at runtime. - */ -#ifndef MPI_SAS_IOUNIT0_PHY_MAX -#define MPI_SAS_IOUNIT0_PHY_MAX         (1) -#endif -  typedef struct _CONFIG_PAGE_SAS_IO_UNIT_0  {      CONFIG_EXTENDED_PAGE_HEADER     Header;                             /* 00h */ @@ -2571,7 +2523,7 @@ typedef struct _CONFIG_PAGE_SAS_IO_UNIT_0      U8                              NumPhys;                            /* 0Ch */      U8                              Reserved2;                          /* 0Dh */      U16                             Reserved3;                          /* 0Eh */ -    MPI_SAS_IO_UNIT0_PHY_DATA       PhyData[MPI_SAS_IOUNIT0_PHY_MAX];   /* 10h */ +    MPI_SAS_IO_UNIT0_PHY_DATA       PhyData[] __counted_by(NumPhys);    /* 10h */  } CONFIG_PAGE_SAS_IO_UNIT_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_0,    SasIOUnitPage0_t, MPI_POINTER pSasIOUnitPage0_t; diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index 4bf669c55649..738bc4e60a18 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c @@ -1856,10 +1856,8 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)  	/* Initialize workqueue */  	INIT_DELAYED_WORK(&ioc->fault_reset_work, mpt_fault_reset_work); -	snprintf(ioc->reset_work_q_name, MPT_KOBJ_NAME_LEN, -		 "mpt_poll_%d", ioc->id); -	ioc->reset_work_q = alloc_workqueue(ioc->reset_work_q_name, -					    WQ_MEM_RECLAIM, 0); +	ioc->reset_work_q = +		alloc_workqueue("mpt_poll_%d", WQ_MEM_RECLAIM, 0, ioc->id);  	if (!ioc->reset_work_q) {  		printk(MYIOC_s_ERR_FMT "Insufficient memory to add adapter!\n",  		    ioc->name); @@ -1986,9 +1984,7 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)  	INIT_LIST_HEAD(&ioc->fw_event_list);  	spin_lock_init(&ioc->fw_event_lock); -	snprintf(ioc->fw_event_q_name, MPT_KOBJ_NAME_LEN, "mpt/%d", ioc->id); -	ioc->fw_event_q = alloc_workqueue(ioc->fw_event_q_name, -					  WQ_MEM_RECLAIM, 0); +	ioc->fw_event_q = alloc_workqueue("mpt/%d", WQ_MEM_RECLAIM, 0, ioc->id);  	if (!ioc->fw_event_q) {  		printk(MYIOC_s_ERR_FMT "Insufficient memory to add adapter!\n",  		    ioc->name); diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h index 8031173c3655..b406fd676da0 100644 --- a/drivers/message/fusion/mptbase.h +++ b/drivers/message/fusion/mptbase.h @@ -729,7 +729,6 @@ typedef struct _MPT_ADAPTER  	struct list_head	 fw_event_list;  	spinlock_t		 fw_event_lock;  	u8			 fw_events_off; /* if '1', then ignore events */ -	char 			 fw_event_q_name[MPT_KOBJ_NAME_LEN];  	struct mutex		 sas_discovery_mutex;  	u8			 sas_discovery_runtime; @@ -764,7 +763,6 @@ typedef struct _MPT_ADAPTER  	u8			 fc_link_speed[2];  	spinlock_t		 fc_rescan_work_lock;  	struct work_struct	 fc_rescan_work; -	char			 fc_rescan_work_q_name[MPT_KOBJ_NAME_LEN];  	struct workqueue_struct *fc_rescan_work_q;  	/* driver forced bus resets count */ @@ -778,7 +776,6 @@ typedef struct _MPT_ADAPTER  	spinlock_t		  scsi_lookup_lock;  	u64			dma_mask;  	u32			  broadcast_aen_busy; -	char			 reset_work_q_name[MPT_KOBJ_NAME_LEN];  	struct workqueue_struct *reset_work_q;  	struct delayed_work	 fault_reset_work; diff --git a/drivers/message/fusion/mptfc.c b/drivers/message/fusion/mptfc.c index a3c17c4fe69c..91242f26defb 100644 --- a/drivers/message/fusion/mptfc.c +++ b/drivers/message/fusion/mptfc.c @@ -1349,11 +1349,8 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id)  	/* initialize workqueue */ -	snprintf(ioc->fc_rescan_work_q_name, sizeof(ioc->fc_rescan_work_q_name), -		 "mptfc_wq_%d", sh->host_no); -	ioc->fc_rescan_work_q = -		alloc_ordered_workqueue(ioc->fc_rescan_work_q_name, -					WQ_MEM_RECLAIM); +	ioc->fc_rescan_work_q = alloc_ordered_workqueue( +		"mptfc_wq_%d", WQ_MEM_RECLAIM, sh->host_no);  	if (!ioc->fc_rescan_work_q) {  		error = -ENOMEM;  		goto out_mptfc_host; | 
