diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-03 18:48:06 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-03 18:48:06 -0400 |
commit | f66c83d059d1ed90968caa81d401f160912b063a (patch) | |
tree | 8558803eadc5c29038de16d88b02b4f6176850ac /drivers/s390/scsi | |
parent | d472d9d98b463dd7a04f2bcdeafe4261686ce6ab (diff) | |
parent | 1f962ebcdfa15cede59e9edb299d1330949eec92 (diff) |
Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull first round of SCSI updates from James Bottomley:
"This patch set is a set of driver updates (ufs, zfcp, lpfc, mpt2/3sas,
qla4xxx, qla2xxx [adding support for ISP8044 + other things]).
We also have a new driver: esas2r which has a number of static checker
problems, but which I expect to resolve over the -rc course of 3.12
under the new driver exception.
We also have the error return that were discussed at LSF"
* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (118 commits)
[SCSI] sg: push file descriptor list locking down to per-device locking
[SCSI] sg: checking sdp->detached isn't protected when open
[SCSI] sg: no need sg_open_exclusive_lock
[SCSI] sg: use rwsem to solve race during exclusive open
[SCSI] scsi_debug: fix logical block provisioning support when unmap_alignment != 0
[SCSI] scsi_debug: fix endianness bug in sdebug_build_parts()
[SCSI] qla2xxx: Update the driver version to 8.06.00.08-k.
[SCSI] qla2xxx: print MAC via %pMR.
[SCSI] qla2xxx: Correction to message ids.
[SCSI] qla2xxx: Correctly print out/in mailbox registers.
[SCSI] qla2xxx: Add a new interface to update versions.
[SCSI] qla2xxx: Move queue depth ramp down message to i/o debug level.
[SCSI] qla2xxx: Select link initialization option bits from current operating mode.
[SCSI] qla2xxx: Add loopback IDC-TIME-EXTEND aen handling support.
[SCSI] qla2xxx: Set default critical temperature value in cases when ISPFX00 firmware doesn't provide it
[SCSI] qla2xxx: QLAFX00 make over temperature AEN handling informational, add log for normal temperature AEN
[SCSI] qla2xxx: Correct Interrupt Register offset for ISPFX00
[SCSI] qla2xxx: Remove handling of Shutdown Requested AEN from qlafx00_process_aen().
[SCSI] qla2xxx: Send all AENs for ISPFx00 to above layers.
[SCSI] qla2xxx: Add changes in initialization for ISPFX00 cards with BIOS
...
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r-- | drivers/s390/scsi/zfcp_aux.c | 4 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_ext.h | 2 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_fsf.c | 12 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_qdio.c | 4 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_sysfs.c | 12 |
5 files changed, 12 insertions, 22 deletions
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c index 1b9e4aee914b..8004b071a9f2 100644 --- a/drivers/s390/scsi/zfcp_aux.c +++ b/drivers/s390/scsi/zfcp_aux.c | |||
@@ -104,11 +104,11 @@ static void __init zfcp_init_device_setup(char *devstr) | |||
104 | strncpy(busid, token, ZFCP_BUS_ID_SIZE); | 104 | strncpy(busid, token, ZFCP_BUS_ID_SIZE); |
105 | 105 | ||
106 | token = strsep(&str, ","); | 106 | token = strsep(&str, ","); |
107 | if (!token || strict_strtoull(token, 0, (unsigned long long *) &wwpn)) | 107 | if (!token || kstrtoull(token, 0, (unsigned long long *) &wwpn)) |
108 | goto err_out; | 108 | goto err_out; |
109 | 109 | ||
110 | token = strsep(&str, ","); | 110 | token = strsep(&str, ","); |
111 | if (!token || strict_strtoull(token, 0, (unsigned long long *) &lun)) | 111 | if (!token || kstrtoull(token, 0, (unsigned long long *) &lun)) |
112 | goto err_out; | 112 | goto err_out; |
113 | 113 | ||
114 | kfree(str_saved); | 114 | kfree(str_saved); |
diff --git a/drivers/s390/scsi/zfcp_ext.h b/drivers/s390/scsi/zfcp_ext.h index 83e3f1408c38..a9c570a09b85 100644 --- a/drivers/s390/scsi/zfcp_ext.h +++ b/drivers/s390/scsi/zfcp_ext.h | |||
@@ -126,8 +126,6 @@ extern int zfcp_qdio_sbals_from_sg(struct zfcp_qdio *, struct zfcp_qdio_req *, | |||
126 | extern int zfcp_qdio_open(struct zfcp_qdio *); | 126 | extern int zfcp_qdio_open(struct zfcp_qdio *); |
127 | extern void zfcp_qdio_close(struct zfcp_qdio *); | 127 | extern void zfcp_qdio_close(struct zfcp_qdio *); |
128 | extern void zfcp_qdio_siosl(struct zfcp_adapter *); | 128 | extern void zfcp_qdio_siosl(struct zfcp_adapter *); |
129 | extern struct zfcp_fsf_req *zfcp_fsf_get_req(struct zfcp_qdio *, | ||
130 | struct qdio_buffer *); | ||
131 | 129 | ||
132 | /* zfcp_scsi.c */ | 130 | /* zfcp_scsi.c */ |
133 | extern struct scsi_transport_template *zfcp_scsi_transport_template; | 131 | extern struct scsi_transport_template *zfcp_scsi_transport_template; |
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c index 510e9b06c1a1..0fe8d5d95119 100644 --- a/drivers/s390/scsi/zfcp_fsf.c +++ b/drivers/s390/scsi/zfcp_fsf.c | |||
@@ -770,7 +770,8 @@ int zfcp_fsf_status_read(struct zfcp_qdio *qdio) | |||
770 | if (zfcp_qdio_sbal_get(qdio)) | 770 | if (zfcp_qdio_sbal_get(qdio)) |
771 | goto out; | 771 | goto out; |
772 | 772 | ||
773 | req = zfcp_fsf_req_create(qdio, FSF_QTCB_UNSOLICITED_STATUS, 0, | 773 | req = zfcp_fsf_req_create(qdio, FSF_QTCB_UNSOLICITED_STATUS, |
774 | SBAL_SFLAGS0_TYPE_STATUS, | ||
774 | adapter->pool.status_read_req); | 775 | adapter->pool.status_read_req); |
775 | if (IS_ERR(req)) { | 776 | if (IS_ERR(req)) { |
776 | retval = PTR_ERR(req); | 777 | retval = PTR_ERR(req); |
@@ -2387,12 +2388,3 @@ void zfcp_fsf_reqid_check(struct zfcp_qdio *qdio, int sbal_idx) | |||
2387 | break; | 2388 | break; |
2388 | } | 2389 | } |
2389 | } | 2390 | } |
2390 | |||
2391 | struct zfcp_fsf_req *zfcp_fsf_get_req(struct zfcp_qdio *qdio, | ||
2392 | struct qdio_buffer *sbal) | ||
2393 | { | ||
2394 | struct qdio_buffer_element *sbale = &sbal->element[0]; | ||
2395 | u64 req_id = (unsigned long) sbale->addr; | ||
2396 | |||
2397 | return zfcp_reqlist_find(qdio->adapter->req_list, req_id); | ||
2398 | } | ||
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c index de0598eaacd2..06025cdaa4ad 100644 --- a/drivers/s390/scsi/zfcp_qdio.c +++ b/drivers/s390/scsi/zfcp_qdio.c | |||
@@ -16,9 +16,9 @@ | |||
16 | 16 | ||
17 | #define QBUFF_PER_PAGE (PAGE_SIZE / sizeof(struct qdio_buffer)) | 17 | #define QBUFF_PER_PAGE (PAGE_SIZE / sizeof(struct qdio_buffer)) |
18 | 18 | ||
19 | static bool enable_multibuffer; | 19 | static bool enable_multibuffer = 1; |
20 | module_param_named(datarouter, enable_multibuffer, bool, 0400); | 20 | module_param_named(datarouter, enable_multibuffer, bool, 0400); |
21 | MODULE_PARM_DESC(datarouter, "Enable hardware data router support"); | 21 | MODULE_PARM_DESC(datarouter, "Enable hardware data router support (default on)"); |
22 | 22 | ||
23 | static int zfcp_qdio_buffers_enqueue(struct qdio_buffer **sbal) | 23 | static int zfcp_qdio_buffers_enqueue(struct qdio_buffer **sbal) |
24 | { | 24 | { |
diff --git a/drivers/s390/scsi/zfcp_sysfs.c b/drivers/s390/scsi/zfcp_sysfs.c index 890639274bcf..672b57219e11 100644 --- a/drivers/s390/scsi/zfcp_sysfs.c +++ b/drivers/s390/scsi/zfcp_sysfs.c | |||
@@ -107,7 +107,7 @@ static ssize_t zfcp_sysfs_port_failed_store(struct device *dev, | |||
107 | struct zfcp_port *port = container_of(dev, struct zfcp_port, dev); | 107 | struct zfcp_port *port = container_of(dev, struct zfcp_port, dev); |
108 | unsigned long val; | 108 | unsigned long val; |
109 | 109 | ||
110 | if (strict_strtoul(buf, 0, &val) || val != 0) | 110 | if (kstrtoul(buf, 0, &val) || val != 0) |
111 | return -EINVAL; | 111 | return -EINVAL; |
112 | 112 | ||
113 | zfcp_erp_set_port_status(port, ZFCP_STATUS_COMMON_RUNNING); | 113 | zfcp_erp_set_port_status(port, ZFCP_STATUS_COMMON_RUNNING); |
@@ -146,7 +146,7 @@ static ssize_t zfcp_sysfs_unit_failed_store(struct device *dev, | |||
146 | unsigned long val; | 146 | unsigned long val; |
147 | struct scsi_device *sdev; | 147 | struct scsi_device *sdev; |
148 | 148 | ||
149 | if (strict_strtoul(buf, 0, &val) || val != 0) | 149 | if (kstrtoul(buf, 0, &val) || val != 0) |
150 | return -EINVAL; | 150 | return -EINVAL; |
151 | 151 | ||
152 | sdev = zfcp_unit_sdev(unit); | 152 | sdev = zfcp_unit_sdev(unit); |
@@ -196,7 +196,7 @@ static ssize_t zfcp_sysfs_adapter_failed_store(struct device *dev, | |||
196 | if (!adapter) | 196 | if (!adapter) |
197 | return -ENODEV; | 197 | return -ENODEV; |
198 | 198 | ||
199 | if (strict_strtoul(buf, 0, &val) || val != 0) { | 199 | if (kstrtoul(buf, 0, &val) || val != 0) { |
200 | retval = -EINVAL; | 200 | retval = -EINVAL; |
201 | goto out; | 201 | goto out; |
202 | } | 202 | } |
@@ -248,7 +248,7 @@ static ssize_t zfcp_sysfs_port_remove_store(struct device *dev, | |||
248 | if (!adapter) | 248 | if (!adapter) |
249 | return -ENODEV; | 249 | return -ENODEV; |
250 | 250 | ||
251 | if (strict_strtoull(buf, 0, (unsigned long long *) &wwpn)) | 251 | if (kstrtoull(buf, 0, (unsigned long long *) &wwpn)) |
252 | goto out; | 252 | goto out; |
253 | 253 | ||
254 | port = zfcp_get_port_by_wwpn(adapter, wwpn); | 254 | port = zfcp_get_port_by_wwpn(adapter, wwpn); |
@@ -309,7 +309,7 @@ static ssize_t zfcp_sysfs_unit_add_store(struct device *dev, | |||
309 | u64 fcp_lun; | 309 | u64 fcp_lun; |
310 | int retval; | 310 | int retval; |
311 | 311 | ||
312 | if (strict_strtoull(buf, 0, (unsigned long long *) &fcp_lun)) | 312 | if (kstrtoull(buf, 0, (unsigned long long *) &fcp_lun)) |
313 | return -EINVAL; | 313 | return -EINVAL; |
314 | 314 | ||
315 | retval = zfcp_unit_add(port, fcp_lun); | 315 | retval = zfcp_unit_add(port, fcp_lun); |
@@ -327,7 +327,7 @@ static ssize_t zfcp_sysfs_unit_remove_store(struct device *dev, | |||
327 | struct zfcp_port *port = container_of(dev, struct zfcp_port, dev); | 327 | struct zfcp_port *port = container_of(dev, struct zfcp_port, dev); |
328 | u64 fcp_lun; | 328 | u64 fcp_lun; |
329 | 329 | ||
330 | if (strict_strtoull(buf, 0, (unsigned long long *) &fcp_lun)) | 330 | if (kstrtoull(buf, 0, (unsigned long long *) &fcp_lun)) |
331 | return -EINVAL; | 331 | return -EINVAL; |
332 | 332 | ||
333 | if (zfcp_unit_remove(port, fcp_lun)) | 333 | if (zfcp_unit_remove(port, fcp_lun)) |