diff options
| author | Mariano Baragiola <mbaragiola@linux.com> | 2026-08-09 09:49:47 -0300 |
|---|---|---|
| committer | Johannes Berg <johannes.berg@intel.com> | 2026-09-04 10:08:00 +0200 |
| commit | f9edf7cf63b96d2b776fca8d258d3c5256e40c8e (patch) | |
| tree | 94feb962ea69a99693ae246af9c083781842c7b1 | |
| parent | ba6cb7c0868a412c2eb68e8efd5aa38bfb258a14 (diff) | |
| download | linux-next-f9edf7cf63b96d2b776fca8d258d3c5256e40c8e.tar.gz linux-next-f9edf7cf63b96d2b776fca8d258d3c5256e40c8e.zip | |
wifi: virt_wifi: free skb when disconnected
When the simulated link is disconnected, virt_wifi_start_xmit() returns
NET_XMIT_DROP without freeing the skb. dev_hard_start_xmit() treats this
return value as consumed, so every packet sent while disconnected leaks its
skb.
Free the skb before returning the drop status.
Fixes: c7cdba31ed8b ("mac80211-next: rtnetlink wifi simulation device")
Signed-off-by: Mariano Baragiola <mbaragiola@linux.com>
Link: https://patch.msgid.link/20260809124947.3590270-1-mbaragiola@linux.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| -rw-r--r-- | drivers/net/wireless/virtual/virt_wifi.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/virtual/virt_wifi.c b/drivers/net/wireless/virtual/virt_wifi.c index 2335e45db8b8..b69a4650fba8 100644 --- a/drivers/net/wireless/virtual/virt_wifi.c +++ b/drivers/net/wireless/virtual/virt_wifi.c @@ -434,6 +434,7 @@ static netdev_tx_t virt_wifi_start_xmit(struct sk_buff *skb, priv->tx_packets++; if (!priv->is_connected) { priv->tx_failed++; + dev_kfree_skb_any(skb); return NET_XMIT_DROP; } |
