Bug 14791

Summary: Something has been broken in the network stack this week
Product: Networking Reporter: Delete This Account (speedyboyinovator)
Component: OtherAssignee: Ben Hutchings (ben)
Status: CLOSED CODE_FIX    
Severity: normal CC: avi.rozen, ben, rjw
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: after 2.6.32 Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 14885    
Attachments: dmesg and lspci outputs

Description Delete This Account 2009-12-12 13:06:02 UTC
Created attachment 24161 [details]
dmesg and lspci outputs

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.


---- output of: sh scripts/ver_linux

Linux speedyb0y 2.6.32speedyb0y-05254-g3067e02 #3 PREEMPT Thu Dec 10 11:39:26 BRST 2009 i686 GNU/Linux

Gnu C                  4.4.2
Gnu make               3.81
binutils               2.20
util-linux             2.16.2
mount                  support
module-init-tools      3.11
e2fsprogs              1.41.9
reiserfsprogs          3.6.21
PPP                    2.4.4
Linux C Library        2.10.2
Dynamic linker (ldd)   2.10.2
Procps                 3.2.8
Net-tools              1.60
Console-tools          0.2.3
Sh-utils               8.1
Modules Loaded         nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs binfmt_misc cdc_ether usbnet

---- output of: cat /proc/version 

Linux version 2.6.32speedyb0y-05254-g3067e02 (speedyb0y@speedyb0y) (gcc version 4.4.2 (Debian 4.4.2-3) ) #3 PREEMPT Thu Dec 10 11:39:26 BRST 2009
Comment 1 Andrew Morton 2009-12-18 04:59:40 UTC
(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).

Said to be a post-2.6.32 regression.

