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 0BD8DC433EF for ; Wed, 12 Jan 2022 09:09:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351945AbiALJJx (ORCPT ); Wed, 12 Jan 2022 04:09:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59110 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351954AbiALJJw (ORCPT ); Wed, 12 Jan 2022 04:09:52 -0500 Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1BE7CC06173F for ; Wed, 12 Jan 2022 01:09:52 -0800 (PST) Received: by mail-wr1-x430.google.com with SMTP id x4so2912736wru.7 for ; Wed, 12 Jan 2022 01:09:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=Hz+j8ufPbok0iRrrkaN+uDUYGeC9uRz0/d/11cfTErs=; b=Ef5XwOGqtkdIM0uR+OCmFb1KAeYJhDoXbdwiy3IhI5Vcq19da1UMWK+CnF8ig6Z1m2 LduQwt03vNtUN2C56jFkZf7a1ELxpaWKUVtUYoCF4H5XFFUUjkidNYyZp0/dJ1aF3zoI /KB+8E1NxyCQswhWuOVMfEvmi9AP9WTMbzGnQBmH5kp1byNYLdjObO8UjCTuIZAb5FUr d1TGTedCeQC1g2x7688gJu7DCMif8+J5Xs4BikstNKf3eG244FkmIhXnxLPxCrEQvabj QY139VxaGEgFus3jbI+T2qJykj+c6c7TuHOMeP0F/w1f+9ld0KNbQRki4naGamtIFlHo IT5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=Hz+j8ufPbok0iRrrkaN+uDUYGeC9uRz0/d/11cfTErs=; b=64G35qqpZh9udywHIA3sZhpRqEmXjqqYsX9NOzwEqpsyfEul6IjavHyRI4TCJPsTg9 y8VK8JPvqyWyoQDa9/08qd6z1180M4Q1Go/zBJII2if+DaU3R7awA3r6TENjnglYScUm pjYwFZtFv7C420ONUnOm6XSu0T71dMfvfsWD0p7IAqS26O0ckcZqiazqDVdtvNTdE/hb xnh+wFQicy5U14AsrXiOclfbFQxfcX2XTvEs0N+NFNiwHY0mgTezLbY5YciMeasGDWGS 5khMf7BbIG1OUnyb40C3omOTGSVdyh4TXUMghRRJYvQ1G6wN0V7ujcz8jjjCLSAwH52Y nmng== X-Gm-Message-State: AOAM531c0EOV05F9VX7LAJ3K7RPN3eS9DCoDvoWArVZL19JnslGQLTl/ X/Zf2qMAHRnoTHIfDmakDDi726Nsf9KZlg== X-Google-Smtp-Source: ABdhPJw9ZZo2Y5sCoMtyCdm0XkHwn/eKx0AhoAo3H0tsoiZTNrgw6YTqfiEt4W6CpLTRuPY1MrNMPw== X-Received: by 2002:adf:eb41:: with SMTP id u1mr7281340wrn.201.1641978590570; Wed, 12 Jan 2022 01:09:50 -0800 (PST) Received: from google.com ([31.124.24.179]) by smtp.gmail.com with ESMTPSA id bk2sm11031195wrb.65.2022.01.12.01.09.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 01:09:50 -0800 (PST) Date: Wed, 12 Jan 2022 09:09:48 +0000 From: Lee Jones To: Zong Li Cc: Michael Turquette , Stephen Boyd , Palmer Dabbelt , Paul Walmsley , linux-clk , linux-riscv Subject: Re: [PATCH v3 RESEND] clk: sifive: Fix W=1 kernel build warning Message-ID: References: <20220107090715.2601-1-zong.li@sifive.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org On Wed, 12 Jan 2022, Zong Li wrote: > On Tue, Jan 11, 2022 at 5:32 PM Lee Jones wrote: > > > > On Tue, 11 Jan 2022, Zong Li wrote: > > > > > On Mon, Jan 10, 2022 at 5:50 PM Lee Jones wrote: > > > > > > > > Please improve the subject line. > > > > > > > > If this is a straight revert, the subject line should reflect that. > > > > > > > > If not, you need to give us specific information regarding the purpose > > > > of this patch. Please read the Git log for better, more forthcoming > > > > examples. > > > > > > > > > > It seems to me that this patch is not a straight revert, it provides > > > another way to fix the original build warnings, just like > > > '487dc7bb6a0c' tried to do. I guess the commit message has described > > > what the original warnings is and what the root cause is, it also > > > mentioned what is changed in this patch. I'm a bit confused whether we > > > need to add fixes tag, it looks like that it might cause some > > > misunderstanding? > > > > I think it's the patch description and subject that is causing the > > misunderstanding. > > > > Yes, the subject should be made better. > > > Please help me with a couple of points and I'll help you draft > > something up. > > > > Firstly, what alerted you to the problem you're attempting to solve? > > > > I recently noticed the code was changed, I guess that I was missing > something there. After tracking the log, I found that there is a build > warning in the original implementation, and it was already fixed, but > it seems to me that there are still some situations there, please help > me to see the following illustration. > > > > > > --- a/drivers/clk/sifive/fu540-prci.c > > > > > +++ b/drivers/clk/sifive/fu540-prci.c > > > > > @@ -20,7 +20,6 @@ > > > > > > > > > > #include > > > > > > > > > > -#include "fu540-prci.h" > > > > How is this related to the issue/patch? > > > > Let's go back to the version without '487dc7bb6a0c' fix. The > prci_clk_fu540 variable is defined in sifive-fu540-prci.h header, > however, fu540-prci.c includes this header but doesn't use this > variable, so the warnings happen. > > The easiest way to do it is just removing this line, then the warning > could be fixed. But as the '487dc7bb6a0c' or this patch does, the code > should be improved, the prci_clk_fu540 variable shouldn't be defined > in the header, it should be moved somewhere. > > > > > > +struct prci_clk_desc prci_clk_fu540 = { > > > > > + .clks = __prci_init_clocks_fu540, > > > > > + .num_clks = ARRAY_SIZE(__prci_init_clocks_fu540), > > > > > +}; > > > > > > > diff --git a/drivers/clk/sifive/fu540-prci.h b/drivers/clk/sifive/fu540-prci.h > > > > > index c220677dc010..931d6cad8c1c 100644 > > > > > --- a/drivers/clk/sifive/fu540-prci.h > > > > > +++ b/drivers/clk/sifive/fu540-prci.h > > > > > @@ -7,10 +7,6 @@ > > > > > +extern struct prci_clk_desc prci_clk_fu540; > > > > > > > diff --git a/drivers/clk/sifive/sifive-prci.c b/drivers/clk/sifive/sifive-prci.c > > > > > index 80a288c59e56..916d2fc28b9c 100644 > > > > > --- a/drivers/clk/sifive/sifive-prci.c > > > > > +++ b/drivers/clk/sifive/sifive-prci.c > > > > > @@ -12,11 +12,6 @@ > > > > > #include "fu540-prci.h" > > > > > #include "fu740-prci.h" > > > > > > > > > > -static const struct prci_clk_desc prci_clk_fu540 = { > > > > > - .clks = __prci_init_clocks_fu540, > > > > > - .num_clks = ARRAY_SIZE(__prci_init_clocks_fu540), > > > > > -}; > > > > > - > > > > I'm not sure if it's you or I that is missing the point here, but > > prci_clk_fu540 is used within *this* file itself: > > > > Here is another situation I mentioned at the beginning, if we'd like > to put prci_clk_fu540 here, prci_clk_fu740 should be put here as well. > I guess you didn't do that because there is a bug in the original > code, fu740-prci.c misused the fu540-prci.h, so there is no build > warning on fu740. FU740 still works correctly by misusing the > fu540-prci.h header because fu740-prci.c doesn't actually use the > prci_clk_fu740 variable, like fu540 we talked about earlier. > > > static const struct of_device_id sifive_prci_of_match[] = { > > {.compatible = "sifive,fu540-c000-prci", .data = &prci_clk_fu540}, > > {.compatible = "sifive,fu740-c000-prci", .data = &prci_clk_fu740}, > > {} > > }; > > > > So why are you moving it out to somewhere it is *not* used and making > > it an extern? This sounds like the opposite to what you'd want? > > The idea is that sifive-prci.c is the core and common part of PRCI, > and I'd like to separate the SoCs-dependent part into SoCs-dependent > files, such as fu540-prci.c and fu740-prci.c. The goal is if we add > new SoCs in the future, we can just put the SoCs-dependent data > structure in the new C file, and do as minimum modification as > possible in the core file (i.e. sifive-prci.c). It might also help us > to see all SoCs-dependent data in one file, then we don't need to > cross many files. Putting these two variables in sifive-pric.c is the > right thing to do, but that is why I separate them and make them > extern in this patch. I can see what you are doing, but I don't think this is the right thing to do. Please put the struct in the same location as it's referenced. And yes that should also be the case for prci_clk_fu740 and yes, it was over-looked because it wasn't causing warnings at build time for whatever reason. IMHO, placing 'struct of_device_id' match tables in headers is also odd and is likely the real cause of this strange situation. -- Lee Jones [李琼斯] Principal Technical Lead - Developer Services Linaro.org │ Open source software for Arm SoCs Follow Linaro: Facebook | Twitter | Blog 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 7544CC433EF for ; Wed, 12 Jan 2022 09:10:03 +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=WnxlXaGZqWEF5Ht+nbBZjPUs9okNFRALWiboEvVvkOE=; b=kEdJIdxUc1ABZa CRJsHe+5/LQ0irxjxrTQOdgah7qPaOq+Xm5jGP2PALOzy0cYus6tZwB8e5/s+4QiX0maF2hsEoOqr 0qAZcdCdryrjui4qJvpAu2s/xsa8eySWP7BRSfh4fPt3B/HGuo77UpmY1H5Vf2NItKc3H4er5uDKN 5pfZoUXk6HIpqhaA51u6dHzKpWiYXscmKu8gDFYLF5ZLfQyiG+pBH11GxD7Bu9cnbTws2y1iF4h/y Xe3DkcEVYYknNtEqF5c6bPWaMp9E4Ymlf2PccTD19BjftcS9WN/kUNpSwK1Oj//xA6oUyWU8ur615 VXQg7OglDtb0leuQJKZw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n7Zdk-001itp-8e; Wed, 12 Jan 2022 09:09:56 +0000 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n7Zdh-001isG-0J for linux-riscv@lists.infradead.org; Wed, 12 Jan 2022 09:09:54 +0000 Received: by mail-wr1-x42e.google.com with SMTP id l25so2869358wrb.13 for ; Wed, 12 Jan 2022 01:09:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=Hz+j8ufPbok0iRrrkaN+uDUYGeC9uRz0/d/11cfTErs=; b=Ef5XwOGqtkdIM0uR+OCmFb1KAeYJhDoXbdwiy3IhI5Vcq19da1UMWK+CnF8ig6Z1m2 LduQwt03vNtUN2C56jFkZf7a1ELxpaWKUVtUYoCF4H5XFFUUjkidNYyZp0/dJ1aF3zoI /KB+8E1NxyCQswhWuOVMfEvmi9AP9WTMbzGnQBmH5kp1byNYLdjObO8UjCTuIZAb5FUr d1TGTedCeQC1g2x7688gJu7DCMif8+J5Xs4BikstNKf3eG244FkmIhXnxLPxCrEQvabj QY139VxaGEgFus3jbI+T2qJykj+c6c7TuHOMeP0F/w1f+9ld0KNbQRki4naGamtIFlHo IT5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=Hz+j8ufPbok0iRrrkaN+uDUYGeC9uRz0/d/11cfTErs=; b=wCpQRM+qP4mxXC/Zirq+5dB2sgBANqsfcBmxlHKbUo87fSUBMSKIVwpRdOBSRdErmF 57qtQRcPuUHvwBFhXjwiGlmVOE8KX+7X8QZ655MmI8Z7pTALzEburuj21AWE1LaE+juF VlMrDBHri62fsJ0XUQjHkdlc7p+8T5Pa/IWP8O4xjy+wwAkSmpEsaQYOZlHf851HMy5W cX5lCK+/ZknVqt5lM74NFFyBSMVjKAdnoiy1tHXgExmLxuovSxNS3pHJtTaoSSuJbWgd ZpCDxvap3vguBEjMG1q+4uMdgiH10GUU22cFgbikRe6h0I2kyuDd817eigH2XzwckiyC xUwQ== X-Gm-Message-State: AOAM530cS9lt71SLmfEquHCwqPYgqoEFN5oToQWp9HI98GCsnKD8c7YG K1eInv9XiPH7LNgCdbDsSdctyQ== X-Google-Smtp-Source: ABdhPJw9ZZo2Y5sCoMtyCdm0XkHwn/eKx0AhoAo3H0tsoiZTNrgw6YTqfiEt4W6CpLTRuPY1MrNMPw== X-Received: by 2002:adf:eb41:: with SMTP id u1mr7281340wrn.201.1641978590570; Wed, 12 Jan 2022 01:09:50 -0800 (PST) Received: from google.com ([31.124.24.179]) by smtp.gmail.com with ESMTPSA id bk2sm11031195wrb.65.2022.01.12.01.09.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 01:09:50 -0800 (PST) Date: Wed, 12 Jan 2022 09:09:48 +0000 From: Lee Jones To: Zong Li Cc: Michael Turquette , Stephen Boyd , Palmer Dabbelt , Paul Walmsley , linux-clk , linux-riscv Subject: Re: [PATCH v3 RESEND] clk: sifive: Fix W=1 kernel build warning Message-ID: References: <20220107090715.2601-1-zong.li@sifive.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220112_010953_113101_EC1D9B14 X-CRM114-Status: GOOD ( 56.50 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gV2VkLCAxMiBKYW4gMjAyMiwgWm9uZyBMaSB3cm90ZToKCj4gT24gVHVlLCBKYW4gMTEsIDIw MjIgYXQgNTozMiBQTSBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8ub3JnPiB3cm90ZToKPiA+ Cj4gPiBPbiBUdWUsIDExIEphbiAyMDIyLCBab25nIExpIHdyb3RlOgo+ID4KPiA+ID4gT24gTW9u LCBKYW4gMTAsIDIwMjIgYXQgNTo1MCBQTSBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8ub3Jn PiB3cm90ZToKPiA+ID4gPgo+ID4gPiA+IFBsZWFzZSBpbXByb3ZlIHRoZSBzdWJqZWN0IGxpbmUu Cj4gPiA+ID4KPiA+ID4gPiBJZiB0aGlzIGlzIGEgc3RyYWlnaHQgcmV2ZXJ0LCB0aGUgc3ViamVj dCBsaW5lIHNob3VsZCByZWZsZWN0IHRoYXQuCj4gPiA+ID4KPiA+ID4gPiBJZiBub3QsIHlvdSBu ZWVkIHRvIGdpdmUgdXMgc3BlY2lmaWMgaW5mb3JtYXRpb24gcmVnYXJkaW5nIHRoZSBwdXJwb3Nl Cj4gPiA+ID4gb2YgdGhpcyBwYXRjaC4gIFBsZWFzZSByZWFkIHRoZSBHaXQgbG9nIGZvciBiZXR0 ZXIsIG1vcmUgZm9ydGhjb21pbmcKPiA+ID4gPiBleGFtcGxlcy4KPiA+ID4gPgo+ID4gPgo+ID4g PiBJdCBzZWVtcyB0byBtZSB0aGF0IHRoaXMgcGF0Y2ggaXMgbm90IGEgc3RyYWlnaHQgcmV2ZXJ0 LCBpdCBwcm92aWRlcwo+ID4gPiBhbm90aGVyIHdheSB0byBmaXggdGhlIG9yaWdpbmFsIGJ1aWxk IHdhcm5pbmdzLCBqdXN0IGxpa2UKPiA+ID4gJzQ4N2RjN2JiNmEwYycgdHJpZWQgdG8gZG8uIEkg Z3Vlc3MgdGhlIGNvbW1pdCBtZXNzYWdlIGhhcyBkZXNjcmliZWQKPiA+ID4gd2hhdCB0aGUgb3Jp Z2luYWwgd2FybmluZ3MgaXMgYW5kIHdoYXQgdGhlIHJvb3QgY2F1c2UgaXMsIGl0IGFsc28KPiA+ ID4gbWVudGlvbmVkIHdoYXQgaXMgY2hhbmdlZCBpbiB0aGlzIHBhdGNoLiBJJ20gYSBiaXQgY29u ZnVzZWQgd2hldGhlciB3ZQo+ID4gPiBuZWVkIHRvIGFkZCBmaXhlcyB0YWcsIGl0IGxvb2tzIGxp a2UgdGhhdCBpdCBtaWdodCBjYXVzZSBzb21lCj4gPiA+IG1pc3VuZGVyc3RhbmRpbmc/Cj4gPgo+ ID4gSSB0aGluayBpdCdzIHRoZSBwYXRjaCBkZXNjcmlwdGlvbiBhbmQgc3ViamVjdCB0aGF0IGlz IGNhdXNpbmcgdGhlCj4gPiBtaXN1bmRlcnN0YW5kaW5nLgo+ID4KPiAKPiBZZXMsIHRoZSBzdWJq ZWN0IHNob3VsZCBiZSBtYWRlIGJldHRlci4KPiAKPiA+IFBsZWFzZSBoZWxwIG1lIHdpdGggYSBj b3VwbGUgb2YgcG9pbnRzIGFuZCBJJ2xsIGhlbHAgeW91IGRyYWZ0Cj4gPiBzb21ldGhpbmcgdXAu Cj4gPgo+ID4gRmlyc3RseSwgd2hhdCBhbGVydGVkIHlvdSB0byB0aGUgcHJvYmxlbSB5b3UncmUg YXR0ZW1wdGluZyB0byBzb2x2ZT8KPiA+Cj4gCj4gSSByZWNlbnRseSBub3RpY2VkIHRoZSBjb2Rl IHdhcyBjaGFuZ2VkLCBJIGd1ZXNzIHRoYXQgSSB3YXMgbWlzc2luZwo+IHNvbWV0aGluZyB0aGVy ZS4gQWZ0ZXIgdHJhY2tpbmcgdGhlIGxvZywgSSBmb3VuZCB0aGF0IHRoZXJlIGlzIGEgYnVpbGQK PiB3YXJuaW5nIGluIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiwgYW5kIGl0IHdhcyBhbHJl YWR5IGZpeGVkLCBidXQKPiBpdCBzZWVtcyB0byBtZSB0aGF0IHRoZXJlIGFyZSBzdGlsbCBzb21l IHNpdHVhdGlvbnMgdGhlcmUsIHBsZWFzZSBoZWxwCj4gbWUgdG8gc2VlIHRoZSBmb2xsb3dpbmcg aWxsdXN0cmF0aW9uLgo+IAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9jbGsvc2lmaXZlL2Z1NTQw LXByY2kuYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9jbGsvc2lmaXZlL2Z1NTQwLXByY2kuYwo+ ID4gPiA+ID4gQEAgLTIwLDcgKzIwLDYgQEAKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgI2luY2x1ZGUg PGR0LWJpbmRpbmdzL2Nsb2NrL3NpZml2ZS1mdTU0MC1wcmNpLmg+Cj4gPiA+ID4gPgo+ID4gPiA+ ID4gLSNpbmNsdWRlICJmdTU0MC1wcmNpLmgiCj4gPgo+ID4gSG93IGlzIHRoaXMgcmVsYXRlZCB0 byB0aGUgaXNzdWUvcGF0Y2g/Cj4gPgo+IAo+IExldCdzIGdvIGJhY2sgdG8gdGhlIHZlcnNpb24g d2l0aG91dCAnNDg3ZGM3YmI2YTBjJyBmaXguIFRoZQo+IHByY2lfY2xrX2Z1NTQwIHZhcmlhYmxl IGlzIGRlZmluZWQgaW4gc2lmaXZlLWZ1NTQwLXByY2kuaCBoZWFkZXIsCj4gaG93ZXZlciwgZnU1 NDAtcHJjaS5jIGluY2x1ZGVzIHRoaXMgaGVhZGVyIGJ1dCBkb2Vzbid0IHVzZSB0aGlzCj4gdmFy aWFibGUsIHNvIHRoZSB3YXJuaW5ncyBoYXBwZW4uCj4gCj4gVGhlIGVhc2llc3Qgd2F5IHRvIGRv IGl0IGlzIGp1c3QgcmVtb3ZpbmcgdGhpcyBsaW5lLCB0aGVuIHRoZSB3YXJuaW5nCj4gY291bGQg YmUgZml4ZWQuIEJ1dCBhcyB0aGUgJzQ4N2RjN2JiNmEwYycgb3IgdGhpcyBwYXRjaCBkb2VzLCB0 aGUgY29kZQo+IHNob3VsZCBiZSBpbXByb3ZlZCwgdGhlIHByY2lfY2xrX2Z1NTQwIHZhcmlhYmxl IHNob3VsZG4ndCBiZSBkZWZpbmVkCj4gaW4gdGhlIGhlYWRlciwgaXQgc2hvdWxkIGJlIG1vdmVk IHNvbWV3aGVyZS4KPiAKPiA+ID4gPiA+ICtzdHJ1Y3QgcHJjaV9jbGtfZGVzYyBwcmNpX2Nsa19m dTU0MCA9IHsKPiA+ID4gPiA+ICsgICAgIC5jbGtzID0gX19wcmNpX2luaXRfY2xvY2tzX2Z1NTQw LAo+ID4gPiA+ID4gKyAgICAgLm51bV9jbGtzID0gQVJSQVlfU0laRShfX3ByY2lfaW5pdF9jbG9j a3NfZnU1NDApLAo+ID4gPiA+ID4gK307Cj4gPgo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvY2xrL3NpZml2ZS9mdTU0MC1wcmNpLmggYi9kcml2ZXJzL2Nsay9zaWZpdmUvZnU1NDAtcHJj aS5oCj4gPiA+ID4gPiBpbmRleCBjMjIwNjc3ZGMwMTAuLjkzMWQ2Y2FkOGMxYyAxMDA2NDQKPiA+ ID4gPiA+IC0tLSBhL2RyaXZlcnMvY2xrL3NpZml2ZS9mdTU0MC1wcmNpLmgKPiA+ID4gPiA+ICsr KyBiL2RyaXZlcnMvY2xrL3NpZml2ZS9mdTU0MC1wcmNpLmgKPiA+ID4gPiA+IEBAIC03LDEwICs3 LDYgQEAKPiA+ID4gPiA+ICtleHRlcm4gc3RydWN0IHByY2lfY2xrX2Rlc2MgcHJjaV9jbGtfZnU1 NDA7Cj4gPgo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NpZml2ZS9zaWZpdmUt cHJjaS5jIGIvZHJpdmVycy9jbGsvc2lmaXZlL3NpZml2ZS1wcmNpLmMKPiA+ID4gPiA+IGluZGV4 IDgwYTI4OGM1OWU1Ni4uOTE2ZDJmYzI4YjljIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVy cy9jbGsvc2lmaXZlL3NpZml2ZS1wcmNpLmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvY2xrL3Np Zml2ZS9zaWZpdmUtcHJjaS5jCj4gPiA+ID4gPiBAQCAtMTIsMTEgKzEyLDYgQEAKPiA+ID4gPiA+ ICAjaW5jbHVkZSAiZnU1NDAtcHJjaS5oIgo+ID4gPiA+ID4gICNpbmNsdWRlICJmdTc0MC1wcmNp LmgiCj4gPiA+ID4gPgo+ID4gPiA+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcHJjaV9jbGtfZGVz YyBwcmNpX2Nsa19mdTU0MCA9IHsKPiA+ID4gPiA+IC0gICAgIC5jbGtzID0gX19wcmNpX2luaXRf Y2xvY2tzX2Z1NTQwLAo+ID4gPiA+ID4gLSAgICAgLm51bV9jbGtzID0gQVJSQVlfU0laRShfX3By Y2lfaW5pdF9jbG9ja3NfZnU1NDApLAo+ID4gPiA+ID4gLX07Cj4gPiA+ID4gPiAtCj4gPgo+ID4g SSdtIG5vdCBzdXJlIGlmIGl0J3MgeW91IG9yIEkgdGhhdCBpcyBtaXNzaW5nIHRoZSBwb2ludCBo ZXJlLCBidXQKPiA+IHByY2lfY2xrX2Z1NTQwIGlzIHVzZWQgd2l0aGluICp0aGlzKiBmaWxlIGl0 c2VsZjoKPiA+Cj4gCj4gSGVyZSBpcyBhbm90aGVyIHNpdHVhdGlvbiBJIG1lbnRpb25lZCBhdCB0 aGUgYmVnaW5uaW5nLCBpZiB3ZSdkIGxpa2UKPiB0byBwdXQgcHJjaV9jbGtfZnU1NDAgaGVyZSwg cHJjaV9jbGtfZnU3NDAgc2hvdWxkIGJlIHB1dCBoZXJlIGFzIHdlbGwuCj4gSSBndWVzcyB5b3Ug ZGlkbid0IGRvIHRoYXQgYmVjYXVzZSB0aGVyZSBpcyBhIGJ1ZyBpbiB0aGUgb3JpZ2luYWwKPiBj b2RlLCBmdTc0MC1wcmNpLmMgbWlzdXNlZCB0aGUgZnU1NDAtcHJjaS5oLCBzbyB0aGVyZSBpcyBu byBidWlsZAo+IHdhcm5pbmcgb24gZnU3NDAuIEZVNzQwIHN0aWxsIHdvcmtzIGNvcnJlY3RseSBi eSBtaXN1c2luZyB0aGUKPiBmdTU0MC1wcmNpLmggaGVhZGVyIGJlY2F1c2UgZnU3NDAtcHJjaS5j IGRvZXNuJ3QgYWN0dWFsbHkgdXNlIHRoZQo+IHByY2lfY2xrX2Z1NzQwIHZhcmlhYmxlLCBsaWtl IGZ1NTQwIHdlIHRhbGtlZCBhYm91dCBlYXJsaWVyLgo+IAo+ID4gIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIHNpZml2ZV9wcmNpX29mX21hdGNoW10gPSB7Cj4gPiAgICAgICAgICB7 LmNvbXBhdGlibGUgPSAic2lmaXZlLGZ1NTQwLWMwMDAtcHJjaSIsIC5kYXRhID0gJnByY2lfY2xr X2Z1NTQwfSwKPiA+ICAgICAgICAgIHsuY29tcGF0aWJsZSA9ICJzaWZpdmUsZnU3NDAtYzAwMC1w cmNpIiwgLmRhdGEgPSAmcHJjaV9jbGtfZnU3NDB9LAo+ID4gICAgICAgICAge30KPiA+ICB9Owo+ ID4KPiA+IFNvIHdoeSBhcmUgeW91IG1vdmluZyBpdCBvdXQgdG8gc29tZXdoZXJlIGl0IGlzICpu b3QqIHVzZWQgYW5kIG1ha2luZwo+ID4gaXQgYW4gZXh0ZXJuPyAgVGhpcyBzb3VuZHMgbGlrZSB0 aGUgb3Bwb3NpdGUgdG8gd2hhdCB5b3UnZCB3YW50Pwo+IAo+IFRoZSBpZGVhIGlzIHRoYXQgc2lm aXZlLXByY2kuYyBpcyB0aGUgY29yZSBhbmQgY29tbW9uIHBhcnQgb2YgUFJDSSwKPiBhbmQgSSdk IGxpa2UgdG8gc2VwYXJhdGUgdGhlIFNvQ3MtZGVwZW5kZW50IHBhcnQgaW50byBTb0NzLWRlcGVu ZGVudAo+IGZpbGVzLCBzdWNoIGFzIGZ1NTQwLXByY2kuYyBhbmQgZnU3NDAtcHJjaS5jLiBUaGUg Z29hbCBpcyBpZiB3ZSBhZGQKPiBuZXcgU29DcyBpbiB0aGUgZnV0dXJlLCB3ZSBjYW4ganVzdCBw dXQgdGhlIFNvQ3MtZGVwZW5kZW50IGRhdGEKPiBzdHJ1Y3R1cmUgaW4gdGhlIG5ldyBDIGZpbGUs IGFuZCBkbyBhcyBtaW5pbXVtIG1vZGlmaWNhdGlvbiBhcwo+IHBvc3NpYmxlIGluIHRoZSBjb3Jl IGZpbGUgKGkuZS4gc2lmaXZlLXByY2kuYykuIEl0IG1pZ2h0IGFsc28gaGVscCB1cwo+IHRvIHNl ZSBhbGwgU29Dcy1kZXBlbmRlbnQgZGF0YSBpbiBvbmUgZmlsZSwgdGhlbiB3ZSBkb24ndCBuZWVk IHRvCj4gY3Jvc3MgbWFueSBmaWxlcy4gUHV0dGluZyB0aGVzZSB0d28gdmFyaWFibGVzIGluIHNp Zml2ZS1wcmljLmMgaXMgdGhlCj4gcmlnaHQgdGhpbmcgdG8gZG8sIGJ1dCB0aGF0IGlzIHdoeSBJ IHNlcGFyYXRlIHRoZW0gYW5kIG1ha2UgdGhlbQo+IGV4dGVybiBpbiB0aGlzIHBhdGNoLgoKSSBj YW4gc2VlIHdoYXQgeW91IGFyZSBkb2luZywgYnV0IEkgZG9uJ3QgdGhpbmsgdGhpcyBpcyB0aGUg cmlnaHQKdGhpbmcgdG8gZG8uICBQbGVhc2UgcHV0IHRoZSBzdHJ1Y3QgaW4gdGhlIHNhbWUgbG9j YXRpb24gYXMgaXQncwpyZWZlcmVuY2VkLgoKQW5kIHllcyB0aGF0IHNob3VsZCBhbHNvIGJlIHRo ZSBjYXNlIGZvciBwcmNpX2Nsa19mdTc0MCBhbmQgeWVzLCBpdAp3YXMgb3Zlci1sb29rZWQgYmVj YXVzZSBpdCB3YXNuJ3QgY2F1c2luZyB3YXJuaW5ncyBhdCBidWlsZCB0aW1lIGZvcgp3aGF0ZXZl ciByZWFzb24uCgpJTUhPLCBwbGFjaW5nICdzdHJ1Y3Qgb2ZfZGV2aWNlX2lkJyBtYXRjaCB0YWJs ZXMgaW4gaGVhZGVycyBpcyBhbHNvCm9kZCBhbmQgaXMgbGlrZWx5IHRoZSByZWFsIGNhdXNlIG9m IHRoaXMgc3RyYW5nZSBzaXR1YXRpb24uCgotLSAKTGVlIEpvbmVzIFvmnY7nkLzmlq9dClByaW5j aXBhbCBUZWNobmljYWwgTGVhZCAtIERldmVsb3BlciBTZXJ2aWNlcwpMaW5hcm8ub3JnIOKUgiBP cGVuIHNvdXJjZSBzb2Z0d2FyZSBmb3IgQXJtIFNvQ3MKRm9sbG93IExpbmFybzogRmFjZWJvb2sg fCBUd2l0dGVyIHwgQmxvZwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1yaXNjdgo=