[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20181121.165804.509539437154732563.davem@davemloft.net>
Date: Wed, 21 Nov 2018 16:58:04 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: vincentc@...estech.com
Cc: gregkh@...uxfoundation.org, rdunlap@...radead.org,
yuehaibing@...wei.com, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] net: faraday: ftmac100: remove
netif_running(netdev) check before disabling interrupts
From: Vincent Chen <vincentc@...estech.com>
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@...estech.com>
Applied.
Powered by blists - more mailing lists