sdk/emulator/qemu.git
14 years agounbreak "make" from tests directory
Paolo Bonzini [Thu, 21 Oct 2010 08:18:35 +0000 (10:18 +0200)]
unbreak "make" from tests directory

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agomips_fulong2e: fix ram allocation
Blue Swirl [Fri, 22 Oct 2010 18:26:08 +0000 (18:26 +0000)]
mips_fulong2e: fix ram allocation

RAM registration used incorrect offset.

Fix by using the offset obtained previously for this purpose.

Spotted by GCC 4.6.0 20100925 warning, which is also avoided.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoReplace remaining gcc format attributes by macro GCC_FMT_ATTR (format checking)
Stefan Weil [Wed, 13 Oct 2010 18:54:27 +0000 (20:54 +0200)]
Replace remaining gcc format attributes by macro GCC_FMT_ATTR (format checking)

Replace the remaining format attribute printf by macro
GCC_FMT_ATTR which uses gnu_printf (if supported).

v2
* Removal of dyngen specific code is now done in a separate patch.
* Handle attribute in new ui/spice-display.c, too.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoRemove special handling of system include files (no longer needed)
Stefan Weil [Wed, 13 Oct 2010 18:54:26 +0000 (20:54 +0200)]
Remove special handling of system include files (no longer needed)

The formerly used dyngen code did not work with
system include files like stdio.h.

Tests with Linux, OSX and Win32 show that this
restriction is no longer needed.

So we hopefully can remove that special piece of code.
This results in cleaner code and allows better use of
the new GCC_FMT_ATTR macro.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoMerge remote branch 'qemu-kvm/uq/master' into staging
Anthony Liguori [Fri, 22 Oct 2010 13:02:14 +0000 (08:02 -0500)]
Merge remote branch 'qemu-kvm/uq/master' into staging

14 years agocurses: Fix control-{@[\]^_} and ESC
Samuel Thibault [Tue, 19 Oct 2010 17:48:20 +0000 (19:48 +0200)]
curses: Fix control-{@[\]^_} and ESC

control-{@[\]^_} shouldn't get the 'a' - 'A' offset for correct
translation. ESC is better simulated as escape key.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: Andrew Zaborowski <balrogg@gmail.com>
14 years agokvm: save/restore x86-64 MSRs on x86-64 kernels
Marcelo Tosatti [Thu, 21 Oct 2010 15:35:04 +0000 (13:35 -0200)]
kvm: save/restore x86-64 MSRs on x86-64 kernels

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
14 years agokvm: writeback SMP TSCs on migration only
Marcelo Tosatti [Thu, 21 Oct 2010 15:35:03 +0000 (13:35 -0200)]
kvm: writeback SMP TSCs on migration only

commit 6389c45441269baa2873e6feafebd17105ddeaf6
Author: Jan Kiszka <jan.kiszka@siemens.com>
Date:   Mon Mar 1 18:17:26 2010 +0100

    qemu-kvm: Cleanup/fix TSC and PV clock writeback

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
14 years agokvm: factor out kvm_has_msr_star
Marcelo Tosatti [Thu, 21 Oct 2010 15:35:02 +0000 (13:35 -0200)]
kvm: factor out kvm_has_msr_star

And add kvm_has_msr_hsave_pa(), to avoid warnings on older
kernels without support.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
14 years agokvm: add save/restore of MSR_VM_HSAVE_PA
Marcelo Tosatti [Thu, 21 Oct 2010 15:35:01 +0000 (13:35 -0200)]
kvm: add save/restore of MSR_VM_HSAVE_PA

commit 2bba4446746add456ceeb0e8359a43032a2ea333
Author: Alexander Graf <agraf@suse.de>
Date:   Thu Dec 18 15:38:32 2008 +0100

    Enable nested SVM support in userspace

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
14 years agoFix build on !KVM_CAP_MCE
Hidetoshi Seto [Thu, 21 Oct 2010 08:23:14 +0000 (17:23 +0900)]
Fix build on !KVM_CAP_MCE

This patch removes following warnings:

target-i386/kvm.c: In function 'kvm_put_msrs':
target-i386/kvm.c:782: error: unused variable 'i'
target-i386/kvm.c: In function 'kvm_get_msrs':
target-i386/kvm.c:1083: error: label at end of compound statement

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
14 years agox86, mce: broadcast mce depending on the cpu version
Hidetoshi Seto [Thu, 21 Oct 2010 08:47:06 +0000 (17:47 +0900)]
x86, mce: broadcast mce depending on the cpu version

There is no reason why SRAO event received by the main thread
is the only one that being broadcasted.

According to the x86 ASDM vol.3A 15.10.4.1,
MCE signal is broadcast on processor version 06H_EH or later.

This change is required to handle SRAR in smp guests.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
14 years agox86, mce: ignore SRAO only when MCG_SER_P is available
Hidetoshi Seto [Thu, 21 Oct 2010 08:46:49 +0000 (17:46 +0900)]
x86, mce: ignore SRAO only when MCG_SER_P is available

And restruct this block to call kvm_mce_in_exception() only when it is
required.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
14 years agoFix pci hotplug to generate level triggered interrupt.
Gleb Natapov [Sun, 17 Oct 2010 09:45:25 +0000 (11:45 +0200)]
Fix pci hotplug to generate level triggered interrupt.

SCI is level triggered. pci hotplug should behave appropriately.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoUse defines instead of numbers for pci hotplug sts bit
Gleb Natapov [Sun, 17 Oct 2010 09:45:24 +0000 (11:45 +0200)]
Use defines instead of numbers for pci hotplug sts bit

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoFix memory leak in register save load due to xsave support
Marcelo Tosatti [Tue, 19 Oct 2010 11:00:34 +0000 (09:00 -0200)]
Fix memory leak in register save load due to xsave support

From: Avi Kivity <avi@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
14 years agoAdd savevm/loadvm support for MCE
Marcelo Tosatti [Mon, 11 Oct 2010 18:31:22 +0000 (15:31 -0300)]
Add savevm/loadvm support for MCE

Port qemu-kvm's

commit 1bab5d11545d8de5facf46c28630085a2f9651ae
Author: Huang Ying <ying.huang@intel.com>
Date:   Wed Mar 3 16:52:46 2010 +0800

    Add savevm/loadvm support for MCE

    MCE registers are saved/load into/from CPUState in
    kvm_arch_save/load_regs. To simulate the MCG_STATUS clearing upon
    reset, MSR_MCG_STATUS is set to 0 for KVM_PUT_RESET_STATE.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
14 years agoMCE: Relay UCR MCE to guest
Marcelo Tosatti [Mon, 11 Oct 2010 18:31:21 +0000 (15:31 -0300)]
MCE: Relay UCR MCE to guest

Port qemu-kvm's

commit 4b62fff1101a7ad77553147717a8bd3bf79df7ef
Author: Huang Ying <ying.huang@intel.com>
Date:   Mon Sep 21 10:43:25 2009 +0800

    MCE: Relay UCR MCE to guest

    UCR (uncorrected recovery) MCE is supported in recent Intel CPUs,
    where some hardware error such as some memory error can be reported
    without PCC (processor context corrupted). To recover from such MCE,
    the corresponding memory will be unmapped, and all processes accessing
    the memory will be killed via SIGBUS.

    For KVM, if QEMU/KVM is killed, all guest processes will be killed
    too. So we relay SIGBUS from host OS to guest system via a UCR MCE
    injection. Then guest OS can isolate corresponding memory and kill
    necessary guest processes only. SIGBUS sent to main thread (not VCPU
    threads) will be broadcast to all VCPU threads as UCR MCE.

aliguori: fix build

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd RAM -> physical addr mapping in MCE simulation
Huang Ying [Mon, 11 Oct 2010 18:31:20 +0000 (15:31 -0300)]
Add RAM -> physical addr mapping in MCE simulation

In QEMU-KVM, physical address != RAM address. While MCE simulation
needs physical address instead of RAM address. So
kvm_physical_memory_addr_from_ram() is implemented to do the
conversion, and it is invoked before being filled in the IA32_MCi_ADDR
MSR.

Reported-by: Dean Nelson <dnelson@redhat.com>
Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
14 years agoExport qemu_ram_addr_from_host
Marcelo Tosatti [Mon, 11 Oct 2010 18:31:19 +0000 (15:31 -0300)]
Export qemu_ram_addr_from_host

To be used by next patches.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
14 years agokvm: x86: add mce support
Marcelo Tosatti [Mon, 11 Oct 2010 18:31:18 +0000 (15:31 -0300)]
kvm: x86: add mce support

Port qemu-kvm's MCE support

commit c68b2374c9048812f488e00ffb95db66c0bc07a7
Author: Huang Ying <ying.huang@intel.com>
Date:   Mon Jul 20 10:00:53 2009 +0800

    Add MCE simulation support to qemu/kvm

    KVM ioctls are used to initialize MCE simulation and inject MCE. The
    real MCE simulation is implemented in Linux kernel. The Kernel part
    has been merged.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
14 years agoiothread: use signalfd
Marcelo Tosatti [Mon, 11 Oct 2010 18:31:16 +0000 (15:31 -0300)]
iothread: use signalfd

Block SIGALRM, SIGIO and consume them via signalfd.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
14 years agosignalfd compatibility
Marcelo Tosatti [Mon, 11 Oct 2010 18:31:15 +0000 (15:31 -0300)]
signalfd compatibility

Port qemu-kvm's signalfd compat code.

commit 5a7fdd0abd7cd24dac205317a4195446ab8748b5
Author: Anthony Liguori <aliguori@us.ibm.com>
Date:   Wed May 7 11:55:47 2008 -0500

    Use signalfd() in io-thread

    This patch reworks the IO thread to use signalfd() instead of sigtimedwait()
    This will eliminate the need to use SIGIO everywhere.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
14 years agoAdd svm cpuid features
Joerg Roedel [Mon, 27 Sep 2010 13:16:17 +0000 (15:16 +0200)]
Add svm cpuid features

This patch adds the svm cpuid feature flags to the qemu
intialization path. It also adds the svm features available
on phenom to its cpu-definition and extends the host cpu
type to support all svm features KVM can provide.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
14 years agoSet cpuid definition to 0 before initializing it
Joerg Roedel [Mon, 27 Sep 2010 13:16:16 +0000 (15:16 +0200)]
Set cpuid definition to 0 before initializing it

This patch cleans the (stack-allocated) cpuid definition to
0 before actually initializing it.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
14 years agoconfigure: Support disabling warnings in $gcc_flags
Markus Armbruster [Thu, 14 Oct 2010 09:19:04 +0000 (11:19 +0200)]
configure: Support disabling warnings in $gcc_flags

-Wall enables a bunch of warnings at once.  configure puts it after
$gcc_flags.  This makes it impossible to disable warnings enabled by
-Wall there.  Fix by putting configured flags last.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotcg: Fix compiler error (comparison of unsigned expression)
Stefan Weil [Fri, 8 Oct 2010 08:32:23 +0000 (10:32 +0200)]
tcg: Fix compiler error (comparison of unsigned expression)

When qemu is configured with --enable-debug-tcg,
gcc throws this warning (or error with -Werror):

