summaryrefslogtreecommitdiffstats
path: root/linux-user
diff options
context:
space:
mode:
authorNicholas Piggin2020-03-18 05:41:34 +0100
committerDavid Gibson2020-03-24 01:05:37 +0100
commitf9e3e1a35e8fd63d61fae58bd98d24d7defa9316 (patch)
tree6b07e23a3ee1910860e65abbed5211468aa42515 /linux-user
parentppc/spapr: Set the effective address provided flag in mc error log. (diff)
downloadqemu-f9e3e1a35e8fd63d61fae58bd98d24d7defa9316.tar.gz
qemu-f9e3e1a35e8fd63d61fae58bd98d24d7defa9316.tar.xz
qemu-f9e3e1a35e8fd63d61fae58bd98d24d7defa9316.zip
target/ppc: Fix slbia TLB invalidation gap
slbia must invalidate TLBs even if it does not remove a valid SLB entry, because slbmte can overwrite valid entries without removing their TLBs. As the architecture says, slbia invalidates all lookaside information, not conditionally based on if it removed valid entries. It does not seem possible for POWER8 or earlier Linux kernels to hit this bug because it never changes its kernel SLB translations, and it should always have valid entries if any accesses are made to userspace regions. However other operating systems which may modify SLB entry 0 or do more fancy things with segments might be affected. When POWER9 slbia support is added in the next patch, this becomes a real problem because some new slbia variants don't invalidate all non-zero entries. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Message-Id: <20200318044135.851716-1-npiggin@gmail.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: Greg Kurz <groug@kaod.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'linux-user')
0 files changed, 0 insertions, 0 deletions