04 Jul, 2011

9 commits


07 Jan, 2011

1 commit


26 Feb, 2010

1 commit


15 Feb, 2010

1 commit


22 Dec, 2009

1 commit

  • Commit f74f7e57ae9fa12b2951ae62ce3557799b318399 (ARM: use
    flush_kernel_dcache_area() for dmabounce) has broken dmabounce build:

    CC arch/arm/common/dmabounce.o
    arch/arm/common/dmabounce.c: In function 'unmap_single':
    arch/arm/common/dmabounce.c:315: error: implicit declaration of function '__cpuc_flush_kernel_dcache_area'
    make[2]: *** [arch/arm/common/dmabounce.o] Error 1

    Fix it.

    Signed-off-by: Mike Rapoport
    Signed-off-by: Russell King

    Mike Rapoport
     

14 Dec, 2009

1 commit


23 Nov, 2009

1 commit


16 Mar, 2009

1 commit

  • If a machine class has a custom __virt_to_bus() implementation then it
    must provide a __arch_page_to_dma() implementation as well which is
    _not_ based on page_address() to support highmem.

    This patch fixes existing __arch_page_to_dma() and provide a default
    implementation otherwise. The default implementation for highmem is
    based on __pfn_to_bus() which is defined only when no custom
    __virt_to_bus() is provided by the machine class.

    That leaves only ebsa110 and footbridge which cannot support highmem
    until they provide their own __arch_page_to_dma() implementation.
    But highmem support on those legacy platforms with limited memory is
    certainly not a priority.

    Signed-off-by: Nicolas Pitre

    Nicolas Pitre
     

29 Sep, 2008

5 commits


26 Sep, 2008

3 commits


10 Aug, 2008

2 commits


27 Jul, 2008

1 commit

  • 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: FUJITA Tomonori
    Cc: Muli Ben-Yehuda
    Cc: Andi Kleen
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Avi Kivity
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     

22 Jul, 2008

1 commit


22 Jun, 2008

1 commit


23 Oct, 2007

2 commits


13 Oct, 2007

1 commit


21 May, 2007

1 commit


18 Feb, 2007

1 commit


12 Feb, 2007

2 commits


08 Feb, 2007

3 commits


03 Nov, 2006

1 commit