[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a610ac4b-eeb9-50c2-4b88-0d77d1c83d47@omp.ru>
Date: Tue, 7 Sep 2021 22:29:56 +0300
From: Sergey Shtylyov <s.shtylyov@....ru>
To: Yoshihiro Shimoda <yoshihiro.shimoda.uh@...esas.com>,
<davem@...emloft.net>, <kuba@...nel.org>
CC: <netdev@...r.kernel.org>, <linux-renesas-soc@...r.kernel.org>
Subject: Re: [PATCH] net: renesas: sh_eth: Fix freeing wrong tx descriptor
On 9/7/21 2:29 PM, Yoshihiro Shimoda wrote:
> The cur_tx counter must be incremented after TACT bit of
> txdesc->status was set. However, a CPU is possible to reorder
> instructions and/or memory accesses between cur_tx and
> txdesc->status. And then, if TX interrupt happened at such a
> timing, the sh_eth_tx_free() may free the descriptor wrongly.
> So, add wmb() before cur_tx++.
Not dma_wmb()? :-)
> Otherwise NETDEV WATCHDOG timeout is possible to happen.
>
> Fixes: 86a74ff21a7a ("net: sh_eth: add support for Renesas SuperH Ethernet")
> Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@...esas.com>
Reviewed-by: Sergey Shtylyov <s.shtylyov@....ru>
[...]
MBR, Sergey
Powered by blists - more mailing lists