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=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 8D0E3C64E90 for ; Tue, 24 Nov 2020 13:32:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3EEE4204EC for ; Tue, 24 Nov 2020 13:32:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388392AbgKXNcO (ORCPT ); Tue, 24 Nov 2020 08:32:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34178 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388335AbgKXNb4 (ORCPT ); Tue, 24 Nov 2020 08:31:56 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F21C2C0617A6 for ; Tue, 24 Nov 2020 05:31:55 -0800 (PST) Received: from pty.hi.pengutronix.de ([2001:67c:670:100:1d::c5]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1khYQ8-0001N9-Pe; Tue, 24 Nov 2020 14:31:48 +0100 Received: from ukl by pty.hi.pengutronix.de with local (Exim 4.89) (envelope-from ) id 1khYQ8-0008Gh-BN; Tue, 24 Nov 2020 14:31:48 +0100 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= To: Russell King , Greg Kroah-Hartman , Arnd Bergmann , Linus Walleij , Ulf Hansson Cc: Rob Herring , linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de, linux-kernel@vger.kernel.org, =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Subject: [PATCH v2 4/5] amba: Make the remove callback return void Date: Tue, 24 Nov 2020 14:31:38 +0100 Message-Id: <20201124133139.3072124-5-uwe@kleine-koenig.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201124133139.3072124-1-uwe@kleine-koenig.org> References: <20201124133139.3072124-1-uwe@kleine-koenig.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c5 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Uwe Kleine-König All amba drivers return 0 in their remove callback. Together with the driver core ignoring the return value anyhow, it doesn't make sense to return a value here. Change the remove prototype to return void, which makes it explicit that returning an error value doesn't work as expected. This simplifies changing the core remove callback to return void, too. Reviewed-by: Ulf Hansson Reviewed-by: Arnd Bergmann Signed-off-by: Uwe Kleine-König --- drivers/amba/bus.c | 5 ++--- drivers/char/hw_random/nomadik-rng.c | 3 +-- drivers/dma/pl330.c | 3 +-- drivers/gpu/drm/pl111/pl111_drv.c | 4 +--- drivers/hwtracing/coresight/coresight-catu.c | 3 +-- drivers/hwtracing/coresight/coresight-cpu-debug.c | 4 +--- drivers/hwtracing/coresight/coresight-cti-core.c | 4 +--- drivers/hwtracing/coresight/coresight-etb10.c | 4 +--- drivers/hwtracing/coresight/coresight-etm3x-core.c | 4 +--- drivers/hwtracing/coresight/coresight-etm4x-core.c | 4 +--- drivers/hwtracing/coresight/coresight-funnel.c | 4 ++-- drivers/hwtracing/coresight/coresight-replicator.c | 4 ++-- drivers/hwtracing/coresight/coresight-stm.c | 4 +--- drivers/hwtracing/coresight/coresight-tmc-core.c | 4 +--- drivers/hwtracing/coresight/coresight-tpiu.c | 4 +--- drivers/i2c/busses/i2c-nomadik.c | 4 +--- drivers/input/serio/ambakmi.c | 3 +-- drivers/memory/pl172.c | 4 +--- drivers/memory/pl353-smc.c | 4 +--- drivers/mmc/host/mmci.c | 4 +--- drivers/rtc/rtc-pl030.c | 4 +--- drivers/rtc/rtc-pl031.c | 4 +--- drivers/spi/spi-pl022.c | 5 ++--- drivers/tty/serial/amba-pl010.c | 4 +--- drivers/tty/serial/amba-pl011.c | 3 +-- drivers/vfio/platform/vfio_amba.c | 3 +-- drivers/video/fbdev/amba-clcd.c | 4 +--- drivers/watchdog/sp805_wdt.c | 4 +--- include/linux/amba/bus.h | 2 +- sound/arm/aaci.c | 4 +--- 30 files changed, 34 insertions(+), 80 deletions(-) diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c index 8c4a42df47c6..48b5d4b4e889 100644 --- a/drivers/amba/bus.c +++ b/drivers/amba/bus.c @@ -300,11 +300,10 @@ static int amba_remove(struct device *dev) { struct amba_device *pcdev = to_amba_device(dev); struct amba_driver *drv = to_amba_driver(dev->driver); - int ret = 0; pm_runtime_get_sync(dev); if (drv->remove) - ret = drv->remove(pcdev); + drv->remove(pcdev); pm_runtime_put_noidle(dev); /* Undo the runtime PM settings in amba_probe() */ @@ -315,7 +314,7 @@ static int amba_remove(struct device *dev) amba_put_disable_pclk(pcdev); dev_pm_domain_detach(dev, true); - return ret; + return 0; } static void amba_shutdown(struct device *dev) diff --git a/drivers/char/hw_random/nomadik-rng.c b/drivers/char/hw_random/nomadik-rng.c index b0ded41eb865..67947a19aa22 100644 --- a/drivers/char/hw_random/nomadik-rng.c +++ b/drivers/char/hw_random/nomadik-rng.c @@ -69,11 +69,10 @@ static int nmk_rng_probe(struct amba_device *dev, const struct amba_id *id) return ret; } -static int nmk_rng_remove(struct amba_device *dev) +static void nmk_rng_remove(struct amba_device *dev) { amba_release_regions(dev); clk_disable(rng_clk); - return 0; } static const struct amba_id nmk_rng_ids[] = { diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index bc0f66af0f11..fd8d2bc3be9f 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -3195,7 +3195,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id) return ret; } -static int pl330_remove(struct amba_device *adev) +static void pl330_remove(struct amba_device *adev) { struct pl330_dmac *pl330 = amba_get_drvdata(adev); struct dma_pl330_chan *pch, *_p; @@ -3235,7 +3235,6 @@ static int pl330_remove(struct amba_device *adev) if (pl330->rstc) reset_control_assert(pl330->rstc); - return 0; } static const struct amba_id pl330_ids[] = { diff --git a/drivers/gpu/drm/pl111/pl111_drv.c b/drivers/gpu/drm/pl111/pl111_drv.c index 40e6708fbbe2..1fb5eacefd2d 100644 --- a/drivers/gpu/drm/pl111/pl111_drv.c +++ b/drivers/gpu/drm/pl111/pl111_drv.c @@ -320,7 +320,7 @@ static int pl111_amba_probe(struct amba_device *amba_dev, return ret; } -static int pl111_amba_remove(struct amba_device *amba_dev) +static void pl111_amba_remove(struct amba_device *amba_dev) { struct device *dev = &amba_dev->dev; struct drm_device *drm = amba_get_drvdata(amba_dev); @@ -331,8 +331,6 @@ static int pl111_amba_remove(struct amba_device *amba_dev) drm_panel_bridge_remove(priv->bridge); drm_dev_put(drm); of_reserved_mem_device_release(dev); - - return 0; } /* diff --git a/drivers/hwtracing/coresight/coresight-catu.c b/drivers/hwtracing/coresight/coresight-catu.c index 99430f6cf5a5..3ea6a5f7f93d 100644 --- a/drivers/hwtracing/coresight/coresight-catu.c +++ b/drivers/hwtracing/coresight/coresight-catu.c @@ -567,12 +567,11 @@ static int catu_probe(struct amba_device *adev, const struct amba_id *id) return ret; } -static int __exit catu_remove(struct amba_device *adev) +static void __exit catu_remove(struct amba_device *adev) { struct catu_drvdata *drvdata = dev_get_drvdata(&adev->dev); coresight_unregister(drvdata->csdev); - return 0; } static struct amba_id catu_ids[] = { diff --git a/drivers/hwtracing/coresight/coresight-cpu-debug.c b/drivers/hwtracing/coresight/coresight-cpu-debug.c index e1d232411d8d..2dcf13de751f 100644 --- a/drivers/hwtracing/coresight/coresight-cpu-debug.c +++ b/drivers/hwtracing/coresight/coresight-cpu-debug.c @@ -627,7 +627,7 @@ static int debug_probe(struct amba_device *adev, const struct amba_id *id) return ret; } -static int debug_remove(struct amba_device *adev) +static void debug_remove(struct amba_device *adev) { struct device *dev = &adev->dev; struct debug_drvdata *drvdata = amba_get_drvdata(adev); @@ -642,8 +642,6 @@ static int debug_remove(struct amba_device *adev) if (!--debug_count) debug_func_exit(); - - return 0; } static const struct amba_cs_uci_id uci_id_debug[] = { diff --git a/drivers/hwtracing/coresight/coresight-cti-core.c b/drivers/hwtracing/coresight/coresight-cti-core.c index d28eae93e55c..d25c6f0150ad 100644 --- a/drivers/hwtracing/coresight/coresight-cti-core.c +++ b/drivers/hwtracing/coresight/coresight-cti-core.c @@ -836,7 +836,7 @@ static void cti_device_release(struct device *dev) if (drvdata->csdev_release) drvdata->csdev_release(dev); } -static int __exit cti_remove(struct amba_device *adev) +static void __exit cti_remove(struct amba_device *adev) { struct cti_drvdata *drvdata = dev_get_drvdata(&adev->dev); @@ -845,8 +845,6 @@ static int __exit cti_remove(struct amba_device *adev) mutex_unlock(&ect_mutex); coresight_unregister(drvdata->csdev); - - return 0; } static int cti_probe(struct amba_device *adev, const struct amba_id *id) diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtracing/coresight/coresight-etb10.c index 1b320ab581ca..0f9ec21a9eda 100644 --- a/drivers/hwtracing/coresight/coresight-etb10.c +++ b/drivers/hwtracing/coresight/coresight-etb10.c @@ -803,7 +803,7 @@ static int etb_probe(struct amba_device *adev, const struct amba_id *id) return ret; } -static int __exit etb_remove(struct amba_device *adev) +static void __exit etb_remove(struct amba_device *adev) { struct etb_drvdata *drvdata = dev_get_drvdata(&adev->dev); @@ -814,8 +814,6 @@ static int __exit etb_remove(struct amba_device *adev) */ misc_deregister(&drvdata->miscdev); coresight_unregister(drvdata->csdev); - - return 0; } #ifdef CONFIG_PM diff --git a/drivers/hwtracing/coresight/coresight-etm3x-core.c b/drivers/hwtracing/coresight/coresight-etm3x-core.c index 47f610b1c2b1..5f7a008a1af2 100644 --- a/drivers/hwtracing/coresight/coresight-etm3x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm3x-core.c @@ -909,7 +909,7 @@ static void __exit clear_etmdrvdata(void *info) etmdrvdata[cpu] = NULL; } -static int __exit etm_remove(struct amba_device *adev) +static void __exit etm_remove(struct amba_device *adev) { struct etm_drvdata *drvdata = dev_get_drvdata(&adev->dev); @@ -932,8 +932,6 @@ static int __exit etm_remove(struct amba_device *adev) cpus_read_unlock(); coresight_unregister(drvdata->csdev); - - return 0; } #ifdef CONFIG_PM diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c index d78a37b6592c..40dd59233810 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c @@ -1582,7 +1582,7 @@ static void __exit clear_etmdrvdata(void *info) etmdrvdata[cpu] = NULL; } -static int __exit etm4_remove(struct amba_device *adev) +static void __exit etm4_remove(struct amba_device *adev) { struct etmv4_drvdata *drvdata = dev_get_drvdata(&adev->dev); @@ -1605,8 +1605,6 @@ static int __exit etm4_remove(struct amba_device *adev) cpus_read_unlock(); coresight_unregister(drvdata->csdev); - - return 0; } static const struct amba_id etm4_ids[] = { diff --git a/drivers/hwtracing/coresight/coresight-funnel.c b/drivers/hwtracing/coresight/coresight-funnel.c index 39be46b74dfe..43431001fd72 100644 --- a/drivers/hwtracing/coresight/coresight-funnel.c +++ b/drivers/hwtracing/coresight/coresight-funnel.c @@ -370,9 +370,9 @@ static int dynamic_funnel_probe(struct amba_device *adev, return funnel_probe(&adev->dev, &adev->res); } -static int __exit dynamic_funnel_remove(struct amba_device *adev) +static void __exit dynamic_funnel_remove(struct amba_device *adev) { - return funnel_remove(&adev->dev); + funnel_remove(&adev->dev); } static const struct amba_id dynamic_funnel_ids[] = { diff --git a/drivers/hwtracing/coresight/coresight-replicator.c b/drivers/hwtracing/coresight/coresight-replicator.c index 6772f23e5c4b..aab13f9de2f6 100644 --- a/drivers/hwtracing/coresight/coresight-replicator.c +++ b/drivers/hwtracing/coresight/coresight-replicator.c @@ -388,9 +388,9 @@ static int dynamic_replicator_probe(struct amba_device *adev, return replicator_probe(&adev->dev, &adev->res); } -static int __exit dynamic_replicator_remove(struct amba_device *adev) +static void __exit dynamic_replicator_remove(struct amba_device *adev) { - return replicator_remove(&adev->dev); + replicator_remove(&adev->dev); } static const struct amba_id dynamic_replicator_ids[] = { diff --git a/drivers/hwtracing/coresight/coresight-stm.c b/drivers/hwtracing/coresight/coresight-stm.c index b0ad912651a9..33c5b3080c81 100644 --- a/drivers/hwtracing/coresight/coresight-stm.c +++ b/drivers/hwtracing/coresight/coresight-stm.c @@ -951,15 +951,13 @@ static int stm_probe(struct amba_device *adev, const struct amba_id *id) return ret; } -static int __exit stm_remove(struct amba_device *adev) +static void __exit stm_remove(struct amba_device *adev) { struct stm_drvdata *drvdata = dev_get_drvdata(&adev->dev); coresight_unregister(drvdata->csdev); stm_unregister_device(&drvdata->stm); - - return 0; } #ifdef CONFIG_PM diff --git a/drivers/hwtracing/coresight/coresight-tmc-core.c b/drivers/hwtracing/coresight/coresight-tmc-core.c index 5653e0945c74..bd159905dccd 100644 --- a/drivers/hwtracing/coresight/coresight-tmc-core.c +++ b/drivers/hwtracing/coresight/coresight-tmc-core.c @@ -559,7 +559,7 @@ static void tmc_shutdown(struct amba_device *adev) spin_unlock_irqrestore(&drvdata->spinlock, flags); } -static int __exit tmc_remove(struct amba_device *adev) +static void __exit tmc_remove(struct amba_device *adev) { struct tmc_drvdata *drvdata = dev_get_drvdata(&adev->dev); @@ -570,8 +570,6 @@ static int __exit tmc_remove(struct amba_device *adev) */ misc_deregister(&drvdata->miscdev); coresight_unregister(drvdata->csdev); - - return 0; } static const struct amba_id tmc_ids[] = { diff --git a/drivers/hwtracing/coresight/coresight-tpiu.c b/drivers/hwtracing/coresight/coresight-tpiu.c index 566c57e03596..934eee4b0e60 100644 --- a/drivers/hwtracing/coresight/coresight-tpiu.c +++ b/drivers/hwtracing/coresight/coresight-tpiu.c @@ -173,13 +173,11 @@ static int tpiu_probe(struct amba_device *adev, const struct amba_id *id) return PTR_ERR(drvdata->csdev); } -static int __exit tpiu_remove(struct amba_device *adev) +static void __exit tpiu_remove(struct amba_device *adev) { struct tpiu_drvdata *drvdata = dev_get_drvdata(&adev->dev); coresight_unregister(drvdata->csdev); - - return 0; } #ifdef CONFIG_PM diff --git a/drivers/i2c/busses/i2c-nomadik.c b/drivers/i2c/busses/i2c-nomadik.c index d4b1b0865f67..a3363b20f168 100644 --- a/drivers/i2c/busses/i2c-nomadik.c +++ b/drivers/i2c/busses/i2c-nomadik.c @@ -1055,7 +1055,7 @@ static int nmk_i2c_probe(struct amba_device *adev, const struct amba_id *id) return ret; } -static int nmk_i2c_remove(struct amba_device *adev) +static void nmk_i2c_remove(struct amba_device *adev) { struct resource *res = &adev->res; struct nmk_i2c_dev *dev = amba_get_drvdata(adev); @@ -1068,8 +1068,6 @@ static int nmk_i2c_remove(struct amba_device *adev) i2c_clr_bit(dev->virtbase + I2C_CR, I2C_CR_PE); clk_disable_unprepare(dev->clk); release_mem_region(res->start, resource_size(res)); - - return 0; } static struct i2c_vendor_data vendor_stn8815 = { diff --git a/drivers/input/serio/ambakmi.c b/drivers/input/serio/ambakmi.c index ecdeca147ed7..4408245b61d2 100644 --- a/drivers/input/serio/ambakmi.c +++ b/drivers/input/serio/ambakmi.c @@ -159,7 +159,7 @@ static int amba_kmi_probe(struct amba_device *dev, return ret; } -static int amba_kmi_remove(struct amba_device *dev) +static void amba_kmi_remove(struct amba_device *dev) { struct amba_kmi_port *kmi = amba_get_drvdata(dev); @@ -168,7 +168,6 @@ static int amba_kmi_remove(struct amba_device *dev) iounmap(kmi->base); kfree(kmi); amba_release_regions(dev); - return 0; } static int __maybe_unused amba_kmi_resume(struct device *dev) diff --git a/drivers/memory/pl172.c b/drivers/memory/pl172.c index 575fadbffa30..9eb8cc7de494 100644 --- a/drivers/memory/pl172.c +++ b/drivers/memory/pl172.c @@ -273,14 +273,12 @@ static int pl172_probe(struct amba_device *adev, const struct amba_id *id) return ret; } -static int pl172_remove(struct amba_device *adev) +static void pl172_remove(struct amba_device *adev) { struct pl172_data *pl172 = amba_get_drvdata(adev); clk_disable_unprepare(pl172->clk); amba_release_regions(adev); - - return 0; } static const struct amba_id pl172_ids[] = { diff --git a/drivers/memory/pl353-smc.c b/drivers/memory/pl353-smc.c index 73bd3023202f..3b5b1045edd9 100644 --- a/drivers/memory/pl353-smc.c +++ b/drivers/memory/pl353-smc.c @@ -426,14 +426,12 @@ static int pl353_smc_probe(struct amba_device *adev, const struct amba_id *id) return err; } -static int pl353_smc_remove(struct amba_device *adev) +static void pl353_smc_remove(struct amba_device *adev) { struct pl353_smc_data *pl353_smc = amba_get_drvdata(adev); clk_disable_unprepare(pl353_smc->memclk); clk_disable_unprepare(pl353_smc->aclk); - - return 0; } static const struct amba_id pl353_ids[] = { diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index b5a41a7ce165..32f52d070bbd 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c @@ -2195,7 +2195,7 @@ static int mmci_probe(struct amba_device *dev, return ret; } -static int mmci_remove(struct amba_device *dev) +static void mmci_remove(struct amba_device *dev) { struct mmc_host *mmc = amba_get_drvdata(dev); @@ -2223,8 +2223,6 @@ static int mmci_remove(struct amba_device *dev) clk_disable_unprepare(host->clk); mmc_free_host(mmc); } - - return 0; } #ifdef CONFIG_PM diff --git a/drivers/rtc/rtc-pl030.c b/drivers/rtc/rtc-pl030.c index 5a880516f3e8..39038c0754ee 100644 --- a/drivers/rtc/rtc-pl030.c +++ b/drivers/rtc/rtc-pl030.c @@ -137,7 +137,7 @@ static int pl030_probe(struct amba_device *dev, const struct amba_id *id) return ret; } -static int pl030_remove(struct amba_device *dev) +static void pl030_remove(struct amba_device *dev) { struct pl030_rtc *rtc = amba_get_drvdata(dev); @@ -146,8 +146,6 @@ static int pl030_remove(struct amba_device *dev) free_irq(dev->irq[0], rtc); iounmap(rtc->base); amba_release_regions(dev); - - return 0; } static struct amba_id pl030_ids[] = { diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c index 224bbf096262..620c8dc33647 100644 --- a/drivers/rtc/rtc-pl031.c +++ b/drivers/rtc/rtc-pl031.c @@ -280,7 +280,7 @@ static int pl031_set_alarm(struct device *dev, struct rtc_wkalrm *alarm) return 0; } -static int pl031_remove(struct amba_device *adev) +static void pl031_remove(struct amba_device *adev) { struct pl031_local *ldata = dev_get_drvdata(&adev->dev); @@ -289,8 +289,6 @@ static int pl031_remove(struct amba_device *adev) if (adev->irq[0]) free_irq(adev->irq[0], ldata); amba_release_regions(adev); - - return 0; } static int pl031_probe(struct amba_device *adev, const struct amba_id *id) diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c index d1776fea287e..fd74ddfbb686 100644 --- a/drivers/spi/spi-pl022.c +++ b/drivers/spi/spi-pl022.c @@ -2314,13 +2314,13 @@ static int pl022_probe(struct amba_device *adev, const struct amba_id *id) return status; } -static int +static void pl022_remove(struct amba_device *adev) { struct pl022 *pl022 = amba_get_drvdata(adev); if (!pl022) - return 0; + return; /* * undo pm_runtime_put() in probe. I assume that we're not @@ -2335,7 +2335,6 @@ pl022_remove(struct amba_device *adev) clk_disable_unprepare(pl022->clk); amba_release_regions(adev); tasklet_disable(&pl022->pump_transfers); - return 0; } #ifdef CONFIG_PM_SLEEP diff --git a/drivers/tty/serial/amba-pl010.c b/drivers/tty/serial/amba-pl010.c index 3284f34e9dfe..3f96edfe569c 100644 --- a/drivers/tty/serial/amba-pl010.c +++ b/drivers/tty/serial/amba-pl010.c @@ -754,7 +754,7 @@ static int pl010_probe(struct amba_device *dev, const struct amba_id *id) return ret; } -static int pl010_remove(struct amba_device *dev) +static void pl010_remove(struct amba_device *dev) { struct uart_amba_port *uap = amba_get_drvdata(dev); int i; @@ -770,8 +770,6 @@ static int pl010_remove(struct amba_device *dev) if (!busy) uart_unregister_driver(&amba_reg); - - return 0; } #ifdef CONFIG_PM_SLEEP diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c index c255476cce28..4ead0c9048a8 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -2679,13 +2679,12 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id) return pl011_register_port(uap); } -static int pl011_remove(struct amba_device *dev) +static void pl011_remove(struct amba_device *dev) { struct uart_amba_port *uap = amba_get_drvdata(dev); uart_remove_one_port(&amba_reg, &uap->port); pl011_unregister_port(uap); - return 0; } #ifdef CONFIG_PM_SLEEP diff --git a/drivers/vfio/platform/vfio_amba.c b/drivers/vfio/platform/vfio_amba.c index 7b3ebf1558e1..3626c2150101 100644 --- a/drivers/vfio/platform/vfio_amba.c +++ b/drivers/vfio/platform/vfio_amba.c @@ -71,14 +71,13 @@ static int vfio_amba_probe(struct amba_device *adev, const struct amba_id *id) return ret; } -static int vfio_amba_remove(struct amba_device *adev) +static void vfio_amba_remove(struct amba_device *adev) { struct vfio_platform_device *vdev = vfio_platform_remove_common(&adev->dev); kfree(vdev->name); kfree(vdev); - return 0; } static const struct amba_id pl330_ids[] = { diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c index b7682de412d8..33595cc4778e 100644 --- a/drivers/video/fbdev/amba-clcd.c +++ b/drivers/video/fbdev/amba-clcd.c @@ -925,7 +925,7 @@ static int clcdfb_probe(struct amba_device *dev, const struct amba_id *id) return ret; } -static int clcdfb_remove(struct amba_device *dev) +static void clcdfb_remove(struct amba_device *dev) { struct clcd_fb *fb = amba_get_drvdata(dev); @@ -942,8 +942,6 @@ static int clcdfb_remove(struct amba_device *dev) kfree(fb); amba_release_regions(dev); - - return 0; } static const struct amba_id clcdfb_id_table[] = { diff --git a/drivers/watchdog/sp805_wdt.c b/drivers/watchdog/sp805_wdt.c index 190d26e2e75f..2815f78d22bb 100644 --- a/drivers/watchdog/sp805_wdt.c +++ b/drivers/watchdog/sp805_wdt.c @@ -304,14 +304,12 @@ sp805_wdt_probe(struct amba_device *adev, const struct amba_id *id) return ret; } -static int sp805_wdt_remove(struct amba_device *adev) +static void sp805_wdt_remove(struct amba_device *adev) { struct sp805_wdt *wdt = amba_get_drvdata(adev); watchdog_unregister_device(&wdt->wdd); watchdog_set_drvdata(&wdt->wdd, NULL); - - return 0; } static int __maybe_unused sp805_wdt_suspend(struct device *dev) diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h index 0bbfd647f5c6..6cc93ab5b809 100644 --- a/include/linux/amba/bus.h +++ b/include/linux/amba/bus.h @@ -76,7 +76,7 @@ struct amba_device { struct amba_driver { struct device_driver drv; int (*probe)(struct amba_device *, const struct amba_id *); - int (*remove)(struct amba_device *); + void (*remove)(struct amba_device *); void (*shutdown)(struct amba_device *); const struct amba_id *id_table; }; diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c index a0996c47e58f..b326a5f5f0d5 100644 --- a/sound/arm/aaci.c +++ b/sound/arm/aaci.c @@ -1055,7 +1055,7 @@ static int aaci_probe(struct amba_device *dev, return ret; } -static int aaci_remove(struct amba_device *dev) +static void aaci_remove(struct amba_device *dev) { struct snd_card *card = amba_get_drvdata(dev); @@ -1066,8 +1066,6 @@ static int aaci_remove(struct amba_device *dev) snd_card_free(card); amba_release_regions(dev); } - - return 0; } static struct amba_id aaci_ids[] = { -- 2.29.2 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=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT 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 BE324C6379D for ; Tue, 24 Nov 2020 13:44:35 +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 2293C2067D for ; Tue, 24 Nov 2020 13:44:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="xlWp6kWF" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2293C2067D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kleine-koenig.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:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=a0CXvNRuaC17YWg8mXvEwzn1t/AYLH9jKzT2Hm+fu1s=; b=xlWp6kWFSa1y4TTD2954/m8sl Eff87qfeYAaK+E41hS7zdGzhOsUFY7xMSzfwOkbv1IUs1HVI0G6kKVprraZ95+NHhBv0TCtpDo0we dWTb7zM3y/+BAh9c9+vy2o6I6A7ve6Aw33T0TtGLQ8BMrBaEHtmrstW5V6rA899lYvzdLtAUg8M9v bF7B2XrXXV8axymkMv5Gc7SXRcH4OhWDOytQveS5t0M99KlHt7BM1MZU3J8HjRCXejN43W0dqjbVz am0IKAFeNG1peeZWaRRnPaQQspJ19KKlbzUAc4qPRLTdjA7VHWx0zwWrzutVSEWh1HEg9z6HgrDfZ rPsSEW1Fw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1khYbh-0002S4-0A; Tue, 24 Nov 2020 13:43:45 +0000 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1khYQE-0001VQ-O1 for linux-arm-kernel@lists.infradead.org; Tue, 24 Nov 2020 13:32:09 +0000 Received: from pty.hi.pengutronix.de ([2001:67c:670:100:1d::c5]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1khYQ8-0001N9-Pe; Tue, 24 Nov 2020 14:31:48 +0100 Received: from ukl by pty.hi.pengutronix.de with local (Exim 4.89) (envelope-from ) id 1khYQ8-0008Gh-BN; Tue, 24 Nov 2020 14:31:48 +0100 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= To: Russell King , Greg Kroah-Hartman , Arnd Bergmann , Linus Walleij , Ulf Hansson Subject: [PATCH v2 4/5] amba: Make the remove callback return void Date: Tue, 24 Nov 2020 14:31:38 +0100 Message-Id: <20201124133139.3072124-5-uwe@kleine-koenig.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201124133139.3072124-1-uwe@kleine-koenig.org> References: <20201124133139.3072124-1-uwe@kleine-koenig.org> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c5 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201124_083155_314015_857856EB X-CRM114-Status: GOOD ( 20.59 ) 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: Rob Herring , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , kernel@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org 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 RnJvbTogVXdlIEtsZWluZS1Lw7ZuaWcgPHUua2xlaW5lLWtvZW5pZ0BwZW5ndXRyb25peC5kZT4K CkFsbCBhbWJhIGRyaXZlcnMgcmV0dXJuIDAgaW4gdGhlaXIgcmVtb3ZlIGNhbGxiYWNrLiBUb2dl dGhlciB3aXRoIHRoZQpkcml2ZXIgY29yZSBpZ25vcmluZyB0aGUgcmV0dXJuIHZhbHVlIGFueWhv dywgaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvCnJldHVybiBhIHZhbHVlIGhlcmUuCgpDaGFuZ2Ug dGhlIHJlbW92ZSBwcm90b3R5cGUgdG8gcmV0dXJuIHZvaWQsIHdoaWNoIG1ha2VzIGl0IGV4cGxp Y2l0IHRoYXQKcmV0dXJuaW5nIGFuIGVycm9yIHZhbHVlIGRvZXNuJ3Qgd29yayBhcyBleHBlY3Rl ZC4gVGhpcyBzaW1wbGlmaWVzIGNoYW5naW5nCnRoZSBjb3JlIHJlbW92ZSBjYWxsYmFjayB0byBy ZXR1cm4gdm9pZCwgdG9vLgoKUmV2aWV3ZWQtYnk6IFVsZiBIYW5zc29uIDx1bGYuaGFuc3NvbkBs aW5hcm8ub3JnPgpSZXZpZXdlZC1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KU2ln bmVkLW9mZi1ieTogVXdlIEtsZWluZS1Lw7ZuaWcgPHUua2xlaW5lLWtvZW5pZ0BwZW5ndXRyb25p eC5kZT4KLS0tCiBkcml2ZXJzL2FtYmEvYnVzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDUgKystLS0KIGRyaXZlcnMvY2hhci9od19yYW5kb20vbm9tYWRpay1ybmcuYyAgICAg ICAgICAgICAgIHwgMyArLS0KIGRyaXZlcnMvZG1hL3BsMzMwLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMyArLS0KIGRyaXZlcnMvZ3B1L2RybS9wbDExMS9wbDExMV9kcnYuYyAg ICAgICAgICAgICAgICAgIHwgNCArLS0tCiBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29y ZXNpZ2h0LWNhdHUuYyAgICAgICB8IDMgKy0tCiBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQv Y29yZXNpZ2h0LWNwdS1kZWJ1Zy5jICB8IDQgKy0tLQogZHJpdmVycy9od3RyYWNpbmcvY29yZXNp Z2h0L2NvcmVzaWdodC1jdGktY29yZS5jICAgfCA0ICstLS0KIGRyaXZlcnMvaHd0cmFjaW5nL2Nv cmVzaWdodC9jb3Jlc2lnaHQtZXRiMTAuYyAgICAgIHwgNCArLS0tCiBkcml2ZXJzL2h3dHJhY2lu Zy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWV0bTN4LWNvcmUuYyB8IDQgKy0tLQogZHJpdmVycy9od3Ry YWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1ldG00eC1jb3JlLmMgfCA0ICstLS0KIGRyaXZlcnMv aHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtZnVubmVsLmMgICAgIHwgNCArKy0tCiBkcml2 ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LXJlcGxpY2F0b3IuYyB8IDQgKystLQog ZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1zdG0uYyAgICAgICAgfCA0ICst LS0KIGRyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtdG1jLWNvcmUuYyAgIHwg NCArLS0tCiBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LXRwaXUuYyAgICAg ICB8IDQgKy0tLQogZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1ub21hZGlrLmMgICAgICAgICAgICAg ICAgICAgfCA0ICstLS0KIGRyaXZlcnMvaW5wdXQvc2VyaW8vYW1iYWttaS5jICAgICAgICAgICAg ICAgICAgICAgIHwgMyArLS0KIGRyaXZlcnMvbWVtb3J5L3BsMTcyLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgNCArLS0tCiBkcml2ZXJzL21lbW9yeS9wbDM1My1zbWMuYyAgICAgICAg ICAgICAgICAgICAgICAgICB8IDQgKy0tLQogZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCA0ICstLS0KIGRyaXZlcnMvcnRjL3J0Yy1wbDAzMC5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgNCArLS0tCiBkcml2ZXJzL3J0Yy9ydGMtcGwwMzEu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQgKy0tLQogZHJpdmVycy9zcGkvc3BpLXBs MDIyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1ICsrLS0tCiBkcml2ZXJzL3R0eS9z ZXJpYWwvYW1iYS1wbDAxMC5jICAgICAgICAgICAgICAgICAgICB8IDQgKy0tLQogZHJpdmVycy90 dHkvc2VyaWFsL2FtYmEtcGwwMTEuYyAgICAgICAgICAgICAgICAgICAgfCAzICstLQogZHJpdmVy cy92ZmlvL3BsYXRmb3JtL3ZmaW9fYW1iYS5jICAgICAgICAgICAgICAgICAgfCAzICstLQogZHJp dmVycy92aWRlby9mYmRldi9hbWJhLWNsY2QuYyAgICAgICAgICAgICAgICAgICAgfCA0ICstLS0K IGRyaXZlcnMvd2F0Y2hkb2cvc3A4MDVfd2R0LmMgICAgICAgICAgICAgICAgICAgICAgIHwgNCAr LS0tCiBpbmNsdWRlL2xpbnV4L2FtYmEvYnVzLmggICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDIgKy0KIHNvdW5kL2FybS9hYWNpLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgNCArLS0tCiAzMCBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCA4MCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FtYmEvYnVzLmMgYi9kcml2ZXJzL2FtYmEvYnVz LmMKaW5kZXggOGM0YTQyZGY0N2M2Li40OGI1ZDRiNGU4ODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv YW1iYS9idXMuYworKysgYi9kcml2ZXJzL2FtYmEvYnVzLmMKQEAgLTMwMCwxMSArMzAwLDEwIEBA IHN0YXRpYyBpbnQgYW1iYV9yZW1vdmUoc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBh bWJhX2RldmljZSAqcGNkZXYgPSB0b19hbWJhX2RldmljZShkZXYpOwogCXN0cnVjdCBhbWJhX2Ry aXZlciAqZHJ2ID0gdG9fYW1iYV9kcml2ZXIoZGV2LT5kcml2ZXIpOwotCWludCByZXQgPSAwOwog CiAJcG1fcnVudGltZV9nZXRfc3luYyhkZXYpOwogCWlmIChkcnYtPnJlbW92ZSkKLQkJcmV0ID0g ZHJ2LT5yZW1vdmUocGNkZXYpOworCQlkcnYtPnJlbW92ZShwY2Rldik7CiAJcG1fcnVudGltZV9w dXRfbm9pZGxlKGRldik7CiAKIAkvKiBVbmRvIHRoZSBydW50aW1lIFBNIHNldHRpbmdzIGluIGFt YmFfcHJvYmUoKSAqLwpAQCAtMzE1LDcgKzMxNCw3IEBAIHN0YXRpYyBpbnQgYW1iYV9yZW1vdmUo c3RydWN0IGRldmljZSAqZGV2KQogCWFtYmFfcHV0X2Rpc2FibGVfcGNsayhwY2Rldik7CiAJZGV2 X3BtX2RvbWFpbl9kZXRhY2goZGV2LCB0cnVlKTsKIAotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7 CiB9CiAKIHN0YXRpYyB2b2lkIGFtYmFfc2h1dGRvd24oc3RydWN0IGRldmljZSAqZGV2KQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9jaGFyL2h3X3JhbmRvbS9ub21hZGlrLXJuZy5jIGIvZHJpdmVycy9j aGFyL2h3X3JhbmRvbS9ub21hZGlrLXJuZy5jCmluZGV4IGIwZGVkNDFlYjg2NS4uNjc5NDdhMTlh YTIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL25vbWFkaWstcm5nLmMKKysr IGIvZHJpdmVycy9jaGFyL2h3X3JhbmRvbS9ub21hZGlrLXJuZy5jCkBAIC02OSwxMSArNjksMTAg QEAgc3RhdGljIGludCBubWtfcm5nX3Byb2JlKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2LCBjb25z dCBzdHJ1Y3QgYW1iYV9pZCAqaWQpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBubWtf cm5nX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIG5ta19ybmdf cmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2KQogewogCWFtYmFfcmVsZWFzZV9yZWdpb25z KGRldik7CiAJY2xrX2Rpc2FibGUocm5nX2Nsayk7Ci0JcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBj b25zdCBzdHJ1Y3QgYW1iYV9pZCBubWtfcm5nX2lkc1tdID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9kbWEvcGwzMzAuYyBiL2RyaXZlcnMvZG1hL3BsMzMwLmMKaW5kZXggYmMwZjY2YWYwZjExLi5m ZDhkMmJjM2JlOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hL3BsMzMwLmMKKysrIGIvZHJpdmVy cy9kbWEvcGwzMzAuYwpAQCAtMzE5NSw3ICszMTk1LDcgQEAgcGwzMzBfcHJvYmUoc3RydWN0IGFt YmFfZGV2aWNlICphZGV2LCBjb25zdCBzdHJ1Y3QgYW1iYV9pZCAqaWQpCiAJcmV0dXJuIHJldDsK IH0KIAotc3RhdGljIGludCBwbDMzMF9yZW1vdmUoc3RydWN0IGFtYmFfZGV2aWNlICphZGV2KQor c3RhdGljIHZvaWQgcGwzMzBfcmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqYWRldikKIHsKIAlz dHJ1Y3QgcGwzMzBfZG1hYyAqcGwzMzAgPSBhbWJhX2dldF9kcnZkYXRhKGFkZXYpOwogCXN0cnVj dCBkbWFfcGwzMzBfY2hhbiAqcGNoLCAqX3A7CkBAIC0zMjM1LDcgKzMyMzUsNiBAQCBzdGF0aWMg aW50IHBsMzMwX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCiAKIAlpZiAocGwzMzAt PnJzdGMpCiAJCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KHBsMzMwLT5yc3RjKTsKLQlyZXR1cm4gMDsK IH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhbWJhX2lkIHBsMzMwX2lkc1tdID0gewpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJt L3BsMTExL3BsMTExX2Rydi5jCmluZGV4IDQwZTY3MDhmYmJlMi4uMWZiNWVhY2VmZDJkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfZHJ2LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3BsMTExL3BsMTExX2Rydi5jCkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIGludCBw bDExMV9hbWJhX3Byb2JlKHN0cnVjdCBhbWJhX2RldmljZSAqYW1iYV9kZXYsCiAJcmV0dXJuIHJl dDsKIH0KIAotc3RhdGljIGludCBwbDExMV9hbWJhX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2Ug KmFtYmFfZGV2KQorc3RhdGljIHZvaWQgcGwxMTFfYW1iYV9yZW1vdmUoc3RydWN0IGFtYmFfZGV2 aWNlICphbWJhX2RldikKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmYW1iYV9kZXYtPmRldjsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gYW1iYV9nZXRfZHJ2ZGF0YShhbWJhX2Rldik7CkBA IC0zMzEsOCArMzMxLDYgQEAgc3RhdGljIGludCBwbDExMV9hbWJhX3JlbW92ZShzdHJ1Y3QgYW1i YV9kZXZpY2UgKmFtYmFfZGV2KQogCQlkcm1fcGFuZWxfYnJpZGdlX3JlbW92ZShwcml2LT5icmlk Z2UpOwogCWRybV9kZXZfcHV0KGRybSk7CiAJb2ZfcmVzZXJ2ZWRfbWVtX2RldmljZV9yZWxlYXNl KGRldik7Ci0KLQlyZXR1cm4gMDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHd0cmFj aW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtY2F0dS5jIGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNp Z2h0L2NvcmVzaWdodC1jYXR1LmMKaW5kZXggOTk0MzBmNmNmNWE1Li4zZWE2YTVmN2Y5M2QgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtY2F0dS5jCisr KyBiL2RyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtY2F0dS5jCkBAIC01Njcs MTIgKzU2NywxMSBAQCBzdGF0aWMgaW50IGNhdHVfcHJvYmUoc3RydWN0IGFtYmFfZGV2aWNlICph ZGV2LCBjb25zdCBzdHJ1Y3QgYW1iYV9pZCAqaWQpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGlj IGludCBfX2V4aXQgY2F0dV9yZW1vdmUoc3RydWN0IGFtYmFfZGV2aWNlICphZGV2KQorc3RhdGlj IHZvaWQgX19leGl0IGNhdHVfcmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqYWRldikKIHsKIAlz dHJ1Y3QgY2F0dV9kcnZkYXRhICpkcnZkYXRhID0gZGV2X2dldF9kcnZkYXRhKCZhZGV2LT5kZXYp OwogCiAJY29yZXNpZ2h0X3VucmVnaXN0ZXIoZHJ2ZGF0YS0+Y3NkZXYpOwotCXJldHVybiAwOwog fQogCiBzdGF0aWMgc3RydWN0IGFtYmFfaWQgY2F0dV9pZHNbXSA9IHsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtY3B1LWRlYnVnLmMgYi9kcml2ZXJz L2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWNwdS1kZWJ1Zy5jCmluZGV4IGUxZDIzMjQx MWQ4ZC4uMmRjZjEzZGU3NTFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2ln aHQvY29yZXNpZ2h0LWNwdS1kZWJ1Zy5jCisrKyBiL2RyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdo dC9jb3Jlc2lnaHQtY3B1LWRlYnVnLmMKQEAgLTYyNyw3ICs2MjcsNyBAQCBzdGF0aWMgaW50IGRl YnVnX3Byb2JlKHN0cnVjdCBhbWJhX2RldmljZSAqYWRldiwgY29uc3Qgc3RydWN0IGFtYmFfaWQg KmlkKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZGVidWdfcmVtb3ZlKHN0cnVjdCBh bWJhX2RldmljZSAqYWRldikKK3N0YXRpYyB2b2lkIGRlYnVnX3JlbW92ZShzdHJ1Y3QgYW1iYV9k ZXZpY2UgKmFkZXYpCiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJmFkZXYtPmRldjsKIAlzdHJ1 Y3QgZGVidWdfZHJ2ZGF0YSAqZHJ2ZGF0YSA9IGFtYmFfZ2V0X2RydmRhdGEoYWRldik7CkBAIC02 NDIsOCArNjQyLDYgQEAgc3RhdGljIGludCBkZWJ1Z19yZW1vdmUoc3RydWN0IGFtYmFfZGV2aWNl ICphZGV2KQogCiAJaWYgKCEtLWRlYnVnX2NvdW50KQogCQlkZWJ1Z19mdW5jX2V4aXQoKTsKLQot CXJldHVybiAwOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGFtYmFfY3NfdWNpX2lkIHVjaV9p ZF9kZWJ1Z1tdID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2Nv cmVzaWdodC1jdGktY29yZS5jIGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdo dC1jdGktY29yZS5jCmluZGV4IGQyOGVhZTkzZTU1Yy4uZDI1YzZmMDE1MGFkIDEwMDY0NAotLS0g YS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWN0aS1jb3JlLmMKKysrIGIv ZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1jdGktY29yZS5jCkBAIC04MzYs NyArODM2LDcgQEAgc3RhdGljIHZvaWQgY3RpX2RldmljZV9yZWxlYXNlKHN0cnVjdCBkZXZpY2Ug KmRldikKIAlpZiAoZHJ2ZGF0YS0+Y3NkZXZfcmVsZWFzZSkKIAkJZHJ2ZGF0YS0+Y3NkZXZfcmVs ZWFzZShkZXYpOwogfQotc3RhdGljIGludCBfX2V4aXQgY3RpX3JlbW92ZShzdHJ1Y3QgYW1iYV9k ZXZpY2UgKmFkZXYpCitzdGF0aWMgdm9pZCBfX2V4aXQgY3RpX3JlbW92ZShzdHJ1Y3QgYW1iYV9k ZXZpY2UgKmFkZXYpCiB7CiAJc3RydWN0IGN0aV9kcnZkYXRhICpkcnZkYXRhID0gZGV2X2dldF9k cnZkYXRhKCZhZGV2LT5kZXYpOwogCkBAIC04NDUsOCArODQ1LDYgQEAgc3RhdGljIGludCBfX2V4 aXQgY3RpX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCiAJbXV0ZXhfdW5sb2NrKCZl Y3RfbXV0ZXgpOwogCiAJY29yZXNpZ2h0X3VucmVnaXN0ZXIoZHJ2ZGF0YS0+Y3NkZXYpOwotCi0J cmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgY3RpX3Byb2JlKHN0cnVjdCBhbWJhX2RldmljZSAq YWRldiwgY29uc3Qgc3RydWN0IGFtYmFfaWQgKmlkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od3Ry YWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1ldGIxMC5jIGIvZHJpdmVycy9od3RyYWNpbmcvY29y ZXNpZ2h0L2NvcmVzaWdodC1ldGIxMC5jCmluZGV4IDFiMzIwYWI1ODFjYS4uMGY5ZWMyMWE5ZWRh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWV0YjEw LmMKKysrIGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1ldGIxMC5jCkBA IC04MDMsNyArODAzLDcgQEAgc3RhdGljIGludCBldGJfcHJvYmUoc3RydWN0IGFtYmFfZGV2aWNl ICphZGV2LCBjb25zdCBzdHJ1Y3QgYW1iYV9pZCAqaWQpCiAJcmV0dXJuIHJldDsKIH0KIAotc3Rh dGljIGludCBfX2V4aXQgZXRiX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCitzdGF0 aWMgdm9pZCBfX2V4aXQgZXRiX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCiB7CiAJ c3RydWN0IGV0Yl9kcnZkYXRhICpkcnZkYXRhID0gZGV2X2dldF9kcnZkYXRhKCZhZGV2LT5kZXYp OwogCkBAIC04MTQsOCArODE0LDYgQEAgc3RhdGljIGludCBfX2V4aXQgZXRiX3JlbW92ZShzdHJ1 Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCiAJICovCiAJbWlzY19kZXJlZ2lzdGVyKCZkcnZkYXRhLT5t aXNjZGV2KTsKIAljb3Jlc2lnaHRfdW5yZWdpc3RlcihkcnZkYXRhLT5jc2Rldik7Ci0KLQlyZXR1 cm4gMDsKIH0KIAogI2lmZGVmIENPTkZJR19QTQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od3RyYWNp bmcvY29yZXNpZ2h0L2NvcmVzaWdodC1ldG0zeC1jb3JlLmMgYi9kcml2ZXJzL2h3dHJhY2luZy9j b3Jlc2lnaHQvY29yZXNpZ2h0LWV0bTN4LWNvcmUuYwppbmRleCA0N2Y2MTBiMWMyYjEuLjVmN2Ew MDhhMWFmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdo dC1ldG0zeC1jb3JlLmMKKysrIGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdo dC1ldG0zeC1jb3JlLmMKQEAgLTkwOSw3ICs5MDksNyBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgY2xl YXJfZXRtZHJ2ZGF0YSh2b2lkICppbmZvKQogCWV0bWRydmRhdGFbY3B1XSA9IE5VTEw7CiB9CiAK LXN0YXRpYyBpbnQgX19leGl0IGV0bV9yZW1vdmUoc3RydWN0IGFtYmFfZGV2aWNlICphZGV2KQor c3RhdGljIHZvaWQgX19leGl0IGV0bV9yZW1vdmUoc3RydWN0IGFtYmFfZGV2aWNlICphZGV2KQog ewogCXN0cnVjdCBldG1fZHJ2ZGF0YSAqZHJ2ZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YSgmYWRldi0+ ZGV2KTsKIApAQCAtOTMyLDggKzkzMiw2IEBAIHN0YXRpYyBpbnQgX19leGl0IGV0bV9yZW1vdmUo c3RydWN0IGFtYmFfZGV2aWNlICphZGV2KQogCWNwdXNfcmVhZF91bmxvY2soKTsKIAogCWNvcmVz aWdodF91bnJlZ2lzdGVyKGRydmRhdGEtPmNzZGV2KTsKLQotCXJldHVybiAwOwogfQogCiAjaWZk ZWYgQ09ORklHX1BNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29y ZXNpZ2h0LWV0bTR4LWNvcmUuYyBiL2RyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2ln aHQtZXRtNHgtY29yZS5jCmluZGV4IGQ3OGEzN2I2NTkyYy4uNDBkZDU5MjMzODEwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWV0bTR4LWNvcmUuYwor KysgYi9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWV0bTR4LWNvcmUuYwpA QCAtMTU4Miw3ICsxNTgyLDcgQEAgc3RhdGljIHZvaWQgX19leGl0IGNsZWFyX2V0bWRydmRhdGEo dm9pZCAqaW5mbykKIAlldG1kcnZkYXRhW2NwdV0gPSBOVUxMOwogfQogCi1zdGF0aWMgaW50IF9f ZXhpdCBldG00X3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgdm9pZCBf X2V4aXQgZXRtNF9yZW1vdmUoc3RydWN0IGFtYmFfZGV2aWNlICphZGV2KQogewogCXN0cnVjdCBl dG12NF9kcnZkYXRhICpkcnZkYXRhID0gZGV2X2dldF9kcnZkYXRhKCZhZGV2LT5kZXYpOwogCkBA IC0xNjA1LDggKzE2MDUsNiBAQCBzdGF0aWMgaW50IF9fZXhpdCBldG00X3JlbW92ZShzdHJ1Y3Qg YW1iYV9kZXZpY2UgKmFkZXYpCiAJY3B1c19yZWFkX3VubG9jaygpOwogCiAJY29yZXNpZ2h0X3Vu cmVnaXN0ZXIoZHJ2ZGF0YS0+Y3NkZXYpOwotCi0JcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBjb25z dCBzdHJ1Y3QgYW1iYV9pZCBldG00X2lkc1tdID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od3Ry YWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1mdW5uZWwuYyBiL2RyaXZlcnMvaHd0cmFjaW5nL2Nv cmVzaWdodC9jb3Jlc2lnaHQtZnVubmVsLmMKaW5kZXggMzliZTQ2Yjc0ZGZlLi40MzQzMTAwMWZk NzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtZnVu bmVsLmMKKysrIGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1mdW5uZWwu YwpAQCAtMzcwLDkgKzM3MCw5IEBAIHN0YXRpYyBpbnQgZHluYW1pY19mdW5uZWxfcHJvYmUoc3Ry dWN0IGFtYmFfZGV2aWNlICphZGV2LAogCXJldHVybiBmdW5uZWxfcHJvYmUoJmFkZXYtPmRldiwg JmFkZXYtPnJlcyk7CiB9CiAKLXN0YXRpYyBpbnQgX19leGl0IGR5bmFtaWNfZnVubmVsX3JlbW92 ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgdm9pZCBfX2V4aXQgZHluYW1pY19m dW5uZWxfcmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqYWRldikKIHsKLQlyZXR1cm4gZnVubmVs X3JlbW92ZSgmYWRldi0+ZGV2KTsKKwlmdW5uZWxfcmVtb3ZlKCZhZGV2LT5kZXYpOwogfQogCiBz dGF0aWMgY29uc3Qgc3RydWN0IGFtYmFfaWQgZHluYW1pY19mdW5uZWxfaWRzW10gPSB7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LXJlcGxpY2F0b3Iu YyBiL2RyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtcmVwbGljYXRvci5jCmlu ZGV4IDY3NzJmMjNlNWM0Yi4uYWFiMTNmOWRlMmY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3dHJh Y2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LXJlcGxpY2F0b3IuYworKysgYi9kcml2ZXJzL2h3dHJh Y2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LXJlcGxpY2F0b3IuYwpAQCAtMzg4LDkgKzM4OCw5IEBA IHN0YXRpYyBpbnQgZHluYW1pY19yZXBsaWNhdG9yX3Byb2JlKHN0cnVjdCBhbWJhX2RldmljZSAq YWRldiwKIAlyZXR1cm4gcmVwbGljYXRvcl9wcm9iZSgmYWRldi0+ZGV2LCAmYWRldi0+cmVzKTsK IH0KIAotc3RhdGljIGludCBfX2V4aXQgZHluYW1pY19yZXBsaWNhdG9yX3JlbW92ZShzdHJ1Y3Qg YW1iYV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgdm9pZCBfX2V4aXQgZHluYW1pY19yZXBsaWNhdG9y X3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCiB7Ci0JcmV0dXJuIHJlcGxpY2F0b3Jf cmVtb3ZlKCZhZGV2LT5kZXYpOworCXJlcGxpY2F0b3JfcmVtb3ZlKCZhZGV2LT5kZXYpOwogfQog CiBzdGF0aWMgY29uc3Qgc3RydWN0IGFtYmFfaWQgZHluYW1pY19yZXBsaWNhdG9yX2lkc1tdID0g ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1zdG0u YyBiL2RyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtc3RtLmMKaW5kZXggYjBh ZDkxMjY1MWE5Li4zM2M1YjMwODBjODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHd0cmFjaW5nL2Nv cmVzaWdodC9jb3Jlc2lnaHQtc3RtLmMKKysrIGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0 L2NvcmVzaWdodC1zdG0uYwpAQCAtOTUxLDE1ICs5NTEsMTMgQEAgc3RhdGljIGludCBzdG1fcHJv YmUoc3RydWN0IGFtYmFfZGV2aWNlICphZGV2LCBjb25zdCBzdHJ1Y3QgYW1iYV9pZCAqaWQpCiAJ cmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBfX2V4aXQgc3RtX3JlbW92ZShzdHJ1Y3QgYW1i YV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgdm9pZCBfX2V4aXQgc3RtX3JlbW92ZShzdHJ1Y3QgYW1i YV9kZXZpY2UgKmFkZXYpCiB7CiAJc3RydWN0IHN0bV9kcnZkYXRhICpkcnZkYXRhID0gZGV2X2dl dF9kcnZkYXRhKCZhZGV2LT5kZXYpOwogCiAJY29yZXNpZ2h0X3VucmVnaXN0ZXIoZHJ2ZGF0YS0+ Y3NkZXYpOwogCiAJc3RtX3VucmVnaXN0ZXJfZGV2aWNlKCZkcnZkYXRhLT5zdG0pOwotCi0JcmV0 dXJuIDA7CiB9CiAKICNpZmRlZiBDT05GSUdfUE0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHd0cmFj aW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtdG1jLWNvcmUuYyBiL2RyaXZlcnMvaHd0cmFjaW5nL2Nv cmVzaWdodC9jb3Jlc2lnaHQtdG1jLWNvcmUuYwppbmRleCA1NjUzZTA5NDVjNzQuLmJkMTU5OTA1 ZGNjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC10 bWMtY29yZS5jCisrKyBiL2RyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtdG1j LWNvcmUuYwpAQCAtNTU5LDcgKzU1OSw3IEBAIHN0YXRpYyB2b2lkIHRtY19zaHV0ZG93bihzdHJ1 Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHJ2ZGF0YS0+ c3BpbmxvY2ssIGZsYWdzKTsKIH0KIAotc3RhdGljIGludCBfX2V4aXQgdG1jX3JlbW92ZShzdHJ1 Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgdm9pZCBfX2V4aXQgdG1jX3JlbW92ZShzdHJ1 Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCiB7CiAJc3RydWN0IHRtY19kcnZkYXRhICpkcnZkYXRhID0g ZGV2X2dldF9kcnZkYXRhKCZhZGV2LT5kZXYpOwogCkBAIC01NzAsOCArNTcwLDYgQEAgc3RhdGlj IGludCBfX2V4aXQgdG1jX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCiAJICovCiAJ bWlzY19kZXJlZ2lzdGVyKCZkcnZkYXRhLT5taXNjZGV2KTsKIAljb3Jlc2lnaHRfdW5yZWdpc3Rl cihkcnZkYXRhLT5jc2Rldik7Ci0KLQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVj dCBhbWJhX2lkIHRtY19pZHNbXSA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHd0cmFjaW5nL2Nv cmVzaWdodC9jb3Jlc2lnaHQtdHBpdS5jIGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2Nv cmVzaWdodC10cGl1LmMKaW5kZXggNTY2YzU3ZTAzNTk2Li45MzRlZWU0YjBlNjAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtdHBpdS5jCisrKyBiL2Ry aXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtdHBpdS5jCkBAIC0xNzMsMTMgKzE3 MywxMSBAQCBzdGF0aWMgaW50IHRwaXVfcHJvYmUoc3RydWN0IGFtYmFfZGV2aWNlICphZGV2LCBj b25zdCBzdHJ1Y3QgYW1iYV9pZCAqaWQpCiAJcmV0dXJuIFBUUl9FUlIoZHJ2ZGF0YS0+Y3NkZXYp OwogfQogCi1zdGF0aWMgaW50IF9fZXhpdCB0cGl1X3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2Ug KmFkZXYpCitzdGF0aWMgdm9pZCBfX2V4aXQgdHBpdV9yZW1vdmUoc3RydWN0IGFtYmFfZGV2aWNl ICphZGV2KQogewogCXN0cnVjdCB0cGl1X2RydmRhdGEgKmRydmRhdGEgPSBkZXZfZ2V0X2RydmRh dGEoJmFkZXYtPmRldik7CiAKIAljb3Jlc2lnaHRfdW5yZWdpc3RlcihkcnZkYXRhLT5jc2Rldik7 Ci0KLQlyZXR1cm4gMDsKIH0KIAogI2lmZGVmIENPTkZJR19QTQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9pMmMvYnVzc2VzL2kyYy1ub21hZGlrLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW5vbWFk aWsuYwppbmRleCBkNGIxYjA4NjVmNjcuLmEzMzYzYjIwZjE2OCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9pMmMvYnVzc2VzL2kyYy1ub21hZGlrLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1u b21hZGlrLmMKQEAgLTEwNTUsNyArMTA1NSw3IEBAIHN0YXRpYyBpbnQgbm1rX2kyY19wcm9iZShz dHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYsIGNvbnN0IHN0cnVjdCBhbWJhX2lkICppZCkKIAlyZXR1 cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IG5ta19pMmNfcmVtb3ZlKHN0cnVjdCBhbWJhX2Rldmlj ZSAqYWRldikKK3N0YXRpYyB2b2lkIG5ta19pMmNfcmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAq YWRldikKIHsKIAlzdHJ1Y3QgcmVzb3VyY2UgKnJlcyA9ICZhZGV2LT5yZXM7CiAJc3RydWN0IG5t a19pMmNfZGV2ICpkZXYgPSBhbWJhX2dldF9kcnZkYXRhKGFkZXYpOwpAQCAtMTA2OCw4ICsxMDY4 LDYgQEAgc3RhdGljIGludCBubWtfaTJjX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYp CiAJaTJjX2Nscl9iaXQoZGV2LT52aXJ0YmFzZSArIEkyQ19DUiwgSTJDX0NSX1BFKTsKIAljbGtf ZGlzYWJsZV91bnByZXBhcmUoZGV2LT5jbGspOwogCXJlbGVhc2VfbWVtX3JlZ2lvbihyZXMtPnN0 YXJ0LCByZXNvdXJjZV9zaXplKHJlcykpOwotCi0JcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBzdHJ1 Y3QgaTJjX3ZlbmRvcl9kYXRhIHZlbmRvcl9zdG44ODE1ID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9pbnB1dC9zZXJpby9hbWJha21pLmMgYi9kcml2ZXJzL2lucHV0L3NlcmlvL2FtYmFrbWkuYwpp bmRleCBlY2RlY2ExNDdlZDcuLjQ0MDgyNDViNjFkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1 dC9zZXJpby9hbWJha21pLmMKKysrIGIvZHJpdmVycy9pbnB1dC9zZXJpby9hbWJha21pLmMKQEAg LTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgaW50IGFtYmFfa21pX3Byb2JlKHN0cnVjdCBhbWJhX2Rl dmljZSAqZGV2LAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgYW1iYV9rbWlfcmVtb3Zl KHN0cnVjdCBhbWJhX2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQgYW1iYV9rbWlfcmVtb3ZlKHN0 cnVjdCBhbWJhX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBhbWJhX2ttaV9wb3J0ICprbWkgPSBh bWJhX2dldF9kcnZkYXRhKGRldik7CiAKQEAgLTE2OCw3ICsxNjgsNiBAQCBzdGF0aWMgaW50IGFt YmFfa21pX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRldikKIAlpb3VubWFwKGttaS0+YmFz ZSk7CiAJa2ZyZWUoa21pKTsKIAlhbWJhX3JlbGVhc2VfcmVnaW9ucyhkZXYpOwotCXJldHVybiAw OwogfQogCiBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGFtYmFfa21pX3Jlc3VtZShzdHJ1Y3Qg ZGV2aWNlICpkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lbW9yeS9wbDE3Mi5jIGIvZHJpdmVy cy9tZW1vcnkvcGwxNzIuYwppbmRleCA1NzVmYWRiZmZhMzAuLjllYjhjYzdkZTQ5NCAxMDA2NDQK LS0tIGEvZHJpdmVycy9tZW1vcnkvcGwxNzIuYworKysgYi9kcml2ZXJzL21lbW9yeS9wbDE3Mi5j CkBAIC0yNzMsMTQgKzI3MywxMiBAQCBzdGF0aWMgaW50IHBsMTcyX3Byb2JlKHN0cnVjdCBhbWJh X2RldmljZSAqYWRldiwgY29uc3Qgc3RydWN0IGFtYmFfaWQgKmlkKQogCXJldHVybiByZXQ7CiB9 CiAKLXN0YXRpYyBpbnQgcGwxNzJfcmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqYWRldikKK3N0 YXRpYyB2b2lkIHBsMTcyX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCiB7CiAJc3Ry dWN0IHBsMTcyX2RhdGEgKnBsMTcyID0gYW1iYV9nZXRfZHJ2ZGF0YShhZGV2KTsKIAogCWNsa19k aXNhYmxlX3VucHJlcGFyZShwbDE3Mi0+Y2xrKTsKIAlhbWJhX3JlbGVhc2VfcmVnaW9ucyhhZGV2 KTsKLQotCXJldHVybiAwOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGFtYmFfaWQgcGwxNzJf aWRzW10gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lbW9yeS9wbDM1My1zbWMuYyBiL2RyaXZl cnMvbWVtb3J5L3BsMzUzLXNtYy5jCmluZGV4IDczYmQzMDIzMjAyZi4uM2I1YjEwNDVlZGQ5IDEw MDY0NAotLS0gYS9kcml2ZXJzL21lbW9yeS9wbDM1My1zbWMuYworKysgYi9kcml2ZXJzL21lbW9y eS9wbDM1My1zbWMuYwpAQCAtNDI2LDE0ICs0MjYsMTIgQEAgc3RhdGljIGludCBwbDM1M19zbWNf cHJvYmUoc3RydWN0IGFtYmFfZGV2aWNlICphZGV2LCBjb25zdCBzdHJ1Y3QgYW1iYV9pZCAqaWQp CiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCBwbDM1M19zbWNfcmVtb3ZlKHN0cnVjdCBh bWJhX2RldmljZSAqYWRldikKK3N0YXRpYyB2b2lkIHBsMzUzX3NtY19yZW1vdmUoc3RydWN0IGFt YmFfZGV2aWNlICphZGV2KQogewogCXN0cnVjdCBwbDM1M19zbWNfZGF0YSAqcGwzNTNfc21jID0g YW1iYV9nZXRfZHJ2ZGF0YShhZGV2KTsKIAogCWNsa19kaXNhYmxlX3VucHJlcGFyZShwbDM1M19z bWMtPm1lbWNsayk7CiAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBsMzUzX3NtYy0+YWNsayk7Ci0K LQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhbWJhX2lkIHBsMzUzX2lkc1td ID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMgYi9kcml2ZXJzL21tYy9o b3N0L21tY2kuYwppbmRleCBiNWE0MWE3Y2UxNjUuLjMyZjUyZDA3MGJiZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMKKysrIGIvZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMKQEAg LTIxOTUsNyArMjE5NSw3IEBAIHN0YXRpYyBpbnQgbW1jaV9wcm9iZShzdHJ1Y3QgYW1iYV9kZXZp Y2UgKmRldiwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IG1tY2lfcmVtb3ZlKHN0cnVj dCBhbWJhX2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQgbW1jaV9yZW1vdmUoc3RydWN0IGFtYmFf ZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IG1tY19ob3N0ICptbWMgPSBhbWJhX2dldF9kcnZkYXRh KGRldik7CiAKQEAgLTIyMjMsOCArMjIyMyw2IEBAIHN0YXRpYyBpbnQgbW1jaV9yZW1vdmUoc3Ry dWN0IGFtYmFfZGV2aWNlICpkZXYpCiAJCWNsa19kaXNhYmxlX3VucHJlcGFyZShob3N0LT5jbGsp OwogCQltbWNfZnJlZV9ob3N0KG1tYyk7CiAJfQotCi0JcmV0dXJuIDA7CiB9CiAKICNpZmRlZiBD T05GSUdfUE0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMC5jIGIvZHJpdmVycy9y dGMvcnRjLXBsMDMwLmMKaW5kZXggNWE4ODA1MTZmM2U4Li4zOTAzOGMwNzU0ZWUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMC5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMC5j CkBAIC0xMzcsNyArMTM3LDcgQEAgc3RhdGljIGludCBwbDAzMF9wcm9iZShzdHJ1Y3QgYW1iYV9k ZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGFtYmFfaWQgKmlkKQogCXJldHVybiByZXQ7CiB9CiAK LXN0YXRpYyBpbnQgcGwwMzBfcmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2KQorc3RhdGlj IHZvaWQgcGwwMzBfcmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBw bDAzMF9ydGMgKnJ0YyA9IGFtYmFfZ2V0X2RydmRhdGEoZGV2KTsKIApAQCAtMTQ2LDggKzE0Niw2 IEBAIHN0YXRpYyBpbnQgcGwwMzBfcmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2KQogCWZy ZWVfaXJxKGRldi0+aXJxWzBdLCBydGMpOwogCWlvdW5tYXAocnRjLT5iYXNlKTsKIAlhbWJhX3Jl bGVhc2VfcmVnaW9ucyhkZXYpOwotCi0JcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgYW1i YV9pZCBwbDAzMF9pZHNbXSA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMS5j IGIvZHJpdmVycy9ydGMvcnRjLXBsMDMxLmMKaW5kZXggMjI0YmJmMDk2MjYyLi42MjBjOGRjMzM2 NDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMS5jCisrKyBiL2RyaXZlcnMvcnRj L3J0Yy1wbDAzMS5jCkBAIC0yODAsNyArMjgwLDcgQEAgc3RhdGljIGludCBwbDAzMV9zZXRfYWxh cm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxhcm0pCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgcGwwMzFfcmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqYWRl dikKK3N0YXRpYyB2b2lkIHBsMDMxX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCiB7 CiAJc3RydWN0IHBsMDMxX2xvY2FsICpsZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YSgmYWRldi0+ZGV2 KTsKIApAQCAtMjg5LDggKzI4OSw2IEBAIHN0YXRpYyBpbnQgcGwwMzFfcmVtb3ZlKHN0cnVjdCBh bWJhX2RldmljZSAqYWRldikKIAlpZiAoYWRldi0+aXJxWzBdKQogCQlmcmVlX2lycShhZGV2LT5p cnFbMF0sIGxkYXRhKTsKIAlhbWJhX3JlbGVhc2VfcmVnaW9ucyhhZGV2KTsKLQotCXJldHVybiAw OwogfQogCiBzdGF0aWMgaW50IHBsMDMxX3Byb2JlKHN0cnVjdCBhbWJhX2RldmljZSAqYWRldiwg Y29uc3Qgc3RydWN0IGFtYmFfaWQgKmlkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXBs MDIyLmMgYi9kcml2ZXJzL3NwaS9zcGktcGwwMjIuYwppbmRleCBkMTc3NmZlYTI4N2UuLmZkNzRk ZGZiYjY4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLXBsMDIyLmMKKysrIGIvZHJpdmVy cy9zcGkvc3BpLXBsMDIyLmMKQEAgLTIzMTQsMTMgKzIzMTQsMTMgQEAgc3RhdGljIGludCBwbDAy Ml9wcm9iZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYsIGNvbnN0IHN0cnVjdCBhbWJhX2lkICpp ZCkKIAlyZXR1cm4gc3RhdHVzOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdm9pZAogcGwwMjJf cmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqYWRldikKIHsKIAlzdHJ1Y3QgcGwwMjIgKnBsMDIy ID0gYW1iYV9nZXRfZHJ2ZGF0YShhZGV2KTsKIAogCWlmICghcGwwMjIpCi0JCXJldHVybiAwOwor CQlyZXR1cm47CiAKIAkvKgogCSAqIHVuZG8gcG1fcnVudGltZV9wdXQoKSBpbiBwcm9iZS4gIEkg YXNzdW1lIHRoYXQgd2UncmUgbm90CkBAIC0yMzM1LDcgKzIzMzUsNiBAQCBwbDAyMl9yZW1vdmUo c3RydWN0IGFtYmFfZGV2aWNlICphZGV2KQogCWNsa19kaXNhYmxlX3VucHJlcGFyZShwbDAyMi0+ Y2xrKTsKIAlhbWJhX3JlbGVhc2VfcmVnaW9ucyhhZGV2KTsKIAl0YXNrbGV0X2Rpc2FibGUoJnBs MDIyLT5wdW1wX3RyYW5zZmVycyk7Ci0JcmV0dXJuIDA7CiB9CiAKICNpZmRlZiBDT05GSUdfUE1f U0xFRVAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC9hbWJhLXBsMDEwLmMgYi9kcml2 ZXJzL3R0eS9zZXJpYWwvYW1iYS1wbDAxMC5jCmluZGV4IDMyODRmMzRlOWRmZS4uM2Y5NmVkZmU1 NjljIDEwMDY0NAotLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvYW1iYS1wbDAxMC5jCisrKyBiL2Ry aXZlcnMvdHR5L3NlcmlhbC9hbWJhLXBsMDEwLmMKQEAgLTc1NCw3ICs3NTQsNyBAQCBzdGF0aWMg aW50IHBsMDEwX3Byb2JlKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3QgYW1i YV9pZCAqaWQpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwbDAxMF9yZW1vdmUoc3Ry dWN0IGFtYmFfZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBwbDAxMF9yZW1vdmUoc3RydWN0IGFt YmFfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IHVhcnRfYW1iYV9wb3J0ICp1YXAgPSBhbWJhX2dl dF9kcnZkYXRhKGRldik7CiAJaW50IGk7CkBAIC03NzAsOCArNzcwLDYgQEAgc3RhdGljIGludCBw bDAxMF9yZW1vdmUoc3RydWN0IGFtYmFfZGV2aWNlICpkZXYpCiAKIAlpZiAoIWJ1c3kpCiAJCXVh cnRfdW5yZWdpc3Rlcl9kcml2ZXIoJmFtYmFfcmVnKTsKLQotCXJldHVybiAwOwogfQogCiAjaWZk ZWYgQ09ORklHX1BNX1NMRUVQCmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvYW1iYS1w bDAxMS5jIGIvZHJpdmVycy90dHkvc2VyaWFsL2FtYmEtcGwwMTEuYwppbmRleCBjMjU1NDc2Y2Nl MjguLjRlYWQwYzkwNDhhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL2FtYmEtcGww MTEuYworKysgYi9kcml2ZXJzL3R0eS9zZXJpYWwvYW1iYS1wbDAxMS5jCkBAIC0yNjc5LDEzICsy Njc5LDEyIEBAIHN0YXRpYyBpbnQgcGwwMTFfcHJvYmUoc3RydWN0IGFtYmFfZGV2aWNlICpkZXYs IGNvbnN0IHN0cnVjdCBhbWJhX2lkICppZCkKIAlyZXR1cm4gcGwwMTFfcmVnaXN0ZXJfcG9ydCh1 YXApOwogfQogCi1zdGF0aWMgaW50IHBsMDExX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRl dikKK3N0YXRpYyB2b2lkIHBsMDExX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRldikKIHsK IAlzdHJ1Y3QgdWFydF9hbWJhX3BvcnQgKnVhcCA9IGFtYmFfZ2V0X2RydmRhdGEoZGV2KTsKIAog CXVhcnRfcmVtb3ZlX29uZV9wb3J0KCZhbWJhX3JlZywgJnVhcC0+cG9ydCk7CiAJcGwwMTFfdW5y ZWdpc3Rlcl9wb3J0KHVhcCk7Ci0JcmV0dXJuIDA7CiB9CiAKICNpZmRlZiBDT05GSUdfUE1fU0xF RVAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wbGF0Zm9ybS92ZmlvX2FtYmEuYyBiL2RyaXZl cnMvdmZpby9wbGF0Zm9ybS92ZmlvX2FtYmEuYwppbmRleCA3YjNlYmYxNTU4ZTEuLjM2MjZjMjE1 MDEwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy92ZmlvL3BsYXRmb3JtL3ZmaW9fYW1iYS5jCisrKyBi L2RyaXZlcnMvdmZpby9wbGF0Zm9ybS92ZmlvX2FtYmEuYwpAQCAtNzEsMTQgKzcxLDEzIEBAIHN0 YXRpYyBpbnQgdmZpb19hbWJhX3Byb2JlKHN0cnVjdCBhbWJhX2RldmljZSAqYWRldiwgY29uc3Qg c3RydWN0IGFtYmFfaWQgKmlkKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgdmZpb19h bWJhX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgdm9pZCB2ZmlvX2Ft YmFfcmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqYWRldikKIHsKIAlzdHJ1Y3QgdmZpb19wbGF0 Zm9ybV9kZXZpY2UgKnZkZXYgPQogCQl2ZmlvX3BsYXRmb3JtX3JlbW92ZV9jb21tb24oJmFkZXYt PmRldik7CiAKIAlrZnJlZSh2ZGV2LT5uYW1lKTsKIAlrZnJlZSh2ZGV2KTsKLQlyZXR1cm4gMDsK IH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhbWJhX2lkIHBsMzMwX2lkc1tdID0gewpkaWZmIC0t Z2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9hbWJhLWNsY2QuYyBiL2RyaXZlcnMvdmlkZW8vZmJk ZXYvYW1iYS1jbGNkLmMKaW5kZXggYjc2ODJkZTQxMmQ4Li4zMzU5NWNjNDc3OGUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYW1iYS1jbGNkLmMKKysrIGIvZHJpdmVycy92aWRlby9m YmRldi9hbWJhLWNsY2QuYwpAQCAtOTI1LDcgKzkyNSw3IEBAIHN0YXRpYyBpbnQgY2xjZGZiX3By b2JlKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3QgYW1iYV9pZCAqaWQpCiAJ cmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBjbGNkZmJfcmVtb3ZlKHN0cnVjdCBhbWJhX2Rl dmljZSAqZGV2KQorc3RhdGljIHZvaWQgY2xjZGZiX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2Ug KmRldikKIHsKIAlzdHJ1Y3QgY2xjZF9mYiAqZmIgPSBhbWJhX2dldF9kcnZkYXRhKGRldik7CiAK QEAgLTk0Miw4ICs5NDIsNiBAQCBzdGF0aWMgaW50IGNsY2RmYl9yZW1vdmUoc3RydWN0IGFtYmFf ZGV2aWNlICpkZXYpCiAJa2ZyZWUoZmIpOwogCiAJYW1iYV9yZWxlYXNlX3JlZ2lvbnMoZGV2KTsK LQotCXJldHVybiAwOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGFtYmFfaWQgY2xjZGZiX2lk X3RhYmxlW10gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3dhdGNoZG9nL3NwODA1X3dkdC5jIGIv ZHJpdmVycy93YXRjaGRvZy9zcDgwNV93ZHQuYwppbmRleCAxOTBkMjZlMmU3NWYuLjI4MTVmNzhk MjJiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9zcDgwNV93ZHQuYworKysgYi9kcml2 ZXJzL3dhdGNoZG9nL3NwODA1X3dkdC5jCkBAIC0zMDQsMTQgKzMwNCwxMiBAQCBzcDgwNV93ZHRf cHJvYmUoc3RydWN0IGFtYmFfZGV2aWNlICphZGV2LCBjb25zdCBzdHJ1Y3QgYW1iYV9pZCAqaWQp CiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBzcDgwNV93ZHRfcmVtb3ZlKHN0cnVjdCBh bWJhX2RldmljZSAqYWRldikKK3N0YXRpYyB2b2lkIHNwODA1X3dkdF9yZW1vdmUoc3RydWN0IGFt YmFfZGV2aWNlICphZGV2KQogewogCXN0cnVjdCBzcDgwNV93ZHQgKndkdCA9IGFtYmFfZ2V0X2Ry dmRhdGEoYWRldik7CiAKIAl3YXRjaGRvZ191bnJlZ2lzdGVyX2RldmljZSgmd2R0LT53ZGQpOwog CXdhdGNoZG9nX3NldF9kcnZkYXRhKCZ3ZHQtPndkZCwgTlVMTCk7Ci0KLQlyZXR1cm4gMDsKIH0K IAogc3RhdGljIGludCBfX21heWJlX3VudXNlZCBzcDgwNV93ZHRfc3VzcGVuZChzdHJ1Y3QgZGV2 aWNlICpkZXYpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2FtYmEvYnVzLmggYi9pbmNsdWRl L2xpbnV4L2FtYmEvYnVzLmgKaW5kZXggMGJiZmQ2NDdmNWM2Li42Y2M5M2FiNWI4MDkgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvYW1iYS9idXMuaAorKysgYi9pbmNsdWRlL2xpbnV4L2FtYmEv YnVzLmgKQEAgLTc2LDcgKzc2LDcgQEAgc3RydWN0IGFtYmFfZGV2aWNlIHsKIHN0cnVjdCBhbWJh X2RyaXZlciB7CiAJc3RydWN0IGRldmljZV9kcml2ZXIJZHJ2OwogCWludAkJCSgqcHJvYmUpKHN0 cnVjdCBhbWJhX2RldmljZSAqLCBjb25zdCBzdHJ1Y3QgYW1iYV9pZCAqKTsKLQlpbnQJCQkoKnJl bW92ZSkoc3RydWN0IGFtYmFfZGV2aWNlICopOworCXZvaWQJCQkoKnJlbW92ZSkoc3RydWN0IGFt YmFfZGV2aWNlICopOwogCXZvaWQJCQkoKnNodXRkb3duKShzdHJ1Y3QgYW1iYV9kZXZpY2UgKik7 CiAJY29uc3Qgc3RydWN0IGFtYmFfaWQJKmlkX3RhYmxlOwogfTsKZGlmZiAtLWdpdCBhL3NvdW5k L2FybS9hYWNpLmMgYi9zb3VuZC9hcm0vYWFjaS5jCmluZGV4IGEwOTk2YzQ3ZTU4Zi4uYjMyNmE1 ZjVmMGQ1IDEwMDY0NAotLS0gYS9zb3VuZC9hcm0vYWFjaS5jCisrKyBiL3NvdW5kL2FybS9hYWNp LmMKQEAgLTEwNTUsNyArMTA1NSw3IEBAIHN0YXRpYyBpbnQgYWFjaV9wcm9iZShzdHJ1Y3QgYW1i YV9kZXZpY2UgKmRldiwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGFhY2lfcmVtb3Zl KHN0cnVjdCBhbWJhX2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQgYWFjaV9yZW1vdmUoc3RydWN0 IGFtYmFfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IHNuZF9jYXJkICpjYXJkID0gYW1iYV9nZXRf ZHJ2ZGF0YShkZXYpOwogCkBAIC0xMDY2LDggKzEwNjYsNiBAQCBzdGF0aWMgaW50IGFhY2lfcmVt b3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2KQogCQlzbmRfY2FyZF9mcmVlKGNhcmQpOwogCQlh bWJhX3JlbGVhc2VfcmVnaW9ucyhkZXYpOwogCX0KLQotCXJldHVybiAwOwogfQogCiBzdGF0aWMg c3RydWN0IGFtYmFfaWQgYWFjaV9pZHNbXSA9IHsKLS0gCjIuMjkuMgoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK