Re: [PATCH V2 2/3] powerpc: Add support for swiotlb on 32-bit
From: Jeremy Fitzhardinge
Date: Thu May 21 2009 - 16:19:14 EST
Becky Bruce wrote:
I can work with that, but it's going to be a bit inefficient, as I
actually need the dma_addr_t, not the phys_addr_t, so I'll have to
convert. In every case, this is a conversion I've already done and
that I need in the calling code as well. Can we pass in both the
phys_addr_t and the dma_addr_t?
The Xen implementation would needs to do the phys to bus conversion page
by page anyway, so it wouldn't help much. But it also wouldn't hurt.
How expensive is the phys-to-bus conversion on power? Is it worth
making the interface more complex for? Would passing phys+bus mean that
we wouldn't also need to pass dev?
We have both in every case but one, which is in swiotlb_map_page where
we call address_needs_mapping() without calling range_needs_mapping.
It's not actually clear to me that we need that check, though. Can
someone explain what case that was designed to catch?
It called them together a little earlier in the function, and the phys
address is still available.
I guess the test is checking for a bad implementation of map_single().
I found a single instance of someone reporting the message (in 2.6.11,
when swiotlb was ia64-specific: http://lkml.org/lkml/2008/3/3/249).
panic() is an odd way to handle an error (even an one which is an
implementation bug), but I guess it's better than scribbling on the
wrong memory.
J
--
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/