Re: [PATCH 07 of 14] swiotlb: add arch hook to force mapping

FUJITA Tomonori
2008-12-22T05:35:37Z

On Tue, 16 Dec 2008 12:17:31 -0800
Jeremy Fitzhardinge <jeremy@goop.org> wrote:

> From: Ian Campbell <ian.campbell@citrix.com>
>
> Some architectures require special rules to determine whether a range
> needs mapping or not. This adds a weak function for architectures to
> override.
>
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
> ---
> include/linux/swiotlb.h | 2 ++
> lib/swiotlb.c | 15 +++++++++++++--
> 2 files changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
> --- a/include/linux/swiotlb.h
> +++ b/include/linux/swiotlb.h
> @@ -30,6 +30,8 @@
> extern dma_addr_t swiotlb_phys_to_bus(phys_addr_t address);
> extern phys_addr_t swiotlb_bus_to_phys(dma_addr_t address);
>
> +extern int swiotlb_arch_range_needs_mapping(void *ptr, size_t size);
> +
> extern void
> *swiotlb_alloc_coherent(struct device *hwdev, size_t size,
> dma_addr_t *dma_handle, gfp_t flags);
> diff --git a/lib/swiotlb.c b/lib/swiotlb.c
> --- a/lib/swiotlb.c
> +++ b/lib/swiotlb.c
> @@ -145,6 +145,11 @@
> return phys_to_virt(swiotlb_bus_to_phys(address));
> }
>
> +int __weak swiotlb_arch_range_needs_mapping(void *ptr, size_t size)
> +{
> + return 0;
> +}

Can't you simply make address_needs_mapping __weak as Becky does?