Subject: Re: [Bugme-new] [Bug 14791] New: Something has been broken in the network stack this week

From: Ben Hutchings <[email-masked]>
Date: Thu, 17 Dec 2009 00:03:31 +0000

[email-masked] wrote (via Bugzilla):
> > Apparently something has been broken in the network stack this week
> > 
> > Hi. This is my first bug/issue report, so understand any mistake or n00b thing
> > I make here. And sorry for the bad english ;)
> > 
> > It looks like that from the 2.6.32 release, to the git commit
> > 2.6.32-05254-g3067e02 (i've compiled it in Dec 10 11:39:26 (Brazilian TZ)
> > 2009), something weird happened ;)
> > 
> > I've used the USB_NET_CDCETHER for 2 years now, and it always worked.
> > But when I rebooted to my new kernel 2.6.32-05254-g3067e02, from the 2.6.32, it
> > just dont get connected.
> > 
> > [   16.683465] ADDRCONF(NETDEV_UP): eth1: link is not ready
> > [   94.854539] ADDRCONF(NETDEV_UP): eth1: link is not ready
> > 
> > There's no symptom of anything wrong. And even restarting the modem and then
> > reconnecting the USB cable, it does'nt work.
> > 
> > Then I reboot to the 2.6.32 one, and it takes just one dhclient command and 1
> > second to be online again.

This may well be due to this change, which sets the initial assumed link
state to be down, not up:

commit 37e8273cd30592d3a82bcb70cbb1bdc4eaeb6b71
Author: Ben Hutchings <[email-masked]>
Date:   Wed Nov 4 15:29:52 2009 +0000

    usbnet: Set link down initially for drivers that update link state
    
    Some usbnet drivers update link state while others do not due to
    hardware limitations.  Add a flag to distinguish those that do, and
    set the link down initially for their devices.
    
    This is intended to fix this bug: http://bugs.debian.org/444043
    
    Signed-off-by: Ben Hutchings <[email-masked]>
    Signed-off-by: David S. Miller <[email-masked]>

Perhaps cdc_ether should poll the hardware to get the initial link
state?

Ben.

-- 
Ben Hutchings
Hoare's Law of Large Problems:
        Inside every large problem is a small problem struggling to get out.