[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] Retry 3: Use i386 swiotlb code in lib/swiotlb-xen.c [2/2]



On 27/2/07 20:30, "Langsdorf, Mark" <mark.langsdorf@xxxxxxx> wrote:

>> I'm pretty certain this is wrong: dma_handle is what should be passed
>> to in_swiotlb_aperture().
> 
> The original code is
> if (!(vaddr >= (void *)io_tlb_start) && vaddr < (void *)
> io_tlb_end))
> free_pages((unsigned long) vaddr, get_order(size));
> 
> I can't see why I wouldn't check the vaddr address in Xen, also.

You can either use the vaddr check from original lib/swiotlb.c *or* you can
pass the dma_handle to in_swiotlb_aperture(). You cannot pass a vaddr to
in_swiotlb_aperture(): it makes no sense!

Actually I think the dma_alloc_coherent() you've hauled in from native
x86/64 code won't even work on Xen as it is. The dma_alloc_pages() function
it uses first won't guarantee to return contiguous memory on Xen, but that
is implicitly assumed by the caller.

I'm afraid various rather serious niggles like these make me wary of
applying these patches until they've been very thoroughly audited.

 -- Keir



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.