sdk/emulator/qemu.git
10 years agotethering: added tethering feature. 71/12871/1
Kitae Kim [Thu, 31 Oct 2013 09:28:30 +0000 (18:28 +0900)]
tethering: added tethering feature.

app_tethering is for communicating with App on target.
This module is a client side to connect App that creates sensor or touch point data
and it deliveries received data to each device.

ecs_tethering is for communicating with ECP. This module handles messages from ECP.
The messages consist of connect, disconnect, connection status and etc..

Change-Id: I2c31f785fe824fd578fafb08e9f9efe423f26ea6
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
10 years agoMerge changes I275a5231,I4eae90b7 into tizen
daiyoung kim [Mon, 25 Nov 2013 05:08:36 +0000 (21:08 -0800)]
Merge changes I275a5231,I4eae90b7 into tizen

* changes:
  YaGL: Add glFlush before makeCurrent
  YaGL/VIGS: Return glFinish

10 years agoMerge "hwkey: added reset feature." into tizen
daiyoung kim [Mon, 25 Nov 2013 05:07:05 +0000 (21:07 -0800)]
Merge "hwkey: added reset feature." into tizen

10 years agoMerge "brillcodec: added reset feature." into tizen
daiyoung kim [Mon, 25 Nov 2013 05:04:48 +0000 (21:04 -0800)]
Merge "brillcodec: added reset feature." into tizen

10 years agohwkey: added reset feature. 77/12777/1
Kitae Kim [Fri, 22 Nov 2013 10:38:04 +0000 (19:38 +0900)]
hwkey: added reset feature.

initialize numbers of buffers in the virtqueue when reset state.

Change-Id: I72c40e156ca3fa16e33f732505cd7ca012139122
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
10 years agobrillcodec: added reset feature. 76/12776/1
Kitae Kim [Fri, 22 Nov 2013 10:19:41 +0000 (19:19 +0900)]
brillcodec: added reset feature.

Support reset feature and remove useless codes.

Change-Id: I05ac5cf32c9e2a43e46f699b5f7966dbd09698b6
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
10 years agoYaGL: Add glFlush before makeCurrent 62/12762/1
Stanislav Vorobiov [Fri, 22 Nov 2013 06:44:39 +0000 (10:44 +0400)]
YaGL: Add glFlush before makeCurrent

On Mac OS X aglSetCurrentContext doesn't implicitly
glFlush like on linux and windows. glFlush is required
because some apps, like webkit based apps for example,
rely on this behavior

Change-Id: I275a523152369206daa1602217443f28e2e6479f

10 years agodisplay: modified Blank Guide image resizing 52/12852/1
GiWoong Kim [Fri, 22 Nov 2013 05:13:41 +0000 (14:13 +0900)]
display: modified Blank Guide image resizing

Emulator should resize the Blank Guide image
to fit the display, base on its resolution and scale.

Change-Id: If8a89f2e46068ad15fc8d5163b85108f22773093
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agodisplay: modified some variable & function names 51/12851/1
GiWoong Kim [Fri, 22 Nov 2013 02:06:37 +0000 (11:06 +0900)]
display: modified some variable & function names

In Qemu, to avoid a confusing about screen size,
I changed some variable names and function names.
(set_emul_lcd_size -> set_emul_resolution)

Change-Id: I567291504aab16f04255d16351fb18e40223e1b6
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agoMerge changes I478cb1a1,I5851bbca,I4b38ab3c into tizen
daiyoung kim [Thu, 21 Nov 2013 12:14:05 +0000 (04:14 -0800)]
Merge changes I478cb1a1,I5851bbca,I4b38ab3c into tizen

* changes:
  menu: added XML schema for scale menu
  menu: prepare for dynamic scale factor
  skin: no need to set SWT interpolation on Windows/MacOS

10 years agoMerge "nfc: remove excutable permission" into tizen
daiyoung kim [Thu, 21 Nov 2013 12:12:45 +0000 (04:12 -0800)]
Merge "nfc: remove excutable permission" into tizen

10 years agoMerge "esm: Implement reset function." into tizen
daiyoung kim [Thu, 21 Nov 2013 12:12:16 +0000 (04:12 -0800)]
Merge "esm: Implement reset function." into tizen

10 years agoYaGL/VIGS: Return glFinish 61/12761/1
Stanislav Vorobiov [Thu, 21 Nov 2013 10:36:07 +0000 (14:36 +0400)]
YaGL/VIGS: Return glFinish

Though we use single host thread for all OpenGL operations
it's still not guaranteed that commands in different contexts will
be processed in order, thus, single glFinish in VIGS will not wait
for GL commands to be processed in YaGL. Because of this contents
of windows on target may appear incomplete, this was observed on
Mac OS X in particular. glFinish will reduce performance, but it'll
ensure correct rendering. Later we'll implement another approach
that'll use GL fences in order not to wait for rendering to be
completed

Change-Id: I4eae90b73f4d66cd8c7fa1939db1c18ad9751051

10 years agomenu: added XML schema for scale menu 20/12620/2
GiWoong Kim [Wed, 20 Nov 2013 05:41:12 +0000 (14:41 +0900)]
menu: added XML schema for scale menu

1. To constitute the scale menu's factor array
through XML, I declared "factorItem" element.
2. declare "blankGuide" element directly

Change-Id: I478cb1a187917d111c3b2a34e1e01f69150dbd18
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agonfc: remove excutable permission 74/12674/1
munkyu.im [Thu, 21 Nov 2013 05:14:19 +0000 (14:14 +0900)]
nfc: remove excutable permission

It was added accidentally.
So removed it.

Change-Id: I4fb6038afbf53d90bb80732b02852543c2c98f2e
Signed-off-by: munkyu.im <munkyu.im@samsung.com>
10 years agoesm: Implement reset function. 62/12662/2
SeokYeon Hwang [Thu, 21 Nov 2013 03:55:24 +0000 (12:55 +0900)]
esm: Implement reset function.

Change-Id: I0770e6011e12185b74b23af908dd3c54f719ddce
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
10 years agomenu: prepare for dynamic scale factor 19/12619/1
GiWoong Kim [Tue, 19 Nov 2013 07:29:12 +0000 (16:29 +0900)]
menu: prepare for dynamic scale factor

The range of scale factor has to depend on their
emulator resolution. Factors must be dynamic. Therefore,
the scale factor should be treated as a number.

