Commit be9b3f9a authored by Nicolas Frattaroli's avatar Nicolas Frattaroli Committed by Dmitry Baryshkov
Browse files

drm/connector: only call HDMI audio helper plugged cb if non-null



On driver remove, sound/soc/codecs/hdmi-codec.c calls the plugged_cb
with NULL as the callback function and codec_dev, as seen in its
hdmi_remove function.

The HDMI audio helper then happily tries calling said null function
pointer, and produces an Oops as a result.

Fix this by only executing the callback if fn is non-null. This means
the .plugged_cb and .plugged_cb_dev members still get appropriately
cleared.

Fixes: baf61664 ("drm/connector: implement generic HDMI audio helpers")
Signed-off-by: default avatarNicolas Frattaroli <nicolas.frattaroli@collabora.com>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250527-hdmi-audio-helper-remove-fix-v1-1-6cf77de364d8@collabora.com


Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
parent 4673dec8
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ static int drm_connector_hdmi_audio_hook_plugged_cb(struct device *dev,
	connector->hdmi_audio.plugged_cb = fn;
	connector->hdmi_audio.plugged_cb_dev = codec_dev;

	if (fn)
		fn(codec_dev, connector->hdmi_audio.last_state);

	mutex_unlock(&connector->hdmi_audio.lock);