linux/drivers
Yang Yingliang ddc9648db1 mISDN: hfcsusb: 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.

It should use dev_kfree_skb_irq() or dev_consume_skb_irq() instead.
The difference between them is free reason, dev_kfree_skb_irq() means
the SKB is dropped in error and dev_consume_skb_irq() means the SKB
is consumed in normal.

skb_queue_purge() is called under spin_lock_irqsave() in hfcusb_l2l1D(),
kfree_skb() is called in it, 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.

In tx_iso_complete(), dev_kfree_skb() is called to consume the transmitted
SKB, so replace it with dev_consume_skb_irq().

Fixes: 69f52adb2d ("mISDN: Add HFC USB 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
..
accel accel: add dedicated minor for accelerator devices 2022-11-22 13:14:44 +02:00
accessibility speakup: replace utils' u_char with unsigned char 2022-11-09 15:25:24 +01:00
acpi iov_iter work; most of that is about getting rid of 2022-12-12 18:29:54 -08:00
amba ARM updates for 6.2 2022-12-13 15:22:14 -08:00
android binder: validate alloc->mm in ->mmap() handler 2022-11-09 15:41:27 +01:00
ata ata changes for 6.2 2022-12-13 10:54:19 -08:00
atm
auxdisplay
base regmap: Updates for v6.2 2022-12-13 12:44:40 -08:00
bcma bcma: Fail probe if GPIO subdriver fails 2022-11-04 12:59:51 +02:00
block for-6.2/block-2022-12-08 2022-12-13 10:43:59 -08:00
bluetooth Networking changes for 6.2. 2022-12-13 15:47:48 -08:00
bus Random number generator updates for Linux 6.2-rc1. 2022-12-12 16:22:22 -08:00
cdrom
char Small fixes, a new SSIF i2c BMC-side interface 2022-12-13 13:36:39 -08:00
clk A pile of clk driver updates with a small tracepoint patch to the clk core this 2022-12-13 13:46:07 -08:00
clocksource Updates for timers, timekeeping and drivers: 2022-12-12 12:52:02 -08:00
comedi
connector
counter
cpufreq linux-kselftest-next-6.2-rc1 2022-12-12 16:39:38 -08:00
cpuidle
crypto net: devlink: let the core report the driver name instead of the drivers 2022-11-30 21:49:38 -08:00
cxl cxl/region: Fix memdev reuse check 2022-12-08 13:03:47 -08:00
dax device-dax: Fix duplicate 'hmem' device registration 2022-11-21 15:34:40 -08:00
dca
devfreq PM / devfreq: event: use devm_platform_get_and_ioremap_resource() 2022-12-05 21:57:20 +09:00
dio
dma genirq: Get rid of GENERIC_MSI_IRQ_DOMAIN 2022-11-17 15:15:20 +01:00
dma-buf drm for 6.2: 2022-12-13 11:59:58 -08:00
edac Merge branches 'edac-ghes' and 'edac-misc' into edac-updates-for-v6.2 2022-12-12 15:40:03 +01:00
eisa
extcon extcon: usbc-tusb320: Call the Type-C IRQ handler only if a port is registered 2022-11-08 16:45:31 +01:00
firewire
firmware ARM updates for 6.2 2022-12-13 15:22:14 -08:00
fpga fpga: m10bmc-sec: Fix kconfig dependencies 2022-11-15 21:46:58 +08:00
fsi use less confusing names for iov_iter direction initializers 2022-11-25 13:01:55 -05:00
gnss
gpio Pin control changes for the v6.2 kernel cycle: 2022-12-13 13:03:06 -08:00
gpu drm for 6.2: 2022-12-13 11:59:58 -08:00
greybus
hid for-linus-2022121301 2022-12-13 13:32:56 -08:00
hsi
hte
hv Networking changes for 6.2. 2022-12-13 15:47:48 -08:00
hwmon hwmon updates for v6.2 merge window 2022-12-13 13:09:38 -08:00
hwspinlock
hwtracing
i2c sound updates for 6.2-rc1 2022-12-13 11:27:26 -08:00
i3c
idle
iio Input updates for 6.2 merge window: 2022-12-13 13:20:36 -08:00
infiniband Networking changes for 6.2. 2022-12-13 15:47:48 -08:00
input Input updates for 6.2 merge window: 2022-12-13 13:20:36 -08:00
interconnect
iommu dma-mapping updates for Linux 2.6 2022-12-13 09:05:19 -08:00
ipack
irqchip irqchip updates for 6.2 2022-12-07 17:50:44 +01:00
isdn mISDN: hfcsusb: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() 2022-12-13 19:24:52 -08:00
leds
macintosh
mailbox ACPI updates for 6.2-rc1 2022-12-12 13:38:17 -08:00
mcb
md - Fix use-after-free races due to missing resource cleanup during DM 2022-12-13 10:58:09 -08:00
media drm for 6.2: 2022-12-13 11:59:58 -08:00
memory ARM updates for 6.2 2022-12-13 15:22:14 -08:00
memstick memstick/mspro_block: Convert to use sysfs_emit()/sysfs_emit_at() APIs 2022-12-09 10:29:58 +01:00
message
mfd
misc drm for 6.2: 2022-12-13 11:59:58 -08:00
mmc MMC core: 2022-12-13 13:41:26 -08:00
most
mtd MTD core changes: 2022-12-13 12:32:07 -08:00
mux
net bonding: do failover when high prio link up 2022-12-13 19:19:32 -08:00
nfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-11-29 13:04:52 -08:00
ntb
nubus
nvdimm nvdimm/region: Move cache management to the region driver 2022-12-02 23:52:32 -08:00
nvme for-6.2/block-2022-12-08 2022-12-13 10:43:59 -08:00
nvmem SoC driver updates for 6.2 2022-12-12 10:17:08 -08:00
of Devicetree updates for v6.2: 2022-12-13 13:13:55 -08:00
opp OPP: decouple dt properties in opp_parse_supplies() 2022-11-04 10:59:07 +05:30
parisc
parport parport_pc: Avoid FIFO port location truncation 2022-11-09 15:40:32 +01:00
pci for-6.2/block-2022-12-08 2022-12-13 10:43:59 -08:00
pcmcia
peci
perf Perf events updates for v6.2: 2022-12-12 15:19:38 -08:00
phy media updates for v6.2-rc1 2022-12-13 11:36:58 -08:00
pinctrl Pin control changes for the v6.2 kernel cycle: 2022-12-13 13:03:06 -08:00
platform - Add support for multiple testing sequences to the Intel In-Field Scan 2022-12-13 15:05:29 -08:00
pnp PNP: Do not disable devices on suspend when they cannot be re-enabled on resume 2022-11-25 19:36:52 +01:00
power power: supply: ab8500: Defer thermal zone probe 2022-11-01 01:00:32 +01:00
powercap powercap: idle_inject: Fix warnings with make W=1 2022-12-02 20:49:49 +01:00
pps
ps3
ptp Networking changes for 6.2. 2022-12-13 15:47:48 -08:00
pwm pwm: lpss: Rename pwm_lpss_probe() --> devm_pwm_lpss_probe() 2022-11-22 16:36:27 +02:00
rapidio rapidio: devices: fix missing put_device in mport_cdev_open 2022-12-11 19:30:20 -08:00
ras RAS: Fix return value from show_trace() 2022-10-31 18:55:18 +01:00
regulator regulator: Updates for v6.2 2022-12-13 12:49:59 -08:00
remoteproc
reset
rpmsg
rtc
s390 Networking changes for 6.2. 2022-12-13 15:47:48 -08:00
sbus sparc: sbus: treat CPU index as integer 2022-11-19 00:56:15 +01:00
scsi ata changes for 6.2 2022-12-13 10:54:19 -08:00
sh
siox siox: fix possible memory leak in siox_device_add() 2022-11-09 15:40:14 +01:00
slimbus slimbus: qcom-ngd: Fix build error when CONFIG_SLIM_QCOM_NGD_CTRL=y && CONFIG_QCOM_RPROC_COMMON=m 2022-11-10 18:45:40 +01:00
soc ARM updates for 6.2 2022-12-13 15:22:14 -08:00
soundwire ASoC: adau1372: fixes after debugging custom board 2022-11-25 21:26:21 +00:00
spi spi: Updates for v6.2 2022-12-13 12:54:31 -08:00
spmi
ssb
staging Networking changes for 6.2. 2022-12-13 15:47:48 -08:00
target use less confusing names for iov_iter direction initializers 2022-11-25 13:01:55 -05:00
tc
tee SoC driver updates for 6.2 2022-12-12 10:17:08 -08:00
thermal Thermal control updates for 6.2-rc1 2022-12-12 13:45:21 -08:00
thunderbolt
tty printk changes for 6.2 2022-12-12 09:01:36 -08:00
ufs for-6.2/block-2022-12-08 2022-12-13 10:43:59 -08:00
uio
usb Networking changes for 6.2. 2022-12-13 15:47:48 -08:00
vdpa
vfio Updates for the interrupt core and driver subsystem: 2022-12-12 11:21:29 -08:00
vhost use less confusing names for iov_iter direction initializers 2022-11-25 13:01:55 -05:00
video drm for 6.2: 2022-12-13 11:59:58 -08:00
virt - Two minor fixes to the sev-guest driver 2022-12-13 15:17:55 -08:00
virtio
vlynq
w1
watchdog ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
xen drm for 6.2: 2022-12-13 11:59:58 -08:00
zorro
Kconfig drivers/accel: define kconfig and register a new major 2022-11-22 13:13:51 +02:00
Makefile