Forwarded: Re: [syzbot] [wireless?] [usb?] WARNING in __carl9170_tx_process_status
From: syzbot
Date: Mon Jul 06 2026 - 13:53:01 EST
For archival purposes, forwarding an incoming command email to
linux-kernel@xxxxxxxxxxxxxxx, syzkaller-bugs@xxxxxxxxxxxxxxxx.
***
Subject: Re: [syzbot] [wireless?] [usb?] WARNING in __carl9170_tx_process_status
Author: malayarout91@xxxxxxxxx
Hi,
Please test the following patch.
#syz test
diff --git a/drivers/net/wireless/ath/carl9170/tx.c
b/drivers/net/wireless/ath/carl9170/tx.c
index 59caf1e4b158..b5a028abe4c6 100644
--- a/drivers/net/wireless/ath/carl9170/tx.c
+++ b/drivers/net/wireless/ath/carl9170/tx.c
@@ -514,8 +514,9 @@ static struct sk_buff
*carl9170_get_queued_skb(struct ar9170 *ar, u8 cookie,
struct sk_buff_head *queue)
{
struct sk_buff *skb;
+ unsigned long flags;
- spin_lock_bh(&queue->lock);
+ spin_lock_irqsave(&queue->lock, flags);
skb_queue_walk(queue, skb) {
struct _carl9170_tx_superframe *txc = (void *) skb->data;
@@ -523,12 +524,12 @@ static struct sk_buff
*carl9170_get_queued_skb(struct ar9170 *ar, u8 cookie,
continue;
__skb_unlink(skb, queue);
- spin_unlock_bh(&queue->lock);
+ spin_unlock_irqrestore(&queue->lock, flags);
carl9170_release_dev_space(ar, skb);
return skb;
}
- spin_unlock_bh(&queue->lock);
+ spin_unlock_irqrestore(&queue->lock, flags);
return NULL;
}