diff for duplicates of <20170418110350.GA1941@red-moon>
diff --git a/a/1.txt b/N1/1.txt
index 00b3129..0dea9a5 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -3,37 +3,26 @@ On Tue, Apr 18, 2017 at 08:36:48PM +1000, Benjamin Herrenschmidt wrote:
> > I can add a defined(pgprot_nonposted) to pci_remap_iospace() if that's
> > not too ugly (I suspect Bjorn is thrilled about it :)), that plus
> > the Kconfig option for ioremap_nopost() should complete this series.
-> > =
-
+> >
> > int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr)
> > {
-> > #if defined(PCI_IOBASE) && defined(CONFIG_MMU) && defined(pgprot_nonpos=
-ted)
-> > =A0=A0=A0=A0=A0=A0=A0=A0unsigned long vaddr =3D (unsigned long)PCI_IOBA=
-SE + res->start;
-> > =
-
-> > =A0=A0=A0=A0=A0=A0=A0=A0if (!(res->flags & IORESOURCE_IO))
-> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0return -EINVAL;
-> > =
-
-> > =A0=A0=A0=A0=A0=A0=A0=A0if (res->end > IO_SPACE_LIMIT)
-> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0return -EINVAL
-> > =A0=A0=A0=A0=A0=A0=A0=A0return ioremap_page_range(vaddr, vaddr + resour=
-ce_size(res), phys_addr,
-> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
-=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 pgprot_nonposted(PAGE_KERNEL));
+> > #if defined(PCI_IOBASE) && defined(CONFIG_MMU) && defined(pgprot_nonposted)
+> > unsigned long vaddr = (unsigned long)PCI_IOBASE + res->start;
+> >
+> > if (!(res->flags & IORESOURCE_IO))
+> > return -EINVAL;
+> >
+> > if (res->end > IO_SPACE_LIMIT)
+> > return -EINVAL
+> > return ioremap_page_range(vaddr, vaddr + resource_size(res), phys_addr,
+> > pgprot_nonposted(PAGE_KERNEL));
> > #else
-> > =A0=A0=A0=A0=A0=A0=A0=A0/* this architecture does not have memory mappe=
-d I/O space,
-> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 so this function should never be called =
-*/
-> > =A0=A0=A0=A0=A0=A0=A0=A0WARN_ONCE(1, "This architecture does not suppor=
-t memory mapped I/O\n");
-> > =A0=A0=A0=A0=A0=A0=A0=A0return -ENODEV;
+> > /* this architecture does not have memory mapped I/O space,
+> > so this function should never be called */
+> > WARN_ONCE(1, "This architecture does not support memory mapped I/O\n");
+> > return -ENODEV;
> > #endif
-> =
-
+>
> The above would effectively disable mmap'ing of IO space for any
> architecture that doesn't have pgprot_nonposted... so everybody except
> ARM. Thus breaking a number of systems that have been working fine for
@@ -44,25 +33,21 @@ what I would actually break (and I am not sure at all how well PCI IO
space is tested on ARM/ARM64 machines anyway).
> I fail to see the point....
-> =
-
+>
> I think you are giving the whole non-posted stuff way more importance
> than it deserves. It's originally a kludge Intel did to PCI because it
> well with their synchronous IO space, which was itself a remnant of
> pre-history that should have long died.
-> =
-
+>
> In the specific case of PCI (again I'm not talking about the general
> case of pgprot/ioremap_nonposted), we have routinely been "violating"
> that rule, at least on the CPU -> PCI Bridge path (the PCI bridge
> itself tends to respect it though I've seen exceptions) for decades
> without any adverse effect.
-> =
-
+>
> I don't think there's much code (if any) out there which actually
> relies on the non-posted characteristics of IO space.
-> =
-
+>
> I don't care *that* much mind you, we dropped IO space on PCI with
> POWER8, but it would break stuff on existing older machines such as
> PowerMacs for no good reason.
@@ -83,9 +68,4 @@ of any other non-posted writes ioremap requirements apart from config
space.
Thanks,
-Lorenzo
-
-_______________________________________________
-linux-arm-kernel mailing list
-linux-arm-kernel@lists.infradead.org
-http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
\ No newline at end of file
+Lorenzo
\ No newline at end of file
diff --git a/a/content_digest b/N1/content_digest
index ca94252..8cf592a 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -64,30 +64,7 @@
" Catalin Marinas <catalin.marinas\@arm.com>",
" Matt Turner <mattst88\@gmail.com>",
" Haavard Skinnemoen <hskinnemoen\@gmail.com>",
- " Fenghua Yu <fenghua.yu\@intel.com>",
- " James Hogan <james.hogan\@imgtec.com>",
- " Chris Metcalf <cmetcalf\@mellanox.com>",
- " Arnd Bergmann <arnd\@arndb.de>",
- " Heiko Carstens <heiko.carstens\@de.ibm.com>",
- " Stefan Kristiansson <stefan.kristiansson\@saunalahti.fi>",
- " Mikael Starvik <starvik\@axis.com>",
- " Ivan Kokshaysky <ink\@jurassic.park.msu.ru>",
- " Bjorn Helgaas <bhelgaas\@google.com>",
- " Stafford Horne <shorne\@gmail.com>",
- " linux-arm-kernel\@lists.infradead.org",
- " Richard Henderson <rth\@twiddle.net>",
- " Chris Zankel <chris\@zankel.net>",
- " Michal Simek <monstr\@monstr.eu>",
- " Tony Luck <tony.luck\@intel.com>",
- " Vineet Gupta <vgupta\@synopsys.com>",
- " linux-kernel\@vger.kernel.org",
- " Ralf Baechle <ralf\@linux-mips.org>",
- " Richard Kuo <rkuo\@codeaurora.org>",
- " Niklas Cassel <nks\@flawful.org>",
- " Luis R. Rodriguez <mcgrof\@kernel.org>",
- " Martin Schwidefsky <schwidefsky\@de.ibm.com>",
- " Ley Foon Tan <lftan\@altera.com>",
- " David S. Miller <davem\@davemloft.net>\0"
+ " Fenghua Yu <fenghua>\0"
]
[
"\0000:1\0"
@@ -101,37 +78,26 @@
"> > I can add a defined(pgprot_nonposted) to pci_remap_iospace() if that's\n",
"> > not too ugly (I suspect Bjorn is thrilled about it :)), that plus\n",
"> > the Kconfig option for ioremap_nopost() should complete this series.\n",
- "> > =\n",
- "\n",
+ "> > \n",
"> > int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr)\n",
"> > {\n",
- "> > #if defined(PCI_IOBASE) && defined(CONFIG_MMU) && defined(pgprot_nonpos=\n",
- "ted)\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0unsigned long vaddr =3D (unsigned long)PCI_IOBA=\n",
- "SE + res->start;\n",
- "> > =\n",
- "\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0if (!(res->flags & IORESOURCE_IO))\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0return -EINVAL;\n",
- "> > =\n",
- "\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0if (res->end > IO_SPACE_LIMIT)\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0return -EINVAL\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0return ioremap_page_range(vaddr, vaddr + resour=\n",
- "ce_size(res), phys_addr,\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=\n",
- "=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 pgprot_nonposted(PAGE_KERNEL));\n",
+ "> > #if defined(PCI_IOBASE) && defined(CONFIG_MMU) && defined(pgprot_nonposted)\n",
+ "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned long vaddr = (unsigned long)PCI_IOBASE + res->start;\n",
+ "> > \n",
+ "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!(res->flags & IORESOURCE_IO))\n",
+ "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return -EINVAL;\n",
+ "> > \n",
+ "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (res->end > IO_SPACE_LIMIT)\n",
+ "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return -EINVAL\n",
+ "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return ioremap_page_range(vaddr, vaddr + resource_size(res), phys_addr,\n",
+ "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 pgprot_nonposted(PAGE_KERNEL));\n",
"> > #else\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0/* this architecture does not have memory mappe=\n",
- "d I/O space,\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 so this function should never be called =\n",
- "*/\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0WARN_ONCE(1, \"This architecture does not suppor=\n",
- "t memory mapped I/O\\n\");\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0return -ENODEV;\n",
+ "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* this architecture does not have memory mapped I/O space,\n",
+ "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 so this function should never be called */\n",
+ "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240WARN_ONCE(1, \"This architecture does not support memory mapped I/O\\n\");\n",
+ "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return -ENODEV;\n",
"> > #endif\n",
- "> =\n",
- "\n",
+ "> \n",
"> The above would effectively disable mmap'ing of IO space for any\n",
"> architecture that doesn't have pgprot_nonposted... so everybody except\n",
"> ARM. Thus breaking a number of systems that have been working fine for\n",
@@ -142,25 +108,21 @@
"space is tested on ARM/ARM64 machines anyway).\n",
"\n",
"> I fail to see the point....\n",
- "> =\n",
- "\n",
+ "> \n",
"> I think you are giving the whole non-posted stuff way more importance\n",
"> than it deserves. It's originally a kludge Intel did to PCI because it\n",
"> well with their synchronous IO space, which was itself a remnant of\n",
"> pre-history that should have long died.\n",
- "> =\n",
- "\n",
+ "> \n",
"> In the specific case of PCI (again I'm not talking about the general\n",
"> case of pgprot/ioremap_nonposted), we have routinely been \"violating\"\n",
"> that rule, at least on the CPU -> PCI Bridge path (the PCI bridge\n",
"> itself tends to respect it though I've seen exceptions) for decades\n",
"> without any adverse effect.\n",
- "> =\n",
- "\n",
+ "> \n",
"> I don't think there's much code (if any) out there which actually\n",
"> relies on the non-posted characteristics of IO space.\n",
- "> =\n",
- "\n",
+ "> \n",
"> I don't care *that* much mind you, we dropped IO space on PCI with\n",
"> POWER8, but it would break stuff on existing older machines such as\n",
"> PowerMacs for no good reason.\n",
@@ -181,12 +143,7 @@
"space.\n",
"\n",
"Thanks,\n",
- "Lorenzo\n",
- "\n",
- "_______________________________________________\n",
- "linux-arm-kernel mailing list\n",
- "linux-arm-kernel\@lists.infradead.org\n",
- "http://lists.infradead.org/mailman/listinfo/linux-arm-kernel"
+ "Lorenzo"
]
-5391d7b9ecdf4e4a355e59859ffd81b849dd11532580d0a797bdad9514a64e1a
+5ccbcf1cad40bc820d9c7a54a67f81572aa43d6250895a260b92dc4fccbef484
diff --git a/a/1.txt b/N2/1.txt
index 00b3129..19888d3 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -3,37 +3,26 @@ On Tue, Apr 18, 2017 at 08:36:48PM +1000, Benjamin Herrenschmidt wrote:
> > I can add a defined(pgprot_nonposted) to pci_remap_iospace() if that's
> > not too ugly (I suspect Bjorn is thrilled about it :)), that plus
> > the Kconfig option for ioremap_nopost() should complete this series.
-> > =
-
+> >
> > int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr)
> > {
-> > #if defined(PCI_IOBASE) && defined(CONFIG_MMU) && defined(pgprot_nonpos=
-ted)
-> > =A0=A0=A0=A0=A0=A0=A0=A0unsigned long vaddr =3D (unsigned long)PCI_IOBA=
-SE + res->start;
-> > =
-
-> > =A0=A0=A0=A0=A0=A0=A0=A0if (!(res->flags & IORESOURCE_IO))
-> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0return -EINVAL;
-> > =
-
-> > =A0=A0=A0=A0=A0=A0=A0=A0if (res->end > IO_SPACE_LIMIT)
-> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0return -EINVAL
-> > =A0=A0=A0=A0=A0=A0=A0=A0return ioremap_page_range(vaddr, vaddr + resour=
-ce_size(res), phys_addr,
-> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
-=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 pgprot_nonposted(PAGE_KERNEL));
+> > #if defined(PCI_IOBASE) && defined(CONFIG_MMU) && defined(pgprot_nonposted)
+> > ????????unsigned long vaddr = (unsigned long)PCI_IOBASE + res->start;
+> >
+> > ????????if (!(res->flags & IORESOURCE_IO))
+> > ????????????????return -EINVAL;
+> >
+> > ????????if (res->end > IO_SPACE_LIMIT)
+> > ????????????????return -EINVAL
+> > ????????return ioremap_page_range(vaddr, vaddr + resource_size(res), phys_addr,
+> > ????????????????????????????????? pgprot_nonposted(PAGE_KERNEL));
> > #else
-> > =A0=A0=A0=A0=A0=A0=A0=A0/* this architecture does not have memory mappe=
-d I/O space,
-> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 so this function should never be called =
-*/
-> > =A0=A0=A0=A0=A0=A0=A0=A0WARN_ONCE(1, "This architecture does not suppor=
-t memory mapped I/O\n");
-> > =A0=A0=A0=A0=A0=A0=A0=A0return -ENODEV;
+> > ????????/* this architecture does not have memory mapped I/O space,
+> > ?????????? so this function should never be called */
+> > ????????WARN_ONCE(1, "This architecture does not support memory mapped I/O\n");
+> > ????????return -ENODEV;
> > #endif
-> =
-
+>
> The above would effectively disable mmap'ing of IO space for any
> architecture that doesn't have pgprot_nonposted... so everybody except
> ARM. Thus breaking a number of systems that have been working fine for
@@ -44,25 +33,21 @@ what I would actually break (and I am not sure at all how well PCI IO
space is tested on ARM/ARM64 machines anyway).
> I fail to see the point....
-> =
-
+>
> I think you are giving the whole non-posted stuff way more importance
> than it deserves. It's originally a kludge Intel did to PCI because it
> well with their synchronous IO space, which was itself a remnant of
> pre-history that should have long died.
-> =
-
+>
> In the specific case of PCI (again I'm not talking about the general
> case of pgprot/ioremap_nonposted), we have routinely been "violating"
> that rule, at least on the CPU -> PCI Bridge path (the PCI bridge
> itself tends to respect it though I've seen exceptions) for decades
> without any adverse effect.
-> =
-
+>
> I don't think there's much code (if any) out there which actually
> relies on the non-posted characteristics of IO space.
-> =
-
+>
> I don't care *that* much mind you, we dropped IO space on PCI with
> POWER8, but it would break stuff on existing older machines such as
> PowerMacs for no good reason.
@@ -83,9 +68,4 @@ of any other non-posted writes ioremap requirements apart from config
space.
Thanks,
-Lorenzo
-
-_______________________________________________
-linux-arm-kernel mailing list
-linux-arm-kernel@lists.infradead.org
-http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
\ No newline at end of file
+Lorenzo
\ No newline at end of file
diff --git a/a/content_digest b/N2/content_digest
index ca94252..0a9d3e9 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -29,65 +29,16 @@
"ref\0001492511808.25766.91.camel\@kernel.crashing.org\0"
]
[
- "From\0Lorenzo Pieralisi <lorenzo.pieralisi\@arm.com>\0"
+ "From\0lorenzo.pieralisi\@arm.com (Lorenzo Pieralisi)\0"
]
[
- "Subject\0Re: [PATCH v3 00/32] PCI: fix config and I/O Address space memory mappings\0"
+ "Subject\0[PATCH v3 00/32] PCI: fix config and I/O Address space memory mappings\0"
]
[
"Date\0Tue, 18 Apr 2017 12:03:50 +0100\0"
]
[
- "To\0Benjamin Herrenschmidt <benh\@kernel.crashing.org>\0"
-]
-[
- "Cc\0Jonas Bonn <jonas\@southpole.se>",
- " Rich Felker <dalias\@libc.org>",
- " linux-pci\@vger.kernel.org",
- " Will Deacon <will.deacon\@arm.com>",
- " James E.J. Bottomley <jejb\@parisc-linux.org>",
- " David Howells <dhowells\@redhat.com>",
- " Max Filippov <jcmvbkbc\@gmail.com>",
- " Paul Mackerras <paulus\@samba.org>",
- " Huacai Chen <chenhc\@lemote.com>",
- " Guan Xuetao <gxt\@mprc.pku.edu.cn>",
- " Thomas Gleixner <tglx\@linutronix.de>",
- " Hans-Christian Egtvedt <egtvedt\@samfundet.no>",
- " linux-arch\@vger.kernel.org",
- " Jesper Nilsson <jesper.nilsson\@axis.com>",
- " Yoshinori Sato <ysato\@users.sourceforge.jp>",
- " Michael Ellerman <mpe\@ellerman.id.au>",
- " Helge Deller <deller\@gmx.de>",
- " Russell King - ARM Linux <linux\@armlinux.org.uk>",
- " Ingo Molnar <mingo\@redhat.com>",
- " Geert Uytterhoeven <geert\@linux-m68k.org>",
- " Catalin Marinas <catalin.marinas\@arm.com>",
- " Matt Turner <mattst88\@gmail.com>",
- " Haavard Skinnemoen <hskinnemoen\@gmail.com>",
- " Fenghua Yu <fenghua.yu\@intel.com>",
- " James Hogan <james.hogan\@imgtec.com>",
- " Chris Metcalf <cmetcalf\@mellanox.com>",
- " Arnd Bergmann <arnd\@arndb.de>",
- " Heiko Carstens <heiko.carstens\@de.ibm.com>",
- " Stefan Kristiansson <stefan.kristiansson\@saunalahti.fi>",
- " Mikael Starvik <starvik\@axis.com>",
- " Ivan Kokshaysky <ink\@jurassic.park.msu.ru>",
- " Bjorn Helgaas <bhelgaas\@google.com>",
- " Stafford Horne <shorne\@gmail.com>",
- " linux-arm-kernel\@lists.infradead.org",
- " Richard Henderson <rth\@twiddle.net>",
- " Chris Zankel <chris\@zankel.net>",
- " Michal Simek <monstr\@monstr.eu>",
- " Tony Luck <tony.luck\@intel.com>",
- " Vineet Gupta <vgupta\@synopsys.com>",
- " linux-kernel\@vger.kernel.org",
- " Ralf Baechle <ralf\@linux-mips.org>",
- " Richard Kuo <rkuo\@codeaurora.org>",
- " Niklas Cassel <nks\@flawful.org>",
- " Luis R. Rodriguez <mcgrof\@kernel.org>",
- " Martin Schwidefsky <schwidefsky\@de.ibm.com>",
- " Ley Foon Tan <lftan\@altera.com>",
- " David S. Miller <davem\@davemloft.net>\0"
+ "To\0linux-arm-kernel\@lists.infradead.org\0"
]
[
"\0000:1\0"
@@ -101,37 +52,26 @@
"> > I can add a defined(pgprot_nonposted) to pci_remap_iospace() if that's\n",
"> > not too ugly (I suspect Bjorn is thrilled about it :)), that plus\n",
"> > the Kconfig option for ioremap_nopost() should complete this series.\n",
- "> > =\n",
- "\n",
+ "> > \n",
"> > int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr)\n",
"> > {\n",
- "> > #if defined(PCI_IOBASE) && defined(CONFIG_MMU) && defined(pgprot_nonpos=\n",
- "ted)\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0unsigned long vaddr =3D (unsigned long)PCI_IOBA=\n",
- "SE + res->start;\n",
- "> > =\n",
- "\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0if (!(res->flags & IORESOURCE_IO))\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0return -EINVAL;\n",
- "> > =\n",
- "\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0if (res->end > IO_SPACE_LIMIT)\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0return -EINVAL\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0return ioremap_page_range(vaddr, vaddr + resour=\n",
- "ce_size(res), phys_addr,\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=\n",
- "=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 pgprot_nonposted(PAGE_KERNEL));\n",
+ "> > #if defined(PCI_IOBASE) && defined(CONFIG_MMU) && defined(pgprot_nonposted)\n",
+ "> > ????????unsigned long vaddr = (unsigned long)PCI_IOBASE + res->start;\n",
+ "> > \n",
+ "> > ????????if (!(res->flags & IORESOURCE_IO))\n",
+ "> > ????????????????return -EINVAL;\n",
+ "> > \n",
+ "> > ????????if (res->end > IO_SPACE_LIMIT)\n",
+ "> > ????????????????return -EINVAL\n",
+ "> > ????????return ioremap_page_range(vaddr, vaddr + resource_size(res), phys_addr,\n",
+ "> > ????????????????????????????????? pgprot_nonposted(PAGE_KERNEL));\n",
"> > #else\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0/* this architecture does not have memory mappe=\n",
- "d I/O space,\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 so this function should never be called =\n",
- "*/\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0WARN_ONCE(1, \"This architecture does not suppor=\n",
- "t memory mapped I/O\\n\");\n",
- "> > =A0=A0=A0=A0=A0=A0=A0=A0return -ENODEV;\n",
+ "> > ????????/* this architecture does not have memory mapped I/O space,\n",
+ "> > ?????????? so this function should never be called */\n",
+ "> > ????????WARN_ONCE(1, \"This architecture does not support memory mapped I/O\\n\");\n",
+ "> > ????????return -ENODEV;\n",
"> > #endif\n",
- "> =\n",
- "\n",
+ "> \n",
"> The above would effectively disable mmap'ing of IO space for any\n",
"> architecture that doesn't have pgprot_nonposted... so everybody except\n",
"> ARM. Thus breaking a number of systems that have been working fine for\n",
@@ -142,25 +82,21 @@
"space is tested on ARM/ARM64 machines anyway).\n",
"\n",
"> I fail to see the point....\n",
- "> =\n",
- "\n",
+ "> \n",
"> I think you are giving the whole non-posted stuff way more importance\n",
"> than it deserves. It's originally a kludge Intel did to PCI because it\n",
"> well with their synchronous IO space, which was itself a remnant of\n",
"> pre-history that should have long died.\n",
- "> =\n",
- "\n",
+ "> \n",
"> In the specific case of PCI (again I'm not talking about the general\n",
"> case of pgprot/ioremap_nonposted), we have routinely been \"violating\"\n",
"> that rule, at least on the CPU -> PCI Bridge path (the PCI bridge\n",
"> itself tends to respect it though I've seen exceptions) for decades\n",
"> without any adverse effect.\n",
- "> =\n",
- "\n",
+ "> \n",
"> I don't think there's much code (if any) out there which actually\n",
"> relies on the non-posted characteristics of IO space.\n",
- "> =\n",
- "\n",
+ "> \n",
"> I don't care *that* much mind you, we dropped IO space on PCI with\n",
"> POWER8, but it would break stuff on existing older machines such as\n",
"> PowerMacs for no good reason.\n",
@@ -181,12 +117,7 @@
"space.\n",
"\n",
"Thanks,\n",
- "Lorenzo\n",
- "\n",
- "_______________________________________________\n",
- "linux-arm-kernel mailing list\n",
- "linux-arm-kernel\@lists.infradead.org\n",
- "http://lists.infradead.org/mailman/listinfo/linux-arm-kernel"
+ "Lorenzo"
]
-5391d7b9ecdf4e4a355e59859ffd81b849dd11532580d0a797bdad9514a64e1a
+50d3465428b146463d9f451911d43addfd4d4dbcca30728893705601187bbbd2
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.