Hi Vitaly, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on tip/auto-latest] [also build test WARNING on v4.15-rc8 next-20180118] [cannot apply to tip/x86/core kvm/linux-next] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Vitaly-Kuznetsov/x86-kvm-hyperv-stable-clocksorce-for-L2-guests-when-running-nested-KVM-on-Hyper-V/20180119-160814 config: x86_64-allmodconfig (attached as .config) compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): In file included from include/linux/kasan.h:17:0, from include/linux/slab.h:129, from include/linux/irq.h:26, from arch/x86/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:13, from arch/x86/include/asm/mshyperv.h:8, from arch/x86//entry/vdso/vdso32/../vclock_gettime.c:20, from arch/x86//entry/vdso/vdso32/vclock_gettime.c:33: arch/x86/include/asm/pgtable.h: In function 'clone_pgd_range': arch/x86/include/asm/pgtable.h:1129:9: error: implicit declaration of function 'kernel_to_user_pgdp'; did you mean 'u64_to_user_ptr'? [-Werror=implicit-function-declaration] memcpy(kernel_to_user_pgdp(dst), kernel_to_user_pgdp(src), ^~~~~~~~~~~~~~~~~~~ u64_to_user_ptr arch/x86/include/asm/pgtable.h:1129:9: warning: passing argument 1 of 'memcpy' makes pointer from integer without a cast [-Wint-conversion] In file included from arch/x86/include/asm/page_32.h:35:0, from arch/x86/include/asm/page.h:14, from arch/x86/include/asm/thread_info.h:12, from include/linux/thread_info.h:38, from arch/x86/include/asm/preempt.h:7, from include/linux/preempt.h:81, from include/linux/spinlock.h:51, from include/linux/seqlock.h:36, from include/linux/time.h:6, from include/uapi/linux/timex.h:56, from include/linux/timex.h:56, from include/linux/clocksource.h:13, from arch/x86/include/asm/vgtod.h:6, from arch/x86//entry/vdso/vdso32/../vclock_gettime.c:15, from arch/x86//entry/vdso/vdso32/vclock_gettime.c:33: include/linux/string.h:332:24: note: expected 'void *' but argument is of type 'int' __FORTIFY_INLINE void *memcpy(void *p, const void *q, __kernel_size_t size) ^~~~~~ In file included from include/linux/kasan.h:17:0, from include/linux/slab.h:129, from include/linux/irq.h:26, from arch/x86/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:13, from arch/x86/include/asm/mshyperv.h:8, from arch/x86//entry/vdso/vdso32/../vclock_gettime.c:20, from arch/x86//entry/vdso/vdso32/vclock_gettime.c:33: arch/x86/include/asm/pgtable.h:1129:35: warning: passing argument 2 of 'memcpy' makes pointer from integer without a cast [-Wint-conversion] memcpy(kernel_to_user_pgdp(dst), kernel_to_user_pgdp(src), ^~~~~~~~~~~~~~~~~~~ In file included from arch/x86/include/asm/page_32.h:35:0, from arch/x86/include/asm/page.h:14, from arch/x86/include/asm/thread_info.h:12, from include/linux/thread_info.h:38, from arch/x86/include/asm/preempt.h:7, from include/linux/preempt.h:81, from include/linux/spinlock.h:51, from include/linux/seqlock.h:36, from include/linux/time.h:6, from include/uapi/linux/timex.h:56, from include/linux/timex.h:56, from include/linux/clocksource.h:13, from arch/x86/include/asm/vgtod.h:6, from arch/x86//entry/vdso/vdso32/../vclock_gettime.c:15, from arch/x86//entry/vdso/vdso32/vclock_gettime.c:33: include/linux/string.h:332:24: note: expected 'const void *' but argument is of type 'int' __FORTIFY_INLINE void *memcpy(void *p, const void *q, __kernel_size_t size) ^~~~~~ In file included from arch/x86/include/asm/paravirt_types.h:45:0, from arch/x86/include/asm/ptrace.h:92, from arch/x86/include/asm/math_emu.h:5, from arch/x86/include/asm/processor.h:12, from arch/x86/include/asm/cpufeature.h:5, from arch/x86/include/asm/thread_info.h:53, from include/linux/thread_info.h:38, from arch/x86/include/asm/preempt.h:7, from include/linux/preempt.h:81, from include/linux/spinlock.h:51, from include/linux/seqlock.h:36, from include/linux/time.h:6, from include/uapi/linux/timex.h:56, from include/linux/timex.h:56, from include/linux/clocksource.h:13, from arch/x86/include/asm/vgtod.h:6, from arch/x86//entry/vdso/vdso32/../vclock_gettime.c:15, from arch/x86//entry/vdso/vdso32/vclock_gettime.c:33: arch/x86/include/asm/pgtable.h: In function 'pte_flags_pkey': >> arch/x86/include/asm/pgtable_types.h:58:43: warning: left shift count >= width of type [-Wshift-count-overflow] #define _PAGE_PKEY_BIT0 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT0) ^ >> arch/x86/include/asm/pgtable_types.h:70:26: note: in expansion of macro '_PAGE_PKEY_BIT0' #define _PAGE_PKEY_MASK (_PAGE_PKEY_BIT0 | \ ^~~~~~~~~~~~~~~ >> arch/x86/include/asm/pgtable.h:1223:22: note: in expansion of macro '_PAGE_PKEY_MASK' return (pte_flags & _PAGE_PKEY_MASK) >> _PAGE_BIT_PKEY_BIT0; ^~~~~~~~~~~~~~~ arch/x86/include/asm/pgtable_types.h:59:43: warning: left shift count >= width of type [-Wshift-count-overflow] #define _PAGE_PKEY_BIT1 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT1) ^ >> arch/x86/include/asm/pgtable_types.h:71:5: note: in expansion of macro '_PAGE_PKEY_BIT1' _PAGE_PKEY_BIT1 | \ ^~~~~~~~~~~~~~~ >> arch/x86/include/asm/pgtable.h:1223:22: note: in expansion of macro '_PAGE_PKEY_MASK' return (pte_flags & _PAGE_PKEY_MASK) >> _PAGE_BIT_PKEY_BIT0; ^~~~~~~~~~~~~~~ arch/x86/include/asm/pgtable_types.h:60:43: warning: left shift count >= width of type [-Wshift-count-overflow] #define _PAGE_PKEY_BIT2 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT2) ^ >> arch/x86/include/asm/pgtable_types.h:72:5: note: in expansion of macro '_PAGE_PKEY_BIT2' _PAGE_PKEY_BIT2 | \ ^~~~~~~~~~~~~~~ >> arch/x86/include/asm/pgtable.h:1223:22: note: in expansion of macro '_PAGE_PKEY_MASK' return (pte_flags & _PAGE_PKEY_MASK) >> _PAGE_BIT_PKEY_BIT0; ^~~~~~~~~~~~~~~ arch/x86/include/asm/pgtable_types.h:61:43: warning: left shift count >= width of type [-Wshift-count-overflow] #define _PAGE_PKEY_BIT3 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT3) ^ >> arch/x86/include/asm/pgtable_types.h:73:5: note: in expansion of macro '_PAGE_PKEY_BIT3' _PAGE_PKEY_BIT3) ^~~~~~~~~~~~~~~ >> arch/x86/include/asm/pgtable.h:1223:22: note: in expansion of macro '_PAGE_PKEY_MASK' return (pte_flags & _PAGE_PKEY_MASK) >> _PAGE_BIT_PKEY_BIT0; ^~~~~~~~~~~~~~~ In file included from include/linux/kasan.h:17:0, from include/linux/slab.h:129, from include/linux/irq.h:26, from arch/x86/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:13, from arch/x86/include/asm/mshyperv.h:8, from arch/x86//entry/vdso/vdso32/../vclock_gettime.c:20, from arch/x86//entry/vdso/vdso32/vclock_gettime.c:33: >> arch/x86/include/asm/pgtable.h:1223:39: warning: right shift count >= width of type [-Wshift-count-overflow] return (pte_flags & _PAGE_PKEY_MASK) >> _PAGE_BIT_PKEY_BIT0; ^~ cc1: some warnings being treated as errors -- include/linux/kasan.h:31:19: sparse: constant 0xdffffc0000000000UL is so big it is unsigned long long In file included from include/linux/kasan.h:17:0, from include/linux/slab.h:129, from include/linux/irq.h:26, from arch/x86/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:13, from arch/x86/include/asm/mshyperv.h:8, from arch/x86/entry/vdso/vdso32/../vclock_gettime.c:20, from arch/x86/entry/vdso/vdso32/vclock_gettime.c:33: arch/x86/include/asm/pgtable.h: In function 'clone_pgd_range': arch/x86/include/asm/pgtable.h:1129:9: error: implicit declaration of function 'kernel_to_user_pgdp'; did you mean 'u64_to_user_ptr'? [-Werror=implicit-function-declaration] memcpy(kernel_to_user_pgdp(dst), kernel_to_user_pgdp(src), ^~~~~~~~~~~~~~~~~~~ u64_to_user_ptr arch/x86/include/asm/pgtable.h:1129:9: warning: passing argument 1 of 'memcpy' makes pointer from integer without a cast [-Wint-conversion] In file included from arch/x86/include/asm/page_32.h:35:0, from arch/x86/include/asm/page.h:14, from arch/x86/include/asm/thread_info.h:12, from include/linux/thread_info.h:38, from arch/x86/include/asm/preempt.h:7, from include/linux/preempt.h:81, from include/linux/spinlock.h:51, from include/linux/seqlock.h:36, from include/linux/time.h:6, from include/uapi/linux/timex.h:56, from include/linux/timex.h:56, from include/linux/clocksource.h:13, from arch/x86/include/asm/vgtod.h:6, from arch/x86/entry/vdso/vdso32/../vclock_gettime.c:15, from arch/x86/entry/vdso/vdso32/vclock_gettime.c:33: include/linux/string.h:332:24: note: expected 'void *' but argument is of type 'int' __FORTIFY_INLINE void *memcpy(void *p, const void *q, __kernel_size_t size) ^~~~~~ In file included from include/linux/kasan.h:17:0, from include/linux/slab.h:129, from include/linux/irq.h:26, from arch/x86/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:13, from arch/x86/include/asm/mshyperv.h:8, from arch/x86/entry/vdso/vdso32/../vclock_gettime.c:20, from arch/x86/entry/vdso/vdso32/vclock_gettime.c:33: arch/x86/include/asm/pgtable.h:1129:35: warning: passing argument 2 of 'memcpy' makes pointer from integer without a cast [-Wint-conversion] memcpy(kernel_to_user_pgdp(dst), kernel_to_user_pgdp(src), ^~~~~~~~~~~~~~~~~~~ In file included from arch/x86/include/asm/page_32.h:35:0, from arch/x86/include/asm/page.h:14, from arch/x86/include/asm/thread_info.h:12, from include/linux/thread_info.h:38, from arch/x86/include/asm/preempt.h:7, from include/linux/preempt.h:81, from include/linux/spinlock.h:51, from include/linux/seqlock.h:36, from include/linux/time.h:6, from include/uapi/linux/timex.h:56, from include/linux/timex.h:56, from include/linux/clocksource.h:13, from arch/x86/include/asm/vgtod.h:6, from arch/x86/entry/vdso/vdso32/../vclock_gettime.c:15, from arch/x86/entry/vdso/vdso32/vclock_gettime.c:33: include/linux/string.h:332:24: note: expected 'const void *' but argument is of type 'int' __FORTIFY_INLINE void *memcpy(void *p, const void *q, __kernel_size_t size) ^~~~~~ In file included from arch/x86/include/asm/paravirt_types.h:45:0, from arch/x86/include/asm/ptrace.h:92, from arch/x86/include/asm/math_emu.h:5, from arch/x86/include/asm/processor.h:12, from arch/x86/include/asm/cpufeature.h:5, from arch/x86/include/asm/thread_info.h:53, from include/linux/thread_info.h:38, from arch/x86/include/asm/preempt.h:7, from include/linux/preempt.h:81, from include/linux/spinlock.h:51, from include/linux/seqlock.h:36, from include/linux/time.h:6, from include/uapi/linux/timex.h:56, from include/linux/timex.h:56, from include/linux/clocksource.h:13, from arch/x86/include/asm/vgtod.h:6, from arch/x86/entry/vdso/vdso32/../vclock_gettime.c:15, from arch/x86/entry/vdso/vdso32/vclock_gettime.c:33: arch/x86/include/asm/pgtable.h: In function 'pte_flags_pkey': >> arch/x86/include/asm/pgtable_types.h:58:43: warning: left shift count >= width of type [-Wshift-count-overflow] #define _PAGE_PKEY_BIT0 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT0) ^ >> arch/x86/include/asm/pgtable_types.h:70:26: note: in expansion of macro '_PAGE_PKEY_BIT0' #define _PAGE_PKEY_MASK (_PAGE_PKEY_BIT0 | \ ^~~~~~~~~~~~~~~ >> arch/x86/include/asm/pgtable.h:1223:22: note: in expansion of macro '_PAGE_PKEY_MASK' return (pte_flags & _PAGE_PKEY_MASK) >> _PAGE_BIT_PKEY_BIT0; ^~~~~~~~~~~~~~~ arch/x86/include/asm/pgtable_types.h:59:43: warning: left shift count >= width of type [-Wshift-count-overflow] #define _PAGE_PKEY_BIT1 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT1) ^ >> arch/x86/include/asm/pgtable_types.h:71:5: note: in expansion of macro '_PAGE_PKEY_BIT1' _PAGE_PKEY_BIT1 | \ ^~~~~~~~~~~~~~~ >> arch/x86/include/asm/pgtable.h:1223:22: note: in expansion of macro '_PAGE_PKEY_MASK' return (pte_flags & _PAGE_PKEY_MASK) >> _PAGE_BIT_PKEY_BIT0; ^~~~~~~~~~~~~~~ arch/x86/include/asm/pgtable_types.h:60:43: warning: left shift count >= width of type [-Wshift-count-overflow] #define _PAGE_PKEY_BIT2 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT2) ^ >> arch/x86/include/asm/pgtable_types.h:72:5: note: in expansion of macro '_PAGE_PKEY_BIT2' _PAGE_PKEY_BIT2 | \ ^~~~~~~~~~~~~~~ >> arch/x86/include/asm/pgtable.h:1223:22: note: in expansion of macro '_PAGE_PKEY_MASK' return (pte_flags & _PAGE_PKEY_MASK) >> _PAGE_BIT_PKEY_BIT0; ^~~~~~~~~~~~~~~ arch/x86/include/asm/pgtable_types.h:61:43: warning: left shift count >= width of type [-Wshift-count-overflow] #define _PAGE_PKEY_BIT3 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT3) ^ >> arch/x86/include/asm/pgtable_types.h:73:5: note: in expansion of macro '_PAGE_PKEY_BIT3' _PAGE_PKEY_BIT3) ^~~~~~~~~~~~~~~ >> arch/x86/include/asm/pgtable.h:1223:22: note: in expansion of macro '_PAGE_PKEY_MASK' return (pte_flags & _PAGE_PKEY_MASK) >> _PAGE_BIT_PKEY_BIT0; ^~~~~~~~~~~~~~~ In file included from include/linux/kasan.h:17:0, from include/linux/slab.h:129, from include/linux/irq.h:26, from arch/x86/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:13, from arch/x86/include/asm/mshyperv.h:8, from arch/x86/entry/vdso/vdso32/../vclock_gettime.c:20, from arch/x86/entry/vdso/vdso32/vclock_gettime.c:33: >> arch/x86/include/asm/pgtable.h:1223:39: warning: right shift count >= width of type [-Wshift-count-overflow] return (pte_flags & _PAGE_PKEY_MASK) >> _PAGE_BIT_PKEY_BIT0; ^~ cc1: some warnings being treated as errors sparse warnings: (new ones prefixed by >>) >> include/linux/kasan.h:31:19: sparse: constant 0xdffffc0000000000UL is so big it is unsigned long long In file included from include/linux/kasan.h:17:0, from include/linux/slab.h:129, from include/linux/irq.h:26, from arch/x86/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:13, from arch/x86/include/asm/mshyperv.h:8, from arch/x86/entry/vdso/vdso32/../vclock_gettime.c:20, from arch/x86/entry/vdso/vdso32/vclock_gettime.c:33: arch/x86/include/asm/pgtable.h: In function 'clone_pgd_range': arch/x86/include/asm/pgtable.h:1129:9: error: implicit declaration of function 'kernel_to_user_pgdp'; did you mean memcpy(kernel_to_user_pgdp(dst), kernel_to_user_pgdp(src), ^~~~~~~~~~~~~~~~~~~ u64_to_user_ptr arch/x86/include/asm/pgtable.h:1129:9: warning: passing argument 1 of 'memcpy' makes pointer from integer without a cast In file included from arch/x86/include/asm/page_32.h:35:0, from arch/x86/include/asm/page.h:14, from arch/x86/include/asm/thread_info.h:12, from include/linux/thread_info.h:38, from arch/x86/include/asm/preempt.h:7, from include/linux/preempt.h:81, from include/linux/spinlock.h:51, from include/linux/seqlock.h:36, from include/linux/time.h:6, from include/uapi/linux/timex.h:56, from include/linux/timex.h:56, from include/linux/clocksource.h:13, from arch/x86/include/asm/vgtod.h:6, from arch/x86/entry/vdso/vdso32/../vclock_gettime.c:15, from arch/x86/entry/vdso/vdso32/vclock_gettime.c:33: include/linux/string.h:332:24: note: expected 'void but argument is of type 'int' __FORTIFY_INLINE void const void __kernel_size_t size) ^~~~~~ In file included from include/linux/kasan.h:17:0, from include/linux/slab.h:129, from include/linux/irq.h:26, from arch/x86/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:13, from arch/x86/include/asm/mshyperv.h:8, from arch/x86/entry/vdso/vdso32/../vclock_gettime.c:20, from arch/x86/entry/vdso/vdso32/vclock_gettime.c:33: arch/x86/include/asm/pgtable.h:1129:35: warning: passing argument 2 of 'memcpy' makes pointer from integer without a cast memcpy(kernel_to_user_pgdp(dst), kernel_to_user_pgdp(src), ^~~~~~~~~~~~~~~~~~~ In file included from arch/x86/include/asm/page_32.h:35:0, from arch/x86/include/asm/page.h:14, from arch/x86/include/asm/thread_info.h:12, from include/linux/thread_info.h:38, from arch/x86/include/asm/preempt.h:7, from include/linux/preempt.h:81, from include/linux/spinlock.h:51, from include/linux/seqlock.h:36, from include/linux/time.h:6, from include/uapi/linux/timex.h:56, from include/linux/timex.h:56, from include/linux/clocksource.h:13, from arch/x86/include/asm/vgtod.h:6, from arch/x86/entry/vdso/vdso32/../vclock_gettime.c:15, from arch/x86/entry/vdso/vdso32/vclock_gettime.c:33: include/linux/string.h:332:24: note: expected 'const void but argument is of type 'int' __FORTIFY_INLINE void const void __kernel_size_t size) ^~~~~~ In file included from arch/x86/include/asm/paravirt_types.h:45:0, from arch/x86/include/asm/ptrace.h:92, from arch/x86/include/asm/math_emu.h:5, from arch/x86/include/asm/processor.h:12, from arch/x86/include/asm/cpufeature.h:5, from arch/x86/include/asm/thread_info.h:53, from include/linux/thread_info.h:38, from arch/x86/include/asm/preempt.h:7, from include/linux/preempt.h:81, from include/linux/spinlock.h:51, from include/linux/seqlock.h:36, from include/linux/time.h:6, from include/uapi/linux/timex.h:56, from include/linux/timex.h:56, from include/linux/clocksource.h:13, from arch/x86/include/asm/vgtod.h:6, from arch/x86/entry/vdso/vdso32/../vclock_gettime.c:15, from arch/x86/entry/vdso/vdso32/vclock_gettime.c:33: arch/x86/include/asm/pgtable.h: In function 'pte_flags_pkey': arch/x86/include/asm/pgtable_types.h:58:43: warning: left shift count >= width of type #define _PAGE_PKEY_BIT0 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT0) ^ arch/x86/include/asm/pgtable_types.h:70:26: note: in expansion of macro '_PAGE_PKEY_BIT0' #define _PAGE_PKEY_MASK (_PAGE_PKEY_BIT0 | 89- ^~~~~~~~~~~~~~~ arch/x86/include/asm/pgtable.h:1223:22: note: in expansion of macro '_PAGE_PKEY_MASK' return (pte_flags & _PAGE_PKEY_MASK) >> _PAGE_BIT_PKEY_BIT0; ^~~~~~~~~~~~~~~ arch/x86/include/asm/pgtable_types.h:59:43: warning: left shift count >= width of type #define _PAGE_PKEY_BIT1 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT1) ^ arch/x86/include/asm/pgtable_types.h:71:5: note: in expansion of macro '_PAGE_PKEY_BIT1' _PAGE_PKEY_BIT1 | 98- ^~~~~~~~~~~~~~~ arch/x86/include/asm/pgtable.h:1223:22: note: in expansion of macro '_PAGE_PKEY_MASK' return (pte_flags & _PAGE_PKEY_MASK) >> _PAGE_BIT_PKEY_BIT0; ^~~~~~~~~~~~~~~ vim +58 arch/x86/include/asm/pgtable_types.h 8d19c99fa Jeremy Fitzhardinge 2009-02-08 41 8d19c99fa Jeremy Fitzhardinge 2009-02-08 42 #define _PAGE_PRESENT (_AT(pteval_t, 1) << _PAGE_BIT_PRESENT) 8d19c99fa Jeremy Fitzhardinge 2009-02-08 43 #define _PAGE_RW (_AT(pteval_t, 1) << _PAGE_BIT_RW) 8d19c99fa Jeremy Fitzhardinge 2009-02-08 44 #define _PAGE_USER (_AT(pteval_t, 1) << _PAGE_BIT_USER) 8d19c99fa Jeremy Fitzhardinge 2009-02-08 45 #define _PAGE_PWT (_AT(pteval_t, 1) << _PAGE_BIT_PWT) 8d19c99fa Jeremy Fitzhardinge 2009-02-08 46 #define _PAGE_PCD (_AT(pteval_t, 1) << _PAGE_BIT_PCD) 8d19c99fa Jeremy Fitzhardinge 2009-02-08 47 #define _PAGE_ACCESSED (_AT(pteval_t, 1) << _PAGE_BIT_ACCESSED) 8d19c99fa Jeremy Fitzhardinge 2009-02-08 48 #define _PAGE_DIRTY (_AT(pteval_t, 1) << _PAGE_BIT_DIRTY) 8d19c99fa Jeremy Fitzhardinge 2009-02-08 49 #define _PAGE_PSE (_AT(pteval_t, 1) << _PAGE_BIT_PSE) 8d19c99fa Jeremy Fitzhardinge 2009-02-08 50 #define _PAGE_GLOBAL (_AT(pteval_t, 1) << _PAGE_BIT_GLOBAL) c46a7c817 Mel Gorman 2014-06-04 51 #define _PAGE_SOFTW1 (_AT(pteval_t, 1) << _PAGE_BIT_SOFTW1) f955371ca David Vrabel 2014-01-07 52 #define _PAGE_SOFTW2 (_AT(pteval_t, 1) << _PAGE_BIT_SOFTW2) 8d19c99fa Jeremy Fitzhardinge 2009-02-08 53 #define _PAGE_PAT (_AT(pteval_t, 1) << _PAGE_BIT_PAT) 8d19c99fa Jeremy Fitzhardinge 2009-02-08 54 #define _PAGE_PAT_LARGE (_AT(pteval_t, 1) << _PAGE_BIT_PAT_LARGE) 8d19c99fa Jeremy Fitzhardinge 2009-02-08 55 #define _PAGE_SPECIAL (_AT(pteval_t, 1) << _PAGE_BIT_SPECIAL) 8d19c99fa Jeremy Fitzhardinge 2009-02-08 56 #define _PAGE_CPA_TEST (_AT(pteval_t, 1) << _PAGE_BIT_CPA_TEST) 5c1d90f51 Dave Hansen 2016-02-12 57 #ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS 5c1d90f51 Dave Hansen 2016-02-12 @58 #define _PAGE_PKEY_BIT0 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT0) 5c1d90f51 Dave Hansen 2016-02-12 59 #define _PAGE_PKEY_BIT1 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT1) 5c1d90f51 Dave Hansen 2016-02-12 60 #define _PAGE_PKEY_BIT2 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT2) 5c1d90f51 Dave Hansen 2016-02-12 61 #define _PAGE_PKEY_BIT3 (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT3) 5c1d90f51 Dave Hansen 2016-02-12 62 #else 5c1d90f51 Dave Hansen 2016-02-12 63 #define _PAGE_PKEY_BIT0 (_AT(pteval_t, 0)) 5c1d90f51 Dave Hansen 2016-02-12 64 #define _PAGE_PKEY_BIT1 (_AT(pteval_t, 0)) 5c1d90f51 Dave Hansen 2016-02-12 65 #define _PAGE_PKEY_BIT2 (_AT(pteval_t, 0)) 5c1d90f51 Dave Hansen 2016-02-12 66 #define _PAGE_PKEY_BIT3 (_AT(pteval_t, 0)) 5c1d90f51 Dave Hansen 2016-02-12 67 #endif 8d19c99fa Jeremy Fitzhardinge 2009-02-08 68 #define __HAVE_ARCH_PTE_SPECIAL 8d19c99fa Jeremy Fitzhardinge 2009-02-08 69 019132ff3 Dave Hansen 2016-02-12 @70 #define _PAGE_PKEY_MASK (_PAGE_PKEY_BIT0 | \ 019132ff3 Dave Hansen 2016-02-12 @71 _PAGE_PKEY_BIT1 | \ 019132ff3 Dave Hansen 2016-02-12 @72 _PAGE_PKEY_BIT2 | \ 019132ff3 Dave Hansen 2016-02-12 @73 _PAGE_PKEY_BIT3) 019132ff3 Dave Hansen 2016-02-12 74 :::::: The code at line 58 was first introduced by commit :::::: 5c1d90f51027e197e1299ab1235a2fed78910905 x86/mm/pkeys: Add PTE bits for storing protection key :::::: TO: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> :::::: CC: Ingo Molnar <mingo@xxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip
_______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel