diff options
| author | Nicholas Piggin <[email protected]> | 2022-10-04 05:11:57 +0000 |
|---|---|---|
| committer | Michael Ellerman <[email protected]> | 2022-10-04 12:16:20 +0000 |
| commit | 0fa6831811f62cfc10415d731bcf9fde2647ad81 (patch) | |
| tree | 396e7da30b261132d749317a00e7fc0d5673545b /net/unix/af_unix.c | |
| parent | powerpc/64s/interrupt: Change must-hard-mask interrupt check from BUG to WARN (diff) | |
| download | kernel-0fa6831811f62cfc10415d731bcf9fde2647ad81.tar.gz kernel-0fa6831811f62cfc10415d731bcf9fde2647ad81.zip | |
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 <[email protected]>
Signed-off-by: Nicholas Piggin <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions
