Re: [PATCH] uio_pci_generic does not export memory resources

Dominic Eschweiler
2012-06-08T14:29:04Z

Am Freitag, den 08.06.2012, 16:03 +0300 schrieb Michael S. Tsirkin:
> Why is this needed?
> What's wrong with mapping resources through
> /sys/bus/pci/devices/XXXXXresourceX
> ?
>
Mmmh ok, the problem here is, that the UIO documentation states:

"/dev/uioX is used to access the address space of the card. Just use
mmap() to access registers or RAM locations of your card."

and

"From userspace, the different mappings are distinguished by adjusting
the offset parameter of the mmap() call."

This does not work and the "/sys/class/uio/uioX/maps/mapX/" directories
do also not appear. I was very confused when I tried UIO the first time
and it did not behave like it is described in the documentation.

Anyway, the patch adds the described behaviour and I would more than
happy, if it would be accepted for the mainline kernel.
>
> uio currently only supports devices which do not
> do DMA.
>
> DMA from uio controlled devices is a no no unless
> it's behind an IOMMU which can protect us from
> random memory corruptions this could cause.
>
> In the later case it's OK but we need some code
> to check this and program the IOMMU appropriately.

OK, I see. Might it be OK if I just remove the DMA stuff from this patch
and resubmit it?

--
Gruß
Dominic

Frankfurt Institute for Advanced Studies (FIAS)
Ruth-Moufang-Straße 1
D-60438 Frankfurt am Main
Germany

Phone: +49 69 79844114