1. 20 2月, 2009 3 次提交
  2. 19 2月, 2009 5 次提交
    • D
      cxgb3: Add support for PCI ID 0x35. · ce03aadd
      Divy Le Ray 提交于
      Add support for adapters with a PCI id equal to 0x35.
      Signed-off-by: NDivy Le Ray <divy@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ce03aadd
    • R
      TG3: &&/|| confusion · f72b5349
      Roel Kluin 提交于
      phyid Can't be both TG3_PHY_OUI_1 and TG3_PHY_OUI_2 and TG3_PHY_OUI_3.
      Signed-off-by: NRoel Kluin <roel.kluin@gmail.com>
      Acked-by: NMatt Carlson <mcarlson@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f72b5349
    • S
      net/mv643xx: don't disable the mib timer too early and lock properly · 57e8f26a
      Sebastian Siewior 提交于
      mib_counters_update() also restarts the timer.
      So the timer is dequeued, the stats are read and then the timer is
      enqueued again. This is "okay" unless someone unloads the module.
      The locking here is also broken:
      mib_counters_update() grabs just a simple spinlock. The only thing the
      lock is good for is to protect the timer func against other callers
      namely mv643xx_eth_stop() && mv643xx_eth_get_ethtool_stats(). That means
      if the spinlock is taken via the ethtool path and than the timer kicks
      in then the box will lock up.
      Signed-off-by: NSebastian Andrzej Siewior <sebastian@breakpoint.cc>
      Acked-by: NLennert Buytenhek <buytenh@marvell.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      57e8f26a
    • S
      net/mv643xx: use GFP_ATOMIC while atomic · 82a5bd6a
      Sebastian Siewior 提交于
      dev_set_rx_mode() grabs netif_addr_lock_bh():
      
      |BUG: sleeping function called from invalid context at /home/bigeasy/git/cryptodev-2.6/mm/slub.c:1599
      |in_atomic(): 1, irqs_disabled(): 0, pid: 859, name: ifconfig
      |2 locks held by ifconfig/859:
      | #0:  (rtnl_mutex){--..}, at: [<c0239ccc>] rtnl_lock+0x18/0x20
      | #1:  (_xmit_ETHER){-...}, at: [<c022d094>] dev_set_rx_mode+0x1c/0x30
      |[<c029f118>] (dump_stack+0x0/0x14) from [<c003df28>] (__might_sleep+0x11c/0x13c)
      |[<c003de0c>] (__might_sleep+0x0/0x13c) from [<c00a8854>] (kmem_cache_alloc+0x30/0xd4)
      | r5:c78093a0 r4:c034a47c
      |[<c00a8824>] (kmem_cache_alloc+0x0/0xd4) from [<c01a5fd0>] (mv643xx_eth_set_rx_mode+0x70/0x188)
      |[<c01a5f60>] (mv643xx_eth_set_rx_mode+0x0/0x188) from [<c022ced0>] (__dev_set_rx_mode+0x40/0xac)
      |[<c022ce90>] (__dev_set_rx_mode+0x0/0xac) from [<c022d09c>] (dev_set_rx_mode+0x24/0x30)
      | r6:00001043 r5:c78090f8 r4:c7809000
      |[<c022d078>] (dev_set_rx_mode+0x0/0x30) from [<c02304c4>] (dev_open+0xe4/0x114)
      | r5:c7809350 r4:c7809000
      |[<c02303e0>] (dev_open+0x0/0x114) from [<c022fd18>] (dev_change_flags+0xb0/0x190)
      | r5:00000041 r4:c7809000
      |[<c022fc68>] (dev_change_flags+0x0/0x190) from [<c0270250>] (devinet_ioctl+0x2f0/0x710)
      | r7:c7221e70 r6:c7aadb00 r5:00000000 r4:00000001
      |[<c026ff60>] (devinet_ioctl+0x0/0x710) from [<c02717c8>] (inet_ioctl+0xd4/0x110)
      |[<c02716f4>] (inet_ioctl+0x0/0x110) from [<c021fb74>] (sock_ioctl+0x1f4/0x254)
      | r4:c7242b40
      |[<c021f980>] (sock_ioctl+0x0/0x254) from [<c00b8160>] (vfs_ioctl+0x38/0x98)
      | r6:beec9bb8 r5:00008914 r4:c7242b40
      |[<c00b8128>] (vfs_ioctl+0x0/0x98) from [<c00b873c>] (do_vfs_ioctl+0x484/0x4d4)
      | r6:00008914 r5:c7242b40 r4:c74db1c0
      |[<c00b82b8>] (do_vfs_ioctl+0x0/0x4d4) from [<c00b87cc>] (sys_ioctl+0x40/0x64)
      |[<c00b878c>] (sys_ioctl+0x0/0x64) from [<c00269a0>] (ret_fast_syscall+0x0/0x2c)
      |[42949399.520000]  r7:00000036 r6:beec9c80 r5:00000041 r4:beec9bb8
      Signed-off-by: NSebastian Andrzej Siewior <sebastian@breakpoint.cc>
      Acked-by: NLennert Buytenhek <buytenh@marvell.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      82a5bd6a
    • J
      atl1c: Atheros L1C Gigabit Ethernet driver · 43250ddd
      Jie Yang 提交于
      Supporting AR8131, and AR8132.
      Signed-off-by: NJie Yang <jie.yang@atheros.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      43250ddd
  3. 16 2月, 2009 1 次提交
    • T
      net: forcedeth: Fix wake-on-lan regression · 34edaa88
      Tobias Diedrich 提交于
      Commit f55c21fd ("forcedeth: call
      restore mac addr in nv_shutdown path"), which was introduced to fix
      the regression tracked at
      http://bugzilla.kernel.org/show_bug.cgi?id=11358 causes the
      wake-on-lan mac to be reversed in the shutdown path.  Apparently the
      forcedeth situation is rather messy in that the mac we need to
      writeback for a subsequent modprobe to work is exactly the reverse of
      what is needed for proper wake-on-lan.
      
      The following patch explains the situation in the comments and
      makes the call to nv_restore_mac_addr() conditional (only called if
      we are not really going for poweroff).
      
      Tobias Diedrich wrote:
      > Hmm, I had not tried WOL for some time.
      > With 2.6.29-rc3 is see the following behaviour:
      > 
      > State            WOL Behaviour
      > ------------------------------
      > shutdown         reversed MAC
      > disk/shutdown    reversed MAC
      > disk/platform    OK
      > 
      > Apparently nv_restore_mac_addr() restores the MAC in the wrong order
      > for WOL (at least for my PCI_DEVICE_ID_NVIDIA_NVENET_15).  platform
      > works, because the MAC is not touched in the nv_suspend() path.
      > 
      > A possible fix might be to only call nv_restore_mac_addr() if
      > system_state != SYSTEM_POWER_OFF.
      
      With the following patch:
      shutdown         OK
      disk/shutdown    OK
      disk/platform    OK
      kexec            OK
      Signed-off-by: NTobias Diedrich <ranma+kernel@tdiedrich.de>
      Tested-by: NPhilipp Matthias Hahn <pmhahn@titan.lahn.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      34edaa88
  4. 13 2月, 2009 17 次提交
  5. 12 2月, 2009 4 次提交
  6. 11 2月, 2009 2 次提交
    • M
      sunhme: Fix Quattro HME irq registration on proble failures · 7b7a799d
      Meelis Roos 提交于
      Currently, the sunhme driver installs SBus Quattro interrupt handler 
      when at least one HME card was initialized correctly and at least one 
      Quattro card is present. This breaks when a Quattro card fails 
      initialization for whatever reason - IRQ is registered and OOPS happens 
      when it fires.
      
      The solution, as suggested by David Miller, was to keep track which 
      cards of the Quattro bundles have been initialized, and request/free the 
      Quattro IRQ only when all four devices have been successfully 
      initialized.
      
      The patch only touches SBus initialization - PCI init already resets the 
      card pointer to NULL on init failure.
      
      The patch has been tested on Sun E3500 with SBus and PCI single HME 
      cards and one PCI Quattro HME card in a situation where any PCI card 
      failed init when the SBus routines tried to init them by mistake.
      
      Additionally it replaces Quattro request_irq panic with error return - 
      if this card fails to work, at least let the others work.
      
      Tested on E450 with PCI HME and PCI Quad HME.
      
      [ Minor coding style fixups -DaveM ]
      Signed-off-by: NMeelis Roos <mroos@linux.ee>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7b7a799d
    • P
      mdio-gpio: Add mdc pin direction initialization · 664f93b4
      Paulius Zaleckas 提交于
      mdc pin should always be output. Initialize it as output,
      so each board code does not need to do this.
      Signed-off-by: NPaulius Zaleckas <paulius.zaleckas@teltonika.lt>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      664f93b4
  7. 10 2月, 2009 1 次提交
  8. 09 2月, 2009 3 次提交
  9. 07 2月, 2009 4 次提交
    • D
      sunhme: Don't match PCI devices in SBUS probe. · 0b492fce
      David S. Miller 提交于
      Unfortunately, the OF device tree nodes for SBUS and PCI
      hme devices have the same device node name on some systems.
      
      So if the name of the parent node isn't 'sbus', skip it.
      
      Based upon an excellent report and detective work by
      Meelis Roos and Eric Brower.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Tested-by: NMeelis Roos <mroos@linux.ee>
      0b492fce
    • O
      3c509: Fix resume from hibernation for PnP mode. · 152abd13
      Ondrej Zary 提交于
      From: Ondrej Zary <linux@rainbow-software.org>
      
      last year, I posted a patch which fixed hibernation on 3c509
      cards. That was back in 2.6.24. It worked fine in 2.6.25. But then I
      stopped using hibernation (as it did not work with my new IT8212 RAID
      controller).
      
      Now I fixed it and noticed that 3c509 does not wake up properly
      anymore (in 2.6.28) - neither in PnP nor in ISA modes. ifconfig
      down/up makes the card work again in PnP mode. However, in ISA mode,
      ifconfig up ends with "No such device" error.
      
      Comparing the 3c509 driver between 2.6.25 and 2.6.28, there's only
      some statistics-related change. So the cause of the problem must be
      somewhere else.
      
      This patch makes the resume work in PnP mode, but it's still not
      enough for ISA mode.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      152abd13
    • I
      sungem: Soft lockup in sungem on Netra AC200 when switching interface up · 71822faa
      Ilkka Virta 提交于
      From: Ilkka Virta <itvirta@iki.fi>
      
      In the lockup situation the driver seems to go off in an eternal storm
      of interrupts right after calling request_irq(). It doesn't actually
      do anything interesting in the interrupt handler. Since connecting the link
      afterwards works, something later in initialization must fix this.
      
      Looking at gem_do_start() and gem_open(), it seems that the only thing
      done while opening the device after the request_irq(), is a call to
      napi_enable().
      
      I don't know what the ordering requirements are for the
      initialization, but I boldly tried to move the napi_enable() call
      inside gem_do_start() before the link state is checked and interrupts
      subsequently enabled, and it seems to work for me. Doesn't even break
      anything too obvious...
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      71822faa
    • I
      r8169: Don't update statistics counters when interface is down · 355423d0
      Ivan Vecera 提交于
      Some Realtek chips (RTL8169sb/8110sb in my case) are unable to retrieve
      ethtool statistics when the interface is down. The process stays in
      endless loop in rtl8169_get_ethtool_stats. This is because these chips
      need to have receiver enabled (CmdRxEnb bit in ChipCmd register) that is
      cleared when the interface is going down. It's better to update statistics
      only when the interface is up and otherwise return copy of statistics
      grabbed when the interface was up (in rtl8169_close).
      
      It is interesting that PCI-E NICs (like 8168b/8111b...) are not affected.
      Signed-off-by: NIvan Vecera <ivecera@redhat.com>
      Acked-by: NFrancois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      355423d0