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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76433C43217 for ; Fri, 25 Nov 2022 14:26:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229553AbiKYO0h (ORCPT ); Fri, 25 Nov 2022 09:26:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47836 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229610AbiKYO0g (ORCPT ); Fri, 25 Nov 2022 09:26:36 -0500 Received: from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com [IPv6:2607:f8b0:4864:20::52e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 560A32AC7E for ; Fri, 25 Nov 2022 06:26:34 -0800 (PST) Received: by mail-pg1-x52e.google.com with SMTP id f9so4085031pgf.7 for ; Fri, 25 Nov 2022 06:26:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=pr9EPBHz4BamKgB8yWADZkXZ2+tlYR/qk7DwwWPntys=; b=I22Ui3Ws2mdvy3i8n4OvfE7B4UBhCYea7j3aLWfiqH6e04pBvYdBesUghp62dWLwlP nUvmU/k0g1An/0OlJ34HaFJQiRBzF0H4W6T/bVUx1zm9Bl2bgWzoL3GpF4JfgONWkVbE EwQpaRMKtu1ensgpA7mEiE9oiRjstNpI6/teS/2EmsCih9G1zkFWu57x03IKOctYmO6b 8uIFnuHSjhfW3vcW332yGJfmlCNj0hM2e3UlZ2FvRnUWb5xA0fGO9KsZPNX63gbTbsLc Avx33IJSJQXBDcMj1TDY9VR9YSk/OF8WhfUPLTuG21X7mpO1vVjJj47paR3SHE3BHjTr ROiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=pr9EPBHz4BamKgB8yWADZkXZ2+tlYR/qk7DwwWPntys=; b=5GgRhr6qc8TqoAFQLGeNSUlFkkjD4wg7PmRlqUadtL52pZ20g7t/5AC4NoWDHslLEp QFOIN9TZ8CcNTAjKrrz/8rYqmkfoHN8nHIwG/vfDg5Jaine4ZBf5iHuCItET4HXyak9Y cm0U6iVh/UKVQARzH5QBPjTjynr/eQDLbkhRHEOgrbagh5e4M4klnZ394yfxUOxm/j+h dET4A74MsV2MkLXQEJsVbe/1SKyclYAGekbzq7tXXT/AnIPpURHRZR8Osj3xpHHLB6yo sGKxdMIY6tDCpOmINedGxm8MGVQ4oLTJMG53qm3fKo1yQOCkCLzQS4I9FqSmN4jI6KF7 Rblg== X-Gm-Message-State: ANoB5pkmQMf33hCQhOh7EljThNeb37EjXRexONFCf1aSRa4k5poyBi3D UgdWrMoD56Yc4rJPTh1wjKes X-Google-Smtp-Source: AA0mqf49zCazD+UtCRa4BNYXgoE42BG1LqZ3W0LypZAXCz7fviyny0CBtnZkM2HGDAm3DL59CDuHnQ== X-Received: by 2002:a63:1e62:0:b0:46b:3acb:77b2 with SMTP id p34-20020a631e62000000b0046b3acb77b2mr15395586pgm.560.1669386393687; Fri, 25 Nov 2022 06:26:33 -0800 (PST) Received: from thinkpad ([117.202.190.212]) by smtp.gmail.com with ESMTPSA id n7-20020a170902d2c700b00186ffe62502sm3448694plc.254.2022.11.25.06.26.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Nov 2022 06:26:32 -0800 (PST) Date: Fri, 25 Nov 2022 19:56:25 +0530 From: Manivannan Sadhasivam To: Johan Hovold Cc: Bjorn Andersson , Andy Gross , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Will Deacon , Robin Murphy , Christoph Hellwig , Ard Biesheuvel , Catalin Marinas , linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] arm64: dts: qcom: sc8280xp: fix PCIe DMA coherency Message-ID: <20221125142625.GA9892@thinkpad> References: <20221124142501.29314-1-johan+linaro@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20221124142501.29314-1-johan+linaro@kernel.org> Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On Thu, Nov 24, 2022 at 03:25:01PM +0100, Johan Hovold wrote: > The devices on the SC8280XP PCIe buses are cache coherent and must be > marked as such to avoid data corruption. > > A coherent device can, for example, end up snooping stale data from the > caches instead of using data written by the CPU through the > non-cacheable mapping which is used for consistent DMA buffers for > non-coherent devices. > Also, the device may write into the L2 cache (or whatever cache that is accessible) if there is an entry and the CPU may invalidate it before reading from the DMA buffer. This will end up in a data loss. > Note that this is much more likely to happen since commit c44094eee32f > ("arm64: dma: Drop cache invalidation from arch_dma_prep_coherent()") > that was added in 6.1 and which removed the cache invalidation when > setting up the non-cacheable mapping. > > Marking the PCIe devices as coherent specifically fixes the intermittent > NVMe probe failures observed on the Thinkpad X13s, which was due to > corruption of the submission and completion queues. This was typically > observed as corruption of the admin submission queue (with well-formed > completion): > > could not locate request for tag 0x0 > nvme nvme0: invalid id 0 completed on queue 0 > > or corruption of the admin or I/O completion queues (malformed > completion): > > could not locate request for tag 0x45f > nvme nvme0: invalid id 25695 completed on queue 25965 > > presumably as these queues are small enough to not be allocated using > CMA which in turn make them more likely to be cached (e.g. due to > accesses to nearby pages through the cacheable linear map). Increasing > the buffer sizes to two pages to force CMA allocation also appears to > make the problem go away. > I don't think the problem will go away if the allocation happens from CMA region. It may just decrease the chances of cache hit but it could always happen due to the existence of linear mapping with cacheable attribute. > Fixes: 813e83157001 ("arm64: dts: qcom: sc8280xp/sa8540p: add PCIe2-4 nodes") > Signed-off-by: Johan Hovold Anyway, this is a really good find! Reviewed-by: Manivannan Sadhasivam Thanks, Mani > --- > arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi > index 27f5c2f82338..7748cd29276d 100644 > --- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi > +++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi > @@ -854,6 +854,8 @@ pcie4: pcie@1c00000 { > <0x02000000 0x0 0x30300000 0x0 0x30300000 0x0 0x1d00000>; > bus-range = <0x00 0xff>; > > + dma-coherent; > + > linux,pci-domain = <6>; > num-lanes = <1>; > > @@ -951,6 +953,8 @@ pcie3b: pcie@1c08000 { > <0x02000000 0x0 0x32300000 0x0 0x32300000 0x0 0x1d00000>; > bus-range = <0x00 0xff>; > > + dma-coherent; > + > linux,pci-domain = <5>; > num-lanes = <2>; > > @@ -1046,6 +1050,8 @@ pcie3a: pcie@1c10000 { > <0x02000000 0x0 0x34300000 0x0 0x34300000 0x0 0x1d00000>; > bus-range = <0x00 0xff>; > > + dma-coherent; > + > linux,pci-domain = <4>; > num-lanes = <4>; > > @@ -1144,6 +1150,8 @@ pcie2b: pcie@1c18000 { > <0x02000000 0x0 0x38300000 0x0 0x38300000 0x0 0x1d00000>; > bus-range = <0x00 0xff>; > > + dma-coherent; > + > linux,pci-domain = <3>; > num-lanes = <2>; > > @@ -1239,6 +1247,8 @@ pcie2a: pcie@1c20000 { > <0x02000000 0x0 0x3c300000 0x0 0x3c300000 0x0 0x1d00000>; > bus-range = <0x00 0xff>; > > + dma-coherent; > + > linux,pci-domain = <2>; > num-lanes = <4>; > > -- > 2.37.4 > -- மணிவண்ணன் சதாசிவம் 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 AA64CC4332F for ; Fri, 25 Nov 2022 14:27:46 +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=LDEw3Yy9nLkFDy+NQ3efxH2T7lc3GD9aQdMvmv1sndk=; b=JTRDfFmuWPr8by 0o4UVxUC5Xpk6+PT0vVD9ElczZUNkqMaN4lohBFADNvdUjB2UDndJwU+g8SfOpv8g8HwauDD62Y7A tC4og+mQkSiUCYwJHiJtHHkz/29aHwIHRzA87+nOKYMHs4hqw1dVh/A+rB0A+A/0q1+XeLkXJ3WOG c3Y3vL7QURVIK2mN6BOhvxvfEyFPPqiWcldFAbgpJgGzLcLjz16xl3meK+8vVQrxrSSTk5+77x6K7 RlKTXnqmPu6M5wl8n0rRyyfnkbjaLGRbw/P/9JzujcM2A9YxqQO63GppmbEYGTWYDf3AeyE1dDoY/ 5ed0q0apoMxL8TliH40A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oyZf5-00H1Wl-FB; Fri, 25 Nov 2022 14:26:39 +0000 Received: from mail-pg1-x52a.google.com ([2607:f8b0:4864:20::52a]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oyZf2-00H1UD-C0 for linux-arm-kernel@lists.infradead.org; Fri, 25 Nov 2022 14:26:38 +0000 Received: by mail-pg1-x52a.google.com with SMTP id q1so4072629pgl.11 for ; Fri, 25 Nov 2022 06:26:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=pr9EPBHz4BamKgB8yWADZkXZ2+tlYR/qk7DwwWPntys=; b=I22Ui3Ws2mdvy3i8n4OvfE7B4UBhCYea7j3aLWfiqH6e04pBvYdBesUghp62dWLwlP nUvmU/k0g1An/0OlJ34HaFJQiRBzF0H4W6T/bVUx1zm9Bl2bgWzoL3GpF4JfgONWkVbE EwQpaRMKtu1ensgpA7mEiE9oiRjstNpI6/teS/2EmsCih9G1zkFWu57x03IKOctYmO6b 8uIFnuHSjhfW3vcW332yGJfmlCNj0hM2e3UlZ2FvRnUWb5xA0fGO9KsZPNX63gbTbsLc Avx33IJSJQXBDcMj1TDY9VR9YSk/OF8WhfUPLTuG21X7mpO1vVjJj47paR3SHE3BHjTr ROiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=pr9EPBHz4BamKgB8yWADZkXZ2+tlYR/qk7DwwWPntys=; b=etnYGgeRSOaddMFPQnidU8g6opgfqfcWOgcz7F0pKSF46kKnbQA+XjA4cZFt4m12nI z08BTcQpdD2PAaSt9UlJX6pAomCH4Vff6qKC4V9v4DxWVUmzIE1MwXiurhjw2icFRyuH Ugu3adED0d/3jQyzIWFMOpgYuhQDmpX/zRBQ9frp+3R39+DXQ65HHR7H/0rVmXN3ebT3 yKfsSiz2hhqQ1Cz+Xyg//9+McvU8jO+LPbqyDyrxHkryGIZj5l2lyrNpoi0ZFG45uJW8 WhMzglS92xq4Cs/faFmqndaaQwlvcAy7lXRVDlJ4EUZsWSFmWMn8FQGp5bTw8f8dCcE9 /FHQ== X-Gm-Message-State: ANoB5pkmqLCLscnssFBbgP9FpY9Rz8nrwQ8MbMh8tbc/f4modiJUPFuH KW1+qxvuVepME/oboVPuml3F X-Google-Smtp-Source: AA0mqf49zCazD+UtCRa4BNYXgoE42BG1LqZ3W0LypZAXCz7fviyny0CBtnZkM2HGDAm3DL59CDuHnQ== X-Received: by 2002:a63:1e62:0:b0:46b:3acb:77b2 with SMTP id p34-20020a631e62000000b0046b3acb77b2mr15395586pgm.560.1669386393687; Fri, 25 Nov 2022 06:26:33 -0800 (PST) Received: from thinkpad ([117.202.190.212]) by smtp.gmail.com with ESMTPSA id n7-20020a170902d2c700b00186ffe62502sm3448694plc.254.2022.11.25.06.26.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Nov 2022 06:26:32 -0800 (PST) Date: Fri, 25 Nov 2022 19:56:25 +0530 From: Manivannan Sadhasivam To: Johan Hovold Cc: Bjorn Andersson , Andy Gross , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Will Deacon , Robin Murphy , Christoph Hellwig , Ard Biesheuvel , Catalin Marinas , linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] arm64: dts: qcom: sc8280xp: fix PCIe DMA coherency Message-ID: <20221125142625.GA9892@thinkpad> References: <20221124142501.29314-1-johan+linaro@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221124142501.29314-1-johan+linaro@kernel.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221125_062636_456588_869739CF X-CRM114-Status: GOOD ( 30.12 ) 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 T24gVGh1LCBOb3YgMjQsIDIwMjIgYXQgMDM6MjU6MDFQTSArMDEwMCwgSm9oYW4gSG92b2xkIHdy b3RlOgo+IFRoZSBkZXZpY2VzIG9uIHRoZSBTQzgyODBYUCBQQ0llIGJ1c2VzIGFyZSBjYWNoZSBj b2hlcmVudCBhbmQgbXVzdCBiZQo+IG1hcmtlZCBhcyBzdWNoIHRvIGF2b2lkIGRhdGEgY29ycnVw dGlvbi4KPiAKPiBBIGNvaGVyZW50IGRldmljZSBjYW4sIGZvciBleGFtcGxlLCBlbmQgdXAgc25v b3Bpbmcgc3RhbGUgZGF0YSBmcm9tIHRoZQo+IGNhY2hlcyBpbnN0ZWFkIG9mIHVzaW5nIGRhdGEg d3JpdHRlbiBieSB0aGUgQ1BVIHRocm91Z2ggdGhlCj4gbm9uLWNhY2hlYWJsZSBtYXBwaW5nIHdo aWNoIGlzIHVzZWQgZm9yIGNvbnNpc3RlbnQgRE1BIGJ1ZmZlcnMgZm9yCj4gbm9uLWNvaGVyZW50 IGRldmljZXMuCj4gCgpBbHNvLCB0aGUgZGV2aWNlIG1heSB3cml0ZSBpbnRvIHRoZSBMMiBjYWNo ZSAob3Igd2hhdGV2ZXIgY2FjaGUgdGhhdCBpcwphY2Nlc3NpYmxlKSBpZiB0aGVyZSBpcyBhbiBl bnRyeSBhbmQgdGhlIENQVSBtYXkgaW52YWxpZGF0ZSBpdCBiZWZvcmUgcmVhZGluZwpmcm9tIHRo ZSBETUEgYnVmZmVyLiBUaGlzIHdpbGwgZW5kIHVwIGluIGEgZGF0YSBsb3NzLgoKPiBOb3RlIHRo YXQgdGhpcyBpcyBtdWNoIG1vcmUgbGlrZWx5IHRvIGhhcHBlbiBzaW5jZSBjb21taXQgYzQ0MDk0 ZWVlMzJmCj4gKCJhcm02NDogZG1hOiBEcm9wIGNhY2hlIGludmFsaWRhdGlvbiBmcm9tIGFyY2hf ZG1hX3ByZXBfY29oZXJlbnQoKSIpCj4gdGhhdCB3YXMgYWRkZWQgaW4gNi4xIGFuZCB3aGljaCBy ZW1vdmVkIHRoZSBjYWNoZSBpbnZhbGlkYXRpb24gd2hlbgo+IHNldHRpbmcgdXAgdGhlIG5vbi1j YWNoZWFibGUgbWFwcGluZy4KPiAKPiBNYXJraW5nIHRoZSBQQ0llIGRldmljZXMgYXMgY29oZXJl bnQgc3BlY2lmaWNhbGx5IGZpeGVzIHRoZSBpbnRlcm1pdHRlbnQKPiBOVk1lIHByb2JlIGZhaWx1 cmVzIG9ic2VydmVkIG9uIHRoZSBUaGlua3BhZCBYMTNzLCB3aGljaCB3YXMgZHVlIHRvCj4gY29y cnVwdGlvbiBvZiB0aGUgc3VibWlzc2lvbiBhbmQgY29tcGxldGlvbiBxdWV1ZXMuIFRoaXMgd2Fz IHR5cGljYWxseQo+IG9ic2VydmVkIGFzIGNvcnJ1cHRpb24gb2YgdGhlIGFkbWluIHN1Ym1pc3Np b24gcXVldWUgKHdpdGggd2VsbC1mb3JtZWQKPiBjb21wbGV0aW9uKToKPiAKPiAJY291bGQgbm90 IGxvY2F0ZSByZXF1ZXN0IGZvciB0YWcgMHgwCj4gCW52bWUgbnZtZTA6IGludmFsaWQgaWQgMCBj b21wbGV0ZWQgb24gcXVldWUgMAo+IAo+IG9yIGNvcnJ1cHRpb24gb2YgdGhlIGFkbWluIG9yIEkv TyBjb21wbGV0aW9uIHF1ZXVlcyAobWFsZm9ybWVkCj4gY29tcGxldGlvbik6Cj4gCj4gCWNvdWxk IG5vdCBsb2NhdGUgcmVxdWVzdCBmb3IgdGFnIDB4NDVmCj4gCW52bWUgbnZtZTA6IGludmFsaWQg aWQgMjU2OTUgY29tcGxldGVkIG9uIHF1ZXVlIDI1OTY1Cj4gCj4gcHJlc3VtYWJseSBhcyB0aGVz ZSBxdWV1ZXMgYXJlIHNtYWxsIGVub3VnaCB0byBub3QgYmUgYWxsb2NhdGVkIHVzaW5nCj4gQ01B IHdoaWNoIGluIHR1cm4gbWFrZSB0aGVtIG1vcmUgbGlrZWx5IHRvIGJlIGNhY2hlZCAoZS5nLiBk dWUgdG8KPiBhY2Nlc3NlcyB0byBuZWFyYnkgcGFnZXMgdGhyb3VnaCB0aGUgY2FjaGVhYmxlIGxp bmVhciBtYXApLiBJbmNyZWFzaW5nCj4gdGhlIGJ1ZmZlciBzaXplcyB0byB0d28gcGFnZXMgdG8g Zm9yY2UgQ01BIGFsbG9jYXRpb24gYWxzbyBhcHBlYXJzIHRvCj4gbWFrZSB0aGUgcHJvYmxlbSBn byBhd2F5Lgo+IAoKSSBkb24ndCB0aGluayB0aGUgcHJvYmxlbSB3aWxsIGdvIGF3YXkgaWYgdGhl IGFsbG9jYXRpb24gaGFwcGVucyBmcm9tIENNQQpyZWdpb24uIEl0IG1heSBqdXN0IGRlY3JlYXNl IHRoZSBjaGFuY2VzIG9mIGNhY2hlIGhpdCBidXQgaXQgY291bGQgYWx3YXlzCmhhcHBlbiBkdWUg dG8gdGhlIGV4aXN0ZW5jZSBvZiBsaW5lYXIgbWFwcGluZyB3aXRoIGNhY2hlYWJsZSBhdHRyaWJ1 dGUuCgo+IEZpeGVzOiA4MTNlODMxNTcwMDEgKCJhcm02NDogZHRzOiBxY29tOiBzYzgyODB4cC9z YTg1NDBwOiBhZGQgUENJZTItNCBub2RlcyIpCj4gU2lnbmVkLW9mZi1ieTogSm9oYW4gSG92b2xk IDxqb2hhbitsaW5hcm9Aa2VybmVsLm9yZz4KCkFueXdheSwgdGhpcyBpcyBhIHJlYWxseSBnb29k IGZpbmQhCgpSZXZpZXdlZC1ieTogTWFuaXZhbm5hbiBTYWRoYXNpdmFtIDxtYW5pdmFubmFuLnNh ZGhhc2l2YW1AbGluYXJvLm9yZz4KClRoYW5rcywKTWFuaQoKPiAtLS0KPiAgYXJjaC9hcm02NC9i b290L2R0cy9xY29tL3NjODI4MHhwLmR0c2kgfCAxMCArKysrKysrKysrCj4gIDEgZmlsZSBjaGFu Z2VkLCAxMCBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9k dHMvcWNvbS9zYzgyODB4cC5kdHNpIGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NjODI4MHhw LmR0c2kKPiBpbmRleCAyN2Y1YzJmODIzMzguLjc3NDhjZDI5Mjc2ZCAxMDA2NDQKPiAtLS0gYS9h cmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc2M4MjgweHAuZHRzaQo+ICsrKyBiL2FyY2gvYXJtNjQv Ym9vdC9kdHMvcWNvbS9zYzgyODB4cC5kdHNpCj4gQEAgLTg1NCw2ICs4NTQsOCBAQCBwY2llNDog cGNpZUAxYzAwMDAwIHsKPiAgCQkJCSA8MHgwMjAwMDAwMCAweDAgMHgzMDMwMDAwMCAweDAgMHgz MDMwMDAwMCAweDAgMHgxZDAwMDAwPjsKPiAgCQkJYnVzLXJhbmdlID0gPDB4MDAgMHhmZj47Cj4g IAo+ICsJCQlkbWEtY29oZXJlbnQ7Cj4gKwo+ICAJCQlsaW51eCxwY2ktZG9tYWluID0gPDY+Owo+ ICAJCQludW0tbGFuZXMgPSA8MT47Cj4gIAo+IEBAIC05NTEsNiArOTUzLDggQEAgcGNpZTNiOiBw Y2llQDFjMDgwMDAgewo+ICAJCQkJIDwweDAyMDAwMDAwIDB4MCAweDMyMzAwMDAwIDB4MCAweDMy MzAwMDAwIDB4MCAweDFkMDAwMDA+Owo+ICAJCQlidXMtcmFuZ2UgPSA8MHgwMCAweGZmPjsKPiAg Cj4gKwkJCWRtYS1jb2hlcmVudDsKPiArCj4gIAkJCWxpbnV4LHBjaS1kb21haW4gPSA8NT47Cj4g IAkJCW51bS1sYW5lcyA9IDwyPjsKPiAgCj4gQEAgLTEwNDYsNiArMTA1MCw4IEBAIHBjaWUzYTog cGNpZUAxYzEwMDAwIHsKPiAgCQkJCSA8MHgwMjAwMDAwMCAweDAgMHgzNDMwMDAwMCAweDAgMHgz NDMwMDAwMCAweDAgMHgxZDAwMDAwPjsKPiAgCQkJYnVzLXJhbmdlID0gPDB4MDAgMHhmZj47Cj4g IAo+ICsJCQlkbWEtY29oZXJlbnQ7Cj4gKwo+ICAJCQlsaW51eCxwY2ktZG9tYWluID0gPDQ+Owo+ ICAJCQludW0tbGFuZXMgPSA8ND47Cj4gIAo+IEBAIC0xMTQ0LDYgKzExNTAsOCBAQCBwY2llMmI6 IHBjaWVAMWMxODAwMCB7Cj4gIAkJCQkgPDB4MDIwMDAwMDAgMHgwIDB4MzgzMDAwMDAgMHgwIDB4 MzgzMDAwMDAgMHgwIDB4MWQwMDAwMD47Cj4gIAkJCWJ1cy1yYW5nZSA9IDwweDAwIDB4ZmY+Owo+ ICAKPiArCQkJZG1hLWNvaGVyZW50Owo+ICsKPiAgCQkJbGludXgscGNpLWRvbWFpbiA9IDwzPjsK PiAgCQkJbnVtLWxhbmVzID0gPDI+Owo+ICAKPiBAQCAtMTIzOSw2ICsxMjQ3LDggQEAgcGNpZTJh OiBwY2llQDFjMjAwMDAgewo+ICAJCQkJIDwweDAyMDAwMDAwIDB4MCAweDNjMzAwMDAwIDB4MCAw eDNjMzAwMDAwIDB4MCAweDFkMDAwMDA+Owo+ICAJCQlidXMtcmFuZ2UgPSA8MHgwMCAweGZmPjsK PiAgCj4gKwkJCWRtYS1jb2hlcmVudDsKPiArCj4gIAkJCWxpbnV4LHBjaS1kb21haW4gPSA8Mj47 Cj4gIAkJCW51bS1sYW5lcyA9IDw0PjsKPiAgCj4gLS0gCj4gMi4zNy40Cj4gCgotLSAK4K6u4K6j 4K6/4K614K6j4K+N4K6j4K6p4K+NIOCumuCupOCuvuCumuCuv+CuteCuruCvjQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=