It is not allowed to call kfree_skb() from hardware interrupt context or with interrupts being disabled. So replace kfree_skb() with dev_kfree_skb_irq() under spin_lock_irqsave().
Unified · Split
| @@ -3985,7 +3985,7 @@ void hci_req_cmd_complete(struct hci_dev *hdev, u16 opcode, u8 status, · 3984 unmodified lines | ||
| 3985 | 3985 | *req_complete_skb = bt_cb(skb)->hci.req_complete_skb; |
| 3986 | 3986 | else |
| 3987 | 3987 | *req_complete = bt_cb(skb)->hci.req_complete; |
| 3988 | − kfree_skb(skb); | |
| 3988 | + dev_kfree_skb_irq(skb); | |
| 3989 | 3989 | } |
| 3990 | 3990 | spin_unlock_irqrestore(&hdev->cmd_q.lock, flags); |
| 3991 | 3991 | } |