• Niklas Schnelle's avatar
    s390/pci: Recover handle in clp_set_pci_fn() · 17cdec96
    Niklas Schnelle authored
    When we try to recover a PCI function using
    
        echo 1 > /sys/bus/pci/devices/<id>/recover
    
    or manually with
    
        echo 1 > /sys/bus/pci/devices/<id>/remove
        echo 0 > /sys/bus/pci/slots/<slot>/power
        echo 1 > /sys/bus/pci/slots/<slot>/power
    
    clp_disable_fn() / clp_enable_fn() call clp_set_pci_fn() to first
    disable and then reenable the function.
    
    When the function is already in the requested state we may be left with
    an invalid function handle.
    
    To get a new valid handle we do a clp_list_pci() call. For this we need
    both the function ID and function handle in clp_set_pci_fn() so pass the
    zdev and get both.
    
    To simplify things also pull setting the refreshed function handle into
    clp_set_pci_fn()
    Signed-off-by: default avatarNiklas Schnelle <schnelle@linux.ibm.com>
    Reviewed-by: default avatarPeter Oberparleiter <oberpar@linux.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    17cdec96
pci_clp.c 14.9 KB