|
@@ -664,7 +664,7 @@ static size_t iopgtable_clear_entry_core(struct iommu *obj, u32 da)
|
|
nent = 1; /* for the next L1 entry */
|
|
nent = 1; /* for the next L1 entry */
|
|
} else {
|
|
} else {
|
|
bytes = IOPGD_SIZE;
|
|
bytes = IOPGD_SIZE;
|
|
- if (*iopgd & IOPGD_SUPER) {
|
|
|
|
|
|
+ if ((*iopgd & IOPGD_SUPER) == IOPGD_SUPER) {
|
|
nent *= 16;
|
|
nent *= 16;
|
|
/* rewind to the 1st entry */
|
|
/* rewind to the 1st entry */
|
|
iopgd = (u32 *)((u32)iopgd & IOSUPER_MASK);
|
|
iopgd = (u32 *)((u32)iopgd & IOSUPER_MASK);
|