Skip to content

Commit d4a379a

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: "Usual driver updates (qla2xxx, mpi3mr, mpt3sas, ufs) plus assorted cleanups and fixes. The biggest core change is the massive code motion in the sd driver to remove forward declarations and the most significant change is to enumify the queuecommand return" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (78 commits) scsi: csiostor: Fix dereference of null pointer rn scsi: buslogic: Reduce stack usage scsi: ufs: host: mediatek: Require CONFIG_PM scsi: ufs: mediatek: Fix page faults in ufs_mtk_clk_scale() trace event scsi: smartpqi: Fix memory leak in pqi_report_phys_luns() scsi: mpi3mr: Make driver probing asynchronous scsi: ufs: core: Flush exception handling work when RPM level is zero scsi: efct: Use IRQF_ONESHOT and default primary handler scsi: ufs: core: Use a host-wide tagset in SDB mode scsi: qla2xxx: target: Add WQ_PERCPU to alloc_workqueue() users scsi: qla2xxx: Add WQ_PERCPU to alloc_workqueue() users scsi: qla4xxx: Add WQ_PERCPU to alloc_workqueue() users scsi: mpi3mr: Driver version update to 8.17.0.3.50 scsi: mpi3mr: Fixed the W=1 compilation warning scsi: mpi3mr: Record and report controller firmware faults scsi: mpi3mr: Update MPI Headers to revision 39 scsi: mpi3mr: Use negotiated link rate from DevicePage0 scsi: mpi3mr: Avoid redundant diag-fault resets scsi: mpi3mr: Rename log data save helper to reflect threaded/BH context scsi: mpi3mr: Add module parameter to control threaded IRQ polling ...
2 parents 041c16a + 1982257 commit d4a379a

176 files changed

Lines changed: 3678 additions & 829 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/ufs/qcom,sa8255p-ufshc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm SA8255P UFS Host Controller
8+
9+
maintainers:
10+
- Ram Kumar Dwivedi <ram.dwivedi@oss.qualcomm.com>
11+
12+
properties:
13+
compatible:
14+
const: qcom,sa8255p-ufshc
15+
16+
reg:
17+
maxItems: 1
18+
19+
interrupts:
20+
maxItems: 1
21+
22+
iommus:
23+
maxItems: 1
24+
25+
dma-coherent: true
26+
27+
power-domains:
28+
maxItems: 1
29+
30+
required:
31+
- compatible
32+
- reg
33+
- interrupts
34+
- power-domains
35+
- iommus
36+
- dma-coherent
37+
38+
allOf:
39+
- $ref: ufs-common.yaml
40+
41+
unevaluatedProperties: false
42+
43+
examples:
44+
- |
45+
#include <dt-bindings/interrupt-controller/arm-gic.h>
46+
47+
ufshc@1d84000 {
48+
compatible = "qcom,sa8255p-ufshc";
49+
reg = <0x01d84000 0x3000>;
50+
interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
51+
lanes-per-direction = <2>;
52+
53+
iommus = <&apps_smmu 0x100 0x0>;
54+
power-domains = <&scmi3_pd 0>;
55+
dma-coherent;
56+
};

Documentation/scsi/scsi_mid_low_api.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -903,7 +903,8 @@ Details::
903903
*
904904
* Defined in: LLD
905905
**/
906-
int queuecommand(struct Scsi_Host *shost, struct scsi_cmnd * scp)
906+
enum scsi_qc_status queuecommand(struct Scsi_Host *shost,
907+
struct scsi_cmnd *scp)
907908

908909

909910
/**

MAINTAINERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27063,7 +27063,7 @@ M: Manivannan Sadhasivam <mani@kernel.org>
2706327063
L: linux-arm-msm@vger.kernel.org
2706427064
L: linux-scsi@vger.kernel.org
2706527065
S: Maintained
27066-
F: Documentation/devicetree/bindings/ufs/qcom,ufs.yaml
27066+
F: Documentation/devicetree/bindings/ufs/qcom*
2706727067
F: drivers/ufs/host/ufs-qcom*
2706827068

2706927069
UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER RENESAS HOOKS

drivers/ata/libata-scsi.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4309,7 +4309,8 @@ static inline ata_xlat_func_t ata_get_xlat_func(struct ata_device *dev, u8 cmd)
43094309
return NULL;
43104310
}
43114311

4312-
int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, struct ata_device *dev)
4312+
enum scsi_qc_status __ata_scsi_queuecmd(struct scsi_cmnd *scmd,
4313+
struct ata_device *dev)
43134314
{
43144315
struct ata_port *ap = dev->link->ap;
43154316
u8 scsi_op = scmd->cmnd[0];
@@ -4383,12 +4384,13 @@ int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, struct ata_device *dev)
43834384
* Return value from __ata_scsi_queuecmd() if @cmd can be queued,
43844385
* 0 otherwise.
43854386
*/
4386-
int ata_scsi_queuecmd(struct Scsi_Host *shost, struct scsi_cmnd *cmd)
4387+
enum scsi_qc_status ata_scsi_queuecmd(struct Scsi_Host *shost,
4388+
struct scsi_cmnd *cmd)
43874389
{
43884390
struct ata_port *ap;
43894391
struct ata_device *dev;
43904392
struct scsi_device *scsidev = cmd->device;
4391-
int rc = 0;
4393+
enum scsi_qc_status rc = 0;
43924394
unsigned long irq_flags;
43934395

43944396
ap = ata_shost_to_port(shost);

drivers/ata/libata.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,8 @@ extern int ata_scsi_user_scan(struct Scsi_Host *shost, unsigned int channel,
164164
void ata_scsi_sdev_config(struct scsi_device *sdev);
165165
int ata_scsi_dev_config(struct scsi_device *sdev, struct queue_limits *lim,
166166
struct ata_device *dev);
167-
int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, struct ata_device *dev);
167+
enum scsi_qc_status __ata_scsi_queuecmd(struct scsi_cmnd *scmd,
168+
struct ata_device *dev);
168169

169170
/* libata-eh.c */
170171
extern unsigned int ata_internal_cmd_timeout(struct ata_device *dev, u8 cmd);

drivers/base/transport_class.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,12 @@ static int transport_add_class_device(struct attribute_container *cont,
165165
goto err_del;
166166
}
167167

168+
if (tcont->encryption) {
169+
error = sysfs_create_group(&classdev->kobj, tcont->encryption);
170+
if (error)
171+
goto err_del;
172+
}
173+
168174
return 0;
169175

170176
err_del:
@@ -240,6 +246,8 @@ static int transport_remove_classdev(struct attribute_container *cont,
240246
if (tclass->remove != anon_transport_dummy_function) {
241247
if (tcont->statistics)
242248
sysfs_remove_group(&classdev->kobj, tcont->statistics);
249+
if (tcont->encryption)
250+
sysfs_remove_group(&classdev->kobj, tcont->encryption);
243251
attribute_container_class_device_del(classdev);
244252
}
245253

drivers/firewire/sbp2.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1440,13 +1440,14 @@ static int sbp2_map_scatterlist(struct sbp2_command_orb *orb,
14401440

14411441
/* SCSI stack integration */
14421442

1443-
static int sbp2_scsi_queuecommand(struct Scsi_Host *shost,
1444-
struct scsi_cmnd *cmd)
1443+
static enum scsi_qc_status sbp2_scsi_queuecommand(struct Scsi_Host *shost,
1444+
struct scsi_cmnd *cmd)
14451445
{
14461446
struct sbp2_logical_unit *lu = cmd->device->hostdata;
14471447
struct fw_device *device = target_parent_device(lu->tgt);
1448+
enum scsi_qc_status retval = SCSI_MLQUEUE_HOST_BUSY;
14481449
struct sbp2_command_orb *orb;
1449-
int generation, retval = SCSI_MLQUEUE_HOST_BUSY;
1450+
int generation;
14501451

14511452
orb = kzalloc(sizeof(*orb), GFP_ATOMIC);
14521453
if (orb == NULL)

drivers/infiniband/ulp/srp/ib_srp.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2149,7 +2149,8 @@ static void srp_handle_qp_err(struct ib_cq *cq, struct ib_wc *wc,
21492149
target->qp_in_error = true;
21502150
}
21512151

2152-
static int srp_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *scmnd)
2152+
static enum scsi_qc_status srp_queuecommand(struct Scsi_Host *shost,
2153+
struct scsi_cmnd *scmnd)
21532154
{
21542155
struct request *rq = scsi_cmd_to_rq(scmnd);
21552156
struct srp_target_port *target = host_to_target(shost);

drivers/message/fusion/mptfc.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ static u8 mptfcInternalCtx = MPT_MAX_PROTOCOL_DRIVERS;
9797

9898
static int mptfc_target_alloc(struct scsi_target *starget);
9999
static int mptfc_sdev_init(struct scsi_device *sdev);
100-
static int mptfc_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *SCpnt);
100+
static enum scsi_qc_status mptfc_qcmd(struct Scsi_Host *shost,
101+
struct scsi_cmnd *SCpnt);
101102
static void mptfc_target_destroy(struct scsi_target *starget);
102103
static void mptfc_set_rport_loss_tmo(struct fc_rport *rport, uint32_t timeout);
103104
static void mptfc_remove(struct pci_dev *pdev);
@@ -676,8 +677,8 @@ mptfc_sdev_init(struct scsi_device *sdev)
676677
return 0;
677678
}
678679

679-
static int
680-
mptfc_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *SCpnt)
680+
static enum scsi_qc_status mptfc_qcmd(struct Scsi_Host *shost,
681+
struct scsi_cmnd *SCpnt)
681682
{
682683
struct mptfc_rport_info *ri;
683684
struct fc_rport *rport = starget_to_rport(scsi_target(SCpnt->device));

drivers/message/fusion/mptsas.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1920,8 +1920,8 @@ mptsas_sdev_init(struct scsi_device *sdev)
19201920
return 0;
19211921
}
19221922

1923-
static int
1924-
mptsas_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *SCpnt)
1923+
static enum scsi_qc_status mptsas_qcmd(struct Scsi_Host *shost,
1924+
struct scsi_cmnd *SCpnt)
19251925
{
19261926
MPT_SCSI_HOST *hd;
19271927
MPT_ADAPTER *ioc;

0 commit comments

Comments
 (0)