[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200907142834.368b9bae@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
Date: Mon, 7 Sep 2020 14:28:34 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: Luo bin <luobin9@...wei.com>
Cc: <davem@...emloft.net>, <linux-kernel@...r.kernel.org>,
<netdev@...r.kernel.org>, <luoxianjun@...wei.com>,
<yin.yinshi@...wei.com>, <cloud.wangxiaoyun@...wei.com>,
<chiqijun@...wei.com>
Subject: Re: [PATCH net] hinic: fix rewaking txq after netif_tx_disable
On Mon, 7 Sep 2020 22:15:16 +0800 Luo bin wrote:
> When calling hinic_close in hinic_set_channels, all queues are
> stopped after netif_tx_disable, but some queue may be rewaken in
> free_tx_poll by mistake while drv is handling tx irq. If one queue
> is rewaken core may call hinic_xmit_frame to send pkt after
> netif_tx_disable within a short time which may results in accessing
> memory that has been already freed in hinic_close. So we judge
> whether the netdev is in down state before waking txq in free_tx_poll
> to fix this bug.
The right fix is to call napi_disable() _before_ you call
netif_tx_disable(), not after, like hinic_close() does.
Powered by blists - more mailing lists