Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> writes: > On 2022-12-21 18:33:06 [+0000], Kalle Valo wrote: >> Zhengchao Shao <shaozhengchao@xxxxxxxxxx> wrote: >> >> > After the DMA buffer is mapped to a physical address, address is stored >> > in pktids in brcmf_msgbuf_alloc_pktid(). Then, pktids is parsed in >> > brcmf_msgbuf_get_pktid()/brcmf_msgbuf_release_array() to obtain physaddr >> > and later unmap the DMA buffer. But when count is always equal to >> > pktids->array_size, physaddr isn't stored in pktids and the DMA buffer >> > will not be unmapped anyway. >> > >> > Fixes: 9a1bb60250d2 ("brcmfmac: Adding msgbuf protocol.") >> > Signed-off-by: Zhengchao Shao <shaozhengchao@xxxxxxxxxx> >> >> Can someone review this? > > After looking at the code, that skb is mapped but not inserted into the > ringbuffer in this condition. The function returns with an error and the > caller will free that skb (or add to a list for later). Either way the > skb remains mapped which is wrong. The unmap here is the right thing to > do. > > Reviewed-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> Thanks for the review, very much appreciated. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches