]> git.baikalelectronics.ru Git - kernel.git/commit
s390: enable HAVE_IOREMAP_PROT
authorNiklas Schnelle <schnelle@linux.ibm.com>
Fri, 19 Feb 2021 11:00:52 +0000 (12:00 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Mon, 7 Jun 2021 15:06:58 +0000 (17:06 +0200)
commite6ca0dc573a5a934129a477ffd04d398e0c50303
tree3f8c9570961c2d59b0fbe11e8d97546abea7d70a
parent4ed8cefd25a2cca1c89178fafafb229c9122bc1b
s390: enable HAVE_IOREMAP_PROT

In commit 1381a0c67671 ("s390/pci: Implement ioremap_wc/prot() with
MIO") we implemented both ioremap_wc() and ioremap_prot() however until
now we had not set HAVE_IOREMAP_PROT in Kconfig, do so now.

This also requires implementing pte_pgprot() as this is used in the
generic_access_phys() code enabled by CONFIG_HAVE_IOREMAP_PROT. As with
ioremap_wc() we need to take the MMIO Write Back bit index into account.

Moreover since the pgprot value returned from pte_pgprot() is to be used
for mappings into kernel address space we must make sure that it uses
appropriate kernel page table protection bits. In particular a pgprot
value originally coming from userspace could have the _PAGE_PROTECT
bit set to enable fault based dirty bit accounting which would then make
the mapping inaccessible when used in kernel address space.

Fixes: 1381a0c67671 ("s390/pci: Implement ioremap_wc/prot() with MIO")
Reviewed-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/Kconfig
arch/s390/include/asm/pgtable.h