• Niklas Schnelle's avatar
    s390: enable HAVE_IOREMAP_PROT · d460bb6c
    Niklas Schnelle authored
    In commit b02002cc ("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: b02002cc ("s390/pci: Implement ioremap_wc/prot() with MIO")
    Reviewed-by: default avatarGerald Schaefer <gerald.schaefer@linux.ibm.com>
    Signed-off-by: default avatarNiklas Schnelle <schnelle@linux.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    d460bb6c
Kconfig 25.7 KB