From 039a08981a49e05f09db969cdd3f38f05a5df46f Mon Sep 17 00:00:00 2001 From: Brian King Date: Fri, 20 Mar 2009 15:44:35 -0500 Subject: [SCSI] ibmvfc: Fix dropped interrupts This patch fixes a problem of possible dropped interrupts. Currently, the ibmvfc driver has a race condition where after ibmvfc_interrupt gets run, the platform code clears the interrupt. This can result in lost interrupts and, in worst case scenarios, result in command timeouts. Fix this by implementing a tasklet similar to what the ibmvscsi driver does so that interrupt processing is no longer done in the actual interrupt handler, which eliminates the race. Signed-off-by: Brian King Signed-off-by: James Bottomley --- drivers/scsi/ibmvscsi/ibmvfc.h | 1 + 1 file changed, 1 insertion(+) (limited to 'drivers/scsi/ibmvscsi/ibmvfc.h') diff --git a/drivers/scsi/ibmvscsi/ibmvfc.h b/drivers/scsi/ibmvscsi/ibmvfc.h index b21e071b986..70107522e3a 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.h +++ b/drivers/scsi/ibmvscsi/ibmvfc.h @@ -684,6 +684,7 @@ struct ibmvfc_host { char partition_name[97]; void (*job_step) (struct ibmvfc_host *); struct task_struct *work_thread; + struct tasklet_struct tasklet; wait_queue_head_t init_wait_q; wait_queue_head_t work_wait_q; }; -- cgit