diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2019-11-27 09:53:44 +0000 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2020-09-04 12:46:07 +0100 |
commit | 4d1a8a2dc0f4cdc2d74491a60709e698f85daf55 (patch) | |
tree | 86fcb21ff8feb64b59ffaf47756cb2c2353f13cb /mm/util.c | |
parent | 738c8780fc1fa11fb996a962a54703d0450cae59 (diff) | |
download | linux-4d1a8a2dc0f4cdc2d74491a60709e698f85daf55.tar.gz linux-4d1a8a2dc0f4cdc2d74491a60709e698f85daf55.tar.bz2 linux-4d1a8a2dc0f4cdc2d74491a60709e698f85daf55.zip |
arm64: mte: Tags-aware aware memcmp_pages() implementation
When the Memory Tagging Extension is enabled, two pages are identical
only if both their data and tags are identical.
Make the generic memcmp_pages() a __weak function and add an
arm64-specific implementation which returns non-zero if any of the two
pages contain valid MTE tags (PG_mte_tagged set). There isn't much
benefit in comparing the tags of two pages since these are normally used
for heap allocations and likely to differ anyway.
Co-developed-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Diffstat (limited to 'mm/util.c')
-rw-r--r-- | mm/util.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/util.c b/mm/util.c index 5ef378a2a038..4e21fe7eae27 100644 --- a/mm/util.c +++ b/mm/util.c @@ -957,7 +957,7 @@ out: return res; } -int memcmp_pages(struct page *page1, struct page *page2) +int __weak memcmp_pages(struct page *page1, struct page *page2) { char *addr1, *addr2; int ret; |