2.6.23-stable review patch. If anyone has any objections, please let us know. ------------------ From: David Miller [SPARC64]: Implement pci_resource_to_user() [ Upstream commit: bcea1db16ba1c45ccebb3bfb8441642d1342c4d5 ] This makes libpciaccess able to mmap() resources of the device properly. Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- arch/sparc64/kernel/pci.c | 16 ++++++++++++++++ include/asm-sparc64/pci.h | 4 ++++ 2 files changed, 20 insertions(+) --- a/arch/sparc64/kernel/pci.c +++ b/arch/sparc64/kernel/pci.c @@ -1276,4 +1276,20 @@ int pci_dma_supported(struct pci_dev *pd return (device_mask & dma_addr_mask) == dma_addr_mask; } +void pci_resource_to_user(const struct pci_dev *pdev, int bar, + const struct resource *rp, resource_size_t *start, + resource_size_t *end) +{ + struct pci_pbm_info *pbm = pdev->dev.archdata.host_controller; + unsigned long offset; + + if (rp->flags & IORESOURCE_IO) + offset = pbm->io_space.start; + else + offset = pbm->mem_space.start; + + *start = rp->start - offset; + *end = rp->end - offset; +} + #endif /* !(CONFIG_PCI) */ --- a/include/asm-sparc64/pci.h +++ b/include/asm-sparc64/pci.h @@ -200,6 +200,10 @@ static inline int pci_get_legacy_ide_irq struct device_node; extern struct device_node *pci_device_to_OF_node(struct pci_dev *pdev); +#define HAVE_ARCH_PCI_RESOURCE_TO_USER +extern void pci_resource_to_user(const struct pci_dev *dev, int bar, + const struct resource *rsrc, + resource_size_t *start, resource_size_t *end); #endif /* __KERNEL__ */ #endif /* __SPARC64_PCI_H */ -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/