]> Git Repo - qemu.git/log
qemu.git
10 years agotarget-arm: A64: Add saturating accumulate ops (USQADD/SUQADD)
Alex Bennée [Tue, 18 Mar 2014 23:10:06 +0000 (23:10 +0000)]
target-arm: A64: Add saturating accumulate ops (USQADD/SUQADD)

Add the saturating accumulate operations USQADD and SUQADD
to the A64 instruction set. This completes coverage of A64 Neon.
These operations (which are unsigned + signed -> signed and
signed + unsigned -> unsigned) don't exist in the A32/T32
instruction set, so require a complete new set of helper functions.

Signed-off-by: Alex Bennée <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
10 years agotarget-arm: A64: Add saturating int ops (SQNEG/SQABS)
Alex Bennée [Tue, 18 Mar 2014 23:10:06 +0000 (23:10 +0000)]
target-arm: A64: Add saturating int ops (SQNEG/SQABS)

This mostly re-uses the existing NEON helpers with an additional two for
the 64 bit case. I also took the opportunity to add TCG_CALL_NO_RWG
options to the helpers as they don't modify globals (saturation flags
are in the CPU Environment).

Signed-off-by: Alex Bennée <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
10 years agopl011: fix incorrect logic to set the RXFF flag
Rob Herring [Tue, 18 Mar 2014 18:18:41 +0000 (13:18 -0500)]
pl011: fix incorrect logic to set the RXFF flag

The receive fifo full bit should be set when 1 character is received and
the fifo is disabled or when 16 characters are in the fifo.

Signed-off-by: Rob Herring <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Message-id: 1395166721[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agopl011: fix UARTRSR accesses corrupting the UARTCR value
Rob Herring [Tue, 18 Mar 2014 18:18:40 +0000 (13:18 -0500)]
pl011: fix UARTRSR accesses corrupting the UARTCR value

Offset 4 is UARTRSR/UARTECR, not the UARTCR. The UARTCR would be
corrupted if the UARTRSR is ever written. Fix by implementing a correct
model of the UARTRSR/UARTECR register. Reads of this register simply
reflect the error bits in data register. Only breaks can be triggered in
QEMU. With the pl011_can_receive function, we effectively have flow
control between the host and the model. Framing and parity errors simply
don't make sense in the model and will never occur.

Signed-off-by: Rob Herring <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Message-id: 1395166721[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agopl011: reset the fifo when enabled or disabled
Rob Herring [Tue, 18 Mar 2014 18:18:39 +0000 (13:18 -0500)]
pl011: reset the fifo when enabled or disabled

Intermittent issues have been seen where no serial input occurs. It
appears the pl011 gets in a state where the rx interrupt never fires
because the rx interrupt only asserts when crossing the fifo trigger
level. The fifo state appears to get out of sync when the pl011 is
re-configured. This combined with the rx timeout interrupt not being
modeled results in no more rx interrupts.

Disabling the fifo is the recommended way to clear the tx fifo in the
TRM (section 3.3.8). The behavior in this case for the rx fifo is
undefined in the TRM, but having fifo contents to be maintained during
configuration changes is not likely expected behavior. Reseting the
fifo state when the fifo size is changed is the simplest solution.

Signed-off-by: Rob Herring <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Message-id: 1395166721[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoahci: fix sysbus support
Rob Herring [Tue, 18 Mar 2014 19:36:13 +0000 (19:36 +0000)]
ahci: fix sysbus support

Non-PCI AHCI support is broken due to assertion failures when trying
to convert AHCIState to a PCIDevice pointer as AHCIState can have
different container structs. Fix this by using the non-asserting object
cast and checking the returned pointer is not NULL.

The AddressSpace pointer is also being initialized to NULL and causing
dma_memory_map call to fail. Fix this by initializing to
address_space_memory for sysbus instances.

Also correct AHCI_VMSTATE to use the correct container SysbusAHCIState
for sysbus instances.

Signed-off-by: Rob Herring <[email protected]>
Message-id: 1392073373[email protected]
[PMM: added linebreaks to fix overlong lines]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/kraxel/tags/pull-vnc-2' into staging
Peter Maydell [Tue, 18 Mar 2014 16:39:29 +0000 (16:39 +0000)]
Merge remote-tracking branch 'remotes/kraxel/tags/pull-vnc-2' into staging

vnc: fix vmware VGA incompatiblities

# gpg: Signature made Tue 18 Mar 2014 07:23:10 GMT using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <[email protected]>"
# gpg:                 aka "Gerd Hoffmann <[email protected]>"
# gpg:                 aka "Gerd Hoffmann (private) <[email protected]>"

* remotes/kraxel/tags/pull-vnc-2:
  ui/vnc: fix vmware VGA incompatiblities

Signed-off-by: Peter Maydell <[email protected]>
10 years agoacpi: fix endian-ness for table ids
Michael S. Tsirkin [Tue, 18 Mar 2014 13:49:41 +0000 (15:49 +0200)]
acpi: fix endian-ness for table ids

when using signature for table ID, we forgot to byte-swap it.
signatures are really ASCII strings, let's treat them as such.
While at it, get rid of most of _SIGNATURE macros.

Signed-off-by: Michael S. Tsirkin <[email protected]>
10 years agoacpi-test: signature endian-ness fixes
Michael S. Tsirkin [Tue, 18 Mar 2014 14:42:05 +0000 (16:42 +0200)]
acpi-test: signature endian-ness fixes

acpi table signature is really an ASCII string.
Treat it as such in tests.

Signed-off-by: Michael S. Tsirkin <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140317' into...
Peter Maydell [Tue, 18 Mar 2014 14:31:42 +0000 (14:31 +0000)]
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140317' into staging

target-arm queue:
 * more A64 Neon instructions
 * fixes to reset CBAR values for A9 and A15 boards
 * fix accesses to PMCR register in -icount mode

# gpg: Signature made Mon 17 Mar 2014 22:04:52 GMT using RSA key ID 14360CDE
# gpg: Good signature from "Peter Maydell <[email protected]>"

* remotes/pmaydell/tags/pull-target-arm-20140317: (30 commits)
  scripts/qemu-binfmt-conf.sh: Add AArch64 registration
  target-arm: A64: Add [UF]RSQRTE (reciprocal root estimate)
  target-arm: A64: Implement FCVTXN
  target-arm: A64: Implement scalar saturating narrow ops
  target-arm: A64: Move handle_2misc_narrow function
  target-arm: A64: Implement AdvSIMD reciprocal estimate insns URECPE, FRECPE
  softfloat: export squash_input_denormal functions
  target-arm: A64: Implement FCVTZS, FCVTZU in the shift-imm categories
  target-arm: A64: Handle saturating left shifts SQSHL, SQSHLU, UQSHL
  exec-all.h: Increase MAX_OP_PER_INSTR for ARM A64 decoder
  target-arm: A64: Implement FRINT*
  target-arm: A64: Implement SRI
  target-arm: A64: Add FRECPX (reciprocal exponent)
  target-arm: A64: List unsupported shift-imm opcodes
  target-arm: A64: Implement FCVTL
  target-arm: A64: Implement FCVTN
  target-arm: A64: Implement FCVT[NMAPZ][SU] SIMD instructions
  target-arm: A64: Implement SHLL, SHLL2
  target-arm: A64: Implement SADDLP, UADDLP, SADALP, UADALP
  target-arm: A64: Saturating and narrowing shift ops
  ...

Signed-off-by: Peter Maydell <[email protected]>
10 years agoi386/acpi-build: support hotplug of VCPU with APIC ID 0xFF
Laszlo Ersek [Mon, 17 Mar 2014 16:05:17 +0000 (17:05 +0100)]
i386/acpi-build: support hotplug of VCPU with APIC ID 0xFF

Building on the previous patch, raise the maximal count of processor
objects / NTFY branches / CPON elements from 255 to 256. This allows the
VCPU with APIC ID 0xFF to be hotplugged.

Signed-off-by: Laszlo Ersek <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
10 years agoacpi-test: rebuild SSDT
Michael S. Tsirkin [Tue, 18 Mar 2014 14:14:59 +0000 (16:14 +0200)]
acpi-test: rebuild SSDT

commit 9bcc80cd71892df42605e0c097d85c0237ff45d1
    i386/acpi-build: allow more than 255 elements in CPON

Replaces 0x1 with a smaller One constant.

rebuild expected SSDT.

Signed-off-by: Michael S. Tsirkin <[email protected]>
10 years agoi386/acpi-build: allow more than 255 elements in CPON
Laszlo Ersek [Mon, 17 Mar 2014 16:05:16 +0000 (17:05 +0100)]
i386/acpi-build: allow more than 255 elements in CPON

The build_ssdt() function builds a number of AML objects that are related
to CPU hotplug, and whose IDs form a contiguous sequence of APIC IDs.
(APIC IDs are in fact discontiguous, but this is the traditional
interface: build a contiguous sequence from zero up that covers all
possible APIC IDs.) These objects are:

- a Processor() object for each VCPU,
- a NTFY method, with one branch for each VCPU,
- a CPON package with one element (hotplug status byte) for each VCPU.

The build_ssdt() function currently limits the *count* of processor
objects, and NTFY branches, and CPON elements, in 0xFF (see the assignment
to "acpi_cpus"). This allows for an inclusive APIC ID range of [0..254].
This is incorrect, because the highest APIC ID that we otherwise allow a
VCPU to take is 255.

In order to extend the maximum count to 256, and the traversed APIC ID
range correspondingly to [0..255]:
- the Processor() objects need no change,
- the NTFY method also needs no change,
- the CPON package must be updated, because it is defined with a
  DefPackage, and the number of elements in such a package can be at most
  255. We pick a DefVarPackage instead.

We replace the Op byte, and the encoding of the number of elements.
Compare:

DefPackage     := PackageOp    PkgLength NumElements    PackageElementList
DefVarPackage  := VarPackageOp PkgLength VarNumElements PackageElementList

PackageOp      := 0x12
VarPackageOp   := 0x13

NumElements    := ByteData
VarNumElements := TermArg => Integer

The build_append_int() function implements precisely the following TermArg
encodings (a subset of what the ACPI spec describes):

  TermArg             := DataObject
  DataObject          := ComputationalData
  ComputationalData   := ConstObj | ByteConst | WordConst | DWordConst

  directly encoded in the function, with build_append_byte():
    ConstObj          := ZeroOp | OneOp
      ZeroOp          := 0x00
      OneOp           := 0x01

  call to build_append_value(..., 1):
    ByteConst         := BytePrefix ByteData
      BytePrefix      := 0x0A
      ByteData        := 0x00 - 0xFF

  call to build_append_value(..., 2):
    WordConst         := WordPrefix WordData
      WordPrefix      := 0x0B
      WordData        := ByteData[0:7] ByteData[8:15]

  call to build_append_value(..., 4):
    DWordConst        := DWordPrefix DWordData
      DWordPrefix     := 0x0C
      DWordData       := WordData[0:15] WordData[16:31]

Signed-off-by: Laszlo Ersek <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
10 years agopc: Refuse max_cpus if it results in too large APIC ID
Eduardo Habkost [Fri, 14 Mar 2014 19:33:54 +0000 (16:33 -0300)]
pc: Refuse max_cpus if it results in too large APIC ID

This changes the PC initialization code to reject max_cpus if it results
in an APIC ID that's too large, instead of aborting or erroring out when
it is already too late.

Signed-off-by: Eduardo Habkost <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
10 years agoacpi: Don't use MAX_CPUMASK_BITS for APIC ID bitmap
Eduardo Habkost [Fri, 14 Mar 2014 19:33:53 +0000 (16:33 -0300)]
acpi: Don't use MAX_CPUMASK_BITS for APIC ID bitmap

MAX_CPUMASK_BITS is a limit for max_cpus and CPU indexes, not for APIC
IDs.

ACPI_CPU_HOTPLUG_ID_LIMIT is the right macro for the limit on APIC IDs
on the ACPI and CPU hotplug code.

There are no functional changes introduced by this patch, as
MAX_CPUMASK_BITS + 1 == 255 + 1 == 256 == ACPI_CPU_HOTPLUG_ID_LIMIT.

Signed-off-by: Eduardo Habkost <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
10 years agoacpi: Assert sts array limit on AcpiCpuHotplug_add()
Eduardo Habkost [Fri, 14 Mar 2014 19:33:52 +0000 (16:33 -0300)]
acpi: Assert sts array limit on AcpiCpuHotplug_add()

AcpiCpuHotplug_add() can't handle vCPU arch IDs larger than
ACPI_CPU_HOTPLUG_ID_LIMIT. Instead of corrupting memory in case the vCPU
ID is too large, use g_assert() to ensure we are not over the limit.

Signed-off-by: Eduardo Habkost <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
10 years agopc: Refuse CPU hotplug if the resulting APIC ID is too large
Eduardo Habkost [Fri, 14 Mar 2014 19:33:51 +0000 (16:33 -0300)]
pc: Refuse CPU hotplug if the resulting APIC ID is too large

The ACPI CPU hotplug code requires APIC IDs to be smaller than
ACPI_CPU_HOTPLUG_ID_LIMIT, so enforce the limit before trying to hotplug
a new vCPU, returning an error instead of crashing.

Signed-off-by: Eduardo Habkost <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
10 years agoacpi: Add ACPI_CPU_HOTPLUG_ID_LIMIT macro
Eduardo Habkost [Fri, 14 Mar 2014 19:33:50 +0000 (16:33 -0300)]
acpi: Add ACPI_CPU_HOTPLUG_ID_LIMIT macro

The new macro will be helpful to allow us to detect too large SMP limits
before it is too late.

Signed-off-by: Eduardo Habkost <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
10 years agoacpi-test: update expected SSDT files
Michael S. Tsirkin [Mon, 10 Mar 2014 19:13:59 +0000 (21:13 +0200)]
acpi-test: update expected SSDT files

commit 13f65b2e1073cf7e2c8fb3880c77d8a53fa2f95e
    acpi-test: update expected SSDT files

set an incorrect SSDT.
rebuild it.

Signed-off-by: Michael S. Tsirkin <[email protected]>
10 years agoui/vnc: fix vmware VGA incompatiblities
Peter Lieven [Mon, 17 Mar 2014 17:38:58 +0000 (18:38 +0100)]
ui/vnc: fix vmware VGA incompatiblities

this fixes invalid rectangle updates observed after commit 12b316d
with the vmware VGA driver. The issues occured because the server
and client surface update seems to be out of sync at some points
and the max width of the surface is not dividable by
VNC_DIRTY_BITS_PER_PIXEL (16).

Reported-by: Serge Hallyn <[email protected]>
Signed-off-by: Peter Lieven <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/borntraeger/tags/kvm-s390-20140317' into staging
Peter Maydell [Mon, 17 Mar 2014 22:31:32 +0000 (22:31 +0000)]
Merge remote-tracking branch 'remotes/borntraeger/tags/kvm-s390-20140317' into staging

4 small patches:
- Fixing findings of valgrind regarding minor memory leaks:
  Currently we forget the pointer of qemu_allocate_irqs. Since we never
  free the irqs, this is not critical, but obviously not good programming
  style. While we are at it, we dont need the irq infrastructure for
  the sclp consoles.
- Handle new ELF error codes for BIOS loading

# gpg: Signature made Mon 17 Mar 2014 21:34:12 GMT using RSA key ID B5A61C7C
# gpg: Can't check signature: public key not found

* remotes/borntraeger/tags/kvm-s390-20140317:
  s390x/sclpconsole-lm: Fix and simplify irq setup
  s390x/sclpconsole: Fix and simplify interrupt injection
  s390x/cpu hotplug: Fix memory leak
  s390/ipl: Fix error path on BIOS loading

Signed-off-by: Peter Maydell <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/rth/tcg-v8p-2' into staging
Peter Maydell [Mon, 17 Mar 2014 22:15:52 +0000 (22:15 +0000)]
Merge remote-tracking branch 'remotes/rth/tcg-v8p-2' into staging

* remotes/rth/tcg-v8p-2:
  tcg-sparc: Convert to new ldst opcodes
  tcg-sparc: Convert to new ldst helpers
  tcg-sparc: Tidy tcg_out_tlb_load interface
  tcg-sparc: Use TCGMemOp within qemu_ldst routines
  tcg-sparc: Improve tcg_out_movi
  tcg-sparc: Dont handle constant arguments to ext32 ops
  tcg-sparc: Don't handle remainder
  tcg-sparc: Use intptr_t as appropriate
  tcg-sparc: Tidy call+jump patterns
  tcg-sparc: Fix tlb read
  tcg-sparc: Fix ld64 for 32-bit mode

Signed-off-by: Peter Maydell <[email protected]>
10 years agos390x/sclpconsole-lm: Fix and simplify irq setup
Christian Borntraeger [Mon, 10 Mar 2014 13:19:52 +0000 (14:19 +0100)]
s390x/sclpconsole-lm: Fix and simplify irq setup

valgrind complains about a memory leak in irq setup of sclpconsole:

==42117== 8 bytes in 1 blocks are definitely lost in loss record 89of 833
==42117==    at 0x4031AFE: malloc (vg_replace_malloc.c:292)
==42117==    by 0x8022F855: malloc_and_trace (vl.c:2715)
==42117==    by 0x4145569: g_malloc (in /usr/lib64/libglib-2.0.so.0.3400.2)
==42117==    by 0x800F696D: qemu_extend_irqs (irq.c:51)
==42117==    by 0x800F6AF7: qemu_allocate_irqs (irq.c:68)
==42117==    by 0x800F5685: console_init (sclpconsole.c:235)
==42117==    by 0x80297C79: event_realize (event-facility.c:386)
==42117==    by 0x80105071: device_set_realized (qdev.c:693)
==42117==    by 0x801CDC4B: property_set_bool (object.c:1337)
 ==42117==    by 0x801CBD7F: object_property_set (object.c:819)
[...]

We dont need the indirection of an qemu irq to inject an slcp interrupt.
Fixes a valgrind error and makes the code simpler.

Signed-off-by: Christian Borntraeger <[email protected]>
Acked-by: Heinz Graalfs <[email protected]>
10 years agos390x/sclpconsole: Fix and simplify interrupt injection
Christian Borntraeger [Mon, 10 Mar 2014 13:17:04 +0000 (14:17 +0100)]
s390x/sclpconsole: Fix and simplify interrupt injection

valgrind complains about a memory leak in irq setup of sclpconsole:

==42117== 8 bytes in 1 blocks are definitely lost in loss record 89 of 833
==42117==    at 0x4031AFE: malloc (vg_replace_malloc.c:292)
==42117==    by 0x8022F855: malloc_and_trace (vl.c:2715)
==42117==    by 0x4145569: g_malloc (in /usr/lib64/libglib-2.0.so.0.3400.2)
==42117==    by 0x800F696D: qemu_extend_irqs (irq.c:51)
==42117==    by 0x800F6AF7: qemu_allocate_irqs (irq.c:68)
==42117==    by 0x800F5685: console_init (sclpconsole.c:235)
==42117==    by 0x80297C79: event_realize (event-facility.c:386)
==42117==    by 0x80105071: device_set_realized (qdev.c:693)
==42117==    by 0x801CDC4B: property_set_bool (object.c:1337)
==42117==    by 0x801CBD7F: object_property_set (object.c:819)
[...]

Turns out that we actually dont need the indirection, so trigger the
sclp interrupt directly.

Signed-off-by: Christian Borntraeger <[email protected]>
Acked-by: Heinz Graalfs <[email protected]>
10 years agos390x/cpu hotplug: Fix memory leak
Christian Borntraeger [Mon, 10 Mar 2014 14:03:16 +0000 (15:03 +0100)]
s390x/cpu hotplug: Fix memory leak

valgrind complains about the following:
==42117== 8 bytes in 1 blocks are definitely lost in loss record 88 of 833
==42117==    at 0x4031AFE: malloc (vg_replace_malloc.c:292)
==42117==    by 0x8022F855: malloc_and_trace (vl.c:2715)
==42117==    by 0x4145569: g_malloc (in /usr/lib64/libglib-2.0.so.0.3400.2)
==42117==    by 0x800F696D: qemu_extend_irqs (irq.c:51)
==42117==    by 0x800F6AF7: qemu_allocate_irqs (irq.c:68)
==42117==    by 0x8029FA4B: irq_cpu_hotplug_init (sclpcpu.c:84)
==42117==    by 0x80297C79: event_realize (event-facility.c:386)
==42117==    by 0x80105071: device_set_realized (qdev.c:693)
[...]

Right it is. Don't drop the pointer of the irq.

Signed-off-by: Christian Borntraeger <[email protected]>
Reviewed-by: Jason J. Herne <[email protected]>
10 years agos390/ipl: Fix error path on BIOS loading
Christian Borntraeger [Fri, 14 Mar 2014 12:38:57 +0000 (13:38 +0100)]
s390/ipl: Fix error path on BIOS loading

commit 18674b26788a9e47f1157170234e32ece2044367
(elf-loader: add more return codes) enabled the elf loader to return
other errors than -1.

Lets also handle that case for our "BIOS" on s390.

Signed-off-by: Christian Borntraeger <[email protected]>
CC: Alexey Kardashevskiy <[email protected]>
CC: Alexander Graf <[email protected]>
10 years agotcg-sparc: Convert to new ldst opcodes
Richard Henderson [Tue, 10 Sep 2013 02:51:21 +0000 (19:51 -0700)]
tcg-sparc: Convert to new ldst opcodes

Signed-off-by: Richard Henderson <[email protected]>
10 years agotcg-sparc: Convert to new ldst helpers
Richard Henderson [Wed, 5 Mar 2014 17:42:08 +0000 (09:42 -0800)]
tcg-sparc: Convert to new ldst helpers

All of the helpers with the explicit big/little endian option
require the return address as a parameter.  Acquire this via
a trampoline.

Move the load of areg0 into the trampoline.

Signed-off-by: Richard Henderson <[email protected]>
10 years agotcg-sparc: Tidy tcg_out_tlb_load interface
Richard Henderson [Fri, 6 Sep 2013 22:01:14 +0000 (15:01 -0700)]
tcg-sparc: Tidy tcg_out_tlb_load interface

Pass address registers explicitly, rather than as indicies of args[].
It's two argument registers either way.  Use more TCGReg as appropriate.

Signed-off-by: Richard Henderson <[email protected]>
10 years agotcg-sparc: Use TCGMemOp within qemu_ldst routines
Richard Henderson [Wed, 4 Sep 2013 03:12:01 +0000 (20:12 -0700)]
tcg-sparc: Use TCGMemOp within qemu_ldst routines

Signed-off-by: Richard Henderson <[email protected]>
10 years agotcg-sparc: Improve tcg_out_movi
Richard Henderson [Tue, 10 Sep 2013 04:07:09 +0000 (21:07 -0700)]
tcg-sparc: Improve tcg_out_movi

If bits 31:13 are zero, reduce the insn count by one.

Signed-off-by: Richard Henderson <[email protected]>
10 years agotcg-sparc: Dont handle constant arguments to ext32 ops
Richard Henderson [Tue, 4 Mar 2014 23:24:04 +0000 (15:24 -0800)]
tcg-sparc: Dont handle constant arguments to ext32 ops

Signed-off-by: Richard Henderson <[email protected]>
10 years agotcg-sparc: Don't handle remainder
Richard Henderson [Wed, 21 Aug 2013 02:22:15 +0000 (19:22 -0700)]
tcg-sparc: Don't handle remainder

The generic fallback is exactly what we implemented.

Signed-off-by: Richard Henderson <[email protected]>
10 years agotcg-sparc: Use intptr_t as appropriate
Richard Henderson [Wed, 21 Aug 2013 01:31:45 +0000 (18:31 -0700)]
tcg-sparc: Use intptr_t as appropriate

Signed-off-by: Richard Henderson <[email protected]>
10 years agotcg-sparc: Tidy call+jump patterns
Richard Henderson [Wed, 21 Aug 2013 01:25:38 +0000 (18:25 -0700)]
tcg-sparc: Tidy call+jump patterns

Signed-off-by: Richard Henderson <[email protected]>
10 years agotcg-sparc: Fix tlb read
Richard Henderson [Sat, 7 Sep 2013 00:19:12 +0000 (17:19 -0700)]
tcg-sparc: Fix tlb read

We were computing the full address into %o0 and then not using it.
Adjust some of the computation to rely less on having to pull immediate
values into registers.

Signed-off-by: Richard Henderson <[email protected]>
10 years agotcg-sparc: Fix ld64 for 32-bit mode
Richard Henderson [Fri, 6 Sep 2013 21:20:00 +0000 (14:20 -0700)]
tcg-sparc: Fix ld64 for 32-bit mode

Since were not using an annulled branch, we need to put a nop
in the delay slot.

Signed-off-by: Richard Henderson <[email protected]>
10 years agoscripts/qemu-binfmt-conf.sh: Add AArch64 registration
Peter Maydell [Mon, 17 Mar 2014 16:31:53 +0000 (16:31 +0000)]
scripts/qemu-binfmt-conf.sh: Add AArch64 registration

Add the binfmt-misc magic needed to register QEMU for handling AArch64
ELF binaries.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Add [UF]RSQRTE (reciprocal root estimate)
Alex Bennée [Mon, 17 Mar 2014 16:31:53 +0000 (16:31 +0000)]
target-arm: A64: Add [UF]RSQRTE (reciprocal root estimate)

This adds support for [UF]RSQRTE instructions. It utilises the existing
NEON helpers with some changes. The changes include an explicit passing
of fpstatus (so the correct one is used between arm32 and aarch64),
denormilzation, more correct error handling and also proper scaling of
the fraction going into the estimate.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agotarget-arm: A64: Implement FCVTXN
Peter Maydell [Mon, 17 Mar 2014 16:31:53 +0000 (16:31 +0000)]
target-arm: A64: Implement FCVTXN

Implement the FCVTXN operation, which does a narrowing fp precision
conversion using the "round to odd" (von Neumann) mode. This can
conveniently be implemented as "do operation using round to zero;
then set the LSB of the mantissa to 1 if the Inexact flag was set".

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Implement scalar saturating narrow ops
Alex Bennée [Mon, 17 Mar 2014 16:31:52 +0000 (16:31 +0000)]
target-arm: A64: Implement scalar saturating narrow ops

This completes the set of integer narrowing saturating ops including:
     SQXTN, SQXTN2
     SQXTUN, SQXTUN2
     UQXTN, UQXTN2

Signed-off-by: Alex Bennée <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Move handle_2misc_narrow function
Alex Bennée [Mon, 17 Mar 2014 16:31:52 +0000 (16:31 +0000)]
target-arm: A64: Move handle_2misc_narrow function

Move the handle_2misc_narrow() function up the file so that it can
be called from disas_simd_scalar_two_reg_misc().

Signed-off-by: Alex Bennée <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Implement AdvSIMD reciprocal estimate insns URECPE, FRECPE
Alex Bennée [Mon, 17 Mar 2014 16:31:52 +0000 (16:31 +0000)]
target-arm: A64: Implement AdvSIMD reciprocal estimate insns URECPE, FRECPE

Implement URECPE and FRECPE instructions in both scalar and vector forms.
The actual reciprocal estimate function is shared with the A32/T32 Neon
code. However in A64 we aren't using the Neon "standard FPSCR value"
so extra checks are necessary to handle non-squashed denormal inputs
which can never happen for A32/T32. Calling conventions for the helpers
are thus modified to pass the fpst directly; we mark the helpers as
TCG_CALL_NO_RWG since we're changing the declarations anyway.

Signed-off-by: Alex Bennée <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agosoftfloat: export squash_input_denormal functions
Alex Bennée [Mon, 17 Mar 2014 16:31:51 +0000 (16:31 +0000)]
softfloat: export squash_input_denormal functions

I need these available outside of softfloat for some of the reciprocal
processing in aarch64 helper functions.

Signed-off-by: Alex Bennée <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Implement FCVTZS, FCVTZU in the shift-imm categories
Peter Maydell [Mon, 17 Mar 2014 16:31:51 +0000 (16:31 +0000)]
target-arm: A64: Implement FCVTZS, FCVTZU in the shift-imm categories

Implement FCVTZS and FCVTZU in the shift-imm and scalar-shift-imm
categories; this completes the implementation of those two groups.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Handle saturating left shifts SQSHL, SQSHLU, UQSHL
Peter Maydell [Mon, 17 Mar 2014 16:31:51 +0000 (16:31 +0000)]
target-arm: A64: Handle saturating left shifts SQSHL, SQSHLU, UQSHL

Implement the saturating left shift instructions SQSHL, SQSHLU
and UQSHL for the scalar-shift-imm and shift-imm categories.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agoexec-all.h: Increase MAX_OP_PER_INSTR for ARM A64 decoder
Peter Maydell [Mon, 17 Mar 2014 16:31:51 +0000 (16:31 +0000)]
exec-all.h: Increase MAX_OP_PER_INSTR for ARM A64 decoder

The ARM A64 decoder's worst case number of TCG ops per instruction
is 266 (for insn 0x4c800000, a post-indexed ST4 multiple-structures
store). Raise the MAX_OP_PER_INSTR define accordingly.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Implement FRINT*
Peter Maydell [Mon, 17 Mar 2014 16:31:50 +0000 (16:31 +0000)]
target-arm: A64: Implement FRINT*

Implement the FRINT* round-to-integral operations from
the 2-reg-misc category.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Implement SRI
Peter Maydell [Mon, 17 Mar 2014 16:31:50 +0000 (16:31 +0000)]
target-arm: A64: Implement SRI

Implement SRI (shift right and insert).

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Add FRECPX (reciprocal exponent)
Alex Bennée [Mon, 17 Mar 2014 16:31:50 +0000 (16:31 +0000)]
target-arm: A64: Add FRECPX (reciprocal exponent)

These are fairly simple exponent only estimation functions using helpers.

Signed-off-by: Alex Bennée <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: List unsupported shift-imm opcodes
Peter Maydell [Mon, 17 Mar 2014 16:31:50 +0000 (16:31 +0000)]
target-arm: A64: List unsupported shift-imm opcodes

Add the remaining unsupported opcodes to the decode switches
for the shift-imm and scalar shift-imm categories so we can
see what is still to be implemented.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Implement FCVTL
Peter Maydell [Mon, 17 Mar 2014 16:31:49 +0000 (16:31 +0000)]
target-arm: A64: Implement FCVTL

Implement FCVTL, the only instruction in the 2-reg-misc group
which widens from size to 2*size elements.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Implement FCVTN
Peter Maydell [Mon, 17 Mar 2014 16:31:49 +0000 (16:31 +0000)]
target-arm: A64: Implement FCVTN

Implement FCVTN (narrowing fp-to-fp conversions) from the SIMD
2-reg-misc category.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Implement FCVT[NMAPZ][SU] SIMD instructions
Peter Maydell [Mon, 17 Mar 2014 16:31:49 +0000 (16:31 +0000)]
target-arm: A64: Implement FCVT[NMAPZ][SU] SIMD instructions

Implement the floating-point-to-integer conversion instructions
FCVT[NMAPZ][SU] in the 2-reg-misc and scalar-2-reg-misc
categories.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Implement SHLL, SHLL2
Peter Maydell [Mon, 17 Mar 2014 16:31:49 +0000 (16:31 +0000)]
target-arm: A64: Implement SHLL, SHLL2

Implement the SHLL and SHLL2 instructions from the 2-reg-misc
category.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Implement SADDLP, UADDLP, SADALP, UADALP
Peter Maydell [Mon, 17 Mar 2014 16:31:48 +0000 (16:31 +0000)]
target-arm: A64: Implement SADDLP, UADDLP, SADALP, UADALP

Implement the SADDLP, UADDLP, SADALP and UADALP instructions
in the SIMD 2-reg misc category.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Saturating and narrowing shift ops
Alex Bennée [Mon, 17 Mar 2014 16:31:48 +0000 (16:31 +0000)]
target-arm: A64: Saturating and narrowing shift ops

This implements the remaining [US][Q][R]SHR[U][N][2] opcodes, which are
saturating and narrowing shift right operations. These are used in
things like libav. Note signed shifts can have an "unsigned" saturating
narrow operation which will floor negative values.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Message-id: 1394822294[email protected]
[PMM: Added the scalar encodings, style tweaks]
Signed-off-by: Peter Maydell <[email protected]>
10 years agotarget-arm: A64: Add remaining CLS/Z vector ops
Alex Bennée [Mon, 17 Mar 2014 16:31:48 +0000 (16:31 +0000)]
target-arm: A64: Add remaining CLS/Z vector ops

Implement the CLS, CLZ operations in the 2-reg-misc category.

Signed-off-by: Alex Bennée <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Add FSQRT to C3.6.17 (two misc)
Alex Bennée [Mon, 17 Mar 2014 16:31:47 +0000 (16:31 +0000)]
target-arm: A64: Add FSQRT to C3.6.17 (two misc)

Implement FSQRT in the two-reg-misc category.
GCC uses this instruction form.

Signed-off-by: Alex Bennée <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Add last AdvSIMD Integer to FP ops
Alex Bennée [Mon, 17 Mar 2014 16:31:47 +0000 (16:31 +0000)]
target-arm: A64: Add last AdvSIMD Integer to FP ops

This adds the remaining [US]CVTF operations to the SIMD
shift-immediate, scalar-shift-immediate, two-reg-misc and
scalar-two-reg-misc groups of opcodes.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Message-id: 1394822294[email protected]
[PMM: added scalar 2-misc and scalar-shift-imm encodings]
Signed-off-by: Peter Maydell <[email protected]>
10 years agotarget-arm: A64: Fix bug in add_sub_ext handling of rn
Alex Bennée [Mon, 17 Mar 2014 16:31:47 +0000 (16:31 +0000)]
target-arm: A64: Fix bug in add_sub_ext handling of rn

rn == 31 always means SP (not XZR) whether an add_sub_ext
instruction is setting the flags or not; only rd has behaviour
dependent on whether we are setting flags.

Reported-by: Laurent Desnogues <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: A64: Implement PMULL instruction
Peter Maydell [Mon, 17 Mar 2014 16:31:47 +0000 (16:31 +0000)]
target-arm: A64: Implement PMULL instruction

Implement the PMULL instruction; this is the last unimplemented insn
in the three-reg-diff group.

Note that PMULL with size 3 is considered part of the AES part
of the crypto extensions (see the ID_AA64ISAR0_EL1 register definition
in the v8 ARM ARM), so it isn't necessary to burn an extra feature
bit on it, even though we're using more feature bits than a single
"crypto extension present/not present" toggle.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1394822294[email protected]

10 years agotarget-arm: Add ARM_CP_IO notation to PMCR reginfo
Peter Maydell [Mon, 17 Mar 2014 16:31:46 +0000 (16:31 +0000)]
target-arm: Add ARM_CP_IO notation to PMCR reginfo

Now that the PMCR writefn makes timer accesses, its reginfo needs
the ARM_CP_IO flag, so that icount mode works correctly. (Fixes
the bug accidentally introduced in commit 7c2cb42b).

Reported-by: Laurent Desnogues <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Message-id: 1394908291[email protected]

10 years agovirt: Set reset-cbar on CPUs
Peter Maydell [Mon, 17 Mar 2014 16:31:46 +0000 (16:31 +0000)]
virt: Set reset-cbar on CPUs

Set the reset-cbar property on CPUs used by the virt board,
if they have it. This isn't necessary for correct functioning
under Linux (since the A9 isn't a valid CPU for the virt board),
but it is the correct behaviour.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Peter Crosthwaite <[email protected]>
Message-id: 1394462692[email protected]

10 years agoexynos4210: Set reset-cbar property of Cortex-A9 CPUs
Peter Maydell [Mon, 17 Mar 2014 16:31:46 +0000 (16:31 +0000)]
exynos4210: Set reset-cbar property of Cortex-A9 CPUs

Set the reset-cbar property of the Exynos4210 SoC's Cortex-A9
CPUs, so that Linux doesn't misrecognize them as a broken
uniprocessor SoC.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Peter Crosthwaite <[email protected]>
Message-id: 1394462692[email protected]

10 years agorealview-pbx-a9: Set reset-cbar property for CPUs
Peter Maydell [Mon, 17 Mar 2014 16:31:45 +0000 (16:31 +0000)]
realview-pbx-a9: Set reset-cbar property for CPUs

If the CPU is a Cortex-A9 then we should set its reset-cbar property
so that the guest can read the correct PERIPHBASE/CBAR register value;
newer versions of the Linux kernel (as of commit bc41b8724 in 3.12)
will otherwise assume the CPU is a buggy single core A9 SoC. The
realview-pbx-a9 is the only one of the cluster of boards in realview.c
which works with the Cortex-A9 (ie which gets an a9mpcore_priv device);
make sure it also has reset-cbar set correctly.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Peter Crosthwaite <[email protected]>
Message-id: 1394462692[email protected]

10 years agovexpress: Set reset-cbar property for CPUs
Peter Maydell [Mon, 17 Mar 2014 16:31:45 +0000 (16:31 +0000)]
vexpress: Set reset-cbar property for CPUs

Newer versions of the Linux kernel (as of commit bc41b8724 in 3.12)
now assume that if the CPU is a Cortex-A9 and the reset value of the
PERIPHBASE/CBAR register is zero then the CPU is a specific buggy
single core A9 SoC, and will not try to start other cores. Since we
now have a CPU property for the reset value of the CBAR, we can
just fix the vexpress board model to correctly set CBAR so SMP
works again. To avoid duplicate boilerplate code in both the A9
and A15 daughterboard init functions, we split out the CPU and
private memory region init to its own function.

Signed-off-by: Peter Maydell <[email protected]>
Reported-by: Rob Herring <[email protected]>
Reviewed-by: Peter Crosthwaite <[email protected]>
Message-id: 1394462692[email protected]

10 years agoMerge remote-tracking branch 'remotes/kraxel/tags/pull-gtk-3' into staging
Peter Maydell [Mon, 17 Mar 2014 15:51:57 +0000 (15:51 +0000)]
Merge remote-tracking branch 'remotes/kraxel/tags/pull-gtk-3' into staging

gtk: warp bugfixes.
gtk: Allow to activate grab-on-hover from the command line

# gpg: Signature made Mon 17 Mar 2014 13:35:35 GMT using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <[email protected]>"
# gpg:                 aka "Gerd Hoffmann <[email protected]>"
# gpg:                 aka "Gerd Hoffmann (private) <[email protected]>"

* remotes/kraxel/tags/pull-gtk-3:
  gtk: Don't warp absolute pointer
  gtk: Fix mouse warping with gtk3
  gtk: Allow to activate grab-on-hover from the command line

Signed-off-by: Peter Maydell <[email protected]>
10 years agogtk: Don't warp absolute pointer
Cole Robinson [Thu, 13 Mar 2014 19:30:24 +0000 (15:30 -0400)]
gtk: Don't warp absolute pointer

This matches the behavior of SDL, and makes the mouse usable when
using -display gtk -vga qxl

https://bugzilla.redhat.com/show_bug.cgi?id=1051724
Signed-off-by: Cole Robinson <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
10 years agogtk: Fix mouse warping with gtk3
Cole Robinson [Thu, 13 Mar 2014 19:30:23 +0000 (15:30 -0400)]
gtk: Fix mouse warping with gtk3

We were using the wrong coordinates, this fixes things to match the
original gtk2 implementation.

You can see this error in action by using -vga qxl, however even after this
patch the mouse warps in small increments up and to the left, -7x and -3y
pixels at a time, until the pointer is warped off the widget. I think it's
a qxl bug, but the next patch covers it up.

Signed-off-by: Cole Robinson <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
10 years agogtk: Allow to activate grab-on-hover from the command line
Jan Kiszka [Wed, 12 Mar 2014 07:33:50 +0000 (08:33 +0100)]
gtk: Allow to activate grab-on-hover from the command line

As long as we have no persistent GTK configuration, this allows to
enable the useful grab-on-hover feature already when starting the VM.

Signed-off-by: Jan Kiszka <[email protected]>
[ kraxel: fix warning with CONFIG_GTK=n ]

Signed-off-by: Gerd Hoffmann <[email protected]>
10 years agolinux-user: Implement capget, capset
Peter Maydell [Mon, 17 Mar 2014 12:15:35 +0000 (12:15 +0000)]
linux-user: Implement capget, capset

Implement the capget and capset syscalls. This is useful because
simple programs like 'ls' try to use it in AArch64, and otherwise
we emit a lot of noise about it being unimplemented.

Signed-off-by: Peter Maydell <[email protected]>
Signed-off-by: Riku Voipio <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/bonzini/fixes-for-2.0' into staging
Peter Maydell [Mon, 17 Mar 2014 13:05:48 +0000 (13:05 +0000)]
Merge remote-tracking branch 'remotes/bonzini/fixes-for-2.0' into staging

* remotes/bonzini/fixes-for-2.0:
  vl.c: Output error on invalid machine type
  target-alpha: fix subl and s8subl indentation
  qemu-nbd: Fix coverity issues
  rules.mak: Fix per object libs extraction

Signed-off-by: Peter Maydell <[email protected]>
10 years agovl.c: Output error on invalid machine type
Miroslav Rezanina [Fri, 14 Mar 2014 12:06:54 +0000 (13:06 +0100)]
vl.c: Output error on invalid machine type

Output error message using qemu's error_report() function when user
provides the invalid machine type on the command line. This also saves
time to find what issue is when you downgrade from one version of qemu
to another that doesn't support required machine type yet (the version
user downgraded to have to have this patch applied too, of course).

Signed-off-by: Miroslav Rezanina <[email protected]>
[Replace printf with error_printf, suggested by Markus Armbruster. - Paolo]
Signed-off-by: Paolo Bonzini <[email protected]>
10 years agotarget-alpha: fix subl and s8subl indentation
Paolo Bonzini [Sat, 15 Mar 2014 18:33:15 +0000 (19:33 +0100)]
target-alpha: fix subl and s8subl indentation

Two missing braces, one close and one open, fabulously let the code
compile.

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
10 years agoqemu-nbd: Fix coverity issues
Paolo Bonzini [Fri, 14 Mar 2014 17:10:54 +0000 (18:10 +0100)]
qemu-nbd: Fix coverity issues

There are two issues in qemu-nbd: a missing return value check after
calling accept(), and file descriptor leaks in nbd_client_thread.

Reviewed-by: Markus Armbruster <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
10 years agorules.mak: Fix per object libs extraction
Fam Zheng [Fri, 14 Mar 2014 02:21:05 +0000 (10:21 +0800)]
rules.mak: Fix per object libs extraction

Don't sort the extracted options, sort the objects.

Reported-by: Christian Mahnke <[email protected]>
Signed-off-by: Fam Zheng <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
10 years agoMakefile: Fix "make clean"
Fam Zheng [Mon, 17 Mar 2014 01:35:22 +0000 (09:35 +0800)]
Makefile: Fix "make clean"

This fixes a dangerous bug: "make clean" after "make distclean" will
delete every single file including those under .git, if you do in-tree
build!

Rationale: A first "make distclean" will unset $(DSOSUF), a following
"make distclean" or "make clean" will find all the files and delete it.

Fix it by explicitly typing the file extensions here, and combine
multiple find invocations into one.

Signed-off-by: Fam Zheng <[email protected]>
Message-id: 1395020122[email protected]
Reviewed-by: Stefan Weil <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
10 years agolinux-user: Don't allow guest to block SIGSEGV
Peter Maydell [Fri, 14 Mar 2014 14:36:56 +0000 (14:36 +0000)]
linux-user: Don't allow guest to block SIGSEGV

Don't allow the linux-user guest to block SIGSEGV -- QEMU needs this
signal to detect accesses to pages which it has marked read-only
because it has cached translated code from them.

We implement this by making the do_sigprocmask() wrapper suppress
SIGSEGV when doing the host process signal mask manipulation; instead
we store the current state of SIGSEGV in the TaskState struct.

If we get a SIGSEGV for the guest when the guest has blocked the
signal, we treat it as if the default SEGV handler was in place,
as the kernel does for forced SIGSEGV delivery.

This patch is based on an idea by Alex Barcelo, but rather than
simply lying to the guest about the SIGSEGV state we track it.

Signed-off-by: Peter Maydell <[email protected]>
Reported-by: Alex Barcelo <[email protected]>
Signed-off-by: Riku Voipio <[email protected]>
10 years agosignal: added a wrapper for sigprocmask function
Alex Barcelo [Fri, 14 Mar 2014 14:36:55 +0000 (14:36 +0000)]
signal: added a wrapper for sigprocmask function

Create a wrapper for signal mask changes initiated by the guest;
(this includes syscalls and also the sigreturns from signal.c)
this will give us a place to put code which prevents the guest
from changing the handling of signals used by QEMU itself
internally.

The wrapper is called from all the guest-initiated sigprocmask, but
is not called from internal qemu sigprocmask calls.

Signed-off-by: Alex Barcelo <[email protected]>
[PMM: Added calls to wrapper for sigprocmask uses in signal.c
when setting the signal mask on entry and exit from signal
handlers, since these also are guest-provided signal masks.]
Signed-off-by: Peter Maydell <[email protected]>
Signed-off-by: Riku Voipio <[email protected]>
10 years agolinux-user: Don't reserve space for commpage for AArch64
Peter Maydell [Mon, 10 Mar 2014 12:59:17 +0000 (12:59 +0000)]
linux-user: Don't reserve space for commpage for AArch64

AArch64 Linux, unlike AArch32, doesn't use a commpage. This means we
should not be reserving room in the guest address space for one.
Fixes LP:1287195.

Reported-by: Amanieu d'Antras <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Signed-off-by: Riku Voipio <[email protected]>
10 years agolinux-user: implement F_[GS]ETOWN_EX
Andreas Schwab [Fri, 7 Mar 2014 14:24:08 +0000 (15:24 +0100)]
linux-user: implement F_[GS]ETOWN_EX

F_GETOWN is replaced by F_GETOWN_EX inside the glibc fcntl wrapper

Signed-off-by: Andreas Schwab <[email protected]>
Signed-off-by: Riku Voipio <[email protected]>
10 years agolinux-user: Don't return uninitialized value for atomic_barrier syscall
Peter Maydell [Wed, 12 Mar 2014 13:06:01 +0000 (13:06 +0000)]
linux-user: Don't return uninitialized value for atomic_barrier syscall

QEMU's implementation of the m68k atomic_barrier syscall, like the kernel's,
is just a no-op. However we still need to return a result code from it.

Signed-off-by: Peter Maydell <[email protected]>
Signed-off-by: Riku Voipio <[email protected]>
10 years agolinux-user/signal.c: Correct error path for AArch64 do_rt_sigreturn
Peter Maydell [Wed, 12 Mar 2014 13:06:00 +0000 (13:06 +0000)]
linux-user/signal.c: Correct error path for AArch64 do_rt_sigreturn

The error path in AArch64 do_rt_sigreturn() which fails before
attempting lock_user_struct() was doing an unlock_user_struct()
on an uninitialized variable. Initialize frame to NULL so we
can use the same error-exit path in all cases (unlock of NULL
is permitted and does nothing).

Signed-off-by: Peter Maydell <[email protected]>
Signed-off-by: Riku Voipio <[email protected]>
11 years agoMerge remote-tracking branch 'remotes/mjt/tags/trivial-patches-2014-03-15' into staging
Peter Maydell [Sat, 15 Mar 2014 18:22:10 +0000 (18:22 +0000)]
Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-2014-03-15' into staging

trivial patches for 2014-03-15

# gpg: Signature made Sat 15 Mar 2014 09:54:30 GMT using RSA key ID 74F0C838
# gpg: Good signature from "Michael Tokarev <[email protected]>"
# gpg:                 aka "Michael Tokarev <[email protected]>"
# gpg:                 aka "Michael Tokarev <[email protected]>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 6EE1 95D1 886E 8FFB 810D  4324 457C E0A0 8044 65C5
#      Subkey fingerprint: E190 8639 3B10 B51B AC2C  8B73 5253 C5AD 74F0 C838

* remotes/mjt/tags/trivial-patches-2014-03-15:
  FSL eTSEC: Fix typo in rx ring
  scripts/make-release: Don't distribute .git directories
  configure: Don't use __int128_t for clang versions before 3.2
  audio: Add 'static' attributes to several variables
  tests: Fix 'make test' for i686 hosts (build regression)
  misc: Fix typos in comments
  Add qga/qapi-generated to .gitignore
  hw/timer/grlib_gptimer: Avoid integer overflows
  .travis.yml: add IRC notifications for build failures
  .travis.yml: trivial whitespace fixup
  .travis.yml: re-enable lttng user space trace test
  .travis.yml: add a new build target with non-core devlibs
  sasl: Avoid 'Could not find keytab file' in syslog

Signed-off-by: Peter Maydell <[email protected]>
11 years agoMerge remote-tracking branch 'remotes/rth/tcg-aarch-6-2' into staging
Peter Maydell [Sat, 15 Mar 2014 18:03:15 +0000 (18:03 +0000)]
Merge remote-tracking branch 'remotes/rth/tcg-aarch-6-2' into staging

* remotes/rth/tcg-aarch-6-2:
  tcg-aarch64: Introduce tcg_out_insn_3405
  tcg-aarch64: Support div, rem
  tcg-aarch64: Support muluh, mulsh
  tcg-aarch64: Support add2, sub2
  tcg-aarch64: Support deposit
  tcg-aarch64: Use tcg_out_insn for setcond
  tcg-aarch64: Support movcond
  tcg-aarch64: Support andc, orc, eqv, not, neg
  tcg-aarch64: Handle constant operands to and, or, xor
  tcg-aarch64: Handle constant operands to add, sub, and compare
  tcg-aarch64: Implement mov with tcg_out_insn
  tcg-aarch64: Introduce tcg_out_insn_3401
  tcg-aarch64: Convert shift insns to tcg_out_insn
  tcg-aarch64: Introduce tcg_out_insn

Signed-off-by: Peter Maydell <[email protected]>
11 years agoFSL eTSEC: Fix typo in rx ring
Fabien Chouteau [Fri, 14 Mar 2014 16:51:41 +0000 (17:51 +0100)]
FSL eTSEC: Fix typo in rx ring

Signed-off-by: Fabien Chouteau <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years agoscripts/make-release: Don't distribute .git directories
Cole Robinson [Fri, 14 Mar 2014 16:49:13 +0000 (12:49 -0400)]
scripts/make-release: Don't distribute .git directories

[crobinso@localhost qemu-2.0.0-rc0]$ find . -name .git
./dtc/.git
./pixman/.git

This is already done for the rom submodules.

https://bugs.launchpad.net/qemu/+bug/1224414
Signed-off-by: Cole Robinson <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years agoconfigure: Don't use __int128_t for clang versions before 3.2
Stefan Weil [Fri, 7 Mar 2014 09:43:38 +0000 (10:43 +0100)]
configure: Don't use __int128_t for clang versions before 3.2

Those versions don't fully support __int128_t.

Cc: [email protected]
Signed-off-by: Stefan Weil <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years agoaudio: Add 'static' attributes to several variables
Stefan Weil [Wed, 5 Mar 2014 21:21:32 +0000 (22:21 +0100)]
audio: Add 'static' attributes to several variables

Signed-off-by: Stefan Weil <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years agotests: Fix 'make test' for i686 hosts (build regression)
Stefan Weil [Fri, 7 Mar 2014 10:11:22 +0000 (11:11 +0100)]
tests: Fix 'make test' for i686 hosts (build regression)

'make test' is broken at least since commit
baacf04799ace72a9c735dd9306a1ceaf305e7cf. Several source files were moved
to util/, and some of them there split, so add the missing prefix and new
files to fix the compiler and linker errors.

There remain more issues, but these changes allow running the test on a
Linux i686 host.

Cc: [email protected]
Signed-off-by: Stefan Weil <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years agomisc: Fix typos in comments
Stefan Weil [Fri, 7 Mar 2014 18:48:59 +0000 (19:48 +0100)]
misc: Fix typos in comments

Codespell found and fixed these new typos:

* doesnt -> doesn't
* funtion -> function
* perfomance -> performance
* remaing -> remaining

A coding style issue (line too long) was fixed manually.

Signed-off-by: Stefan Weil <[email protected]>
Reviewed-by: Andreas Färber <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years agoAdd qga/qapi-generated to .gitignore
Gabriel L. Somlo [Mon, 10 Mar 2014 18:08:59 +0000 (14:08 -0400)]
Add qga/qapi-generated to .gitignore

The folder "qga/qapi-generated" shows up after building QEMU, and
gets in the way during e.g. "git add ."; Add it to .gitignore to
keep it from accidentally ending up in the wrong place.

Signed-off-by: Gabriel Somlo <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years agohw/timer/grlib_gptimer: Avoid integer overflows
Sebastian Huber [Sun, 16 Feb 2014 11:12:38 +0000 (12:12 +0100)]
hw/timer/grlib_gptimer: Avoid integer overflows

The GPTIMER uses 32-bit registers.  Use a 64-bit operation to get the
ptimer count, otherwise we end up with a count of 0 for GPTIMER counter
values of 0xffffffff.

Use the GPTIMER counter value for tracing to avoid an overflow of the
32-bit value passed to trace_grlib_gptimer_enable().

Reviewed-by: Fabien Chouteau <[email protected]>
Signed-off-by: Sebastian Huber <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years ago.travis.yml: add IRC notifications for build failures
Alex Bennée [Wed, 12 Mar 2014 14:13:53 +0000 (14:13 +0000)]
.travis.yml: add IRC notifications for build failures

I'm trying to avoid spamming the IRC channel (not overly likely as
builds take a while). So failure will always be reported but if the
build continues to work then the IRC notifications will be quiet.

Note any GitHub based repository with Travis enabled will use this
notification. If it proves to be too spammy we may want to ask users not
to use Travis themselves although this seems sub-optimal.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years ago.travis.yml: trivial whitespace fixup
Alex Bennée [Wed, 12 Mar 2014 14:13:52 +0000 (14:13 +0000)]
.travis.yml: trivial whitespace fixup

Purely cosmetic but satisfies my OCD.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years ago.travis.yml: re-enable lttng user space trace test
Alex Bennée [Wed, 12 Mar 2014 14:13:51 +0000 (14:13 +0000)]
.travis.yml: re-enable lttng user space trace test

This build was disabled while the lttng tracing was broken. Stefan has
recently submitted a pull request with it re-enabled.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years ago.travis.yml: add a new build target with non-core devlibs
Alex Bennée [Wed, 12 Mar 2014 14:13:50 +0000 (14:13 +0000)]
.travis.yml: add a new build target with non-core devlibs

The current builds don't include all the features which are
auto-detected and then disabled when the appropriate test packages don't
exist. I've added another target that enables all known additional
packages for increased coverage. I didn't add it to the core package
list to reduce build time.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years agosasl: Avoid 'Could not find keytab file' in syslog
Laszlo Ersek [Fri, 14 Mar 2014 14:39:36 +0000 (15:39 +0100)]
sasl: Avoid 'Could not find keytab file' in syslog

The "keytab" specification in "qemu.sasl" only makes sense if "gssapi" is
selected in "mech_list". Even if the latter is not done (ie. "gssapi" is
not selected), the cyrus-sasl library tries to open the specified keytab
file, although nothing has a use for it outside the gssapi backend.

Since the default keytab file "/etc/qemu/krb5.tab" is usually absent, the
cyrus-sasl library emits a warning to syslog at startup, which tends to
annoy users (who didn't ask for gssapi in the first place).

Comment out the keytab specification per default.

"qemu-doc.texi" already correctly explains how to use "mech_list: gssapi"
together with "keytab:".

See also:
- upstream libvirt commit fe772f24,
- Red Hat Bugzilla <https://bugzilla.redhat.com/show_bug.cgi?id=1018434>.

Signed-off-by: Laszlo Ersek <[email protected]>
ACKed-By: Cole Robinson <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>
11 years agoMerge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging
Peter Maydell [Fri, 14 Mar 2014 18:44:22 +0000 (18:44 +0000)]
Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging

Block pull request

# gpg: Signature made Fri 14 Mar 2014 16:12:14 GMT using RSA key ID 81AB73C8
# gpg: Good signature from "Stefan Hajnoczi <[email protected]>"
# gpg:                 aka "Stefan Hajnoczi <[email protected]>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35  775A 9CA4 ABB3 81AB 73C8

* remotes/stefanha/tags/block-pull-request:
  qemu-iotests: remove 085 and 087 from 'quick' group
  qemu-iotests: add 083 NBD client disconnect tests
  tests: add nbd-fault-injector.py utility
  nbd: close socket if connection breaks
  block: Explicitly specify 'unsigned long long' for VHDX 64-bit constants
  blockdev: Refuse to open encrypted image unless paused

Signed-off-by: Peter Maydell <[email protected]>
This page took 0.087611 seconds and 4 git commands to generate.