On 12/21/2017 03:33 PM, Raghava Aditya Renukunta wrote: > Driver attempts to perform a device scan and device add after coming out > of reset. At times when the kdump kernel loads and it tries to perform > eh recovery, the device scan hangs since its commands are blocked because > of the eh recovery. This should have shown up in normal eh recovery path > (Should have been obvious) > > Remove the code that performs scanning.I can live without the rescanning > support in the stable kernels but a hanging kdump/eh recovery needs to be > fixed. > > Fixes: a2d0321dd532901e (scsi: aacraid: Reload offlined drives after controller reset) > Cc: <stable@xxxxxxxxxxxxxxx> > Reported-by: Guilherme G. Piccoli <gpiccoli@xxxxxxxxxxxxxxxxxx> (Sorry in advance for flooding the thread heheh) I guess it'd be more appropriate to: Reported-by: Douglas Miller <dougmill@xxxxxxxxxxxxxxxxxx> Although I've tested it, Doug isolated the race condition based on code analysis... Thanks, Guilherme > Tested-by: Guilherme G. Piccoli <gpiccoli@xxxxxxxxxxxxxxxxxx> > Fixes: a2d0321dd532901e (scsi: aacraid: Reload offlined drives after controller reset) > Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@xxxxxxxxxxxxx> > --- > drivers/scsi/aacraid/commsup.c | 9 +-------- > 1 file changed, 1 insertion(+), 8 deletions(-) > > diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c > index 525a652..ffbfd04 100644 > --- a/drivers/scsi/aacraid/commsup.c > +++ b/drivers/scsi/aacraid/commsup.c > @@ -1672,14 +1672,7 @@ static int _aac_reset_adapter(struct aac_dev *aac, int forced, u8 reset_type) > out: > aac->in_reset = 0; > scsi_unblock_requests(host); > - /* > - * Issue bus rescan to catch any configuration that might have > - * occurred > - */ > - if (!retval) { > - dev_info(&aac->pdev->dev, "Issuing bus rescan\n"); > - scsi_scan_host(host); > - } > + > if (jafo) { > spin_lock_irq(host->host_lock); > } >