linux/arch/powerpc/include/asm
Christophe Leroy (CS GROUP) 608328ba5b powerpc/32: Restore disabling of interrupts at interrupt/syscall exit
Commit 2997876c4a ("powerpc/32: Restore clearing of MSR[RI] at
interrupt/syscall exit") delayed clearing of MSR[RI], but missed that
both MSR[RI] and MSR[EE] are cleared at the same time, so the commit
also delayed the disabling of interrupts, leading to unexpected
behaviour.

To fix that, mostly revert the blamed commit and restore the clearing
of MSR[RI] in interrupt_exit_kernel_prepare() instead. For 8xx it
implies adding a synchronising instruction after the mtspr in order to
make sure no instruction counter interrupt (used for perf events) will
fire just after clearing MSR[RI].

Reported-by: Christian Zigotzky <chzigotzky@xenosoft.de>
Closes: https://lore.kernel.org/all/4d0bd05d-6158-1323-3509-744d3fbe8fc7@xenosoft.de/
Reported-by: Guenter Roeck <linux@roeck-us.net>
Closes: https://lore.kernel.org/all/6b05eb1c-fdef-44e0-91a7-8286825e68f1@roeck-us.net/
Fixes: 2997876c4a ("powerpc/32: Restore clearing of MSR[RI] at interrupt/syscall exit")
Signed-off-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/585ea521b2be99d293b539bbfae148366cfb3687.1766146895.git.chleroy@kernel.org
2025-12-22 18:25:07 +05:30
..
book3s powerpc/64s/slb: Fix SLB multihit issue during SLB preload 2025-11-18 12:35:52 +05:30
nohash powerpc/603: Really copy kernel PGD entries into all PGDIRs 2025-09-15 13:49:22 +05:30
vdso powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
8xx_immap.h
Kbuild KVM: Export KVM-internal symbols for sub-modules only 2025-09-30 13:40:02 -04:00
accounting.h
archrandom.h
asm-compat.h
asm-const.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
asm-offsets.h
asm-prototypes.h
asm.h
async_tx.h
atomic.h
backlight.h
barrier.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
bitops.h powerpc: Add __attribute_const__ to ffs()-family implementations 2025-09-08 14:58:51 -07:00
bootx.h
bpf_perf_event.h
btext.h
bug.h Merge branch 'objtool/core' 2025-11-21 11:21:20 +01:00
cache.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
cacheflush.h mm: introduce memdesc_flags_t 2025-09-13 16:55:07 -07:00
cell-pmu.h powerpc/cell: Remove support for IBM Cell Blades 2025-02-26 21:15:07 +05:30
cell-regs.h powerpc/cell: Remove support for IBM Cell Blades 2025-02-26 21:15:07 +05:30
checksum.h
clocksource.h
cmpxchg.h
code-patching-asm.h
compat.h
context_tracking.h
copro.h cxl: Remove driver 2025-03-16 22:04:27 +11:00
cpm.h
cpm1.h
cpm2.h
cpu_has_feature.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
cpu_setup.h
cpufeature.h
cpuidle.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
cputable.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
cputhreads.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
cputime.h
crash_reserve.h crash: let architecture decide crash memory export to iomem_resource 2025-11-12 10:00:15 -08:00
crashdump-ppc64.h
current.h
dbdma.h
dbell.h powerpc: Remove duplicate definition for ppc_msgsnd_sync() 2025-09-06 17:02:55 +05:30
dcr-native.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
dcr-regs.h
dcr.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
debug.h
delay.h
device.h cxl: Remove driver 2025-03-16 22:04:27 +11:00
disassemble.h
dma-direct.h
dma.h
drmem.h
dt_cpu_ftrs.h
dtl.h
edac.h
eeh.h
eeh_event.h
ehv_pic.h
elf.h
elfnote.h
emergency-restart.h
emulated_ops.h
epapr_hcalls.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
exception-64e.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
exception-64s.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
exec.h
extable.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
fadump-internal.h
fadump.h
feature-fixups.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
firmware.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
fixmap.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
floppy.h floppy: Remove unused CROSS_64KB() macro from arch/ code 2025-08-25 14:46:42 -06:00
fprobe.h powerpc/fprobe: fix updated fprobe for function-graph tracer 2025-09-16 16:13:00 +05:30
fpu.h
fsl_gtm.h
fsl_hcalls.h
fsl_lbc.h
fsl_pamu_stash.h
fsl_pm.h
ftrace.h powerpc/ftrace: support CONFIG_FUNCTION_GRAPH_RETVAL 2025-09-16 16:13:00 +05:30
futex.h
grackle.h
guest-state-buffer.h kvm powerpc/book3s-apiv2: Add support for Hostwide GSB elements 2025-04-16 22:16:09 +05:30
hardirq.h
head-64.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
heathrow.h
highmem.h
hmi.h
hugetlb.h mm: hugetlb: Add huge page size param to huge_ptep_get_and_clear() 2025-02-27 17:40:57 +00:00
hvcall.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
hvconsole.h
hvcserver.h
hvsi.h
hw_breakpoint.h
hw_irq.h powerpc/32: Restore disabling of interrupts at interrupt/syscall exit 2025-12-22 18:25:07 +05:30
hydra.h
i8259.h
ibmebus.h
icswx.h
idle.h
imc-pmu.h
immap_cpm2.h
inst.h powerpc: Drop unnecessary initializations in __copy_inst_from_kernel_nofault() 2025-08-28 16:58:44 -07:00
interrupt.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
io-defs.h powerpc/io: Unhook MMIO accessors 2025-02-26 21:15:08 +05:30
io.h - The 6 patch series "Enable strict percpu address space checks" from 2025-04-01 09:29:18 -07:00
io_event_irq.h
iommu.h powerpc: Convert to physical address DMA mapping 2025-10-29 10:27:30 +01:00
ipic.h
irq.h
irq_work.h
irqflags.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
isa-bridge.h
jump_label.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
kasan.h Summary of significant series in this pull request: 2025-10-02 18:18:33 -07:00
kdebug.h
kdump.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
kexec.h powerpc/kdump: Add support for crashkernel CMA reservation 2025-11-11 14:11:08 +05:30
kexec_ranges.h
keylargo.h
kfence.h
kgdb.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
kprobes.h
kup.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
kvm_asm.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
kvm_book3s.h
kvm_book3s_32.h
kvm_book3s_64.h powerpc/perf: Add per-task/process monitoring to vpa_pmu driver 2024-11-19 14:11:30 +11:00
kvm_book3s_asm.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
kvm_book3s_uvmem.h
kvm_booke.h
kvm_booke_hv_asm.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
kvm_fpu.h
kvm_guest.h
kvm_host.h KVM: Drop kvm_arch_sync_events() now that all implementations are nops 2025-02-26 13:17:23 -05:00
kvm_para.h
kvm_ppc.h mm: introduce memdesc_flags_t 2025-09-13 16:55:07 -07:00
kvm_types.h KVM: Export KVM-internal symbols for sub-modules only 2025-09-30 13:40:02 -04:00
libata-portmap.h
linkage.h
livepatch.h
local.h
lppaca.h
lv1call.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
machdep.h
macio.h
mc146818rtc.h
mce.h
mediabay.h
mem_encrypt.h powerpc/pseries/svm: Make mem_encrypt.h self contained 2025-11-28 08:40:55 +01:00
membarrier.h
mman.h mm: update architecture and driver code to use vm_flags_t 2025-07-09 22:42:14 -07:00
mmiowb.h
mmu.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
mmu_context.h
mmzone.h powerpc/pseries/iommu: memory notifier incorrectly adds TCEs for pmemory 2025-02-11 11:39:10 +05:30
module.h powerpc64/modules: replace stub allocation sentinel with an explicit counter 2025-09-15 16:40:52 +05:30
module.lds.h
mpc5xxx.h
mpc6xx.h
mpc52xx.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
mpc52xx_psc.h
mpc85xx.h
mpc5121.h
mpic.h
mpic_msgr.h
mpic_timer.h
msi_bitmap.h
nmi.h
nvram.h
ohare.h
opal-api.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
opal.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
paca.h
page.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
page_32.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
page_64.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
papr-sysparm.h powerpc/pseries: Enable hvpipe with ibm,set-system-parameter RTAS 2025-09-15 13:38:40 +05:30
paravirt.h
paravirt_api_clock.h
parport.h
pasemi_dma.h
pci-bridge.h powerpc/pseries/msi: Switch to msi_create_parent_irq_domain() 2025-09-06 17:33:19 +05:30
pci.h
percpu.h
perf_event.h
perf_event_fsl_emb.h
perf_event_server.h
pgalloc.h
pgtable-be-types.h
pgtable-masks.h
pgtable-types.h
pgtable.h powerpc/32: Remove PAGE_KERNEL_TEXT to fix startup failure 2025-09-16 16:16:00 +05:30
pkeys.h mm: update architecture and driver code to use vm_flags_t 2025-07-09 22:42:14 -07:00
plpar_wrappers.h powerpc/pseries/htmdump: Add htm flags support to htmdump module 2025-05-04 09:05:47 +05:30
plpks.h
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pnv-ocxl.h
pnv-pci.h cxl: Remove driver 2025-03-16 22:04:27 +11:00
powernv.h
ppc-opcode.h powerpc64/bpf: Implement bpf_addr_space_cast instruction 2025-09-06 15:49:43 +05:30
ppc-pci.h
ppc4xx.h
ppc_asm.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
preempt.h powerpc: enable dynamic preemption 2025-04-16 22:30:22 +05:30
probes.h
processor.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
prom.h powerpc: increase MIN RMA size for CAS negotiation 2025-02-11 10:53:00 +05:30
ps3.h
ps3av.h
ps3gpu.h
ps3stor.h
pte-walk.h
ptrace.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
qspinlock.h
qspinlock_types.h
reg.h powerpc/32: Restore disabling of interrupts at interrupt/syscall exit 2025-12-22 18:25:07 +05:30
reg_8xx.h
reg_booke.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
reg_fsl_emb.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
rheap.h
rio.h
rtas-types.h
rtas-work-area.h
rtas.h powerpc/pseries: Define HVPIPE specific macros 2025-09-15 13:38:40 +05:30
runlatch.h
seccomp.h
sections.h
secure_boot.h
security_features.h
secvar.h
serial.h
set_memory.h
setjmp.h
setup.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
sfp-machine.h
shmparam.h
signal.h
simple_spinlock.h
simple_spinlock_types.h
smp.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
smu.h
sparsemem.h
spinlock.h
spinlock_types.h
spu.h
spu_csa.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
spu_info.h
spu_priv1.h powerpc/cell: Remove support for IBM Cell Blades 2025-02-26 21:15:07 +05:30
sstep.h
stackprotector.h
stacktrace.h
static_call.h powerpc/static_call: Implement inline static calls 2025-02-26 21:09:43 +05:30
string.h
svm.h
swab.h
swiotlb.h
switch_to.h
synch.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
syscall.h syscall.h: introduce syscall_set_nr() 2025-05-11 17:48:15 -07:00
syscall_wrapper.h
syscalls.h
syscalls_32.h
systemcfg.h
task_size_32.h
task_size_64.h
tce.h
text-patching.h
thread_info.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
time.h powerpc/time: Expose boot_tb via accessor 2025-09-22 14:48:56 +05:30
timex.h
tlb.h mm: pgtable: introduce generic __tlb_remove_table() 2025-01-25 20:22:23 -08:00
tlbflush.h
tm.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
topology.h powerpc/smp: Expose die_id and die_cpumask 2025-11-14 11:12:56 +05:30
trace.h
trace_clock.h
tsi108.h
tsi108_irq.h
tsi108_pci.h
types.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
uaccess.h powerpc/uaccess: Use unsafe wrappers for ASM GOTO 2025-11-03 15:26:09 +01:00
udbg.h
uic.h
ultravisor-api.h
ultravisor.h
uninorth.h
unistd.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
uprobes.h
user.h
vas.h
vdso.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
vdso_datapage.h powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-01 13:23:29 +05:30
vermagic.h
vga.h
video.h
vio.h
vmalloc.h
vphn.h
word-at-a-time.h
xics.h arch/powerpc: Remove unused function icp_native_cause_ipi_rm() 2025-02-24 12:26:21 +05:30
xive-regs.h
xive.h powerpc/xive: Untangle xive from child interrupt controller drivers 2025-09-06 17:33:18 +05:30
xmon.h powerpc/xmon: Remove SPU debug and disassembly 2025-02-26 21:15:08 +05:30
xor.h
xor_altivec.h