OSDN Git Service

[SCSI] 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)
committerJames Bottomley <James.Bottomley@suse.de>
Mon, 24 Jan 2011 15:24:28 +0000 (09:24 -0600)
commitec07a053597bdab51cbd23619f9f9f392712508a
treef6d2308eb2481481c430f961e98fa68b5b0c1240
parent11e1b961ab067ee3acaf723531da4d3f23e1d6f7
[SCSI] mpt2sas: Fix the race between broadcast asyn event and scsi command completion

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>
Cc: stable@kernel.org
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/mpt2sas/mpt2sas_scsih.c