Change-Id: I5851bbca08e1dde67c32908e8d3d7257b1293b82
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agoskin: no need to set SWT interpolation on Windows/MacOS 18/12618/1
GiWoong Kim [Tue, 19 Nov 2013 05:24:09 +0000 (14:24 +0900)]
skin: no need to set SWT interpolation on Windows/MacOS

On Ubuntu, when drawing the skin image stretched with an
interpolation algorithm, the edges of the image are faded.
This problem is not occured at Windows or MacOS.

Change-Id: I4b38ab3cf53c30ff41a039e878b326ef557aafe6
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agoMerge "suspend/resume: NOT allow to add duplicated client." into tizen
daiyoung kim [Tue, 19 Nov 2013 23:59:35 +0000 (15:59 -0800)]
Merge "suspend/resume: NOT allow to add duplicated client." into tizen

10 years agoMerge "brillcodec: changed a way to release avcontext." into tizen
daiyoung kim [Tue, 19 Nov 2013 23:56:49 +0000 (15:56 -0800)]
Merge "brillcodec: changed a way to release avcontext." into tizen

10 years agobrillcodec: changed a way to release avcontext. 74/12574/1
Kitae Kim [Mon, 18 Nov 2013 11:48:25 +0000 (20:48 +0900)]
brillcodec: changed a way to release avcontext.

release_context does not need to iterate all contexts,
because codec driver manages context_id and give the context_id to device.

Change-Id: Ib464076b132e3bdeebfc204d38b2555b0b804f7e
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
10 years agosuspend/resume: NOT allow to add duplicated client. 66/12566/3
Jinhyung Choi [Tue, 19 Nov 2013 07:09:53 +0000 (16:09 +0900)]
suspend/resume: NOT allow to add duplicated client.

Change-Id: Ib1ac637058413b8051cfb9af4825ca75b80bfe94
Signed-off-by: Jinhyung Choi <jinhyung2.choi@samsung.com>
10 years agopackage: version up. 60/12560/1
SeokYeon Hwang [Tue, 19 Nov 2013 05:32:32 +0000 (14:32 +0900)]
package: version up.

1.7.0

Change-Id: I37435087bafa9d0340deb4271ae7443f1e732099
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
10 years agomaru_pm: Add suspend / wakeup notifier. 59/12559/1
SeokYeon Hwang [Tue, 19 Nov 2013 05:21:19 +0000 (14:21 +0900)]
maru_pm: Add suspend / wakeup notifier.

Add suspend / wakeup notifier to tell sdb.

Change-Id: I038f70f7a97cc3b60fab357a7c637c754aa035f9
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
10 years agosuspend/resume: changed message format 36/12536/2
Jinhyung Choi [Mon, 18 Nov 2013 12:46:37 +0000 (21:46 +0900)]
suspend/resume: changed message format

The message length was set as decimal(ex. 0026).
It is changed to hexadecimal (ex. 001A) for first 4byte.

Change-Id: Ide15b65f5c7ff45b395988460aeae7b0b5053092
Signed-off-by: Jinhyung Choi <jinhyung2.choi@samsung.com>
10 years agoecs: save a ecs port into a .ecs.property 05/12505/2
Jinhyung Choi [Sun, 17 Nov 2013 09:36:09 +0000 (18:36 +0900)]
ecs: save a ecs port into a .ecs.property

ECS port is randomly created, and it is saved into
[tizen-sdk-data]/emulator/vms/[VM name]/.ecs.properties

Change-Id: Iec571be7a46b0ba602917101e8ea437f3f7444a8
Signed-off-by: Jinhyung Choi <jinhyung2.choi@samsung.com>
10 years agoskin: added updateSkin interface 36/12436/1
GiWoong Kim [Fri, 15 Nov 2013 03:22:33 +0000 (12:22 +0900)]
skin: added updateSkin interface

The each skin composer can update the skin(like
a ColorTag updating) itself by diffrent way
if it required.

Change-Id: I5e2dcc2a50d7de86d42ae43e6b4f8c1e18fece6a
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agopackage: version up 75/12375/1
GiWoong Kim [Thu, 14 Nov 2013 07:00:28 +0000 (16:00 +0900)]
package: version up

1.6.4

Change-Id: Ib9774cf769abdfa4cae93c7830f052739cc4d3f0
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agomenu: added schema for host keyboard menu 73/12373/1
GiWoong Kim [Thu, 14 Nov 2013 05:23:21 +0000 (14:23 +0900)]
menu: added schema for host keyboard menu

Now, user can configure the host keyboard menu
(Right click popup>Advance>Host Keyboard menu) by
skin layout XML file.

Change-Id: I150a494d0657b9670ad82bda48a6b4431fbc6d9b
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agoskin: modified indenting 35/12335/1
GiWoong Kim [Wed, 13 Nov 2013 10:09:24 +0000 (19:09 +0900)]
skin: modified indenting

1. modified indenting
2. added boilerplate title

Change-Id: Ibe9fa409dfd39c56dc558ba25374221dce432dec
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agomenu: skin popup menu code clean up 34/12334/1
GiWoong Kim [Wed, 13 Nov 2013 08:01:33 +0000 (17:01 +0900)]
menu: skin popup menu code clean up

1. To improve the readability, I declare the some new functions.
2. Do not show a seperator from popup menu when it has no items.

Change-Id: Ib1444dac846ea1273c787f7a2978aeebbb71c724
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agomenu: skin dialog code clean up 41/12241/1
GiWoong Kim [Tue, 12 Nov 2013 10:43:04 +0000 (19:43 +0900)]
menu: skin dialog code clean up

1. allow to create a button composite optionally in SkinDialog
2. added boilerplate title (SkinDialog, LicenceDialog,
RamdumpDialog)
3. define static string
4. modified indenting & etc

Change-Id: I040276e597a8cebfc61e1a15aa0cec13af7cb95d
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agocommunication: added protocol for the host keyboard state 40/12240/1
GiWoong Kim [Tue, 12 Nov 2013 03:07:59 +0000 (12:07 +0900)]
communication: added protocol for the host keyboard state

The Qemu-Skin protocol has been extended to share the
host keyboard state between ECP and right-click popup
menu.

Change-Id: I50e239047b5fda6337f8505b84298643c2efb4ed
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agoEnable "SLEEP" on emulator. 05/12005/2
SeokYeon Hwang [Mon, 11 Nov 2013 05:19:10 +0000 (14:19 +0900)]
Enable "SLEEP" on emulator.

