1. 12 Jun, 2009 1 commit
  2. 02 Jun, 2009 1 commit
  3. 17 Mar, 2009 1 commit
  4. 29 Jan, 2009 1 commit
  5. 15 Jan, 2009 1 commit
  6. 01 Dec, 2008 1 commit
  7. 09 Oct, 2008 1 commit
  8. 26 Jul, 2008 1 commit
    • FUJITA Tomonori's avatar
      dma-mapping: add the device argument to dma_mapping_error() · 8d8bb39b
      FUJITA Tomonori authored
      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: default avatarFUJITA 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: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8d8bb39b
  9. 29 Apr, 2008 2 commits
  10. 12 Oct, 2007 1 commit
    • David Brownell's avatar
      dma_free_coherent() needs irqs enabled (sigh) · aa24886e
      David Brownell authored
      
      On at least ARM (and I'm told MIPS too) dma_free_coherent() has a newish
      call context requirement: unlike its dma_alloc_coherent() sibling, it may
      not be called with IRQs disabled.  (This was new behavior on ARM as of late
      2005, caused by ARM SMP updates.) This little surprise can be annoyingly
      driver-visible.
      
      Since it looks like that restriction won't be removed, this patch changes
      the definition of the API to include that requirement.  Also, to help catch
      nonportable drivers, it updates the x86 and swiotlb versions to include the
      relevant warnings.  (I already observed that it trips on the
      bus_reset_tasklet of the new firewire_ohci driver.)
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: David Miller <davem@davemloft.net>
      Acked-by: default avatarRussell King <rmk@arm.linux.org.uk>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      aa24886e
  11. 31 Jul, 2007 1 commit
  12. 07 Dec, 2006 3 commits
  13. 29 Nov, 2006 1 commit
  14. 14 Apr, 2006 1 commit
    • David Brownell's avatar
      [PATCH] dma doc updates · 21440d31
      David Brownell authored
      
      This updates the DMA API documentation to address a few issues:
      
       - The dma_map_sg() call results are used like pci_map_sg() results:
         using sg_dma_address() and sg_dma_len().  That's not wholly obvious
         to folk reading _only_ the "new" DMA-API.txt writeup.
      
       - Buffers allocated by dma_alloc_coherent() may not be completely
         free of coherency concerns ... some CPUs also have write buffers
         that may need to be flushed.
      
       - Cacheline coherence issues are now mentioned as being among issues
         which affect dma buffers, and complicate/prevent using of static and
         (especially) stack based buffers with the DMA calls.
      
      I don't think many drivers currently need to worry about flushing write
      buffers, but I did hit it with one SOC using external SDRAM for DMA
      descriptors:  without explicit writebuffer flushing, the on-chip DMA
      controller accessed descriptors before the CPU completed the writes.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      21440d31
  15. 10 Sep, 2005 1 commit
  16. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4