From patchwork Mon Jun 26 16:45:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Anton Nefedov X-Patchwork-Id: 780793 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3wxFTd4MMnz9s81 for ; Tue, 27 Jun 2017 02:52:21 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="fJOhXN7+"; dkim-atps=neutral Received: from localhost ([::1]:47649 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dPXFL-0006du-BT for incoming@patchwork.ozlabs.org; Mon, 26 Jun 2017 12:52:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55344) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dPXA3-00024f-Mp for qemu-devel@nongnu.org; Mon, 26 Jun 2017 12:46:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dPXA0-0002tc-Uk for qemu-devel@nongnu.org; Mon, 26 Jun 2017 12:46:51 -0400 Received: from mail-eopbgr50109.outbound.protection.outlook.com ([40.107.5.109]:28420 helo=EUR03-VE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dPXA0-0002sp-NS for qemu-devel@nongnu.org; Mon, 26 Jun 2017 12:46:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Y/UEtErcjTPv5rIELZsmf4BcHOo1vimpeWU4mtY/gQM=; b=fJOhXN7+lhvOOrRfGbFvf8UV1iocBcIEy6ljUyL9LJjJqgHhHuIOxAupOHw5tUhnvUAJw0n1FZUb4Z7a/aaqeVURTSqe1VG/8bfR8+GdDUpSGXw0B1EGvJSc+ahFG4ypzxAgbTo4n9yHwU619HKWP5gIeRAEtoAYQ7xGowgMBr8= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none; nongnu.org; dmarc=none action=none header.from=virtuozzo.com; Received: from xantnef-ws.sw.ru (195.214.232.6) by VI1PR0801MB1998.eurprd08.prod.outlook.com (2603:10a6:800:8a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Mon, 26 Jun 2017 16:46:42 +0000 From: Anton Nefedov To: qemu-devel@nongnu.org Date: Mon, 26 Jun 2017 19:45:41 +0300 Message-ID: <1498495550-72357-5-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1498495550-72357-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1498495550-72357-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HK2P15301CA0013.APCP153.PROD.OUTLOOK.COM (2603:1096:202:1::23) To VI1PR0801MB1998.eurprd08.prod.outlook.com (2603:10a6:800:8a::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cb4b9c84-c2a4-4ef3-e32c-08d4bcb2ef06 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095); SRVR:VI1PR0801MB1998; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1998; 3:vmMhQ1o6LQ9VYDFj3tzrRO+i/7LYiPVCq4hb3eTdXUehNEyZFnqvrH7p+fjwdXcDfCviduCKsbQ8nRQXI8lOqyq8DbySWM4gPcYYxZC0dFfBgrsgybd2SPDHCRGdSS/cJBMKBaHf6Rp/o6ot101szWA7YlmUECenxGg7kBT4MoPncojDqXHKS0SdYNlA2tJuhXH9Pd7eYcqmrrlCrld7sisQ2+fAdcgaODVKHOdZAgfPnSk07xqAyiikL0yVlhhFNo13bjZlznwjdzM2wkKdlQg0yRe+JtIzpO33/8gYiTgkhotWWPol6DJ8l0KNQ8+gGc9OINu6miTN9kl9rDK5840PVNjbw7yyZlp206rBagZrzu+a8+0ofKNpjc0V0cKbyxGnx+6CwwBnH7RPSmaOeua3QqfP5qJ7C/iKqfJHo+G0OoMj1eo5ZNujVzLqVwOKkNB+rNTq5Cp+f1SICgefpdzhhbOsIsWLRdxp9bNybxeefRmeIPuPIrjJ+wagkdu3s/jbcnkmpV6aAdoorlZudoFgx2JTCcwgKVLhiXe+4MwUSeKbRgVHhxWfDQD8SJHeovPQjElIJf92eWV6+TPfNrN5gRmiXltNh3tB5oJQeYxqRtgrDLJ7mBJOJ7vre3i/NYBQylZTkx/v16ZvdkHJUoJ6LNLY9IzufeJBlT53FMFgGR3btEfbfbl56IYv/KJL X-MS-TrafficTypeDiagnostic: VI1PR0801MB1998: X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1998; 25:WWyiYeIHidr05qNMQUc1n29J9boK/tSwcInNgCuXe1KsT8FK34hQWTvVAgNywaVrfrIwingwyM/DfXR7Imd3JhwnigHcvlDr/UrnbaSvrwzYhsEiQuGaWjfU4JwsHEbRmkTxdfUCDzf2BBFkq2v5ztIamjbwFjvvda1dATNoH0pD18z6EwC/h047tMsvGHnLOqeWbhmYw2/T939yQFWwIocP+j/e3v5HxOng6+3YsdnhxiltJnYAZeLtsY8AlSu6yd58X3VI8jRIln5cAM8YHmG24Ru/Hvgq/YQwI4CCn5RwKbWiD+AjnKdfHSKVwe/JaBddP9BeL8oAF8K4HLeyIf+WDWTxQBF8/Yp2iJku4DD/pzvb/4TZTeZ+xIXRsAzXxz3rYk3QS37XKMhXlIbvWpSoBGgFBiOehLMwaDatd5spuNRXQYL4zmzwtIfXUoBQ79HZwpXf94t53WBeX8+ZInmA1iU3UzpEDQEtG/TXjnZPD7yjiP6oWlW4jhjDCUfuSrVIsZXJd4gx9EpLwkOHL5aMktMRrowyMgLVh/Wzr/ygZmyderiTWdCLqmUvduJjgdr4R/tCi2u7Ko9oCQWp1M2ZLUpUneDg3o7cB/Dfsy5SAey7iMiFtyR4rs1oer6S2rSemPDSE5L6xx3MOmoAGEKW8e+uNxY+IqvKJY08RkZKJgXqr2LYl2Ykk2tpGcby3fiJKBUahI+kwQeOUCCP/maKfeGB0JINeKsh/n6v38CjsSU6f8ld+m7aH/659x/OlAbQ+fuxMSHGR5tIU9QbfpfPSzLzPazLIrDlbaxyWTmM6+GXV9WzlgAvc+FxKPUklVJOo0SafNoofGzIPJTdcRM1cHTJJeoTB2hR5l2xtgKw6uer6nsD5jMjEfIUPvAyBjArYaxbuhWYqrXpItMyz4gpWbL9js27B7j4Bx1HSyk= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1998; 31:XWv/o2EJLRjg8MRCiDdV1n1H0nuDYtlYgRD1Q/uUjyxXAJVoi6yxL4FmAusBshOEY5WtRFyqs+gXrqGSf0HGMJcaFnatF3ZdAwlF1U5fkIlBJaSQAsXctj2nkXyZM5CnWcRyRKfhRZzVBzSRL2xNooUfteKoc7WkE+hQ4W6AlQFB35DVXz7hnSSL2129cn2bhcFD2KmLR99HSFGrD1dqjMR7Iz0CoLw+aBYiskU5kp3rtOKRt1kf3C9xT1qKtT0xfR6XjzoKAPNO7UNzZzKdZ/6md5AawCoUdLTGIqxwosSmfx3uA5byCjCl3JRmhw0eJBuLBdH4hTc8eKBhB9TUFHZ+x8/oKqSbcvni8G4B5gB7rtttmDDslKOOlwkBgcnSpUZTXC4/jI07WCKGbp5jv5QW8PCA9XuoDd8yf0tgrzYSr7gEU65pfOYWOz1UUZDweCXbqZzsRwpmXZG1BvhoF6R94eTJIn6DqPb4i8LkJ/EVod0c+HuGWeKLaWs52Dq4Ug2OXC9WhaXgY8VJWmrPqW7o0mpt4Hr+zfTldTSCEXkIA3b+C+qQav4mz5EoAiLOqXcOwoOoa6Vm9doS4ORK6YBgq3NgalhgxB2801MClJ8d1VjozpfNlP0LEibEUcvSE3ewKL2YCmpkCDk1IIzKDTMqeeyxXdeLQosUsrACTU0= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1998; 20:shdh3niDON6x5ZSEEuSgoA8D6KmFMYv7tk2v2gh5oKSzdKIqcSFz4pMOS57Tenmqoo0o06klP4pflI/b4FP7uQZI3aMJMPw84uXDkF+FJDfvqxbqFrhvNj891BdRKXM7I2K/E9kA6OUESw01DN9Qh+8xthvxtPmynJ8yobRtXBL4vFU3Q12BKP6Kn5bjPFTpCgPfIB4k3imbc8Qm1OErSV8N31VkPlXU9Jk+BT1XTRyy7TiMdJ6sAE9+Je4g09Jx41jPYeirAiaJUqff5z+Oci5S+446g07vdf7J5G1piuvsXIOOpRUI4a1mAUwEtSgbW2JwdkPodaZVRoB3+ejQoUBhDDSE8Z+SDIsR/CdgDIpK4tOuw7cE0o1BeXchzHPTEDojdpGMeRDk6X3meqRXZNF14yiMfph5VqI+TyHTUSk= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6041248)(20161123560025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:VI1PR0801MB1998; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:VI1PR0801MB1998; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0801MB1998; 4:5U3/qSEpWlRdSFqH9+w1WxMSKpFIgV1W+3zgdGJO?= =?us-ascii?Q?tpCNKXOoCMEHRPky7/PCQ0dnQ7x3Au5PIVXFVAP29vZrQBbSiAVpdkZPwS5r?= =?us-ascii?Q?xVLeQZbaD9WBiisPaJ7yBDI4Ix8rxm7nG1klGlwlrbeOiv3dr2YstI7Bbumy?= =?us-ascii?Q?Hpa79IpdkE8O4tYZS0gImQtEMB1wUtsTAwAzT2HPnK1tsMfBZUSdwKgEemMa?= =?us-ascii?Q?5p7Cg4TeKWULDGYCLlThWF+DKa5I53dcFMSpHDVTY76BYK/q7lb7qIo+ItaF?= =?us-ascii?Q?r6olICi9PfUaNJgFDT8VpSck+SSiAbmjUeNB1XrFa2QK5aiz2J8P4xc/nUXK?= =?us-ascii?Q?9iUJjkCrkvmXT7XBq5+LJmc7Ja+7irAtFEuQYjP+HANMNIATEOcCNP6q8Cpy?= =?us-ascii?Q?NiXp3kPBJPJvHjYjZPC7ZaYTrgVTZyBvjHnp524WRmguBAweaUY4czrOyLP7?= =?us-ascii?Q?+VJVpyOY0delEW4dQNuybf+as4mGAeUQOWL9YSrhKwNjTFCpkxYjkRgRfiEv?= =?us-ascii?Q?1Ssr62yerRfeSXfoAlGlW4UTcadmZ095GKe/XOf79Xm7EvtwiLj/sY559SIT?= =?us-ascii?Q?6FaHXFJk9CMxST3J/V+7tTxJGGMRREavigGwYbhe19ngYPRY23Kf6+9CcHbP?= =?us-ascii?Q?ACUSyX2amewdQyKD6vvaf/fIhF7Z8eFQv2vVinSCoDE+8Np5j9TN72wHrzNz?= =?us-ascii?Q?3PD3dhfR74FZStHsDXuNg+WB4+WRICtUP9GhSrqzDGtYFVe0uYk8Aa/Rzg2m?= =?us-ascii?Q?rJZ+g0qnGa8Ltp0rTktMxKIjPCORhggEQPHV4+RtYrbV66OQ2mTLWSjMIgB4?= =?us-ascii?Q?BpQRwh9Ub9f7vhgKrIY+oPiXo0PQLmw0ABtbnFORTDa6wgKiLQmF9/iNqDuK?= =?us-ascii?Q?I/7lpKtkXs4dVnI1bIi1283N7IYZdBBA4WCytFzYh1fHmZOtZEbaLw3AxKSc?= =?us-ascii?Q?vEvwY1UcTHVbrtVIk6ps+SqOLDc3AetMMrIy89tDAdlO6ILxP2VV3A5mwkBw?= =?us-ascii?Q?YTs6pdH8ZKPl9SZQQvrgSz+cc3sXzDTQAvjUMIJOVdv2bvRwpOe5eFkPk0Gn?= =?us-ascii?Q?w/phiI6iLHzoawk++kkj7ewa1qvHF55TxmwhvhiEWlbedb+u2lAJyLCSVqad?= =?us-ascii?Q?yFhPQTbrykOax5el+R1cUl9Iz9GvWP/euh9BsSjyNHZiU/r4WNkTYRUyIo+b?= =?us-ascii?Q?MaDf9rIqpsXqpuA1N+47b5euUWaqtnvSjC8Ee7hygFuReqfIHDTdlTusUQ?= =?us-ascii?Q?=3D=3D?= X-Forefront-PRVS: 0350D7A55D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(39400400002)(39410400002)(39840400002)(39450400003)(189998001)(86362001)(53416004)(2870700001)(478600001)(53936002)(6486002)(5660300001)(50226002)(50466002)(42186005)(36756003)(81166006)(25786009)(50986999)(6506006)(76176999)(3846002)(23676002)(66066001)(47776003)(305945005)(33646002)(2906002)(38730400002)(110136004)(2361001)(6116002)(107886003)(4326008)(7736002)(6512007)(2351001)(2950100002)(8676002)(6916009); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR0801MB1998; H:xantnef-ws.sw.ru; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0801MB1998; 23:rc05+y+4KzoLNvIQENk2i0L7yifWNsvdzh+EKpy?= =?us-ascii?Q?PIyFCQ1FR1Vj4SnHbrY06G/2OnEzF5bUl6YOGxSnEcO/GFSsq+Bf1DWqB1HG?= =?us-ascii?Q?VnGbCWDMdRu3WWwsmAQ9sn0zQA9dbVL2IpgrI6qRfhtGcsnF3VWKqRi0Zgqp?= =?us-ascii?Q?joXtws2mLobO1+K50vsLw7b5XAXmvfsMAYamJ31XJ4JHDA9aBWGuN9VW/Z6j?= =?us-ascii?Q?Kv5a/pdUPgii6Nx4BiUc5kZWu4H6BDkkCl6pCVDsqtNLN3kGrc25kKpA6yXT?= =?us-ascii?Q?ISqD4tF9YlSazHl72mzjYSekX2TuQIWn4I15d7ZcaNbVJfZYFr3lqEH5JltD?= =?us-ascii?Q?4pGCFvrr5xrC+06ZB6mh8GUHmVZx7Jt0PeUfLiTU/jNwMiFGDQuN+yvcBaWh?= =?us-ascii?Q?BhR6YO2ZOpitI3RtyicaLLGCsYtABORecndZxdArCDiQfaFUgDIYl9TU3Jin?= =?us-ascii?Q?e6iPMxdI3apJw2D+UXEadXP48FDp8tZABNmV6fOdj9cHES+hoQVqKQNI1Ffy?= =?us-ascii?Q?9XWd4svffW1zOQZ16zJMHHzf+pYIuADgkjryVbHRGO3O5nEeQ2eE3Yn9hoch?= =?us-ascii?Q?NncKG4CrEdSXEyi9HNQXPpvAyusdICEriNYJewn4b2TbO7z+TGEKYiJNTCMS?= =?us-ascii?Q?9Ab5pk/JctQErYAFVgYMMCI9oTBDkQ+BEGQWkwG7yc7LoGbnl3KmUiHaIvl5?= =?us-ascii?Q?//qiyMVqUPtr13QkGC9ZXtBzalsVmRw0eWQM0ZNCD+y1QwZhs88cynMFLYGS?= =?us-ascii?Q?v7ETPTYeS3477MVjX9+qfZ63d6tgBhkkG++iKBmScav1N0ra2rLtEqXO8Pir?= =?us-ascii?Q?70FdP3xHSQgo8mizrYTKPni4AaEhvUTGVzlt38UV2HyCb9GsUtiT1EYb0MRw?= =?us-ascii?Q?ankRfyR6OXxDvl0+93oeu/4nYC0O3O/5As1qS91p+pUIERK27to6GN1gC6Jt?= =?us-ascii?Q?VPS8RovvlOh2F+ag9uIb/iqk/1c4aJfsSbrVDF1v0+WV+nZKr2zZWegMM619?= =?us-ascii?Q?AV68+3k8Qi1WjY7YDAaZa3zBTbit4Q7VluF6DUOi6pUv4g+b4JT66Iid8PcG?= =?us-ascii?Q?yaViVCBM=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0801MB1998; 6:CLFWJXh0ptlIqbGpe5GsnBn5N4SpI9+9z351tY+m?= =?us-ascii?Q?wWSzl9HDzrPr5+dAKd/vJzuIY/8EYBy+kSVMWbT07+Yr/LZc+JK8j6i1r65m?= =?us-ascii?Q?dFCZGYw05/4aNpYZyey537wrAlZ1vanH/muF5Jc+VGk45btGr8dnVTggM4mX?= =?us-ascii?Q?FK5k+qx4lOZzNES9zTiytl/RH1yWIcb7HpFSQGv4+8qL++1efI7pzrasDrhd?= =?us-ascii?Q?CxDg2kxFegnWAW6Gsi8UPrG//ZaNuwT5El5s8cVG2GsmWOD9vt9BF5T6tPuC?= =?us-ascii?Q?jG/ddGPjXAV/TcL6w++vQxo2wwosBlIpxLGXXdXY6uIdxAU3NQq03x6MudEh?= =?us-ascii?Q?UwsSvcNin54luO8wjAGmMPk6rEbTfoJtEfGasjp0BD7liL6bTQO4OcZtMR1x?= =?us-ascii?Q?drXJyfiP+IJ35i1E57hr+1nrHAuvivcg2jrgE+kyHAPwkd7aK2LeBO3alMYu?= =?us-ascii?Q?91WaM15p8/RWH9zgABG+AX3BZ7brwv34E2khY6I+7EkC9wgKbqtlRKrlxXuE?= =?us-ascii?Q?iYQXKRbQg/C4DUyU284FOJ7KZflr6v4AC0zQiJnRH0rWzmrzw41ez7/PcVdx?= =?us-ascii?Q?dkq3pFauFiFcvPWRioF48G8U+1VLp0KNifUOl1hv5yqA9qNu5clVKWfVmqAI?= =?us-ascii?Q?AbFx2HxxR2ndLOd1QLffmxp+TZzofX5h/Ff9EC5hoW5PXM4dkXy6ka9D/BBi?= =?us-ascii?Q?opgSHOA+sFJG8RJ5axmIWpxecbXIul+gvO6GOe7IZXNb6ztuI5pk0DKX9xbT?= =?us-ascii?Q?nyB+Y3FXQYo5Vgf5VluUWTkxA8GF16AZc+xMv+NCxYQ8/zhvWpJwOea117Jd?= =?us-ascii?Q?FcFUeRq9r8TSxGC9awDujmCOwsbzxJQacCNMGsG95Fqd/Ofe5/y2DIf8iPWm?= =?us-ascii?Q?nDmTzyY+1amWq4h5/BDu8yNqbNZcMlmTFvzaEHqTUZnd7u00HkGsyKBONZCc?= =?us-ascii?Q?36OXaymLiBg9e2W6UJrj6KuyGl3jipYPAl9GzHmP3JMBgQFjPL7ptDCNHG8v?= =?us-ascii?Q?wcU=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1998; 5:j1FJD5IEJfaDPoAh2kNBzbwPbRkMQ4W7EPZjNfFsLSTduYq9d1yIXGz0ahUgzZ6qXRjWHvptSQFdpdXHVIopoK/9rECezPcs3A0CAuTW7lLvs4Hg94sRMkGxJEpVxW5nTo/lcoyNjyZwfNRzanXG7pCt8AlzmRyhJkWFbc4PPYpzZtWHAj/iLUSD4k/U9ilrO2VsVo1zIu9UJvWPDWu0YF75pKLObP8Ua0RwyDaJJI/Rg26PqKW12svR/jybgb4iDUALR68DCVm7CFzkWxZGfsmcKWB+XCcufRd4ssbFVPk+4WbvIWuOdaUJ5sI/iOULz+EQfQsgyJmOqOCk7k5D6euo44C7Hr/R/5rMMO56QHUY6Gk4Le56lTziAU6NLEUZeu2Ld/L6Cf71Ec/lr6Ufhgqa3RnSnDXUqy8O123RsP1GN0lNm/1brbpnXapMk3pA65MAiTQ6Eo9eyqgHcN1HpDmsKgcsQTfPSwXSRQsqb+bcbWjJpgNwpfyUS3hWwNAd; 24:6Qr7eJ9KtT/lgjsarM40Wx22qd8pBkVoaJsdq/gpKYuLSXOfQ8zhbSw1LLzhfRG/oUSvhH5eX/vjle07XOwkXlpn54RCW5F7xWmwyPMLgzo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1998; 7:gm/Iz1ovc+lYv+GRC9J9Hw8n03HuZDiC8ccB+UfjDfx6OXPgPzLUM13P5wSf4AFhdLqVN0dwlospVKAJd7xvfHNQJIANWPL0cFxSKLoEgBE5lf5ltWPsvPVMBIzoOK9FwyXZW/77qnlepuMynf1OzcnkcYcKdcIcjsDts/caZ/TcbOWUM+k1Iusgmjpvbclv229JoinIWVuTTooGVueFd3BKoc9VPnH11DyverxA+OqUnLWem2ZrOnItIUgradsH4wpSh8UDYQQE6EqyBp2AkIacRg3F3F1LoTpn/3of2jcFUKPWOt4hrjZm2i7n/HExb2rpU94tQKWFUumGuoz1ZyunhQg5Gg45f5eVvFJw2r0oICJKPi+I/qlXbJOE6droHZulIM3YhgU4s8uq0qBE7vpb6xmRitwJTB7q0r//WO4urg5v/mDUUMuMPsFFXIr+OZwQ81jgmOdyI3DYz8fyJ+lWEittBsKj70v7n/GKD8GsJ0Y5/BNKQOIN/JCwfUUvQABTvMaMat9b4HOCJAeUQmhSvE0XA5tQhVrxamJm4Dgpwa/TQKKScV/b7AnGHf6cvI+LRbNekABPMB5OX+Lw0VVYLvEmSoHG+ab+eR9XHoepZi7qCxrwhZm69VeqUGvZcigKIeX3kzs1jLr5rXPsWFaNMrSQjIdIK09XgQKeSb5diUkmJb5YWc7vRPz3L21aWxRz6Fgbsv8Lgl4Efr567t8nEmvZdqWG9mTovo3T5m5msalphAxpEXas0aE/m1lTIF0mrfdvPza7KcolvuH+wmwJEnHQayW8F8bLQx8nQL4= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1998; 20:nBPjs2WiRuWCctvr6ym94ICRv+wPRAa/UvcgMY4R7/gwn1ipxyaTVS6uPBR5e+tL5u1qUSnDC2eKCSC9vKZp7UcRb9HSkm2mZctqTBko7ERT5NFx6wHlF4d/Gfiu27HNgnRBQmab1eJhLkoOx8NLbUGkcV0ZlkAexNzt0cG1AK0= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jun 2017 16:46:42.9301 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1998 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.5.109 Subject: [Qemu-devel] [PATCH v4 04/13] char: forbid direct chardevice access for hotswap devices 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: pbonzini@redhat.com, Anton Nefedov , den@virtuozzo.com, marcandre.lureau@redhat.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" qemu_chr_fe_get_driver() is unsafe, frontends with hotswap support should not access CharDriver ptr directly as CharDriver might change. Signed-off-by: Anton Nefedov Reviewed-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Marc-André Lureau --- include/chardev/char-fe.h | 10 ++++++++++ chardev/char-fe.c | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/include/chardev/char-fe.h b/include/chardev/char-fe.h index 0314870..385aa99 100644 --- a/include/chardev/char-fe.h +++ b/include/chardev/char-fe.h @@ -63,10 +63,20 @@ bool qemu_chr_fe_connect(CharBackend *b, Chardev *s, Error **errp); * * Returns the driver associated with a CharBackend or NULL if no * associated Chardev. + * Note: avoid this function as the driver should never be accessed directly, + * especially by the frontends that support chardevice hotswap. + * Consider qemu_chr_fe_backend_connected() to check for driver existence */ Chardev *qemu_chr_fe_get_driver(CharBackend *be); /** + * @qemu_chr_fe_backend_connected: + * + * Returns true if there is a chardevice associated with @be. + */ +bool qemu_chr_fe_backend_connected(CharBackend *be); + +/** * @qemu_chr_fe_set_handlers: * @b: a CharBackend * @fd_can_read: callback to get the amount of data the frontend may diff --git a/chardev/char-fe.c b/chardev/char-fe.c index 86a878b..be96fb5 100644 --- a/chardev/char-fe.c +++ b/chardev/char-fe.c @@ -183,9 +183,16 @@ void qemu_chr_fe_printf(CharBackend *be, const char *fmt, ...) Chardev *qemu_chr_fe_get_driver(CharBackend *be) { + /* this is unsafe for the users that support chardev hotswap */ + assert(be->chr_be_change == NULL); return be->chr; } +bool qemu_chr_fe_backend_connected(CharBackend *be) +{ + return !!be->chr; +} + bool qemu_chr_fe_connect(CharBackend *b, Chardev *s, Error **errp) { int tag = 0;