]> git.karo-electronics.de Git - karo-tx-linux.git/commit
mpt2sas: Fix the race between broadcast asyn event and scsi command completion
authorKashyap, Desai <kashyap.desai@lsi.com>
Wed, 5 Jan 2011 12:24:32 +0000 (17:54 +0530)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 17 Feb 2011 22:46:57 +0000 (14:46 -0800)
commitbd1c94b55593c2265caa59a434dd942f638993ef
tree3ce98eda276f94c5859b8a94ad9d67a5eeaed62a
parent6866dfaf4ca45b3285e0f91b12d08696848a1eea
mpt2sas: Fix the race between broadcast asyn event and scsi command completion

commit ec07a053597bdab51cbd23619f9f9f392712508a upstream.

False timeout after hard resets, there were two issues which leads
to timeout.
(1) Panic because of invalid memory access in the broadcast asyn
event processing routine due to a race between accessing the scsi command
pointer from broadcast asyn event processing thread and completing
the same scsi command from the interrupt context.
(2)  Broadcast asyn event notifcations are not handled due to events
ignored while the broadcast asyn event is activity being processed
from the event process kernel thread.

In addition, changed the ABRT_TASK_SET to ABORT_TASK in the
broadcast async event processing routine.   This is less disruptive to other
request that generate Broadcast Asyn Primitives besides target
reset. e.g clear reservations, microcode download,and mode select.

Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/scsi/mpt2sas/mpt2sas_scsih.c