From patchwork Thu Jun 29 19:42:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 9817861 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 15618603F2 for ; Thu, 29 Jun 2017 19:46:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 06FE927D4A for ; Thu, 29 Jun 2017 19:46:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EE79F28675; Thu, 29 Jun 2017 19:46:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D43A527FE4 for ; Thu, 29 Jun 2017 19:46:54 +0000 (UTC) Received: from localhost ([::1]:40990 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dQfOw-0005J5-3W for patchwork-qemu-devel@patchwork.kernel.org; Thu, 29 Jun 2017 15:46:54 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58853) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dQfNr-0005HE-W0 for qemu-devel@nongnu.org; Thu, 29 Jun 2017 15:45:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dQfNo-0007SB-LM for qemu-devel@nongnu.org; Thu, 29 Jun 2017 15:45:48 -0400 Received: from mail-sn1nam02on0052.outbound.protection.outlook.com ([104.47.36.52]:4077 helo=NAM02-SN1-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 1dQfNo-0007Rt-BF for qemu-devel@nongnu.org; Thu, 29 Jun 2017 15:45:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=p7xkj2pqyw0xu+IPZ25IshbRuZ4xPzJjJC0+JKPK6sU=; b=nxC9bd3DId+sgiDBNf+u89ATpPffEA/s1NDSOlHVN3XaTBbUk7hVeJa1yNLPmxj40CLNjWXeW1jlCPMomLZmcZRnUzVJpeiN/vWZh3L5XPVvL0TpdRo8IquJCMCcWpmgUSbNv7pdu3a3OyueF6ldkbgHmXfLAGqtSQwarY9vJqY= Received: from MWHPR02CA0028.namprd02.prod.outlook.com (10.164.133.17) by DM5PR02MB2682.namprd02.prod.outlook.com (10.175.85.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Thu, 29 Jun 2017 19:45:42 +0000 Received: from CY1NAM02FT033.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::202) by MWHPR02CA0028.outlook.office365.com (2603:10b6:301:60::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15 via Frontend Transport; Thu, 29 Jun 2017 19:45:41 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by CY1NAM02FT033.mail.protection.outlook.com (10.152.75.179) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1199.9 via Frontend Transport; Thu, 29 Jun 2017 19:45:40 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1dQfNk-00006k-Fi; Thu, 29 Jun 2017 12:45:40 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dQfNk-0008L0-Ch; Thu, 29 Jun 2017 12:45:40 -0700 Received: from xsj-pvapsmtp01 (maildrop.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v5TJjdqZ010711; Thu, 29 Jun 2017 12:45:39 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dQfNj-0008Kp-5X; Thu, 29 Jun 2017 12:45:39 -0700 From: Alistair Francis To: Date: Thu, 29 Jun 2017 12:42:38 -0700 Message-ID: <0b14290d85eceaa145e0333c26826b14304e23e4.1498761179.git.alistair.francis@xilinx.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-23164.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(39410400002)(39850400002)(39860400002)(39840400002)(39450400003)(39400400002)(2980300002)(438002)(199003)(189002)(9170700003)(33646002)(50226002)(6916009)(2950100002)(5003940100001)(5660300001)(8936002)(305945005)(2906002)(189998001)(4326008)(106466001)(63266004)(2351001)(39060400002)(54906002)(8676002)(76176999)(81166006)(36386004)(50986999)(118296001)(36756003)(48376002)(38730400002)(110136004)(47776003)(9786002)(50466002)(356003)(77096006)(478600001)(41533002)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR02MB2682; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; MLV:ovrnspm; A:1; MX:1; PTR:unknown-60-83.xilinx.com; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT033; 1:1DTyF1XfNSXND1ot6Rzz+xvAvH5uMhDZsc53pNWuKx7BAtnoegaayFnsUVAvMUzSmFbHjdSAzZvk2lwSHmJ/Pm0HMXZ9boIHKThXrp56WpV3Dd3fXpukRE2ZbiOfTp343HwRp5PmDPgzrEW7JQRcJYZOnv3AwyU9jk45pLl9HJst/TqVdBHEcL90AHbKeeUxWMrucn+GTjbMM14J/o4NA3bnRGeZB2phIfQhjS1uGWkcUXOpw1cy9qFSFiGyKut+f2kq5zgG5LtigTx/DOlYJlLs+cLtZL4zmleOG0LCLzHOeWnC/lFdKyPlFSTkHyviaTsnVDcfecOwhkhYAupHfxj/hXvsYs5iDw8WB6d+nIc5lf8vg88KrcicxOVcDXVPf8v3mtTPaD0b8mgSIpQRGGPff1lmVi5k6EWeXwlSTHQ+dkdoDCONOj+Z1IVoqFwy4XGQISkx+rycXAA+Spn0/shUxyExT7OCd64il0dYIwYaairYLA5ifu1WGOVBeC/OjzQyHfF6Xk2eFsIhg6HynhzORDHL6kR59f+1bvJ4ZZshi0feCx/1FAlQrj5z8E6z35+XtjMUJ5UnTRis/+pkgeMqcbaA9wbA5vHVQ0JYdCN1YDzNmaMrSNyfR3eebjnvNU6MabuHzpUhGXYfsR13sVEYWE+/tuwK8uFKFD08xWWyDzV7xJtvI8JcqTjQtv0KFpeDN43ufZIiXdncczzf/qZvYQvNQRdHrJMQn2279oTu8Z+2XzeIgy47KSsl+KvEzB6kzBL+3FqP080DNhNZYLPNHEWdo17loVqEHBtu7bW/rxlLvrdPWSfjfAZoU64cJuMBtEK4zMdpJQZDHlFeCzkd8XccAFBW9fxvZLlT+GOsWl7Dzsf4mUJg1eMpCzYzRiz6Wa31Ah5ERROMTI+ZCHv73lSwUsGgokHkFgNuLl4= MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1c9c1773-b535-405d-364d-08d4bf276c95 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(8251501002)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM5PR02MB2682; X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2682; 3:IkbxNZaTyzjZM0rTB0doA2abxMRV4U8RmyMNTyoFlW+R2HUFtA8fIgYTpK0ug76eTjgJjOFhwQ2A4OsBZHp46G9G9VUhvk/H0kDtMFDpY75dXoIT9pppZKwqIOjcpdzxG01J8QSWhrtfpSlaVi5Z5NyWndev7z+0mpQfhlfh1AhD+1wN9j62YjpSfUfM8Yf0UDePMucWUx8VHuBYYF+hkSypuHJI1+Of0PZU352zo6NG/c76S56bRHSlVPAgygxPAjeREVkbuWJufmowgM0OHyPYl9HDEa32qZ6hRswCQHWzPYaPwn6UvxcpNzyZQy9vESxJ8OWWrGzzm0DeO90zBGMkiRjrukku36stUZ6qAQld/uuvQtvZsFcegKgrfi9WqXjFyrI4ABlskR3HmV35H1mo2NjzOqtOUrVDwSVFxnJXqQ2ij/l4+M/89BYohJsnoeHHtsSJNVKXlhk+/X8AOKaZwOLB6Gai98XIHBzvny4IyHEAwpmwwujEDEf82JvoyAZuIpmH/u/eyhXhjB+HgBZqwjFun7Rq4GJ/gkHwYt7t2QFAjzimuFTov+at+LTXxGSx5H9woX29JFjqeCrRoWSSYSTIohkXZsxfwnYeODkTUlUFGB5j7Hc9gOgsjCYnPI4xgB8F7kBSXvZzEhkmzyCeOTs8YZsg7RQ+43vvBw+je+KOEoqYrhgPj9/UYZMX58p5kEEGtbRvlRIw/KgKk6PLqvlV5qnSOUskA+lj/ROxIJHGX5cA12OtnixFpkp/EERh+wvvjN70j+KcbXAV/KpX8pUr8iCo4FuvOw2iq30+5qaj/K11pghdy4lyu23CGIdcMvP/t5hTRdT9dKHoNNpapTe8lC7krHvMWAsYFn0mS4hS+K57JCtiEg/0YsRAe724BGaArjk+wR/75d7OIZqWr/unpQRlkKMFeE5TG44= X-MS-TrafficTypeDiagnostic: DM5PR02MB2682: X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2682; 25:3j1Vb8tTgmB8I+rCtOSLyG7u6FDwUpcnj/MHUNswJCoVWdupLG7hHYkob47wpEDoSlFAYLrfWotoYTOP2x1ZNfTQUaAsMbMuOyyDc5mBuyYlRVNEA2PPiS3pPNEm9ch/9DRIQ7qRm35qnJ9Z5eJQkm0zuqYmg9n2EgZIi8Zzs2FTRfvEpzLZBSQEGg/fZixj0Ux6/OQcINMTEpm5vT1UcVbXILIACcxEDcRPWLq8LK3IijO8xXJncXXq9k9ZGJU3abqzW6XSvBDtc5plOBWNG52qwmRp3Zbte1moRjHt46mXFE/EELmUNEMotTSyk0nnSOhfAY0kCxDbEMev827gqwy1yTCelwibt/TSbFzAVZiKa51rbFb8nTTAZbCLxReCkEo+5EWNCpYkkEl3cjDPrMgj2OCuRzRN92YSAh0aIhT43poHhGsuvjXVyzKlUk3dUQuCQ5bLqo5rsMLRL1jZq90DR+97EDJZhXCFdzpJjOxi6wLvp/P+UPn9TCqYRzZLkKS3hzmeQZa/RpAzbvtO0dXpSddYeDXQNfNFXlLOVmCiaKkz6oaUj+kUr1MLwNur6u2+P+qblX9ANF9Fo0iqyvOWrNV9pnXynV9yM7+Hz6IFhScNNBYo6IUd7tPeS7HwWDISSq2Ws+EcJJdTO0xiLjqqquemiH4E5ly2igYdusNGkk3VFRJF0OgYwG7HvDWW/a2Cowo4jKtAj9xJxiBlDYoJrbFYbM7Q3h8xmxoXJKKtAlruI016q7eEawJ3TQ8vDdcKwWInvAQ29+DEdWXtwnpBE7kKfqi5Uvpvh4BOwoOQSsixX+FR37QJhhUS4kl5M8yysGYo8a/BDBlJVaWdzEJTwh3+chVjP7n5mouXLlYeCNkoEP4/QOueB/h87S+VWmBrWaRaNPu+jalHQXrK7U6eC3sAMKJncgnZ8KXTvJs= X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2682; 31:bJDTPlRIwvxKP1Z8CZs7mTClnIAw2sCvhOY21H0XVMoYtWB/TokQYmVq/tOZu9CtVIFUyWzGSbSg6UzCKHfesn3yaXGhhqlRf4s622ZwkjORvXait/7VZUDg344SKwdmZAa6JM1h3g5MLw+1iIJA0vYGl9dRFeHlJ8u2ii3EuGw6+T/OcN0FvE4kV4dSQORsslOZBUfK7UD1+n0Dn2p2+tp+HzmRBBB4b1sC0FXVyOS8LHu7E8moE2oFSj0lrKshdcIuzPr2fZvHMQXFtDUNdBAdJfUUZ4bfJiRqqJW+oK50bu/+0bX0CQt1lS/wwk5CEUDrzVgcxtNVOVeAVaxrgU5ocOSF8JFoB4h1QrwvnFbjwMbaXJu6o+ZH1gfnZRInMV+od57bpJaHMUNyDTxS2yHZjI66B/otyyxo8V6fX83mkUNertha9nuwF+QMshroGZ0XxATIdMMyHHjsEtWb4fsGp7yLXaHRkEGHLeIdHUDvL5BoC72goqhj/Nd7qS7ph3PgM4ycU8+WWX91BcZR+3xWSA95teau/h+y3dGT4ZEbvGsr9U83ajdfE/BfdpPTI8f2GR0jUdgoijBcETYhl8kM+UTdXm2FBSk1f65akqNS7U9D5/DcERCGujGctTsHLY34edQF5rYg0z72EWfNcjUbDSdxiynnmge2pHMt6F/HumGE/fZ1IRLj/NmYQYEiuyVvc7sE8C5eA4VK+3C+PQ== X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2682; 20:ceIjFmJF9sHPAxrvsltV4AXbxMqb1eq5v3yRDO4Yc/6LlWSGPk8BfgXL5Zq50nk4RGMzC3OYQhNFyfrMlonPcNh+KY1mZORauCtMx1fBQPZvDGUUDG7bA4oC48DG+osMLM575xF/Vk/oPYTBon98/hSl5tNJEq/4UgEOTcaCXSzuCBtwg1DpXMo1j4Ez6zA5azusksaG+mSU/UzvuQId9tfPta5T/6ovxZbsDyJf2Aei4yH30qURNJZd7hgFV70K5rL8PUSQmzCM2mim9TEWatno14NIuad3PwIwnjGE4QncKiWLCTR/roPOyldKrxGockIaTK34bhgAJCQe2SPwrdmpWEl0aQDiMWEVFrID59XnLLnr+imugdZJDaFASaPy4C0VtdNL4LliPqPWQaQ6EP4wvoL6eqnmEPmHIrxnwHp/gE2VSe3w3tTZYC8X24txXarMdxRuzr8bbu0f6BNW9kkt2V2y1Yf+g+XPRSoXoX8M3aPIKbswrGDGly7Z4FSf X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(192813158149592)(211171220733660)(247924648384137); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(13016025)(13018025)(93006095)(93004095)(3002001)(100000703101)(100105400095)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123558100)(20161123560025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR02MB2682; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR02MB2682; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR02MB2682; 4:hSHS2dYxm0EW9yrRcOWgzVxZSSvz8yLYbVPlFqOQDX?= =?us-ascii?Q?AezbGjzEvZMIzt2K5sS9AfdSRcKrplKX6CecJ2J4H1K1dg7HG8rWQeSiVx2z?= =?us-ascii?Q?sNbf/b4UGs7nGWz/oZSXbHwaZcTf6nLELRhdNUSAbtZXcJGaYBHx7tnnCx52?= =?us-ascii?Q?i/tDdSPODZsEdDV5By83Y/ZdqBbV4E45ipU+qcR79zBgQhnEnxZRCdEiJVzL?= =?us-ascii?Q?n1Nw/Qroyn6EttMVSMcVY3Z9M2O4MB2JVlQLeukcx5kMvWVGEHzW4F4KxULV?= =?us-ascii?Q?+pMGDWfTn8M57skmjaTstm3qb0xR51u4uG2/4evaQ6bk0hzaAmhGkle2MeL3?= =?us-ascii?Q?ENmQyvYKbkWSR31++cnEKyAljlNh6N9ZgEQzQFP6ve1ZLLXGQ/ZRS8kcMaAL?= =?us-ascii?Q?wumdV+LlDIszMJQu1bGdrHQyzAYC3xag69NHZTy9VLZDCl0m0/HQRkFMkszF?= =?us-ascii?Q?t7nnW5+trSQmtjhWQ6DcZTWh86pbgYljS1PBEkOwaandtgHahWV1ZKqqeNHi?= =?us-ascii?Q?YQC04fUnRZOPMIL4AZZZUAvIzLWHaJDXasFpOZREZhEX1koyWGprS7xfjL0j?= =?us-ascii?Q?hVebTdVqGT7vS/RW5UyECzM28BQJCgHVjdhW48Ap6WjpLDJIcDXeadJZxkzj?= =?us-ascii?Q?PI+KBlmxYLC++7Y+yhMZbdcKzEOIBNP7DSrwjBuDGr4ibd90edmkLyY3jOQ4?= =?us-ascii?Q?W16w4ZbZcQ6tlg22hVSQgW0Evv7ryRBhtkcEFB5GZOazMj6BC3r6ZQGLr/tj?= =?us-ascii?Q?8eL4oiCQFrrKYp12jWoHLd10cmicnGhC8Rvkv//2mBKs87ub8i1M34/yXcu8?= =?us-ascii?Q?eTFpB4PN/dPy5UvKLmgdUkhnHbS5WBJPIxwcyJt3fLO6B01qEvQmrMhAabqr?= =?us-ascii?Q?P2C4rwp4AsPJP9rQ7JwTYeo/FKMaLylZ3ltTG2C2cynPdk5wQclJdCYfr0Yj?= =?us-ascii?Q?nBxoTZaVIixO1Ef7JTp1+VKe0p0SN3UZxH3BbP6bFzYZgjKBMvAtLZbY3tyd?= =?us-ascii?Q?/pa92Q3/FnkefRar4rK0F0c3gp8tAfrzAOlPePfvarEc1ZLd1OqCgtqM10nu?= =?us-ascii?Q?pPq8ev4mds7IKU4e61NFXARwYoupvMpaTdIdP4g+aI4Pjh2efQzgD74Fndru?= =?us-ascii?Q?LuS8IFAVZB1CKvo3M8/lt0Ojty7W4dcKa5uCr1IK3YTCXxkpFAVBac88pPG8?= =?us-ascii?Q?IPQ8AZ67R/fBbt283NSmcjRtJshImeNxChYMZUU4ex0dXzbPnrarbmCTFJeX?= =?us-ascii?Q?8RuUrh+AYx/t1zy5V08jz2q5hPfuQRBUzY5SXBXSE1XXMpDcVYSmibBoPk9l?= =?us-ascii?Q?sZKgT0Iza/y+TWDq/0EBiMubsoxzlBa5daKoEl67WS9m9/IRMW8TLlqJMBd9?= =?us-ascii?Q?ZaNw=3D=3D?= X-Forefront-PRVS: 0353563E2B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR02MB2682; 23:h6tON6xRlxGIEYgFNN7jAgCPfT9U5ODHPDOcY0u9d?= =?us-ascii?Q?OfC/YxNYE5ns8ZnhAnt3n/qicIATyc8X9JvU26yEAkOK5/e/c6g4LZHU7IAc?= =?us-ascii?Q?sYW0utqgcDbi8NBU3kc0fvqaeCYmM8ybgSJZy5E/lovrobWUtIxfg237eEf7?= =?us-ascii?Q?kuAPEUJmeSk6943Mkj08R95+ob0Q3f4Kjwpdr4HTsEcgWBvWJ1DECSfOlgK1?= =?us-ascii?Q?2Smo7ZFJ3xLy+0rFAVnTb8cnhTJxBTSoQ7MkUsssFv3U4QvsyRhCVbYEbapN?= =?us-ascii?Q?ZkE3gbrUReafgSbBSAVHBT0/oIDO6yarlRuKZh9TV9vXa6v437hA/MGDVzcS?= =?us-ascii?Q?hNOT1V5um1CwMc4UCCuu8qWC5CrsTLPnf25nCGqEfEGgtfvNjLxrnw9ffman?= =?us-ascii?Q?fH7oMl6Ic1KQ3sjuxcB8EHhO8mAIF92Xd0qC+Bu1htrla+R47u3Q+ODC3EEK?= =?us-ascii?Q?MvMM0xC+OhRBQQTiX0IgmSRu8z8Jm0CAkJGljz7kzHRdN2G9jT4WKEMu+nTV?= =?us-ascii?Q?nTNd9k9TvqcmFctGLDojYyQxzANlxcdzHH8Su/CcsyUqEGNwcC5Za8BhRA+V?= =?us-ascii?Q?Uut9+g+BnGSTqFeR05vL93jTg1gL1vhDD6sOj/NwuoiPZ7mAj0EyYaXBVxM1?= =?us-ascii?Q?tfNO7W6w9HhYWb+77f7D+N2KC80DM4AKI83TJaxoSJ3Hu2OE3pbauNhmZoMt?= =?us-ascii?Q?mquGV/aPuG9f0Opf82qgO0f6U8scKZYSRRZHZJlZDlxl22YgWk4jUVPg0tdv?= =?us-ascii?Q?8N3yorFO01Kl8YGyYOOZE9747Mn81lg/xnv5Ej+t1euY6wiP7IkqhpqGJrxN?= =?us-ascii?Q?Jm7jOxFGsThUabLE0srKCgWg8BRVBYImPwIqSGOP4ov92dFbyFzNtJ3eg8Yt?= =?us-ascii?Q?ide+aM63HJ6sLnByKTKS+tiIi2Ie5GSNdffHihBWU5PFh+YEJGHm1pp1M0nu?= =?us-ascii?Q?QLLBIhUSlA2orjtUcz9wH094GOc1F1+Kx7i7I3mKgqt4s4yqwK8ggOJOT2AU?= =?us-ascii?Q?xNJhZLYaZ3O+zcEqi2HDmDi5f27S1mbTU0rFrWU59fANsPLT+FKRWA12ccBN?= =?us-ascii?Q?eZF9SOLcy3rhpz3pSU5Go7AsUuoNfruAv8UbjzdomXAFcUe8VpjpqH6jYXB5?= =?us-ascii?Q?kuCwTI6GiYTA8ehYdZvoWrX4FoO/h9ifb9i3JBc7DRqEfWWuloLlA=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR02MB2682; 6:clommpe1fr7DnIUGnBZeaRGcqo/+gMnMy57Yj+PqbC?= =?us-ascii?Q?WuwQHZ4lCNQ4sdaNWqaZmipgbUlzn8zYCPVigV1rvY5MmsFe3W1fGHNSn+73?= =?us-ascii?Q?aSb8uDiKCaq8sAyjeegwKznXJpnKwT25O/IzRJTSbhBC+xpLFvBRDkjMePdG?= =?us-ascii?Q?yPx0wXy7PHH9UwQDGSYUWqTyncSkB+ub6Ev5yZFZb9unSINEFajFCtXfRyYp?= =?us-ascii?Q?oHsuqg2uFBrFWJZoH3c81f0a9d1dtZUiLsCXFhbHGzNKvFB1UGFaKKiv+T0j?= =?us-ascii?Q?3dnVpNokz/KAgZrFSgIWSg4dcooq5QejJcA1rau5CvQJyfQF7BqDIExUG1nX?= =?us-ascii?Q?3sb8PHVt+mc7e9Rpo1r/1+/IPh6qyFzThzoShDVZA3PhsA6fCVjWbEBhrHq7?= =?us-ascii?Q?psFekXh2FZqbq175XSNX4Y1+9xXU22/ZNhCqcVSPRY/FxmERFCSvxfuu/czo?= =?us-ascii?Q?FsjewHoaNHbYlpq9i7Qmc9UozXDMdtiXIfTJarHx+fNaWCs72rHzybmcI2Wd?= =?us-ascii?Q?p9y9opwFrA/SME/0SUGpjQ4z6ZMvxneFmm1oEgouhjTs+5BEERb4oLL6zxL1?= =?us-ascii?Q?mnHnZGdS+JwD9Bqxyfj2Et83sC8a+y+x5Rg7EWGj+wwhjENFgFrmMW6gvP62?= =?us-ascii?Q?EvR6Hi1GbsrCYf3NBr0boHm9FTZuMs1iCRHvRkh5BV8kZCf7+p7dsG/2Vm+o?= =?us-ascii?Q?TcqfhA+j2ClcLcNNLEwg7H+ZZIIqBChXahclDjH1SEkVANHsTO6845Jr1hH2?= =?us-ascii?Q?iJkgiujMFj+QSh1QfHp9vtc57gvv70I4ezOwLkSYuVfbV24sPQt8zp83d8WU?= =?us-ascii?Q?YVMjH96God9YGNS+YdxSyzA4uYrjFJ3KhANpOEs/Ik7gLYxTxJxIbEn6Kk8m?= =?us-ascii?Q?xug/ZHxZy2uHOTm+4RkuBxcMCHuKHEOXLVtCh8lhY2jx++nGuEVBorvKhuB2?= =?us-ascii?Q?ClAn0hq3gHs3NYEcxJXLPNnAreJ0ajGU3pA0Yli0Nj7FxEFXqEbaXPSp9Gzr?= =?us-ascii?Q?fW/jKBE8yk5Gb76r1L7ff+?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2682; 5:CyC9KtHxsdR55qURWigucCpid9PN/IpugBWVe8Tm6Ve4cL+Ey8pOIwLdpi2rE/nayJN/aCgRxRk8wdRix2PlH1pu5l6TibJti/AcgD4+F7jHwDRFyfd1c7ZaaaS4tNLM5iTY6SMc/1cq+zVd1QvR/4DCzsrGGSPznf7y9PDmEmfFtKtHHL9hc+tf0oYU0Nw28y2OA4RtQRQZX+FxKNsIRNgF8qmiSVRloEf6Mv/IUz6wVV16537FGpYTx3LzDTZosT503XD1+u70+YyXJvotJAIdbAqMALX1EGvR4VInb48GpHppGGUiAUd7afPbhAlthxUhMjIdZzXvfrTDDcwS0fQ3OHQ6z0zXPEXCdaO89xslBJO852KWs6K8naAaCFGp98Ve/2Nkqxa6H+J3XQm+SFq/kIUvAvGHyMUTpGFl4iEoQKkqOacGEdFc3Znu0c66/Dna2kaCaR8xRRyx+Ul1XcFpoYXXVnPtF//oqfgDZx5Hbc1UpYxakgjGbgcBq9pF; 24:jM1FQ740by0YlJ/EiTfnR9xOAvR/dgmfeFTN/XuFr8B4qM7ISb+ANYDprkvMrPEkylzEyMceubg4E5uOLGPJXh1SjziWkAQK6VYV2dukpaY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2682; 7:UTBB+1CaAbfuT2Q+iHwDzJiVNqdeMcusMmcLscNIzq+ZAXLX8nuqsacMFDDkCHcQvddWu6zMkwwTr4kAlKXl/OVMxHZuETPOAswzxntNuELRKOLJfnOt0e7wpv2sZBgAQ+D2elXUwFuMAqo8FYwStfw8wF5QSSZ5GERy48LQOR0Dh8M7j7zh76xv0n6Abf8MOZ3vC/uXTB/y/9hCMUixfeqzIwCN819qEDuANBJhvepulZw0dojI5fmzD9GT+VVucfflmmo88foaxeAGgLRv8EznFduCQcO51bgTTomP+k66o0ZHqsM59KF333I1FTj/CGHtlWs6RRUt2P47IA6DGpFXUg4cvd///IjlmbjHZa25rUXw/IBD5bkVdvDc2PZYGKr12xMe9NIaxm2fo6foaC6ZcGtWYrzjar8FD54jjJRMBNGJ4M9U6HFHD4LpPsGXnTxXg77maQx/Khl3XyiDM6H1zu/kVpT7t3GtjDx7RuHYtaPFMq1gMYdLUxk7Zgy/52sUN8HTWy34JujWXlgGJXrYjAyHvw4GnUnUJt22KI0DLglc4QRG6gRRWszPBWdXOAU5e2exFl7S21+HhhOnolYz5VneyEjJlgVu5xv93qAIgYwyN0XLjwd+NnpuL2jRNxKWuEOzd+C08ueIut9qsygjhj8b5Y3tOxczaCk+JDGEN3BYaI55zQDHDiNFs4P47IgeUPyLmFY0TpSLgIi4Th/hWe/C77bbAmhG//+xAWxGsfA5vttl07uXWexO72oN3DFyrvR0Gk3TF2Zf/vKuhhEqckymWnYi7QMpreS6fC8= X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2017 19:45:40.8836 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR02MB2682 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.36.52 Subject: [Qemu-devel] [RFC v2 2/3] qemu-error: Implement a more generic error reporting 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: alistair23@gmail.com, philippe@mathieu-daude.net, alistair.francis@xilinx.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP This patch removes the exisinting error_vreport() function and replaces it with a more generic vreport() function that takes an enum describing the information to be reported. As part of this change a report() function is added as well with the same capability. To maintain full compatibility the original error_report() function is maintained and no changes to the way errors are printed have been made. Signed-off-by: Alistair Francis --- hw/virtio/virtio.c | 2 +- include/qemu/error-report.h | 10 +++++++++- scripts/checkpatch.pl | 3 ++- util/qemu-error.c | 33 ++++++++++++++++++++++++++++++--- 4 files changed, 42 insertions(+), 6 deletions(-) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 464947f76d..bd3d26abb7 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -2448,7 +2448,7 @@ void GCC_FMT_ATTR(2, 3) virtio_error(VirtIODevice *vdev, const char *fmt, ...) va_list ap; va_start(ap, fmt); - error_vreport(fmt, ap); + vreport(ERROR, fmt, ap); va_end(ap); if (virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_1)) { diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h index 3001865896..39b554c3b9 100644 --- a/include/qemu/error-report.h +++ b/include/qemu/error-report.h @@ -21,6 +21,12 @@ typedef struct Location { struct Location *prev; } Location; +typedef enum { + ERROR, + WARN, + INFO, +} report_types; + Location *loc_push_restore(Location *loc); Location *loc_push_none(Location *loc); Location *loc_pop(Location *loc); @@ -30,12 +36,14 @@ void loc_set_none(void); void loc_set_cmdline(char **argv, int idx, int cnt); void loc_set_file(const char *fname, int lno); +void vreport(report_types type, const char *fmt, va_list ap) GCC_FMT_ATTR(2, 0); +void report(report_types type, const char *fmt, ...) GCC_FMT_ATTR(2, 3); + void error_vprintf(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0); void error_printf(const char *fmt, ...) GCC_FMT_ATTR(1, 2); void error_vprintf_unless_qmp(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0); void error_printf_unless_qmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2); void error_set_progname(const char *argv0); -void error_vreport(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0); void error_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2); const char *error_get_progname(void); extern bool enable_timestamp_msg; diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 45027b9281..4a3074e758 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2530,7 +2530,8 @@ sub process { error_set| error_prepend| error_reportf_err| - error_vreport| + vreport| + report| error_report}x; if ($rawline =~ /\b(?:$qemu_error_funcs)\s*\(.*\".*\\n/) { diff --git a/util/qemu-error.c b/util/qemu-error.c index 1c5e35ecdb..83206532dd 100644 --- a/util/qemu-error.c +++ b/util/qemu-error.c @@ -179,17 +179,28 @@ static void print_loc(void) bool enable_timestamp_msg; /* - * Print an error message to current monitor if we have one, else to stderr. + * Print a message to current monitor if we have one, else to stderr. * Format arguments like vsprintf(). The resulting message should be * a single phrase, with no newline or trailing punctuation. * Prepend the current location and append a newline. * It's wrong to call this in a QMP monitor. Use error_setg() there. */ -void error_vreport(const char *fmt, va_list ap) +void vreport(report_types type, const char *fmt, va_list ap) { GTimeVal tv; gchar *timestr; + switch (type) { + case ERROR: + /* To maintin compatibility we don't add anything here */ + break; + case WARN: + error_printf("warning: "); + break; + case INFO: + error_printf("info: "); + break; + } if (enable_timestamp_msg && !cur_mon) { g_get_current_time(&tv); timestr = g_time_val_to_iso8601(&tv); @@ -203,6 +214,22 @@ void error_vreport(const char *fmt, va_list ap) } /* + * Print a message to current monitor if we have one, else to stderr. + * Format arguments like sprintf(). The resulting message should be a + * single phrase, with no newline or trailing punctuation. + * Prepend the current location and append a newline. + * It's wrong to call this in a QMP monitor. Use error_setg() there. + */ +void report(report_types type, const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + vreport(type, fmt, ap); + va_end(ap); +} + +/* * Print an error message to current monitor if we have one, else to stderr. * Format arguments like sprintf(). The resulting message should be a * single phrase, with no newline or trailing punctuation. @@ -214,6 +241,6 @@ void error_report(const char *fmt, ...) va_list ap; va_start(ap, fmt); - error_vreport(fmt, ap); + vreport(ERROR, fmt, ap); va_end(ap); }