Re: [PATCH 2/2] Added leon3_dma_ops and LEON specific mmu_inval_dma_area

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

 



David Miller wrote:


You really need to investigate why dma_map_single() is not
returning sane addresses.

I haven't reached a conclusion yet since I'm not so familiar with
the Linux VM subsystem and have not had much time to look at it.

But I noticed that pci_map_single does not work in later kernels.
I guess it stopped working with the patch "sparc: Use
asm-generic/pci-dma-compat" since before the that the physical address
was obtained through virt_to_phys() and after that it goes through
page_to_phys(virt_to_page()) which does not work. Using
page_address(virt_to_page()) works but I understand that this does not
always evaluate properly.

Using page_to_phys(virt_to_page()) results in an address lacking the
phys_base offset. My patch to page_to_phys (adding phys_base) several
weeks ago was done because of this but I thought that the problem then
was that I was using virt_to_page() on an address obtained through
kmalloc which I have read is not really allowed?
The page_to_phys(virt_to_page()) does not even work for memory allocated
with __get_free_page() currently.

I will continue investigating this when I have the time. I just wanted
to give you this feedback. Maybe you understand what is going on ...

Best regards,
Kristoffer






--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux