* [PATCH] NET: fec: only enable napi if we are successful
@ 2014-02-18 12:55 Russell King
2014-02-18 23:07 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: Russell King @ 2014-02-18 12:55 UTC (permalink / raw)
To: linux-arm-kernel
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>
---
No individual is apparently listed as a maintainer for this driver, so
I'm just guesing...
I noticed this error when there were other problems with the driver
which resulted in the phy not being found, but it would be a good idea
to fix this error too.
drivers/net/ethernet/freescale/fec_main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index d4782b42401b..903362a7b584 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -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;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH] NET: fec: only enable napi if we are successful
2014-02-18 12:55 [PATCH] NET: fec: only enable napi if we are successful Russell King
@ 2014-02-18 23:07 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2014-02-18 23:07 UTC (permalink / raw)
To: linux-arm-kernel
From: Russell King <rmk+kernel@arm.linux.org.uk>
Date: Tue, 18 Feb 2014 12:55:42 +0000
> 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>
Applied, thanks a lot Russell.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-02-18 23:07 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-18 12:55 [PATCH] NET: fec: only enable napi if we are successful Russell King
2014-02-18 23:07 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).