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=-13.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 699D7C433DB for ; Mon, 15 Feb 2021 17:10:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3B38761606 for ; Mon, 15 Feb 2021 17:10:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231300AbhBORKD (ORCPT ); Mon, 15 Feb 2021 12:10:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44354 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230232AbhBOP5f (ORCPT ); Mon, 15 Feb 2021 10:57:35 -0500 Received: from mail-ot1-x32d.google.com (mail-ot1-x32d.google.com [IPv6:2607:f8b0:4864:20::32d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0DE62C0613D6 for ; Mon, 15 Feb 2021 07:56:47 -0800 (PST) Received: by mail-ot1-x32d.google.com with SMTP id l23so6412895otn.10 for ; Mon, 15 Feb 2021 07:56:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nigauri-org.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=tVRxOWQGs4gFZYzB77EOG1YDIE4NKBpSovtJYt/WT6Y=; b=PdpPlec3It+OUT+a+pn8aTMutRpDQIqUdkitzv5ZpSqCHsK6Ty8ql4Y8YgE+KDsdah JaOBdS9ELXriDUUYiHNOz1wpSLV7p7cBfUUjN+aFtEfrI7QG0IG1RaqMJmDbVax7Es+z ar593lv/jNJxPOnI+PpzEFYDjY+ICORnxb04kHr7kTObyPqDcLUhoBJUMPu0mjmfWaMt Ev8NsAVtA6gxBcTR2tJaKmn56BgFSAEZi7907B1XpOA5/WMRNKH4YLn474LTYA2yIeQE QmAd5trT5uLzewTZwxBnr55TL8cYN828DA8W1BmvMV1jC2fBqamd9mH3LwXTB8m1RDLS +iRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=tVRxOWQGs4gFZYzB77EOG1YDIE4NKBpSovtJYt/WT6Y=; b=Hm7Emqx4x234nZXTmtbeEeEP/TCuzj22cdwj7sI+j5p+7vvt4ucjSyJs8jiLxf1HW6 1tXNdpuL/JSyz5jKnadShSQQKYEwCFd+sSkVqQV9LQ+YJwpbLGYI9V1tw0WDaXupDvrQ 1tbKAEEtJOMrOwo6zjZLPpQxe8FFXHLoTA11cf4R1wsyrGZQpT2F6T2PA/3MYtKC7aN6 3k8wEkQXHBDra+m2MtnnVfSh2QyYvFp3q0oA75SGKakVorcbM+jvx4Uidtf0EkivU0NM n3FdVoXO8YY/7UaA76XP84oJdhcTwbkzCmHjflSccgknClgBY0EQyRroqqWa3qd9EGgw yn1A== X-Gm-Message-State: AOAM532aFdh2A+FL9w4lD6hlbZ0Aedc882wu6aZWKOIzcCizHO7qtTFh q2j4j2kUJtWZEV+Uc2pYdCTJ2ZqlKFPegZV+2Y6u X-Google-Smtp-Source: ABdhPJyiYhFCshoCwdxjY8Ab8Kny7g2Frfd2DDdlb6v66NODKy4ENGVVrpBg4rw2onGBEIWgwHa5+nLpb5H23wjGvF4= X-Received: by 2002:a9d:7dda:: with SMTP id k26mr11942219otn.284.1613404606483; Mon, 15 Feb 2021 07:56:46 -0800 (PST) MIME-Version: 1.0 References: <20210211232312.2082334-1-iwamatsu@nigauri.org> <81880da7-3a9d-cb6b-1391-b8f59fcd1a37@xilinx.com> In-Reply-To: <81880da7-3a9d-cb6b-1391-b8f59fcd1a37@xilinx.com> From: Nobuhiro Iwamatsu Date: Tue, 16 Feb 2021 00:56:20 +0900 Message-ID: Subject: Re: [PATCH v2] firmware: xilinx: Remove zynqmp_pm_get_eemi_ops() in IS_REACHABLE(CONFIG_ZYNQMP_FIRMWARE) To: Michal Simek Cc: Linux Kernel Mailing List , linux ARM Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, 2021=E5=B9=B42=E6=9C=8812=E6=97=A5(=E9=87=91) 21:53 Michal Simek : > > > > On 2/12/21 12:23 AM, Nobuhiro Iwamatsu wrote: > > zynqmp_pm_get_eemi_ops() was removed in commit 4db8180ffe7c: "Firmware:= xilinx: > > Remove eemi ops for fpga related APIs", but not in IS_REACHABLE(CONFIG_= ZYNQMP_FIRMWARE). > > Any driver who want to communicate with PMC using EEMI APIs use the fun= ctions provided > > for each function. > > This removed zynqmp_pm_get_eemi_ops() in IS_REACHABLE(CONFIG_ZYNQMP_FIR= MWARE), and also > > modify the documentation for this driver. > > > > Fixes: 4db8180ffe7c ("firmware: xilinx: Remove eemi ops for fpga relate= d APIs") > > Signed-off-by: Nobuhiro Iwamatsu > > --- > > v2: Added the comment pointed out by Michal. > > > > Documentation/driver-api/xilinx/eemi.rst | 27 +----------------------- > > include/linux/firmware/xlnx-zynqmp.h | 5 ----- > > 2 files changed, 1 insertion(+), 31 deletions(-) > > > > diff --git a/Documentation/driver-api/xilinx/eemi.rst b/Documentation/d= river-api/xilinx/eemi.rst > > index 9dcbc6f18d75df..53416d25d309a8 100644 > > --- a/Documentation/driver-api/xilinx/eemi.rst > > +++ b/Documentation/driver-api/xilinx/eemi.rst > > @@ -19,32 +19,7 @@ device to issue or respond to power management reque= sts. > > EEMI ops is a structure containing all eemi APIs supported by Zynq MPS= oC. > > The zynqmp-firmware driver maintain all EEMI APIs in zynqmp_eemi_ops > > structure. Any driver who want to communicate with PMC using EEMI APIs > > -can call zynqmp_pm_get_eemi_ops(). > > - > > -Example of EEMI ops:: > > - > > - /* zynqmp-firmware driver maintain all EEMI APIs */ > > - struct zynqmp_eemi_ops { > > - int (*get_api_version)(u32 *version); > > - int (*query_data)(struct zynqmp_pm_query_data qdata, u32 = *out); > > - }; > > - > > - static const struct zynqmp_eemi_ops eemi_ops =3D { > > - .get_api_version =3D zynqmp_pm_get_api_version, > > - .query_data =3D zynqmp_pm_query_data, > > - }; > > - > > -Example of EEMI ops usage:: > > - > > - static const struct zynqmp_eemi_ops *eemi_ops; > > - u32 ret_payload[PAYLOAD_ARG_CNT]; > > - int ret; > > - > > - eemi_ops =3D zynqmp_pm_get_eemi_ops(); > > - if (IS_ERR(eemi_ops)) > > - return PTR_ERR(eemi_ops); > > - > > - ret =3D eemi_ops->query_data(qdata, ret_payload); > > +use the functions provided for each function. > > > > IOCTL > > ------ > > diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmw= are/xlnx-zynqmp.h > > index 2a0da841c942f6..4ef77deaf7918c 100644 > > --- a/include/linux/firmware/xlnx-zynqmp.h > > +++ b/include/linux/firmware/xlnx-zynqmp.h > > @@ -355,11 +355,6 @@ int zynqmp_pm_read_pggs(u32 index, u32 *value); > > int zynqmp_pm_system_shutdown(const u32 type, const u32 subtype); > > int zynqmp_pm_set_boot_health_status(u32 value); > > #else > > -static inline struct zynqmp_eemi_ops *zynqmp_pm_get_eemi_ops(void) > > -{ > > - return ERR_PTR(-ENODEV); > > -} > > - > > static inline int zynqmp_pm_get_api_version(u32 *version) > > { > > return -ENODEV; > > > > I can't see any difference compare to v1. Don't you forget to commit > your changes? Oh, sorry. I will resend with update. Best regards, Nobuhiro --=20 Nobuhiro Iwamatsu iwamatsu at {nigauri.org / debian.org} GPG ID: 40AD1FA6 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=-13.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 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 B0963C433E0 for ; Mon, 15 Feb 2021 15:58:53 +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 0317564DDA for ; Mon, 15 Feb 2021 15:58:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0317564DDA Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=nigauri.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:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=5F9L4N0MnaWlE3VGXldYxtMtuWBS9awlSQmbJG3OXwc=; b=qz8le4TqR6T3cjD4l9TBEwjOm boYbapTe1gcBDQspUeCOqwj6ixNMtvfSBe4/gb0xpZKZsdd/9pbADJrlzDn9ov/bViCZdbZWfrs4v LudRXwj6CX+vgvL+UmlbMum2gQE7wQgMp0pKqHdwkW2IXkpYBlAoPQhwiTMM8TqiQ0Y27HEoeQtVC 7DVDqWHyCnr8FVxkuT2l54bL7RuU6Lh+vWVJCM9HhFV50XyEiigEDbUoIC48KzI9Eu322vuUvPw5C tvv1IiYHdD2fFUqX3ZqzteoT6TXg5Yys9yF+H0c/cKJPUju5GRQ6YNXoSaTNEb/TDU/dl6G/s/fPm yib+UvwAQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lBgF2-0005Hj-VY; Mon, 15 Feb 2021 15:56:53 +0000 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1lBgF0-0005H8-Rx for linux-arm-kernel@lists.infradead.org; Mon, 15 Feb 2021 15:56:52 +0000 Received: by mail-ot1-x332.google.com with SMTP id r21so6385194otk.13 for ; Mon, 15 Feb 2021 07:56:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nigauri-org.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=tVRxOWQGs4gFZYzB77EOG1YDIE4NKBpSovtJYt/WT6Y=; b=PdpPlec3It+OUT+a+pn8aTMutRpDQIqUdkitzv5ZpSqCHsK6Ty8ql4Y8YgE+KDsdah JaOBdS9ELXriDUUYiHNOz1wpSLV7p7cBfUUjN+aFtEfrI7QG0IG1RaqMJmDbVax7Es+z ar593lv/jNJxPOnI+PpzEFYDjY+ICORnxb04kHr7kTObyPqDcLUhoBJUMPu0mjmfWaMt Ev8NsAVtA6gxBcTR2tJaKmn56BgFSAEZi7907B1XpOA5/WMRNKH4YLn474LTYA2yIeQE QmAd5trT5uLzewTZwxBnr55TL8cYN828DA8W1BmvMV1jC2fBqamd9mH3LwXTB8m1RDLS +iRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=tVRxOWQGs4gFZYzB77EOG1YDIE4NKBpSovtJYt/WT6Y=; b=nadi7t+BvYWo7mZOhz8Sxg4QZOij48oAb+5yoQWdTIYOmvlq1RuguIj0RzK66j4idX 5NiaIVamKCip0Iue7zcTbSF8nFhLlmqitHJy1SnHbP0YLFovpwzgftfWQ5RR7l4fg/g3 /teyoEbLfZ+EQpwDzQe2akb4azjgv78EFd9Ox7TKLfh3IxQIQdWJ15RRtJZSLQ/F7psZ wxO2jLwWqHofTinBdOPfhAbzmKzDf1+HwflXFe5zf4lBTrFcjGehbGBWauCVnUoydqrA fA31hqzAYEqp0mHymRalAML3OfIWxTnNEaUut0NsC38mXAvKlApj4Op261+Jq2RVciLz Rn3g== X-Gm-Message-State: AOAM533uD2zkMFLMd3eiND/hwtGXuLMQla/zVDJLqokwsIESwBCeQn+L LIjOTRAImpvVJ+S4HnJn7KjsQB1KWtk18KAyZp9h X-Google-Smtp-Source: ABdhPJyiYhFCshoCwdxjY8Ab8Kny7g2Frfd2DDdlb6v66NODKy4ENGVVrpBg4rw2onGBEIWgwHa5+nLpb5H23wjGvF4= X-Received: by 2002:a9d:7dda:: with SMTP id k26mr11942219otn.284.1613404606483; Mon, 15 Feb 2021 07:56:46 -0800 (PST) MIME-Version: 1.0 References: <20210211232312.2082334-1-iwamatsu@nigauri.org> <81880da7-3a9d-cb6b-1391-b8f59fcd1a37@xilinx.com> In-Reply-To: <81880da7-3a9d-cb6b-1391-b8f59fcd1a37@xilinx.com> From: Nobuhiro Iwamatsu Date: Tue, 16 Feb 2021 00:56:20 +0900 Message-ID: Subject: Re: [PATCH v2] firmware: xilinx: Remove zynqmp_pm_get_eemi_ops() in IS_REACHABLE(CONFIG_ZYNQMP_FIRMWARE) To: Michal Simek X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210215_105651_037039_61D5F65E X-CRM114-Status: GOOD ( 23.68 ) 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: Linux Kernel Mailing List , linux ARM 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 SGksCgoyMDIx5bm0MuaciDEy5pelKOmHkSkgMjE6NTMgTWljaGFsIFNpbWVrIDxtaWNoYWwuc2lt ZWtAeGlsaW54LmNvbT46Cj4KPgo+Cj4gT24gMi8xMi8yMSAxMjoyMyBBTSwgTm9idWhpcm8gSXdh bWF0c3Ugd3JvdGU6Cj4gPiB6eW5xbXBfcG1fZ2V0X2VlbWlfb3BzKCkgd2FzIHJlbW92ZWQgaW4g Y29tbWl0IDRkYjgxODBmZmU3YzogIkZpcm13YXJlOiB4aWxpbng6Cj4gPiBSZW1vdmUgZWVtaSBv cHMgZm9yIGZwZ2EgcmVsYXRlZCBBUElzIiwgYnV0IG5vdCBpbiBJU19SRUFDSEFCTEUoQ09ORklH X1pZTlFNUF9GSVJNV0FSRSkuCj4gPiBBbnkgZHJpdmVyIHdobyB3YW50IHRvIGNvbW11bmljYXRl IHdpdGggUE1DIHVzaW5nIEVFTUkgQVBJcyB1c2UgdGhlIGZ1bmN0aW9ucyBwcm92aWRlZAo+ID4g Zm9yIGVhY2ggZnVuY3Rpb24uCj4gPiBUaGlzIHJlbW92ZWQgenlucW1wX3BtX2dldF9lZW1pX29w cygpIGluIElTX1JFQUNIQUJMRShDT05GSUdfWllOUU1QX0ZJUk1XQVJFKSwgYW5kIGFsc28KPiA+ IG1vZGlmeSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhpcyBkcml2ZXIuCj4gPgo+ID4gRml4ZXM6 IDRkYjgxODBmZmU3YyAoImZpcm13YXJlOiB4aWxpbng6IFJlbW92ZSBlZW1pIG9wcyBmb3IgZnBn YSByZWxhdGVkIEFQSXMiKQo+ID4gU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3 YW1hdHN1QG5pZ2F1cmkub3JnPgo+ID4gLS0tCj4gPiAgdjI6IEFkZGVkIHRoZSBjb21tZW50IHBv aW50ZWQgb3V0IGJ5IE1pY2hhbC4KPiA+Cj4gPiAgRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL3hp bGlueC9lZW1pLnJzdCB8IDI3ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gIGluY2x1ZGUv bGludXgvZmlybXdhcmUveGxueC16eW5xbXAuaCAgICAgfCAgNSAtLS0tLQo+ID4gIDIgZmlsZXMg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDMxIGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1n aXQgYS9Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkveGlsaW54L2VlbWkucnN0IGIvRG9jdW1lbnRh dGlvbi9kcml2ZXItYXBpL3hpbGlueC9lZW1pLnJzdAo+ID4gaW5kZXggOWRjYmM2ZjE4ZDc1ZGYu LjUzNDE2ZDI1ZDMwOWE4IDEwMDY0NAo+ID4gLS0tIGEvRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBp L3hpbGlueC9lZW1pLnJzdAo+ID4gKysrIGIvRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL3hpbGlu eC9lZW1pLnJzdAo+ID4gQEAgLTE5LDMyICsxOSw3IEBAIGRldmljZSB0byBpc3N1ZSBvciByZXNw b25kIHRvIHBvd2VyIG1hbmFnZW1lbnQgcmVxdWVzdHMuCj4gPiAgRUVNSSBvcHMgaXMgYSBzdHJ1 Y3R1cmUgY29udGFpbmluZyBhbGwgZWVtaSBBUElzIHN1cHBvcnRlZCBieSBaeW5xIE1QU29DLgo+ ID4gIFRoZSB6eW5xbXAtZmlybXdhcmUgZHJpdmVyIG1haW50YWluIGFsbCBFRU1JIEFQSXMgaW4g enlucW1wX2VlbWlfb3BzCj4gPiAgc3RydWN0dXJlLiBBbnkgZHJpdmVyIHdobyB3YW50IHRvIGNv bW11bmljYXRlIHdpdGggUE1DIHVzaW5nIEVFTUkgQVBJcwo+ID4gLWNhbiBjYWxsIHp5bnFtcF9w bV9nZXRfZWVtaV9vcHMoKS4KPiA+IC0KPiA+IC1FeGFtcGxlIG9mIEVFTUkgb3BzOjoKPiA+IC0K PiA+IC0gICAgIC8qIHp5bnFtcC1maXJtd2FyZSBkcml2ZXIgbWFpbnRhaW4gYWxsIEVFTUkgQVBJ cyAqLwo+ID4gLSAgICAgc3RydWN0IHp5bnFtcF9lZW1pX29wcyB7Cj4gPiAtICAgICAgICAgICAg IGludCAoKmdldF9hcGlfdmVyc2lvbikodTMyICp2ZXJzaW9uKTsKPiA+IC0gICAgICAgICAgICAg aW50ICgqcXVlcnlfZGF0YSkoc3RydWN0IHp5bnFtcF9wbV9xdWVyeV9kYXRhIHFkYXRhLCB1MzIg Km91dCk7Cj4gPiAtICAgICB9Owo+ID4gLQo+ID4gLSAgICAgc3RhdGljIGNvbnN0IHN0cnVjdCB6 eW5xbXBfZWVtaV9vcHMgZWVtaV9vcHMgPSB7Cj4gPiAtICAgICAgICAgICAgIC5nZXRfYXBpX3Zl cnNpb24gPSB6eW5xbXBfcG1fZ2V0X2FwaV92ZXJzaW9uLAo+ID4gLSAgICAgICAgICAgICAucXVl cnlfZGF0YSA9IHp5bnFtcF9wbV9xdWVyeV9kYXRhLAo+ID4gLSAgICAgfTsKPiA+IC0KPiA+IC1F eGFtcGxlIG9mIEVFTUkgb3BzIHVzYWdlOjoKPiA+IC0KPiA+IC0gICAgIHN0YXRpYyBjb25zdCBz dHJ1Y3QgenlucW1wX2VlbWlfb3BzICplZW1pX29wczsKPiA+IC0gICAgIHUzMiByZXRfcGF5bG9h ZFtQQVlMT0FEX0FSR19DTlRdOwo+ID4gLSAgICAgaW50IHJldDsKPiA+IC0KPiA+IC0gICAgIGVl bWlfb3BzID0genlucW1wX3BtX2dldF9lZW1pX29wcygpOwo+ID4gLSAgICAgaWYgKElTX0VSUihl ZW1pX29wcykpCj4gPiAtICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKGVlbWlfb3BzKTsKPiA+ IC0KPiA+IC0gICAgIHJldCA9IGVlbWlfb3BzLT5xdWVyeV9kYXRhKHFkYXRhLCByZXRfcGF5bG9h ZCk7Cj4gPiArdXNlIHRoZSBmdW5jdGlvbnMgcHJvdmlkZWQgZm9yIGVhY2ggZnVuY3Rpb24uCj4g Pgo+ID4gIElPQ1RMCj4gPiAgLS0tLS0tCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9m aXJtd2FyZS94bG54LXp5bnFtcC5oIGIvaW5jbHVkZS9saW51eC9maXJtd2FyZS94bG54LXp5bnFt cC5oCj4gPiBpbmRleCAyYTBkYTg0MWM5NDJmNi4uNGVmNzdkZWFmNzkxOGMgMTAwNjQ0Cj4gPiAt LS0gYS9pbmNsdWRlL2xpbnV4L2Zpcm13YXJlL3hsbngtenlucW1wLmgKPiA+ICsrKyBiL2luY2x1 ZGUvbGludXgvZmlybXdhcmUveGxueC16eW5xbXAuaAo+ID4gQEAgLTM1NSwxMSArMzU1LDYgQEAg aW50IHp5bnFtcF9wbV9yZWFkX3BnZ3ModTMyIGluZGV4LCB1MzIgKnZhbHVlKTsKPiA+ICBpbnQg enlucW1wX3BtX3N5c3RlbV9zaHV0ZG93bihjb25zdCB1MzIgdHlwZSwgY29uc3QgdTMyIHN1YnR5 cGUpOwo+ID4gIGludCB6eW5xbXBfcG1fc2V0X2Jvb3RfaGVhbHRoX3N0YXR1cyh1MzIgdmFsdWUp Owo+ID4gICNlbHNlCj4gPiAtc3RhdGljIGlubGluZSBzdHJ1Y3QgenlucW1wX2VlbWlfb3BzICp6 eW5xbXBfcG1fZ2V0X2VlbWlfb3BzKHZvaWQpCj4gPiAtewo+ID4gLSAgICAgcmV0dXJuIEVSUl9Q VFIoLUVOT0RFVik7Cj4gPiAtfQo+ID4gLQo+ID4gIHN0YXRpYyBpbmxpbmUgaW50IHp5bnFtcF9w bV9nZXRfYXBpX3ZlcnNpb24odTMyICp2ZXJzaW9uKQo+ID4gIHsKPiA+ICAgICAgIHJldHVybiAt RU5PREVWOwo+ID4KPgo+IEkgY2FuJ3Qgc2VlIGFueSBkaWZmZXJlbmNlIGNvbXBhcmUgdG8gdjEu IERvbid0IHlvdSBmb3JnZXQgdG8gY29tbWl0Cj4geW91ciBjaGFuZ2VzPwoKT2gsIHNvcnJ5LiBJ IHdpbGwgcmVzZW5kIHdpdGggdXBkYXRlLgoKQmVzdCByZWdhcmRzLAogIE5vYnVoaXJvCgoKLS0g Ck5vYnVoaXJvIEl3YW1hdHN1CiAgIGl3YW1hdHN1IGF0IHtuaWdhdXJpLm9yZyAvIGRlYmlhbi5v cmd9CiAgIEdQRyBJRDogNDBBRDFGQTYKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK