/kernel/linux/linux-6.6/arch/x86/include/asm/ |
H A D | pkru.h | 19 static inline bool __pkru_allows_read(u32 pkru, u16 pkey) in __pkru_allows_read() argument 22 return !(pkru & (PKRU_AD_BIT << pkru_pkey_bits)); in __pkru_allows_read() 25 static inline bool __pkru_allows_write(u32 pkru, u16 pkey) in __pkru_allows_write() argument 32 return !(pkru & ((PKRU_AD_BIT|PKRU_WD_BIT) << pkru_pkey_bits)); in __pkru_allows_write() 42 static inline void write_pkru(u32 pkru) in write_pkru() argument 50 if (pkru != rdpkru()) in write_pkru() 51 wrpkru(pkru); in write_pkru()
|
H A D | special_insns.h | 83 u32 edx, pkru; in rdpkru() local 90 : "=a" (pkru), "=d" (edx) in rdpkru() 92 return pkru; in rdpkru() 95 static inline void wrpkru(u32 pkru) in wrpkru() argument 104 : : "a" (pkru), "c"(ecx), "d"(edx)); in wrpkru() 113 static inline void wrpkru(u32 pkru) in wrpkru() argument
|
H A D | pgtable.h | 21 #include <asm/pkru.h> 1623 u32 pkru = read_pkru(); in __pkru_allows_pkey() local 1625 if (!__pkru_allows_read(pkru, pkey)) in __pkru_allows_pkey() 1627 if (write && !__pkru_allows_write(pkru, pkey)) in __pkru_allows_pkey()
|
H A D | processor.h | 476 u32 pkru; member
|
H A D | svm.h | 415 u32 pkru; member
|
H A D | kvm_host.h | 733 u32 pkru; member
|
/kernel/linux/linux-5.10/arch/x86/include/asm/ |
H A D | special_insns.h | 83 u32 edx, pkru; in rdpkru() local 90 : "=a" (pkru), "=d" (edx) in rdpkru() 92 return pkru; in rdpkru() 95 static inline void wrpkru(u32 pkru) in wrpkru() argument 104 : : "a" (pkru), "c"(ecx), "d"(edx)); in wrpkru() 107 static inline void __write_pkru(u32 pkru) in __write_pkru() argument 113 if (pkru == rdpkru()) in __write_pkru() 116 wrpkru(pkru); in __write_pkru() 125 static inline void __write_pkru(u32 pkru) in __write_pkru() argument
|
H A D | pgtable.h | 137 static inline void write_pkru(u32 pkru) in write_pkru() argument 153 pk->pkru = pkru; in write_pkru() 154 __write_pkru(pkru); in write_pkru() 1373 static inline bool __pkru_allows_read(u32 pkru, u16 pkey) in __pkru_allows_read() argument 1376 return !(pkru & (PKRU_AD_BIT << pkru_pkey_bits)); in __pkru_allows_read() 1379 static inline bool __pkru_allows_write(u32 pkru, u16 pkey) in __pkru_allows_write() argument 1386 return !(pkru & ((PKRU_AD_BIT|PKRU_WD_BIT) << pkru_pkey_bits)); in __pkru_allows_write() 1401 u32 pkru = read_pkru(); in __pkru_allows_pkey() local 1403 if (!__pkru_allows_read(pkru, pke in __pkru_allows_pkey() [all...] |
H A D | kvm_host.h | 542 u32 pkru; member
|
/kernel/linux/linux-6.6/arch/x86/kernel/fpu/ |
H A D | xstate.c | 1150 struct pkru_state pkru = {0}; in __copy_xstate_to_uabi_buf() local 1155 pkru.pkru = pkru_val; in __copy_xstate_to_uabi_buf() 1156 membuf_write(&to, &pkru, sizeof(pkru)); in __copy_xstate_to_uabi_buf() 1191 tsk->thread.pkru, copy_mode); in copy_xstate_to_uabi_buf() 1212 * @pkru: The location to write the PKRU value to 1222 * pass a pointer to the thread_struct's pkru field in @pkru and updating 1225 * thread_struct's pkru fiel 1235 copy_uabi_to_xstate(struct fpstate *fpstate, const void *kbuf, const void __user *ubuf, u32 *pkru) copy_uabi_to_xstate() argument 1317 copy_uabi_from_kernel_to_xstate(struct fpstate *fpstate, const void *kbuf, u32 *pkru) copy_uabi_from_kernel_to_xstate() argument [all...] |
H A D | core.c | 372 unsigned int size, u64 xfeatures, u32 pkru) in fpu_copy_guest_fpstate_to_uabi() 379 __copy_xstate_to_uabi_buf(mb, kstate, xfeatures, pkru, in fpu_copy_guest_fpstate_to_uabi() 371 fpu_copy_guest_fpstate_to_uabi(struct fpu_guest *gfpu, void *buf, unsigned int size, u64 xfeatures, u32 pkru) fpu_copy_guest_fpstate_to_uabi() argument
|
H A D | xstate.h | 50 extern int copy_uabi_from_kernel_to_xstate(struct fpstate *fpstate, const void *kbuf, u32 *pkru);
|
H A D | regset.c | 171 ret = copy_uabi_from_kernel_to_xstate(fpu->fpstate, kbuf ?: tmpbuf, &target->thread.pkru); in xstateregs_set()
|
/kernel/linux/linux-6.6/arch/x86/kernel/ |
H A D | process_64.c | 45 #include <asm/pkru.h> 357 prev->pkru = rdpkru(); in x86_pkru_load() 363 if (prev->pkru != next->pkru) in x86_pkru_load() 364 wrpkru(next->pkru); in x86_pkru_load()
|
H A D | process.c | 218 p->thread.pkru = pkru_get_init_value(); in copy_thread() 225 * Clone current's PKRU value from hardware. tsk->thread.pkru in copy_thread() 228 p->thread.pkru = read_pkru(); in copy_thread()
|
/kernel/linux/linux-6.6/arch/x86/include/asm/fpu/ |
H A D | api.h | 161 unsigned int size, u64 xfeatures, u32 pkru);
|
H A D | types.h | 253 u32 pkru; member
|
/kernel/linux/linux-5.10/arch/x86/include/asm/fpu/ |
H A D | types.h | 236 u32 pkru; member
|
H A D | internal.h | 585 pkru_val = pk ? pk->pkru : 0; in switch_fpu_finish()
|
/kernel/linux/linux-5.10/arch/x86/kvm/ |
H A D | mmu.h | 198 * attribute bits per domain in pkru. pte_pkey is the in permission_fault() 202 pkru_bits = (vcpu->arch.pkru >> (pte_pkey * 2)) & 3; in permission_fault()
|
H A D | x86.c | 911 vcpu->arch.pkru != vcpu->arch.host_pkru) in kvm_load_guest_xsave_state() 912 __write_pkru(vcpu->arch.pkru); in kvm_load_guest_xsave_state() 921 vcpu->arch.pkru = rdpkru(); in kvm_load_host_xsave_state() 922 if (vcpu->arch.pkru != vcpu->arch.host_pkru) in kvm_load_host_xsave_state() 4067 /* Save host pkru register if supported */ in kvm_arch_vcpu_load() 4591 memcpy(dest + offset, &vcpu->arch.pkru, in fill_xsave() 4592 sizeof(vcpu->arch.pkru)); in fill_xsave() 4634 memcpy(&vcpu->arch.pkru, src + offset, in load_xsave() 4635 sizeof(vcpu->arch.pkru)); in load_xsave()
|
/kernel/linux/linux-6.6/arch/x86/kvm/ |
H A D | mmu.h | 222 * attribute bits per domain in pkru. pte_pkey is the in permission_fault() 226 pkru_bits = (vcpu->arch.pkru >> (pte_pkey * 2)) & 3; in permission_fault()
|
H A D | x86.c | 73 #include <asm/pkru.h> 1034 vcpu->arch.pkru != vcpu->arch.host_pkru && in kvm_load_guest_xsave_state() 1037 write_pkru(vcpu->arch.pkru); in kvm_load_guest_xsave_state() 1049 vcpu->arch.pkru = rdpkru(); in kvm_load_host_xsave_state() 1050 if (vcpu->arch.pkru != vcpu->arch.host_pkru) in kvm_load_host_xsave_state() 4822 /* Save host pkru register if supported */ in kvm_arch_vcpu_load() 5414 supported_xcr0, vcpu->arch.pkru); in kvm_vcpu_ioctl_x86_get_xsave2() 5433 &vcpu->arch.pkru); in kvm_vcpu_ioctl_x86_set_xsave()
|
/kernel/linux/linux-6.6/arch/x86/kvm/svm/ |
H A D | sev.c | 23 #include <asm/pkru.h> 611 save->pkru = svm->vcpu.arch.pkru; in sev_es_sync_vmsa() 3101 hostsa->pkru = read_pkru(); in sev_es_prepare_switch_to_guest()
|
/kernel/linux/linux-6.6/tools/testing/selftests/kvm/include/x86_64/ |
H A D | processor.h | 563 static inline void wrpkru(u32 pkru) in wrpkru() argument 567 : : "a" (pkru), "c"(0), "d"(0)); in wrpkru()
|