PT-2026-86699 · Azure Linux · Kernel
Published
2026-08-28
·
Updated
2026-08-28
None
No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
i2c: imx: Fix slave registration race and error handling
In i2c imx reg slave(), the slave pointer was assigned before
pm runtime resume and get(). If pm runtime resume and get() failed,
the error path returned without clearing i2c imx->slave, leaving it
non-NULL and causing all subsequent registration attempts to fail
with -EBUSY.
Additionally, because this driver uses a shared IRQ, the interrupt
handler i2c imx isr() can execute concurrently and, after acquiring
slave lock, dereference i2c imx->slave. The previous fix attempt
added a lockless i2c imx->slave = NULL on the error path, but that
could race with the ISR under the lock and still cause a NULL pointer
dereference.
Fix both issues by deferring the assignment of i2c imx->slave and
i2c imx->last slave event to after a successful resume, and by
performing the assignment inside the slave lock critical section.
This guarantees that the slave pointer is never left stale on the
error path and is always valid when observed by the interrupt handler.
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Kernel