summaryrefslogtreecommitdiff
path: root/drivers/scsi/ipr.h
diff options
context:
space:
mode:
authorBrian King <brking@linux.vnet.ibm.com>2015-03-26 11:23:52 -0500
committerJames Bottomley <JBottomley@Odin.com>2015-04-09 13:43:14 -0700
commit2796ca5e51737ed0be8ebb6cf73fd56af05da0a7 (patch)
tree6b6ae274bf930a91025b0b1e18200b8a73ecf310 /drivers/scsi/ipr.h
parent4fdd7c7aabbec3aa9e5dc41c129bc9f6aed7e615 (diff)
ipr: Reset in task context
The pci_set_pcie_reset_state has changed semantics to not be callable from interrupt context, so change ipr's usage of the API to comply with this change by ensuring this occurs from a workqueue. Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Reviewed-by: Wen Xiong <wenxiong@linux.vnet.ibm.com> Reviewed-by: Daniel Kreling <kreling@linux.vnet.ibm.com> Signed-off-by: James Bottomley <JBottomley@Odin.com>
Diffstat (limited to 'drivers/scsi/ipr.h')
-rw-r--r--drivers/scsi/ipr.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h
index 34eec5bcdce0..f7d0e375e4f6 100644
--- a/drivers/scsi/ipr.h
+++ b/drivers/scsi/ipr.h
@@ -1540,6 +1540,7 @@ struct ipr_ioa_cfg {
u8 saved_mode_page_len;
struct work_struct work_q;
+ struct workqueue_struct *reset_work_q;
wait_queue_head_t reset_wait_q;
wait_queue_head_t msi_wait_q;
@@ -1591,6 +1592,7 @@ struct ipr_cmnd {
struct ata_queued_cmd *qc;
struct completion completion;
struct timer_list timer;
+ struct work_struct work;
void (*fast_done) (struct ipr_cmnd *);
void (*done) (struct ipr_cmnd *);
int (*job_step) (struct ipr_cmnd *);