]> git.baikalelectronics.ru Git - kernel.git/commit
PCI: pciehp: Ignore Link State Changes after powering off a slot
authorSergey Miroshnichenko <s.miroshnichenko@yadro.com>
Tue, 12 Mar 2019 12:05:48 +0000 (15:05 +0300)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 10 Apr 2019 21:06:43 +0000 (16:06 -0500)
commitfcb58ba0a58c7cc6e85b85b2b90a70963c8e5e7b
tree7cb9a83b339177e2ec64a7bc37edc3377d2fc86c
parent56b182af7652b0d46d51b39f0e6831eca73cd8af
PCI: pciehp: Ignore Link State Changes after powering off a slot

During a safe hot remove, the OS powers off the slot, which may cause a
Data Link Layer State Changed event.  The slot has already been set to
OFF_STATE, so that event results in re-enabling the device, making it
impossible to safely remove it.

Clear out the Presence Detect Changed and Data Link Layer State Changed
events when the disabled slot has settled down.

It is still possible to re-enable the device if it remains in the slot
after pressing the Attention Button by pressing it again.

Fixes the problem that Micah reported below: an NVMe drive power button may
not actually turn off the drive.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=203237
Reported-by: Micah Parrish <micah.parrish@hpe.com>
Tested-by: Micah Parrish <micah.parrish@hpe.com>
Signed-off-by: Sergey Miroshnichenko <s.miroshnichenko@yadro.com>
[bhelgaas: changelog, add bugzilla URL]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Lukas Wunner <lukas@wunner.de>
Cc: stable@vger.kernel.org # v4.19+
drivers/pci/hotplug/pciehp_ctrl.c