[RFC PATCH v3 0/2] Fix procfs PCI resources mmap

From: Lorenzo Pieralisi
Date: Thu Nov 13 2014 - 06:19:26 EST


The way PCI memory resources are exported to user space through procfs
is not uniform across architectures. In particular, some architectures
(ie SPARC) export the resource PCI bus address to user space, whereas
others (ARM, PowerPC, Microblaze) export the resource CPU physical address.
This convention should be followed when it comes to passing the pgoff
values to the mmap syscall to map the resource in question.

Consequently, the checks applied to the offset passed to the mmap syscall
(in pci_mmap_fits()) are to be interpreted differently on different
architectures, and in particular they should match the values exported to
user space through the pci_resource_to_user() conversion function.

This patch series addresses two issues. First patch applies the
pci_resource_to_user() filter to the PCI resource that is being
mapped in order to carry out a proper check against the pgoff passed
from user space. Second patch fixes the way the pgoff is handled in
the ARM pci_mmap_page_range() implementation.

v2 posting:

http://marc.info/?l=linux-kernel&m=141416813409829&w=2

v2 => v3
- Reworded commit log in order to try to bisect the breakage
and provide insights into the commit history that led to the
current interface

v1 => v2
- Reworded commit log as per RMK comments

Lorenzo Pieralisi (2):
drivers: pci: fix pci_mmap_fits() implementation for procfs mmap
arm: kernel: fix pci_mmap_page_range() offset calculation

arch/arm/kernel/bios32.c | 10 ++--------
drivers/pci/pci-sysfs.c | 13 ++++++++-----
2 files changed, 10 insertions(+), 13 deletions(-)

--
2.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/