Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx> wrote: > 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> Patch applied to wireless-next.git, thanks. b39f662ce164 wifi: rtl8xxxu: Fix memory leaks with RTL8723BU, RTL8192EU -- https://patchwork.kernel.org/project/linux-wireless/patch/03b099c1-c671-d252-36f4-57b70d721f9d@xxxxxxxxx/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches