summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorMitchel Humpherys <mitchelh@codeaurora.org>2015-06-01 15:37:23 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 11:12:51 -0700
commitaf687acfebc7a81d68dcee8a17d5e2cac5c3220a (patch)
treeb49b614f9e673b50fed33650f5ef2c74ab297111 /include/linux
parent3b842460f124e1575227f9820b6b7b196ec7c81c (diff)
iommu: io-pgtable-arm: Correctly unmap the last level
Currently we have an optimization in place for unmapping the last level of the page tables. We do this by memset()'ing the entire last level at once rather than calling unmap on each individual page mapping at the last level. For this to work we have to pass in sizes that aren't equal to any of the supported IOMMU page sizes. However, our optimization only applies at the last level. Unmapping at the other levels still relies on the fact that unmap is only called with supported IOMMU page sizes, which means it's currently broken. Fix this by always calling unmap with an IOMMU page size, unless we're at the last level of the page tables (i.e. the size to be unmapped is less than the block size at the second-to-last level), in which case we can pass in the entire remaining size. Change-Id: Ie3716002c793af3dca51e0e3363d261f345e9e25 Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions