- 12 6月, 2012 1 次提交
-
-
由 Jason Baron 提交于
While looking into hot-plugging bridges, I can create a qemu segfault via: $ device_add pci-bridge Bridge chassis not specified. Each bridge is required to be assigned a unique chassis id > 0. ** ERROR:qom/object.c:389:object_delete: assertion failed: (obj->ref == 0) I'm proposing to fix this by adding a call to 'object_unparent()', before the call to qdev_free(). I see there is already a precedent for this usage pattern as seen in qdev_simple_unplug_cb(): /* can be used as ->unplug() callback for the simple cases */ int qdev_simple_unplug_cb(DeviceState *dev) { /* just zap it */ object_unparent(OBJECT(dev)); qdev_free(dev); return 0; } Signed-off-by: NJason Baron <jbaron@redhat.com> Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
-
- 07 6月, 2012 10 次提交
-
-
由 Jan Kiszka 提交于
Replace some open-coded msi/msix_present checks. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
-
由 Jan Kiszka 提交于
Also this functions is better invoked by the core than by each and every device. This allows to drop the config_write callbacks from ich and intel-hda. CC: Alexander Graf <agraf@suse.de> CC: Gerd Hoffmann <kraxel@redhat.com> CC: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
-
由 Jan Kiszka 提交于
Terminate msi/msix_write_config early if support is not enabled. This allows to remove checks at the caller site if MSI is optional. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
-
由 Jan Kiszka 提交于
There is no point in pushing this burden to the devices, they tend to forget to call them (like intel-hda, ahci, xhci did). Instead, reset functions are now called from pci_device_reset. They do nothing if MSI/MSI-X is not in use. CC: Alexander Graf <agraf@suse.de> CC: Gerd Hoffmann <kraxel@redhat.com> CC: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
-
由 Jan Kiszka 提交于
Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
-
由 Jan Kiszka 提交于
Properly register reset functions via the device class. CC: Alexander Graf <agraf@suse.de> Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
-
由 Jan Kiszka 提交于
Call msi_reset on device reset as still required by the core. CC: Gerd Hoffmann <kraxel@redhat.com> CC: qemu-stable@nongnu.org Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
-
由 Jan Kiszka 提交于
Call msi_reset on device reset as still required by the core. CC: Alexander Graf <agraf@suse.de> CC: qemu-stable@nongnu.org Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
-
Some drivers (Linux' 8139too among them) rely on the NIC injecting an interrupt in the event of a receive buffer overflow and, accordingly, set the RxOverflow bit in the interrupt mask. Unfortunately rtl8139's can_receive method ignores the RxOverflow flag, which may lead to a situation where rtl8139 stops receiving packets (can_receive returns 0) when the receive buffer becomes full. If the driver eventually read from the receive buffer or reset the card the emulator could recover from this situation. However some implementations only do this upon receiving an interrupt with either RxOK or RxOverflow set in the ISR; interrupt that will never come because QEMU's flow control mechanisms would prevent rtl8139 from receiving any packet. Letting packets go through when the overflow interrupt is enabled makes the QEMU emulator compliant to the spec and solves the problem. This patch should fix a relatively common (in our experience) network stall observed when running enterprise distros with rtl8139 as the NIC; in some cases the 8139too device driver gets loaded and when under heavy load the network eventually stops working. Reported-by: NHayato Kakuta <kakuta.hayato@oss.ntt.co.jp> Tested-by: NHayato Kakuta <kakuta.hayato@oss.ntt.co.jp> Acked-by: NIgor Kovalenko <igor.v.kovalenko@gmail.com> Signed-off-by: NFernando Luis Vazquez Cao <fernando@oss.ntt.co.jp> Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
-
由 Michael S. Tsirkin 提交于
Recent core change removed unparent so we need to do this in all callers now. Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
-
- 04 6月, 2012 1 次提交
-
-
由 Jason Wang 提交于
This reverts commit ff71f2e8. This is because the linux 8139cp driver would leave the card in "Config Register Write Enable" mode after the eeprom were read or write ( which is unexpected in the spec ). Also a physical 8139 card can still DMA into host memory in modes other than Normal mode, so we need revert this commit to align with the behavior of physical card. The issue of 8139cp driver should be fixed in linux seperately. Signed-off-by: NJason Wang <jasowang@redhat.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
- 30 5月, 2012 6 次提交
-
-
由 Daniel Verkamp 提交于
As in the SATA and AHCI specifications, a FIS is 5 Dwords of 4 bytes each, which comes to 20 bytes (decimal), not 0x20. Signed-off-by: NDaniel Verkamp <daniel@drv.nu> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Christian Borntraeger 提交于
Currently the sector value for the geometry is masked, even if the user usesa command line parameter that explicitely gives a number. This breaks dasd devices on s390. A dasd device can have a physical block size of 4096 (== same for logical block size) and a typcial geometry of 15 heads and 12 sectors per cyl. The ibm partition detection relies on a correct geometry reported by the device. Unfortunately the current code changes 12 to 8. This would be necessary if the total size is not a multiple of logical sector size, but for dasd this is not the case. This patch checks the device size and only applies sector mask if necessary. Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com> CC: Christoph Hellwig <hch@lst.de> Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Stefan Weil 提交于
The local variables ret, i are only used if __linux__ is defined. Signed-off-by: NStefan Weil <sw@weilnetz.de> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Amos_沧海桑田 提交于
Start VM with 8 multiple-function block devs, hot-removing those block devs by 'device_del ...' would cause qemu abort. | (qemu) device_del virti0-0-0 | (qemu) ** |ERROR:qom/object.c:389:object_delete: assertion failed: (obj->ref == 0) It's a regression introduced by commit 57c9fafe The whole PCI slot should be removed once. Currently only one func is cleaned in pci_unplug_device(), if you try to remove a single func by monitor cmd. free_qdev() are called for all functions in slot, but unparent_delete() is only called for one function. Signed-off-by: XXXX Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Scott Moser 提交于
The previous multiboot load code did not treat the case where load_end_addr was 0 specially. The multiboot specification says the following: * load_end_addr Contains the physical address of the end of the data segment. (load_end_addr - load_addr) specifies how much data to load. This implies that the text and data segments must be consecutive in the OS image; this is true for existing a.out executable formats. If this field is zero, the boot loader assumes that the text and data segments occupy the whole OS image file. Signed-off-by: NScott Moser <smoser@ubuntu.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Avi Kivity 提交于
With pc-0.12, we map the video RAM both through the PCI BAR (the guest does this) and through a fixed mapping at 0xe0000000. The memory API doesn't allow this double map, and aborts. Fix by using an alias. Reported-by: NMichael Tokarev <mjt@tls.msk.ru> Signed-off-by: NAvi Kivity <avi@redhat.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
- 26 5月, 2012 2 次提交
-
-
由 Pavel Hrdina 提交于
We have to set up 'media_changed' after guest start so floppy driver could detect that there is no media in drive. For this purpose we call 'fdctrl_change_cb' instead of 'fd_revalidate' in 'fdctrl_connect_drives'. 'fd_revalidate' is called inside 'fdctrl_change_cb'. We still have to set default drive geometry in 'fd_revalidate' even if there is no media in drive. When you try to open (windows) or mount (linux) floppy the driver tries to seek on track 1. Linux guest stuck in loop then kernel crashes and windows guest prints error message. Signed-off-by: NPavel Hrdina <phrdina@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Pavel Hrdina 提交于
If you start guest with floppy drive but without media inserted, guest still should see floppy drive pressent. Signed-off-by: NPavel Hrdina <phrdina@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
- 25 5月, 2012 1 次提交
-
-
由 Jim Meyering 提交于
Signed-off-by: NJim Meyering <meyering@redhat.com>
-
- 24 5月, 2012 1 次提交
-
-
由 Stefan Weil 提交于
When DEBUG_ES1370 is defined, the compiler shows these warnings: hw/es1370.c: In function ?es1370_update_voices?: hw/es1370.c:414: warning: format ?%d? expects type ?int?, but argument 3 has type ?size_t? hw/es1370.c: In function ?es1370_writel?: hw/es1370.c:582: warning: format ?%d? expects type ?int?, but argument 3 has type ?long int? hw/es1370.c:592: warning: format ?%d? expects type ?int?, but argument 3 has type ?long int? hw/es1370.c:609: warning: format ?%d? expects type ?int?, but argument 3 has type ?long int? hw/es1370.c: In function ?es1370_readl?: hw/es1370.c:751: warning: suggest braces around empty body in an ?if? statement Fix the format strings and add the missing braces. Signed-off-by: NStefan Weil <sw@weilnetz.de> Signed-off-by: Nmalc <av1474@comtv.ru>
-
- 22 5月, 2012 15 次提交
-
-
由 Anthony PERARD 提交于
In the context of PV-on-HVM under Xen, the emulated nics are supposed to be unplug before the guest drivers are initialized, when the guest write to a specific IO port. Without this patch, the guest end up with two nics with the same MAC, the emulated nic and the PV nic. Acked-by: NPaolo Bonzini <pbonzini@redhat.com> Signed-off-by: NAnthony PERARD <anthony.perard@citrix.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 dunrong huang 提交于
The str allocated in visit_type_str was not freed. The visit_type_str function is an input visitor(<QMP/String/etc>-to-native) here, it will allocate memory for caller, so the caller is responsible for freeing the memory. Reviewed-by: NStefan Weil <sw@weilnetz.de> Signed-off-by: Ndunrong huang <riegamaths@gmail.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Orit Wassermann 提交于
Otherwise we crash on error. Signed-off-by: NUlrich Obergfell <uobergfe@redhat.com> Signed-off-by: NOrit Wassermann <owasserm@redhat.com> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Paolo Bonzini 提交于
VIRTIO_BLK_F_SCSI is supposed to mean whether the host can *parse* SCSI requests, not *execute* them. You could run QEMU with scsi=on and a file-backed disk, and QEMU would fail all SCSI requests even though it advertises VIRTIO_BLK_F_SCSI. Because we need to do this to fix a migration compatibility problem related to how QEMU is invoked by management, we must do this unconditionally even on older machine types. This more or less assumes that no one ever invoked QEMU with scsi=off. Here is how testing goes: - old QEMU, scsi=on -> new QEMU, scsi=on - new QEMU, scsi=on -> old QEMU, scsi=on - old QEMU, scsi=off -> new QEMU, scsi=on - new QEMU, scsi=off -> old QEMU, scsi=on ok (new QEMU has VIRTIO_BLK_F_SCSI, adding host features is fine) - old QEMU, scsi=off -> new QEMU, scsi=off ok (new QEMU has VIRTIO_BLK_F_SCSI, adding host features is fine) - old QEMU, scsi=on -> new QEMU, scsi=off ok, bug fixed - new QEMU, scsi=on -> old QEMU, scsi=off doesn't work (same as: old QEMU, scsi=on -> old QEMU, scsi=off) - new QEMU, scsi=off -> old QEMU, scsi=off broken by the patch Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Paolo Bonzini 提交于
We will have to add another field to the virtio-blk configuration in the next patch. Avoid a proliferation of arguments to virtio_blk_init. Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Paolo Bonzini 提交于
Move it from virtio_blk_exit_pci to virtio_blk_exit. This is included here because the next patch removes proxy->block. Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Paolo Bonzini 提交于
Linux really looks only at scsi->errors for SG_IO requests; it does not look at the virtio request status at all. Because of this, when a SG_IO request is failed early with virtio_blk_req_complete(req, VIRTIO_BLK_S_UNSUPP), without writing hdr.status, it will look like a success to the guest. This is their bug, but we can make it safe for older guests now by forcing scsi->errors to have a non-zero value whenever a request has to be failed. But if we fix the bug in the guest driver, we will have another problem because QEMU returns VIRTIO_BLK_S_IOERR if the status is non-zero, and Linux translates that to -EIO. Rather, the guest should succeed the request and pass the non-zero status via the userspace-provided SG_IO structure. So, remove the case where virtio_blk_handle_scsi can return VIRTIO_BLK_S_IOERR. Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Mark Langsdorf 提交于
Allow load_image_targphys to load files on systems with more than 2G of emulated memory by changing the max_sz parameter from an int to an uint64_t. Reviewed-by: NAndreas F=E4rber <afaerber@suse.de> Acked-by: NAlexander Graf <agraf@suse.de> Signed-off-by: NMark Langsdorf <mark.langsdorf@calxeda.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Jan Kiszka 提交于
Make use of the new vector notifier to track changes of the MSI-X configuration of virtio PCI devices. On enabling events, we establish the required virtual IRQ to MSI-X message route and link the signaling eventfd file descriptor to this vIRQ line. That way, vhost-generated interrupts can be directly delivered to an in-kernel MSI-X consumer like the x86 APIC. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NAvi Kivity <avi@redhat.com>
-
由 Jan Kiszka 提交于
Analogously to msi_nr_vectors_allocated, add a service for MSI-X. Will be used by the virtio-pci layer. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NAvi Kivity <avi@redhat.com>
-
由 Jan Kiszka 提交于
Automatically commit route changes after kvm_add_routing_entry and kvm_irqchip_release_virq. There is no performance relevant use case for which collecting multiple route changes is beneficial. This makes kvm_irqchip_commit_routes an internal service which assert()s that the corresponding IOCTL will always succeed. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NAvi Kivity <avi@redhat.com>
-
由 Jan Kiszka 提交于
We will add kvm_irqchip_add_msi_route, so let's make the difference clearer. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NAvi Kivity <avi@redhat.com>
-
由 Jan Kiszka 提交于
Vector notifiers shall be triggered by the MSI/MSI-X core whenever a relevant configuration change is programmed by the guest. In case of MSI-X, changes are reported when the effective mask (global && per-vector) alters its state. On unmask, the current vector configuration is included in the event report. This allows users - e.g. virtio-pci layer - to transfer this information to external MSI-X routing subsystems - like vhost + KVM in-kernel irqchip. This implementation only provides MSI-X support, but extension to MSI is feasible and will be provided later on when adding support for KVM PCI device assignment. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NAvi Kivity <avi@redhat.com>
-
由 Jan Kiszka 提交于
In preparation of firing vector notifiers on mask changes, call msix_handle_mask_update also from msix_mask_all. So far, this will have no real effect. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NAvi Kivity <avi@redhat.com>
-
由 Jan Kiszka 提交于
This helper will also be used by the upcoming config notifier. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NAvi Kivity <avi@redhat.com>
-
- 19 5月, 2012 2 次提交
-
-
由 Blue Swirl 提交于
There are no outside references to virtio_portio. Add missing 'static' specifier. Reviewed-by: NStefan Weil <sw@weilnetz.de> Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
-
由 Blue Swirl 提交于
Initrd load address is too low, it conflicts with kernel load address: rom: requested regions overlap (rom phdr #0: /tmp/vmlinux-debian-6.0.4-sparc64. free=0x0000000000742519, addr=0x0000000000400000) rom loading failed Fix by making the initrd address variable, load initrd after kernel image. Use 64 bit variables instead of longs or 32 bit types. Tested-by: NArtyom Tarasenko <atar4qemu@gmail.com> Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
-
- 17 5月, 2012 1 次提交
-
-
由 John V. Baboval 提交于
Signed-off-by: NJohn V. Baboval <john.baboval@virtualcomputer.com> Signed-off-by: NTom Goetz <tom.goetz@virtualcomputer.com> Signed-off-by: NAnthony PERARD <anthony.perard@citrix.com> Signed-off-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
-