From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751462AbdFZJ2w (ORCPT ); Mon, 26 Jun 2017 05:28:52 -0400 Received: from mail-dm3nam03on0064.outbound.protection.outlook.com ([104.47.41.64]:34784 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751353AbdFZJ2n (ORCPT ); Mon, 26 Jun 2017 05:28:43 -0400 Authentication-Results: lists.linux-foundation.org; dkim=none (message not signed) header.d=none;lists.linux-foundation.org; dmarc=none action=none header.from=amd.com; From: Suravee Suthikulpanit To: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org Cc: joro@8bytes.org, Suravee Suthikulpanit , Joerg Roedel Subject: [PATCH v2] iommu/amd: Fix interrupt remapping when disable guest_mode Date: Mon, 26 Jun 2017 04:28:04 -0500 Message-Id: <1498469284-85652-1-git-send-email-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [165.204.78.2] X-ClientProxiedBy: MWHPR1001CA0035.namprd10.prod.outlook.com (10.174.165.48) To DM5PR12MB1737.namprd12.prod.outlook.com (10.175.89.142) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d6e42b9a-5634-409b-9b63-08d4bc75bbf7 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506067)(300135500095);SRVR:DM5PR12MB1737; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1737;3:95MHwMLvmRsO0LQaOz+RZKfLCq4PfstfLGFe87o2qXdE46JSqCRcDrInN+lGKefXxYF3cH8b0vF7WWx2Onc+lTqcdTbQKHSjmnRO1y0TUkdssh5W69VkvIoqx9ns6ZCBhqjverodkd51sNmM0WMki7oJ3dFVsydxrBW9kZ/GI8TZFGeSgh5VZ1sAfVm+6sSxQmHDkr2FANMTMIQz7NEtf8qXvp/Gk4jblVlpquSAnoqzRUEfe/G1O/Nt2C3iko5zXfrGEy2v8uYkl+/kMRh1eVg8ryWNoMJnCMX7eeSo+kCzxdmj3qK36zKNoTkeV0WREdnk8kNNIKWtHNyQx1vdo3pg3KfVg8t84yl0ndjL1NoOIJvPB7yysptsMXj1vuvv324vLrX/CIfSoECCTUqCiKakGC0oJbn71mTpQAq565j+TD7vv3c0ypTNEV6YNBE/NpPyTyEnkjGi14fD9i17M6TnauXvhIUBxyX0BbY4eSSBKpG4e56P4djSuF5+FdbrLF6u1WfxRpJykqFjUKWG0c88/ukabQPtPZvty2jjhXqQz0nwTwX4hd3O1U1p/oTAQpwWw2CKZ+QKWlSa4Orhjbq7MH9ta9MrSkld5Zsg7xmbcCwuUUGfrwsHWDtiIRyEPqD6UhbJSCAIWezvKuk/0dWsJS9IqRyv0oXGS+p8nWw7hGDzmaPwFLnCdQYeAdGDtaXQgPqukcKUcu1cZ0baAn7r96YSQd3r4P/MdvMhGulVJyg3KMMY+Ryp3GNrNDVRv/cKi2Pv9MGiBZPF/eG10A== X-MS-TrafficTypeDiagnostic: DM5PR12MB1737: X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1737;25:5grG03WINmJhJnX2It98+ka9x3HsmRYH1yvS7e0PDgzZN+zIWUH0iLcGZW58HUO35HCgqLaAE4bf4xaGQlGtJ+sJsFxRKY4Q4cKoxGDIXlcRYDSor++dggurjWJ2lqM+5jn+DZCLfQqdsNkUtc+koTrkebzbltfW8PZ2QP+Lc4eyHAZAC2WG8jOjO/IQBRrd2lwjLBs1cyJNHltkgTtdRBsLFGz1Ep8Yap4Kc1s9YaXBnZF5wdysGcaMyzOjmNJdnOI+bJ6T83uRqIsLX+Avg5HTbkXJ+2AfYS1firSHxnBUNHa9vHQjjrD53Q5E5isxgZaiYLkZwpXRszmRhv7sWXZY9rVeot7jsw3OgkJMdlLWdTN5EKmVspwSxXRcgKPllVJeLd/lfh0nPCZcFp72GAwMYJQGl/URGY9+a9XAokw0U8hO0DAzEwfzAIUj13TaHaZq7wAnIIfNwzEheBM1HuT6DVOOl+Qdy6LReek37B6aKWUtyABI8o5KZMoomxsFuwcmYijg6RIpaObKHd/+EGoN/u20afT23RUeVMUyIJMh8oIKkdCFZB8s2zQIQL5OfuRsezVRD7GMMtVo9AzHykUKCUtaWAbSPwHemfHNhQc1zZ+xylsP+XgpLYWmJXu2I6LX18qseNTqSfhJKsWucKV3z4l+gJugZevUyFsPDBAQDAI+jwKzRRiNNg3JiWeu2TVCSoPle0eoOXY2qJ0siU5NUSBsKY15clLUKD2t1KYT1SCkXdEADd8DDyI49qnYBzFmr2Xgh0Ks/H7iYNQpzRWbC1dwr9w/YUHpxtLav6CaZd4fkbrCbHgg1GhaBOwOFVKTI1RqpkPcbeOkW5Z3CqxAr9Oen0LFK1xuuBNdZXiOJXUBzweLlk3oHSaXNB+quDtqeLxYMoKzbQkseiNpBPb/iKd+NEMc2fXlqMspFYo= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1737;31:VCEdX+l7zgfTsvW47PMPyxPrqfn5/rwtRm8tQybbbtQUAbPyiGsIQhgKGikZ2M7ZD3utQKA87OBMf1h3DFKD+rl1bwOwXSWIr1ZTcxcQwYcAVFzUEDNaxcAd586WJDDvSTiNhbnK1scjFEowjK9BgDfxx1J/pfsnyduZwNo8RTAHVK+wGdJ8kP/LJLRblqBNiG9IZSZCRDWGWj3LPnmQJPuW4/z+aabEOBx3OnuTJSefc4+WRv+K8N88LaiP8zAGsZUhaGYGsLYYQ+4WkGwbJ6feESJiZfe4DbilUBXp+c+xrZ9w2uGaO7TZz4uWkleJ2rz2PJs2GFhTg+GTO4P17DkToZcFpFLaodztp9Mp7JYCf0FSoQ0kE2Jov8+6n8ln6gW7HfjOTBOVgiDMXqXKiarNg2HiVu9Gv7yfxj/Ez5hDuzmLap5aY4apPP3Po5U07AHAfSVejBe7s3GI4OOyRPg7ZwC3Xpq0ZyQNlM/iVlcwJzWGiaeBFvbvTxUvUehT7Fch5Df+AluLi+bNoov90v3vBV8vmrXvSE7E98TnT+BCg/mVKCkjusMQ3kmm3ERLkg3yWd21CrzlqPcOdFr3Noms3tGapFUSG8+TAYpPM99n3KbQTkjq9xyzNJ/pBYSiLfOMY04eXtJWJpogqlxYmWZ5nMojyYy+wPA9Ak/Fpps= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1737;20:DBDkh5SjykzD90UH17CZh4FP1UofAYkD2i/Z8glXRoczHb9MTTGZJxy984yI7akwAAgeIea0YRuDMUnXogU1edns1TfeqQxRFuW2ab5Z0BB8RJ0BcUEE7e/WzfGL4Im1UXCeJpcedgNjqQx0qQzfHmn6rEnztB05R6V4UVbS+sSyTLiy+eGfOqNZ/J0XCiBpWxUPpBe2jDfjyrbIwOeyNBdlxtdCnrCc3vwyJ7g7MyzzIcu/1rt7M9B2RSjsRXunMML6zZFp4CUbpHT6iTP8Zi7kP30vgLe8mudAtdVkqyANhZ9HWnQ/VWLTiua5k287N0pkZUlarNX3RTBz4uQ06aGfaSAURjI9GmffWLkBBSnuwit8SoayuP/ZO1VgzuY5B5knARahcwOdf7l5pyBzi3tpHxPwitXh++U/KXhp9uywB47SuQhTSuw/T9vafXfviInevDRlPUWxRQaxzW20CRhbzBD0t1YDmMY5mOozB2hwTvvIfPsBcY593QlZYK88 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(20161123560025)(20161123558100)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM5PR12MB1737;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM5PR12MB1737; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM5PR12MB1737;4:QyBTYKsi/il3Bzaw1u//70+O9axcOwIEuU9W61kNok?= =?us-ascii?Q?P6wj/Jo19wE9vZflgtGuKLiUHBi6KRAkdHMN0IcSlcvJozsyehRT0rumtck5?= =?us-ascii?Q?XfVCr7PyxE3aYs64LLLOWcq0O2mv2vpm4NUbA6j5dOE/bzm63kQ8pMpeeYXM?= =?us-ascii?Q?mI+ZAr5i8unyFJXY9hEjVpI6b3fpM5JnPqXidJTXTkf8OPrZ44Ve1ZG/LIo3?= =?us-ascii?Q?VrtiX02ji2F85cLRzVrq9LJuZV5g4GYBZL8UWrV9PfbkwUxrkFY5dZwAgtsn?= =?us-ascii?Q?X2K86F/5usUJ4BHjhwOB6e2Zi/rWXu1f7JHVlv26cQv4gHnc+sg+9Aig/VKr?= =?us-ascii?Q?wHJy5m/NwgB7hxh3oXvBNX5en0WPu2hUESWSDWIVu/KQPiJUB2ESPC3w3SoH?= =?us-ascii?Q?1tlyTRFBUl35rVOlJzoO0NcfSD7NuHC/Xuo5WyAPQDawG3bwxuHvc6djieeB?= =?us-ascii?Q?PzQ5Xqu75Y08A/I0AfXzlMZ/RWD5f/8oWznhhi2smx/DLj+aUuQ5vG0eUfdP?= =?us-ascii?Q?42xKlrX7YQYV9lnzaUBB7xiexUOhRrLXVkIzSRPAUprxNFF6WC5mvqSZsw6k?= =?us-ascii?Q?cUQVbZAd9EH/HX+ATXJS/XhxrM5ePHDr0hVjxKSHwv1R7j/8etATg9pzhdMH?= =?us-ascii?Q?NX+asyJOP0/pVMrAeqTEQd8xzQqKlHAwpTbBxp5lOMmuSfaq/Vhq6zTf0TgO?= =?us-ascii?Q?IKUlcDKKfJ7HEEyZHoeaBkESnf97CjQUcVf+U3EiQNfVhJ5Xy+JDpzpziPBC?= =?us-ascii?Q?t/YTGKgzvUvXrxjkiQFXLoYSWsOKq/v/zSnLkLPxz5t5ybaQxmlWKNzeCy5c?= =?us-ascii?Q?DGlS557P7SgOLQhoJGuCzGaFufaz0gURntwJwGu3VVlryOWq1flJondeFOj+?= =?us-ascii?Q?QfzUMeNgn4B3AJ8kTjU/TK7ZYVcMKuOYIYwUrfNVk6PBAaTZAtS7HxeTUnRC?= =?us-ascii?Q?E7h2NJkHY1pE+47EBELdbRb99CNzctrZQ8scgOV7nXvxRIIZzRmWfHMp0vr5?= =?us-ascii?Q?51AzV6GPys7RtbOUqkCl6PAbSmGtMQv0MvWkZX7g2FaelI7b3m9gNxNbuGTE?= =?us-ascii?Q?OQACWyJelvbRD/TUMec+qu6Xhgg3gXAr4na4qtVcT2J47uOQXgnbbpnPHr26?= =?us-ascii?Q?4bMALyv+Mied7it6uqraL4watOiZ63bJGR7SnfOL5BuaFU2TTDPAYgsEGonX?= =?us-ascii?Q?FuJibZ/EMIBqM3ozOLiHGRYJq11twggKCXz0frSMT6DC7znGDb89B681EemR?= =?us-ascii?Q?WzFnFjM2S5LjaYJ2E=3D?= X-Forefront-PRVS: 0350D7A55D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39410400002)(39860400002)(39840400002)(39450400003)(39850400002)(8676002)(25786009)(53936002)(50986999)(5660300001)(478600001)(5003940100001)(6116002)(7736002)(2906002)(81166006)(189998001)(50226002)(86362001)(36756003)(6666003)(42186005)(53416004)(72206003)(54906002)(38730400002)(305945005)(110136004)(50466002)(4326008)(4720700003)(6486002)(48376002)(66066001)(33646002)(3846002)(47776003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR12MB1737;H:dave-rhel73-ethanol.amd.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM5PR12MB1737;23:qVmhyJQg+ZaIzTA8bz6BMmHZqL5FuD6Vmvcj2Mv4W?= =?us-ascii?Q?OsSCFDztol5WvNQfb6Dl43zHverGP6R86JJhBiBuMBEeCSluoChjco5tGkEg?= =?us-ascii?Q?/bqeBZcNfmyXAPSwnUq2itEI2e1ZymBCPQHDqSDAXBdxt5M0HOhiqIo+Py4M?= =?us-ascii?Q?VjR+olFDqsQccIvTy01PJPUgs7LEMJG0+vtdfddHzUll5aizUT3MxcQAuUxP?= =?us-ascii?Q?keN0SgY4gWePcEqgTe3JgdBI/ZC+uyjB4DOBCK46u8kEI+jsWGIzXzq06Bc6?= =?us-ascii?Q?/zkvsErwZqAu2Hk0aPeS9vmD0iMYtb62I4iUz5d5fQV7k8eW1APezMqKKAje?= =?us-ascii?Q?viT1GtL121VIX0ocESiyVq7ojom2boFjmFTQHrbnP6KceKSZmSe2NPXZR9pA?= =?us-ascii?Q?mvVF9GqfPSpcm9Z1WyA+EygENtLrYRlgRUXHeU94hPwqWmlDucP/Q1WIZrlH?= =?us-ascii?Q?tkQIUDKT4Lvlp1DjlrhL7IDQke7PSI0RWiLwSUa+b8EB+xqr2stjlh0uqkiW?= =?us-ascii?Q?mr+9i7IpC/axKa9w54cNcmYU9H5fSzmVh0Gfp4iCA8eHN44+OoK0yTTVK3Hg?= =?us-ascii?Q?ATEtOtjmOrgWYZB1HMpGsTJeDoenMEQG5pLMsfPz+3UarjB8541nWM1EP3fN?= =?us-ascii?Q?nbLp7tLzT9o9E66P2LrdTOd1+Qm7I/rkaHFJe1RAgisTJN/VtooPT9U7Wn5h?= =?us-ascii?Q?7luDzkOiDHLQb5KdUwdCPMx2MF11Sg3CQmQoayJBhzUkOH8SlssdaO2GP2fm?= =?us-ascii?Q?xnZ/Bkn/fp8PlbdKFVwYAHGWiBxky7PeUmMR9Rww9BHXEnyh/8P/9cmEQvj0?= =?us-ascii?Q?jcz0QKEktxNB+SLhxVTj9oY8r1d1PpLyY/hw9VVsRmJcZ55kYCOyAfUxmgvH?= =?us-ascii?Q?a1dvFI12NMgJ02cg9MD4ocHY1dP29lVQ1OgTf8HQ6p55ASJmzfY+X+hNZroN?= =?us-ascii?Q?373goHhzbR3QrHBep3IxGx/lPaLwWLb40c/WDa5xEmU8J7r7g91EoBCKz0Uw?= =?us-ascii?Q?tTBEiLbSBkwi8jaojVWc8yV?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM5PR12MB1737;6:w13t/oR1G0KxwhwrL4ADanLuM9UxpWFl1DC9N2olVd?= =?us-ascii?Q?XqMNZ6d5UcrbLNTHnRkr7/z4F0P0GdAQTYRINmrwpXypW/wFMrqC6gnGCrkf?= =?us-ascii?Q?jtJZ01GMwYnHJ6lj7VXcjWvJXNv8iz+qv6ZKY3Yj2J7tt18yvkIhHz0FCCJD?= =?us-ascii?Q?EMKIzh4H7WaWNT0LdEmqd+yjoxkhinYkV9heR0mID2KlUKNLNXg449MB3GNa?= =?us-ascii?Q?NU1MPwIjtrFWFI+4IYMbxIYwScFJkmjEorQkml12EjczmBPrIf9vTmkPDrkq?= =?us-ascii?Q?8HWmnUFVZUu8in1VnZ/sUjkKDFVGY5oGdOwr9aQ4nfy741OJgb0HiCh8pXxb?= =?us-ascii?Q?kHhnumSGVL40gbHIDtDvYtxnnD7MNw+wnK6Db8IKRWltpk5aUbMWkApPFp9E?= =?us-ascii?Q?opxuYxdUPQgF/9wHYwkcRKTjdhgw5RofPVrGOon91a4SB7YXZEKE6sJRB1MG?= =?us-ascii?Q?fsiUrHUFiRjvnnc40HPx6ZqTQuBwT9/joBQAcBlSNPfqNx2aNMwVcZ0faoe8?= =?us-ascii?Q?3ZIMXKTo6m94nHuo0ehh2+Ir17PuTzX/m322G73ZWzwcyt6vBu1S90FVVDz1?= =?us-ascii?Q?eI6inlO4SeFckpAVs/cQAjS/Yu2UIhEKWGDoArPMwVgh+heUDvxEgQGYaHTZ?= =?us-ascii?Q?doJ0QBq0mgDLosSSP8117J9hDxOAVm+cH+dKn1qESaf5t+51j/36eJOhlNed?= =?us-ascii?Q?JnpzcgmbYMW1ZMC/hnBc20UeXvCvziuWr3b5vfnxcp4NniGnEKiag4roHAFX?= =?us-ascii?Q?Xyi+vYq4P4KiaUqrWMzTQsAYJUJBRvO5cu/S4zruI8/OaNGyOL4xeDq/1S+R?= =?us-ascii?Q?HUTaK2uzjTZueSoKhNFrT5tstys4l9P3Nh/OzZ2ImknJWXWA+UZ+eSauMm99?= =?us-ascii?Q?fDP6r6j5vE8Iu+u94wuRk95eA95UN8LN321vPHWkK8g2pJTY10TZcCG9T9Qu?= =?us-ascii?Q?Km/nadxnvONwQnYHZ7Cj3m19nHyKDmn2IXX3O/DANtX+NSydPbY2lc+hdl4T?= =?us-ascii?Q?lwY/+u9vIin04Pa0tlUdKL?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1737;5:1+ZGWdJqU7ANrs6NCKnUi7yZaOMxaqc6Xe5GHnQD2pVyi3X/CrRETAKHHdTRwhG5gzeY/npLDrJN44ZJPOI5dlf7fQr9Hth+3swWQWqNAesmKtQWmsNFmPJPtOR/d8gzqoK3odTwdBOB2A6iX0cSQ7Vfd6Bh6dZsw3R6oKukxwHA/T8BlBfLl2RscAuaKs9h0s5M/Y5LGE2a/ljYYdxNQpp7UnUGKSMOdHqD9ytmh9tqZT8EDck5qx7BjHN7uW4Iy0LxXmGDE4GIZ9s2uBzdRmiSWYlRXqXIsC5xkvYWAuusXp/pYu6oFQXLgHBG6kCu38rSenAxbe2x9DzRGwOZhglmVzAic7F3kOQPkamqfPw+ohkjN7aFaSw+vPpTu3c4cQa5k4Wx+OtoJDHZz4RWzt0JUBrnGXCb2pXGbrcZyAaP5ecfiU44PbIN6eOhDAGXEvznnz9OwF4Ytxe95pAAnYOVX4LdHKXgQq29my8am/4tazHmyxpvs0KZfQV5Uhtk;24:orXzH9YJ4droHBYrU5Yw17yceaiLVSj65WWX35aQCYr07VfR6njBa7rLJ/zEDl3jaOiXCveQYK9yQhvPgc87J1JeNkP45NRvF6fFTXz8usc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1737;7:w9TidSVFxJ18eGFxAgAzaQXIaVuPzfaoP6WULXtzhoLN2TKEAxyQXLvswWXjvKh4r4k2I+jLHDrZwHFE4zl1szb/IHH7mWVc7BhIydrs6+sXSB5xCEU4leF/znIXNzl+Fp7MvOD6zM1mSai7fquxiMe50uDYs9x1GDiiOlwJyrNb81L1c6IBuMTkaHZHRqccuVvL2pvPtqe4oqb9cEzPLgiGBJIA68jtfRVvyg2q4IP3DPr34pM+saClxljlffiO3OaKOYKkH+Rp+HIZ5iTVAs+G0Wz58enu9GAIC15QTZ0PQxPPLpG2NC3EeQ73wpymW7xAuHc7CbbbQd4TuA6Dxg02sLha4KJUkBZkhqp1A5/aeBdz0YWo5CFpsGkkZor/lQIVpbNCetpIHSyZIGOXP1UHdsSpceBjKR4EDhLMkN0PdJL2Y8UZzotzmh5hQxmj+6Rl8uqdvSaDLH3HHpmaFV1kP5ltM1frTZZ13IEHjIQ4bcIE95RVnVX3KgOqiYhCNu0/u+AsWjsAIrli90VzmOGjAGjJe+x4o+ptItu7j6q5ZdDsIqnFspsk5nw198hc516pJcqsRSmQa/QWzmmMwAkGyjtF/3XZ2/QY8jNx+A/E6sFrKnNuRjeUzG9DYSQbyzfBeMoDpXLaC9YXGW+rKj/OdcotYyIebYHaf8bf0CEMCH+mpF7c4QGDN3RQ5Pe7QRBpq4AhBEFn/r5AUNgXuIAzum3DNVApWKoKuqIr2YXCirVdy91UH6PfeQv1+VznVXRlyn4ew4eISezQ6D4ZVbHJxT29T9cj18SeF4Ry4N0= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1737;20:fvdW9BevSyMCesRSUagZJ+BnRavnlYBXlIwHLvio9hAdWD845IqqlVk+aFOVyxZlVXNRN5dEuZgG80YcWBpcVENE/ygeeD2GpCqmKbmY7t/+GDewC+09jFhKm0D6NomOoG7KBnIfUinzlcr+jhB5xNEwRb7+CPGWDXNDkEbpuQmeswKjVVIkHODLcWhLnB5ABXeHpZWnswP1k/cboL6LIN/Lhvg85DyYq5CDg/j9XuVZr1dSbHnv2jVICnIQ9pmI X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jun 2017 09:28:40.8407 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1737 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Pass-through devices to VM guest can get updated IRQ affinity information via irq_set_affinity() when not running in guest mode. Currently, AMD IOMMU driver in GA mode ignores the updated information if the pass-through device is setup to use vAPIC regardless of guest_mode. This could cause invalid interrupt remapping. Also, the guest_mode bit should be set and cleared only when SVM updates posted-interrupt interrupt remapping information. Signed-off-by: Suravee Suthikulpanit Cc: Joerg Roedel --- Changes in v2: * Fix compiler warning of unused variable 'dev_data' in irte_ga_prepare(). drivers/iommu/amd_iommu.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index b17536d6..3f25d88 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -3879,11 +3879,9 @@ static void irte_ga_prepare(void *entry, u8 vector, u32 dest_apicid, int devid) { struct irte_ga *irte = (struct irte_ga *) entry; - struct iommu_dev_data *dev_data = search_dev_data(devid); irte->lo.val = 0; irte->hi.val = 0; - irte->lo.fields_remap.guest_mode = dev_data ? dev_data->use_vapic : 0; irte->lo.fields_remap.int_type = delivery_mode; irte->lo.fields_remap.dm = dest_mode; irte->hi.fields.vector = vector; @@ -3939,10 +3937,10 @@ static void irte_ga_set_affinity(void *entry, u16 devid, u16 index, struct irte_ga *irte = (struct irte_ga *) entry; struct iommu_dev_data *dev_data = search_dev_data(devid); - if (!dev_data || !dev_data->use_vapic) { + if (!dev_data || !dev_data->use_vapic || + !irte->lo.fields_remap.guest_mode) { irte->hi.fields.vector = vector; irte->lo.fields_remap.destination = dest_apicid; - irte->lo.fields_remap.guest_mode = 0; modify_irte_ga(devid, index, irte, NULL); } } -- 1.8.3.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Suravee Suthikulpanit Subject: [PATCH v2] iommu/amd: Fix interrupt remapping when disable guest_mode Date: Mon, 26 Jun 2017 04:28:04 -0500 Message-ID: <1498469284-85652-1-git-send-email-suravee.suthikulpanit@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Joerg Roedel List-Id: iommu@lists.linux-foundation.org Pass-through devices to VM guest can get updated IRQ affinity information via irq_set_affinity() when not running in guest mode. Currently, AMD IOMMU driver in GA mode ignores the updated information if the pass-through device is setup to use vAPIC regardless of guest_mode. This could cause invalid interrupt remapping. Also, the guest_mode bit should be set and cleared only when SVM updates posted-interrupt interrupt remapping information. Signed-off-by: Suravee Suthikulpanit Cc: Joerg Roedel --- Changes in v2: * Fix compiler warning of unused variable 'dev_data' in irte_ga_prepare(). drivers/iommu/amd_iommu.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index b17536d6..3f25d88 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -3879,11 +3879,9 @@ static void irte_ga_prepare(void *entry, u8 vector, u32 dest_apicid, int devid) { struct irte_ga *irte = (struct irte_ga *) entry; - struct iommu_dev_data *dev_data = search_dev_data(devid); irte->lo.val = 0; irte->hi.val = 0; - irte->lo.fields_remap.guest_mode = dev_data ? dev_data->use_vapic : 0; irte->lo.fields_remap.int_type = delivery_mode; irte->lo.fields_remap.dm = dest_mode; irte->hi.fields.vector = vector; @@ -3939,10 +3937,10 @@ static void irte_ga_set_affinity(void *entry, u16 devid, u16 index, struct irte_ga *irte = (struct irte_ga *) entry; struct iommu_dev_data *dev_data = search_dev_data(devid); - if (!dev_data || !dev_data->use_vapic) { + if (!dev_data || !dev_data->use_vapic || + !irte->lo.fields_remap.guest_mode) { irte->hi.fields.vector = vector; irte->lo.fields_remap.destination = dest_apicid; - irte->lo.fields_remap.guest_mode = 0; modify_irte_ga(devid, index, irte, NULL); } } -- 1.8.3.1