diff options
author | Bhanu Gollapudi <bprakash@broadcom.com> | 2011-03-22 02:51:13 +0100 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2011-03-23 18:53:06 +0100 |
commit | fee787129d4d6a5e967a69ea3dea3e38ba556b3d (patch) | |
tree | aa81010d8a41fe15eebbca19e7d0e9d970860129 /drivers/sbus | |
parent | [SCSI] qla4xxx: Update driver version to 5.02.00-k6 (diff) | |
download | linux-fee787129d4d6a5e967a69ea3dea3e38ba556b3d.tar.xz linux-fee787129d4d6a5e967a69ea3dea3e38ba556b3d.zip |
[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/sbus')
0 files changed, 0 insertions, 0 deletions