mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-25 21:54:06 +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);
|
struct fec_enet_private *fep = netdev_priv(ndev);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
napi_enable(&fep->napi);
|
|
||||||
|
|
||||||
/* I should reset the ring buffers here, but I don't yet know
|
/* I should reset the ring buffers here, but I don't yet know
|
||||||
* a simple way to do that.
|
* a simple way to do that.
|
||||||
*/
|
*/
|
||||||
@ -1794,6 +1792,8 @@ fec_enet_open(struct net_device *ndev)
|
|||||||
fec_enet_free_buffers(ndev);
|
fec_enet_free_buffers(ndev);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
napi_enable(&fep->napi);
|
||||||
phy_start(fep->phy_dev);
|
phy_start(fep->phy_dev);
|
||||||
netif_start_queue(ndev);
|
netif_start_queue(ndev);
|
||||||
fep->opened = 1;
|
fep->opened = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user