1. 26 Mar, 2009 6 commits
    • Alexander Duyck's avatar
      e1000: cleanup clean_tx_irq routine so that it completely cleans ring · ccfb342c
      Alexander Duyck authored
      The tx cleanup routine was stopping after 64 packets and this was causing
      issues resulting in the ring not being completely cleaned.
      
      This change updates the driver to clean the entire ring and if it doesn't
      it then will retry on the next pass.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ccfb342c
    • Alexander Duyck's avatar
      e1000: fix tx hang detect logic and address dma mapping issues · 37e73df8
      Alexander Duyck authored
      This patch changes the dma mapping to better support
      skb_dma_map/skb_dma_unmap and addresses and redefines the tx hang logic to
      be based off of time stamp instead of if the dma field is populated
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      37e73df8
    • 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 1 commit