[PATCH 0/3] uio: uio_dmem_genirq: Fix locking issues in irq config and handling

Rafael Mendonca posted 3 patches 1 year, 6 months ago
drivers/uio/uio_dmem_genirq.c | 22 ++++++++++++++--------
1 file changed, 14 insertions(+), 8 deletions(-)
[PATCH 0/3] uio: uio_dmem_genirq: Fix locking issues in irq config and handling
Posted by Rafael Mendonca 1 year, 6 months ago
The goal of this series is to apply the changes from [1] to the
"uio_dmem_genirq" driver. The implementation of "uio_dmem_genirq" was
based on "uio_pdrv_genirq" and it is used in a similar manner to the
"uio_pdrv_genirq" driver with respect to interrupt configuration and
handling. At the time "uio_dmem_genirq" was introduced, both had the
same implementation of the 'uio_info' handlers irqcontrol() and
handler(). Later, [1] was only applied to "uio_pdrv_genirq", even though
both had the same issues addressed by the patch, which ended up making
them a little different.

The original motivation for this series was to fix a bug introduced by
commit [2], which can be solved by copying the implementation of the
interrupt configuration and handling from "uio_pdrv_genirq" to
"uio_dmem_genirq", thus, making their implementation similar again.

Since patch [1] solves the bug introduced in [2] and also addresses
other issues, I broke it into 3 separate changes.

[1] 34cb27528398 ("UIO: Fix concurrency issue")
https://lore.kernel.org/lkml/201306201636.00535.vitas@nppfactor.kiev.ua/
[2]  b74351287d4b ("uio: fix a sleep-in-atomic-context bug in
uio_dmem_genirq_irqcontrol()")
https://lore.kernel.org/all/20191218094405.6009-1-baijiaju1990@gmail.com/

Rafael Mendonca (3):
  uio: uio_dmem_genirq: Fix missing unlock in irq configuration
  uio: uio_dmem_genirq: Fix deadlock between irq config and handling
  uio: uio_dmem_genirq: Use non-atomic bit operations in irq config and handling

 drivers/uio/uio_dmem_genirq.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

-- 
2.34.1