In the Linux kernel, the following vulnerability has been resolved: drm: bridge: adv7511: unregister cec i2c device after cec adapter cecunregisteradapter() assumes that the underlying adapter ops are callable. For example, if the CEC adapter currently has a valid physical address, then the unregistration procedure will invalidate the physical address by setting it to f.f.f.f. Whence the following kernel oops observed after removing the adv7511 module: Unable to handle kernel execution of user memory at virtual address 0000000000000000 Internal error: Oops: 86000004 [#1] PREEMPTRT SMP Call trace: 0x0 adv7511cecadaplogaddr+0x1ac/0x1c8 [adv7511] cecadapunconfigure+0x44/0x90 [cec] _cecsphysaddr.part.0+0x68/0x230 [cec] _cecsphysaddr+0x40/0x50 [cec] cecunregisteradapter+0xb4/0x118 [cec] adv7511remove+0x60/0x90 [adv7511] i2cdeviceremove+0x34/0xe0 devicereleasedriverinternal+0x114/0x1f0 driverdetach+0x54/0xe0 busremovedriver+0x60/0xd8 driverunregister+0x34/0x60 i2cdeldriver+0x2c/0x68 adv7511exit+0x1c/0x67c [adv7511] _arm64sysdeletemodule+0x154/0x288 invokesyscall+0x48/0x100 el0svccommon.constprop.0+0x48/0xe8 doel0svc+0x28/0x88 el0svc+0x1c/0x50 el0t64synchandler+0xa8/0xb0 el0t64sync+0x15c/0x160 Code: bad PC value ---[ end trace 0000000000000000 ]--- Protect against this scenario by unregistering i2ccec after unregistering the CEC adapter. Duly disable the CEC clock afterwards too.