From nobody Wed Nov 5 10:54:06 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1534785724267605.5536079628635; Mon, 20 Aug 2018 10:22:04 -0700 (PDT) Received: from localhost ([::1]:48290 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1frnsR-00030r-7t for importer@patchew.org; Mon, 20 Aug 2018 13:22:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49074) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1frnmz-0007B9-M9 for qemu-devel@nongnu.org; Mon, 20 Aug 2018 13:16:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1frnmv-0003CP-AT for qemu-devel@nongnu.org; Mon, 20 Aug 2018 13:16:25 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:42567) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1frnmu-0003BZ-Up for qemu-devel@nongnu.org; Mon, 20 Aug 2018 13:16:21 -0400 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue003 [212.227.15.167]) with ESMTPSA (Nemesis) id 0MC5H2-1fiy6603Ci-008oCd; Mon, 20 Aug 2018 19:16:10 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Mon, 20 Aug 2018 19:15:54 +0200 Message-Id: <20180820171557.7734-2-laurent@vivier.eu> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180820171557.7734-1-laurent@vivier.eu> References: <20180820171557.7734-1-laurent@vivier.eu> X-Provags-ID: V03:K1:GgbRk838MvCttP9xketnCjfjh1cQzbB0iCtRECwSxhreiXyC3gP MHXk7PjSuO2oDBVQZsGbo+uZH71Pg1d1buot7+O7otp2VbnGKZB2+e8YEt8JICFwTdc+DmD lzjhCyffN3KCtVARoTTuUy3PKTXyE+KUCB7qqAoi2KHWiVcpBxN6a2B/qJI9WFj7ih+s4M8 A26B85ZXBaIWsfFqUthjA== X-UI-Out-Filterresults: notjunk:1;V01:K0:Qbmaj38etoI=:dURDqSErkndKlW4a/1s5wy 8SnVRANG7kSXDAuGMnFDKNmqLLw3L4Oid+042fkp5/cqcLNCIldIwtTtvJjKYgUfQEEAg67SQ E/qy0gvxWF4DZsxe9dJSLZuEWWoy/9OeNKHn4GJWkDl2rEWnpfAeHSOeBud2djrifNdL9K/3h P5BFhyKAjjVCROXpVmI49GWhJq1xaGyx8A5GhwuxXPBFpDPtoYHjZmzRadDaQlq5PI2wXT36L QZ1PfPvhKdM300rqXXUCvmfUiinLiUOoiigiA0cGTESt7UvzZchKnQfz0rzo+L1P5HpQQu16G 4oVj5ER2ZY8mXahETzL2H7qHfGISoCDaJuFUK9euwzUItJL1VJsofhtxBd/x/A3W5x7hcknw4 lze0vXZeZKoHS5jLCZ72WZlP/oAC5JL+h5YBvj9gXb49d8hzgp/9eydT0XksCEvP1gDrSD1D6 SrTTjR5DL9nejrDL+IV8KCHAzfVFSG6ZqXS1VQX6jE1Mq+imCc/Vphu1esDqL6f2n7P5iij/U x5PuAXSYCwlWxWtoRNCA3ij68IuimaDUktERXrzNbPkL+dEAESobghPStESgdwiT2IsJ5aUqU dJPD/xsrDRIJNlOimvhIIograzAh2K0IERoQhgfAlhxpzKAmShppRv0ncqXjAIr6hExdu39oZ 573KAO/SthramcJAWKJqDNRzw9n5mP+dc+qzz51LEDNrpH1iNFG+nL6aHQBfikeR8Xrs= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.126.133 Subject: [Qemu-devel] [PATCH v2 1/4] linux-user: fix recvmsg()/recvfrom() with netlink and MSG_TRUNC X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Riku Voipio , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" If recvmsg()/recvfrom() are used with the MSG_TRUNC flag, they return the real length even if it was longer than the passed buffer. So when we translate the buffer we must check we don't go beyond the end of the buffer. Bug: https://github.com/vivier/qemu-m68k/issues/33 Reported-by: John Paul Adrian Glaubitz Signed-off-by: Laurent Vivier Reviewed-by: Peter Maydell --- linux-user/syscall.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index bb42a225eb..a62cd15dc7 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -3892,7 +3892,7 @@ static abi_long do_sendrecvmsg_locked(int fd, struct = target_msghdr *msgp, len =3D ret; if (fd_trans_host_to_target_data(fd)) { ret =3D fd_trans_host_to_target_data(fd)(msg.msg_iov->iov_= base, - len); + MIN(msg.msg_iov->iov_len, l= en)); } else { ret =3D host_to_target_cmsg(msgp, &msg); } @@ -4169,7 +4169,12 @@ static abi_long do_recvfrom(int fd, abi_ulong msg, s= ize_t len, int flags, } if (!is_error(ret)) { if (fd_trans_host_to_target_data(fd)) { - ret =3D fd_trans_host_to_target_data(fd)(host_msg, ret); + abi_long trans; + trans =3D fd_trans_host_to_target_data(fd)(host_msg, MIN(ret, = len)); + if (is_error(trans)) { + ret =3D trans; + goto fail; + } } if (target_addr) { host_to_target_sockaddr(target_addr, addr, addrlen); --=20 2.17.1 From nobody Wed Nov 5 10:54:06 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1534785496321387.9445529021957; Mon, 20 Aug 2018 10:18:16 -0700 (PDT) Received: from localhost ([::1]:48269 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1frnok-00083Y-W6 for importer@patchew.org; Mon, 20 Aug 2018 13:18:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49084) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1frnn0-0007Bd-88 for qemu-devel@nongnu.org; Mon, 20 Aug 2018 13:16:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1frnmv-0003CG-9q for qemu-devel@nongnu.org; Mon, 20 Aug 2018 13:16:26 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:36414) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1frnmu-0003Ba-UT for qemu-devel@nongnu.org; Mon, 20 Aug 2018 13:16:21 -0400 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue003 [212.227.15.167]) with ESMTPSA (Nemesis) id 0Lb6pZ-1gG6zK0IDx-00kbnS; Mon, 20 Aug 2018 19:16:11 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Mon, 20 Aug 2018 19:15:55 +0200 Message-Id: <20180820171557.7734-3-laurent@vivier.eu> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180820171557.7734-1-laurent@vivier.eu> References: <20180820171557.7734-1-laurent@vivier.eu> X-Provags-ID: V03:K1:tmMUSD512yo8rHMYZCG/ivVWo28wLW23azNVmhZiNqaf4rOD6yZ lfQM19d18D3+Tnqn3BOSAu4+VLu8FmnojxA6vGuTScWtd68sXDOvGdZJh/aFiXFjfu+WSAx dWhNuELrJgWXBiyjgCvPeklu5f1NKIgnOpivO/5kmTINQ9OqRzuuXgvvy0s3/AZUK4liFIQ sNa2urGky7W1p8nkg47uQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:E9wlU9AWawQ=:uSki1evcEi29DpwfV1g0mt L6OzHF7NnP9crGtuYsbJf59LZcnYeC7zQtEvTvbRcROX5OYEzgKCnE4lAOZcCx6I7N3/N5K2b N4vrwLgKHQLUtg5qR53VEk1eLLMllsvk/YWphjH+XKUUud08v6tPNxOx4ckdFRLwMukDnrPvS i3e4QbzmiC2z2EDHGTYWJKTLqXtzBy+TuudoMbcsuB1u6DQZwFuzK2iw3EBRF4EYfWPRJ+TJs 2hqwzhtHtgzuf2hMT3k+akJV/EXCUCoW8tBurPPyklICorh5IG3BDDeUbQu8YkhHbm0LVnGcO DbVgb8MVUhpYx6xxRSCQ7ofq/V3HPh3ifRC9ciF9y/vJvwUuc/fer7XyvHAdFK2/uUErBHVUD N3c3xrkGZlTwKKTR+nzJUdyn+Cz8Ie4L74PZuiVNDE1HMKEmwNk01IMm3jQ4v+KJ9YW1XwaRs jv9KxoBNegO6olYWyotTuQFc6k02mWYc8ch1M8m6QHC0WtPGwif87QSkqPOb0Pdjy0+MPOIr+ bG8DQvDIo48WtaTpgMouAOH6UQkAvsbcGpjnqA770sRgB+HMasOSkPBURb4opmUkT5pjyN5dM BHPQ/aGyCE3mKKaVhJRJWWJvHuNaQ2A4fnphSxc3GkTk6Sx5gYqATmV1LUI1oLfLTaxaYgo8c Mfmux0WDfUHmdDq6NVFWK5fnvytId6twqPhPwEN1/sS7MnioTqSKkzWvWYt+2kX5JtoQ= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.126.134 Subject: [Qemu-devel] [PATCH v2 2/4] linux-user: introduce QEMU_RTA_* to use with rtattr_type_t X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Riku Voipio , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Following commit will introduce RTA_PREF that appears only with kernel v4.1. To avoid to manage a specific case for it, this patch introduces the full list of rtattr_type_t prefixed with QEMU_ (as we did for IFLA values) Signed-off-by: Laurent Vivier Reviewed-by: Peter Maydell --- linux-user/syscall.c | 53 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 11 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index a62cd15dc7..a2395eb1b6 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -539,6 +539,37 @@ enum { QEMU___IFLA_XDP_MAX, }; =20 +enum { + QEMU_RTA_UNSPEC, + QEMU_RTA_DST, + QEMU_RTA_SRC, + QEMU_RTA_IIF, + QEMU_RTA_OIF, + QEMU_RTA_GATEWAY, + QEMU_RTA_PRIORITY, + QEMU_RTA_PREFSRC, + QEMU_RTA_METRICS, + QEMU_RTA_MULTIPATH, + QEMU_RTA_PROTOINFO, /* no longer used */ + QEMU_RTA_FLOW, + QEMU_RTA_CACHEINFO, + QEMU_RTA_SESSION, /* no longer used */ + QEMU_RTA_MP_ALGO, /* no longer used */ + QEMU_RTA_TABLE, + QEMU_RTA_MARK, + QEMU_RTA_MFC_STATS, + QEMU_RTA_VIA, + QEMU_RTA_NEWDST, + QEMU_RTA_PREF, + QEMU_RTA_ENCAP_TYPE, + QEMU_RTA_ENCAP, + QEMU_RTA_EXPIRES, + QEMU_RTA_PAD, + QEMU_RTA_UID, + QEMU_RTA_TTL_PROPAGATE, + QEMU___RTA_MAX +}; + typedef abi_long (*TargetFdDataFunc)(void *, size_t); typedef abi_long (*TargetFdAddrFunc)(void *, abi_ulong, socklen_t); typedef struct TargetFdTrans { @@ -2661,14 +2692,14 @@ static abi_long host_to_target_data_route_rtattr(st= ruct rtattr *rtattr) uint32_t *u32; switch (rtattr->rta_type) { /* binary: depends on family type */ - case RTA_GATEWAY: - case RTA_DST: - case RTA_PREFSRC: + case QEMU_RTA_GATEWAY: + case QEMU_RTA_DST: + case QEMU_RTA_PREFSRC: break; /* u32 */ - case RTA_PRIORITY: - case RTA_TABLE: - case RTA_OIF: + case QEMU_RTA_PRIORITY: + case QEMU_RTA_TABLE: + case QEMU_RTA_OIF: u32 =3D RTA_DATA(rtattr); *u32 =3D tswap32(*u32); break; @@ -2808,13 +2839,13 @@ static abi_long target_to_host_data_route_rtattr(st= ruct rtattr *rtattr) uint32_t *u32; switch (rtattr->rta_type) { /* binary: depends on family type */ - case RTA_DST: - case RTA_SRC: - case RTA_GATEWAY: + case QEMU_RTA_DST: + case QEMU_RTA_SRC: + case QEMU_RTA_GATEWAY: break; /* u32 */ - case RTA_PRIORITY: - case RTA_OIF: + case QEMU_RTA_PRIORITY: + case QEMU_RTA_OIF: u32 =3D RTA_DATA(rtattr); *u32 =3D tswap32(*u32); break; --=20 2.17.1 From nobody Wed Nov 5 10:54:06 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1534785495281703.2197863038758; Mon, 20 Aug 2018 10:18:15 -0700 (PDT) Received: from localhost ([::1]:48268 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1frnok-00083U-4w for importer@patchew.org; Mon, 20 Aug 2018 13:18:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49086) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1frnn0-0007Bf-8g for qemu-devel@nongnu.org; Mon, 20 Aug 2018 13:16:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1frnmv-0003CO-AU for qemu-devel@nongnu.org; Mon, 20 Aug 2018 13:16:26 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:35230) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1frnmu-0003Bb-V7 for qemu-devel@nongnu.org; Mon, 20 Aug 2018 13:16:21 -0400 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue003 [212.227.15.167]) with ESMTPSA (Nemesis) id 0MXTlq-1fNQXC0YGE-00WY9B; Mon, 20 Aug 2018 19:16:12 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Mon, 20 Aug 2018 19:15:56 +0200 Message-Id: <20180820171557.7734-4-laurent@vivier.eu> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180820171557.7734-1-laurent@vivier.eu> References: <20180820171557.7734-1-laurent@vivier.eu> X-Provags-ID: V03:K1:PnNR/pidQhEQkXXBcazfhKMpGmW/yrflNXfON0z6cq10GxsPPhr gnZweZYzo13N94WtL92hEhrQs6pW0fPrvCnWCgMY3MzkbS63mlPUxHOmiZ1PDdEz6pEb7Aw 2b7TbC9OLjfwUsTzZIVgFGmLlJRxv86i93vXWFUg+CYYyUUvuE88XOrXzr0d7fb5DvZ/lbc JSItiUCnllnEbuGMiuscw== X-UI-Out-Filterresults: notjunk:1;V01:K0:jzCzmvih8ZU=:BJN70TBSFdgMkM6k79Mt10 19dfGcODqlq3Cl8i8XwcF+u29Wy2EhgJ6WE/x2mzeoB2Qk4b9vfLS/r4deSO8d2NDTAkwop49 xhriDArnsihO1Jhaono3+zFoxf84gA7kTYp6esD3j9Ef/loK5vPxvX40mlRWQen/1r2CKPxas bKgZaaYfjCuG837TUcf3Oc+iPOCs/D350ZovIC+mx08CfvSKYqUQPfBE02ZHCgkRnhsSzG2nf 4rIk1IsO7Ak9ZVqutts/GfAj2UeZTvT8R85rd1BE0PHNcgqdknbWngq4PZl9PZWyfEolKJFFM Jg5VdbUur1K3NByJqVwxOiW7/s4YMbfn9e9foul4I54s5BVa+sakKPWcH93zcEMcG5wubkBcb fEBYUzPotiIlzm0Ysi3uehmMf875mXOet+eSyyjGheFgxhv7wb7+k9U4vVQ+pFPtzGSJg49Hm nWKkN/z0VYvKUR0XoBwJzNeZcON+1ika8kTkFnV0nCJafGVkTF9DE3bdZw5NJp9j+ZKiQ4Js2 gkmXh/6z1vE07n2uRho98OzFe603jgis/wE6HP/uQfrGPkoFGTTKgSp/MhmLtUrpQJWphFmEt Ft8aQPKYSqC0Etr/6AaVXNT6PnE83YuvumBvkMiTXeHditK6l1emtzI8eRn1fh+prt8Nq88MH t7ps5sOh3uLLhXnQYSK7StAp8Oz5ESC/PohgIJQO7Gkkan/arQGEW2J9ymRezXd+H1zo= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.126.133 Subject: [Qemu-devel] [PATCH v2 3/4] linux-user: update netlink route types X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Riku Voipio , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Add RTA_PREF and RTA_CACHEINFO. Fix following errors when we start gedit: Unknown host RTA type: 12 Unknown host RTA type: 20 Signed-off-by: Laurent Vivier Reviewed-by: Peter Maydell --- linux-user/syscall.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index a2395eb1b6..197010945f 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -2690,12 +2690,17 @@ static abi_long host_to_target_data_addr_rtattr(str= uct rtattr *rtattr) static abi_long host_to_target_data_route_rtattr(struct rtattr *rtattr) { uint32_t *u32; + struct rta_cacheinfo *ci; + switch (rtattr->rta_type) { /* binary: depends on family type */ case QEMU_RTA_GATEWAY: case QEMU_RTA_DST: case QEMU_RTA_PREFSRC: break; + /* u8 */ + case QEMU_RTA_PREF: + break; /* u32 */ case QEMU_RTA_PRIORITY: case QEMU_RTA_TABLE: @@ -2703,6 +2708,20 @@ static abi_long host_to_target_data_route_rtattr(str= uct rtattr *rtattr) u32 =3D RTA_DATA(rtattr); *u32 =3D tswap32(*u32); break; + /* struct rta_cacheinfo */ + case QEMU_RTA_CACHEINFO: + ci =3D RTA_DATA(rtattr); + ci->rta_clntref =3D tswap32(ci->rta_clntref); + ci->rta_lastuse =3D tswap32(ci->rta_lastuse); + ci->rta_expires =3D tswap32(ci->rta_expires); + ci->rta_error =3D tswap32(ci->rta_error); + ci->rta_used =3D tswap32(ci->rta_used); +#if defined(RTNETLINK_HAVE_PEERINFO) + ci->rta_id =3D tswap32(ci->rta_id); + ci->rta_ts =3D tswap32(ci->rta_ts); + ci->rta_tsage =3D tswap32(ci->rta_tsage); +#endif + break; default: gemu_log("Unknown host RTA type: %d\n", rtattr->rta_type); break; --=20 2.17.1 From nobody Wed Nov 5 10:54:06 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1534785658986991.9582143037792; Mon, 20 Aug 2018 10:20:58 -0700 (PDT) Received: from localhost ([::1]:48284 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1frnrE-0001Uk-Lj for importer@patchew.org; Mon, 20 Aug 2018 13:20:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49104) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1frnn2-0007Cl-1j for qemu-devel@nongnu.org; Mon, 20 Aug 2018 13:16:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1frnmx-0003Du-94 for qemu-devel@nongnu.org; Mon, 20 Aug 2018 13:16:28 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:44293) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1frnmw-0003DF-V8 for qemu-devel@nongnu.org; Mon, 20 Aug 2018 13:16:23 -0400 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue003 [212.227.15.167]) with ESMTPSA (Nemesis) id 0LyQ4I-1fwUIt0tfi-015stl; Mon, 20 Aug 2018 19:16:13 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Mon, 20 Aug 2018 19:15:57 +0200 Message-Id: <20180820171557.7734-5-laurent@vivier.eu> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180820171557.7734-1-laurent@vivier.eu> References: <20180820171557.7734-1-laurent@vivier.eu> X-Provags-ID: V03:K1:LE9TUuell6cujCLePXAuICCwxKODPMzc5hDNIPm+Evk+COnjkV7 ofDpe33LR+1f19A7IvXEqfAURbmUiDDCDXagi65QQ9ImJ9YE9MzG+14HJJKSb9G2yJKfaIZ cu9yhoWR+vYj5uqxVryVURO/ecaoRIZQEiW2V1EWR8kOJ+a/ifcS2DZsivvRBi6zqRJkq59 cSfCUJ4SgFWxYtKOMmq6g== X-UI-Out-Filterresults: notjunk:1;V01:K0:0MiBLKk/Lro=:YImJFkNOomB4ui2HzQn6XD cHIuIOXQmT7Xtkwbv6yryEU0FNJYI2DLRfaThti+xyuXQf0qj683iEBHU/amabu8RPQFMeqcf s1GWF2Cy8M+GOUeZaEqGvTh1qxX1MY/WLrwO13eA2xC3v9NEEgDSUcghbfTLInmIAvXn94aRU 15OjQPRcTbRMCAVYtK5E5EdqXof2k9osECLXadxUuH+5NM6jLf7SJKrLCaN1DLVTpNoiFjt+2 JGAdoVULIq2IDp+Vsek8ffLBOcmLG9aoL7hd0ghyQXD+kzaczMKLdfL4GVjrJwgxjm8hqKRFD q2iMdEA6IGGk1qKCJoghuvCO1JI4aokDC7TYOHbjrmMAhWtkASp5cFb2Q2hoHOmmxr3CEfq62 oyD+U2PZN/ogDWyJL9CNOi9aJK71iH0olZULgg11jRI+HZ+d6XDXKv5zxNwuFbCPrtsAh6EYx 7SZfF84h2hg3KmMdx63A/Bk+EubDeSg0qvTjgwIljQP0fay1mfenpoJb345FKuu9CdQF5oMaL jEcDvqJ+EEe+2M5yTzHVyWrEla56tgQYyXhPz/XbQzg+M/reOo5oGqn0rRoOK+GnJCScr8a0v nXzwfnFRLA9MLLSYuJcCaRbQmInK+b/zu/nZmjbQ8uHu9HC0TDYfYcQ7TzslepL55Hr2oAw4w B4SnlvNU70/2gWNsMy6Mhuu/NFFl63E2vvgcug04DZnQDOwrKW4VrgMPFo345MysKN64= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.126.187 Subject: [Qemu-devel] [PATCH v2 4/4] linux-user: add QEMU_IFLA_INFO_KIND nested type for tun X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Riku Voipio , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Laurent Vivier Reviewed-by: Peter Maydell --- linux-user/syscall.c | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 197010945f..f1e5d1bd79 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -501,6 +501,20 @@ enum { QEMU___IFLA_BRPORT_MAX }; =20 +enum { + QEMU_IFLA_TUN_UNSPEC, + QEMU_IFLA_TUN_OWNER, + QEMU_IFLA_TUN_GROUP, + QEMU_IFLA_TUN_TYPE, + QEMU_IFLA_TUN_PI, + QEMU_IFLA_TUN_VNET_HDR, + QEMU_IFLA_TUN_PERSIST, + QEMU_IFLA_TUN_MULTI_QUEUE, + QEMU_IFLA_TUN_NUM_QUEUES, + QEMU_IFLA_TUN_NUM_DISABLED_QUEUES, + QEMU___IFLA_TUN_MAX, +}; + enum { QEMU_IFLA_INFO_UNSPEC, QEMU_IFLA_INFO_KIND, @@ -2346,6 +2360,34 @@ static abi_long host_to_target_slave_data_bridge_nla= ttr(struct nlattr *nlattr, return 0; } =20 +static abi_long host_to_target_data_tun_nlattr(struct nlattr *nlattr, + void *context) +{ + uint32_t *u32; + + switch (nlattr->nla_type) { + /* uint8_t */ + case QEMU_IFLA_TUN_TYPE: + case QEMU_IFLA_TUN_PI: + case QEMU_IFLA_TUN_VNET_HDR: + case QEMU_IFLA_TUN_PERSIST: + case QEMU_IFLA_TUN_MULTI_QUEUE: + break; + /* uint32_t */ + case QEMU_IFLA_TUN_NUM_QUEUES: + case QEMU_IFLA_TUN_NUM_DISABLED_QUEUES: + case QEMU_IFLA_TUN_OWNER: + case QEMU_IFLA_TUN_GROUP: + u32 =3D NLA_DATA(nlattr); + *u32 =3D tswap32(*u32); + break; + default: + gemu_log("Unknown QEMU_IFLA_TUN type %d\n", nlattr->nla_type); + break; + } + return 0; +} + struct linkinfo_context { int len; char *name; @@ -2380,6 +2422,12 @@ static abi_long host_to_target_data_linkinfo_nlattr(= struct nlattr *nlattr, nlattr->nla_len, NULL, host_to_target_data_bridge_nl= attr); + } else if (strncmp(li_context->name, "tun", + li_context->len) =3D=3D 0) { + return host_to_target_for_each_nlattr(NLA_DATA(nlattr), + nlattr->nla_len, + NULL, + host_to_target_data_tun_nl= attr); } else { gemu_log("Unknown QEMU_IFLA_INFO_KIND %s\n", li_context->name); } --=20 2.17.1