OSDN Git Service

powerpc/powernv: Enable HAIL (HV AIL) for ISA v3.1 processors
authorNicholas Piggin <npiggin@gmail.com>
Fri, 2 Apr 2021 02:41:24 +0000 (12:41 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 18 Apr 2021 13:19:29 +0000 (23:19 +1000)
commit49c1d07fd04f54eb588c4a1dfcedc8d22c5ffd50
tree848a0382141cafb06180982674d8365f79b9cc5a
parent6980d13f0dd189846887bbbfa43793d9a41768d3
powerpc/powernv: Enable HAIL (HV AIL) for ISA v3.1 processors

Starting with ISA v3.1, LPCR[AIL] no longer controls the interrupt
mode for HV=1 interrupts. Instead, a new LPCR[HAIL] bit is defined
which behaves like AIL=3 for HV interrupts when set.

Set HAIL on bare metal to give us mmu-on interrupts and improve
performance.

This also fixes an scv bug: we don't implement scv real mode (AIL=0)
vectors because they are at an inconvenient location, so we just
disable scv support when AIL can not be set. However powernv assumes
that LPCR[AIL] will enable AIL mode so it enables scv support despite
HV interrupts being AIL=0, which causes scv interrupts to go off into
the weeds.

Fixes: 7fa95f9adaee ("powerpc/64s: system call support for scv/rfscv instructions")
Cc: stable@vger.kernel.org # v5.9+
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210402024124.545826-1-npiggin@gmail.com
arch/powerpc/include/asm/reg.h
arch/powerpc/kernel/setup_64.c