• Chris Wilson's avatar
    ALSA: hda - Handle pm failure during hotplug · aaa23f86
    Chris Wilson authored
    Obtaining the runtime pm wakeref can fail, especially in a hotplug
    scenario where i915.ko has been unloaded. If we do not catch the
    failure, we end up with an unbalanced pm.
    
    v2 additions by tiwai:
    hdmi_present_sense() checks the return value and handle only a
    negative error case and bails out only if it's really still suspended.
    Also, snd_hda_power_down() is called at the error path so that the
    refcount is balanced.
    
    Along with it, the spec->pcm_lock is taken outside
    hdmi_present_sense() in the caller side, so that it won't cause
    deadlock at reentrace via runtime resume.
    
    v3 fix by tiwai:
    Missing linux/pm_runtime.h is included.
    
    References: 222bde03 ("ALSA: hda - Fix mutex deadlock at HDMI/DP hotplug")
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    aaa23f86
patch_hdmi.c 105 KB