tcg/tcg.c:1030: error: comparison of unsigned expression >= 0 is always true

Fix it by removing the >= 0 part.
The type cast to 'unsigned' catches negative values of op
(which should never happen).

This is a modification of Hollis Blanchard's patch.

Cc: Hollis Blanchard <hollis@penguinppc.org>
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agowacom tablet: activate event handlers.
Gerd Hoffmann [Fri, 8 Oct 2010 10:30:14 +0000 (12:30 +0200)]
wacom tablet: activate event handlers.

Add qemu_activate_mouse_event_handler() calls to the usb wavom tablet so
it actually receives events.  Also make sure we only remove the handler
if we registered it before.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agovmmouse: adapt to mouse handler changes.
Gerd Hoffmann [Fri, 8 Oct 2010 10:30:13 +0000 (12:30 +0200)]
vmmouse: adapt to mouse handler changes.

This patch updates the vmmouse handler registration and activation.

Old behavior:
  vmmouse_read_id, vmmouse_request_relative and vmmouse_request_absolute
  unregister the handler and re-register it.

New behavior:
  vmmouse_request_relative and vmmouse_request_absolute will unregister
  the handler in case the mode did change.  Then register and active the
  handler with current mode if needed.

Note that the old code never ever *activates* the handler, so the
vmmouse doesn't receive events.  This trips up Fedora 14 for example:
Boot a default install without usb tablet, watch the X-Server activating
the vmmouse then, enjoy a non-functional mouse.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years ago[virtio-9p] Add support to v9fs_string_alloc_printf() for handling %lu.
Venkateswararao Jujjuri (JV) [Thu, 7 Oct 2010 00:09:42 +0000 (17:09 -0700)]
[virtio-9p] Add support to v9fs_string_alloc_printf() for handling %lu.

Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
14 years ago[virtio-9p] Use preadv/pwritev instead of readv/writev
Sanchit Garg [Fri, 8 Oct 2010 06:00:16 +0000 (11:30 +0530)]
[virtio-9p] Use preadv/pwritev instead of readv/writev

readv & writev, read & write respectively from the current offset
of the file & hence their use has to be preceeded by a call to lseek.
preadv/writev can be used instead, as they take the offset as an argument.
This saves one system call( lseek ).
In case preadv is not supported, it is implemented by an lseek
followed by a readv. Depending upon the configuration of QEMU, the
appropriate read & write methods are selected. This patch also fixes the
zero byte read/write bug & obviates the need to apply a fix for that bug separately.

Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>
Signed-off-by: Sanchit Garg <sancgarg@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
14 years ago[virtio-9p] Qemu 9p commandline options validity checks
Harsh Prateek Bora [Mon, 18 Oct 2010 10:06:36 +0000 (15:36 +0530)]
[virtio-9p] Qemu 9p commandline options validity checks

Signed-off-by: Harsh Prateek Bora <harsh@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
14 years agovirtio-9p: Support mapped posix acl
Aneesh Kumar K.V [Mon, 18 Oct 2010 09:58:16 +0000 (15:28 +0530)]
virtio-9p: Support mapped posix acl

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
14 years agovirtio-9p: Use layered xattr approach
Aneesh Kumar K.V [Mon, 18 Oct 2010 09:58:16 +0000 (15:28 +0530)]
virtio-9p: Use layered xattr approach

We would need this to make sure we handle the mapped
security model correctly for different xattr names.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
14 years ago[virtio-9p] Ignore O_DIRECT hint from client.
Venkateswararao Jujjuri (JV) [Sun, 19 Sep 2010 17:47:11 +0000 (10:47 -0700)]
[virtio-9p] Ignore O_DIRECT hint from client.

The O_DIRECT flag imposes alignment restrictions on the length and address
of userspace buffers and the file offset of I/Os.

While VirtFS/9P has plans to implement O_DIRECT behavior on the server,
for now we will stick to a behavior like NFS by bypassing the page cache
only on the client. Server may still cache the I/O.

Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
14 years agoqemu-virtio-9p: Implement TREADLINK operation for 9p2000.L
M. Mohan Kumar [Tue, 14 Sep 2010 09:38:25 +0000 (15:08 +0530)]
qemu-virtio-9p: Implement TREADLINK operation for 9p2000.L

Synopsis

        size[4] TReadlink tag[2] fid[4]
        size[4] RReadlink tag[2] target[s]

Description
        Readlink is used to return the contents of the symoblic link
        referred by fid. Contents of symboic link is returned as a
        response.

        target[s] - Contents of the symbolic link referred by fid.

Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
14 years ago[virtio-9p] Introduce server side TFSYNC/RFSYNC for dotl
Venkateswararao Jujjuri (JV) [Thu, 23 Sep 2010 00:18:33 +0000 (17:18 -0700)]
[virtio-9p] Introduce server side TFSYNC/RFSYNC for dotl

SYNOPSIS
    size[4] Tfsync tag[2] fid[4]

    size[4] Rfsync tag[2]

DESCRIPTION

The Tfsync transaction transfers ("flushes") all modified in-core data of
file identified by fid to the disk device (or other  permanent  storage
device)  where that  file  resides.

Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
14 years agoqemu-virtio9p: Implement TGETLOCK
M. Mohan Kumar [Tue, 7 Sep 2010 21:06:52 +0000 (02:36 +0530)]
qemu-virtio9p: Implement TGETLOCK

Synopsis

    size[4] TGetlock tag[2] fid[4] getlock[n]
    size[4] RGetlock tag[2] getlock[n]

Description

