From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BB8C969973 for ; Fri, 22 Mar 2024 18:36:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711132586; cv=none; b=EF0SXyyFtFEQSUAPefogOAWsqd+Ohx7iJf1pjhYKp6auvmYL/ropZzJprK6av+E2YbMMoEFA2nkykK1vYxozbFNk5vS4lYJ3aUbCtJiJChUB1PQ0WsQJ0QI4Gf337hQMky/+CElM2vsmVWWp404MNOdLkWwKRpi6j/8dXHHg+5g= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711132586; c=relaxed/simple; bh=JoClKObtEAGJ+tT2fQIpky3Dipfqc32Ut+GvILAfph0=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=BF0N9Fty3r8Yevp1t+Zog7FPldS2JRs3I2E20CP5qmkO18jV4Ct4BII+l1+zLmKzGu64ifdAyQmhcdaB0NFMkTR+SUOomQ7cg79IRrIBDkEN6wmep1ke2G6l3UXChuU2Bxndz3d1I+vnYpgFbBudYQxt6txt651R5FiA0VYfpjc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=iWpukIG5; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="iWpukIG5" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-1deddb82b43so18245ad.0 for ; Fri, 22 Mar 2024 11:36:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1711132584; x=1711737384; darn=lists.linux.dev; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=nVPoc0zBfC9U1ic1aSzwWnoSA6XoyfQtm0d93m0EMpw=; b=iWpukIG5k1tDs7/3wEIPNqyjncJneQUNdaRWGYMJi0J1noDuDwWgHkn0jRaP8l2jjf NroZfe/omjadWVOa36tRvLyY/5dzEtYHNrSp29viz6+msymqKhevQjDlW8ntJPsdjmOM BWklyIVBM6+Byj1g1bROm5DRUIWY5SzBQ2lj/GotFZpBpVA/yaR2LMBIw63z7ye3q+lu tV149Ug8GWDKv1Re76ttEkIWOUO1qhH6BsX53BB1i4YuUZV/P2iFdU4Ov/dwFB3WDDAK NkUTRMo7Lzr5KuWAUROf7l3jvUK+9aMP+LhPEr7xk7YF/+/BQoa56q9+nAuRG7XBsqR9 lXZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711132584; x=1711737384; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nVPoc0zBfC9U1ic1aSzwWnoSA6XoyfQtm0d93m0EMpw=; b=ALOHEmCSpF+6OKGh+4cAoCHwbKZIKCHS/us19EgkaVgBsQAs0xqN9eEbHCHFBQtvGh 0RoyDG/ITzGxJRU9ZrzO+ORGIS6MJ36R/AlgZPftObee+JtKYvLAzaN52XKdylS7IMh5 UdAMTS1XN/Yo3Js64s9oa5LYi/tah1CA6uT8razlAXhVCny2gR9g69U1E9tX4RkAanqI XB2CYdMWlN+fz3o3NROTIBCqVXcTsRlDMAZsK4Qze8umQf0xEmB+AqPlCntf6m3icgpF 3mmIL85WzoJLPlc2bk7kfpQk9mhKtxzfTvDXwNoNOrtb3GG4ZXurEoR9LgWH+7VNIamC ngqQ== X-Gm-Message-State: AOJu0YyEKDpXwFK231nkAKlAURxMELyffQCr+Kzu28P4KMRGjyhrMyz5 YPrBK+UHa87YTB8vl3b95laT61KukPvyb20hPNwqqRKUkXmJVp3d31uF7bW8NA== X-Google-Smtp-Source: AGHT+IEqcUEHz846wp32mZoycYvHFc25nLCog9QUGkMqh5QA3Top43vW55sXYxEXlOBafcwvEnZn3A== X-Received: by 2002:a17:902:ce81:b0:1e0:9f59:ed0e with SMTP id f1-20020a170902ce8100b001e09f59ed0emr67263plg.25.1711132583667; Fri, 22 Mar 2024 11:36:23 -0700 (PDT) Received: from google.com (180.232.140.34.bc.googleusercontent.com. [34.140.232.180]) by smtp.gmail.com with ESMTPSA id v7-20020aa799c7000000b006e77dcba6a2sm62198pfi.207.2024.03.22.11.36.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Mar 2024 11:36:23 -0700 (PDT) Date: Fri, 22 Mar 2024 18:36:17 +0000 From: Mostafa Saleh To: Jason Gunthorpe Cc: iommu@lists.linux.dev, Joerg Roedel , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon , Eric Auger , Jean-Philippe Brucker , Moritz Fischer , Michael Shavit , Nicolin Chen , patches@lists.linux.dev, Shameerali Kolothum Thodi Subject: Re: [PATCH v5 06/27] iommu/arm-smmu-v3: Consolidate clearing a CD table entry Message-ID: References: <0-v5-9a37e0c884ce+31e3-smmuv3_newapi_p2_jgg@nvidia.com> <6-v5-9a37e0c884ce+31e3-smmuv3_newapi_p2_jgg@nvidia.com> Precedence: bulk X-Mailing-List: iommu@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <6-v5-9a37e0c884ce+31e3-smmuv3_newapi_p2_jgg@nvidia.com> Hi Jason, On Mon, Mar 04, 2024 at 07:43:54PM -0400, Jason Gunthorpe wrote: > A cleared entry is all 0's. Make arm_smmu_clear_cd() do this sequence. > > If we are clearing an entry and for some reason it is not already > allocated in the CD table then something has gone wrong. > > Tested-by: Nicolin Chen > Signed-off-by: Jason Gunthorpe > --- > .../iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 2 +- > drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 20 ++++++++++++++----- > drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 2 ++ > 3 files changed, 18 insertions(+), 6 deletions(-) > > 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 347c2fdd865c1a..bb9bb6fd7914ce 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 > @@ -558,7 +558,7 @@ void arm_smmu_sva_remove_dev_pasid(struct iommu_domain *domain, > > mutex_lock(&sva_lock); > > - arm_smmu_write_ctx_desc(master, id, NULL); > + arm_smmu_clear_cd(master, id); > > list_for_each_entry(t, &master->bonds, list) { > if (t->mm == mm) { > diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > index 237fd6d92c880b..3fb4a1523d1d3f 100644 > --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > @@ -1303,6 +1303,19 @@ static void arm_smmu_write_cd_entry(struct arm_smmu_master *master, int ssid, > arm_smmu_write_entry(&cd_writer.writer, cdptr->data, target->data); > } > > +void arm_smmu_clear_cd(struct arm_smmu_master *master, ioasid_t ssid) > +{ > + struct arm_smmu_cd target = {}; > + struct arm_smmu_cd *cdptr; > + > + if (!master->cd_table.cdtab) > + return; > + cdptr = arm_smmu_get_cd_ptr(master, ssid); > + if (WARN_ON(!cdptr)) > + return; I don’t understand the SVA code enough, but AFAICT, arm_smmu_sva_set_dev_pasid can allocate the L2 CD table through arm_smmu_write_ctx_desc. And if it failed before allocating the CD table, then remove_dev_pasid would be called, which warns here, the previous code would tolerate that, but that might regress on systems with panic_on_warn, so I am not sure if that is necessary. Otherwise, Reviewed-by: Mostafa Saleh > + arm_smmu_write_cd_entry(master, ssid, cdptr, &target); > +} > + > int arm_smmu_write_ctx_desc(struct arm_smmu_master *master, int ssid, > struct arm_smmu_ctx_desc *cd) > { > @@ -2702,9 +2715,7 @@ static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev) > case ARM_SMMU_DOMAIN_S2: > arm_smmu_make_s2_domain_ste(&target, master, smmu_domain); > arm_smmu_install_ste_for_dev(master, &target); > - if (master->cd_table.cdtab) > - arm_smmu_write_ctx_desc(master, IOMMU_NO_PASID, > - NULL); > + arm_smmu_clear_cd(master, IOMMU_NO_PASID); > break; > } > > @@ -2752,8 +2763,7 @@ static int arm_smmu_attach_dev_ste(struct device *dev, > * arm_smmu_domain->devices to avoid races updating the same context > * descriptor from arm_smmu_share_asid(). > */ > - if (master->cd_table.cdtab) > - arm_smmu_write_ctx_desc(master, IOMMU_NO_PASID, NULL); > + arm_smmu_clear_cd(master, IOMMU_NO_PASID); > return 0; > } > > diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h > index 7078ed569fd4d3..87a7b57f566fbc 100644 > --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h > +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h > @@ -749,6 +749,8 @@ extern struct xarray arm_smmu_asid_xa; > extern struct mutex arm_smmu_asid_lock; > extern struct arm_smmu_ctx_desc quiet_cd; > > +void arm_smmu_clear_cd(struct arm_smmu_master *master, ioasid_t ssid); > + > int arm_smmu_write_ctx_desc(struct arm_smmu_master *smmu_master, int ssid, > struct arm_smmu_ctx_desc *cd); > void arm_smmu_tlb_inv_asid(struct arm_smmu_device *smmu, u16 asid); > -- > 2.43.2 > Thanks, Mostafa 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 73652C54E71 for ; Fri, 22 Mar 2024 18:36:41 +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:In-Reply-To:MIME-Version: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=rTXQBr0z+gN46GdzSNqTMGhMdmbIDtBr3vRUlhuPbtg=; b=K3GrvDyFANH2In ne+xC063TfXsFYN7NpOrdxdma3cVrciR5PIx2/ekdly2AF4D9hO4sWk3HkhrcZXLUdf3eMv5Uli4b BVhH9TjfuLYKEgHsTVMmWjdO5qOkJhbsWHeDyfhojzm8hgXb5sKt/nu1Wprew/FpoE8VFa9QMy3o5 rDIMX9JW7v6Jl2tI1CSwMUMxjd7Bv4fA7fIy9UAKa5xg6FSq4tk8wUE8KUbB+5g7BovB28Xp2xe6s AexYEw9vDHzFopAF3JoDKpyqfAanScUJvl53jihlxB8I2wN/iEjLkDpAkKb6zy6MC1PZmK//NGg/f R5pTIr0z1VLMs2+XEZzQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rnjkj-00000008Nno-3MBL; Fri, 22 Mar 2024 18:36:29 +0000 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rnjkg-00000008Nm4-3rfJ for linux-arm-kernel@lists.infradead.org; Fri, 22 Mar 2024 18:36:28 +0000 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1e062f3a47bso19535ad.1 for ; Fri, 22 Mar 2024 11:36:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1711132584; x=1711737384; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=nVPoc0zBfC9U1ic1aSzwWnoSA6XoyfQtm0d93m0EMpw=; b=IiTlQ+/ht85YEGQ1Ai2/6rC4gSiM72mPxadbaBNETnj/Zk5RAlDnv+eBzzwZXDhp+o HufdMSnHcP2QqK3sQ8kwEfIZmglDAotJx3Zmw3VnvPiQe9A1ab49dCMsWNGzwLPvR7g+ Gpog6Ofoxy04Bsvw5pytY2ssbp1WfdMc8EoBvzUHtrlf7MOfNxv+QHSJb66mZ+wZN8fr mzLEET5SGhLBUrXFN3ltIcINKSt4rp6lLJhxEXh6ARMkf6sOh5hF/xG6irNmex3L2WoR yCue7pfVZikeQgYI4AuKjGDXOIQMS1XmNUB6LE/nuU92Podo5kE8L5yWs77Cdo2I4Avn g4cA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711132584; x=1711737384; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nVPoc0zBfC9U1ic1aSzwWnoSA6XoyfQtm0d93m0EMpw=; b=CC0Al8akwBF0huULY801YshdyBuM/VR3K2MeQRBmoXrqiKGLuB5a4cNGURr4aWsmNK lh1jKM4A1JELQOLkUvUqUGp0Vo+t2zfSr1viKvO2rfS7Bt9vSYZNW5LF9KXV1hDQTFQD vHHVUijzjlyaWGxjvPI5DfTWrIhjmvjRdhDqxTKTK1t3J0aALug4lzteTnO5ZhfKQw9k WM1omavHJdx8uuf4Sz+AT25sUyZ4ENtqBK+aiaZgDtfGuiFasSR9XVpTrLJTKxb2SrUB 4EXeuuGHBw7DrZmJ6ZtUuFyOFg17zE6rMVXcyWdYO/G3dcfp8Ab0Sxn36KwYOpdIxb+X kjsw== X-Forwarded-Encrypted: i=1; AJvYcCVd7LKT/i40q/NtL/SdlhO2N3uW7hnBms31PjiQcmZ4OW68RKBeA552B3mu6VI3GZNrxihNqonrWdBPuaKA1wH0MaLOdTzF49i5R1vgHWgN0ORkEv4= X-Gm-Message-State: AOJu0Yy+nIps6U49b1d6yDCI79XnQU4VthQhNs2aV4km5/4nR6oP5jjG rxMRQsIiXHu/jjMspRwEE8X950DJ6tNGuRMyG+JDBKB0wOn35Asy8PQpYsj3XQ== X-Google-Smtp-Source: AGHT+IEqcUEHz846wp32mZoycYvHFc25nLCog9QUGkMqh5QA3Top43vW55sXYxEXlOBafcwvEnZn3A== X-Received: by 2002:a17:902:ce81:b0:1e0:9f59:ed0e with SMTP id f1-20020a170902ce8100b001e09f59ed0emr67263plg.25.1711132583667; Fri, 22 Mar 2024 11:36:23 -0700 (PDT) Received: from google.com (180.232.140.34.bc.googleusercontent.com. [34.140.232.180]) by smtp.gmail.com with ESMTPSA id v7-20020aa799c7000000b006e77dcba6a2sm62198pfi.207.2024.03.22.11.36.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Mar 2024 11:36:23 -0700 (PDT) Date: Fri, 22 Mar 2024 18:36:17 +0000 From: Mostafa Saleh To: Jason Gunthorpe Cc: iommu@lists.linux.dev, Joerg Roedel , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon , Eric Auger , Jean-Philippe Brucker , Moritz Fischer , Michael Shavit , Nicolin Chen , patches@lists.linux.dev, Shameerali Kolothum Thodi Subject: Re: [PATCH v5 06/27] iommu/arm-smmu-v3: Consolidate clearing a CD table entry Message-ID: References: <0-v5-9a37e0c884ce+31e3-smmuv3_newapi_p2_jgg@nvidia.com> <6-v5-9a37e0c884ce+31e3-smmuv3_newapi_p2_jgg@nvidia.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <6-v5-9a37e0c884ce+31e3-smmuv3_newapi_p2_jgg@nvidia.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240322_113627_003796_126A84D3 X-CRM114-Status: GOOD ( 25.23 ) 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 SGkgSmFzb24sCgpPbiBNb24sIE1hciAwNCwgMjAyNCBhdCAwNzo0Mzo1NFBNIC0wNDAwLCBKYXNv biBHdW50aG9ycGUgd3JvdGU6Cj4gQSBjbGVhcmVkIGVudHJ5IGlzIGFsbCAwJ3MuIE1ha2UgYXJt X3NtbXVfY2xlYXJfY2QoKSBkbyB0aGlzIHNlcXVlbmNlLgo+IAo+IElmIHdlIGFyZSBjbGVhcmlu ZyBhbiBlbnRyeSBhbmQgZm9yIHNvbWUgcmVhc29uIGl0IGlzIG5vdCBhbHJlYWR5Cj4gYWxsb2Nh dGVkIGluIHRoZSBDRCB0YWJsZSB0aGVuIHNvbWV0aGluZyBoYXMgZ29uZSB3cm9uZy4KPiAKPiBU ZXN0ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KPiBTaWduZWQtb2Zm LWJ5OiBKYXNvbiBHdW50aG9ycGUgPGpnZ0BudmlkaWEuY29tPgo+IC0tLQo+ICAuLi4vaW9tbXUv YXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLXN2YS5jICAgfCAgMiArLQo+ICBkcml2ZXJzL2lv bW11L2FybS9hcm0tc21tdS12My9hcm0tc21tdS12My5jICAgfCAyMCArKysrKysrKysrKysrKy0t LS0tCj4gIGRyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLmggICB8ICAy ICsrCj4gIDMgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNtbXUtdjMvYXJtLXNtbXUt djMtc3ZhLmMgYi9kcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS12My9hcm0tc21tdS12My1zdmEu Ywo+IGluZGV4IDM0N2MyZmRkODY1YzFhLi5iYjliYjZmZDc5MTRjZSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS12My9hcm0tc21tdS12My1zdmEuYwo+ICsrKyBiL2Ry aXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLXN2YS5jCj4gQEAgLTU1OCw3 ICs1NTgsNyBAQCB2b2lkIGFybV9zbW11X3N2YV9yZW1vdmVfZGV2X3Bhc2lkKHN0cnVjdCBpb21t dV9kb21haW4gKmRvbWFpbiwKPiAgCj4gIAltdXRleF9sb2NrKCZzdmFfbG9jayk7Cj4gIAo+IC0J YXJtX3NtbXVfd3JpdGVfY3R4X2Rlc2MobWFzdGVyLCBpZCwgTlVMTCk7Cj4gKwlhcm1fc21tdV9j bGVhcl9jZChtYXN0ZXIsIGlkKTsKPiAgCj4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHQsICZtYXN0 ZXItPmJvbmRzLCBsaXN0KSB7Cj4gIAkJaWYgKHQtPm1tID09IG1tKSB7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLmMgYi9kcml2ZXJzL2lv bW11L2FybS9hcm0tc21tdS12My9hcm0tc21tdS12My5jCj4gaW5kZXggMjM3ZmQ2ZDkyYzg4MGIu LjNmYjRhMTUyM2QxZDNmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11 LXYzL2FybS1zbW11LXYzLmMKPiArKysgYi9kcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS12My9h cm0tc21tdS12My5jCj4gQEAgLTEzMDMsNiArMTMwMywxOSBAQCBzdGF0aWMgdm9pZCBhcm1fc21t dV93cml0ZV9jZF9lbnRyeShzdHJ1Y3QgYXJtX3NtbXVfbWFzdGVyICptYXN0ZXIsIGludCBzc2lk LAo+ICAJYXJtX3NtbXVfd3JpdGVfZW50cnkoJmNkX3dyaXRlci53cml0ZXIsIGNkcHRyLT5kYXRh LCB0YXJnZXQtPmRhdGEpOwo+ICB9Cj4gIAo+ICt2b2lkIGFybV9zbW11X2NsZWFyX2NkKHN0cnVj dCBhcm1fc21tdV9tYXN0ZXIgKm1hc3RlciwgaW9hc2lkX3Qgc3NpZCkKPiArewo+ICsJc3RydWN0 IGFybV9zbW11X2NkIHRhcmdldCA9IHt9Owo+ICsJc3RydWN0IGFybV9zbW11X2NkICpjZHB0cjsK PiArCj4gKwlpZiAoIW1hc3Rlci0+Y2RfdGFibGUuY2R0YWIpCj4gKwkJcmV0dXJuOwo+ICsJY2Rw dHIgPSBhcm1fc21tdV9nZXRfY2RfcHRyKG1hc3Rlciwgc3NpZCk7Cj4gKwlpZiAoV0FSTl9PTigh Y2RwdHIpKQo+ICsJCXJldHVybjsKCkkgZG9u4oCZdCB1bmRlcnN0YW5kIHRoZSBTVkEgY29kZSBl bm91Z2gsIGJ1dCBBRkFJQ1QsIGFybV9zbW11X3N2YV9zZXRfZGV2X3Bhc2lkCmNhbiBhbGxvY2F0 ZSB0aGUgTDIgQ0QgdGFibGUgdGhyb3VnaCBhcm1fc21tdV93cml0ZV9jdHhfZGVzYy4gQW5kIGlm IGl0IGZhaWxlZApiZWZvcmUgYWxsb2NhdGluZyB0aGUgQ0QgdGFibGUsIHRoZW4gcmVtb3ZlX2Rl dl9wYXNpZCB3b3VsZCBiZSBjYWxsZWQsIHdoaWNoCndhcm5zIGhlcmUsIHRoZSBwcmV2aW91cyBj b2RlIHdvdWxkIHRvbGVyYXRlIHRoYXQsIGJ1dCB0aGF0IG1pZ2h0IHJlZ3Jlc3Mgb24Kc3lzdGVt cyB3aXRoIHBhbmljX29uX3dhcm4sIHNvIEkgYW0gbm90IHN1cmUgaWYgdGhhdCBpcyBuZWNlc3Nh cnkuCgpPdGhlcndpc2UsIFJldmlld2VkLWJ5OiBNb3N0YWZhIFNhbGVoIDxzbW9zdGFmYUBnb29n bGUuY29tPgoKPiArCWFybV9zbW11X3dyaXRlX2NkX2VudHJ5KG1hc3Rlciwgc3NpZCwgY2RwdHIs ICZ0YXJnZXQpOwo+ICt9Cj4gKwo+ICBpbnQgYXJtX3NtbXVfd3JpdGVfY3R4X2Rlc2Moc3RydWN0 IGFybV9zbW11X21hc3RlciAqbWFzdGVyLCBpbnQgc3NpZCwKPiAgCQkJICAgIHN0cnVjdCBhcm1f c21tdV9jdHhfZGVzYyAqY2QpCj4gIHsKPiBAQCAtMjcwMiw5ICsyNzE1LDcgQEAgc3RhdGljIGlu dCBhcm1fc21tdV9hdHRhY2hfZGV2KHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbiwgc3RydWN0 IGRldmljZSAqZGV2KQo+ICAJY2FzZSBBUk1fU01NVV9ET01BSU5fUzI6Cj4gIAkJYXJtX3NtbXVf bWFrZV9zMl9kb21haW5fc3RlKCZ0YXJnZXQsIG1hc3Rlciwgc21tdV9kb21haW4pOwo+ICAJCWFy bV9zbW11X2luc3RhbGxfc3RlX2Zvcl9kZXYobWFzdGVyLCAmdGFyZ2V0KTsKPiAtCQlpZiAobWFz dGVyLT5jZF90YWJsZS5jZHRhYikKPiAtCQkJYXJtX3NtbXVfd3JpdGVfY3R4X2Rlc2MobWFzdGVy LCBJT01NVV9OT19QQVNJRCwKPiAtCQkJCQkJICAgICAgTlVMTCk7Cj4gKwkJYXJtX3NtbXVfY2xl YXJfY2QobWFzdGVyLCBJT01NVV9OT19QQVNJRCk7Cj4gIAkJYnJlYWs7Cj4gIAl9Cj4gIAo+IEBA IC0yNzUyLDggKzI3NjMsNyBAQCBzdGF0aWMgaW50IGFybV9zbW11X2F0dGFjaF9kZXZfc3RlKHN0 cnVjdCBkZXZpY2UgKmRldiwKPiAgCSAqIGFybV9zbW11X2RvbWFpbi0+ZGV2aWNlcyB0byBhdm9p ZCByYWNlcyB1cGRhdGluZyB0aGUgc2FtZSBjb250ZXh0Cj4gIAkgKiBkZXNjcmlwdG9yIGZyb20g YXJtX3NtbXVfc2hhcmVfYXNpZCgpLgo+ICAJICovCj4gLQlpZiAobWFzdGVyLT5jZF90YWJsZS5j ZHRhYikKPiAtCQlhcm1fc21tdV93cml0ZV9jdHhfZGVzYyhtYXN0ZXIsIElPTU1VX05PX1BBU0lE LCBOVUxMKTsKPiArCWFybV9zbW11X2NsZWFyX2NkKG1hc3RlciwgSU9NTVVfTk9fUEFTSUQpOwo+ ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvYXJtL2Fy bS1zbW11LXYzL2FybS1zbW11LXYzLmggYi9kcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS12My9h cm0tc21tdS12My5oCj4gaW5kZXggNzA3OGVkNTY5ZmQ0ZDMuLjg3YTdiNTdmNTY2ZmJjIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLmgKPiAr KysgYi9kcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS12My9hcm0tc21tdS12My5oCj4gQEAgLTc0 OSw2ICs3NDksOCBAQCBleHRlcm4gc3RydWN0IHhhcnJheSBhcm1fc21tdV9hc2lkX3hhOwo+ICBl eHRlcm4gc3RydWN0IG11dGV4IGFybV9zbW11X2FzaWRfbG9jazsKPiAgZXh0ZXJuIHN0cnVjdCBh cm1fc21tdV9jdHhfZGVzYyBxdWlldF9jZDsKPiAgCj4gK3ZvaWQgYXJtX3NtbXVfY2xlYXJfY2Qo c3RydWN0IGFybV9zbW11X21hc3RlciAqbWFzdGVyLCBpb2FzaWRfdCBzc2lkKTsKPiArCj4gIGlu dCBhcm1fc21tdV93cml0ZV9jdHhfZGVzYyhzdHJ1Y3QgYXJtX3NtbXVfbWFzdGVyICpzbW11X21h c3RlciwgaW50IHNzaWQsCj4gIAkJCSAgICBzdHJ1Y3QgYXJtX3NtbXVfY3R4X2Rlc2MgKmNkKTsK PiAgdm9pZCBhcm1fc21tdV90bGJfaW52X2FzaWQoc3RydWN0IGFybV9zbW11X2RldmljZSAqc21t dSwgdTE2IGFzaWQpOwo+IC0tIAo+IDIuNDMuMgo+ClRoYW5rcywKTW9zdGFmYQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=