1. 26 Mar, 2009 4 commits
    • Jiri Pirko's avatar
      bonding: select current active slave when enslaving device for mode tlb and alb · 5a29f789
      Jiri Pirko authored
      I've hit an issue on my system when I've been using RealTek RTL8139D cards in
      bonding interface in mode balancing-alb. When I enslave a card, the current
      active slave (bond->curr_active_slave) is not set and the link is therefore
      not functional.
      
      ----
      # cat /proc/net/bonding/bond0
      Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)
      
      Bonding Mode: adaptive load balancing
      Primary Slave: None
      Currently Active Slave: None
      MII Status: up
      MII Polling Interval (ms): 100
      Up Delay (ms): 0
      Down Delay (ms): 0
      
      Slave Interface: eth1
      MII Status: up
      Link Failure Count: 0
      Permanent HW addr: 00:1f:1f:01:2f:22
      ----
      
      The thing that gets it right is when I unplug the cable and then I put it back
      into the NIC. Then the current active slave is set to eth1 and link is working
      just fine. Here is dmesg log with bonding DEBUG messages turned on:
      ----
      ADDRCONF(NETDEV_UP): bond0: link is not ready
      event_dev: bond0, event: 1
      IFF_MASTER
      event_dev: bond0, event: 8
      IFF_MASTER
      bond_ioctl: master=bond0, cmd=35216
      slave_dev=cac5d800: 
      slave_dev->name=eth1: 
      eth1: ! NETIF_F_VLAN_CHALLENGED
      event_dev: eth1, event: 8
      eth1: link up, 100Mbps, full-duplex, lpa 0xC5E1
      event_dev: eth1, event: 1
      event_dev: eth1, event: 8
      IFF_SLAVE
      Initial state of slave_dev is BOND_LINK_UP
      bonding: bond0: enslaving eth1 as an active interface with an up link.
      ADDRCONF(NETDEV_CHANGE): bond0: link becomes ready
      event_dev: bond0, event: 4
      IFF_MASTER
      bond0: no IPv6 routers present
      
      <<<<cable unplug>>>>
      
      eth1: link down
      event_dev: eth1, event: 4
      IFF_SLAVE
      bonding: bond0: link status definitely down for interface eth1, disabling it
      event_dev: bond0, event: 4
      IFF_MASTER
      
      <<<<cable plug>>>>
      
      eth1: link up, 100Mbps, full-duplex, lpa 0xC5E1
      event_dev: eth1, event: 4
      IFF_SLAVE
      bonding: bond0: link status definitely up for interface eth1.
      bonding: bond0: making interface eth1 the new active one.
      event_dev: eth1, event: 8
      IFF_SLAVE
      event_dev: eth1, event: 8
      IFF_SLAVE
      bonding: bond0: first active interface up!
      event_dev: bond0, event: 4
      IFF_MASTER
      ----
      
      The current active slave is set by calling bond_select_active_slave() function
      from bond_miimon_commit() function when the slave (eth1) link goes to state up.
      
      I also tested this on other machine with Broadcom NetXtreme II BCM5708
      1000Base-T NIC and there all works fine. The thing is that this adapter is down
      and goes up after few seconds after it is enslaved.
      
      This patch calls bond_select_active_slave() in bond_enslave() function for modes
      alb and tlb and makes sure that the current active slave is set up properly even
      when the slave state is already up. Tested on both systems, works fine.
      
      Notice: The same problem can maybe also occrur in mode 8023AD but I'm unable to
      test that.
      Signed-off-by: default avatarJiri Pirko <jpirko@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5a29f789
    • Li Yang's avatar
      gianfar: reallocate skb when headroom is not enough for fcb · 93c1285c
      Li Yang authored
      Gianfar uses a hardware header FCB for offloading.  However when used
      with bridging or IP forwarding, TX skb might not have enough headroom
      for the FCB.  Reallocate skb for such cases.
      Signed-off-by: default avatarLi Yang <leoli@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      93c1285c
    • Florian Fainelli's avatar
      Bump release date to 25Mar2009 and version to 0.22 · 8ca51986
      Florian Fainelli authored
      This patch bumps the driver release date to March 25th 2009
      and release version to 0.22.
      Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8ca51986
    • Florian Fainelli's avatar
      r6040: Fix second PHY address · 2a30ca8b
      Florian Fainelli authored
      This patch fixes the second PHY address which is strapped
      to be at PHY address 3 instead of 2.
      Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2a30ca8b
  2. 25 Mar, 2009 14 commits
  3. 24 Mar, 2009 19 commits
  4. 23 Mar, 2009 3 commits
    • David S. Miller's avatar
      ucc_geth: Fix merge error. · 039a6f6a
      David S. Miller authored
      I left a merge failure unresolved, noticed by Stephen
      Rothwell.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      039a6f6a
    • Anton Vorontsov's avatar
      fsl_pq_mdio: Use proper address translation · 18f27383
      Anton Vorontsov authored
      Currently the driver just read "reg" property for constructing MDIO
      bus IDs, but this won't work when we'll start using "ranges = <>" in
      the device tree, so this will pop up:
      
      Freescale PowerQUICC MII Bus: probed
      sysfs: duplicate filename 'mdio@520' can not be created
      ------------[ cut here ]------------
      Badness at c00cb6b8 [verbose debug info unavailable]
      NIP: c00cb6b8 LR: c00cb6b8 CTR: c001271c
      REGS: cf82fc10 TRAP: 0700   Not tainted  (2.6.29-rc7-03702-g7ccd10f)
      MSR: 00029032 <EE,ME,CE,IR,DR>  CR: 42044022  XER: 20000000
      TASK = cf81fbd0[1] 'swapper' THREAD: cf82e000
      GPR00: c00cb6b8 cf82fcc0 cf81fbd0 0000003b 00000e42 ffffffff 00004000 00000e42
      GPR08: c03cb0fc c03bfbdc 00000e42 c03cac50 22044022 1006a2bc 0ffcb000 00000000
      GPR16: 0ffc04b0 0ffc5a40 00000000 0ffc79a8 0f7863a8 00000004 00000000 00000000
      GPR24: c033a6a8 d1014520 cf85e840 cf82fd08 cf87cf2c cf82fcd8 cf85dea8 ffffffef
      NIP [c00cb6b8] sysfs_add_one+0x4c/0x54
      LR [c00cb6b8] sysfs_add_one+0x4c/0x54
      Call Trace:
      [cf82fcc0] [c00cb6b8] sysfs_add_one+0x4c/0x54 (unreliable)
      [cf82fcd0] [c00cbc18] create_dir+0x58/0xc0
      [cf82fd00] [c00cbcc0] sysfs_create_dir+0x40/0x70
      [cf82fd20] [c0159388] create_dir+0x28/0x78
      [cf82fd30] [c0159824] kobject_add_internal+0x98/0x13c
      [cf82fd50] [c0159e98] kobject_add+0x60/0x98
      [cf82fd80] [c018a480] device_add+0x98/0x2ac
      [cf82fda0] [c01a2380] mdiobus_register+0xbc/0x1c0
      [cf82fdc0] [c019f31c] fsl_pq_mdio_probe+0x284/0x2a0
      [cf82fe00] [c0223814] of_platform_device_probe+0x5c/0x84
      ...
      
      This patch fixes the issue by translating the "reg" property to a full
      address, and thus avoids the duplicate names.
      Signed-off-by: default avatarAnton Vorontsov <avorontsov@ru.mvista.com>
      Acked-by: default avatarKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      18f27383
    • David S. Miller's avatar
      3e303dc1