From patchwork Thu Apr 7 09:27:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 12804906 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E2F35C433F5 for ; Thu, 7 Apr 2022 09:28:18 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.300568.512752 (Exim 4.92) (envelope-from ) id 1ncOQq-0007mK-4n; Thu, 07 Apr 2022 09:28:00 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 300568.512752; Thu, 07 Apr 2022 09:28:00 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ncOQq-0007mD-1e; Thu, 07 Apr 2022 09:28:00 +0000 Received: by outflank-mailman (input) for mailman id 300568; Thu, 07 Apr 2022 09:27:58 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ncOQo-0007m7-NM for xen-devel@lists.xenproject.org; Thu, 07 Apr 2022 09:27:58 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 02976ab3-b655-11ec-8fbc-03012f2f19d4; Thu, 07 Apr 2022 11:27:57 +0200 (CEST) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2059.outbound.protection.outlook.com [104.47.6.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-5-9otTH9cQNGysJqkhjb3Xyg-1; Thu, 07 Apr 2022 11:27:56 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by AM0PR04MB5507.eurprd04.prod.outlook.com (2603:10a6:208:110::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.21; Thu, 7 Apr 2022 09:27:55 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::914d:e08d:7798:8476]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::914d:e08d:7798:8476%5]) with mapi id 15.20.5144.022; Thu, 7 Apr 2022 09:27:55 +0000 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: 02976ab3-b655-11ec-8fbc-03012f2f19d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649323677; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0IrZylJTpCAzfeSRjCQ3TVLzNp2tEk2Z4BxiHpu3jec=; b=hg6KESjQmQE3iAhs0tDQRJHQNamemz2TRxP+zdYa4ji0rnE+WYULivPXpaDIVFIyHjfXSQ B+LIjm/Wln+5WTvVpQVe4aB+wn4CuOvfa23LFL/wyw/fxAeV+G1HtpH9XGMlcoeOzNhSgV AdnoldSHwgPEJDOV/mb2iq9VHXJ0+/Y= X-MC-Unique: 9otTH9cQNGysJqkhjb3Xyg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cKk6qagDZQFV3w5j38n2fD5jpJ1jicuw/eIZoPniNXGyTlIHc9RaTXRmpGmJ8rV6d8uJ5xhKEyzpXxyYG3qhZAFHchJ/41KW9uVIMiVu+sGUixXTcDYIJB70gmkY6Mrwbb0+mStvhQFfu5a/aEvKRCvzV4OvmrztVLXkqBqN02jByZi6kb8Ph7WWfM1N77fGl08zd/DX62+86IFg325Dao0zBVTFdkaCczWZTZuCxRlbScSN9gzllNCSkS/lZl7uIv5TiK8Oxh5/XlNjclJwcV+Uhx+dZ+EpdKV5mQGXjaOgh3g+48UP6XZS5iPMyCGdi4nKxi2pJ+KDTFIVYMlFGA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0IrZylJTpCAzfeSRjCQ3TVLzNp2tEk2Z4BxiHpu3jec=; b=bBg+IaoNUordQHDzpuCZ9riviFxnSczYx4wJPC4devL+OXB/v2jBoyYGJyeOHbDdA1Dn/l8gnrpVPMoACkqYXtqMbNzjbBx/NxdVN8x2ZqmT893MeAhJlENMEWQ/64UPENJhNRIQaIR0EW908kBXxjPaSim36xcoC0LZXTxzSx1iY1Rif2Z7LTyzduHYlV3skBryfJ6kXU/Jt+QZmbTN9ISXdmn6cJVhr0OqCVI4y9eZitz3i7xzzuuSbaSByAGm4eYa6YO/evteocIhDjB78VBm+6lfLW60kfC2ThSAg0ABHwxy3PoGDUlLlnFBQhizbzI3qy3WhUOaIn9Oh0tEVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <7671478f-e7c0-c43e-6395-1adc70333e04@suse.com> Date: Thu, 7 Apr 2022 11:27:53 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: [PATCH v2 0.9/2] VT-d: don't needlessly look up DID Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Kevin Tian , Andrew Cooper , Paul Durrant References: <6e1c7faf-d1ea-1a61-5452-9dec5b8fd221@suse.com> In-Reply-To: <6e1c7faf-d1ea-1a61-5452-9dec5b8fd221@suse.com> X-ClientProxiedBy: AM5P194CA0010.EURP194.PROD.OUTLOOK.COM (2603:10a6:203:8f::20) To DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5cdd8ea7-612f-4902-7572-08da1878e562 X-MS-TrafficTypeDiagnostic: AM0PR04MB5507:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xezOVYSmxcYXWldNOhPvZNbFmg30dC/hKzq7hDgQt2ZOqjKm57qgXKFZPUX2Z5/pKk7Cr+Xm8+lWUsGD7JRuD0+p4ec3vHsP9++RA8367yjfI7t1biBUxEI3HyGFUFGWY4OTa+zMLj4Ua4WxeSp8KCfeHMafslJ3YsArZPNp6K6DyDQWiBZpfe++fP98Bn2ps0orUZm5kH71n6oBt1cmLggZJaQzocEsXe5r1NAPNerWtOVX3pWTpYsTHDzZqm/cZiYDjk54+FTUqEhaNOJ45aAR7w61lMKpLxoNHBdC8YlybqOmEM8dF6Bx6eA18z5yx2sREB0kWWwztBqtQylfcyz/Qdzya2+2zEnU1ZGYatUVDsezClD/ZxIlZvGCoR3zaCBB4vSzKr4IppFHhhjE3rkq3DahdqbEnBGOGGoy0FJ4YGYo/Izm7rZBz7de7rAbm+pytvyLjFgq9kjmY1/3UMdTbFatNSK04JWev6F23iCXFYbwTOryuGD3tnMFvLJ20oHHvB/PULyrsYKd/8uVC3fISBJYWg6ox5wL2+XeX+U4NMLzT2JiWCVgzm/wxVhzGAx10EkVZ1t3B8a3M+YxuiUjF99ZKFsRyyQlZYXmHSoNOG8xaa9kV0+v3cVmVh/chk4B6/XPolSJX6arffzYcg+JUKXSf7/KcXHcAt5S2vIvGAbEUDJ5PVH05DzOWDAZ1OnkL/55MyLQS0h/9gnvg0jwNhU3/y08Wo7cvMoq3Qc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8616.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(508600001)(6486002)(6916009)(6506007)(6512007)(26005)(54906003)(316002)(2906002)(83380400001)(2616005)(186003)(38100700002)(8676002)(66476007)(4326008)(8936002)(66556008)(66946007)(31686004)(5660300002)(86362001)(31696002)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?o/yPRXO+djqq6bhQr/ydTMqnFe7f?= =?utf-8?q?IcfCy9uRzUAZHnDw2qdOo5RdmpzOWn0brvkz4wSgk8vKvLUVpAfskoddqA6+CXYBS?= =?utf-8?q?H6q2l73vCBBywYTn/BVMWcWp+WHO2a8rVikCVbOXFPp2c0h9C2IJetrzOafjXC9QM?= =?utf-8?q?lfJmN++NeP4F2zxW5uS2g6KM6YjrshTNyHPvqYE9BR5EF24fA2zR/SYBx8cj5zWvh?= =?utf-8?q?Yb67F1Jumn/0GlQmTAr2qhE6U93JRmsx7U1xL232C6fFKKZrpLnFUjM0adMjr72nS?= =?utf-8?q?kvxVbKvkrOZwttX07azHfIHQvEmgBYabfcc8CYTpYllxp5kg+DfEL6eu0Fm98k+Ma?= =?utf-8?q?bpho6lEb5KHl9UZTcpTjfJYIklCMCYp8dYsbAHCXiUEAowxVPqm/ATEIKOUk+5Iom?= =?utf-8?q?yrYJp6tM7YSRzurvDi5I69A0qwx6z1385BEuz4iON8qzrMFkNBg1Pub+vswx6Mg3+?= =?utf-8?q?HseWmhQA3YhD87jMyo9DZ/VDTn6kx4tPMMufympC1IkG7g7QKkEKScJ3HeVMzlXDz?= =?utf-8?q?TBZFDYNKgJB+AxoZa8y69CBfoYiT/nTyQPWEfajQNGHQZwou+8IW2eTL2Xmh+ZrQi?= =?utf-8?q?4W+khvwgpaUHyccajpuNYGGx0jxcrIITr7EckxEOv8EGx0Or9AgA59vtrFSFl2Q1n?= =?utf-8?q?XXPUC4dWkGBmgkuV502hHBpZWuWAWqCzGb7rqJ0IO6X3xtjPHZuydBABDpqBXVrvp?= =?utf-8?q?TmOzGXCrmsrWcEYEinENgEUQjHbiycNxnie83SQxvCpjBzcXJJjhZHYPDdFWm8QWr?= =?utf-8?q?h9qe/MOWcHXXPTE2vmctQ2zq9l1tCJE5lb4kCDerLhao0kEaWr5HNAPxP2rjvYhjL?= =?utf-8?q?2TtbNwuXr4ikrsbmKjCUUxJYE8vZnCHZ8yLe2KMzhWEbBeNiS9XgUk3hkfAlpC6hc?= =?utf-8?q?An5EytEKhNaWxek2LcYTvrOfV3Yuj7SlV/cNqpy90m0NQL1krWj2rF60G4wbmn5ZW?= =?utf-8?q?N2pmuqbzMXloAgapWN1zMidrDupyIpxyoordYy3A8FWV3H6d8AqTEdv09++HsvZMR?= =?utf-8?q?DDxLZaCjhcYRzpJcLFOgFZBLlUwMB13jQWGHzfYfziLUR0HNoCiyV8oI3r8KlX42w?= =?utf-8?q?Rytr6fBWGhcYPHX+Qtjo6o+z4oEElrSxVKGv3I1/QNdQOydZrbHIeBEcqxt870kFd?= =?utf-8?q?SJ41ejf9Sno89I91ETP5gDnbIsLd1/k7cnlvBpuQTT/1PUuhFHzB5JCN4P8ccCAll?= =?utf-8?q?INFh09wSjyHSPYXk/V7/pwxIMUOXVR7ydqVL1JxlsAupvKC0oWRBkSIqJQK7m5br9?= =?utf-8?q?nY9ugBPonjy/DhHIj+WFICttZ/h2uxq1n03In9TCz3klEKoCL2+7e0EhKC7qIG5iI?= =?utf-8?q?M0jreB+oaOXSbfKU2v6lqGtvLJda1dzk2sI0QtAGE+Wgl1HNAB90h0SaC2Rb3H3do?= =?utf-8?q?xIIybJGIP67ylCXmS3tlqM3JlPF3BH0acg3tpaku4XblrvQbhQ7UYIQDZBQbSbzxc?= =?utf-8?q?a0O5oKvC7BuZTeIkoqUK9JE5KZ4lrKsPScluk/Xx0AHN31x513uRQyJTwn5zjPPQU?= =?utf-8?q?hdeBaRQlnOars7i8EANz/6XuvSRqD1EHeQkpUGbLIYwQfd9LWAu/MgY+ZzoUz/5X+?= =?utf-8?q?NaEzjGBsrb2NfKtxohweyFqAR/aFdU+xxudEEhXEjTUjlRThgzYvXjdIemLWIrFmf?= =?utf-8?q?Y1dMkhLOHlwOBr+isHG3qqla+TDh9JoQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5cdd8ea7-612f-4902-7572-08da1878e562 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2022 09:27:55.1329 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: yC97r7LOGS9qa2PDJ+uKnoBR3IoxliSCv+XsbTy+tsAPRkpUJciCFYfDJ9DT0f2/I48HyEotwwEPCc81HBXKpg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5507 If get_iommu_domid() in domain_context_unmap_one() fails, we better wouldn't clear the context entry in the first place, as we're then unable to issue the corresponding flush. However, we have no need to look up the DID in the first place: What needs flushing is very specifically the DID that was in the context entry before our clearing of it. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monné Reviewed-by: Kevin Tian --- This (an intended follow-up to XSA-399) is actually a prereq to what was called patch 1 so far in this series. --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -1830,18 +1830,12 @@ int domain_context_unmap_one( return 0; } + iommu_domid = context_domain_id(*context); + context_clear_present(*context); context_clear_entry(*context); iommu_sync_cache(context, sizeof(struct context_entry)); - iommu_domid = get_iommu_did(domid, iommu, !domain->is_dying); - if ( iommu_domid == -1 ) - { - spin_unlock(&iommu->lock); - unmap_vtd_domain_page(context_entries); - return -EINVAL; - } - rc = iommu_flush_context_device(iommu, iommu_domid, PCI_BDF2(bus, devfn), DMA_CCMD_MASK_NOBIT, 0);