Commit de11d3a2 authored by Yunfeng Ye's avatar Yunfeng Ye Committed by Zheng Zengkai
Browse files

arm64: mm: support setting page attributes for debugging

euleros inclusion
category: feature
feature: Memory debug feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I4MTG7



-------------------------------------------------

When pagealloc debug is enabled, block mappings or contiguous hints are
no longer used for linear address area. Therefore, support setting page
attributes in this case is useful for debugging memory corruption
problems.

Signed-off-by: default avatarYunfeng Ye <yeyunfeng@huawei.com>
Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
Reviewed-by: default avatarChao Liu <liuchao173@huawei.com>
Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent c4d3830b
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -81,8 +81,16 @@ static int change_memory_common(unsigned long addr, int numpages,
	area = find_vm_area((void *)addr);
	if (!area ||
	    end > (unsigned long)area->addr + area->size ||
	    !(area->flags & VM_ALLOC))
	    !(area->flags & VM_ALLOC)) {
		/*
		 * When pagealloc debug is enabled, the linear address is
		 * mapped with NO_BLOCK_MAPPINGS and NO_CONT_MAPPINGS flags.
		 */
		if (numpages && debug_pagealloc_enabled())
			return __change_memory_common(start, size,
				set_mask, clear_mask);
		return -EINVAL;
	}

	if (!numpages)
		return 0;