Skip to content

Commit a1d1eb2

Browse files
committed
Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI updates from James Bottomley: "Updates to the usual drivers (ufs, smartpqi, NCR5380, mac_scsi, lpfc, mpi3mr). There are no user visible core changes and a whole series of minor updates and fixes. The largest core change is probably the simplification of the workqueue allocation path" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (86 commits) scsi: smartpqi: update driver version to 2.1.30-031 scsi: smartpqi: fix volume size updates scsi: smartpqi: fix rare system hang during LUN reset scsi: smartpqi: add new controller PCI IDs scsi: smartpqi: add counter for parity write stream requests scsi: smartpqi: correct stream detection scsi: smartpqi: Add fw log to kdump scsi: bnx2fc: Remove some unused fields in struct bnx2fc_rport scsi: qla2xxx: Remove the unused 'del_list_entry' field in struct fc_port scsi: ufs: core: Remove ufshcd_urgent_bkops() scsi: core: Remove obsoleted declaration for scsi_driverbyte_string() scsi: bnx2i: Remove unused declarations scsi: core: Simplify an alloc_workqueue() invocation scsi: ufs: Simplify alloc*_workqueue() invocation scsi: stex: Simplify an alloc_ordered_workqueue() invocation scsi: scsi_transport_fc: Simplify alloc_workqueue() invocations scsi: snic: Simplify alloc_workqueue() invocations scsi: qedi: Simplify an alloc_workqueue() invocation scsi: qedf: Simplify alloc_workqueue() invocations scsi: myrs: Simplify an alloc_ordered_workqueue() invocation ...
2 parents 726e2d0 + cff06a7 commit a1d1eb2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+1098
-762
lines changed

Documentation/ABI/testing/sysfs-driver-ufs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1532,3 +1532,30 @@ Contact: Bean Huo <[email protected]>
15321532
Description:
15331533
rtc_update_ms indicates how often the host should synchronize or update the
15341534
UFS RTC. If set to 0, this will disable UFS RTC periodic update.
1535+
1536+
What: /sys/devices/platform/.../ufshci_capabilities/version
1537+
Date: August 2024
1538+
Contact: Avri Altman <[email protected]>
1539+
Description:
1540+
Host Capabilities register group: UFS version register.
1541+
Symbol - VER. This file shows the UFSHCD version.
1542+
Example: Version 3.12 would be represented as 0000_0312h.
1543+
The file is read only.
1544+
1545+
What: /sys/devices/platform/.../ufshci_capabilities/product_id
1546+
Date: August 2024
1547+
Contact: Avri Altman <[email protected]>
1548+
Description:
1549+
Host Capabilities register group: product ID register.
1550+
Symbol - HCPID. This file shows the UFSHCD product id.
1551+
The content of this register is vendor specific.
1552+
The file is read only.
1553+
1554+
What: /sys/devices/platform/.../ufshci_capabilities/man_id
1555+
Date: August 2024
1556+
Contact: Avri Altman <[email protected]>
1557+
Description:
1558+
Host Capabilities register group: manufacturer ID register.
1559+
Symbol - HCMID. This file shows the UFSHCD manufacturer id.
1560+
The Manufacturer ID is defined by JEDEC in JEDEC-JEP106.
1561+
The file is read only.

block/blk-core.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -799,6 +799,7 @@ void submit_bio_noacct(struct bio *bio)
799799

800800
switch (bio_op(bio)) {
801801
case REQ_OP_READ:
802+
break;
802803
case REQ_OP_WRITE:
803804
if (bio->bi_opf & REQ_ATOMIC) {
804805
status = blk_validate_atomic_write_op_size(q, bio);

drivers/message/fusion/lsi/mpi_cnfg.h

Lines changed: 6 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,14 +1018,6 @@ typedef struct _CONFIG_PAGE_IOC_2_RAID_VOL
10181018

10191019
#define MPI_IOCPAGE2_FLAG_VOLUME_INACTIVE (0x08)
10201020

1021-
/*
1022-
* Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1023-
* one and check Header.PageLength at runtime.
1024-
*/
1025-
#ifndef MPI_IOC_PAGE_2_RAID_VOLUME_MAX
1026-
#define MPI_IOC_PAGE_2_RAID_VOLUME_MAX (1)
1027-
#endif
1028-
10291021
typedef struct _CONFIG_PAGE_IOC_2
10301022
{
10311023
CONFIG_PAGE_HEADER Header; /* 00h */
@@ -1034,7 +1026,7 @@ typedef struct _CONFIG_PAGE_IOC_2
10341026
U8 MaxVolumes; /* 09h */
10351027
U8 NumActivePhysDisks; /* 0Ah */
10361028
U8 MaxPhysDisks; /* 0Bh */
1037-
CONFIG_PAGE_IOC_2_RAID_VOL RaidVolume[MPI_IOC_PAGE_2_RAID_VOLUME_MAX];/* 0Ch */
1029+
CONFIG_PAGE_IOC_2_RAID_VOL RaidVolume[] __counted_by(NumActiveVolumes); /* 0Ch */
10381030
} CONFIG_PAGE_IOC_2, MPI_POINTER PTR_CONFIG_PAGE_IOC_2,
10391031
IOCPage2_t, MPI_POINTER pIOCPage2_t;
10401032

@@ -1064,21 +1056,13 @@ typedef struct _IOC_3_PHYS_DISK
10641056
} IOC_3_PHYS_DISK, MPI_POINTER PTR_IOC_3_PHYS_DISK,
10651057
Ioc3PhysDisk_t, MPI_POINTER pIoc3PhysDisk_t;
10661058

1067-
/*
1068-
* Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1069-
* one and check Header.PageLength at runtime.
1070-
*/
1071-
#ifndef MPI_IOC_PAGE_3_PHYSDISK_MAX
1072-
#define MPI_IOC_PAGE_3_PHYSDISK_MAX (1)
1073-
#endif
1074-
10751059
typedef struct _CONFIG_PAGE_IOC_3
10761060
{
10771061
CONFIG_PAGE_HEADER Header; /* 00h */
10781062
U8 NumPhysDisks; /* 04h */
10791063
U8 Reserved1; /* 05h */
10801064
U16 Reserved2; /* 06h */
1081-
IOC_3_PHYS_DISK PhysDisk[MPI_IOC_PAGE_3_PHYSDISK_MAX]; /* 08h */
1065+
IOC_3_PHYS_DISK PhysDisk[] __counted_by(NumPhysDisks); /* 08h */
10821066
} CONFIG_PAGE_IOC_3, MPI_POINTER PTR_CONFIG_PAGE_IOC_3,
10831067
IOCPage3_t, MPI_POINTER pIOCPage3_t;
10841068

@@ -1093,21 +1077,13 @@ typedef struct _IOC_4_SEP
10931077
} IOC_4_SEP, MPI_POINTER PTR_IOC_4_SEP,
10941078
Ioc4Sep_t, MPI_POINTER pIoc4Sep_t;
10951079

1096-
/*
1097-
* Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1098-
* one and check Header.PageLength at runtime.
1099-
*/
1100-
#ifndef MPI_IOC_PAGE_4_SEP_MAX
1101-
#define MPI_IOC_PAGE_4_SEP_MAX (1)
1102-
#endif
1103-
11041080
typedef struct _CONFIG_PAGE_IOC_4
11051081
{
11061082
CONFIG_PAGE_HEADER Header; /* 00h */
11071083
U8 ActiveSEP; /* 04h */
11081084
U8 MaxSEP; /* 05h */
11091085
U16 Reserved1; /* 06h */
1110-
IOC_4_SEP SEP[MPI_IOC_PAGE_4_SEP_MAX]; /* 08h */
1086+
IOC_4_SEP SEP[] __counted_by(ActiveSEP); /* 08h */
11111087
} CONFIG_PAGE_IOC_4, MPI_POINTER PTR_CONFIG_PAGE_IOC_4,
11121088
IOCPage4_t, MPI_POINTER pIOCPage4_t;
11131089

@@ -2295,14 +2271,6 @@ typedef struct _RAID_VOL0_SETTINGS
22952271
#define MPI_RAID_HOT_SPARE_POOL_6 (0x40)
22962272
#define MPI_RAID_HOT_SPARE_POOL_7 (0x80)
22972273

