diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-12-15 15:51:42 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-12-15 15:51:42 -0500 |
commit | 66dbbd72005c5ebdd1de35ba5a41393f01df48d6 (patch) | |
tree | 67cbdbb1407e8592d79fbef1c86aea9510cd2f0e /drivers/scsi/libsas/sas_expander.c | |
parent | 07a20ed1e3c25925282aebb2f8cec0e3b5ae99b6 (diff) | |
parent | 14e3062fb18532175af4d1c4073597999f7a2248 (diff) |
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI fixes from James Bottomley:
"The most important one is the bfa fix because it's easy to oops the
kernel with this driver (this includes the commit that corrects the
compiler warning in the original), a regression in the new timespec
conversion in aacraid and a regression in the Fibre Channel ELS
handling patch.
The other three are a theoretical problem with termination in the
vendor/host matching code and a use after free in lpfc.
The additional patches are a fix for an I/O hang in the mq code under
certain circumstances and a rare oops in some debugging code"
* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
scsi: core: Fix a scsi_show_rq() NULL pointer dereference
scsi: MAINTAINERS: change FCoE list to linux-scsi
scsi: libsas: fix length error in sas_smp_handler()
scsi: bfa: fix type conversion warning
scsi: core: run queue if SCSI device queue isn't ready and queue is idle
scsi: scsi_devinfo: cleanly zero-pad devinfo strings
scsi: scsi_devinfo: handle non-terminated strings
scsi: bfa: fix access to bfad_im_port_s
scsi: aacraid: address UBSAN warning regression
scsi: libfc: fix ELS request handling
scsi: lpfc: Use after free in lpfc_rq_buf_free()
Diffstat (limited to 'drivers/scsi/libsas/sas_expander.c')
-rw-r--r-- | drivers/scsi/libsas/sas_expander.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c index ca1566237ae7..3183d63de4da 100644 --- a/drivers/scsi/libsas/sas_expander.c +++ b/drivers/scsi/libsas/sas_expander.c | |||
@@ -2145,7 +2145,7 @@ void sas_smp_handler(struct bsg_job *job, struct Scsi_Host *shost, | |||
2145 | struct sas_rphy *rphy) | 2145 | struct sas_rphy *rphy) |
2146 | { | 2146 | { |
2147 | struct domain_device *dev; | 2147 | struct domain_device *dev; |
2148 | unsigned int reslen = 0; | 2148 | unsigned int rcvlen = 0; |
2149 | int ret = -EINVAL; | 2149 | int ret = -EINVAL; |
2150 | 2150 | ||
2151 | /* no rphy means no smp target support (ie aic94xx host) */ | 2151 | /* no rphy means no smp target support (ie aic94xx host) */ |
@@ -2179,12 +2179,12 @@ void sas_smp_handler(struct bsg_job *job, struct Scsi_Host *shost, | |||
2179 | 2179 | ||
2180 | ret = smp_execute_task_sg(dev, job->request_payload.sg_list, | 2180 | ret = smp_execute_task_sg(dev, job->request_payload.sg_list, |
2181 | job->reply_payload.sg_list); | 2181 | job->reply_payload.sg_list); |
2182 | if (ret > 0) { | 2182 | if (ret >= 0) { |
2183 | /* positive number is the untransferred residual */ | 2183 | /* bsg_job_done() requires the length received */ |
2184 | reslen = ret; | 2184 | rcvlen = job->reply_payload.payload_len - ret; |
2185 | ret = 0; | 2185 | ret = 0; |
2186 | } | 2186 | } |
2187 | 2187 | ||
2188 | out: | 2188 | out: |
2189 | bsg_job_done(job, ret, reslen); | 2189 | bsg_job_done(job, ret, rcvlen); |
2190 | } | 2190 | } |