1. 13 Apr, 2009 2 commits
    • James Bottomley's avatar
      tg3: fix big endian MAC address collection failure · 0d489ffb
      James Bottomley authored
      We noticed on parisc that our broadcoms all swapped MAC addresses going
      from 2.6.29 to 2.6.30-rc1:
      
      Apr 11 07:48:24 ion kernel: eth0: Tigon3 [partno(BCM95700A6) rev 0105] (PCI:66MHz:64-bit) MAC address 00:30:6e:4b:15:59
      Apr 13 07:34:34 ion kernel: eth0: Tigon3 [partno(BCM95700A6) rev 0105] (PCI:66MHz:64-bit) MAC address 00:00:59:15:4b:6e
      
      The problem patch is:
      
      commit 6d348f2c
      Author: Matt Carlson <mcarlson@broadcom.com>
      Date:   Wed Feb 25 14:25:52 2009 +0000
      
          tg3: Eliminate tg3_nvram_read_swab()
      
      With the root cause being the use of memcpy to set the mac address:
      
         memcpy(&dev->dev_addr[0], ((char *)&hi) + 2, 2);
         memcpy(&dev->dev_addr[2], (char *)&lo, sizeof(lo));
      
      This might work on little endian machines, but it can't on big endian
      ones.  You have to use the original setting mechanism to be correct on
      all architectures.
      
      The attached patch fixes parisc.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0d489ffb
    • Brian Haley's avatar
      Bonding: fix zero address hole bug in arp_ip_target list · 5a31bec0
      Brian Haley authored
      Fix a zero address hole bug in the bonding arp_ip_target list
      that was causing the bond to ignore ARP replies (bugz 13006).
      Instead of just setting the array entry to zero, we now
      copy any additional entries down one slot, putting the
      zero entry at the end.  With this change we can now have
      all the loops that walk the array stop when they hit a zero
      since there will be no addresses after it.
      
      Changes are based in part on code fragment provided in kernel:
      bugzilla 13006:
      
      	http://bugzilla.kernel.org/show_bug.cgi?id=13006
      
      by Steve Howard <steve@astutenetworks.com>
      Signed-off-by: default avatarBrian Haley <brian.haley@hp.com>
      Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5a31bec0
  2. 11 Apr, 2009 19 commits
  3. 09 Apr, 2009 1 commit
    • David S. Miller's avatar
      forcedeth: Use napi_complete() not __napi_complete(). · 6c2da9c2
      David S. Miller authored
      It's not enough that forcedeth's interrupts are disabled,
      local cpu interrupts have to unconditionally be off
      when we remove the device from the poll list.
      
      Based upon a crash report from
      Alexander Beregalov <a.beregalov@gmail.com>:
      
       WARNING: at lib/list_debug.c:30 __list_add+0x89/0x90()
       Hardware name:
       list_add corruption. prev->next should be next (c06ea834), but was
      f70244c8. (prev=c06ea834).
       Modules linked in: w83627hf hwmon_vid i2c_nforce2
       Pid: 1436, comm: portageq Not tainted 2.6.30-rc1 #1
       Call Trace:
        [<c0129d73>] warn_slowpath+0x73/0xd0
        [<c03c6008>] ? __kfree_skb+0x38/0x90
        [<c03f9b06>] ? tcp_data_snd_check+0x26/0xe0
        [<c03fd67f>] ? tcp_rcv_established+0x2bf/0x5e0
        [<c040557a>] ? tcp_v4_rcv+0x47a/0x610
        [<c014cebd>] ? print_lock_contention_bug+0x1d/0x110
        [<c044a967>] ? _spin_unlock+0x27/0x50
        [<c040564b>] ? tcp_v4_rcv+0x54b/0x610
        [<c02d86f9>] __list_add+0x89/0x90
        [<c03ccff9>] __napi_schedule+0x29/0x60
        [<c036946d>] e1000_intr+0xbd/0x1a0
        [<c015c5de>] handle_IRQ_event+0x3e/0x120
        [<c015e190>] handle_fasteoi_irq+0x60/0xd0
        [<c0104fd4>] handle_irq+0x34/0x60
        [<c015f748>] ? rcu_irq_enter+0x8/0x40
        [<c0104b29>] do_IRQ+0x39/0xa0
        [<c03c592c>] ? skb_release_head_state+0x2c/0x60
        [<c01034ee>] common_interrupt+0x2e/0x34
        [<c02d8601>] ? list_del+0x21/0x90
        [<c014e54b>] ? trace_hardirqs_on+0xb/0x10
        [<c03cd4da>] __napi_complete+0x1a/0x30
        [<c0381971>] nv_napi_poll+0xd1/0x5c0
        [<c014e54b>] ? trace_hardirqs_on+0xb/0x10
        [<c03cd5f6>] net_rx_action+0x106/0x1b0
        [<c012e8df>] __do_softirq+0x6f/0x100
        [<c044a967>] ? _spin_unlock+0x27/0x50
        [<c015e1b8>] ? handle_fasteoi_irq+0x88/0xd0
        [<c012e9cd>] do_softirq+0x5d/0x70
        [<c012ebad>] irq_exit+0x7d/0xa0
        [<c0104b32>] do_IRQ+0x42/0xa0
        [<c012e9b7>] ? do_softirq+0x47/0x70
        [<c01034ee>] common_interrupt+0x2e/0x34
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6c2da9c2
  4. 08 Apr, 2009 12 commits
  5. 07 Apr, 2009 6 commits