Lines Matching defs:xive

6 #define pr_fmt(fmt) "xive-kvm: " fmt
20 #include <asm/xive.h>
21 #include <asm/xive-regs.h>
95 if (kvmppc_xive_has_single_escalation(xc->xive))
126 struct kvmppc_xive *xive = dev->private;
137 if (xive->kvm != vcpu->kvm)
142 mutex_lock(&xive->lock);
144 rc = kvmppc_xive_compute_vp_id(xive, server_num, &vp_id);
155 xc->xive = xive;
179 rc = xive_native_enable_vp(xc->vp_id, kvmppc_xive_has_single_escalation(xive));
191 mutex_unlock(&xive->lock);
203 struct kvmppc_xive *xive = kvm->arch.xive;
215 mutex_lock(&xive->mapping_lock);
216 if (xive->mapping)
217 unmap_mapping_range(xive->mapping,
220 mutex_unlock(&xive->mapping_lock);
232 struct kvmppc_xive *xive = dev->private;
249 sb = kvmppc_xive_find_source(xive, irq, &src);
312 struct kvmppc_xive *xive = dev->private;
335 xive->mapping = vma->vm_file->f_mapping;
339 static int kvmppc_xive_native_set_source(struct kvmppc_xive *xive, long irq,
354 sb = kvmppc_xive_find_source(xive, irq, &idx);
357 sb = kvmppc_xive_create_src_block(xive, irq);
405 xive->src_count++;
416 static int kvmppc_xive_native_update_source_config(struct kvmppc_xive *xive,
422 struct kvm *kvm = xive->kvm;
448 kvmppc_xive_vp(xive, server),
463 static int kvmppc_xive_native_set_source_config(struct kvmppc_xive *xive,
476 sb = kvmppc_xive_find_source(xive, irq, &src);
505 return kvmppc_xive_native_update_source_config(xive, sb, state, server,
509 static int kvmppc_xive_native_sync_source(struct kvmppc_xive *xive,
521 sb = kvmppc_xive_find_source(xive, irq, &src);
545 * advertised in the DT property "ibm,xive-eq-sizes"
559 static int kvmppc_xive_native_set_queue_config(struct kvmppc_xive *xive,
562 struct kvm *kvm = xive->kvm;
700 kvmppc_xive_has_single_escalation(xive));
707 static int kvmppc_xive_native_get_queue_config(struct kvmppc_xive *xive,
710 struct kvm *kvm = xive->kvm;
805 static int kvmppc_xive_reset(struct kvmppc_xive *xive)
807 struct kvm *kvm = xive->kvm;
813 mutex_lock(&xive->lock);
827 if (prio == 7 && kvmppc_xive_has_single_escalation(xive))
841 for (i = 0; i <= xive->max_sbid; i++) {
842 struct kvmppc_xive_src_block *sb = xive->src_blocks[i];
851 mutex_unlock(&xive->lock);
914 static int kvmppc_xive_native_eq_sync(struct kvmppc_xive *xive)
916 struct kvm *kvm = xive->kvm;
922 mutex_lock(&xive->lock);
923 for (i = 0; i <= xive->max_sbid; i++) {
924 struct kvmppc_xive_src_block *sb = xive->src_blocks[i];
936 mutex_unlock(&xive->lock);
944 struct kvmppc_xive *xive = dev->private;
950 return kvmppc_xive_reset(xive);
952 return kvmppc_xive_native_eq_sync(xive);
954 return kvmppc_xive_set_nr_servers(xive, attr->addr);
958 return kvmppc_xive_native_set_source(xive, attr->attr,
961 return kvmppc_xive_native_set_source_config(xive, attr->attr,
964 return kvmppc_xive_native_set_queue_config(xive, attr->attr,
967 return kvmppc_xive_native_sync_source(xive, attr->attr,
976 struct kvmppc_xive *xive = dev->private;
980 return kvmppc_xive_native_get_queue_config(xive, attr->attr,
1016 struct kvmppc_xive *xive = dev->private;
1017 struct kvm *kvm = xive->kvm;
1021 pr_devel("Releasing xive native device\n");
1027 mutex_lock(&xive->mapping_lock);
1028 xive->mapping = NULL;
1029 mutex_unlock(&xive->mapping_lock);
1041 debugfs_remove(xive->dentry);
1063 * against xive code getting called during vcpu execution or
1066 kvm->arch.xive = NULL;
1068 for (i = 0; i <= xive->max_sbid; i++) {
1069 if (xive->src_blocks[i])
1070 kvmppc_xive_free_sources(xive->src_blocks[i]);
1071 kfree(xive->src_blocks[i]);
1072 xive->src_blocks[i] = NULL;
1075 if (xive->vp_base != XIVE_INVALID_VP)
1076 xive_native_free_vp_block(xive->vp_base);
1093 struct kvmppc_xive *xive;
1096 pr_devel("Creating xive native device\n");
1098 if (kvm->arch.xive)
1101 xive = kvmppc_xive_get_device(kvm, type);
1102 if (!xive)
1105 dev->private = xive;
1106 xive->dev = dev;
1107 xive->kvm = kvm;
1108 mutex_init(&xive->mapping_lock);
1109 mutex_init(&xive->lock);
1112 xive->vp_base = XIVE_INVALID_VP;
1116 xive->nr_servers = KVM_MAX_VCPUS;
1119 xive->flags |= KVMPPC_XIVE_FLAG_SINGLE_ESCALATION;
1122 xive->flags |= KVMPPC_XIVE_FLAG_SAVE_RESTORE;
1124 xive->ops = &kvmppc_xive_native_ops;
1126 kvm->arch.xive = xive;
1177 struct kvmppc_xive *xive = vcpu->kvm->arch.xive;
1185 if (!xc || !xive)
1213 struct kvmppc_xive *xive = m->private;
1214 struct kvm *kvm = xive->kvm;
1244 for (i = 0; i <= xive->max_sbid; i++) {
1245 struct kvmppc_xive_src_block *sb = xive->src_blocks[i];
1259 static void xive_native_debugfs_init(struct kvmppc_xive *xive)
1261 xive->dentry = debugfs_create_file("xive", 0444, xive->kvm->debugfs_dentry,
1262 xive, &xive_native_debug_fops);
1269 struct kvmppc_xive *xive = dev->private;
1272 xive_native_debugfs_init(xive);
1276 .name = "kvm-xive-native",