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 4C5C3C74A5B for ; Tue, 21 Mar 2023 19:33:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229512AbjCUTda (ORCPT ); Tue, 21 Mar 2023 15:33:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48320 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229670AbjCUTd3 (ORCPT ); Tue, 21 Mar 2023 15:33:29 -0400 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 BB2725551F for ; Tue, 21 Mar 2023 12:32:31 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pehiW-0008ES-GI; Tue, 21 Mar 2023 20:32:20 +0100 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1pehiV-005l6F-P1; Tue, 21 Mar 2023 20:32:19 +0100 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1pehiU-006qy7-U2; Tue, 21 Mar 2023 20:32:18 +0100 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= To: Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Bjorn Helgaas , Ray Jui , Scott Branden Cc: Rob Herring , Broadcom internal kernel review list , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de Subject: [PATCH 08/15] PCI: iproc: Convert to platform remove callback returning void Date: Tue, 21 Mar 2023 20:32:01 +0100 Message-Id: <20230321193208.366561-9-u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230321193208.366561-1-u.kleine-koenig@pengutronix.de> References: <20230321193208.366561-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Developer-Signature: v=1; a=openpgp-sha256; l=3129; i=u.kleine-koenig@pengutronix.de; h=from:subject; bh=AbjymvMRf/21gg3dFf/LJ8mfhoO6t0bYbQgCjssNDSk=; b=owGbwMvMwMXY3/A7olbonx/jabUkhhQpNpHvWeEJset99E+8+2IS+tpO+pabyJXpRjcypuwz8 W1ZGxXWyWjMwsDIxSArpshi37gm06pKLrJz7b/LMINYmUCmMHBxCsBE2lrY/2dPiDRem+DXEapf MSVYlfm9g/Ji4VeFkXalyudncFQ35/5N/a9UufLTs9cWIQtMlfRtTyTwK8oLTzu44d2Hg395Pe6 GegWte/bd63SBe/tew3s+lb4uz3Y/kxEKtlrUtKR/M49c+gKDHmYriwrTK6bnFA/VFk+zN7wbE8 TqeeNWle4/B763l0POBD6aamit6ReS9sXOXeakKl/kvi/xL/xnLQ3jFt2qUqz3vmHOpZKK0LKGI iXVu4L7fv7xc5batG7eNDmjb9dPv7KZoxydeXdlwfMbm7dN+WL/4G/i/ZZ+rfidQiFdxkoRgSuP bNR+NFFeOlJlW/H+Xe9rPCelu+y152KN+qFVHJzO8lsCAA== X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 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-pci@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is (mostly) ignored and this typically results in resource leaks. The iproc driver always returns 0, it's just a bit hidden. So make iproc_pcie_remove() return void instead of always zero and convert the platform driver to the alternative remove callback that returns void and eventually replaces the int returning callback. Signed-off-by: Uwe Kleine-König --- drivers/pci/controller/pcie-iproc-platform.c | 6 +++--- drivers/pci/controller/pcie-iproc.c | 4 +--- drivers/pci/controller/pcie-iproc.h | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/pci/controller/pcie-iproc-platform.c b/drivers/pci/controller/pcie-iproc-platform.c index 4142a73e611d..acdc583d2980 100644 --- a/drivers/pci/controller/pcie-iproc-platform.c +++ b/drivers/pci/controller/pcie-iproc-platform.c @@ -114,11 +114,11 @@ static int iproc_pltfm_pcie_probe(struct platform_device *pdev) return 0; } -static int iproc_pltfm_pcie_remove(struct platform_device *pdev) +static void iproc_pltfm_pcie_remove(struct platform_device *pdev) { struct iproc_pcie *pcie = platform_get_drvdata(pdev); - return iproc_pcie_remove(pcie); + iproc_pcie_remove(pcie); } static void iproc_pltfm_pcie_shutdown(struct platform_device *pdev) @@ -134,7 +134,7 @@ static struct platform_driver iproc_pltfm_pcie_driver = { .of_match_table = of_match_ptr(iproc_pcie_of_match_table), }, .probe = iproc_pltfm_pcie_probe, - .remove = iproc_pltfm_pcie_remove, + .remove_new = iproc_pltfm_pcie_remove, .shutdown = iproc_pltfm_pcie_shutdown, }; module_platform_driver(iproc_pltfm_pcie_driver); diff --git a/drivers/pci/controller/pcie-iproc.c b/drivers/pci/controller/pcie-iproc.c index 83029bdfd884..bd1c98b68851 100644 --- a/drivers/pci/controller/pcie-iproc.c +++ b/drivers/pci/controller/pcie-iproc.c @@ -1537,7 +1537,7 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) } EXPORT_SYMBOL(iproc_pcie_setup); -int iproc_pcie_remove(struct iproc_pcie *pcie) +void iproc_pcie_remove(struct iproc_pcie *pcie) { struct pci_host_bridge *host = pci_host_bridge_from_priv(pcie); @@ -1548,8 +1548,6 @@ int iproc_pcie_remove(struct iproc_pcie *pcie) phy_power_off(pcie->phy); phy_exit(pcie->phy); - - return 0; } EXPORT_SYMBOL(iproc_pcie_remove); diff --git a/drivers/pci/controller/pcie-iproc.h b/drivers/pci/controller/pcie-iproc.h index dcca315897c8..969ded03b8c2 100644 --- a/drivers/pci/controller/pcie-iproc.h +++ b/drivers/pci/controller/pcie-iproc.h @@ -111,7 +111,7 @@ struct iproc_pcie { }; int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res); -int iproc_pcie_remove(struct iproc_pcie *pcie); +void iproc_pcie_remove(struct iproc_pcie *pcie); int iproc_pcie_shutdown(struct iproc_pcie *pcie); #ifdef CONFIG_PCIE_IPROC_MSI -- 2.39.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 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 B8105C76195 for ; Tue, 21 Mar 2023 19:34:22 +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:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=HIFDkDNLhaJp4H08Yk6it+YMfHLvqLPIkKf38TYrP+A=; b=cf1EPJvNVsBaiU 2+uuMjF3/KElVAy2sa7ZrBFXhg7oHRRWw11uDVyu9zVEXKV3SP6i4Z6p30hK4BzmXoL9gqSFSeltZ I0NtzKJstTRqbxTdlZs9wFEuZC47K2vibZUTXuaRvbmPnA2T5pEhanyBaZ8dpjLeCPlkw1JXstqXH f2nHaPtmTQMgk6LpW26EZdIKIJEXLMNKtNMY6XIREqzUWU6uf/3iUuiB4vUfHtZoLXjgMsIJ3I6gd nEHjyztq9cn4AD5dXP8jkBSs7K1LAGUI8urEbSuifAzsW+B3EnvhVL2FUTdU70pjWenWQ2VTQRSm3 lSqFNtRLSdud4xbrudpg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pehip-00DUmP-1u; Tue, 21 Mar 2023 19:32:39 +0000 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pehii-00DUe2-0Q for linux-arm-kernel@lists.infradead.org; Tue, 21 Mar 2023 19:32:34 +0000 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pehiW-0008ES-GI; Tue, 21 Mar 2023 20:32:20 +0100 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1pehiV-005l6F-P1; Tue, 21 Mar 2023 20:32:19 +0100 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1pehiU-006qy7-U2; Tue, 21 Mar 2023 20:32:18 +0100 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= To: Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Bjorn Helgaas , Ray Jui , Scott Branden Cc: Rob Herring , Broadcom internal kernel review list , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de Subject: [PATCH 08/15] PCI: iproc: Convert to platform remove callback returning void Date: Tue, 21 Mar 2023 20:32:01 +0100 Message-Id: <20230321193208.366561-9-u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230321193208.366561-1-u.kleine-koenig@pengutronix.de> References: <20230321193208.366561-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3129; i=u.kleine-koenig@pengutronix.de; h=from:subject; bh=AbjymvMRf/21gg3dFf/LJ8mfhoO6t0bYbQgCjssNDSk=; b=owGbwMvMwMXY3/A7olbonx/jabUkhhQpNpHvWeEJset99E+8+2IS+tpO+pabyJXpRjcypuwz8 W1ZGxXWyWjMwsDIxSArpshi37gm06pKLrJz7b/LMINYmUCmMHBxCsBE2lrY/2dPiDRem+DXEapf MSVYlfm9g/Ji4VeFkXalyudncFQ35/5N/a9UufLTs9cWIQtMlfRtTyTwK8oLTzu44d2Hg395Pe6 GegWte/bd63SBe/tew3s+lb4uz3Y/kxEKtlrUtKR/M49c+gKDHmYriwrTK6bnFA/VFk+zN7wbE8 TqeeNWle4/B763l0POBD6aamit6ReS9sXOXeakKl/kvi/xL/xnLQ3jFt2qUqz3vmHOpZKK0LKGI iXVu4L7fv7xc5batG7eNDmjb9dPv7KZoxydeXdlwfMbm7dN+WL/4G/i/ZZ+rfidQiFdxkoRgSuP bNR+NFFeOlJlW/H+Xe9rPCelu+y152KN+qFVHJzO8lsCAA== X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 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-20230321_123232_285088_3783CCA7 X-CRM114-Status: GOOD ( 17.48 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhlIC5yZW1vdmUoKSBjYWxsYmFjayBmb3IgYSBwbGF0Zm9ybSBkcml2ZXIgcmV0dXJucyBhbiBp bnQgd2hpY2ggbWFrZXMKbWFueSBkcml2ZXIgYXV0aG9ycyB3cm9uZ2x5IGFzc3VtZSBpdCdzIHBv c3NpYmxlIHRvIGRvIGVycm9yIGhhbmRsaW5nIGJ5CnJldHVybmluZyBhbiBlcnJvciBjb2RlLiBI b3dldmVyIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyAobW9zdGx5KSBpZ25vcmVkCmFuZCB0aGlzIHR5 cGljYWxseSByZXN1bHRzIGluIHJlc291cmNlIGxlYWtzLgoKVGhlIGlwcm9jIGRyaXZlciBhbHdh eXMgcmV0dXJucyAwLCBpdCdzIGp1c3QgYSBiaXQgaGlkZGVuLiBTbyBtYWtlCmlwcm9jX3BjaWVf cmVtb3ZlKCkgcmV0dXJuIHZvaWQgaW5zdGVhZCBvZiBhbHdheXMgemVybyBhbmQgY29udmVydCB0 aGUKcGxhdGZvcm0gZHJpdmVyIHRvIHRoZSBhbHRlcm5hdGl2ZSByZW1vdmUgY2FsbGJhY2sgdGhh dCByZXR1cm5zIHZvaWQgYW5kCmV2ZW50dWFsbHkgcmVwbGFjZXMgdGhlIGludCByZXR1cm5pbmcg Y2FsbGJhY2suCgpTaWduZWQtb2ZmLWJ5OiBVd2UgS2xlaW5lLUvDtm5pZyA8dS5rbGVpbmUta29l bmlnQHBlbmd1dHJvbml4LmRlPgotLS0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1pcHJv Yy1wbGF0Zm9ybS5jIHwgNiArKystLS0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1pcHJv Yy5jICAgICAgICAgIHwgNCArLS0tCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtaXByb2Mu aCAgICAgICAgICB8IDIgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1pcHJv Yy1wbGF0Zm9ybS5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWlwcm9jLXBsYXRmb3Jt LmMKaW5kZXggNDE0MmE3M2U2MTFkLi5hY2RjNTgzZDI5ODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvcGNpZS1pcHJvYy1wbGF0Zm9ybS5jCisrKyBiL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvcGNpZS1pcHJvYy1wbGF0Zm9ybS5jCkBAIC0xMTQsMTEgKzExNCwxMSBAQCBzdGF0 aWMgaW50IGlwcm9jX3BsdGZtX3BjaWVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBpcHJvY19wbHRmbV9wY2llX3JlbW92ZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorc3RhdGljIHZvaWQgaXByb2NfcGx0Zm1fcGNp ZV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgaXByb2Nf cGNpZSAqcGNpZSA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCi0JcmV0dXJuIGlwcm9j X3BjaWVfcmVtb3ZlKHBjaWUpOworCWlwcm9jX3BjaWVfcmVtb3ZlKHBjaWUpOwogfQogCiBzdGF0 aWMgdm9pZCBpcHJvY19wbHRmbV9wY2llX3NodXRkb3duKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIg aXByb2NfcGx0Zm1fcGNpZV9kcml2ZXIgPSB7CiAJCS5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNo X3B0cihpcHJvY19wY2llX29mX21hdGNoX3RhYmxlKSwKIAl9LAogCS5wcm9iZSA9IGlwcm9jX3Bs dGZtX3BjaWVfcHJvYmUsCi0JLnJlbW92ZSA9IGlwcm9jX3BsdGZtX3BjaWVfcmVtb3ZlLAorCS5y ZW1vdmVfbmV3ID0gaXByb2NfcGx0Zm1fcGNpZV9yZW1vdmUsCiAJLnNodXRkb3duID0gaXByb2Nf cGx0Zm1fcGNpZV9zaHV0ZG93biwKIH07CiBtb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGlwcm9jX3Bs dGZtX3BjaWVfZHJpdmVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNp ZS1pcHJvYy5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWlwcm9jLmMKaW5kZXggODMw MjliZGZkODg0Li5iZDFjOThiNjg4NTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvcGNpZS1pcHJvYy5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1pcHJvYy5j CkBAIC0xNTM3LDcgKzE1MzcsNyBAQCBpbnQgaXByb2NfcGNpZV9zZXR1cChzdHJ1Y3QgaXByb2Nf cGNpZSAqcGNpZSwgc3RydWN0IGxpc3RfaGVhZCAqcmVzKQogfQogRVhQT1JUX1NZTUJPTChpcHJv Y19wY2llX3NldHVwKTsKIAotaW50IGlwcm9jX3BjaWVfcmVtb3ZlKHN0cnVjdCBpcHJvY19wY2ll ICpwY2llKQordm9pZCBpcHJvY19wY2llX3JlbW92ZShzdHJ1Y3QgaXByb2NfcGNpZSAqcGNpZSkK IHsKIAlzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpob3N0ID0gcGNpX2hvc3RfYnJpZGdlX2Zyb21f cHJpdihwY2llKTsKIApAQCAtMTU0OCw4ICsxNTQ4LDYgQEAgaW50IGlwcm9jX3BjaWVfcmVtb3Zl KHN0cnVjdCBpcHJvY19wY2llICpwY2llKQogCiAJcGh5X3Bvd2VyX29mZihwY2llLT5waHkpOwog CXBoeV9leGl0KHBjaWUtPnBoeSk7Ci0KLQlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0woaXBy b2NfcGNpZV9yZW1vdmUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3Bj aWUtaXByb2MuaCBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1pcHJvYy5oCmluZGV4IGRj Y2EzMTU4OTdjOC4uOTY5ZGVkMDNiOGMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9s bGVyL3BjaWUtaXByb2MuaAorKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtaXByb2Mu aApAQCAtMTExLDcgKzExMSw3IEBAIHN0cnVjdCBpcHJvY19wY2llIHsKIH07CiAKIGludCBpcHJv Y19wY2llX3NldHVwKHN0cnVjdCBpcHJvY19wY2llICpwY2llLCBzdHJ1Y3QgbGlzdF9oZWFkICpy ZXMpOwotaW50IGlwcm9jX3BjaWVfcmVtb3ZlKHN0cnVjdCBpcHJvY19wY2llICpwY2llKTsKK3Zv aWQgaXByb2NfcGNpZV9yZW1vdmUoc3RydWN0IGlwcm9jX3BjaWUgKnBjaWUpOwogaW50IGlwcm9j X3BjaWVfc2h1dGRvd24oc3RydWN0IGlwcm9jX3BjaWUgKnBjaWUpOwogCiAjaWZkZWYgQ09ORklH X1BDSUVfSVBST0NfTVNJCi0tIAoyLjM5LjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==