TGetlock is used to test for the existence of byte range posix locks on
a file identified by given fid. The reply contains getlock structure. If
the lock could be placed it returns F_UNLCK in type field of getlock structure.
Otherwise it returns the details of the conflicting locks in the getlock
structure

    getlock structure:
      type[1] - Type of lock: F_RDLCK, F_WRLCK
      start[8] - Starting offset for lock
      length[8] - Number of bytes to lock
        If length is 0, lock all bytes starting at the location
        'start' through to the end of file
      proc_id[4] - process id that wants to take lock/owns the task
               in case of reply
      client[4] - Client id of the system that owns the process

Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
14 years ago[virto-9p] Implement TLOCK
M. Mohan Kumar [Tue, 7 Sep 2010 20:49:32 +0000 (02:19 +0530)]
[virto-9p] Implement TLOCK

Synopsis

    size[4] TLock tag[2] fid[4] flock[n]
    size[4] RLock tag[2] status[1]

Description

Tlock is used to acquire/release byte range posix locks on a file
identified by given fid. The reply contains status of the lock request

    flock structure:
        type[1] - Type of lock: F_RDLCK, F_WRLCK, F_UNLCK
        flags[4] - Flags could be either of
          P9_LOCK_FLAGS_BLOCK(1) - Blocked lock request, if there is a
            conflicting lock exists, wait for that lock to be released.
          P9_LOCK_FLAGS_RECLAIM(2) - Reclaim lock request, used when client is
            trying to reclaim a lock after a server restrart (due to crash)
        start[8] - Starting offset for lock
        length[8] - Number of bytes to lock
          If length is 0, lock all bytes starting at the location 'start'
          through to the end of file
        pid[4] - PID of the process that wants to take lock
        client_id[4] - Unique client id

        status[1] - Status of the lock request, can be
          P9_LOCK_SUCCESS(0), P9_LOCK_BLOCKED(1), P9_LOCK_ERROR(2) or
          P9_LOCK_GRACE(3)
          P9_LOCK_SUCCESS - Request was successful
          P9_LOCK_BLOCKED - A conflicting lock is held by another process
          P9_LOCK_ERROR - Error while processing the lock request
          P9_LOCK_GRACE - Server is in grace period, it can't accept new lock
                requests in this period (except locks with
                P9_LOCK_FLAGS_RECLAIM flag set)

Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
14 years ago[virtio-9p] open should not return EBADF
Sripathi Kodi [Mon, 20 Sep 2010 17:54:29 +0000 (23:24 +0530)]
[virtio-9p] open should not return EBADF

When 9P server fails to create a file due to permission problems it should
return EPERM. However the current 9P2000.L code returns EBADF. EBADF is NOT
a valid return value from open() call.

The problem is because we do not preserve the errno variable properly. If the
file open had failed, the call to close() on the fd in v9fs_post_lcreate()
fails and sets errno to EBADF. We should preserve the errno that we got from
open() and we should call close() only if we had a valid fd.

Signed-off-by: Sripathi Kodi <sripathik@in.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
14 years agotrace: improve info trace output
Blue Swirl [Wed, 20 Oct 2010 16:41:36 +0000 (16:41 +0000)]
trace: improve info trace output

Use PRI*64 to print full 64 bit data even on ILP32 hosts.

Print also sixth tracepoint parameter.

Acked-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: Format strings must begin/end with double quotes
Stefan Hajnoczi [Wed, 20 Oct 2010 16:41:31 +0000 (16:41 +0000)]
trace: Format strings must begin/end with double quotes

Document the restriction that format strings must begin and end with
double quotes.  This is for easy parsing since we don't run cpp over
trace-events.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoapic: convert debug printf statements to tracepoints
Blue Swirl [Wed, 20 Oct 2010 16:41:28 +0000 (16:41 +0000)]
apic: convert debug printf statements to tracepoints

Replace debug printf statements with tracepoints.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: Relax trace-events parsing regex in simpletrace.py
Stefan Hajnoczi [Mon, 18 Oct 2010 12:42:54 +0000 (13:42 +0100)]
trace: Relax trace-events parsing regex in simpletrace.py

The regular expression to parse trace event definitions assumed the
format string would be a simple double-quoted string.  However, we now
use PRI?64 for portability which splits string literals.  The regular
expression can disregard the format string entirely since simpletrace.py
never needs to use it.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoissue snd_pcm_start() when capturing audio
Jindrich Makovicka [Sun, 17 Oct 2010 18:17:19 +0000 (20:17 +0200)]
issue snd_pcm_start() when capturing audio

snd_pcm_start() starts the capture process and ensures that the events
are delivered to the poll handler. Without the call, capture can be started
only when there is simultaneous playback running.

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: malc <av1474@comtv.ru>
14 years agofix 100% CPU load when idle with ALSA
Jindrich Makovicka [Sun, 17 Oct 2010 17:28:14 +0000 (19:28 +0200)]
fix 100% CPU load when idle with ALSA

Playback control function did not disable polling when playback stops.
Caused busy spinning of the main loop due to unprocessed events.

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: malc <av1474@comtv.ru>
14 years agotrace: print a warning if user tries to enable an unknown trace event
Blue Swirl [Wed, 13 Oct 2010 19:14:29 +0000 (19:14 +0000)]
trace: print a warning if user tries to enable an unknown trace event

There was no warning if a bad trace event name was given to
'trace-event' command, thus the user could think that the command
was successful even if this was not the case.

Print a warning if the user tries to enable a trace event which is not
known.

Acked-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agomips: avoid write only variables
Blue Swirl [Wed, 13 Oct 2010 18:38:08 +0000 (18:38 +0000)]
mips: avoid write only variables

Compiling with GCC 4.6.0 20100925 produced a lot of warnings like:
/src/qemu/target-mips/translate.c: In function 'gen_ld':
/src/qemu/target-mips/translate.c:1039:17: error: variable 'opn' set but not used [-Werror=unused-but-set-variable]

Fix by adding a dummy cast so that the variable is not unused.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoppc: avoid write only variables
Blue Swirl [Wed, 13 Oct 2010 18:38:08 +0000 (18:38 +0000)]
ppc: avoid write only variables

Compiling with GCC 4.6.0 20100925 produced warnings:
/src/qemu/target-ppc/op_helper.c: In function 'helper_icbi':
/src/qemu/target-ppc/op_helper.c:351:14: error: variable 'tmp' set but not used [-Werror=unused-but-set-variable]
/src/qemu/target-ppc/op_helper.c: In function 'do_6xx_tlb':
/src/qemu/target-ppc/op_helper.c:3805:28: error: variable 'EPN' set but not used [-Werror=unused-but-set-variable]
/src/qemu/target-ppc/op_helper.c: In function 'do_74xx_tlb':
/src/qemu/target-ppc/op_helper.c:3838:28: error: variable 'EPN' set but not used [-Werror=unused-but-set-variable]

Fix by adding a dummy cast so that the variable is not unused. Delete tmp.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoi386: avoid a write only variable
Blue Swirl [Wed, 13 Oct 2010 18:38:08 +0000 (18:38 +0000)]
i386: avoid a write only variable

Compiling with GCC 4.6.0 20100925 produced warnings:
/src/qemu/target-i386/op_helper.c: In function 'switch_tss':
/src/qemu/target-i386/op_helper.c:283:53: error: variable 'new_trap' set but not used [-Werror=unused-but-set-variable]

Fix by adding a dummy cast so that the variable is not unused. Add also
pointer to docs.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agovnc: avoid write only variables
Blue Swirl [Wed, 13 Oct 2010 18:38:08 +0000 (18:38 +0000)]
vnc: avoid write only variables

Compiling with GCC 4.6.0 20100925 produced warnings:
/src/qemu/ui/vnc.c: In function 'vnc_client_cache_auth':
/src/qemu/ui/vnc.c:217:12: error: variable 'qdict' set but not used [-Werror=unused-but-set-variable]
/src/qemu/ui/vnc.c: In function 'vnc_display_open':
/src/qemu/ui/vnc.c:2526:9: error: variable 'acl' set but not used [-Werror=unused-but-set-variable]

Fix by making the variable declarations and their uses also conditional
to debug definition.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agocris: avoid a write only variable
Blue Swirl [Wed, 13 Oct 2010 18:38:08 +0000 (18:38 +0000)]
cris: avoid a write only variable

Compiling with GCC 4.6.0 20100925 produced a warning:
In file included from /src/qemu/target-cris/translate.c:3154:0:
/src/qemu/target-cris/translate_v10.c: In function 'dec10_prep_move_m':
/src/qemu/target-cris/translate_v10.c:111:22: error: variable 'rd' set but not used [-Werror=unused-but-set-variable]

Fix by deleting rd, adjust the only user.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoDelete write only variables
Blue Swirl [Wed, 13 Oct 2010 18:41:29 +0000 (18:41 +0000)]
Delete write only variables

Compiling with GCC 4.6.0 20100925 produced warnings like:
/src/qemu/net/tap-win32.c: In function 'tap_win32_open':
/src/qemu/net/tap-win32.c:582:12: error: variable 'hThread' set but not used [-Werror=unused-but-set-variable]

Fix by removing the unused variables.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoppc: remove video.x
Blue Swirl [Wed, 13 Oct 2010 18:38:07 +0000 (18:38 +0000)]
ppc: remove video.x

Only Mac-on-Linux stuff used video.x, OpenBIOS does not need it.

Remove video.x MoL hacks.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agolsi53c895a: avoid a write only variable
Blue Swirl [Wed, 13 Oct 2010 18:38:07 +0000 (18:38 +0000)]
lsi53c895a: avoid a write only variable

Compiling with GCC 4.6.0 20100925 produced a warning:
/src/qemu/hw/lsi53c895a.c: In function 'lsi_do_msgout':
/src/qemu/hw/lsi53c895a.c:848:9: error: variable 'len' set but not used [-Werror=unused-but-set-variable]

Fix by adding a dummy cast so that the variable is not unused for
non-debug case.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoeepro100: initialize a variable in all cases
Blue Swirl [Wed, 13 Oct 2010 18:38:07 +0000 (18:38 +0000)]
eepro100: initialize a variable in all cases

Compiling with GCC 4.6.0 20100925 produced warnings:
/src/qemu/hw/eepro100.c: In function 'eepro100_read4':
/src/qemu/hw/eepro100.c:1351:14: error: 'val' may be used uninitialized in this function [-Werror=uninitialized]
/src/qemu/hw/eepro100.c: In function 'eepro100_read2':
/src/qemu/hw/eepro100.c:1328:14: error: 'val' may be used uninitialized in this function [-Werror=uninitialized]
/src/qemu/hw/eepro100.c: In function 'eepro100_read1':
/src/qemu/hw/eepro100.c:1285:13: error: 'val' may be used uninitialized in this function [-Werror=uninitialized]

Fix by initializing 'val' at start.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agocirrus: avoid write only variables
Blue Swirl [Wed, 13 Oct 2010 18:38:07 +0000 (18:38 +0000)]
cirrus: avoid write only variables

Compiling with GCC 4.6.0 20100925 produced a lot of warnings like:
In file included from /src/qemu/hw/cirrus_vga_rop.h:174:0,
                 from /src/qemu/hw/cirrus_vga.c:284:
