linux-stable/drivers/gpu/drm/bridge
Mads Bligaard Nielsen aeedaee5ef
drm/bridge: adv7511: fix crash on irq during probe
Moved IRQ registration down to end of adv7511_probe().

If an IRQ already is pending during adv7511_probe
(before adv7511_cec_init) then cec_received_msg_ts
could crash using uninitialized data:

    Unable to handle kernel read from unreadable memory at virtual address 00000000000003d5
    Internal error: Oops: 96000004 [#1] PREEMPT_RT SMP
    Call trace:
     cec_received_msg_ts+0x48/0x990 [cec]
     adv7511_cec_irq_process+0x1cc/0x308 [adv7511]
     adv7511_irq_process+0xd8/0x120 [adv7511]
     adv7511_irq_handler+0x1c/0x30 [adv7511]
     irq_thread_fn+0x30/0xa0
     irq_thread+0x14c/0x238
     kthread+0x190/0x1a8

Fixes: 3b1b975003 ("drm: adv7511/33: add HDMI CEC support")
Signed-off-by: Mads Bligaard Nielsen <bli@bang-olufsen.dk>
Signed-off-by: Alvin Šipraga <alsi@bang-olufsen.dk>
Reviewed-by: Robert Foss <rfoss@kernel.org>
Signed-off-by: Robert Foss <rfoss@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240219-adv7511-cec-irq-crash-fix-v2-1-245e53c4b96f@bang-olufsen.dk
2024-02-21 16:29:58 +01:00
..
adv7511 drm/bridge: adv7511: fix crash on irq during probe 2024-02-21 16:29:58 +01:00
analogix drm/bridge: anx7625: switch to ->edid_read callback 2024-02-09 10:15:18 +02:00
cadence drm/bridge: cdns-mhdp8546: clear the EDID property on failures 2024-02-09 10:15:27 +02:00
imx drm/bridge: imx8mp-hdmi-pvi: Fix build warnings 2024-02-07 10:23:31 +01:00
synopsys drm: bridge: dw_hdmi: Set DRM bridge type 2024-02-16 14:48:36 +01:00
Kconfig Linux 6.7-rc5 2023-12-12 11:32:33 +10:00
Makefile drm/bridge: implement generic DP HPD bridge 2023-12-04 16:07:29 +02:00
aux-bridge.c drm/bridge: properly refcount DT nodes in aux bridge drivers 2023-12-19 02:06:16 +02:00
aux-hpd-bridge.c drm/bridge: properly refcount DT nodes in aux bridge drivers 2023-12-19 02:06:16 +02:00
chipone-icn6211.c drm/bridge: icn6211: Convert to use maple tree register cache 2023-10-02 09:09:18 +02:00
chrontel-ch7033.c drm/bridge: chrontel-ch7033: switch to drm_bridge_edid_read() 2024-02-08 17:11:04 +02:00
cros-ec-anx7688.c drm: Switch i2c drivers back to use .probe() 2023-05-30 16:55:16 -07:00
display-connector.c drm/bridge: display-connector: switch to ->edid_read callback 2024-02-09 10:15:29 +02:00
fsl-ldb.c drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
ite-it6505.c drm/bridge: it6505: switch to ->edid_read callback 2024-02-09 10:15:32 +02:00
ite-it66121.c drm: bridge: it66121: switch to ->edid_read callback 2024-02-09 10:15:34 +02:00
lontium-lt8912b.c drm/bridge: lt8912b: use ->edid_read callback 2024-02-08 17:11:22 +02:00
lontium-lt9211.c drm/bridge: lt9211: Convert to use maple tree register cache 2023-10-02 09:09:19 +02:00
lontium-lt9611.c drm/bridge: lt9611: switch to ->edid_read callback 2024-02-09 10:15:37 +02:00
lontium-lt9611uxc.c drm/bridge: lt9611uxc: switch to ->edid_read callback 2024-02-09 10:15:39 +02:00
lvds-codec.c drm/bridge: lvds-codec: Implement atomic_get_input_bus_fmts for LVDS encoder 2023-08-11 15:09:59 +02:00
megachips-stdpxxxx-ge-b850v3-fw.c drm/bridge: megachips: switch to ->edid_read callback 2024-02-09 10:15:41 +02:00
nwl-dsi.c drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
nwl-dsi.h
nxp-ptn3460.c drm/bridge: nxp-ptn3460: switch to ->edid_read callback 2024-02-09 10:15:43 +02:00
panel.c Revert "drm/bridge: panel: Add a device link between drm device and panel device" 2023-11-28 11:07:30 +01:00
parade-ps8622.c drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
parade-ps8640.c drm/bridge: parade-ps8640: Make sure we drop the AUX mutex in the error case 2024-01-17 12:08:02 -08:00
samsung-dsim.c Merge drm/drm-next into drm-misc-next 2024-02-07 13:02:20 +01:00
sii902x.c drm/bridge: sii902x: switch to ->edid_read callback 2024-02-09 10:15:48 +02:00
sii9234.c drm: Switch i2c drivers back to use .probe() 2023-05-30 16:55:16 -07:00
sil-sii8620.c drm/bridge: fix -Wunused-const-variable= warning 2023-07-31 11:14:24 +02:00
sil-sii8620.h
simple-bridge.c drm: bridge: simple-bridge: clear the EDID property on failures 2024-02-08 17:12:21 +02:00
tc358762.c drm/bridge: tc358762: Handle HS/VS polarity 2023-06-22 11:13:31 +02:00
tc358764.c drm/bridge: tc358764: Use BIT() macro for actual bits 2023-06-22 11:02:58 +02:00
tc358767.c drm/bridge: tc358767: switch to ->edid_read callback 2024-02-09 10:16:16 +02:00
tc358768.c drm/bridge: tc358768: Attempt to fix DSI horizontal timings 2023-09-20 13:54:08 +02:00
tc358775.c drm: Switch i2c drivers back to use .probe() 2023-05-30 16:55:16 -07:00
thc63lvd1024.c
ti-dlpc3433.c drm/bridge: dpc3433: Convert to use maple tree register cache 2023-10-02 09:09:17 +02:00
ti-sn65dsi83.c drm/bridge: sn65dsi83: Convert to use maple tree register cache 2023-10-02 09:09:20 +02:00
ti-sn65dsi86.c drm/bridge: ti-sn65dsi86: switch to ->edid_read callback 2024-02-09 10:16:18 +02:00
ti-tfp410.c drm/bridge: tfp410: clear the EDID property on failures 2024-02-08 17:12:26 +02:00
ti-tpd12s015.c drm/bridge: tpd12s015: Convert to platform remove callback returning void 2023-11-21 09:17:53 +01:00