qemu-cr16/hw/misc
Peter Maydell 5fc50b4ec8 hw/misc/npcm_clk: Don't divide by zero when calculating frequency
If the guest misprograms the PLL registers to request a zero
divisor, we currently fall over with a division by zero:

../../hw/misc/npcm_clk.c:221:14: runtime error: division by zero
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../../hw/misc/npcm_clk.c:221:14

Thread 1 "qemu-system-aar" received signal SIGFPE, Arithmetic exception.
0x00005555584d8f6d in npcm7xx_clk_update_pll (opaque=0x7fffed159a20) at ../../hw/misc/npcm_clk.c:221
221             freq /= PLLCON_INDV(con) * PLLCON_OTDV1(con) * PLLCON_OTDV2(con);

Avoid this by treating this invalid setting like a stopped clock
(setting freq to 0).

Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/549
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20251107150137.1353532-1-peter.maydell@linaro.org
2025-11-14 13:19:37 +00:00
..
macio qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
a9scu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-a10-ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-a10-dramc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-cpucfg.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-h3-ccu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-h3-dramc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-h3-sysctrl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-r40-ccu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-r40-dramc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-sid.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-sramc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
applesmc.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
arm11scu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
arm_integrator_debug.c arm: Update infocenter.arm.com URLs 2021-02-11 11:50:14 +00:00
arm_l2x0.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
arm_sysctl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
armsse-cpu-pwrctrl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
armsse-cpuid.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
armsse-mhu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
armv7m_ras.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_hace.c hw/misc/aspeed_hace: skip automatic zero-init of large array 2025-06-12 13:40:15 -04:00
aspeed_i3c.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_lpc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_peci.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_sbc.c hw/misc/aspeed_sbc: Handle OTP write command for voltage mode registers 2025-09-29 18:00:20 +02:00
aspeed_scu.c hw/misc/aspeed_scu: Handle AST2600 protection key registers correctly 2025-07-03 13:41:57 +02:00
aspeed_sdmc.c hw/misc/aspeed_sdmc: Skipping dram_init in u-boot for AST2700 2025-07-03 13:41:57 +02:00
aspeed_sli.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_xdma.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
auxbus.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
avr_power.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
axp2xx.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_cprman.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_mbox.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_mphi.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_powermgt.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_property.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_rng.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_thermal.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
debugexit.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
djmemc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
eccmemctl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
edu.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
empty_slot.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
exynos4210_clk.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
exynos4210_pmu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
exynos4210_rng.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
grlib_ahb_apb_pnp.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
i2c-echo.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx6_ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx6_src.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx6ul_ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx7_ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx7_gpr.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx7_snvs.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx7_src.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx8mp_analog.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx8mp_ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx25_ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx31_ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx_ccm.c hw: Do not include qemu/log.h if it is not necessary 2021-05-02 17:24:50 +02:00
imx_rngc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
iosb.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
iotkit-secctl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
iotkit-sysctl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
iotkit-sysinfo.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
ivshmem-flat.c ivshmem-flat: Mark an instance of missing error handling FIXME 2025-10-01 08:33:24 +02:00
ivshmem-pci.c char: rename CharBackend->CharFrontend 2025-10-28 14:49:52 +01:00
Kconfig hw/hppa: Add NCR 710 SCSI driver to LASI chip Kconfig entry 2025-10-27 22:13:22 +01:00
lasi.c lasi: Forward LASI SCSI ports to NCR 53c710 driver 2025-10-27 22:13:22 +01:00
led.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mac_via.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
max78000_aes.c hw/misc/max78000_aes: Comment Internal Key Storage 2025-07-21 10:07:53 +01:00
max78000_gcr.c MAX78000: AES implementation 2025-07-08 17:31:59 +01:00
max78000_icc.c MAX78000: ICC Implementation 2025-07-08 17:31:38 +01:00
max78000_trng.c MAX78000: TRNG Implementation 2025-07-08 17:31:38 +01:00
mchp_pfsoc_dmc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mchp_pfsoc_ioscb.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mchp_pfsoc_sysreg.c hw/misc: Add MPFS system reset support 2025-05-19 13:30:24 +10:00
meson.build MAX78000: AES implementation 2025-07-08 17:31:59 +01:00
mips_cmgcr.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mips_cpc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mips_itu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mos6522.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mps2-fpgaio.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mps2-scc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
msf2-sysreg.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm7xx_mft.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm7xx_pwm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm7xx_rng.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm_clk.c hw/misc/npcm_clk: Don't divide by zero when calculating frequency 2025-11-14 13:19:37 +00:00
npcm_gcr.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
nrf51_rng.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
omap_clk.c hw/arm: Replace TABs for spaces in OMAP board and device code 2025-05-14 14:29:47 +01:00
pc-testdev.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
pci-testdev.c pci-testdev.c: Add membar-backed option for backing membar 2025-05-14 05:39:14 -04:00
pvpanic-isa.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
pvpanic-mmio.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
pvpanic-pci.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
pvpanic.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
sbsa_ec.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sifive_e_aon.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sifive_e_prci.c hw: Remove superfluous includes of hw/hw.h 2021-05-02 17:24:50 +02:00
sifive_test.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
sifive_u_otp.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sifive_u_prci.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
slavio_misc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32_rcc.c hw/misc/stm32_rcc: Fix stm32_rcc_write() arguments order 2025-06-10 12:59:09 +02:00
stm32f2xx_syscfg.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32f4xx_exti.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32f4xx_syscfg.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32l4x5_exti.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32l4x5_rcc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32l4x5_syscfg.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
trace-events hw/misc/aspeed_sbc: Handle OTP write command for voltage mode registers 2025-09-29 18:00:20 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
tz-mpc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
tz-msc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
tz-ppc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
unimp.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
virt_ctrl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
vmcoreinfo.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xlnx-cfi-if.c hw/misc: Introduce the Xilinx CFI interface 2023-09-08 16:41:34 +01:00
xlnx-versal-cframe-reg.c hw/misc/xlnx-versal-cframe-reg: Free FIFO, g_tree on deinit 2025-09-02 17:57:05 +02:00
xlnx-versal-cfu.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
xlnx-versal-crl.c hw/core/register: remove the calls to `register_finalize_block' 2025-10-21 20:16:46 +02:00
xlnx-versal-pmc-iou-slcr.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xlnx-versal-trng.c hw/core/register: remove the calls to `register_finalize_block' 2025-10-21 20:16:46 +02:00
xlnx-versal-xramc.c hw/core/register: remove the calls to `register_finalize_block' 2025-10-21 20:16:46 +02:00
xlnx-zynqmp-apu-ctrl.c hw/core/register: remove the calls to `register_finalize_block' 2025-10-21 20:16:46 +02:00
xlnx-zynqmp-crf.c hw/core/register: remove the calls to `register_finalize_block' 2025-10-21 20:16:46 +02:00
zynq_slcr.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00