qemu-e2k/hw/arm
Simon Veith 05ff2fb80c hw/arm/smmuv3: Check stream IDs against actual table LOG2SIZE
When checking whether a stream ID is in range of the stream table, we
have so far been only checking it against our implementation limit
(SMMU_IDR1_SIDSIZE). However, the guest can program the
STRTAB_BASE_CFG.LOG2SIZE field to a size that is smaller than this
limit.

Check the stream ID against this limit as well to match the hardware
behavior of raising C_BAD_STREAMID events in case the limit is exceeded.
Also, ensure that we do not go one entry beyond the end of the table by
checking that its index is strictly smaller than the table size.

ref. ARM IHI 0070C, section 6.3.24.

Signed-off-by: Simon Veith <sveith@amazon.de>
Acked-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Message-id: 1576509312-13083-4-git-send-email-sveith@amazon.de
Cc: Eric Auger <eric.auger@redhat.com>
Cc: qemu-devel@nongnu.org
Cc: qemu-arm@nongnu.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-12-20 14:03:00 +00:00
..
allwinner-a10.c
armsse.c
armv7m.c
aspeed_ast2600.c ast2600: Configure CNTFRQ at 1125MHz 2019-12-20 14:03:00 +00:00
aspeed_soc.c aspeed: Change the "scu" property definition 2019-12-16 10:46:34 +00:00
aspeed.c aspeed: Add support for the tacoma-bmc board 2019-12-16 10:46:34 +00:00
bcm2835_peripherals.c hw/arm/bcm2835_peripherals: Use the SYS_timer 2019-10-25 13:09:27 +01:00
bcm2836.c hw/arm/bcm2836: Rename cpus[] as cpu[].core 2019-10-25 13:09:27 +01:00
boot.c hw/arm/boot: Set NSACR.{CP11, CP10} in dummy SMC setup routine 2019-11-11 13:44:16 +00:00
collie.c hw/arm/collie: Create the RAM in the board 2019-10-22 17:44:01 +01:00
cubieboard.c
digic_boards.c hw/arm/digic4: Inline digic4_board_setup_ram() function 2019-10-22 17:44:01 +01:00
digic.c
exynos4_boards.c
exynos4210.c hw/arm/exynos4210: Use the Samsung s3c SDHCI controller 2019-10-22 17:44:00 +01:00
fsl-imx6.c
fsl-imx6ul.c
fsl-imx7.c
fsl-imx25.c
fsl-imx31.c
gumstix.c
highbank.c hw/arm/highbank: Use AddressSpace when using write_secondary_boot() 2019-10-25 13:09:27 +01:00
imx25_pdk.c
integratorcp.c
Kconfig
kzm.c
mainstone.c
Makefile.objs aspeed/soc: Add AST2600 support 2019-10-15 18:09:05 +01:00
mcimx6ul-evk.c
mcimx7d-sabre.c
microbit.c
mps2-tz.c hw/arm/mps2: Use the IEC binary prefix definitions 2019-10-22 17:44:00 +01:00
mps2.c hw/arm/mps2: Use the IEC binary prefix definitions 2019-10-22 17:44:00 +01:00
msf2-soc.c
msf2-som.c
musca.c hw: Move PL031 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:10:27 +02:00
musicpal.c hw/arm/musicpal.c: Switch to transaction-based ptimer API 2019-10-15 18:09:02 +01:00
netduino2.c
nrf51_soc.c
nseries.c hw/arm/nseries: Replace the bluetooth chardev with a "null" chardev 2019-12-16 17:24:07 +01:00
omap1.c hw/arm/omap1: Create the RAM in the board 2019-10-22 17:44:01 +01:00
omap2.c hw/arm/omap2: Create the RAM in the board 2019-10-22 17:44:01 +01:00
omap_sx1.c hw/arm/omap1: Create the RAM in the board 2019-10-22 17:44:01 +01:00
palm.c hw/arm/omap1: Create the RAM in the board 2019-10-22 17:44:01 +01:00
pxa2xx_gpio.c
pxa2xx_pic.c
pxa2xx.c
raspi.c hw/arm/raspi: Use AddressSpace when using arm_boot::write_secondary_boot 2019-10-25 13:09:27 +01:00
realview.c
sabrelite.c
sbsa-ref.c hw/arm/sbsa-ref: Simplify by moving the gic in the machine state 2019-12-16 10:46:35 +00:00
smmu-common.c
smmu-internal.h
smmuv3-internal.h hw/arm/smmuv3: Correct SMMU_BASE_ADDR_MASK value 2019-12-20 14:03:00 +00:00
smmuv3.c hw/arm/smmuv3: Check stream IDs against actual table LOG2SIZE 2019-12-20 14:03:00 +00:00
spitz.c
stellaris.c
stm32f205_soc.c
strongarm.c hw/arm/collie: Create the RAM in the board 2019-10-22 17:44:01 +01:00
strongarm.h hw/arm/collie: Create the RAM in the board 2019-10-22 17:44:01 +01:00
sysbus-fdt.c
tosa.c
trace-events
versatilepb.c
vexpress.c
virt-acpi-build.c hw/arm/acpi: enable SHPC native hot plug 2019-12-16 10:46:35 +00:00
virt.c target-arm queue: 2019-12-16 13:04:34 +00:00
xilinx_zynq.c hw/arm/xilinx_zynq: Use the IEC binary prefix definitions 2019-10-22 17:44:00 +01:00
xlnx-versal-virt.c
xlnx-versal.c hw/arm: versal: Add the CRP as unimplemented 2019-11-26 13:55:36 +00:00
xlnx-zcu102.c
xlnx-zynqmp.c
z2.c