diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c index fc6aa7448c3d..69a61fe4dfd4 100644 --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c @@ -4387,7 +4387,7 @@ static int arm_smmu_handoff_cbs(struct arm_smmu_device *smmu) if (!(raw_smr & SMR_VALID)) continue; - smr.mask = FIELD_GET(SMR_MASK, raw_smr); + smr.mask = FIELD_GET(SMR_MASK, raw_smr & ~SMR_VALID); smr.id = FIELD_GET(SMR_ID, raw_smr); smr.valid = true;