From nobody Tue May 7 18:20:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1dmarc=pass fromdomain=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1611659308; cv=pass; d=zohomail.com; s=zohoarc; b=VFbJmWF2cCMfwxysxVwVIAD3Al/AvNbW1I7fmtL/JFZpfqvmxYYyR2JRGGz4BnvNKuhrqg/HaQBb+adXThk0+Uzm6L2bpASeE0ItN9hC9c1pcJC7P7IFy66l7HcM0rzarUJTqAayJEBU4Sq6sPr/UadjhpLG2gPa8o5fh+eHgWo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611659308; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Tj9G+ZPOM5GhSqTrORF1JHjlXTqOQed8RxWo2oyGvwA=; b=NLHPEd/coqRNLxOWhj6ytSWhRwpGGzryIvu4dCT1+Ii+8goEWHQCR0FUQ+dNggPM1b7CST/Qe+TBABvOf97YG4mceRDNIEXQs+a75DUXGtRkLmgGOdJJ0ZkMqE+gYClplHf3vyW4WfIYNbZZrrNd6BB0sNjnaR+8CLFbXYt+tio= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1dmarc=pass fromdomain=citrix.com); dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1611659308600484.88983935561237; Tue, 26 Jan 2021 03:08:28 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.74840.134559 (Exim 4.92) (envelope-from ) id 1l4MCi-000196-O1; Tue, 26 Jan 2021 11:08:12 +0000 Received: by outflank-mailman (output) from mailman id 74840.134559; Tue, 26 Jan 2021 11:08:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l4MCi-00018z-Jb; Tue, 26 Jan 2021 11:08:12 +0000 Received: by outflank-mailman (input) for mailman id 74840; Tue, 26 Jan 2021 11:08:11 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l4MCh-00016Q-AW for xen-devel@lists.xenproject.org; Tue, 26 Jan 2021 11:08:11 +0000 Received: from esa5.hc3370-68.iphmx.com (unknown [216.71.155.168]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 07184b16-528b-4e64-bb34-f9e1db1eda90; Tue, 26 Jan 2021 11:08:08 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 07184b16-528b-4e64-bb34-f9e1db1eda90 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1611659288; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=lBBA+ILCJKSjccE75J4kusj07qdI9NeWRBlGxlrbzN8=; b=cRkY6+1PiPfjJ24ZTUDDKsDQANyyXgS+X6A8HsYzzjCTWeGihIcqR2mr z/A0a28n0v4ABVBwZFw8rWLZyOTd+rmvY6kl+itsxYiYa56q0DPAyYcRM E6KHB0w6jASasv1DBad2yUndyIZbvYCO8Kosu++N6cDzDfrn+N+RxqGVX U=; Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com IronPort-SDR: LEkt/X8pwcb8RL5WYSVmkgThUhlvnObBn1YfV7yX3tnijZa4FUjor8P3R60XyZjtw09ea05iZ4 QEad4+LjOWkCWt6AVaCJZndTKpHRmuz6Wl1vsvxc+Dwe5Ws+UsR/Z0gG3WZ26xsxFaQdzjDGCM aTFFgbA/XXTA2WlO1Uvg2mXyG5V0XSE7AcMzb6DREOxrxV/rJxxIsopOI3Fxkgqg9f/KuteCmG GUL8NOoc7PRh5hOCk96Om0j2nv7BUmI20Kv9I1lGrf9cXtWqCMuRoz0/DrVZX0TjFBUcFUtyQ6 YKA= X-SBRS: 5.2 X-MesageID: 35823562 X-Ironport-Server: esa5.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.83 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.79,375,1602561600"; d="scan'208";a="35823562" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C8dIJmvb0+H6nZpww90fGOav2D+MPpfPFT82oKGWiLSPTKjL0162Ys53S4MS3ACYnmNF37ePlmnGszj9zdQJI88Gs1KrO+x8HE/nyFo0f5kdWuHwjYXvOgb29CFG/CrQUShaevOBCfWmbunBmlZ28ce3Eyk3s4aOPfMCMX4T7Su4DKYIbKbRew4XziMRa/0Nq86Bd5PneAXOoD4CXhVZuIaEAuS7XDWKV1K/eZvoTfybQ3pl+roobvS17OsUgcdSmRuIW11JODA8arhjF1HbDNCMGuyZTVb2n4ne31+Kqt8ylLPZIX64fuhj1JgNotlebXVPJTucb06iPdf/hxbTew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Tj9G+ZPOM5GhSqTrORF1JHjlXTqOQed8RxWo2oyGvwA=; b=jIkvadiPbaDV/X0OrScfch1VFAgaoL+kk0YxS0ZtNHC6uk/gJwbReb4XnEqetH3ids5Y/qucDaoCgyXvoR/Rg1AI/ydwQqv/e1snU1gDhh3PQsPaFwyUitnV/Xu2gnH9t5HITYFsbzUfdwhoD4kfM6QMjikvDpcnhBp9LzfHg3e2liL4QDFyvAGsYUBLGI6a/5Q01/2ud6sGlrXswE+/AuUP9yPxoLxKJtS5cIMF3HLm6cg9URp+RReonotrSe5jzW7qom0JgQEJezfB0CIEilnhh7nTX52N4TlTsjyoQovvnElRZ7y2O/S6QSAP7AHCXtOkoe9aPKRavG8wQYwY7A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Tj9G+ZPOM5GhSqTrORF1JHjlXTqOQed8RxWo2oyGvwA=; b=vjy/aO+NV2spn01ZfJBQVEQt4AK+r0imH5VM7mu2tE+PeebvquRNqOgVXboCMdqW+8ythRPvKCSLglz37AHSRr+T4WAa/rRoQnFLrQ8Ys/q+nKmnR6s6igvJVDBaMLCZwZzTkfxrYtFZxS4GmQKF08wgJtByTzb3nUIOZlJn1Zw= From: Roger Pau Monne To: CC: Roger Pau Monne , Jan Beulich , Andrew Cooper , Wei Liu Subject: [PATCH 1/3] x86/irq: remove duplicated clear_domain_irq_pirq calls Date: Tue, 26 Jan 2021 12:06:04 +0100 Message-ID: <20210126110606.21741-2-roger.pau@citrix.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210126110606.21741-1-roger.pau@citrix.com> References: <20210126110606.21741-1-roger.pau@citrix.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PR1PR01CA0024.eurprd01.prod.exchangelabs.com (2603:10a6:102::37) To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 88a467b8-44b8-41a7-9ab8-08d8c1eaa746 X-MS-TrafficTypeDiagnostic: DM6PR03MB4059: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7Wstvij75keXt5pcOIOEK7hoYh/qLl0hN63PmBKPGMUOT9cx6+97xVnk72iKb1eNZVzaK8vfc/pIQvhr4RgeGtTsSq2gZr4ibgk1F/vN5BiECDk1TeWWg7VNw6+l+xpw9XEluA2ZSqTkl1CUINxPoC5I1xbF3yZhTWPD3G/njeaNZ4eO4g3Q69bJ5AO7vcRK2cRzLXf5Dxqr6MKeWUF9bneDE3A9s1/Cx4O+OaFUkcTtxvevxfGziq84jGmyEjLKN1QoiDgjN1DHczQt0zNXtssWUAuwthQORhCzNoHREttzh41V3WFM2sjENeJM2UHsieiY2936+u+VNWzBn34oZTu4a7fCv0bRR0ywc/Iq8ItQTCGuZlFe2MbjZ8NULUl72XwyawZQQmb28ZdkxnwdHQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(366004)(346002)(39860400002)(136003)(396003)(4326008)(186003)(83380400001)(478600001)(26005)(5660300002)(2906002)(66476007)(54906003)(16526019)(6496006)(6486002)(956004)(8676002)(2616005)(86362001)(8936002)(36756003)(66946007)(6916009)(66556008)(1076003)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?RnJuV3VnTW1HcG40V0tBaFMvVlNxS2tnSWNwT3FxMXJwbDR0dHFpTkVEOGhm?= =?utf-8?B?Ulcvcm5MS1NNWlM5d3c4N1ZiSUFRYmVvczMvRDFYS0J5dG1XWHJrN002QVkx?= =?utf-8?B?TUN6d3JNcVVEWDVoNjNVQ2lkNlZ4Vlc2SHZXNUFtZ3dIanRXcGY0SEtGMzlL?= =?utf-8?B?Sjk2Z294dWdZRTJyMzhEU0c1NUp3djRxQXpyVWpNS3RUcUdYU3o2KzV4NHBB?= =?utf-8?B?cGJ3NFkvL3EwOHU2VGhOdmdlU0pwS1dEazkxYXZ3M1VoRlg3czB2c0dIc1pi?= =?utf-8?B?Qy9kdTVaWURKUDhnOEhnZnlnU0Z6S01BZEtub0RNdmtjb2FlcmRYdnhlQVhP?= =?utf-8?B?dTgxVW9QeDZ4WXN0aC9ENFpzN2RiUXJmelV1S0VSMXJnN1dIVG5ac3lmanlT?= =?utf-8?B?M0k5WWRxVXJ1SHkzNUIwaWxRbWhhaXlCSkdkbzJHOUx3MFRxek5JY1daVWR3?= =?utf-8?B?VjVnVE1hc01vYUdiaWxDaU5aN2MwblAxclkvaUF5bzYxdTlIMHRkQklFQlJE?= =?utf-8?B?ZTU3Y2E0U2NwOWJwaTA0TEwrR2ZJOWJUdHRhUytaZlN1RmFlVnphNHo5ZHRM?= =?utf-8?B?TzZHZ0RNSTFPbzNxbzdSZ0JQeXdDZ2FCbm4zcnVUamRieDVqem9UOWpUUzBi?= =?utf-8?B?MFpCNll2OVlTWTB2ZDlxOWJIY095VCtoQkdyNGhlQWt6Z1FwQVB4cFJSczJD?= =?utf-8?B?VVQ5eFcrcUpjSnRXWWtKZGREeXpZUFpEckt2Q2VBVmxEQkloS20rSFArN251?= =?utf-8?B?N2pycGdqUmttYVo3UzIwNjF5NkVOWG1MRmg4M2Zoa29raFZwaktLS1puY0My?= =?utf-8?B?bEJRdkpKRDI2VkRUSEhuWWx2bC8wNXJWbUthcUZMMGRycnFtd29LUW9CYXZE?= =?utf-8?B?dVluNzh6N0R0bjBoOW4yWUNtMktnU0FBR0VWMVczaThIODdUV214WmtmbGkx?= =?utf-8?B?UGRTdG9RK0VNMjA1NFV1Zit5ZWdkUm92djNnMUhFRlAxbHJ6V3UxK2ZGKy9B?= =?utf-8?B?dXlFYTExMWt2dVhFcTdtWHZ0TVY1VnhsVGpGdFlCbGxpSHpYQW4yYnBtTjB4?= =?utf-8?B?N0x2VFFRdXQvaXFlRzJVbDJCVS80VHZTZTZ6NUZycXdFZEZmMEJCQ1hxWEdw?= =?utf-8?B?bW5COE4vdzJDREZvNFV5bHFqOTZTMGppRmVtK3dON0xKMjF2OW1UZCtZVWRH?= =?utf-8?B?K3lnV0hzQ0RMVkgwRzZUdUxxVFhsNFk4MVBOcFRkaEhJbHNJalRINGxBMHZl?= =?utf-8?B?Sk1mZnRUd2k0czhYcFdhd01EZktMREJBYm9ncStUVnN5TTU5WnBPaCt0ZGh0?= =?utf-8?B?TXdsR2NFNVRITElJSDNxd2Z5cVZ1RUp5THBvL2JyVWZJL0g3V0ViY2RGcEFJ?= =?utf-8?B?ZXRRWmpaNjVhQWxPREdSejN0Wm9mTmhxcm4ybjdqOFNPTU5MSHhSRVZoK1hz?= =?utf-8?B?M3JyeGtxVVJKbHY0V2ZDNE9FeVVLMWtJSmExSkNnPT0=?= X-MS-Exchange-CrossTenant-Network-Message-Id: 88a467b8-44b8-41a7-9ab8-08d8c1eaa746 X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jan 2021 11:08:04.8005 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XQ7uiG3bHJnbiRh5s+DHJxqt3pqLaX36lTY/0ED9qoCuqyU7F4MSdWsuxuxSXxouosm9b0RNHF0cCqlZNir58A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4059 X-OriginatorOrg: citrix.com X-ZohoMail-DKIM: pass (identity @citrix.com) There are two duplicated calls to cleanup_domain_irq_pirq in unmap_domain_pirq. The first one in the for loop will be called with exactly the same arguments as the call placed closer to the loop start. The second one will only be executed when desc !=3D NULL, and that's already covered by the first call in the for loop above, as any attempt to unmap a multi vector MSI range will have nr !=3D 1 and thus always exit the loop with desc =3D=3D NULL. Note that those calls are harmless, but make the code harder to read. No functional change intended. Signed-off-by: Roger Pau Monn=C3=A9 --- The logic used in the loop seems extremely complex to follow IMO, there are several breaks for exiting the loop, and the index (i) is also updated in different places. --- xen/arch/x86/irq.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c index 032fe82167..49849bd7d3 100644 --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -2383,9 +2383,6 @@ int unmap_domain_pirq(struct domain *d, int pirq) =20 spin_unlock_irqrestore(&desc->lock, flags); =20 - if ( !forced_unbind ) - cleanup_domain_irq_pirq(d, irq, info); - rc =3D irq_deny_access(d, irq); if ( rc ) { @@ -2419,9 +2416,6 @@ int unmap_domain_pirq(struct domain *d, int pirq) { spin_unlock_irqrestore(&desc->lock, flags); =20 - if ( !forced_unbind ) - cleanup_domain_irq_pirq(d, irq, info); - rc =3D irq_deny_access(d, irq); if ( rc ) { --=20 2.29.2 From nobody Tue May 7 18:20:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1dmarc=pass fromdomain=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1611659310; cv=pass; d=zohomail.com; s=zohoarc; b=mok33OOU3GMa2wVNHbX84i3qQyvDdhiimO70BEYAqT7ux67jOU2kxYJChn/j/V5fP61sEhHRReSkItbfwo8L3eG0Sd1PbS5bB3FdAXZClwdhmek2ZtdV07NUWVKEfXA4es8mSfDsOocvvadMnijjjePHaqoCQJYsyNIlxIuEmak= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611659310; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=35r293zGi7bEtyf6UwXJ4l7Clf7lDN7gCH2LmyYvRfE=; b=cJLH4/Wdt+lim37cLpcIkDWlMp2zZoRO43hYe5ooD6Ov4hNtsJzL+FsXdFGEVZIOxVL4MPjXXdQ6mY18htYUQE2tJ5kILVysncqME0hSxLniaBiX9idn4Mwvh3qi9Q8xWruiePRzIiGi49+QQAtABAoZu/tZrz0HeEiX5tYimOk= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1dmarc=pass fromdomain=citrix.com); dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1611659310402483.70821306002176; Tue, 26 Jan 2021 03:08:30 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.74842.134571 (Exim 4.92) (envelope-from ) id 1l4MCo-0001Cs-2b; Tue, 26 Jan 2021 11:08:18 +0000 Received: by outflank-mailman (output) from mailman id 74842.134571; Tue, 26 Jan 2021 11:08:18 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l4MCn-0001Ch-TR; Tue, 26 Jan 2021 11:08:17 +0000 Received: by outflank-mailman (input) for mailman id 74842; Tue, 26 Jan 2021 11:08:16 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l4MCm-00016Q-Ar for xen-devel@lists.xenproject.org; Tue, 26 Jan 2021 11:08:16 +0000 Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 8d6ef972-d78c-45e5-aa18-7f0d3e3da4a2; Tue, 26 Jan 2021 11:08:12 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 8d6ef972-d78c-45e5-aa18-7f0d3e3da4a2 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1611659292; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=NFFOG4gSGPKaBD5plci1+We3i0aKp6X529Jz1vT/8E4=; b=dHkFwsb0bPKj0JmNmBaf9zWnolsfaq8cUCf5tot5BGPJNpMrvU1pvWt2 L0nmDq/vDNy8ll6fi/tR2itoR8zd4hcoVoIlNULC9WSdp/POt1JoFONHK HDVN96znaPN/rCib+BJb3lJI6hoyM8gSOxhOEmFL0rL9VL2FP3VXLOZv9 U=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com IronPort-SDR: /tecgAs6H4UDCV+/njuDxMCH/oRRHd0toI6QxyLZjQUrEHuHJ+A94xapCMbDBK3ThuzctWmebb 6mOzpMG81kkJkuG32bMsgjg0sEFYWbzrK5LIbQPqASsRKafIoY7xIZ/ewcBd3XM/47+KqYYqn4 shC5Nron5349WwpEG6HEGpQojqwHW2GNW/oI4X2dhPJu4YNi6RQcVaFtfwFQnhLS8Ulv48WPB+ t9AZ1qF9fEpM839STriChK0/8uoR8RYfBCBQ94NyUqaJsKodrmQh5WpSAFWyYU1Or4p7dWzBX4 n9Y= X-SBRS: 5.2 X-MesageID: 36062434 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.83 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.79,375,1602561600"; d="scan'208";a="36062434" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HHlkzs4Ym26muNJH4UZfn0PbasHQDNjKjfnRqx9DwP9hphjUIsSVH6sV1Xc6OsgtsX8zsRIZ3A2P5SifHk2SiIMRqGAATj70TBR4TBzfzbz2E/9zvcbHr+G/psN+SCBRWdTDG5wasxqHkVnN/7PBs55A2OKoC2QS3zpunW2ouao5c17foO0xd76YKI+ZEdbvdmKzeVWClcQJLgqJsvdRNSeRPxt521kEuEY1y/Ylic6BlhHNAZ7l018Ju0uzr2vTMgtRZt5VQb1WTH7XS33vTRwV5A6RleUk48S4bMQcvB2Ya//L9C7VVF5K3qCMluan3R1yuu4r9YU30Jbzi10MYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=35r293zGi7bEtyf6UwXJ4l7Clf7lDN7gCH2LmyYvRfE=; b=VxvJHthnt0grba5LtwZhHttBu79zOyrlU7rfclDQNFD76YUxEn1BtgWHW3i/F5ny8KlIUNCLqZmxUE+JsZUMcYUe0DDDd08UP/gDTHxy8Q/esdBkvh7ax2JgFiHfYcrOv1/RzSWjgNaurw51ui6j4Z+8L+oiukweK6tEF3YrJOXz8s7Ri2iBx+XsViCjTyt7x+EZa/BR+d/I3+Vcgxcp2CxgQiJwcdRp6hA+HQCliZh7dHtmtdK8tGZ1YJz9jSTlVPYEKiaNthhq+I2YXB+Rnw8oqA2mUyMjPcHIQ6SK8sQ7RKgFsEb0+O6Gd0LW411dWxEP27z4CGme7+rgaGjgKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=35r293zGi7bEtyf6UwXJ4l7Clf7lDN7gCH2LmyYvRfE=; b=BambPaF4Q44P8ByC916lNXpXYw9ROYE8LFHzfVFDd4KEeML6MDQZLsnPM33AMTqd8gjSH2RukBgP8fGZpWXRlenl8mENeOvm7RDgg2O5wr0aDhyu/Gn80pLcnc2NDcaR35JwzV0HkVSd6EmLLvm3cr54c8x9a4Pfa6LY5tLuB1g= From: Roger Pau Monne To: CC: Roger Pau Monne , Jan Beulich , Andrew Cooper , Wei Liu Subject: [PATCH 2/3] x86/irq: don't disable domain MSI IRQ on force unbind Date: Tue, 26 Jan 2021 12:06:05 +0100 Message-ID: <20210126110606.21741-3-roger.pau@citrix.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210126110606.21741-1-roger.pau@citrix.com> References: <20210126110606.21741-1-roger.pau@citrix.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PR3P193CA0051.EURP193.PROD.OUTLOOK.COM (2603:10a6:102:51::26) To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d83302d2-fe84-4d3e-5f06-08d8c1eaaa67 X-MS-TrafficTypeDiagnostic: DM6PR03MB4059: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cWrFS7Hbnf2Iwi12tyWAm778CYtuXDP1+G9ace7TR0AnfDIUKP+r/DIgm9UbCLd8YoYH1DRgyx9v3DjFies/iNVFcdq8hkYPya+mcZ/Rba0U4GLGa+eefjvGDTsP1KZVbK9sH3yfrqykYPM4MLy2SHDlIcuwebfKEvbmQHll11IRcYL9yM/wLzA6mU6L4zbbPKtiSTraKdrrTv4MpR5SS9hy1tkzDSujpVj+YBkYzqbjG8jIV8BiVhrgjg890AvMlue53iv6xWFfAlWl4c9QR+j+jiwiz4ZcV4VZgtEvbjp+Gxhd/l18Tt2RiC+PTsK7atDSivjRVYvBFeMhqPmfHWlOOf0jeEJTRqV/eQo8hQEIbvAvmrEph0gpMI1KVhAdnwhba7bPVPccXXR+o79tmA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(366004)(346002)(39860400002)(136003)(396003)(4326008)(186003)(83380400001)(478600001)(26005)(5660300002)(2906002)(66476007)(54906003)(16526019)(6496006)(6486002)(6666004)(956004)(8676002)(2616005)(86362001)(8936002)(36756003)(66946007)(6916009)(66556008)(1076003)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?NmRVdUh0eGtZWnMvV2YyRlMrNVJwUTd5OE5UY0RjeUIzZmZYSnQ3eU80TVJS?= =?utf-8?B?TUtxM0xZWHNKZE1LUnhGTkhlUVJxaHd6REwvTVRQNGRxZGhOeldDbFVhTUpn?= =?utf-8?B?d1plVHgvSnVRWjhYalhpakkyeHF0a2l2Wm96d2VlUm5Qb0N6dm92YVZQNFV1?= =?utf-8?B?S3BVZVJDbGhyNzlDZWUzazA5NVhxVGFDYVVoNWJHd2o2QWRuR3VxemRodnBG?= =?utf-8?B?cTJQK3dicHBlaFRUVjhUeHY1elZ1MGpmcWErbkUvRlJ5MXNIUUJVeW5qRnRt?= =?utf-8?B?ZmRjK2NRSFV4Wk9MRHpJcmJtYzY1TTc2bDRmY1V4TVJJcHB4TitidHpnZHpT?= =?utf-8?B?NXVVWEpHd01tdTBCT08xaVI2TlpnaWZuZWEwUXF3RTM3R0MyMWJhQnRUb2l4?= =?utf-8?B?TzJTTkhQdm9qQTRWeVlmNUk2eHFwM2xGREM1M0Q0TWxIcUxaZW80OUFybm1r?= =?utf-8?B?VVRySTdIUTB5T3c2TUVPZWpJL2ZOK21ESkplaXduNTIyMG02R2o5QkhDSWNw?= =?utf-8?B?bUlNb2dqQ0RwcW1oaGlrMmtRVGJ4bXFNaDBDemZ3RjdnZW9QMngxMGpvYUFm?= =?utf-8?B?NVBqQWpMa2cyZ2xNSlVxdUY1RVNLeWdFN1NJN3ZDelJ5Wlg0VDZENlBMTTQr?= =?utf-8?B?VGplRm9GZ0w3a1IyeEd5YWVHTHlHVzlGeHZpQ3BkOThuVC9NTzEyM0ZhMVhP?= =?utf-8?B?anhhVG51dVdPS0M2U2tEU0JUTmhWcVVMMnlpeDZ2eitKN3p1TWlzbktrdW8z?= =?utf-8?B?SUVNZkV5eGtLSUluaHo1KzUrQ2dIQk10cWEyZGx1QytyQmIvY0NrRE02bG1O?= =?utf-8?B?Mm5yRm9SRGViSThQbnI4emhSRW5ESHpXZjR5NzUyMmZrdEpWTEFnejRaNFV5?= =?utf-8?B?cFFhcENpTmI1NXRxNXBvNkNzRmYxc1EzZjJmYU4weWNsMHJ5bDJvSzFLQS9G?= =?utf-8?B?SFVBMTgwbkx5aFIvRU1nT3YwRnhtbVVTK2k1b2UvR0FYb2d6VFp0SEZlWHNx?= =?utf-8?B?dER6LzFRWXp2eEVmVjNvYUxkS0hvSXZubEZ6ZENCVVNSMXIvWFFVT3VWUE5a?= =?utf-8?B?RlZISjB5TVAxWkNmRkhwemlVV1hlNEFON2d5MjdQRW9ncmdHMDdkQlNLaVhL?= =?utf-8?B?cWlvNnZUazVucjQvOUtiLzUwbnVDZzdYUExIcjVmNzZwcERncWwvNmtmK2xU?= =?utf-8?B?ckkyc01kdjZ3elhjODNLR0czVW9pUisreC8wZzc2aTFQblhwK3oveHVlY29Q?= =?utf-8?B?bnZybkNwMXpKZUozZDBvanJGb2UxME43OTlxYVJpNlBBVEJpQVoxeFV5TnZU?= =?utf-8?B?Mm14Z1V1dC9iMHREcVFvOUxKaENsNmp0Smk1ZkxKZndBeFRSUDhjUWc4R3dn?= =?utf-8?B?RS8rTTJ3dkJwTUZiQUxrWGVhOVozTjJqSElqYW1lUnBMSU94VUxiNkdKUWVi?= =?utf-8?B?QWNkTldxYzlxSzRYd01yZDFHMXZlMmZKeEJ1K2JnPT0=?= X-MS-Exchange-CrossTenant-Network-Message-Id: d83302d2-fe84-4d3e-5f06-08d8c1eaaa67 X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jan 2021 11:08:10.0614 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7aauG811DK1k61O+3oVDMpfWUXgmNDBWM2qwhRlIp+WTiZOTQyPOCLHN+xppoQZAY84/pxxAN0HbPtJKSRgAHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4059 X-OriginatorOrg: citrix.com X-ZohoMail-DKIM: pass (identity @citrix.com) When force unbinding a MSI the used IRQ would get added to the domain irq-pirq tree as -irq -pirq, thus preventing the same IRQ to be used by the domain. Doing so for MSI allocated IRQs prevents the same IRQ to be used for any other device, since MSI IRQs are allocated and deallocated on demand unlike legacy PCI IRQs. Ignore forced unbinds for MSI IRQs and just cleanup the irq-pirq information as normal. Signed-off-by: Roger Pau Monn=C3=A9 --- It's not clear to me why we add the irq as -irq -pirq to the irq-pirq domain tree on forced unbind, as allowing to bind the irq again should just work regardless of whether it has been previously forcefully unbound? --- xen/arch/x86/irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c index 49849bd7d3..c8e5277eb1 100644 --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -2362,7 +2362,7 @@ int unmap_domain_pirq(struct domain *d, int pirq) { BUG_ON(irq !=3D domain_pirq_to_irq(d, pirq + i)); =20 - if ( !forced_unbind ) + if ( !forced_unbind || msi_desc ) clear_domain_irq_pirq(d, irq, info); else { --=20 2.29.2 From nobody Tue May 7 18:20:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1dmarc=pass fromdomain=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1611659326; cv=pass; d=zohomail.com; s=zohoarc; b=NAz29eCqVqX0N1TJPIsrOaaARs/yfu7PWAxmB+OYn6RN09YYTOYP0qUFhwziJkSk06obTPBLU0KwbK3NUM7jDsaGYmHiQKZ02zfPXSbAh4tU9Hqv9bnppxqJgUIkpFblNOlE/VShN32Hogho/tX4EO6XvYh3HTKbQN8tU9twOdc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611659326; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Xq1Aix58aH3zzkOd8rRntNDXU6045fRsfX+qmZVQiyo=; b=Tnh6xiCwHtJH3ThMLtBFSS3trIMaTn7aA681O8cWiBXTpvLmJA3kD4XuAHeO7TGC4CAW8k2owsgqkZS7Yh4LM6/WOenI7HvgBrklvGPjCAmvcn7mTR31y9Sc4NvpRo8DphdC7Z1BKu7GbUP7WgPLS+VyurBoQbUzcLowpDdoAeI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1dmarc=pass fromdomain=citrix.com); dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1611659326139814.7018939578036; Tue, 26 Jan 2021 03:08:46 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.74846.134607 (Exim 4.92) (envelope-from ) id 1l4MD0-0001QT-BI; Tue, 26 Jan 2021 11:08:30 +0000 Received: by outflank-mailman (output) from mailman id 74846.134607; Tue, 26 Jan 2021 11:08:30 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l4MD0-0001QM-6i; Tue, 26 Jan 2021 11:08:30 +0000 Received: by outflank-mailman (input) for mailman id 74846; Tue, 26 Jan 2021 11:08:29 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l4MCy-0001PP-Vi for xen-devel@lists.xenproject.org; Tue, 26 Jan 2021 11:08:29 +0000 Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 8301c828-1086-4441-8918-f37be9196020; Tue, 26 Jan 2021 11:08:27 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 8301c828-1086-4441-8918-f37be9196020 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1611659307; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=+Y6GrmAeF2fUu0S/2qyh56Dq2QXhgtZ6gEzn+JGVP2c=; b=AeH72sl7330R05Zb+vniTzKJC8Qa8M/Teg/jYbM7HQvn/E+n2OUXX9AS SMdHqgeHvi9N9RmqfosoCTAJbXLn81TK+R6HsajvDwM313Nxewfx0JJWi T1HMSuKWCT7bMss3nbtLTtWHxIKH64GKMpgGP7ZAFAlciAG+E/Msko0Jd Q=; Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com IronPort-SDR: zF980WfHV/D3S2j3ukDxOhPLkEe8aVINO8mhmTZ0IMjvbUXYoDN6dewsTnpGKxNMyldQlVCRtx fJ3rc5BG28Gk3+nDl6QvGV+noI6LQmPkYlUc6VVnEoMYFGGhPJXvoptpN1VhRRvFSb3tJ+EgWj 9ltb6Wm2PaP55Yoj6GevyOSmJzkue0KMOhokX01+jSMXieU5qbJ8Wqe7arRi9TBsD+nHAPqF/1 89JvFLFHIkeRoBmR5tsr7JAmV/zKgjV4yKsL13SnOoF8onrItddTrEXdUOrGrnmZG6HqAmv94j 7ZU= X-SBRS: 5.2 X-MesageID: 37168647 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.83 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.79,375,1602561600"; d="scan'208";a="37168647" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=na/9RLEvdTAP00GtvEuGJPAnqPGSSqO/jbvSGICu70ugMbJadcIIQmPVic9cXvjFYZRIzBgeAJfs3jb2ToyFHiEE68PMp2alcAMdq7Lo+J+wu2FS7egW11z3w2henJWVPDIu+xjKtTj7DQl4/2V7ErceCV+NdacCUZTHUVpAZkXdocUXvE9Uhfd4wSpXMFiXhzYi/6+n8CpD2mnNAHrg9lGvoVqKVr984mdht24V8/XWQyv94Uv7GwCpojajTYY3OqkFwjNVtvqPvSrBzXG1CImOZZtYVDG1Py0afJRv+sgzSh2ckqcgBfKQCpdaQM1YJStrfvJpDnn/L1an4qeD4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Xq1Aix58aH3zzkOd8rRntNDXU6045fRsfX+qmZVQiyo=; b=Z8ZKIM2ZHjJrdyhGyqA2NyO9gq4+rvZDuI2vht4Iay0XpAXyls1MOSjn65hiS8OBQkiFSfmOUctB39lOJHcAYiKjZUblynQIWdWLOMyDOswrDG9hPokmR9jiMSkUUTD43BlKK7EUcIEqZmWQI+7K0nZTrLWkZiqhzlVRvC2V713iVjfA5A+t0v192+gTIBgM3yVR6GqeEk3+zO7O17gtbYHLWedzdowNVovkYNOp8teD9o1A3EYhlpDJm0heYJsspeT5dj41yzTu1gVgKNWKwCdTRJ8iMO2oobLr5K8EaDwYcmHFDH3M3VHlZGhjnA50We3VVnyWDLz9AyabJgd1gQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Xq1Aix58aH3zzkOd8rRntNDXU6045fRsfX+qmZVQiyo=; b=E5TN671DOcdE5iaF8Z2GsayYieblEHUoMAUdAS0J90tYvnzOo/iyudTUKBIIfHKI0Z8y/4tzMa22bTEAnowD8/I4kR/HDmrVs6ZTQ7ZcwrjQvgiL7ubI1sxo5lD8k+8C8T19P6I0sayYBGh0vynEPUqSV8/QiJxw2fS1Tz9Hkmc= From: Roger Pau Monne To: CC: Roger Pau Monne , Jan Beulich , Andrew Cooper , Wei Liu , Paul Durrant Subject: [PATCH 3/3] x86/vmsi: tolerate unsupported MSI address/data fields Date: Tue, 26 Jan 2021 12:06:06 +0100 Message-ID: <20210126110606.21741-4-roger.pau@citrix.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210126110606.21741-1-roger.pau@citrix.com> References: <20210126110606.21741-1-roger.pau@citrix.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM5PR0201CA0014.eurprd02.prod.outlook.com (2603:10a6:203:3d::24) To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8ff21026-898a-48e6-8391-08d8c1eaad6a X-MS-TrafficTypeDiagnostic: DM6PR03MB4059: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2582; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /xGZWrheZrmWs/zaT/KDQPBQUhcW8qhuDj8ZtLcU4+iIGg7QKcBjfkUibedxo8b568DzWQ5txAPQnE65Upz42O/cBzcpXd3rtxWUEGZWfKxwRa/UhFxGpFGwYslCTG1ZNA+jlq078tlROlaFLiw2OUzaQQcatWam65b0BGA4U6PbGUihoK2+94bLuB4YKumNqQscmmTlYEii7u1FMkJRSJWff93FmXd0O1dSgjyMKypjSj1/HvCWqITu0jW9Bxg95oTccGsM5Yb6nRXBwYPDKVgxO1JRRsdwopDLtRREyy8Q7m0oU25anLadYHM1UuuWif1DFQ5XOwKw8yP4t/meCFESJ+opsZ6GZXgtHlV3bZLDvaEU/6YtxbdSlF6C+9R4DbOkEFLI0Hbz9AdaQKdGtw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(366004)(346002)(39860400002)(136003)(396003)(4326008)(186003)(83380400001)(478600001)(26005)(5660300002)(2906002)(66476007)(54906003)(16526019)(6496006)(6486002)(6666004)(956004)(8676002)(2616005)(86362001)(8936002)(36756003)(66946007)(6916009)(66556008)(1076003)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?OURheWZRREpzaFFnY1FkeTd5Tm5ULzBNdmdLd0ZBV05HU3h5bGZuTzF4MEZs?= =?utf-8?B?TmxuMkd1V0ZraGM2WHhsb0FBOHRWa2ZCQ2FmdDdHdm14ajNVYTJWQ1hBUlFB?= =?utf-8?B?VXg0aU5VajFCa21obkFIdGF4ckVlMlQxeXdKUG5VM05CN0pPSXNLMDNpYnRB?= =?utf-8?B?Wm9qdmk1b0ZROStTOTJGQ096aDJOaDk0S0ZsVStPREtJeVVKUXVZR2JnNGJZ?= =?utf-8?B?WTRCQjA5azk2NDd1alUxN2w4NWJpdmN3d2FIdTQ1dnRTckZlSVdVaDVFVmFU?= =?utf-8?B?MDgyMWV2dWFLb2ZGUkRJREIvMFpGOVdEeFhGS3V6cWYySVB5WDN2L0puUlZM?= =?utf-8?B?cWc5a3ZRQmJOSG1KY2tlYUdKMkNlTzR5ZEFXbEhrSzF2bjhLcXNlNXc0UVRP?= =?utf-8?B?TW5iV20xUnYvNWxkWnFubzVmcVZNZHhqS1lsb3lmL1V3dC9CMWFPQjRKQ3F4?= =?utf-8?B?STdYQ3RBNnA2dnhEcS9zci9kTDlBYUNLN2tlTk9yUWo2SCtSVHpicWdwOXE5?= =?utf-8?B?K1c3eGp2cjFmYWFGVUUrb1NLWnR1YXZBamF0QkdGb0Z4cVpNMUxlOXM0RzNa?= =?utf-8?B?NlhCQ1EzYTV1cHRMOXdnUnRqcDBHWDJTWkVoNU9IMGNNSVNlemFTWVlzTnFX?= =?utf-8?B?RHJoRFlWbHhBWllyVDdyS0VlakdJbzdWdFlQRzhlcHo3SnEvVEZsaldaSFhQ?= =?utf-8?B?RXBINGxRcldoUEtYeFc3bTdCbGErSGpsa3RaaGo3MG9aWkd1MXVCUzAwbUxm?= =?utf-8?B?MUtkVWFWczhONXVlT1JzY3J4eWtSZ08zR04xTjV6MUR6WUQ3N3JkaEsraUgy?= =?utf-8?B?TWcxV05URDVVdUxic053VXE5LzdqUEhXSllpY0htdFVkdTJRVFhTTUFJNUFU?= =?utf-8?B?bkV0S0ZaWFhTQWlQYmV5MnVuY3NSVUVNaHN4MlpVZXd0Z3ptMHoxbXh0MkVG?= =?utf-8?B?Wm5iZWtjalZhZk9nWVhWZTVTUExtbmQ3M3hQcmhqanhzMUNCY0tMQllGOTgr?= =?utf-8?B?TUxpNDlwTnJ3UDhCUzg0eCtEQjVLVEJGN1NSRlR2QUNLRCsyaW5kVFJnQ0Ro?= =?utf-8?B?QUFqQktZWmlFWmdDS0QvNzJzYnllR0RSQ3hoNnNadHJONjFBS0svZGNvU0cr?= =?utf-8?B?RUVOT1NmeCtMek9EdE9vY2NRQTArZUNPelYwanUwR0E4Uk9zT2UvV09nZ0Qx?= =?utf-8?B?VVZQcmxOL3E2Sk5Vc1FkaWhISDRSa1oxM2lLdktmeC81UjJvUVQxdEEyWmNY?= =?utf-8?B?Y0ducFZmeWY0d1NrenJpS3VhaHQ3UG9Lb1EvcjZUWXlLWVd6Wlk0elNTWVkw?= =?utf-8?B?S1R1RXY1WkliQ3QvV09PZ293UFpPZS9ON3dKV1ZhVm1oYnFidjdCVEwvcnRH?= =?utf-8?B?RFZYUS9zK3VCcHhGUXBUYUlJMGYrNlVBYWhvUWx6RW5wVlpwWDB1T2F3UmlL?= =?utf-8?Q?WBlRSf+1?= X-MS-Exchange-CrossTenant-Network-Message-Id: 8ff21026-898a-48e6-8391-08d8c1eaad6a X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jan 2021 11:08:15.0982 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: S2O05zvtnXeGQSUwI4QHGFKgbVcnSBpBeWOC2R3h9doDwpqnCeanu/1h7s3ApR1F2s6HScc3W69S+Q+BkFkGGg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4059 X-OriginatorOrg: citrix.com X-ZohoMail-DKIM: pass (identity @citrix.com) Plain MSI doesn't allow caching the MSI address and data fields while the capability is enabled and not masked, hence we need to allow any changes to those fields to update the binding of the interrupt. For reference, the same doesn't apply to MSI-X that is allowed to cache the data and address fields while the entry is unmasked, see section 6.8.3.5 of the PCI Local Bus Specification 3.0. Allowing such updates means that a guest can write an invalid address (ie: all zeros) and then a valid one, so the PIRQs shouldn't be unmapped when the interrupt cannot be bound to the guest, since further updates to the address or data fields can result in the binding succeeding. Modify the vPCI MSI arch helpers to track whether the interrupt is bound, and make failures in vpci_msi_update not unmap the PIRQ, so that further calls can attempt to bind the PIRQ again. Note this requires some modifications to the MSI-X handlers, but there shouldn't be any functional changes in that area. Signed-off-by: Roger Pau Monn=C3=A9 Reviewed-by: Jan Beulich --- xen/arch/x86/hvm/vmsi.c | 93 +++++++++++++++++++----------------- xen/drivers/vpci/msi.c | 3 +- xen/include/asm-x86/hvm/io.h | 1 + xen/include/xen/vpci.h | 3 +- 4 files changed, 51 insertions(+), 49 deletions(-) diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c index a2ac82c95c..13e2a190b4 100644 --- a/xen/arch/x86/hvm/vmsi.c +++ b/xen/arch/x86/hvm/vmsi.c @@ -715,32 +715,37 @@ static int vpci_msi_update(const struct pci_dev *pdev= , uint32_t data, return 0; } =20 -int vpci_msi_arch_update(struct vpci_msi *msi, const struct pci_dev *pdev) +void vpci_msi_arch_update(struct vpci_msi *msi, const struct pci_dev *pdev) { + unsigned int i; int rc; =20 ASSERT(msi->arch.pirq !=3D INVALID_PIRQ); =20 pcidevs_lock(); - rc =3D vpci_msi_update(pdev, msi->data, msi->address, msi->vectors, - msi->arch.pirq, msi->mask); - if ( rc ) + for ( i =3D 0; i < msi->vectors && msi->arch.bound; i++ ) { - spin_lock(&pdev->domain->event_lock); - unmap_domain_pirq(pdev->domain, msi->arch.pirq); - spin_unlock(&pdev->domain->event_lock); - pcidevs_unlock(); - msi->arch.pirq =3D INVALID_PIRQ; - return rc; + struct xen_domctl_bind_pt_irq unbind =3D { + .machine_irq =3D msi->arch.pirq + i, + .irq_type =3D PT_IRQ_TYPE_MSI, + }; + + rc =3D pt_irq_destroy_bind(pdev->domain, &unbind); + if ( rc ) + { + ASSERT_UNREACHABLE(); + domain_crash(pdev->domain); + return; + } } - pcidevs_unlock(); =20 - return 0; + msi->arch.bound =3D !vpci_msi_update(pdev, msi->data, msi->address, + msi->vectors, msi->arch.pirq, msi->= mask); + pcidevs_unlock(); } =20 -static int vpci_msi_enable(const struct pci_dev *pdev, uint32_t data, - uint64_t address, unsigned int nr, - paddr_t table_base, uint32_t mask) +static int vpci_msi_enable(const struct pci_dev *pdev, unsigned int nr, + paddr_t table_base) { struct msi_info msi_info =3D { .seg =3D pdev->seg, @@ -749,7 +754,6 @@ static int vpci_msi_enable(const struct pci_dev *pdev, = uint32_t data, .table_base =3D table_base, .entry_nr =3D nr, }; - unsigned vectors =3D table_base ? 1 : nr; int rc, pirq =3D INVALID_PIRQ; =20 /* Get a PIRQ. */ @@ -763,18 +767,6 @@ static int vpci_msi_enable(const struct pci_dev *pdev,= uint32_t data, return rc; } =20 - pcidevs_lock(); - rc =3D vpci_msi_update(pdev, data, address, vectors, pirq, mask); - if ( rc ) - { - spin_lock(&pdev->domain->event_lock); - unmap_domain_pirq(pdev->domain, pirq); - spin_unlock(&pdev->domain->event_lock); - pcidevs_unlock(); - return rc; - } - pcidevs_unlock(); - return pirq; } =20 @@ -784,25 +776,28 @@ int vpci_msi_arch_enable(struct vpci_msi *msi, const = struct pci_dev *pdev, int rc; =20 ASSERT(msi->arch.pirq =3D=3D INVALID_PIRQ); - rc =3D vpci_msi_enable(pdev, msi->data, msi->address, vectors, 0, msi-= >mask); - if ( rc >=3D 0 ) - { - msi->arch.pirq =3D rc; - rc =3D 0; - } + rc =3D vpci_msi_enable(pdev, vectors, 0); + if ( rc < 0 ) + return rc; + msi->arch.pirq =3D rc; =20 - return rc; + pcidevs_lock(); + msi->arch.bound =3D !vpci_msi_update(pdev, msi->data, msi->address, ve= ctors, + msi->arch.pirq, msi->mask); + pcidevs_unlock(); + + return 0; } =20 static void vpci_msi_disable(const struct pci_dev *pdev, int pirq, - unsigned int nr) + unsigned int nr, bool bound) { unsigned int i; =20 ASSERT(pirq !=3D INVALID_PIRQ); =20 pcidevs_lock(); - for ( i =3D 0; i < nr; i++ ) + for ( i =3D 0; i < nr && bound; i++ ) { struct xen_domctl_bind_pt_irq bind =3D { .machine_irq =3D pirq + i, @@ -822,7 +817,7 @@ static void vpci_msi_disable(const struct pci_dev *pdev= , int pirq, =20 void vpci_msi_arch_disable(struct vpci_msi *msi, const struct pci_dev *pde= v) { - vpci_msi_disable(pdev, msi->arch.pirq, msi->vectors); + vpci_msi_disable(pdev, msi->arch.pirq, msi->vectors, msi->arch.bound); msi->arch.pirq =3D INVALID_PIRQ; } =20 @@ -857,14 +852,22 @@ int vpci_msix_arch_enable_entry(struct vpci_msix_entr= y *entry, int rc; =20 ASSERT(entry->arch.pirq =3D=3D INVALID_PIRQ); - rc =3D vpci_msi_enable(pdev, entry->data, entry->addr, - vmsix_entry_nr(pdev->vpci->msix, entry), - table_base, entry->masked); - if ( rc >=3D 0 ) + rc =3D vpci_msi_enable(pdev, vmsix_entry_nr(pdev->vpci->msix, entry), + table_base); + if ( rc < 0 ) + return rc; + + entry->arch.pirq =3D rc; + + pcidevs_lock(); + rc =3D vpci_msi_update(pdev, entry->data, entry->addr, 1, entry->arch.= pirq, + entry->masked); + if ( rc ) { - entry->arch.pirq =3D rc; - rc =3D 0; + vpci_msi_disable(pdev, entry->arch.pirq, 1, false); + entry->arch.pirq =3D INVALID_PIRQ; } + pcidevs_unlock(); =20 return rc; } @@ -875,7 +878,7 @@ int vpci_msix_arch_disable_entry(struct vpci_msix_entry= *entry, if ( entry->arch.pirq =3D=3D INVALID_PIRQ ) return -ENOENT; =20 - vpci_msi_disable(pdev, entry->arch.pirq, 1); + vpci_msi_disable(pdev, entry->arch.pirq, 1, true); entry->arch.pirq =3D INVALID_PIRQ; =20 return 0; diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c index 65db438d24..5757a7aed2 100644 --- a/xen/drivers/vpci/msi.c +++ b/xen/drivers/vpci/msi.c @@ -85,8 +85,7 @@ static void update_msi(const struct pci_dev *pdev, struct= vpci_msi *msi) if ( !msi->enabled ) return; =20 - if ( vpci_msi_arch_update(msi, pdev) ) - msi->enabled =3D false; + vpci_msi_arch_update(msi, pdev); } =20 /* Handlers for the address field (32bit or low part of a 64bit address). = */ diff --git a/xen/include/asm-x86/hvm/io.h b/xen/include/asm-x86/hvm/io.h index 9453b9b2b7..3d2e877110 100644 --- a/xen/include/asm-x86/hvm/io.h +++ b/xen/include/asm-x86/hvm/io.h @@ -130,6 +130,7 @@ static inline void msixtbl_init(struct domain *d) {} /* Arch-specific MSI data for vPCI. */ struct vpci_arch_msi { int pirq; + bool bound; }; =20 /* Arch-specific MSI-X entry data for vPCI. */ diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h index 5295d4c990..9f5b5d52e1 100644 --- a/xen/include/xen/vpci.h +++ b/xen/include/xen/vpci.h @@ -160,8 +160,7 @@ int __must_check vpci_msi_arch_enable(struct vpci_msi *= msi, const struct pci_dev *pdev, unsigned int vectors); void vpci_msi_arch_disable(struct vpci_msi *msi, const struct pci_dev *pde= v); -int __must_check vpci_msi_arch_update(struct vpci_msi *msi, - const struct pci_dev *pdev); +void vpci_msi_arch_update(struct vpci_msi *msi, const struct pci_dev *pdev= ); void vpci_msi_arch_init(struct vpci_msi *msi); void vpci_msi_arch_print(const struct vpci_msi *msi); =20 --=20 2.29.2