]> git.itanic.dy.fi Git - linux-stable/commit
SCSI aic94xx: fix REQ_TASK_ABORT and REQ_DEVICE_RESET
authorJames Bottomley <James.Bottomley@HansenPartnership.com>
Sat, 23 Feb 2008 20:55:15 +0000 (20:55 +0000)
committerChris Wright <chrisw@sous-sol.org>
Mon, 24 Mar 2008 18:47:16 +0000 (11:47 -0700)
commit2d367bd043bee47750b26b2a5fbdf998cfa78fe5
tree3ca3cc9b8cc072a7b326608f62792ff9ee14025a
parent461bab342d2601c5e032f85b27e66beafef66ff8
SCSI aic94xx: fix REQ_TASK_ABORT and REQ_DEVICE_RESET

commit: cb84e2d2ff3b50c0da5a7604a6d8634294a00a01

This driver has been failing under heavy load with

aic94xx: escb_tasklet_complete: REQ_TASK_ABORT, reason=0x6
aic94xx: escb_tasklet_complete: Can't find task (tc=4) to abort!

The second message is because the driver fails to identify the task
it's being asked to abort.  On closer inpection, there's a thinko in
the for each task loop over pending tasks in both the REQ_TASK_ABORT
and REQ_DEVICE_RESET cases where it doesn't look at the task on the
pending list but at the one on the ESCB (which is always NULL).

Fix by looking at the right task.  Also add a print for the case where
the pending SCB doesn't have a task attached.

Not sure if this will fix all the problems, but it's a definite first
step.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/scsi/aic94xx/aic94xx_scb.c