Rewrite "maru_pm".
Cooperate "SLEEP" with qemu suspend.
Clean-up power management code.

Change-Id: Ieae0513d10fed9110e8dc9a2b67e1d2316f3ff36
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
10 years agoMerge "ecs: apply nfc multi-session" into tizen
daiyoung kim [Tue, 12 Nov 2013 11:18:26 +0000 (03:18 -0800)]
Merge "ecs: apply nfc multi-session" into tizen

10 years agoMerge changes I14ea9453,I86f46a5f into tizen
daiyoung kim [Tue, 12 Nov 2013 11:18:05 +0000 (03:18 -0800)]
Merge changes I14ea9453,I86f46a5f into tizen

* changes:
  skin: move to the proper java package
  touch: remove data race condition

10 years agoMerge "guest server: changed socket connection & added logs" into tizen
daiyoung kim [Tue, 12 Nov 2013 11:16:57 +0000 (03:16 -0800)]
Merge "guest server: changed socket connection & added logs" into tizen

10 years agoMerge "brillcodec: fixed null pointer deferences." into tizen
daiyoung kim [Tue, 12 Nov 2013 11:16:39 +0000 (03:16 -0800)]
Merge "brillcodec: fixed null pointer deferences." into tizen

10 years agoecs: apply nfc multi-session 64/12064/2
munkyu.im [Tue, 12 Nov 2013 09:23:15 +0000 (18:23 +0900)]
ecs: apply nfc multi-session

modified protobuf protocol
added id, type value to identify each connection

Change-Id: I8318f1a409ac667a94a7ec9b55900cfb5564f06e
Signed-off-by: munkyu.im <munkyu.im@samsung.com>
10 years agoguest server: changed socket connection & added logs 45/12045/2
Jinhyung Choi [Tue, 12 Nov 2013 03:46:22 +0000 (12:46 +0900)]
guest server: changed socket connection & added logs

Socket connection is established first, then send message to sdb server.
Also logs are added for debugging.

Change-Id: I7d38e19d5392be07d93eb32442c1a148a150d9ad
Signed-off-by: Jinhyung Choi <jinhyung2.choi@samsung.com>
10 years agoskin: move to the proper java package 40/12040/1
GiWoong Kim [Tue, 12 Nov 2013 01:55:38 +0000 (10:55 +0900)]
skin: move to the proper java package

EmulatorSkinState: skin -> skin.info
GeneralKeyWindow, SpecialKeyWindow: custom -> menu

Change-Id: I14ea94539a0ad44edeb35bb0be6cd226f6467f1c
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agotouch: remove data race condition 36/12036/2
GiWoong Kim [Mon, 11 Nov 2013 08:46:52 +0000 (17:46 +0900)]
touch: remove data race condition

There is no need to reset the ring buffer counter
in the pthread lock section.

Change-Id: I86f46a5ff5c38fc57e9f6d58b4d49f8905c5c648
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agocommunication: no need to define the various DataTransfers 35/12035/1
GiWoong Kim [Fri, 8 Nov 2013 04:01:30 +0000 (13:01 +0900)]
communication: no need to define the various DataTransfers

1. merge progressDataTransfer and brightnessDataTransfer
2. fix typo at boilerplate title

Change-Id: Iccbca36b3bf2122db310aa748df662d3883f743a
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
10 years agobrillcodec: fixed null pointer deferences. 50/12050/1
Kitae Kim [Fri, 8 Nov 2013 11:23:35 +0000 (20:23 +0900)]
brillcodec: fixed null pointer deferences.

Removed unnecessary null check.

Change-Id: Ie7fc96cd453dc73283f2a585121abfb40e664a7f
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
10 years agoMerge "vigs & yagl : Move sources to own directories" into tizen
daiyoung kim [Fri, 8 Nov 2013 06:19:09 +0000 (22:19 -0800)]
Merge "vigs & yagl : Move sources to own directories" into tizen

10 years agoMerge "vigs & yagl : Insert the boilerplate" into tizen
daiyoung kim [Fri, 8 Nov 2013 06:18:53 +0000 (22:18 -0800)]
Merge "vigs & yagl : Insert the boilerplate" into tizen

10 years agoguest_server: changed message format when a sdb server registers in guest server 04/11904/3
Jinhyung Choi [Thu, 7 Nov 2013 13:32:33 +0000 (22:32 +0900)]
guest_server: changed message format when a sdb server registers in guest server

Previously it gets ip, port, serial, but now serial only

Change-Id: I442c5ba314ecacf9a144fa5d73737122d896e48c
Signed-off-by: Jinhyung Choi <jinhyung2.choi@samsung.com>
10 years agovigs & yagl : Move sources to own directories 81/11881/1
jinhyung.jo [Thu, 31 Oct 2013 09:31:01 +0000 (18:31 +0900)]
vigs & yagl : Move sources to own directories

Make new directories for each module in the hw directory
, move the sources and add makefiles.

Change-Id: Ife82c2770f6ae8917c854d70e8b89c44edbc1e9c
Signed-off-by: Jinhyung Jo <jinhyung.jo@samsung.com>
10 years agovigs & yagl : Insert the boilerplate 80/11880/1
jinhyung.jo [Thu, 31 Oct 2013 09:10:59 +0000 (18:10 +0900)]
vigs & yagl : Insert the boilerplate

Added the GPL2 boilerplate

Change-Id: I04fd7bc2e053b469f04a62613a14e1ec3a4835b5
Signed-off-by: Jinhyung Jo <jinhyung.jo@samsung.com>
10 years agoMerge changes Iea9ab886,I457a35cd into tizen
daiyoung kim [Thu, 7 Nov 2013 06:03:22 +0000 (22:03 -0800)]
Merge changes Iea9ab886,I457a35cd into tizen

* changes:
  emulator: boot completed logging
  communication: modified event message names

10 years agoMerge "package: modify install and remove script." into tizen
daiyoung kim [Thu, 7 Nov 2013 06:02:00 +0000 (22:02 -0800)]
Merge "package: modify install and remove script." into tizen

10 years agoFix compilation error on maru_board.c
SeokYeon Hwang [Tue, 29 Oct 2013 02:35:12 +0000 (11:35 +0900)]
Fix compilation error on maru_board.c

A xen_hvm_init() function prototype is modified.

Change-Id: I6ec43199ddb65db591bedea8c89db6d46010daf0
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
10 years agoUpdate VERSION for 1.6.1 release
Michael Roth [Fri, 4 Oct 2013 15:21:43 +0000 (10:21 -0500)]
Update VERSION for 1.6.1 release

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoscsi: Allocate SCSITargetReq r->buf dynamically
Asias He [Fri, 13 Sep 2013 06:56:55 +0000 (14:56 +0800)]
scsi: Allocate SCSITargetReq r->buf dynamically

BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1007330
Brew: https://brewweb.devel.redhat.com/taskinfo?taskID=6282465

This is the backport of the following commit. The patch is not
sent public since it is a embargoed bug.

   r->buf is hardcoded to 2056 which is (256 + 1) * 8, allowing 256 luns at
   most. If more than 256 luns are specified by user, we have buffer
   overflow in scsi_target_emulate_report_luns.

   To fix, we allocate the buffer dynamically.

Signed-off-by: Asias He <asias@redhat.com>
Signed-off-by: Asias He <asias@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
*s/&r->buf/r->buf/ due to type change

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoqemu: Add qemu xen logic for Xen HVM S3 resume
Liu, Jinsong [Wed, 25 Sep 2013 16:40:23 +0000 (16:40 +0000)]
qemu: Add qemu xen logic for Xen HVM S3 resume

This patch is qemu patch 2 to fix Xen HVM S3 bug, adding qemu
xen logic. When qemu wakeup, qemu xen logic is notified and
hypercall to xen hypervisor to unpause domain.

Signed-off-by: Liu Jinsong <jinsong.liu@intel.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
(cherry picked from commit 11addd0ab9371af2b6ec028c7fe4e4c4992252fc)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoqemu: Adjust qemu wakeup
Liu, Jinsong [Wed, 25 Sep 2013 16:38:29 +0000 (16:38 +0000)]
qemu: Adjust qemu wakeup

Currently Xen hvm s3 has a bug coming from the difference between
qemu-traditioanl and qemu-xen. For qemu-traditional, the way to
resume from hvm s3 is via 'xl trigger' command. However, for
qemu-xen, the way to resume from hvm s3 inherited from standard
qemu, i.e. via QMP, and it doesn't work under Xen.

The root cause is, for qemu-xen, 'xl trigger' command didn't reset
devices, while QMP didn't unpause hvm domain though they did qemu
system reset.

We have two qemu patches and one xl patch to fix Xen hvm s3 bug.
This patch is the qemu patch 1. It adjusts qemu wakeup so that
Xen s3 resume logic (which will be implemented at qemu patch 2)
will be notified after qemu system reset.

Signed-off-by: Liu Jinsong <jinsong.liu@intel.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
(cherry picked from commit 4bc78a877252d772b983810a7d2c0be00e9be70e)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agocoroutine: add ./configure --disable-coroutine-pool
Stefan Hajnoczi [Wed, 11 Sep 2013 14:42:35 +0000 (16:42 +0200)]
coroutine: add ./configure --disable-coroutine-pool

The 'gthread' coroutine backend was written before the freelist (aka
pool) existed in qemu-coroutine.c.

This means that every thread is expected to exit when its coroutine
terminates.  It is not possible to reuse threads from a pool.

This patch automatically disables the pool when 'gthread' is used.  This
allows the 'gthread' backend to work again (for example,
tests/test-coroutine completes successfully instead of hanging).

I considered implementing thread reuse but I don't want quirks like CPU
affinity differences due to coroutine threads being recycled.  The
'gthread' backend is a reference backend and it's therefore okay to skip
the pool optimization.

Note this patch also makes it easy to toggle the pool for benchmarking
purposes:

  ./configure --with-coroutine-backend=ucontext \
              --disable-coroutine-pool

Reported-by: Gabriel Kerneis <gabriel@kerneis.info>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Gabriel Kerneis <gabriel@kerneis.info>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
(cherry picked from commit 70c60c089fdc6bf8a79324e492c13e8c08d55942)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agopiix4: disable io on reset
Michael S. Tsirkin [Wed, 11 Sep 2013 10:33:31 +0000 (13:33 +0300)]
piix4: disable io on reset

io base register at 0x40 is cleared on reset,
but io is not disabled until some other event
happens to call pm_io_space_update.

Invoke pm_io_space_update directly to make this
consistent.

Cc: qemu-stable@nongnu.org
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit c046e8c4a26c902ca1b4f5bdf668a2da6bc75f54)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agovmdk: fix cluster size check for flat extents
Fam Zheng [Mon, 23 Sep 2013 09:18:29 +0000 (17:18 +0800)]
vmdk: fix cluster size check for flat extents

We use the extent size as cluster size for flat extents (where no L1/L2
table is allocated so it's safe) reuse sector calculating code with
sparse extents.

Don't pass in the cluster size for adding flat extent, just set it to
sectors later, then the cluster size checking will not fail.

The cluster_sectors is changed to int64_t to allow big flat extent.

Without this, flat extent opening is broken:

    # qemu-img create -f vmdk -o subformat=monolithicFlat /tmp/a.vmdk 100G
    Formatting '/tmp/a.vmdk', fmt=vmdk size=107374182400 compat6=off subformat='monolithicFlat' zeroed_grain=off
    # qemu-img info /tmp/a.vmdk
    image: /tmp/a.vmdk
    file format: raw
    virtual size: 0 (0 bytes)
    disk size: 4.0K

Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
(cherry picked from commit 301c7d38a0c359b91526391d13617386f3d9bb29)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agorbd: avoid qemu_rbd_snap_list() memory leaks
Stefan Hajnoczi [Wed, 25 Sep 2013 14:00:48 +0000 (16:00 +0200)]
rbd: avoid qemu_rbd_snap_list() memory leaks

When there are no snapshots qemu_rbd_snap_list() returns 0 and the
snapshot table pointer is NULL.  Don't forget to free the snaps buffer
we allocated for librbd rbd_snap_list().

When the function succeeds don't forget to free the snaps buffer after
calling rbd_snap_list_end().

Cc: qemu-stable@nongnu.org
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
(cherry picked from commit 9e6337d0818650362149b734d53edf9489f3acaa)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agotap: Use numbered tap/tun devices on all *BSD OS's
Brad Smith [Sun, 4 Aug 2013 02:20:41 +0000 (22:20 -0400)]
tap: Use numbered tap/tun devices on all *BSD OS's

The following patch simplifies the *BSD tap/tun code and makes use of numbered
tap/tun interfaces on all *BSD OS's. NetBSD has a patch in their pkgsrc tree
to make use of this feature and DragonFly also supports this as well.

Signed-off-by: Brad Smith <brad@comstyle.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit aa4f082f7526d39dac8e2ca64d192d858014ee10)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoiov: avoid "orig_len may be used unitialized" warning
Michael Tokarev [Sat, 14 Sep 2013 09:11:36 +0000 (13:11 +0400)]
iov: avoid "orig_len may be used unitialized" warning

Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(cherry picked from commit 2be178a475289286db80de5ddd7830e67e112bdd)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoxhci: emulate intr endpoint intervals correctly
Gerd Hoffmann [Wed, 28 Aug 2013 09:38:44 +0000 (11:38 +0200)]
xhci: emulate intr endpoint intervals correctly

Respect the interval for interrupt endpoints, so we don't finish
transfers as fast as possible but at the rate configured by the guest.

Fixes guest deadlocks triggered by interrupt storms.

Cc:
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit 4d7a81c06f5f17e019a2d3a18300500bd64f6f40)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agovirtio-blk: do not relay a previous driver's WCE configuration to the current
Paolo Bonzini [Fri, 20 Sep 2013 15:31:55 +0000 (17:31 +0200)]
virtio-blk: do not relay a previous driver's WCE configuration to the current

The following sequence happens:
- the SeaBIOS virtio-blk driver does not support the WCE feature, which
causes QEMU to disable writeback caching

- the Linux virtio-blk driver resets the device, finds WCE is available
but writeback caching is disabled; tells block layer to not send cache
flush commands

- the Linux virtio-blk driver sets the DRIVER_OK bit, which causes
writeback caching to be re-enabled, but the Linux virtio-blk driver does
not know of this side effect and cache flushes remain disabled

The bug is at the third step.  If the guest does know about CONFIG_WCE,
QEMU should ignore the WCE feature's state.  The guest will control the
cache mode solely using configuration space.  This change makes Linux
do flushes correctly, but Linux will keep SeaBIOS's writethrough mode.

Hence, whenever the guest is reset, the cache mode of the disk should
be reset to whatever was specified in the "-drive" option.  With this
change, the Linux virtio-blk driver finds that writeback caching is
enabled, and tells the block layer to send cache flush commands
appropriately.

Reported-by: Rusty Russell <rusty@au1.ibm.com
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit ef5bc96268ceec64769617dc53b0ac3a20ff351c)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoblockdev: do not default cache.no-flush to true
Paolo Bonzini [Thu, 19 Sep 2013 16:48:53 +0000 (18:48 +0200)]
blockdev: do not default cache.no-flush to true

That's why all my VMs were so fast lately. :)

This changed in 1.6.0 by mistake in patch 29c4e2b (blockdev: Split up
'cache' option, 2013-07-18).

Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit 1df6fa4bc6754a170cf511a78e2e6fef84eb5228)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agotci: Fix qemu-alpha on 32 bit hosts (wrong assertions)
Stefan Weil [Thu, 12 Sep 2013 18:17:50 +0000 (20:17 +0200)]
tci: Fix qemu-alpha on 32 bit hosts (wrong assertions)

Debian busybox-static for alpha has a load address of 0x0000000120000000
which is mapped to 0x0000000020000000 for 32 bit hosts.

qemu-alpha uses the TCG opcodes qemu_ld32, qemu_ld64, qemu_st32 and
qemu_st64 which all raise the assertion (taddr == host_addr).

Remove all assertions of this type because they are either wrong or
unnecessary (when sizeof(tcg_target_ulong) >= sizeof(target_ulong)).

Cc: qemu-stable <qemu-stable@nongnu.org>
Signed-off-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(cherry picked from commit 07ac4dc5db22a31e47b149abdbc5ea99013cf4de)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agokvmvapic: Clear also physical ROM address when entering INACTIVE state
Jan Kiszka [Tue, 3 Sep 2013 16:08:52 +0000 (18:08 +0200)]
kvmvapic: Clear also physical ROM address when entering INACTIVE state

To avoid misinterpreting INACTIVE after migration as old qemu-kvm's
STANDBY, also clear rom_state_paddr when going back to this state.

CC: qemu-stable@nongnu.org
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 4357930b8a7d2fcff2d8121ec518117428a781e7)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agokvmvapic: Enter inactive state on hardware reset
Jan Kiszka [Tue, 3 Sep 2013 16:08:51 +0000 (18:08 +0200)]
kvmvapic: Enter inactive state on hardware reset

ROM layout may change after reset of devices are hotplugged, so we have
to pick up the physical address again when the ROM is initialized. This
is best achieved by resetting the state to INACTIVE.

CC: qemu-stable@nongnu.org
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit c056bc3f3464cfae1c94b7dd633d3ec13b13b655)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agokvmvapic: Catch invalid ROM size
Jan Kiszka [Tue, 3 Sep 2013 16:08:50 +0000 (18:08 +0200)]
kvmvapic: Catch invalid ROM size

If not caught early, a zero-length ROM will cause a NULL-pointer access
later on in patch_hypercalls when allocating a zero-length ROM copy and
trying to read from it.

CC: qemu-stable@nongnu.org
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 18e5eec4db96a00907eb588a2b803401637c7f67)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agochardev: fix pty_chr_timer
Gerd Hoffmann [Thu, 22 Aug 2013 09:43:58 +0000 (11:43 +0200)]
chardev: fix pty_chr_timer

pty_chr_timer first calls pty_chr_update_read_handler(), then clears
timer_tag (because it is a one-shot timer).   This is the wrong order
though.  pty_chr_update_read_handler might re-arm time timer, and the
new timer_tag gets overwitten in that case.

This leads to crashes when unplugging a pty chardev:  pty_chr_close
thinks no timer is running -> timer isn't canceled -> pty_chr_timer gets
called with stale CharDevState -> BOOM.

This patch fixes the ordering.
Kill the pointless goto while being at it.

https://bugzilla.redhat.com/show_bug.cgi?id=994414

Cc: qemu-stable@nongnu.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit b0d768c35e08d2057b63e8e77e7a513c447199fa)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agopcnet-pci: mark I/O and MMIO as LITTLE_ENDIAN
Aurelien Jarno [Wed, 28 Aug 2013 12:17:39 +0000 (14:17 +0200)]
pcnet-pci: mark I/O and MMIO as LITTLE_ENDIAN

Now that the memory subsystem is propagating the endianness correctly,
the pcnet-pci device should have its I/O ports and MMIO memory marked
as LITTLE_ENDIAN, as PCI devices are little endian.

This makes the pcnet-pci NIC to work again on big endian MIPS Malta
(default NIC).

Cc: qemu-stable@nongnu.org
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit a26405b350c0d31d5ef53f3b459aeb6eaaf50db0)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoqapi-types.py: Fix enum struct sizes on i686
Cole Robinson [Sat, 31 Aug 2013 22:36:17 +0000 (18:36 -0400)]
qapi-types.py: Fix enum struct sizes on i686

Unlike other list types, enum wasn't adding any padding, which caused
a mismatch between the generated struct size and GenericList struct
size. More details in a678e26cbe89f7a27cbce794c2c2784571ee9d21

This crashed qemu if calling qmp query-tpm-types for example, which
upsets libvirt capabilities probing. Reproducer on i686:

(sleep 5; printf '{"execute":"qmp_capabilities"}\n{"execute":"query-tpm-types"}\n') | ./i386-softmmu/qemu-system-i386 -S -nodefaults -nographic -M none -qmp stdio

https://bugs.launchpad.net/qemu/+bug/1219207

Cc: qemu-stable@nongnu.org
Signed-off-by: Cole Robinson <crobinso@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Tested-by: Richard W.M. Jones <rjones@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
(cherry picked from commit 02dc4bf5684d3fb46786fab2ecff98214b1df9fe)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agopc_q35: Initialize Xen.
Anthony PERARD [Mon, 9 Sep 2013 16:15:53 +0000 (16:15 +0000)]
pc_q35: Initialize Xen.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 254c12825f93f405658ca3366cd34f8a8ad23511)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agopc: Initializing ram_memory under Xen.
Anthony PERARD [Mon, 9 Sep 2013 16:15:52 +0000 (16:15 +0000)]
pc: Initializing ram_memory under Xen.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
CC: qemu-stable@nongnu.org
(cherry picked from commit 04d7bad8a4fb23e6d9af9d06ce3ddc28a251d94d)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoqxl: fix local renderer
Gerd Hoffmann [Thu, 5 Sep 2013 19:57:19 +0000 (21:57 +0200)]
qxl: fix local renderer

The local spice renderer assumes the primary surface is located at the
start of the "ram" bar.  This used to be a requirement in qxl hardware
revision 1.  In revision 2+ this is relaxed.  Nevertheless guest drivers
continued to use the traditional location, for historical and backward
compatibility reasons.  The qxl kms driver doesn't though as it depends
on qxl revision 4+ anyway.

Result is that local rendering is hosed for recent linux guests, you'll
get pixel garbage with non-spice ui (gtk, sdl, vnc) and when doing
screendumps.  Fix that by doing a proper mapping of the guest-specified
memory location.

https://bugzilla.redhat.com/show_bug.cgi?id=948717

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit c58c7b959b93b864a27fd6b3646ee1465ab8832b)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoehci: save device pointer in EHCIState
Gerd Hoffmann [Mon, 9 Sep 2013 08:18:17 +0000 (10:18 +0200)]
ehci: save device pointer in EHCIState

We'll need a pointer to the actual pci/sysbus device,
stick a pointer to it into the EHCIState struct.

https://bugzilla.redhat.com/show_bug.cgi?id=1005495

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit adbecc89731cf3e0ae656d50ea9fa58c589c4bdc)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agone2000: mark I/O as LITTLE_ENDIAN
Aurelien Jarno [Mon, 2 Sep 2013 11:10:34 +0000 (13:10 +0200)]
ne2000: mark I/O as LITTLE_ENDIAN

Now that the memory subsystem is propagating the endianness correctly,
the ne2000 device should have its I/O ports marked as LITTLE_ENDIAN, as
PCI devices are little endian.

This makes the ne2000 NIC to work again on PowerPC.

Cc: qemu-stable@nongnu.org
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit 45d883dcf208160e2db308d1b368beb74f37dc7e)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoexec: check offset_within_address_space for register subpage
Hu Tao [Thu, 29 Aug 2013 10:21:16 +0000 (18:21 +0800)]
exec: check offset_within_address_space for register subpage

If offset_within_address_space falls in a page, then we register a
subpage. So check offset_within_address_space rather than
offset_within_region.

Cc: qemu-stable@nongnu.org
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: "Andreas Färber" <afaerber@suse.de>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 88266249701032211c1d7449460d063fbc01bf12)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoRevert "memory: Return -1 again on reads from unsigned regions"
Jan Kiszka [Mon, 2 Sep 2013 16:43:31 +0000 (18:43 +0200)]
Revert "memory: Return -1 again on reads from unsigned regions"

This reverts commit 9b8c69243585a32d14b9bb9fcd52c37b0b5a1b71.

The commit was wrong: We only return -1 on invalid accesses, not on
valid but unbacked ones. This broke various corner cases.

Cc: qemu-stable@nongnu.org
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 68a7439a150d6b4da99082ab454b9328b151bc25)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agomemory: Provide separate handling of unassigned io ports accesses
Jan Kiszka [Mon, 2 Sep 2013 16:43:30 +0000 (18:43 +0200)]
memory: Provide separate handling of unassigned io ports accesses

Accesses to unassigned io ports shall return -1 on read and be ignored
on write. Ensure these properties via dedicated ops, decoupling us from
the memory core's handling of unassigned accesses.

Cc: qemu-stable@nongnu.org
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 3bb28b7208b349e7a1b326e3c6ef9efac1d462bf)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agow32: Fix access to host devices (regression)
Stefan Weil [Sun, 1 Sep 2013 20:59:25 +0000 (22:59 +0200)]
w32: Fix access to host devices (regression)

QEMU failed to open host devices like \\.\PhysicalDrive0 (first hard disk)
since some time (commit 8a79380b8ef1b02d2abd705dd026a18863b09020?).

Those devices use hdev_open which did not use the latest API for options.
This resulted in a fatal runtime error:

  Block protocol 'host_device' doesn't support the option 'filename'

Duplicate code from raw_open to fix this.

Cc: qemu-stable@nongnu.org
Reported-by: David Brenner <david.brenner3@gmail.com>
Signed-off-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit 68dc036488dfea170627a55e6ee3dfd7f2c2063e)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agousb: parallelize usb3 streams
Gerd Hoffmann [Tue, 27 Aug 2013 13:25:24 +0000 (15:25 +0200)]
usb: parallelize usb3 streams

usb3 bulk endpoints with streams are implicitly pipelined now,
so the requests will actually be processed in parallel.  Also
allow them to complete out-of-order.

Fixes stalls in the uas driver.

Cc: qemu-stable@nongnu.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit c96c41ed0d38d68a6c8b6f84751afebafeae31be)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoxhci: reset port when disabling slot
Gerd Hoffmann [Wed, 28 Aug 2013 09:47:09 +0000 (11:47 +0200)]
xhci: reset port when disabling slot

Cc: qemu-stable@nongnu.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit 5c67dd7b4884979a2613a4702ac1ab68b0e6a16e)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoexec: always use MADV_DONTFORK
Andrea Arcangeli [Thu, 25 Jul 2013 10:11:15 +0000 (12:11 +0200)]
exec: always use MADV_DONTFORK

MADV_DONTFORK prevents fork to fail with -ENOMEM if the default
overcommit heuristics decides there's too much anonymous virtual
memory allocated. If the KVM secondary MMU is synchronized with MMU
notifiers or not, doesn't make a difference in that regard.

Secondly it's always more efficient to avoid copying the guest
physical address space in the fork child (so we avoid to mark all the
guest memory readonly in the parent and so we skip the establishment
and teardown of lots of pagetables in the child).

In the common case we can ignore the error if MADV_DONTFORK is not
available. Leave a second invocation that errors out in the KVM path
if MMU notifiers are missing and KVM is enabled, to abort in such
case.

Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
Tested-By: Benoit Canet <benoit@irqsave.net>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
(cherry picked from commit 3e469dbfe413c25d48321c3a19ddfae0727dc6e5)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agovirtio_pci: fix level interrupts with irqfd
Michael S. Tsirkin [Sun, 1 Sep 2013 08:03:45 +0000 (11:03 +0300)]
virtio_pci: fix level interrupts with irqfd

commit 62c96360ae7f2c7a8b029277fbb7cb082fdef7fd
    virtio-pci: fix level interrupts
only helps systems without irqfd: on systems with irqfd support we
passed in flag requesting irqfd even when msix is disabled.

As a result, for level interrupts we didn't install an fd handler so
unmasking an fd had no effect.

Fix this up.

Cc: qemu-stable@nongnu.org
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 23fe2b3f9e7df8da53ac1bc32c6875254911d7f4)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoexec: fix writing to MMIO area with non-power-of-two length
Paolo Bonzini [Mon, 29 Jul 2013 12:27:39 +0000 (14:27 +0200)]
exec: fix writing to MMIO area with non-power-of-two length

The problem is introduced by commit 2332616 (exec: Support 64-bit
operations in address_space_rw, 2013-07-08).  Before that commit,
memory_access_size would only return 1/2/4.

Since alignment is already handled above, reduce l to the largest
power of two that is smaller than l.

Cc: qemu-stable@nongnu.org
Reported-by: Oleksii Shevchuk <alxchk@gmail.com>
Tested-by: Oleksii Shevchuk <alxchk@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 098178f2749a63fbbb1a626dcc7d939d5cb2bde7)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoadlib: sort offsets in portio registration
Hervé Poussineau [Wed, 14 Aug 2013 09:49:04 +0000 (11:49 +0200)]
adlib: sort offsets in portio registration

