mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-20 18:54:09 +08:00
NET: fec: only enable napi if we are successful
If napi is left enabled after a failed attempt to bring the interface up, we BUG: fec 2188000.ethernet eth0: no PHY, assuming direct connection to switch libphy: PHY fixed-0:00 not found fec 2188000.ethernet eth0: could not attach to PHY ------------[ cut here ]------------ kernel BUG at include/linux/netdevice.h:502! Internal error: Oops - BUG: 0 [#1] SMP ARM ... PC is at fec_enet_open+0x4d0/0x500 LR is at __dev_open+0xa4/0xfc Only enable napi after we are past all the failure paths. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d7cf0c34af
commit
ce5eaf023a
@ -1778,8 +1778,6 @@ fec_enet_open(struct net_device *ndev)
|
||||
struct fec_enet_private *fep = netdev_priv(ndev);
|
||||
int ret;
|
||||
|
||||
napi_enable(&fep->napi);
|
||||
|
||||
/* I should reset the ring buffers here, but I don't yet know
|
||||
* a simple way to do that.
|
||||
*/
|
||||
@ -1794,6 +1792,8 @@ fec_enet_open(struct net_device *ndev)
|
||||
fec_enet_free_buffers(ndev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
napi_enable(&fep->napi);
|
||||
phy_start(fep->phy_dev);
|
||||
netif_start_queue(ndev);
|
||||
fep->opened = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user