uio_mf624: Align memory regions to page size and set correct offsets
authorMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 16 Mar 2017 13:50:10 +0000 (14:50 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 8 Apr 2017 16:13:28 +0000 (18:13 +0200)
commit270579d95f820e93b39dafd4382530b3beb744e4
tree39791f3bdb9937b180fbf2f7256649488f32799c
parenta15d2ddba9ee94b252d2737419bff285d6b0e239
uio_mf624: Align memory regions to page size and set correct offsets

mf624 card has its registers not aligned to pages. Since commit
b65502879556 ("uio: we cannot mmap unaligned page contents") mmap()ing
mf624 registers fails, because now the uio drivers must set
uio_mem->addr to be page-aligned.

We align the address here and set the newly introduced offs field to
the offset of the mf264 registers within the page so that userspace
can find the address of the mmap()ed register by reading
/sys/class/uio/uio?/maps/map?/offset.

Tested with real mf624 card.

Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/uio/uio_mf624.c