Re: [PATCH] S390: add pci_iomap_wc() and pci_iomap_wc_range()

From: Luis R. Rodriguez
Date: Fri Aug 28 2015 - 20:15:39 EST

On Fri, Aug 28, 2015 at 01:22:27AM -0700, Guenter Roeck wrote:
> On 08/27/2015 11:06 PM, Ingo Molnar wrote:
> >
> >* Luis R. Rodriguez <mcgrof@xxxxxxxxxxxxxxxx> wrote:
> >
> >>From: "Luis R. Rodriguez" <mcgrof@xxxxxxxx>
> >>
> >>S390 requires its own implementation of pcio_iomap*() calls
> >>is because it has its "BAR spaces are not disjunctive on s390
> >>so we need the bar parameter of pci_iomap to find the corresponding
> >>device and create the mapping cookie" -- in summary, it has its own
> >>lookup/lock solution.
> >>
> >>It does not include asm-generic/pci_iomap.h
> >>
> >>Since it currenty maps ioremap_wc() to ioremap_nocache() and that's
> >>the architecture default we can easily just map the wc calls to
> >>the default calls as well.
> >>
> >>Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
> >>Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
> >>Cc: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
> >>Cc: linux-fbdev@xxxxxxxxxxxxxxx
> >>Cc: linux-kernel@xxxxxxxxxxxxxxx
> >>Cc: Borislav Petkov <bp@xxxxxxx>
> >>Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> >>Cc: Fengguang Wu <fengguang.wu@xxxxxxxxx>
> >>Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> >>Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
> >>Reported-by: 0 day bot
> >>Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
> >>---
> >>
> >>This broke through some series that went into Ingo's tip tree which
> >>I added. As such I *think* this should go through Ingo's tip tree.
> >>Let me know. Up to you guys.
> >
> >I fixed the changelog to explain all this.
> >
> >Also, is there any other architecture that got broken by:
> >
> > 1b3d4200c1e0 PCI: Add pci_iomap_wc() variants
> >
> Should be the only one. There are only two implementations of pci_iomap(),
> one in s390 code and the generic implementation.

Indeed, sadly there is no semantics well defined to establish this requirement
so the best we can do is infer:

mcgrof@ergon ~/linux-next (git::20150805-pend-all)$ git grep pci_iomap_range arch/
arch/s390/include/asm/io.h:#define pci_iomap_wc_range pci_iomap_range
arch/s390/pci/pci.c:void __iomem *pci_iomap_range(struct pci_dev *pdev,
arch/s390/pci/pci.c: return pci_iomap_range(dev, bar, 0, maxlen);

To this end a Kconfig option to implicate this might be more well suited for
future lookups and make other architectures which are incompatible with
generic pci_iomap clearer. Will post an RFC.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at