From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47313) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aHW4S-0005YZ-SO for qemu-devel@nongnu.org; Fri, 08 Jan 2016 07:23:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aHW4O-0006cd-RQ for qemu-devel@nongnu.org; Fri, 08 Jan 2016 07:23:08 -0500 Received: from e06smtp06.uk.ibm.com ([195.75.94.102]:49693) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aHW4O-0006cD-E1 for qemu-devel@nongnu.org; Fri, 08 Jan 2016 07:23:04 -0500 Received: from localhost by e06smtp06.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 8 Jan 2016 12:23:02 -0000 Received: from b06cxnps4074.portsmouth.uk.ibm.com (d06relay11.portsmouth.uk.ibm.com [9.149.109.196]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id DEF602190056 for ; Fri, 8 Jan 2016 12:22:49 +0000 (GMT) Received: from d06av08.portsmouth.uk.ibm.com (d06av08.portsmouth.uk.ibm.com [9.149.37.249]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u08CN0ZW4129154 for ; Fri, 8 Jan 2016 12:23:00 GMT Received: from d06av08.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av08.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u08CN0sK012135 for ; Fri, 8 Jan 2016 05:23:00 -0700 References: <1452173818-13661-1-git-send-email-cornelia.huck@de.ibm.com> <1452173818-13661-3-git-send-email-cornelia.huck@de.ibm.com> From: Christian Borntraeger Message-ID: <568FAA23.6030700@de.ibm.com> Date: Fri, 8 Jan 2016 13:22:59 +0100 MIME-Version: 1.0 In-Reply-To: <1452173818-13661-3-git-send-email-cornelia.huck@de.ibm.com> Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 2/9] s390x: remove s390-virtio machine List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Cornelia Huck , qemu-devel@nongnu.org Cc: jfrei@linux.vnet.ibm.com, Pierre Morel , agraf@suse.de On 01/07/2016 02:36 PM, Cornelia Huck wrote: > From: Pierre Morel > > Remove machine code for the s390-virtio machine, but keep functions > useful for the ccw machine. > > Signed-off-by: Pierre Morel > Acked-by: Cornelia Huck Acked-by: Christian Borntraeger > Signed-off-by: Cornelia Huck > --- > hw/s390x/s390-virtio.c | 162 ------------------------------------------------- > 1 file changed, 162 deletions(-) > > diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c > index ae55760..e4ecf0d 100644 > --- a/hw/s390x/s390-virtio.c > +++ b/hw/s390x/s390-virtio.c > @@ -61,7 +61,6 @@ > #define S390_TOD_CLOCK_VALUE_MISSING 0x00 > #define S390_TOD_CLOCK_VALUE_PRESENT 0x01 > > -static VirtIOS390Bus *s390_bus; > static S390CPU **ipi_states; > > S390CPU *s390_cpu_addr2state(uint16_t cpu_addr) > @@ -73,78 +72,6 @@ S390CPU *s390_cpu_addr2state(uint16_t cpu_addr) > return ipi_states[cpu_addr]; > } > > -static int s390_virtio_hcall_notify(const uint64_t *args) > -{ > - uint64_t mem = args[0]; > - int r = 0, i; > - > - if (mem > ram_size) { > - VirtIOS390Device *dev = s390_virtio_bus_find_vring(s390_bus, mem, &i); > - if (dev) { > - /* > - * Older kernels will use the virtqueue before setting DRIVER_OK. > - * In this case the feature bits are not yet up to date, meaning > - * that several funny things can happen, e.g. the guest thinks > - * EVENT_IDX is on and QEMU thinks it is off. Let's force a feature > - * and status sync. > - */ > - if (!(dev->vdev->status & VIRTIO_CONFIG_S_DRIVER_OK)) { > - s390_virtio_device_update_status(dev); > - } > - virtio_queue_notify(dev->vdev, i); > - } else { > - r = -EINVAL; > - } > - } else { > - /* Early printk */ > - } > - return r; > -} > - > -static int s390_virtio_hcall_reset(const uint64_t *args) > -{ > - uint64_t mem = args[0]; > - VirtIOS390Device *dev; > - > - dev = s390_virtio_bus_find_mem(s390_bus, mem); > - if (dev == NULL) { > - return -EINVAL; > - } > - virtio_reset(dev->vdev); > - address_space_stb(&address_space_memory, > - dev->dev_offs + VIRTIO_DEV_OFFS_STATUS, 0, > - MEMTXATTRS_UNSPECIFIED, NULL); > - s390_virtio_device_sync(dev); > - s390_virtio_reset_idx(dev); > - > - return 0; > -} > - > -static int s390_virtio_hcall_set_status(const uint64_t *args) > -{ > - uint64_t mem = args[0]; > - int r = 0; > - VirtIOS390Device *dev; > - > - dev = s390_virtio_bus_find_mem(s390_bus, mem); > - if (dev) { > - s390_virtio_device_update_status(dev); > - } else { > - r = -EINVAL; > - } > - return r; > -} > - > -static void s390_virtio_register_hcalls(void) > -{ > - s390_register_virtio_hypercall(KVM_S390_VIRTIO_NOTIFY, > - s390_virtio_hcall_notify); > - s390_register_virtio_hypercall(KVM_S390_VIRTIO_RESET, > - s390_virtio_hcall_reset); > - s390_register_virtio_hypercall(KVM_S390_VIRTIO_SET_STATUS, > - s390_virtio_hcall_set_status); > -} > - > void s390_init_ipl_dev(const char *kernel_filename, > const char *kernel_cmdline, > const char *initrd_filename, > @@ -261,58 +188,6 @@ int gtod_load(QEMUFile *f, void *opaque, int version_id) > return 0; > } > > -/* PC hardware initialisation */ > -static void s390_init(MachineState *machine) > -{ > - ram_addr_t my_ram_size; > - void *virtio_region; > - hwaddr virtio_region_len; > - hwaddr virtio_region_start; > - > - if (!qtest_enabled()) { > - error_printf("WARNING\n" > - "The s390-virtio machine (non-ccw) is deprecated.\n" > - "It will be removed in 2.6. Please use s390-ccw-virtio\n"); > - } > - > - if (machine->ram_slots) { > - error_report("Memory hotplug not supported by the selected machine."); > - exit(EXIT_FAILURE); > - } > - s390_sclp_init(); > - my_ram_size = machine->ram_size; > - > - /* get a BUS */ > - s390_bus = s390_virtio_bus_init(&my_ram_size); > - s390_init_ipl_dev(machine->kernel_filename, machine->kernel_cmdline, > - machine->initrd_filename, ZIPL_FILENAME, false); > - s390_flic_init(); > - > - /* register hypercalls */ > - s390_virtio_register_hcalls(); > - > - /* allocate RAM */ > - s390_memory_init(my_ram_size); > - > - /* clear virtio region */ > - virtio_region_len = my_ram_size - ram_size; > - virtio_region_start = ram_size; > - virtio_region = cpu_physical_memory_map(virtio_region_start, > - &virtio_region_len, true); > - memset(virtio_region, 0, virtio_region_len); > - cpu_physical_memory_unmap(virtio_region, virtio_region_len, 1, > - virtio_region_len); > - > - /* init CPUs */ > - s390_init_cpus(machine->cpu_model); > - > - /* Create VirtIO network adapters */ > - s390_create_virtio_net((BusState *)s390_bus, "virtio-net-s390"); > - > - /* Register savevm handler for guest TOD clock */ > - register_savevm(NULL, "todclock", 0, 1, gtod_save, gtod_load, NULL); > -} > - > void s390_nmi(NMIState *n, int cpu_index, Error **errp) > { > CPUState *cs = qemu_get_cpu(cpu_index); > @@ -334,40 +209,3 @@ void s390_machine_reset(void) > s390_ipl_prepare_cpu(ipl_cpu); > s390_cpu_set_state(CPU_STATE_OPERATING, ipl_cpu); > } > - > -static void s390_machine_class_init(ObjectClass *oc, void *data) > -{ > - MachineClass *mc = MACHINE_CLASS(oc); > - NMIClass *nc = NMI_CLASS(oc); > - > - mc->alias = "s390"; > - mc->desc = "VirtIO based S390 machine (deprecated)"; > - mc->init = s390_init; > - mc->reset = s390_machine_reset; > - mc->block_default_type = IF_VIRTIO; > - mc->max_cpus = 255; > - mc->no_serial = 1; > - mc->no_parallel = 1; > - mc->use_virtcon = 1; > - mc->no_floppy = 1; > - mc->no_cdrom = 1; > - mc->no_sdcard = 1; > - nc->nmi_monitor_handler = s390_nmi; > -} > - > -static const TypeInfo s390_machine_info = { > - .name = TYPE_S390_MACHINE, > - .parent = TYPE_MACHINE, > - .class_init = s390_machine_class_init, > - .interfaces = (InterfaceInfo[]) { > - { TYPE_NMI }, > - { } > - }, > -}; > - > -static void s390_machine_register_types(void) > -{ > - type_register_static(&s390_machine_info); > -} > - > -type_init(s390_machine_register_types) >