From 2796ca5e51737ed0be8ebb6cf73fd56af05da0a7 Mon Sep 17 00:00:00 2001 From: Brian King Date: Thu, 26 Mar 2015 11:23:52 -0500 Subject: 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 Reviewed-by: Wen Xiong Reviewed-by: Daniel Kreling Signed-off-by: James Bottomley --- drivers/scsi/ipr.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'drivers/scsi/ipr.h') 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 *); -- cgit v1.2.3-70-g09d2