• Khalid Aziz's avatar
    PCI: disable Bus Master on PCI device shutdown · b566a22c
    Khalid Aziz authored
    Disable Bus Master bit on the device in pci_device_shutdown() to ensure PCI
    devices do not continue to DMA data after shutdown.  This can cause memory
    corruption in case of a kexec where the current kernel shuts down and
    transfers control to a new kernel while a PCI device continues to DMA to
    memory that does not belong to it any more in the new kernel.
    
    I have tested this code on two laptops, two workstations and a 16-socket
    server.  kexec worked correctly on all of them.
    Signed-off-by: default avatarKhalid Aziz <khalid.aziz@hp.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    b566a22c
pci-driver.c 30.8 KB