From nobody Sun May 5 00:56:28 2024 Delivered-To: importer@patchew.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 1499928286251225.3680529163637; Wed, 12 Jul 2017 23:44:46 -0700 (PDT) Received: from localhost ([::1]:57475 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dVXrg-0003iX-MZ for importer@patchew.org; Thu, 13 Jul 2017 02:44:44 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54424) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dVXoQ-0001LT-V7 for qemu-devel@nongnu.org; Thu, 13 Jul 2017 02:41:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dVXoM-0004r2-NJ for qemu-devel@nongnu.org; Thu, 13 Jul 2017 02:41:22 -0400 Received: from mail-bn3nam01on0082.outbound.protection.outlook.com ([104.47.33.82]:47712 helo=NAM01-BN3-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 1dVXoM-0004qj-Fc; Thu, 13 Jul 2017 02:41:18 -0400 Received: from DM5PR03CA0056.namprd03.prod.outlook.com (2603:10b6:4:3b::45) by DM2PR03MB480.namprd03.prod.outlook.com (2a01:111:e400:2420::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13; Thu, 13 Jul 2017 06:41:16 +0000 Received: from BL2FFO11OLC004.protection.gbl (2a01:111:f400:7c09::127) by DM5PR03CA0056.outlook.office365.com (2603:10b6:4:3b::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13 via Frontend Transport; Thu, 13 Jul 2017 06:41:16 +0000 Received: from az84smr01.freescale.net (192.88.158.2) by BL2FFO11OLC004.mail.protection.outlook.com (10.173.161.188) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1240.9 via Frontend Transport; Thu, 13 Jul 2017 06:41:15 +0000 Received: from localhost.localdomain.ap.freescale.net ([10.232.14.21]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id v6D6f2F5013081; Wed, 12 Jul 2017 23:41:09 -0700 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; 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; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; From: Bharat Bhushan To: , , , , , , Date: Thu, 13 Jul 2017 12:08:41 +0530 Message-ID: <1499927922-32303-2-git-send-email-Bharat.Bhushan@nxp.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1499927922-32303-1-git-send-email-Bharat.Bhushan@nxp.com> References: <1499927922-32303-1-git-send-email-Bharat.Bhushan@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131444016762001665; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39850400002)(39410400002)(39380400002)(39840400002)(39450400003)(39400400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(9170700003)(4326008)(6666003)(77096006)(50986999)(356003)(85426001)(36756003)(50226002)(189998001)(86362001)(2950100002)(76176999)(8656002)(47776003)(626005)(81166006)(8676002)(305945005)(39060400002)(6306002)(105606002)(50466002)(48376002)(53936002)(68736007)(7416002)(8936002)(5003940100001)(38730400002)(2201001)(966005)(5660300001)(104016004)(72206003)(54906002)(498600001)(106466001)(2906002)(2101003)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR03MB480; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL2FFO11OLC004; 1:+7puufaNpUjrxbg8svLccxIh4kUUis8MDjdqmvEQS?= =?us-ascii?Q?TQu9sMYb9cEmEsoj4hdmRNXXR2qYlS4wxcqgRbAGdTNR2/1ypee+ZJS5KCBB?= =?us-ascii?Q?PJClh4f4fM6TA10bF5hQCDbXuy7fSvAMNgbzSGcPavxJe2iJwVrwNYkwSh3l?= =?us-ascii?Q?9DDaHyoTVAUHTKYE+TGo8N2I9Fpgdgp/Dwqxw2+v6O1JsdUSCEOg/K7LqwCN?= =?us-ascii?Q?UT8NtuzUZXm/YRO25vc7ITq4EihFod9KkCKB2+VUXfQw4lvENal2fmOMUrxy?= =?us-ascii?Q?Nq7F6QxEN6LCeBMzTdPGWWWAKQpagsM8QcN53b0XhMsCcHaA0qi4K+aiH1Lo?= =?us-ascii?Q?E0xTGt/hLJaQ6yciFk/jeMTlpCTOcjysZESLCUCcbi0vuhSca2wRQeugeUov?= =?us-ascii?Q?i2O/EJs30jQ17WLkax6HHHtIYH+pfJsBwTh3096qycyWKi7MGk4zbGzfy2pY?= =?us-ascii?Q?X2gBN8EDAVvjvCmJX5IIbDgzZwJqtqjhEACuhr+JUqpmKqbqfm0oBEHFUnlz?= =?us-ascii?Q?QBpbegfZDNNbRQUZ5J8djIemdBeOZJHWWqDPXpPxUcYKKIOWrYG9O58CCdT+?= =?us-ascii?Q?RvxpCnlWrx0n9fuAJFUyWpN3Bp1A+2O3R7JhAdhMQ9O9mqG1wDYvoCubICml?= =?us-ascii?Q?tzVjNYe8dNXn658KPRjtp7xm53a3prPRIa/onb7Fn2Ylig3uG456DAioJZ8q?= =?us-ascii?Q?gmnTxDEYbAqQyu9ktNTbVNNGj2UqEFEcmZc1CV5uHfRHsMN3YhdX+SDaUyTR?= =?us-ascii?Q?wsAKSah/hRRg/sIThXcCco2sYafBsL7gmV3GdKOg2bfUjK72Aw6LrbiRQ4Eb?= =?us-ascii?Q?4MRFzm96N7r7oLV6NxWwMFYo9ZophDvM4E1cRoNYoAwe6n8B86PMG4gtSgSq?= =?us-ascii?Q?kb7x09hKwy7ELiIjEwD+gr5fs/Y6XicKrMLqv/EJwI7K6YH/0D65OXwWbGYY?= =?us-ascii?Q?sqXFymiY2y14vpNLWNTZX0LAI5E+gvPxEPWMCaJDiwfa7mEwoZvws+iNU2Cm?= =?us-ascii?Q?PQNkhF5L71Y2J8sYAT0ComcwNNMQc1xO5AwFklX6LqeDJWkhhL5rDJBwlUs9?= =?us-ascii?Q?N4wsXqcZj3VZ+wgR41TW4Q2YDOA?= MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 24e27e74-90bc-46e4-b7a4-08d4c9ba2967 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603031)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM2PR03MB480; X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB480; 3:AirqMUYi0VKUvGLrXy6UGsZILNGg9kacPbm8SOvGHIXtp1Cd8XtPBKLb+JAtSwSmeMADiOl+prak8Y1BIIvRq0w4J02VktNjp8jXMznk1nISpr/qHR2hZbdpZ4Qy8gEeZMdKWd3WifEFS9ldosBwRWEjuJo4FUzgfwdZFDVytTyqaYAWvYo7SSVYDi7QzhdYD7mGd8Q0jmK2XCdhaltV/w+S3wZzYSGaW+X/rI/Qq2NeD4Rq+l61AfDotNsifQrNG76HftUxOjSt91alslLMW4zJ/Vnb0avc3WT0Xm32hvSd/nDyo1OwCCEtr9ZKzfAHHW9g5UsVyXC9ysMTAeVS1w8Ec2r52jSOctGhkHHHrtI/FfpdXm3oPuMoEQ5yjV2Q/BiyKx87PiYXPu64mIz1T8tXm6yYxfeLrIEZGh4N1DENlJvlKCdwE1xP7IcwGTgk1iyD4qKcJ73nx1OcpQ28zzUTO03gL0HjyYWwfv9pLmH4KvjpMVZ7vU+SrFqidZVL1OLyhQIStvuifzatRiw/nkTjg9bRs1edDDjo3fOY3PPPHvwy/+SDO6tm06IJ3WW+RUtgNF6XdVXzOnuDl8mVW8QYqpKNpe975e+XSnMNk09zWuIaY6cuwfl/zFuSnMD6IqEdQkl9/Dx9MMv3K0mtoAm36bCluFITPU/uNZKboZbTuLDzoyRNGpCnFgYlbePsKf656PPYEzRd+mSI5Ro+AIToFvc32Kc2q7NU/XcDiHQFplZ88/co/mnNAWA7qj7iFyTc2xPR5rsOpQogzIQi/ZmllX8oASYv1PB96RB1mDVMyj6KfmGjgsYFnQXIoWK+L7LBIVVTRCmGcf5rCEkyGBMe4u2H+7YZmA7pNsfShxI= X-MS-TrafficTypeDiagnostic: DM2PR03MB480: X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB480; 25:mSl79luu9x0QMhHzSjFHxbU/npAnmIK6v+WtEbf24CcdWD0nPaerq42kzV3h9CAIljivRRCJCA/uiG4N8RKzrKT6xrhD68bqf7AjyCVvOmn8HnDeEqk3R/pAN6PcqYSeZESwrFDA67TkqxZPdyE5Vm5Tn9aW3jvmmiV64WIgzq2QUE2Wy9qlbgaXgQESsrXi1y/LAyKVyn71ZtKdfTkJ7nQmM5gwushlyFT2wN0jVi9Q7Z0eSJVufCnGp7ggjIXw5rniUTNrCRbhW4k1sce7g5kmsr8EXvtP1dfvD+VUi3930XpC3Mw7qAhsWgcUcWi8UN9dZFc6ltKE2C3/mU2DLkv1VPmrO8GY6CTMSBQ8LwnNXkFyZIURdGhIyDNDo/TTOAapw94Umfpt92Koe9DbdPIEvJBwl9M8G+b2vHq61KxdWGyve/1XIH+7UZCEJe40Ihp8brK+O1+ZK+YwpSgZl4LqqB4ruAXJvm9W/TN2d5siaYWSm9wiHLlVOAG1kmn5xsWlaoh4l9tF/R4Gp6jNzgRfqX+KhEu1LXIsOjlsF+65PW+d1C/0K9+Qku7UV7T9O1VKT3+4SYKaQGlb6HViDSqwsYi4eHi/eAJGygWRRaISOJGH85Qb2ueyZ07UaGQwzrUJ4IjfYk0k+hcuTrXaQO0jsIPe9VotODRWAm4peDepDugOAebquUxxjjuLkQl2E/Tt7e/4CbZNk97Xo/ka2h69YTNRsb6AcWqsatVcvIGDWfvPy8P8hs6T+qSUMmTJpXXUBMx3liv2sEn8eJPS+HqRzILLM5K94WXPArL/hcVs85e5LAfmDIqOuZWW0PfwXR4xBhG+Zc/b00enLe3B9O2WDTPS7EpMh1iIaDrVnrzsoVme+Yg00Q61f7+CGf06amTnKZHUIrDvhD+Bag6EgmZPr3YyBvyNV1/gxAFSdBY= X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB480; 31:8uhmg2Wo7uSYNSoZQdP98xR6sKkv0IJirMZNPfjlG79kAz/+CCs/R/LHaoxn38DVtSc0f0X6N8bXP5X2KIYS2iev7IbD7DBSNLK7edv/IUtcg0qULM+77soFqpRLPbPM8Y3Douf0qUW3M0s+bLlT3zZ4u2dG+WRU0UQNaTXWnuj85OYiC8qTavSK/mHBHOaHxAVdteGY7NEPyI1Vt39rpQmxlFI5fvjxn1yINjqwqFmThBogjwuFkfQLogl2AiBfogk4L7TaPTRkwQ2dJ/1LF4zTqpWn7adeMCd/+Co39fcPvH179glkLDUMyLnccXuxtKdo7HWwcGcWK7kM9NLJeLt2IdIX3a5iC+DZpoufieajTdRVJiP7+Kr9bUE3H8SbL8PS5k9uRco+LBxaN6SWUiOFaiQAM3MkmosXg2zkwbcs/nMKBhyJX5/rTXjsjVR053xQbVwo0XPgk11r0xyxtwl/WYq4AfMLktGK4yNbzZIgmeK+/M5J+OxDU+oVreWp5aP73fkvc42PyvtPP0oSfR5DOY/z2PWsALhG/mdDzmURHcXETwj5xCbFcCR2zJdawya229EE38rIcXjG9rCpAYyIAgvoDR6CnS+VHQCVEXhjuRjMFVfgUgpXpOeYnZ4bjpwZ/GnSFu+Ngfm66ZyvkKfV57P5WGDU/0IBgmsqGgQ3mFf/KNu9l14Gjzz/CQOhg9syVqQxDCgJGwXeTC4yKQ== X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(5005006)(8121501046)(13016025)(13018025)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(3002001)(6055026)(6096035)(20161123559100)(20161123556025)(20161123563025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123561025)(20161123565025)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR03MB480; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR03MB480; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR03MB480; 4:Lp+p/wPT1Upp5S9dBfr5etdW2Qe66Et8W0yMzXKh4ye?= =?us-ascii?Q?5TauJKYF6gQLhWA6rF/FlSjWgmpsu4/GJad66cPklgcJqMYvtrVDFlZORElD?= =?us-ascii?Q?92BIQYoCG7IFV/tl1uoKiCK8MO/w2SSadCrW+jg5h1U/Tq5MPzUCCuRRXTEq?= =?us-ascii?Q?QSndwEVvcQBvU3OSW+MaIkVivG4buKIhD0VmrfvgMMdNILv2v3Yw4kOOmkcT?= =?us-ascii?Q?rS3b9PFZcan0pdEf/hfM1EXe0zrO0/gehYUdZKEGt/Ttw6xEC4O72OoUrdEt?= =?us-ascii?Q?I0G1tD2UzFik9IbB8cPLQEMrgm2DPztnMlfyBGRcwZwF8+Z3lae2rA1E9Nmi?= =?us-ascii?Q?REIveNMFVwxDkX9WcBaWxLU+z6crpJJLIsiQjC7iLOyaYJPgfKwb7U3j2EM5?= =?us-ascii?Q?tPnPAPRG2RKwBAXSX+WBezN33+lWjvjnxjwLITz4BQZCkkv57IXHIYd5y8pZ?= =?us-ascii?Q?QDS9TFQcX/OlkuCsiE0d8DwGdbXk+KwoLjR3O0GA8iutdrHbND5/GdiUHZtZ?= =?us-ascii?Q?QrR7BfvDNdImAMOkHKf1SeBD7AU6J14dQnJ0sQOqlVXH0rPEfz84M01XJIyi?= =?us-ascii?Q?w4juOmZja2LxgGjXF8dQ8qeCUk93Oq7fceZ4ckWrTAluaOlyvyYxomqT6J9b?= =?us-ascii?Q?Mj9PBjgQH7xDIpOpMlL3kX71PalvSFQSA3nIRRCXRnCA7O2xkqKTi8KE7P6x?= =?us-ascii?Q?vXojPztoeWbuamxGT9szKcgk5YVPCR6pumVKFuCipbQjGq7Vo1ozUVPRvNmA?= =?us-ascii?Q?iJ2CJXYMu0EKUpg5j6KQVI6MtDzZyquo9DaPlVy+xW6rKI80AdWSdJOyP2jo?= =?us-ascii?Q?rDRpBiWhS9bp6Dz2LZNlPAHWRRpm8df/JeMBLmhwl1LuOwpOTL8802oYPCX4?= =?us-ascii?Q?0B1db0CI2bYW8PiMVh6Xh/J97sNkduCFENdkwUyNht9wekNLOLj9HkkfcSTT?= =?us-ascii?Q?Cw20yZEW9Q5dkBf/9WUaksWeJA2JbjFxSKOOiHWWv95BF2zUndo5p/0IfEjR?= =?us-ascii?Q?ZfEzfdRJr6ZqcueJKo4vyNeZHgh/Cr0ocSQBvVee7g0Srfck2Mht4+b8Yqpl?= =?us-ascii?Q?ePr6M9EMshI9g/5Mm2cRjM0r3qB715Q4+sU9bYF2BV202QOGaZPFikui0lH9?= =?us-ascii?Q?N3EKPsgwN1bGRuAPxqIFDTqaQP0kp1yP1zqURBOMJ3EDyJLyrf2WjnWtDABw?= =?us-ascii?Q?gglCudjDq4hR0jMaEC+mWIaA1w3docKHDFYaS0aZLJTJJDFAzMrQao6Reztf?= =?us-ascii?Q?OxQEktBMjEaEEyB0bTuvHImzytLwDs2xRzJ67dlTtratsZP2f5mhRK43rFg?= =?us-ascii?Q?=3D=3D?= X-Forefront-PRVS: 0367A50BB1 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR03MB480; 23:fW9DvLWNzTJRbfsR95bPYhJBG4Q3kyCwqINDzuWxKe?= =?us-ascii?Q?kgIqfQ3JChnpRGuWoaWch1l4DAfPADETu+bOStZoETvztjW4DOfQWYsn5Eil?= =?us-ascii?Q?GjFBU1P2iFf4i5htKr/0uwpsfeVyKP9WhiKi1RhoKM6J5BIT7gFi8tI7Ccs3?= =?us-ascii?Q?bBnTlykVgGmxQnf/lijUxp4x4LewSuN6iREqFejzCKZGkHeW2yhftjflj3mS?= =?us-ascii?Q?wVdaFQCexKBf4NnGxb+AIeCkDJyJIcz4CCdQSZSXYj2rL+iLKLxvuW2zeK6d?= =?us-ascii?Q?ihx/XucpywjyS4jX0RQZ1bXkqvqq9fFNFlFczPpOoUAAsWTD1xTtrku04VUx?= =?us-ascii?Q?E9qihu5DPU+1HaRTDLgu22L7xjU4fwa4tV92n3bQwA6UZHbdy6oLLoNrV1q3?= =?us-ascii?Q?CPXQ7z4Wm94Co0Q6sscV0r4/RxCGpRUNp75EqIoADhStIq862HuSeRLDj+2s?= =?us-ascii?Q?XSv56sDBRG1/YNhkfgxllxPQz12LFg9M84Q8yUdyTqEhfUJl3e/tKhfi0+kS?= =?us-ascii?Q?Sk+2ETUA5rqnpHS89PVFeT1G3MVEShOFWAT40G/I8z92kEWROQ3YNdd9K2YM?= =?us-ascii?Q?vAUMFUDwAMCebakB+lunCNNP7Zzn+TDXxZodwkFMCZb2M9o1Rema/qXSBaT0?= =?us-ascii?Q?Hc9QPapk37KVHvSIpprrPNwA7BlORsIJPRv2jhXsKkXmqXIqkLzkU0yukNOh?= =?us-ascii?Q?M0GGd1Ec39jlN19yQJ7mdUxIdze2HZYQ0r4DiJaOF/+sGMTnKeqtQjQiiMR7?= =?us-ascii?Q?78nsoOPgEtzXrrayvIGYYx6jhQySOUIqroMIQ2Uh1FCbJBajljXYCFSdVbSp?= =?us-ascii?Q?grzhf26/YMZCDw9+51ezCnFsb2JQQPnmDGdY1P9mq9cAWPG0NngoRFPRaToD?= =?us-ascii?Q?yt/l4op6UgOomQeyzSNTf26dDRBA9/+2+Aphnw1eTbSReo7mnArjtDELPw1i?= =?us-ascii?Q?UOkM401s8NRbGp3zStY6dqb/g56CTKXakXvN8gyqzR10N7y2NOvf1TLEh80v?= =?us-ascii?Q?q64cyI0fJEFhwwt6W0hOICU8fnV2IRFXiC+CARHcZujUfdfpG9xrYwrlfIje?= =?us-ascii?Q?KoUG1YXi2jSCrAkRlP7unfxWRkpdHPDz35T7fSAOP6dlJCbM8GXT+Hq7XeyA?= =?us-ascii?Q?dLHRh8Ij43PI/GhZt6PqQPHeBNq1ouJasOTuJGLQJW1bIr9DMcBbG8mqiTHu?= =?us-ascii?Q?7/FCJAMSpvAeqaZOMMow8D06525JLWDw8QUgRU2GzYooOOMxDKQrhPfed8uR?= =?us-ascii?Q?6ItisPWNn4nxsyAcd8IlKE5PZhg5dCz6aQR2SeLUzNFPzGA1onUH8lptAwWN?= =?us-ascii?Q?uRA53e/9BJXu0+TstPvSVzEgNaFjLY9jaN8t106boaM/R9ltCemF2ltb2nIL?= =?us-ascii?Q?YmDw=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR03MB480; 6:W/+T2owJXCHKHxWekgnMqJ475uK2V4UgFaSNw2KQ8zi?= =?us-ascii?Q?wDI/O8y2YOHBHIYmHp15VY4RR2fF8/9Gj4qygkVUqXKwF1Nm+5omAePhroll?= =?us-ascii?Q?eIK0Ra032Knon+ICZoldaIFJvLPTP/oRhe1TcHEbLx684xrv1qTgxhN1XLJE?= =?us-ascii?Q?lqQhMb6FbHV7TU3/uAF+xtT04N9l0HsUq4v1YhAdT2/k8Xt/LDquqOZIjxSa?= =?us-ascii?Q?KIHxaNsY/SvVQ3PPIs2hlpDlh5s78b5S6D5vNmw+lhzcrNc3kTUAU6+9vgw0?= =?us-ascii?Q?Z4DG/DV8OevcVHzVV9+t2apF9crLEytp+LMlLOOtEhVCBmUj3vYaYa00bRY0?= =?us-ascii?Q?nfmEVkgj8xtlMWc4ORK22GciJhMOvumKxLbcDC4z86YvR4Rjzp2djrLCiNsn?= =?us-ascii?Q?Wg+VojB1cL4duyAvBk+7i3II9O797zsk6FMk3acdNq2fkLtHel3z+bS7FKSU?= =?us-ascii?Q?np7QxT5cJ82cBxK4imhKowCkUAbveEHZrOMTClVmpXEC7Ke3i3WRs67fKJ4x?= =?us-ascii?Q?Z0x0PI7nqNK+ldQVX7enbQgyuJm/nO+BnnnNDeKkR2YBtF4Kabrx8WZCPPDb?= =?us-ascii?Q?TjWme8BDd1FDjzIP+oK1MD1oIxbcEb5BSSmp4rTI6Zy/FHbbOeTEeSPzY588?= =?us-ascii?Q?lE/aO74O4DQY7Xna5o/9/D/oOQIvRB8OdP9ZNq0WU57w3QccspRYvH+Cya/U?= =?us-ascii?Q?5AAm1PjVw/C5c67kvJKXIENxCWVJO7L8WIWvjXJvjEtfjFuyLRNuc3ypuxkh?= =?us-ascii?Q?y/PiQz3AFpTkHyA8zny5XnbEfY4XmJaPrYtib5FN96NRArHaX2cVB0SgdRll?= =?us-ascii?Q?W3C34rxN4CYXfXZ4i33QCiPGbj5WLLbw3OLji6bJse2q9Q5WwUF3TA0+arvQ?= =?us-ascii?Q?WWYCT85bsXUYabLdJXM/vzGi4NL7HKuRTzZLcL2hSjEQdd/gsG7/aBOrN05F?= =?us-ascii?Q?jtObLewroxQtQC9NxZdWmbXLwgBYly1877njarw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB480; 5:rzEVhFGJCbsixMEWcU6u5y0O2SdcFQqrRZiDM+rFo6eewQQvrrH1aQJjAJq00ORItTcNkng0CjWrig8ldNX3p1iGNlH2zULhujjoyS9mNkq8HcT7VovZwG2FrdPBDbpbTpgg/iv9J29EJ4NXHLWFjEGJEc9ocxVLhtTBHwc4wJrMJXwb4ByztQ8mPvDoaAyqwXvJxuc9I9aZA3DCX9ItkeNgABCRkumYTSvsWLBnScJHjr4IoN6WTi2XkMKkKOPNwakPPU7hUbPQv3tJsJGqzcjr5hmDHX6BAqF23qsOk/4FDYmr7PxHGxGRWhITB4FB0us/mZUOBz87pcnexCIkQw1sH3TWSgWqk8HJ8hj3zmrTo+ER2nmLHoJi8267lFjwTgcznbDGra8HWZ9RuXQz1eEDwQUGdM72kQxBAKCNdr1XFFi8/9M+WEeJCYDE59Hk54KPQ6XfcTVloWF6ddgYU3TV2T+Hq2YjcOqYDXFTCg8KzuwB10zt3m0DWuM6dVnGSPtJCBHodHPW6S6Lr0n28Q==; 24:CYHKucXhZ1oOHxy89MqM0d2GCjvvF93DCV4NSakF5UDNqOMxSSfb5h1V3MmKwWItjo8g+IAr3qEu0k6FwApohJQsWgsg0EVpqDiuyzqbXhU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB480; 7:hWVIl6Nj4baSDFGKiycpB5yf9zbk/uSGg1ANKCKzKFosMBYfX3rPqlo2K9+7OM60xPzeu0BE/hq19M6gsliLKO5foF4X9hvp8w2Bo+aTlRWZgpyDEbL6ze8pHrBb4C1cXfbN3CREwEdCCvReWOQ8lQ3+6kU6ZPLoqimADjGPzhLUoOqi2PRcG7wD+iSfZgqeXAzn7TP2MULXda0F0cLu8k85ct0yMQ6C+M8Q7TBGLR5uYvVP/Wcjs4Swf/alwuAQ2EPVEK2W/7WKTJRR3mTShRdWXBtIfTFytauHu9lrJsNr7Oe7S11L4G+BJ74UbXbamV8ijXOmbMFUtOKmvPpNiK8O57cOlhmINeG6054ip2WGCjpusr5DE+jC0UTGv0Dtzp8lCrNA4f+ZaovcOuC4UIbOJKRRhz4My+pxlwb6HAUCa8hSrzLV3pYvpOt7+JrcjJXx0HMQXsVXLSoR9mxb9VPKzta/S4mUi3NRl71cZo0gbzag8syp48NTNeMIJkg/sLv8UlIAonmU7jPuuLvstykgBqQUvpbCLJW10wn4igyzhMLFxnplwiKxFMip+ywsxsmK3O97Nt20qms/+S3zQl60Hyj1Qhn1KhKzZ2k2o/Tu6yU2KHMGOH+SkWQ0P/7SNZazvQWk47VZ1ullt3ivqxYGgvWKEMhhvRxsmJxnfLD/jrfsjnDWi8ISZV+T4eGV//VHVAgOR6Lo9dCqcOh66YW4lve4Mlgmkhledl6IFkZCbsmzxWN5ZGmZeA7DkUkbdx0hdcriyaMrt5hEAd9WA+Lm4W31eYG0YDQHTApKOQc= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2017 06:41:15.8881 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR03MB480 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.82 Subject: [Qemu-devel] [RFC PATCH 1/2] target/arm/kvm: Translate the MSI doorbell in kvm_arch_fixup_msi_route 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: wei@redhat.com, kevin.tian@intel.com, Bharat Bhushan , marc.zyngier@arm.com, tn@semihalf.com, will.deacon@arm.com, drjones@redhat.com, robin.murphy@arm.com, christoffer.dall@linaro.org 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 Content-Type: text/plain; charset="utf-8" Fix-up MSI address if it translate via virtual iommu. This code is based on http://patchwork.ozlabs.org/patch/785951/ Signed-off-by: Bharat Bhushan --- target/arm/kvm.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 4555468..eff7e8f 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -22,6 +22,9 @@ #include "cpu.h" #include "internals.h" #include "hw/arm/arm.h" +#include "hw/pci/pci.h" +#include "hw/pci/msi.h" +#include "hw/virtio/virtio-iommu.h" #include "exec/memattrs.h" #include "exec/address-spaces.h" #include "hw/boards.h" @@ -611,6 +614,24 @@ int kvm_arm_vgic_probe(void) int kvm_arch_fixup_msi_route(struct kvm_irq_routing_entry *route, uint64_t address, uint32_t data, PCIDevice *d= ev) { + AddressSpace *as =3D pci_device_iommu_address_space(dev); + IOMMUTLBEntry entry; + IOMMUDevice *sdev; + VirtIOIOMMU *s; + + if (as =3D=3D &address_space_memory) { + return 0; + } + + /* MSI doorbell address is translated by an IOMMU */ + sdev =3D container_of(as, IOMMUDevice, as); + s =3D sdev->viommu; + + entry =3D s->iommu_ops.translate(&sdev->iommu_mr, address, IOMMU_WO); + + route->u.msi.address_lo =3D entry.translated_addr; + route->u.msi.address_hi =3D entry.translated_addr >> 32; + return 0; } =20 --=20 1.9.3 From nobody Sun May 5 00:56:28 2024 Delivered-To: importer@patchew.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 1499928185189882.1371366845852; Wed, 12 Jul 2017 23:43:05 -0700 (PDT) Received: from localhost ([::1]:57470 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dVXq4-00025P-0C for importer@patchew.org; Thu, 13 Jul 2017 02:43:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54459) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dVXoX-0001OD-RI for qemu-devel@nongnu.org; Thu, 13 Jul 2017 02:41:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dVXoT-0004tp-40 for qemu-devel@nongnu.org; Thu, 13 Jul 2017 02:41:29 -0400 Received: from mail-bl2nam02on0082.outbound.protection.outlook.com ([104.47.38.82]:61264 helo=NAM02-BL2-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 1dVXoS-0004tZ-R0; Thu, 13 Jul 2017 02:41:25 -0400 Received: from BN3PR03CA0093.namprd03.prod.outlook.com (10.174.66.11) by BY2PR0301MB0599.namprd03.prod.outlook.com (10.160.125.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13; Thu, 13 Jul 2017 06:41:22 +0000 Received: from BY2FFO11FD019.protection.gbl (2a01:111:f400:7c0c::172) by BN3PR03CA0093.outlook.office365.com (2603:10b6:400:4::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13 via Frontend Transport; Thu, 13 Jul 2017 06:41:21 +0000 Received: from az84smr01.freescale.net (192.88.158.2) by BY2FFO11FD019.mail.protection.outlook.com (10.1.14.107) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1240.9 via Frontend Transport; Thu, 13 Jul 2017 06:41:21 +0000 Received: from localhost.localdomain.ap.freescale.net ([10.232.14.21]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id v6D6f2F6013081; Wed, 12 Jul 2017 23:41:15 -0700 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; 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; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; From: Bharat Bhushan To: , , , , , , Date: Thu, 13 Jul 2017 12:08:42 +0530 Message-ID: <1499927922-32303-3-git-send-email-Bharat.Bhushan@nxp.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1499927922-32303-1-git-send-email-Bharat.Bhushan@nxp.com> References: <1499927922-32303-1-git-send-email-Bharat.Bhushan@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131444016812543309; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39400400002)(39850400002)(39380400002)(39410400002)(39450400003)(39840400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(9170700003)(68736007)(36756003)(48376002)(356003)(50226002)(8936002)(81166006)(38730400002)(6666003)(85426001)(2950100002)(4326008)(189998001)(8656002)(626005)(50466002)(8676002)(498600001)(72206003)(77096006)(54906002)(53936002)(47776003)(5660300001)(305945005)(5890100001)(2906002)(5003940100001)(7416002)(86362001)(39060400002)(106466001)(2201001)(104016004)(76176999)(105606002)(50986999)(2101003)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0301MB0599; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2FFO11FD019; 1:NKdjgG1QRXlPVa1bf0Lc8Dts76xoJKLAvDTb1wY+yG?= =?us-ascii?Q?RL4Q9d0PqZi9g1dsdZD1kwqaM9NrlqAd+xG/PisAnrJ7HSHjTMcZlkCF1O73?= =?us-ascii?Q?JhPoDPK/mGBHClkBfHW+4yEZ+Tq+mmWqreo+Unf1n/lqDFoEjlMySQquY1ob?= =?us-ascii?Q?nuVs9mF2Y4HJ13acEBVxKNxtShZ99ov6eAwGOmd2jcljpej57w7zK5vJKIev?= =?us-ascii?Q?4p1eyYpv/hW3nj7mv6nFVRlYlA7voPF7NE713Q3MGCfrDGne2MXIT5XuLBGk?= =?us-ascii?Q?iQ1uw31HB1SQFnB8ZGAisRzfuI74h6FxK9fdk522Ry5crkzpbukesMsso+yn?= =?us-ascii?Q?/RdlULrcbZeTjxuz2YAyteYneroCMhzDxsg4SgiLfKYI5PVEPSGZ2A8kAKbI?= =?us-ascii?Q?sZ0uo0aLPGWe89Ya9JgGIEEYCPTRBFFWNTdjGpI4dPPfMwzDa7sl0R2CjiMt?= =?us-ascii?Q?meDu+qAbhGvU2sxBGavpUQgUIK+Okund4v1+rFYX2Kqtxx+QXbmobfh9n3AN?= =?us-ascii?Q?ouwZ7kisMFXr5tFmv/CCoo3mnd/ohvkIsA8yYyMJVDygbQVg0uwKOsIImd7D?= =?us-ascii?Q?TnpKbsbGirKnqQJKrugyVqVrJCYR1igXEYibMvSwYWQcF0bbSyllDDKrblhV?= =?us-ascii?Q?kJcbU5bRStT3XLPvrtPyDuf3A+ZYB2B9ZI6/2e0peRdLDeo/iyoCw4kWWw0S?= =?us-ascii?Q?jHUQ9++EnMc8FR8VY9K2hYVCvfkLP0iMKUCnyRi9mbFxEccCRMX9IQhnt0Cr?= =?us-ascii?Q?uLidbg5sQZE54CfRts/GG1ninHNRWidD4vDDTG4nSMUAoHnt31BFpFo9fNV3?= =?us-ascii?Q?cQf0kFIH+FyzRnnxaI0MvZEYDX8xMEI8bHolTY9pUdF1s/AVNEQ1RBGaXmmP?= =?us-ascii?Q?V/8r8wRW/ZJSs62J5MdekClxNxxpvWOYiRe5a2RSBUk+4Kmk+EzKd6fvZyNN?= =?us-ascii?Q?S8SP0z5IRBMzm0m/7f0DFCqlS1PlQ0VkafPNxSTTf76HYAoIA9W8eFojy9LX?= =?us-ascii?Q?9b4KZzj7Gap4NoKhHwJkW9EtZ2JMPYD0X9aHc9RBQc/LasTm6pq7/3ZZI8mS?= =?us-ascii?Q?E6Ry0oilCTCpzqb01H4KaKAKN7?= MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4b0d0c3a-fcea-450e-4255-08d4c9ba2c5a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603031)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BY2PR0301MB0599; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0599; 3:VeUKdg71o+kVYZZmv17Y3JT+ANOgBqqFkyxM6iJ/O65HjaZemyyVvv4O0lAfzdO3oZ94SQxv0k/KnOQFQRDZkBPHXRhUwb9J7cSdz87yMrTo16kFkCczRdrreRnuMoxT4fu/3BHkB1cUwsiQD2d7qqQKvIhGQGdP5Qz3cT+aZdd6EVpXRWZy1GHvg7oahgcGRR3AVJcZSKKAzyVQb3sgGZOkuLbBk3xxpdwikjG1AiulkqBdtQPrNVyPCmcdoLQY5ISM8rgtNxOPgTkYbHcZDtE6gTB8H/sEkQv3aigDCl88sieIAsBTEhCYrz1p91JonH87QpW1L2UMZoGWLa7OOnokaiLaxwwBtGRFBhaIr+nNUOwjAtN7ZfeCZhldECE4uCdnRyngI8jD7J+9EalJyO78g8OzqUPgVODhN51RxVIvI4eFUbpq5A53piOCvFH5zubinPPgpkew7du2mtm2X166Y+MbMNtXjCO9mIA3bLQyV1EanrNGiFXtC7byMEIEPbuXs+V1Drxhta3b5IY6PWDT2sObhve2pkZnOLVoQI0je0oVgjX4kxSUPfbRGsNxY2EULDgyQhpeK33kB0mWjh2K9/77xMmEErIr/E4prRFaw4WP5vSzm++42pMsH/OCEc9c/pQLQ/ogkRhmhxm9lnnZmKvf2kpC0aRhtrSoKtqoinu3Orz57XfYqGYoVjwzTg6DZEsh0K4agWK2CVOvUYLgeO6PUdYEpSgqzfj3NVNVnrprEiaEQEOWSYBkDhaw5jbniq91Q23LpbPqiKTkBHQWXj8jWTkXko63K7qF97O9vWJSVtSsT537lZkxRzNGNbXlCLPVLSvORyDlUhK1nNUakkSICENDtJRjSFj+WLg= X-MS-TrafficTypeDiagnostic: BY2PR0301MB0599: X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0599; 25:cgZiX/DrRTeGdg02KGD+XOEeQa6+Bdy+j01vNe2Y2l9JONn20MKg7s0y+d66DPhnhdPEQtSgrKTD+dzjt00DFuSseCM1/dX0T4ZgOpoqIUQi74aQFIRlBvf5WVLgquWdLMwi+XAVv1MLDSOEVHCO9lR8ErPFpkxFSiWQVMTaOi2nawGwM/Un/u+5bSA62GoXiAXmIDfQ/O2LThrEMWMCtiluh6hyQDDuBrHSuZp4esvA4Ihb9owyjZN2DmEV4sNqbFG58HiJJ9zRBENSTdfkXdmdq95N7KifAXnFHt5MC5oaTYp2pIhxxGbbCxN7yJGimlJv8lNQRcd04FmsAoR7P+1Id+CrdWZxpk/4Ob0dAtay+5cTAXF3/3tKA2A8Pztp92aPEkfMyopEVjDo3HUTIVdDcqsjwzve1Qf8PSKGWCzQl9y6MKBTUEIHmlcSYzLtJpHDv3SR/IrIGcxmVbKbHu7SfsLgtYXDVaNjnKeZvZh8pBS/Sir0fnJ7+p2d4MTHQJ+XdzqXDH+yjKcJu+WE4qrKhMR6hdHwfJpubOYBdIBhDtje77Gg+39a2DVvcSK3c2OoJkGBZz9e0SurTjF3XFRw4XfqDgEkAg3rMtc6gfq5Mo5p5dJAVhLXliWWfUWdmrCZK4jTAvq6Vje8Io6Jyg/g28N2zj/MroW6bIEbDzZ8yQfGhzfkTWwXBFbo+4gIeMT6FvyTbJ9CIvnaGcOK26mdKVJhocidGPB4ckst1yPNh/iJTshbgkEpLAY8MHKJwr30EsT6vvmYk/dbFRSotCuRjYFfsmFuCXYhzJZM/HgsOo7KZ0z2g2cppbRV4b8zDCodM0A30QYbTG3Di2+fuGTycGr89MyFXBX5YXyqOR/66BX58Wj8GU5ZvbbmVP+Cj0VgpkvvErhssUzHg0IXEd4BLlpB63tOiOp6vTuHGpw= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0599; 31:ufkgEhXTn4KgB7leI0hIwzE0ADVZQfw2VSCxY5UBgzsyoBJTznSt0mEB67xUCqLhIgAckLlY60GF3LzT+NpFzT8zKSix47ykjoXdHXz//jtm1mX/dAuiEIQNMAB9U+qxKmZQbHrzrqzJ0sNz9BrEG1y/KwAfaH6foz/eOJz1TgVjZkbJLyo7ddDDRVQlXfBxnHqDFIh5ohFRvRP9V75zuyusyVoWoHCWVWCALPsq8ZQCzSrYaAOuwzTywtJ18N5UKSzItJYboBcuE1AS91XzGp2WnZo9SUkSiJkt+SJGl6NOs+1nEb0RCi51FxKXeC5/C3IZHAAH+oL/iT9PLgoamwUMFJXfBenfLsVvUXlUoTg8aDpHFOhr/xcSn3Sr808AeQFdImpmv8hblxeEQzL3DFemQtAkJQOptf11jQR5ncDUWUSuEenrqgynhhdzYxSvkqzFFoytArBdPv5lh6WqrwVBIPR4Oiuvy+II5p2C+6nJVp6z7FRQ+5W5iM+Q6r5Wk5YgY4fJaXwTcIz1bJPhnxD5zYej+uubO2t5We7RMzoG7cKjk8NVWe24RTtg2782m/jI0HP1rLnDHSENALGZY8+xz3moPTTt8iDeR9wXwl1OIyP29DamMKy71PbbPjBpeZaPLhPdZbRFWXqy4wfN7syVCXQZe+eqvveQynpxO6K/yRgmWamT1i+RhSOuL6lbmxhBz1IR+veUTTH60iE6kw== X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(148574349560750)(167848164394848); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(13018025)(2017060910075)(5005006)(13016025)(8121501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(6055026)(6096035)(20161123563025)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(20161123559100)(20161123565025)(20161123561025)(20161123556025)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY2PR0301MB0599; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY2PR0301MB0599; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR0301MB0599; 4:zy2jduPjuF7LqN7TK2v32RWVGchvNZZx+TM9oPee?= =?us-ascii?Q?LE8Yi/BQywgL5iMLLfU6JVfwFphnc9bzep02siLQ1ZDN6iu68lgkPXzFqnS5?= =?us-ascii?Q?cAbmAt0X/fp0shjnwL9hDFV9X/udPY7ZXR87/BpBnA+3hhmwfNSXSNXiW9UG?= =?us-ascii?Q?TaJ6CeITBAoJNdcpZ4v+cyZ1v6F48lMNZcIu9g//SkyFEy29CULUJlD4LHMK?= =?us-ascii?Q?EOB6xCidnZp07hR35M/tPBKzp/a8z6BnZGZh/1gfXwf/tfQO2isfPVz8Buua?= =?us-ascii?Q?iRIhBWlpVDa4CdXQJe9YL79oY0Dg/mw1HI8LKq6unsM7NRfzT6UZrgHGKgFL?= =?us-ascii?Q?JjktExfpfoR4q7LHcuP3S4ikJEGczN9P33zavRjmhZjTVI0RENHk5R6+l0Bp?= =?us-ascii?Q?mmqNHq5BOmrPY+qa6E7Tamzcmfxkl9qj61kyZmugPwCZmGm5FsfPA/tlYGKc?= =?us-ascii?Q?+RbdhJIo8BYATYetDl0Hews2OHUUckB1BwFxR6e/7AC2JqW7iv0ppWTwJUPd?= =?us-ascii?Q?anKPj1NObVulNe57aT+xcG1KUOH4WPEDmW7/iB5U4517b3Oo/PyFV3aGB9VN?= =?us-ascii?Q?++xu7cPhwBBsqChF6dOwzpoQH+laITuorxg+Txm22SOKxEXA8WrkhZO/QJOg?= =?us-ascii?Q?+A08vOTppsFlB9h+n7bTHNSZh9f0LIX1XA0RBz38rL5+I6EiHFN1UadvYQkK?= =?us-ascii?Q?JOUqOPh9IarJZj2+XNRxCai7KCAoURL73nGIqLhG9sk30iKjnpIWXPCZCwLD?= =?us-ascii?Q?zCFBlg4zWI30YTctMJxqpVNDhBRp+V5MlQ3haDbsnXxIdpvS0pAnxyzsCRTj?= =?us-ascii?Q?tKmNQTOiGMlNhk9zuaLGtzl9SUZHtzAiVC9bpdphMv3r6lpR44k8k8n+dOMD?= =?us-ascii?Q?S25Nclp/LQyFpS5mhvKAL+qXg73Q6MpcIcxPtyiNEXqvqO9Tpw4Wxw/0jLFn?= =?us-ascii?Q?4mAVn+itgiOx7MTJMasEeI84l7edqjJEjS84wHKKstLk16YGTdd5aSzbtwqp?= =?us-ascii?Q?3qevC58T0kStlcdkKh4UPew7THkkjWbiTUQpMQH2FGCGfZ2RIzA+7Mdah9ev?= =?us-ascii?Q?vy2HMA7zqoDMd0DprbzvP335EGYB22z2FKeCovjVSKUIla5+eiVQC90eQzWL?= =?us-ascii?Q?JrRx8Q1Y+GI7k4ASdk83KKG0b6QklOl0FUYlMKjhg0Zf7qrH0Fh93XZ9YLw0?= =?us-ascii?Q?7FuLjCNZENM6mRBpWfd0mpKT1Thn8MyQk45Hn5bGQgrkA/batkSFMZa0qQBR?= =?us-ascii?Q?e3T0Mf4zobyQv7XniFYK+KZVf11v/IkYPphjlsR6oDF9OqNNr4YLkKOqY3X3?= =?us-ascii?Q?F/S1Pn5q4Kr53egD+rCk7/1nb+/v95m/mJ6ZecDXnsTDFEtgXMOf9x9LPZO7?= =?us-ascii?Q?U1lFdA=3D=3D?= X-Forefront-PRVS: 0367A50BB1 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR0301MB0599; 23:keqdrZzFrW+2kf4OBKIBgekDFXNP0Hd/ZhoHyII?= =?us-ascii?Q?TZ4oBMi7pSVpII1xTL43Qz/NMfQ/9hzdO2JThRvwQbSfJEbVT0KyYgyPSo+U?= =?us-ascii?Q?A9B/9LcpBws+G+QGgSBCEOsh858b2lg+uj2CPq8iQhxM5U9zV4mJqwZdQe5w?= =?us-ascii?Q?A3fTAp426ouaHjZHgpHUwfoi1ftB8aqpAwUdqSKW+k2OgGWcKOhF7dj9MoIL?= =?us-ascii?Q?QNsCPGlTEqCKa0u0TMqkKGdAK2yOBKV53f8aUWRb3fzOKECpvJGgW52dDUCZ?= =?us-ascii?Q?MZzqRuFvmPQ95Lazn121+teRtN8RrT85I42L1Bfz0D8MX1UgrOKKfQVxXO/o?= =?us-ascii?Q?JaGDHCB9cyyflrfbUUTgJidpnEoA5d9P7sJ+7UhAvkLS6f/7/jUt4iqUxoX2?= =?us-ascii?Q?2dgkeYECBUBwVMqP03TZjy1iiImTYEjqutSIth5LXdgP3EpErdzw4AJ8tuHc?= =?us-ascii?Q?PWw4CvrHFuWqOhUbWkZvxqvrrfiGcArgdDH2hpnrbxEIG1rmy8RZBXVWY/EB?= =?us-ascii?Q?DcvsDXRLlT5XsW1HTMyNK9e2+DvHSJ318ORJKTzd2UqbPNrY/3kosnK4zDMq?= =?us-ascii?Q?FV7az342MSypRXrazyQtwTQ7fK2hOsy4r/TdvOIaJGzSfJj/rMBMf56zuspI?= =?us-ascii?Q?4gI1qlRPSqXt6jR92VhtABWwh46f279CB+u6/7i16LjU8QLE16wRM5g4NDrf?= =?us-ascii?Q?c7SgxWyyHWQ1J75VIW8E/E13psxnRaNk+QNVTcfKOaG3rXGKaBvxWJt2Xp/y?= =?us-ascii?Q?BWRATobBarh8REOsb39K7xqXVmvbuxs4ohDDHRRzA4TuwwSUOoNsGQopJMOt?= =?us-ascii?Q?Vl7T3rFTOmFQ8xDT1/0A9H0wOInNrphtHvOGQfOVubBicA1IB448SCAschYH?= =?us-ascii?Q?9rt1Y/zFrN0ADCnAlaGovtFP7bFGyX2lat0GRcnM7ysDj4E+oE1DZgogg3ny?= =?us-ascii?Q?kGI+hFPXHETTioyjZuBNDfEh7nv+xesjc8Ccyy+yAkGRpq3K1UgD4W1lvMt8?= =?us-ascii?Q?Ew7fj+jdjHHCb9w/KI52EjEVohgNSZtmxnRsoxkHseyQZozahEOcZrNXwdCK?= =?us-ascii?Q?mlDHFtUk4Wyt0oxopLH+u++80pasZtDrobaThPam/wMh9eqC5nPiGhZ4mxx+?= =?us-ascii?Q?IG29TKFLaqQCj+clPa+SDwIjTXuJQnym7UsmAn2Q1ntzg8OnZFyQ2XD14/+6?= =?us-ascii?Q?nO8nKlj9AwANADlouzwqGSwy0RPxsffPdZO5PbMv9H9SudweP0zvVioyweX+?= =?us-ascii?Q?qb3lHhBjX3SWUH+xZ3BLCDapFK4/qZWJ3qr+W7uYztwNawWd9TMnduI2/0eR?= =?us-ascii?Q?xNe3jnFuQxDwc1K3UA/N1aM74x/zmWBQ5bGhjm604JfZ8b0YZndEhWUVbEsl?= =?us-ascii?Q?7wWge2A=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR0301MB0599; 6:0ey4cw5TWN+HLU4SH63lLGiuwKVDj9XJHV7AL2W2?= =?us-ascii?Q?pSwz8Zcjt0blsNyzMZJjSv5IKF7/H2kAJmjMMxpzcmG3zt72tNfwubjLzriH?= =?us-ascii?Q?ZxTkjEJhDjLVQA3WlL0kKmNFA1W51VljH1StF20lsxt9+x8La2aukxNDE9Kg?= =?us-ascii?Q?/2hhQhX3DAWogwUUUSxlb2lYqTozmIP8lba1GkpbMGBDTts4Flynj35G4Q6w?= =?us-ascii?Q?RraUasbHLBrF0wmcsNlIwVb6Ur1npIiraPXCYbEystZ/Lr6W6mdlLlMnkFIq?= =?us-ascii?Q?eQyPp3Aw2EDx61eqoUtPhwqbAXorD36rN1zHr42/UO+28OQK+oxd+v4qqpBQ?= =?us-ascii?Q?HYz/MCeFz8q0LKvP3dcPjVWT/G03h3xxw15m+v40oO7xexitUtQH7w6LrVad?= =?us-ascii?Q?fPk5C2JOoBGOVorqw2yDKeI/acrBlE3dhxFjtPJwx7pj1JgWArdzpZm96IYp?= =?us-ascii?Q?z0gpRqxehs6O96Qpi3+xDZJQrJYDJxueqy7k2Cxc15yyPm00DsCoXmCNXt0Z?= =?us-ascii?Q?aPWmgPQVSbPwbI4THjWV09ry3PWEuSLS94A36SiCM5vYuAgEY8e31uFKFz3q?= =?us-ascii?Q?JMs5u6KLdyK14nWqbUjU2v4Ybm0tMMYwKyGiko08XYyaYb87myf+5qULweF2?= =?us-ascii?Q?Jg+7ZzLg2xqX9kw7Gq9Zls6n38FmNJEFNZhEqi33rN5dGX4qFJVu0aRXe1f4?= =?us-ascii?Q?nrySbJKdrrW+GAfqjiqZj8vMth4F/7pqKcJWEb+h9ZmeV+8sEQzH2h8ZxADP?= =?us-ascii?Q?KEwkwo1on4m4F5wH41wRw6CHpQuyb4E+OO4+OjtiaDXSL95gGUGa9MKuBY34?= =?us-ascii?Q?5B8il1YfmiCfKlIokkLha59ACs0E71hXmhoGgpVBbD6SQxOq52CWkoArEs4G?= =?us-ascii?Q?aDbf+4v9bvDmgIRvH2FWQ2tc+MPMcqucn/VEmDSb7TrLr8pEQ9ZxR/9+n3AX?= =?us-ascii?Q?MovTu66YG0xSgoORfhDDJvWCWisr37cPjQ/IV7H4RL9876xO9gm/RpG4Vzfi?= =?us-ascii?Q?Gk4=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0599; 5:aYirotfErhXVXjFQFnruAQcxS5bz9/nPnUuvZ4NNs6I6+WaqNZU328fGzXUGgCy6w8qzLMASBKIKx9XBjHoubmgV173giPldrXeHGppfA2fUGpVQnN6cv7NU4IU+60ReJGOlLV7Ah6xI85RpE8a68OIOtdnbM1oSY3weMjEo4CGg/4Ehh1Iyu5AORJohy5kAkcsvO1EhsDJ5mQGsmc9otnHkua9CR3qNmideRLVma9J4pzXvZilu0kuZvA92W2TU4nPPq6fJ5AoT/AB/J/B9EBT6QovT+5ObFlDhztzyGoFtxYECu6hTyhGDxdN1eQMQPleXXxycMaXYZLeVg/5l4DY2729eMEbRxRPZu033a+2bl0vl3b145XAjTIyxaIvVWHSjpLptYZ+yBWTY+rhkz8RwSFoUf+mITci17Pu+y/y5RGFroMCLgSWHqDbNMCTOufaCrZ9ltZNVgeButNyiIV2ZV682iyjVU0BjtSPwtbEQ3qKZLll8/rfLTb++h5zfpQvLUl3FvCH0w15bmYA1Dw==; 24:gaT7qBYxoAi0eMNZeIKzn4wEdF+4ibzFQzH1zMv+zsxSFfmlrPTJwx3p8mYL5hJe6fvGnTGASQ5OUCrff60Pl0vQ4UwNoW1cuLWiAFv9+Uk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0599; 7:iFZjdG/vKbEtgIpKftChQ6DxUJ6F1dL9MowYQUPmhFrAqT5EPnxYL2bsPtkgsaTWaFsiWcxTudht8tapjoFPtoog+8LTYFejltKHvl66JS5tRO9+ozPQZn9H8uhLXsK4RVxg4aOaYu4bxXmVeJqR+xSN64dc5DDeG/Rni5SlFftl7Hx+TD3HiwkXPtfhxqM6tVyO/i2fAdRprppjZiBpyCyWdxAhOr8X8CdHBwJQ4cp+GREDmcVsNpdd9xdjHlyLRPjpCqoKdvFPLcTnYZ73VsAQSMeJsG+Nd4mloE27FX7mVG6DrcOpgKaX6/s+r57XvWENBupSTxvditEyXLFifC+Q/xTa2NmmAPGJyVSR5niOEASpU4scakuY937yVQG4sBcK+QJv9y5IQ6/LwlxlrQPdpTOIk2CPf9cfT5VKBOphSKmGIKJAMxG08iX6qCvRXaddGarB4o8Mg3VxsCN3snkmxFxG6h3w+e3SX7grMW42w4gZlxjLeUAad5xuQVqLCwMA8VcvUJ8mENcvuAzslNi/FW5kHY/20GVJ319kWLVQkU/lawCWlceXOsEd1NlhHltRYPC39Kf8L77AAKTnyEztaYam9VCmSKd1e8pynvObiESsJCVEKGEoSjRr1iKnNX1FVGmBc1TcHTkSMEj9AXuYiJP4N5RVcYzdMQ1X9EtiqZSfnHk7shXmXFoIVuRoOMghf/SFGo1KX/VBEFryoeo9POZIPQDXsA3AGON+uQ5UIBzS/tHJgrNyLImCuGqoN8ewL4DW3aqG0t/DoAjEXcWEB67vO1GisLy6atfhX9U= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2017 06:41:21.0203 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0301MB0599 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.38.82 Subject: [Qemu-devel] [RFC PATCH 2/2] virtio-iommu: vfio integration with virtio-iommu 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: wei@redhat.com, kevin.tian@intel.com, Bharat Bhushan , marc.zyngier@arm.com, tn@semihalf.com, will.deacon@arm.com, drjones@redhat.com, robin.murphy@arm.com, christoffer.dall@linaro.org 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 Content-Type: text/plain; charset="utf-8" This patch allows virtio-iommu protection for PCI device-passthrough. MSI region is mapped by current version of virtio-iommu driver. This MSI region mapping in not getting pushed on hw iommu vfio_get_vaddr() allows only ram-region. This RFC patch needed to be improved. Signed-off-by: Bharat Bhushan --- hw/virtio/virtio-iommu.c | 127 +++++++++++++++++++++++++++++++++++= ++++ include/hw/virtio/virtio-iommu.h | 6 ++ 2 files changed, 133 insertions(+) diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c index cd188fc..08d5a2f 100644 --- a/hw/virtio/virtio-iommu.c +++ b/hw/virtio/virtio-iommu.c @@ -129,6 +129,46 @@ static gint interval_cmp(gconstpointer a, gconstpointe= r b, gpointer user_data) } } =20 +static void virtio_iommu_map_region(VirtIOIOMMU *s, hwaddr iova, hwaddr pa= ddr, + hwaddr size, int map) +{ + VirtioIOMMUNotifierNode *node; + IOMMUTLBEntry entry; + uint64_t map_size =3D (1 << 12); + int npages; + int i; + + npages =3D size / map_size; + entry.target_as =3D &address_space_memory; + entry.addr_mask =3D map_size - 1; + + for (i =3D 0; i < npages; i++) { + entry.iova =3D iova + (i * map_size); + if (map) { + entry.perm =3D IOMMU_RW; + entry.translated_addr =3D paddr + (i * map_size); + } else { + entry.perm =3D IOMMU_NONE; + entry.translated_addr =3D 0; + } + + QLIST_FOREACH(node, &s->notifiers_list, next) { + memory_region_notify_iommu(&node->iommu_dev->iommu_mr, entry); + } + } +} + +static gboolean virtio_iommu_unmap_single(gpointer key, gpointer value, + gpointer data) +{ + viommu_mapping *mapping =3D (viommu_mapping *) value; + VirtIOIOMMU *s =3D (VirtIOIOMMU *) data; + + virtio_iommu_map_region(s, mapping->virt_addr, 0, mapping->size, 0); + + return true; +} + static int virtio_iommu_attach(VirtIOIOMMU *s, struct virtio_iommu_req_attach *req) { @@ -170,10 +210,26 @@ static int virtio_iommu_detach(VirtIOIOMMU *s, { uint32_t devid =3D le32_to_cpu(req->device); uint32_t reserved =3D le32_to_cpu(req->reserved); + viommu_dev *dev; int ret; =20 trace_virtio_iommu_detach(devid, reserved); =20 + dev =3D g_tree_lookup(s->devices, GUINT_TO_POINTER(devid)); + if (!dev || !dev->as) { + return -EINVAL; + } + + dev->as->nr_devices--; + + /* Unmap all if this is last device detached */ + if (dev->as->nr_devices =3D=3D 0) { + g_tree_foreach(dev->as->mappings, virtio_iommu_unmap_single, s); + + g_tree_remove(s->address_spaces, GUINT_TO_POINTER(dev->as->id)); + g_tree_destroy(dev->as->mappings); + } + ret =3D g_tree_remove(s->devices, GUINT_TO_POINTER(devid)); =20 return ret ? VIRTIO_IOMMU_S_OK : VIRTIO_IOMMU_S_INVAL; @@ -217,6 +273,7 @@ static int virtio_iommu_map(VirtIOIOMMU *s, =20 g_tree_insert(as->mappings, interval, mapping); =20 + virtio_iommu_map_region(s, virt_addr, phys_addr, size, 1); return VIRTIO_IOMMU_S_OK; } =20 @@ -267,7 +324,9 @@ static int virtio_iommu_unmap(VirtIOIOMMU *s, } else { break; } + if (interval.low >=3D interval.high) { + virtio_iommu_map_region(s, virt_addr, 0, size, 0); return VIRTIO_IOMMU_S_OK; } else { mapping =3D g_tree_lookup(as->mappings, (gpointer)&interval); @@ -410,6 +469,35 @@ static void virtio_iommu_handle_command(VirtIODevice *= vdev, VirtQueue *vq) } } =20 +static void virtio_iommu_notify_flag_changed(MemoryRegion *iommu, + IOMMUNotifierFlag old, + IOMMUNotifierFlag new) +{ + IOMMUDevice *sdev =3D container_of(iommu, IOMMUDevice, iommu_mr); + VirtIOIOMMU *s =3D sdev->viommu; + VirtioIOMMUNotifierNode *node =3D NULL; + VirtioIOMMUNotifierNode *next_node =3D NULL; + + if (old =3D=3D IOMMU_NOTIFIER_NONE) { + node =3D g_malloc0(sizeof(*node)); + node->iommu_dev =3D sdev; + QLIST_INSERT_HEAD(&s->notifiers_list, node, next); + return; + } + + /* update notifier node with new flags */ + QLIST_FOREACH_SAFE(node, &s->notifiers_list, next, next_node) { + if (node->iommu_dev =3D=3D sdev) { + if (new =3D=3D IOMMU_NOTIFIER_NONE) { + QLIST_REMOVE(node, next); + g_free(node); + } + return; + } + } +} + + static IOMMUTLBEntry virtio_iommu_translate(MemoryRegion *mr, hwaddr addr, IOMMUAccessFlags flag) { @@ -523,11 +611,48 @@ static gint int_cmp(gconstpointer a, gconstpointer b,= gpointer user_data) return (ua > ub) - (ua < ub); } =20 +static gboolean virtio_iommu_remap(gpointer key, gpointer value, gpointer = data) +{ + viommu_mapping *mapping =3D (viommu_mapping *) value; + VirtIOIOMMU *s =3D (VirtIOIOMMU *) data; + + /* unmap previous entry and map again */ + virtio_iommu_map_region(s, mapping->virt_addr, 0, mapping->size, 0); + + virtio_iommu_map_region(s, mapping->virt_addr, mapping->phys_addr, + mapping->size, 1); + return true; +} + +static void virtio_iommu_replay(MemoryRegion *mr, IOMMUNotifier *n) +{ + IOMMUDevice *sdev =3D container_of(mr, IOMMUDevice, iommu_mr); + VirtIOIOMMU *s =3D sdev->viommu; + uint32_t sid; + viommu_dev *dev; + + sid =3D smmu_get_sid(sdev); + + qemu_mutex_lock(&s->mutex); + + dev =3D g_tree_lookup(s->devices, GUINT_TO_POINTER(sid)); + if (!dev) { + goto unlock; + } + + g_tree_foreach(dev->as->mappings, virtio_iommu_remap, s); + +unlock: + qemu_mutex_unlock(&s->mutex); + return; +} + static void virtio_iommu_device_realize(DeviceState *dev, Error **errp) { VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); VirtIOIOMMU *s =3D VIRTIO_IOMMU(dev); =20 + QLIST_INIT(&s->notifiers_list); virtio_init(vdev, "virtio-iommu", VIRTIO_ID_IOMMU, sizeof(struct virtio_iommu_config)); =20 @@ -538,6 +663,8 @@ static void virtio_iommu_device_realize(DeviceState *de= v, Error **errp) s->config.input_range.end =3D -1UL; =20 s->iommu_ops.translate =3D virtio_iommu_translate; + s->iommu_ops.notify_flag_changed =3D virtio_iommu_notify_flag_changed; + s->iommu_ops.replay =3D virtio_iommu_replay; memset(s->as_by_bus_num, 0, sizeof(s->as_by_bus_num)); s->as_by_busptr =3D g_hash_table_new_full(as_uint64_hash, as_uint64_equal, diff --git a/include/hw/virtio/virtio-iommu.h b/include/hw/virtio/virtio-io= mmu.h index 2259413..76c758d 100644 --- a/include/hw/virtio/virtio-iommu.h +++ b/include/hw/virtio/virtio-iommu.h @@ -44,6 +44,11 @@ typedef struct IOMMUPciBus { IOMMUDevice *pbdev[0]; /* Parent array is sparse, so dynamically allo= c */ } IOMMUPciBus; =20 +typedef struct VirtioIOMMUNotifierNode { + IOMMUDevice *iommu_dev; + QLIST_ENTRY(VirtioIOMMUNotifierNode) next; +} VirtioIOMMUNotifierNode; + typedef struct VirtIOIOMMU { VirtIODevice parent_obj; VirtQueue *vq; @@ -55,6 +60,7 @@ typedef struct VirtIOIOMMU { GTree *address_spaces; QemuMutex mutex; GTree *devices; + QLIST_HEAD(, VirtioIOMMUNotifierNode) notifiers_list; } VirtIOIOMMU; =20 #endif --=20 1.9.3