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 X-Spam-Level: X-Spam-Status: No, score=-11.6 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A256EC433E0 for ; Wed, 29 Jul 2020 19:15:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 73F03206D8 for ; Wed, 29 Jul 2020 19:15:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1596050152; bh=zbHTicE/c9neTc8f6wwtdhkgsPiRJ2V21XdJuKaX+h8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:List-ID:From; b=ATLAPC7DfYid0rLVGN9zYQdHsuVWSxxLyB1Iyph2Zebc8vejMGO5rqilTd+l/ke39 R9KsWGRq8SvXwnIP59CuD4ChW+NZuhoTSGhvFg+DCaryljigNDv1IuPHqKmuxUZ0L7 9LpMUjXaXoMke9gFFx47O/VZx82ZRHRKAplLhZlM= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726581AbgG2TPw convert rfc822-to-8bit (ORCPT ); Wed, 29 Jul 2020 15:15:52 -0400 Received: from mail-ej1-f67.google.com ([209.85.218.67]:39930 "EHLO mail-ej1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726391AbgG2TPv (ORCPT ); Wed, 29 Jul 2020 15:15:51 -0400 Received: by mail-ej1-f67.google.com with SMTP id f24so4991616ejx.6; Wed, 29 Jul 2020 12:15:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=QZvLyh/VTiAroCKTHFmeviwTx1lu+DKij2yBWYhIrcw=; b=G9bggxMB1xUmuQebRKNSKXFkdL466vZOuAuEv+NRzyFQapAr7eu5N1nW4TKq4WfIIs rHILIs3vsdndInHTsiccxM7m8eu/iS7CMvn/r3CjG7HqdVl6NPxXC4jyduqvEaekGnMW rXznwJCsmvgYpB4wT6DyzfLnB0N3bNHWOvtkJfKNrYzeq58RuLJ6GOiJMgHdXUjf0ous R2nZKDQR6hRaLjuBA1rHUX++bL2PZLbhCpsCcI7uRVPPtpYUcwi1c0iRhRjZ741KgtHu VrsoDBKr6rvZu7ewxejxtiX8/Rs7QUwni52qBaO8+wbyl1Ja1Zr2XRLztE1PorMxaxsQ yPcw== X-Gm-Message-State: AOAM531POhmbcCzQ5Y97K891zHxvuIUMtd1Sz9mQ2waT7a0rofqg0jhY 61jg3YWmCBODTrxjnOrX5gw= X-Google-Smtp-Source: ABdhPJxbsPHi+l7rio/Z0goWffH1GbVr5+PSMaXjywPWSYEaxGui4MiOyNpWy06XsJSiPrUEKZdNFQ== X-Received: by 2002:a17:906:264d:: with SMTP id i13mr7219416ejc.284.1596050148541; Wed, 29 Jul 2020 12:15:48 -0700 (PDT) Received: from kozik-lap ([194.230.155.213]) by smtp.googlemail.com with ESMTPSA id m12sm1550383edv.94.2020.07.29.12.15.46 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 29 Jul 2020 12:15:47 -0700 (PDT) Date: Wed, 29 Jul 2020 21:15:44 +0200 From: Krzysztof Kozlowski To: Tomasz Figa Cc: Russell King , Kukjin Kim , Vincent Sanders , Simtec Linux Team , Kyungmin Park , Catalin Marinas , Will Deacon , Sylwester Nawrocki , Chanwoo Choi , Michael Turquette , Stephen Boyd , Wim Van Sebroeck , Guenter Roeck , Arnd Bergmann , Linus Walleij , linux-kernel , linux-arm-kernel , "moderated list:SAMSUNG SOC CLOCK DRIVERS" , linux-stm32@st-md-mailman.stormreply.com, patches@opensource.cirrus.com, "open list:COMMON CLK FRAMEWORK" , linux-watchdog@vger.kernel.org, Sergio Prado , Marek Szyprowski , Sylwester Nawrocki , Cedric Roux , Lihua Yao Subject: Re: [PATCH 6/7] ARM: s3c64xx: Switch to generic watchdog driver reset Message-ID: <20200729191544.GB5822@kozik-lap> References: <20200729160942.28867-1-krzk@kernel.org> <20200729160942.28867-7-krzk@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8BIT In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org On Wed, Jul 29, 2020 at 07:33:33PM +0200, Tomasz Figa wrote: > Hi Krzysztof, > > 2020年7月29日(水) 18:11 Krzysztof Kozlowski : > > > > Similarly to commit f6361c6b3880 ("ARM: S3C24XX: remove separate restart > > code"), the platform watchdog reset code can be removed in favor of > > a generic watchdog driver which already handles reset. > > > > This allows removal of a bunch of machine code and fixes also W=1 > > compile warnings: > > > > arch/arm/plat-samsung/watchdog-reset.c:29:6: warning: no previous prototype for 'samsung_wdt_reset' [-Wmissing-prototypes] > > 29 | void samsung_wdt_reset(void) > > | ^~~~~~~~~~~~~~~~~ > > arch/arm/plat-samsung/watchdog-reset.c:69:13: warning: no previous prototype for 'samsung_wdt_reset_of_init' [-Wmissing-prototypes] > > 69 | void __init samsung_wdt_reset_of_init(void) > > | ^~~~~~~~~~~~~~~~~~~~~~~~~ > > arch/arm/plat-samsung/watchdog-reset.c:89:13: warning: no previous prototype for 'samsung_wdt_reset_init' [-Wmissing-prototypes] > > 89 | void __init samsung_wdt_reset_init(void __iomem *base) > > > > Signed-off-by: Krzysztof Kozlowski > > --- > > arch/arm/mach-s3c64xx/Kconfig | 3 +- > > arch/arm/mach-s3c64xx/common.c | 15 +--- > > arch/arm/mach-s3c64xx/common.h | 2 - > > arch/arm/mach-s3c64xx/mach-anw6410.c | 1 - > > arch/arm/mach-s3c64xx/mach-crag6410.c | 1 - > > arch/arm/mach-s3c64xx/mach-hmt.c | 1 - > > arch/arm/mach-s3c64xx/mach-mini6410.c | 1 - > > arch/arm/mach-s3c64xx/mach-ncp.c | 1 - > > arch/arm/mach-s3c64xx/mach-real6410.c | 1 - > > arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c | 17 ----- > > arch/arm/mach-s3c64xx/mach-smartq5.c | 1 - > > arch/arm/mach-s3c64xx/mach-smartq7.c | 1 - > > arch/arm/mach-s3c64xx/mach-smdk6400.c | 1 - > > arch/arm/mach-s3c64xx/mach-smdk6410.c | 1 - > > arch/arm/mach-s3c64xx/watchdog-reset.h | 16 ----- > > arch/arm/plat-samsung/Kconfig | 6 -- > > arch/arm/plat-samsung/Makefile | 1 - > > arch/arm/plat-samsung/watchdog-reset.c | 93 ------------------------- > > 18 files changed, 5 insertions(+), 158 deletions(-) > > delete mode 100644 arch/arm/mach-s3c64xx/watchdog-reset.h > > delete mode 100644 arch/arm/plat-samsung/watchdog-reset.c > > > > Thanks for the patch! Please see my comments inline. > > > diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig > > index e208c2b48853..f3fcb570edf5 100644 > > --- a/arch/arm/mach-s3c64xx/Kconfig > > +++ b/arch/arm/mach-s3c64xx/Kconfig > > @@ -18,9 +18,10 @@ menuconfig ARCH_S3C64XX > > select PM_GENERIC_DOMAINS if PM > > select S3C_DEV_NAND if ATAGS > > select S3C_GPIO_TRACK if ATAGS > > + select S3C2410_WATCHDOG > > select SAMSUNG_ATAGS if ATAGS > > select SAMSUNG_WAKEMASK if PM > > - select SAMSUNG_WDT_RESET > > + select WATCHDOG > > help > > Samsung S3C64XX series based systems > > > > diff --git a/arch/arm/mach-s3c64xx/common.c b/arch/arm/mach-s3c64xx/common.c > > index a655bf0c7802..42e96d196f61 100644 > > --- a/arch/arm/mach-s3c64xx/common.c > > +++ b/arch/arm/mach-s3c64xx/common.c > > @@ -50,7 +50,6 @@ > > > > #include "common.h" > > #include "irq-uart.h" > > -#include "watchdog-reset.h" > > > > /* External clock frequency */ > > static unsigned long xtal_f __ro_after_init = 12000000; > > @@ -232,10 +231,11 @@ void __init s3c64xx_init_irq(u32 vic0_valid, u32 vic1_valid) > > /* > > * FIXME: there is no better place to put this at the moment > > * (s3c64xx_clk_init needs ioremap and must happen before init_time > > - * samsung_wdt_reset_init needs clocks) > > + * samsung_wdt_reset_init needs clocks). However > > + * samsung_wdt_reset_init() was removed in favor of watchdog driver > > + * so this should be revised. > > This leaves the comment referring to an inexistent function. Yes, I left it as a reference/reason. Although might be quite confusing now... > > I wonder if this being here is actually a problem at all. It's legacy > code and probably there isn't much value in reshuffling it further. > Rather than that, we would probably want to make sure that everything > migrated to DT and just drop the board files. Maybe let's remove the FIXME and leave the clock init. Since all these times no one fixed the FIXME, so now with limited hardware access I do not expect any movements here. > > > */ > > s3c64xx_clk_init(NULL, xtal_f, xusbxti_f, soc_is_s3c6400(), S3C_VA_SYS); > > - samsung_wdt_reset_init(S3C_VA_WATCHDOG); > > > > printk(KERN_DEBUG "%s: initialising interrupts\n", __func__); > > > > @@ -429,12 +429,3 @@ static int __init s3c64xx_init_irq_eint(void) > > return 0; > > } > > arch_initcall(s3c64xx_init_irq_eint); > > - > > -void s3c64xx_restart(enum reboot_mode mode, const char *cmd) > > -{ > > - if (mode != REBOOT_SOFT) > > - samsung_wdt_reset(); > > - > > - /* if all else fails, or mode was for soft, jump to 0 */ > > - soft_restart(0); > > Does this remove the soft reboot capability? I'm not sure how much of > a problem that would be, though. 1. No one cared about it in f6361c6b3880 :) 2. Exynos does not have it 3. Does soft_restart really work? It would be worth to keep it if more or less it was working. Best regards, Krzysztof > > [snip] > > diff --git a/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c b/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c > > index 1724f5ea5c46..09c4e8742629 100644 > > --- a/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c > > +++ b/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c > > @@ -12,7 +12,6 @@ > > #include > > > > #include "common.h" > > -#include "watchdog-reset.h" > > > > /* > > * IO mapping for shared system controller IP. > > @@ -39,20 +38,6 @@ static void __init s3c64xx_dt_map_io(void) > > panic("SoC is not S3C64xx!"); > > } > > > > -static void __init s3c64xx_dt_init_machine(void) > > -{ > > - samsung_wdt_reset_of_init(); > > -} > > - > > -static void s3c64xx_dt_restart(enum reboot_mode mode, const char *cmd) > > -{ > > - if (mode != REBOOT_SOFT) > > - samsung_wdt_reset(); > > - > > - /* if all else fails, or mode was for soft, jump to 0 */ > > - soft_restart(0); > > Ditto. > > Best regards, > Tomasz 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 X-Spam-Level: X-Spam-Status: No, score=-11.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3EE43C433E0 for ; Wed, 29 Jul 2020 19:17:20 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 03DB02075F for ; Wed, 29 Jul 2020 19:17:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="pa35V+0Q" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 03DB02075F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject: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=ttvjugMYhljWiRJeLNpzbPfhvGod+JwMeJ/1CXnOdOE=; b=pa35V+0QDqE9q7LSLmp6GvVnx XM31v5fPOmL7jRLqqMMh/x3RYMsO2CAzLdCJhFxx2EwKfJbaOWdBOulGV2CiQcHTyjB/P7hvEQPUG PNZB8EVNxURNL42+lYtHI8+Vew60/hYB1iRK6M688jClnmNRHGoW0b9S1lHcVILz/9eaUJNUP7gVo 4xpm0FNYPHn5DaXXY5a24kg8Hx9KBjeBs4IlM3DSEBlXM+0OU6OEyYBVF3oPkr4+v4ZWZB/zsiHGF d/IghPZRBV4cjB1s2GfbD6MFVAD0P24dzT6zE7kzBLKSSzdGb4AXXEAmyYJJtpwsEbCtebIehz1it Eg3BAXVTw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k0rYQ-0004W0-FQ; Wed, 29 Jul 2020 19:15:54 +0000 Received: from mail-ej1-f66.google.com ([209.85.218.66]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1k0rYN-0004VJ-3y for linux-arm-kernel@lists.infradead.org; Wed, 29 Jul 2020 19:15:52 +0000 Received: by mail-ej1-f66.google.com with SMTP id a21so25464605ejj.10 for ; Wed, 29 Jul 2020 12:15:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=QZvLyh/VTiAroCKTHFmeviwTx1lu+DKij2yBWYhIrcw=; b=odq8Rul/xMhh7UvXbB6Aq3Zpt8C5MToyr935NMmGWJj6tzjmo1mnrFQr/zqbn+1tqd Nlf0bfrUoZOngVkGGdibgQAc0VTyyziUl2uBPK/kS11FQKHLyYtOmX7zhExmdQoLGsLn 7MZ/EGUKeqYSm11G00DaFnw2pioEnQV1ADB1mtOvg5vEN7KUhpFrUChRSLCF7OX8r5P0 ZHp16i6xNE8nO8LtRWQEHLe1+k6j8Y7STlxsrQTVV6YkWEE5+koIpngDaEbWKrFYlEZ7 ElEGsupeW/rM1UxxumingaTo3P7j/5WCXVlQB1uo2xz0dR6QgxyUhyju+sKKg6BFnwbq lxGw== X-Gm-Message-State: AOAM533/tCbr4dezmB53vsfI7IJ0R9mZguiq5OdFz1sf1/THe75A+xA+ D9E9KAwGBLU/NN3iy3I83uE= X-Google-Smtp-Source: ABdhPJxbsPHi+l7rio/Z0goWffH1GbVr5+PSMaXjywPWSYEaxGui4MiOyNpWy06XsJSiPrUEKZdNFQ== X-Received: by 2002:a17:906:264d:: with SMTP id i13mr7219416ejc.284.1596050148541; Wed, 29 Jul 2020 12:15:48 -0700 (PDT) Received: from kozik-lap ([194.230.155.213]) by smtp.googlemail.com with ESMTPSA id m12sm1550383edv.94.2020.07.29.12.15.46 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 29 Jul 2020 12:15:47 -0700 (PDT) Date: Wed, 29 Jul 2020 21:15:44 +0200 From: Krzysztof Kozlowski To: Tomasz Figa Subject: Re: [PATCH 6/7] ARM: s3c64xx: Switch to generic watchdog driver reset Message-ID: <20200729191544.GB5822@kozik-lap> References: <20200729160942.28867-1-krzk@kernel.org> <20200729160942.28867-7-krzk@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200729_151551_199738_7EBFEDCC X-CRM114-Status: GOOD ( 38.53 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Catalin Marinas , Linus Walleij , Sylwester Nawrocki , Will Deacon , linux-stm32@st-md-mailman.stormreply.com, Marek Szyprowski , "moderated list:SAMSUNG SOC CLOCK DRIVERS" , Sylwester Nawrocki , Cedric Roux , Russell King , "open list:COMMON CLK FRAMEWORK" , Lihua Yao , Chanwoo Choi , Kukjin Kim , Michael Turquette , Guenter Roeck , Sergio Prado , linux-watchdog@vger.kernel.org, Arnd Bergmann , Wim Van Sebroeck , Simtec Linux Team , linux-arm-kernel , Stephen Boyd , patches@opensource.cirrus.com, Vincent Sanders , linux-kernel , Kyungmin Park 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 T24gV2VkLCBKdWwgMjksIDIwMjAgYXQgMDc6MzM6MzNQTSArMDIwMCwgVG9tYXN6IEZpZ2Egd3Jv dGU6Cj4gSGkgS3J6eXN6dG9mLAo+IAo+IDIwMjDlubQ35pyIMjnml6Uo5rC0KSAxODoxMSBLcnp5 c3p0b2YgS296bG93c2tpIDxrcnprQGtlcm5lbC5vcmc+Ogo+ID4KPiA+IFNpbWlsYXJseSB0byBj b21taXQgZjYzNjFjNmIzODgwICgiQVJNOiBTM0MyNFhYOiByZW1vdmUgc2VwYXJhdGUgcmVzdGFy dAo+ID4gY29kZSIpLCB0aGUgcGxhdGZvcm0gd2F0Y2hkb2cgcmVzZXQgY29kZSBjYW4gYmUgcmVt b3ZlZCBpbiBmYXZvciBvZgo+ID4gYSBnZW5lcmljIHdhdGNoZG9nIGRyaXZlciB3aGljaCBhbHJl YWR5IGhhbmRsZXMgcmVzZXQuCj4gPgo+ID4gVGhpcyBhbGxvd3MgcmVtb3ZhbCBvZiBhIGJ1bmNo IG9mIG1hY2hpbmUgY29kZSBhbmQgZml4ZXMgYWxzbyBXPTEKPiA+IGNvbXBpbGUgd2FybmluZ3M6 Cj4gPgo+ID4gICAgIGFyY2gvYXJtL3BsYXQtc2Ftc3VuZy93YXRjaGRvZy1yZXNldC5jOjI5OjY6 IHdhcm5pbmc6IG5vIHByZXZpb3VzIHByb3RvdHlwZSBmb3IgJ3NhbXN1bmdfd2R0X3Jlc2V0JyBb LVdtaXNzaW5nLXByb3RvdHlwZXNdCj4gPiAgICAgICAgMjkgfCB2b2lkIHNhbXN1bmdfd2R0X3Jl c2V0KHZvaWQpCj4gPiAgICAgICAgICAgfCAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Cj4gPiAgICAg YXJjaC9hcm0vcGxhdC1zYW1zdW5nL3dhdGNoZG9nLXJlc2V0LmM6Njk6MTM6IHdhcm5pbmc6IG5v IHByZXZpb3VzIHByb3RvdHlwZSBmb3IgJ3NhbXN1bmdfd2R0X3Jlc2V0X29mX2luaXQnIFstV21p c3NpbmctcHJvdG90eXBlc10KPiA+ICAgICAgICA2OSB8IHZvaWQgX19pbml0IHNhbXN1bmdfd2R0 X3Jlc2V0X29mX2luaXQodm9pZCkKPiA+ICAgICAgICAgICB8ICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KPiA+ICAgICBhcmNoL2FybS9wbGF0LXNhbXN1bmcvd2F0Y2hkb2ct cmVzZXQuYzo4OToxMzogd2FybmluZzogbm8gcHJldmlvdXMgcHJvdG90eXBlIGZvciAnc2Ftc3Vu Z193ZHRfcmVzZXRfaW5pdCcgWy1XbWlzc2luZy1wcm90b3R5cGVzXQo+ID4gICAgICAgIDg5IHwg dm9pZCBfX2luaXQgc2Ftc3VuZ193ZHRfcmVzZXRfaW5pdCh2b2lkIF9faW9tZW0gKmJhc2UpCj4g Pgo+ID4gU2lnbmVkLW9mZi1ieTogS3J6eXN6dG9mIEtvemxvd3NraSA8a3J6a0BrZXJuZWwub3Jn Pgo+ID4gLS0tCj4gPiAgYXJjaC9hcm0vbWFjaC1zM2M2NHh4L0tjb25maWcgICAgICAgICAgIHwg IDMgKy0KPiA+ICBhcmNoL2FybS9tYWNoLXMzYzY0eHgvY29tbW9uLmMgICAgICAgICAgfCAxNSAr LS0tCj4gPiAgYXJjaC9hcm0vbWFjaC1zM2M2NHh4L2NvbW1vbi5oICAgICAgICAgIHwgIDIgLQo+ ID4gIGFyY2gvYXJtL21hY2gtczNjNjR4eC9tYWNoLWFudzY0MTAuYyAgICB8ICAxIC0KPiA+ICBh cmNoL2FybS9tYWNoLXMzYzY0eHgvbWFjaC1jcmFnNjQxMC5jICAgfCAgMSAtCj4gPiAgYXJjaC9h cm0vbWFjaC1zM2M2NHh4L21hY2gtaG10LmMgICAgICAgIHwgIDEgLQo+ID4gIGFyY2gvYXJtL21h Y2gtczNjNjR4eC9tYWNoLW1pbmk2NDEwLmMgICB8ICAxIC0KPiA+ICBhcmNoL2FybS9tYWNoLXMz YzY0eHgvbWFjaC1uY3AuYyAgICAgICAgfCAgMSAtCj4gPiAgYXJjaC9hcm0vbWFjaC1zM2M2NHh4 L21hY2gtcmVhbDY0MTAuYyAgIHwgIDEgLQo+ID4gIGFyY2gvYXJtL21hY2gtczNjNjR4eC9tYWNo LXMzYzY0eHgtZHQuYyB8IDE3IC0tLS0tCj4gPiAgYXJjaC9hcm0vbWFjaC1zM2M2NHh4L21hY2gt c21hcnRxNS5jICAgIHwgIDEgLQo+ID4gIGFyY2gvYXJtL21hY2gtczNjNjR4eC9tYWNoLXNtYXJ0 cTcuYyAgICB8ICAxIC0KPiA+ICBhcmNoL2FybS9tYWNoLXMzYzY0eHgvbWFjaC1zbWRrNjQwMC5j ICAgfCAgMSAtCj4gPiAgYXJjaC9hcm0vbWFjaC1zM2M2NHh4L21hY2gtc21kazY0MTAuYyAgIHwg IDEgLQo+ID4gIGFyY2gvYXJtL21hY2gtczNjNjR4eC93YXRjaGRvZy1yZXNldC5oICB8IDE2IC0t LS0tCj4gPiAgYXJjaC9hcm0vcGxhdC1zYW1zdW5nL0tjb25maWcgICAgICAgICAgIHwgIDYgLS0K PiA+ICBhcmNoL2FybS9wbGF0LXNhbXN1bmcvTWFrZWZpbGUgICAgICAgICAgfCAgMSAtCj4gPiAg YXJjaC9hcm0vcGxhdC1zYW1zdW5nL3dhdGNoZG9nLXJlc2V0LmMgIHwgOTMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+ID4gIDE4IGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMTU4 IGRlbGV0aW9ucygtKQo+ID4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLXMzYzY0 eHgvd2F0Y2hkb2ctcmVzZXQuaAo+ID4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9wbGF0 LXNhbXN1bmcvd2F0Y2hkb2ctcmVzZXQuYwo+ID4KPiAKPiBUaGFua3MgZm9yIHRoZSBwYXRjaCEg UGxlYXNlIHNlZSBteSBjb21tZW50cyBpbmxpbmUuCj4gCj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vbWFjaC1zM2M2NHh4L0tjb25maWcgYi9hcmNoL2FybS9tYWNoLXMzYzY0eHgvS2NvbmZpZwo+ ID4gaW5kZXggZTIwOGMyYjQ4ODUzLi5mM2ZjYjU3MGVkZjUgMTAwNjQ0Cj4gPiAtLS0gYS9hcmNo L2FybS9tYWNoLXMzYzY0eHgvS2NvbmZpZwo+ID4gKysrIGIvYXJjaC9hcm0vbWFjaC1zM2M2NHh4 L0tjb25maWcKPiA+IEBAIC0xOCw5ICsxOCwxMCBAQCBtZW51Y29uZmlnIEFSQ0hfUzNDNjRYWAo+ ID4gICAgICAgICBzZWxlY3QgUE1fR0VORVJJQ19ET01BSU5TIGlmIFBNCj4gPiAgICAgICAgIHNl bGVjdCBTM0NfREVWX05BTkQgaWYgQVRBR1MKPiA+ICAgICAgICAgc2VsZWN0IFMzQ19HUElPX1RS QUNLIGlmIEFUQUdTCj4gPiArICAgICAgIHNlbGVjdCBTM0MyNDEwX1dBVENIRE9HCj4gPiAgICAg ICAgIHNlbGVjdCBTQU1TVU5HX0FUQUdTIGlmIEFUQUdTCj4gPiAgICAgICAgIHNlbGVjdCBTQU1T VU5HX1dBS0VNQVNLIGlmIFBNCj4gPiAtICAgICAgIHNlbGVjdCBTQU1TVU5HX1dEVF9SRVNFVAo+ ID4gKyAgICAgICBzZWxlY3QgV0FUQ0hET0cKPiA+ICAgICAgICAgaGVscAo+ID4gICAgICAgICAg IFNhbXN1bmcgUzNDNjRYWCBzZXJpZXMgYmFzZWQgc3lzdGVtcwo+ID4KPiA+IGRpZmYgLS1naXQg YS9hcmNoL2FybS9tYWNoLXMzYzY0eHgvY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLXMzYzY0eHgv Y29tbW9uLmMKPiA+IGluZGV4IGE2NTViZjBjNzgwMi4uNDJlOTZkMTk2ZjYxIDEwMDY0NAo+ID4g LS0tIGEvYXJjaC9hcm0vbWFjaC1zM2M2NHh4L2NvbW1vbi5jCj4gPiArKysgYi9hcmNoL2FybS9t YWNoLXMzYzY0eHgvY29tbW9uLmMKPiA+IEBAIC01MCw3ICs1MCw2IEBACj4gPgo+ID4gICNpbmNs dWRlICJjb21tb24uaCIKPiA+ICAjaW5jbHVkZSAiaXJxLXVhcnQuaCIKPiA+IC0jaW5jbHVkZSAi d2F0Y2hkb2ctcmVzZXQuaCIKPiA+Cj4gPiAgLyogRXh0ZXJuYWwgY2xvY2sgZnJlcXVlbmN5ICov Cj4gPiAgc3RhdGljIHVuc2lnbmVkIGxvbmcgeHRhbF9mIF9fcm9fYWZ0ZXJfaW5pdCA9IDEyMDAw MDAwOwo+ID4gQEAgLTIzMiwxMCArMjMxLDExIEBAIHZvaWQgX19pbml0IHMzYzY0eHhfaW5pdF9p cnEodTMyIHZpYzBfdmFsaWQsIHUzMiB2aWMxX3ZhbGlkKQo+ID4gICAgICAgICAvKgo+ID4gICAg ICAgICAgKiBGSVhNRTogdGhlcmUgaXMgbm8gYmV0dGVyIHBsYWNlIHRvIHB1dCB0aGlzIGF0IHRo ZSBtb21lbnQKPiA+ICAgICAgICAgICogKHMzYzY0eHhfY2xrX2luaXQgbmVlZHMgaW9yZW1hcCBh bmQgbXVzdCBoYXBwZW4gYmVmb3JlIGluaXRfdGltZQo+ID4gLSAgICAgICAgKiBzYW1zdW5nX3dk dF9yZXNldF9pbml0IG5lZWRzIGNsb2NrcykKPiA+ICsgICAgICAgICogc2Ftc3VuZ193ZHRfcmVz ZXRfaW5pdCBuZWVkcyBjbG9ja3MpLiAgSG93ZXZlcgo+ID4gKyAgICAgICAgKiBzYW1zdW5nX3dk dF9yZXNldF9pbml0KCkgd2FzIHJlbW92ZWQgaW4gZmF2b3Igb2Ygd2F0Y2hkb2cgZHJpdmVyCj4g PiArICAgICAgICAqIHNvIHRoaXMgc2hvdWxkIGJlIHJldmlzZWQuCj4gCj4gVGhpcyBsZWF2ZXMg dGhlIGNvbW1lbnQgcmVmZXJyaW5nIHRvIGFuIGluZXhpc3RlbnQgZnVuY3Rpb24uCgpZZXMsIEkg bGVmdCBpdCBhcyBhIHJlZmVyZW5jZS9yZWFzb24uIEFsdGhvdWdoIG1pZ2h0IGJlIHF1aXRlIGNv bmZ1c2luZwpub3cuLi4KCj4gCj4gSSB3b25kZXIgaWYgdGhpcyBiZWluZyBoZXJlIGlzIGFjdHVh bGx5IGEgcHJvYmxlbSBhdCBhbGwuIEl0J3MgbGVnYWN5Cj4gY29kZSBhbmQgcHJvYmFibHkgdGhl cmUgaXNuJ3QgbXVjaCB2YWx1ZSBpbiByZXNodWZmbGluZyBpdCBmdXJ0aGVyLgo+IFJhdGhlciB0 aGFuIHRoYXQsIHdlIHdvdWxkIHByb2JhYmx5IHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgZXZlcnl0 aGluZwo+IG1pZ3JhdGVkIHRvIERUIGFuZCBqdXN0IGRyb3AgdGhlIGJvYXJkIGZpbGVzLgoKTWF5 YmUgbGV0J3MgcmVtb3ZlIHRoZSBGSVhNRSBhbmQgbGVhdmUgdGhlIGNsb2NrIGluaXQuIFNpbmNl IGFsbCB0aGVzZQp0aW1lcyBubyBvbmUgZml4ZWQgdGhlIEZJWE1FLCBzbyBub3cgd2l0aCBsaW1p dGVkIGhhcmR3YXJlIGFjY2VzcyBJIGRvCm5vdCBleHBlY3QgYW55IG1vdmVtZW50cyBoZXJlLgoK PiAKPiA+ICAgICAgICAgICovCj4gPiAgICAgICAgIHMzYzY0eHhfY2xrX2luaXQoTlVMTCwgeHRh bF9mLCB4dXNieHRpX2YsIHNvY19pc19zM2M2NDAwKCksIFMzQ19WQV9TWVMpOwo+ID4gLSAgICAg ICBzYW1zdW5nX3dkdF9yZXNldF9pbml0KFMzQ19WQV9XQVRDSERPRyk7Cj4gPgo+ID4gICAgICAg ICBwcmludGsoS0VSTl9ERUJVRyAiJXM6IGluaXRpYWxpc2luZyBpbnRlcnJ1cHRzXG4iLCBfX2Z1 bmNfXyk7Cj4gPgo+ID4gQEAgLTQyOSwxMiArNDI5LDMgQEAgc3RhdGljIGludCBfX2luaXQgczNj NjR4eF9pbml0X2lycV9laW50KHZvaWQpCj4gPiAgICAgICAgIHJldHVybiAwOwo+ID4gIH0KPiA+ ICBhcmNoX2luaXRjYWxsKHMzYzY0eHhfaW5pdF9pcnFfZWludCk7Cj4gPiAtCj4gPiAtdm9pZCBz M2M2NHh4X3Jlc3RhcnQoZW51bSByZWJvb3RfbW9kZSBtb2RlLCBjb25zdCBjaGFyICpjbWQpCj4g PiAtewo+ID4gLSAgICAgICBpZiAobW9kZSAhPSBSRUJPT1RfU09GVCkKPiA+IC0gICAgICAgICAg ICAgICBzYW1zdW5nX3dkdF9yZXNldCgpOwo+ID4gLQo+ID4gLSAgICAgICAvKiBpZiBhbGwgZWxz ZSBmYWlscywgb3IgbW9kZSB3YXMgZm9yIHNvZnQsIGp1bXAgdG8gMCAqLwo+ID4gLSAgICAgICBz b2Z0X3Jlc3RhcnQoMCk7Cj4gCj4gRG9lcyB0aGlzIHJlbW92ZSB0aGUgc29mdCByZWJvb3QgY2Fw YWJpbGl0eT8gSSdtIG5vdCBzdXJlIGhvdyBtdWNoIG9mCj4gYSBwcm9ibGVtIHRoYXQgd291bGQg YmUsIHRob3VnaC4KCjEuIE5vIG9uZSBjYXJlZCBhYm91dCBpdCBpbiBmNjM2MWM2YjM4ODAgOikK Mi4gRXh5bm9zIGRvZXMgbm90IGhhdmUgaXQKMy4gRG9lcyBzb2Z0X3Jlc3RhcnQgcmVhbGx5IHdv cms/IEl0IHdvdWxkIGJlIHdvcnRoIHRvIGtlZXAgaXQgaWYgbW9yZQogICBvciBsZXNzIGl0IHdh cyB3b3JraW5nLgoKQmVzdCByZWdhcmRzLApLcnp5c3p0b2YKCj4gCj4gW3NuaXBdCj4gPiBkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2M2NHh4L21hY2gtczNjNjR4eC1kdC5jIGIvYXJjaC9h cm0vbWFjaC1zM2M2NHh4L21hY2gtczNjNjR4eC1kdC5jCj4gPiBpbmRleCAxNzI0ZjVlYTVjNDYu LjA5YzRlODc0MjYyOSAxMDA2NDQKPiA+IC0tLSBhL2FyY2gvYXJtL21hY2gtczNjNjR4eC9tYWNo LXMzYzY0eHgtZHQuYwo+ID4gKysrIGIvYXJjaC9hcm0vbWFjaC1zM2M2NHh4L21hY2gtczNjNjR4 eC1kdC5jCj4gPiBAQCAtMTIsNyArMTIsNiBAQAo+ID4gICNpbmNsdWRlIDxtYWNoL21hcC5oPgo+ ID4KPiA+ICAjaW5jbHVkZSAiY29tbW9uLmgiCj4gPiAtI2luY2x1ZGUgIndhdGNoZG9nLXJlc2V0 LmgiCj4gPgo+ID4gIC8qCj4gPiAgICogSU8gbWFwcGluZyBmb3Igc2hhcmVkIHN5c3RlbSBjb250 cm9sbGVyIElQLgo+ID4gQEAgLTM5LDIwICszOCw2IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBzM2M2 NHh4X2R0X21hcF9pbyh2b2lkKQo+ID4gICAgICAgICAgICAgICAgIHBhbmljKCJTb0MgaXMgbm90 IFMzQzY0eHghIik7Cj4gPiAgfQo+ID4KPiA+IC1zdGF0aWMgdm9pZCBfX2luaXQgczNjNjR4eF9k dF9pbml0X21hY2hpbmUodm9pZCkKPiA+IC17Cj4gPiAtICAgICAgIHNhbXN1bmdfd2R0X3Jlc2V0 X29mX2luaXQoKTsKPiA+IC19Cj4gPiAtCj4gPiAtc3RhdGljIHZvaWQgczNjNjR4eF9kdF9yZXN0 YXJ0KGVudW0gcmVib290X21vZGUgbW9kZSwgY29uc3QgY2hhciAqY21kKQo+ID4gLXsKPiA+IC0g ICAgICAgaWYgKG1vZGUgIT0gUkVCT09UX1NPRlQpCj4gPiAtICAgICAgICAgICAgICAgc2Ftc3Vu Z193ZHRfcmVzZXQoKTsKPiA+IC0KPiA+IC0gICAgICAgLyogaWYgYWxsIGVsc2UgZmFpbHMsIG9y IG1vZGUgd2FzIGZvciBzb2Z0LCBqdW1wIHRvIDAgKi8KPiA+IC0gICAgICAgc29mdF9yZXN0YXJ0 KDApOwo+IAo+IERpdHRvLgo+IAo+IEJlc3QgcmVnYXJkcywKPiBUb21hc3oKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK