hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/arch/s390/include/asm/gmap.h
....@@ -9,6 +9,9 @@
99 #ifndef _ASM_S390_GMAP_H
1010 #define _ASM_S390_GMAP_H
1111
12
+#include <linux/radix-tree.h>
13
+#include <linux/refcount.h>
14
+
1215 /* Generic bits for GMAP notification on DAT table entry changes. */
1316 #define GMAP_NOTIFY_SHADOW 0x2
1417 #define GMAP_NOTIFY_MPROT 0x1
....@@ -29,6 +32,7 @@
2932 * @table: pointer to the page directory
3033 * @asce: address space control element for gmap page table
3134 * @pfault_enabled: defines if pfaults are applicable for the guest
35
+ * @guest_handle: protected virtual machine handle for the ultravisor
3236 * @host_to_rmap: radix tree with gmap_rmap lists
3337 * @children: list of shadow gmap structures
3438 * @pt_list: list of all page tables used in the shadow guest address space
....@@ -46,12 +50,14 @@
4650 struct radix_tree_root guest_to_host;
4751 struct radix_tree_root host_to_guest;
4852 spinlock_t guest_table_lock;
49
- atomic_t ref_count;
53
+ refcount_t ref_count;
5054 unsigned long *table;
5155 unsigned long asce;
5256 unsigned long asce_end;
5357 void *private;
5458 bool pfault_enabled;
59
+ /* only set for protected virtual machines */
60
+ unsigned long guest_handle;
5561 /* Additional data for shadow guest address spaces */
5662 struct radix_tree_root host_to_rmap;
5763 struct list_head children;
....@@ -134,12 +140,14 @@
134140
135141 void gmap_register_pte_notifier(struct gmap_notifier *);
136142 void gmap_unregister_pte_notifier(struct gmap_notifier *);
137
-void gmap_pte_notify(struct mm_struct *, unsigned long addr, pte_t *,
138
- unsigned long bits);
139143
140144 int gmap_mprotect_notify(struct gmap *, unsigned long start,
141145 unsigned long len, int prot);
142146
143147 void gmap_sync_dirty_log_pmd(struct gmap *gmap, unsigned long dirty_bitmap[4],
144148 unsigned long gaddr, unsigned long vmaddr);
149
+int gmap_mark_unmergeable(void);
150
+void s390_reset_acc(struct mm_struct *mm);
151
+void s390_unlist_old_asce(struct gmap *gmap);
152
+int s390_replace_asce(struct gmap *gmap);
145153 #endif /* _ASM_S390_GMAP_H */