Thread (4 messages) 4 messages, 4 authors, 2015-08-29

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

From: Luis R. Rodriguez <hidden>
Date: 2015-08-29 00:15:00
Also in: linux-arch, linux-s390, lkml

On Fri, Aug 28, 2015 at 01:22:27AM -0700, Guenter Roeck wrote:
On 08/27/2015 11:06 PM, Ingo Molnar wrote:
quoted
* Luis R. Rodriguez [off-list ref] wrote:
quoted
From: "Luis R. Rodriguez" <redacted>

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@roeck-us.net>
Cc: Jean-Christophe Plagniol-Villard <redacted>
Cc: Tomi Valkeinen <redacted>
Cc: linux-fbdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: Borislav Petkov <redacted>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Fengguang Wu <redacted>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Reported-by: 0 day bot
Signed-off-by: Luis R. Rodriguez <redacted>
---

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:EXPORT_SYMBOL(pci_iomap_range);
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.

  Luis
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help