The FC and Suse startup scripts use ethtool to check for link present. This has
problems on my laptop with Broadcom because it quieries settings before
bringing link up. The problem is driver returns EAGAIN when queried for
settings but not up. Just go ahead and return values anyway, the supported and link
state values will be correct, speed will end up being 10BaseT/Half which is a
reasonable default.
Signed-off-by: Stephen Hemminger <redacted>
diff -Nru a/drivers/net/b44.c b/drivers/net/b44.c
--- a/drivers/net/b44.c 2004-11-29 09:41:27 -08:00
+++ b/drivers/net/b44.c 2004-11-29 09:41:27 -08:00
@@ -1487,8 +1487,6 @@
{
struct b44 *bp = netdev_priv(dev);
- if (!(bp->flags & B44_FLAG_INIT_COMPLETE))
- return -EAGAIN;
cmd->supported = (SUPPORTED_Autoneg);
cmd->supported |= (SUPPORTED_100baseT_Half |
SUPPORTED_100baseT_Full |
On Thu, 02 Dec 2004 06:25:09 -0500
Jeff Garzik [off-list ref] wrote:
Stephen Hemminger wrote:
quoted
The FC and Suse startup scripts use ethtool to check for link present. This has
problems on my laptop with Broadcom because it quieries settings before
bringing link up. The problem is driver returns EAGAIN when queried for
settings but not up. Just go ahead and return values anyway, the supported and link
state values will be correct, speed will end up being 10BaseT/Half which is a
reasonable default.
Signed-off-by: Stephen Hemminger <redacted>
diff -Nru a/drivers/net/b44.c b/drivers/net/b44.c
--- a/drivers/net/b44.c 2004-11-29 09:41:27 -08:00
+++ b/drivers/net/b44.c 2004-11-29 09:41:27 -08:00
@@ -1487,8 +1487,6 @@
{
struct b44 *bp = netdev_priv(dev);
- if (!(bp->flags & B44_FLAG_INIT_COMPLETE))
- return -EAGAIN;
cmd->supported = (SUPPORTED_Autoneg);
cmd->supported |= (SUPPORTED_100baseT_Half |
SUPPORTED_100baseT_Full |
I'm not so sure about this one...
This sounds like working around stupid userland in the kernel?
Jeff
Don't bother with the patch, if I use smart user land code like NetworkManager
then there is no problem. Although EAGAIN seems like a poor choice for errno
how about ENETDOWN or ENONET