[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <58d61ba6-3cd9-cfee-d6d1-2bb800853eb4@broadcom.com>
Date: Thu, 22 Dec 2022 12:37:04 +0100
From: Arend van Spriel <arend.vanspriel@...adcom.com>
To: shaozhengchao <shaozhengchao@...wei.com>,
Kalle Valo <kvalo@...nel.org>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Cc: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-wireless@...r.kernel.org" <linux-wireless@...r.kernel.org>,
"brcm80211-dev-list.pdl@...adcom.com"
<brcm80211-dev-list.pdl@...adcom.com>,
"SHA-cyfmac-dev-list@...ineon.com" <SHA-cyfmac-dev-list@...ineon.com>,
"davem@...emloft.net" <davem@...emloft.net>,
"edumazet@...gle.com" <edumazet@...gle.com>,
"kuba@...nel.org" <kuba@...nel.org>,
"pabeni@...hat.com" <pabeni@...hat.com>,
"aspriel@...il.com" <aspriel@...il.com>,
"franky.lin@...adcom.com" <franky.lin@...adcom.com>,
"hante.meuleman@...adcom.com" <hante.meuleman@...adcom.com>,
"wright.feng@...ress.com" <wright.feng@...ress.com>,
"chi-hsien.lin@...ress.com" <chi-hsien.lin@...ress.com>,
"a.fatoum@...gutronix.de" <a.fatoum@...gutronix.de>,
"alsi@...g-olufsen.dk" <alsi@...g-olufsen.dk>,
"pieterpg@...adcom.com" <pieterpg@...adcom.com>,
"dekim@...adcom.com" <dekim@...adcom.com>,
"linville@...driver.com" <linville@...driver.com>,
"weiyongjun (A)" <weiyongjun1@...wei.com>,
yuehaibing <yuehaibing@...wei.com>
Subject: Re: [PATCH] wifi: brcmfmac: unmap dma buffer in
brcmf_msgbuf_alloc_pktid()
On 12/22/2022 12:35 PM, shaozhengchao wrote:
>
>
> -----Original Message-----
> From: Arend van Spriel [mailto:arend.vanspriel@...adcom.com]
> Sent: Thursday, December 22, 2022 7:00 PM
> To: shaozhengchao <shaozhengchao@...wei.com>; Kalle Valo <kvalo@...nel.org>; Sebastian Andrzej Siewior <bigeasy@...utronix.de>
> Cc: netdev@...r.kernel.org; linux-wireless@...r.kernel.org; brcm80211-dev-list.pdl@...adcom.com; SHA-cyfmac-dev-list@...ineon.com; davem@...emloft.net; edumazet@...gle.com; kuba@...nel.org; pabeni@...hat.com; aspriel@...il.com; franky.lin@...adcom.com; hante.meuleman@...adcom.com; wright.feng@...ress.com; chi-hsien.lin@...ress.com; a.fatoum@...gutronix.de; alsi@...g-olufsen.dk; pieterpg@...adcom.com; dekim@...adcom.com; linville@...driver.com; weiyongjun (A) <weiyongjun1@...wei.com>; yuehaibing <yuehaibing@...wei.com>
> Subject: Re: [PATCH] wifi: brcmfmac: unmap dma buffer in brcmf_msgbuf_alloc_pktid()
>
> On 12/22/2022 9:52 AM, shaozhengchao wrote:
>>
>>
>> On 2022/12/22 16:46, Kalle Valo wrote:
>>> Sebastian Andrzej Siewior <bigeasy@...utronix.de> writes:
>>>
>>>> On 2022-12-21 18:33:06 [+0000], Kalle Valo wrote:
>>>>> Zhengchao Shao <shaozhengchao@...wei.com> 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@...wei.com>
>>>>>
>>>>> 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@...utronix.de>
>>>
>>> Thanks for the review, very much appreciated.
>>>
>>
>> Thank you very much.
>
>> Good catch. Has this path been observed or is this found by inspecting
>> the code? Just curious.
>
>> Regards,
>> Arend
>
> Hi Arend:
> I review code and find the bug.
Much appreciated.
Regards,
Arend
> Zhengchao Shao
Download attachment "smime.p7s" of type "application/pkcs7-signature" (4219 bytes)
Powered by blists - more mailing lists