/kernel/linux/linux-5.10/arch/s390/include/asm/ |
H A D | gmap.h | 25 * @list: list head for the mm->context gmap list 31 * @ref_count: reference counter for the gmap structure 33 * @asce: address space control element for gmap page table 37 * @children: list of shadow gmap structures 39 * @shadow_lock: spinlock to protect the shadow gmap list 40 * @parent: pointer to the parent gmap for shadow guest address spaces 46 struct gmap { struct 66 struct gmap *parent; 96 void (*notifier_call)(struct gmap *gmap, unsigne 100 gmap_is_shadow(struct gmap *gmap) gmap_is_shadow() argument [all...] |
H A D | uv.h | 19 #include <asm/gmap.h> 353 int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb); 356 int gmap_convert_to_secure(struct gmap *gmap, unsigned long gaddr);
|
H A D | kvm_host.h | 730 struct gmap *gmap; member 731 /* backup location for the currently enabled gmap when scheduled out */ 732 struct gmap *enabled_gmap; 934 struct gmap *gmap; member
|
/kernel/linux/linux-6.6/arch/s390/include/asm/ |
H A D | gmap.h | 25 * @list: list head for the mm->context gmap list 31 * @ref_count: reference counter for the gmap structure 33 * @asce: address space control element for gmap page table 37 * @children: list of shadow gmap structures 39 * @shadow_lock: spinlock to protect the shadow gmap list 40 * @parent: pointer to the parent gmap for shadow guest address spaces 46 struct gmap { struct 66 struct gmap *parent; 96 void (*notifier_call)(struct gmap *gmap, unsigne 100 gmap_is_shadow(struct gmap *gmap) gmap_is_shadow() argument [all...] |
H A D | uv.h | 19 #include <asm/gmap.h> 484 int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb); 485 int gmap_destroy_page(struct gmap *gmap, unsigned long gaddr); 489 int gmap_convert_to_secure(struct gmap *gmap, unsigned long gaddr);
|
H A D | kvm_host.h | 750 struct gmap *gmap; member 751 /* backup location for the currently enabled gmap when scheduled out */ 752 struct gmap *enabled_gmap; 966 struct gmap *gmap; member
|
/kernel/linux/linux-5.10/arch/s390/mm/ |
H A D | gmap.c | 23 #include <asm/gmap.h> 31 * @limit: maximum address of the gmap address space 35 static struct gmap *gmap_alloc(unsigned long limit) in gmap_alloc() 37 struct gmap *gmap; in gmap_alloc() local 59 gmap = kzalloc(sizeof(struct gmap), GFP_KERNEL); in gmap_alloc() 60 if (!gmap) in gmap_alloc() 62 INIT_LIST_HEAD(&gmap->crst_list); in gmap_alloc() 63 INIT_LIST_HEAD(&gmap in gmap_alloc() 99 struct gmap *gmap; gmap_create() local 118 gmap_flush_tlb(struct gmap *gmap) gmap_flush_tlb() argument 183 gmap_free(struct gmap *gmap) gmap_free() argument 215 gmap_get(struct gmap *gmap) gmap_get() argument 228 gmap_put(struct gmap *gmap) gmap_put() argument 239 gmap_remove(struct gmap *gmap) gmap_remove() argument 275 gmap_enable(struct gmap *gmap) gmap_enable() argument 285 gmap_disable(struct gmap *gmap) gmap_disable() argument 305 gmap_alloc_table(struct gmap *gmap, unsigned long *table, unsigned long init, unsigned long gaddr) gmap_alloc_table() argument 356 __gmap_unlink_by_vmaddr(struct gmap *gmap, unsigned long vmaddr) __gmap_unlink_by_vmaddr() argument 379 __gmap_unmap_by_gaddr(struct gmap *gmap, unsigned long gaddr) __gmap_unmap_by_gaddr() argument 396 gmap_unmap_segment(struct gmap *gmap, unsigned long to, unsigned long len) gmap_unmap_segment() argument 427 gmap_map_segment(struct gmap *gmap, unsigned long from, unsigned long to, unsigned long len) gmap_map_segment() argument 474 __gmap_translate(struct gmap *gmap, unsigned long gaddr) __gmap_translate() argument 494 gmap_translate(struct gmap *gmap, unsigned long gaddr) gmap_translate() argument 514 struct gmap *gmap; gmap_unlink() local 540 __gmap_link(struct gmap *gmap, unsigned long gaddr, unsigned long vmaddr) __gmap_link() argument 636 gmap_fault(struct gmap *gmap, unsigned long gaddr, unsigned int fault_flags) gmap_fault() argument 674 __gmap_zap(struct gmap *gmap, unsigned long gaddr) __gmap_zap() argument 695 gmap_discard(struct gmap *gmap, unsigned long from, unsigned long to) gmap_discard() argument 761 gmap_call_notifier(struct gmap *gmap, unsigned long start, unsigned long end) gmap_call_notifier() argument 788 gmap_table_walk(struct gmap *gmap, unsigned long gaddr, int level) gmap_table_walk() argument 850 gmap_pte_op_walk(struct gmap *gmap, unsigned long gaddr, spinlock_t **ptl) gmap_pte_op_walk() argument 874 gmap_pte_op_fixup(struct gmap *gmap, unsigned long gaddr, unsigned long vmaddr, int prot) gmap_pte_op_fixup() argument 910 gmap_pmd_op_walk(struct gmap *gmap, unsigned long gaddr) gmap_pmd_op_walk() argument 940 gmap_pmd_op_end(struct gmap *gmap, pmd_t *pmdp) gmap_pmd_op_end() argument 960 gmap_protect_pmd(struct gmap *gmap, unsigned long gaddr, pmd_t *pmdp, int prot, unsigned long bits) gmap_protect_pmd() argument 1005 gmap_protect_pte(struct gmap *gmap, unsigned long gaddr, pmd_t *pmdp, int prot, unsigned long bits) gmap_protect_pte() argument 1041 gmap_protect_range(struct gmap *gmap, unsigned long gaddr, unsigned long len, int prot, unsigned long bits) gmap_protect_range() argument 1101 gmap_mprotect_notify(struct gmap *gmap, unsigned long gaddr, unsigned long len, int prot) gmap_mprotect_notify() argument 1130 gmap_read_table(struct gmap *gmap, unsigned long gaddr, unsigned long *val) gmap_read_table() argument 2241 struct gmap *gmap, *sg, *next; ptep_notify() local 2270 pmdp_notify_gmap(struct gmap *gmap, pmd_t *pmdp, unsigned long gaddr) pmdp_notify_gmap() argument 2287 gmap_pmdp_xchg(struct gmap *gmap, pmd_t *pmdp, pmd_t new, unsigned long gaddr) gmap_pmdp_xchg() argument 2307 struct gmap *gmap; gmap_pmdp_clear() local 2360 struct gmap *gmap; gmap_pmdp_idte_local() local 2395 struct gmap *gmap; gmap_pmdp_idte_global() local 2433 gmap_test_and_clear_dirty_pmd(struct gmap *gmap, pmd_t *pmdp, unsigned long gaddr) gmap_test_and_clear_dirty_pmd() argument 2460 gmap_sync_dirty_log_pmd(struct gmap *gmap, unsigned long bitmap[4], unsigned long gaddr, unsigned long vmaddr) gmap_sync_dirty_log_pmd() argument 2742 s390_unlist_old_asce(struct gmap *gmap) s390_unlist_old_asce() argument 2778 s390_replace_asce(struct gmap *gmap) s390_replace_asce() argument [all...] |
H A D | fault.c | 36 #include <asm/gmap.h> 196 asce = ((struct gmap *) S390_lowcore.gmap)->asce; in dump_fault_info() 197 pr_cont("gmap "); in dump_fault_info() 384 struct gmap *gmap; in do_exception() local 438 gmap = NULL; in do_exception() 440 gmap = (struct gmap *) S390_lowcore.gmap; in do_exception() 877 struct gmap *gmap = (struct gmap *)S390_lowcore.gmap; do_non_secure_storage_access() local [all...] |
H A D | Makefile | 12 obj-$(CONFIG_PGSTE) += gmap.o
|
/kernel/linux/linux-6.6/arch/s390/mm/ |
H A D | gmap.c | 23 #include <asm/gmap.h> 42 * @limit: maximum address of the gmap address space 46 static struct gmap *gmap_alloc(unsigned long limit) in gmap_alloc() 48 struct gmap *gmap; in gmap_alloc() local 70 gmap = kzalloc(sizeof(struct gmap), GFP_KERNEL_ACCOUNT); in gmap_alloc() 71 if (!gmap) in gmap_alloc() 73 INIT_LIST_HEAD(&gmap->crst_list); in gmap_alloc() 74 INIT_LIST_HEAD(&gmap in gmap_alloc() 110 struct gmap *gmap; gmap_create() local 129 gmap_flush_tlb(struct gmap *gmap) gmap_flush_tlb() argument 194 gmap_free(struct gmap *gmap) gmap_free() argument 226 gmap_get(struct gmap *gmap) gmap_get() argument 239 gmap_put(struct gmap *gmap) gmap_put() argument 250 gmap_remove(struct gmap *gmap) gmap_remove() argument 286 gmap_enable(struct gmap *gmap) gmap_enable() argument 296 gmap_disable(struct gmap *gmap) gmap_disable() argument 316 gmap_alloc_table(struct gmap *gmap, unsigned long *table, unsigned long init, unsigned long gaddr) gmap_alloc_table() argument 366 __gmap_unlink_by_vmaddr(struct gmap *gmap, unsigned long vmaddr) __gmap_unlink_by_vmaddr() argument 389 __gmap_unmap_by_gaddr(struct gmap *gmap, unsigned long gaddr) __gmap_unmap_by_gaddr() argument 406 gmap_unmap_segment(struct gmap *gmap, unsigned long to, unsigned long len) gmap_unmap_segment() argument 437 gmap_map_segment(struct gmap *gmap, unsigned long from, unsigned long to, unsigned long len) gmap_map_segment() argument 484 __gmap_translate(struct gmap *gmap, unsigned long gaddr) __gmap_translate() argument 504 gmap_translate(struct gmap *gmap, unsigned long gaddr) gmap_translate() argument 524 struct gmap *gmap; gmap_unlink() local 550 __gmap_link(struct gmap *gmap, unsigned long gaddr, unsigned long vmaddr) __gmap_link() argument 646 gmap_fault(struct gmap *gmap, unsigned long gaddr, unsigned int fault_flags) gmap_fault() argument 684 __gmap_zap(struct gmap *gmap, unsigned long gaddr) __gmap_zap() argument 711 gmap_discard(struct gmap *gmap, unsigned long from, unsigned long to) gmap_discard() argument 777 gmap_call_notifier(struct gmap *gmap, unsigned long start, unsigned long end) gmap_call_notifier() argument 804 gmap_table_walk(struct gmap *gmap, unsigned long gaddr, int level) gmap_table_walk() argument 866 gmap_pte_op_walk(struct gmap *gmap, unsigned long gaddr, spinlock_t **ptl) gmap_pte_op_walk() argument 890 gmap_pte_op_fixup(struct gmap *gmap, unsigned long gaddr, unsigned long vmaddr, int prot) gmap_pte_op_fixup() argument 926 gmap_pmd_op_walk(struct gmap *gmap, unsigned long gaddr) gmap_pmd_op_walk() argument 956 gmap_pmd_op_end(struct gmap *gmap, pmd_t *pmdp) gmap_pmd_op_end() argument 976 gmap_protect_pmd(struct gmap *gmap, unsigned long gaddr, pmd_t *pmdp, int prot, unsigned long bits) gmap_protect_pmd() argument 1021 gmap_protect_pte(struct gmap *gmap, unsigned long gaddr, pmd_t *pmdp, int prot, unsigned long bits) gmap_protect_pte() argument 1057 gmap_protect_range(struct gmap *gmap, unsigned long gaddr, unsigned long len, int prot, unsigned long bits) gmap_protect_range() argument 1117 gmap_mprotect_notify(struct gmap *gmap, unsigned long gaddr, unsigned long len, int prot) gmap_mprotect_notify() argument 1146 gmap_read_table(struct gmap *gmap, unsigned long gaddr, unsigned long *val) gmap_read_table() argument 2270 struct gmap *gmap, *sg, *next; ptep_notify() local 2299 pmdp_notify_gmap(struct gmap *gmap, pmd_t *pmdp, unsigned long gaddr) pmdp_notify_gmap() argument 2316 gmap_pmdp_xchg(struct gmap *gmap, pmd_t *pmdp, pmd_t new, unsigned long gaddr) gmap_pmdp_xchg() argument 2336 struct gmap *gmap; gmap_pmdp_clear() local 2389 struct gmap *gmap; gmap_pmdp_idte_local() local 2424 struct gmap *gmap; gmap_pmdp_idte_global() local 2462 gmap_test_and_clear_dirty_pmd(struct gmap *gmap, pmd_t *pmdp, unsigned long gaddr) gmap_test_and_clear_dirty_pmd() argument 2489 gmap_sync_dirty_log_pmd(struct gmap *gmap, unsigned long bitmap[4], unsigned long gaddr, unsigned long vmaddr) gmap_sync_dirty_log_pmd() argument 2820 s390_unlist_old_asce(struct gmap *gmap) s390_unlist_old_asce() argument 2859 s390_replace_asce(struct gmap *gmap) s390_replace_asce() argument [all...] |
H A D | fault.c | 38 #include <asm/gmap.h> 203 asce = ((struct gmap *) S390_lowcore.gmap)->asce; in dump_fault_info() 204 pr_cont("gmap "); in dump_fault_info() 359 struct gmap *gmap; in do_exception() local 435 gmap = NULL; in do_exception() 437 gmap = (struct gmap *) S390_lowcore.gmap; in do_exception() 591 struct gmap *gmap; do_secure_storage_access() local 670 struct gmap *gmap = (struct gmap *)S390_lowcore.gmap; do_non_secure_storage_access() local 686 struct gmap *gmap = (struct gmap *)S390_lowcore.gmap; do_secure_storage_violation() local [all...] |
H A D | Makefile | 12 obj-$(CONFIG_PGSTE) += gmap.o
|
/kernel/linux/linux-6.6/arch/s390/kernel/ |
H A D | uv.c | 274 int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb) in gmap_make_secure() argument 286 mmap_read_lock(gmap->mm); in gmap_make_secure() 288 uaddr = __gmap_translate(gmap, gaddr); in gmap_make_secure() 291 vma = vma_lookup(gmap->mm, uaddr); in gmap_make_secure() 305 ptep = get_locked_pte(gmap->mm, uaddr, &ptelock); in gmap_make_secure() 312 if (should_export_before_import(uvcb, gmap->mm)) in gmap_make_secure() 320 mmap_read_unlock(gmap->mm); in gmap_make_secure() 352 if (gmap_fault(gmap, gaddr, FAULT_FLAG_WRITE)) in gmap_make_secure() 360 int gmap_convert_to_secure(struct gmap *gma argument 382 gmap_destroy_page(struct gmap *gmap, unsigned long gaddr) gmap_destroy_page() argument [all...] |
H A D | asm-offsets.c | 17 #include <asm/gmap.h> 141 OFFSET(__LC_GMAP, lowcore, gmap); in main() 163 /* gmap/sie offsets */ in main() 164 OFFSET(__GMAP_ASCE, gmap, asce); in main()
|
/kernel/linux/linux-5.10/arch/s390/kernel/ |
H A D | uv.c | 219 int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb) in gmap_make_secure() argument 231 mmap_read_lock(gmap->mm); in gmap_make_secure() 233 uaddr = __gmap_translate(gmap, gaddr); in gmap_make_secure() 236 vma = find_vma(gmap->mm, uaddr); in gmap_make_secure() 255 ptep = get_locked_pte(gmap->mm, uaddr, &ptelock); in gmap_make_secure() 260 mmap_read_unlock(gmap->mm); in gmap_make_secure() 288 if (gmap_fault(gmap, gaddr, FAULT_FLAG_WRITE)) in gmap_make_secure() 296 int gmap_convert_to_secure(struct gmap *gmap, unsigne argument [all...] |
H A D | asm-offsets.c | 17 #include <asm/gmap.h> 149 OFFSET(__LC_GMAP, lowcore, gmap); in main() 173 /* gmap/sie offsets */ in main() 174 OFFSET(__GMAP_ASCE, gmap, asce); in main()
|
/kernel/linux/linux-5.10/arch/s390/kvm/ |
H A D | vsie.c | 16 #include <asm/gmap.h> 37 /* the shadow gmap in use by the vsie_page */ 38 struct gmap *gmap; /* 0x0220 */ member 84 /* test if the prefix is mapped into the gmap shadow */ 560 void kvm_s390_vsie_gmap_notifier(struct gmap *gmap, unsigned long start, in kvm_s390_vsie_gmap_notifier() argument 563 struct kvm *kvm = gmap->private; in kvm_s390_vsie_gmap_notifier() 569 if (!gmap_is_shadow(gmap)) in kvm_s390_vsie_gmap_notifier() 584 if (READ_ONCE(cur->gmap) ! in kvm_s390_vsie_gmap_notifier() 1183 struct gmap *gmap; acquire_gmap_shadow() local [all...] |
H A D | diag.c | 13 #include <asm/gmap.h> 40 gmap_discard(vcpu->arch.gmap, start, end); in diag_release_pages() 48 gmap_discard(vcpu->arch.gmap, start, prefix); in diag_release_pages() 50 gmap_discard(vcpu->arch.gmap, 0, PAGE_SIZE); in diag_release_pages() 52 gmap_discard(vcpu->arch.gmap, PAGE_SIZE, 2 * PAGE_SIZE); in diag_release_pages() 53 gmap_discard(vcpu->arch.gmap, prefix + 2 * PAGE_SIZE, end); in diag_release_pages()
|
H A D | pv.c | 12 #include <asm/gmap.h> 162 WRITE_ONCE(kvm->arch.gmap->guest_handle, 0); in kvm_s390_pv_deinit_vm() 171 s390_replace_asce(kvm->arch.gmap); in kvm_s390_pv_deinit_vm() 191 uvcb.guest_asce = kvm->arch.gmap->asce; in kvm_s390_pv_init_vm() 212 kvm->arch.gmap->guest_handle = uvcb.guest_handle; in kvm_s390_pv_init_vm() 248 int ret = gmap_make_secure(kvm->arch.gmap, addr, &uvcb); in unpack_one()
|
H A D | kvm-s390.c | 39 #include <asm/gmap.h> 243 static void kvm_gmap_notifier(struct gmap *gmap, unsigned long start, 597 struct gmap *gmap = kvm->arch.gmap; in kvm_arch_sync_dirty_log() local 610 gmap_sync_dirty_log_pmd(gmap, bitmap, gaddr, vmaddr); in kvm_arch_sync_dirty_log() 854 s390_reset_cmma(kvm->arch.gmap->mm); in kvm_s390_set_mem_control() 883 struct gmap *new = gmap_create(current->mm, new_limit); in kvm_s390_set_mem_control() 888 gmap_remove(kvm->arch.gmap); in kvm_s390_set_mem_control() 3390 kvm_gmap_notifier(struct gmap *gmap, unsigned long start, unsigned long end) kvm_gmap_notifier() argument [all...] |
H A D | kvm-s390.h | 88 if (kvm->arch.gmap) in kvm_is_ucontrol() 319 void kvm_s390_vsie_gmap_notifier(struct gmap *gmap, unsigned long start,
|
/kernel/linux/linux-6.6/arch/s390/kvm/ |
H A D | vsie.c | 16 #include <asm/gmap.h> 38 /* the shadow gmap in use by the vsie_page */ 39 struct gmap *gmap; /* 0x0220 */ member 85 /* test if the prefix is mapped into the gmap shadow */ 579 void kvm_s390_vsie_gmap_notifier(struct gmap *gmap, unsigned long start, in kvm_s390_vsie_gmap_notifier() argument 582 struct kvm *kvm = gmap->private; in kvm_s390_vsie_gmap_notifier() 588 if (!gmap_is_shadow(gmap)) in kvm_s390_vsie_gmap_notifier() 599 if (READ_ONCE(cur->gmap) ! in kvm_s390_vsie_gmap_notifier() 1200 struct gmap *gmap; acquire_gmap_shadow() local [all...] |
H A D | diag.c | 13 #include <asm/gmap.h> 40 gmap_discard(vcpu->arch.gmap, start, end); in diag_release_pages() 48 gmap_discard(vcpu->arch.gmap, start, prefix); in diag_release_pages() 50 gmap_discard(vcpu->arch.gmap, 0, PAGE_SIZE); in diag_release_pages() 52 gmap_discard(vcpu->arch.gmap, PAGE_SIZE, 2 * PAGE_SIZE); in diag_release_pages() 53 gmap_discard(vcpu->arch.gmap, prefix + 2 * PAGE_SIZE, end); in diag_release_pages()
|
H A D | pv.c | 13 #include <asm/gmap.h> 40 * @old_gmap_table: the gmap table of the leftover protected VM 285 WRITE_ONCE(kvm->arch.gmap->guest_handle, 0); in kvm_s390_pv_deinit_vm_fast() 334 if ((kvm->arch.gmap->asce & _ASCE_TYPE_MASK) == _ASCE_TYPE_SEGMENT) in kvm_s390_pv_set_aside() 347 priv->old_gmap_table = (unsigned long)kvm->arch.gmap->table; in kvm_s390_pv_set_aside() 348 WRITE_ONCE(kvm->arch.gmap->guest_handle, 0); in kvm_s390_pv_set_aside() 349 if (s390_replace_asce(kvm->arch.gmap)) in kvm_s390_pv_set_aside() 392 WRITE_ONCE(kvm->arch.gmap->guest_handle, 0); in kvm_s390_pv_deinit_vm() 398 s390_replace_asce(kvm->arch.gmap); in kvm_s390_pv_deinit_vm() 574 uvcb.guest_asce = kvm->arch.gmap in kvm_s390_pv_init_vm() [all...] |
H A D | kvm-s390.c | 39 #include <asm/gmap.h> 267 static void kvm_gmap_notifier(struct gmap *gmap, unsigned long start, 675 struct gmap *gmap = kvm->arch.gmap; in kvm_arch_sync_dirty_log() local 688 gmap_sync_dirty_log_pmd(gmap, bitmap, gaddr, vmaddr); in kvm_arch_sync_dirty_log() 950 s390_reset_cmma(kvm->arch.gmap->mm); in kvm_s390_set_mem_control() 979 struct gmap *new = gmap_create(current->mm, new_limit); in kvm_s390_set_mem_control() 984 gmap_remove(kvm->arch.gmap); in kvm_s390_set_mem_control() 4055 kvm_gmap_notifier(struct gmap *gmap, unsigned long start, unsigned long end) kvm_gmap_notifier() argument [all...] |