summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch
diff options
context:
space:
mode:
authorMartin Jansa <martin.jansa@gmail.com>2018-06-01 10:29:39 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-06-07 08:52:55 +0100
commitf8ec8e89bbe913dd8afcf5136efc64a1d2793a8f (patch)
tree899b05ba8ceb6a5655c76a5ef095b95c20a87ed0 /meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch
parent1c7ad49bfd3e60c44281a8f49d69f4b96c359703 (diff)
downloadpoky-f8ec8e89bbe913dd8afcf5136efc64a1d2793a8f.tar.gz
qemu: upgrade to 2.12.0
* drop patches which are now included upstream * revert "linux-user: fix mmap/munmap/mprotect/mremap/shma" which is causing 0010-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch to stop working and qemu-i386 hanging during gobject-introspection in webkitgtk when building for qemux86 with musl (From OE-Core rev: e9d6e09bb51a857ce248f45124548d338a350ba1) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch')
-rw-r--r--meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch60
1 files changed, 30 insertions, 30 deletions
diff --git a/meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch b/meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch
index f0c0fa19b4..2afe4e9376 100644
--- a/meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch
+++ b/meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch
@@ -1,4 +1,4 @@
1From 55c9510311b7481a0c8f3f71b3ce130cc25563f9 Mon Sep 17 00:00:00 2001 1From 20a09bb18907e67565c54fc505a741cbbef53f7f Mon Sep 17 00:00:00 2001
2From: Alistair Francis <alistair.francis@xilinx.com> 2From: Alistair Francis <alistair.francis@xilinx.com>
3Date: Thu, 21 Dec 2017 11:35:16 -0800 3Date: Thu, 21 Dec 2017 11:35:16 -0800
4Subject: [PATCH] chardev: connect socket to a spawned command 4Subject: [PATCH] chardev: connect socket to a spawned command
@@ -45,16 +45,16 @@ Upstream-Status: Inappropriate [embedded specific]
45 45
46Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> 46Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
47--- 47---
48 chardev/char-socket.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++ 48 chardev/char-socket.c | 102 ++++++++++++++++++++++++++++++++++++++++++
49 chardev/char.c | 3 ++ 49 chardev/char.c | 3 ++
50 qapi/char.json | 5 +++ 50 qapi/char.json | 5 +++
51 3 files changed, 107 insertions(+) 51 3 files changed, 110 insertions(+)
52 52
53diff --git a/chardev/char-socket.c b/chardev/char-socket.c 53diff --git a/chardev/char-socket.c b/chardev/char-socket.c
54index 53eda8e..6c63555 100644 54index 159e69c3b1..84778cf31a 100644
55--- a/chardev/char-socket.c 55--- a/chardev/char-socket.c
56+++ b/chardev/char-socket.c 56+++ b/chardev/char-socket.c
57@@ -852,6 +852,68 @@ static gboolean socket_reconnect_timeout(gpointer opaque) 57@@ -934,6 +934,68 @@ static gboolean socket_reconnect_timeout(gpointer opaque)
58 return false; 58 return false;
59 } 59 }
60 60
@@ -123,7 +123,7 @@ index 53eda8e..6c63555 100644
123 static void qmp_chardev_open_socket(Chardev *chr, 123 static void qmp_chardev_open_socket(Chardev *chr,
124 ChardevBackend *backend, 124 ChardevBackend *backend,
125 bool *be_opened, 125 bool *be_opened,
126@@ -859,6 +921,9 @@ static void qmp_chardev_open_socket(Chardev *chr, 126@@ -941,6 +1003,9 @@ static void qmp_chardev_open_socket(Chardev *chr,
127 { 127 {
128 SocketChardev *s = SOCKET_CHARDEV(chr); 128 SocketChardev *s = SOCKET_CHARDEV(chr);
129 ChardevSocket *sock = backend->u.socket.data; 129 ChardevSocket *sock = backend->u.socket.data;
@@ -133,24 +133,24 @@ index 53eda8e..6c63555 100644
133 bool do_nodelay = sock->has_nodelay ? sock->nodelay : false; 133 bool do_nodelay = sock->has_nodelay ? sock->nodelay : false;
134 bool is_listen = sock->has_server ? sock->server : true; 134 bool is_listen = sock->has_server ? sock->server : true;
135 bool is_telnet = sock->has_telnet ? sock->telnet : false; 135 bool is_telnet = sock->has_telnet ? sock->telnet : false;
136@@ -925,7 +990,14 @@ static void qmp_chardev_open_socket(Chardev *chr, 136@@ -1008,6 +1073,14 @@ static void qmp_chardev_open_socket(Chardev *chr,
137 } else if (reconnect > 0) {
138 s->reconnect_time = reconnect; 137 s->reconnect_time = reconnect;
139 } 138 }
139
140+#ifndef _WIN32 140+#ifndef _WIN32
141+ if (cmd) { 141+ if (cmd) {
142+ chardev_open_socket_cmd(chr, cmd, errp); 142+ chardev_open_socket_cmd(chr, cmd, errp);
143 143+
144+ /* everything ready (or failed permanently) before we return */ 144+ /* everything ready (or failed permanently) before we return */
145+ *be_opened = true; 145+ *be_opened = true;
146+ } else 146+ } else
147+#endif 147+#endif
148 if (s->reconnect_time) { 148 /* If reconnect_time is set, will do that in chr_machine_done. */
149 sioc = qio_channel_socket_new(); 149 if (!s->reconnect_time) {
150 tcp_chr_set_client_ioc_name(chr, sioc); 150 if (s->is_listen) {
151@@ -985,10 +1057,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, 151@@ -1065,9 +1138,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
152 const char *host = qemu_opt_get(opts, "host");
153 const char *port = qemu_opt_get(opts, "port"); 152 const char *port = qemu_opt_get(opts, "port");
153 const char *fd = qemu_opt_get(opts, "fd");
154 const char *tls_creds = qemu_opt_get(opts, "tls-creds"); 154 const char *tls_creds = qemu_opt_get(opts, "tls-creds");
155+#ifndef _WIN32 155+#ifndef _WIN32
156+ const char *cmd = qemu_opt_get(opts, "cmd"); 156+ const char *cmd = qemu_opt_get(opts, "cmd");
@@ -158,7 +158,6 @@ index 53eda8e..6c63555 100644
158 SocketAddressLegacy *addr; 158 SocketAddressLegacy *addr;
159 ChardevSocket *sock; 159 ChardevSocket *sock;
160 160
161 backend->type = CHARDEV_BACKEND_KIND_SOCKET;
162+#ifndef _WIN32 161+#ifndef _WIN32
163+ if (cmd) { 162+ if (cmd) {
164+ /* 163+ /*
@@ -172,17 +171,18 @@ index 53eda8e..6c63555 100644
172+ } 171+ }
173+ } else 172+ } else
174+#endif 173+#endif
175 if (!path) { 174+
176 if (!host) { 175 if ((!!path + !!fd + !!host) != 1) {
177 error_setg(errp, "chardev: socket: no host given"); 176 error_setg(errp,
178@@ -1021,13 +1109,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, 177 "Exactly one of 'path', 'fd' or 'host' required");
179 sock->has_reconnect = true; 178@@ -1112,12 +1202,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
180 sock->reconnect = reconnect; 179 sock->reconnect = reconnect;
181 sock->tls_creds = g_strdup(tls_creds); 180 sock->tls_creds = g_strdup(tls_creds);
181
182+#ifndef _WIN32 182+#ifndef _WIN32
183+ sock->cmd = g_strdup(cmd); 183+ sock->cmd = g_strdup(cmd);
184+#endif 184+#endif
185 185+
186 addr = g_new0(SocketAddressLegacy, 1); 186 addr = g_new0(SocketAddressLegacy, 1);
187+#ifndef _WIN32 187+#ifndef _WIN32
188+ if (path || cmd) { 188+ if (path || cmd) {
@@ -197,25 +197,25 @@ index 53eda8e..6c63555 100644
197+#else 197+#else
198 q_unix->path = g_strdup(path); 198 q_unix->path = g_strdup(path);
199+#endif 199+#endif
200 } else { 200 } else if (host) {
201 addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET; 201 addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET;
202 addr->u.inet.data = g_new(InetSocketAddress, 1); 202 addr->u.inet.data = g_new(InetSocketAddress, 1);
203diff --git a/chardev/char.c b/chardev/char.c 203diff --git a/chardev/char.c b/chardev/char.c
204index 2ae4f46..5d52cd5 100644 204index 76d866e6fe..9747d51d7c 100644
205--- a/chardev/char.c 205--- a/chardev/char.c
206+++ b/chardev/char.c 206+++ b/chardev/char.c
207@@ -793,6 +793,9 @@ QemuOptsList qemu_chardev_opts = { 207@@ -792,6 +792,9 @@ QemuOptsList qemu_chardev_opts = {
208 },{
208 .name = "path", 209 .name = "path",
209 .type = QEMU_OPT_STRING, 210 .type = QEMU_OPT_STRING,
210 },{ 211+ },{
211+ .name = "cmd", 212+ .name = "cmd",
212+ .type = QEMU_OPT_STRING, 213+ .type = QEMU_OPT_STRING,
213+ },{ 214 },{
214 .name = "host", 215 .name = "host",
215 .type = QEMU_OPT_STRING, 216 .type = QEMU_OPT_STRING,
216 },{
217diff --git a/qapi/char.json b/qapi/char.json 217diff --git a/qapi/char.json b/qapi/char.json
218index ae19dcd..6de0f29 100644 218index ae19dcd1ed..6de0f29bcd 100644
219--- a/qapi/char.json 219--- a/qapi/char.json
220+++ b/qapi/char.json 220+++ b/qapi/char.json
221@@ -241,6 +241,10 @@ 221@@ -241,6 +241,10 @@