s390x/cpu: Allow hotplug of CPUs
Implement cpu hotplug routine and add the machine hook. Signed-off-by: Matthew Rosato <mjrosato@linux.vnet.ibm.com> Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Message-Id: <1457112875-5209-8-git-send-email-mjrosato@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
		
							parent
							
								
									96b1a8bb55
								
							
						
					
					
						commit
						a006b67fe4
					
				| @ -186,6 +186,15 @@ static HotplugHandler *s390_get_hotplug_handler(MachineState *machine, | ||||
|     return NULL; | ||||
| } | ||||
| 
 | ||||
| static void s390_hot_add_cpu(const int64_t id, Error **errp) | ||||
| { | ||||
|     MachineState *machine = MACHINE(qdev_get_machine()); | ||||
|     Error *err = NULL; | ||||
| 
 | ||||
|     s390x_new_cpu(machine->cpu_model, id, &err); | ||||
|     error_propagate(errp, err); | ||||
| } | ||||
| 
 | ||||
| static void ccw_machine_class_init(ObjectClass *oc, void *data) | ||||
| { | ||||
|     MachineClass *mc = MACHINE_CLASS(oc); | ||||
| @ -194,6 +203,7 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data) | ||||
| 
 | ||||
|     mc->init = ccw_init; | ||||
|     mc->reset = s390_machine_reset; | ||||
|     mc->hot_add_cpu = s390_hot_add_cpu; | ||||
|     mc->block_default_type = IF_VIRTIO; | ||||
|     mc->no_cdrom = 1; | ||||
|     mc->no_floppy = 1; | ||||
|  | ||||
| @ -34,6 +34,7 @@ | ||||
| #ifndef CONFIG_USER_ONLY | ||||
| #include "sysemu/arch_init.h" | ||||
| #include "sysemu/sysemu.h" | ||||
| #include "hw/s390x/sclp.h" | ||||
| #endif | ||||
| 
 | ||||
| #define CR0_RESET       0xE0UL | ||||
| @ -240,6 +241,12 @@ static void s390_cpu_realizefn(DeviceState *dev, Error **errp) | ||||
| 
 | ||||
|     scc->parent_realize(dev, &err); | ||||
| 
 | ||||
| #if !defined(CONFIG_USER_ONLY) | ||||
|     if (dev->hotplugged) { | ||||
|         raise_irq_cpu_hotplug(); | ||||
|     } | ||||
| #endif | ||||
| 
 | ||||
| out: | ||||
|     error_propagate(errp, err); | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Matthew Rosato
						Matthew Rosato