Accepting request 873002 from home:bfrogers:branches:Virtualization
- Fix uninitialized variable in ipxe driver code (boo#1181922) ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch - Add a few improvements to the git-based package workflow scripts - Include additional upstream patches designated as stable material and reviewed for applicability to include here blockjob-Fix-crash-with-IOthread-when-bl.patch monitor-Fix-assertion-failure-on-shutdow.patch qemu-nbd-Use-SOMAXCONN-for-socket-listen.patch qemu-storage-daemon-Enable-object-add.patch OBS-URL: https://build.opensuse.org/request/show/873002 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=617
This commit is contained in:
parent
ddbbacb439
commit
112fb09f1a
31
ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch
Normal file
31
ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Tue, 16 Feb 2021 11:29:41 -0700
|
||||
Subject: [ath5k] Add missing AR5K_EEPROM_READ in ath5k_eeprom_read_turbo_modes
|
||||
|
||||
Git-commit: 19d0fab40f07eeea7fe6b9e0d4e8d4b0c2de215f
|
||||
References: boo#1181922
|
||||
|
||||
The GCC11 compiler pointed out something that apparently no previous
|
||||
compiler noticed: in ath5k_eeprom_pread_turbo_modes, local variable
|
||||
val is used uninitialized. From what I can see, the code is just
|
||||
missing an initial AR5K_EEPROM_READ. Add it right before the switch
|
||||
statement.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
Signed-off-by: Michael Brown <mcb30@ipxe.org>
|
||||
---
|
||||
src/drivers/net/ath/ath5k/ath5k_eeprom.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/roms/ipxe/src/drivers/net/ath/ath5k/ath5k_eeprom.c b/roms/ipxe/src/drivers/net/ath/ath5k/ath5k_eeprom.c
|
||||
index 983d206b7e36cc4981ecbb760a41..12519bc599fb7d4757da43a6bcc2 100644
|
||||
--- a/roms/ipxe/src/drivers/net/ath/ath5k/ath5k_eeprom.c
|
||||
+++ b/roms/ipxe/src/drivers/net/ath/ath5k/ath5k_eeprom.c
|
||||
@@ -416,6 +416,7 @@ ath5k_eeprom_read_turbo_modes(struct ath5k_hw *ah,
|
||||
if (ee->ee_version < AR5K_EEPROM_VERSION_5_0)
|
||||
return 0;
|
||||
|
||||
+ AR5K_EEPROM_READ(o++, val);
|
||||
switch (mode){
|
||||
case AR5K_EEPROM_MODE_11A:
|
||||
ee->ee_switch_settling_turbo[mode] = (val >> 6) & 0x7f;
|
113
blockjob-Fix-crash-with-IOthread-when-bl.patch
Normal file
113
blockjob-Fix-crash-with-IOthread-when-bl.patch
Normal file
@ -0,0 +1,113 @@
|
||||
From: Michael Qiu <qiudayu@huayun.com>
|
||||
Date: Wed, 3 Feb 2021 10:40:59 +0800
|
||||
Subject: blockjob: Fix crash with IOthread when block commit after snapshot
|
||||
|
||||
Git-commit: 076d467aacdf6dc5d01e2e61740b1795f2aec2f6
|
||||
|
||||
Currently, if guest has workloads, IO thread will acquire aio_context
|
||||
lock before do io_submit, it leads to segmentfault when do block commit
|
||||
after snapshot. Just like below:
|
||||
|
||||
Program received signal SIGSEGV, Segmentation fault.
|
||||
|
||||
[Switching to Thread 0x7f7c7d91f700 (LWP 99907)]
|
||||
0x00005576d0f65aab in bdrv_mirror_top_pwritev at ../block/mirror.c:1437
|
||||
1437 ../block/mirror.c: No such file or directory.
|
||||
(gdb) p s->job
|
||||
$17 = (MirrorBlockJob *) 0x0
|
||||
(gdb) p s->stop
|
||||
$18 = false
|
||||
|
||||
Call trace of IO thread:
|
||||
0 0x00005576d0f65aab in bdrv_mirror_top_pwritev at ../block/mirror.c:1437
|
||||
1 0x00005576d0f7f3ab in bdrv_driver_pwritev at ../block/io.c:1174
|
||||
2 0x00005576d0f8139d in bdrv_aligned_pwritev at ../block/io.c:1988
|
||||
3 0x00005576d0f81b65 in bdrv_co_pwritev_part at ../block/io.c:2156
|
||||
4 0x00005576d0f8e6b7 in blk_do_pwritev_part at ../block/block-backend.c:1260
|
||||
5 0x00005576d0f8e84d in blk_aio_write_entry at ../block/block-backend.c:1476
|
||||
...
|
||||
|
||||
Switch to qemu main thread:
|
||||
0 0x00007f903be704ed in __lll_lock_wait at
|
||||
/lib/../lib64/libpthread.so.0
|
||||
1 0x00007f903be6bde6 in _L_lock_941 at /lib/../lib64/libpthread.so.0
|
||||
2 0x00007f903be6bcdf in pthread_mutex_lock at
|
||||
/lib/../lib64/libpthread.so.0
|
||||
3 0x0000564b21456889 in qemu_mutex_lock_impl at
|
||||
../util/qemu-thread-posix.c:79
|
||||
4 0x0000564b213af8a5 in block_job_add_bdrv at ../blockjob.c:224
|
||||
5 0x0000564b213b00ad in block_job_create at ../blockjob.c:440
|
||||
6 0x0000564b21357c0a in mirror_start_job at ../block/mirror.c:1622
|
||||
7 0x0000564b2135a9af in commit_active_start at ../block/mirror.c:1867
|
||||
8 0x0000564b2133d132 in qmp_block_commit at ../blockdev.c:2768
|
||||
9 0x0000564b2141fef3 in qmp_marshal_block_commit at
|
||||
qapi/qapi-commands-block-core.c:346
|
||||
10 0x0000564b214503c9 in do_qmp_dispatch_bh at
|
||||
../qapi/qmp-dispatch.c:110
|
||||
11 0x0000564b21451996 in aio_bh_poll at ../util/async.c:164
|
||||
12 0x0000564b2146018e in aio_dispatch at ../util/aio-posix.c:381
|
||||
13 0x0000564b2145187e in aio_ctx_dispatch at ../util/async.c:306
|
||||
14 0x00007f9040239049 in g_main_context_dispatch at
|
||||
/lib/../lib64/libglib-2.0.so.0
|
||||
15 0x0000564b21447368 in main_loop_wait at ../util/main-loop.c:232
|
||||
16 0x0000564b21447368 in main_loop_wait at ../util/main-loop.c:255
|
||||
17 0x0000564b21447368 in main_loop_wait at ../util/main-loop.c:531
|
||||
18 0x0000564b212304e1 in qemu_main_loop at ../softmmu/runstate.c:721
|
||||
19 0x0000564b20f7975e in main at ../softmmu/main.c:50
|
||||
|
||||
In IO thread when do bdrv_mirror_top_pwritev, the job is NULL, and stop field
|
||||
is false, this means the MirrorBDSOpaque "s" object has not been initialized
|
||||
yet, and this object is initialized by block_job_create(), but the initialize
|
||||
process is stuck in acquiring the lock.
|
||||
|
||||
In this situation, IO thread come to bdrv_mirror_top_pwritev(),which means that
|
||||
mirror-top node is already inserted into block graph, but its bs->opaque->job
|
||||
is not initialized.
|
||||
|
||||
The root cause is that qemu main thread do release/acquire when hold the lock,
|
||||
at the same time, IO thread get the lock after release stage, and the crash
|
||||
occured.
|
||||
|
||||
Actually, in this situation, job->job.aio_context will not equal to
|
||||
qemu_get_aio_context(), and will be the same as bs->aio_context,
|
||||
thus, no need to release the lock, becasue bdrv_root_attach_child()
|
||||
will not change the context.
|
||||
|
||||
This patch fix this issue.
|
||||
|
||||
Fixes: 132ada80 "block: Adjust AioContexts when attaching nodes"
|
||||
|
||||
Signed-off-by: Michael Qiu <qiudayu@huayun.com>
|
||||
Message-Id: <20210203024059.52683-1-08005325@163.com>
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
blockjob.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/blockjob.c b/blockjob.c
|
||||
index 98ac8af98299ac26c50ce5e4c5bb..62f1a537399f07a88ebf520eb560 100644
|
||||
--- a/blockjob.c
|
||||
+++ b/blockjob.c
|
||||
@@ -212,15 +212,19 @@ int block_job_add_bdrv(BlockJob *job, const char *name, BlockDriverState *bs,
|
||||
uint64_t perm, uint64_t shared_perm, Error **errp)
|
||||
{
|
||||
BdrvChild *c;
|
||||
+ bool need_context_ops;
|
||||
|
||||
bdrv_ref(bs);
|
||||
- if (job->job.aio_context != qemu_get_aio_context()) {
|
||||
+
|
||||
+ need_context_ops = bdrv_get_aio_context(bs) != job->job.aio_context;
|
||||
+
|
||||
+ if (need_context_ops && job->job.aio_context != qemu_get_aio_context()) {
|
||||
aio_context_release(job->job.aio_context);
|
||||
}
|
||||
c = bdrv_root_attach_child(bs, name, &child_job, 0,
|
||||
job->job.aio_context, perm, shared_perm, job,
|
||||
errp);
|
||||
- if (job->job.aio_context != qemu_get_aio_context()) {
|
||||
+ if (need_context_ops && job->job.aio_context != qemu_get_aio_context()) {
|
||||
aio_context_acquire(job->job.aio_context);
|
||||
}
|
||||
if (c == NULL) {
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a745a8269f4f06d76fa4e4be2b77fd74108cd04261674d3fb15d9ab4b177f3f6
|
||||
size 56068
|
||||
oid sha256:0e5ec03af31b06a8ef8c104a478eba0d2ae79c9eb52a52b2865a254e2ab4be82
|
||||
size 60492
|
||||
|
@ -76,11 +76,6 @@ LOCAL_REPO_MAP=(
|
||||
# TEMPORARY! FOR NOW WE REQUIRE THESE LOCALLY TO DO WORK ON PACKAGE
|
||||
REQUIRED_LOCAL_REPO_MAP=(
|
||||
~/git/qemu-opensuse
|
||||
~/git/qemu-seabios
|
||||
~/git/qemu-ipxe
|
||||
~/git/qemu-sgabios
|
||||
~/git/qemu-keycodemapdb
|
||||
~/git/qemu-qboot
|
||||
)
|
||||
|
||||
PATCH_PATH_MAP=(
|
||||
|
86
monitor-Fix-assertion-failure-on-shutdow.patch
Normal file
86
monitor-Fix-assertion-failure-on-shutdow.patch
Normal file
@ -0,0 +1,86 @@
|
||||
From: Kevin Wolf <kwolf@redhat.com>
|
||||
Date: Fri, 12 Feb 2021 18:20:27 +0100
|
||||
Subject: monitor: Fix assertion failure on shutdown
|
||||
|
||||
Git-commit: c81219a7dd36a815bd85beed9932fc973d4f5d51
|
||||
|
||||
Commit 357bda95 already tried to fix the order in monitor_cleanup() by
|
||||
moving shutdown of the dispatcher coroutine further to the start.
|
||||
However, it didn't go far enough:
|
||||
|
||||
iothread_stop() makes sure that all pending work (bottom halves) in the
|
||||
AioContext of the monitor iothread is completed. iothread_destroy()
|
||||
depends on this and fails an assertion if there is still a pending BH.
|
||||
|
||||
While the dispatcher coroutine is running, it will try to resume the
|
||||
monitor after taking a request out of the queue, which involves a BH.
|
||||
The dispatcher is run until it terminates in the AIO_WAIT_WHILE() loop.
|
||||
However, adding new BHs between iothread_stop() and iothread_destroy()
|
||||
is forbidden.
|
||||
|
||||
Fix this by stopping the dispatcher first before shutting down the other
|
||||
parts of the monitor. This means we can now receive requests that aren't
|
||||
handled any more when QEMU is shutting down, but this is unlikely to be
|
||||
a problem for QMP clients.
|
||||
|
||||
Fixes: 357bda9590784ff75803d52de43150d4107ed98e
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
Message-Id: <20210212172028.288825-2-kwolf@redhat.com>
|
||||
Tested-by: Markus Armbruster <armbru@redhat.com>
|
||||
Reviewed-by: Markus Armbruster <armbru@redhat.com>
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
monitor/monitor.c | 25 +++++++++++++++----------
|
||||
1 file changed, 15 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/monitor/monitor.c b/monitor/monitor.c
|
||||
index 84222cd130043fd618bd40343829..27573348f3d7ac5c03b56637235d 100644
|
||||
--- a/monitor/monitor.c
|
||||
+++ b/monitor/monitor.c
|
||||
@@ -622,16 +622,6 @@ void monitor_data_destroy(Monitor *mon)
|
||||
|
||||
void monitor_cleanup(void)
|
||||
{
|
||||
- /*
|
||||
- * We need to explicitly stop the I/O thread (but not destroy it),
|
||||
- * clean up the monitor resources, then destroy the I/O thread since
|
||||
- * we need to unregister from chardev below in
|
||||
- * monitor_data_destroy(), and chardev is not thread-safe yet
|
||||
- */
|
||||
- if (mon_iothread) {
|
||||
- iothread_stop(mon_iothread);
|
||||
- }
|
||||
-
|
||||
/*
|
||||
* The dispatcher needs to stop before destroying the monitor and
|
||||
* the I/O thread.
|
||||
@@ -641,6 +631,11 @@ void monitor_cleanup(void)
|
||||
* eventually terminates. qemu_aio_context is automatically
|
||||
* polled by calling AIO_WAIT_WHILE on it, but we must poll
|
||||
* iohandler_ctx manually.
|
||||
+ *
|
||||
+ * Letting the iothread continue while shutting down the dispatcher
|
||||
+ * means that new requests may still be coming in. This is okay,
|
||||
+ * we'll just leave them in the queue without sending a response
|
||||
+ * and monitor_data_destroy() will free them.
|
||||
*/
|
||||
qmp_dispatcher_co_shutdown = true;
|
||||
if (!qatomic_xchg(&qmp_dispatcher_co_busy, true)) {
|
||||
@@ -651,6 +646,16 @@ void monitor_cleanup(void)
|
||||
(aio_poll(iohandler_get_aio_context(), false),
|
||||
qatomic_mb_read(&qmp_dispatcher_co_busy)));
|
||||
|
||||
+ /*
|
||||
+ * We need to explicitly stop the I/O thread (but not destroy it),
|
||||
+ * clean up the monitor resources, then destroy the I/O thread since
|
||||
+ * we need to unregister from chardev below in
|
||||
+ * monitor_data_destroy(), and chardev is not thread-safe yet
|
||||
+ */
|
||||
+ if (mon_iothread) {
|
||||
+ iothread_stop(mon_iothread);
|
||||
+ }
|
||||
+
|
||||
/* Flush output buffers and destroy monitors */
|
||||
qemu_mutex_lock(&monitor_lock);
|
||||
monitor_destroyed = true;
|
83
qemu-nbd-Use-SOMAXCONN-for-socket-listen.patch
Normal file
83
qemu-nbd-Use-SOMAXCONN-for-socket-listen.patch
Normal file
@ -0,0 +1,83 @@
|
||||
From: Eric Blake <eblake@redhat.com>
|
||||
Date: Tue, 9 Feb 2021 09:27:58 -0600
|
||||
Subject: qemu-nbd: Use SOMAXCONN for socket listen() backlog
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 582d4210eb2f2ab5baac328fe4b479cd86da1647
|
||||
|
||||
Our default of a backlog of 1 connection is rather puny; it gets in
|
||||
the way when we are explicitly allowing multiple clients (such as
|
||||
qemu-nbd -e N [--shared], or nbd-server-start with its default
|
||||
"max-connections":0 for unlimited), but is even a problem when we
|
||||
stick to qemu-nbd's default of only 1 active client but use -t
|
||||
[--persistent] where a second client can start using the server once
|
||||
the first finishes. While the effects are less noticeable on TCP
|
||||
sockets (since the client can poll() to learn when the server is ready
|
||||
again), it is definitely observable on Unix sockets, where on Linux, a
|
||||
client will fail with EAGAIN and no recourse but to sleep an arbitrary
|
||||
amount of time before retrying if the server backlog is already full.
|
||||
|
||||
Since QMP nbd-server-start is always persistent, it now always
|
||||
requests a backlog of SOMAXCONN; meanwhile, qemu-nbd will request
|
||||
SOMAXCONN if persistent, otherwise its backlog should be based on the
|
||||
expected number of clients.
|
||||
|
||||
See https://bugzilla.redhat.com/1925045 for a demonstration of where
|
||||
our low backlog prevents libnbd from connecting as many parallel
|
||||
clients as it wants.
|
||||
|
||||
Reported-by: Richard W.M. Jones <rjones@redhat.com>
|
||||
Signed-off-by: Eric Blake <eblake@redhat.com>
|
||||
CC: qemu-stable@nongnu.org
|
||||
Message-Id: <20210209152759.209074-2-eblake@redhat.com>
|
||||
Tested-by: Richard W.M. Jones <rjones@redhat.com>
|
||||
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Eric Blake <eblake@redhat.com>
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
blockdev-nbd.c | 7 ++++++-
|
||||
qemu-nbd.c | 10 +++++++++-
|
||||
2 files changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/blockdev-nbd.c b/blockdev-nbd.c
|
||||
index d8443d235b7338949a4e6e10dec5..b264620b98d8c024b147872ce089 100644
|
||||
--- a/blockdev-nbd.c
|
||||
+++ b/blockdev-nbd.c
|
||||
@@ -134,7 +134,12 @@ void nbd_server_start(SocketAddress *addr, const char *tls_creds,
|
||||
qio_net_listener_set_name(nbd_server->listener,
|
||||
"nbd-listener");
|
||||
|
||||
- if (qio_net_listener_open_sync(nbd_server->listener, addr, 1, errp) < 0) {
|
||||
+ /*
|
||||
+ * Because this server is persistent, a backlog of SOMAXCONN is
|
||||
+ * better than trying to size it to max_connections.
|
||||
+ */
|
||||
+ if (qio_net_listener_open_sync(nbd_server->listener, addr, SOMAXCONN,
|
||||
+ errp) < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
diff --git a/qemu-nbd.c b/qemu-nbd.c
|
||||
index a7075c5419d710d773a5c5ed749f..39b517c948b4c45544e01fc3f070 100644
|
||||
--- a/qemu-nbd.c
|
||||
+++ b/qemu-nbd.c
|
||||
@@ -969,8 +969,16 @@ int main(int argc, char **argv)
|
||||
|
||||
server = qio_net_listener_new();
|
||||
if (socket_activation == 0) {
|
||||
+ int backlog;
|
||||
+
|
||||
+ if (persistent) {
|
||||
+ backlog = SOMAXCONN;
|
||||
+ } else {
|
||||
+ backlog = MIN(shared, SOMAXCONN);
|
||||
+ }
|
||||
saddr = nbd_build_socket_address(sockpath, bindto, port);
|
||||
- if (qio_net_listener_open_sync(server, saddr, 1, &local_err) < 0) {
|
||||
+ if (qio_net_listener_open_sync(server, saddr, backlog,
|
||||
+ &local_err) < 0) {
|
||||
object_unref(OBJECT(server));
|
||||
error_report_err(local_err);
|
||||
exit(EXIT_FAILURE);
|
36
qemu-storage-daemon-Enable-object-add.patch
Normal file
36
qemu-storage-daemon-Enable-object-add.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From: Kevin Wolf <kwolf@redhat.com>
|
||||
Date: Thu, 4 Feb 2021 08:21:37 +0100
|
||||
Subject: qemu-storage-daemon: Enable object-add
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 15d40e9204eb3d89577187f117a1dde2237bdc4d
|
||||
|
||||
As we don't have a fully QAPIfied version of object-add yet and it still
|
||||
has 'gen': false in the schema, it needs to be registered explicitly in
|
||||
init_qmp_commands() to be available for users.
|
||||
|
||||
Fixes: 2af282ec51a27116d0402cab237b8970800f870c
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
Message-Id: <20210204072137.19663-1-kwolf@redhat.com>
|
||||
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
storage-daemon/qemu-storage-daemon.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/storage-daemon/qemu-storage-daemon.c b/storage-daemon/qemu-storage-daemon.c
|
||||
index 7c914b0dc1f851d6b6e72afd296c..65ccdb17c1a9fcb825dabaf38bb7 100644
|
||||
--- a/storage-daemon/qemu-storage-daemon.c
|
||||
+++ b/storage-daemon/qemu-storage-daemon.c
|
||||
@@ -144,6 +144,8 @@ static void init_qmp_commands(void)
|
||||
qmp_init_marshal(&qmp_commands);
|
||||
qmp_register_command(&qmp_commands, "query-qmp-schema",
|
||||
qmp_query_qmp_schema, QCO_ALLOW_PRECONFIG);
|
||||
+ qmp_register_command(&qmp_commands, "object-add", qmp_object_add,
|
||||
+ QCO_NO_OPTIONS);
|
||||
|
||||
QTAILQ_INIT(&qmp_cap_negotiation_commands);
|
||||
qmp_register_command(&qmp_cap_negotiation_commands, "qmp_capabilities",
|
17
qemu.changes
17
qemu.changes
@ -1,3 +1,20 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 17 02:06:20 UTC 2021 - Bruce Rogers <brogers@suse.com>
|
||||
|
||||
- Fix uninitialized variable in ipxe driver code (boo#1181922)
|
||||
ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch
|
||||
- Add a few improvements to the git-based package workflow scripts
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 16 17:10:53 UTC 2021 - Bruce Rogers <brogers@suse.com>
|
||||
|
||||
- Include additional upstream patches designated as stable material
|
||||
and reviewed for applicability to include here
|
||||
blockjob-Fix-crash-with-IOthread-when-bl.patch
|
||||
monitor-Fix-assertion-failure-on-shutdow.patch
|
||||
qemu-nbd-Use-SOMAXCONN-for-socket-listen.patch
|
||||
qemu-storage-daemon-Enable-object-add.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 8 20:53:03 UTC 2021 - Bruce Rogers <brogers@suse.com>
|
||||
|
||||
|
114
qemu.spec
114
qemu.spec
@ -152,52 +152,56 @@ Patch00017: net-Fix-handling-of-id-in-netdev_add-and.patch
|
||||
Patch00018: block-Separate-blk_is_writable-and-blk_s.patch
|
||||
Patch00019: hw-intc-arm_gic-Fix-interrupt-ID-in-GICD.patch
|
||||
Patch00020: virtio-move-use-disabled-flag-property-t.patch
|
||||
Patch00021: XXX-dont-dump-core-on-sigabort.patch
|
||||
Patch00022: qemu-binfmt-conf-Modify-default-path.patch
|
||||
Patch00023: qemu-cvs-gettimeofday.patch
|
||||
Patch00024: qemu-cvs-ioctl_debug.patch
|
||||
Patch00025: qemu-cvs-ioctl_nodirection.patch
|
||||
Patch00026: linux-user-add-binfmt-wrapper-for-argv-0.patch
|
||||
Patch00027: PPC-KVM-Disable-mmu-notifier-check.patch
|
||||
Patch00028: linux-user-binfmt-support-host-binaries.patch
|
||||
Patch00029: linux-user-Fake-proc-cpuinfo.patch
|
||||
Patch00030: linux-user-use-target_ulong.patch
|
||||
Patch00031: Make-char-muxer-more-robust-wrt-small-FI.patch
|
||||
Patch00032: linux-user-lseek-explicitly-cast-non-set.patch
|
||||
Patch00033: AIO-Reduce-number-of-threads-for-32bit-h.patch
|
||||
Patch00034: xen_disk-Add-suse-specific-flush-disable.patch
|
||||
Patch00035: qemu-bridge-helper-reduce-security-profi.patch
|
||||
Patch00036: qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch
|
||||
Patch00037: roms-Makefile-pass-a-packaging-timestamp.patch
|
||||
Patch00038: Raise-soft-address-space-limit-to-hard-l.patch
|
||||
Patch00039: increase-x86_64-physical-bits-to-42.patch
|
||||
Patch00040: i8254-Fix-migration-from-SLE11-SP2.patch
|
||||
Patch00041: acpi_piix4-Fix-migration-from-SLE11-SP2.patch
|
||||
Patch00042: Make-installed-scripts-explicitly-python.patch
|
||||
Patch00043: hw-smbios-handle-both-file-formats-regar.patch
|
||||
Patch00044: xen-add-block-resize-support-for-xen-dis.patch
|
||||
Patch00045: tests-qemu-iotests-Triple-timeout-of-i-o.patch
|
||||
Patch00046: tests-Fix-block-tests-to-be-compatible-w.patch
|
||||
Patch00047: xen-ignore-live-parameter-from-xen-save-.patch
|
||||
Patch00048: tests-change-error-message-in-test-162.patch
|
||||
Patch00049: hw-intc-exynos4210_gic-provide-more-room.patch
|
||||
Patch00050: configure-only-populate-roms-if-softmmu.patch
|
||||
Patch00051: pc-bios-s390-ccw-net-avoid-warning-about.patch
|
||||
Patch00052: roms-change-cross-compiler-naming-to-be-.patch
|
||||
Patch00053: test-add-mapping-from-arch-of-i686-to-qe.patch
|
||||
Patch00054: configure-remove-pkgversion-from-CONFIG_.patch
|
||||
Patch00055: docs-add-SUSE-support-statements-to-html.patch
|
||||
Patch00056: s390x-Fix-stringop-truncation-issue-repo.patch
|
||||
Patch00057: Revert-qht-constify-qht_statistics_init.patch
|
||||
Patch00058: qht-Revert-some-constification-in-qht.c.patch
|
||||
Patch00059: meson-install-ivshmem-client-and-ivshmem.patch
|
||||
Patch00060: Revert-roms-efirom-tests-uefi-test-tools.patch
|
||||
Patch00061: Makefile-Don-t-check-pc-bios-as-pre-requ.patch
|
||||
Patch00062: roms-Makefile-add-cross-file-to-qboot-me.patch
|
||||
Patch00063: usb-Help-compiler-out-to-avoid-a-warning.patch
|
||||
Patch00064: module-for-virtio-gpu-pre-load-module-to.patch
|
||||
Patch00065: spice-app-avoid-crash-when-core-spice-mo.patch
|
||||
Patch00066: qom-handle-case-of-chardev-spice-module-.patch
|
||||
Patch00021: qemu-nbd-Use-SOMAXCONN-for-socket-listen.patch
|
||||
Patch00022: qemu-storage-daemon-Enable-object-add.patch
|
||||
Patch00023: blockjob-Fix-crash-with-IOthread-when-bl.patch
|
||||
Patch00024: monitor-Fix-assertion-failure-on-shutdow.patch
|
||||
Patch00025: XXX-dont-dump-core-on-sigabort.patch
|
||||
Patch00026: qemu-binfmt-conf-Modify-default-path.patch
|
||||
Patch00027: qemu-cvs-gettimeofday.patch
|
||||
Patch00028: qemu-cvs-ioctl_debug.patch
|
||||
Patch00029: qemu-cvs-ioctl_nodirection.patch
|
||||
Patch00030: linux-user-add-binfmt-wrapper-for-argv-0.patch
|
||||
Patch00031: PPC-KVM-Disable-mmu-notifier-check.patch
|
||||
Patch00032: linux-user-binfmt-support-host-binaries.patch
|
||||
Patch00033: linux-user-Fake-proc-cpuinfo.patch
|
||||
Patch00034: linux-user-use-target_ulong.patch
|
||||
Patch00035: Make-char-muxer-more-robust-wrt-small-FI.patch
|
||||
Patch00036: linux-user-lseek-explicitly-cast-non-set.patch
|
||||
Patch00037: AIO-Reduce-number-of-threads-for-32bit-h.patch
|
||||
Patch00038: xen_disk-Add-suse-specific-flush-disable.patch
|
||||
Patch00039: qemu-bridge-helper-reduce-security-profi.patch
|
||||
Patch00040: qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch
|
||||
Patch00041: roms-Makefile-pass-a-packaging-timestamp.patch
|
||||
Patch00042: Raise-soft-address-space-limit-to-hard-l.patch
|
||||
Patch00043: increase-x86_64-physical-bits-to-42.patch
|
||||
Patch00044: i8254-Fix-migration-from-SLE11-SP2.patch
|
||||
Patch00045: acpi_piix4-Fix-migration-from-SLE11-SP2.patch
|
||||
Patch00046: Make-installed-scripts-explicitly-python.patch
|
||||
Patch00047: hw-smbios-handle-both-file-formats-regar.patch
|
||||
Patch00048: xen-add-block-resize-support-for-xen-dis.patch
|
||||
Patch00049: tests-qemu-iotests-Triple-timeout-of-i-o.patch
|
||||
Patch00050: tests-Fix-block-tests-to-be-compatible-w.patch
|
||||
Patch00051: xen-ignore-live-parameter-from-xen-save-.patch
|
||||
Patch00052: tests-change-error-message-in-test-162.patch
|
||||
Patch00053: hw-intc-exynos4210_gic-provide-more-room.patch
|
||||
Patch00054: configure-only-populate-roms-if-softmmu.patch
|
||||
Patch00055: pc-bios-s390-ccw-net-avoid-warning-about.patch
|
||||
Patch00056: roms-change-cross-compiler-naming-to-be-.patch
|
||||
Patch00057: test-add-mapping-from-arch-of-i686-to-qe.patch
|
||||
Patch00058: configure-remove-pkgversion-from-CONFIG_.patch
|
||||
Patch00059: docs-add-SUSE-support-statements-to-html.patch
|
||||
Patch00060: s390x-Fix-stringop-truncation-issue-repo.patch
|
||||
Patch00061: Revert-qht-constify-qht_statistics_init.patch
|
||||
Patch00062: qht-Revert-some-constification-in-qht.c.patch
|
||||
Patch00063: meson-install-ivshmem-client-and-ivshmem.patch
|
||||
Patch00064: Revert-roms-efirom-tests-uefi-test-tools.patch
|
||||
Patch00065: Makefile-Don-t-check-pc-bios-as-pre-requ.patch
|
||||
Patch00066: roms-Makefile-add-cross-file-to-qboot-me.patch
|
||||
Patch00067: usb-Help-compiler-out-to-avoid-a-warning.patch
|
||||
Patch00068: module-for-virtio-gpu-pre-load-module-to.patch
|
||||
Patch00069: spice-app-avoid-crash-when-core-spice-mo.patch
|
||||
Patch00070: qom-handle-case-of-chardev-spice-module-.patch
|
||||
# Patches applied in roms/seabios/:
|
||||
Patch01000: seabios-use-python2-explicitly-as-needed.patch
|
||||
Patch01001: seabios-switch-to-python3-as-needed.patch
|
||||
@ -207,6 +211,7 @@ Patch01003: build-be-explicit-about-mx86-used-note-n.patch
|
||||
Patch02000: stub-out-the-SAN-req-s-in-int13.patch
|
||||
Patch02001: ipxe-Makefile-fix-issues-of-build-reprod.patch
|
||||
Patch02002: help-compiler-out-by-initializing-array.patch
|
||||
Patch02003: ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch
|
||||
# Patches applied in roms/sgabios/:
|
||||
Patch03000: sgabios-Makefile-fix-issues-of-build-rep.patch
|
||||
Patch03001: roms-sgabios-Fix-csum8-to-be-built-by-ho.patch
|
||||
@ -1067,24 +1072,28 @@ This package records qemu testsuite results and represents successful testing.
|
||||
%patch00052 -p1
|
||||
%patch00053 -p1
|
||||
%patch00054 -p1
|
||||
%if %{legacy_qemu_kvm}
|
||||
%patch00055 -p1
|
||||
%endif
|
||||
%patch00056 -p1
|
||||
%patch00057 -p1
|
||||
%patch00058 -p1
|
||||
%if %{legacy_qemu_kvm}
|
||||
%patch00059 -p1
|
||||
%endif
|
||||
%patch00060 -p1
|
||||
%patch00061 -p1
|
||||
%ifarch aarch64
|
||||
%patch00062 -p1
|
||||
%endif
|
||||
%ifarch %arm %ix86
|
||||
%patch00063 -p1
|
||||
%endif
|
||||
%patch00064 -p1
|
||||
%patch00065 -p1
|
||||
%ifarch aarch64
|
||||
%patch00066 -p1
|
||||
%endif
|
||||
%ifarch %arm %ix86
|
||||
%patch00067 -p1
|
||||
%endif
|
||||
%patch00068 -p1
|
||||
%patch00069 -p1
|
||||
%patch00070 -p1
|
||||
%patch01000 -p1
|
||||
%patch01001 -p1
|
||||
%patch01002 -p1
|
||||
@ -1094,6 +1103,7 @@ This package records qemu testsuite results and represents successful testing.
|
||||
%endif
|
||||
%patch02001 -p1
|
||||
%patch02002 -p1
|
||||
%patch02003 -p1
|
||||
%patch03000 -p1
|
||||
%patch03001 -p1
|
||||
%patch08000 -p1
|
||||
|
@ -1,6 +1,6 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Mon, 25 Jan 2021 21:05:05 -0700
|
||||
Subject: spice-app: avoid crash when core spice module isn't loaded
|
||||
Subject: spice-app: avoid crash when core spice module doesn't loaded
|
||||
|
||||
When qemu is built with modules, but a given module doesn't load
|
||||
qemu should handle that gracefully. When ui-spice-core.so isn't
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ui/spice-app.c b/ui/spice-app.c
|
||||
index 026124ef56a0ef26fbe3cf0a1aba..8ded9024a376da5c4802c1f87fd7 100644
|
||||
index 026124ef56a0ef26fbe3cf0a1aba..4325ac2d9c5403e8d77099825fc3 100644
|
||||
--- a/ui/spice-app.c
|
||||
+++ b/ui/spice-app.c
|
||||
@@ -129,6 +129,7 @@ static void spice_app_atexit(void)
|
||||
@ -32,8 +32,8 @@ index 026124ef56a0ef26fbe3cf0a1aba..8ded9024a376da5c4802c1f87fd7 100644
|
||||
}
|
||||
+ list = qemu_find_opts("spice");
|
||||
+ if (list == NULL) {
|
||||
+ error_report("spice-app missing spice support\n");
|
||||
+ exit(1);
|
||||
+ error_report("spice-app missing spice support");
|
||||
+ exit(1);
|
||||
+ }
|
||||
|
||||
type_register(&char_vc_type_info);
|
||||
|
@ -387,7 +387,7 @@ rm -rf $BUNDLE_DIR
|
||||
rm $i
|
||||
done
|
||||
if [[ "$NUMBERED_PATCHES" = "0" ]]; then
|
||||
for i in [0-9]*.patch; do
|
||||
for i in [0-9][0-9][0-9][0-9]*-*.patch; do
|
||||
osc rm --force "$i"
|
||||
done
|
||||
# make sure that w/out the numbered prefixes, the patchnames are all unique
|
||||
@ -408,8 +408,10 @@ rm -rf $BUNDLE_DIR
|
||||
fi
|
||||
if [ "$FIVE_DIGIT_POTENTIAL" = "0" ]; then
|
||||
CHECK_PREFIX="0"
|
||||
NUMBERED_PATCH_RE="^[[:digit:]]{4}-.*[.]patch$"
|
||||
else
|
||||
CHECK_PREFIX="00"
|
||||
NUMBERED_PATCH_RE="^[[:digit:]]{5}-.*[.]patch$"
|
||||
fi
|
||||
for i in $CHECK_DIR/*; do
|
||||
BASENAME=$(basename $i)
|
||||
@ -435,11 +437,6 @@ rm -rf $BUNDLE_DIR
|
||||
let TOTAL_COUNT+=1
|
||||
fi
|
||||
done
|
||||
if [ "$FIVE_DIGIT_POTENTIAL" = "0" ]; then
|
||||
NUMBERED_PATCH_RE="^[[:digit:]]{4}-.*[.]patch$"
|
||||
else
|
||||
NUMBERED_PATCH_RE="^[[:digit:]]{5}-.*[.]patch$"
|
||||
fi
|
||||
for i in *.patch; do
|
||||
if [[ "$i" =~ $NUMBERED_PATCH_RE ]]; then
|
||||
if [[ "$NUMBERED_PATCHES" = "1" ]]; then
|
||||
@ -496,7 +493,9 @@ rm -rf $BUNDLE_DIR
|
||||
for package in qemu; do
|
||||
while IFS= read -r line; do
|
||||
if [ "$line" = "PATCH_FILES" ]; then
|
||||
for i in [0-9]*-*.patch; do
|
||||
# Here (and other places below) we try to get ONLY the numbered patches, but it's possible some ACTUAL patch name actually starts with multiple digits, but EXTREMELY unlikely
|
||||
# TODO: do this better!
|
||||
for i in [0-9][0-9][0-9][0-9]*-*.patch; do
|
||||
NUM=${i%%-*}
|
||||
DIV=$((10#$NUM/$PATCH_RANGE))
|
||||
REM=$((10#$NUM%$PATCH_RANGE))
|
||||
@ -524,7 +523,7 @@ rm -rf $BUNDLE_DIR
|
||||
fi
|
||||
done
|
||||
elif [ "$line" = "PATCH_EXEC" ]; then
|
||||
for i in [0-9]*-*.patch; do
|
||||
for i in [0-9][0-9][0-9][0-9]*-*.patch; do
|
||||
S=$(grep "^Include-If: " $i) || true
|
||||
NUM=${i%%-*}
|
||||
if [ "$S" != "" ]; then
|
||||
@ -574,7 +573,7 @@ rm -rf $BUNDLE_DIR
|
||||
fi
|
||||
done
|
||||
if [[ "$NUMBERED_PATCHES" = "0" ]]; then
|
||||
rm -f [0-9]*-*.patch
|
||||
rm -f [0-9][0-9][0-9][0-9]*-*.patch
|
||||
fi
|
||||
if [ -e qemu.changes.deleted ]; then
|
||||
rm -f qemu.changes.deleted
|
||||
@ -583,9 +582,9 @@ rm -rf $BUNDLE_DIR
|
||||
rm -f qemu.changes.added
|
||||
fi
|
||||
# Decide if there is a better way to handle the no change case:
|
||||
if [[ "0" = "$(expr $CHANGED_COUNT + $DELETED_COUNT + $ADDED_COUNT)" ]]; then
|
||||
osc revert bundles.tar.xz
|
||||
fi
|
||||
#BFR if [[ "0" = "$(expr $CHANGED_COUNT + $DELETED_COUNT + $ADDED_COUNT)" ]]; then
|
||||
#BFR osc revert bundles.tar.xz
|
||||
#BFR fi
|
||||
echo "git patch summary"
|
||||
echo " unchanged: $UNCHANGED_COUNT"
|
||||
echo " changed: $CHANGED_COUNT"
|
||||
|
Loading…
x
Reference in New Issue
Block a user