Alexis Berlemont wrote: > Hi Gilles, > > Sorry for answering so late. I was unable to regularly check my private mails > the last week; I missed yours. > >> I commited in trunk a fix of Xenomai heap management for the highmem >> case. What the patch does is essentially replacing __va_to_kva (which >> does not work correctly with highmem) with vmalloc_to_page, which is >> available on all linux versions Xenomai supports. >> >> However, I found that comedi buffer management also uses __va_to_kva. We >> can fix SetPageReserved and ClearPageReserved easily to use >> vmalloc_to_page, however, I do not see what pg_list is used for, so do >> not really know how to fix it. Here is a proposed patch: > > If I remember well, pg_list may be used by some PCI/PCIe DMA components which > can dump acquired data to physically non-contiguous buffers. In such cases, > the driver has to provide a list of the pages addresses into which the DMA > controller can trigger shots. > > Many thanks for your fix.
No problem, really, I actually did not fix pg_list. It will not work with highmem. What do the DMA needs? physical adresses? Then you need to replace page_address(vmalloc_to_page(vaddr)) with page_to_phys(vmalloc_to_page(vaddr)) Or you may store the struct page, and let the drivers do what they want with it. -- Gilles. _______________________________________________ Xenomai-core mailing list Xenomaiemail@example.com https://mail.gna.org/listinfo/xenomai-core