On Sat, 12 Dec 2009 13:06:04 GMT
bugzilla-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=14791
> 
>            Summary: Something has been broken in the network stack this
>                     week
>            Product: Networking
>            Version: 2.5
>     Kernel Version: after 2.6.32
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: Other
>         AssignedTo: acme@ghostprotocols.net
>         ReportedBy: speedyboyinovator@hotmail.com
>         Regression: Yes
> 
> 
> Created an attachment (id=24161)
>  --> (http://bugzilla.kernel.org/attachment.cgi?id=24161)
> dmesg and lspci outputs
> 
> 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.
> 
> 
> ---- output of: sh scripts/ver_linux
> 
> Linux speedyb0y 2.6.32speedyb0y-05254-g3067e02 #3 PREEMPT Thu Dec 10 11:39:26
> BRST 2009 i686 GNU/Linux
> 
> Gnu C                  4.4.2
> Gnu make               3.81
> binutils               2.20
> util-linux             2.16.2
> mount                  support
> module-init-tools      3.11
> e2fsprogs              1.41.9
> reiserfsprogs          3.6.21
> PPP                    2.4.4
> Linux C Library        2.10.2
> Dynamic linker (ldd)   2.10.2
> Procps                 3.2.8
> Net-tools              1.60
> Console-tools          0.2.3
> Sh-utils               8.1
> Modules Loaded         nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs
> binfmt_misc cdc_ether usbnet
> 
> ---- output of: cat /proc/version 
> 
> Linux version 2.6.32speedyb0y-05254-g3067e02 (speedyb0y@speedyb0y) (gcc
> version
> 4.4.2 (Debian 4.4.2-3) ) #3 PREEMPT Thu Dec 10 11:39:26 BRST 2009
Comment 2 Ben Hutchings 2009-12-18 05:02:37 UTC
speedyboyinovator@hotmail.com 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 <ben@decadent.org.uk>
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 <ben@decadent.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>

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.
Comment 3 Rafael J. Wysocki 2010-01-10 22:57:10 UTC
Handled-By : Ben Hutchings <ben@decadent.org.uk>
Patch : http://patchwork.kernel.org/patch/72073/
Comment 4 Rafael J. Wysocki 2010-01-24 22:30:25 UTC
Dropping from the list of recent regressions due to the lack of testers.
Comment 5 Avi Rozen 2010-01-28 22:31:56 UTC
I've been hit by this regression too. I've confirmed that it exists in 2.6.33 from mainline Git repository (head at b04da8bfdfbbd79544cab2fadfdc12e87eb01600), with a Thomson, Inc. DCM245 Cable Modem.

I've also verified that applying the proposed patch fixes this regression at my end.

Thanks,
Avi

---- output of: sh scripts/ver_linux

Linux machine-cycle 2.6.33-rc5 #1 SMP Thu Jan 28 14:32:13 IST 2010 i686 GNU/Linux
 
Gnu C                  4.3.4
Gnu make               3.81
binutils               2.20
util-linux             2.16.2
mount                  support
module-init-tools      3.11
e2fsprogs              1.41.9
pcmciautils            015
PPP                    2.4.4
Linux C Library        2.10.2
Dynamic linker (ldd)   2.10.2
Procps                 3.2.8
Net-tools              1.60
Console-tools          0.2.3
Sh-utils               7.4
wireless-tools         30
Modules Loaded         radeon ttm drm_kms_helper drm i2c_algo_bit nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs ppdev lp sco bridge stp bnep rfcomm l2cap crc16 powernow_k7 cpufreq_conservative cpufreq_userspace cpufreq_stats cpufreq_powersave binfmt_misc uinput fuse xt_TCPMSS ip6table_filter ip6_tables act_police cls_u32 sch_htb sch_ingress sch_sfq xt_time xt_connlimit xt_realm iptable_raw xt_comment xt_owner xt_recent xt_iprange xt_policy ipt_ULOG ipt_REJECT ipt_REDIRECT ipt_NETMAP ipt_MASQUERADE ipt_LOG ipt_ECN ipt_ecn ipt_CLUSTERIP ipt_ah ipt_addrtype nf_nat_tftp nf_nat_snmp_basic nf_nat_sip nf_nat_pptp nf_nat_proto_gre nf_nat_irc nf_nat_h323 nf_nat_ftp nf_nat_amanda ts_kmp nf_conntrack_amanda nf_conntrack_tftp nf_conntrack_sip nf_conntrack_proto_sctp nf_conntrack_pptp nf_conntrack_proto_gre nf_conntrack_netlink nf_conntrack_netbios_ns nf_conntrack_irc nf_conntrack_h323 nf_conntrack_ftp xt_tcpmss xt_pkttype xt_physdev xt_NFQUEUE xt_NFLOG nfnetlink_log xt_multiport xt_MARK xt_mark xt_mac xt_limit xt_length xt_helper xt_hashlimit xt_dccp xt_conntrack xt_CONNMARK xt_connmark xt_CLASSIFY xt_tcpudp xt_state iptable_nat nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack iptable_mangle nfnetlink iptable_filter ip_tables x_tables ppp_async crc_ccitt ppp_generic slhc loop sd_mod crc_t10dif dm_crypt ums_cypress usb_storage snd_ali5451 snd_ac97_codec ac97_bus snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_midi snd_rawmidi usblp snd_seq_midi_event joydev snd_seq btusb snd_timer snd_seq_device bluetooth usbhid cdc_ether rfkill hid usbnet pcmcia parport_pc shpchp i2c_ali15x3 psmouse parport tpm_tis snd battery tpm yenta_socket i2c_ali1535 rsrc_nonstatic tpm_bios container pcspkr pci_hotplug serio_raw i2c_core ac processor pcmcia_core soundcore evdev snd_page_alloc ext3 jbd mbcache dm_mod ide_cd_mod cdrom ide_gd_mod ata_generic libata scsi_mod ide_pci_generic 8139too ohci_hcd ehci_hcd alim15x3 video 8139cp ati_agp floppy output ide_core mii usbcore nls_base agpgart button thermal fan thermal_sys

---- output of: cat /proc/version

Linux version 2.6.33-rc5 (root@machine-cycle) (gcc version 4.3.4 (Debian 4.3.4-6) ) #1 SMP Thu Jan 28 14:32:13 IST 2010

---- output of: lsusb -vD /dev/bus/usb/001/006

Device: ID 069b:0704 Thomson, Inc. DCM245 Cable Modem
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            2 Communications
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        32
  idVendor           0x069b Thomson, Inc.
  idProduct          0x0704 DCM245 Cable Modem
  bcdDevice            1.01
  iManufacturer           1 Thomson Inc.
  iProduct                2 Thomson USB CDC Device
  iSerial                 3 00189B18F7D2
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           80
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          4 USB Ethernet Configuration
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      6 Ethernet Networking
      bInterfaceProtocol      0 
      iInterface              5 Communication Interface Class
      CDC Header:
        bcdCDC               1.10
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      CDC Ethernet:
        iMacAddress                      3 00189B18F7D2
        bmEthernetStatistics    0x00000000
        wMaxSegmentSize               1514
        wNumberMCFilters            0x0000
        bNumberPowerFilters              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              64
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              6 Data Interface Class
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              6 Data Interface Class
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0001
  Self Powered
Comment 6 Ben Hutchings 2010-01-28 22:52:42 UTC
(In reply to comment #5)
> I've been hit by this regression too. I've confirmed that it exists in 2.6.33
> from mainline Git repository (head at
> b04da8bfdfbbd79544cab2fadfdc12e87eb01600), with a Thomson, Inc. DCM245 Cable
> Modem.
> 
> I've also verified that applying the proposed patch fixes this regression at
> my
> end.

Thanks for the information.  I'll submit this patch now.
Comment 7 Rafael J. Wysocki 2010-02-07 21:41:55 UTC
Fixed by commit 71cc1fa9f2d71eb2eba9b8e71e27cff9863e55f3.