Unverified Commit fbc17ade authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!5044 bugfix for pbha

Merge Pull Request from: @ci-robot 
 
PR sync from: Wupeng Ma <mawupeng1@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/GMN4PCGWXYQIFFWYTWLVN2VBHXYOEETP/ 
From: Ma Wupeng <mawupeng1@huawei.com>

Use corrent pte val in arch_vm_get_page_prot.
Use subsequent bits to improve future compatibility for pbha.

Ma Wupeng (2):
  arm64: mm: Use corrent pte val in arch_vm_get_page_prot
  arm64: mm: Use subsequent bits to improve future compatibility for
    pbha


-- 
2.25.1
 
https://gitee.com/openeuler/kernel/issues/I96IZH 
 
Link:https://gitee.com/openeuler/kernel/pulls/5044

 

Reviewed-by: default avatarZhang Jianhua <chris.zjh@huawei.com>
Reviewed-by: default avatarWeilong Chen <chenweilong@huawei.com>
Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
parents f5a574b0 2245096a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ static inline pgprot_t arch_vm_get_page_prot(unsigned long vm_flags)
		prot |= PTE_ATTRINDX(MT_NORMAL_TAGGED);

	if (vm_flags & VM_PBHA_BIT0)
		prot |= PROT_PBHA_BIT0;  /* select PBHA BIT 0 for pbha */
		prot |= PTE_PBHA0;

	return __pgprot(prot);
}
+1 −1
Original line number Diff line number Diff line
@@ -6,6 +6,6 @@

#define PROT_BTI	0x10		/* BTI guarded page */
#define PROT_MTE	0x20		/* Normal Tagged mapping */
#define PROT_PBHA_BIT0	0x40		/* PBHA 59 bit */
#define PROT_PBHA_BIT0	0x1000		/* PBHA 59 bit */

#endif /* ! _UAPI__ASM_MMAN_H */
+3 −1
Original line number Diff line number Diff line
@@ -340,11 +340,13 @@ extern unsigned int kobjsize(const void *objp);
#define VM_HIGH_ARCH_BIT_2	34	/* bit only usable on 64-bit architectures */
#define VM_HIGH_ARCH_BIT_3	35	/* bit only usable on 64-bit architectures */
#define VM_HIGH_ARCH_BIT_4	36	/* bit only usable on 64-bit architectures */
#define VM_HIGH_ARCH_BIT_7	39	/* bit only usable on 64-bit architectures */
#define VM_HIGH_ARCH_0	BIT(VM_HIGH_ARCH_BIT_0)
#define VM_HIGH_ARCH_1	BIT(VM_HIGH_ARCH_BIT_1)
#define VM_HIGH_ARCH_2	BIT(VM_HIGH_ARCH_BIT_2)
#define VM_HIGH_ARCH_3	BIT(VM_HIGH_ARCH_BIT_3)
#define VM_HIGH_ARCH_4	BIT(VM_HIGH_ARCH_BIT_4)
#define VM_HIGH_ARCH_7	BIT(VM_HIGH_ARCH_BIT_7)
#endif /* CONFIG_ARCH_USES_HIGH_VMA_FLAGS */

#ifdef CONFIG_ARCH_HAS_PKEYS
@@ -393,7 +395,7 @@ extern unsigned int kobjsize(const void *objp);
#endif

#if defined(CONFIG_ARM64_PBHA)
# define VM_PBHA_BIT0	VM_HIGH_ARCH_2	/* Page Base Hardware Attributes 4 bit*/
# define VM_PBHA_BIT0	VM_HIGH_ARCH_7	/* Page Base Hardware Attributes 4 bit*/
#else
# define VM_PBHA_BIT0	VM_NONE
#endif
+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@
#define PROT_SEM	0x8		/* page may be used for atomic ops */
/*			0x10		   reserved for arch-specific use */
/*			0x20		   reserved for arch-specific use */
/*			0x40		   reserved for arch-specific use */
/*			0x1000		   reserved for arch-specific use */
#define PROT_NONE	0x0		/* page can not be accessed */
#define PROT_GROWSDOWN	0x01000000	/* mprotect flag: extend change to start of growsdown vma */
#define PROT_GROWSUP	0x02000000	/* mprotect flag: extend change to end of growsup vma */
+1 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#define PROT_SEM	0x8		/* page may be used for atomic ops */
/*			0x10		   reserved for arch-specific use */
/*			0x20		   reserved for arch-specific use */
/*			0x1000		   reserved for arch-specific use */
#define PROT_NONE	0x0		/* page can not be accessed */
#define PROT_GROWSDOWN	0x01000000	/* mprotect flag: extend change to start of growsdown vma */
#define PROT_GROWSUP	0x02000000	/* mprotect flag: extend change to end of growsup vma */