Patch "wifi: rtl8xxxu: Fix memory leaks with RTL8723BU, RTL8192EU" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    wifi: rtl8xxxu: Fix memory leaks with RTL8723BU, RTL8192EU

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     wifi-rtl8xxxu-fix-memory-leaks-with-rtl8723bu-rtl819.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 4e168397eb0512cb3841eaf9a6dc37a1dc7ffb93
Author: Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx>
Date:   Thu Dec 22 13:48:04 2022 +0200

    wifi: rtl8xxxu: Fix memory leaks with RTL8723BU, RTL8192EU
    
    [ Upstream commit b39f662ce1648db0b9de32e6a849b098480793cb ]
    
    The wifi + bluetooth combo chip RTL8723BU can leak memory (especially?)
    when it's connected to a bluetooth audio device. The busy bluetooth
    traffic generates lots of C2H (card to host) messages, which are not
    freed correctly.
    
    To fix this, move the dev_kfree_skb() call in rtl8xxxu_c2hcmd_callback()
    inside the loop where skb_dequeue() is called.
    
    The RTL8192EU leaks memory because the C2H messages are added to the
    queue and left there forever. (This was fine in the past because it
    probably wasn't sending any C2H messages until commit e542e66b7c2e
    ("wifi: rtl8xxxu: gen2: Turn on the rate control"). Since that commit
    it sends a C2H message when the TX rate changes.)
    
    To fix this, delete the check for rf_paths > 1 and the goto. Let the
    function process the C2H messages from RTL8192EU like the ones from
    the other chips.
    
    Theoretically the RTL8188FU could also leak like RTL8723BU, but it
    most likely doesn't send C2H messages frequently enough.
    
    This change was tested with RTL8723BU by Erhard F. I tested it with
    RTL8188FU and RTL8192EU.
    
    Reported-by: Erhard F. <erhard_f@xxxxxxxxxxx>
    Tested-by: Erhard F. <erhard_f@xxxxxxxxxxx>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=215197
    Fixes: e542e66b7c2e ("rtl8xxxu: add bluetooth co-existence support for single antenna")
    Signed-off-by: Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx>
    Reviewed-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx>
    Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/03b099c1-c671-d252-36f4-57b70d721f9d@xxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
index 8d91939dea8cf..a285f0dd9b9b1 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
@@ -5547,9 +5547,6 @@ static void rtl8xxxu_c2hcmd_callback(struct work_struct *work)
 	btcoex = &priv->bt_coex;
 	rarpt = &priv->ra_report;
 
-	if (priv->rf_paths > 1)
-		goto out;
-
 	while (!skb_queue_empty(&priv->c2hcmd_queue)) {
 		skb = skb_dequeue(&priv->c2hcmd_queue);
 
@@ -5601,10 +5598,9 @@ static void rtl8xxxu_c2hcmd_callback(struct work_struct *work)
 		default:
 			break;
 		}
-	}
 
-out:
-	dev_kfree_skb(skb);
+		dev_kfree_skb(skb);
+	}
 }
 
 static void rtl8723bu_handle_c2h(struct rtl8xxxu_priv *priv,



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux