mirror-linux/drivers/atm
Chengfeng Ye 15319a4e8e atm: solos-pci: Fix potential deadlock on &tx_queue_lock
As &card->tx_queue_lock is acquired under softirq context along the
following call chain from solos_bh(), other acquisition of the same
lock inside process context should disable at least bh to avoid double
lock.

<deadlock #2>
pclose()
--> spin_lock(&card->tx_queue_lock)
<interrupt>
   --> solos_bh()
   --> fpga_tx()
   --> spin_lock(&card->tx_queue_lock)

This flaw was found by an experimental static analysis tool I am
developing for irq-related deadlock.

To prevent the potential deadlock, the patch uses spin_lock_bh()
on &card->tx_queue_lock under process context code consistently to
prevent the possible deadlock scenario.

Fixes: 213e85d389 ("solos-pci: clean up pclose() function")
Signed-off-by: Chengfeng Ye <dg573847474@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-09 21:17:45 +00:00
..
.gitignore
Kconfig net: atm: remove support for ZeitNet ZN122x ATM devices 2022-04-27 12:22:56 +01:00
Makefile net: atm: remove support for ZeitNet ZN122x ATM devices 2022-04-27 12:22:56 +01:00
adummy.c
atmtcp.c
eni.c atm: eni: Add check for dma_map_single 2022-03-15 11:01:52 +00:00
eni.h
fore200e.c atm: fore200e: Drop unnecessary of_match_device() 2023-10-10 12:41:17 +02:00
fore200e.h
he.c atm: he: Use the bitmap API to allocate bitmaps 2022-07-11 19:49:53 -07:00
he.h
idt77105.c
idt77105.h
idt77252.c atm: idt77252: fix kmemleak when rmmod idt77252 2023-03-21 20:19:28 -07:00
idt77252.h
idt77252_tables.h
iphase.c atm: iphase: Do PCI error checks on own line 2023-10-10 16:40:13 -05:00
iphase.h atm: Replace custom isprint() with generic analogue 2021-05-10 14:51:01 -07:00
lanai.c
midway.h
nicstar.c atm: nicstar: Use kcalloc() to simplify code 2022-02-19 16:38:12 +00:00
nicstar.h
nicstarmac.c net: remove comments that mention obsolete __SLOW_DOWN_IO 2022-04-26 17:09:24 -07:00
nicstarmac.copyright
solos-attrlist.c
solos-pci.c atm: solos-pci: Fix potential deadlock on &tx_queue_lock 2023-12-09 21:17:45 +00:00
suni.c
suni.h
tonga.h
zeprom.h atm: Fix typo 2021-05-21 13:55:32 -07:00