diff options
author | Bhanu Gollapudi <bprakash@broadcom.com> | 2011-03-21 18:51:13 -0700 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2011-03-23 12:53:06 -0500 |
commit | fee787129d4d6a5e967a69ea3dea3e38ba556b3d (patch) | |
tree | aa81010d8a41fe15eebbca19e7d0e9d970860129 /drivers/scsi/NCR5380.c | |
parent | 2dcb0a61041a003f439bbd38005b6e454c368be0 (diff) |
[SCSI] bnx2fc: IO completion not processed due to missed wakeup
Driver does not detect a new CQE (completion queue entry) if a thread receives
the wakup when it is in TASK_RUNNING state. Fix is to set the state to
TASK_INTERRUPTIBLE while holding the fp_work_lock.
Also, Use __set_current_task() since it is now set inside a spinlock with
synchronization.
Two other related optimizations:
1. After we exit the while (!kthread_should_stop()) loop, use
__set_current_state() since synchronization is no longer needed.
2. Remove set_current_state(TASK_RUNNING) after schedule() since it
should always be TASK_RUNNING after schedule().
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/NCR5380.c')
0 files changed, 0 insertions, 0 deletions