• Takashi Iwai's avatar
    firmware: Avoid deadlock of usermodehelper lock at shutdown · fe304143
    Takashi Iwai authored
    When a system goes to reboot/shutdown, it tries to disable the
    usermode helper via usermodehelper_disable().  This might be blocked
    when a driver tries to load a firmware beforehand and it's stuck by
    some reason.  For example, dell_rbu driver loads the firmware in
    non-hotplug mode and waits for user-space clearing the loading sysfs
    flag.  If user-space doesn't clear the flag, it waits forever, thus
    blocks the reboot, too.
    
    As a workaround, in this patch, the firmware class driver registers a
    reboot notifier so that it can abort all pending f/w bufs before
    issuing usermodehelper_disable().
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    Acked-by: default avatarMing Lei <ming.lei@canonical.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    fe304143
firmware_class.c 36.4 KB