It is not allowed to call kfree_skb() from hardware interrupt context or with interrupts being disabled. As the comment of dev_kfree_skb_irq() says, kfree_skb() can be replaced with dev_kfree_skb_irq() under spin_lock_irqsave(). Yang Yingliang (4): libertas_tf: don't call kfree_skb() under spin_lock_irqsave() libertas: don't call kfree_skb() under spin_lock_irqsave() in process_cmdrequest() libertas: don't call kfree_skb() under spin_lock_irqsave() in lbs_stop_iface() libertas: don't call kfree_skb() under spin_lock_irqsave() in lbs_mac_event_disconnected() drivers/net/wireless/marvell/libertas/cmdresp.c | 2 +- drivers/net/wireless/marvell/libertas/if_usb.c | 2 +- drivers/net/wireless/marvell/libertas/main.c | 2 +- drivers/net/wireless/marvell/libertas_tf/if_usb.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) -- 2.25.1