/src/qemu/hw/cirrus_vga_rop2.h: In function 'cirrus_patternfill_0_8':
/src/qemu/hw/cirrus_vga_rop2.h:48:18: error: variable 'col' set but not used [-Werror=unused-but-set-variable]
/src/qemu/hw/cirrus_vga_rop2.h: In function 'cirrus_colorexpand_transp_0_8':
/src/qemu/hw/cirrus_vga_rop2.h:104:18: error: variable 'col' set but not used [-Werror=unused-but-set-variable]

Fix the warnings by introducing an inline function, which avoids
exposing write-only variables.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoblock: avoid a write only variable
Blue Swirl [Wed, 13 Oct 2010 18:38:07 +0000 (18:38 +0000)]
block: avoid a write only variable

Compiling with GCC 4.6.0 20100925 produced a warning:
/src/qemu/block/qcow2-refcount.c: In function 'update_refcount':
/src/qemu/block/qcow2-refcount.c:552:13: error: variable 'dummy' set but not used [-Werror=unused-but-set-variable]

Fix by adding a dummy cast so that the result is not unused.

Acked-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoMerge remote branch 'mst/for_anthony' into staging
Anthony Liguori [Mon, 11 Oct 2010 20:37:11 +0000 (15:37 -0500)]
Merge remote branch 'mst/for_anthony' into staging

14 years agotrace: remove timestamp files when cleaning up
Blue Swirl [Sat, 9 Oct 2010 08:24:17 +0000 (08:24 +0000)]
trace: remove timestamp files when cleaning up

'make clean' did not remove trace.[ch]-timestamp files,
only trace.[ch]. But 'make' did not know how to make trace.[ch]
files if the timestamp files were present.

Fix by removing the timestamp files along with trace.[ch].

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoconfigure: Send error message from spice check to /dev/null
Stefan Weil [Thu, 7 Oct 2010 19:15:58 +0000 (21:15 +0200)]
configure: Send error message from spice check to /dev/null

pkg-config is not always available (e.g. on win32 hosts),
but we don't want to see the 'command not found' error message.

Redirect stdout and stderr to /dev/null.

v2:

* Removed changes which should not have been here.

Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agowin32: Set unbuffered stdout
Stefan Weil [Thu, 7 Oct 2010 16:55:48 +0000 (18:55 +0200)]
win32: Set unbuffered stdout

Win32 does not support line-buffering, but it allows
unbuffered output.

Unbuffered output is a good approximation. For typical output
statements which usually end with '\n', it's even identical.

Buffered output is unusable for program traces because of
its large delay.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years ago.gitignore: Ignore *-timestamp
Stefan Hajnoczi [Thu, 7 Oct 2010 11:07:15 +0000 (12:07 +0100)]
.gitignore: Ignore *-timestamp

Timestamp files were recently added to reduce make churn on source files
that use tracing.  The timestamp files should never be committed and
should not be visible in git status.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoacpi: Fix an infinite loop in acpi_table_add
Vincent Minet [Tue, 5 Oct 2010 00:23:12 +0000 (02:23 +0200)]
acpi: Fix an infinite loop in acpi_table_add

Commit d729bb9a7700e364b1c5f9893d61f07a9e002bce has a typo, causing an
infinite loop in acpi_table_add.

Signed-off-by: Vincent Minet <vincent@vincent-minet.net>
Acked-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoconfigure: Remove unneeded defines from checks
Stefan Weil [Wed, 6 Oct 2010 19:09:17 +0000 (21:09 +0200)]
configure: Remove unneeded defines from checks

_GNU_SOURCE is already defined in QEMU_CFLAGS which
is passed to gcc in shell function compile_prog.

Removing the definition from several checks avoids compiler warnings
(which are now written to config.log).

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoconfigure: include stddef.h for NULL
Scott Wood [Tue, 5 Oct 2010 19:28:17 +0000 (14:28 -0500)]
configure: include stddef.h for NULL

This fixes an observed failure to detect madvise() on Linux.

To avoid similar issues, all other tests that use NULL but don't already
have stddef.h (or another header that is defined to provide NULL,
such as stdio.h, unistd.h, or time.h) are also fixed.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: Trace bdrv_aio_{readv,writev}
Stefan Hajnoczi [Tue, 5 Oct 2010 13:28:53 +0000 (14:28 +0100)]
trace: Trace bdrv_aio_{readv,writev}

Observing block layer aio readv/writev operations is useful for
debugging image formats or understanding guest disk I/O patterns.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: Use TP_PROTO() and TP_ARGS() for LTTng UST
Stefan Hajnoczi [Tue, 5 Oct 2010 13:28:52 +0000 (14:28 +0100)]
trace: Use TP_PROTO() and TP_ARGS() for LTTng UST

The LTTng UserSpace Tracer formerly used TPPROTO() and TPARGS() instead
of TP_PROTO() and TP_ARGS() like the kernel uses.  This has been changed
so QEMU needs to follow.

I am not aware of a graceful way of making the transition but since no
one complained that the UST build is broken, it should be fine to just
switch over without compatibility for old UST headers.  The newer UST
headers are shipping in distro packages so it is realistic to make this
change now.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: Don't strip lines containing '#' arbitrarily
Stefan Hajnoczi [Tue, 5 Oct 2010 13:28:51 +0000 (14:28 +0100)]
trace: Don't strip lines containing '#' arbitrarily

Although comment lines must be skipped, the '#' character can occur in
valid format strings.  Be more careful when checking for comments.
Leave comments at the end of the line where they will not interfere with
other processing.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: Use portable format strings
Stefan Hajnoczi [Tue, 5 Oct 2010 13:28:50 +0000 (14:28 +0100)]
trace: Use portable format strings

