• Michael Ellerman's avatar
    powerpc/mm/hash64: Fix might_have_hea() check · 14ec3547
    Michael Ellerman authored
    commit 08bf75ba upstream.
    
    In commit 2b4e3ad8 ("powerpc/mm/hash64: Don't test for machine type
    to detect HEA special case") we changed the logic in might_have_hea()
    to check FW_FEATURE_SPLPAR rather than machine_is(pseries).
    
    However the check was incorrectly negated, leading to crashes on
    machines with HEA adapters, such as:
    
      mm: Hashing failure ! EA=0xd000080080004040 access=0x800000000000000e current=NetworkManager
          trap=0x300 vsid=0x13d349c ssize=1 base psize=2 psize 2 pte=0xc0003cc033e701ae
      Unable to handle kernel paging request for data at address 0xd000080080004040
      Call Trace:
        .ehea_create_cq+0x148/0x340 [ehea] (unreliable)
        .ehea_up+0x258/0x1200 [ehea]
        .ehea_open+0x44/0x1a0 [ehea]
        ...
    
    Fix it by removing the negation.
    
    Fixes: 2b4e3ad8 ("powerpc/mm/hash64: Don't test for machine type to detect HEA special case")
    Reported-by: default avatarDenis Kirjanov <kda@linux-powerpc.org>
    Reported-by: default avatarJan Stancek <jstancek@redhat.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    14ec3547
hash_utils_64.c 45.8 KB