aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ibmvscsi/ibmvfc.h
diff options
context:
space:
mode:
authorBrian King <brking@linux.vnet.ibm.com>2009-03-20 16:44:35 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-04-03 10:22:42 -0400
commit039a08981a49e05f09db969cdd3f38f05a5df46f (patch)
treeb7ba49c8740a97ea4be7c7d99445ec3a224f45a7 /drivers/scsi/ibmvscsi/ibmvfc.h
parent8fe74cf053de7ad2124a894996f84fa890a81093 (diff)
[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 <brking@linux.vnet.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/ibmvscsi/ibmvfc.h')
-rw-r--r--drivers/scsi/ibmvscsi/ibmvfc.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.h b/drivers/scsi/ibmvscsi/ibmvfc.h
index b21e071b9862..70107522e3a9 100644
--- a/drivers/scsi/ibmvscsi/ibmvfc.h
+++ b/drivers/scsi/ibmvscsi/ibmvfc.h
@@ -684,6 +684,7 @@ struct ibmvfc_host {
684 char partition_name[97]; 684 char partition_name[97];
685 void (*job_step) (struct ibmvfc_host *); 685 void (*job_step) (struct ibmvfc_host *);
686 struct task_struct *work_thread; 686 struct task_struct *work_thread;
687 struct tasklet_struct tasklet;
687 wait_queue_head_t init_wait_q; 688 wait_queue_head_t init_wait_q;
688 wait_queue_head_t work_wait_q; 689 wait_queue_head_t work_wait_q;
689}; 690};