diff options
| author | Nicholas Piggin <[email protected]> | 2022-09-26 15:43:02 +1000 |
|---|---|---|
| committer | Michael Ellerman <[email protected]> | 2022-09-28 19:22:11 +1000 |
| commit | 9524f2278f2e6925f147d9140c83f658e7a7c84f (patch) | |
| tree | f8bec0f3448e04cd1eb48944e8e443588e9dd520 /tools/perf/scripts/python/mem-phys-addr.py | |
| parent | e485f6c751e0a969327336c635ca602feea117f0 (diff) | |
powerpc/64s: Fix irq state management in runlatch functions
When irqs are soft-disabled, MSR[EE] is volatile and can change from
1 to 0 asynchronously (if a PACA_IRQ_MUST_HARD_MASK interrupt hits).
So it can not be used to check hard IRQ enabled status, except to
confirm it is disabled.
ppc64_runlatch_on/off functions use MSR this way to decide whether to
re-enable MSR[EE] after disabling it, which leads to MSR[EE] being
enabled when it shouldn't be (when a PACA_IRQ_MUST_HARD_MASK had
disabled it between reading the MSR and clearing EE).
This has been tolerated in the kernel previously, and it doesn't seem
to cause a problem, but it is unexpected and may trip warnings or cause
other problems as we tighten up this state management. Fix this by only
re-enabling if PACA_IRQ_HARD_DIS is clear.
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 'tools/perf/scripts/python/mem-phys-addr.py')
0 files changed, 0 insertions, 0 deletions