]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
scsi: aacraid: Fix hang in kdump
authorRaghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Wed, 27 Dec 2017 04:34:24 +0000 (20:34 -0800)
committerSeth Forshee <seth.forshee@canonical.com>
Sat, 3 Feb 2018 17:40:46 +0000 (18:40 +0100)
BugLink: http://bugs.launchpad.net/bugs/1747169
commit c5313ae8e4e037bfaf5e56cb8d6efdb8e92ce437 upstream.

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)
Reported-by: Douglas Miller <dougmill@linux.vnet.ibm.com>
Tested-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
Fixes: a2d0321dd532901e (scsi: aacraid: Reload offlined drives after controller reset)
Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
drivers/scsi/aacraid/aachba.c
drivers/scsi/aacraid/commsup.c

index 548a3e73f10a8106201a39b4642696b3bd14692c..7173ae53c5260c87a202a29d97aafade7b8c0906 100644 (file)
@@ -918,7 +918,6 @@ static void setinqstr(struct aac_dev *dev, void *data, int tindex)
                char *cname = kmemdup(sup_adap_info->adapter_type_text,
                                sizeof(sup_adap_info->adapter_type_text),
                                                                GFP_ATOMIC);
-
                if (!cname)
                        return;
 
index 80a8cb26cdea43c8252bc5afe68b2b72540ff045..d9b20dada109b759fd467d9bcfe55316451a4afb 100644 (file)
@@ -1643,14 +1643,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);
        }