Re: [PATCH v2] net: faraday: ftmac100: remove netif_running(netdev) check before disabling interrupts

From: David Miller
Date: Wed Nov 21 2018 - 19:58:08 EST


From: Vincent Chen <vincentc@xxxxxxxxxxxxx>
Date: Wed, 21 Nov 2018 09:38:11 +0800

> In the original ftmac100_interrupt(), the interrupts are only disabled when
> the condition "netif_running(netdev)" is true. However, this condition
> causes kerenl hang in the following case. When the user requests to
> disable the network device, kernel will clear the bit __LINK_STATE_START
> from the dev->state and then call the driver's ndo_stop function. Network
> device interrupts are not blocked during this process. If an interrupt
> occurs between clearing __LINK_STATE_START and stopping network device,
> kernel cannot disable the interrupts due to the condition
> "netif_running(netdev)" in the ISR. Hence, kernel will hang due to the
> continuous interruption of the network device.
>
> In order to solve the above problem, the interrupts of the network device
> should always be disabled in the ISR without being restricted by the
> condition "netif_running(netdev)".
>
> [V2]
> Remove unnecessary curly braces.
>
> Signed-off-by: Vincent Chen <vincentc@xxxxxxxxxxxxx>

Applied.