OSDN Git Service
Jan Kiszka [Wed, 1 Jul 2009 22:19:02 +0000 (00:19 +0200)]
Add boot menu control via command line switch
Disable the lengthy BIOS prompt for selecting a boot device by default,
but let the user reenable it via '-boot menu=on'.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Wed, 1 Jul 2009 22:19:02 +0000 (00:19 +0200)]
Add boot-once support
This allows to specify an exceptional boot order only for the first
startup of the guest. After reboot, qemu will switch back to the default
order (or what was specified via 'order='). Makes installing from CD
images and then booting the freshly set up harddisk more handy.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Wed, 1 Jul 2009 22:19:02 +0000 (00:19 +0200)]
Add qemu_unregister_reset
Will be used by '-boot once=...', and should also help in other use
cases.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Wed, 1 Jul 2009 22:19:02 +0000 (00:19 +0200)]
Rework reset handler management
Convert the reset handler maintenance code to TAILQ services.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Wed, 1 Jul 2009 22:19:02 +0000 (00:19 +0200)]
Move boot_set callback backend
Move registration function for the boot_set callback handler and provide
qemu_boot_set so that it can also be used outside the monitor code.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Wed, 1 Jul 2009 22:19:02 +0000 (00:19 +0200)]
Rework -boot option
This patch changes the boot command line option to the canonical format
-boot [order=drives][,...]
where 'drives' is using the same format as the old -boot. The format
switch allows to add the 'menu' and 'once' options in later patches. The
old format is still understood and will be processed at least for a
transition time.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Mark McLoughlin [Wed, 8 Jul 2009 10:48:03 +0000 (11:48 +0100)]
Add a pc-0-10 machine type for compatibility with 0.10.x
Add a pc-0-10 machine type to allow a pc machine to be created with
virtio block and console devices compatibility with qemu-0.10.x.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Mark McLoughlin [Tue, 7 Jul 2009 11:09:58 +0000 (12:09 +0100)]
Change default PCI class of virtio-console to PCI_CLASS_SERIAL_OTHER
We're using PCI_CLASS_DISPLAY_OTHER now, but qemu-kvm.git is using
PCI_CLASS_OTHERS because:
"As a PCI_CLASS_DISPLAY_OTHER, it reduces primary display somehow on
Windows XP (possibly Windows disables acceleration since it fails
to find a driver)."
While this is valid, many versions of X will get confused by it.
Class major number of 0 gets treated as a possibly prehistoric VGA
device, and then the autoconfig logic gets confused trying to figure
out whether the virtio console or the pv vga device are the real VGA.
We should really set a proper class ID. 0x0780 (serial / other) seems
most appropriate. This shouldn't require any kernel changes, the
modalias for virtio looks like:
alias: pci:v00001AF4d*sv*sd*bc*sc*i*
so won't care what the base class or subclass are.
It shows up in the guest as:
00:05.0 Communication controller: Qumranet, Inc. Virtio console
A new qdev type is introduced to allow devices using the old class
to be created for compatibility with qemu-0.10.x.
Reported-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Mark McLoughlin [Tue, 7 Jul 2009 11:09:10 +0000 (12:09 +0100)]
Change default PCI class of virtio-blk to PCI_CLASS_STORAGE_SCSI
Windows virtio driver cannot pass DTM (certification) tests while the
storage class is PCI_CLASS_STORAGE_UNKNOWN.
A new qdev type is introduced to allow devices using the old class
to be created for compatibility with qemu-0.10.x.
Reported-by: Dor Laor <dlaor@redhat.com>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Blue Swirl [Wed, 15 Jul 2009 20:45:19 +0000 (20:45 +0000)]
Sparc32: convert sparc32_dma to qdev
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
malc [Wed, 15 Jul 2009 16:52:47 +0000 (20:52 +0400)]
Avoid SIGSEGV when dumping cpu state without enabled logging
Signed-off-by: malc <av1474@comtv.ru>
Blue Swirl [Wed, 15 Jul 2009 14:41:54 +0000 (14:41 +0000)]
Convert fdc to qdev
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Wed, 15 Jul 2009 08:53:09 +0000 (08:53 +0000)]
Sparc32: convert slavio timers to qdev
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Wed, 15 Jul 2009 08:51:32 +0000 (08:51 +0000)]
Sparc32/PPC: convert escc to qdev
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Mon, 13 Jul 2009 16:51:27 +0000 (16:51 +0000)]
Sparc32: convert slavio_misc to qdev
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Mon, 13 Jul 2009 16:11:08 +0000 (16:11 +0000)]
Sparc32: convert idreg to qdev
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Baojun Wang [Fri, 3 Jul 2009 11:27:39 +0000 (19:27 +0800)]
target-ppc: enable PPC_MFTB for 44x
According to PPC440 user manual, PPC 440 supports ``mftb'' even it's a
preserved instruction:
PPC440_UM2013.pdf, p.445, table A-3
when I compile a kernel (2.6.30, bamboo_defconfig/440EP &
canyonlands/460EX), I can see ``mftb'' by using ppc-xxx-objdump
vmlinux
I have also checked the ppc 440x[456], 460S, 464, they also should support mftb.
The following patch enable mftb for all ppc 440 variants, including:
440EP, 440GP, 440x4, 440x5 and 460
Signed-off-by: Baojun Wang <wangbj@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Baojun Wang [Fri, 3 Jul 2009 10:56:57 +0000 (18:56 +0800)]
ppc tcg: fix wrong bit/mask of wrteei
Signed-off-by: Baojun Wang <wangbj@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Nathan Froyd [Fri, 5 Jun 2009 02:02:28 +0000 (19:02 -0700)]
gdb-xml: fix hacks in powerpc register numbering
The powerpc xml files contained a hack--an empty, non-existent
register--for getting the register numbers to line up for
newer (XML-aware) and older (non-XML-aware) GDB. While this hack worked
in some cases, it didn't work in all cases, notably when the user used
`finish' or `continue': GDB would attempt to read the non-existent
register and QEMU would complain.
This patch fixes things up properly. Instead of inserting a fake
register, we explicitly declare the floating-point and SPE registers to
start at 71. This action accomplishes the same thing as the nasty hack,
except that now GDB never tries to fetch the non-existant register 70.
Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Nathan Froyd [Thu, 4 Jun 2009 20:46:41 +0000 (13:46 -0700)]
target-ppc: fix evmergelo and evmergelohi
For 32-bit PPC targets, we translated:
evmergelo rX, rX, rY
as:
rX-lo = rY-lo
rX-hi = rX-lo
which is wrong, because we should be transferring rX-lo first. This
problem is fixed by swapping the order in which we write the parts of
rX.
Similarly, we translated:
evmergelohi rX, rX, rY
as:
rX-lo = rY-hi
rX-hi = rX-lo
In this case, we can't swap the assignment statements, because that
would just cause problems for:
evmergelohi rX, rY, rX
Instead, we detect the first case and save rX-lo in a temporary
variable:
tmp = rX-lo
rX-lo = rY-hi
rX-hi = tmp
These problems don't occur on PPC64 targets because we don't split the
SPE registers into hi/lo parts for such targets.
Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tristan Gingold [Mon, 27 Apr 2009 08:55:47 +0000 (10:55 +0200)]
target-ppc: fix typo in _cpu_ppc_load_decr
Use parameter 'next' to fix the hdecr case.
Also pass 'next' by value instead of pointer (more easy to read and no
performance issue for an always_inline function).
Signed-off-by: Tristan Gingold <gingold@adacore.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Blue Swirl [Sun, 12 Jul 2009 20:07:07 +0000 (20:07 +0000)]
Sparc32/Sparc64/PPC: convert m48txx to qdev
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Sun, 12 Jul 2009 19:21:36 +0000 (19:21 +0000)]
Sparc32: convert tcx to qdev
Also increase QDEV_MAX_MMIO.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Sun, 12 Jul 2009 18:43:24 +0000 (21:43 +0300)]
Sparc32: use the OpenFirmware name for ecc
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Aurelien Jarno [Sun, 12 Jul 2009 13:09:01 +0000 (15:09 +0200)]
target-mips: remove useless code in gen_st_cond()
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Paul Brook [Sun, 12 Jul 2009 12:08:59 +0000 (13:08 +0100)]
Fix MIPS SC
Fix botched merge of op_ldst_sc calls to match actual implementation.
Thanks to Aurelien Jarno for diagnosing this.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Blue Swirl [Sun, 12 Jul 2009 08:54:49 +0000 (08:54 +0000)]
Sparc64: convert ebus to qdev
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Igor Kovalenko [Sun, 12 Jul 2009 08:35:31 +0000 (12:35 +0400)]
sparc64: trap handling corrections
On Sun, Jul 12, 2009 at 12:09 PM, Blue Swirl<blauwirbel@gmail.com> wrote:
> On 7/12/09, Igor Kovalenko <igor.v.kovalenko@gmail.com> wrote:
>> Good trap handling is required to process interrupts.
>> This patch fixes the following:
>>
>> - sparc64 has no wim register
>> - sparc64 has no psret register, use IE bit of pstate
>> extract IE checking code to cpu_interrupts_enabled
>> - alternate globals are not available if cpu has GL feature
>> in this case bit AG of pstate is constant zero
>> - write to pstate must actually write pstate
>> even if cpu has GL feature
>>
>> Also timer interrupt is handled using do_interrupt.
>
> A bit too much for one patch. Please also remove the code instead of
> commenting out.
I now excluded timer interrupt related part.
To my mind other changes are essentially tied together.
> PUT_PSR for Sparc64 needs CC_OP = CC_OP_FLAGS; like Sparc32.
Fixed, please find attached the updated version.
--
Kind regards,
Igor V. Kovalenko
Blue Swirl [Sun, 12 Jul 2009 08:16:55 +0000 (08:16 +0000)]
Sparc32: convert eccmemctl to qdev
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Igor Kovalenko [Sat, 11 Jul 2009 20:57:03 +0000 (00:57 +0400)]
sparc64: fix helper_st_asi little endian case typo
On Sun, Jul 12, 2009 at 12:43 AM, Stuart Brady<sdbrady@ntlworld.com> wrote:
> On Sat, Jul 11, 2009 at 10:22:18PM +0400, Igor Kovalenko wrote:
>> It is clear that intention is to byte-swap value to be written, not
>> the target address.
>
> @@ -1949,13 +1949,13 @@ void helper_st_asi(target_ulong addr, ta
> case 0x89: // Secondary LE
> switch(size) {
> case 2:
> - addr = bswap16(addr);
> + addr = bswap16(val);
> ^^^^
> Shouldn't that be 'val = bswap16(val)' (and likewise for the 32-bit and
> 64-bit cases)? Also needs a 'signed-off-by:'...
>
> Cheers,
> --
> Stuart Brady
>
Thanks, that part I did not runtime-tested.
Not sure if those asi stores are of any use for user-mode emulator.
Please find attached the corrected version.
Signed-off-by: igor.v.kovalenko@gmail.com
--
Kind regards,
Igor V. Kovalenko
Igor Kovalenko [Sun, 12 Jul 2009 07:43:00 +0000 (07:43 +0000)]
sparc64: really initialize irq
Allocate irq just before passing it to pci bridge initialization
and actually use it to initialize pci bridge.
Signed-off-by: igor.v.kovalenko@gmail.com
--
Kind regards,
Igor V. Kovalenko
Igor Kovalenko [Sun, 12 Jul 2009 07:41:42 +0000 (07:41 +0000)]
sparc64: unify mmu tag matching code
This patch extracts common part of sparc64 tag
matching code used by IMMU and DMMU lookups.
Signed-off-by: igor.v.kovalenko@gmail.com
--
Kind regards,
Igor V. Kovalenko
Igor Kovalenko [Sun, 12 Jul 2009 07:41:42 +0000 (07:41 +0000)]
sparc64: mmu bypass mode correction
This Implement physical address truncation in mmu bypass mode.
IMMU bypass is also active when cpu enters RED_STATE
Signed-off-by: igor.v.kovalenko@gmail.com
--
Kind regards,
Igor V. Kovalenko
Paul Brook [Sat, 11 Jul 2009 21:46:05 +0000 (22:46 +0100)]
Fix PCI IRQ breakage
Zero initialize the PCI bus irq count.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Blue Swirl [Sat, 11 Jul 2009 08:38:39 +0000 (08:38 +0000)]
Revert "Fix the PCI header type of APB"
This reverts commit
e8d2a88755b849bdadaf80d19e342eade3c017bc.
Blue Swirl [Sat, 11 Jul 2009 08:20:24 +0000 (08:20 +0000)]
Fix APB by reverting
16eaedf2668e9b347a59d73346fcc4c764c58348 partially
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Anthony Liguori [Fri, 10 Jul 2009 20:32:03 +0000 (15:32 -0500)]
Indent ac97 and es1370 according to audio formatting
For the sake of consistency. I pulled in the wrong patches from Gerd when
he did the qdev conversion.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Avi Kivity [Tue, 23 Jun 2009 13:20:36 +0000 (16:20 +0300)]
block: Clean up after deleting BHs
Commit
6a7ad299 ("Call qemu_bh_delete at bdrv_aio_bh_cb") deletes emulated
aio bottom halves to prevent endless accumulation. However, it leaves a
stale ->bh pointer, which is then waited on when the aio is reused.
Zeroing the pointer fixes the issue, allowing vmdk format images to be used.
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Glauber Costa [Mon, 6 Jul 2009 13:32:09 +0000 (09:32 -0400)]
flush pending aio requests
When we finish migration, there may be pending async io requests
in flight. If we don't flush it before stage3 starting, it might be
the case that the guest loses it.
Signed-off-by: Glauber Costa <glommer@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Thu, 2 Jul 2009 20:04:48 +0000 (22:04 +0200)]
kvm: Work around borken MSR_GET_INDEX_LIST
Allocate enough memory for KVM_GET_MSR_INDEX_LIST as older kernels shot
far beyond their limits, corrupting user space memory.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Michael S. Tsirkin [Sun, 5 Jul 2009 13:02:34 +0000 (16:02 +0300)]
qemu/virtio: mark msi vectors used on load
Usage of msi vectors is controlled by the guest and so needs to be
restored on load. Do this for msi vectors used by the virtio device.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Michael S. Tsirkin [Sun, 5 Jul 2009 12:58:52 +0000 (15:58 +0300)]
qemu/msi: missing braces
MSIX present bit is tested incorrectly, and only happens to work because
the bit we are testing is 0x1. Add braces to fix this.
Reported-by: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Michael S. Tsirkin [Sun, 5 Jul 2009 12:58:44 +0000 (15:58 +0300)]
qemu/msi: clean used vectors state on load
Clean up msix vector usage state on load. Since guest might have control
over it through the device, the device will have to load this state from
file.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Kevin Wolf [Tue, 7 Jul 2009 16:09:42 +0000 (18:09 +0200)]
qcow2: Fix L1 table memory allocation
Contrary to what one could expect, the size of L1 tables is not cluster
aligned. So as we're writing whole sectors now instead of single entries,
we need to ensure that the L1 table in memory is large enough; otherwise
write would access memory after the end of the L1 table.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Kevin Wolf [Tue, 30 Jun 2009 13:37:17 +0000 (15:37 +0200)]
qcow1: Fix qcow_aio_writev
Pass is_write = 1 to qcow_aio_setup when writing.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Mark McLoughlin [Fri, 3 Jul 2009 08:28:02 +0000 (09:28 +0100)]
Prefer sysfs for USB host devices
Scanning for devices via /sys/bus/usb/devices/ and using them via the
/dev/bus/usb/<bus>/<device> character devices is the prefered method
on modern kernels, so try that first.
When using SELinux and libvirt, qemu will have access to /sys/bus/usb
but not /proc/bus/usb, so although the current code will work just
fine, it will generate SELinux AVC warnings.
See also:
https://bugzilla.redhat.com/508326
Reported-by: Daniel Berrange <berrange@redhat.com>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Michael Buesch [Wed, 8 Jul 2009 19:54:28 +0000 (21:54 +0200)]
usb-ohci: Fix endianness issue
This fixes a possible endianness issue in the usb-ohci hw module.
hcca.frame and ohci->frame_number are 16bit, so use cpu_to_le16().
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Fri, 10 Jul 2009 18:39:34 +0000 (13:39 -0500)]
Make sure to mark MCE defines as ULL
Fixes build on 32-bit
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Kevin Wolf [Fri, 10 Jul 2009 11:33:52 +0000 (13:33 +0200)]
qemu-io: fix memory leak
qemu-io leaks the request buffer whenever the read or write function isn't
executed completely down the "normal" code path.
[hch: also fix the aio and vectored variants the same way]
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Christoph Hellwig [Fri, 10 Jul 2009 11:33:47 +0000 (13:33 +0200)]
qemu-io: add flag to mark files growable
Add a -g flag to the open command and the main qemu-io command line to
allow opening a file growable. This is only allowed for protocols,
mirroring the limitation exposed through bdrv_file_open.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Christoph Hellwig [Fri, 10 Jul 2009 11:33:42 +0000 (13:33 +0200)]
qemu-io: better input validation for vector-based commands
Fix up a couple of issues with validating the input of the various
length arguments for the vectored I/O commands:
- do the alignment check on each length instead the always 0 count argument
- use a long long varibale for the cvtnum return value so that we can check
wether it wasn't a number
- check for a too large argument instead of truncating it
Also refactor it into a common helper for all four calers and avoid parsing
the numbers twice.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Christoph Hellwig [Fri, 10 Jul 2009 11:33:38 +0000 (13:33 +0200)]
qemu-io: small cleanups for the aio code
Address a couple of review comments from Kevin.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Anthony Liguori [Thu, 9 Jul 2009 22:28:08 +0000 (17:28 -0500)]
Disable kqemu by default at run time
-no-kqemu -> -enable-kqemu
kqemu is still present at compile time by default
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Thu, 9 Jul 2009 18:25:47 +0000 (13:25 -0500)]
Make sure to only vm_start() a failed migration if we were running to begin
with.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Andi Kleen [Thu, 2 Jul 2009 07:34:17 +0000 (09:34 +0200)]
Allow setting qemu process name v2
Set the Linux process name to the name argument specified with name. I find
this useful to see which guests are taking CPU time in top.
This doesn't affect ps, which checks argv[0], but rewriting the
environment uses much more code, so I only used this simple way.
v2: Use separate process= argument, no prefixes.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Tue, 30 Jun 2009 19:29:03 +0000 (21:29 +0200)]
configure: Append extra cflags and ldflags
In order to allow overriding flags that are set by configure, we have to
append them instead of prepending as it is done so far.
v2: Clarify documentation.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Michael S. Tsirkin [Wed, 1 Jul 2009 13:28:06 +0000 (16:28 +0300)]
qemu: remove control vector save
control vector is saved/restored by virtio-pci,
it does not belong in virtio.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Michael S. Tsirkin [Wed, 1 Jul 2009 13:28:00 +0000 (16:28 +0300)]
fix segfault in msix_save
This fixes segfault reported by Kevin Wolf,
and simplifies the code in msix_save.
Reported-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Mark McLoughlin [Wed, 1 Jul 2009 22:06:19 +0000 (23:06 +0100)]
Unregister savevm callback in eeprom93xx_free()
Otherwise if you hot remove an eepro100 NIC and then migrate,
you get:
Unknown savevm section or instance 'eeprom' 0
on the destination side.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Mark McLoughlin [Wed, 1 Jul 2009 15:46:38 +0000 (16:46 +0100)]
Don't leak VLANClientState on PCI hot remove
destroy_nic() requires that NICInfo::private by a PCIDevice pointer,
but then goes on to require that the same pointer matches
VLANClientState::opaque.
That is no longer the case for virtio-net since qdev and wasn't
previously the case for rtl8139, ne2k_pci or eepro100.
Make the situation a lot more clear by maintaining a VLANClientState
pointer in NICInfo.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Mark McLoughlin [Wed, 1 Jul 2009 15:45:30 +0000 (16:45 +0100)]
Don't abort if TUNSETSNDBUF fails where no sndbuf= arg is supplied
If no tap,sndbuf= arg is supplied, we use a default value. If
TUNSETSNDBUF fails in this case, we should not abort.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
G 3 [Wed, 1 Jul 2009 17:28:32 +0000 (13:28 -0400)]
Substitute O_DSYNC with O_SYNC or O_FSYNC when needed.
Signed-off-by: John Arbuckle <programmingkidx@gmail.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Nolan [Thu, 2 Jul 2009 00:16:52 +0000 (17:16 -0700)]
Allow adjustment of http block device's readahead size, via a new
":readahead=###:" suffix.
Signed-off-by: Nolan Leake <nolan <at> sigbus.net>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Isaku Yamahata [Thu, 2 Jul 2009 10:32:10 +0000 (19:32 +0900)]
consolidate user cpu_{in, out}[bwl] into ioport-user.c
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Isaku Yamahata [Thu, 2 Jul 2009 10:32:08 +0000 (19:32 +0900)]
ioport: consolidate duplicated logic in register_ioport_{read, write}().
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Isaku Yamahata [Thu, 2 Jul 2009 10:32:07 +0000 (19:32 +0900)]
use constant IOPORTS_MASK instead of 0xffff.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Isaku Yamahata [Thu, 2 Jul 2009 10:32:06 +0000 (19:32 +0900)]
split out ioport related stuffs from vl.c into ioport.c.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Alexander Graf [Wed, 1 Jul 2009 20:08:21 +0000 (22:08 +0200)]
Replace signrom with shell script v3
In order to not execute code we just compiled, let's replace signrom
with a shell script that does the same thing while staying compatible
to pretty much every system available.
This should make cross-compilation for windows easier.
aliguori: fix build when objdir != srcdir
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Thu, 2 Jul 2009 13:12:26 +0000 (08:12 -0500)]
Revert "support colon in filenames"
This reverts commit
707c0dbc97cddfe8d2441b8259c6c526d99f2dd8.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Wed, 1 Jul 2009 15:07:16 +0000 (10:07 -0500)]
Fix build for ESD audio
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Kevin Wolf [Tue, 30 Jun 2009 11:06:04 +0000 (13:06 +0200)]
qcow2: Make cache=writethrough default
The performance of qcow2 has improved meanwhile, so we don't need to
special-case it any more. Switch the default to write-through caching
like all other block drivers.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Mark McLoughlin [Tue, 30 Jun 2009 09:02:57 +0000 (10:02 +0100)]
net: set a default value for sndbuf=
On reflection, perhaps it does make sense to set a default value for
the sndbuf= tap parameter.
For best effect, sndbuf= should be set to just below the capacity of
the physical NIC.
Setting it higher will cause packets to be dropped before the limit
is hit. Setting it much lower will not cause any problems unless
you set it low enough such that the guest cannot queue up new packets
before the NIC has emptied its queue.
In Linux, txqueuelen=1000 by default for ethernet NICs. Given a 1500
byte MTU, 1Mb is a good choice for sndbuf.
If it turns out that txqueuelen is actually much lower than this, then
sndbuf is essentially disabled. In the event that txqueuelen is much
higher, it's unlikely that the NIC will be able to empty a 1Mb queue.
Thanks to Herbert Xu for this logic.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Cc: Herbert Xu <herbert.xu@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Christoph Egger [Tue, 30 Jun 2009 12:59:38 +0000 (14:59 +0200)]
configure: detect xen with --extra-cflags / --extra-ldflags
Attached patch lets configure find xen headers and xen libs
when called with --extra-cflags and --extra-ldflags options.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Huang Ying [Tue, 23 Jun 2009 02:05:14 +0000 (10:05 +0800)]
QEMU: MCE: Add MCE simulation to qemu/tcg
- MCE features are initialized when VCPU is intialized according to CPUID.
- A monitor command "mce" is added to inject a MCE.
- A new interrupt mask: CPU_INTERRUPT_MCE is added to inject the MCE.
aliguori: fix build for linux-user
Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Thu, 9 Jul 2009 20:09:27 +0000 (15:09 -0500)]
Merge commit 'linux-user/linux-user-for-upstream' into tmp-staging
Paul Brook [Thu, 9 Jul 2009 17:40:15 +0000 (18:40 +0100)]
MIPS signal handling fix
Add explicit padding to MIPS signal frame structures.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Paul Brook [Thu, 9 Jul 2009 16:56:24 +0000 (17:56 +0100)]
Enable MIPS NPTL
Enable NPTL support for MIPS usermode emulation.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Paul Brook [Thu, 9 Jul 2009 16:45:17 +0000 (17:45 +0100)]
MIPS atomic instructions
Implement MIPS ll/sc instructions using atomic compare+exchange.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Paul Brook [Thu, 9 Jul 2009 14:07:57 +0000 (15:07 +0100)]
MIPS usermode TLS register
Implement cpu_set_tls for MIPS.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Paul Brook [Thu, 9 Jul 2009 12:11:52 +0000 (13:11 +0100)]
Fix MIPS sys_clone
The clone syscall takes 6 args.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Gerd Hoffmann [Tue, 30 Jun 2009 12:12:13 +0000 (14:12 +0200)]
qdev: convert ac97.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Tue, 30 Jun 2009 12:12:12 +0000 (14:12 +0200)]
qdev: convert es1370.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Tue, 30 Jun 2009 12:12:11 +0000 (14:12 +0200)]
qdev/pci: misc fixes.
* fix secondary bus setup.
* use base->name instead of "FIXME" for device name.
Yes, the device name is redundant. Only for drivers converted
to qdev already though. Once all drivers are converted we can
and should kill it.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Tue, 30 Jun 2009 12:12:09 +0000 (14:12 +0200)]
qdev: remove DeviceType
The only purpose DeviceType serves is creating a linked list of
DeviceInfo structs. This removes DeviceType and add a next field to
DeviceInfo instead, so the DeviceInfo structs can be changed that way.
Elimitates a pointless extra level of indirection.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Tue, 30 Jun 2009 12:12:08 +0000 (14:12 +0200)]
qdev: replace bus_type enum with bus_info struct.
BusInfo is filled with name and size (pretty much like I did for
DeviceInfo as well). There is also a function pointer to print
bus-specific device information to the monitor. sysbus is hooked
up there, I've also added a print function for PCI.
Device creation is slightly modified as well: The device type search
loop now also checks the bus type while scanning the list instead of
complaining thereafter in case of a mismatch. This effectively gives
each bus a private namespace for device names.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Paul Brook <paul@codesourcery.com>
Gerd Hoffmann [Tue, 30 Jun 2009 12:12:07 +0000 (14:12 +0200)]
qdev: update pci device registration.
Makes pci_qdev_register take a PCIDeviceInfo struct instead of a bunch
of parameters. Also adds config_read and config_write callbacks to
PCIDeviceInfo, so drivers needing these can be converted to the qdev
device API too.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
malc [Wed, 8 Jul 2009 14:25:37 +0000 (18:25 +0400)]
Remove SDL/ prefix
malc [Wed, 8 Jul 2009 14:24:05 +0000 (18:24 +0400)]
Add out of memory and zero size argument checks to be consistent with
the qemu_malloc routines
Ulrich Hecht [Fri, 3 Jul 2009 15:09:30 +0000 (17:09 +0200)]
getrlimit conversion mix-up
Fixes getrlimit implementation that overwrote the result of the syscall
instead of converting it
Signed-off-by: Ulrich Hecht <uli@suse.de>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Ulrich Hecht [Fri, 3 Jul 2009 15:09:29 +0000 (17:09 +0200)]
wrap path for access syscall
Signed-off-by: Ulrich Hecht <uli@suse.de>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Ulrich Hecht [Fri, 3 Jul 2009 15:09:28 +0000 (17:09 +0200)]
64-bit clean socketcall syscall
makes socketcall 64-bit clean so it works on 64-bit big-endian systems
Signed-off-by: Ulrich Hecht <uli@suse.de>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Ulrich Hecht [Fri, 3 Jul 2009 15:09:26 +0000 (17:09 +0200)]
pipe argument should not be signed
pipedes is an address, it should not be signed (breaks for addresses
> 0x80000000)
Signed-off-by: Ulrich Hecht <uli@suse.de>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Riku Voipio [Mon, 29 Jun 2009 14:26:11 +0000 (17:26 +0300)]
configure: remove bogus linux-user check
linux-user=yes is not a reliable identifier that linux-user targets
have been selected. user targets can be selected via --target-list
as well.
vibi sreenivasan [Fri, 19 Jun 2009 08:04:39 +0000 (13:34 +0530)]
linux-user/syscall.c: remove warning: ‘array’ may be used uninitialized in this function
Removes the following warning
CC i386-linux-user/syscall.o
cc1: warnings being treated as errors
/media/nfs/qemu/linux-user/syscall.c: In function ‘do_syscall’:
/media/nfs/qemu/linux-user/syscall.c:2219: warning: ‘array’ may be used uninitialized in this function
Signed-off-by: Vibi Sreenivasan <vibi_sreenivasan@cms.com>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Arnaud Patard [Fri, 19 Jun 2009 07:44:45 +0000 (10:44 +0300)]
linux-user: check some parameters for some socket syscalls.
This patch is fixing following issues :
- commit
8fea36025b9d6d360ff3b78f88a84ccf221807e8 was applied to
do_getsockname instead of do_accept.
- Some syscalls were not checking properly the memory addresses passed
as argument
- Add check before syscalls made for cases like do_getpeername() where
we're using the address parameter after doing the syscall
- Fix do_accept to return EINVAL instead of EFAULT when parameters
invalid to match with linux behaviour
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Arnaud Patard [Fri, 19 Jun 2009 07:39:36 +0000 (10:39 +0300)]
linux-user: increment MAX_ARG_PAGES
There's a error When doing something like that :
find / -type f -print0 | xargs -0 echo
[ done in a arm chroot with qemu-arm and linux binfmt stuff or with
find / -type f -print0 | qemu-arm -L <path> <path>/usr/bin/xargs -0
echo ]
Doing this outsite qemu is fine. The problem was the huge number of
parameters. Increasing MAX_ARG_PAGES is fixing that.
While I was at it, I've modified linux-user/main.c to report error code
of loader_exec. It helps to debug/know what's wrong.
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Blue Swirl [Sun, 5 Jul 2009 20:33:02 +0000 (20:33 +0000)]
Fix the PCI header type of APB
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Sun, 5 Jul 2009 18:50:32 +0000 (18:50 +0000)]
Update OpenBIOS images to r505
For Sparc64, this fixes the PCI bridge configuration bugs revealed by the
improved bridge handling (
b7ee1603c16c1feb0d439d2ddf6cf824119d0aab).
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Sun, 5 Jul 2009 08:11:39 +0000 (08:11 +0000)]
Fix Sparse warning
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Fri, 3 Jul 2009 19:25:29 +0000 (19:25 +0000)]
Work around Solaris gas problem
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>