qemu/target/ppc
Nicholas Piggin 899e488650 ppc/pnv: Fix LPC serirq routing calculation
The serirq routing table is split over two registers, the calculation
for the high irqs in the second register did not subtract the irq
offset. This was spotted by Coverity as a shift-by-negative. Fix this
and change the open-coded shifting and masking to use extract32()
function so it's less error-prone.

This went unnoticed because irqs >= 14 are not used in a standard
QEMU/OPAL boot, changing the first QEMU serial-isa irq to 14 to test
does demonstrate serial irqs aren't received, and that this change
fixes that.

Cc: qemu-stable@nongnu.org
Reported-by: Cédric Le Goater <clg@redhat.com>
Resolves: Coverity CID 1558829 (partially)
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
2024-11-04 09:08:09 +10:00
..
translate target/ppc: Fix lxvx/stxvx facility check 2024-09-22 06:55:21 +02:00
arch_dump.c target/ppc/arch_dump: set prstatus pid to cpuid 2024-07-26 09:21:06 +10:00
compat.c spapr: Fix machine reset deadlock from replay-record 2023-09-06 11:19:33 +02:00
cpu-models.c ppc: Drop support for POWER9 and POWER10 DD1 chips 2024-03-13 02:47:04 +10:00
cpu-models.h ppc: spelling fixes 2023-09-20 07:54:34 +03:00
cpu-param.h license: Update deprecated SPDX tag LGPL-2.0+ to LGPL-2.0-or-later 2024-09-20 10:11:59 +03:00
cpu-qom.h target/ppc: Use GDBFeature for dynamic XML 2024-02-28 09:09:25 +00:00
cpu.c target/ppc: Flush inputs to zero with NJ in ppc_store_vscr 2023-09-06 11:19:33 +02:00
cpu.h ppc/pnv: Fix LPC serirq routing calculation 2024-11-04 09:08:09 +10:00
cpu_init.c ppc/pnv: Add an LPAR per core machine option 2024-07-26 09:21:06 +10:00
dfp_helper.c target/ppc: replace assert(0) with g_assert_not_reached() 2024-09-24 13:53:35 +02:00
excp_helper.c target/ppc: Add helpers to check for SMT sibling threads 2024-07-26 09:21:06 +10:00
fpu_helper.c target/ppc: Move VSX fp compare insns to decodetree. 2024-07-26 09:51:33 +10:00
gdbstub.c target/ppc: Fix GDB register indexing on secondary CPUs 2024-03-30 18:50:24 +10:00
helper.h target/ppc: Move VSX fp compare insns to decodetree. 2024-07-26 09:51:33 +10:00
helper_regs.c target/ppc: Remove id_tlbs flag from CPU env 2024-05-24 09:43:11 +10:00
helper_regs.h target/ppc: Fix PMU hflags calculation 2023-06-10 10:19:24 -03:00
insn32.decode target/ppc: Move VSX fp compare insns to decodetree. 2024-07-26 09:51:33 +10:00
insn64.decode target/ppc: Implemented [pm]xvbf16ger2* 2022-05-26 17:11:33 -03:00
int_helper.c target/ppc: Move VMX integer add/sub saturate insns to decodetree. 2024-07-26 09:51:33 +10:00
internal.h target/ppc: Add a function to check for page protection bit 2024-05-24 09:43:13 +10:00
Kconfig ppc: switch boards to "default y" 2024-05-03 15:47:47 +02:00
kvm.c kvm: Allow kvm_arch_get/put_registers to accept Error** 2024-10-03 22:04:19 +02:00
kvm_ppc.h target/ppc: Prohibit target specific KVM prototypes on user emulation 2023-11-07 12:13:28 +01:00
machine.c target/ppc: Fix migration of CPUs with TLB_EMB TLB type 2024-09-03 16:24:37 -03:00
mem_helper.c target/ppc: Move VSX vector with length storage access insns to decodetree. 2024-07-26 09:51:33 +10:00
meson.build target/ppc: Move out BookE and related MMU functions from mmu_common.c 2024-05-24 09:43:13 +10:00
misc_helper.c ppc/pnv: Implement Power9 CPU core thread state indirect register 2024-07-26 09:21:06 +10:00
mmu-book3s-v3.c target/ppc/mmu-radix64: Remove externally unused parts from header 2024-07-26 09:51:34 +10:00
mmu-book3s-v3.h target/ppc: Remove includes from mmu-book3s-v3.h 2024-07-26 09:51:34 +10:00
mmu-booke.c target/ppc: Move out BookE and related MMU functions from mmu_common.c 2024-05-24 09:43:13 +10:00
mmu-booke.h target/ppc: Move out BookE and related MMU functions from mmu_common.c 2024-05-24 09:43:13 +10:00
mmu-books.h target/ppc: introduce mmu-books.h 2021-07-09 10:38:19 +10:00
mmu-hash32.c target/ppc/mmu-hash32.c: Move get_pteg_offset32() to the header 2024-07-26 09:51:34 +10:00
mmu-hash32.h target/ppc/mmu-hash32.c: Move get_pteg_offset32() to the header 2024-07-26 09:51:34 +10:00
mmu-hash64.c target/ppc: Remove includes from mmu-book3s-v3.h 2024-07-26 09:51:34 +10:00
mmu-hash64.h target/ppc: Unexport some functions from mmu-book3s-v3.h 2024-07-26 09:51:34 +10:00
mmu-radix64.c target/ppc: Remove includes from mmu-book3s-v3.h 2024-07-26 09:51:34 +10:00
mmu-radix64.h target/ppc/mmu-radix64: Remove externally unused parts from header 2024-07-26 09:51:34 +10:00
mmu_common.c target/ppc/mmu_common.c: Remove mmu_ctx_t 2024-07-26 09:51:34 +10:00
mmu_helper.c target/ppc: replace assert(0) with g_assert_not_reached() 2024-09-24 13:53:35 +02:00
power8-pmu-regs.c.inc target/ppc: Add new hflags to support BHRB 2024-05-24 08:57:50 +10:00
power8-pmu.c target/ppc: Add recording of taken branches to BHRB 2024-05-24 09:33:06 +10:00
power8-pmu.h target/ppc: Add recording of taken branches to BHRB 2024-05-24 09:33:06 +10:00
ppc-qmp-cmds.c target/ppc: Prefer fast cpu_env() over slower CPU QOM cast macro 2024-03-12 12:04:24 +01:00
spr_common.h target/ppc: Implement SPRC/SPRD SPRs 2024-05-24 09:34:40 +10:00
tcg-stub.c hw/ppc/spapr_hcall: Allow elision of softmmu_resize_hpt_prep 2024-02-23 23:24:42 +10:00
timebase_helper.c ppc/pnv: Add POWER10 ChipTOD quirk for big-core 2024-07-26 09:21:06 +10:00
trace-events target/ppc: Improve KVM hypercall trace 2022-04-20 18:00:30 -03:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
translate.c target/ppc: Make divd[u] handler method decodetree compatible 2024-11-04 09:07:38 +10:00
user_only_helper.c target/ppc: Prefer fast cpu_env() over slower CPU QOM cast macro 2024-03-12 12:04:24 +01:00