diff options
author | Wen Xiong <wenxiong@linux.vnet.ibm.com> | 2018-09-21 02:32:12 +0200 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2018-09-21 18:35:39 +0200 |
commit | 318ddb34b2052f838aa243d07173e2badf3e630e (patch) | |
tree | 8ea8c5955e10590caa7951a9d39c3e04d04b3b2f /drivers/scsi/ipr.h | |
parent | scsi: target: iscsi: Use bin2hex instead of a re-implementation (diff) | |
download | linux-318ddb34b2052f838aa243d07173e2badf3e630e.tar.xz linux-318ddb34b2052f838aa243d07173e2badf3e630e.zip |
scsi: ipr: System hung while dlpar adding primary ipr adapter back
While dlpar adding primary ipr adapter back, driver goes through adapter
initialization then schedule ipr_worker_thread to start te disk scan by
dropping the host lock, calling scsi_add_device. Then get the adapter reset
request again, so driver does scsi_block_requests, this will cause the
scsi_add_device get hung until we unblock. But we can't run ipr_worker_thread
to do the unblock because its stuck in scsi_add_device.
This patch fixes the issue.
[mkp: typo and whitespace fixes]
Signed-off-by: Wen Xiong <wenxiong@linux.vnet.ibm.com>
Acked-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/ipr.h')
-rw-r--r-- | drivers/scsi/ipr.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h index 68afbbde54d3..f6baa2351313 100644 --- a/drivers/scsi/ipr.h +++ b/drivers/scsi/ipr.h @@ -1575,6 +1575,7 @@ struct ipr_ioa_cfg { u8 saved_mode_page_len; struct work_struct work_q; + struct work_struct scsi_add_work_q; struct workqueue_struct *reset_work_q; wait_queue_head_t reset_wait_q; |