1. 19 2月, 2009 1 次提交
  2. 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
  3. 13 2月, 2009 17 次提交
  4. 12 2月, 2009 4 次提交
  5. 11 2月, 2009 3 次提交
    • 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
    • M
      fore200: fix oops on failed firmware load · fcffd0d8
      Meelis Roos 提交于
      Fore 200 ATM driver fails to handle request_firmware failures and oopses 
      when no firmware file was found. Fix it by checking for the right return 
      values and propaganting the return value up.
      Signed-off-by: NMeelis Roos <mroos@linux.ee>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fcffd0d8
    • 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
  6. 10 2月, 2009 1 次提交
  7. 09 2月, 2009 5 次提交
  8. 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
  9. 05 2月, 2009 4 次提交
    • A
      gianfar: Fix potential soft reset race · b98ac702
      Andy Fleming 提交于
      SOFT_RESET must be asserted for at least 3 TX clocks in order for it to work
      properly.  The syncs in the gfar_write() commands have been hiding this, but
      we need to guarantee it.
      Signed-off-by: NAndy Fleming <afleming@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b98ac702
    • A
      gianfar: Fix BD_LENGTH_MASK definition · 1fbe4932
      Andy Fleming 提交于
      BD_LENGTH_MASK is supposed to catch the low 16-bits of the status field, not
      the low byte.  The old way, we would never be able to clean up tx packets with
      sizes divisible by 256.
      Signed-off-by: NAndy Fleming <afleming@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1fbe4932
    • D
      cxgb3: Fix lro switch · 65ab8385
      Divy Le Ray 提交于
      The LRO switch is always set to 1 in the rx processing loop.
      It breaks the accelerated iSCSI receive traffic.
      Fix its computation.
      Signed-off-by: NDivy Le Ray <divy@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      65ab8385
    • R
      iwlwifi: save PCI state before suspend, restore after resume · c4e061ac
      Reinette Chatre 提交于
      This is the right thing to do and fixes the following warning:
      
      [  115.012278] ------------[ cut here ]------------
      [  115.012281] WARNING: at drivers/pci/pci-driver.c:370
      pci_legacy_suspend+0x85/0xc2()
      [  115.012285] Hardware name: Latitude D630
      [  115.012301] PCI PM: Device state not saved by
      iwl3945_pci_suspend+0x0/0x4c [iwl3945]
      [  115.012304] Modules linked in: fuse nfsd lockd nfs_acl auth_rpcgss
      exportfs sunrpc ipv6 acpi_cpufreq kvm_intel kvm snd_hda_codec_idt
      snd_hda_intel snd_hda_codec snd_hwdep arc4 snd_seq_device snd_pcm_oss
      snd_mixer_oss ecb snd_pcm cryptomgr aead snd_timer crypto_blkcipher
      snd snd_page_alloc ohci1394 crypto_hash crypto_algapi ch341 ieee1394
      usbserial thermal iwl3945 mac80211 led_class lib80211 tg3 processor
      i2c_i801 i2c_core sg cfg80211 libphy usbhid battery ac button sr_mod
      cdrom evdev dcdbas ata_generic ata_piix libata sd_mod scsi_mod ext3
      jbd mbcache uhci_hcd ohci_hcd ehci_hcd usbcore [last unloaded:
      microcode]
      [  115.012374] Pid: 4163, comm: pm-suspend Not tainted
      2.6.29-rc3-00227-gf1dd849-dirty #67
      [  115.012377] Call Trace:
      [  115.012382]  [<ffffffff8023d04d>] warn_slowpath+0xb1/0xed
      [  115.012387]  [<ffffffff80450b5e>] ? _spin_unlock_irqrestore+0x5c/0x78
      [  115.012390]  [<ffffffff80254f08>] ? up+0x34/0x39
      [  115.012394]  [<ffffffff80362319>] ? acpi_ut_release_mutex+0x5d/0x61
      [  115.012397]  [<ffffffff803584b2>] ? acpi_get_data+0x5e/0x70
      [  115.012400]  [<ffffffff80363dd9>] ? acpi_bus_get_device+0x25/0x39
      [  115.012403]  [<ffffffff80363e98>] ? acpi_bus_power_manageable+0x11/0x29
      [  115.012406]  [<ffffffff803462f7>] ? acpi_pci_power_manageable+0x17/0x19
      [  115.012410]  [<ffffffff8033ddfd>] ? pci_set_power_state+0xcc/0x101
      [  115.012418]  [<ffffffffa01f28e9>] ? iwl3945_pci_suspend+0x0/0x4c [iwl3945]
      [  115.012422]  [<ffffffff803401e6>] pci_legacy_suspend+0x85/0xc2
      [  115.012425]  [<ffffffff80340316>] pci_pm_suspend+0x34/0x86
      [  115.012429]  [<ffffffff8039d7ce>] pm_op+0x52/0xe5
      [  115.012432]  [<ffffffff8039dd78>] device_suspend+0x32a/0x451
      [  115.012436]  [<ffffffff80269ec2>] suspend_devices_and_enter+0x3e/0x13a
      [  115.012439]  [<ffffffff8026a128>] enter_state+0x110/0x164
      [  115.012442]  [<ffffffff8026a233>] state_store+0xb7/0xd7
      [  115.012446]  [<ffffffff8032f95f>] kobj_attr_store+0x17/0x19
      [  115.012449]  [<ffffffff80307d64>] sysfs_write_file+0xe4/0x119
      [  115.012453]  [<ffffffff802baa7a>] vfs_write+0xae/0x137
      [  115.012456]  [<ffffffff802babc7>] sys_write+0x47/0x70
      [  115.012459]  [<ffffffff8020b73a>] system_call_fastpath+0x16/0x1b
      [  115.012467] ---[ end trace 829828966f6f24dc ]---
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Tested-by: NMing Lei <tom.leiming@gmail.com>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c4e061ac