It is not portable to use "%ld" for int64_t because int64_t may have
type long on 64-bit platforms and long long on 32-bit platforms.  Use
the standard library PRId64 macros to keep format strings portable.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agocris: Consider the TLB valid bit on writes to the TLB
Edgar E. Iglesias [Thu, 7 Oct 2010 19:20:52 +0000 (21:20 +0200)]
cris: Consider the TLB valid bit on writes to the TLB

When updating the guest TLB we only need to flush previous
mappings from the entry written if the entry was valid.

Also fixes a compiler warning reported by Blue Swirl.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agovhost: error code
Michael S. Tsirkin [Wed, 6 Oct 2010 13:20:28 +0000 (15:20 +0200)]
vhost: error code

fix up errors returned to include errno, not just -1

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
14 years agovirtio: change set guest notifier to per-device
Michael S. Tsirkin [Wed, 6 Oct 2010 13:20:17 +0000 (15:20 +0200)]
virtio: change set guest notifier to per-device

When using irqfd with vhost-net to inject interrupts,
a single evenfd might inject multiple interrupts.
Implementing this is much easier with a single
per-device callback to set guest notifiers.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
14 years agoeepro100: Add support for multiple individual addresses (multiple IA)
Stefan Weil [Wed, 29 Sep 2010 19:59:55 +0000 (21:59 +0200)]
eepro100: Add support for multiple individual addresses (multiple IA)

I reviewed the latest sources of Linux, FreeBSD and NetBSD.
They all reset the multiple IA bit (multi_ia in BSD) to zero,
but I did not find code which sets this bit to one
(like it is done by some routers).

Running Windows guests also did not set this bit.

Intel's Open Source Software Developer Manual does not
give much information on the semantics related to this bit,
so I had to guess how it works. The guess was good enough
to make the router emulation work.

Related changes in this patch:
* Update naming and documentation of the internal hash register.
  It is not limited to multicast, but also used for multiple IA.
* Dump complete configuration register when debug traces are enabled.
* Debug output when multiple IA bit is set during CmdConfigure.
* Debug output when frames are received because multiple IA bit is set,
  or when they are ignored although it is set.

Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
14 years agovirtio-net: unify vhost-net start/stop
Michael S. Tsirkin [Mon, 27 Sep 2010 16:41:30 +0000 (18:41 +0200)]
virtio-net: unify vhost-net start/stop

Move all of vhost-net start/stop logic to a single routine,
and call it from everywhere.

Additionally, start/stop vhost-net on link up/down:
we should not transmit anything if user asked us to
put the link down.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
14 years agovirtio: invoke set_status callback on reset
Michael S. Tsirkin [Mon, 27 Sep 2010 16:32:52 +0000 (18:32 +0200)]
virtio: invoke set_status callback on reset

As status is set to 0 on reset, invoke the relevant callback. This makes
for a cleaner code in devices as they don't need to duplicate the code
in their reset routine, as well as excercises this path a little more.

In particular this makes it possible to unify
vhost-net handling code with the following patch.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
14 years agonet: delay freeing peer host device
Michael S. Tsirkin [Mon, 20 Sep 2010 16:08:41 +0000 (18:08 +0200)]
net: delay freeing peer host device

With -netdev, virtio devices present offload
features to guest, depending on the backend used.
Thus, removing host netdev peer while guest is
active leads to guest-visible inconsistency and/or crashes.

As a solution, while guest (NIC) peer device exists,
we prevent the host peer from being deleted.
This patch does this by adding peer_deleted flag in nic state:
if host device is going away while guest device
is around, set this flag and keep a shell of
the host device around for as long as guest device exists.

The link is put down so all packets will get discarded.

At the moment, management can detect that device deletion
is delayed by doing info net. As a next step, we shall add
commands that control hotplug/unplug without
removing the device, and an event to report that
guest has responded to the hotplug event.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
14 years agoMerge remote branch 'spice/submit.6' into staging
Anthony Liguori [Tue, 5 Oct 2010 19:14:19 +0000 (14:14 -0500)]
Merge remote branch 'spice/submit.6' into staging

Conflicts:
configure

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMerge remote branch 'qmp/for-anthony' into staging
Anthony Liguori [Tue, 5 Oct 2010 18:54:49 +0000 (13:54 -0500)]
Merge remote branch 'qmp/for-anthony' into staging

14 years agolinux-user: Fix typo m86k -> m68k
Stefan Weil [Fri, 24 Sep 2010 16:30:35 +0000 (18:30 +0200)]
linux-user: Fix typo m86k -> m68k

Replace m86k_sim_stat by m68k_sim_stat.

Cc: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
14 years agoFix spelling in comments
Stefan Weil [Fri, 6 Aug 2010 19:53:45 +0000 (21:53 +0200)]
Fix spelling in comments

multifuction -> multifunction
successfull -> successful.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
14 years agodocs: Improve documentation
Stefan Weil [Sun, 1 Aug 2010 11:43:18 +0000 (13:43 +0200)]
docs: Improve documentation

Fix some inconsistencies (tabs and punctuation)
and try to improve grammar and spelling.

Cc: Juan Quintela <quintela@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
14 years agoAdd new user mode option -ignore-environment
Stefan Weil [Thu, 15 Jul 2010 20:28:02 +0000 (22:28 +0200)]
Add new user mode option -ignore-environment

An empty environment is sometimes useful in user mode.
The new option provides it for linux-user and bsd-user
(darwin-user still has no environment related options).

The patch also adds the documentation for other
environment related options.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
14 years agoppc: Minor 40x MMU fixes
John Clark [Tue, 5 Oct 2010 16:38:55 +0000 (18:38 +0200)]
ppc: Minor 40x MMU fixes

* Fix swapped reading of tlblo/hi.
* Fix tlb exec permissions