2298-
/*
2299-
* Host code (drivers, BIOS, utilities, etc.) should leave this define set to
2300-
* one and check Header.PageLength at runtime.
2301-
*/
2302-
#ifndef MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX
2303-
#define MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX (1)
2304-
#endif
2305-
23062274
typedef struct _CONFIG_PAGE_RAID_VOL_0
23072275
{
23082276
CONFIG_PAGE_HEADER Header; /* 00h */
@@ -2321,7 +2289,7 @@ typedef struct _CONFIG_PAGE_RAID_VOL_0
23212289
U8 DataScrubRate; /* 25h */
23222290
U8 ResyncRate; /* 26h */
23232291
U8 InactiveStatus; /* 27h */
2324-
RAID_VOL0_PHYS_DISK PhysDisk[MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX];/* 28h */
2292+
RAID_VOL0_PHYS_DISK PhysDisk[] __counted_by(NumPhysDisks); /* 28h */
23252293
} CONFIG_PAGE_RAID_VOL_0, MPI_POINTER PTR_CONFIG_PAGE_RAID_VOL_0,
23262294
RaidVolumePage0_t, MPI_POINTER pRaidVolumePage0_t;
23272295

@@ -2455,22 +2423,14 @@ typedef struct _RAID_PHYS_DISK1_PATH
24552423
#define MPI_RAID_PHYSDISK1_FLAG_INVALID (0x0001)
24562424

24572425

2458-
/*
2459-
* Host code (drivers, BIOS, utilities, etc.) should leave this define set to
2460-
* one and check Header.PageLength or NumPhysDiskPaths at runtime.
2461-
*/
2462-
#ifndef MPI_RAID_PHYS_DISK1_PATH_MAX
2463-
#define MPI_RAID_PHYS_DISK1_PATH_MAX (1)
2464-
#endif
2465-
24662426
typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_1
24672427
{
24682428
CONFIG_PAGE_HEADER Header; /* 00h */
24692429
U8 NumPhysDiskPaths; /* 04h */
24702430
U8 PhysDiskNum; /* 05h */
24712431
U16 Reserved2; /* 06h */
24722432
U32 Reserved1; /* 08h */
2473-
RAID_PHYS_DISK1_PATH Path[MPI_RAID_PHYS_DISK1_PATH_MAX];/* 0Ch */
2433+
RAID_PHYS_DISK1_PATH Path[] __counted_by(NumPhysDiskPaths);/* 0Ch */
24742434
} CONFIG_PAGE_RAID_PHYS_DISK_1, MPI_POINTER PTR_CONFIG_PAGE_RAID_PHYS_DISK_1,
24752435
RaidPhysDiskPage1_t, MPI_POINTER pRaidPhysDiskPage1_t;
24762436

@@ -2555,14 +2515,6 @@ typedef struct _MPI_SAS_IO_UNIT0_PHY_DATA
25552515
} MPI_SAS_IO_UNIT0_PHY_DATA, MPI_POINTER PTR_MPI_SAS_IO_UNIT0_PHY_DATA,
25562516
SasIOUnit0PhyData, MPI_POINTER pSasIOUnit0PhyData;
25572517

2558-
/*
2559-
* Host code (drivers, BIOS, utilities, etc.) should leave this define set to
2560-
* one and check Header.PageLength at runtime.
2561-
*/
2562-
#ifndef MPI_SAS_IOUNIT0_PHY_MAX
2563-
#define MPI_SAS_IOUNIT0_PHY_MAX (1)
2564-
#endif
2565-
25662518
typedef struct _CONFIG_PAGE_SAS_IO_UNIT_0
25672519
{
25682520
CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */
@@ -2571,7 +2523,7 @@ typedef struct _CONFIG_PAGE_SAS_IO_UNIT_0
25712523
U8 NumPhys; /* 0Ch */
25722524
U8 Reserved2; /* 0Dh */
25732525
U16 Reserved3; /* 0Eh */
2574-
MPI_SAS_IO_UNIT0_PHY_DATA PhyData[MPI_SAS_IOUNIT0_PHY_MAX]; /* 10h */
2526+
MPI_SAS_IO_UNIT0_PHY_DATA PhyData[] __counted_by(NumPhys); /* 10h */
25752527
} CONFIG_PAGE_SAS_IO_UNIT_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_0,
25762528
SasIOUnitPage0_t, MPI_POINTER pSasIOUnitPage0_t;
25772529

drivers/message/fusion/mptbase.c

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1856,10 +1856,8 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
18561856
/* Initialize workqueue */
18571857
INIT_DELAYED_WORK(&ioc->fault_reset_work, mpt_fault_reset_work);
18581858

1859-
snprintf(ioc->reset_work_q_name, MPT_KOBJ_NAME_LEN,
1860-
"mpt_poll_%d", ioc->id);
1861-
ioc->reset_work_q = alloc_workqueue(ioc->reset_work_q_name,
1862-
WQ_MEM_RECLAIM, 0);
1859+
ioc->reset_work_q =
1860+
alloc_workqueue("mpt_poll_%d", WQ_MEM_RECLAIM, 0, ioc->id);
18631861
if (!ioc->reset_work_q) {
18641862
printk(MYIOC_s_ERR_FMT "Insufficient memory to add adapter!\n",
18651863
ioc->name);
@@ -1986,9 +1984,7 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
19861984

19871985
INIT_LIST_HEAD(&ioc->fw_event_list);
19881986
spin_lock_init(&ioc->fw_event_lock);
1989-
snprintf(ioc->fw_event_q_name, MPT_KOBJ_NAME_LEN, "mpt/%d", ioc->id);
1990-
ioc->fw_event_q = alloc_workqueue(ioc->fw_event_q_name,
1991-
WQ_MEM_RECLAIM, 0);
1987+
ioc->fw_event_q = alloc_workqueue("mpt/%d", WQ_MEM_RECLAIM, 0, ioc->id);
19921988
if (!ioc->fw_event_q) {
19931989
printk(MYIOC_s_ERR_FMT "Insufficient memory to add adapter!\n",
19941990
ioc->name);

drivers/message/fusion/mptbase.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -729,7 +729,6 @@ typedef struct _MPT_ADAPTER
729729
struct list_head fw_event_list;
730730
spinlock_t fw_event_lock;
731731
u8 fw_events_off; /* if '1', then ignore events */
732-
char fw_event_q_name[MPT_KOBJ_NAME_LEN];
733732

734733
struct mutex sas_discovery_mutex;
735734
u8 sas_discovery_runtime;
@@ -764,7 +763,6 @@ typedef struct _MPT_ADAPTER
764763
u8 fc_link_speed[2];
765764
spinlock_t fc_rescan_work_lock;
766765
struct work_struct fc_rescan_work;
767-
char fc_rescan_work_q_name[MPT_KOBJ_NAME_LEN];
768766
struct workqueue_struct *fc_rescan_work_q;
769767

770768
/* driver forced bus resets count */
@@ -778,7 +776,6 @@ typedef struct _MPT_ADAPTER
778776
spinlock_t scsi_lookup_lock;
779777
u64 dma_mask;
780778
u32 broadcast_aen_busy;
781-
char reset_work_q_name[MPT_KOBJ_NAME_LEN];
782779
struct workqueue_struct *reset_work_q;
783780
struct delayed_work fault_reset_work;
784781

drivers/message/fusion/mptfc.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1349,11 +1349,8 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id)
13491349

13501350
/* initialize workqueue */
13511351

1352-
snprintf(ioc->fc_rescan_work_q_name, sizeof(ioc->fc_rescan_work_q_name),
1353-
"mptfc_wq_%d", sh->host_no);
1354-
ioc->fc_rescan_work_q =
1355-
alloc_ordered_workqueue(ioc->fc_rescan_work_q_name,
1356-
WQ_MEM_RECLAIM);
1352+
ioc->fc_rescan_work_q = alloc_ordered_workqueue(
1353+
"mptfc_wq_%d", WQ_MEM_RECLAIM, sh->host_no);
13571354
if (!ioc->fc_rescan_work_q) {
13581355
error = -ENOMEM;
13591356
goto out_mptfc_host;

0 commit comments

Comments
 (0)