kvm-s390.c (841b91c584b6d1e2a2cb508bd2d0236cd37e1750) | kvm-s390.c (84223598778ba08041f4297fda485df83414d57e) |
---|---|
1/* 2 * hosting zSeries kernel virtual machines 3 * 4 * Copyright IBM Corp. 2008, 2009 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License (version 2 only) 8 * as published by the Free Software Foundation. --- 182 unchanged lines hidden (view full) --- 191static int kvm_vm_ioctl_enable_cap(struct kvm *kvm, struct kvm_enable_cap *cap) 192{ 193 int r; 194 195 if (cap->flags) 196 return -EINVAL; 197 198 switch (cap->cap) { | 1/* 2 * hosting zSeries kernel virtual machines 3 * 4 * Copyright IBM Corp. 2008, 2009 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License (version 2 only) 8 * as published by the Free Software Foundation. --- 182 unchanged lines hidden (view full) --- 191static int kvm_vm_ioctl_enable_cap(struct kvm *kvm, struct kvm_enable_cap *cap) 192{ 193 int r; 194 195 if (cap->flags) 196 return -EINVAL; 197 198 switch (cap->cap) { |
199 case KVM_CAP_S390_IRQCHIP: 200 kvm->arch.use_irqchip = 1; 201 r = 0; 202 break; |
|
199 default: 200 r = -EINVAL; 201 break; 202 } 203 return r; 204} 205 206long kvm_arch_vm_ioctl(struct file *filp, --- 16 unchanged lines hidden (view full) --- 223 case KVM_ENABLE_CAP: { 224 struct kvm_enable_cap cap; 225 r = -EFAULT; 226 if (copy_from_user(&cap, argp, sizeof(cap))) 227 break; 228 r = kvm_vm_ioctl_enable_cap(kvm, &cap); 229 break; 230 } | 203 default: 204 r = -EINVAL; 205 break; 206 } 207 return r; 208} 209 210long kvm_arch_vm_ioctl(struct file *filp, --- 16 unchanged lines hidden (view full) --- 227 case KVM_ENABLE_CAP: { 228 struct kvm_enable_cap cap; 229 r = -EFAULT; 230 if (copy_from_user(&cap, argp, sizeof(cap))) 231 break; 232 r = kvm_vm_ioctl_enable_cap(kvm, &cap); 233 break; 234 } |
235 case KVM_CREATE_IRQCHIP: { 236 struct kvm_irq_routing_entry routing; 237 238 r = -EINVAL; 239 if (kvm->arch.use_irqchip) { 240 /* Set up dummy routing. */ 241 memset(&routing, 0, sizeof(routing)); 242 kvm_set_irq_routing(kvm, &routing, 0, 0); 243 r = 0; 244 } 245 break; 246 } |
|
231 default: 232 r = -ENOTTY; 233 } 234 235 return r; 236} 237 238int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) --- 40 unchanged lines hidden (view full) --- 279 kvm->arch.gmap = gmap_alloc(current->mm); 280 if (!kvm->arch.gmap) 281 goto out_nogmap; 282 kvm->arch.gmap->private = kvm; 283 kvm->arch.gmap->pfault_enabled = 0; 284 } 285 286 kvm->arch.css_support = 0; | 247 default: 248 r = -ENOTTY; 249 } 250 251 return r; 252} 253 254int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) --- 40 unchanged lines hidden (view full) --- 295 kvm->arch.gmap = gmap_alloc(current->mm); 296 if (!kvm->arch.gmap) 297 goto out_nogmap; 298 kvm->arch.gmap->private = kvm; 299 kvm->arch.gmap->pfault_enabled = 0; 300 } 301 302 kvm->arch.css_support = 0; |
303 kvm->arch.use_irqchip = 0; |
|
287 288 return 0; 289out_nogmap: 290 debug_unregister(kvm->arch.dbf); 291out_nodbf: 292 free_page((unsigned long)(kvm->arch.sca)); 293out_err: 294 return rc; --- 1084 unchanged lines hidden --- | 304 305 return 0; 306out_nogmap: 307 debug_unregister(kvm->arch.dbf); 308out_nodbf: 309 free_page((unsigned long)(kvm->arch.sca)); 310out_err: 311 return rc; --- 1084 unchanged lines hidden --- |