lkml.org 
[lkml]   [2009]   [Apr]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:core/iommu] swiotlb: allow arch override of address_needs_mapping
    Commit-ID:  ef5722f698bde01cfec2b98fff733a48663ebf55
    Gitweb: http://git.kernel.org/tip/ef5722f698bde01cfec2b98fff733a48663ebf55
    Author: Becky Bruce <beckyb@kernel.crashing.org>
    AuthorDate: Wed, 8 Apr 2009 09:09:18 -0500
    Committer: Ingo Molnar <mingo@elte.hu>
    CommitDate: Wed, 8 Apr 2009 16:18:36 +0200

    swiotlb: allow arch override of address_needs_mapping

    Some architectures require additional checking to determine
    if a device can dma to an address and need to provide their
    own address_needs_mapping..

    Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
    Acked-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
    Cc: jeremy@goop.org
    Cc: ian.campbell@citrix.com
    LKML-Reference: <1239199761-22886-5-git-send-email-galak@kernel.crashing.org>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>


    ---
    lib/swiotlb.c | 10 ++++++++--
    1 files changed, 8 insertions(+), 2 deletions(-)

    diff --git a/lib/swiotlb.c b/lib/swiotlb.c
    index e8a47c8..d81afab 100644
    --- a/lib/swiotlb.c
    +++ b/lib/swiotlb.c
    @@ -145,6 +145,12 @@ static void *swiotlb_bus_to_virt(dma_addr_t address)
    return phys_to_virt(swiotlb_bus_to_phys(address));
    }

    +int __weak swiotlb_arch_address_needs_mapping(struct device *hwdev,
    + dma_addr_t addr, size_t size)
    +{
    + return !is_buffer_dma_capable(dma_get_mask(hwdev), addr, size);
    +}
    +
    int __weak swiotlb_arch_range_needs_mapping(phys_addr_t paddr, size_t size)
    {
    return 0;
    @@ -309,10 +315,10 @@ cleanup1:
    return -ENOMEM;
    }

    -static int
    +static inline int
    address_needs_mapping(struct device *hwdev, dma_addr_t addr, size_t size)
    {
    - return !is_buffer_dma_capable(dma_get_mask(hwdev), addr, size);
    + return swiotlb_arch_address_needs_mapping(hwdev, addr, size);
    }

    static inline int range_needs_mapping(phys_addr_t paddr, size_t size)

    \
     
     \ /
      Last update: 2009-04-08 17:33    [W:0.046 / U:0.008 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site