• Dexuan Cui's avatar
    PCI: hv: Add hv_pci_remove_slots() when we unload the driver · 15becc2b
    Dexuan Cui authored
    When we unload the pci-hyperv host controller driver, the host does not
    send us a PCI_EJECT message.
    
    In this case we also need to make sure the sysfs PCI slot directory is
    removed, otherwise a command on a slot file eg:
    
    "cat /sys/bus/pci/slots/2/address"
    
    will trigger a
    
    "BUG: unable to handle kernel paging request"
    
    and, if we unload/reload the driver several times we would end up with
    stale slot entries in PCI slot directories in /sys/bus/pci/slots/
    
    root@localhost:~# ls -rtl  /sys/bus/pci/slots/
    total 0
    drwxr-xr-x 2 root root 0 Feb  7 10:49 2
    drwxr-xr-x 2 root root 0 Feb  7 10:49 2-1
    drwxr-xr-x 2 root root 0 Feb  7 10:51 2-2
    
    Add the missing code to remove the PCI slot and fix the current
    behaviour.
    
    Fixes: a15f2c08 ("PCI: hv: support reporting serial number as slot information")
    Signed-off-by: default avatarDexuan Cui <decui@microsoft.com>
    [lorenzo.pieralisi@arm.com: reformatted the log]
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Reviewed-by: default avatarStephen Hemminger <sthemmin@microsoft.com>
    Reviewed-by: default avatarMichael Kelley <mikelley@microsoft.com>
    Cc: stable@vger.kernel.org
    15becc2b
pci-hyperv.c 74.4 KB