1. 02 10月, 2008 1 次提交
  2. 14 8月, 2008 4 次提交
  3. 07 8月, 2008 4 次提交
  4. 27 7月, 2008 1 次提交
    • F
      dma-mapping: add the device argument to dma_mapping_error() · 8d8bb39b
      FUJITA Tomonori 提交于
      Add per-device dma_mapping_ops support for CONFIG_X86_64 as POWER
      architecture does:
      
      This enables us to cleanly fix the Calgary IOMMU issue that some devices
      are not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).
      
      I think that per-device dma_mapping_ops support would be also helpful for
      KVM people to support PCI passthrough but Andi thinks that this makes it
      difficult to support the PCI passthrough (see the above thread).  So I
      CC'ed this to KVM camp.  Comments are appreciated.
      
      A pointer to dma_mapping_ops to struct dev_archdata is added.  If the
      pointer is non NULL, DMA operations in asm/dma-mapping.h use it.  If it's
      NULL, the system-wide dma_ops pointer is used as before.
      
      If it's useful for KVM people, I plan to implement a mechanism to register
      a hook called when a new pci (or dma capable) device is created (it works
      with hot plugging).  It enables IOMMUs to set up an appropriate
      dma_mapping_ops per device.
      
      The major obstacle is that dma_mapping_error doesn't take a pointer to the
      device unlike other DMA operations.  So x86 can't have dma_mapping_ops per
      device.  Note all the POWER IOMMUs use the same dma_mapping_error function
      so this is not a problem for POWER but x86 IOMMUs use different
      dma_mapping_error functions.
      
      The first patch adds the device argument to dma_mapping_error.  The patch
      is trivial but large since it touches lots of drivers and dma-mapping.h in
      all the architecture.
      
      This patch:
      
      dma_mapping_error() doesn't take a pointer to the device unlike other DMA
      operations.  So we can't have dma_mapping_ops per device.
      
      Note that POWER already has dma_mapping_ops per device but all the POWER
      IOMMUs use the same dma_mapping_error function.  x86 IOMMUs use device
      argument.
      
      [akpm@linux-foundation.org: fix sge]
      [akpm@linux-foundation.org: fix svc_rdma]
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix bnx2x]
      [akpm@linux-foundation.org: fix s2io]
      [akpm@linux-foundation.org: fix pasemi_mac]
      [akpm@linux-foundation.org: fix sdhci]
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix sparc]
      [akpm@linux-foundation.org: fix ibmvscsi]
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Muli Ben-Yehuda <muli@il.ibm.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Avi Kivity <avi@qumranet.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8d8bb39b
  5. 24 7月, 2008 1 次提交
    • I
      e1000e: fix e1000_netpoll(), remove extraneous e1000_clean_tx_irq() call · e8ebe3b8
      Ingo Molnar 提交于
      Evgeniy Polyakov noticed that drivers/net/e1000e/netdev.c:e1000_netpoll()
      was calling e1000_clean_tx_irq() without taking the TX lock.
      
      David Miller suggested to remove the call altogether: since in this
      callpah there's periodic calls to ->poll() anyway which will do
      e1000_clean_tx_irq() and will garbage-collect any finished TX ring
      descriptors.
      
      This fix solved the e1000e+netconsole crashes i've been seeing:
      
      =============================================================================
      BUG skbuff_head_cache: Poison overwritten
      -----------------------------------------------------------------------------
      
      INFO: 0xf658ae9c-0xf658ae9c. First byte 0x6a instead of 0x6b
      INFO: Allocated in __alloc_skb+0x2c/0x110 age=0 cpu=0 pid=5098
      INFO: Freed in __kfree_skb+0x31/0x80 age=0 cpu=1 pid=4440
      INFO: Slab 0xc16cc140 objects=16 used=1 fp=0xf658ae00 flags=0x400000c3
      INFO: Object 0xf658ae00 @offset=3584 fp=0xf658af00
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e8ebe3b8
  6. 18 7月, 2008 1 次提交
  7. 17 7月, 2008 2 次提交
  8. 07 7月, 2008 1 次提交
  9. 28 6月, 2008 1 次提交
  10. 27 6月, 2008 1 次提交
  11. 12 6月, 2008 1 次提交
  12. 22 5月, 2008 1 次提交
  13. 07 5月, 2008 1 次提交
    • B
      e1000e: Add support for BM PHYs on ICH9 · 97ac8cae
      Bruce Allan 提交于
      This patch adds support for the BM PHY, a new PHY model being used
      on ICH9-based implementations.
      
      This new PHY exposes issues in the ICH9 silicon when receiving
      jumbo frames large enough to use more than a certain part of the
      Rx FIFO, and this unfortunately breaks packet split jumbo receives.
      For this reason we re-introduce (for affected adapters only) the
      jumbo single-skb receive routine back so that people who do
      wish to use jumbo frames on these ich9 platforms can do so.
      Part of this problem has to do with CPU sleep states and to make
      sure that all the wake up timings are correctly we force them
      with the recently merged pm_qos infrastructure written by Mark
      Gross. (See http://lkml.org/lkml/2007/10/4/400).
      
      To make code read a bit easier we introduce a _IS_ICH flag so
      that we don't need to do mac type checks over the code.
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      97ac8cae
  14. 25 4月, 2008 3 次提交
  15. 17 4月, 2008 2 次提交
  16. 29 3月, 2008 3 次提交
  17. 26 3月, 2008 1 次提交
  18. 24 2月, 2008 2 次提交
  19. 15 2月, 2008 2 次提交
  20. 12 2月, 2008 1 次提交
  21. 03 2月, 2008 1 次提交
  22. 29 1月, 2008 4 次提交
    • A
      e1000e endianness annotations · a39fe742
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      a39fe742
    • A
      [E1000E]: update netstats traffic counters realtime · 41988692
      Auke Kok 提交于
      formerly e1000/e1000e only updated traffic counters once every
      2 seconds with the register values of bytes/packets. With newer
      code however in the interrupt and polling code we can real-time
      fill in these values in the netstats struct for users to see.
      Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      41988692
    • A
      e1000/e1000e: Move PCI-Express device IDs over to e1000e · 040babf9
      Auke Kok 提交于
      e1000e will from now on support the PCI-Express adapters that
      previously were supported by e1000. This support means better
      performance and easier debugging from now on for both the old
      PCI-X/PCI hardware and PCI-Express adapters.
      
      This patch also moves 3 recently merged device IDs over to e1000e
      that are identical to quad-port versions of already existing
      dual port versions. With this last bit every former e1000 pci-e
      device should work now with e1000e.
      
      Here is a brief list of which gigabit driver to use with which
      adapter:
      
        e1000:
      	82540 -> 82547
      
        e1000e:
      	82571 -> 82573
      	ich8, ich9       (82562 or 82566)
      	es2lan           (80003eslan)
      
        igb: (not yet merged, only available from e1000.sf.net)
      	82575
      Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      040babf9
    • A
      e1000e: Disable L1 ASPM power savings for 82573 mobile variants · 1eae4eb2
      Auke Kok 提交于
      L1 ASPM link (pci-e link power savings) has significant benefits
      (~1W savings when link is active) but unfortunately does not work
      correctly on any of the chipsets that have 82573 on mobile platforms
      which causes various nuisances:
       - eeprom reads return garbage information leading to bad eeprom
         checksums
       - long ping times (up to 2 seconds)
       - complete system hangs (freeze/lockup)
      
      A lot of T60 owners have been plagued by this, but other mobile
      solutions also suffer from these symptoms.
      
      Disabling L1 ASPM before we activate the PCI-E link fixes all of
      these issues at the cost of some power consumption.
      
      Remove a workaround RDTR adjustment that is no longer needed with
      this new one.
      Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      1eae4eb2
  23. 21 1月, 2008 1 次提交
    • D
      [NET]: Fix interrupt semaphore corruption in Intel drivers. · 49d85c50
      David S. Miller 提交于
      Several of the Intel ethernet drivers keep an atomic counter used to
      manage when to actually hit the hardware with a disable or an enable.
      
      The way the net_rx_work() breakout logic works during a pending
      napi_disable() is that it simply unschedules the poll even if it
      still has work.
      
      This can potentially leave interrupts disabled, but that is OK
      because all of the drivers are about to disable interrupts
      anyways in all such code paths that do a napi_disable().
      
      Unfortunately, this trips up the semaphore used here in the Intel
      drivers.  If you hit this case, when you try to bring the interface
      back up it won't enable interrupts.  A reload of the driver module
      fixes it of course.
      
      So what we do is make sure all the sequences now go:
      
      	napi_disable();
      	atomic_set(&adapter->irq_sem, 0);
      	*_irq_disable();
      
      which makes sure the counter is always in the correct state.
      
      Reported by Robert Olsson.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      49d85c50