[SRU][Bionic][PATCH 0/1] scsi: hpsa: disable device during shutdown

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[SRU][Bionic][PATCH 0/1] scsi: hpsa: disable device during shutdown

Joseph Salisbury-3
BugLink: http://bugs.launchpad.net/bugs/1772467

== SRU Justification ==
Mainline commit introduced a regression in v4.15-rc1.  The regression
causes a kernel panic during system shutdown.  This commit fixes
that regression.  This commit was also cc'd to upstream stable, but it
has not landed in Bionic as of yet.

== Fix ==
0d98ba8d70b0 ("scsi: hpsa: disable device during shutdown")

== Regression Potential ==
Low.  This patch fixes a current regression.  It has been cc'd to
upstream stable, so it has had additon upstream review.

== Test Case ==
A test kernel was built with this patch and tested by the original bug reporter.
The bug reporter states the test kernel resolved the bug.


Sinan Kaya (1):
  scsi: hpsa: disable device during shutdown

 drivers/scsi/hpsa.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

--
2.7.4


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

[SRU][Bionic][PATCH 1/1] scsi: hpsa: disable device during shutdown

Joseph Salisbury-3
From: Sinan Kaya <[hidden email]>

BugLink: http://bugs.launchpad.net/bugs/1772467

'Commit cc27b735ad3a ("PCI/portdrv: Turn off PCIe services during
shutdown")' has been added to kernel to shutdown pending PCIe port service
interrupts during reboot so that a newly started kexec kernel wouldn't
observe pending interrupts.

pcie_port_device_remove() is disabling the root port and switches by
calling pci_disable_device() after all PCIe service drivers are shutdown.

This has been found to cause crashes on HP DL360 Gen9 machines during
reboot due to hpsa driver not clearing the bus master bit during the
shutdown procedure by calling pci_disable_device().

Disable device as part of the shutdown sequence.

Signed-off-by: Sinan Kaya <[hidden email]>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=199779
Fixes: cc27b735ad3a ("PCI/portdrv: Turn off PCIe services during shutdown")
Cc: [hidden email]
Reported-by: Ryan Finnie <[hidden email]>
Tested-by: Don Brace <[hidden email]>
Acked-by: Don Brace <[hidden email]>
Signed-off-by: Martin K. Petersen <[hidden email]>
(cherry picked from commit 0d98ba8d70b0070ac117452ea0b663e26bbf46bf)
Signed-off-by: Joseph Salisbury <[hidden email]>
---
 drivers/scsi/hpsa.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index b54d17b..d3dde05 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -8844,7 +8844,7 @@ static void hpsa_disable_rld_caching(struct ctlr_info *h)
  kfree(options);
 }
 
-static void hpsa_shutdown(struct pci_dev *pdev)
+static void __hpsa_shutdown(struct pci_dev *pdev)
 {
  struct ctlr_info *h;
 
@@ -8859,6 +8859,12 @@ static void hpsa_shutdown(struct pci_dev *pdev)
  hpsa_disable_interrupt_mode(h); /* pci_init 2 */
 }
 
+static void hpsa_shutdown(struct pci_dev *pdev)
+{
+ __hpsa_shutdown(pdev);
+ pci_disable_device(pdev);
+}
+
 static void hpsa_free_device_info(struct ctlr_info *h)
 {
  int i;
@@ -8902,7 +8908,7 @@ static void hpsa_remove_one(struct pci_dev *pdev)
  scsi_remove_host(h->scsi_host); /* init_one 8 */
  /* includes hpsa_free_irqs - init_one 4 */
  /* includes hpsa_disable_interrupt_mode - pci_init 2 */
- hpsa_shutdown(pdev);
+ __hpsa_shutdown(pdev);
 
  hpsa_free_device_info(h); /* scan */
 
--
2.7.4


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

NAK: [SRU][Bionic][PATCH 0/1] scsi: hpsa: disable device during shutdown

Joseph Salisbury-3
In reply to this post by Joseph Salisbury-3
I made a typo in the bug link.  I'll resend with the correct bug number.

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team