On Wed, 8 Apr 2009 15:56:32 -0500
Kumar Gala <galak@xxxxxxxxxxxxxxxxxxx> wrote:
On Apr 8, 2009, at 3:38 PM, Christoph Hellwig wrote:
On Wed, Apr 08, 2009 at 09:09:18AM -0500, Kumar Gala wrote:It seems like the swiotlb code uses __weak for a number of things:
From: Becky Bruce <beckyb@xxxxxxxxxxxxxxxxxxx>Shouldn't we just move it completely to the arch? I think that ia64 and
Some architectures require additional checking to determine
if a device can dma to an address and need to provide their
own address_needs_mapping..
x86 currently use the same one is more of an accident.
lib/swiotlb.c:void * __weak __init swiotlb_alloc_boot(size_t size, unsigned long nslabs)
lib/swiotlb.c:void * __weak swiotlb_alloc(unsigned order, unsigned long nslabs)
lib/swiotlb.c:dma_addr_t __weak swiotlb_phys_to_bus(struct device *hwdev, phys_addr_t paddr)
lib/swiotlb.c:phys_addr_t __weak swiotlb_bus_to_phys(struct device *hwdev, dma_addr_t baddr)
lib/swiotlb.c:void * __weak swiotlb_bus_to_virt(struct device *hwdev, dma_addr_t address)
lib/swiotlb.c:int __weak swiotlb_arch_address_needs_mapping(struct device *hwdev,
lib/swiotlb.c:int __weak swiotlb_arch_range_needs_mapping(phys_addr_t paddr, size_t size)
instead of #ifndef HAVE_ARCH_<FOO>. Not sure if there is a historical reason for that.
ia64 and x86_64 use swiotlb but neither need this function. And
neither need any above __weak. They were added for dom0 support.
Yeah, swiotlb is much cleaner and better if we don't add dom0 support.