mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
UPSTREAM: iommu/rockchip: Fix "is stall active" check
Since commitcd6438c5f8("iommu/rockchip: Reconstruct to support multi slaves") rk_iommu_is_stall_active() always returns false because the bitwise AND operates on the boolean flag promoted to an integer and a value that is either zero or BIT(2). Explicitly convert the right-hand value to a boolean so that both sides are guaranteed to be either zero or one. rk_iommu_is_paging_enabled() does not suffer from the same problem since RK_MMU_STATUS_PAGING_ENABLED is BIT(0), but let's apply the same change for consistency and to make it clear that it's correct without needing to lookup the value. Fixes:cd6438c5f8("iommu/rockchip: Reconstruct to support multi slaves") Signed-off-by: John Keeping <john@metanate.com> Reviewed-by: Heiko Stuebner <heiko@sntech.de> Tested-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Signed-off-by: Joerg Roedel <jroedel@suse.de> (cherry picked from commitfbedd9b990) Conflicts: drivers/iommu/rockchip-iommu.c Change-Id: I5a43eb19d515eba7daf1dc4b1592ac692c115df0 Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
This commit is contained in:
@@ -319,7 +319,7 @@ static bool rk_iommu_is_stall_active(struct rk_iommu *iommu)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < iommu->num_mmu; i++)
|
||||
active &= rk_iommu_read(iommu->bases[i], RK_MMU_STATUS);
|
||||
active &= !!rk_iommu_read(iommu->bases[i], RK_MMU_STATUS);
|
||||
|
||||
return active;
|
||||
}
|
||||
@@ -330,7 +330,7 @@ static bool rk_iommu_is_paging_enabled(struct rk_iommu *iommu)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < iommu->num_mmu; i++)
|
||||
enable &= rk_iommu_read(iommu->bases[i], RK_MMU_STATUS);
|
||||
enable &= !!rk_iommu_read(iommu->bases[i], RK_MMU_STATUS);
|
||||
|
||||
return enable;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user