/openbmc/linux/arch/s390/include/asm/ |
H A D | gmap.h | 46 struct gmap { struct 66 struct gmap *parent; argument 96 void (*notifier_call)(struct gmap *gmap, unsigned long start, 100 static inline int gmap_is_shadow(struct gmap *gmap) in gmap_is_shadow() argument 102 return !!gmap->parent; in gmap_is_shadow() 105 struct gmap *gmap_create(struct mm_struct *mm, unsigned long limit); 106 void gmap_remove(struct gmap *gmap); 107 struct gmap *gmap_get(struct gmap *gmap); 108 void gmap_put(struct gmap *gmap); 110 void gmap_enable(struct gmap *gmap); [all …]
|
H A D | uv.h | 487 int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb); 488 int gmap_destroy_page(struct gmap *gmap, unsigned long gaddr); 492 int gmap_convert_to_secure(struct gmap *gmap, unsigned long gaddr);
|
H A D | kvm_host.h | 751 struct gmap *gmap; member 753 struct gmap *enabled_gmap; 967 struct gmap *gmap; member
|
H A D | lowcore.h | 163 __u64 gmap; /* 0x03d0 */ member
|
/openbmc/linux/arch/s390/mm/ |
H A D | gmap.c | 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->children); in gmap_alloc() 75 INIT_LIST_HEAD(&gmap->pt_list); in gmap_alloc() 76 INIT_RADIX_TREE(&gmap->guest_to_host, GFP_KERNEL_ACCOUNT); in gmap_alloc() 77 INIT_RADIX_TREE(&gmap->host_to_guest, GFP_ATOMIC | __GFP_ACCOUNT); in gmap_alloc() 78 INIT_RADIX_TREE(&gmap->host_to_rmap, GFP_ATOMIC | __GFP_ACCOUNT); in gmap_alloc() [all …]
|
H A D | fault.c | 203 asce = ((struct gmap *) S390_lowcore.gmap)->asce; in dump_fault_info() 361 struct gmap *gmap; in do_exception() local 437 gmap = NULL; in do_exception() 439 gmap = (struct gmap *) S390_lowcore.gmap; in do_exception() 443 address = __gmap_translate(gmap, address); in do_exception() 448 if (gmap->pfault_enabled) in do_exception() 489 if (gmap) { in do_exception() 501 if (IS_ENABLED(CONFIG_PGSTE) && gmap && in do_exception() 517 if (IS_ENABLED(CONFIG_PGSTE) && gmap) { in do_exception() 518 address = __gmap_link(gmap, current->thread.gmap_addr, in do_exception() [all …]
|
H A D | Makefile | 12 obj-$(CONFIG_PGSTE) += gmap.o
|
/openbmc/linux/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() 315 if (should_export_before_import(uvcb, gmap->mm)) in gmap_make_secure() 331 mmap_read_unlock(gmap->mm); in gmap_make_secure() 364 if (gmap_fault(gmap, gaddr, FAULT_FLAG_WRITE)) in gmap_make_secure() 372 int gmap_convert_to_secure(struct gmap *gmap, unsigned long gaddr) in gmap_convert_to_secure() argument 377 .guest_handle = gmap->guest_handle, in gmap_convert_to_secure() [all …]
|
H A D | asm-offsets.c | 141 OFFSET(__LC_GMAP, lowcore, gmap); in main() 164 OFFSET(__GMAP_ASCE, gmap, asce); in main()
|
H A D | entry.S | 214 lg %r14,__LC_GMAP # get gmap pointer
|
/openbmc/linux/arch/s390/kvm/ |
H A D | vsie.c | 39 struct gmap *gmap; /* 0x0220 */ member 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) != gmap) in kvm_s390_vsie_gmap_notifier() 636 rc = kvm_s390_shadow_fault(vcpu, vsie_page->gmap, prefix, NULL); in map_prefix() 638 rc = kvm_s390_shadow_fault(vcpu, vsie_page->gmap, in map_prefix() 929 rc = kvm_s390_shadow_fault(vcpu, vsie_page->gmap, in handle_fault() 951 kvm_s390_shadow_fault(vcpu, vsie_page->gmap, in handle_last_fault() 1038 rc_dest = kvm_s390_shadow_fault(vcpu, vsie_page->gmap, dest, &pei_dest); in vsie_handle_mvpg() [all …]
|
H A D | diag.c | 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 | 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->asce; in kvm_s390_pv_init_vm() 601 kvm->arch.gmap->guest_handle = uvcb.guest_handle; in kvm_s390_pv_init_vm() 640 int ret = gmap_make_secure(kvm->arch.gmap, addr, &uvcb); in unpack_one()
|
H A D | kvm-s390.c | 268 static void kvm_gmap_notifier(struct gmap *gmap, unsigned long start, 676 struct gmap *gmap = kvm->arch.gmap; in kvm_arch_sync_dirty_log() local 689 gmap_sync_dirty_log_pmd(gmap, bitmap, gaddr, vmaddr); in kvm_arch_sync_dirty_log() 951 s390_reset_cmma(kvm->arch.gmap->mm); in kvm_s390_set_mem_control() 980 struct gmap *new = gmap_create(current->mm, new_limit); in kvm_s390_set_mem_control() 985 gmap_remove(kvm->arch.gmap); in kvm_s390_set_mem_control() 987 kvm->arch.gmap = new; in kvm_s390_set_mem_control() 994 (void *) kvm->arch.gmap->asce); in kvm_s390_set_mem_control() 3398 kvm->arch.gmap = NULL; in kvm_arch_init_vm() 3406 kvm->arch.gmap = gmap_create(current->mm, kvm->arch.mem_limit - 1); in kvm_arch_init_vm() [all …]
|
H A D | intercept.c | 547 rc = gmap_make_secure(vcpu->arch.gmap, uvcb.gaddr, &uvcb); in handle_pv_uvc() 655 gmap_convert_to_secure(vcpu->arch.gmap, in kvm_handle_sie_intercept() 657 gmap_convert_to_secure(vcpu->arch.gmap, in kvm_handle_sie_intercept()
|
H A D | kvm-s390.h | 89 if (kvm->arch.gmap) in kvm_is_ucontrol() 368 void kvm_s390_vsie_gmap_notifier(struct gmap *gmap, unsigned long start,
|
H A D | priv.c | 1250 struct gmap *gmap; in handle_essa() local 1254 gmap = vcpu->arch.gmap; in handle_essa() 1310 mmap_read_lock(gmap->mm); in handle_essa() 1312 __gmap_zap(gmap, cbrlo[i]); in handle_essa() 1313 mmap_read_unlock(gmap->mm); in handle_essa()
|
H A D | gaccess.h | 457 int kvm_s390_shadow_fault(struct kvm_vcpu *vcpu, struct gmap *shadow,
|
H A D | gaccess.c | 1385 static int kvm_s390_shadow_tables(struct gmap *sg, unsigned long saddr, in kvm_s390_shadow_tables() 1390 struct gmap *parent; in kvm_s390_shadow_tables() 1582 int kvm_s390_shadow_fault(struct kvm_vcpu *vcpu, struct gmap *sg, in kvm_s390_shadow_fault()
|
H A D | interrupt.c | 2690 dev->kvm->arch.gmap->pfault_enabled = 1; in flic_set_attr() 2693 dev->kvm->arch.gmap->pfault_enabled = 0; in flic_set_attr() 2907 uaddr = gmap_translate(kvm->arch.gmap, ue->u.adapter.summary_addr); in kvm_set_routing_entry() 2911 uaddr = gmap_translate(kvm->arch.gmap, ue->u.adapter.ind_addr); in kvm_set_routing_entry()
|
/openbmc/linux/include/video/ |
H A D | gbe.h | 60 volatile uint32_t gmap[256]; /* gamma map */ member
|
/openbmc/linux/drivers/s390/crypto/ |
H A D | vfio_ap_ops.c | 363 static int ensure_nib_shared(unsigned long addr, struct gmap *gmap) in ensure_nib_shared() argument 380 gmap_convert_to_secure(gmap, addr); in ensure_nib_shared() 450 ensure_nib_shared(h_nib & PAGE_MASK, kvm->arch.gmap)) { in vfio_ap_irq_enable()
|
/openbmc/linux/drivers/net/dsa/ |
H A D | lantiq_gswip.c | 298 u8 gmap; member 576 tbl->gmap = (crtl & GSWIP_PCE_TBL_CTRL_GMAP_MASK) >> 7; in gswip_pce_table_entry_read() 627 crtl |= (tbl->gmap << 7) & GSWIP_PCE_TBL_CTRL_GMAP_MASK; in gswip_pce_table_entry_write()
|
/openbmc/linux/drivers/video/fbdev/ |
H A D | gbefb.c | 805 gbe->gmap[i] = (i << 24) | (i << 16) | (i << 8); in gbefb_set_par()
|
/openbmc/linux/ |
H A D | MAINTAINERS | 11606 F: arch/s390/include/asm/gmap.h 11612 F: arch/s390/mm/gmap.c
|