Re: [PATCH v11 04/60] sparc/PCI: Use correct offset for bus address to resource

From: Bjorn Helgaas
Date: Tue May 03 2016 - 21:25:42 EST


On Wed, May 04, 2016 at 10:37:40AM +1000, Benjamin Herrenschmidt wrote:
> On Tue, 2016-05-03 at 15:52 -0700, Yinghai Lu wrote:
> > BenH and DavidM,
> > Are you ok to let /proc/bus/pci/devices to expose resource value
> > instead of
> > BAR value?
> > powerpc already expose MMIO as resource value, but still keep IO as
> > BAR value?
> >
> > Or can we just dump /proc/bus/pci support from now?
>
> The problem tends to be old Xserver expectations...
>
> That stuff has been a can of worms over the years and we did things in
> the kernel to work around X limitations. I'm not that keen on touching
> /proc at all in that regard. Leave it there do what it does today, it's
> a user visible ABI, don't change it.

I did not propose changing any user-visible ABI. To recap what I did
propose:

- The sysfs path uses offsets between 0 and BAR size on all arches.
It uses pci_resource_to_user() today, but I think it should not.

- The procfs path uses offsets of resource values (CPU physical
addresses) on most architectures, but uses something else, e.g.,
BAR values, on others. pci_resource_to_user() does this
translation. The procfs path does not use pci_resource_to_user()
today, but I think it should.

- This implies that pci_mmap_page_range() should deal with resource
values (CPU physical addresses), and proc_bus_pci_mmap() should do
any necessary arch-specific translation from BAR values to
resource values.