summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* PPC: Make e500 pci byte swap config dataAlexander Graf2010-09-051-1/+1
| | | | | | | The config data field on the e500 pci controller is in little endian, so we need to enable byte swap there. Signed-off-by: Alexander Graf <agraf@suse.de>
* PPC: Qdev'ify e500 pciAlexander Graf2010-09-051-33/+73
| | | | | | | | | | The e500 PCI controller isn't qdev'ified yet. This leads to severe issues when running with -drive. To be able to use a virtio disk with an e500 VM, let's convert the PCI controller over to qdev. Signed-off-by: Alexander Graf <agraf@suse.de>
* KVM: PPC: Add level based interrupt logicAlexander Graf2010-09-053-2/+59
| | | | | | | | | | | | | | | | | | | | | | KVM on PowerPC used to have completely broken interrupt logic. Usually, interrupts work by having a PIC that pulls a line up/down, so the CPU knows that an interrupt is active. This line stays active until some action is done to the PIC to release the line. On KVM for PPC, we just checked if there was an interrupt pending and pulled a line in the kernel module. We never released it though, hoping that kernel space would just declare an interrupt as released when injected - which is wrong. To fix this, we need to completely redesign the interrupt injection logic. Whenever an interrupt line gets triggered, we need to notify kernel space that the line is up. Whenever it gets released, we do the same. This way we can assure that the interrupt state is always known to kernel space. This fixes random stalls in KVM guests on PowerPC that were waiting for an interrupt while everyone else thought they received it already. Signed-off-by: Alexander Graf <agraf@suse.de>
* vnc: use bswapNN() rather than bswap_NN()Izumi Tsutsui2010-09-041-4/+4
| | | | | | | | bswap_NN() variants are not always available in CONFIG_MACHINE_BSWAP_H case and bswapNN() are public APIs in "bswap.h". Signed-off-by: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* vnc: tight: remove unused variableSerge Ziryukin2010-09-041-2/+0Star
| | | | | Signed-off-by: Serge Ziryukin <ftrvxmtrx@gmail.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Fix ivshmem build on 32-bit hostsAvi Kivity2010-09-041-3/+4
| | | | | | | | stat() fields can be more or less anything depending on configuration, cast explicitly to uint64_t to avoid printf() format mismatches. Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* virtio-9p: Make sure -virtfs option works correctlyAneesh Kumar K.V2010-09-041-2/+2
| | | | | | | When making copy of arguments we were doing partial copy Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* hw/ivshmem.c don't check for negative values on unsigned data typesJes Sorensen2010-09-041-2/+2
| | | | | | | | | | | | There is no need to check for dest < 0 or vector >= 0 as both are uint16_t. This should fix problems with broken build with aggressive compiler flags. Reported by Xudong Hao <xudong.hao@intel.com> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Acked-by: Cam Macdonell <cam@cs.ualberta.ca> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* load_multiboot(): get_image_size() returns intJes Sorensen2010-09-041-1/+1
| | | | | | | | Do not store return of get_image_size() in a uint32_t as it makes it impossible to detect error returns from get_image_size. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Change DPRINTF() to do{}while(0) to avoid compiler warningJes Sorensen2010-09-041-1/+1
| | | | | Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* size_t is unsigned, change to ssize_t to handle errors from ↵Jes Sorensen2010-09-041-4/+4
| | | | | | | tight_compress_data() Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Fix repeated typo: was "end if list" instead of "end of list"Jes Sorensen2010-09-041-6/+6
| | | | | Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Respect return value from nbd_client()Jes Sorensen2010-09-041-1/+4
| | | | | Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Remove unused argument for nbd_client()Jes Sorensen2010-09-043-4/+4
| | | | | Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Fix OpenBSD linker warningBlue Swirl2010-08-311-8/+10
| | | | | | | | Fix a warning from OpenBSD linker: ../libhw32/vl.o(.text+0x5c3c): In function `main': /src/qemu/vl.c:2335: warning: sprintf() is often misused, please use snprintf() Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* acpi: fix file size check with -acpitable.Isaku Yamahata2010-08-301-9/+19
| | | | | | | | | acpi table file can be modified during load so file size check should be more strict. pointer calculation should be after qemu_realloc(). not before realloc(). Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* isapc: fix segfault.Isaku Yamahata2010-08-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.launchpad.net/bugs/611646 reports that ./i386-softmmu/qemu -M isapc segfaults. This patch fixes the segfault introduced by f885f1eaa8711c06033ceb1599e3750fb37c306f It's because i440fx_state in pc_init1() isn't initialized. > Core was generated by `./i386-softmmu/qemu -M isapc'. > Program terminated with signal 11, Segmentation fault. > [New process 19686] > at qemu/hw/piix_pci.c:136 > (gdb) where > at qemu/hw/piix_pci.c:136 > boot_device=0x7fffe1f5b040 "cad", kernel_filename=0x0, > kernel_cmdline=0x6469bf "", initrd_filename=0x0, > cpu_model=0x654d10 "486", pci_enabled=0) > at qemu/hw/pc_piix.c:178 > boot_device=0x7fffe1f5b040 "cad", kernel_filename=0x0, > kernel_cmdline=0x6469bf "", initrd_filename=0x0, cpu_model=0x654d10 "486") > at qemu/hw/pc_piix.c:207 > envp=0x7fffe1f5b188) > at qemu/vl.c:2871 Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Fix segfault in mmio subpage handling code.Gleb Natapov2010-08-281-0/+2
| | | | | | | | | | | | | It is possible that subpage mmio is registered over existing memory page. When this happens "memory" will have real memory address and not index into io_mem array so next access to the page will generate segfault. It is uncommon to have some part of a page to be accessed as memory and some as mmio, but qemu shouldn't crash even when guest does stupid things. So lets just pretend that the rest of the page is unassigned if guest configure part of the memory page as mmio. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* etraxfs_eth: correct use of ! and &Blue Swirl2010-08-261-1/+1
| | | | | | | | | | | | | | | | | Combining bitwise AND and logical NOT is suspicious. Fixed by this Coccinelle script: // From http://article.gmane.org/gmane.linux.kernel/646367 @@ expression E1,E2; @@ ( !E1 & !E2 | - !E1 & E2 + !(E1 & E2) ) Acked-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Sparc: update OpenBIOS images to r859Blue Swirl2010-08-263-1/+1
| | | | | | | | | Update Sparc32 and Sparc64 OpenBIOS images to SVN revision 859. Bring also pc-bios/README up to date including the update performed by 419ef5f1c6a9614e8ddcb0b0f826de692e7e4a43. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* ppc4xx: load Bamboo kernel, initrd, and fdt at fixed addressesHollis Blanchard2010-08-261-21/+18Star
| | | | | | | | | | | We can't use the return value of load_uimage() for the kernel because it can't account for BSS size, and the PowerPC kernel does not relocate blobs before zeroing BSS. Instead, we now load at the fixed addresses chosen by u-boot (the normal firmware for the board). Signed-off-by: Hollis Blanchard <hollis@penguinppc.org>
* ppc4xx: don't unregister RAM at resetHollis Blanchard2010-08-261-1/+0Star
| | | | | | | | The PowerPC 4xx SDRAM controller emulation unregisters RAM in its reset callback. However, qemu_system_reset() is now called at initialization time, so all RAM is unregistered before starting the guest (!). Signed-off-by: Hollis Blanchard <hollis@penguinppc.org>
* ppc4xx: correct SDRAM controller warning message conditionHollis Blanchard2010-08-261-1/+1
| | | | | | | | | The message "Truncating memory to %d MiB to fit SDRAM controller limits" should be displayed only when a user chooses an amount of RAM which can't be represented by the PPC 4xx SDRAM controller (e.g. 129MB, which would only be valid if the controller supports a bank size of 1MB). Signed-off-by: Hollis Blanchard <hollis@penguinppc.org>
* Fix "make install" with a cross toolchainHollis Blanchard2010-08-262-2/+7
| | | | | | | | | | We must be able to use a non-native strip executable, but not all versions of 'install' support the --strip-program option (e.g. OpenBSD). Accordingly, we can't use 'install -s', and we must run strip separately. Signed-off-by: Hollis Blanchard <hollis@penguinppc.org> Cc: blauwirbel@gmail.com
* PPC: Update openbios binary to r859Alexander Graf2010-08-261-0/+0
| | | | | | | This updates the openBIOS binary to r589, adding support for PPC PV feature pass-through in KVM. Signed-off-by: Alexander Graf <agraf@suse.de>
* PPC: Add PV hypercall transport through fw_cfgAlexander Graf2010-08-265-0/+50
| | | | | | | | | | | On KVM for PPC we need to tell the guest which instructions to use when doing a hypercall. The clean way to do this is to go through an ioctl from userspace and passing it on to the guest using the device tree. So let's do the qemu part here: read out the hypercall and pass it on to the guest's fw_cfg so openBIOS can read it out and expose it again. Signed-off-by: Alexander Graf <agraf@suse.de>
* Rearrange block headersBlue Swirl2010-08-2447-13/+51
| | | | | | | | | Changing block.h or blockdev.h resulted in recompiling most objects. Move DriveInfo typedef and BlockInterfaceType enum definitions to qemu-common.h and rearrange blockdev.h use to decrease churn. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Merge remote branch 'qemu-kvm/uq/master' into stagingAnthony Liguori2010-08-231-12/+7Star
|\
| * kvm: remove guest triggerable abort()Gleb Natapov2010-08-051-12/+4Star
| | | | | | | | | | | | | | | | This abort() condition is easily triggerable by a guest if it configures pci bar with unaligned address that overlaps main memory. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
| * kvm: Don't walk memory_size == 0 slots in kvm_client_migration_logAlex Williamson2010-08-051-0/+3
| | | | | | | | | | | | | | | | | | | | | | If we've unregistered a memory area, we should avoid calling qemu_get_ram_ptr() on the left over phys_offset cruft in the slot array. Now that we support removing ramblocks, the phys_offset ram_addr_t can go away and cause a lookup fault and abort. Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
* | compile -fsdev and -virtfs cmd line options unconditionally.Gerd Hoffmann2010-08-232-8/+13
| | | | | | | | | | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | QemuOpts: make most qemu_*_opts staticGerd Hoffmann2010-08-2313-66/+59Star
| | | | | | | | | | | | | | | | Switch tree to lookup-by-name using qemu_find_opts(). Also hook up virtfs options so qemu_find_opts works for them too. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | QemuOpts: allow new option groups be registered at runtime.Gerd Hoffmann2010-08-232-1/+18
| | | | | | | | | | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | VGA: Don't register deprecated VBE rangeAlex Williamson2010-08-231-7/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Old versions of the BOCHs VGA BIOS (cira 2003) made use of VBE registers at 0xff80/81. In VBE API version 0xb0c2 these were moved to 0x1ce/cf. Unfortunately, QEMU still registers handlers for the old range. If a guest attempts to assign an I/O device overlapping this region, QEMU exits with a hw_error. Windows guests seem to like to assign I/O devices to the high end of the address space, so it's pretty easy to hot add an rtl8139 to a Win2k8 guest and trigger the bug. I can't find any reason to register these handlers, so let's remove the cruft. Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | QMP: Update README fileLuiz Capitulino2010-08-231-23/+48
| | | | | | | | | | | | | | | | | | | | | | | | A number of changes I prefer to do in one shot: - Fix example - Small clarifications - Add multiple monitors example - Add 'Development Process' section Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | QMP doc: Add 'Stability Considerations' sectionLuiz Capitulino2010-08-231-2/+24
| | | | | | | | | | Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | QMP/monitor: update do_info_version() to output broken down version stringMiguel Di Ciurcio Filho2010-08-231-4/+19
| | | | | | | | | | | | | | | | This code was originally developed by Daniel P. Berrange <berrange@redhat.com> Signed-off-by: Miguel Di Ciurcio Filho <miguel.filho@gmail.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | QMP: update 'query-version' documentationMiguel Di Ciurcio Filho2010-08-231-2/+14
| | | | | | | | | | | | | | | | | | Update the documentation of 'query-version' to output the string version broken down. Signed-off-by: Miguel Di Ciurcio Filho <miguel.filho@gmail.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | vnc: check fd before calling qemu_set_fd_handler2() in vnc_client_write()Yoshiaki Tamura2010-08-221-1/+1
| | | | | | | | | | | | | | | | Setting fd = -1 to qemu_set_fd_handler2() causes bus error at FD_SET in main_loop_wait(). Signed-off-by: Yoshiaki Tamura <tamura.yoshiaki@lab.ntt.co.jp> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | virtio-serial: Cleanup on device hot-unplugAmit Shah2010-08-223-1/+27
| | | | | | | | | | | | | | | | | | | | | | Free malloc'ed memory, unregister from savevm and clean up virtio-common bits on device hot-unplug. This was found performing a migration after device hot-unplug. Reported-by: <lihuang@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | target-i386: svm: Fix MSRPM checkAdam Lackorzynski2010-08-221-1/+1
| | | | | | | | | | | | | | | | Correct the calculation of the offset in the msrpm for the MSR range 0 - 0x1fff. Signed-off-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | exec: remove code duplication in qemu_ram_alloc() and qemu_ram_alloc_from_ptr()Yoshiaki Tamura2010-08-221-58/+26Star
| | | | | | | | | | | | | | | | | | | | Since most of the code in qemu_ram_alloc() and qemu_ram_alloc_from_ptr() are duplicated, let qemu_ram_alloc_from_ptr() to switch by checking void *host, and change qemu_ram_alloc() to a wrapper. Signed-off-by: Yoshiaki Tamura <tamura.yoshiaki@lab.ntt.co.jp> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | exec: replace tabs by spaces.Yoshiaki Tamura2010-08-221-28/+28
| | | | | | | | | | Signed-off-by: Yoshiaki Tamura <tamura.yoshiaki@lab.ntt.co.jp> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | arch_init: replace tabs by spaces.Yoshiaki Tamura2010-08-221-6/+6
| | | | | | | | | | Signed-off-by: Yoshiaki Tamura <tamura.yoshiaki@lab.ntt.co.jp> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | pckbd: support for commands 0xf0-0xff: Pulse output bitBernhard Kohl2010-08-221-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I have a guest OS which sends the command 0xfd to the keyboard controller during initialization. To get rid of the message "qemu: unsupported keyboard cmd=0x%02x\n" I added support for the pulse output bit commands. I found the following explanation here: http://www.win.tue.nl/~aeb/linux/kbd/scancodes-11.html#ss11.3 Command 0xf0-0xff: Pulse output bit Bits 3-0 of the output port P2 of the keyboard controller may be pulsed low for approximately 6 µseconds. Bits 3-0 of this command specify the output port bits to be pulsed. 0: Bit should be pulsed. 1: Bit should not be modified. The only useful version of this command is Command 0xfe. (For MCA, replace 3-0 by 1-0 in the above.) Command 0xfe: System reset Pulse bit 0 of the output port P2 of the keyboard controller. This will reset the CPU. Signed-off-by: Bernhard Kohl <bernhard.kohl@nsn.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | Replace qemu_malloc + memset with qemu_malloczBlue Swirl2010-08-202-4/+2Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace a qemu_malloc call, followed by a memset, with qemu_mallocz. Found with this Coccinelle semantic patch, adapted from Coccinelle test package rule 94: @@ type T; expression x; expression E; @@ - x = (T)qemu_malloc(E) + x = qemu_mallocz(E) ... ( - memset(x,0,E); | - memset(x,0,sizeof(*x)); ) Some files (tests/*) had to be filtered out. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | Use ARRAY_SIZE macroBlue Swirl2010-08-202-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace array size calculations with ARRAY_SIZE macro. Implemented with this Coccinelle semantic patch, adapted from Linux kernel: @@ type T; T[] E; @@ - (sizeof(E)/sizeof(*E)) + ARRAY_SIZE(E) @@ type T; T[] E; @@ - (sizeof(E)/sizeof(E[...])) + ARRAY_SIZE(E) @@ type T; T[] E; @@ - (sizeof(E)/sizeof(T)) + ARRAY_SIZE(E) Some files (*-dis.c, tests/*) had to be filtered out. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | Remove useless NULL check for qemu_strdup return valueBlue Swirl2010-08-191-3/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Found with this Coccinelle semantic patch: @@ expression E; identifier ptr; identifier fn ~= "qemu_strn?dup"; @@ -ptr = fn(E); -if (ptr == NULL) { ... } - +ptr = fn(E); Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | Remove useless NULL checks for qemu_malloc return valueBlue Swirl2010-08-191-12/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Found with this Coccinelle semantic patch: @@ expression E; identifier ptr; identifier fn ~= "qemu_mallocz*"; @@ -ptr = fn(E); -if (ptr == NULL) { ... } - +ptr = fn(E); Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | savevm: Reset last block info at beginning of each saveAlex Williamson2010-08-191-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | If we save more than once we need to reset the last block info or else only the first save has the actual block info and each subsequent save will only use continue flags, making them unloadable independently. Found-by: Miguel Di Ciurcio Filho <miguel.filho@gmail.com> Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Acked-by: Glauber Costa <glommer@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>