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-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html