• R
    hpsa: call pci_release_regions after pci_disable_device · 943a7021
    Robert Elliott 提交于
    Despite the fact that PCI devices are enabled in this order:
        1. pci_enable_device
        2. pci_request_regions
    
        Documentation/PCI/pci.txt specifies that they be undone
        in this order
        1. pci_disable_device
        2. pci_release_regions
    
        Tested by injecting error in the call to pci_enable_device
        in hpsa_init_one -> hpsa_pci_init:
        [    9.095001] hpsa 0000:04:00.0: failed to enable PCI device
        [    9.095005] hpsa: probe of 0000:04:00.0 failed with error -22
        (-22 is -EINVAL)
        and then in the call pci_request_regions:
        [    9.178623] hpsa 0000:04:00.0: failed to obtain PCI resources
        [    9.178671] hpsa: probe of 0000:04:00.0 failed with error -16
        (-16 is -EBUSY)
    
        and then by adding
            reset_devices
        to the kernel command line and inject errors into the two
        calls to pci_enable_device and the call to pci_request_regions
        in hpsa_init_one -> hpsa_init_reset_devices.
    
        (inject on 6th call, 1st to hpsa2)
        [   62.413750] hpsa 0000:04:00.0: Failed to enable PCI device
    
        (inject on 7th call, 2nd to hpsa2)
        [   62.807571] hpsa 0000:04:00.0: failed to enable device.
    
        (inject on 8th call, 3rd to hpsa2)
        [   62.697198] hpsa 0000:04:00.0: failed to obtain PCI resources
        [   62.697234] hpsa: probe of 0000:04:00.0 failed with error -16
    
        The reset_devices path calls return -ENODEV on failure
        rather than passing the result, which apparently doesn't
        cause the pci driver to print anything.
    Reviewed-by: NScott Teel <scott.teel@pmcs.com>
    Reviewed-by: NKevin Barnett <kevin.barnett@pmcs.com>
    Reviewed-by: NTomas Henzl <thenzl@redhat.com>
    Reviewed-by: NHannes Reinecke <hare@Suse.de>
    Signed-off-by: NRobert Elliott <elliott@hp.com>
    Signed-off-by: NDon Brace <don.brace@pmcs.com>
    Reviewed-by: NChristoph Hellwig <hch@lst.de>
    Signed-off-by: NJames Bottomley <JBottomley@Odin.com>
    943a7021
hpsa.c 242.6 KB