• Lukas Wunner's avatar
    PCI: pciehp: Stop blinking on slot enable failure · b0ccd9dd
    Lukas Wunner authored
    If the attention button is pressed to power on the slot AND the user
    powers on the slot via sysfs before 5 seconds have elapsed AND powering
    on the slot fails because either the slot is unoccupied OR the latch is
    open, we neglect turning off the green LED so it keeps on blinking.
    
    That's because the error path of pciehp_sysfs_enable_slot() doesn't call
    pciehp_green_led_off(), unlike pciehp_power_thread() which does.
    The bug has been present since 2004 when the driver was introduced.
    
    Fix by deduplicating common code in pciehp_sysfs_enable_slot() and
    pciehp_power_thread() into a wrapper function pciehp_enable_slot() and
    renaming the existing function to __pciehp_enable_slot().  Same for
    pciehp_disable_slot().  This will also simplify the upcoming rework of
    pciehp's event handling.
    Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    b0ccd9dd
pciehp_ctrl.c 11.9 KB