From nobody Sat May 18 21:15:55 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1649669786; cv=pass; d=zohomail.com; s=zohoarc; b=O4nlX41dpLZodFFloOjTDZR6BVbWkcagekIiT57Yp8kcTjzQ5zvd1GnYYhQJAJfOtILeLHJtWH3ehJtIDhQ4vDAImHWL7kkq+u/cCoubhXZKnR2bAJyn/ip92zk0VIPK2+rTtxsFjpNJVmNHOnu6BGu+dTne6/+QYyXXrxTlpDw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649669786; 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=2I9BVFSj3uMESwf/DYdlBGh3Zmde/zF778cT9zilJi4=; b=GB+VsbOIqYEVZCkeIt8sdub3wFdggp2VfYAiXRTdHjBuI0LdtpOHn/SM//P8bc8MXqy7MAlVwObjSErb3fovN+q5N1c9ORJhXfV34B2w7OiozmHK5MfB+TvJyowZ6/91QH3EeBmRnD50Na2RcCtngNyjFeSAdvvoPPdzGxgIgkE= 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1649669786812349.5250552213903; Mon, 11 Apr 2022 02:36:26 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.302770.516515 (Exim 4.92) (envelope-from ) id 1ndqSm-0006iT-VK; Mon, 11 Apr 2022 09:36:00 +0000 Received: by outflank-mailman (output) from mailman id 302770.516515; Mon, 11 Apr 2022 09:36: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 1ndqSm-0006iM-S6; Mon, 11 Apr 2022 09:36:00 +0000 Received: by outflank-mailman (input) for mailman id 302770; Mon, 11 Apr 2022 09:35:59 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ndqSl-0006iD-Ms for xen-devel@lists.xenproject.org; Mon, 11 Apr 2022 09:35:59 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id cb03b92b-b97a-11ec-a405-831a346695d4; Mon, 11 Apr 2022 11:35:58 +0200 (CEST) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2053.outbound.protection.outlook.com [104.47.12.53]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-29-z2s000aAO1ufW5CdwQdlfA-1; Mon, 11 Apr 2022 11:35:57 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by AS8PR04MB8609.eurprd04.prod.outlook.com (2603:10a6:20b:424::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Mon, 11 Apr 2022 09:35:56 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1%6]) with mapi id 15.20.5144.029; Mon, 11 Apr 2022 09:35:56 +0000 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: cb03b92b-b97a-11ec-a405-831a346695d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649669758; 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=2I9BVFSj3uMESwf/DYdlBGh3Zmde/zF778cT9zilJi4=; b=NPtpcC/JNv7lD/uQJ42bsDO929J+3z+b1sGpY9Mq1Y7TPXRq0olEzPd4GvmgcAYxqfCq+Z Egn4f9RA5yZlTZ5LNIsReXvf45KTSTk0JXTIUke8FNbofytJ1MbWDJqQhQVF1+oMMoJZS/ TvDRxKOuaDZzK/kUx1T/R2ruVm+EyhM= X-MC-Unique: z2s000aAO1ufW5CdwQdlfA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h+uSVko+/BfXswIpZbkuk5xrFvG9G5Xf1E3mK9X9DDwXMlKw2x8fnQWOD3OEWRvk3dZN/tCJtmJmdStaLCUCI1FjmPIO50lLt0u0q3lrkQW7i8po5xZWu77K6L62aEGgwJspR3pIQMnlScLgxkXMr5l+RChada0CVZePlFukExvl4uDUUpxCT7Vv7QS0vsM1BsX6x0d2UsDFk9O6fpfry2Z/7S53htoUaH2pAzKzDszhX+k0jeBcrD4nKiJzTWxgHvMDrnquna8MAr7dij/a05q5lugbv2W1VIZXDN3r4WFUatPT+tKBFgU+dOC+Pl1YXEHsbmDwTlXKelsZn5jl5Q== 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=2I9BVFSj3uMESwf/DYdlBGh3Zmde/zF778cT9zilJi4=; b=V6r32wYFX387ulMhJDXYbZQM/Zgt/TdIij3xBU7heFsvc+7gsmUiQ41K3jP3VvULrVJls9bwqphtY0XhVqMQli8Qw9044Vbcspi9QaMngHGKVEOioDuE26T6J2TqHVZZKQ4oHkkQ8APkJbB9oF0H4I0b0cRFIJeQ01SJSfJGs2KPwFK0VqCcWJC/4CBIM4RkxScnldVWO5GlDNy8IBmRfw24agVSuR5i1hu9/78Hv8v3yUqo8i8GJSHTqCiJ/vcQ8a0vX0x3M3DmcksNZ/z9kzVo7DMIjTJy1p0YmjZU5AG3tRb0iwY7wOQNHmUvWSxoJhFL+BTo4AwshR33xQ5CLA== 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: <3430b8fa-6700-b5ec-a160-2e7609dd38a3@suse.com> Date: Mon, 11 Apr 2022 11:35:54 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: [PATCH 1/8] IOMMU/x86: drop locking from quarantine_init() hooks Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Kevin Tian , Paul Durrant , Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= References: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> In-Reply-To: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6P195CA0048.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::25) 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: 75629b95-c6e4-400e-cf47-08da1b9eade3 X-MS-TrafficTypeDiagnostic: AS8PR04MB8609: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: indCEcykcUve+DJh6IVeBg2ErQ1W9BtYlxR69aU0VYl68vxjXGlvLblMT5xmKouVHLELpoopHlLP9uHFAk9YMPvmIRE5s5ufv2f55fVWsXbi/WAjQvQq6CoYj/PUZJmGS3rxp2UyN7XpzyjU7aH1YnKRGuRKbEKzpwMeSLidkkWE5OuG8DFNqRwv0b/vDGTl33X5DgFqXuSU+KGqLf32IJI7P5QCDcAV1UujOcM9t/OQrLN+HYAAxC06s/KRX8IvSKjTon8yWVVNbs+tKulov7ht9BT6BTwhFke5OlYyzQQeMipDXRZs6jceH6+PVX/EbdCDLhigW2IHDnyKDuX8DSFWUSakHlGhcu55B+xTosmXVZU2iBWerKdAaiM5VMVcOyNXGnV1Pu65xw44fH3XQER+7C12OH3Pt8iD+yo9T9l3AEMESMA+CW31rWn0JF2e7tfaBGOyNb2VjSu0AmT1V0Ei//rB2L6OJbn8Ce9ZwD+fzNi29HTG7b5F3H2aRi/dBmSj/RzASv3lHvUkJf4keWG9ddvIykD6D9hkThWFQ2UWd/Lsmpy3pXWs3Gikd4l+q6LpEGan1Y+irl2p43QhR75HK05UvGQA0ojv6bV5P5GD1Oi3HEfqLXnm2AGzcr+3bhWfH9KYwd0WsjYLOQZGszj+Ma8CV/j1seKTPlQkN8WMf2pfnR1SNdaIyrooOl2RNIHZCwEVWvWw1HajaziH6cabDlAnpZUf9kASE68Zvgc+IXZkzsZ0DslLJEGi/e0H 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)(6486002)(8676002)(5660300002)(54906003)(66476007)(66556008)(508600001)(6916009)(38100700002)(4326008)(66946007)(316002)(2906002)(2616005)(83380400001)(186003)(86362001)(31686004)(31696002)(26005)(6506007)(6512007)(36756003)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SEhFamRKeWJlamNIU3l4aW56dlBETlBLcjJaOHNZQk5OREh5ZmJaZ3pIZ09S?= =?utf-8?B?d2NQV2pILy9EMlgyeGxxbmcxdFJoNHQ1alNUSkhIQlJnazlTSjBkT1hreTRZ?= =?utf-8?B?MGFNeU11dG9YaUFpZ2JDbHRuK2sxWU9ZdWpac1N5MDRBMVE0YzRxSFIwZXRH?= =?utf-8?B?b1lOV0VncGpncVlZZ3pmQ2V6R1MrYUt0NFA2WG5GSlVBWnRXMVRTZ212YTNM?= =?utf-8?B?bXcycnlPbVhmMmJkRWhtei9FWXhmZTZZSlBuN0xDY0w2WGwybWtjcmd3VjdB?= =?utf-8?B?SzArWldJcFI4T0xhNHdMMnBRM3RhQmllSVI5TWE0a292cVVOQTVHZXV1VkFF?= =?utf-8?B?R3hNaytkMTJ1WUNidkdHVHhRSDBlZXB0UXlZWWt6SFMzckM0Vlo3WmVOdmV4?= =?utf-8?B?em5FRTNXcFZCWi9VbUZoNjFGV2VXRVRiUTZINFhjTHVBQjdxMVlvWkc4THlo?= =?utf-8?B?M1lOTXVhTkEvVVdjRWVyUVNBSTlxa3BjcWxZTElMNXVXNjBLdUUrNWRIdWE5?= =?utf-8?B?WlNHbnNIa2h1N0M4aDgvbXB0WE0xalZGNk1QQlhjZEhSc0NtcGZCeEphV0RD?= =?utf-8?B?K05qaUdFYllnYVNSYU9vVWV2aTZuSlRkZmpRVE1HRk05SmdJcGxEcTJPUW9k?= =?utf-8?B?ZUFNcXgzL0JSTUZVSXF5Vm5iTGF5RWlPM2dEZUlZVVEzUnJUNTd5MjNLajZu?= =?utf-8?B?TGtVNXdWdG1qTmozb1FVVldOSVJWQ0FNbHEySVZQNGU1VVBnYVIzdUdydU0w?= =?utf-8?B?VUR5bm1xanFhSVJLYzVSUGs1UUdZS1ZIR0ovWjR5cXlSaVB0V00ydFE5Y0RH?= =?utf-8?B?VUFyN3hVUVBNRWdsSnl1SXI2UFR3VTNqK2dVeVlZKzJMK0JFdjJuRDhTdEMz?= =?utf-8?B?MzRNRm90S1JiRCtJOEE1QWVXMXB4am5oemFvV0lxZWplSjAxRGpTMzRpWEZQ?= =?utf-8?B?WTQ4eUJ5RFRyQTJSbkh0MEg3L09QSUxqSVFrNE8vZHR2UG1vUXo2dGdOMjNZ?= =?utf-8?B?Z1ludStBWktSQ3FVa3p0ZVZQdVBQdlRDWWhaSlY5MEVTL1hFNDVIN2VQK1lC?= =?utf-8?B?THFSSXZGWVN6UE50a1MzTUFMamkzdk4yUjFmV3hkZTZjNmk3MFAxMGc0UjdN?= =?utf-8?B?eDJpYmRmcS9OODhiVlBVQlpZSmxSN05jem1MSm1MNU03OEY2aXZQRmRkSG9o?= =?utf-8?B?aFJGdU1rZy9LbmtCVmQ3Y2ZNckFpOTZsNWl2OWxKNlk3TXNBcE80dHpMSVNK?= =?utf-8?B?ck5EVk16L1JBRTNsbllHVXowWnp1cWgwU2loTjJSTzlpK2wvQjVHVDNtdWZx?= =?utf-8?B?dGY1UytPY1A4dU92Q0poQVFJcC95MVg4Z0pqbDIrcXdDVXpRTHBid2JCcCtn?= =?utf-8?B?VkJSRzlqQm9vOWdJVXRKcE4vUlNxWG92SHJmcFBoTzZkSlRzcjlUNUsxbnhJ?= =?utf-8?B?N1B3a2xTckFWU0RBYzNwVldSQUkvZWdwK3VJQ2xPYW04c3dDS0tBaDlOckZh?= =?utf-8?B?aktrZkdZTmJFbHBidlNSSHdCS3ZaWjJ3UjlhM2tBanh0MkxIWXBYMVdzU0Ra?= =?utf-8?B?QmU2Ukc3bUtZd2ZmUXhCUUw1KzFlZ3YyT2ZBRWRaTnY2VmxHU2pXdUUzR2x2?= =?utf-8?B?a3FpTi8zSXhaV0hsSHRDOGkxYk1oU3hUTGlVNDlBbmJZSUZaR3RPcGRHQkVT?= =?utf-8?B?YmVDTFUzZXZrS3RFdXdDNzVtdGt4Q2txeUVPK2JPTjFoM3VpZWNQU1h4ZGdu?= =?utf-8?B?Q1Z6VVYzZ2Q5SCsyVXAwb3dFN055K1prdnR4ZDVGNFpsOHVIZTM3NkdKdGlH?= =?utf-8?B?VUFNallva2FvR2pUQTVnRVZvbnA2N0pRQ2M0dnIxOFdZUHlPM2V2Q0VKOGg1?= =?utf-8?B?REQ2VUtuWG5JaXZjdmhvYmNRRmtidzQ0ZnZ3WlkyajRRa2x6dnorQ0k0ckRZ?= =?utf-8?B?dlZ2cFVhQko5d094RFlnV3hpMXJtaGxmL0NucGpScThObXdOMzJWTGtxOXRH?= =?utf-8?B?Q0swaTFORmhvc0U4SjJmbTgzKzZQNk5ZUk5BUlJyMWJEVjV0MUNBWlN5K3RE?= =?utf-8?B?ZFJkR1RUbGs5TjdrYnZ1NlJ0ay81SWIxZk5JZjFWOWgvanZYcS9wU0xFTWFS?= =?utf-8?B?c1B2SCtJbGVaemxCTVpIWGRYM0w4RGZaS2V2RjArUnZJYk9uTndMV3lsbTky?= =?utf-8?B?ZDV2YTVQaTI1MlRlRFJpWVpyeG1NR04rRGFnRGlQZ21Oa2RNUGxLdXRUZFlY?= =?utf-8?B?MWRXY09paW50c3czQVhlNlNiTHl4RmZ4QTZpM3ZhNU9uMTlLbjU2RkRPR0ln?= =?utf-8?B?QlZaeElPYURnSXZiZEZsbDFweDRTcHlMT2VsVUxRUFM5YlJzaEZUdz09?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75629b95-c6e4-400e-cf47-08da1b9eade3 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2022 09:35:56.3298 (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: 1796AaLqMAXa+Omo6Pvs370fierqwpmmWJVtAmWfzxTQogaFuddFatWEt0IEQw/dPvbGrQtqvAWbNpNwoidMJQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8609 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1649669788482100001 Content-Type: text/plain; charset="utf-8" Prior extension of these functions to enable per-device quarantine page tables already didn't add more locking there, but merely left in place what had been there before. But really locking is unnecessary here: We're running with pcidevs_lock held (i.e. multiple invocations of the same function [or their teardown equivalents] are impossible, and hence there are no "local" races), while all consuming of the data being populated here can't race anyway due to happening sequentially afterwards. See also the comment in struct arch_pci_dev. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monn=C3=A9 --- a/xen/drivers/passthrough/amd/iommu_map.c +++ b/xen/drivers/passthrough/amd/iommu_map.c @@ -699,15 +699,11 @@ int cf_check amd_iommu_quarantine_init(s union amd_iommu_pte *root; struct page_info *pgs[IOMMU_MAX_PT_LEVELS] =3D {}; =20 - spin_lock(&hd->arch.mapping_lock); - root =3D __map_domain_page(pdev->arch.amd.root_table); rc =3D fill_qpt(root, level - 1, pgs); unmap_domain_page(root); =20 pdev->arch.leaf_mfn =3D page_to_mfn(pgs[0]); - - spin_unlock(&hd->arch.mapping_lock); } =20 page_list_move(&pdev->arch.pgtables_list, &hd->arch.pgtables.list); --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -3054,15 +3054,11 @@ static int cf_check intel_iommu_quaranti struct dma_pte *root; struct page_info *pgs[6] =3D {}; =20 - spin_lock(&hd->arch.mapping_lock); - root =3D map_vtd_domain_page(pdev->arch.vtd.pgd_maddr); rc =3D fill_qpt(root, level - 1, pgs); unmap_vtd_domain_page(root); =20 pdev->arch.leaf_mfn =3D page_to_mfn(pgs[0]); - - spin_unlock(&hd->arch.mapping_lock); } =20 page_list_move(&pdev->arch.pgtables_list, &hd->arch.pgtables.list); From nobody Sat May 18 21:15:55 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1649669812; cv=pass; d=zohomail.com; s=zohoarc; b=asgyalNQvOPuYAJGuaHiHVwhIELRtTMSOv38dv7S7fwyqOx4UMarZRem0afUzxwW17/ipi61MNMrAtZZvXc/W+lR9k0fYb39IjqTtM1P93Wwr554bnv6eC8dge7zeQge6k9cYbXiChOc3BdSX6+9YitBNfAfF7cx+8h8i+M8Dcg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649669812; 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=XiXlRp8KAwreSj5L/XmU2xaUcy67hxd0OIDtCutKoAY=; b=nAdKr0VQFOzsy7vewh6E8MIZkETff3x3lpDSamG6BcEac7vJC4E9BcZctVwbOxM0eXRd5BObmulVqrekstvmtv8JJfjDZRhzkMsQPgh38+JxsK5Hc+lu9O8c/mVd/7NnAXr8WN2MJaQzBxlJ+2Ku7A1TREcCfXMDtlwNizONK5g= 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1649669812161795.3434020393762; Mon, 11 Apr 2022 02:36:52 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.302773.516526 (Exim 4.92) (envelope-from ) id 1ndqTE-0007DK-Co; Mon, 11 Apr 2022 09:36:28 +0000 Received: by outflank-mailman (output) from mailman id 302773.516526; Mon, 11 Apr 2022 09:36:28 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ndqTE-0007DD-9R; Mon, 11 Apr 2022 09:36:28 +0000 Received: by outflank-mailman (input) for mailman id 302773; Mon, 11 Apr 2022 09:36:28 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ndqTD-0006iD-Tr for xen-devel@lists.xenproject.org; Mon, 11 Apr 2022 09:36:28 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id dbe7b3b0-b97a-11ec-a405-831a346695d4; Mon, 11 Apr 2022 11:36:27 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2055.outbound.protection.outlook.com [104.47.4.55]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-39-i6JRZvgnPVO-5PC4T0Fx5g-1; Mon, 11 Apr 2022 11:36:25 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by PA4PR04MB9639.eurprd04.prod.outlook.com (2603:10a6:102:260::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.26; Mon, 11 Apr 2022 09:36:24 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1%6]) with mapi id 15.20.5144.029; Mon, 11 Apr 2022 09:36:24 +0000 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: dbe7b3b0-b97a-11ec-a405-831a346695d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649669786; 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=XiXlRp8KAwreSj5L/XmU2xaUcy67hxd0OIDtCutKoAY=; b=IB73sCyy9Y8rl4eskM4wMIbuBbiKU6jnHpyg9BGiwdypq8ERuUyrEMpQgSuB2k01rg+3IZ rAb8ItcJQ30j+4wumiUWu1IB7u1LaOpxzzgArED+XfS0RWLMtBXKxuMfvpHhKlg7Czontl hmhjqt9GmJspgxTndg5/GwqUAevz92w= X-MC-Unique: i6JRZvgnPVO-5PC4T0Fx5g-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a7EfJJrsByPSCYJnSK9bd1I3HAaWUpbVbi4B/UvPjPGZ0V2E1xUK7CtFKtCFNF7KM/DykFVISRruqhjRoWXmzWXS2ZN50nZ23B5kbqgCtKqctD4+u9OXGah+9brw6sKjtIFZj3Ykzsa+RVVx3FqQH2GMMZNMJXdR2qO42IaTedCd426vEDPbN95u2TqQhLFNoyPhukd79DOaiQ2RdyKYqnPhEnXFzrHaFhKlVKWnVp+UKoy4mnJNiucnNhlP4PSdAKL38IPd0efZLYcKqgyjvtXvISyTh7gYAeSOi6zwE2B+6Xgb5tG7jBUIwx2zZ/KQgcJitcydG91JfpbmM50d4Q== 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=XiXlRp8KAwreSj5L/XmU2xaUcy67hxd0OIDtCutKoAY=; b=kmOSpa/UkF75vWDXm2tWFl88lgghOCxyQfAChE1htTjqQVDiTt4L9qZQOZ9bGrGWQmXCLkTXCs9Hm/+h9lepUyorhuktdo/u5+RQfVYeOTrQYD1S/XyboK2FobiYrNQKxyxfI/1FhrnPYpk257nL6gsqoYsyR2/sOv5MQ0eIc5FmB7s9VdrPRv+ILeZ+AC3QX67URQD+ETcNbbAF3pSdI2mJ8ltPCcExMAqPmCHnLr9TZ/pZMvODkNxTxBqwTsWjQ08rq3+ldoua3PhskQqRJGV1bnU8IWW28HV3i7J+HQizMyzEZUU0h3Ui8qaXxp33WTtD5/ILtfvdMVTlTYmLdQ== 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: Date: Mon, 11 Apr 2022 11:36:23 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: [PATCH 2/8] VT-d: drop ROOT_ENTRY_NR Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Kevin Tian , Paul Durrant , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= References: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> In-Reply-To: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6P195CA0041.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::18) 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: 4f5823ed-a78f-4cf3-361a-08da1b9ebec8 X-MS-TrafficTypeDiagnostic: PA4PR04MB9639: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: bdHNKV9LAf9FsUcMkxqWWH+0rCP7H3FI+osryLp/n7jsy8vbeVSWcVli1wLGhp2oAa+yhaTsu8RUGT0dv+BpH195ra+8SNt5Tgp+t/S94p0JBOAJlgsagvslxbMShwXPikxLWGKHPaCJfHpqlDwkxLgKCla55KfCv/uZslIqnKD6aOiMK+VeH8W+atWx0ZoGYstQir92Eu8+UYO4mrGA/yUrimMSU0Qb+SOiJqs+B6V3cv9/U23UgRKTmst5KIgg2Wce5UByD5RrJtCi7jFzm3sw9iJlh92qjqOd1SeqheMJq+DR3Ac5C9CmOHemVOekj4A9pceB7zfOTUexU0Z521bVlG5/YKsmdA3USsNvAh8NpYq28iCc1ktK10b9tKd7h91gyD8u73wgu1/9/vBDFtakQ4v8mzwJYau+6eFNiDF0CgUGvusKnLBWjGBnNGb57dYMhXH3gVPTQ1+glZndLsfL1RRYPVcctCjAEMrRjz1XBUrhnnO+kZ3gihBFaNwsRmzagoNKzQ2Y/QJHTCfsNIXxQHGnLsag7Y/HQmMpbzpq78GnCWxzE5ryap5KevYewmkQw9aHTOINv4YH86KSqDIev+TXA05+oWQq+hke+E5h9VmPjbYXGpjXMzKbuEwxfR6f6sUtXkSBDI6LqMnEZxofovFGKbmQutJvnUrixofyu9lWW0JxY/nTTOSaXnvQVxgBq2SlHpSDHHa+HLEVPxNqiV8Zzo20syeq2LubnNyjjfbXRcPGdbcyvmNVwlSt 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)(5660300002)(54906003)(8676002)(66556008)(36756003)(26005)(2616005)(2906002)(31686004)(6512007)(186003)(316002)(31696002)(6916009)(508600001)(4744005)(4326008)(8936002)(6486002)(6506007)(66946007)(38100700002)(86362001)(66476007)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dEEvc2JicGp0bkM2WEM4WDFMQ1BwSTRUSWx2eHF3c0o3RlN5RUtLVVhZZGVx?= =?utf-8?B?TVdBMGtmc21oa0c4ZGxNVkREbWsxNjdSV0lyZDhUbEgrU2VWUkc2b2treGJL?= =?utf-8?B?T0Jrd3NpQWgxLzBmSDE5bTlqcHlkbWYvS2l3UzdBakRLOHgyU1FPdUEwYnRk?= =?utf-8?B?WlJOVmFQZVFIYWVIbnU5UmRvMUg2SmdHeHBsN0dDL0VLZWxwSFg1Rnd4TTQ3?= =?utf-8?B?OE8yYkFsckxWRmZpZThBYmRxd29Db2Q5djVBUjBOUmhwNHRWYmowbFh6blRp?= =?utf-8?B?NFoxbHVXTFhaMHdRSFJ5WFh4UVlRU0lpK1daeUNTbjdodWhMWDRUbUNWZVpE?= =?utf-8?B?djhTMmFlV1pMWGRrWURsa01VcVpoOHdYWGxLcXpMR05vb255UmtveFBpamE0?= =?utf-8?B?Vmo0VmVqOW00Z0ljUWh1MGRxcE8yVlBRVjZoWGJESzRuWVo5Qmdad0ZwM2Za?= =?utf-8?B?NDBPZG5kY2VZdkExUmVURWRhcklVYjBYODlRVm5jRTY5a1pTMWxtcURRcTE1?= =?utf-8?B?bFR1SXZwYXIxUXd5dWdheUVqdHd6VWZWam1IRW10YWNRZFppS3labjRLeU8y?= =?utf-8?B?MXJYMjZiN3d3TDBVVXNqNmNvYmUrMGlnZTB6TDNwVkFjOTRFL2tzVVN4Q2lB?= =?utf-8?B?a3pPc3VReGdlTnNHV0JOb0oxbHZQMHh0QjlEUlFGc1dqeTd2MEx2WnV4WERh?= =?utf-8?B?YUU3S0k3S2VxNkQwczgzL29KdVRpZmlSUU0rajNaRlN6WmNWOVYveloyTjJh?= =?utf-8?B?VFBJYS9FVkJqbzlZRjEvOHB5VWgwaDRCc3cwVGloVHlwNkZCZEoyenpQeVNQ?= =?utf-8?B?R3QvYVpEcWRWUGFtWkx0RHc1aTU2cUhCR2cwTGl4ekdqZTMxWnNZZE5abDVz?= =?utf-8?B?V3J0c1JPQlA4TUIvM2NuTmE4WWpEcHAxU0FCUFlMaEJFRHE2N1hFVGdiczB6?= =?utf-8?B?U2VuNkh0Qkk5RENoS0R0QUdQeDdUUm9RSmZFN0tmeG5aZXZwZVF5Z2I0WUto?= =?utf-8?B?VUhDRStCMis1TE9RZWhYUHg5UEkvQXFEY1F5VEdlNXJUUjBCSENtZlZBeVpP?= =?utf-8?B?V2x5bDBOQUdyM1NTKzNaZ1ZzbHNZVGVwNlhWdUltTUNhdVB3T3lyZVNHd3B5?= =?utf-8?B?QU8wTjZOYjV6a0VvcStoYU9oU0tCcGMydnYyT1ZES2JBbitJejk1S2lVOG1K?= =?utf-8?B?dVY3Y21WSkZYcjc0WlEyT3FiM3l6Qm54UzVieW9ieTB0TGtUektJUGVkakdY?= =?utf-8?B?aytGSTNNWGNIQnRZWDdNTTBBRU1NcmpLcEoxOWNPWS80dms1cTRLZGpzODhq?= =?utf-8?B?anpRdEk3Tm0ycFZ4OGRXUVJVKy9rU09ZUmp3ZXpJNytNdS95ZEFGeUpzRkFu?= =?utf-8?B?ZnRtUXp0WGt4R2FRNk5aY3U5UEV3WGgyREpYVytHVnBXWTJGcDc5QlYvak5Q?= =?utf-8?B?R1JUK0g0WXlhVXFjcFEzWFB5eXFRRGhzbWtTaFlpU2VxbnN3WVJvRzBoaCsw?= =?utf-8?B?eG9ZY2Q2WUt6SmtIbWVSbGJFL3hia2E3SFJURkhpK3JDRWVuVVVpWW1rVkdh?= =?utf-8?B?NVI4OVNZQVp4cFdaSFNhU3ZOMkg5S0FYSFF3azZrTUtoWmxRWHBjSHJFeng5?= =?utf-8?B?Q25NVnNsVDFYV1ljZ2ZsTTNWa0hkZmZqVVpKSVNtQWNCS2x3N2tmOVh5NHFH?= =?utf-8?B?bFdUVXhWbEJOVnMyNnd4ZDdSNEViZ0RlSlZJV2FKeFB5aUlQeWZ4V1BXNU82?= =?utf-8?B?eTdzbnJyUnBNelZTRmt3MitBOFF2U05QYUtCc0tId29sdGpCWTRKb2F4bmRj?= =?utf-8?B?N0VyM2V4bkYwSVRDR3JITFkrYk45OGw2TlU2alFFbUxwaEllc1VPeVNxSlJo?= =?utf-8?B?MU04czNBN0kwTFVIeGlLemxDdFQvVlc3TW9hY3o2WXQrbU05Q0VsVHVoV09G?= =?utf-8?B?QUp1L3pTVmpORGNxU0pzejlSZmZnTUxJY3hkdCtiaWloNUdYbVVINCswZzlp?= =?utf-8?B?ZU1BMnVMUHJLb2l1U2J3R3V1MEdFQ0FQYnMrYUFsdXR1VHRvQzhPeFpRNjM3?= =?utf-8?B?c0xhWmxZeVgwOEV2UWNFWXl1cStlZjl2dlkvdkRlQnBXSVJ5M0RsaDdnWTZF?= =?utf-8?B?aE9uK2hHb0VLKzl4Uk9ITVUyb3I4SE5XZS9WZUZ5NTFER1I2dzluekZQdHgw?= =?utf-8?B?Um0wVHp1TXVRV2tPb3NqZVh3cjBkYjgzaDVDRlU0T0I3ZWhiVHMrYjdZdEhp?= =?utf-8?B?R2wwU0F3QVBXZ0NyMlFTTENQZHBUMjNUbXR5WGJBMThGRDhHYlE2QjNhM3FW?= =?utf-8?B?NmJDK002bm1WTStBdVpLUTRrbHBDTVdDSTVmbzAyQW02bWxBNHlyQT09?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f5823ed-a78f-4cf3-361a-08da1b9ebec8 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2022 09:36:24.7952 (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: 5LhjsT5Kxk95Y279pXdpxZHXhnbTh95djOtli2w7Ccg7ou/npL23oteRAK2TIRbvk7vCYquBbu07ImMuBnLiVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9639 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1649669814138100001 Content-Type: text/plain; charset="utf-8" It's not only misplaced, but entirely unused. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monn=C3=A9 --- a/xen/drivers/passthrough/vtd/iommu.h +++ b/xen/drivers/passthrough/vtd/iommu.h @@ -204,7 +204,6 @@ struct context_entry { __uint128_t full; }; }; -#define ROOT_ENTRY_NR (PAGE_SIZE_4K/sizeof(struct root_entry)) #define context_present(c) ((c).lo & 1) #define context_fault_disable(c) (((c).lo >> 1) & 1) #define context_translation_type(c) (((c).lo >> 2) & 3) From nobody Sat May 18 21:15:55 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1649669837; cv=pass; d=zohomail.com; s=zohoarc; b=CKO+UnQTe7PxFRNO+pkBIIF+vvQKBXDN3DeDpRRguNvg3mlWYnr6KBm99iVdW7Sm4cG4H9RzyWAQacB6zgcsPBj/oN64pD73k/x9bNxHRUDcmMHcRK9jxBqmPuwDlcCuijM87pZm8phIo/4UnoD4nrfwzqbOddiq2J7kNUqI+1o= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649669837; 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=JIOtB5hoGvxfTiBr5WkyK/emu3c33KdonytgCqOz8N4=; b=hqR5pLkabUrfd3M/j30Rq/iCqZJrGIuyTejEtY7kspiVtJqvIlgqWRDpbAry6nLTdO4b99vQHwTt+Z78U/RcuwTWnG6ssuTxzTte7hAwRR3N3aguKnDkj8CaCfmS6g6RJyIfCiQL1MN7nG9ytrGHYoVGCASa4kDesfXqq0i7Tak= 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1649669837025500.63754100901565; Mon, 11 Apr 2022 02:37:17 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.302775.516537 (Exim 4.92) (envelope-from ) id 1ndqTd-0007lB-Ky; Mon, 11 Apr 2022 09:36:53 +0000 Received: by outflank-mailman (output) from mailman id 302775.516537; Mon, 11 Apr 2022 09:36:53 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ndqTd-0007l2-Hl; Mon, 11 Apr 2022 09:36:53 +0000 Received: by outflank-mailman (input) for mailman id 302775; Mon, 11 Apr 2022 09:36:53 +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 1ndqTc-0007jK-V3 for xen-devel@lists.xenproject.org; Mon, 11 Apr 2022 09:36:53 +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 e47771de-b97a-11ec-8fbc-03012f2f19d4; Mon, 11 Apr 2022 11:36:41 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2171.outbound.protection.outlook.com [104.47.17.171]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-25-tNEkerSfNjqnywlkASB9kA-2; Mon, 11 Apr 2022 11:36:47 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by HE1PR0401MB2457.eurprd04.prod.outlook.com (2603:10a6:3:7e::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Mon, 11 Apr 2022 09:36:45 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1%6]) with mapi id 15.20.5144.029; Mon, 11 Apr 2022 09:36:44 +0000 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: e47771de-b97a-11ec-8fbc-03012f2f19d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649669810; 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=JIOtB5hoGvxfTiBr5WkyK/emu3c33KdonytgCqOz8N4=; b=YSraPXG+NKJPKQV7XEbpBJSCUveMbHQ61KD2AwzOiOHZ46FeWXudkL1ogykJj84ASjv6b6 W6A/AxrKGK3eYij+cd0JrRBfFcxnsMrsCtLGyli7wX9739GxgKHPYe2/8RDj22VvZWgsfh PlLpFiGBG8afqqO3RwARErCwp+hw7+Q= X-MC-Unique: tNEkerSfNjqnywlkASB9kA-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QKToGTdRtFQqfWWcuJbuadyybRdJuj5V94VWNj0rB/6eq88t74cT7QbVPd8ZUhQul/c3clXjgNNE/7As+2QaGpHqWnnDHqW1xClA0293YqUcS5l9b1SKM1W/F6peWFyTV6D3AKYsafWQI1xPMYuyoa/MLpGikoSyynivQaHj6cN6oRs5eQd8CdEeTOzo969XxCIZ+994yr8jPa2x2lPlcXkBXE1nxrqvq5fQdyZhoHIG1l0MNZA6yPLt0YV8Wfoi7v1TDkuakfpCpA8MFF4WhIuiiWsZqYvOP5QQhdXfxCy9Mp6G5FgsZ4TvJW6jw6mjQM70x5WnGhsZOxNzwKLdpA== 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=JIOtB5hoGvxfTiBr5WkyK/emu3c33KdonytgCqOz8N4=; b=EH86Tdakl5zMvOABjYeAHevrsu26w0tIVYhywTlDjI+gzQadw6YE5cK+QJQ4rstD+gcvEvz0bXidNWxtw5V3km9qWSKsc1w4xgtFZeIZszaQyGSoySoz4cdNDaE2QFHh0u48M9/pJ2T7O5ToEsO/a3SRTNgdTHGaneDn0Lrlqq/f6RUQjXvjLjhuRCELNhDWbFPd3Dmfo8GNJ02jjnY+S+YrVwt2b5S+ozpFD4bNKcqg4WV08V0VGnNvKzPKPF6NtuQjNfsGsc1qCGVnoRovsla2MFxKQB/ANHAtCfZuDGy+DQ8vg50UqoPkx52/MnQqNHCwsH6jk7zbcg73w6kdoQ== 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: <10f43cc4-7a09-9f4f-0a6b-fd7ffd88310d@suse.com> Date: Mon, 11 Apr 2022 11:36:43 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: [PATCH 3/8] VT-d: plug memory leaks in iommu_alloc() Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Kevin Tian , Paul Durrant , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= References: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> In-Reply-To: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6P195CA0040.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::17) 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: 950c6d75-ecac-4771-7c14-08da1b9ecad8 X-MS-TrafficTypeDiagnostic: HE1PR0401MB2457: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: obY6t5IbgFK8u0LdxwRleVsbxyDuAAhLmLUvXt+wT/PQo4Kpvrotb8ux3+Gs1gpcCHWcrlQqGbflQUWD477CahsGbyEu2wU3Vv/4vPYy1rLon34Zy6HZIr+EZC9D3hyDihouuNej71+a2K+O0sjToypjlsuHZyvTvN0+1WEN++S7e2haspKzusu4m/RbguqnAL/W88Vk2Q1590dFaWQyhKrFc6Rc93zlEjh2STQgLmbRHEtXnZECu9y+xkGYCYXKqwCXfy58ur2rJO4N+9djJFqgBhDjAnQ8sNlnPryw322MfsK1G09df/qQiGxWlshPhROk/I8vyHmcRv8M14kochL5+pvUxrhctLWCi2nFWKuBXMN+jqKQFw84ijObl2pS5EOralmQvfblFsGakgn8BOXxGvLBgqNdmpqA/qSupV7sFEszEyW0uZrG8S0+WswrJ5kwQyC2J3D5HAc86Vvuu2411czLsq+fK3MCB66J2Y5L/k/WeQSoaBTre7bIZlPil7CpaC3kElYnOxr1+gP4iqy69USiy1AbvdyU/vonT1xRQmCoNSHsPhGjXFGkp3iB9wKdUvth4Z0UO6XuqqrWhuYHzSXmsGe8NCVogiCtbTxSWsJlMYvEBcw4XzgNbA/5h9AS8KkRJXC382+EQ7nPAVkOTrRhSakVXcqAoV4kinXS6clLcrUHf89XhNlzsSx+hXBJNXii2pa1/WUmlEVJnosc2CbHMDeCHP2gNr8sQSGcJD7uPGexww+8srIBEk6T 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)(2906002)(66946007)(8676002)(31696002)(5660300002)(6916009)(66476007)(66556008)(4326008)(8936002)(316002)(86362001)(6512007)(6506007)(83380400001)(186003)(6486002)(38100700002)(2616005)(26005)(54906003)(508600001)(31686004)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bm9BcFNqSDhqcEJuckpJYk1QWUxoT2hkbnBjQjk1NjhRb2luRkF4LzFUb2No?= =?utf-8?B?VUZXVyswTVlldElVRytPODBNMWxHK3YzUlNkUlNxc3BsT2tMRVlvVmo0ejVv?= =?utf-8?B?TUdvZHFrNHZrM3dEZUliaHRyc3pVUUNWcnU1WUpIK29GbTJMM0g1cGdwUm1H?= =?utf-8?B?dnJkcGJBRXpOek1meHpNYnE1dEhYSkg2cXZQNHdLMFk0YXdGTlFlbmZGOWR5?= =?utf-8?B?NUQ0ZkVYUm96Sy9QRVJ5UlpJaWNFakgyN25tOGlTeDg2aWtzTkMya1hldzV2?= =?utf-8?B?QWZ6dnFpMHdrdGpESXhpV2NBL0Z3R29icG52bXRib0pSZGNnenB2RFBILzVq?= =?utf-8?B?eS9PTmJmOUNuME52NWFKbld4VFJvV2hDV29wTEVrUGRaNlU5YmlLRW1IaVJw?= =?utf-8?B?ZzRmQU50YjdkbWdrSHc3TXRwVXhNbkgvNzlQblFhVmgvQ3E4aXJIcHNlRWU1?= =?utf-8?B?M1k0djJCMk5wdlJPa0RhL3NlVEd6c0MxOWRXMStsM29NWHdleTV6Mnk5VVZW?= =?utf-8?B?RG84bUtpY3NPd2Y2MGZVb1dQT2xYallsRm84ZkN1b3V4aFVhQjdPTDN4c1VU?= =?utf-8?B?ZHNXbHBpVnF2elYzdTV4MDFDN3BZT2dIUU5CdEFGdmdlWmRuYXRraW9oT0RZ?= =?utf-8?B?bW50VnBXTWxhT1pYMURKaUlCMGdGNm1OejBrUTllSXMyNHhrT3FGV3MrcWpV?= =?utf-8?B?V1pMVDRhYWRpYVpBTGFETzBmZkxqT0U0cVY2eWgvOFhycUZXWEdaQUdzTHlP?= =?utf-8?B?a1V2T1hlOXAvdWpxOEVsaXE3WGcxdVpMSncrMWkvSk5SMHM3eWM1d3d5dHU5?= =?utf-8?B?ZU5qMUlpTUpvZzlldEozL2FNYUxIZ25EVXlseEZjVVBObUtlZ1RwVGJpeGF5?= =?utf-8?B?OFU1ektrTlg5KzNUajBiS0NuMWdhdklzK1l0VDZGTlpXOXd1d3FSeUV6MW1k?= =?utf-8?B?Zzhud2NPS1ZwRjBzWGs1dmxFTDdUM2RkVml5T0w3cTVYa1BDeDZOOCs2Y0Ev?= =?utf-8?B?amxyai9GaW10a3NOaXByMWcrU3Z2enU4NllSRjVXRXNaYVpqeWQvRDZ5MkFB?= =?utf-8?B?TExqY2l6VEhpd3Z0WWtqNEdSNGkrZStuUjR1bW1reWlJdlBGQTZhZzdDVHhF?= =?utf-8?B?V2lPT1dEamprOUtMbnNsM2xvSG5UNTQzejFIak1NZWZBOTZMbUVUT1RMOWhi?= =?utf-8?B?N1d6SUZlY3hHMVRjYVNYOW5ucmN1VU5vL3U2WmZ1cWQvY1B4ZEF2Ujh5VHRC?= =?utf-8?B?S3lxQ0w3MjU4d0JVc3psTUtQT05uR2QwMWFoTVJPaG85aDk3SUZqNHF3OFQr?= =?utf-8?B?Z2kxWXpkeWxHOXZMUWFiU0tJdE1ra25oV3ZScTVOSnp0ZXBXcEs5dS9BYU15?= =?utf-8?B?QkxYNjM1WExKWGk2aTNMQUhpOUZzUSsvL0Q0anB3WC85ZGdJSWdBQVFyb3la?= =?utf-8?B?NHNZRmYzZEs3bk1Jdnc2a0hCYVA0Um1GODR5ZlpVdUpuSkVjZUNSNlZ2M1BD?= =?utf-8?B?NlFVT3pKTVpTK1M3QjNiZHh3UFVrcHQyTmcybmMwVmJPVDhkbjJSZTdNWFR3?= =?utf-8?B?ekRYc3NLKzFBM0VrMHVwTXNsNjBadEw2NEs2TWFMZCtTNEtCN3NMNDR2MExC?= =?utf-8?B?NWVnN0VSYTlta1I3dEtDeEhwSEJydGRBWkFhb2hoRVYvYVdEVUNTbkdUK21q?= =?utf-8?B?b1pRWXZ6ZVVEWU9PS3ZMVWdmOXlkZWg5dEJQMjh2T2Y0V3VsTm05dkdiQnNs?= =?utf-8?B?UThFZkpsZzBKOS9KM1RuN0Z0Qk05OGZscU9KN0ZlaFlMRGpBcGErSGNzQ3Z2?= =?utf-8?B?NDdGdTkzY0lNSk5ZUlUrYlVOMmsxOUNWMjg3U28wQSsxcHdWYzRFY09pZGdY?= =?utf-8?B?RFJkWXllSkVxWkYvVkVtVTQzNkJ4eWtYVXJJRG1WZWs5VVBRUzdNQ1AxQThC?= =?utf-8?B?d3d3VDNMVjZPaXFzWlp4NmtrYm9JSEQ4NEV1VUgzcWlQaWdZa0JwYkhTbzg4?= =?utf-8?B?Ym5tRnRKRDIya0hLTFRkNDJ3QURycGVsMy94R3QzZGZPdEpVcnRTN1J2OHBp?= =?utf-8?B?Wk1DWjJUa3RtTlArV3ptWVBsSk41NjJRdEtZWVNNeWRXeEc2T2hnOE1XZUhz?= =?utf-8?B?OUxWV09GTFBmQnc1TjFRbGdpQmJPNkV0SE5ic1lHbHU1ZkVuR3ZybTIzR3lr?= =?utf-8?B?d0pteXFGTDVmeDl4ME5rTnp2UUV4MCtSblhHVXFGbWxoVWtGWVNwbW55TUI0?= =?utf-8?B?R0h0bXNKbE9GbE1EMWp3YjJCOTdLak80WFRDSGtSWnlvZlVlL0w3Ym5hUW1U?= =?utf-8?B?Z242YVZuRzdDU0hOSnFDQllxZ0NMUlQ2bVRVRWhqTEJuZDBKTzB5Zz09?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 950c6d75-ecac-4771-7c14-08da1b9ecad8 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2022 09:36:44.9385 (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: BpIIM1C5pDpEjrlV0/H+9/SlOts+Wlj56MEf8UR5QJihAC/6i+r4DHUb2r3X12IzDAOXKguONI1BoU1JTT1l8A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2457 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1649669838451100001 Content-Type: text/plain; charset="utf-8" While 97af062b89d5 ("IOMMU/x86: maintain a per-device pseudo domain ID") took care of not making things worse, plugging pre-existing leaks wasn't the purpose of that change; they're not security relevant after all. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monn=C3=A9 --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -1238,8 +1238,9 @@ int __init iommu_alloc(struct acpi_drhd_ drhd->iommu =3D iommu; =20 iommu->reg =3D ioremap(drhd->address, PAGE_SIZE); + rc =3D -ENOMEM; if ( !iommu->reg ) - return -ENOMEM; + goto free; iommu->index =3D nr_iommus++; =20 iommu->cap =3D dmar_readq(iommu->reg, DMAR_CAP_REG); @@ -1260,8 +1261,9 @@ int __init iommu_alloc(struct acpi_drhd_ printk(VTDPREFIX "cap =3D %"PRIx64" ecap =3D %"PRIx64"\n", iommu->cap, iommu->ecap); } + rc =3D -ENODEV; if ( !(iommu->cap + 1) || !(iommu->ecap + 1) ) - return -ENODEV; + goto free; =20 quirk_iommu_caps(iommu); =20 @@ -1272,7 +1274,8 @@ int __init iommu_alloc(struct acpi_drhd_ { printk(XENLOG_ERR VTDPREFIX "IOMMU: unsupported\n"); print_iommu_regs(drhd); - return -ENODEV; + rc =3D -ENODEV; + goto free; } =20 /* Calculate number of pagetable levels: 3 or 4. */ @@ -1283,7 +1286,8 @@ int __init iommu_alloc(struct acpi_drhd_ { printk(XENLOG_ERR VTDPREFIX "IOMMU: unsupported sagaw %x\n", sagaw= ); print_iommu_regs(drhd); - return -ENODEV; + rc =3D -ENODEV; + goto free; } iommu->nr_pt_levels =3D agaw_to_level(agaw); =20 @@ -1298,8 +1302,9 @@ int __init iommu_alloc(struct acpi_drhd_ iommu->domid_bitmap =3D xzalloc_array(unsigned long, BITS_TO_LONGS(nr_dom)); iommu->domid_map =3D xzalloc_array(domid_t, nr_dom); + rc =3D -ENOMEM; if ( !iommu->domid_bitmap || !iommu->domid_map ) - return -ENOMEM; + goto free; =20 /* * If Caching mode is set, then invalid translations are tagged From nobody Sat May 18 21:15:55 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1649669881; cv=pass; d=zohomail.com; s=zohoarc; b=ZIu72hq3IrYRyozdB95DY/CIxq6kscaiCmEEpskARkvfdkUcjZ509BL8LBI4l0Z9TRTt/7T8CGxul8r8+lyHiIHBUr6b4G6h4y7eiTgBNewPMKXR+68rNvIO21YKSVgsQs3B+RUdmdozvxmDJLdfzD4tg2VIa53GQ2HOMrxL1xo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649669881; 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=QrdD3qAeqW/aeTb5B3y1/J7DaT6w+fqGApWyQhpbnKk=; b=BFIwi09/dzpBX84aab6SQPvRzz9uTxWvPFFvrBLwQUQjWe/7NGPati/Ue1iUczhwX7zsol2D2r0TOwvj7BJgnxnpFX+B7d/1XY3MZj2ghdoLVj7tFGRLhLdEET0yRnncyKnMGqW3DMm2VmOjpbMNDmB466gR1jzIm6a+jV5amNo= 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1649669881651935.2848483804338; Mon, 11 Apr 2022 02:38:01 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.302782.516548 (Exim 4.92) (envelope-from ) id 1ndqUJ-0008Qs-UQ; Mon, 11 Apr 2022 09:37:35 +0000 Received: by outflank-mailman (output) from mailman id 302782.516548; Mon, 11 Apr 2022 09:37:35 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ndqUJ-0008Ql-RJ; Mon, 11 Apr 2022 09:37:35 +0000 Received: by outflank-mailman (input) for mailman id 302782; Mon, 11 Apr 2022 09:37:34 +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 1ndqUI-0007jK-Jw for xen-devel@lists.xenproject.org; Mon, 11 Apr 2022 09:37:34 +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 fe4d3d03-b97a-11ec-8fbc-03012f2f19d4; Mon, 11 Apr 2022 11:37:24 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2174.outbound.protection.outlook.com [104.47.17.174]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-11-9BhgKYcINt2V84FTkllM0Q-1; Mon, 11 Apr 2022 11:37:31 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by HE1PR0401MB2457.eurprd04.prod.outlook.com (2603:10a6:3:7e::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Mon, 11 Apr 2022 09:37:29 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1%6]) with mapi id 15.20.5144.029; Mon, 11 Apr 2022 09:37:29 +0000 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: fe4d3d03-b97a-11ec-8fbc-03012f2f19d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649669853; 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=QrdD3qAeqW/aeTb5B3y1/J7DaT6w+fqGApWyQhpbnKk=; b=Nsv4TpZZr04QG1PdRx/z7EXlQMT263BHa6QTRvBR4muAEtoKPyRxjdQBNiz0Yb3pF4LBWA XbpfWnFF6n45yl4cACpQ+D1+UdgpVJ7l4jY+KuES3OclT1NoYD4sCN9Gj0a9yM4UdrpL9Z CaXDTecY+qsbAsXER+PEXaFQF0UlRsU= X-MC-Unique: 9BhgKYcINt2V84FTkllM0Q-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QgTBgvpR63PNgKhgJ0nQKAd5MNxT7StX6ijlbl1NRG+6QIkeYLqhFfra5FH08k7x2bmvf0PGXfVCKXkz3pjoHkIb+zWY7ateUxnjA+ymQpVPHpbF9qufg4QckXstczQszcY8kqxfzpeLxHvVg+kGOipUkOLWlRRaEqkDYE1cBKSvkSehBBTiSn+TKIItllYUK0qcg2iQ2GR8zsrB87JQ9kq1EV5yq+MboqiuPJJEQn9NnEKCadIHpC9Z1dHErM0ejiTvSFXkjyk1qBSiD7lI/+RZTTZUc9xEYju5n5LDozp01AbCStk3ufDWMoQ+BVWJHtUwJoJt57NnLPFLxCzL/Q== 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=QrdD3qAeqW/aeTb5B3y1/J7DaT6w+fqGApWyQhpbnKk=; b=VlYb5LIF8UwdTDCtiRgc1LPc2FbVRjVOylJ5KlfpT5RkDQ/SzFGPNZFArsexdwX+jas2xFwEWU+WAgW6U21geCeJyGojYMsBOftKG2pyE/MS7MEFSveVXj+kQJNZVbADyIQoMwrHTM3PJcBUAfrxOo45sKysxft9XiiQi311vFt5fT6gsBIsbJ8vspi9GQTz55yX1le7mO1oJ98uWbZjuyXW4CCsCIFKRk+8x7PuVQ63p0VLBhPx4WxdUqyrA8ffkVp1SAoL6HQ/tVti8mSalFf+9g0t9p6exe6eFx0+PAza1r78KBu2gRv0+i0rqbSNT76DTgeRaGXVPuFocoqWoA== 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: <0f7136ae-0b52-431d-f789-4b7d5bbecb25@suse.com> Date: Mon, 11 Apr 2022 11:37:28 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: [PATCH 4/8] VT-d: refuse to use IOMMU with reserved CAP.ND value Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Kevin Tian , Paul Durrant , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= References: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> In-Reply-To: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6PR0202CA0071.eurprd02.prod.outlook.com (2603:10a6:20b:3a::48) 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: 7abd9412-85f7-45ca-ae8b-08da1b9ee57f X-MS-TrafficTypeDiagnostic: HE1PR0401MB2457: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: SCt/YgoSKOkcgOM8H8+RLNmkPEZwpkNbY+RwjDd3CCqlkAEPRxR1MbznBlArG7Ck0khu19MmfxLYogLhUzLXuwaCA9GHFYwqFAVbZB5it5wIna1shzUUHAIsjNHw2a3dFRkd0wWKwdhtqCfuy8EEW3ynvheAVpeAf49eVEPCqzHHHgl+WhoeizHnqsPT0llSzXFeV75Cum4HsaePI/iy8r5bnHE3/10qFd4MhJ5SPCsxVdFcz6acvxhfJcCLJE7RrqMUImAo+PehD4ym1Q13HuTQNtnL+BzTmu/ZhCsT8Bzuhy+eR/vfpVDlvDPhX22jhgKLe8tZDwPOgUkNGbaN4VyiETnp1sZk0ZRr1QY9k89OG4FZPwAgl8Un6N++CYyCV+pob7NkMfiZWKyV6eCYn/9jiG++uLKh7YZJBALjbbfqJs3CMmdNbIMi/DMcYf/NzZtpov/zui0Xj3F79LIn8ammU3O3iXqMrhFFHA5okmZWYvxZgTml7Vg3vK9ZYB5GWcBIBwwS6jGgsmg9Pytu4kig0yEROdtDpFZqLSQVZnctAIyMs7VzYNC1bBlRCLiHOB4GqtUlUG+He6PgqXN6FmglKOTfJwNtfF1vm/G303fIea1pusvf+k3d2UU+rD54frGCAFe/II2zTX+iTpH5PKhqkTqrZ0PXMPPdsWOiTA8VitX19yyfAOyT/ZhSt1PmP97xLzVIG3VoMuPdcoKeu874RQMlGDOcA/o+2eFegHlUPy2kX8VnDFWQSyJy0HZz 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)(2906002)(66946007)(8676002)(31696002)(5660300002)(6916009)(66476007)(66556008)(4326008)(8936002)(316002)(86362001)(6512007)(6506007)(186003)(6486002)(38100700002)(2616005)(26005)(54906003)(508600001)(31686004)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cG1jZkowN2JiQWdrdElkMm9KUVUwQzNMK3k2azFUaUJTNFdSTENJNHRZQnI2?= =?utf-8?B?VTBpeXlPRmprU0gyQmUyYStaTTlRL1UxOHJPa1puSjFZMFNReGs4YkdzUVR4?= =?utf-8?B?Q2twL0JpOGZkZzVVNWdFVCsrZDR6TFhUN0R3KzBYa3h4aDl0a3VBNkNBaHJ5?= =?utf-8?B?MUhMeTQraFNhUVVqYStCV29nVXFYMmFQVDRnaUs4VmFKeVMzRHgzd2oyVXp3?= =?utf-8?B?d2FNcVZWVGJ2L3lWUEQ2ME9jdFNOVXJnZVR5VFdUTXlZV0VZQ2lEcGQ2TzNQ?= =?utf-8?B?S1RCeXFUUXJBeHNQMGozdUF0UHpmaU9odkwrTnk4SlZzZ0hsdU9rU2tVSHky?= =?utf-8?B?RlBqNjlzM2tKb3Q4NGFyazl3NnNOUTNSKzV4N1YyU3dzSHNZTHlZNWJqWVp5?= =?utf-8?B?RlZ0QkpvRXVxOVQvYUhHY2p5SitHT3NSZFZ4S3ZRRlZnQ2NFSkx2ZHBiUUVl?= =?utf-8?B?QmhnMlpPSmVXUUdMcFpSOUJWWi9yN0wrVTZTTkZJVWw2QmJUT2JHOFlzRzh1?= =?utf-8?B?SC9SUkxiRnNiaDNBcGl1aVAwb1E3OWd3dTlwQ0lhWER2VzlQc2k2NWo5MExM?= =?utf-8?B?M2lsTlhySmVJOVl3eHpFK3RnZHdvK0FGeUdsMEgyQnlTK1I5YTBhTVdRekN3?= =?utf-8?B?V1RnaHp3RWVrVGN0KzhBaW1qMldZMjJ6UXYxUk93ZW4xd3NFa0xhUUFyQWRQ?= =?utf-8?B?dXI0OWtRZVU5MnR0dDBzMTVJTWlTTVJLdUNMQWl6d0FMNUY3b0FQL09jZXpn?= =?utf-8?B?NFdSYWhjcU1GOGZDcVVxb2FvUjd3YjB0Rk5vTytlR3pqa1M0a2h6SEtXUGpj?= =?utf-8?B?UGEzMHB5cE1LY0RtbzkwcEhvV3djaDg2bWx3UVhqQmtMN0pRM2cyMjEwbnBV?= =?utf-8?B?Z3NnNVlqMkVXM1psRzRmVGR1MTlOc1Y1VkVYbnRYN1JWVlhreXZQd0lFSmFW?= =?utf-8?B?RlBzTWtJNXpRenp6RmpSdnBiL3Z1dHp5WmlpTkVlZ3BybS9Ub2tBOE8rMkFP?= =?utf-8?B?UkNqcU1FbGl3Q1NrSStkQXMvcUVwSjNPY3FEY3VQek4zZWFkc2pFZ1g4K2Z0?= =?utf-8?B?U0tQdUxHU2d2V0lOVTc3MUFNRFVNNC9SUW1wOVpWVTFBWnlyOE1DRWxNeExv?= =?utf-8?B?V3VqaU5RTVBLemFQV2NLZk1LcjRwZ3h5T3dZRUtTQlV2RWowRXlTUVNKZ1VK?= =?utf-8?B?RFlDaWRqVGxidWxHakNKbVFYVUU3d05ZNUtlTDlNZEtkNU1sNEFycVBrTjdS?= =?utf-8?B?WElPaWlWQWRKT3Bpd0ZuNThVMW9TSTl0cHZzUEFRbjRBMCtWVVZmbzBhZldt?= =?utf-8?B?Y3p0ZXkwM3dqL1NjWU80a05Tcy9jS2tTVlVMTE40SXVVU2lpdU5McFFEcDA0?= =?utf-8?B?Y2oyVldlUFQrN3FwcmtTMkNTTmFyVmpXS2hya2R1WjdiY0Jsb2JTTWJBZmRK?= =?utf-8?B?SUpYRWQvaW5IRUl6N0NoSjhDQnJKdk1zY25CdHNlejNERUk5Q1kzMzFBR2R6?= =?utf-8?B?Q1pUM0xjQ2tlRElPYlpLdi9pUitMWUZVWko5WWwzOGFzV1VqR0ZJQURMZ3Zs?= =?utf-8?B?V0QvaUdJQXdIc0ZkUlFLbFdiK2FXQ3pyajBMVnRoMThSbnpWTVZ3VFlCeElJ?= =?utf-8?B?dkp3QlhwdmV5VXJkbXZJaCtOY1dqeEc4eG54T3EyWnNSUHViY2dIcEhzKzly?= =?utf-8?B?WE9FQ3gzdS9KVEQxM3NUMGs4QUFYSkRQZUowQzh6V09WY2dwR1JJNk0rZmVv?= =?utf-8?B?Z3FyT1BuTVdDR3JMNVZlQzNLSmphL3M3Z2kxUGFIczdQWm9xSFZIYklyOStQ?= =?utf-8?B?ei95VWJnaUVBSVZlQ2dnMFJFRCtKRjFMVVdLZnNNc2pCdk83VWpVTGJLU3l2?= =?utf-8?B?bExyMXo4a3pLd0tjS0IyRk9XZE1TQlpXd1JUQm9KNnI5bU9JclRpemRkSGFX?= =?utf-8?B?cU1oTHdxd05DZUNhUkhNek1LcHFuOFVNQ0xMeDFxOXd0VHJ5Q3cwZ2NLZk9M?= =?utf-8?B?VThFN3ErYW1kWCtzZmZWbzlJODh1aXIvenF1ZmY1RkVpQXZTZ0NqSmJxdncw?= =?utf-8?B?NzhlZ01Ucm9mc1RRcVJwa1JxTk1nRk1CL0dvOU15TGlpMzBQTWx1VDcwZS9k?= =?utf-8?B?L2Ztdk14THNLZTRhTGNHeEJmKzc0ZFYzYjJUdUJUalpRUTdqbkxDODF5Uy9J?= =?utf-8?B?VHRWdHF5dVpVcVVmSExZL2pTWEo1TkhKRzNianF3U3NudG5nUnhEV3JuWkxx?= =?utf-8?B?Q3ZOemFhTVJUbFlYNVV3RWR0RU9odFhRNkJSSk5hRUJlSi85TkVJclRYMk5k?= =?utf-8?B?Q3o1cHY4SnJYandxa2Y4dm05Ly9FUWRGTi90cWVLWFJvVmRPVkowZz09?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7abd9412-85f7-45ca-ae8b-08da1b9ee57f X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2022 09:37:29.6416 (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: hr5IiKLGI3vwuvaSQiQlW+2mYDtoj7/YEruIeyH94txpuARHuldh2CqNVP+HBwsxN1f1BV0TqoMqXWtW+l+j1A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2457 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1649669882523100001 Content-Type: text/plain; charset="utf-8" The field taking the value 7 (resulting in 18-bit DIDs when using the calculation in cap_ndoms(), when the DID fields are only 16 bits wide) is reserved. Instead of misbehaving in case we would encounter such an IOMMU, refuse to use it. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monn=C3=A9 --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -1267,8 +1267,11 @@ int __init iommu_alloc(struct acpi_drhd_ =20 quirk_iommu_caps(iommu); =20 + nr_dom =3D cap_ndoms(iommu->cap); + if ( cap_fault_reg_offset(iommu->cap) + cap_num_fault_regs(iommu->cap) * PRIMARY_FAULT_REG_LEN > PAGE_SIZ= E || + ((nr_dom - 1) >> 16) /* I.e. cap.nd > 6 */ || (has_register_based_invalidation(iommu) && ecap_iotlb_offset(iommu->ecap) >=3D PAGE_SIZE) ) { @@ -1294,8 +1297,6 @@ int __init iommu_alloc(struct acpi_drhd_ if ( !ecap_coherent(iommu->ecap) ) iommu_non_coherent =3D true; =20 - nr_dom =3D cap_ndoms(iommu->cap); - if ( nr_dom <=3D DOMID_MASK * 2 + cap_caching_mode(iommu->cap) ) { /* Allocate domain id (bit) maps. */ From nobody Sat May 18 21:15:55 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1649669907; cv=pass; d=zohomail.com; s=zohoarc; b=L2Ip8N8FmFwSUoHOJA5zBonab5f6oAR/LYOdh2rAL9/ABlIlwjFm4Zw6TvIz1cKbd2ackv1JJdUIBnRhwJChSs7ZjcKpCd7L1+R7wRdseSYNAB3LJzcm+S05d5lBtq0/OeZXdmqCkyUbVVmk8nzxhOajeBOhPszN1MjQFcTS10k= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649669907; 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=WsXEt03rYwGXma+YK8JHkDArPL/VDC+WUTJ5m0TRmbw=; b=TgrSejYCIo5gP0+zz2V74ydfOCzTTc+Kc/MyhG0psAukTBCl5c8O1Ayz5j3sXmGX9IwF0PLFryJZ5S7JOTbLWuPcnX0frEX88iAjSvtN3tlj99Spt1vEYhs2xfIDjVKDdWAhrUOpqqktiR3qkV3EApfQ1f+0v9YlmGNObQESREU= 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1649669907091913.915114998533; Mon, 11 Apr 2022 02:38:27 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.302785.516559 (Exim 4.92) (envelope-from ) id 1ndqUi-0000cm-A7; Mon, 11 Apr 2022 09:38:00 +0000 Received: by outflank-mailman (output) from mailman id 302785.516559; Mon, 11 Apr 2022 09:38: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 1ndqUi-0000ca-7A; Mon, 11 Apr 2022 09:38:00 +0000 Received: by outflank-mailman (input) for mailman id 302785; Mon, 11 Apr 2022 09:37:59 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ndqUg-0006iD-QX for xen-devel@lists.xenproject.org; Mon, 11 Apr 2022 09:37:59 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 1213f83d-b97b-11ec-a405-831a346695d4; Mon, 11 Apr 2022 11:37:58 +0200 (CEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2058.outbound.protection.outlook.com [104.47.5.58]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-41-uECLT-hvNZ2WoZAj196Xhw-1; Mon, 11 Apr 2022 11:37:55 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by AS4PR04MB9364.eurprd04.prod.outlook.com (2603:10a6:20b:4e9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.21; Mon, 11 Apr 2022 09:37:53 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1%6]) with mapi id 15.20.5144.029; Mon, 11 Apr 2022 09:37:53 +0000 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: 1213f83d-b97b-11ec-a405-831a346695d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649669877; 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=WsXEt03rYwGXma+YK8JHkDArPL/VDC+WUTJ5m0TRmbw=; b=hVIUVsmxdS5jqAn4HNVMxGTJRkbwTPw/UPcze9YBMJm555VTqYqzHv/d/JvTIitxf1XW4B Yxpj340bbDOpR9JI+SMs/1xMBH+/o76Sby0moB+Yitb2ybKwyeqdnCC61JELVJ7+vBPNjf 0OCekjnTUoaeAyDVUe6y96YEBXz8Opc= X-MC-Unique: uECLT-hvNZ2WoZAj196Xhw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VeVZYMkCRTlqNEVCML3EQNhnreit1Bdg7+jPFsz6D6k90y4uWHkzLigY/D6Ziry/NQVmdRq70Xyeu76UvgISGT4hm7t7vf0LIXWF77iztFDi1dgo5OS8/Coqy7tY5L3hjdxDW19gFY+A0ykZ3xNqEzTwTPwdqo9CMjMr71IbIVb+MBILOdV1aMDrbvp4DZxxo6ztJo6Enn5Ec25gxe9tAFo4CE4guDQssnaS1EdGB9Mf+PLJl1ROwZ8m7/5JXsRUkymvlBmFTYKJhEOVEQ0aBUZgmX2T/Lqk19EDNf/lbG+k41iym+lF7xcj9Gm2N6YUuSkFNWUnkev6iKz6eQVeyg== 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=WsXEt03rYwGXma+YK8JHkDArPL/VDC+WUTJ5m0TRmbw=; b=AVMymlQbaxdBSB9aqn2nSGcBw+9TyJrvGdwa/NDN1zPoeBLaSVu/08at62bOegrF6YMK23hHpzopdm7p5bEIFtp7FvN7WRcEvppq+LBbNwrG75hj01kzbGCZ/V5fS/borTlMAhdUYhvAy3GHnQ7RsghryT3iRzjMp7StlqRjDusMRY/4RLLk9ta3xHgWo4zgoDrq8UJe4pPiymKwroE4u4ypcdI0rrLfLS3qFbXO+gaJWfmNojOCLcDLNYekI+4EQ5sUKU4TMcmgNKVHLp9VwmBHM2GZ9OyoavDOnqAGi/MxJIM31ZW0Tjydpu1hq/rPa74m6TwW97DMoQ86YQLJKQ== 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: <68a10516-7737-5bbe-e9e5-537031251fcc@suse.com> Date: Mon, 11 Apr 2022 11:37:52 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: [PATCH 5/8] AMD/IOMMU: replace a few PCI_BDF2() Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Paul Durrant , Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= References: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> In-Reply-To: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6P192CA0012.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:83::25) 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: 9b0986ff-aca0-4f27-bb23-08da1b9ef3d2 X-MS-TrafficTypeDiagnostic: AS4PR04MB9364: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: dNKZiZNvjAZZe7HhoBg7ZhOyg2+UvUv56WtdWkXTyMR0Wrt3POpFWRespPN0HH2AlB7Z9N+yanLgw0qnK15BuSY5W05nmduYzt7j+8E3Dq5MffOetZoFOr/qXh6J/YCexELIHgQpOAJf5n6ooXqCvM2avzD7cK3EkNYy9u7FESiWbqOQ7GUaf4tCmtbLA/OPoHSm0si1Ylwc6W/skQR+fiAgYjKRL5ATizTk/APte0JHW0R/tIPAYDjAbhnncLwb4egHJQsO/SQheuiGvOxcknT1jLWXl5I4JYwck8SW/eo6l7G8ZpI+fSGj5RKfJuwC/91dLbap+LXxCITzUXx5+TyR15hpubtqDVpTRPtr82a2Vy2fUArRalGlFMqpHb4GDlWOV/M9CP4zwOHZYXNidJX/So8pY17cnSZsSI7qno0vKhFYCAh9L/EI/qPHRO5nlM7Ytv2XZ9XAvJrb+odtRA9GFU/Y0jKhUTMl7Kf5KNwodPsvBFSQrvMs+O/StB1koc5guNou3uuol680dF3bW/MohZ92Ag0k7VGelIcusloXDTJHPWKAoIRLe6EZGdK8fQhFYkpo9Y3JH6MOHJnFAy2lofKSCchq7fkOWzsfuOP5oICv0iNDsxQ6H8oMueiyJkvB1x2i8XY/MQILz9MGzcIrapV0JQS78xIU+UUlilkFCaoCiu6Ba4W6DW8idJQNZRqPYpCscKbPBq1Ocsngq9sM33NGBIWsCd8cCvW06ibj5HTIKX3jmZUbi6Chyl+C 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)(38100700002)(66556008)(66946007)(66476007)(4326008)(2906002)(186003)(31686004)(8676002)(36756003)(83380400001)(6506007)(2616005)(5660300002)(6512007)(6486002)(508600001)(86362001)(31696002)(6916009)(316002)(54906003)(8936002)(26005)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M0hpMlBOLzFGN29kaVhTMmlwR2s0UWtndVVXRUpidU92OHVVbVJhQWVCZkNS?= =?utf-8?B?SEdNU2xOcnF6UkVTSlFlRld3Z3M0UVR2RGVJYXVSSWV5VUhqN3kyU1l2WFhs?= =?utf-8?B?cENiZjdpMUY3VWZueG1uQzFFOTFHQzFRS1RSUS8xTzNGVVBqT0U0ZkIzZkEw?= =?utf-8?B?RDVpbURTbkV2VWd3MVZMTVhycDRnTmpBSWVGckppanNrdWdxdVBQOU5vNHlT?= =?utf-8?B?aWFHL24veFJYZ2ZCbVdGc1RDdVBWSGlzSUFrTk9nNFJycXRRWDUxbGw4VU9U?= =?utf-8?B?dGxuM25SUHJSM253cituVWdDSFBBczY3S2k2S29xR0FkWjVTZjRxM0M1UFBC?= =?utf-8?B?R0VITUdrN1dOaU1iSHJ2UDlRYit2K3NXbk9jWVMyZURoWWxNNnp0MjArZ1RC?= =?utf-8?B?eEh0cWplemRZN2JTNk03eWVlbVRXY2RyWlM2T1pIZXpRVlBkV28vS2Qyb3Ux?= =?utf-8?B?NmJNMU0xTHVrSlNseTRzbC9WcEd6MFBuODFjYnRZUFRXUTBuK1ZFcUxZWVBB?= =?utf-8?B?YTA3K2NFU3FJTHE5T1krYmMxZ1lxR05oOTIwbEUwV1hJV3Fvd1F3REhINWtJ?= =?utf-8?B?MmRwbURJWWk5dURqL0I5dUlHNjk2VXBMTXo5Z2FxOFJxbjU0TnZTYlBCOFNj?= =?utf-8?B?Ukh2OGpEdG5xTFo0U0IzRjNtL29hRElTL29CeVNaSVBTUFovMHBSb2xiYmFx?= =?utf-8?B?MU5CZHZIZjJLdjRLdkRYNEhaVE44QUt1WEF4MFZTbmhtaEIwa1ZUT0dFMHV6?= =?utf-8?B?a2xwMzlRMEpYNzYybE40d3FlNnU2NDY3a1NFa1ZaaE1Fcml3U1ljNDJ3U2x2?= =?utf-8?B?MjdmVmt1eklkWmJYQVV0RzV1WFFXbjFaUnE2dHE4NDAydy9lZTF0YjU2WXdu?= =?utf-8?B?cXUrSmU5OXJwdDdyeEdacHBET2lJWEpoYjVOaDRiOEd3L1hzdWlkVFdQTHpx?= =?utf-8?B?M0VVN0s1VnV2YTZMZFlHZkpvSThLdFlZNFZxRTN0WjkvamZzTVpuWXRLOWdN?= =?utf-8?B?WndmakFXS2FJRmNWOG1zKzZ3Sk1yUjd1Ty9vMXhpcnNraEpKVXdZdWpNY3B3?= =?utf-8?B?REMwMlU5WlJwNmtlUVR2Q1pPWEpjVkdUTjJ4TVR6cTZCQmZ5enhtcXVVWmlv?= =?utf-8?B?TWgzRkFNQXlCMjhmMm5zYndoOENWY1pqZVBMUTB3NTdFN2tSZHh0ZkplYzJn?= =?utf-8?B?RkhvSGpjcnlPbVBDT2wxZWVKNXNpNjk5VUM5SThrWklGdzRHVGxabVJLOEZm?= =?utf-8?B?RkYyZjZpOGU2VDd3ME4xd3RqMFB3Y2pCSkgrd1JPUUxUOXF6UjZaVEFTNmdT?= =?utf-8?B?K3l5NDdxdk04ekg3THdEeGtuQm5XdE9NM2VRcElpTXFYbTVYbnZRdVoxTWgy?= =?utf-8?B?cVJtVVFTenh3d3B5L1IySko5em1hTFdxanFUbDZ1cnd0TG1MbU1qcHZGMndF?= =?utf-8?B?T3FiRkw3bWRBR3ZNS3pVY1RUNVNOcHZmbFFacEUrc2hBM0thYlo0M1d2UEVG?= =?utf-8?B?Y3lyRTJ5SUdLbWgvd0xiUnFJaUxUaktFM3NCL3gra2d6bFhqczVacFhYOVdo?= =?utf-8?B?NzRVTTAvVmlHNDVnOUthOThOUGZVcmhzZmo4TnZraVNSWE9mYXdBbTFXYjNQ?= =?utf-8?B?T2pKVmRSeGZoV2dZa1l1QS9CQkpWR2toQWJQbXQ0KzZUMGJDbXlCRWxpeVJh?= =?utf-8?B?SVA3OHNMMUQ0TWxYcStDYUN5UGdUcmpvbnFlUE1ybWpxTUJadkxBUEZwR25o?= =?utf-8?B?UFlUUGprRHI0TGJQdTdJL2xWMkJtMUFnTStzci9LakVhZ0NLdjJFVXpJWURU?= =?utf-8?B?RnVkNDdYMVBPMFd6cUEvMTUzd3BEZjAyRFppUzM3SE9CZk51WXNqcjMwdHR0?= =?utf-8?B?ZUJFc25SbFUvdUxjTjF2M0NzQklCcXpiNnhNOGJMM21YKzB1SUNRYVRVZEpH?= =?utf-8?B?WFpFY3o1MzUwbkZtTllkZmRpVDJ2UEsyRHBlVW1uSlR2ZjRSanNzQ3B6RzZT?= =?utf-8?B?bFJRUUo4RGo0T0xqM1VuQWk1Z2dFbkxwS2NoK3phZER2bkVnWkN3aERUWVRB?= =?utf-8?B?aGZESVdhK2dMTVBDQXlwNWFoNGlmUUU2b0pZZ21lQXFzOGdvMFloNzFOY1FP?= =?utf-8?B?ZnBhTG5jK3VkcEprS05PeXZDSWlON1VJNGJERWovYlNnUU9rZXhURHdHbFh4?= =?utf-8?B?b2NoMFNZRTQrVzVqb0NTNVExUUFtbGlkamZkQzJjamE3aDhoWmE2VXFybnpx?= =?utf-8?B?M09RRTIvbHBQdXZjSGNoRVVyNnpIeCtqeTRLbkJ5RHVIMFI3Rlk5cmJlaTZh?= =?utf-8?B?cXQxRzVNMUNnYmt1RllDamltaW1jckY0MUdoUTNlcEVwWFJnVWl1Zz09?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b0986ff-aca0-4f27-bb23-08da1b9ef3d2 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2022 09:37:53.7052 (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: b4Ep4COoCpr0Z4C4d1u2ZryXr055Q2+OdQcaT3SwebcdjhWIRRqgJLk+pz9hNzpvOJ0ZSYnKs8QYorREE7+azg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR04MB9364 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1649669908843100001 Content-Type: text/plain; charset="utf-8" struct pci_dev has the wanted value directly available; use it. Note that this fixes a - imo benign - mistake in reassign_device(): The unity map removal ought to be based on the passed in devfn (as is the case on the establishing side). This is benign because the mappings would be removed anyway a little later, when the "main" device gets processed. While there also limit the scope of two variables in that function. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monn=C3=A9 --- a/xen/drivers/passthrough/amd/iommu_cmd.c +++ b/xen/drivers/passthrough/amd/iommu_cmd.c @@ -287,7 +287,7 @@ void amd_iommu_flush_iotlb(u8 devfn, con if ( !pci_ats_enabled(pdev->seg, pdev->bus, pdev->devfn) ) return; =20 - iommu =3D find_iommu_for_device(pdev->seg, PCI_BDF2(pdev->bus, pdev->d= evfn)); + iommu =3D find_iommu_for_device(pdev->seg, pdev->sbdf.bdf); =20 if ( !iommu ) { --- a/xen/drivers/passthrough/amd/iommu_intr.c +++ b/xen/drivers/passthrough/amd/iommu_intr.c @@ -617,7 +617,7 @@ int cf_check amd_iommu_msi_msg_update_ir unsigned int i, nr =3D 1; u32 data; =20 - bdf =3D pdev ? PCI_BDF2(pdev->bus, pdev->devfn) : hpet_sbdf.bdf; + bdf =3D pdev ? pdev->sbdf.bdf : hpet_sbdf.bdf; seg =3D pdev ? pdev->seg : hpet_sbdf.seg; =20 iommu =3D _find_iommu_for_device(seg, bdf); --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c @@ -455,11 +455,9 @@ static int cf_check reassign_device( struct pci_dev *pdev) { struct amd_iommu *iommu; - int bdf, rc; - const struct ivrs_mappings *ivrs_mappings =3D get_ivrs_mappings(pdev->= seg); + int rc; =20 - bdf =3D PCI_BDF2(pdev->bus, pdev->devfn); - iommu =3D find_iommu_for_device(pdev->seg, bdf); + iommu =3D find_iommu_for_device(pdev->seg, pdev->sbdf.bdf); if ( !iommu ) { AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be assigned to %p= d\n", @@ -489,6 +487,9 @@ static int cf_check reassign_device( */ if ( !is_hardware_domain(source) ) { + const struct ivrs_mappings *ivrs_mappings =3D get_ivrs_mappings(pd= ev->seg); + unsigned int bdf =3D PCI_BDF2(pdev->bus, devfn); + rc =3D amd_iommu_reserve_domain_unity_unmap( source, ivrs_mappings[get_dma_requestor_id(pdev->seg, bdf)].unity= _map); @@ -558,13 +559,11 @@ static int cf_check amd_iommu_add_device if ( !pdev->domain ) return -EINVAL; =20 - bdf =3D PCI_BDF2(pdev->bus, pdev->devfn); - for_each_amd_iommu(iommu) - if ( pdev->seg =3D=3D iommu->seg && bdf =3D=3D iommu->bdf ) + if ( pdev->seg =3D=3D iommu->seg && pdev->sbdf.bdf =3D=3D iommu->b= df ) return is_hardware_domain(pdev->domain) ? 0 : -ENODEV; =20 - iommu =3D find_iommu_for_device(pdev->seg, bdf); + iommu =3D find_iommu_for_device(pdev->seg, pdev->sbdf.bdf); if ( unlikely(!iommu) ) { /* Filter bridge devices. */ @@ -648,8 +647,7 @@ static int cf_check amd_iommu_remove_dev if ( !pdev->domain ) return -EINVAL; =20 - bdf =3D PCI_BDF2(pdev->bus, pdev->devfn); - iommu =3D find_iommu_for_device(pdev->seg, bdf); + iommu =3D find_iommu_for_device(pdev->seg, pdev->sbdf.bdf); if ( !iommu ) { AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be removed from %= pd\n", From nobody Sat May 18 21:15:55 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1649670143; cv=pass; d=zohomail.com; s=zohoarc; b=Xv62NEsSoLnGz9/vU7gIJWP2sidaIP/EdljHsReOhRvIBO4YW1scYPOQgpU6RX70r6r+GCS4f5mQPymqF8DwthrJZgPNUdcjicx7s/x/pHbEhsN7ZVA8gWRrsGDErmT0lFdVymA3mjX2JxvYZm8i1ypCPnWYtdsqiWo0OrOaUhw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649670143; 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=GkoN9nC2qKwsSR3K+jJcseHwKHnMuECbT9MIWY/ddtQ=; b=RXB2PEfKmScX3I+6bkTUIw9X6h7X+WPOhxgpCD0AoB7EIBDMK/40xq5sidR2iEMTIrNTJ1Phfe4nf+13MC2c2XK/mtlv9M5uleVBggAh8h9aPOfwNSGUpYWzPNrkenibTWv6QNAi6JbOD8c58MI761I0WtaTxiOaT4HysCdRi8o= 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1649670143186590.8976297069443; Mon, 11 Apr 2022 02:42:23 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.302802.516581 (Exim 4.92) (envelope-from ) id 1ndqYY-00034v-3X; Mon, 11 Apr 2022 09:41:58 +0000 Received: by outflank-mailman (output) from mailman id 302802.516581; Mon, 11 Apr 2022 09:41:58 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ndqYY-00034o-0U; Mon, 11 Apr 2022 09:41:58 +0000 Received: by outflank-mailman (input) for mailman id 302802; Mon, 11 Apr 2022 09:41:57 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ndqVJ-0006iD-82 for xen-devel@lists.xenproject.org; Mon, 11 Apr 2022 09:38:37 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 28fa19fa-b97b-11ec-a405-831a346695d4; Mon, 11 Apr 2022 11:38:36 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01lp2056.outbound.protection.outlook.com [104.47.2.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-35-JxMcKwvpPn6rrxgyZM2EnQ-1; Mon, 11 Apr 2022 11:38:32 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by AM8PR04MB7844.eurprd04.prod.outlook.com (2603:10a6:20b:236::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Mon, 11 Apr 2022 09:38:29 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1%6]) with mapi id 15.20.5144.029; Mon, 11 Apr 2022 09:38:29 +0000 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: 28fa19fa-b97b-11ec-a405-831a346695d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649669916; 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=GkoN9nC2qKwsSR3K+jJcseHwKHnMuECbT9MIWY/ddtQ=; b=HH46MiA0N6XHSw+LxS0jQjPkZXr9/clNme5gION92xoTUu/7OaOAcNR/9IVP9u2T1QLVS3 iQU3kCYGg5gAqYKDjy7AQcA+AAMaC3872T9o+dUi/K1DBO1OlR8dbIutJS7/QPGTJdevvj mPwZlKTejT5sCUWqqw6cvCXJw1iJPjg= X-MC-Unique: JxMcKwvpPn6rrxgyZM2EnQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bLY7ig+OCUvnW3I9U1ntzLJ+nxC7MMuf5Kw3YGiVtz1P1447uPHQVOKf/PXaP+cVcVhl9dzyWUxqN1LJBz/sLCAYXLz5HTM+T1snX/yQHX4OnwdZL2gpY0Hfzosg9i64g9R9JWMzH+VzWpl+DlWD652ZP2n0BEQQnimKQSiT9V6zN+m+vio/KsRaE9dzjsHW2UO4GyinUCTuqFRWZod+t2LW/x1vAGFPk1B9QnCHIq+FgqHGZnyGzO4lyqN464NoR0fWpZ5EpnzUW9gA9WFSFUcaPgRi0Nkf6gdWjvPCI8Dk+RgXu1U788KelQ/tFtsnkeeXwYxCTacZfdVuLzSYxg== 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=GkoN9nC2qKwsSR3K+jJcseHwKHnMuECbT9MIWY/ddtQ=; b=JJ3O7w+a3NxvPuN+lmTMZejaeDRcqABN+SM8kpb0qZxGCMw9VB6WzQ68w9LCTWevAAxudWbJm06i8usj+4ZV8mPpUELmdXTqLKhYIaLD/WR58ferg+/wbY2MWxZ1U/XFuTsJRSKyBiV1mh2mrKHsj4qCol+uzvxKmQ9mCbdh4jVuZ2Fzpr4+zlDWDyVIp+z9dxv/SkHtbi9ZpLPZp+jciE2uGykU3Ejyr1cQI3owB71rijf7SmEZP/6kn6l3OSKGYAhEVAZSO3xN5b9GluVd3zZ9+x8PoV8L5IPbUKLHEOpdV+v3vuTh0pTdAF191gkaqnV1bqPH8pPRfBWcgBGuNg== 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: Date: Mon, 11 Apr 2022 11:38:28 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: [PATCH 6/8] IOMMU: log appropriate SBDF Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Paul Durrant , Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= References: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> In-Reply-To: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS9PR0301CA0042.eurprd03.prod.outlook.com (2603:10a6:20b:469::10) 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: 62c1f672-32b9-42f3-bd26-08da1b9f0906 X-MS-TrafficTypeDiagnostic: AM8PR04MB7844: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: FyqBRN7a4kn0xF/KgOFk9+i5OEHShGlSIBNXzF/cFWZw5V/RMR6d50ZfmroqWQonvrUg6kzzcNebyuVFkxXmPRTnZlCsTYe/AKwTgtXDKJanUXSj44eNcEFxfQmxvYFmpJMok+7z/uvgKkwNrz0V76iCMwEL0+ytKMOXkmiDr4HpwBelFHCwOYNYnFctO6F9UBPkI9Cp52zHFFHqnXmL7S6kA+biUzgD6rUFeNUMmopf6Sv0NO4Ge/spgguOTKVusROx45q4kjty0DPi8IjlDOaXydFRYrEwfRqyx9gKorAxhZHTY4/jok4WMgV3WXX7IuCTTwVrU4EHSu1OJipaDrXYchW0W8iLNq9mzWAZAGtvAf1+2zuV0rjfoXuovBbUvwuMWAIHehch8mlEoaCgCq78A+baEYCBjRFKGLclVkkP4gMTKADrCmQW3sJA/HBWokPYpf3eZhmN+c22vqGALAf6iCZrRyFpZe6q/vYsFAzyBglWyIjHDoaKwW6SrZ3wl/IiRRV5r3BcP70Ypn9oan5qqCoWFMWeuA/aI9o2D4gdN1+O5q2Kskuwvhn2aPzkrv69mdA4GW315jbTXjYAQEtK3Q22ZkUDiAn9BfzFeVhSMW1w4ksX0ncsJO0K/c6fVa3OzrLbDPcoSSG7oRXZQV/jS7afjqnsVO28+EmGk9Pp5nvwdeEpKbAJU5e+rGcgH0uwghTTe8JtyDIaWKP5IVc14ZglT+oC5kW0xXtaSpTmMFT5cN/NWx5baiqrXzWB 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)(2906002)(66946007)(8676002)(31696002)(5660300002)(6916009)(66476007)(66556008)(4326008)(8936002)(316002)(86362001)(6512007)(6506007)(83380400001)(186003)(6486002)(38100700002)(2616005)(26005)(54906003)(508600001)(31686004)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q3VkT0o4Qks0SWN2Sm1LYXJleDVSTllSSTFsYmtuN00xZ3hLZXRXV3kxN1lx?= =?utf-8?B?Rjl5bE9BaHNrMkFjTU0xaDVza2JiM1Z3RkV0Zk5LUGkxdDFHWXZFaDA1RE9s?= =?utf-8?B?eVQwYzVBUTk0VVpsNUZJMlB6bUVINjBBRHpIVUdRT0JnY0dzZUVUUjQxOGJZ?= =?utf-8?B?bzZxUXFJKzBMMitJRXBnaWJhUlBUQ0lGbDUwVlNiaTdXU3pMWmIvdFNiWkU2?= =?utf-8?B?Y1lENXB3aEY3RmZ3S0w2YjJEZVN2NWoxdWc5QTBUZGc3a3hrU2dQc1IwQ1ZZ?= =?utf-8?B?WWdjNTI2YW9JRHg4ak5NVUlMdG1pOVVYdGdZTysySTczWUpNTXlWbDBSOE8y?= =?utf-8?B?VWhvVmJ2MW5HaStPL01mcm85eDdTaVdKSU95SElYLzYwekJLRFRka3RodlZl?= =?utf-8?B?azIzZnhQL2tZSjArbEFRY0cxSVRkaERVbWNDR0ZjeHdET0F3MGQzSkxJeE5H?= =?utf-8?B?VHJacW9iOEt1Q1hwbWgzakFjazFBU0gvekM1MjBNRE1BOHVmbFF0aDMxNmF2?= =?utf-8?B?VlgyTUxtODR4Wkh5enRLeS93WkZ0WXhBa3lpMjhjeEkvWXB5VExHcVVxZ0ZF?= =?utf-8?B?NmFPU3RuZjNCc25GOFJZOGtyRXpvQ04ySjhYQ1p1a0V2Ni9vbWRlQ1l0RUNM?= =?utf-8?B?TGdwWVFjUlZScFBmRmdHZHdIMEdCZ3d4RWlZdU5EV0I4K3Q4NjV6NUtsSllj?= =?utf-8?B?Wm4xSVdZTU84RnlPaWJMbjVqcFNqNDN0UXJRVEVGeGluZmxiWWYxV04rZlFn?= =?utf-8?B?OUFjeGtFLytrbWtWUy91QlByZU01aW9Dd0JjREZEcE1GVHNyemgxSDFoMk01?= =?utf-8?B?SzRqYldKcFUxR2NBVzk3Z2pVOUs3REZzTUpXelVNNEFTVmp6bHU4Y1pLK0Qy?= =?utf-8?B?R29aMTJ5WUIvV1NWaFhFbTJVZjhBY2R3OXllcmRDRmx2Y054UDYzQWlPSm81?= =?utf-8?B?VVNBN2lqbXc2STl6NDZjNGY0RUZSU1dQTXdxNlpSbFBISTU5VnhUK0NuSi9R?= =?utf-8?B?bS9NOGh5a3RxTEkvV3RXYjJNcGJPWTBQSDlpWVBEUkFBYVIwKy81WFN6eTZU?= =?utf-8?B?ZUpEQmtYeGJ1MTJkT3F4YlhyUVNGRllJYzVkTmZPL0dmZkkyelpEbFJuWmdM?= =?utf-8?B?ZDZyaTRGVkpTUnA0Wk15YzdNRno5ZkVzWWtzSjNJS0YzbTNzYXB6NW9EWi9P?= =?utf-8?B?TElGanFxMUVwV2svTGhMMVJUM3lHM1ZJdzduQ2NYajA2RGEzUFBac1ZLVlFQ?= =?utf-8?B?WkZ2MEZ3bU9pUHEyQkM5RjJpZnRjZEhTNVRkUzFZMHFvak1FUlQwT2VxdUla?= =?utf-8?B?QTVIcU5xeitVTUcyZFJkL1hPT2U1ZUhTQ2VBSlRSVjBiQ2xYUzVFR0N5eVhH?= =?utf-8?B?ak5Za1BwRnVlcG5PcFg5bUNZeHVrSno5WUdOSEE2SVpaTTlVSUR0aEFnRDR3?= =?utf-8?B?emh0TEh4WEdLTEV3WnkzQnRvT29PSitrV3IrLytXaWtRemE1WGt0S1RncklU?= =?utf-8?B?eU15a0lLbno2NzF1RUg1Y05zMnBqbFBpalZ1a0hzS252RFVuSjJpRHRUUzlw?= =?utf-8?B?cHU5bkc3VmFXSkQ4VUsyRXdWMjdGRTk2Q1dKOHlMb09wUkpLdWRQT1VsU3Z6?= =?utf-8?B?Vm1SZkVsL081cG9XOUI2N1JuMVI1OXU0UzI2QnZkS292aEJjN1pJWk1IQTFW?= =?utf-8?B?N1YzQlowS3FNbXpuTU1JS0pQSVVpRURCRGxSVHJyZ0NxQ3diUGtqRFFDSjlO?= =?utf-8?B?Q1lnWnpGRXZCSUQzNFB4U0pKdVZFMDZHY2ZEVnZIT2VFTWhMaGdNL3RVa1pu?= =?utf-8?B?ci91TDgwZ1VwZ1JpZDBFU3JsSmNVaVV6cldPRDh5U296TU5xWG1sWE5uYTJM?= =?utf-8?B?S0NnbXJhKzhiV2gvNGQ5NmJ2dXYvOTQvM3dwdEVkSklXb0ZCVTZ1cUlRMHBF?= =?utf-8?B?bHdiQzEwTmZDUWJtbCticDB1MTVlOTJCT1FORmU3MVhUYjNPWDRkRW5kUXpD?= =?utf-8?B?RFkrR092VmFXTVZQUUs4bUtGVjVoWUhqejJ1NE1NZVNYNmJqN3UzUk0ycTlM?= =?utf-8?B?K3ljMmMwTWthZ29EejhEYWVvQVg0ekRhcGZNR0ladkdQZHR6ekFKTFZhazZO?= =?utf-8?B?Q21UOGtZQzZSRGJrVjlhSjBqMk05aFE2Q0lzd3RXb0hLNDdFaEFUTU9oL1dI?= =?utf-8?B?Qm0vUFNXdWV2RVJIR2ZqWURtMXQwQVVhc0FEWFU2WlpVM0l5NzJnRFdHWTB3?= =?utf-8?B?ZGpYQnAxMVFZVHphTHJHSUhhRmpPTmxNaTZkR2xxMDhTTHFQN29XQTV2OFlX?= =?utf-8?B?YURibFY3QWFFNjRCNkV5dmt0MXEzcDd3RW8wbk82RnJhNEFYdmltdz09?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62c1f672-32b9-42f3-bd26-08da1b9f0906 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2022 09:38:29.2157 (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: csmPmRu9IfhsmFRAiiupboI+d5QlhJnhbeom7yBAKFqwq8wiOMpFo+/azqILBlx+Ouiu2JrK3fRuh7OQJ0BxDA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7844 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1649670143799100001 Content-Type: text/plain; charset="utf-8" To handle phantom devices, several functions are passed separate "devfn" arguments besides a PCI device. In such cases we want to log the phantom device's coordinates instead of the main one's. (Note that not all of the instances being changed are fallout from the referenced commit.) Fixes: 1ee1441835f4 ("print: introduce a format specifier for pci_sbdf_t") Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monn=C3=A9 --- a/xen/drivers/passthrough/amd/iommu_cmd.c +++ b/xen/drivers/passthrough/amd/iommu_cmd.c @@ -291,7 +291,8 @@ void amd_iommu_flush_iotlb(u8 devfn, con =20 if ( !iommu ) { - AMD_IOMMU_WARN("can't find IOMMU for %pp\n", &pdev->sbdf); + AMD_IOMMU_WARN("can't find IOMMU for %pp\n", + &PCI_SBDF3(pdev->seg, pdev->bus, devfn)); return; } =20 --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c @@ -461,7 +461,7 @@ static int cf_check reassign_device( if ( !iommu ) { AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be assigned to %p= d\n", - &pdev->sbdf, target); + &PCI_SBDF3(pdev->seg, pdev->bus, devfn), target); return -ENODEV; } =20 @@ -497,8 +497,8 @@ static int cf_check reassign_device( return rc; } =20 - AMD_IOMMU_DEBUG("Re-assign %pp from dom%d to dom%d\n", - &pdev->sbdf, source->domain_id, target->domain_id); + AMD_IOMMU_DEBUG("Re-assign %pp from %pd to %pd\n", + &PCI_SBDF3(pdev->seg, pdev->bus, devfn), source, targe= t); =20 return 0; } @@ -575,7 +575,7 @@ static int cf_check amd_iommu_add_device } =20 AMD_IOMMU_WARN("no IOMMU for %pp; cannot be handed to %pd\n", - &pdev->sbdf, pdev->domain); + &PCI_SBDF3(pdev->seg, pdev->bus, devfn), pdev->dom= ain); return -ENODEV; } =20 @@ -618,7 +618,7 @@ static int cf_check amd_iommu_add_device ivrs_mappings[ivrs_mappings[bdf].dte_requestor_id].unity_map, 0) ) AMD_IOMMU_WARN("%pd: unity mapping failed for %pp\n", - pdev->domain, &pdev->sbdf); + pdev->domain, &PCI_SBDF2(pdev->seg, bdf)); =20 if ( iommu_quarantine && pdev->arch.pseudo_domid =3D=3D DOMID_INVALID ) { @@ -651,7 +651,7 @@ static int cf_check amd_iommu_remove_dev if ( !iommu ) { AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be removed from %= pd\n", - &pdev->sbdf, pdev->domain); + &PCI_SBDF3(pdev->seg, pdev->bus, devfn), pdev->dom= ain); return -ENODEV; } =20 @@ -664,7 +664,7 @@ static int cf_check amd_iommu_remove_dev pdev->domain, ivrs_mappings[ivrs_mappings[bdf].dte_requestor_id].unity_map)= ) AMD_IOMMU_WARN("%pd: unity unmapping failed for %pp\n", - pdev->domain, &pdev->sbdf); + pdev->domain, &PCI_SBDF2(pdev->seg, bdf)); =20 amd_iommu_quarantine_teardown(pdev); =20 --- a/xen/drivers/passthrough/pci.c +++ b/xen/drivers/passthrough/pci.c @@ -1406,7 +1406,7 @@ static int iommu_add_device(struct pci_d rc =3D iommu_call(hd->platform_ops, add_device, devfn, pci_to_dev(= pdev)); if ( rc ) printk(XENLOG_WARNING "IOMMU: add %pp failed (%d)\n", - &pdev->sbdf, rc); + &PCI_SBDF3(pdev->seg, pdev->bus, devfn), rc); } } =20 @@ -1451,7 +1451,8 @@ static int iommu_remove_device(struct pc if ( !rc ) continue; =20 - printk(XENLOG_ERR "IOMMU: remove %pp failed (%d)\n", &pdev->sbdf, = rc); + printk(XENLOG_ERR "IOMMU: remove %pp failed (%d)\n", + &PCI_SBDF3(pdev->seg, pdev->bus, devfn), rc); return rc; } From nobody Sat May 18 21:15:55 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1649670064; cv=pass; d=zohomail.com; s=zohoarc; b=I/jowRUlNTPcDNMKeCpal4O2UxFSFrw01plJHX5qPnxqy/W/IufcElu/UInqH98IG25SHm9kBpkKtWROMj7dLkBZK3WaKOJ1QoXUg6J1jwwXV3en6H61XpCuJYSzHOzgTKfRTO18d2h5AreJ/q47h3OVDkY+aVpyamhKdcgaw4Y= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649670064; 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=uRgxPutiiXf/saj/uPcnRpqmyyUE+aGnEJJuikrPuyY=; b=MlVkX/CRQHW9MXFrifwHfaMIs5uzeZQjFxPKXX/6KKEhSc2T5r3P8aI1IxekwN7ow81ChE6Ocaqbpm9BH/nxClsAYoJejgsh2PmGKOxQkWHv1sgOif81xW5LUVvU8FKAakTIBgDLfzSUxVCKlYCs094HOho9Db7SYlvVqk3PNj4= 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1649670064169616.9464652395811; Mon, 11 Apr 2022 02:41:04 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.302797.516570 (Exim 4.92) (envelope-from ) id 1ndqXA-00029h-PC; Mon, 11 Apr 2022 09:40:32 +0000 Received: by outflank-mailman (output) from mailman id 302797.516570; Mon, 11 Apr 2022 09:40:32 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ndqXA-00029a-M4; Mon, 11 Apr 2022 09:40:32 +0000 Received: by outflank-mailman (input) for mailman id 302797; Mon, 11 Apr 2022 09:40:30 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ndqX8-00029U-OG for xen-devel@lists.xenproject.org; Mon, 11 Apr 2022 09:40:30 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 6c71e83e-b97b-11ec-a405-831a346695d4; Mon, 11 Apr 2022 11:40:29 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2059.outbound.protection.outlook.com [104.47.4.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-40-c9mMjQfyOAqrDY-zPijx3w-1; Mon, 11 Apr 2022 11:40:28 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by VI1PR04MB4255.eurprd04.prod.outlook.com (2603:10a6:803:3f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Mon, 11 Apr 2022 09:40:25 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1%6]) with mapi id 15.20.5144.029; Mon, 11 Apr 2022 09:40:25 +0000 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: 6c71e83e-b97b-11ec-a405-831a346695d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649670029; 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=uRgxPutiiXf/saj/uPcnRpqmyyUE+aGnEJJuikrPuyY=; b=boReclB7xzohkKsbguMNvdfBtD6ydU6AM3Ta2mygW9/xzHzyTipfza4CwKMG7lkFwRqmjr or32k2ep0j/IVkzCvFGXmPaWmq7KUn5Zwl/jMDdXD98hrYV91ge/kwxbf/ED7tJ/kuKIx3 LP2auhQtuScgzKNTvaIwwe3WMguixzY= X-MC-Unique: c9mMjQfyOAqrDY-zPijx3w-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cj7XvMeYAotiN0cRAts3A3/X/fxFqCpO3A77Ueeylxp3ti7SZIAHoHk7JIF07kIffBBdAKUifSmEafLJ9UnDR9BPN7AVa8O2EAvR3UR9boq2lQB71YdYDVY4lmYqIeSe5xL/4AvWHM5Ep+SDTzGfWqJcXYyq2Eq8H1LLqprLzo8WjI+ZflQMnktVgV4LdH6gV2StBpJ6KvkqxKPuKLKigAwpQqRgXoEhBx5TzlWjRQXrIdW4jaVf+ZBkNReLaQutS3Wo/x0LFKilBK6dVf95fGhxXKDvM1b/CQeenHRxkefRGADz1JVSJ0xFqKMRY8d5KeQcm636x3kB7TKMcpGsQw== 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=uRgxPutiiXf/saj/uPcnRpqmyyUE+aGnEJJuikrPuyY=; b=aIKHyWPNH//hDystYO6BUpgaOVIUMXoLK712SjMlBuTndoSHCyWgaeFQtWmefNnYsSiMm2KOASReqe16Hh90abcf8Td0aGet714jP88YQocmEtBeI9iPpjRPFoD2DV3VtHEEwk2yKOn7wXnk7gPB3risP2g/293oxgXsBkvW5dH3nEgvNVba1ppqCHuXkyRE13Nv/1yRmnMWXk8eNjko72kfuo/qPK9Ur4HonFd/H+0s6vMRP/DelyPPAeg/9DtUHHMrR/OPM4rZFH+HHCKHEj1DDKGrDVzJxPpJkOv6ALvAnXjh6aeEVfMpnmg0J/WKMibWa6xhKbbGWneZTn6VwA== 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: <452b42cb-56a5-3f28-989f-c02e53334447@suse.com> Date: Mon, 11 Apr 2022 11:40:24 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: [PATCH 7/8] PCI: replace stray uses of PCI_{DEVFN,BDF}2() Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Kevin Tian , Paul Durrant , Julien Grall , Stefano Stabellini , Volodymyr Babchuk , Bertrand Marquis , Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= References: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> In-Reply-To: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6PR10CA0067.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:80::44) 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: 200dc4f4-e19b-4789-641f-08da1b9f4e89 X-MS-TrafficTypeDiagnostic: VI1PR04MB4255: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: NvkFD4KO5QOPvZAK6YRJN3ZgJ6X9LbusCnJGo8mIZUVh/ii4FQ4UktnlyYv7iLik+Cs2zKKGDOGw1yBQCXYWKWzIspXpDtGaVwpJ0D/cPlOnZM5/3XrSA5AmIWHfFyPO2QudY2EWoNsGCce3EI0u9Gifbe+cuTVKflmTinCAidpMVocuCWlHa/kaS8F6+ISIkb45mltR3uAgWVk1uPRkNcx+aJ0T7759shX7ekOdgECl2jIsynl1KIQnKJQ+fQVvhh725K8Hrg0CItGouEJBUBDDQMPI/H+QwXUNfsKPsOP6hyA/Qbt45nCQOv6TCFEZUvmkw2A+/N6tKscmd+9WgU7BOqZGRxsbjOcUbBTPkzq7Vl08kaT9R7KTJZtTOiuzJ/lIVwxoG5COCrXct0bSoeUOcSmUYriUJIFB419b3ua1YnHdPU0df6/8RwPSh5+o6qykE2EsFZjio8leouvQ3aY4vSeEESRo9jLSzCDn8sVFK3GgPink6n2n4rluAUk2J1dHUsjAyRPm/j0lz3BOnoJItpLQzAHh6cEm79cwnOXth7d+Tbkmsw0JdRIKCh4UrQ3xUOuVPfPTONPZHXXgvhVcwYgDWMIke1Kv0i+POu0wNO9o3brK3WIAROt0iBvCdXs+WzCUWtwjVqeP0Qn8alxlExlZirznG5LTqhbo2j3fgXtv+pJ8GgsLJHTDv8kOFzWklM7qAgFkwy/r1FfJc3/ff88gyNK9wpU3DzHb11NL7pvDG3Cr5UeGpY/VNmMM 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)(86362001)(8936002)(7416002)(31696002)(38100700002)(2906002)(5660300002)(6512007)(66476007)(316002)(6506007)(26005)(54906003)(6916009)(2616005)(186003)(36756003)(508600001)(6486002)(66946007)(66556008)(4326008)(8676002)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?alI3R2ZFMksyOCszdVJ5WEVpME4wek5iaFhubkErR1FUOXpVMlFqSVhybjB5?= =?utf-8?B?dHl1V3Z5NjdUQTJnV0pqYjg5T2N4WXkvY2dGQmxrRXVoN2hNSEtLOU1FYWFm?= =?utf-8?B?bUNCaFhlUjhLKzNydnhjOHBFN0l0bCs2Zk9ZSktaNW81Ui9QcjhJWUNscG82?= =?utf-8?B?dzNET2hHTDJPRVYvUVJJQmJVK3BmeHI3U0xTU1hmOVJiUzBuK0N6aUNPSnNj?= =?utf-8?B?TkNkSUR5c0hSV1IvaE9wcGFUcGJLbEhzVUFhcUdwYnhScXRod0x5eUROMjRx?= =?utf-8?B?OWJkeEI3YXNaeUtxamQvNFhWdUxCbzNWeTdxbXZaRW5mMGtWdmFkbzlDTER1?= =?utf-8?B?bmhURDJ6MGxtMFFKQjJudXVobHRheFpmS0dxNWFxUFB5T2NsSE8xZ0F0TkNt?= =?utf-8?B?WmRBV1BQZTdGbkFFaDJsU3hSUkhsbzRBTUpGUklpS2dYeHI0MTBJWGFJam55?= =?utf-8?B?elNjbmc0aDhoYTkrK1FHdE41K21XUDIzRXRpNGxvWm9jNWZBQVE0OHArZVhL?= =?utf-8?B?QmhjdmdGTEFlZkUzbG5uOTRUcUdYS0dXd0wwdjc0azU3NXhqOFowdXhEMDlV?= =?utf-8?B?YmxybWErWnplOHpxVFo1MGFCZkFpMCthUWVUNjNrcXZXN3BUeXp2emxJMmJr?= =?utf-8?B?MEo2Nmt0U2tjb1hMemxNbDRFU3BsYS9yWm1aS3VqanlVSDh6NldxbFNEdG4z?= =?utf-8?B?ZkZJdThGWEpZMFdoaGpyZFVqTkZJRkhTT1ZMY0dSVDJuaWp5VEcxQjVmZWh2?= =?utf-8?B?bEtzYUtWOUdKWDV6OGNYRld6T3N6K0ZjNGl2MUpBOWZjODBLM2hMUStlNWR3?= =?utf-8?B?RERLdWhUYXhnNjh4L3M5SzdaNTNlaXZ6eU9KVmNLN2RZOW01UCtCMTQxMjRT?= =?utf-8?B?aHBlUjVacVF6aTdtUWdheUt0ankyRjhSYlhxZVJGL3hyejgrbWtFbDh3Q3hw?= =?utf-8?B?aU4rckx5d0plOXlSY0ZVdkVoTUhRZXdjaWpKSDZwc2hzTDhYcU1PMm1qa2Yv?= =?utf-8?B?aHkvbkwrK1Vib1M1N1RIV01TeUZDZmJMZ1JtRnFmWWIzVlZTNVBkSFJYOWpL?= =?utf-8?B?cnd6SHhYNFVlZ252T0Qzd242OElwUjB5eXJ5ZEYzdmNzREd3dVdlM2FQWGJv?= =?utf-8?B?eml6T1pEMlpzbWZSbk0ycXZOdG9BTzA0MjhtNllLWUl3YlJsaUl2YUExQ0dF?= =?utf-8?B?ZjhBazZXeVc4RTZlVE5PaWdjVmdqVnUxNzFUNDRQS3N3T1duRjlIQUtPMTlr?= =?utf-8?B?eDcwbGhxNGJSLzNPNVRPdmMrMG1ZWUpmU3c2TnIyZHRXTXVPOVkvcGFXTkJa?= =?utf-8?B?bEt5VnVDUzczcXB6VzBZblZ5R1pDMERST2pENUdxaUE2bVRNVTlsUVQvLzUy?= =?utf-8?B?YzFianpsdG5aOUVpdittKzJtU0c0VUhINTFkTEs3aUxmQVZON2tQNTNTMVVm?= =?utf-8?B?VHpQd0U3dTJMVXFlL3BmZExtajl5cHRmdVF6OTFWZmR1S2ZHYXlmK29mQ3N4?= =?utf-8?B?RG95QWQxQTVja0cvb0dLK1prcEVsOEZYWTJ6bEswWTluUUs5cm1YU0x3OXl0?= =?utf-8?B?cnRWb1A0dWUwbERLMFRLZzQwcTBvdWhVcytUd2I2TER0dW56WEcxaHZsajBk?= =?utf-8?B?QjlLT1ZON3VZQ2lpUlhHWUJsUDcwa1RGNm8wc1NNODBkVDZGcnhEL2xQMHBm?= =?utf-8?B?RnpGQ256RXU1VWxXNHVLRFRjQnliYzRTOERIQ29OL3lhSVBBK253Z01sdmRw?= =?utf-8?B?UTJQTnhreEFNV1g2eXlETk1iakdSSGErdDNsWTVXcGF5Q09UTjV1ZHhRYjRy?= =?utf-8?B?empXNWJXS2tjMWZ3RUVVbWY2WmthVXl3SVRTSUxNcU1iZE1FMXpldE9HUGM3?= =?utf-8?B?QVd1QVBlUFN0c2JzQVk0cGhkRkdGWGNoZXpxUVJXTU13MnV2STVSK1JTSisy?= =?utf-8?B?TThNWEpLR0hrd296eUxuTmZOcGR3QjY3N3VSZnl4dVAxVC9uSm43NjIzN3Bt?= =?utf-8?B?R2QwRjlHenZDcWQ4MlF0QXhSenhMUCsvTzdrckhXMmNLUHg5ckRQT0R1NjY5?= =?utf-8?B?QUpTeDJWa2JOb1NrQ1JDd0FRUzNUS1FzV0Q2YXhJUkpyS3ExZEFRVmw1aXRT?= =?utf-8?B?SStiTUNvSVZyTjVaWnBYa2dNS1VTRlpyVDBNaGpJUjVscW1ab3JtNDlDUkFo?= =?utf-8?B?YWNLMEFPU3NFWTVLR1JhamROWUs5VlJ0bnQwMzNiR01hVnVqbXhVRnFOUFhk?= =?utf-8?B?U2VWSlJDSUN2SWJTejJtdVJiaVZvVmtKYnhlQlp2Zy9MMU5qV1I0WFFyTHlN?= =?utf-8?B?bHhuQVRnZWVvVW94Z3JQd1RoZ1NhbXJESXdwd2ZxUTNHdm5NV1BFZz09?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 200dc4f4-e19b-4789-641f-08da1b9f4e89 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2022 09:40:25.8816 (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: u9iOVVYnU3u5MogYqurO8HqxYoN6UhHKXvtwQEukx0Qv3tnbHdLIlU71b4d/qgTzLZEcnBobTKIGPH9vXrfm4g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4255 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1649670065543100001 Content-Type: text/plain; charset="utf-8" There's no good reason to use these when we already have a pci_sbdf_t type object available. This extends to the use of PCI_BUS() in pci_ecam_map_bus() as well. No change to generated code (with gcc11 at least, and I have to admit that I didn't expect compilers to necessarily be able to spot the optimization potential on the original code). Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monn=C3=A9 --- Note that the Arm changes are "blind": I haven't been able to spot a way to at least compile test the changes there; the code looks to be entirely dead. --- a/xen/arch/arm/pci/ecam.c +++ b/xen/arch/arm/pci/ecam.c @@ -28,8 +28,7 @@ void __iomem *pci_ecam_map_bus(struct pc container_of(bridge->ops, const struct pci_ecam_ops, pci_ops); unsigned int devfn_shift =3D ops->bus_shift - 8; void __iomem *base; - - unsigned int busn =3D PCI_BUS(sbdf.bdf); + unsigned int busn =3D sbdf.bus; =20 if ( busn < cfg->busn_start || busn > cfg->busn_end ) return NULL; @@ -37,7 +36,7 @@ void __iomem *pci_ecam_map_bus(struct pc busn -=3D cfg->busn_start; base =3D cfg->win + (busn << ops->bus_shift); =20 - return base + (PCI_DEVFN2(sbdf.bdf) << devfn_shift) + where; + return base + (sbdf.df << devfn_shift) + where; } =20 bool __init pci_ecam_need_p2m_hwdom_mapping(struct domain *d, --- a/xen/arch/x86/msi.c +++ b/xen/arch/x86/msi.c @@ -839,7 +839,7 @@ static int msix_capability_init(struct p pbus =3D dev->info.physfn.bus; pslot =3D PCI_SLOT(dev->info.physfn.devfn); pfunc =3D PCI_FUNC(dev->info.physfn.devfn); - vf =3D PCI_BDF2(dev->bus, dev->devfn); + vf =3D dev->sbdf.bdf; } =20 table_paddr =3D read_pci_mem_bar(seg, pbus, pslot, pfunc, bir, vf); --- a/xen/drivers/passthrough/vtd/qinval.c +++ b/xen/drivers/passthrough/vtd/qinval.c @@ -267,7 +267,7 @@ int qinval_device_iotlb_sync(struct vtd_ qinval_entry->q.dev_iotlb_inv_dsc.lo.res_1 =3D 0; qinval_entry->q.dev_iotlb_inv_dsc.lo.max_invs_pend =3D pdev->ats.queue= _depth; qinval_entry->q.dev_iotlb_inv_dsc.lo.res_2 =3D 0; - qinval_entry->q.dev_iotlb_inv_dsc.lo.sid =3D PCI_BDF2(pdev->bus, pdev-= >devfn); + qinval_entry->q.dev_iotlb_inv_dsc.lo.sid =3D pdev->sbdf.bdf; qinval_entry->q.dev_iotlb_inv_dsc.lo.res_3 =3D 0; =20 qinval_entry->q.dev_iotlb_inv_dsc.hi.size =3D size; From nobody Sat May 18 21:15:55 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1649670164; cv=pass; d=zohomail.com; s=zohoarc; b=Tauew5Vi78Jl3PjJ2gG3vaF/c71gerZLcDCIhnlfMCuOdqMoZfBbX51BZ4z4siGogYzYtyGjW5sLGXxEQpKzOE91a0k3yMeZ3w7+OXqEuqqOxhN88S/bPomorGuRJVVmtUkCEzs3g5n3fFoEAdRno4iDvtpeSoBQJPrlzR163Yc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649670164; 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=Py/JyO0vBJGMqJ1hK6JAceWT1qoE+ikG7idy1ZPeUKY=; b=gOfEiknQt328frReM1hjOw5VSS1G0ZFV7rCesPq2r+QqUbjdaX5zgmyaxKti6PKCjXJHq3z+nDY1cutRx8GctFgGDhl3Bdvhdmu1p1yphkrsWs4S+QKCt/i/QYMS8wcbFl25889JIfhWdgugPfZCK4M9y+7sSnG2qgv8KKKMk4s= 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1649670164958715.435940818456; Mon, 11 Apr 2022 02:42:44 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.302803.516592 (Exim 4.92) (envelope-from ) id 1ndqYo-0003SB-GT; Mon, 11 Apr 2022 09:42:14 +0000 Received: by outflank-mailman (output) from mailman id 302803.516592; Mon, 11 Apr 2022 09:42:14 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ndqYo-0003Rv-Cm; Mon, 11 Apr 2022 09:42:14 +0000 Received: by outflank-mailman (input) for mailman id 302803; Mon, 11 Apr 2022 09:42:13 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ndqYn-0003RQ-Bq for xen-devel@lists.xenproject.org; Mon, 11 Apr 2022 09:42:13 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a8cf1c46-b97b-11ec-a405-831a346695d4; Mon, 11 Apr 2022 11:42:10 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2168.outbound.protection.outlook.com [104.47.17.168]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-20-M7Rhd22AM-Sav96TeFIefA-1; Mon, 11 Apr 2022 11:42:08 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by VI1PR04MB7200.eurprd04.prod.outlook.com (2603:10a6:800:12d::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Mon, 11 Apr 2022 09:42:07 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1%6]) with mapi id 15.20.5144.029; Mon, 11 Apr 2022 09:42:07 +0000 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: a8cf1c46-b97b-11ec-a405-831a346695d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649670130; 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=Py/JyO0vBJGMqJ1hK6JAceWT1qoE+ikG7idy1ZPeUKY=; b=NYub578PPk5wapht32R3PQA981h+Puak3kqwoYMmP1bbzfY8wQA458HQwDucDlKp4cEU0l 9H8A0hX+TZKPL7FO4BZa+DBw4mVscMLNYhpPbkvETBmf3WjhcREIOnpgGkMGSjrLNfy6aq fmZA0R1PudVV+BCGgxeKVyhqsASKyOM= X-MC-Unique: M7Rhd22AM-Sav96TeFIefA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i4oO1TU9cLr9A1SzCLek/somh+uMZmcGvyc95S4sCb6gmCUwigxrZLaignKG18SLpgHNARii8IujxIkGdaTegdr358i+Ythqd1KffDuTaDlETMFfRZ6/WnaUbw7YDpJutTWneExBd5V9ZowJOtZ0ifgean0Ovf/o9T0zjCrCdHVKzYVcpvO7Ji6kyHcvNDLYbsfI68RbvmzPCh0GC1+sRW036S4n8ozUFYIKLYiJnGG0vFMa4ITeVP/GHexJlEbrtg1yMqvkmnDKKk5UI5jd893tc9DBE58IIU5FEw9l0v7+t5YTjTnNKD2IsT7h4h4+FJLwnFzGapqZvAbbiMs9Kw== 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=Py/JyO0vBJGMqJ1hK6JAceWT1qoE+ikG7idy1ZPeUKY=; b=DVxHwhDQSfZMCLztif2w++TgoXsl1rYhjlGStbGpvTQbzakUS4AT6vb47bWH9vDlrtz3ayCl3cCG2QFRDiMpWRLsh5k8yN3aSg8BFUTvWVoxoDK4DDQr2tAva7k0na/cPRkF/c4dAbUa/KqhInOkVedIXsWjr84Pncp+PEOI0Eycm4OROs1pjieihMNWqzFrB9DV7X8J6WtiHBJ4DLodT39se9lufSBq2xmu7tkz7Kma7XQ9iXk59ehD0dXPvf035YYSkWshF3fC0OfpcttCzGHSUeSwJqRnC0JtgqYBlOvJ9RdiFITFTiwrZzShCe9J8xPTeS1gd+fmGq6jRjP7Lg== 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: <75623ef8-5aa1-b864-7398-b7980accaf32@suse.com> Date: Mon, 11 Apr 2022 11:42:05 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: [PATCH 8/8] PCI: replace "secondary" flavors of PCI_{DEVFN,BDF,SBDF}() Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Kevin Tian , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , Andrew Cooper , George Dunlap , Julien Grall , Stefano Stabellini , Wei Liu References: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> In-Reply-To: <4785ba7d-8759-7441-4ac8-0866489707b6@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM7PR02CA0014.eurprd02.prod.outlook.com (2603:10a6:20b:100::24) 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: 006a9268-5c50-435b-e8e7-08da1b9f8ad2 X-MS-TrafficTypeDiagnostic: VI1PR04MB7200: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: qzmvTXfiWQn48xzDWlxhu0x3gMKygw4pXKaEyJOlfLwQHotRVGNClmV1XoLBscS9RO5qBui1Gis5x/ao+w0ADQsMH9RQjYvlNrmsLw6MVCFfb0OqspNZMKpPGAkRDesAId0+R1kmbJrXm/v9MLezxK+3Txow8I1I1HARVfo543SxpqDO0I8iERhcFuEMruKKS7pRnNSMRA55jG+8YDJmDsnPdPJwBTh9CkRP4UrzgEXnqiQOmj93GzqU24ZtGavWedM7f/E7OfdmOS4LOxhBdWU6wrrhi8Lhz0BvhcarKukUpfOXCJDk8K8ljByJ7FAM2uBb5h9u7M1CcVDvWvCFEzyCI0FbFP60g3MWdVCv5vDIWUo0GirUNMun0TVYb10GLSmdWcbm0CoV69RNE7VWDSINe0o2fphZVwinwbbHns1dvcg6JrSg0hdo4E+xr1DhMYgUzaVqQOvixzxnxoDEwYzSz2AwJmUQRenuLS/YMMB6FoesnMs3lhziCV3eootoHAg3B2eABB3MjulEkleonyhwh3fZg/SYuqrIY/RojTQHzd3K2eMVhedE1VGkpSZ9L2j84fd8CCTW3hL0aFSBU7UHUXuA1jmQoPSrm4/FazvZL3tJOL9qflfKASEy3Y7xNIA8DfzbnjDlI60jUMgPNIJFVr5CAKYOdtFoJ1aDpPaWzKGkx/HQ15CBNEuT+T1ADRUs5sKBzZz8bYiFa0qExCKKshyUoFq8av4MUrXufyxxJzXOBObud9w+NGmUVYyfWUvmvpbjY6XuZuPbdVjFSw== 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)(66476007)(4326008)(8676002)(66946007)(6512007)(66556008)(186003)(31696002)(86362001)(38100700002)(2906002)(8936002)(5660300002)(30864003)(83380400001)(26005)(2616005)(6506007)(54906003)(6916009)(316002)(508600001)(31686004)(36756003)(6486002)(43740500002)(45980500001)(579004)(309714004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dk9Cc3ltWmFpYXJSRDVvcjJRZWZZZGtENGlCRTNQMzFCSGkxZDN3ZmVSZVdt?= =?utf-8?B?ek1QOVFRYmhsQTRCVWZxcUdLZ2NlZktabGF3SSsxM1ZnYWpraUdsaExUMFda?= =?utf-8?B?TTg0ckJQR0hKY2lJa2hLNDYxcUZUcTVBL1pXMzd3ZTRnNzIzT2VvYUlGd0N1?= =?utf-8?B?TkJseFdWcTAxKzNadlp5ZUNwa1hYTVlVUm5rN1Zncit4T1F5ZUxIRW9vSmlh?= =?utf-8?B?M2d6aVVBUHNXSWFaYWZQcElTNHJOSFVvNXIra3FxaktESXRyTWtoS1pSVjBp?= =?utf-8?B?cmh3RjhjNnFiNEpWM1hWemJLbEVHaEJ1Q0ppdFpoTTJ5Zk82b1NGMEhFR3Zs?= =?utf-8?B?eTBnN3ptTWNEdWNSOFROTnNzVm5YWXhvbU4xeThJMWFsbldPR3V6cmQ2TWtR?= =?utf-8?B?KytXYVhJcm9tSmxRQjdEa2ZpSUJoVFJnc1FCTEtQZ3hpUENKUWc0bnFycEJj?= =?utf-8?B?amlId3ZqSEgxYWtlSGFHMm54dFFNZVBsYnpPZ2YyMEE3V01JbFpiOXhFZnc4?= =?utf-8?B?L0Nyc1pYbzJXVWhVU2tyUTgvZU0wRlNjQjBOOTgwNVdZcUEvMmN1bHNJQzZN?= =?utf-8?B?NU50ejB4RW1CSzFUSkoxNkZFSXB4Zm01aVpUSFoxV00rMG0way9zcCt5UTFh?= =?utf-8?B?bDd4NTdiS3NVME1LeURMZmdnTGNzSXZoNUpLN2ZOZ0x0RkJzbzlyVHlVbEFh?= =?utf-8?B?dm1tS2hIUkR4cDZVeEJCeGpEWlhTZnJkTUxmZmIwTmppVXljNHNLZmIxaWhr?= =?utf-8?B?VmNvVCtwMFpxeE5XcjBLOTRUeEF3T0p5WklFMlVDb21LNHAwOXIzWi9LNFNn?= =?utf-8?B?bnVuS3NkNG9NUmZYTlBRcCtSZmwzU3RLd2ZDcHRpOXJaQTlpL3owNWFCOXBW?= =?utf-8?B?TnJtd05DamxXcGdldFRDZHhBQkwvSjJhVVlhcmI1MWd2VFRMdTZibm5Wa3ZM?= =?utf-8?B?cXZsVHJLRHBaM1FSNzliMTdXMW9PNUlRSGM0dW9Sa0RCRWE3clAyU0pXRGUv?= =?utf-8?B?bjZPVmFhWCtFcUs3TU5BcHpmSW5VejZzSlphaFpjWW5SWVJlVURzYjBEbG5U?= =?utf-8?B?cEFKMEhRdzgwd1U5RTZMOWNESUZrTVNBZDVDMFg3NTZ1aVFtaU9xSFNGTTFl?= =?utf-8?B?K3FXWGtnbythK2hPMlR5WjRZdmtLbGVtb093UFhOZlNzRkx3VEx1b1lEalY2?= =?utf-8?B?amJlRnphamg3ZW1COHBFZWhjbjlnSEVrTU5YNjJaODlmNnBTVVJJM3Z5NW9Q?= =?utf-8?B?QzBhbjJScE5wcUQ0aU1wMEhuUFBLZFhEQ0JoOTlkUHhtY1l4OE1IOTZlMUl3?= =?utf-8?B?YXlTUmJNNlZaNkc0R1NaTVZvK3lKTXpKZEw0dnF4M0FsZ1ZlT3E0NGlFazJJ?= =?utf-8?B?NzYvbnZjN01oQURnSUcvdnN2NldacGRyalcrVlNvQmE5WVJkRVM4alFuQ0t2?= =?utf-8?B?c0FFZzAxTVJ3Wjd5disrdjd3QzVxWWZXWS8wbXJsL3JQSU16bWNvTXBlaFU3?= =?utf-8?B?VVdZeThTZStHOFBUM2lPWFZ4ZUh6MGRYOUI2ZHljMVlQM3pWaHpLdmJJQmN0?= =?utf-8?B?dVhhL0NZT3J1WkhZeGxndXRkVW1URmVNNnlmY2JPNzlnbHlVbGEvaWxqdUNa?= =?utf-8?B?TjRGSWRQa0dTMzJyTzNtR09IUk04VEJjQXgxK1YzSzQ4SFlvVHFFWUhRQURk?= =?utf-8?B?akNYUlIxazh5dS8xeWVkcXFYMUtKdUsxT2E1cXhPK1F0MzBxSURreHBXTVRa?= =?utf-8?B?UG4rOXlUK1FhMmVjeU5SOW5zdEJPZFlNWk9TQ04xOUVYcVdJcStBZ2ladG5t?= =?utf-8?B?VDcxd3ZiaEFmSldMNHdLNENNNHF2RU9qcWxpTkVMVDlFNUdReGpaMXdNMWdZ?= =?utf-8?B?eUF4UWZ6NjMvdnZnTW9WekJTR010S3lnWXBZWXVNeHNERERaZ2xVRTZBSk5s?= =?utf-8?B?VWNrSXE0VW1BWEIycDd2V2hLeVFDV0w1OWxQN0srWW9Ba0dLZDMyRlI5M1Q1?= =?utf-8?B?SkVtL25ZczZCM1Q3QTloNSszdmFLU1BkcFU2RCtlazZseEs2Z3RycVFaRDRE?= =?utf-8?B?VTNTWW52WVN6ZW9COXlDSXRaS05aVFdyVzlXZnk4eVJJMFFtbG00bXBnWTNo?= =?utf-8?B?Qk9mOHU4S2NCZWczZ1BRNTIxRTl6YjZ1a1NIaHF4REdPT1h5ZVVuRlYzc2RS?= =?utf-8?B?TkFBVnR0WklIdS85M3ExUHBNbldKWU56c3c0OTJySUswNzhkRjEzZFBDa0dS?= =?utf-8?B?d3VQNU81akFPRFlqZ1ZrdEZBSUI2cDBDdG94QWxHbkhYL0JtUWZFMEpGNFBS?= =?utf-8?B?SWhsa1F5UURJT3hXT0k0QnRKc3M5WUhXdTVDWHc1enNQQkt1T2NtUT09?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 006a9268-5c50-435b-e8e7-08da1b9f8ad2 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2022 09:42:07.0268 (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: G7L8Snq/6eXwDOnsaZId8uQXJ1CMnsRbuJVuaBtuFGgQbuT5FBZCRScykeaHFNvX7VjK4xW7D0wiLXLizCcLZw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7200 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1649670165953100001 Content-Type: text/plain; charset="utf-8" At their use sites the numeric suffixes are at least odd to read, first and foremost for PCI_DEVFN2() where the suffix doesn't even match the number of arguments. Make use of count_args() such that a single flavor each suffices (leaving aside helper macros, which aren't supposed to be used from the outside). In parse_ppr_log_entry() take the opportunity and drop two local variables and convert an assignment to an initializer. In VT-d code fold a number of bus+devfn comparison pairs into a single BDF comparison. No change to generated code for the vast majority of the adjustments. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monn=C3=A9 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -4902,7 +4902,7 @@ int cf_check mmcfg_intercept_write( if ( pci_conf_write_intercept(mmio_ctxt->seg, mmio_ctxt->bdf, offset, bytes, p_data) >=3D 0 ) pci_mmcfg_write(mmio_ctxt->seg, PCI_BUS(mmio_ctxt->bdf), - PCI_DEVFN2(mmio_ctxt->bdf), offset, bytes, + PCI_DEVFN(mmio_ctxt->bdf), offset, bytes, *(uint32_t *)p_data); =20 return X86EMUL_OKAY; --- a/xen/arch/x86/pci.c +++ b/xen/arch/x86/pci.c @@ -90,7 +90,7 @@ int pci_conf_write_intercept(unsigned in =20 pcidevs_lock(); =20 - pdev =3D pci_get_pdev(seg, PCI_BUS(bdf), PCI_DEVFN2(bdf)); + pdev =3D pci_get_pdev(seg, PCI_BUS(bdf), PCI_DEVFN(bdf)); if ( pdev ) rc =3D pci_msi_conf_write_intercept(pdev, reg, size, data); =20 --- a/xen/arch/x86/x86_64/mmconfig-shared.c +++ b/xen/arch/x86/x86_64/mmconfig-shared.c @@ -313,7 +313,7 @@ static int __init pci_mmcfg_check_hostbr for (i =3D 0; !name && i < ARRAY_SIZE(pci_mmcfg_probes); i++) { bus =3D pci_mmcfg_probes[i].bus; devfn =3D pci_mmcfg_probes[i].devfn; - l =3D pci_conf_read32(PCI_SBDF3(0, bus, devfn), 0); + l =3D pci_conf_read32(PCI_SBDF(0, bus, devfn), 0); vendor =3D l & 0xffff; device =3D (l >> 16) & 0xffff; =20 --- a/xen/common/compat/memory.c +++ b/xen/common/compat/memory.c @@ -27,8 +27,8 @@ static int cf_check get_reserved_device_ xen_pfn_t start, xen_ulong_t nr, u32 id, void *ctxt) { struct get_reserved_device_memory *grdm =3D ctxt; - uint32_t sbdf =3D PCI_SBDF3(grdm->map.dev.pci.seg, grdm->map.dev.pci.b= us, - grdm->map.dev.pci.devfn).sbdf; + uint32_t sbdf =3D PCI_SBDF(grdm->map.dev.pci.seg, grdm->map.dev.pci.bu= s, + grdm->map.dev.pci.devfn).sbdf; =20 if ( !(grdm->map.flags & XENMEM_RDM_ALL) && (sbdf !=3D id) ) return 0; --- a/xen/common/memory.c +++ b/xen/common/memory.c @@ -1055,8 +1055,8 @@ static int cf_check get_reserved_device_ xen_pfn_t start, xen_ulong_t nr, u32 id, void *ctxt) { struct get_reserved_device_memory *grdm =3D ctxt; - uint32_t sbdf =3D PCI_SBDF3(grdm->map.dev.pci.seg, grdm->map.dev.pci.b= us, - grdm->map.dev.pci.devfn).sbdf; + uint32_t sbdf =3D PCI_SBDF(grdm->map.dev.pci.seg, grdm->map.dev.pci.bu= s, + grdm->map.dev.pci.devfn).sbdf; =20 if ( !(grdm->map.flags & XENMEM_RDM_ALL) && (sbdf !=3D id) ) return 0; --- a/xen/drivers/passthrough/amd/iommu_acpi.c +++ b/xen/drivers/passthrough/amd/iommu_acpi.c @@ -96,7 +96,7 @@ static void __init add_ivrs_mapping_entr =20 if ( !ivrs_mappings[alias_id].intremap_table ) panic("No memory for %pp's IRT\n", - &PCI_SBDF2(iommu->seg, alias_id)); + &PCI_SBDF(iommu->seg, alias_id)); } } =20 @@ -790,7 +790,7 @@ static u16 __init parse_ivhd_device_spec } =20 AMD_IOMMU_DEBUG("IVHD Special: %pp variety %#x handle %#x\n", - &PCI_SBDF2(seg, bdf), special->variety, special->handl= e); + &PCI_SBDF(seg, bdf), special->variety, special->handle= ); add_ivrs_mapping_entry(bdf, bdf, special->header.data_setting, 0, true, iommu); =20 @@ -816,7 +816,7 @@ static u16 __init parse_ivhd_device_spec AMD_IOMMU_DEBUG("IVHD: Command line override present for IO-AP= IC %#x" "(IVRS: %#x devID %pp)\n", ioapic_sbdf[idx].id, special->handle, - &PCI_SBDF2(seg, bdf)); + &PCI_SBDF(seg, bdf)); break; } =20 @@ -888,7 +888,7 @@ static u16 __init parse_ivhd_device_spec AMD_IOMMU_DEBUG("IVHD: Command line override present for HPET = %#x " "(IVRS: %#x devID %pp)\n", hpet_sbdf.id, special->handle, - &PCI_SBDF2(seg, bdf)); + &PCI_SBDF(seg, bdf)); break; case HPET_NONE: /* set device id of hpet */ --- a/xen/drivers/passthrough/amd/iommu_cmd.c +++ b/xen/drivers/passthrough/amd/iommu_cmd.c @@ -40,7 +40,7 @@ static void send_iommu_command(struct am IOMMU_RING_BUFFER_PTR_MASK) ) { printk_once(XENLOG_ERR "AMD IOMMU %pp: no cmd slot available\n", - &PCI_SBDF2(iommu->seg, iommu->bdf)); + &PCI_SBDF(iommu->seg, iommu->bdf)); cpu_relax(); } =20 @@ -84,7 +84,7 @@ static void flush_command_buffer(struct threshold |=3D threshold << 1; printk(XENLOG_WARNING "AMD IOMMU %pp: %scompletion wait taking too long\n", - &PCI_SBDF2(iommu->seg, iommu->bdf), + &PCI_SBDF(iommu->seg, iommu->bdf), timeout_base ? "iotlb " : ""); timeout =3D 0; } @@ -94,7 +94,7 @@ static void flush_command_buffer(struct if ( !timeout ) printk(XENLOG_WARNING "AMD IOMMU %pp: %scompletion wait took %lums\n", - &PCI_SBDF2(iommu->seg, iommu->bdf), + &PCI_SBDF(iommu->seg, iommu->bdf), timeout_base ? "iotlb " : "", (NOW() - start) / 10000000); } @@ -292,14 +292,14 @@ void amd_iommu_flush_iotlb(u8 devfn, con if ( !iommu ) { AMD_IOMMU_WARN("can't find IOMMU for %pp\n", - &PCI_SBDF3(pdev->seg, pdev->bus, devfn)); + &PCI_SBDF(pdev->seg, pdev->bus, devfn)); return; } =20 if ( !iommu_has_cap(iommu, PCI_CAP_IOTLB_SHIFT) ) return; =20 - req_id =3D get_dma_requestor_id(iommu->seg, PCI_BDF2(pdev->bus, devfn)= ); + req_id =3D get_dma_requestor_id(iommu->seg, PCI_BDF(pdev->bus, devfn)); queueid =3D req_id; maxpend =3D pdev->ats.queue_depth & 0xff; =20 --- a/xen/drivers/passthrough/amd/iommu_detect.c +++ b/xen/drivers/passthrough/amd/iommu_detect.c @@ -231,7 +231,7 @@ int __init amd_iommu_detect_one_acpi( rt =3D pci_ro_device(iommu->seg, bus, PCI_DEVFN(dev, func)); if ( rt ) printk(XENLOG_ERR "Could not mark config space of %pp read-only (%= d)\n", - &PCI_SBDF2(iommu->seg, iommu->bdf), rt); + &PCI_SBDF(iommu->seg, iommu->bdf), rt); =20 list_add_tail(&iommu->list, &amd_iommu_head); rt =3D 0; --- a/xen/drivers/passthrough/amd/iommu_init.c +++ b/xen/drivers/passthrough/amd/iommu_init.c @@ -562,7 +562,7 @@ static void cf_check parse_event_log_ent =20 printk(XENLOG_ERR "AMD-Vi: %s: %pp d%u addr %016"PRIx64 " flags %#x%s%s%s%s%s%s%s%s%s%s\n", - code_str, &PCI_SBDF2(iommu->seg, device_id), + code_str, &PCI_SBDF(iommu->seg, device_id), domain_id, addr, flags, (flags & 0xe00) ? " ??" : "", (flags & 0x100) ? " TR" : "", @@ -578,7 +578,7 @@ static void cf_check parse_event_log_ent for ( bdf =3D 0; bdf < ivrs_bdf_entries; bdf++ ) if ( get_dma_requestor_id(iommu->seg, bdf) =3D=3D device_id ) pci_check_disable_device(iommu->seg, PCI_BUS(bdf), - PCI_DEVFN2(bdf)); + PCI_DEVFN(bdf)); } else printk(XENLOG_ERR "%s %08x %08x %08x %08x\n", @@ -631,18 +631,13 @@ static void iommu_check_event_log(struct =20 static void cf_check parse_ppr_log_entry(struct amd_iommu *iommu, u32 entr= y[]) { - - u16 device_id; - u8 bus, devfn; - struct pci_dev *pdev; - /* here device_id is physical value */ - device_id =3D iommu_get_devid_from_cmd(entry[0]); - bus =3D PCI_BUS(device_id); - devfn =3D PCI_DEVFN2(device_id); + uint16_t device_id =3D iommu_get_devid_from_cmd(entry[0]); + struct pci_dev *pdev; =20 pcidevs_lock(); - pdev =3D pci_get_real_pdev(iommu->seg, bus, devfn); + pdev =3D pci_get_real_pdev(iommu->seg, PCI_BUS(device_id), + PCI_DEVFN(device_id)); pcidevs_unlock(); =20 if ( pdev ) @@ -751,12 +746,12 @@ static bool_t __init set_iommu_interrupt =20 pcidevs_lock(); iommu->msi.dev =3D pci_get_pdev(iommu->seg, PCI_BUS(iommu->bdf), - PCI_DEVFN2(iommu->bdf)); + PCI_DEVFN(iommu->bdf)); pcidevs_unlock(); if ( !iommu->msi.dev ) { AMD_IOMMU_WARN("no pdev for %pp\n", - &PCI_SBDF2(iommu->seg, iommu->bdf)); + &PCI_SBDF(iommu->seg, iommu->bdf)); return 0; } =20 @@ -778,7 +773,7 @@ static bool_t __init set_iommu_interrupt hw_irq_controller *handler; u16 control; =20 - control =3D pci_conf_read16(PCI_SBDF2(iommu->seg, iommu->bdf), + control =3D pci_conf_read16(PCI_SBDF(iommu->seg, iommu->bdf), iommu->msi.msi_attrib.pos + PCI_MSI_FLAG= S); =20 iommu->msi.msi.nvec =3D 1; @@ -842,22 +837,22 @@ static void amd_iommu_erratum_746_workar (boot_cpu_data.x86_model > 0x1f) ) return; =20 - pci_conf_write32(PCI_SBDF2(iommu->seg, iommu->bdf), 0xf0, 0x90); - value =3D pci_conf_read32(PCI_SBDF2(iommu->seg, iommu->bdf), 0xf4); + pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf0, 0x90); + value =3D pci_conf_read32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf4); =20 if ( value & (1 << 2) ) return; =20 /* Select NB indirect register 0x90 and enable writing */ - pci_conf_write32(PCI_SBDF2(iommu->seg, iommu->bdf), 0xf0, 0x90 | (1 <<= 8)); + pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf0, 0x90 | (1 << = 8)); =20 - pci_conf_write32(PCI_SBDF2(iommu->seg, iommu->bdf), 0xf4, value | (1 <= < 2)); + pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf4, value | (1 <<= 2)); printk(XENLOG_INFO "AMD-Vi: Applying erratum 746 workaround for IOMMU at %pp\n", - &PCI_SBDF2(iommu->seg, iommu->bdf)); + &PCI_SBDF(iommu->seg, iommu->bdf)); =20 /* Clear the enable writing bit */ - pci_conf_write32(PCI_SBDF2(iommu->seg, iommu->bdf), 0xf0, 0x90); + pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf0, 0x90); } =20 static void enable_iommu(struct amd_iommu *iommu) @@ -1288,7 +1283,7 @@ static int __init cf_check amd_iommu_set if ( !pci_init ) continue; pcidevs_lock(); - pdev =3D pci_get_pdev(seg, PCI_BUS(bdf), PCI_DEVFN2(bdf)); + pdev =3D pci_get_pdev(seg, PCI_BUS(bdf), PCI_DEVFN(bdf)); pcidevs_unlock(); } =20 --- a/xen/drivers/passthrough/amd/iommu_intr.c +++ b/xen/drivers/passthrough/amd/iommu_intr.c @@ -604,7 +604,7 @@ static struct amd_iommu *_find_iommu_for if ( iommu ) return iommu; =20 - AMD_IOMMU_DEBUG("No IOMMU for MSI dev =3D %pp\n", &PCI_SBDF2(seg, bdf)= ); + AMD_IOMMU_DEBUG("No IOMMU for MSI dev =3D %pp\n", &PCI_SBDF(seg, bdf)); return ERR_PTR(-EINVAL); } =20 @@ -814,7 +814,7 @@ static void dump_intremap_table(const st if ( ivrs_mapping ) { printk(" %pp:\n", - &PCI_SBDF2(iommu->seg, ivrs_mapping->dte_requestor_id)); + &PCI_SBDF(iommu->seg, ivrs_mapping->dte_requestor_id)); ivrs_mapping =3D NULL; } =20 --- a/xen/drivers/passthrough/amd/iommu_map.c +++ b/xen/drivers/passthrough/amd/iommu_map.c @@ -534,7 +534,7 @@ int cf_check amd_iommu_get_reserved_devi =20 for ( bdf =3D 0; bdf < ivrs_bdf_entries; ++bdf ) { - pci_sbdf_t sbdf =3D PCI_SBDF2(seg, bdf); + pci_sbdf_t sbdf =3D PCI_SBDF(seg, bdf); const struct ivrs_unity_map *um =3D ivrs_mappings[bdf].unity_map; unsigned int req =3D ivrs_mappings[bdf].dte_requestor_id; const struct amd_iommu *iommu =3D ivrs_mappings[bdf].iommu; @@ -563,7 +563,7 @@ int cf_check amd_iommu_get_reserved_devi * the same alias ID. */ if ( bdf !=3D req && ivrs_mappings[req].iommu && - func(0, 0, PCI_SBDF2(seg, req).sbdf, ctxt) ) + func(0, 0, PCI_SBDF(seg, req).sbdf, ctxt) ) continue; =20 if ( global =3D=3D pending ) --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c @@ -53,7 +53,7 @@ struct amd_iommu *find_iommu_for_device( ivrs_mappings[bdf] =3D tmp; =20 printk(XENLOG_WARNING "%pp not found in ACPI tables;" - " using same IOMMU as function 0\n", &PCI_SBDF2(seg, bd= f)); + " using same IOMMU as function 0\n", &PCI_SBDF(seg, bdf= )); =20 /* write iommu field last */ ivrs_mappings[bdf].iommu =3D ivrs_mappings[bd0].iommu; @@ -144,7 +144,7 @@ static int __must_check amd_iommu_setup_ | (ivrs_dev->unity_map ? SET_ROOT_WITH_UNITY_MAP : 0); =20 /* get device-table entry */ - req_id =3D get_dma_requestor_id(iommu->seg, PCI_BDF2(bus, devfn)); + req_id =3D get_dma_requestor_id(iommu->seg, PCI_BDF(bus, devfn)); table =3D iommu->dev_table.buffer; dte =3D &table[req_id]; ivrs_dev =3D &get_ivrs_mappings(iommu->seg)[req_id]; @@ -202,7 +202,7 @@ static int __must_check amd_iommu_setup_ * presence. But let's deal with that case only if it is actually * found in the wild. */ - if ( req_id !=3D PCI_BDF2(bus, devfn) && + if ( req_id !=3D PCI_BDF(bus, devfn) && (sr_flags & SET_ROOT_WITH_UNITY_MAP) ) rc =3D -EOPNOTSUPP; else @@ -231,7 +231,7 @@ static int __must_check amd_iommu_setup_ (any_pdev_behind_iommu(pdev->domain, pdev, iommu) || pdev->phantom_stride) ) AMD_IOMMU_WARN(" %pp: reassignment may cause %pd data corrupti= on\n", - &PCI_SBDF3(pdev->seg, bus, devfn), pdev->domain= ); + &PCI_SBDF(pdev->seg, bus, devfn), pdev->domain); =20 /* * Check remaining settings are still in place from an earlier call @@ -414,7 +414,7 @@ static void amd_iommu_disable_domain_dev disable_ats_device(pdev); =20 BUG_ON ( iommu->dev_table.buffer =3D=3D NULL ); - req_id =3D get_dma_requestor_id(iommu->seg, PCI_BDF2(bus, devfn)); + req_id =3D get_dma_requestor_id(iommu->seg, PCI_BDF(bus, devfn)); table =3D iommu->dev_table.buffer; dte =3D &table[req_id]; =20 @@ -461,7 +461,7 @@ static int cf_check reassign_device( if ( !iommu ) { AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be assigned to %p= d\n", - &PCI_SBDF3(pdev->seg, pdev->bus, devfn), target); + &PCI_SBDF(pdev->seg, pdev->bus, devfn), target); return -ENODEV; } =20 @@ -488,7 +488,7 @@ static int cf_check reassign_device( if ( !is_hardware_domain(source) ) { const struct ivrs_mappings *ivrs_mappings =3D get_ivrs_mappings(pd= ev->seg); - unsigned int bdf =3D PCI_BDF2(pdev->bus, devfn); + unsigned int bdf =3D PCI_BDF(pdev->bus, devfn); =20 rc =3D amd_iommu_reserve_domain_unity_unmap( source, @@ -498,7 +498,7 @@ static int cf_check reassign_device( } =20 AMD_IOMMU_DEBUG("Re-assign %pp from %pd to %pd\n", - &PCI_SBDF3(pdev->seg, pdev->bus, devfn), source, targe= t); + &PCI_SBDF(pdev->seg, pdev->bus, devfn), source, target= ); =20 return 0; } @@ -507,7 +507,7 @@ static int cf_check amd_iommu_assign_dev struct domain *d, u8 devfn, struct pci_dev *pdev, u32 flag) { struct ivrs_mappings *ivrs_mappings =3D get_ivrs_mappings(pdev->seg); - int bdf =3D PCI_BDF2(pdev->bus, devfn); + unsigned int bdf =3D PCI_BDF(pdev->bus, devfn); int req_id =3D get_dma_requestor_id(pdev->seg, bdf); int rc =3D amd_iommu_reserve_domain_unity_map( d, ivrs_mappings[req_id].unity_map, flag); @@ -575,12 +575,12 @@ static int cf_check amd_iommu_add_device } =20 AMD_IOMMU_WARN("no IOMMU for %pp; cannot be handed to %pd\n", - &PCI_SBDF3(pdev->seg, pdev->bus, devfn), pdev->dom= ain); + &PCI_SBDF(pdev->seg, pdev->bus, devfn), pdev->doma= in); return -ENODEV; } =20 ivrs_mappings =3D get_ivrs_mappings(pdev->seg); - bdf =3D PCI_BDF2(pdev->bus, devfn); + bdf =3D PCI_BDF(pdev->bus, devfn); if ( !ivrs_mappings || !ivrs_mappings[ivrs_mappings[bdf].dte_requestor_id].valid ) return -EPERM; @@ -618,7 +618,7 @@ static int cf_check amd_iommu_add_device ivrs_mappings[ivrs_mappings[bdf].dte_requestor_id].unity_map, 0) ) AMD_IOMMU_WARN("%pd: unity mapping failed for %pp\n", - pdev->domain, &PCI_SBDF2(pdev->seg, bdf)); + pdev->domain, &PCI_SBDF(pdev->seg, bdf)); =20 if ( iommu_quarantine && pdev->arch.pseudo_domid =3D=3D DOMID_INVALID ) { @@ -651,20 +651,20 @@ static int cf_check amd_iommu_remove_dev if ( !iommu ) { AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be removed from %= pd\n", - &PCI_SBDF3(pdev->seg, pdev->bus, devfn), pdev->dom= ain); + &PCI_SBDF(pdev->seg, pdev->bus, devfn), pdev->doma= in); return -ENODEV; } =20 amd_iommu_disable_domain_device(pdev->domain, iommu, devfn, pdev); =20 ivrs_mappings =3D get_ivrs_mappings(pdev->seg); - bdf =3D PCI_BDF2(pdev->bus, devfn); + bdf =3D PCI_BDF(pdev->bus, devfn); =20 if ( amd_iommu_reserve_domain_unity_unmap( pdev->domain, ivrs_mappings[ivrs_mappings[bdf].dte_requestor_id].unity_map)= ) AMD_IOMMU_WARN("%pd: unity unmapping failed for %pp\n", - pdev->domain, &PCI_SBDF2(pdev->seg, bdf)); + pdev->domain, &PCI_SBDF(pdev->seg, bdf)); =20 amd_iommu_quarantine_teardown(pdev); =20 @@ -681,7 +681,7 @@ static int cf_check amd_iommu_remove_dev =20 static int cf_check amd_iommu_group_id(u16 seg, u8 bus, u8 devfn) { - int bdf =3D PCI_BDF2(bus, devfn); + unsigned int bdf =3D PCI_BDF(bus, devfn); =20 return (bdf < ivrs_bdf_entries) ? get_dma_requestor_id(seg, bdf) : bdf; } --- a/xen/drivers/passthrough/ats.h +++ b/xen/drivers/passthrough/ats.h @@ -35,7 +35,7 @@ static inline int pci_ats_enabled(int se pos =3D pci_find_ext_capability(seg, bus, devfn, PCI_EXT_CAP_ID_ATS); BUG_ON(!pos); =20 - value =3D pci_conf_read16(PCI_SBDF3(seg, bus, devfn), pos + ATS_REG_CT= L); + value =3D pci_conf_read16(PCI_SBDF(seg, bus, devfn), pos + ATS_REG_CTL= ); =20 return value & ATS_ENABLE; } --- a/xen/drivers/passthrough/pci.c +++ b/xen/drivers/passthrough/pci.c @@ -553,7 +553,7 @@ int __init pci_ro_device(int seg, int bu memset(pseg->ro_map, 0, sz); } =20 - __set_bit(PCI_BDF2(bus, devfn), pseg->ro_map); + __set_bit(PCI_BDF(bus, devfn), pseg->ro_map); _pci_hide_device(pdev); =20 return 0; @@ -957,7 +957,7 @@ static int deassign_device(struct domain out: if ( ret ) printk(XENLOG_G_ERR "%pd: deassign (%pp) failed (%d)\n", - d, &PCI_SBDF3(seg, bus, devfn), ret); + d, &PCI_SBDF(seg, bus, devfn), ret); =20 return ret; } @@ -1406,7 +1406,7 @@ static int iommu_add_device(struct pci_d rc =3D iommu_call(hd->platform_ops, add_device, devfn, pci_to_dev(= pdev)); if ( rc ) printk(XENLOG_WARNING "IOMMU: add %pp failed (%d)\n", - &PCI_SBDF3(pdev->seg, pdev->bus, devfn), rc); + &PCI_SBDF(pdev->seg, pdev->bus, devfn), rc); } } =20 @@ -1452,7 +1452,7 @@ static int iommu_remove_device(struct pc continue; =20 printk(XENLOG_ERR "IOMMU: remove %pp failed (%d)\n", - &PCI_SBDF3(pdev->seg, pdev->bus, devfn), rc); + &PCI_SBDF(pdev->seg, pdev->bus, devfn), rc); return rc; } =20 @@ -1536,7 +1536,7 @@ static int assign_device(struct domain * done: if ( rc ) printk(XENLOG_G_WARNING "%pd: assign (%pp) failed (%d)\n", - d, &PCI_SBDF3(seg, bus, devfn), rc); + d, &PCI_SBDF(seg, bus, devfn), rc); /* The device is assigned to dom_io so mark it as quarantined */ else if ( d =3D=3D dom_io ) pdev->quarantine =3D true; @@ -1647,7 +1647,7 @@ int iommu_do_pci_domctl( =20 seg =3D domctl->u.get_device_group.machine_sbdf >> 16; bus =3D PCI_BUS(domctl->u.get_device_group.machine_sbdf); - devfn =3D PCI_DEVFN2(domctl->u.get_device_group.machine_sbdf); + devfn =3D PCI_DEVFN(domctl->u.get_device_group.machine_sbdf); max_sdevs =3D domctl->u.get_device_group.max_sdevs; sdevs =3D domctl->u.get_device_group.sdev_array; =20 @@ -1697,7 +1697,7 @@ int iommu_do_pci_domctl( =20 seg =3D machine_sbdf >> 16; bus =3D PCI_BUS(machine_sbdf); - devfn =3D PCI_DEVFN2(machine_sbdf); + devfn =3D PCI_DEVFN(machine_sbdf); =20 pcidevs_lock(); ret =3D device_assigned(seg, bus, devfn); @@ -1706,7 +1706,7 @@ int iommu_do_pci_domctl( if ( ret ) { printk(XENLOG_G_INFO "%pp already assigned, or non-existen= t\n", - &PCI_SBDF3(seg, bus, devfn)); + &PCI_SBDF(seg, bus, devfn)); ret =3D -EINVAL; } } @@ -1742,7 +1742,7 @@ int iommu_do_pci_domctl( =20 seg =3D machine_sbdf >> 16; bus =3D PCI_BUS(machine_sbdf); - devfn =3D PCI_DEVFN2(machine_sbdf); + devfn =3D PCI_DEVFN(machine_sbdf); =20 pcidevs_lock(); ret =3D deassign_device(d, seg, bus, devfn); --- a/xen/drivers/passthrough/vtd/dmar.c +++ b/xen/drivers/passthrough/vtd/dmar.c @@ -222,7 +222,7 @@ struct acpi_drhd_unit *acpi_find_matched continue; =20 for (i =3D 0; i < drhd->scope.devices_cnt; i++) - if ( drhd->scope.devices[i] =3D=3D PCI_BDF2(bus, devfn) ) + if ( drhd->scope.devices[i] =3D=3D PCI_BDF(bus, devfn) ) return drhd; =20 if ( test_bit(bus, drhd->scope.buses) ) @@ -1062,7 +1062,7 @@ int cf_check intel_iommu_get_reserved_de =20 rc =3D func(PFN_DOWN(rmrr->base_address), PFN_UP(rmrr->end_address) - PFN_DOWN(rmrr->base_address), - PCI_SBDF2(rmrr->segment, bdf).sbdf, ctxt); + PCI_SBDF(rmrr->segment, bdf).sbdf, ctxt); =20 if ( unlikely(rc < 0) ) return rc; --- a/xen/drivers/passthrough/vtd/intremap.c +++ b/xen/drivers/passthrough/vtd/intremap.c @@ -498,7 +498,7 @@ static void set_msi_source_id(struct pci case 4: sq =3D SQ_13_IGNORE_1; break; default: sq =3D SQ_ALL_16; break; } - set_ire_sid(ire, SVT_VERIFY_SID_SQ, sq, PCI_BDF2(bus, devfn)); + set_ire_sid(ire, SVT_VERIFY_SID_SQ, sq, PCI_BDF(bus, devfn)); break; =20 case DEV_TYPE_PCI: @@ -508,7 +508,7 @@ static void set_msi_source_id(struct pci if ( ret =3D=3D 0 ) /* integrated PCI device */ { set_ire_sid(ire, SVT_VERIFY_SID_SQ, SQ_ALL_16, - PCI_BDF2(bus, devfn)); + PCI_BDF(bus, devfn)); } else if ( ret =3D=3D 1 ) /* find upstream bridge */ { @@ -517,7 +517,7 @@ static void set_msi_source_id(struct pci (bus << 8) | pdev->bus); else set_ire_sid(ire, SVT_VERIFY_SID_SQ, SQ_ALL_16, - PCI_BDF2(bus, devfn)); + PCI_BDF(bus, devfn)); } else dprintk(XENLOG_WARNING VTDPREFIX, --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -938,21 +938,21 @@ static int iommu_page_fault_do_one(struc "DMAR:[%s] Request device [%pp] " "fault addr %"PRIx64"\n", (type ? "DMA Read" : "DMA Write"), - &PCI_SBDF2(seg, source_id), addr); + &PCI_SBDF(seg, source_id), addr); kind =3D "DMAR"; break; case INTR_REMAP: printk(XENLOG_G_WARNING VTDPREFIX "INTR-REMAP: Request device [%pp] " "fault index %"PRIx64"\n", - &PCI_SBDF2(seg, source_id), addr >> 48); + &PCI_SBDF(seg, source_id), addr >> 48); kind =3D "INTR-REMAP"; break; default: printk(XENLOG_G_WARNING VTDPREFIX "UNKNOWN: Request device [%pp] " "fault addr %"PRIx64"\n", - &PCI_SBDF2(seg, source_id), addr); + &PCI_SBDF(seg, source_id), addr); kind =3D "UNKNOWN"; break; } @@ -961,7 +961,7 @@ static int iommu_page_fault_do_one(struc kind, fault_reason, reason); =20 if ( iommu_verbose && fault_type =3D=3D DMA_REMAP ) - print_vtd_entries(iommu, PCI_BUS(source_id), PCI_DEVFN2(source_id), + print_vtd_entries(iommu, PCI_BUS(source_id), PCI_DEVFN(source_id), addr >> PAGE_SHIFT); =20 return 0; @@ -1039,7 +1039,7 @@ static void __do_iommu_page_fault(struct source_id, guest_addr); =20 pci_check_disable_device(iommu->drhd->segment, - PCI_BUS(source_id), PCI_DEVFN2(source_id)= ); + PCI_BUS(source_id), PCI_DEVFN(source_id)); =20 fault_index++; if ( fault_index > cap_num_fault_regs(iommu->cap) ) @@ -1541,7 +1541,7 @@ int domain_context_mapping_one( check_cleanup_domid_map(domain, pdev, iommu); printk(XENLOG_ERR "%pp: unexpected context entry %016lx_%016lx (expected = %016lx_%016lx)\n", - &PCI_SBDF3(seg, bus, devfn), + &PCI_SBDF(seg, bus, devfn), (uint64_t)(res >> 64), (uint64_t)res, (uint64_t)(old >> 64), (uint64_t)old); rc =3D -EILSEQ; @@ -1571,7 +1571,7 @@ int domain_context_mapping_one( if ( !(mode & (MAP_OWNER_DYING | MAP_SINGLE_DEVICE)) ) printk(XENLOG_WARNING VTDPREFIX " %pp: reassignment may cause %pd data corruption\n", - &PCI_SBDF3(seg, bus, devfn), prev_dom); + &PCI_SBDF(seg, bus, devfn), prev_dom); =20 write_atomic(&context->lo, lctxt.lo); /* No barrier should be needed between these two. */ @@ -1581,7 +1581,7 @@ int domain_context_mapping_one( iommu_sync_cache(context, sizeof(struct context_entry)); spin_unlock(&iommu->lock); =20 - rc =3D iommu_flush_context_device(iommu, prev_did, PCI_BDF2(bus, devfn= ), + rc =3D iommu_flush_context_device(iommu, prev_did, PCI_BDF(bus, devfn), DMA_CCMD_MASK_NOBIT, !prev_dom); flush_dev_iotlb =3D !!find_ats_dev_drhd(iommu); ret =3D iommu_flush_iotlb_dsi(iommu, prev_did, !prev_dom, flush_dev_io= tlb); @@ -1688,7 +1688,7 @@ static int domain_context_mapping(struct case DEV_TYPE_PCI_HOST_BRIDGE: if ( iommu_debug ) printk(VTDPREFIX "%pd:Hostbridge: skip %pp map\n", - domain, &PCI_SBDF3(seg, bus, devfn)); + domain, &PCI_SBDF(seg, bus, devfn)); if ( !is_hardware_domain(domain) ) return -EPERM; break; @@ -1712,7 +1712,7 @@ static int domain_context_mapping(struct =20 if ( iommu_debug ) printk(VTDPREFIX "%pd:PCIe: map %pp\n", - domain, &PCI_SBDF3(seg, bus, devfn)); + domain, &PCI_SBDF(seg, bus, devfn)); ret =3D domain_context_mapping_one(domain, drhd->iommu, bus, devfn= , pdev, DEVICE_DOMID(domain, pdev), pgd_m= addr, mode); @@ -1737,7 +1737,7 @@ static int domain_context_mapping(struct =20 if ( iommu_debug ) printk(VTDPREFIX "%pd:PCI: map %pp\n", - domain, &PCI_SBDF3(seg, bus, devfn)); + domain, &PCI_SBDF(seg, bus, devfn)); =20 ret =3D domain_context_mapping_one(domain, drhd->iommu, bus, devfn, pdev, DEVICE_DOMID(domain, pdev), @@ -1802,7 +1802,7 @@ static int domain_context_mapping(struct =20 default: dprintk(XENLOG_ERR VTDPREFIX, "%pd:unknown(%u): %pp\n", - domain, pdev->type, &PCI_SBDF3(seg, bus, devfn)); + domain, pdev->type, &PCI_SBDF(seg, bus, devfn)); ret =3D -EINVAL; break; } @@ -1851,7 +1851,7 @@ int domain_context_unmap_one( iommu_sync_cache(context, sizeof(struct context_entry)); =20 rc =3D iommu_flush_context_device(iommu, iommu_domid, - PCI_BDF2(bus, devfn), + PCI_BDF(bus, devfn), DMA_CCMD_MASK_NOBIT, 0); =20 flush_dev_iotlb =3D !!find_ats_dev_drhd(iommu); @@ -1910,7 +1910,7 @@ static const struct acpi_drhd_unit *doma case DEV_TYPE_PCI_HOST_BRIDGE: if ( iommu_debug ) printk(VTDPREFIX "%pd:Hostbridge: skip %pp unmap\n", - domain, &PCI_SBDF3(seg, bus, devfn)); + domain, &PCI_SBDF(seg, bus, devfn)); return ERR_PTR(is_hardware_domain(domain) ? 0 : -EPERM); =20 case DEV_TYPE_PCIe_BRIDGE: @@ -1924,7 +1924,7 @@ static const struct acpi_drhd_unit *doma =20 if ( iommu_debug ) printk(VTDPREFIX "%pd:PCIe: unmap %pp\n", - domain, &PCI_SBDF3(seg, bus, devfn)); + domain, &PCI_SBDF(seg, bus, devfn)); ret =3D domain_context_unmap_one(domain, iommu, bus, devfn); if ( !ret && devfn =3D=3D pdev->devfn && ats_device(pdev, drhd) > = 0 ) disable_ats_device(pdev); @@ -1937,7 +1937,7 @@ static const struct acpi_drhd_unit *doma =20 if ( iommu_debug ) printk(VTDPREFIX "%pd:PCI: unmap %pp\n", - domain, &PCI_SBDF3(seg, bus, devfn)); + domain, &PCI_SBDF(seg, bus, devfn)); ret =3D domain_context_unmap_one(domain, iommu, bus, devfn); if ( ret ) break; @@ -1970,7 +1970,7 @@ static const struct acpi_drhd_unit *doma =20 default: dprintk(XENLOG_ERR VTDPREFIX, "%pd:unknown(%u): %pp\n", - domain, pdev->type, &PCI_SBDF3(seg, bus, devfn)); + domain, pdev->type, &PCI_SBDF(seg, bus, devfn)); return ERR_PTR(-EINVAL); } =20 @@ -2181,9 +2181,7 @@ static int cf_check intel_iommu_add_devi =20 for_each_rmrr_device ( rmrr, bdf, i ) { - if ( rmrr->segment =3D=3D pdev->seg && - PCI_BUS(bdf) =3D=3D pdev->bus && - PCI_DEVFN2(bdf) =3D=3D devfn ) + if ( rmrr->segment =3D=3D pdev->seg && bdf =3D=3D PCI_BDF(pdev->bu= s, devfn) ) { /* * iommu_add_device() is only called for the hardware @@ -2239,9 +2237,7 @@ static int cf_check intel_iommu_remove_d =20 for_each_rmrr_device ( rmrr, bdf, i ) { - if ( rmrr->segment !=3D pdev->seg || - PCI_BUS(bdf) !=3D pdev->bus || - PCI_DEVFN2(bdf) !=3D devfn ) + if ( rmrr->segment !=3D pdev->seg || bdf !=3D PCI_BDF(pdev->bus, d= evfn) ) continue; =20 /* @@ -2668,8 +2664,7 @@ static int cf_check reassign_device_owne =20 for_each_rmrr_device( rmrr, bdf, i ) if ( rmrr->segment =3D=3D pdev->seg && - PCI_BUS(bdf) =3D=3D pdev->bus && - PCI_DEVFN2(bdf) =3D=3D devfn ) + bdf =3D=3D PCI_BDF(pdev->bus, devfn) ) { /* * Any RMRR flag is always ignored when remove a device, @@ -2713,9 +2708,7 @@ static int cf_check intel_iommu_assign_d */ for_each_rmrr_device( rmrr, bdf, i ) { - if ( rmrr->segment =3D=3D seg && - PCI_BUS(bdf) =3D=3D bus && - PCI_DEVFN2(bdf) =3D=3D devfn && + if ( rmrr->segment =3D=3D seg && bdf =3D=3D PCI_BDF(bus, devfn) && rmrr->scope.devices_cnt > 1 ) { bool_t relaxed =3D !!(flag & XEN_DOMCTL_DEV_RDM_RELAXED); @@ -2725,7 +2718,7 @@ static int cf_check intel_iommu_assign_d " with shared RMRR at %"PRIx64" for %pd.\n", relaxed ? XENLOG_WARNING : XENLOG_ERR, relaxed ? "risky" : "disallowed", - &PCI_SBDF3(seg, bus, devfn), rmrr->base_address, d); + &PCI_SBDF(seg, bus, devfn), rmrr->base_address, d); if ( !relaxed ) return -EPERM; } @@ -2737,9 +2730,7 @@ static int cf_check intel_iommu_assign_d /* Setup rmrr identity mapping */ for_each_rmrr_device( rmrr, bdf, i ) { - if ( rmrr->segment =3D=3D seg && - PCI_BUS(bdf) =3D=3D bus && - PCI_DEVFN2(bdf) =3D=3D devfn ) + if ( rmrr->segment =3D=3D seg && bdf =3D=3D PCI_BDF(bus, devfn) ) { ret =3D iommu_identity_mapping(d, p2m_access_rw, rmrr->base_ad= dress, rmrr->end_address, flag); @@ -2762,9 +2753,7 @@ static int cf_check intel_iommu_assign_d =20 for_each_rmrr_device( rmrr, bdf, i ) { - if ( rmrr->segment =3D=3D seg && - PCI_BUS(bdf) =3D=3D bus && - PCI_DEVFN2(bdf) =3D=3D devfn ) + if ( rmrr->segment =3D=3D seg && bdf =3D=3D PCI_BDF(bus, devfn) ) { int rc =3D iommu_identity_mapping(d, p2m_access_x, rmrr->base_address, @@ -2791,7 +2780,7 @@ static int cf_check intel_iommu_group_id if ( find_upstream_bridge(seg, &bus, &devfn, &secbus) < 0 ) return -ENODEV; =20 - return PCI_BDF2(bus, devfn); + return PCI_BDF(bus, devfn); } =20 static int __must_check cf_check vtd_suspend(void) --- a/xen/drivers/passthrough/vtd/quirks.c +++ b/xen/drivers/passthrough/vtd/quirks.c @@ -115,7 +115,7 @@ bool is_azalia_tlb_enabled(const struct return true; =20 /* Check for the specific device. */ - sbdf =3D PCI_SBDF2(drhd->segment, drhd->scope.devices[0]); + sbdf =3D PCI_SBDF(drhd->segment, drhd->scope.devices[0]); if ( pci_conf_read16(sbdf, PCI_VENDOR_ID) !=3D PCI_VENDOR_ID_INTEL || pci_conf_read16(sbdf, PCI_DEVICE_ID) !=3D 0x3a3e ) return true; @@ -446,7 +446,7 @@ int me_wifi_quirk(struct domain *domain, return 0; =20 /* if device is WLAN device, map ME phantom device 0:3.7 */ - id =3D pci_conf_read32(PCI_SBDF3(0, bus, devfn), 0); + id =3D pci_conf_read32(PCI_SBDF(0, bus, devfn), 0); switch (id) { case 0x42328086: @@ -470,7 +470,7 @@ int me_wifi_quirk(struct domain *domain, return 0; =20 /* if device is WLAN device, map ME phantom device 0:22.7 */ - id =3D pci_conf_read32(PCI_SBDF3(0, bus, devfn), 0); + id =3D pci_conf_read32(PCI_SBDF(0, bus, devfn), 0); switch (id) { case 0x00878086: /* Kilmer Peak */ --- a/xen/drivers/passthrough/vtd/utils.c +++ b/xen/drivers/passthrough/vtd/utils.c @@ -96,7 +96,7 @@ void print_vtd_entries(struct vtd_iommu u32 l_index, level; =20 printk("print_vtd_entries: iommu #%u dev %pp gmfn %"PRI_gfn"\n", - iommu->index, &PCI_SBDF3(iommu->drhd->segment, bus, devfn), + iommu->index, &PCI_SBDF(iommu->drhd->segment, bus, devfn), gmfn); =20 if ( iommu->root_maddr =3D=3D 0 ) --- a/xen/drivers/pci/pci.c +++ b/xen/drivers/pci/pci.c @@ -46,12 +46,12 @@ int pci_find_next_cap(u16 seg, u8 bus, u =20 while ( ttl-- ) { - pos =3D pci_conf_read8(PCI_SBDF3(seg, bus, devfn), pos); + pos =3D pci_conf_read8(PCI_SBDF(seg, bus, devfn), pos); if ( pos < 0x40 ) break; =20 pos &=3D ~3; - id =3D pci_conf_read8(PCI_SBDF3(seg, bus, devfn), pos + PCI_CAP_LI= ST_ID); + id =3D pci_conf_read8(PCI_SBDF(seg, bus, devfn), pos + PCI_CAP_LIS= T_ID); =20 if ( id =3D=3D 0xff ) break; @@ -93,7 +93,7 @@ int pci_find_next_ext_capability(int seg int ttl =3D 480; /* 3840 bytes, minimum 8 bytes per capability */ int pos =3D max(start, 0x100); =20 - header =3D pci_conf_read32(PCI_SBDF3(seg, bus, devfn), pos); + header =3D pci_conf_read32(PCI_SBDF(seg, bus, devfn), pos); =20 /* * If we have no capabilities, this is indicated by cap ID, @@ -109,7 +109,7 @@ int pci_find_next_ext_capability(int seg pos =3D PCI_EXT_CAP_NEXT(header); if ( pos < 0x100 ) break; - header =3D pci_conf_read32(PCI_SBDF3(seg, bus, devfn), pos); + header =3D pci_conf_read32(PCI_SBDF(seg, bus, devfn), pos); } return 0; } @@ -162,7 +162,7 @@ const char *__init parse_pci_seg(const c else func =3D 0; if ( seg !=3D (seg_p ? (u16)seg : 0) || - bus !=3D PCI_BUS(PCI_BDF2(bus, 0)) || + bus !=3D PCI_BUS(PCI_BDF(bus, 0)) || dev !=3D PCI_SLOT(PCI_DEVFN(dev, 0)) || func !=3D PCI_FUNC(PCI_DEVFN(0, func)) ) return NULL; --- a/xen/drivers/video/vga.c +++ b/xen/drivers/video/vga.c @@ -122,9 +122,9 @@ void __init video_endboot(void) pcidevs_unlock(); =20 if ( !pdev || - pci_conf_read16(PCI_SBDF3(0, bus, devfn), + pci_conf_read16(PCI_SBDF(0, bus, devfn), PCI_CLASS_DEVICE) !=3D 0x0300 || - !(pci_conf_read16(PCI_SBDF3(0, bus, devfn), PCI_COMMA= ND) & + !(pci_conf_read16(PCI_SBDF(0, bus, devfn), PCI_COMMAN= D) & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) ) continue; =20 @@ -136,12 +136,12 @@ void __init video_endboot(void) b =3D 0; break; case 1: - switch ( pci_conf_read8(PCI_SBDF3(0, b, df), + switch ( pci_conf_read8(PCI_SBDF(0, b, df), PCI_HEADER_TYPE) ) { case PCI_HEADER_TYPE_BRIDGE: case PCI_HEADER_TYPE_CARDBUS: - if ( pci_conf_read16(PCI_SBDF3(0, b, df), + if ( pci_conf_read16(PCI_SBDF(0, b, df), PCI_BRIDGE_CONTROL) & PCI_BRIDGE_CTL_VGA ) continue; --- a/xen/include/xen/pci.h +++ b/xen/include/xen/pci.h @@ -29,16 +29,21 @@ #define PCI_BUS(bdf) (((bdf) >> 8) & 0xff) #define PCI_SLOT(bdf) (((bdf) >> 3) & 0x1f) #define PCI_FUNC(bdf) ((bdf) & 0x07) -#define PCI_DEVFN(d,f) ((((d) & 0x1f) << 3) | ((f) & 0x07)) -#define PCI_DEVFN2(bdf) ((bdf) & 0xff) -#define PCI_BDF(b,d,f) ((((b) & 0xff) << 8) | PCI_DEVFN(d,f)) -#define PCI_BDF2(b,df) ((((b) & 0xff) << 8) | ((df) & 0xff)) -#define PCI_SBDF(s,b,d,f) \ - ((pci_sbdf_t){ .sbdf =3D (((s) & 0xffff) << 16) | PCI_BDF(b, d, f) }) -#define PCI_SBDF2(s,bdf) \ + +#define PCI_DEVFN1_(df) ((df) & 0xff) +#define PCI_DEVFN2_(d, f) ((((d) & 0x1f) << 3) | ((f) & 7)) +#define PCI_SBDF4_(s, b, d, f...) \ + ((pci_sbdf_t){ .sbdf =3D (((s) & 0xffff) << 16) | PCI_BDF(b, d, ##f) }) +#define PCI_SBDF3_ PCI_SBDF4_ +#define PCI_SBDF2_(s, bdf) \ ((pci_sbdf_t){ .sbdf =3D (((s) & 0xffff) << 16) | ((bdf) & 0xffff) }) -#define PCI_SBDF3(s,b,df) \ - ((pci_sbdf_t){ .sbdf =3D (((s) & 0xffff) << 16) | PCI_BDF2(b, df) }) + +#define PCI__(what, nr) PCI_##what##nr##_ +#define PCI_(what, nr) PCI__(what, nr) + +#define PCI_DEVFN(d, f...) PCI_(DEVFN, count_args(d, ##f))(d, ##f) +#define PCI_BDF(b, d, f...) ((((b) & 0xff) << 8) | PCI_DEVFN(d, ##f)) +#define PCI_SBDF(s, b, d...) PCI_(SBDF, count_args(s, b, ##d))(s, b, ##d) =20 #define ECAM_REG_OFFSET(addr) ((addr) & 0x00000fff)