From: Nathan Chen <[email protected]>
Use smmuv3_ats_enabled() to determine whether ATS is enabled for the
guest when handling an ATC invalidation command, as setting the ATS
property value to 'auto' will resolve to ATS being detected as
enabled in the ATC invalidation check otherwise.
Fixes: f7f5013a55a3 ("hw/arm/smmuv3-accel: Add support for ATS")
Reported-by: Shameer Kolothum <[email protected]>
Reviewed-by: Eric Auger <[email protected]>
Reviewed-by: Shameer Kolothum <[email protected]>
Signed-off-by: Nathan Chen <[email protected]>
Tested-by: Eric Auger <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>
(cherry picked from commit 8addbdb793b783228ab22867ac5e2d59ea6662a7)
Signed-off-by: Michael Tokarev <[email protected]>
diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c
index 7fead1c3cff..4e4b79c0f1c 100644
--- a/hw/arm/smmuv3.c
+++ b/hw/arm/smmuv3.c
@@ -1528,7 +1528,7 @@ static int smmuv3_cmdq_consume(SMMUv3State *s, Error
**errp)
{
SMMUDevice *sdev = smmu_find_sdev(bs, CMD_SID(&cmd));
- if (!sdev || !s->ats) {
+ if (!sdev || !smmuv3_ats_enabled(s)) {
trace_smmuv3_unhandled_cmd(type);
break;
}
--
2.47.3