On Thu, May 5, 2016 at 3:02 PM, Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> wrote: > On Thu, 2016-05-05 at 08:53 -0700, Yinghai Lu wrote: >> For powerpc io port, we still need extra offset from resource address >> to final address. >> >> resource_size_t offset = >> ((resource_size_t)vma->vm_pgoff) << PAGE_SHIFT; >> >> + if (mmap_state == pci_mmap_io) { >> + struct pci_controller *hose = pci_bus_to_host(dev->bus); >> + >> + /* hose should never be NULL */ >> + offset += hose->io_base_phys - >> + ((unsigned long)hose->io_base_virt - _IO_BASE); >> + } >> >> vma->vm_pgoff = offset >> PAGE_SHIFT; >> >> but sparc does not need that trick. > > I'm not sure how sparc handles IO space but on powerpc, the IO resource > is not a physical address, it's a virtual address (coming from > ioremap). That is interesting. Any reason for that ? why just cpu_addr in resource directly ? Thanks Yinghai -- 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