Re: [PATCH 4/7] swiotlb: Allow arch override of address_needs_mapping
From: Kumar Gala
Date: Thu Apr 09 2009 - 00:45:10 EST
On Apr 8, 2009, at 7:09 PM, Jeremy Fitzhardinge wrote:
FUJITA Tomonori wrote:
On Wed, 08 Apr 2009 16:16:17 -0700
Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote:
FUJITA Tomonori wrote:
Becky's patches of last week also added __weak annotations to
swiotlb_bus_to_virt, virt_to_bus and bus_to_phys; added the
hwdev parameter to swiotlb_bus_to_phys; and added a weak
swiotlb_arch_address_needs_mapping. I assume that was needed
because powerpc needs non-trivial implementations for those
functions.
Hmm, what she added are wrappers of virt_to_bus and bus_to_virt. We
can remove these and directly use virt_to_bus and bus_to_virt.
In general those interfaces are deprecated. Are we un-deprecating
them? Or do you mean adding virt<->bus to dma_ops?
Hmm, these interfaces are wrong for drivers surely because they can't
handle dma mapping properly. However, they are exactly what swiotlb
needs (swiotlb doesn't need to care about dma mapping).
It needs to care about the mapping from phys to bus. On x86 they're
identical, but on powerpc there can be at least an offset between
them.
Until 2.6.28,
swiotlb has used them. They are with IA64, X86_64 and PPC_32, I
think.
Well, Becky's patches also added the hwdev argument to them, so
presumably the powerpc implementation needs that (different devices/
buses have differing views of physical memory, I guess).
On powerpc we need the hwdev because things vary based on bus. For
our SoC chips we don't need any mapping between phys & bus. However
something like PCI does have a mapping (a simple offset).
- k
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/