Hi, On 12/16/19 4:15 PM, Simon Veith wrote: > While working on the Linux SMMUv3 driver, I noticed a few cases where the QEMU > SMMUv3 behavior relating to stream tables was inconsistent with our hardware. > > Also, when debugging those differences, I found that the errors reported > through > the QEMU SMMUv3 event queue contained the address fields in an incorrect > position. > > These patches correct the QEMU SMMUv3 behavior to match the specification (and > the behavior that I observed in our hardware). Linux guests normally will not > notice these issues, but other SMMUv3 driver implementations might. > > Changes in v2: > > * New patch "hw/arm/smmuv3: Correct SMMU_BASE_ADDR_MASK value" added > * Updated patch "hw/arm/smmuv3: Check stream IDs against actual table > LOG2SIZE" > * Updated patch "hw/arm/smmuv3: Align stream table base address to table size" > > Changes in v3: > > * No changes, but sending again to correct a patch submission mishap that > confused Patchew > > Simon Veith (6): > hw/arm/smmuv3: Apply address mask to linear strtab base address > hw/arm/smmuv3: Correct SMMU_BASE_ADDR_MASK value > hw/arm/smmuv3: Check stream IDs against actual table LOG2SIZE > hw/arm/smmuv3: Align stream table base address to table size > hw/arm/smmuv3: Use correct bit positions in EVT_SET_ADDR2 macro > hw/arm/smmuv3: Report F_STE_FETCH fault address in correct word > position
The series looks good to me. Also tested against non regression. Tested-by: Eric Auger <eric.au...@redhat.com> Thanks Eric > > hw/arm/smmuv3-internal.h | 6 +++--- > hw/arm/smmuv3.c | 28 +++++++++++++++++++++------- > 2 files changed, 24 insertions(+), 10 deletions(-) >