From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2065.outbound.protection.outlook.com [40.107.92.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1CCFC749D for ; Tue, 24 Oct 2023 23:46:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="WeLwOZCo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lsTCD1ujL7+YJ7edmfZSCy+h5TJjMtw9LGanAIUvmcTaiNSqYwGfy49GpMNwrIul1dKRl+nhVJoLYB2AgshHBEwq6rjdG+WYbRWfdKdGTHTjXhyiHCJQLCydtHVkiCBolfda0JphPhVc+tdjNm54q6H4iGjVUuiIM1C0+Za+8lRfM9ZlMhncY6lr3ZinNWkK7vTFGAyRhg4G7uA1E2NWE9/m9Ny3EGAHAC+P5vfHUt3/+WZwV/u0q8Hhm8Jto15gNe0KtAb6f3fXI88AcYDIq38Ni0g1+e8VMSuN/Ox4qKt+9sgPmMZ5E483ctQg4QU+lE3LzkQ8ZhFaU3UI7Bshig== 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=e5st7XljbCITAz793XqrjxQFZw5YV9Y8XKq2r4eCidw=; b=cESS/TlRzlY4aRRmndfQfk1tmb6Skwlgmzb/GH04ELO3hRV9T3juzqxh8vFB/MS6gRp60tbVpn81XjUvqvHqfXN1s/gM+6iuSYhjNZUnHLco3+j88aAGHL3koPhChKTOoU1jVE4ogdGijMMBiJ09qj17GnKuXNXtcvy14vZc6GDGYx5T+6NTyHjujGJMou0KsNqydSKovtNx6tBxScsdnvufXkiBHyqh7Ij4Wl7xnoUgIQ1b4jEliP/PLXvBqSG4O1CqDofh6xF4Ui743AS1eg19H+GLeNY6UCaecMTPyRk8JxFxr4iA3nb1OBLpElO7NlKaiQd9c2FpCYefEOSc8A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e5st7XljbCITAz793XqrjxQFZw5YV9Y8XKq2r4eCidw=; b=WeLwOZCoL62s/mZD6zrJ5LfWLwHYxDJOs9VafUw2cRK8KxWS/9ZzvrKfNVWwhjAXJR1Q3hRtcLT5geqq6jP/KueIOOjgBh1EUDINEbAkeAuE9YaglnlUqCG0wLujb1eKx3VyLLkOm48bvYckuBXtJRHWvwdwLgRu6w7p75EFfNSg9auzWVGQ/GQODWUxbVXaaXLDMp9l208BkTxQU6GKNFpnUdeDpsM6iJQKkL+HAgBsDoiJNVbDjGy5oNOPNGEwhynxT+h1q/A65YyCFU/AAD0Hjp+eerIznnENshGgjRcGcxxxyL5rSJ6rZbuI81NfFt4VBbUy4c/XMpxORdUKOQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by DM4PR12MB5771.namprd12.prod.outlook.com (2603:10b6:8:62::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.26; Tue, 24 Oct 2023 23:46:10 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::3f66:c2b6:59eb:78c2]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::3f66:c2b6:59eb:78c2%6]) with mapi id 15.20.6886.034; Tue, 24 Oct 2023 23:46:10 +0000 Date: Tue, 24 Oct 2023 20:46:08 -0300 From: Jason Gunthorpe To: Michael Shavit Cc: iommu@lists.linux.dev, Joerg Roedel , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon , Jean-Philippe Brucker , Nicolin Chen Subject: Re: [PATCH 11/27] iommu/arm-smmu-v3: Lift CD programming out of the SVA notifier code Message-ID: <20231024234608.GD911568@nvidia.com> References: <0-v1-afbb86647bbd+5-smmuv3_newapi_p2_jgg@nvidia.com> <11-v1-afbb86647bbd+5-smmuv3_newapi_p2_jgg@nvidia.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-ClientProxiedBy: SA1P222CA0194.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c4::19) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) Precedence: bulk X-Mailing-List: iommu@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|DM4PR12MB5771:EE_ X-MS-Office365-Filtering-Correlation-Id: e5428047-d444-4714-9f90-08dbd4eb6625 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 23fJM9OXcNycWM9/rHtUQI/7f6a8jVMYz0zkyW/X+qTdvCTlyg1T9mBuj0bKx8lPEZ1xLA4cRY2G9uV1hQb333yLXdORmUWJB9m63t401+b25qQcskkLKgpED+D0w0pBXqs5CbnzGOORVKkUiKJxJ174bDME0JdzoDIGOKsCSC88wjUzvMMVkywoVzIpC5OkZqlYgHPF+PuAEpMpjY9+sH171T7IiasFkmq/d3TkgcWiLW19Zy8CNiS0JS7xRF1CkmXv8o2EkgWHzQ4476B2fQXXerS432mASUC4Q8jx23fYTOaw2hw4t6hwApwaNA3GDUBQckc1wIA7jnjscERnmXQghiwq7PnBgyJn/tVvRJ5OESC4P3j+wL3mYnps5sU/axHGWI5je0DS9PFC5MTwXen0ARqfmlok67GwSoDX5wVE53pAy3DgFihnV8NRQtHJSE2oJTIjHl47vgqrgrTA7/WVCMC2Cpv+AigJxTL7w2TYncGncO8zoCVo+CGzkAmfXuHdJz8Ym/i+WCQnytXZuAgMysYG4eEAnsqz9taWPuvl2Ncb6Mdmcc7zEQSRe8VqoGmZFeSZOnLAlLhLCXTLt8ywe7LlhzGkS+uKQzgSs05BznTIJbgEzpoDXbT10PQV X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV2PR12MB5869.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(396003)(366004)(136003)(376002)(230922051799003)(64100799003)(1800799009)(451199024)(186009)(107886003)(26005)(53546011)(1076003)(6512007)(86362001)(33656002)(36756003)(38100700002)(6506007)(2906002)(478600001)(2616005)(6486002)(8936002)(6916009)(316002)(4326008)(8676002)(83380400001)(66476007)(66946007)(5660300002)(66556008)(54906003)(41300700001)(27376004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cFRUOU0yS090R291Mm0yQ2xiSUVkc0Y3eXZ2K21LM1dtMEJQbU1kc0phN0Js?= =?utf-8?B?R1dmNEVNVVpNclVFRE9SRDMwc1Job0p0aDJMMDlDU24yVVVOcnVZbzJDNWsr?= =?utf-8?B?Y0huZmNLbGVZdi90RThwL2hXVk1XWmVZTm1QV3hkaGVNU3NvWmh4dnRsT3hZ?= =?utf-8?B?S1BDeDFndDVXU1U4ZTFiVTZHeDdBUEdhb2hxRDZaVjlKOFhyTU5IODNTYk10?= =?utf-8?B?RHVZV01Mdm9vbUJXSEt2L1Q3VmQ0Tk5NS2hHclJ6OFNDNjRjbTRaSGhrNjU4?= =?utf-8?B?aWNvd1RCbW1TMVYwdmR1aE9mSEdQb0svSHY0cWJwWVN3dVBDdW5xbmVkZDFP?= =?utf-8?B?U242RmQ3Y0Z1U0VLWC9SeUFKUys3bi9Md0w1YWRhSkd5d1BqU0h2Sys5SDFq?= =?utf-8?B?UGRsTG54VEhJb0VpMWtTT3pZMEtqREI0MXhZelMveGlNQjNBSlU5WE1KUlJh?= =?utf-8?B?MTJST3RaeUx2Vy9YM3FYQng0NW5BMFdHY0RCclEyZk5TemN1OHFjZmI5OTJo?= =?utf-8?B?Mi9QanZKYys5MzdVOE01cTAyUnBHM0RSMXNWTFo1SVFDcWc0MHcxcFIxQVMx?= =?utf-8?B?M25oY3haTlJVNG9XYzkwMU10ZjFlVTAweVlVSTlaRWVDbTV5NTNvRk9SYVdj?= =?utf-8?B?UzI4R01RUjFiWk5jQ2xuZVpVaTBKNzBWTlROVG1sTDdUMWpXNytaSGVubkZH?= =?utf-8?B?OTEwWHhFM1ZpcVFXUHV4TzUybWZEclVaMWFEMGYzbm1sa2laMEZhbEd1bWZi?= =?utf-8?B?L244VUtVN1pURWdXZTc5cGVRdnNsek1uNEkwMkZ5WEUyaS8wbEI5R3ZUZGk4?= =?utf-8?B?N0xNbHhuT3ZRYmlkMnQ5ZXk1d3NCOVQwWVNCUXFEUDY2OTVmNm1hVGJLRGdG?= =?utf-8?B?eFF5dEZJWkIya3BMV0s5RExyTCs4ZmNDZi9EblROQjBHdnF6TXdGWVdya3dX?= =?utf-8?B?U0xGR2Y5dnZkdjdSRHBITlgxWEp1QlpyelVGUEZweWtiYW1mNTBHVkdKcXFs?= =?utf-8?B?U1Awa2ViblFkMFJjWE80NEQzZVUvZXRjQmRGV09KVkVHT3lmd09rZ0czMlRk?= =?utf-8?B?M2ZrUDJpczRNdXAwNURZTVdYbzdWWHNkb0RqK2ZTdkNGd0g0TzBkOE5lSHE4?= =?utf-8?B?MnBTODRCNVh1aHlDRzhIb3lUMXFoK28zTzIxS2RXc0FhQldBMGdTVW4wclh4?= =?utf-8?B?NzkxR0FOZXk1Z3ZBSnA1TjFRVHRaR3RNeVAwM1lDRGllNm9vV081UlFWWXho?= =?utf-8?B?YmpySmp1YllTa2NTSzIxSHNjN1hoSTVzV0UyMTdzVld3SmZyVkhnNFV5S21K?= =?utf-8?B?ZW04VFdKVE1SWU9LdTFtczNtTHlRcGM4Q3YwUkZLRWVGczF2T1N0ck9KVXVr?= =?utf-8?B?MzRoN0JoL2t1YzRYWDAvdmpwd29ROCtNNXJuaFY2TXlMdUJtOVJObVpRWHI1?= =?utf-8?B?U0NKZTN1SGkyU1ByWjh4NHhvMTZad2tLc0F4MUdaOHY1ME51bm9BVElPV2l0?= =?utf-8?B?cXl3R2FCa0VVQ0tJWTdrYkZHUjJoRTg1Z3FUb2ZnZG05RzJsTm9nOXRaVnk5?= =?utf-8?B?OCsvOU1aaGM5NDNXQVo0UmdMazhKSDQzMEE3ajNQd05jWllnUHFFKzBDMWho?= =?utf-8?B?QzhzODQ0bEI1Z2FoY0tyaERxeDVnQnl1QUIwRVhiS0xWR0RSMmtLaTkzdDdE?= =?utf-8?B?eWtkMEMvN1hvd3htVE5kY3ZaOCt6ODZkYm8wK0NLRzlVR1I0U3QvbGJreE5w?= =?utf-8?B?dEovMkY2NXBWR3c4bE5uSExwVVkwQmVPRkRUSnZtY0pmSkxpMU9rSGVZcStk?= =?utf-8?B?K2dabkdrSURhM0xwcnRaYUM4VVA5cWtzWTVmMmpMZVhYcnNNTVhyQ2VIUkc0?= =?utf-8?B?ZFE1d0puSXJEZ3I5enE4MklUeUtNOUhVU01pSndma20wSDFwVEdScGFtTmVV?= =?utf-8?B?ZmswT3RzdTB4c1VvYkxBSzFWYUVCbmFFSCtrNE8wblNmV0NKT0VuZmMxOXFi?= =?utf-8?B?MGNPaDZCOXY2cHd6N2UwR1psYmJLeDkyOUhuNEV1Qy9vMFRic2FkTUxQMGZv?= =?utf-8?B?dFViaEc2cmcxWXVlMjFiZzJmOFFKVGpJSUpqNDA3cmQ0dmo0ZkFIcXVUazBP?= =?utf-8?Q?YmRYanMbkp1K5JADeAsrS8VuL?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e5428047-d444-4714-9f90-08dbd4eb6625 X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Oct 2023 23:46:10.0817 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NWCIF9QCdYD8oUsI37a1WQMdlvwkOWc2oaGXvCcedbGMQBOhZj9vZkr6tqDhboAk X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5771 On Tue, Oct 24, 2023 at 02:34:28PM +0800, Michael Shavit wrote: > On Thu, Oct 12, 2023 at 7:26 AM Jason Gunthorpe wrote: > > [...] > > -static void arm_smmu_mmu_notifier_put(struct arm_smmu_mmu_notifier *smmu_mn) > > +static struct arm_smmu_ctx_desc * > > +arm_smmu_mmu_notifier_put(struct arm_smmu_mmu_notifier *smmu_mn) > > { > > struct mm_struct *mm = smmu_mn->mn.mm; > > struct arm_smmu_ctx_desc *cd = smmu_mn->cd; > > struct arm_smmu_domain *smmu_domain = smmu_mn->domain; > > - struct arm_smmu_master *master; > > - unsigned long flags; > > > > if (!refcount_dec_and_test(&smmu_mn->refs)) > > - return; > > + return cd; > > > > list_del(&smmu_mn->list); > > > > - spin_lock_irqsave(&smmu_domain->devices_lock, flags); > > - list_for_each_entry(master, &smmu_domain->devices, domain_head) > > - arm_smmu_clear_cd(master, mm->pasid); > > - spin_unlock_irqrestore(&smmu_domain->devices_lock, flags); > > - > > /* > > * If we went through clear(), we've already invalidated, and no > > * new TLB entry can have been formed. > > This re-orders the TLB invalidation before the CD entry is cleared. > Couldn't a misbehaving device form TLB entries in this time interval > that we'd want to avoid? Hum.. No for the 'inv_asid', but yes for the 'atc_inv_domain' This actually looks like something I was not fully careful with even in the end. The SID and PASID attach paths do have an ATC flush when changing the translation. The SID detach paths indirectly do because they turn off ATS, which flushes. It is missing for the PASID detach and SID detach when ATS is left on. Those need fixes in other patches This specific code gets deleted pretty soon, but we can make it better. > > if (!WARN_ON(!bond) && refcount_dec_and_test(&bond->refs)) { > > + struct arm_smmu_ctx_desc *cd; > > + > > list_del(&bond->list); > > - arm_smmu_mmu_notifier_put(bond->smmu_mn); > > + cd = arm_smmu_mmu_notifier_put(bond->smmu_mn); > > + arm_smmu_remove_pasid(master, to_smmu_domain(domain), id); > > + arm_smmu_free_shared_cd(cd); > > kfree(bond); > > arm_smmu_mmu_notifier_put was previously only calling > free_shared_cd(cd) when smmu_mn's refcount reached 0. IIRC, the > arm_smmu_mmu_notifier refcount can be greater than 1 if an MM/SVA > domain is attached to devices with distinct SMMU instances. I can no longer remember why this hunk moving arm_smmu_free_shared_cd() is here. I think it may have been a left over from a discarded direction. So, like this: diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c index d643c8634467c5..29469073fc53fe 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c @@ -378,15 +378,14 @@ arm_smmu_mmu_notifier_get(struct arm_smmu_domain *smmu_domain, return ERR_PTR(ret); } -static struct arm_smmu_ctx_desc * -arm_smmu_mmu_notifier_put(struct arm_smmu_mmu_notifier *smmu_mn) +static void arm_smmu_mmu_notifier_put(struct arm_smmu_mmu_notifier *smmu_mn) { struct mm_struct *mm = smmu_mn->mn.mm; struct arm_smmu_ctx_desc *cd = smmu_mn->cd; struct arm_smmu_domain *smmu_domain = smmu_mn->domain; if (!refcount_dec_and_test(&smmu_mn->refs)) - return cd; + return; list_del(&smmu_mn->list); @@ -401,11 +400,11 @@ arm_smmu_mmu_notifier_put(struct arm_smmu_mmu_notifier *smmu_mn) /* Frees smmu_mn */ mmu_notifier_put(&smmu_mn->mn); - return cd; + arm_smmu_free_shared_cd(cd); } static int __arm_smmu_sva_bind(struct device *dev, struct mm_struct *mm, - struct arm_smmu_cd *target) + struct arm_smmu_cd *target) { int ret; struct arm_smmu_bond *bond; @@ -595,6 +594,8 @@ void arm_smmu_sva_remove_dev_pasid(struct iommu_domain *domain, struct arm_smmu_bond *bond = NULL, *t; struct arm_smmu_master *master = dev_iommu_priv_get(dev); + arm_smmu_remove_pasid(master, to_smmu_domain(domain), id); + mutex_lock(&sva_lock); list_for_each_entry(t, &master->bonds, list) { if (t->mm == mm) { @@ -604,15 +605,9 @@ void arm_smmu_sva_remove_dev_pasid(struct iommu_domain *domain, } if (!WARN_ON(!bond)) { - struct arm_smmu_ctx_desc *cd; - list_del(&bond->list); - cd = arm_smmu_mmu_notifier_put(bond->smmu_mn); - arm_smmu_remove_pasid(master, to_smmu_domain(domain), id); - arm_smmu_free_shared_cd(cd); + arm_smmu_mmu_notifier_put(bond->smmu_mn); kfree(bond); - } else { - arm_smmu_remove_pasid(master, to_smmu_domain(domain), id); } mutex_unlock(&sva_lock); } > > --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > > +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > > @@ -2576,6 +2576,30 @@ static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev) > > return 0; > > } > > > > +int arm_smmu_set_pasid(struct arm_smmu_master *master, > > + struct arm_smmu_domain *smmu_domain, ioasid_t id, > > + const struct arm_smmu_cd *cd) > > +{ > > + struct arm_smmu_domain *old_smmu_domain = > > + to_smmu_domain_safe(iommu_get_domain_for_dev(master->dev)); > > nit: The name old_smmu_domain sounds to me like it's being replaced > with a newer domain. Sure, a later patch eventually changes this to be 'sid_domain' (without the arm_smmu_domain type) so lets just call this sid_smmu_domain here. Thanks, Jason From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 40886C07545 for ; Tue, 24 Oct 2023 23:46:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=79sboFpv/twRjrjOlDX4ynQMJDNPV9HOZPuQJTBJOBc=; b=IVHZGzcnGFLu0r 0BfmKC01y+TiTeAce7ivYmi8Hc/C4ODhGIEKobhCK4B7bfHs/XfjKA/5a0m//m+upHWDGAn/xNwoU A3RQOoHUMlHwuJTY3xjvUOBA8C3b6mudVyCvMFMUqfRMIvQWs9RjyGIS8SD6PFWeW7RwcdUj2HCCl v0n5JCkN3GwRo4UryebLdWTzd/Ej2q+RE9IopPN7OItUVbnWAM7HJWUBGSZezbPoAKA9RLaupcLeO PiATgxSZG4Ooe+cUcdEQzeWy+i1cEPIn3/1UmZWHDyO8pL1vk5Cie3Sm6f04KKCBTfxTtngDrN/cR H+ts7CobEWf5fqYABFEw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qvR6N-00B2hO-2R; Tue, 24 Oct 2023 23:46:23 +0000 Received: from mail-bn7nam10on2062b.outbound.protection.outlook.com ([2a01:111:f400:7e8a::62b] helo=NAM10-BN7-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qvR6K-00B2gX-0t for linux-arm-kernel@lists.infradead.org; Tue, 24 Oct 2023 23:46:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lsTCD1ujL7+YJ7edmfZSCy+h5TJjMtw9LGanAIUvmcTaiNSqYwGfy49GpMNwrIul1dKRl+nhVJoLYB2AgshHBEwq6rjdG+WYbRWfdKdGTHTjXhyiHCJQLCydtHVkiCBolfda0JphPhVc+tdjNm54q6H4iGjVUuiIM1C0+Za+8lRfM9ZlMhncY6lr3ZinNWkK7vTFGAyRhg4G7uA1E2NWE9/m9Ny3EGAHAC+P5vfHUt3/+WZwV/u0q8Hhm8Jto15gNe0KtAb6f3fXI88AcYDIq38Ni0g1+e8VMSuN/Ox4qKt+9sgPmMZ5E483ctQg4QU+lE3LzkQ8ZhFaU3UI7Bshig== 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=e5st7XljbCITAz793XqrjxQFZw5YV9Y8XKq2r4eCidw=; b=cESS/TlRzlY4aRRmndfQfk1tmb6Skwlgmzb/GH04ELO3hRV9T3juzqxh8vFB/MS6gRp60tbVpn81XjUvqvHqfXN1s/gM+6iuSYhjNZUnHLco3+j88aAGHL3koPhChKTOoU1jVE4ogdGijMMBiJ09qj17GnKuXNXtcvy14vZc6GDGYx5T+6NTyHjujGJMou0KsNqydSKovtNx6tBxScsdnvufXkiBHyqh7Ij4Wl7xnoUgIQ1b4jEliP/PLXvBqSG4O1CqDofh6xF4Ui743AS1eg19H+GLeNY6UCaecMTPyRk8JxFxr4iA3nb1OBLpElO7NlKaiQd9c2FpCYefEOSc8A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e5st7XljbCITAz793XqrjxQFZw5YV9Y8XKq2r4eCidw=; b=WeLwOZCoL62s/mZD6zrJ5LfWLwHYxDJOs9VafUw2cRK8KxWS/9ZzvrKfNVWwhjAXJR1Q3hRtcLT5geqq6jP/KueIOOjgBh1EUDINEbAkeAuE9YaglnlUqCG0wLujb1eKx3VyLLkOm48bvYckuBXtJRHWvwdwLgRu6w7p75EFfNSg9auzWVGQ/GQODWUxbVXaaXLDMp9l208BkTxQU6GKNFpnUdeDpsM6iJQKkL+HAgBsDoiJNVbDjGy5oNOPNGEwhynxT+h1q/A65YyCFU/AAD0Hjp+eerIznnENshGgjRcGcxxxyL5rSJ6rZbuI81NfFt4VBbUy4c/XMpxORdUKOQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by DM4PR12MB5771.namprd12.prod.outlook.com (2603:10b6:8:62::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.26; Tue, 24 Oct 2023 23:46:10 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::3f66:c2b6:59eb:78c2]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::3f66:c2b6:59eb:78c2%6]) with mapi id 15.20.6886.034; Tue, 24 Oct 2023 23:46:10 +0000 Date: Tue, 24 Oct 2023 20:46:08 -0300 From: Jason Gunthorpe To: Michael Shavit Cc: iommu@lists.linux.dev, Joerg Roedel , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon , Jean-Philippe Brucker , Nicolin Chen Subject: Re: [PATCH 11/27] iommu/arm-smmu-v3: Lift CD programming out of the SVA notifier code Message-ID: <20231024234608.GD911568@nvidia.com> References: <0-v1-afbb86647bbd+5-smmuv3_newapi_p2_jgg@nvidia.com> <11-v1-afbb86647bbd+5-smmuv3_newapi_p2_jgg@nvidia.com> Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: SA1P222CA0194.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c4::19) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|DM4PR12MB5771:EE_ X-MS-Office365-Filtering-Correlation-Id: e5428047-d444-4714-9f90-08dbd4eb6625 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 23fJM9OXcNycWM9/rHtUQI/7f6a8jVMYz0zkyW/X+qTdvCTlyg1T9mBuj0bKx8lPEZ1xLA4cRY2G9uV1hQb333yLXdORmUWJB9m63t401+b25qQcskkLKgpED+D0w0pBXqs5CbnzGOORVKkUiKJxJ174bDME0JdzoDIGOKsCSC88wjUzvMMVkywoVzIpC5OkZqlYgHPF+PuAEpMpjY9+sH171T7IiasFkmq/d3TkgcWiLW19Zy8CNiS0JS7xRF1CkmXv8o2EkgWHzQ4476B2fQXXerS432mASUC4Q8jx23fYTOaw2hw4t6hwApwaNA3GDUBQckc1wIA7jnjscERnmXQghiwq7PnBgyJn/tVvRJ5OESC4P3j+wL3mYnps5sU/axHGWI5je0DS9PFC5MTwXen0ARqfmlok67GwSoDX5wVE53pAy3DgFihnV8NRQtHJSE2oJTIjHl47vgqrgrTA7/WVCMC2Cpv+AigJxTL7w2TYncGncO8zoCVo+CGzkAmfXuHdJz8Ym/i+WCQnytXZuAgMysYG4eEAnsqz9taWPuvl2Ncb6Mdmcc7zEQSRe8VqoGmZFeSZOnLAlLhLCXTLt8ywe7LlhzGkS+uKQzgSs05BznTIJbgEzpoDXbT10PQV X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV2PR12MB5869.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(396003)(366004)(136003)(376002)(230922051799003)(64100799003)(1800799009)(451199024)(186009)(107886003)(26005)(53546011)(1076003)(6512007)(86362001)(33656002)(36756003)(38100700002)(6506007)(2906002)(478600001)(2616005)(6486002)(8936002)(6916009)(316002)(4326008)(8676002)(83380400001)(66476007)(66946007)(5660300002)(66556008)(54906003)(41300700001)(27376004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cFRUOU0yS090R291Mm0yQ2xiSUVkc0Y3eXZ2K21LM1dtMEJQbU1kc0phN0Js?= =?utf-8?B?R1dmNEVNVVpNclVFRE9SRDMwc1Job0p0aDJMMDlDU24yVVVOcnVZbzJDNWsr?= =?utf-8?B?Y0huZmNLbGVZdi90RThwL2hXVk1XWmVZTm1QV3hkaGVNU3NvWmh4dnRsT3hZ?= =?utf-8?B?S1BDeDFndDVXU1U4ZTFiVTZHeDdBUEdhb2hxRDZaVjlKOFhyTU5IODNTYk10?= =?utf-8?B?RHVZV01Mdm9vbUJXSEt2L1Q3VmQ0Tk5NS2hHclJ6OFNDNjRjbTRaSGhrNjU4?= =?utf-8?B?aWNvd1RCbW1TMVYwdmR1aE9mSEdQb0svSHY0cWJwWVN3dVBDdW5xbmVkZDFP?= =?utf-8?B?U242RmQ3Y0Z1U0VLWC9SeUFKUys3bi9Md0w1YWRhSkd5d1BqU0h2Sys5SDFq?= =?utf-8?B?UGRsTG54VEhJb0VpMWtTT3pZMEtqREI0MXhZelMveGlNQjNBSlU5WE1KUlJh?= =?utf-8?B?MTJST3RaeUx2Vy9YM3FYQng0NW5BMFdHY0RCclEyZk5TemN1OHFjZmI5OTJo?= =?utf-8?B?Mi9QanZKYys5MzdVOE01cTAyUnBHM0RSMXNWTFo1SVFDcWc0MHcxcFIxQVMx?= =?utf-8?B?M25oY3haTlJVNG9XYzkwMU10ZjFlVTAweVlVSTlaRWVDbTV5NTNvRk9SYVdj?= =?utf-8?B?UzI4R01RUjFiWk5jQ2xuZVpVaTBKNzBWTlROVG1sTDdUMWpXNytaSGVubkZH?= =?utf-8?B?OTEwWHhFM1ZpcVFXUHV4TzUybWZEclVaMWFEMGYzbm1sa2laMEZhbEd1bWZi?= =?utf-8?B?L244VUtVN1pURWdXZTc5cGVRdnNsek1uNEkwMkZ5WEUyaS8wbEI5R3ZUZGk4?= =?utf-8?B?N0xNbHhuT3ZRYmlkMnQ5ZXk1d3NCOVQwWVNCUXFEUDY2OTVmNm1hVGJLRGdG?= =?utf-8?B?eFF5dEZJWkIya3BMV0s5RExyTCs4ZmNDZi9EblROQjBHdnF6TXdGWVdya3dX?= =?utf-8?B?U0xGR2Y5dnZkdjdSRHBITlgxWEp1QlpyelVGUEZweWtiYW1mNTBHVkdKcXFs?= =?utf-8?B?U1Awa2ViblFkMFJjWE80NEQzZVUvZXRjQmRGV09KVkVHT3lmd09rZ0czMlRk?= =?utf-8?B?M2ZrUDJpczRNdXAwNURZTVdYbzdWWHNkb0RqK2ZTdkNGd0g0TzBkOE5lSHE4?= =?utf-8?B?MnBTODRCNVh1aHlDRzhIb3lUMXFoK28zTzIxS2RXc0FhQldBMGdTVW4wclh4?= =?utf-8?B?NzkxR0FOZXk1Z3ZBSnA1TjFRVHRaR3RNeVAwM1lDRGllNm9vV081UlFWWXho?= =?utf-8?B?YmpySmp1YllTa2NTSzIxSHNjN1hoSTVzV0UyMTdzVld3SmZyVkhnNFV5S21K?= =?utf-8?B?ZW04VFdKVE1SWU9LdTFtczNtTHlRcGM4Q3YwUkZLRWVGczF2T1N0ck9KVXVr?= =?utf-8?B?MzRoN0JoL2t1YzRYWDAvdmpwd29ROCtNNXJuaFY2TXlMdUJtOVJObVpRWHI1?= =?utf-8?B?U0NKZTN1SGkyU1ByWjh4NHhvMTZad2tLc0F4MUdaOHY1ME51bm9BVElPV2l0?= =?utf-8?B?cXl3R2FCa0VVQ0tJWTdrYkZHUjJoRTg1Z3FUb2ZnZG05RzJsTm9nOXRaVnk5?= =?utf-8?B?OCsvOU1aaGM5NDNXQVo0UmdMazhKSDQzMEE3ajNQd05jWllnUHFFKzBDMWho?= =?utf-8?B?QzhzODQ0bEI1Z2FoY0tyaERxeDVnQnl1QUIwRVhiS0xWR0RSMmtLaTkzdDdE?= =?utf-8?B?eWtkMEMvN1hvd3htVE5kY3ZaOCt6ODZkYm8wK0NLRzlVR1I0U3QvbGJreE5w?= =?utf-8?B?dEovMkY2NXBWR3c4bE5uSExwVVkwQmVPRkRUSnZtY0pmSkxpMU9rSGVZcStk?= =?utf-8?B?K2dabkdrSURhM0xwcnRaYUM4VVA5cWtzWTVmMmpMZVhYcnNNTVhyQ2VIUkc0?= =?utf-8?B?ZFE1d0puSXJEZ3I5enE4MklUeUtNOUhVU01pSndma20wSDFwVEdScGFtTmVV?= =?utf-8?B?ZmswT3RzdTB4c1VvYkxBSzFWYUVCbmFFSCtrNE8wblNmV0NKT0VuZmMxOXFi?= =?utf-8?B?MGNPaDZCOXY2cHd6N2UwR1psYmJLeDkyOUhuNEV1Qy9vMFRic2FkTUxQMGZv?= =?utf-8?B?dFViaEc2cmcxWXVlMjFiZzJmOFFKVGpJSUpqNDA3cmQ0dmo0ZkFIcXVUazBP?= =?utf-8?Q?YmRYanMbkp1K5JADeAsrS8VuL?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e5428047-d444-4714-9f90-08dbd4eb6625 X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Oct 2023 23:46:10.0817 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NWCIF9QCdYD8oUsI37a1WQMdlvwkOWc2oaGXvCcedbGMQBOhZj9vZkr6tqDhboAk X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5771 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231024_164620_342035_C84EF27A X-CRM114-Status: GOOD ( 27.35 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVHVlLCBPY3QgMjQsIDIwMjMgYXQgMDI6MzQ6MjhQTSArMDgwMCwgTWljaGFlbCBTaGF2aXQg d3JvdGU6Cj4gT24gVGh1LCBPY3QgMTIsIDIwMjMgYXQgNzoyNuKAr0FNIEphc29uIEd1bnRob3Jw ZSA8amdnQG52aWRpYS5jb20+IHdyb3RlOgo+ID4gWy4uLl0KPiA+IC1zdGF0aWMgdm9pZCBhcm1f c21tdV9tbXVfbm90aWZpZXJfcHV0KHN0cnVjdCBhcm1fc21tdV9tbXVfbm90aWZpZXIgKnNtbXVf bW4pCj4gPiArc3RhdGljIHN0cnVjdCBhcm1fc21tdV9jdHhfZGVzYyAqCj4gPiArYXJtX3NtbXVf bW11X25vdGlmaWVyX3B1dChzdHJ1Y3QgYXJtX3NtbXVfbW11X25vdGlmaWVyICpzbW11X21uKQo+ ID4gIHsKPiA+ICAgICAgICAgc3RydWN0IG1tX3N0cnVjdCAqbW0gPSBzbW11X21uLT5tbi5tbTsK PiA+ICAgICAgICAgc3RydWN0IGFybV9zbW11X2N0eF9kZXNjICpjZCA9IHNtbXVfbW4tPmNkOwo+ ID4gICAgICAgICBzdHJ1Y3QgYXJtX3NtbXVfZG9tYWluICpzbW11X2RvbWFpbiA9IHNtbXVfbW4t PmRvbWFpbjsKPiA+IC0gICAgICAgc3RydWN0IGFybV9zbW11X21hc3RlciAqbWFzdGVyOwo+ID4g LSAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+ID4KPiA+ICAgICAgICAgaWYgKCFyZWZjb3Vu dF9kZWNfYW5kX3Rlc3QoJnNtbXVfbW4tPnJlZnMpKQo+ID4gLSAgICAgICAgICAgICAgIHJldHVy bjsKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gY2Q7Cj4gPgo+ID4gICAgICAgICBsaXN0X2Rl bCgmc21tdV9tbi0+bGlzdCk7Cj4gPgo+ID4gLSAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmc21t dV9kb21haW4tPmRldmljZXNfbG9jaywgZmxhZ3MpOwo+ID4gLSAgICAgICBsaXN0X2Zvcl9lYWNo X2VudHJ5KG1hc3RlciwgJnNtbXVfZG9tYWluLT5kZXZpY2VzLCBkb21haW5faGVhZCkKPiA+IC0g ICAgICAgICAgICAgICBhcm1fc21tdV9jbGVhcl9jZChtYXN0ZXIsIG1tLT5wYXNpZCk7Cj4gPiAt ICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNtbXVfZG9tYWluLT5kZXZpY2VzX2xvY2ss IGZsYWdzKTsKPiA+IC0KPiA+ICAgICAgICAgLyoKPiA+ICAgICAgICAgICogSWYgd2Ugd2VudCB0 aHJvdWdoIGNsZWFyKCksIHdlJ3ZlIGFscmVhZHkgaW52YWxpZGF0ZWQsIGFuZCBubwo+ID4gICAg ICAgICAgKiBuZXcgVExCIGVudHJ5IGNhbiBoYXZlIGJlZW4gZm9ybWVkLgo+IAo+IFRoaXMgcmUt b3JkZXJzIHRoZSBUTEIgaW52YWxpZGF0aW9uIGJlZm9yZSB0aGUgQ0QgZW50cnkgaXMgY2xlYXJl ZC4KPiBDb3VsZG4ndCBhIG1pc2JlaGF2aW5nIGRldmljZSBmb3JtIFRMQiBlbnRyaWVzIGluIHRo aXMgdGltZSBpbnRlcnZhbAo+IHRoYXQgd2UnZCB3YW50IHRvIGF2b2lkPwoKSHVtLi4gTm8gZm9y IHRoZSAnaW52X2FzaWQnLCBidXQgeWVzIGZvciB0aGUgJ2F0Y19pbnZfZG9tYWluJwoKVGhpcyBh Y3R1YWxseSBsb29rcyBsaWtlIHNvbWV0aGluZyBJIHdhcyBub3QgZnVsbHkgY2FyZWZ1bCB3aXRo IGV2ZW4KaW4gdGhlIGVuZC4gVGhlIFNJRCBhbmQgUEFTSUQgYXR0YWNoIHBhdGhzIGRvIGhhdmUg YW4gQVRDIGZsdXNoIHdoZW4KY2hhbmdpbmcgdGhlIHRyYW5zbGF0aW9uLiBUaGUgU0lEIGRldGFj aCBwYXRocyBpbmRpcmVjdGx5IGRvIGJlY2F1c2UKdGhleSB0dXJuIG9mZiBBVFMsIHdoaWNoIGZs dXNoZXMuCgpJdCBpcyBtaXNzaW5nIGZvciB0aGUgUEFTSUQgZGV0YWNoIGFuZCBTSUQgZGV0YWNo IHdoZW4gQVRTIGlzIGxlZnQgb24uClRob3NlIG5lZWQgZml4ZXMgaW4gb3RoZXIgcGF0Y2hlcwoK VGhpcyBzcGVjaWZpYyBjb2RlIGdldHMgZGVsZXRlZCBwcmV0dHkgc29vbiwgYnV0IHdlIGNhbiBt YWtlIGl0CmJldHRlci4KCj4gPiAgICAgICAgIGlmICghV0FSTl9PTighYm9uZCkgJiYgcmVmY291 bnRfZGVjX2FuZF90ZXN0KCZib25kLT5yZWZzKSkgewo+ID4gKyAgICAgICAgICAgICAgIHN0cnVj dCBhcm1fc21tdV9jdHhfZGVzYyAqY2Q7Cj4gPiArCj4gPiAgICAgICAgICAgICAgICAgbGlzdF9k ZWwoJmJvbmQtPmxpc3QpOwo+ID4gLSAgICAgICAgICAgICAgIGFybV9zbW11X21tdV9ub3RpZmll cl9wdXQoYm9uZC0+c21tdV9tbik7Cj4gPiArICAgICAgICAgICAgICAgY2QgPSBhcm1fc21tdV9t bXVfbm90aWZpZXJfcHV0KGJvbmQtPnNtbXVfbW4pOwo+ID4gKyAgICAgICAgICAgICAgIGFybV9z bW11X3JlbW92ZV9wYXNpZChtYXN0ZXIsIHRvX3NtbXVfZG9tYWluKGRvbWFpbiksIGlkKTsKPiA+ ICsgICAgICAgICAgICAgICBhcm1fc21tdV9mcmVlX3NoYXJlZF9jZChjZCk7Cj4gPiAgICAgICAg ICAgICAgICAga2ZyZWUoYm9uZCk7Cj4gCj4gYXJtX3NtbXVfbW11X25vdGlmaWVyX3B1dCB3YXMg cHJldmlvdXNseSBvbmx5IGNhbGxpbmcKPiBmcmVlX3NoYXJlZF9jZChjZCkgd2hlbiBzbW11X21u J3MgcmVmY291bnQgcmVhY2hlZCAwLiBJSVJDLCB0aGUKPiBhcm1fc21tdV9tbXVfbm90aWZpZXIg cmVmY291bnQgY2FuIGJlIGdyZWF0ZXIgdGhhbiAxIGlmIGFuIE1NL1NWQQo+IGRvbWFpbiBpcyBh dHRhY2hlZCB0byBkZXZpY2VzIHdpdGggZGlzdGluY3QgU01NVSBpbnN0YW5jZXMuCgpJIGNhbiBu byBsb25nZXIgcmVtZW1iZXIgd2h5IHRoaXMgaHVuayBtb3ZpbmcKYXJtX3NtbXVfZnJlZV9zaGFy ZWRfY2QoKSBpcyBoZXJlLiBJIHRoaW5rIGl0IG1heSBoYXZlIGJlZW4gYSBsZWZ0Cm92ZXIgZnJv bSBhIGRpc2NhcmRlZCBkaXJlY3Rpb24uCgpTbywgbGlrZSB0aGlzOgoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLXN2YS5jIGIvZHJpdmVycy9p b21tdS9hcm0vYXJtLXNtbXUtdjMvYXJtLXNtbXUtdjMtc3ZhLmMKaW5kZXggZDY0M2M4NjM0NDY3 YzUuLjI5NDY5MDczZmM1M2ZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lvbW11L2FybS9hcm0tc21t dS12My9hcm0tc21tdS12My1zdmEuYworKysgYi9kcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS12 My9hcm0tc21tdS12My1zdmEuYwpAQCAtMzc4LDE1ICszNzgsMTQgQEAgYXJtX3NtbXVfbW11X25v dGlmaWVyX2dldChzdHJ1Y3QgYXJtX3NtbXVfZG9tYWluICpzbW11X2RvbWFpbiwKIAlyZXR1cm4g RVJSX1BUUihyZXQpOwogfQogCi1zdGF0aWMgc3RydWN0IGFybV9zbW11X2N0eF9kZXNjICoKLWFy bV9zbW11X21tdV9ub3RpZmllcl9wdXQoc3RydWN0IGFybV9zbW11X21tdV9ub3RpZmllciAqc21t dV9tbikKK3N0YXRpYyB2b2lkIGFybV9zbW11X21tdV9ub3RpZmllcl9wdXQoc3RydWN0IGFybV9z bW11X21tdV9ub3RpZmllciAqc21tdV9tbikKIHsKIAlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IHNt bXVfbW4tPm1uLm1tOwogCXN0cnVjdCBhcm1fc21tdV9jdHhfZGVzYyAqY2QgPSBzbW11X21uLT5j ZDsKIAlzdHJ1Y3QgYXJtX3NtbXVfZG9tYWluICpzbW11X2RvbWFpbiA9IHNtbXVfbW4tPmRvbWFp bjsKIAogCWlmICghcmVmY291bnRfZGVjX2FuZF90ZXN0KCZzbW11X21uLT5yZWZzKSkKLQkJcmV0 dXJuIGNkOworCQlyZXR1cm47CiAKIAlsaXN0X2RlbCgmc21tdV9tbi0+bGlzdCk7CiAKQEAgLTQw MSwxMSArNDAwLDExIEBAIGFybV9zbW11X21tdV9ub3RpZmllcl9wdXQoc3RydWN0IGFybV9zbW11 X21tdV9ub3RpZmllciAqc21tdV9tbikKIAogCS8qIEZyZWVzIHNtbXVfbW4gKi8KIAltbXVfbm90 aWZpZXJfcHV0KCZzbW11X21uLT5tbik7Ci0JcmV0dXJuIGNkOworCWFybV9zbW11X2ZyZWVfc2hh cmVkX2NkKGNkKTsKIH0KIAogc3RhdGljIGludCBfX2FybV9zbW11X3N2YV9iaW5kKHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IG1tX3N0cnVjdCAqbW0sCi0JCQkJCSAgICAgc3RydWN0IGFybV9z bW11X2NkICp0YXJnZXQpCisJCQkgICAgICAgc3RydWN0IGFybV9zbW11X2NkICp0YXJnZXQpCiB7 CiAJaW50IHJldDsKIAlzdHJ1Y3QgYXJtX3NtbXVfYm9uZCAqYm9uZDsKQEAgLTU5NSw2ICs1OTQs OCBAQCB2b2lkIGFybV9zbW11X3N2YV9yZW1vdmVfZGV2X3Bhc2lkKHN0cnVjdCBpb21tdV9kb21h aW4gKmRvbWFpbiwKIAlzdHJ1Y3QgYXJtX3NtbXVfYm9uZCAqYm9uZCA9IE5VTEwsICp0OwogCXN0 cnVjdCBhcm1fc21tdV9tYXN0ZXIgKm1hc3RlciA9IGRldl9pb21tdV9wcml2X2dldChkZXYpOwog CisJYXJtX3NtbXVfcmVtb3ZlX3Bhc2lkKG1hc3RlciwgdG9fc21tdV9kb21haW4oZG9tYWluKSwg aWQpOworCiAJbXV0ZXhfbG9jaygmc3ZhX2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnkodCwg Jm1hc3Rlci0+Ym9uZHMsIGxpc3QpIHsKIAkJaWYgKHQtPm1tID09IG1tKSB7CkBAIC02MDQsMTUg KzYwNSw5IEBAIHZvaWQgYXJtX3NtbXVfc3ZhX3JlbW92ZV9kZXZfcGFzaWQoc3RydWN0IGlvbW11 X2RvbWFpbiAqZG9tYWluLAogCX0KIAogCWlmICghV0FSTl9PTighYm9uZCkpIHsKLQkJc3RydWN0 IGFybV9zbW11X2N0eF9kZXNjICpjZDsKLQogCQlsaXN0X2RlbCgmYm9uZC0+bGlzdCk7Ci0JCWNk ID0gYXJtX3NtbXVfbW11X25vdGlmaWVyX3B1dChib25kLT5zbW11X21uKTsKLQkJYXJtX3NtbXVf cmVtb3ZlX3Bhc2lkKG1hc3RlciwgdG9fc21tdV9kb21haW4oZG9tYWluKSwgaWQpOwotCQlhcm1f c21tdV9mcmVlX3NoYXJlZF9jZChjZCk7CisJCWFybV9zbW11X21tdV9ub3RpZmllcl9wdXQoYm9u ZC0+c21tdV9tbik7CiAJCWtmcmVlKGJvbmQpOwotCX0gZWxzZSB7Ci0JCWFybV9zbW11X3JlbW92 ZV9wYXNpZChtYXN0ZXIsIHRvX3NtbXVfZG9tYWluKGRvbWFpbiksIGlkKTsKIAl9CiAJbXV0ZXhf dW5sb2NrKCZzdmFfbG9jayk7CiB9Cgo+ID4gLS0tIGEvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNt bXUtdjMvYXJtLXNtbXUtdjMuYwo+ID4gKysrIGIvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNtbXUt djMvYXJtLXNtbXUtdjMuYwo+ID4gQEAgLTI1NzYsNiArMjU3NiwzMCBAQCBzdGF0aWMgaW50IGFy bV9zbW11X2F0dGFjaF9kZXYoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLCBzdHJ1Y3QgZGV2 aWNlICpkZXYpCj4gPiAgICAgICAgIHJldHVybiAwOwo+ID4gIH0KPiA+Cj4gPiAraW50IGFybV9z bW11X3NldF9wYXNpZChzdHJ1Y3QgYXJtX3NtbXVfbWFzdGVyICptYXN0ZXIsCj4gPiArICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBhcm1fc21tdV9kb21haW4gKnNtbXVfZG9tYWluLCBpb2Fz aWRfdCBpZCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGFybV9zbW11 X2NkICpjZCkKPiA+ICt7Cj4gPiArICAgICAgIHN0cnVjdCBhcm1fc21tdV9kb21haW4gKm9sZF9z bW11X2RvbWFpbiA9Cj4gPiArICAgICAgICAgICAgICAgdG9fc21tdV9kb21haW5fc2FmZShpb21t dV9nZXRfZG9tYWluX2Zvcl9kZXYobWFzdGVyLT5kZXYpKTsKPiAKPiBuaXQ6IFRoZSBuYW1lIG9s ZF9zbW11X2RvbWFpbiBzb3VuZHMgdG8gbWUgbGlrZSBpdCdzIGJlaW5nIHJlcGxhY2VkCj4gd2l0 aCBhIG5ld2VyIGRvbWFpbi4KClN1cmUsIGEgbGF0ZXIgcGF0Y2ggZXZlbnR1YWxseSBjaGFuZ2Vz IHRoaXMgdG8gYmUgJ3NpZF9kb21haW4nCih3aXRob3V0IHRoZSBhcm1fc21tdV9kb21haW4gdHlw ZSkgc28gbGV0cyBqdXN0IGNhbGwgdGhpcwpzaWRfc21tdV9kb21haW4gaGVyZS4KClRoYW5rcywK SmFzb24KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK