• Gerald Schaefer's avatar
    s390/mm: fix panic in gup_fast on large pud · 582b4e55
    Gerald Schaefer authored
    On s390 there currently is no implementation of pud_write(). That was ok
    as long as we had our own implementation of get_user_pages_fast() which
    checked for pud protection by testing the bit directly w/o using
    pud_write(). The other callers of pud_write() are not reachable on s390.
    
    After commit 1a42010c ("s390/mm: convert to the generic
    get_user_pages_fast code") we use the generic get_user_pages_fast(), which
    does call pud_write() in pud_access_permitted() for FOLL_WRITE access on
    a large pud. Without an s390 specific pud_write(), the generic version is
    called, which contains a BUG() statement to remind us that we don't have a
    proper implementation. This results in a kernel panic.
    
    Fix this by providing an implementation of pud_write().
    
    Cc: <stable@vger.kernel.org> # 5.2+
    Fixes: 1a42010c ("s390/mm: convert to the generic get_user_pages_fast code")
    Signed-off-by: default avatarGerald Schaefer <gerald.schaefer@de.ibm.com>
    Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    582b4e55
pgtable.h 48.9 KB