diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2022-10-04 08:11:57 +0300 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2022-10-04 15:16:20 +0300 |
commit | 0fa6831811f62cfc10415d731bcf9fde2647ad81 (patch) | |
tree | 396e7da30b261132d749317a00e7fc0d5673545b /tools/perf/scripts/python/export-to-postgresql.py | |
parent | 8154850b28bd57a35ea73a7518ffcb9ccd5e43bc (diff) | |
download | linux-0fa6831811f62cfc10415d731bcf9fde2647ad81.tar.xz |
powerpc/64: Fix msr_check_and_set/clear MSR[EE] race
irq soft-masking means that when Linux irqs are disabled, the MSR[EE]
value can change from 1 to 0 asynchronously: if a masked interrupt of
the PACA_IRQ_MUST_HARD_MASK variety fires while irqs are disabled,
the masked handler will return with MSR[EE]=0.
This means a sequence like mtmsr(mfmsr() | MSR_FP) is racy if it can
be called with local irqs disabled, unless a hard_irq_disable has been
done.
Reported-by: Sachin Sant <sachinp@linux.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221004051157.308999-2-npiggin@gmail.com
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions