From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Return-Path: Message-ID: <1462485774.20290.34.camel@kernel.crashing.org> Subject: Re: [PATCH v11 04/60] sparc/PCI: Use correct offset for bus address to resource From: Benjamin Herrenschmidt To: Yinghai Lu , Bjorn Helgaas , David Miller Cc: Bjorn Helgaas , Linus Torvalds , Wei Yang , TJ , Yijing Wang , Khalid Aziz , "linux-pci@vger.kernel.org" , Linux Kernel Mailing List , Michael Ellerman Date: Fri, 06 May 2016 08:02:54 +1000 In-Reply-To: References: <1460074573-7481-5-git-send-email-yinghai@kernel.org> <20160422204920.GA17215@localhost> <20160428135607.GA12470@localhost> <1462322260.30470.76.camel@kernel.crashing.org> <20160504012531.GB17170@localhost> <20160504151722.GA22051@localhost> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 List-ID: 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).  Cheers, Ben.