13 Feb
2020
13 Feb
'20
9:02 a.m.
On Thu, Feb 13, 2020 at 9:57 AM CK Hu ck.hu@mediatek.com wrote:
I'm not only consider the race condition of plugged_cb and codec_dev. I also care about the atomic of mtk_cec_hpd_high() and hdmi->plugged_cb(). If these two function is not an atomic operation, below is an example of problem:
<Status disconnected> 1. Thread A call mtk_hdmi_audio_hook_plugged_cb() 2. Thread A call mtk_cec_hpd_high() and get disconnected. <Status connected> 3. Thread B call hdmi_conn_detect() 4. Thread B call mtk_cec_hpd_high() and get connected 5. Thread B callback plugged_cb() with connected 6. Thread A callback plugged_cb() with disconnected (Bug here)
Another attempt: https://patchwork.kernel.org/patch/11379979/