This fixes the following assert when -device adlib is used:
ioport.c:240: portio_list_add: Assertion `pio->offset >= off_last' failed.

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(cherry picked from commit 2b21fb57af305f17841d79e7e2e02ad1aec3f5ca)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agotarget-i386: fix disassembly with PAE=1, PG=0
Paolo Bonzini [Fri, 30 Aug 2013 09:58:45 +0000 (11:58 +0200)]
target-i386: fix disassembly with PAE=1, PG=0

CR4.PAE=1 will not enable paging if CR0.PG=0, but the "if" chain
in x86_cpu_get_phys_page_debug says otherwise.  Check CR0.PG
before everything else.

Fixes "-d in_asm" for a code section at the beginning of OVMF.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Max Filippov <jcmvbkbc@gmail.com>
(cherry picked from commit f2f8560c7a5303065a2a3207ec475dfb3a622a0e)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoblock: expect errors from bdrv_co_is_allocated
Paolo Bonzini [Wed, 4 Sep 2013 17:00:25 +0000 (19:00 +0200)]
block: expect errors from bdrv_co_is_allocated

Some bdrv_is_allocated callers do not expect errors, but the fallback
in qcow2.c might make other callers trip on assertion failures or
infinite loops.

Fix the callers to always look for errors.

Cc: qemu-stable@nongnu.org
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit d663640c04f2aab810915c556390211d75457704)

Conflicts:

block/cow.c

*modified to avoid dependency on upstream's e641c1e8

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoRevert "usb-hub: report status changes only once"
Gerd Hoffmann [Tue, 27 Aug 2013 15:00:04 +0000 (17:00 +0200)]
Revert "usb-hub: report status changes only once"

This reverts commit a309ee6e0a256f690760abfba44fceaa52a7c2f3.

This isn't in line with the usb specification and adds regressions,
win7 fails to drive the usb hub for example.

Was added because it "solved" the issue of hubs interacting badly
with the xhci host controller.  Now with the root cause being fixed
in xhci (commit <FIXME>) we can revert this one.

Cc: qemu-stable@nongnu.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit bdebd6ee81f4d849aa8541c289203e3992450db0)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoxhci: fix endpoint interval calculation
Gerd Hoffmann [Wed, 28 Aug 2013 09:39:02 +0000 (11:39 +0200)]
xhci: fix endpoint interval calculation

Cc: qemu-stable@nongnu.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit ca7162782a293f525633e5816470498dd86a51cf)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agovirtio: virtqueue_get_avail_bytes: fix desc_pa when loop over the indirect descriptor...
yinyin [Thu, 22 Aug 2013 06:47:16 +0000 (14:47 +0800)]
virtio: virtqueue_get_avail_bytes: fix desc_pa when loop over the indirect descriptor table

virtqueue_get_avail_bytes: when found a indirect desc, we need loop over it.
           /* loop over the indirect descriptor table */
           indirect = 1;
           max = vring_desc_len(desc_pa, i) / sizeof(VRingDesc);
           num_bufs = i = 0;
           desc_pa = vring_desc_addr(desc_pa, i);
But, It init i to 0, then use i to update desc_pa. so we will always get:
desc_pa = vring_desc_addr(desc_pa, 0);
the last two line should swap.

Cc: qemu-stable@nongnu.org
Signed-off-by: Yin Yin <yin.yin@cs2c.com.cn>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 1ae2757c6c4525c9b42f408c86818f843bad7418)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agopseries: Fix stalls on hypervisor virtual console
Anton Blanchard [Tue, 13 Aug 2013 04:10:04 +0000 (14:10 +1000)]
pseries: Fix stalls on hypervisor virtual console

A number of users are reporting stalls when using the pseries
hypervisor virtual console.

A simple test case is to paste 15 or 17 characters at a time
into the console. Pasting 15 characters at a time works fine
but pasting 17 characters hangs for a random amount of time.
Other activity (network, qemu monitor etc) unblocks it.

If qemu-char tries to send more than 16 characters at once,
vty_can_receive returns false. At this point we have to
wait for the guest to consume that output. Everything is good
so far.

The problem occurs when the the guest does consume the output.
We need to signal back to the qemu-char layer that we are
ready for more input. Without this we block until something
else kicks us (eg network activity).

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
(cherry picked from commit 7770b6f78a2d655e03852a5de238f5926c92be6a)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agopc: fix regression for 64 bit PCI memory
Michael S. Tsirkin [Tue, 27 Aug 2013 05:37:26 +0000 (08:37 +0300)]
pc: fix regression for 64 bit PCI memory

commit 398489018183d613306ab022653552247d93919f
    pc: limit 64 bit hole to 2G by default
introduced a way for management to control
the window allocated to the 64 bit PCI hole.

This is useful, but existing management tools do not know how to set
this property.  As a result, e.g. specifying a large ivshmem device with
size > 4G is broken by default.  For example this configuration no
longer works:

-device ivshmem,size=4294967296,chardev=cfoo
-chardev socket,path=/tmp/sock,id=cfoo,server,nowait

Fix this by detecting that hole size was not specified
and defaulting to the backwards-compatible value of 1 << 62.

Cc: qemu-stable@nongnu.org
Cc: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 1466cef32dd5e7ef3c6477e96d85d92302ad02e3)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoscsi: Fix scsi_bus_legacy_add_drive() scsi-generic with serial
Markus Armbruster [Fri, 23 Aug 2013 16:01:58 +0000 (18:01 +0200)]
scsi: Fix scsi_bus_legacy_add_drive() scsi-generic with serial

scsi_bus_legacy_add_drive() creates either a scsi-disk or a
scsi-generic device.  It sets property "serial" to argument serial
unless null.  Crashes with scsi-generic, because it doesn't have such
the property.

Only usb_msd_initfn_storage() passes non-null serial.  Reproducer:

    $ qemu-system-x86_64 -nodefaults -display none -S -usb \
    -drive if=none,file=/dev/sg1,id=usb-drv0 \
    -device usb-storage,id=usb-msd0,drive=usb-drv0,serial=123
    qemu-system-x86_64: -device usb-storage,id=usb-msd0,drive=usb-drv0,serial=123: Property '.serial' not found
    Aborted (core dumped)

Fix by handling exactly like "removable": set the property only when
it exists.

Cc: qemu-stable@nongnu.org
Reviewed-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit c24e7517ee4a98e90eee5f0f07708a1fa12326b3)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agousb/dev-hid: Modified usb-tablet category from Misc to Input
Marcel Apfelbaum [Thu, 22 Aug 2013 17:11:36 +0000 (20:11 +0300)]
usb/dev-hid: Modified usb-tablet category from Misc to Input

usb-tablet device was wrongly assigned to Misc category

Reported-by: Markus Armbruster <armbru@redhat.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit 31efd2e883018b4c079ad082105bc161fbb3fef8)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agoscripts/qapi.py: Avoid syntax not supported by Python 2.4
Peter Maydell [Tue, 20 Aug 2013 14:50:15 +0000 (15:50 +0100)]
scripts/qapi.py: Avoid syntax not supported by Python 2.4

The Python "except Foo as x" syntax was only introduced in
Python 2.6, but we aim to support Python 2.4 and later.
Use the old-style "except Foo, x" syntax instead, thus
fixing configure/compile on systems with older Python.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
(cherry picked from commit 21e0043bada1a24ae2ba6cd0051e104c0cbf9634)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agordma: silly ipv6 bugfix
Michael R. Hines [Mon, 19 Aug 2013 02:27:08 +0000 (22:27 -0400)]
rdma: silly ipv6 bugfix

My bad - but it's very important for us to warn the user that
IPv6 is broken on RoCE in linux right now, until linux releases
a fixed version.

Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(cherry picked from commit c89aa2f1851b08c3efa8a1070c0a6b9a36e1227f)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agotarget-ppc: fix bit extraction for FPBF and FPL
Aurelien Jarno [Thu, 15 Aug 2013 11:32:38 +0000 (13:32 +0200)]
target-ppc: fix bit extraction for FPBF and FPL

Bit extraction for the FP BF and L field of the MTFSFI and MTFSF
instructions is wrong and doesn't match the reference manual (which
explain the bit number in big endian format). It has been broken in
commit 7d08d85645def18eac2a9d672c1868a35e0bcf79.

This patch fixes this, which in turn fixes the problem reported by
Khem Raj about the floor() function of libm.

Reported-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
CC: qemu-stable@nongnu.org (1.6)
Signed-off-by: Alexander Graf <agraf@suse.de>
(cherry picked from commit 779f659021d1754117bce1aab9370dc22f37ae07)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10 years agogdbstub: Fix gdb_register_coprocessor() register counting
Andreas Färber [Mon, 12 Aug 2013 16:09:47 +0000 (18:09 +0200)]
gdbstub: Fix gdb_register_coprocessor() register counting

Commit a0e372f0c49ac01faeaeb73a6e8f50e8ac615f34 reorganized the register
counting for GDB. While it seems correct not to let the total number of
registers skyrocket in an SMP scenario through a static variable, the
distinction between total register count and 'g' packet register count
(last_reg vs. num_g_regs) got lost among the way.

Fix this by introducing CPUState::gdb_num_g_regs and using that in
gdb_handle_packet().

Reported-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Cc: qemu-stable@nongnu.org (stable-1.6)
Tested-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Tested-by: Max Filippov <jcmvbkbc@gmail.com>
Tested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
(cherry picked from commit 35143f0164e6933a85c7c2b8a89a040d881a9151)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>