OpenCloudOS-Kernel/drivers/isdn/hardware/mISDN
Yang Yingliang 1232946cf5 mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave()
It is not allowed to call kfree_skb() or consume_skb() from hardware
interrupt context or with hardware interrupts being disabled.

skb_queue_purge() is called under spin_lock_irqsave() in handle_dmsg()
and hfcm_l1callback(), kfree_skb() is called in them, to fix this, use
skb_queue_splice_init() to move the dch->squeue to a free queue, also
enqueue the tx_skb and rx_skb, at last calling __skb_queue_purge() to
free the SKBs afer unlock.

Fixes: af69fb3a8f ("Add mISDN HFC multiport driver")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-12-13 19:24:52 -08:00
..
Kconfig isdn: Fix Kconfig indentation 2019-11-20 12:30:47 -08:00
Makefile isdn: hdlc: move into mISDN 2019-05-31 11:13:10 +02:00
avmfritz.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
hfc_multi.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hfc_multi_8xx.h treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
hfc_pci.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 153 2019-05-30 11:26:32 -07:00
hfcmulti.c mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() 2022-12-13 19:24:52 -08:00
hfcpci.c mISDN: hfcpci: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() 2022-12-13 19:24:52 -08:00
hfcsusb.c mISDN: hfcsusb: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() 2022-12-13 19:24:52 -08:00
hfcsusb.h isdn: hfcsusb: Spelling and grammar fixes 2019-10-28 13:42:36 -07:00
iohelper.h isdn: remove extra spaces in the header file 2021-03-11 18:23:55 -08:00
ipac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 176 2019-05-30 11:29:19 -07:00
isar.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 176 2019-05-30 11:29:19 -07:00
isdnhdlc.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
isdnhdlc.h isdn: deprecate non-mISDN drivers 2019-06-02 17:48:58 -07:00
mISDNinfineon.c isdn: mISDNinfineon: check/cleanup ioremap failure correctly in setup_io 2021-05-13 18:32:06 +02:00
mISDNipac.c mISDN: fix typo "frame to short" -> "frame too short" 2022-03-21 13:26:38 +00:00
mISDNisar.c mISDN: fix typo "frame to short" -> "frame too short" 2022-03-21 13:26:38 +00:00
netjet.c isdn: mISDN: netjet: fix wrong check of device registration 2022-11-02 12:34:48 +00:00
netjet.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 176 2019-05-30 11:29:19 -07:00
speedfax.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 176 2019-05-30 11:29:19 -07:00
w6692.c Printk changes for 5.5 2019-11-25 19:40:40 -08:00
w6692.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 176 2019-05-30 11:29:19 -07:00