Re: [PATCH net v1] hinic: fix rewaking txq after netif_tx_disable

From: David Miller
Date: Fri Sep 11 2020 - 20:25:13 EST


From: Luo bin <luobin9@xxxxxxxxxx>
Date: Thu, 10 Sep 2020 22:04:40 +0800

> 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 call
> napi_disable before netif_tx_disable in hinic_close to fix this bug.
>
> Fixes: 2eed5a8b614b ("hinic: add set_channels ethtool_ops support")
> Signed-off-by: Luo bin <luobin9@xxxxxxxxxx>
> ---
> V0~V1:
> - call napi_disable before netif_tx_disable instead of judging whether
> the netdev is in down state before waking txq in free_tx_poll to fix
> this bug

Applied and queued up for -stable, thank you.