From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) (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 62CB61864 for ; Sat, 2 Sep 2023 05:12:08 +0000 (UTC) Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-68bed286169so2302274b3a.1 for ; Fri, 01 Sep 2023 22:12:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1693631527; x=1694236327; 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=r8vaSTPW9tq/2PvzUS7UQE38t7wNIDxl1GYzejiN7sk=; b=K6hlywpFHi+vAffh7SRj7rAQxxhUj+R7qqKBIvqSBkESFfXsccxiLk4GN2al3CopF/ qaKIsZBgCWzMGZYha6/Ogk4ntfxWCZeIB4S5oCGwHkwOKI5ME+fsvoshSLS1GkRd0NN9 5PLvWAP+7e58e5QTc21Jr1l1mbqJ9iwoPTeGbGrKn2xDWfe7lh/CzOxkwOgLmbbCdE8H gS6WK1ZOdnk+MadVBARQLf0mHokm0SI6yh/JgcEZNLplfzWTuLswcmb2sAJi9WWqquBo 8K4/bK1ZvqkvW6gK/Cj0pcHP5dDHRLwwllh+YE1RRxCl7sltS8hSQQGspshOwOeUJ6Qx /pCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693631527; x=1694236327; 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=r8vaSTPW9tq/2PvzUS7UQE38t7wNIDxl1GYzejiN7sk=; b=Vdm6x/B1bygy6cRfjM9lFxunlK+7+O6knS01bA5Ve05H5VVDeJz0KPMJwPe6IidwR+ c3BR6HmxEcOBQ/0WeasysldEzemAEPzjsE3cdb56GgV04tTbzq3XzGKH+P7GWXe5EBFB Lo/Hu3iWfWHaRdCS/2MYVlQpODJVf2M4Di9QgDPlVsSi6YidQ2y3Yc/imLxU/NY0FjLJ znkSwsC1/XaiHSd+378MEtmLMxi4qrZFbVQidH2ofmKdzUVCytQjnoi59khOvE+mIKMe pwAyUKgOUGGhdikHV7l/71kBN4by26VWaCcg4ta2k4FYxOHLcUFlgu7YRXghIc4IGsAm +YIQ== X-Gm-Message-State: AOJu0YypoUoe1ynnoVEOnagewNemdfVghGqGLRhslyn2tGFd81mKVAlE l+AaXRCLXkShf9zjfTbrllO8g1Kbc8CsG1HN7A== X-Google-Smtp-Source: AGHT+IHgsXpqTNSkB6YwoRAaMwF4G43/AdpXBzgcVLTWHC96ohQGa3KhTjGgDtkfaxi1IoC3pHwD6A== X-Received: by 2002:a05:6a20:938d:b0:138:64d4:b055 with SMTP id x13-20020a056a20938d00b0013864d4b055mr5948002pzh.55.1693631527333; Fri, 01 Sep 2023 22:12:07 -0700 (PDT) Received: from thinkpad ([117.217.187.8]) by smtp.gmail.com with ESMTPSA id k188-20020a636fc5000000b0055bf13811f5sm3658873pgc.15.2023.09.01.22.12.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Sep 2023 22:12:06 -0700 (PDT) Date: Sat, 2 Sep 2023 10:41:55 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: tglx@linutronix.de, aisheng.dong@nxp.com, bhelgaas@google.com, devicetree@vger.kernel.org, festevam@gmail.com, imx@lists.linux.dev, jdmason@kudzu.us, kernel@pengutronix.de, kishon@ti.com, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lorenzo.pieralisi@arm.com, lpieralisi@kernel.org, maz@kernel.org, ntb@lists.linux.dev, peng.fan@nxp.com, robh+dt@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: Re: [PATCH 2/3] misc: pci_endpoint_test: Add doorbell test case Message-ID: <20230902051155.GC2913@thinkpad> References: <20230426203436.1277307-1-Frank.Li@nxp.com> <20230426203436.1277307-3-Frank.Li@nxp.com> Precedence: bulk X-Mailing-List: imx@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: <20230426203436.1277307-3-Frank.Li@nxp.com> On Wed, Apr 26, 2023 at 04:34:35PM -0400, Frank Li wrote: > Reused flags as capability register in pci_endpoint_test struct to > support older driver versions. Save capability flags to 'cap' field > of struct pci_endpoint_test to prevent reading non-existent address. > This won't work, please see below. > Add three registers: PCIE_ENDPOINT_TEST_DB_BAR, PCIE_ENDPOINT_TEST_DB_ADDR, > PCIE_ENDPOINT_TEST_DB_DATA. > > Write data from PCI_ENDPOINT_TEST_DB_DATA to address from > PCI_ENDPOINT_TEST_DB_ADDR to trigger doorbell and wait for remote > endpoint feedback. "wait for endpoint response" > > Signed-off-by: Frank Li > --- > drivers/misc/pci_endpoint_test.c | 41 ++++++++++++++++++++++++++++++++ > include/uapi/linux/pcitest.h | 1 + > 2 files changed, 42 insertions(+) > > diff --git a/drivers/misc/pci_endpoint_test.c b/drivers/misc/pci_endpoint_test.c > index ed4d0ef5e5c3..3320a3334594 100644 > --- a/drivers/misc/pci_endpoint_test.c > +++ b/drivers/misc/pci_endpoint_test.c > @@ -52,6 +52,7 @@ > #define STATUS_IRQ_RAISED BIT(6) > #define STATUS_SRC_ADDR_INVALID BIT(7) > #define STATUS_DST_ADDR_INVALID BIT(8) > +#define STATUS_DOORBELL_SUCCESS BIT(9) > > #define PCI_ENDPOINT_TEST_LOWER_SRC_ADDR 0x0c > #define PCI_ENDPOINT_TEST_UPPER_SRC_ADDR 0x10 > @@ -66,7 +67,12 @@ > #define PCI_ENDPOINT_TEST_IRQ_NUMBER 0x28 > > #define PCI_ENDPOINT_TEST_FLAGS 0x2c > +#define PCI_ENDPOINT_TEST_DB_BAR 0x30 > +#define PCI_ENDPOINT_TEST_DB_ADDR 0x34 > +#define PCI_ENDPOINT_TEST_DB_DATA 0x38 > + > #define FLAG_USE_DMA BIT(0) > +#define FLAG_SUPPORT_DOORBELL BIT(1) > > #define PCI_DEVICE_ID_TI_AM654 0xb00c > #define PCI_DEVICE_ID_TI_J7200 0xb00f > @@ -102,6 +108,7 @@ enum pci_barno { > BAR_3, > BAR_4, > BAR_5, > + NO_BAR = -1, > }; > > struct pci_endpoint_test { > @@ -118,6 +125,7 @@ struct pci_endpoint_test { > enum pci_barno test_reg_bar; > size_t alignment; > const char *name; > + u32 cap; > }; > > struct pci_endpoint_test_data { > @@ -713,6 +721,35 @@ static bool pci_endpoint_test_set_irq(struct pci_endpoint_test *test, > return false; > } > > +static bool pci_endpoint_test_doorbell(struct pci_endpoint_test *test) > +{ > + enum pci_barno bar; > + u32 data; > + u32 addr; > + > + if (!(test->cap & FLAG_SUPPORT_DOORBELL)) > + return false; > + > + bar = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_DB_BAR); > + if (bar == NO_BAR) > + return false; Is this possible? > + > + data = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_DB_DATA); > + addr = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_DB_ADDR); > + bar = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_DB_BAR); > + > + pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_STATUS, 0); > + pci_endpoint_test_bar_writel(test, bar, addr, data); >From patch 1, I understood that EP supports multiple doorbell. But you are not making use of it here? > + > + wait_for_completion(&test->irq_raised); > + No timeout? > + data = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_STATUS); > + if (data & STATUS_DOORBELL_SUCCESS) Please use a separate variable. > + return true; > + > + return false; > +} > + > static long pci_endpoint_test_ioctl(struct file *file, unsigned int cmd, > unsigned long arg) > { > @@ -760,6 +797,9 @@ static long pci_endpoint_test_ioctl(struct file *file, unsigned int cmd, > case PCITEST_CLEAR_IRQ: > ret = pci_endpoint_test_clear_irq(test); > break; > + case PCITEST_DOORBELL: > + ret = pci_endpoint_test_doorbell(test); > + break; > } > > ret: > @@ -887,6 +927,7 @@ static int pci_endpoint_test_probe(struct pci_dev *pdev, > misc_device->parent = &pdev->dev; > misc_device->fops = &pci_endpoint_test_fops; > > + test->cap = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_FLAGS); This register will be overwritten by this driver during (copy,read,write) tests. So this logic will not work. - Mani > err = misc_register(misc_device); > if (err) { > dev_err(dev, "Failed to register device\n"); > diff --git a/include/uapi/linux/pcitest.h b/include/uapi/linux/pcitest.h > index f9c1af8d141b..479ca1aa3ae0 100644 > --- a/include/uapi/linux/pcitest.h > +++ b/include/uapi/linux/pcitest.h > @@ -20,6 +20,7 @@ > #define PCITEST_SET_IRQTYPE _IOW('P', 0x8, int) > #define PCITEST_GET_IRQTYPE _IO('P', 0x9) > #define PCITEST_CLEAR_IRQ _IO('P', 0x10) > +#define PCITEST_DOORBELL _IO('P', 0x11) > > #define PCITEST_FLAGS_USE_DMA 0x00000001 > > -- > 2.34.1 > -- மணிவண்ணன் சதாசிவம் 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 DF020CA0FFC for ; Sat, 2 Sep 2023 05:12:51 +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=V/N+5Y8vma98ZJK8LDr7XtjiWGEpfBMbf7371GkalLU=; b=FePKPenvDav7TQ jY7nI/+LGtyGPdNoIW6YCIwm/97orwRwPAo5q6nemcKFIer7tmFCO4Zmzu2aOPKwuY7dF3cLiP1fF iPC28WcgqFOJcd2LEizd1k2Sm0UfVDKUeNCZAiBh1VXhasw57fi/zRkB04GkiYEySXWY+PaGiD/LR EdZLUP2k97PUJvplRqmCXUEMIVEdq20arpVnpLk9AiR0xXH8bwPivOCqXGy8CC4SKSMTCegyn08cF +St2V9764GZmfsL2Xh+m0pAG1yiTktMgmDxmrqy633Lst+sX/uOZFN2obc5340xC55MUy8b4/x25i 0LAC3FF4MtDWZfBd3yvw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qcIvh-0014eY-37; Sat, 02 Sep 2023 05:12:17 +0000 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qcIvd-0014dv-2t for linux-arm-kernel@lists.infradead.org; Sat, 02 Sep 2023 05:12:16 +0000 Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-68bedc0c268so2323687b3a.0 for ; Fri, 01 Sep 2023 22:12:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1693631527; x=1694236327; 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=r8vaSTPW9tq/2PvzUS7UQE38t7wNIDxl1GYzejiN7sk=; b=hQ95lMtuX8lOWqSh3brPsrZRb4ASEC07ztg2wpKNYhKidJfV3BERDzlYTD5DuIC0U6 pyrw47J5N/aVpgwUeKKDwblhJOmGdAsFsKEp6qKqJDES+lZjJbcipDi5AFBWZyiVbuik THidGXlDCcnIH4j5YKTx+7KnNmPCX97YtifbowBifs91qge6bQN72X0PaCAzlsgdzXm9 QQojhxbzvnngQojOOCJZG61iJAF5wmol8JLm9QIE4Ht95kAtQbC1gfBQg+3xnXRr0TBW DKKbf2yPcCQkPf4rx81DveFoh2bQIqeaEjMCBKNTCvFeNOl+K2uyi73HXMR5j3wL0OgN 0HvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693631527; x=1694236327; 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=r8vaSTPW9tq/2PvzUS7UQE38t7wNIDxl1GYzejiN7sk=; b=Sd9bdF19NL0BF5DptKEa3r3KnGxGg8YpoqVpg77pVfgPoEd97vGUKgJpdpTofgLfaE vBMs9JNy2VQPzWE4Hmd50N1quISxUO2gkdq/Ld8GMY59exbOJmsvG4If9iFZstnUT+Q3 MPaDLFXe8OQUV7npdEstiJq8UEZvIQMKedbR8gIQX1qyTsU3FGXdUgRuenvRDAW3/tb+ /0+37o0++tUp4NB6ft6zeiaJWCj96ucA24POrLApIH/UThNToKjhaP90jMYWkrbV+RA8 FuaqgqSOWIBLDilWqr65HWCKDUkUFFTkcXE/1f6vmFgSr38oFyHEoul84p6CxDZMSZLw 0J7w== X-Gm-Message-State: AOJu0YxtX0LRtp1fEFZ8jRSYrZAbw+T/7oEHADYszwzonqgN6HhkdLQk oY4udxFYC6vwBm8xCsB6RQ2v X-Google-Smtp-Source: AGHT+IHgsXpqTNSkB6YwoRAaMwF4G43/AdpXBzgcVLTWHC96ohQGa3KhTjGgDtkfaxi1IoC3pHwD6A== X-Received: by 2002:a05:6a20:938d:b0:138:64d4:b055 with SMTP id x13-20020a056a20938d00b0013864d4b055mr5948002pzh.55.1693631527333; Fri, 01 Sep 2023 22:12:07 -0700 (PDT) Received: from thinkpad ([117.217.187.8]) by smtp.gmail.com with ESMTPSA id k188-20020a636fc5000000b0055bf13811f5sm3658873pgc.15.2023.09.01.22.12.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Sep 2023 22:12:06 -0700 (PDT) Date: Sat, 2 Sep 2023 10:41:55 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: tglx@linutronix.de, aisheng.dong@nxp.com, bhelgaas@google.com, devicetree@vger.kernel.org, festevam@gmail.com, imx@lists.linux.dev, jdmason@kudzu.us, kernel@pengutronix.de, kishon@ti.com, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lorenzo.pieralisi@arm.com, lpieralisi@kernel.org, maz@kernel.org, ntb@lists.linux.dev, peng.fan@nxp.com, robh+dt@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: Re: [PATCH 2/3] misc: pci_endpoint_test: Add doorbell test case Message-ID: <20230902051155.GC2913@thinkpad> References: <20230426203436.1277307-1-Frank.Li@nxp.com> <20230426203436.1277307-3-Frank.Li@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230426203436.1277307-3-Frank.Li@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230901_221213_961859_51B0EE30 X-CRM114-Status: GOOD ( 24.73 ) 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 T24gV2VkLCBBcHIgMjYsIDIwMjMgYXQgMDQ6MzQ6MzVQTSAtMDQwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gUmV1c2VkIGZsYWdzIGFzIGNhcGFiaWxpdHkgcmVnaXN0ZXIgaW4gcGNpX2VuZHBvaW50X3Rl c3Qgc3RydWN0IHRvCj4gc3VwcG9ydCBvbGRlciBkcml2ZXIgdmVyc2lvbnMuIFNhdmUgY2FwYWJp bGl0eSBmbGFncyB0byAnY2FwJyBmaWVsZAo+IG9mIHN0cnVjdCBwY2lfZW5kcG9pbnRfdGVzdCB0 byBwcmV2ZW50IHJlYWRpbmcgbm9uLWV4aXN0ZW50IGFkZHJlc3MuCj4gCgpUaGlzIHdvbid0IHdv cmssIHBsZWFzZSBzZWUgYmVsb3cuCgo+IEFkZCB0aHJlZSByZWdpc3RlcnM6IFBDSUVfRU5EUE9J TlRfVEVTVF9EQl9CQVIsIFBDSUVfRU5EUE9JTlRfVEVTVF9EQl9BRERSLAo+IFBDSUVfRU5EUE9J TlRfVEVTVF9EQl9EQVRBLgo+IAo+IFdyaXRlIGRhdGEgZnJvbSBQQ0lfRU5EUE9JTlRfVEVTVF9E Ql9EQVRBIHRvIGFkZHJlc3MgZnJvbQo+IFBDSV9FTkRQT0lOVF9URVNUX0RCX0FERFIgdG8gdHJp Z2dlciBkb29yYmVsbCBhbmQgd2FpdCBmb3IgcmVtb3RlCj4gZW5kcG9pbnQgZmVlZGJhY2suCgoi d2FpdCBmb3IgZW5kcG9pbnQgcmVzcG9uc2UiCgo+IAo+IFNpZ25lZC1vZmYtYnk6IEZyYW5rIExp IDxGcmFuay5MaUBueHAuY29tPgo+IC0tLQo+ICBkcml2ZXJzL21pc2MvcGNpX2VuZHBvaW50X3Rl c3QuYyB8IDQxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvdWFw aS9saW51eC9wY2l0ZXN0LmggICAgIHwgIDEgKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDQyIGluc2Vy dGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL3BjaV9lbmRwb2ludF90ZXN0 LmMgYi9kcml2ZXJzL21pc2MvcGNpX2VuZHBvaW50X3Rlc3QuYwo+IGluZGV4IGVkNGQwZWY1ZTVj My4uMzMyMGEzMzM0NTk0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWlzYy9wY2lfZW5kcG9pbnRf dGVzdC5jCj4gKysrIGIvZHJpdmVycy9taXNjL3BjaV9lbmRwb2ludF90ZXN0LmMKPiBAQCAtNTIs NiArNTIsNyBAQAo+ICAjZGVmaW5lIFNUQVRVU19JUlFfUkFJU0VECQkJQklUKDYpCj4gICNkZWZp bmUgU1RBVFVTX1NSQ19BRERSX0lOVkFMSUQJCQlCSVQoNykKPiAgI2RlZmluZSBTVEFUVVNfRFNU X0FERFJfSU5WQUxJRAkJCUJJVCg4KQo+ICsjZGVmaW5lIFNUQVRVU19ET09SQkVMTF9TVUNDRVNT CQkJQklUKDkpCj4gIAo+ICAjZGVmaW5lIFBDSV9FTkRQT0lOVF9URVNUX0xPV0VSX1NSQ19BRERS CTB4MGMKPiAgI2RlZmluZSBQQ0lfRU5EUE9JTlRfVEVTVF9VUFBFUl9TUkNfQUREUgkweDEwCj4g QEAgLTY2LDcgKzY3LDEyIEBACj4gICNkZWZpbmUgUENJX0VORFBPSU5UX1RFU1RfSVJRX05VTUJF UgkJMHgyOAo+ICAKPiAgI2RlZmluZSBQQ0lfRU5EUE9JTlRfVEVTVF9GTEFHUwkJCTB4MmMKPiAr I2RlZmluZSBQQ0lfRU5EUE9JTlRfVEVTVF9EQl9CQVIJCTB4MzAKPiArI2RlZmluZSBQQ0lfRU5E UE9JTlRfVEVTVF9EQl9BRERSCQkweDM0Cj4gKyNkZWZpbmUgUENJX0VORFBPSU5UX1RFU1RfREJf REFUQQkJMHgzOAo+ICsKPiAgI2RlZmluZSBGTEFHX1VTRV9ETUEJCQkJQklUKDApCj4gKyNkZWZp bmUgRkxBR19TVVBQT1JUX0RPT1JCRUxMCQkJQklUKDEpCj4gIAo+ICAjZGVmaW5lIFBDSV9ERVZJ Q0VfSURfVElfQU02NTQJCQkweGIwMGMKPiAgI2RlZmluZSBQQ0lfREVWSUNFX0lEX1RJX0o3MjAw CQkJMHhiMDBmCj4gQEAgLTEwMiw2ICsxMDgsNyBAQCBlbnVtIHBjaV9iYXJubyB7Cj4gIAlCQVJf MywKPiAgCUJBUl80LAo+ICAJQkFSXzUsCj4gKwlOT19CQVIgPSAtMSwKPiAgfTsKPiAgCj4gIHN0 cnVjdCBwY2lfZW5kcG9pbnRfdGVzdCB7Cj4gQEAgLTExOCw2ICsxMjUsNyBAQCBzdHJ1Y3QgcGNp X2VuZHBvaW50X3Rlc3Qgewo+ICAJZW51bSBwY2lfYmFybm8gdGVzdF9yZWdfYmFyOwo+ICAJc2l6 ZV90IGFsaWdubWVudDsKPiAgCWNvbnN0IGNoYXIgKm5hbWU7Cj4gKwl1MzIgY2FwOwo+ICB9Owo+ ICAKPiAgc3RydWN0IHBjaV9lbmRwb2ludF90ZXN0X2RhdGEgewo+IEBAIC03MTMsNiArNzIxLDM1 IEBAIHN0YXRpYyBib29sIHBjaV9lbmRwb2ludF90ZXN0X3NldF9pcnEoc3RydWN0IHBjaV9lbmRw b2ludF90ZXN0ICp0ZXN0LAo+ICAJcmV0dXJuIGZhbHNlOwo+ICB9Cj4gIAo+ICtzdGF0aWMgYm9v bCBwY2lfZW5kcG9pbnRfdGVzdF9kb29yYmVsbChzdHJ1Y3QgcGNpX2VuZHBvaW50X3Rlc3QgKnRl c3QpCj4gK3sKPiArCWVudW0gcGNpX2Jhcm5vIGJhcjsKPiArCXUzMiBkYXRhOwo+ICsJdTMyIGFk ZHI7Cj4gKwo+ICsJaWYgKCEodGVzdC0+Y2FwICYgRkxBR19TVVBQT1JUX0RPT1JCRUxMKSkKPiAr CQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICsJYmFyID0gcGNpX2VuZHBvaW50X3Rlc3RfcmVhZGwodGVz dCwgUENJX0VORFBPSU5UX1RFU1RfREJfQkFSKTsKPiArCWlmIChiYXIgPT0gTk9fQkFSKQo+ICsJ CXJldHVybiBmYWxzZTsKCklzIHRoaXMgcG9zc2libGU/Cgo+ICsKPiArCWRhdGEgPSBwY2lfZW5k cG9pbnRfdGVzdF9yZWFkbCh0ZXN0LCBQQ0lfRU5EUE9JTlRfVEVTVF9EQl9EQVRBKTsKPiArCWFk ZHIgPSBwY2lfZW5kcG9pbnRfdGVzdF9yZWFkbCh0ZXN0LCBQQ0lfRU5EUE9JTlRfVEVTVF9EQl9B RERSKTsKPiArCWJhciA9IHBjaV9lbmRwb2ludF90ZXN0X3JlYWRsKHRlc3QsIFBDSV9FTkRQT0lO VF9URVNUX0RCX0JBUik7Cj4gKwo+ICsJcGNpX2VuZHBvaW50X3Rlc3Rfd3JpdGVsKHRlc3QsIFBD SV9FTkRQT0lOVF9URVNUX1NUQVRVUywgMCk7Cj4gKwlwY2lfZW5kcG9pbnRfdGVzdF9iYXJfd3Jp dGVsKHRlc3QsIGJhciwgYWRkciwgZGF0YSk7CgpGcm9tIHBhdGNoIDEsIEkgdW5kZXJzdG9vZCB0 aGF0IEVQIHN1cHBvcnRzIG11bHRpcGxlIGRvb3JiZWxsLiBCdXQgeW91IGFyZSBub3QKbWFraW5n IHVzZSBvZiBpdCBoZXJlPwoKPiArCj4gKwl3YWl0X2Zvcl9jb21wbGV0aW9uKCZ0ZXN0LT5pcnFf cmFpc2VkKTsKPiArCgpObyB0aW1lb3V0PwoKPiArCWRhdGEgPSBwY2lfZW5kcG9pbnRfdGVzdF9y ZWFkbCh0ZXN0LCBQQ0lfRU5EUE9JTlRfVEVTVF9TVEFUVVMpOwo+ICsJaWYgKGRhdGEgJiBTVEFU VVNfRE9PUkJFTExfU1VDQ0VTUykKClBsZWFzZSB1c2UgYSBzZXBhcmF0ZSB2YXJpYWJsZS4KCj4g KwkJcmV0dXJuIHRydWU7Cj4gKwo+ICsJcmV0dXJuIGZhbHNlOwo+ICt9Cj4gKwo+ICBzdGF0aWMg bG9uZyBwY2lfZW5kcG9pbnRfdGVzdF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQg aW50IGNtZCwKPiAgCQkJCSAgICB1bnNpZ25lZCBsb25nIGFyZykKPiAgewo+IEBAIC03NjAsNiAr Nzk3LDkgQEAgc3RhdGljIGxvbmcgcGNpX2VuZHBvaW50X3Rlc3RfaW9jdGwoc3RydWN0IGZpbGUg KmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCj4gIAljYXNlIFBDSVRFU1RfQ0xFQVJfSVJROgo+ICAJ CXJldCA9IHBjaV9lbmRwb2ludF90ZXN0X2NsZWFyX2lycSh0ZXN0KTsKPiAgCQlicmVhazsKPiAr CWNhc2UgUENJVEVTVF9ET09SQkVMTDoKPiArCQlyZXQgPSBwY2lfZW5kcG9pbnRfdGVzdF9kb29y YmVsbCh0ZXN0KTsKPiArCQlicmVhazsKPiAgCX0KPiAgCj4gIHJldDoKPiBAQCAtODg3LDYgKzky Nyw3IEBAIHN0YXRpYyBpbnQgcGNpX2VuZHBvaW50X3Rlc3RfcHJvYmUoc3RydWN0IHBjaV9kZXYg KnBkZXYsCj4gIAltaXNjX2RldmljZS0+cGFyZW50ID0gJnBkZXYtPmRldjsKPiAgCW1pc2NfZGV2 aWNlLT5mb3BzID0gJnBjaV9lbmRwb2ludF90ZXN0X2ZvcHM7Cj4gIAo+ICsJdGVzdC0+Y2FwID0g cGNpX2VuZHBvaW50X3Rlc3RfcmVhZGwodGVzdCwgUENJX0VORFBPSU5UX1RFU1RfRkxBR1MpOwoK VGhpcyByZWdpc3RlciB3aWxsIGJlIG92ZXJ3cml0dGVuIGJ5IHRoaXMgZHJpdmVyIGR1cmluZyAo Y29weSxyZWFkLHdyaXRlKSB0ZXN0cy4KU28gdGhpcyBsb2dpYyB3aWxsIG5vdCB3b3JrLgoKLSBN YW5pCgo+ICAJZXJyID0gbWlzY19yZWdpc3RlcihtaXNjX2RldmljZSk7Cj4gIAlpZiAoZXJyKSB7 Cj4gIAkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgZGV2aWNlXG4iKTsKPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3BjaXRlc3QuaCBiL2luY2x1ZGUvdWFwaS9saW51 eC9wY2l0ZXN0LmgKPiBpbmRleCBmOWMxYWY4ZDE0MWIuLjQ3OWNhMWFhM2FlMCAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL3VhcGkvbGludXgvcGNpdGVzdC5oCj4gKysrIGIvaW5jbHVkZS91YXBpL2xp bnV4L3BjaXRlc3QuaAo+IEBAIC0yMCw2ICsyMCw3IEBACj4gICNkZWZpbmUgUENJVEVTVF9TRVRf SVJRVFlQRQlfSU9XKCdQJywgMHg4LCBpbnQpCj4gICNkZWZpbmUgUENJVEVTVF9HRVRfSVJRVFlQ RQlfSU8oJ1AnLCAweDkpCj4gICNkZWZpbmUgUENJVEVTVF9DTEVBUl9JUlEJX0lPKCdQJywgMHgx MCkKPiArI2RlZmluZSBQQ0lURVNUX0RPT1JCRUxMCV9JTygnUCcsIDB4MTEpCj4gIAo+ICAjZGVm aW5lIFBDSVRFU1RfRkxBR1NfVVNFX0RNQQkweDAwMDAwMDAxCj4gIAo+IC0tIAo+IDIuMzQuMQo+ IAoKLS0gCuCuruCuo+Cuv+CuteCuo+CvjeCuo+CuqeCvjSDgrprgrqTgrr7grprgrr/grrXgrq7g r40KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFy bS1rZXJuZWwK