Gleb Natapov [Wed, 8 Dec 2010 11:35:07 +0000 (13:35 +0200)]
Add bootindex for option roms.
Extend -option-rom command to have additional parameter ,bootindex=.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:35:06 +0000 (13:35 +0200)]
Change fw_cfg_add_file() to get full file path as a parameter.
Change fw_cfg_add_file() to get full file path as a parameter instead
of building one internally. Two reasons for that. First caller may need
to know how file is named. Second this moves policy of file naming out
from fw_cfg. Platform may want to use more then two levels of
directories for instance.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:35:05 +0000 (13:35 +0200)]
Add bootindex parameter to net/block/fd device
If bootindex is specified on command line a string that describes device
in firmware readable way is added into sorted list. Later this list will
be passed into firmware to control boot order.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:35:04 +0000 (13:35 +0200)]
Add get_fw_dev_path callback to scsi bus.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:35:03 +0000 (13:35 +0200)]
Add get_fw_dev_path callback for usb bus.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:35:02 +0000 (13:35 +0200)]
Record which USBDevice USBPort belongs too.
Ports on root hub will have NULL here. This is needed to reconstruct
path from device to its root hub to build device path.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:35:01 +0000 (13:35 +0200)]
Add get_fw_dev_path callback for pci bus.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:35:00 +0000 (13:35 +0200)]
Add get_fw_dev_path callback for system bus.
Prints out mmio or pio used to access child device.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:34:59 +0000 (13:34 +0200)]
Add get_fw_dev_path callback to IDE bus.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:34:58 +0000 (13:34 +0200)]
Store IDE bus id in IDEBus structure for easy access.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:34:57 +0000 (13:34 +0200)]
Add get_fw_dev_path callback to ISA bus in qdev.
Use device ioports to create unique device path.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:34:56 +0000 (13:34 +0200)]
Keep track of ISA ports ISA device is using in qdev.
Store all io ports used by device in ISADevice structure.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:34:55 +0000 (13:34 +0200)]
Introduce new BusInfo callback get_fw_dev_path.
New get_fw_dev_path callback will be used for build device path usable
by firmware in contrast to qdev qemu internal device path.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Gleb Natapov [Wed, 8 Dec 2010 11:34:54 +0000 (13:34 +0200)]
Introduce fw_name field to DeviceInfo structure.
Add "fw_name" to DeviceInfo to use in device path building. In
contrast to "name" "fw_name" should refer to functionality device
provides instead of particular device model like "name" does.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Sat, 11 Dec 2010 18:56:27 +0000 (18:56 +0000)]
monitor: implement x86 info mem for PAE and long modes
'info mem' didn't show correct information for PAE mode and
x86_64 long mode.
Fix by implementing the output for missing modes.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Sat, 11 Dec 2010 18:56:24 +0000 (18:56 +0000)]
monitor: implement x86 info tlb for PAE and long modes
'info tlb' didn't show correct information for PAE mode and
x86_64 long mode.
Implement the missing modes. Also print NX bit for PAE and long modes.
Fix off-by-one error in 32 bit mode mask.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Bernhard Kohl [Wed, 8 Dec 2010 14:59:55 +0000 (15:59 +0100)]
wdt_i6300esb: register a reset function
The device shall set its default hardware state after each reset.
This includes that the timer is stopped which is especially important
if the guest does a reboot independantly of a watchdog bite. I moved
the initialization of the state variables completely from the init
to the reset function which is called right after init during the
first boot and afterwards during each reboot.
Signed-off-by: Bernhard Kohl <bernhard.kohl@nsn.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Tristan Gingold [Fri, 3 Dec 2010 11:05:03 +0000 (12:05 +0100)]
isa-bus.c: use hw_error instead of fprintf
Minor clean-up in isa-bus.c. Using hw_error is more consistent.
There is a difference however: hw_error dumps the cpu state.
Signed-off-by: Tristan Gingold <gingold@adacore.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:50 +0000 (12:05 +0100)]
usb_ohci: Always use little endian
This patch replaces explicit bswaps with endianness hints to the
mmio layer.
Because we don't depend on the target endianness anymore, we can also
move the driver over to Makefile.objs.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:49 +0000 (12:05 +0100)]
isa_mmio: Always use little endian
This patch converts the ISA MMIO bridge code to always use little endian mmio.
All bswap code that existed was only there to convert from native cpu
endianness to little endian ISA devices.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:48 +0000 (12:05 +0100)]
heathrow_pic: Declare as little endian
This patch replaces explicit bswaps with endianness hints to the
mmio layer.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:47 +0000 (12:05 +0100)]
rtl8139: Declare as little endian
This patch replaces explicit bswaps with endianness hints to the
mmio layer.
Because we don't depend on the target endianness anymore, we can also
move the driver over to Makefile.objs.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:46 +0000 (12:05 +0100)]
openpic: Replace explicit byte swap with endian hints
This patch replaces explicit bswaps with endianness hints to the
mmio layer.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:45 +0000 (12:05 +0100)]
ppc4xx_pci: Declare as little endian
This patch replaces explicit bswaps with endianness hints to the
mmio layer.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:44 +0000 (12:05 +0100)]
versatile_pci: Declare as little endian
This patch replaces explicit bswaps with endianness hints to the
mmio layer.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:43 +0000 (12:05 +0100)]
prep: Declare as little endian
This patch replaces explicit bswaps with endianness hints to the
mmio layer.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:42 +0000 (12:05 +0100)]
e1000: Make little endian
The e1000 has compatibility code to handle big endianness which makes it
mandatory to be recompiled on different targets.
With the generic mmio endianness solution, there's no need for that anymore.
We just declare all mmio to be little endian and call it a day.
Because we don't depend on the target endianness anymore, we can also
move the driver over to Makefile.objs.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:41 +0000 (12:05 +0100)]
uninorth: Get rid of bswap
There's no need to bswap once we correctly set the mmio to be little endian.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:40 +0000 (12:05 +0100)]
pci-host: Delegate bswap to mmio layer
The only reason we have bswap versions of the pci host code is that
most pci host devices are little endian. The ppc e500 is the only
odd one here, being big endian.
So let's directly pass the endianness down to the mmio layer and not
worry about it on the pci host layer.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:39 +0000 (12:05 +0100)]
dbdma: Make little endian
The device is only used on big endian systems, but always byte swaps. That's
a very good indicator that it's actually a little endian device ;-).
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:38 +0000 (12:05 +0100)]
Make simple io mem handler endian aware
As an alternative to the 3 individual handlers, there is also a simplified
io mem hook function. To be consistent, let's add an endianness parameter
there too.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:37 +0000 (12:05 +0100)]
Add endianness as io mem parameter
As stated before, devices can be little, big or native endian. The
target endianness is not of their concern, so we need to push things
down a level.
This patch adds a parameter to cpu_register_io_memory that allows a
device to choose its endianness. For now, all devices simply choose
native endian, because that's the same behavior as before.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Alexander Graf [Wed, 8 Dec 2010 11:05:36 +0000 (12:05 +0100)]
exec: introduce endianness swapped mmio
The way we're currently modeling mmio is too simplified. We assume that
every device has the same endianness as the target CPU. In reality,
most devices are little endian (all PCI and ISA ones I'm aware of). Some
are big endian (special system devices) and a very little fraction is
target native endian (fw_cfg).
So instead of assuming every device to be native endianness, let's move
to a model where the device tells us which endianness it's in.
That way we can compile the devices only once and get rid of all the ugly
swap will be done by the underlying layer.
For the same of readability, this patch only introduces the helper framework
but doesn't allow the registering code to set its endianness yet.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Michael Walle [Wed, 8 Dec 2010 23:34:51 +0000 (00:34 +0100)]
noaudio: fix return value for read()
Read should return bytes instead of samples.
Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: malc <av1474@comtv.ru>
Alexander Graf [Thu, 25 Nov 2010 07:20:46 +0000 (08:20 +0100)]
ppc: kvm: fix signedness warning
I get a warning on a signed comparison with an unsigned variable, so
let's make the variable signed and be happy.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Edgar E. Iglesias <edgar@axis.com>
Kirill Batuzov [Thu, 2 Dec 2010 13:12:46 +0000 (16:12 +0300)]
Speedup 'tb_find_slow' by using the same heuristic as during memory page lookup
Move the last found TB to the head of the list so it will be found more quickly next time it will be looked for.
Signed-off-by: Kirill Batuzov <batuzovk@ispras.ru>
Signed-off-by: Pavel Yushchenko <pau@ispras.ru>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Peter Maydell [Wed, 1 Dec 2010 19:44:38 +0000 (19:44 +0000)]
Remove unused spin_trylock() function
Remove the spin_trylock() function, as it is not used anywhere,
and is not even implemented if CONFIG_USE_NPTL is defined.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Stefan Weil [Mon, 15 Nov 2010 20:00:48 +0000 (21:00 +0100)]
darwin-user: Use GCC_FMT_ATTR (format checking)
The redundant forward declaration of qerror in machload.c
is removed because it should be taken from qemu.h.
Please note that this patch is untested because
I have no matching environment to compile it.
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Stefan Weil [Mon, 15 Nov 2010 19:54:12 +0000 (20:54 +0100)]
audio: Use GCC_FMT_ATTR (format checking)
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Stefan Weil [Mon, 15 Nov 2010 18:58:41 +0000 (19:58 +0100)]
target-sparc: Use fprintf_function (format checking)
This change was missing in commit
9a78eead0c74333a394c0f7bbfc4423ac746fcd5.
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Stefan Weil [Mon, 15 Nov 2010 18:39:43 +0000 (19:39 +0100)]
*-dis: Replace fprintf_ftype by fprintf_function (format checking)
This patch adds more printf format checking.
Additional modifications were needed for this code change:
* alpha-dis.c: The local definition of MAX conflicts with
a previous definition from osdep.h, so add an #undef.
* dis-asm.h: Add include for fprintf_function (qemu-common.h).
The standard (now redundant) includes are removed.
* mis-dis.c: The definition of ARRAY_SIZE is no longer needed
and must be removed (conflict with previous definition from
qemu-common.h).
* sh4-dis.c: Remove some unneeded forward declarations.
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Sat, 4 Dec 2010 17:37:35 +0000 (17:37 +0000)]
Fix mingw32 and OpenBSD warnings
ffsl() is not universally available, so there are these warnings
on both mingw32 and OpenBSD:
/src/qemu/hw/pcie_aer.c: In function 'pcie_aer_update_log':
/src/qemu/hw/pcie_aer.c:399: warning: implicit declaration of function 'ffsl'
Since status field in PCIEAERErr is uint32_t, we can just use ffs() instead.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Edgar E. Iglesias [Sat, 4 Dec 2010 03:18:28 +0000 (04:18 +0100)]
Merge branch 'linux-user-for-upstream' of git://gitorious.org/qemu-maemo/qemu
* 'linux-user-for-upstream' of git://gitorious.org/qemu-maemo/qemu:
linux-user: fix mips and ppc to use UID16
update binfmt conf
linux-user: fix compiler error on nptl
ARM: linux-user: Restore iWMMXT state from ucontext on sigreturn
ARM: linux-user: Expose iWMMXT registers to signal handlers
ARM: linux-user: Restore VFP state from ucontext on sigreturn
ARM: linux-user: Expose VFP registers to signal handlers
ARM: Expose vfp_get_fpscr() and vfp_set_fpscr() to C code
ARM: linux-user: Correct size of padding in target_ucontext_v2
target-sparc: remove unused functions cpu_lock(), cpu_unlock()
ARM: enable XScale/iWMMXT in linux-user mode
linux-user: Translate getsockopt level option
linux-user: remove unnecessary local from __get_user(), __put_user()
linux-user: fix memory leaks with NPTL emulation
linux-user: mmap_reserve() not controlled by RESERVED_VA
[PATCH] target-arm: remove unused functions cpu_lock(), cpu_unlock()
Stefan Hajnoczi [Fri, 3 Dec 2010 17:09:01 +0000 (17:09 +0000)]
exec: Remove debugging fprintf() that slipped into qemu_ram_alloc_from_ptr()
Remove the debugging fprintf() slipped in via the following commit:
commit
b2e0a138e77245290428a7d599a929e2e1bfe510
Author: Michael S. Tsirkin <mst@redhat.com>
Date: Mon Nov 22 19:52:34 2010 +0200
migration: stable ram block ordering
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Martin Mohring [Sun, 7 Nov 2010 19:31:57 +0000 (20:31 +0100)]
linux-user: fix mips and ppc to use UID16
Signed-off-by: Martin Mohring <martin.mohring@5edatasoft.com>
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Riku Voipio [Wed, 1 Dec 2010 12:53:10 +0000 (14:53 +0200)]
update binfmt conf
1) dont register i386 qemu on x86_64 host
2) widen sparc and arm match
3) add sh4, based on patch by David Kozub <zub@linux.fjfi.cvut.cz>
Rest based on patch by Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Riku Voipio [Fri, 26 Nov 2010 14:21:34 +0000 (16:21 +0200)]
linux-user: fix compiler error on nptl
Some compilers detect that new_stack isnt used after
dd75d784
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Peter Maydell [Wed, 24 Nov 2010 15:20:08 +0000 (15:20 +0000)]
ARM: linux-user: Restore iWMMXT state from ucontext on sigreturn
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Peter Maydell [Wed, 24 Nov 2010 15:20:07 +0000 (15:20 +0000)]
ARM: linux-user: Expose iWMMXT registers to signal handlers
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Peter Maydell [Wed, 24 Nov 2010 15:20:06 +0000 (15:20 +0000)]
ARM: linux-user: Restore VFP state from ucontext on sigreturn
Restore the VFP registers from the ucontext on return from a signal
handler in linux-user mode. This means that signal handlers cannot
accidentally corrupt the interrupted code's VFP state, and allows
them to deliberately modify the state via the ucontext structure.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Peter Maydell [Wed, 24 Nov 2010 15:20:05 +0000 (15:20 +0000)]
ARM: linux-user: Expose VFP registers to signal handlers
For ARM linux-user mode signal handlers, fill in the ucontext with
VFP register contents in the same way that the kernel does. We only
do this for v2 format sigframe (2.6.12 and above); this is actually
bug-for-bug compatible with the older kernels, which don't save and
restore VFP registers either.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Peter Maydell [Wed, 24 Nov 2010 15:20:04 +0000 (15:20 +0000)]
ARM: Expose vfp_get_fpscr() and vfp_set_fpscr() to C code
Expose the vfp_get_fpscr() and vfp_set_fpscr() functions to C
code as well as generated code, so we can use them to read and
write the FPSCR when saving and restoring VFP registers across
signal handlers in linux-user mode.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Peter Maydell [Wed, 24 Nov 2010 15:20:03 +0000 (15:20 +0000)]
ARM: linux-user: Correct size of padding in target_ucontext_v2
The padding in the target_ucontext_v2 is defined by the size of
the target's sigset_t type, not the host's. (This bug only causes
problems when we start using the uc_regspace[] array to expose
VFP registers to userspace signal handlers.)
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Peter Maydell [Fri, 19 Nov 2010 13:54:39 +0000 (13:54 +0000)]
target-sparc: remove unused functions cpu_lock(), cpu_unlock()
Peter Maydell [Fri, 19 Nov 2010 15:36:47 +0000 (15:36 +0000)]
ARM: enable XScale/iWMMXT in linux-user mode
In linux-user mode, the XScale/iWMMXT coprocessors must be enabled
at reset so that we can run code that uses these instructions.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Jamie Lentin [Fri, 26 Nov 2010 13:04:08 +0000 (15:04 +0200)]
linux-user: Translate getsockopt level option
n setsockopt, the socket level options are translated to the hosts'
architecture before the real syscall is called, e.g.
TARGET_SO_TYPE -> SO_TYPE. This patch does the same with getsockopt.
Tested on a x86 host emulating MIPS. Without it:-
$ grep getsockopt host.strace
31311 getsockopt(3, SOL_SOCKET, 0x1007 /* SO_??? */, 0xbff17208,
0xbff17204) = -1 ENOPROTOOPT (Protocol not available)
With:-
$ grep getsockopt host.strace
25706 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
Whitespace cleanup: Riku Voipio
Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Peter Maydell [Mon, 8 Nov 2010 18:13:58 +0000 (18:13 +0000)]
linux-user: remove unnecessary local from __get_user(), __put_user()
Remove an unnecessary local variable from the __get_user() and
__put_user() macros. This avoids confusing compilation failures
if the name of the local variable ('size') happens to be the
same as the variable the macro user is trying to read/write.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Nathan Froyd [Fri, 29 Oct 2010 14:48:57 +0000 (07:48 -0700)]
linux-user: fix memory leaks with NPTL emulation
Running programs that create large numbers of threads, such as this
snippet from libstdc++'s pthread7-rope.cc:
const int max_thread_count = 4;
const int max_loop_count = 10000;
...
for (int j = 0; j < max_loop_count; j++)
{
...
for (int i = 0; i < max_thread_count; i++)
pthread_create (&tid[i], NULL, thread_main, 0);
for (int i = 0; i < max_thread_count; i++)
pthread_join (tid[i], NULL);
}
in user-mode emulation will quickly run out of memory. This is caused
by a failure to free memory in do_syscall prior to thread exit:
/* TODO: Free CPU state. */
pthread_exit(NULL);
The first step in fixing this is to make all TaskStates used by QEMU
dynamically allocated. The TaskState used by the initial thread was
not, as it was allocated on main's stack. So fix that, free the
cpu_env, free the TaskState, and we're home free, right?
Not exactly. When we create a thread, we do:
ts = qemu_mallocz(sizeof(TaskState) + NEW_STACK_SIZE);
...
new_stack = ts->stack;
...
ret = pthread_attr_setstack(&attr, new_stack, NEW_STACK_SIZE);
If we blindly free the TaskState, then, we yank the current (host)
thread's stack out from underneath it while it still has things to do,
like calling pthread_exit. That causes problems, as you might expect.
The solution adopted here is to let the C library allocate the thread's
stack (so the C library can properly clean it up at pthread_exit) and
provide a hint that we want NEW_STACK_SIZE bytes of stack.
With those two changes, we're done, right? Well, almost. You see,
we're creating all these host threads and their parent threads never
bother to check that their children are finished. There's no good place
for the parent threads to do so. Therefore, we need to create the
threads in a detached state so the parent thread doesn't have to call
pthread_join on the child to release the child's resources; the child
does so automatically.
With those three major changes, we can comfortably run programs like the
above without exhausting memory. We do need to delete 'stack' from the
TaskState structure.
Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
amateur [Tue, 14 Sep 2010 05:22:34 +0000 (13:22 +0800)]
linux-user: mmap_reserve() not controlled by RESERVED_VA
mmap_reserve() should be called only when RESERVED_VA is enabled.
Otherwise, unmaped virtual address space will never be reusable. This
bug will exhaust virtual address space in extreme conditions.
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Peter Maydell [Fri, 19 Nov 2010 13:54:44 +0000 (13:54 +0000)]
[PATCH] target-arm: remove unused functions cpu_lock(), cpu_unlock()
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Anthony Liguori [Thu, 2 Dec 2010 20:41:59 +0000 (14:41 -0600)]
Fix build
msix.o and msi.o get pulled into the build unconditionally for QMP.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Thu, 2 Dec 2010 20:16:40 +0000 (14:16 -0600)]
Merge remote branch 'mst/for_anthony' into staging
Jason Wang [Sat, 27 Nov 2010 14:05:07 +0000 (22:05 +0800)]
vhost: Fix address calculation in vhost_dev_sync_region()
We still need advance address even we find there's no dirty pages in
current chunk.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Michael S. Tsirkin [Tue, 23 Nov 2010 17:05:54 +0000 (19:05 +0200)]
migration: allow rate > 4g
I'd like to disable bandwidth limit or make it very high,
Use int64_t all over to make values >= 4g work.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Jason Wang <jasowang@redhat.com>
Michael S. Tsirkin [Mon, 22 Nov 2010 17:52:34 +0000 (19:52 +0200)]
migration: stable ram block ordering
This makes ram block ordering under migration stable, ordered by offset.
This is especially useful for migration to exec, for debugging.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Jason Wang <jasowang@redhat.com>
Richard Henderson [Mon, 22 Nov 2010 22:57:58 +0000 (14:57 -0800)]
tcg-ia64: Fix warning in qemu_ld.
The usermode version of qemu_ld doesn't used mem_index,
leading to set-but-not-used warnings.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Edgar E. Iglesias <edgar@axis.com>
Richard Henderson [Mon, 22 Nov 2010 22:57:57 +0000 (14:57 -0800)]
tcg-ia64: Fix address compilation in qemu_st.
A typo in the usermode address calculation path; R3 used where R2 needed.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Edgar E. Iglesias <edgar@axis.com>
Richard Henderson [Mon, 22 Nov 2010 22:57:56 +0000 (14:57 -0800)]
tcg-ia64: Fix tlb read error for 32-bit targets.
Use ld4 not ld8 for reading the tlb of 32-bit targets.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Edgar E. Iglesias <edgar@axis.com>
Richard Henderson [Mon, 22 Nov 2010 22:57:55 +0000 (14:57 -0800)]
tcg-ia64: Implement qemu_ld32.
The port was not properly merged following
86feb1c860dc38e9c89e787c5210e8191800385e
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Edgar E. Iglesias <edgar@axis.com>
Richard Henderson [Mon, 22 Nov 2010 22:57:54 +0000 (14:57 -0800)]
tcg-ia64: Provide default GUEST_BASE.
Fix compilation error when GUEST_BASE is not defined.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Edgar E. Iglesias <edgar@axis.com>
Richard Henderson [Mon, 22 Nov 2010 22:57:53 +0000 (14:57 -0800)]
tcg: Fix default definition of divu_i32 and remu_i32.
The arguments to tcg_gen_helper32 for these functions were not
updated correctly in rev
2bece2c88331f024a46527634e3dd91c71d22141.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Edgar E. Iglesias <edgar@axis.com>
Michael S. Tsirkin [Wed, 1 Dec 2010 05:11:51 +0000 (07:11 +0200)]
Merge remote branch 'origin/master' into pci
Conflicts:
Makefile.objs
hw/virtio.c
Anthony Liguori [Tue, 30 Nov 2010 21:25:34 +0000 (15:25 -0600)]
Merge remote branch 'kwolf/for-anthony' into staging
Anthony Liguori [Tue, 30 Nov 2010 21:24:26 +0000 (15:24 -0600)]
Merge remote branch 'qmp/for-anthony' into staging
Anthony Liguori [Thu, 9 Sep 2010 19:51:31 +0000 (14:51 -0500)]
Use a Linux-style MAINTAINERS file
I make no claims that this is accurate or exhaustive but I think it's a
reasonable place to start.
As the file mentions, the purpose of this file is to give contributors
information about who they can go to with questions about a particular piece of
code or who they can ask for review.
If you sign up for a piece of code and indicate that it's Maintained or
Supported, please be prepared to be responsive to questions about that
subsystem.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
---
v1 -> v2
- Sort alphabetically
- Copy in instructions from linux MAINTAINERS
- Fix entries based on review feedback
Kevin Wolf [Fri, 26 Nov 2010 15:36:16 +0000 (16:36 +0100)]
ide: Reset current_addr after stopping DMA
Whenever SSBM is reset in the command register all state information is lost.
Restarting DMA means that current_addr must be reset to the base address of the
PRD table. The OS is not required to change the base address register before
starting a DMA operation, it can reuse the value it wrote for an earlier
request.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Kevin Wolf [Fri, 26 Nov 2010 15:44:53 +0000 (16:44 +0100)]
ide: Ignore double DMA transfer starts/stops
You can only start a DMA transfer if it's not running yet, and you can only
cancel it if it's running.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Kevin Wolf [Fri, 26 Nov 2010 15:47:42 +0000 (16:47 +0100)]
ide: Set bus master inactive on error
BMIDEA in the status register must be cleared on error. This makes FreeBSD
respond (more) correctly to I/O errors.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Kevin Wolf [Fri, 26 Nov 2010 15:31:37 +0000 (16:31 +0100)]
ide: Factor ide_dma_set_inactive out
Several places that stop a DMA transfer duplicate this code. Factor it out into
a common function.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Paul Brook [Sat, 27 Nov 2010 11:56:02 +0000 (11:56 +0000)]
Add pcnet-pci.c
Add file missing from last commit.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Paul Brook [Sat, 27 Nov 2010 11:23:34 +0000 (11:23 +0000)]
Split out common pcnet code
The core pcnet emulation code is used by both the PCI "pcnet" device
and the SPARC "lance" device. Split the common code frm the PCI code so
that that can be configures independantly.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Paul Brook [Sat, 27 Nov 2010 10:33:55 +0000 (10:33 +0000)]
Remove PCI from sparc32 target
None of the (current) sparc32 machines have a PCI bus, so remove the PCI
code from these configs.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Paul Brook [Sat, 27 Nov 2010 00:43:04 +0000 (00:43 +0000)]
Detect missing config includes
Terminate make_device_config.sh if the awk command fails.
Typically this means a missing file.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Paul Brook [Sat, 27 Nov 2010 00:34:15 +0000 (00:34 +0000)]
Fix previous commit
Fix breakage from previous commit (missing pci.mak, and incorrect
include in default-configs/s390x-softmmu.mak).
Signed-off-by: Paul Brook <paul@codesourcery.com>
Paul Brook [Fri, 26 Nov 2010 22:08:48 +0000 (22:08 +0000)]
VirtIO config option
Make virtio devices optional. Selecting individual devices is not useful
as the host bindings are all in one file.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Paul Brook [Fri, 26 Nov 2010 21:39:42 +0000 (21:39 +0000)]
PCI config include
Split PCI config options into a separate file
Signed-off-by: Paul Brook <paul@codesourcery.com>
Paul Brook [Fri, 26 Nov 2010 18:47:45 +0000 (18:47 +0000)]
Include directives in default configs
Allow default configs to be split into several files.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Paul Brook [Fri, 26 Nov 2010 18:46:03 +0000 (18:46 +0000)]
Add missing dependency.
Teach Makefile that cmd.o depends on a generated header (specifically
config-host.h).
Signed-off-by: Paul Brook <paul@codesourcery.com>
Christoph Hellwig [Fri, 26 Nov 2010 13:32:34 +0000 (14:32 +0100)]
raw-posix: raw_pwrite comment fixup
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Hannes Reinecke [Wed, 24 Nov 2010 11:16:00 +0000 (12:16 +0100)]
scsi-disk: Remove duplicate cdb parsing
We parse the CDB twice, which is completely unnecessary.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Hannes Reinecke [Wed, 24 Nov 2010 11:15:59 +0000 (12:15 +0100)]
scsi: Move sense handling into the driver
The current sense handling in scsi-bus is only used by the
scsi-disk driver; the scsi-generic driver is using its own.
So we should move the current sense handling into the
scsi-disk driver.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Hannes Reinecke [Wed, 24 Nov 2010 11:15:58 +0000 (12:15 +0100)]
scsi: INQUIRY VPD fixes
We should announce and support the block device characterics page
only on block devices, not on CDROMs. And the VPD page 0x83 has
an off-by-one error.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Hannes Reinecke [Wed, 24 Nov 2010 11:15:57 +0000 (12:15 +0100)]
scsi: Return SAM status codes
Traditionally, the linux stack is using SCSI status codes
which are shifted by one as compared to those defined in SAM.
A SCSI emulation should naturally return the SAM defined codes,
not the linux ones.
So to avoid any confusion this patch modifies the existing
definitions to match those found in SAM and removes any
(now obsolete) byte-shift from the returned status codes.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Hannes Reinecke [Wed, 24 Nov 2010 11:15:56 +0000 (12:15 +0100)]
scsi: Increase the number of possible devices
The SCSI parallel interface has a limit of 8 devices, but
not the SCSI stack in general. So we should be removing the
hard-coded limit and use MAX_SCSI_DEVS instead.
And we only need to scan those devices which are allocated
by the bus.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Kevin Wolf [Tue, 16 Nov 2010 17:55:01 +0000 (18:55 +0100)]
block: Remove unused s->hd in various drivers
All drivers use bs->file instead of s->hd for quite a while now, so it's time
to remove s->hd.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Stefano Stabellini [Wed, 24 Nov 2010 13:08:03 +0000 (13:08 +0000)]
qemu and qemu-xen: support empty write barriers in xen_disk
This patch can be applied to both qemu-xen and qemu and adds support
for empty write barriers to xen_disk.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Avi Kivity [Sun, 21 Nov 2010 16:29:52 +0000 (18:29 +0200)]
ide: convert bmdma address ioport to ioport_register()
cmd646, via compile tested, pci lightly boot tested.
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Marcelo Tosatti [Fri, 12 Nov 2010 18:07:50 +0000 (16:07 -0200)]
block migration: do not submit multiple AIOs for same sector (v2)
An old version of this patch was applied to master, so this contains the
differences between v1 and v2.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Ryan Harper [Fri, 12 Nov 2010 17:07:13 +0000 (11:07 -0600)]
Implement drive_del to decouple block removal from device removal
Currently device hotplug removal code is tied to device removal via
ACPI. All pci devices that are removable via device_del() require the
guest to respond to the request. In some cases the guest may not
respond leaving the device still accessible to the guest. The management
layer doesn't currently have a reliable way to revoke access to host
resource in the presence of an uncooperative guest.
This patch implements a new monitor command, drive_del, which
provides an explicit command to revoke access to a host block device.
drive_del first quiesces the block device (qemu_aio_flush;
bdrv_flush() and bdrv_close()). This prevents further IO from being
submitted against the host device. Finally, drive_del cleans up
pointers between the drive object (host resource) and the device
object (guest resource).
Signed-off-by: Ryan Harper <ryanh@us.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Stefan Hajnoczi [Fri, 12 Nov 2010 09:57:11 +0000 (09:57 +0000)]
scsi-disk: Move active request asserts
SCSI read/write requests should not be re-issued before the current
fragment of I/O completes. There are asserts in scsi-disk.c that guard
this constraint but they trigger on SPARC Linux 2.4. It turns out that
the asserts are too early in the code path and don't allow for read
requests to terminate.
Only the read assert needs to be moved but move the write assert too for
consistency.
Reported-by: Nigel Horne <njh@bandsman.co.uk>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>