Signed-off-by: John Clark <clarkjc@runbox.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agoconsole: Avoid dereferencing NULL active_console
Stefan Hajnoczi [Mon, 20 Sep 2010 13:11:19 +0000 (14:11 +0100)]
console: Avoid dereferencing NULL active_console

The console_select() function does not check that active_console is
non-NULL before dereferencing it.  When invoked with qemu -nodefaults it
is possible to hit this case.

This patch checks that active_console is non-NULL before stashing away
the old console dimensions in console_select().

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoexec: Fix compilation error for debug code
Stefan Weil [Thu, 30 Sep 2010 20:39:51 +0000 (22:39 +0200)]
exec: Fix compilation error for debug code

is_softmmu was removed with commit
d4c430a80f000d722bb70287af4d4c184a8d7006,
so remove it now from debug code, too.

Fix also the format specifier for paddr
in the same line of code.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agorc4030: Fix compilation error in debug code
Stefan Weil [Thu, 30 Sep 2010 20:05:42 +0000 (22:05 +0200)]
rc4030: Fix compilation error in debug code

min was unknown here, so avoid it.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agomipsnet: Fix compiler warning in debug code
Stefan Weil [Thu, 30 Sep 2010 19:33:15 +0000 (21:33 +0200)]
mipsnet: Fix compiler warning in debug code

size_t needs a different format specifier, so fix this.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoblock/vvfat: Fix compiler warning in debug code
Stefan Weil [Thu, 30 Sep 2010 19:15:39 +0000 (21:15 +0200)]
block/vvfat: Fix compiler warning in debug code

Fix this compiler warning:
./block/vvfat.c:2285: error: comparison of unsigned expression >= 0 is always true

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agovirtio-9p: Use GCC_FMT_ATTR and fix a format warning
Stefan Weil [Mon, 27 Sep 2010 16:45:47 +0000 (18:45 +0200)]
virtio-9p: Use GCC_FMT_ATTR and fix a format warning

With the new gcc format warnings, gcc detected this:

/qemu/hw/virtio-9p.c:1040: error: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘__nlink_t’

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoblockdev: Use GCC_FMT_ATTR (format checking)
Stefan Weil [Thu, 23 Sep 2010 18:47:32 +0000 (20:47 +0200)]
blockdev: Use GCC_FMT_ATTR (format checking)

Additional changes:

* Removed 'extern' from drive_add (avoids too long line).
* Removed 'extern' from other functions (makes declarations
  consistent with others in same header file).

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoUse GCC_FMT_ATTR (format checking)
Stefan Weil [Thu, 23 Sep 2010 19:28:05 +0000 (21:28 +0200)]
Use GCC_FMT_ATTR (format checking)

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoReplace most gcc format attributes by macro GCC_FMT_ATTR (format checking)
Stefan Weil [Thu, 23 Sep 2010 19:28:03 +0000 (21:28 +0200)]
Replace most gcc format attributes by macro GCC_FMT_ATTR (format checking)

Since version 4.4.x, gcc supports additional format attributes.
    __attribute__ ((format (gnu_printf, 1, 2)))
should be used instead of
    __attribute__ ((format (printf, 1, 2))
because QEMU always uses standard format strings (even with mingw32).

The patch replaces format attribute printf / __printf__ by macro
GCC_FMT_ATTR which uses gnu_printf if supported.

It also removes an #ifdef __GNUC__ (not needed any longer).

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoslirp: Silence warning on Haiku
Andreas Färber [Sun, 19 Sep 2010 22:50:48 +0000 (00:50 +0200)]
slirp: Silence warning on Haiku

Haiku has O_BINARY in fcntl.h.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Cc: Jan Kiszka <jan.kiszka@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotap: Add stub for Haiku
Andreas Färber [Sun, 19 Sep 2010 22:50:47 +0000 (00:50 +0200)]
tap: Add stub for Haiku

Adapted from AIX code.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agonbd: Haiku has _IO() in its BSD compatibility layer
Andreas Färber [Sun, 19 Sep 2010 22:50:46 +0000 (00:50 +0200)]
nbd: Haiku has _IO() in its BSD compatibility layer

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoHaiku doesn't have libm
Andreas Färber [Sun, 19 Sep 2010 22:50:45 +0000 (00:50 +0200)]
Haiku doesn't have libm

Math functions are integrated into Haiku's libroot.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoconfigure: Don't rely on special pthreads library
Andreas Färber [Sun, 19 Sep 2010 22:50:44 +0000 (00:50 +0200)]
configure: Don't rely on special pthreads library

Haiku has pthreads integrated into its libroot.so library. No linker arguments
are needed for it, so don't fail if -lpthread and similar don't link.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoconfigure: Add basic support for Haiku
Andreas Färber [Sun, 19 Sep 2010 22:50:43 +0000 (00:50 +0200)]
configure: Add basic support for Haiku

For compatibility with BeOS, Haiku's error codes are negative whereas recent
POSIX versions require them to be positive. As spotted by François, some
parts of QEMU code rely on this, so use a mapper library to convert them
to positive ones.

Cc: François Revol <revol@free.fr>
Cc: Ingo Weinhold <ingo_weinhold@gmx.de>
Haiku has network functions in libnetwork.so. It doesn't ship libutil.so.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: avoid unnecessary recompilation if nothing changed
Blue Swirl [Sat, 2 Oct 2010 14:28:12 +0000 (14:28 +0000)]
trace: avoid unnecessary recompilation if nothing changed

Add logic to detect changes in generated files. If the old
and new files are identical, don't touch the generated file.
This avoids a lot of churn since many files depend on trace.h.

Based on suggestion by Paolo Bonzini.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>