summaryrefslogtreecommitdiff
path: root/src/dev/arm/smmu_v3.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/dev/arm/smmu_v3.cc')
-rw-r--r--src/dev/arm/smmu_v3.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/dev/arm/smmu_v3.cc b/src/dev/arm/smmu_v3.cc
index f17ef9578..e278c0e25 100644
--- a/src/dev/arm/smmu_v3.cc
+++ b/src/dev/arm/smmu_v3.cc
@@ -492,9 +492,8 @@ SMMUv3::processCommand(const SMMUCommand &cmd)
addr, cmd.dw0.vmid);
}
tlb.invalidateVAA(addr, cmd.dw0.vmid);
-
- if (!cmd.dw1.leaf)
- walkCache.invalidateVAA(addr, cmd.dw0.vmid);
+ const bool leaf_only = cmd.dw1.leaf ? true : false;
+ walkCache.invalidateVAA(addr, cmd.dw0.vmid, leaf_only);
break;
}
@@ -509,9 +508,9 @@ SMMUv3::processCommand(const SMMUCommand &cmd)
addr, cmd.dw0.asid, cmd.dw0.vmid);
}
tlb.invalidateVA(addr, cmd.dw0.asid, cmd.dw0.vmid);
-
- if (!cmd.dw1.leaf)
- walkCache.invalidateVA(addr, cmd.dw0.asid, cmd.dw0.vmid);
+ const bool leaf_only = cmd.dw1.leaf ? true : false;
+ walkCache.invalidateVA(addr, cmd.dw0.asid, cmd.dw0.vmid,
+ leaf_only);
break;
}