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 91FD0CDB482 for ; Mon, 16 Oct 2023 09:26:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231971AbjJPJ0O (ORCPT ); Mon, 16 Oct 2023 05:26:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38970 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232661AbjJPJ0N (ORCPT ); Mon, 16 Oct 2023 05:26:13 -0400 Received: from wout1-smtp.messagingengine.com (wout1-smtp.messagingengine.com [64.147.123.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4B235AD for ; Mon, 16 Oct 2023 02:26:10 -0700 (PDT) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 12B9B320098C; Mon, 16 Oct 2023 05:26:05 -0400 (EDT) Received: from imap51 ([10.202.2.101]) by compute5.internal (MEProxy); Mon, 16 Oct 2023 05:26:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm2; t= 1697448365; x=1697534765; bh=p7PcE01KHeRoR2ct5bCU2kxE+dndvpf8ZTa WPUxw4zQ=; b=G7BWhK50PXn7HUrtwW0hBhuYo+v1uXdHdEfhs6sV1XmexO289Le KXkdtSHpL8mGgtT0pJa4FI4/7oaS4V0HujMzi9PBCM/OTq6IDbd39iY+uf4vKZa2 kL38FI1K3LSFqbbd35p7mVQOUYBJS7tOmlKQG8rTxFXpJVxmyBEENExYQL7oZr1M TS5rx3hhj/WbrefUNTB1o3YNbzY0osFmvqdNeXuWcSxlIYjqiPy0zmil8Tveb+Pf ije2DyiD7wfELNxYOoQJCejKQPLbpimUjW/lLVwfog6xzETnfVZR7czSX5K/jE7D Xs6iAQ1k9KsjWoAUcyq42x4cQKKH/oUPD5A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1697448365; x=1697534765; bh=p7PcE01KHeRoR2ct5bCU2kxE+dndvpf8ZTa WPUxw4zQ=; b=tPkU9lhofLWbYMyq6t2yN55aGidPw69xQzXEpX/mzQ5lyHG7Jre S+0I80uGXGAVXkp/mkflWcZlRyJ886A4mQ9G6EGC0ZcvLquyFBwuxdGW+E3ACcKL GF63w6I0K20W3ReHlrsDAFz5LyZ0Mre21aNs3gLHQkGDCZzphF5EdZvrvmbhjEuy ylRxaFaS+/2MO8lwbvVta5xJEnEPrGcmfzqaI9QtK1pyL6ABkHYUQnZRiiswMsP/ 3DoYrTE4mWYrg+QjykF6XqNK8rZuhOK4c0sVmxR318KEML39s3ODpZNDSCV9rUj4 1dWc4PsGkfOi3bezbXfeyLIrRa1uUQa/LcA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrjedtgddufecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgggkfgjfhffhffvvefutgfgsehtqhertderreejnecuhfhrohhmpedftehr nhguuceuvghrghhmrghnnhdfuceorghrnhgusegrrhhnuggsrdguvgeqnecuggftrfgrth htvghrnhepgeefjeehvdelvdffieejieejiedvvdfhleeivdelveehjeelteegudektdfg jeevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprg hrnhgusegrrhhnuggsrdguvg X-ME-Proxy: Feedback-ID: i56a14606:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id AC02AB60089; Mon, 16 Oct 2023 05:26:04 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-1019-ged83ad8595-fm-20231002.001-ged83ad85 MIME-Version: 1.0 Message-Id: <4c27130c-e924-4f24-b833-794e0acac858@app.fastmail.com> In-Reply-To: <20231009103037.j44gkzqv7cpn4zpu@pengutronix.de> References: <20231008200143.196369-1-u.kleine-koenig@pengutronix.de> <20231008200143.196369-2-u.kleine-koenig@pengutronix.de> <20231009103037.j44gkzqv7cpn4zpu@pengutronix.de> Date: Mon, 16 Oct 2023 11:25:44 +0200 From: "Arnd Bergmann" To: =?UTF-8?Q?Uwe_Kleine-K=C3=B6nig?= Cc: "Masahiro Yamada" , "David Woodhouse" , linux-kbuild@vger.kernel.org, "Richard Weinberger" , "Atsushi Nemoto" , "Greg Kroah-Hartman" , linux-mtd@lists.infradead.org, "Pengutronix Kernel Team" , "Miquel Raynal" , "Andrew Morton" , "Vignesh Raghavendra" Subject: Re: [PATCH 01/20] mtd: rawnand: txx9ndfmc: Mark driver struct with __refdata to prevent section mismatch warning Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org On Mon, Oct 9, 2023, at 12:30, Uwe Kleine-K=C3=B6nig wrote: > On Mon, Oct 09, 2023 at 10:43:46AM +0200, Arnd Bergmann wrote: > > only a slight correction: As not having a remove callback can be fine > and platform_remove() only calls .remove (or .remove_new) when non-NULL > we're not hitting a NULL pointer dereference in the presence of > > .remove =3D __exit_p(somefunc), > > But a problem can arise later if some resource isn't properly freed and > so it might be used at a later point in time which then most likely > oopses. > > I didn't double check Arnd's list, but otherwise I agree to his > analysis. Hi Uwe, Based on a few days of randconfig build testing, the patch below addresses the remaining warnings I get for arm, arm64 and x86 on linux-next. This is a shorter list than the ones that I found in theory, possibly because some of the other ones are only used in built-in code, or because they are never used on these three architectures. Have you already sent patches for (some of) these? Arnd drivers/char/hw_random/mxc-rnga.c | 2 +- drivers/gpu/drm/bridge/ti-tpd12s015.c | 4 += +-- drivers/hwmon/smsc47m1.c | 2 +- drivers/hwtracing/coresight/coresight-etm4x-core.c | 8 += +++---- drivers/media/i2c/et8ek8/et8ek8_driver.c | 4 += +-- drivers/memory/emif.c | 2 +- drivers/mmc/host/davinci_mmc.c | 2 +- drivers/mtd/nand/raw/txx9ndfmc.c | 2 +- drivers/pci/controller/dwc/pci-exynos.c | 4 += +-- drivers/pci/controller/dwc/pcie-kirin.c | 4 += +-- drivers/power/reset/at91-poweroff.c | 2 +- drivers/power/reset/at91-reset.c | 2 +- drivers/power/reset/at91-sama5d2_shdwc.c | 2 +- drivers/rtc/rtc-at91rm9200.c | 2 +- drivers/rtc/rtc-imxdi.c | 2 +- drivers/rtc/rtc-mv.c | 2 +- drivers/rtc/rtc-pxa.c | 2 +- drivers/rtc/rtc-sh.c | 2 +- drivers/video/fbdev/atmel_lcdfb.c | 2 +- drivers/video/fbdev/omap2/omapfb/displays/connector-analog-tv.c | 2 +- drivers/video/fbdev/omap2/omapfb/displays/connector-dvi.c | 2 +- drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c | 2 +- drivers/video/fbdev/omap2/omapfb/displays/encoder-opa362.c | 2 +- drivers/video/fbdev/omap2/omapfb/displays/encoder-tfp410.c | 2 +- drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c | 2 +- drivers/video/fbdev/omap2/omapfb/displays/panel-dpi.c | 2 +- drivers/video/fbdev/omap2/omapfb/displays/panel-dsi-cm.c | 2 +- .../video/fbdev/omap2/omapfb/displays/panel-sharp-ls037v7dw01.c | 2 +- drivers/virt/coco/sev-guest/sev-guest.c | 2 +- drivers/watchdog/at91sam9_wdt.c | 2 +- sound/soc/codecs/tlv320adc3xxx.c | 4 += +-- 31 files changed, 39 insertions(+), 39 deletions(-) diff --git a/drivers/char/hw_random/mxc-rnga.c b/drivers/char/hw_random/= mxc-rnga.c index 008763c988ed8..fc23777fffc90 100644 --- a/drivers/char/hw_random/mxc-rnga.c +++ b/drivers/char/hw_random/mxc-rnga.c @@ -194,7 +194,7 @@ static const struct of_device_id mxc_rnga_of_match[]= =3D { }; MODULE_DEVICE_TABLE(of, mxc_rnga_of_match); =20 -static struct platform_driver mxc_rnga_driver =3D { +static struct platform_driver mxc_rnga_driver __refdata =3D { .driver =3D { .name =3D "mxc_rnga", .of_match_table =3D mxc_rnga_of_match, diff --git a/drivers/gpu/drm/bridge/ti-tpd12s015.c b/drivers/gpu/drm/bri= dge/ti-tpd12s015.c index e0e015243a602..ecd0e0db68af3 100644 --- a/drivers/gpu/drm/bridge/ti-tpd12s015.c +++ b/drivers/gpu/drm/bridge/ti-tpd12s015.c @@ -179,7 +179,7 @@ static int tpd12s015_probe(struct platform_device *p= dev) return 0; } =20 -static int __exit tpd12s015_remove(struct platform_device *pdev) +static int tpd12s015_remove(struct platform_device *pdev) { struct tpd12s015_device *tpd =3D platform_get_drvdata(pdev); =20 @@ -197,7 +197,7 @@ MODULE_DEVICE_TABLE(of, tpd12s015_of_match); =20 static struct platform_driver tpd12s015_driver =3D { .probe =3D tpd12s015_probe, - .remove =3D __exit_p(tpd12s015_remove), + .remove =3D tpd12s015_remove, .driver =3D { .name =3D "tpd12s015", .of_match_table =3D tpd12s015_of_match, diff --git a/drivers/hwmon/smsc47m1.c b/drivers/hwmon/smsc47m1.c index 37531b5c82547..ff454f4fb0ffb 100644 --- a/drivers/hwmon/smsc47m1.c +++ b/drivers/hwmon/smsc47m1.c @@ -850,7 +850,7 @@ static int __exit smsc47m1_remove(struct platform_de= vice *pdev) return 0; } =20 -static struct platform_driver smsc47m1_driver =3D { +static struct platform_driver smsc47m1_driver __refdata =3D { .driver =3D { .name =3D DRVNAME, }, diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/driver= s/hwtracing/coresight/coresight-etm4x-core.c index 77b0271ce6eb9..69e292ca49f0a 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c @@ -2224,7 +2224,7 @@ static void clear_etmdrvdata(void *info) per_cpu(delayed_probe, cpu) =3D NULL; } =20 -static void __exit etm4_remove_dev(struct etmv4_drvdata *drvdata) +static void etm4_remove_dev(struct etmv4_drvdata *drvdata) { bool had_delayed_probe; /* @@ -2253,7 +2253,7 @@ static void __exit etm4_remove_dev(struct etmv4_dr= vdata *drvdata) } } =20 -static void __exit etm4_remove_amba(struct amba_device *adev) +static void etm4_remove_amba(struct amba_device *adev) { struct etmv4_drvdata *drvdata =3D dev_get_drvdata(&adev->dev); =20 @@ -2261,7 +2261,7 @@ static void __exit etm4_remove_amba(struct amba_de= vice *adev) etm4_remove_dev(drvdata); } =20 -static int __exit etm4_remove_platform_dev(struct platform_device *pdev) +static int etm4_remove_platform_dev(struct platform_device *pdev) { struct etmv4_drvdata *drvdata =3D dev_get_drvdata(&pdev->dev); =20 @@ -2305,7 +2305,7 @@ static const struct amba_id etm4_ids[] =3D { =20 MODULE_DEVICE_TABLE(amba, etm4_ids); =20 -static struct amba_driver etm4x_amba_driver =3D { +static struct amba_driver etm4x_amba_driver __refdata =3D { .drv =3D { .name =3D "coresight-etm4x", .owner =3D THIS_MODULE, diff --git a/drivers/media/i2c/et8ek8/et8ek8_driver.c b/drivers/media/i2= c/et8ek8/et8ek8_driver.c index d6fc843f9368e..0d6f0f8506f76 100644 --- a/drivers/media/i2c/et8ek8/et8ek8_driver.c +++ b/drivers/media/i2c/et8ek8/et8ek8_driver.c @@ -1460,7 +1460,7 @@ static int et8ek8_probe(struct i2c_client *client) return ret; } =20 -static void __exit et8ek8_remove(struct i2c_client *client) +static void et8ek8_remove(struct i2c_client *client) { struct v4l2_subdev *subdev =3D i2c_get_clientdata(client); struct et8ek8_sensor *sensor =3D to_et8ek8_sensor(subdev); @@ -1502,7 +1502,7 @@ static struct i2c_driver et8ek8_i2c_driver =3D { .of_match_table =3D et8ek8_of_table, }, .probe =3D et8ek8_probe, - .remove =3D __exit_p(et8ek8_remove), + .remove =3D et8ek8_remove, .id_table =3D et8ek8_id_table, }; =20 diff --git a/drivers/memory/emif.c b/drivers/memory/emif.c index f305643209f03..b0378dca13b85 100644 --- a/drivers/memory/emif.c +++ b/drivers/memory/emif.c @@ -1184,7 +1184,7 @@ static const struct of_device_id emif_of_match[] =3D= { MODULE_DEVICE_TABLE(of, emif_of_match); #endif =20 -static struct platform_driver emif_driver =3D { +static struct platform_driver emif_driver __refdata =3D { .remove =3D __exit_p(emif_remove), .shutdown =3D emif_shutdown, .driver =3D { diff --git a/drivers/mmc/host/davinci_mmc.c b/drivers/mmc/host/davinci_m= mc.c index ee3b1a4e08485..f35436e3ffc1e 100644 --- a/drivers/mmc/host/davinci_mmc.c +++ b/drivers/mmc/host/davinci_mmc.c @@ -1391,7 +1391,7 @@ static const struct dev_pm_ops davinci_mmcsd_pm =3D= { #define davinci_mmcsd_pm_ops NULL #endif =20 -static struct platform_driver davinci_mmcsd_driver =3D { +static struct platform_driver davinci_mmcsd_driver __refdata =3D { .driver =3D { .name =3D "davinci_mmc", .probe_type =3D PROBE_PREFER_ASYNCHRONOUS, diff --git a/drivers/mtd/nand/raw/txx9ndfmc.c b/drivers/mtd/nand/raw/txx= 9ndfmc.c index eddcc0728a676..cb8bd5324e1d3 100644 --- a/drivers/mtd/nand/raw/txx9ndfmc.c +++ b/drivers/mtd/nand/raw/txx9ndfmc.c @@ -406,7 +406,7 @@ static int txx9ndfmc_resume(struct platform_device *= dev) #define txx9ndfmc_resume NULL #endif =20 -static struct platform_driver txx9ndfmc_driver =3D { +static struct platform_driver txx9ndfmc_driver __refdata =3D { .remove =3D __exit_p(txx9ndfmc_remove), .resume =3D txx9ndfmc_resume, .driver =3D { diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/contr= oller/dwc/pci-exynos.c index 6319082301d68..c6bede3469320 100644 --- a/drivers/pci/controller/dwc/pci-exynos.c +++ b/drivers/pci/controller/dwc/pci-exynos.c @@ -375,7 +375,7 @@ static int exynos_pcie_probe(struct platform_device = *pdev) return ret; } =20 -static int __exit exynos_pcie_remove(struct platform_device *pdev) +static int exynos_pcie_remove(struct platform_device *pdev) { struct exynos_pcie *ep =3D platform_get_drvdata(pdev); =20 @@ -431,7 +431,7 @@ static const struct of_device_id exynos_pcie_of_matc= h[] =3D { =20 static struct platform_driver exynos_pcie_driver =3D { .probe =3D exynos_pcie_probe, - .remove =3D __exit_p(exynos_pcie_remove), + .remove =3D exynos_pcie_remove, .driver =3D { .name =3D "exynos-pcie", .of_match_table =3D exynos_pcie_of_match, diff --git a/drivers/pci/controller/dwc/pcie-kirin.c b/drivers/pci/contr= oller/dwc/pcie-kirin.c index d93bc29069502..2ee146767971c 100644 --- a/drivers/pci/controller/dwc/pcie-kirin.c +++ b/drivers/pci/controller/dwc/pcie-kirin.c @@ -741,7 +741,7 @@ static int kirin_pcie_power_on(struct platform_devic= e *pdev, return ret; } =20 -static int __exit kirin_pcie_remove(struct platform_device *pdev) +static int kirin_pcie_remove(struct platform_device *pdev) { struct kirin_pcie *kirin_pcie =3D platform_get_drvdata(pdev); =20 @@ -818,7 +818,7 @@ static int kirin_pcie_probe(struct platform_device *= pdev) =20 static struct platform_driver kirin_pcie_driver =3D { .probe =3D kirin_pcie_probe, - .remove =3D __exit_p(kirin_pcie_remove), + .remove =3D kirin_pcie_remove, .driver =3D { .name =3D "kirin-pcie", .of_match_table =3D kirin_pcie_match, diff --git a/drivers/power/reset/at91-poweroff.c b/drivers/power/reset/a= t91-poweroff.c index dd5399785b691..061e3e2af751e 100644 --- a/drivers/power/reset/at91-poweroff.c +++ b/drivers/power/reset/at91-poweroff.c @@ -223,7 +223,7 @@ static const struct of_device_id at91_poweroff_of_ma= tch[] =3D { }; MODULE_DEVICE_TABLE(of, at91_poweroff_of_match); =20 -static struct platform_driver at91_poweroff_driver =3D { +static struct platform_driver at91_poweroff_driver __refdata =3D { .remove =3D __exit_p(at91_poweroff_remove), .driver =3D { .name =3D "at91-poweroff", diff --git a/drivers/power/reset/at91-reset.c b/drivers/power/reset/at91= -reset.c index aa9b012d3d00b..5750e58b7daf9 100644 --- a/drivers/power/reset/at91-reset.c +++ b/drivers/power/reset/at91-reset.c @@ -427,7 +427,7 @@ static int __exit at91_reset_remove(struct platform_= device *pdev) return 0; } =20 -static struct platform_driver at91_reset_driver =3D { +static struct platform_driver at91_reset_driver __refdata =3D { .remove =3D __exit_p(at91_reset_remove), .driver =3D { .name =3D "at91-reset", diff --git a/drivers/power/reset/at91-sama5d2_shdwc.c b/drivers/power/re= set/at91-sama5d2_shdwc.c index e76b102b57b1f..0a6bc0ad2310d 100644 --- a/drivers/power/reset/at91-sama5d2_shdwc.c +++ b/drivers/power/reset/at91-sama5d2_shdwc.c @@ -441,7 +441,7 @@ static int __exit at91_shdwc_remove(struct platform_= device *pdev) return 0; } =20 -static struct platform_driver at91_shdwc_driver =3D { +static struct platform_driver at91_shdwc_driver __refdata =3D { .remove =3D __exit_p(at91_shdwc_remove), .driver =3D { .name =3D "at91-shdwc", diff --git a/drivers/rtc/rtc-at91rm9200.c b/drivers/rtc/rtc-at91rm9200.c index add4f71d7b3b9..04eed377c7eb0 100644 --- a/drivers/rtc/rtc-at91rm9200.c +++ b/drivers/rtc/rtc-at91rm9200.c @@ -635,7 +635,7 @@ static int at91_rtc_resume(struct device *dev) =20 static SIMPLE_DEV_PM_OPS(at91_rtc_pm_ops, at91_rtc_suspend, at91_rtc_re= sume); =20 -static struct platform_driver at91_rtc_driver =3D { +static struct platform_driver at91_rtc_driver __refdata =3D { .remove =3D __exit_p(at91_rtc_remove), .shutdown =3D at91_rtc_shutdown, .driver =3D { diff --git a/drivers/rtc/rtc-imxdi.c b/drivers/rtc/rtc-imxdi.c index 4b712e5ab08a0..05f26c5fcc955 100644 --- a/drivers/rtc/rtc-imxdi.c +++ b/drivers/rtc/rtc-imxdi.c @@ -851,7 +851,7 @@ static const struct of_device_id dryice_dt_ids[] =3D= { =20 MODULE_DEVICE_TABLE(of, dryice_dt_ids); =20 -static struct platform_driver dryice_rtc_driver =3D { +static struct platform_driver dryice_rtc_driver __refdata =3D { .driver =3D { .name =3D "imxdi_rtc", .of_match_table =3D dryice_dt_ids, diff --git a/drivers/rtc/rtc-mv.c b/drivers/rtc/rtc-mv.c index 6c526e2ec56d8..0d6226f9a4b46 100644 --- a/drivers/rtc/rtc-mv.c +++ b/drivers/rtc/rtc-mv.c @@ -303,7 +303,7 @@ static const struct of_device_id rtc_mv_of_match_tab= le[] =3D { MODULE_DEVICE_TABLE(of, rtc_mv_of_match_table); #endif =20 -static struct platform_driver mv_rtc_driver =3D { +static struct platform_driver mv_rtc_driver __refdata =3D { .remove =3D __exit_p(mv_rtc_remove), .driver =3D { .name =3D "rtc-mv", diff --git a/drivers/rtc/rtc-pxa.c b/drivers/rtc/rtc-pxa.c index e400c78252e82..be0b36dd9d150 100644 --- a/drivers/rtc/rtc-pxa.c +++ b/drivers/rtc/rtc-pxa.c @@ -403,7 +403,7 @@ static int pxa_rtc_resume(struct device *dev) =20 static SIMPLE_DEV_PM_OPS(pxa_rtc_pm_ops, pxa_rtc_suspend, pxa_rtc_resum= e); =20 -static struct platform_driver pxa_rtc_driver =3D { +static struct platform_driver pxa_rtc_driver __refdata =3D { .remove =3D __exit_p(pxa_rtc_remove), .driver =3D { .name =3D "pxa-rtc", diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c index 613a5a3a09cf3..96dd3a73707d6 100644 --- a/drivers/rtc/rtc-sh.c +++ b/drivers/rtc/rtc-sh.c @@ -668,7 +668,7 @@ static const struct of_device_id sh_rtc_of_match[] =3D= { }; MODULE_DEVICE_TABLE(of, sh_rtc_of_match); =20 -static struct platform_driver sh_rtc_platform_driver =3D { +static struct platform_driver sh_rtc_platform_driver __refdata =3D { .driver =3D { .name =3D DRV_NAME, .pm =3D &sh_rtc_pm_ops, diff --git a/drivers/video/fbdev/atmel_lcdfb.c b/drivers/video/fbdev/atm= el_lcdfb.c index a908db2334098..aad6efae964ad 100644 --- a/drivers/video/fbdev/atmel_lcdfb.c +++ b/drivers/video/fbdev/atmel_lcdfb.c @@ -1300,7 +1300,7 @@ static int atmel_lcdfb_resume(struct platform_devi= ce *pdev) #define atmel_lcdfb_resume NULL #endif =20 -static struct platform_driver atmel_lcdfb_driver =3D { +static struct platform_driver atmel_lcdfb_driver __refdata =3D { .remove =3D __exit_p(atmel_lcdfb_remove), .suspend =3D atmel_lcdfb_suspend, .resume =3D atmel_lcdfb_resume, diff --git a/drivers/video/fbdev/omap2/omapfb/displays/connector-analog-= tv.c b/drivers/video/fbdev/omap2/omapfb/displays/connector-analog-tv.c index 0daaf9f89bab5..3f555b65e81a0 100644 --- a/drivers/video/fbdev/omap2/omapfb/displays/connector-analog-tv.c +++ b/drivers/video/fbdev/omap2/omapfb/displays/connector-analog-tv.c @@ -245,7 +245,7 @@ static const struct of_device_id tvc_of_match[] =3D { =20 MODULE_DEVICE_TABLE(of, tvc_of_match); =20 -static struct platform_driver tvc_connector_driver =3D { +static struct platform_driver tvc_connector_driver __refdata =3D { .probe =3D tvc_probe, .remove =3D __exit_p(tvc_remove), .driver =3D { diff --git a/drivers/video/fbdev/omap2/omapfb/displays/connector-dvi.c b= /drivers/video/fbdev/omap2/omapfb/displays/connector-dvi.c index c8ad3ef42bd31..dfcfba9b6efa7 100644 --- a/drivers/video/fbdev/omap2/omapfb/displays/connector-dvi.c +++ b/drivers/video/fbdev/omap2/omapfb/displays/connector-dvi.c @@ -328,7 +328,7 @@ static const struct of_device_id dvic_of_match[] =3D= { =20 MODULE_DEVICE_TABLE(of, dvic_of_match); =20 -static struct platform_driver dvi_connector_driver =3D { +static struct platform_driver dvi_connector_driver __refdata =3D { .probe =3D dvic_probe, .remove =3D __exit_p(dvic_remove), .driver =3D { diff --git a/drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c = b/drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c index 8f9ff9fb4ca4c..2ed3103005034 100644 --- a/drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c +++ b/drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c @@ -272,7 +272,7 @@ static const struct of_device_id hdmic_of_match[] =3D= { =20 MODULE_DEVICE_TABLE(of, hdmic_of_match); =20 -static struct platform_driver hdmi_connector_driver =3D { +static struct platform_driver hdmi_connector_driver __refdata =3D { .probe =3D hdmic_probe, .remove =3D __exit_p(hdmic_remove), .driver =3D { diff --git a/drivers/video/fbdev/omap2/omapfb/displays/encoder-opa362.c = b/drivers/video/fbdev/omap2/omapfb/displays/encoder-opa362.c index dd29dc5c77ec8..cc19eef9a4609 100644 --- a/drivers/video/fbdev/omap2/omapfb/displays/encoder-opa362.c +++ b/drivers/video/fbdev/omap2/omapfb/displays/encoder-opa362.c @@ -258,7 +258,7 @@ static const struct of_device_id opa362_of_match[] =3D= { }; MODULE_DEVICE_TABLE(of, opa362_of_match); =20 -static struct platform_driver opa362_driver =3D { +static struct platform_driver opa362_driver __refdata =3D { .probe =3D opa362_probe, .remove =3D __exit_p(opa362_remove), .driver =3D { diff --git a/drivers/video/fbdev/omap2/omapfb/displays/encoder-tfp410.c = b/drivers/video/fbdev/omap2/omapfb/displays/encoder-tfp410.c index 7bac420169a69..4900edaf1068d 100644 --- a/drivers/video/fbdev/omap2/omapfb/displays/encoder-tfp410.c +++ b/drivers/video/fbdev/omap2/omapfb/displays/encoder-tfp410.c @@ -245,7 +245,7 @@ static const struct of_device_id tfp410_of_match[] =3D= { =20 MODULE_DEVICE_TABLE(of, tfp410_of_match); =20 -static struct platform_driver tfp410_driver =3D { +static struct platform_driver tfp410_driver __refdata =3D { .probe =3D tfp410_probe, .remove =3D __exit_p(tfp410_remove), .driver =3D { diff --git a/drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015= .c b/drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c index 67f0c9250e9e4..648bb1367dc5a 100644 --- a/drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c +++ b/drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c @@ -311,7 +311,7 @@ static const struct of_device_id tpd_of_match[] =3D { =20 MODULE_DEVICE_TABLE(of, tpd_of_match); =20 -static struct platform_driver tpd_driver =3D { +static struct platform_driver tpd_driver __refdata =3D { .probe =3D tpd_probe, .remove =3D __exit_p(tpd_remove), .driver =3D { diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-dpi.c b/dri= vers/video/fbdev/omap2/omapfb/displays/panel-dpi.c index 9790053c5877c..e39becd4d8ecf 100644 --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-dpi.c +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-dpi.c @@ -234,7 +234,7 @@ static const struct of_device_id panel_dpi_of_match[= ] =3D { =20 MODULE_DEVICE_TABLE(of, panel_dpi_of_match); =20 -static struct platform_driver panel_dpi_driver =3D { +static struct platform_driver panel_dpi_driver __refdata =3D { .probe =3D panel_dpi_probe, .remove =3D __exit_p(panel_dpi_remove), .driver =3D { diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-dsi-cm.c b/= drivers/video/fbdev/omap2/omapfb/displays/panel-dsi-cm.c index 77fce1223a640..5d8b6daeb199b 100644 --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-dsi-cm.c +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-dsi-cm.c @@ -1280,7 +1280,7 @@ static const struct of_device_id dsicm_of_match[] = =3D { =20 MODULE_DEVICE_TABLE(of, dsicm_of_match); =20 -static struct platform_driver dsicm_driver =3D { +static struct platform_driver dsicm_driver __refdata =3D { .probe =3D dsicm_probe, .remove =3D __exit_p(dsicm_remove), .driver =3D { diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-sharp-ls037= v7dw01.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-sharp-ls037v7= dw01.c index cc30758300e25..9181008c5c79c 100644 --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-sharp-ls037v7dw01.c +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-sharp-ls037v7dw01.c @@ -315,7 +315,7 @@ static const struct of_device_id sharp_ls_of_match[]= =3D { =20 MODULE_DEVICE_TABLE(of, sharp_ls_of_match); =20 -static struct platform_driver sharp_ls_driver =3D { +static struct platform_driver sharp_ls_driver __refdata =3D { .probe =3D sharp_ls_probe, .remove =3D __exit_p(sharp_ls_remove), .driver =3D { diff --git a/drivers/virt/coco/sev-guest/sev-guest.c b/drivers/virt/coco= /sev-guest/sev-guest.c index 97dbe715e96ad..5b299af5b1867 100644 --- a/drivers/virt/coco/sev-guest/sev-guest.c +++ b/drivers/virt/coco/sev-guest/sev-guest.c @@ -852,7 +852,7 @@ static int __exit sev_guest_remove(struct platform_d= evice *pdev) * support any SEV guest API. As such, even though it has been introduc= ed * with the SEV-SNP support, it is named "sev-guest". */ -static struct platform_driver sev_guest_driver =3D { +static struct platform_driver sev_guest_driver __refdata =3D { .remove =3D __exit_p(sev_guest_remove), .driver =3D { .name =3D "sev-guest", diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9= _wdt.c index b111b28acb948..b55ae7998a8d3 100644 --- a/drivers/watchdog/at91sam9_wdt.c +++ b/drivers/watchdog/at91sam9_wdt.c @@ -392,7 +392,7 @@ static const struct of_device_id at91_wdt_dt_ids[] =3D= { MODULE_DEVICE_TABLE(of, at91_wdt_dt_ids); #endif =20 -static struct platform_driver at91wdt_driver =3D { +static struct platform_driver at91wdt_driver __refdata =3D { .remove =3D __exit_p(at91wdt_remove), .driver =3D { .name =3D "at91_wdt", diff --git a/sound/soc/codecs/tlv320adc3xxx.c b/sound/soc/codecs/tlv320a= dc3xxx.c index 420bbf588efea..e100cc9f5c192 100644 --- a/sound/soc/codecs/tlv320adc3xxx.c +++ b/sound/soc/codecs/tlv320adc3xxx.c @@ -1429,7 +1429,7 @@ static int adc3xxx_i2c_probe(struct i2c_client *i2= c) return ret; } =20 -static void __exit adc3xxx_i2c_remove(struct i2c_client *client) +static void adc3xxx_i2c_remove(struct i2c_client *client) { struct adc3xxx *adc3xxx =3D i2c_get_clientdata(client); =20 @@ -1452,7 +1452,7 @@ static struct i2c_driver adc3xxx_i2c_driver =3D { .of_match_table =3D tlv320adc3xxx_of_match, }, .probe =3D adc3xxx_i2c_probe, - .remove =3D __exit_p(adc3xxx_i2c_remove), + .remove =3D adc3xxx_i2c_remove, .id_table =3D adc3xxx_i2c_id, }; =20 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 5BA25CDB465 for ; Mon, 16 Oct 2023 09:26:27 +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:Subject:Cc:To:From:Date:References: In-Reply-To:Message-Id:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=xRtuToqtUcYf+mu1IWGa3wHgXx+Hm6FoLDiB1m8YZQw=; b=eyuV+wApCt8/2H RxWKmJq8sv/NK9U52zclEBLRybtYoul+yrhp52t0xLzG6a6I9yp+t7ITVmkuWoZ+nM7jvkGyXzv/Q YckfC6S71ifhEWVFbDRgUeKQdXiWq3UV0WOdo42Id4itXqUTGWCeKSZpJ7uTCL3HOlsKwxYQtYbvX l+3v6Vut+xs3Fgx4+O0sqO1ckxwGTueC09dtLPtXp43vmHl+paiCcnkFKK1+uX6AY3c9ViypDq3TF UTd0fcUgILakfqXs+YH5oi7MF5LNqJNnwECoThfp8Lul8QaIhM0sku+W0F3yC7HAjavAe8O33e5wE l1TRx19yvel4lLJleYew==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qsJrd-008z8w-1G; Mon, 16 Oct 2023 09:26:17 +0000 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qsJrY-008z7N-09 for linux-mtd@lists.infradead.org; Mon, 16 Oct 2023 09:26:15 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 12B9B320098C; Mon, 16 Oct 2023 05:26:05 -0400 (EDT) Received: from imap51 ([10.202.2.101]) by compute5.internal (MEProxy); Mon, 16 Oct 2023 05:26:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm2; t= 1697448365; x=1697534765; bh=p7PcE01KHeRoR2ct5bCU2kxE+dndvpf8ZTa WPUxw4zQ=; b=G7BWhK50PXn7HUrtwW0hBhuYo+v1uXdHdEfhs6sV1XmexO289Le KXkdtSHpL8mGgtT0pJa4FI4/7oaS4V0HujMzi9PBCM/OTq6IDbd39iY+uf4vKZa2 kL38FI1K3LSFqbbd35p7mVQOUYBJS7tOmlKQG8rTxFXpJVxmyBEENExYQL7oZr1M TS5rx3hhj/WbrefUNTB1o3YNbzY0osFmvqdNeXuWcSxlIYjqiPy0zmil8Tveb+Pf ije2DyiD7wfELNxYOoQJCejKQPLbpimUjW/lLVwfog6xzETnfVZR7czSX5K/jE7D Xs6iAQ1k9KsjWoAUcyq42x4cQKKH/oUPD5A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1697448365; x=1697534765; bh=p7PcE01KHeRoR2ct5bCU2kxE+dndvpf8ZTa WPUxw4zQ=; b=tPkU9lhofLWbYMyq6t2yN55aGidPw69xQzXEpX/mzQ5lyHG7Jre S+0I80uGXGAVXkp/mkflWcZlRyJ886A4mQ9G6EGC0ZcvLquyFBwuxdGW+E3ACcKL GF63w6I0K20W3ReHlrsDAFz5LyZ0Mre21aNs3gLHQkGDCZzphF5EdZvrvmbhjEuy ylRxaFaS+/2MO8lwbvVta5xJEnEPrGcmfzqaI9QtK1pyL6ABkHYUQnZRiiswMsP/ 3DoYrTE4mWYrg+QjykF6XqNK8rZuhOK4c0sVmxR318KEML39s3ODpZNDSCV9rUj4 1dWc4PsGkfOi3bezbXfeyLIrRa1uUQa/LcA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrjedtgddufecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgggkfgjfhffhffvvefutgfgsehtqhertderreejnecuhfhrohhmpedftehr nhguuceuvghrghhmrghnnhdfuceorghrnhgusegrrhhnuggsrdguvgeqnecuggftrfgrth htvghrnhepgeefjeehvdelvdffieejieejiedvvdfhleeivdelveehjeelteegudektdfg jeevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprg hrnhgusegrrhhnuggsrdguvg X-ME-Proxy: Feedback-ID: i56a14606:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id AC02AB60089; Mon, 16 Oct 2023 05:26:04 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-1019-ged83ad8595-fm-20231002.001-ged83ad85 MIME-Version: 1.0 Message-Id: <4c27130c-e924-4f24-b833-794e0acac858@app.fastmail.com> In-Reply-To: <20231009103037.j44gkzqv7cpn4zpu@pengutronix.de> References: <20231008200143.196369-1-u.kleine-koenig@pengutronix.de> <20231008200143.196369-2-u.kleine-koenig@pengutronix.de> <20231009103037.j44gkzqv7cpn4zpu@pengutronix.de> Date: Mon, 16 Oct 2023 11:25:44 +0200 From: "Arnd Bergmann" To: =?UTF-8?Q?Uwe_Kleine-K=C3=B6nig?= Cc: "Masahiro Yamada" , "David Woodhouse" , linux-kbuild@vger.kernel.org, "Richard Weinberger" , "Atsushi Nemoto" , "Greg Kroah-Hartman" , linux-mtd@lists.infradead.org, "Pengutronix Kernel Team" , "Miquel Raynal" , "Andrew Morton" , "Vignesh Raghavendra" Subject: Re: [PATCH 01/20] mtd: rawnand: txx9ndfmc: Mark driver struct with __refdata to prevent section mismatch warning X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231016_022612_544395_043372FF X-CRM114-Status: GOOD ( 23.22 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org T24gTW9uLCBPY3QgOSwgMjAyMywgYXQgMTI6MzAsIFV3ZSBLbGVpbmUtS8O2bmlnIHdyb3RlOgo+ IE9uIE1vbiwgT2N0IDA5LCAyMDIzIGF0IDEwOjQzOjQ2QU0gKzAyMDAsIEFybmQgQmVyZ21hbm4g d3JvdGU6Cj4KPiBvbmx5IGEgc2xpZ2h0IGNvcnJlY3Rpb246IEFzIG5vdCBoYXZpbmcgYSByZW1v dmUgY2FsbGJhY2sgY2FuIGJlIGZpbmUKPiBhbmQgcGxhdGZvcm1fcmVtb3ZlKCkgb25seSBjYWxs cyAucmVtb3ZlIChvciAucmVtb3ZlX25ldykgd2hlbiBub24tTlVMTAo+IHdlJ3JlIG5vdCBoaXR0 aW5nIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBwcmVzZW5jZSBvZgo+Cj4gCS5y ZW1vdmUgPSBfX2V4aXRfcChzb21lZnVuYyksCj4KPiBCdXQgYSBwcm9ibGVtIGNhbiBhcmlzZSBs YXRlciBpZiBzb21lIHJlc291cmNlIGlzbid0IHByb3Blcmx5IGZyZWVkIGFuZAo+IHNvIGl0IG1p Z2h0IGJlIHVzZWQgYXQgYSBsYXRlciBwb2ludCBpbiB0aW1lIHdoaWNoIHRoZW4gbW9zdCBsaWtl bHkKPiBvb3BzZXMuCj4KPiBJIGRpZG4ndCBkb3VibGUgY2hlY2sgQXJuZCdzIGxpc3QsIGJ1dCBv dGhlcndpc2UgSSBhZ3JlZSB0byBoaXMKPiBhbmFseXNpcy4KCkhpIFV3ZSwKCkJhc2VkIG9uIGEg ZmV3IGRheXMgb2YgcmFuZGNvbmZpZyBidWlsZCB0ZXN0aW5nLCB0aGUgcGF0Y2gKYmVsb3cgYWRk cmVzc2VzIHRoZSByZW1haW5pbmcgd2FybmluZ3MgSSBnZXQgZm9yIGFybSwgYXJtNjQgYW5kCng4 NiBvbiBsaW51eC1uZXh0LiBUaGlzIGlzIGEgc2hvcnRlciBsaXN0IHRoYW4gdGhlIG9uZXMgdGhh dApJIGZvdW5kIGluIHRoZW9yeSwgcG9zc2libHkgYmVjYXVzZSBzb21lIG9mIHRoZSBvdGhlciBv bmVzCmFyZSBvbmx5IHVzZWQgaW4gYnVpbHQtaW4gY29kZSwgb3IgYmVjYXVzZSB0aGV5IGFyZSBu ZXZlciB1c2VkCm9uIHRoZXNlIHRocmVlIGFyY2hpdGVjdHVyZXMuCgpIYXZlIHlvdSBhbHJlYWR5 IHNlbnQgcGF0Y2hlcyBmb3IgKHNvbWUgb2YpIHRoZXNlPwoKICAgICAgQXJuZAoKIGRyaXZlcnMv Y2hhci9od19yYW5kb20vbXhjLXJuZ2EuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMiArLQogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS10cGQxMnMwMTUuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIGRyaXZlcnMvaHdtb24vc21zYzQ3bTEuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy9od3Ry YWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1ldG00eC1jb3JlLmMgICAgICAgICAgICAgICAgfCA4 ICsrKystLS0tCiBkcml2ZXJzL21lZGlhL2kyYy9ldDhlazgvZXQ4ZWs4X2RyaXZlci5jICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDQgKystLQogZHJpdmVycy9tZW1vcnkvZW1pZi5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL21t Yy9ob3N0L2RhdmluY2lfbW1jLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDIgKy0KIGRyaXZlcnMvbXRkL25hbmQvcmF3L3R4eDluZGZtYy5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWV4 eW5vcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIGRyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaWUta2lyaW4uYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNCAr Ky0tCiBkcml2ZXJzL3Bvd2VyL3Jlc2V0L2F0OTEtcG93ZXJvZmYuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvcG93ZXIvcmVzZXQvYXQ5MS1yZXNldC5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy9wb3dlci9yZXNl dC9hdDkxLXNhbWE1ZDJfc2hkd2MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBk cml2ZXJzL3J0Yy9ydGMtYXQ5MXJtOTIwMC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDIgKy0KIGRyaXZlcnMvcnRjL3J0Yy1pbXhkaS5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy9ydGMvcnRjLW12LmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJz L3J0Yy9ydGMtcHhhLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDIgKy0KIGRyaXZlcnMvcnRjL3J0Yy1zaC5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9hdG1lbF9sY2Rm Yi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVv L2ZiZGV2L29tYXAyL29tYXBmYi9kaXNwbGF5cy9jb25uZWN0b3ItYW5hbG9nLXR2LmMgICB8IDIg Ky0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvb21hcDIvb21hcGZiL2Rpc3BsYXlzL2Nvbm5lY3Rvci1k dmkuYyAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlz cGxheXMvY29ubmVjdG9yLWhkbWkuYyAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2 L29tYXAyL29tYXBmYi9kaXNwbGF5cy9lbmNvZGVyLW9wYTM2Mi5jICAgICAgICB8IDIgKy0KIGRy aXZlcnMvdmlkZW8vZmJkZXYvb21hcDIvb21hcGZiL2Rpc3BsYXlzL2VuY29kZXItdGZwNDEwLmMg ICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMv ZW5jb2Rlci10cGQxMnMwMTUuYyAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAy L29tYXBmYi9kaXNwbGF5cy9wYW5lbC1kcGkuYyAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMv dmlkZW8vZmJkZXYvb21hcDIvb21hcGZiL2Rpc3BsYXlzL3BhbmVsLWRzaS1jbS5jICAgICAgICAg IHwgMiArLQogLi4uL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9kaXNwbGF5cy9wYW5lbC1zaGFy cC1sczAzN3Y3ZHcwMS5jICAgfCAyICstCiBkcml2ZXJzL3ZpcnQvY29jby9zZXYtZ3Vlc3Qvc2V2 LWd1ZXN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvd2F0Y2hk b2cvYXQ5MXNhbTlfd2R0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiAr LQogc291bmQvc29jL2NvZGVjcy90bHYzMjBhZGMzeHh4LmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCA0ICsrLS0KIDMxIGZpbGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyks IDM5IGRlbGV0aW9ucygtKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2h3X3JhbmRvbS9teGMt cm5nYS5jIGIvZHJpdmVycy9jaGFyL2h3X3JhbmRvbS9teGMtcm5nYS5jCmluZGV4IDAwODc2M2M5 ODhlZDguLmZjMjM3NzdmZmZjOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9od19yYW5kb20v bXhjLXJuZ2EuYworKysgYi9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL214Yy1ybmdhLmMKQEAgLTE5 NCw3ICsxOTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBteGNfcm5nYV9v Zl9tYXRjaFtdID0gewogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG14Y19ybmdhX29mX21h dGNoKTsKIAotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXhjX3JuZ2FfZHJpdmVyID0g eworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXhjX3JuZ2FfZHJpdmVyIF9fcmVmZGF0 YSA9IHsKIAkuZHJpdmVyID0gewogCQkubmFtZSA9ICJteGNfcm5nYSIsCiAJCS5vZl9tYXRjaF90 YWJsZSA9IG14Y19ybmdhX29mX21hdGNoLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS90aS10cGQxMnMwMTUuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktdHBkMTJzMDE1 LmMKaW5kZXggZTBlMDE1MjQzYTYwMi4uZWNkMGUwZGI2OGFmMyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS90aS10cGQxMnMwMTUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3RpLXRwZDEyczAxNS5jCkBAIC0xNzksNyArMTc5LDcgQEAgc3RhdGljIGludCB0cGQxMnMw MTVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBfX2V4aXQgdHBkMTJzMDE1X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQorc3RhdGljIGludCB0cGQxMnMwMTVfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCiB7CiAJc3RydWN0IHRwZDEyczAxNV9kZXZpY2UgKnRwZCA9IHBsYXRmb3JtX2dl dF9kcnZkYXRhKHBkZXYpOwogCkBAIC0xOTcsNyArMTk3LDcgQEAgTU9EVUxFX0RFVklDRV9UQUJM RShvZiwgdHBkMTJzMDE1X29mX21hdGNoKTsKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2 ZXIgdHBkMTJzMDE1X2RyaXZlciA9IHsKIAkucHJvYmUJPSB0cGQxMnMwMTVfcHJvYmUsCi0JLnJl bW92ZQk9IF9fZXhpdF9wKHRwZDEyczAxNV9yZW1vdmUpLAorCS5yZW1vdmUJPSB0cGQxMnMwMTVf cmVtb3ZlLAogCS5kcml2ZXIJPSB7CiAJCS5uYW1lCT0gInRwZDEyczAxNSIsCiAJCS5vZl9tYXRj aF90YWJsZSA9IHRwZDEyczAxNV9vZl9tYXRjaCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24v c21zYzQ3bTEuYyBiL2RyaXZlcnMvaHdtb24vc21zYzQ3bTEuYwppbmRleCAzNzUzMWI1YzgyNTQ3 Li5mZjQ1NGY0ZmIwZmZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL3Ntc2M0N20xLmMKKysr IGIvZHJpdmVycy9od21vbi9zbXNjNDdtMS5jCkBAIC04NTAsNyArODUwLDcgQEAgc3RhdGljIGlu dCBfX2V4aXQgc21zYzQ3bTFfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNtc2M0N20xX2Ry aXZlciA9IHsKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNtc2M0N20xX2RyaXZlciBf X3JlZmRhdGEgPSB7CiAJLmRyaXZlciA9IHsKIAkJLm5hbWUJPSBEUlZOQU1FLAogCX0sCmRpZmYg LS1naXQgYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWV0bTR4LWNvcmUu YyBiL2RyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtZXRtNHgtY29yZS5jCmlu ZGV4IDc3YjAyNzFjZTZlYjkuLjY5ZTI5MmNhNDlmMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHd0 cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtZXRtNHgtY29yZS5jCisrKyBiL2RyaXZlcnMvaHd0 cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtZXRtNHgtY29yZS5jCkBAIC0yMjI0LDcgKzIyMjQs NyBAQCBzdGF0aWMgdm9pZCBjbGVhcl9ldG1kcnZkYXRhKHZvaWQgKmluZm8pCiAJcGVyX2NwdShk ZWxheWVkX3Byb2JlLCBjcHUpID0gTlVMTDsKIH0KIAotc3RhdGljIHZvaWQgX19leGl0IGV0bTRf cmVtb3ZlX2RldihzdHJ1Y3QgZXRtdjRfZHJ2ZGF0YSAqZHJ2ZGF0YSkKK3N0YXRpYyB2b2lkIGV0 bTRfcmVtb3ZlX2RldihzdHJ1Y3QgZXRtdjRfZHJ2ZGF0YSAqZHJ2ZGF0YSkKIHsKIAlib29sIGhh ZF9kZWxheWVkX3Byb2JlOwogCS8qCkBAIC0yMjUzLDcgKzIyNTMsNyBAQCBzdGF0aWMgdm9pZCBf X2V4aXQgZXRtNF9yZW1vdmVfZGV2KHN0cnVjdCBldG12NF9kcnZkYXRhICpkcnZkYXRhKQogCX0K IH0KIAotc3RhdGljIHZvaWQgX19leGl0IGV0bTRfcmVtb3ZlX2FtYmEoc3RydWN0IGFtYmFfZGV2 aWNlICphZGV2KQorc3RhdGljIHZvaWQgZXRtNF9yZW1vdmVfYW1iYShzdHJ1Y3QgYW1iYV9kZXZp Y2UgKmFkZXYpCiB7CiAJc3RydWN0IGV0bXY0X2RydmRhdGEgKmRydmRhdGEgPSBkZXZfZ2V0X2Ry dmRhdGEoJmFkZXYtPmRldik7CiAKQEAgLTIyNjEsNyArMjI2MSw3IEBAIHN0YXRpYyB2b2lkIF9f ZXhpdCBldG00X3JlbW92ZV9hbWJhKHN0cnVjdCBhbWJhX2RldmljZSAqYWRldikKIAkJZXRtNF9y ZW1vdmVfZGV2KGRydmRhdGEpOwogfQogCi1zdGF0aWMgaW50IF9fZXhpdCBldG00X3JlbW92ZV9w bGF0Zm9ybV9kZXYoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyBpbnQgZXRt NF9yZW1vdmVfcGxhdGZvcm1fZGV2KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJ c3RydWN0IGV0bXY0X2RydmRhdGEgKmRydmRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoJnBkZXYtPmRl dik7CiAKQEAgLTIzMDUsNyArMjMwNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1iYV9pZCBl dG00X2lkc1tdID0gewogCiBNT0RVTEVfREVWSUNFX1RBQkxFKGFtYmEsIGV0bTRfaWRzKTsKIAot c3RhdGljIHN0cnVjdCBhbWJhX2RyaXZlciBldG00eF9hbWJhX2RyaXZlciA9IHsKK3N0YXRpYyBz dHJ1Y3QgYW1iYV9kcml2ZXIgZXRtNHhfYW1iYV9kcml2ZXIgX19yZWZkYXRhID0gewogCS5kcnYg PSB7CiAJCS5uYW1lICAgPSAiY29yZXNpZ2h0LWV0bTR4IiwKIAkJLm93bmVyICA9IFRISVNfTU9E VUxFLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9pMmMvZXQ4ZWs4L2V0OGVrOF9kcml2ZXIu YyBiL2RyaXZlcnMvbWVkaWEvaTJjL2V0OGVrOC9ldDhlazhfZHJpdmVyLmMKaW5kZXggZDZmYzg0 M2Y5MzY4ZS4uMGQ2ZjBmODUwNmY3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9pMmMvZXQ4 ZWs4L2V0OGVrOF9kcml2ZXIuYworKysgYi9kcml2ZXJzL21lZGlhL2kyYy9ldDhlazgvZXQ4ZWs4 X2RyaXZlci5jCkBAIC0xNDYwLDcgKzE0NjAsNyBAQCBzdGF0aWMgaW50IGV0OGVrOF9wcm9iZShz dHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lk IF9fZXhpdCBldDhlazhfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCitzdGF0aWMg dm9pZCBldDhlazhfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiB7CiAJc3RydWN0 IHY0bDJfc3ViZGV2ICpzdWJkZXYgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKIAlzdHJ1 Y3QgZXQ4ZWs4X3NlbnNvciAqc2Vuc29yID0gdG9fZXQ4ZWs4X3NlbnNvcihzdWJkZXYpOwpAQCAt MTUwMiw3ICsxNTAyLDcgQEAgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGV0OGVrOF9pMmNfZHJp dmVyID0gewogCQkub2ZfbWF0Y2hfdGFibGUJPSBldDhlazhfb2ZfdGFibGUsCiAJfSwKIAkucHJv YmUJCT0gZXQ4ZWs4X3Byb2JlLAotCS5yZW1vdmUJCT0gX19leGl0X3AoZXQ4ZWs4X3JlbW92ZSks CisJLnJlbW92ZQkJPSBldDhlazhfcmVtb3ZlLAogCS5pZF90YWJsZQk9IGV0OGVrOF9pZF90YWJs ZSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVtb3J5L2VtaWYuYyBiL2RyaXZlcnMvbWVt b3J5L2VtaWYuYwppbmRleCBmMzA1NjQzMjA5ZjAzLi5iMDM3OGRjYTEzYjg1IDEwMDY0NAotLS0g YS9kcml2ZXJzL21lbW9yeS9lbWlmLmMKKysrIGIvZHJpdmVycy9tZW1vcnkvZW1pZi5jCkBAIC0x MTg0LDcgKzExODQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBlbWlmX29m X21hdGNoW10gPSB7CiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBlbWlmX29mX21hdGNoKTsKICNl bmRpZgogCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBlbWlmX2RyaXZlciA9IHsKK3N0 YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGVtaWZfZHJpdmVyIF9fcmVmZGF0YSA9IHsKIAku cmVtb3ZlCQk9IF9fZXhpdF9wKGVtaWZfcmVtb3ZlKSwKIAkuc2h1dGRvd24JPSBlbWlmX3NodXRk b3duLAogCS5kcml2ZXIgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lf bW1jLmMgYi9kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMKaW5kZXggZWUzYjFhNGUwODQ4 NS4uZjM1NDM2ZTNmZmMxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21t Yy5jCisrKyBiL2RyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYwpAQCAtMTM5MSw3ICsxMzkx LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGRhdmluY2lfbW1jc2RfcG0gPSB7 CiAjZGVmaW5lIGRhdmluY2lfbW1jc2RfcG1fb3BzIE5VTEwKICNlbmRpZgogCi1zdGF0aWMgc3Ry dWN0IHBsYXRmb3JtX2RyaXZlciBkYXZpbmNpX21tY3NkX2RyaXZlciA9IHsKK3N0YXRpYyBzdHJ1 Y3QgcGxhdGZvcm1fZHJpdmVyIGRhdmluY2lfbW1jc2RfZHJpdmVyIF9fcmVmZGF0YSA9IHsKIAku ZHJpdmVyCQk9IHsKIAkJLm5hbWUJPSAiZGF2aW5jaV9tbWMiLAogCQkucHJvYmVfdHlwZSA9IFBS T0JFX1BSRUZFUl9BU1lOQ0hST05PVVMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jh dy90eHg5bmRmbWMuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L3R4eDluZGZtYy5jCmluZGV4IGVk ZGNjMDcyOGE2NzYuLmNiOGJkNTMyNGUxZDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQv cmF3L3R4eDluZGZtYy5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L3R4eDluZGZtYy5jCkBA IC00MDYsNyArNDA2LDcgQEAgc3RhdGljIGludCB0eHg5bmRmbWNfcmVzdW1lKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKmRldikKICNkZWZpbmUgdHh4OW5kZm1jX3Jlc3VtZSBOVUxMCiAjZW5kaWYK IAotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdHh4OW5kZm1jX2RyaXZlciA9IHsKK3N0 YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHR4eDluZGZtY19kcml2ZXIgX19yZWZkYXRhID0g ewogCS5yZW1vdmUJCT0gX19leGl0X3AodHh4OW5kZm1jX3JlbW92ZSksCiAJLnJlc3VtZQkJPSB0 eHg5bmRmbWNfcmVzdW1lLAogCS5kcml2ZXIJCT0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpLWV4eW5vcy5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2Mv cGNpLWV4eW5vcy5jCmluZGV4IDYzMTkwODIzMDFkNjguLmM2YmVkZTM0NjkzMjAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1leHlub3MuYworKysgYi9kcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZXh5bm9zLmMKQEAgLTM3NSw3ICszNzUsNyBAQCBzdGF0 aWMgaW50IGV4eW5vc19wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJ cmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBfX2V4aXQgZXh5bm9zX3BjaWVfcmVtb3ZlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCitzdGF0aWMgaW50IGV4eW5vc19wY2llX3JlbW92 ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBleHlub3NfcGNpZSAq ZXAgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIApAQCAtNDMxLDcgKzQzMSw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGV4eW5vc19wY2llX29mX21hdGNoW10gPSB7 CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGV4eW5vc19wY2llX2RyaXZlciA9IHsK IAkucHJvYmUJCT0gZXh5bm9zX3BjaWVfcHJvYmUsCi0JLnJlbW92ZQkJPSBfX2V4aXRfcChleHlu b3NfcGNpZV9yZW1vdmUpLAorCS5yZW1vdmUJCT0gZXh5bm9zX3BjaWVfcmVtb3ZlLAogCS5kcml2 ZXIgPSB7CiAJCS5uYW1lCT0gImV4eW5vcy1wY2llIiwKIAkJLm9mX21hdGNoX3RhYmxlID0gZXh5 bm9zX3BjaWVfb2ZfbWF0Y2gsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLWtpcmluLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWtpcmluLmMK aW5kZXggZDkzYmMyOTA2OTUwMi4uMmVlMTQ2NzY3OTcxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9w Y2kvY29udHJvbGxlci9kd2MvcGNpZS1raXJpbi5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaWUta2lyaW4uYwpAQCAtNzQxLDcgKzc0MSw3IEBAIHN0YXRpYyBpbnQga2lyaW5f cGNpZV9wb3dlcl9vbihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCXJldHVybiByZXQ7 CiB9CiAKLXN0YXRpYyBpbnQgX19leGl0IGtpcmluX3BjaWVfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCitzdGF0aWMgaW50IGtpcmluX3BjaWVfcmVtb3ZlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJc3RydWN0IGtpcmluX3BjaWUgKmtpcmluX3BjaWUgPSBw bGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIApAQCAtODE4LDcgKzgxOCw3IEBAIHN0YXRpYyBp bnQga2lyaW5fcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiBzdGF0 aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBraXJpbl9wY2llX2RyaXZlciA9IHsKIAkucHJvYmUJ CQk9IGtpcmluX3BjaWVfcHJvYmUsCi0JLnJlbW92ZQkgICAgICAgIAk9IF9fZXhpdF9wKGtpcmlu X3BjaWVfcmVtb3ZlKSwKKwkucmVtb3ZlCSAgICAgICAgCT0ga2lyaW5fcGNpZV9yZW1vdmUsCiAJ LmRyaXZlcgkJCT0gewogCQkubmFtZQkJCT0gImtpcmluLXBjaWUiLAogCQkub2ZfbWF0Y2hfdGFi bGUJCT0ga2lyaW5fcGNpZV9tYXRjaCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG93ZXIvcmVzZXQv YXQ5MS1wb3dlcm9mZi5jIGIvZHJpdmVycy9wb3dlci9yZXNldC9hdDkxLXBvd2Vyb2ZmLmMKaW5k ZXggZGQ1Mzk5Nzg1YjY5MS4uMDYxZTNlMmFmNzUxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wb3dl ci9yZXNldC9hdDkxLXBvd2Vyb2ZmLmMKKysrIGIvZHJpdmVycy9wb3dlci9yZXNldC9hdDkxLXBv d2Vyb2ZmLmMKQEAgLTIyMyw3ICsyMjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2Rldmlj ZV9pZCBhdDkxX3Bvd2Vyb2ZmX29mX21hdGNoW10gPSB7CiB9OwogTU9EVUxFX0RFVklDRV9UQUJM RShvZiwgYXQ5MV9wb3dlcm9mZl9vZl9tYXRjaCk7CiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1f ZHJpdmVyIGF0OTFfcG93ZXJvZmZfZHJpdmVyID0geworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9k cml2ZXIgYXQ5MV9wb3dlcm9mZl9kcml2ZXIgX19yZWZkYXRhID0gewogCS5yZW1vdmUgPSBfX2V4 aXRfcChhdDkxX3Bvd2Vyb2ZmX3JlbW92ZSksCiAJLmRyaXZlciA9IHsKIAkJLm5hbWUgPSAiYXQ5 MS1wb3dlcm9mZiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bvd2VyL3Jlc2V0L2F0OTEtcmVzZXQu YyBiL2RyaXZlcnMvcG93ZXIvcmVzZXQvYXQ5MS1yZXNldC5jCmluZGV4IGFhOWIwMTJkM2QwMGIu LjU3NTBlNThiN2RhZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcG93ZXIvcmVzZXQvYXQ5MS1yZXNl dC5jCisrKyBiL2RyaXZlcnMvcG93ZXIvcmVzZXQvYXQ5MS1yZXNldC5jCkBAIC00MjcsNyArNDI3 LDcgQEAgc3RhdGljIGludCBfX2V4aXQgYXQ5MV9yZXNldF9yZW1vdmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9k cml2ZXIgYXQ5MV9yZXNldF9kcml2ZXIgPSB7CitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZl ciBhdDkxX3Jlc2V0X2RyaXZlciBfX3JlZmRhdGEgPSB7CiAJLnJlbW92ZSA9IF9fZXhpdF9wKGF0 OTFfcmVzZXRfcmVtb3ZlKSwKIAkuZHJpdmVyID0gewogCQkubmFtZSA9ICJhdDkxLXJlc2V0IiwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG93ZXIvcmVzZXQvYXQ5MS1zYW1hNWQyX3NoZHdjLmMgYi9k cml2ZXJzL3Bvd2VyL3Jlc2V0L2F0OTEtc2FtYTVkMl9zaGR3Yy5jCmluZGV4IGU3NmIxMDJiNTdi MWYuLjBhNmJjMGFkMjMxMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcG93ZXIvcmVzZXQvYXQ5MS1z YW1hNWQyX3NoZHdjLmMKKysrIGIvZHJpdmVycy9wb3dlci9yZXNldC9hdDkxLXNhbWE1ZDJfc2hk d2MuYwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHN0YXRpYyBpbnQgX19leGl0IGF0OTFfc2hkd2NfcmVt b3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRp YyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGF0OTFfc2hkd2NfZHJpdmVyID0geworc3RhdGljIHN0 cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYXQ5MV9zaGR3Y19kcml2ZXIgX19yZWZkYXRhID0gewogCS5y ZW1vdmUgPSBfX2V4aXRfcChhdDkxX3NoZHdjX3JlbW92ZSksCiAJLmRyaXZlciA9IHsKIAkJLm5h bWUgPSAiYXQ5MS1zaGR3YyIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXJtOTIw MC5jIGIvZHJpdmVycy9ydGMvcnRjLWF0OTFybTkyMDAuYwppbmRleCBhZGQ0ZjcxZDdiM2I5Li4w NGVlZDM3N2M3ZWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXJtOTIwMC5jCisr KyBiL2RyaXZlcnMvcnRjL3J0Yy1hdDkxcm05MjAwLmMKQEAgLTYzNSw3ICs2MzUsNyBAQCBzdGF0 aWMgaW50IGF0OTFfcnRjX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAKIHN0YXRpYyBTSU1Q TEVfREVWX1BNX09QUyhhdDkxX3J0Y19wbV9vcHMsIGF0OTFfcnRjX3N1c3BlbmQsIGF0OTFfcnRj X3Jlc3VtZSk7CiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGF0OTFfcnRjX2RyaXZl ciA9IHsKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGF0OTFfcnRjX2RyaXZlciBfX3Jl ZmRhdGEgPSB7CiAJLnJlbW92ZQkJPSBfX2V4aXRfcChhdDkxX3J0Y19yZW1vdmUpLAogCS5zaHV0 ZG93bgk9IGF0OTFfcnRjX3NodXRkb3duLAogCS5kcml2ZXIJCT0gewpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ydGMvcnRjLWlteGRpLmMgYi9kcml2ZXJzL3J0Yy9ydGMtaW14ZGkuYwppbmRleCA0Yjcx MmU1YWIwOGEwLi4wNWYyNmM1ZmNjOTU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtaW14 ZGkuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtaW14ZGkuYwpAQCAtODUxLDcgKzg1MSw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGRyeWljZV9kdF9pZHNbXSA9IHsKIAogTU9E VUxFX0RFVklDRV9UQUJMRShvZiwgZHJ5aWNlX2R0X2lkcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgcGxh dGZvcm1fZHJpdmVyIGRyeWljZV9ydGNfZHJpdmVyID0geworc3RhdGljIHN0cnVjdCBwbGF0Zm9y bV9kcml2ZXIgZHJ5aWNlX3J0Y19kcml2ZXIgX19yZWZkYXRhID0gewogCS5kcml2ZXIgPSB7CiAJ CSAgIC5uYW1lID0gImlteGRpX3J0YyIsCiAJCSAgIC5vZl9tYXRjaF90YWJsZSA9IGRyeWljZV9k dF9pZHMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtbXYuYyBiL2RyaXZlcnMvcnRjL3J0 Yy1tdi5jCmluZGV4IDZjNTI2ZTJlYzU2ZDguLjBkNjIyNmY5YTRiNDYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvcnRjL3J0Yy1tdi5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1tdi5jCkBAIC0zMDMsNyAr MzAzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcnRjX212X29mX21hdGNo X3RhYmxlW10gPSB7CiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBydGNfbXZfb2ZfbWF0Y2hfdGFi bGUpOwogI2VuZGlmCiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG12X3J0Y19kcml2 ZXIgPSB7CitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdl9ydGNfZHJpdmVyIF9fcmVm ZGF0YSA9IHsKIAkucmVtb3ZlCQk9IF9fZXhpdF9wKG12X3J0Y19yZW1vdmUpLAogCS5kcml2ZXIJ CT0gewogCQkubmFtZQk9ICJydGMtbXYiLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXB4 YS5jIGIvZHJpdmVycy9ydGMvcnRjLXB4YS5jCmluZGV4IGU0MDBjNzgyNTJlODIuLmJlMGIzNmRk OWQxNTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1weGEuYworKysgYi9kcml2ZXJzL3J0 Yy9ydGMtcHhhLmMKQEAgLTQwMyw3ICs0MDMsNyBAQCBzdGF0aWMgaW50IHB4YV9ydGNfcmVzdW1l KHN0cnVjdCBkZXZpY2UgKmRldikKIAogc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKHB4YV9ydGNf cG1fb3BzLCBweGFfcnRjX3N1c3BlbmQsIHB4YV9ydGNfcmVzdW1lKTsKIAotc3RhdGljIHN0cnVj dCBwbGF0Zm9ybV9kcml2ZXIgcHhhX3J0Y19kcml2ZXIgPSB7CitzdGF0aWMgc3RydWN0IHBsYXRm b3JtX2RyaXZlciBweGFfcnRjX2RyaXZlciBfX3JlZmRhdGEgPSB7CiAJLnJlbW92ZQkJPSBfX2V4 aXRfcChweGFfcnRjX3JlbW92ZSksCiAJLmRyaXZlcgkJPSB7CiAJCS5uYW1lCT0gInB4YS1ydGMi LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXNoLmMgYi9kcml2ZXJzL3J0Yy9ydGMtc2gu YwppbmRleCA2MTNhNWEzYTA5Y2YzLi45NmRkM2E3MzcwN2Q2IDEwMDY0NAotLS0gYS9kcml2ZXJz L3J0Yy9ydGMtc2guYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtc2guYwpAQCAtNjY4LDcgKzY2OCw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNoX3J0Y19vZl9tYXRjaFtdID0g ewogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNoX3J0Y19vZl9tYXRjaCk7CiAKLXN0YXRp YyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNoX3J0Y19wbGF0Zm9ybV9kcml2ZXIgPSB7CitzdGF0 aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzaF9ydGNfcGxhdGZvcm1fZHJpdmVyIF9fcmVmZGF0 YSA9IHsKIAkuZHJpdmVyCQk9IHsKIAkJLm5hbWUJPSBEUlZfTkFNRSwKIAkJLnBtCT0gJnNoX3J0 Y19wbV9vcHMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0bWVsX2xjZGZiLmMg Yi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0bWVsX2xjZGZiLmMKaW5kZXggYTkwOGRiMjMzNDA5OC4u YWFkNmVmYWU5NjRhZCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9hdG1lbF9sY2Rm Yi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXRtZWxfbGNkZmIuYwpAQCAtMTMwMCw3ICsx MzAwLDcgQEAgc3RhdGljIGludCBhdG1lbF9sY2RmYl9yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKICNkZWZpbmUgYXRtZWxfbGNkZmJfcmVzdW1lCU5VTEwKICNlbmRpZgogCi1z dGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhdG1lbF9sY2RmYl9kcml2ZXIgPSB7CitzdGF0 aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhdG1lbF9sY2RmYl9kcml2ZXIgX19yZWZkYXRhID0g ewogCS5yZW1vdmUJCT0gX19leGl0X3AoYXRtZWxfbGNkZmJfcmVtb3ZlKSwKIAkuc3VzcGVuZAk9 IGF0bWVsX2xjZGZiX3N1c3BlbmQsCiAJLnJlc3VtZQkJPSBhdG1lbF9sY2RmYl9yZXN1bWUsCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9kaXNwbGF5cy9jb25u ZWN0b3ItYW5hbG9nLXR2LmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9kaXNw bGF5cy9jb25uZWN0b3ItYW5hbG9nLXR2LmMKaW5kZXggMGRhYWY5Zjg5YmFiNS4uM2Y1NTViNjVl ODFhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxh eXMvY29ubmVjdG9yLWFuYWxvZy10di5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvb21hcDIv b21hcGZiL2Rpc3BsYXlzL2Nvbm5lY3Rvci1hbmFsb2ctdHYuYwpAQCAtMjQ1LDcgKzI0NSw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHR2Y19vZl9tYXRjaFtdID0gewogCiBN T0RVTEVfREVWSUNFX1RBQkxFKG9mLCB0dmNfb2ZfbWF0Y2gpOwogCi1zdGF0aWMgc3RydWN0IHBs YXRmb3JtX2RyaXZlciB0dmNfY29ubmVjdG9yX2RyaXZlciA9IHsKK3N0YXRpYyBzdHJ1Y3QgcGxh dGZvcm1fZHJpdmVyIHR2Y19jb25uZWN0b3JfZHJpdmVyIF9fcmVmZGF0YSA9IHsKIAkucHJvYmUJ PSB0dmNfcHJvYmUsCiAJLnJlbW92ZQk9IF9fZXhpdF9wKHR2Y19yZW1vdmUpLAogCS5kcml2ZXIJ PSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9kaXNwbGF5 cy9jb25uZWN0b3ItZHZpLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9kaXNw bGF5cy9jb25uZWN0b3ItZHZpLmMKaW5kZXggYzhhZDNlZjQyYmQzMS4uZGZjZmJhOWI2ZWZhNyAx MDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMvY29u bmVjdG9yLWR2aS5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvb21hcDIvb21hcGZiL2Rpc3Bs YXlzL2Nvbm5lY3Rvci1kdmkuYwpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIGR2aWNfb2ZfbWF0Y2hbXSA9IHsKIAogTU9EVUxFX0RFVklDRV9UQUJM RShvZiwgZHZpY19vZl9tYXRjaCk7CiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGR2 aV9jb25uZWN0b3JfZHJpdmVyID0geworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHZp X2Nvbm5lY3Rvcl9kcml2ZXIgX19yZWZkYXRhID0gewogCS5wcm9iZQk9IGR2aWNfcHJvYmUsCiAJ LnJlbW92ZQk9IF9fZXhpdF9wKGR2aWNfcmVtb3ZlKSwKIAkuZHJpdmVyCT0gewpkaWZmIC0tZ2l0 IGEvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMvY29ubmVjdG9yLWhk bWkuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvb21hcDIvb21hcGZiL2Rpc3BsYXlzL2Nvbm5lY3Rv ci1oZG1pLmMKaW5kZXggOGY5ZmY5ZmI0Y2E0Yy4uMmVkMzEwMzAwNTAzNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMvY29ubmVjdG9yLWhkbWku YworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9kaXNwbGF5cy9jb25uZWN0 b3ItaGRtaS5jCkBAIC0yNzIsNyArMjcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZp Y2VfaWQgaGRtaWNfb2ZfbWF0Y2hbXSA9IHsKIAogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaGRt aWNfb2ZfbWF0Y2gpOwogCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBoZG1pX2Nvbm5l Y3Rvcl9kcml2ZXIgPSB7CitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBoZG1pX2Nvbm5l Y3Rvcl9kcml2ZXIgX19yZWZkYXRhID0gewogCS5wcm9iZQk9IGhkbWljX3Byb2JlLAogCS5yZW1v dmUJPSBfX2V4aXRfcChoZG1pY19yZW1vdmUpLAogCS5kcml2ZXIJPSB7CmRpZmYgLS1naXQgYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9kaXNwbGF5cy9lbmNvZGVyLW9wYTM2Mi5j IGIvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMvZW5jb2Rlci1vcGEz NjIuYwppbmRleCBkZDI5ZGM1Yzc3ZWM4Li5jYzE5ZWVmOWE0NjA5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9kaXNwbGF5cy9lbmNvZGVyLW9wYTM2Mi5jCisr KyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvb21hcDIvb21hcGZiL2Rpc3BsYXlzL2VuY29kZXItb3Bh MzYyLmMKQEAgLTI1OCw3ICsyNTgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9p ZCBvcGEzNjJfb2ZfbWF0Y2hbXSA9IHsKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvcGEz NjJfb2ZfbWF0Y2gpOwogCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBvcGEzNjJfZHJp dmVyID0geworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgb3BhMzYyX2RyaXZlciBfX3Jl ZmRhdGEgPSB7CiAJLnByb2JlCT0gb3BhMzYyX3Byb2JlLAogCS5yZW1vdmUJPSBfX2V4aXRfcChv cGEzNjJfcmVtb3ZlKSwKIAkuZHJpdmVyCT0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9m YmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMvZW5jb2Rlci10ZnA0MTAuYyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvb21hcDIvb21hcGZiL2Rpc3BsYXlzL2VuY29kZXItdGZwNDEwLmMKaW5kZXggN2Jh YzQyMDE2OWE2OS4uNDkwMGVkYWYxMDY4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRl di9vbWFwMi9vbWFwZmIvZGlzcGxheXMvZW5jb2Rlci10ZnA0MTAuYworKysgYi9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9kaXNwbGF5cy9lbmNvZGVyLXRmcDQxMC5jCkBAIC0yNDUs NyArMjQ1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgdGZwNDEwX29mX21h dGNoW10gPSB7CiAKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHRmcDQxMF9vZl9tYXRjaCk7CiAK LXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHRmcDQxMF9kcml2ZXIgPSB7CitzdGF0aWMg c3RydWN0IHBsYXRmb3JtX2RyaXZlciB0ZnA0MTBfZHJpdmVyIF9fcmVmZGF0YSA9IHsKIAkucHJv YmUJPSB0ZnA0MTBfcHJvYmUsCiAJLnJlbW92ZQk9IF9fZXhpdF9wKHRmcDQxMF9yZW1vdmUpLAog CS5kcml2ZXIJPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBm Yi9kaXNwbGF5cy9lbmNvZGVyLXRwZDEyczAxNS5jIGIvZHJpdmVycy92aWRlby9mYmRldi9vbWFw Mi9vbWFwZmIvZGlzcGxheXMvZW5jb2Rlci10cGQxMnMwMTUuYwppbmRleCA2N2YwYzkyNTBlOWU0 Li42NDhiYjEzNjdkYzVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29t YXBmYi9kaXNwbGF5cy9lbmNvZGVyLXRwZDEyczAxNS5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJk ZXYvb21hcDIvb21hcGZiL2Rpc3BsYXlzL2VuY29kZXItdHBkMTJzMDE1LmMKQEAgLTMxMSw3ICsz MTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB0cGRfb2ZfbWF0Y2hbXSA9 IHsKIAogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgdHBkX29mX21hdGNoKTsKIAotc3RhdGljIHN0 cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdHBkX2RyaXZlciA9IHsKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZv cm1fZHJpdmVyIHRwZF9kcml2ZXIgX19yZWZkYXRhID0gewogCS5wcm9iZQk9IHRwZF9wcm9iZSwK IAkucmVtb3ZlCT0gX19leGl0X3AodHBkX3JlbW92ZSksCiAJLmRyaXZlcgk9IHsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvb21hcDIvb21hcGZiL2Rpc3BsYXlzL3BhbmVsLWRwaS5j IGIvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMvcGFuZWwtZHBpLmMK aW5kZXggOTc5MDA1M2M1ODc3Yy4uZTM5YmVjZDRkOGVjZiAxMDA2NDQKLS0tIGEvZHJpdmVycy92 aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMvcGFuZWwtZHBpLmMKKysrIGIvZHJpdmVy cy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMvcGFuZWwtZHBpLmMKQEAgLTIzNCw3 ICsyMzQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBwYW5lbF9kcGlfb2Zf bWF0Y2hbXSA9IHsKIAogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcGFuZWxfZHBpX29mX21hdGNo KTsKIAotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcGFuZWxfZHBpX2RyaXZlciA9IHsK K3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHBhbmVsX2RwaV9kcml2ZXIgX19yZWZkYXRh ID0gewogCS5wcm9iZSA9IHBhbmVsX2RwaV9wcm9iZSwKIAkucmVtb3ZlID0gX19leGl0X3AocGFu ZWxfZHBpX3JlbW92ZSksCiAJLmRyaXZlciA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8v ZmJkZXYvb21hcDIvb21hcGZiL2Rpc3BsYXlzL3BhbmVsLWRzaS1jbS5jIGIvZHJpdmVycy92aWRl by9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMvcGFuZWwtZHNpLWNtLmMKaW5kZXggNzdmY2Ux MjIzYTY0MC4uNWQ4YjZkYWViMTk5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9v bWFwMi9vbWFwZmIvZGlzcGxheXMvcGFuZWwtZHNpLWNtLmMKKysrIGIvZHJpdmVycy92aWRlby9m YmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMvcGFuZWwtZHNpLWNtLmMKQEAgLTEyODAsNyArMTI4 MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGRzaWNtX29mX21hdGNoW10g PSB7CiAKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGRzaWNtX29mX21hdGNoKTsKIAotc3RhdGlj IHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHNpY21fZHJpdmVyID0geworc3RhdGljIHN0cnVjdCBw bGF0Zm9ybV9kcml2ZXIgZHNpY21fZHJpdmVyIF9fcmVmZGF0YSA9IHsKIAkucHJvYmUgPSBkc2lj bV9wcm9iZSwKIAkucmVtb3ZlID0gX19leGl0X3AoZHNpY21fcmVtb3ZlKSwKIAkuZHJpdmVyID0g ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvZGlzcGxheXMv cGFuZWwtc2hhcnAtbHMwMzd2N2R3MDEuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvb21hcDIvb21h cGZiL2Rpc3BsYXlzL3BhbmVsLXNoYXJwLWxzMDM3djdkdzAxLmMKaW5kZXggY2MzMDc1ODMwMGUy NS4uOTE4MTAwOGM1Yzc5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9v bWFwZmIvZGlzcGxheXMvcGFuZWwtc2hhcnAtbHMwMzd2N2R3MDEuYworKysgYi9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9kaXNwbGF5cy9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5j CkBAIC0zMTUsNyArMzE1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc2hh cnBfbHNfb2ZfbWF0Y2hbXSA9IHsKIAogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc2hhcnBfbHNf b2ZfbWF0Y2gpOwogCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzaGFycF9sc19kcml2 ZXIgPSB7CitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzaGFycF9sc19kcml2ZXIgX19y ZWZkYXRhID0gewogCS5wcm9iZSA9IHNoYXJwX2xzX3Byb2JlLAogCS5yZW1vdmUgPSBfX2V4aXRf cChzaGFycF9sc19yZW1vdmUpLAogCS5kcml2ZXIgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zp cnQvY29jby9zZXYtZ3Vlc3Qvc2V2LWd1ZXN0LmMgYi9kcml2ZXJzL3ZpcnQvY29jby9zZXYtZ3Vl c3Qvc2V2LWd1ZXN0LmMKaW5kZXggOTdkYmU3MTVlOTZhZC4uNWIyOTlhZjViMTg2NyAxMDA2NDQK LS0tIGEvZHJpdmVycy92aXJ0L2NvY28vc2V2LWd1ZXN0L3Nldi1ndWVzdC5jCisrKyBiL2RyaXZl cnMvdmlydC9jb2NvL3Nldi1ndWVzdC9zZXYtZ3Vlc3QuYwpAQCAtODUyLDcgKzg1Miw3IEBAIHN0 YXRpYyBpbnQgX19leGl0IHNldl9ndWVzdF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKICAqIHN1cHBvcnQgYW55IFNFViBndWVzdCBBUEkuIEFzIHN1Y2gsIGV2ZW4gdGhvdWdo IGl0IGhhcyBiZWVuIGludHJvZHVjZWQKICAqIHdpdGggdGhlIFNFVi1TTlAgc3VwcG9ydCwgaXQg aXMgbmFtZWQgInNldi1ndWVzdCIuCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVy IHNldl9ndWVzdF9kcml2ZXIgPSB7CitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzZXZf Z3Vlc3RfZHJpdmVyIF9fcmVmZGF0YSA9IHsKIAkucmVtb3ZlCQk9IF9fZXhpdF9wKHNldl9ndWVz dF9yZW1vdmUpLAogCS5kcml2ZXIJCT0gewogCQkubmFtZSA9ICJzZXYtZ3Vlc3QiLApkaWZmIC0t Z2l0IGEvZHJpdmVycy93YXRjaGRvZy9hdDkxc2FtOV93ZHQuYyBiL2RyaXZlcnMvd2F0Y2hkb2cv YXQ5MXNhbTlfd2R0LmMKaW5kZXggYjExMWIyOGFjYjk0OC4uYjU1YWU3OTk4YThkMyAxMDA2NDQK LS0tIGEvZHJpdmVycy93YXRjaGRvZy9hdDkxc2FtOV93ZHQuYworKysgYi9kcml2ZXJzL3dhdGNo ZG9nL2F0OTFzYW05X3dkdC5jCkBAIC0zOTIsNyArMzkyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBvZl9kZXZpY2VfaWQgYXQ5MV93ZHRfZHRfaWRzW10gPSB7CiBNT0RVTEVfREVWSUNFX1RBQkxF KG9mLCBhdDkxX3dkdF9kdF9pZHMpOwogI2VuZGlmCiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1f ZHJpdmVyIGF0OTF3ZHRfZHJpdmVyID0geworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIg YXQ5MXdkdF9kcml2ZXIgX19yZWZkYXRhID0gewogCS5yZW1vdmUJCT0gX19leGl0X3AoYXQ5MXdk dF9yZW1vdmUpLAogCS5kcml2ZXIJCT0gewogCQkubmFtZQk9ICJhdDkxX3dkdCIsCmRpZmYgLS1n aXQgYS9zb3VuZC9zb2MvY29kZWNzL3RsdjMyMGFkYzN4eHguYyBiL3NvdW5kL3NvYy9jb2RlY3Mv dGx2MzIwYWRjM3h4eC5jCmluZGV4IDQyMGJiZjU4OGVmZWEuLmUxMDBjYzlmNWMxOTIgMTAwNjQ0 Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvdGx2MzIwYWRjM3h4eC5jCisrKyBiL3NvdW5kL3NvYy9j b2RlY3MvdGx2MzIwYWRjM3h4eC5jCkBAIC0xNDI5LDcgKzE0MjksNyBAQCBzdGF0aWMgaW50IGFk YzN4eHhfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICppMmMpCiAJcmV0dXJuIHJldDsKIH0K IAotc3RhdGljIHZvaWQgX19leGl0IGFkYzN4eHhfaTJjX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVu dCAqY2xpZW50KQorc3RhdGljIHZvaWQgYWRjM3h4eF9pMmNfcmVtb3ZlKHN0cnVjdCBpMmNfY2xp ZW50ICpjbGllbnQpCiB7CiAJc3RydWN0IGFkYzN4eHggKmFkYzN4eHggPSBpMmNfZ2V0X2NsaWVu dGRhdGEoY2xpZW50KTsKIApAQCAtMTQ1Miw3ICsxNDUyLDcgQEAgc3RhdGljIHN0cnVjdCBpMmNf ZHJpdmVyIGFkYzN4eHhfaTJjX2RyaXZlciA9IHsKIAkJICAgLm9mX21hdGNoX3RhYmxlID0gdGx2 MzIwYWRjM3h4eF9vZl9tYXRjaCwKIAkJICB9LAogCS5wcm9iZSA9IGFkYzN4eHhfaTJjX3Byb2Jl LAotCS5yZW1vdmUgPSBfX2V4aXRfcChhZGMzeHh4X2kyY19yZW1vdmUpLAorCS5yZW1vdmUgPSBh ZGMzeHh4X2kyY19yZW1vdmUsCiAJLmlkX3RhYmxlID0gYWRjM3h4eF9pMmNfaWQsCiB9OwogCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGlu dXggTVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo=