Overview
About vulnerability
In the Linux kernel, the following vulnerability has been resolved:
gpio: shared: fix deadlock on shared proxy’s parent removal
Commit 710abda58055 (“gpio: shared: call gpio_chip::of_xlate() if set”) used the mutex embedded in struct gpio_shared_entry to protect the offset field which now can be modified after assignment. The critical section however is too wide and introduced a potential deadlock on the removal of the shared GPIO proxy’s parent.
Make the critical section shorter - only protect the offset when it’s being read.
While at it: mention the fact that the entry lock is now also used to protect against concurrent access to the offset field in the structure’s documentation.