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 24638C433F5 for ; Mon, 10 Jan 2022 19:02:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242928AbiAJTCw (ORCPT ); Mon, 10 Jan 2022 14:02:52 -0500 Received: from dfw.source.kernel.org ([139.178.84.217]:57318 "EHLO dfw.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242133AbiAJTCw (ORCPT ); Mon, 10 Jan 2022 14:02:52 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id D09226137C; Mon, 10 Jan 2022 19:02:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D9CC8C36AE9; Mon, 10 Jan 2022 19:02:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1641841371; bh=RmpsKia0UwU+uVAs7PdMJIIEidr93n4JdcwbmI8knMc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=lTA+XHHdVGeefCjNe98KkbNTRWbpDQ6nc6sNMfTJm3zPYHqbtM3TnoywCZsvQ4PII LZpDW7/b46rXhnl/VSlyGYoshj3oRuRHvf9P0lS2XqGKKdoqH6PUMhGMW6F3flS3/P ToVLfsmW71w1Uel+H0ZmCc3jK02yto1+jfJbVSddob/zU8L16MWaBCsQCkRy5aPEuV KI0Rcgoqh+mCart1n0vlJzwiMeJRnbpCV0VZHHxYXGhoecGMXxQenM9xB+VVC/TjrI 6gqbzrFCP9zb+MhvM9Z+jjhlEX+naWiRA2QmdVUv8ho+pB63q/slzpMgMmYc2TVTzQ KTi7yOp3c/edw== Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 145B040B92; Mon, 10 Jan 2022 16:02:49 -0300 (-03) Date: Mon, 10 Jan 2022 16:02:49 -0300 From: Arnaldo Carvalho de Melo To: Ian Rogers Cc: Andi Kleen , Jiri Olsa , Namhyung Kim , John Garry , Kajol Jain , "Paul A . Clarke" , Riccardo Mancini , Kan Liang , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, Vineet Singh , James Clark , Mathieu Poirier , Suzuki K Poulose , Mike Leach , Leo Yan , coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, zhengjun.xing@intel.com, eranian@google.com Subject: Re: [PATCH v4 17/48] perf cpumap: Remove cpu_map__cpu, use libperf function. Message-ID: References: <20220105061351.120843-1-irogers@google.com> <20220105061351.120843-18-irogers@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220105061351.120843-18-irogers@google.com> X-Url: http://acmel.wordpress.com Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org Em Tue, Jan 04, 2022 at 10:13:20PM -0800, Ian Rogers escreveu: > Switch the remaining few users of cpu_map__cpu to perf_cpu_map__cpu and > remove the function. > > Reviewed-by: James Clark > Signed-off-by: Ian Rogers util/bpf_ftrace.c: In function ‘perf_ftrace__latency_prepare_bpf’: util/bpf_ftrace.c:66:31: error: implicit declaration of function ‘cpu_map__cpu’; did you mean ‘cpu_map__has’? [-Werror=implicit-function-declaration] 66 | cpu = cpu_map__cpu(ftrace->evlist->core.cpus, i); | ^~~~~~~~~~~~ | cpu_map__has cc1: all warnings being treated as errors make[4]: *** [/var/home/acme/git/perf/tools/build/Makefile.build:96: /tmp/build/perf/util/bpf_ftrace.o] Error 1 make[4]: *** Waiting for unfinished jobs.... LD /tmp/build/perf/ui/browsers/perf-in.o LD /tmp/build/perf/ui/perf-in.o LD /tmp/build/perf/util/scripting-engines/perf-in.o make[3]: *** [/var/home/acme/git/perf/tools/build/Makefile.build:139: util] Error 2 make[2]: *** [Makefile.perf:665: /tmp/build/perf/perf-in.o] Error 2 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [Makefile.perf:240: sub-make] Error 2 make: *** [Makefile:113: install-bin] Error 2 make: Leaving directory '/var/home/acme/git/perf/tools/perf' Performance counter stats for 'make -k BUILD_BPF_SKEL=1 CORESIGHT=1 PYTHON=python3 O=/tmp/build/perf -C tools/perf install-bin': 163,635,422,196 cycles:u 213,602,262,800 instructions:u # 1.31 insn per cycle 3.804738555 seconds time elapsed 40.622581000 seconds user 6.589980000 seconds sys ⬢[acme@toolbox perf]$ git log --oneline -1 dfe103e757aeff79 (HEAD) perf cpumap: Remove cpu_map__cpu, use libperf function. This is the first breakage, trying to fix now. > --- > tools/perf/builtin-ftrace.c | 2 +- > tools/perf/util/cpumap.c | 9 ++------- > tools/perf/util/cpumap.h | 1 - > 3 files changed, 3 insertions(+), 9 deletions(-) > > diff --git a/tools/perf/builtin-ftrace.c b/tools/perf/builtin-ftrace.c > index 2b54e2ddc80a..f16c39a37a52 100644 > --- a/tools/perf/builtin-ftrace.c > +++ b/tools/perf/builtin-ftrace.c > @@ -281,7 +281,7 @@ static int set_tracing_cpumask(struct perf_cpu_map *cpumap) > int ret; > int last_cpu; > > - last_cpu = cpu_map__cpu(cpumap, cpumap->nr - 1); > + last_cpu = perf_cpu_map__cpu(cpumap, cpumap->nr - 1); > mask_size = last_cpu / 4 + 2; /* one more byte for EOS */ > mask_size += last_cpu / 32; /* ',' is needed for every 32th cpus */ > > diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c > index e0d7f1da5858..32f9fc2dd389 100644 > --- a/tools/perf/util/cpumap.c > +++ b/tools/perf/util/cpumap.c > @@ -485,11 +485,6 @@ bool cpu_map__has(struct perf_cpu_map *cpus, int cpu) > return perf_cpu_map__idx(cpus, cpu) != -1; > } > > -int cpu_map__cpu(struct perf_cpu_map *cpus, int idx) > -{ > - return cpus->map[idx]; > -} > - > size_t cpu_map__snprint(struct perf_cpu_map *map, char *buf, size_t size) > { > int i, cpu, start = -1; > @@ -547,7 +542,7 @@ size_t cpu_map__snprint_mask(struct perf_cpu_map *map, char *buf, size_t size) > int i, cpu; > char *ptr = buf; > unsigned char *bitmap; > - int last_cpu = cpu_map__cpu(map, map->nr - 1); > + int last_cpu = perf_cpu_map__cpu(map, map->nr - 1); > > if (buf == NULL) > return 0; > @@ -559,7 +554,7 @@ size_t cpu_map__snprint_mask(struct perf_cpu_map *map, char *buf, size_t size) > } > > for (i = 0; i < map->nr; i++) { > - cpu = cpu_map__cpu(map, i); > + cpu = perf_cpu_map__cpu(map, i); > bitmap[cpu / 8] |= 1 << (cpu % 8); > } > > diff --git a/tools/perf/util/cpumap.h b/tools/perf/util/cpumap.h > index a053bf31a3f0..87545bcd461d 100644 > --- a/tools/perf/util/cpumap.h > +++ b/tools/perf/util/cpumap.h > @@ -80,7 +80,6 @@ int cpu_map__build_map(struct perf_cpu_map *cpus, struct cpu_aggr_map **res, > struct aggr_cpu_id (*f)(int cpu, void *data), > void *data); > > -int cpu_map__cpu(struct perf_cpu_map *cpus, int idx); > bool cpu_map__has(struct perf_cpu_map *cpus, int cpu); > > bool aggr_cpu_id__equal(const struct aggr_cpu_id *a, const struct aggr_cpu_id *b); > -- > 2.34.1.448.ga2b2bfdf31-goog -- - Arnaldo 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 22AAAC433EF for ; Mon, 10 Jan 2022 19:04:10 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+pDgr2SlaoxpBrG6ppbcRQwxfQau4/aYk2MWD5GZO0w=; b=LhnFz0EwAoZj31 yaUBKm7sFhF2fuc19+rlt2uGhYAUGq7dYSeKWbkLMRrymRPiUaAo1rtcH0zUjmuS60rLMtyjRVbkZ 51X0v1Ga9TKLznfyyUmHtR3nQGKYct2cu2Ti39LCU/AkXNYD5Ph3IzDZNzNGWKH14npSSdzr7pTC0 hbV7SH3AebIz47M8TzBLzuhkNIG2v+pjZu/IE5NPCnqrhRGQuZr/UTPHxjPxl13Zqxlq/FoiaBLQZ kjUHVjaAbvoftpMItWbkdDoEMlcatredSnYsVsSUCFXkDKSKypYmJXEv4gBNRd9dP+plyZzj88rFt J2JDoeSjSHwAmUWNZZhA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n6zwW-00CvEF-6N; Mon, 10 Jan 2022 19:02:56 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n6zwT-00CvDY-EQ for linux-arm-kernel@bombadil.infradead.org; Mon, 10 Jan 2022 19:02:53 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=Le3iN4Pcq2s41HQroeTgfYA4iGg+WVusn4dkNzzbLdg=; b=i0/q4ueM8xYrFx88YCkpHuUHRy mWhTEMS7OGfb09B/HZUU9aY2bp3sqRw/PY/cyCoSWM4ZiGLX782CpYsvyr4TbCfGwjdivqgh53wew afeaUkILIJ6+7RXeeieI4IQqhH04N2I2wynZcdUVsRpg093OINYk8j4WxOIRJAfM5z21jN6he/vps WTryvbMcAfs/ThP7F9I8ys/1XRAV9FUQ5hN/TYxJXrwDxScAmgKFJy/zxNisG0MC8qCASeBB4SDLd jijH6GB0XspYGavvLp4xX++6mYhgLXSHmd5ovWr/KQ1CoizynnG/ZGs2QA4n7t9f8chzEOCRS5pj0 IDeoNWbA==; Received: from [179.97.37.151] (helo=quaco.ghostprotocols.net) by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1n6zwR-002evv-8s; Mon, 10 Jan 2022 19:02:52 +0000 Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 145B040B92; Mon, 10 Jan 2022 16:02:49 -0300 (-03) Date: Mon, 10 Jan 2022 16:02:49 -0300 From: Arnaldo Carvalho de Melo To: Ian Rogers Cc: Andi Kleen , Jiri Olsa , Namhyung Kim , John Garry , Kajol Jain , "Paul A . Clarke" , Riccardo Mancini , Kan Liang , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, Vineet Singh , James Clark , Mathieu Poirier , Suzuki K Poulose , Mike Leach , Leo Yan , coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, zhengjun.xing@intel.com, eranian@google.com Subject: Re: [PATCH v4 17/48] perf cpumap: Remove cpu_map__cpu, use libperf function. Message-ID: References: <20220105061351.120843-1-irogers@google.com> <20220105061351.120843-18-irogers@google.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220105061351.120843-18-irogers@google.com> X-Url: http://acmel.wordpress.com 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 RW0gVHVlLCBKYW4gMDQsIDIwMjIgYXQgMTA6MTM6MjBQTSAtMDgwMCwgSWFuIFJvZ2VycyBlc2Ny ZXZldToKPiBTd2l0Y2ggdGhlIHJlbWFpbmluZyBmZXcgdXNlcnMgb2YgY3B1X21hcF9fY3B1IHRv IHBlcmZfY3B1X21hcF9fY3B1IGFuZAo+IHJlbW92ZSB0aGUgZnVuY3Rpb24uCj4gCj4gUmV2aWV3 ZWQtYnk6IEphbWVzIENsYXJrIDxqYW1lcy5jbGFya0Bhcm0uY29tPgo+IFNpZ25lZC1vZmYtYnk6 IElhbiBSb2dlcnMgPGlyb2dlcnNAZ29vZ2xlLmNvbT4KCnV0aWwvYnBmX2Z0cmFjZS5jOiBJbiBm dW5jdGlvbiDigJhwZXJmX2Z0cmFjZV9fbGF0ZW5jeV9wcmVwYXJlX2JwZuKAmToKdXRpbC9icGZf ZnRyYWNlLmM6NjY6MzE6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDi gJhjcHVfbWFwX19jcHXigJk7IGRpZCB5b3UgbWVhbiDigJhjcHVfbWFwX19oYXPigJk/IFstV2Vy cm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogICA2NiB8ICAgICAgICAgICAgICAg ICAgICAgICAgIGNwdSA9IGNwdV9tYXBfX2NwdShmdHJhY2UtPmV2bGlzdC0+Y29yZS5jcHVzLCBp KTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn4KICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVfbWFwX19oYXMKY2MxOiBhbGwg d2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVs0XTogKioqIFsvdmFyL2hvbWUv YWNtZS9naXQvcGVyZi90b29scy9idWlsZC9NYWtlZmlsZS5idWlsZDo5NjogL3RtcC9idWlsZC9w ZXJmL3V0aWwvYnBmX2Z0cmFjZS5vXSBFcnJvciAxCm1ha2VbNF06ICoqKiBXYWl0aW5nIGZvciB1 bmZpbmlzaGVkIGpvYnMuLi4uCiAgTEQgICAgICAvdG1wL2J1aWxkL3BlcmYvdWkvYnJvd3NlcnMv cGVyZi1pbi5vCiAgTEQgICAgICAvdG1wL2J1aWxkL3BlcmYvdWkvcGVyZi1pbi5vCiAgTEQgICAg ICAvdG1wL2J1aWxkL3BlcmYvdXRpbC9zY3JpcHRpbmctZW5naW5lcy9wZXJmLWluLm8KbWFrZVsz XTogKioqIFsvdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9idWlsZC9NYWtlZmlsZS5idWls ZDoxMzk6IHV0aWxdIEVycm9yIDIKbWFrZVsyXTogKioqIFtNYWtlZmlsZS5wZXJmOjY2NTogL3Rt cC9idWlsZC9wZXJmL3BlcmYtaW4ub10gRXJyb3IgMgptYWtlWzJdOiAqKiogV2FpdGluZyBmb3Ig dW5maW5pc2hlZCBqb2JzLi4uLgptYWtlWzFdOiAqKiogW01ha2VmaWxlLnBlcmY6MjQwOiBzdWIt bWFrZV0gRXJyb3IgMgptYWtlOiAqKiogW01ha2VmaWxlOjExMzogaW5zdGFsbC1iaW5dIEVycm9y IDIKbWFrZTogTGVhdmluZyBkaXJlY3RvcnkgJy92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xz L3BlcmYnCgogUGVyZm9ybWFuY2UgY291bnRlciBzdGF0cyBmb3IgJ21ha2UgLWsgQlVJTERfQlBG X1NLRUw9MSBDT1JFU0lHSFQ9MSBQWVRIT049cHl0aG9uMyBPPS90bXAvYnVpbGQvcGVyZiAtQyB0 b29scy9wZXJmIGluc3RhbGwtYmluJzoKCiAgIDE2Myw2MzUsNDIyLDE5NiAgICAgIGN5Y2xlczp1 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAy MTMsNjAyLDI2Miw4MDAgICAgICBpbnN0cnVjdGlvbnM6dSAgICAgICAgICAgICMgICAgMS4zMSAg aW5zbiBwZXIgY3ljbGUgICAgICAgICAKCiAgICAgICAzLjgwNDczODU1NSBzZWNvbmRzIHRpbWUg ZWxhcHNlZAoKICAgICAgNDAuNjIyNTgxMDAwIHNlY29uZHMgdXNlcgogICAgICAgNi41ODk5ODAw MDAgc2Vjb25kcyBzeXMKCgrirKJbYWNtZUB0b29sYm94IHBlcmZdJCBnaXQgbG9nIC0tb25lbGlu ZSAtMQpkZmUxMDNlNzU3YWVmZjc5IChIRUFEKSBwZXJmIGNwdW1hcDogUmVtb3ZlIGNwdV9tYXBf X2NwdSwgdXNlIGxpYnBlcmYgZnVuY3Rpb24uCgpUaGlzIGlzIHRoZSBmaXJzdCBicmVha2FnZSwg dHJ5aW5nIHRvIGZpeCBub3cuCgo+IC0tLQo+ICB0b29scy9wZXJmL2J1aWx0aW4tZnRyYWNlLmMg fCAyICstCj4gIHRvb2xzL3BlcmYvdXRpbC9jcHVtYXAuYyAgICB8IDkgKystLS0tLS0tCj4gIHRv b2xzL3BlcmYvdXRpbC9jcHVtYXAuaCAgICB8IDEgLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9i dWlsdGluLWZ0cmFjZS5jIGIvdG9vbHMvcGVyZi9idWlsdGluLWZ0cmFjZS5jCj4gaW5kZXggMmI1 NGUyZGRjODBhLi5mMTZjMzlhMzdhNTIgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvcGVyZi9idWlsdGlu LWZ0cmFjZS5jCj4gKysrIGIvdG9vbHMvcGVyZi9idWlsdGluLWZ0cmFjZS5jCj4gQEAgLTI4MSw3 ICsyODEsNyBAQCBzdGF0aWMgaW50IHNldF90cmFjaW5nX2NwdW1hc2soc3RydWN0IHBlcmZfY3B1 X21hcCAqY3B1bWFwKQo+ICAJaW50IHJldDsKPiAgCWludCBsYXN0X2NwdTsKPiAgCj4gLQlsYXN0 X2NwdSA9IGNwdV9tYXBfX2NwdShjcHVtYXAsIGNwdW1hcC0+bnIgLSAxKTsKPiArCWxhc3RfY3B1 ID0gcGVyZl9jcHVfbWFwX19jcHUoY3B1bWFwLCBjcHVtYXAtPm5yIC0gMSk7Cj4gIAltYXNrX3Np emUgPSBsYXN0X2NwdSAvIDQgKyAyOyAvKiBvbmUgbW9yZSBieXRlIGZvciBFT1MgKi8KPiAgCW1h c2tfc2l6ZSArPSBsYXN0X2NwdSAvIDMyOyAvKiAnLCcgaXMgbmVlZGVkIGZvciBldmVyeSAzMnRo IGNwdXMgKi8KPiAgCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9jcHVtYXAuYyBiL3Rv b2xzL3BlcmYvdXRpbC9jcHVtYXAuYwo+IGluZGV4IGUwZDdmMWRhNTg1OC4uMzJmOWZjMmRkMzg5 IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9jcHVtYXAuYwo+ICsrKyBiL3Rvb2xzL3Bl cmYvdXRpbC9jcHVtYXAuYwo+IEBAIC00ODUsMTEgKzQ4NSw2IEBAIGJvb2wgY3B1X21hcF9faGFz KHN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMsIGludCBjcHUpCj4gIAlyZXR1cm4gcGVyZl9jcHVf bWFwX19pZHgoY3B1cywgY3B1KSAhPSAtMTsKPiAgfQo+ICAKPiAtaW50IGNwdV9tYXBfX2NwdShz dHJ1Y3QgcGVyZl9jcHVfbWFwICpjcHVzLCBpbnQgaWR4KQo+IC17Cj4gLQlyZXR1cm4gY3B1cy0+ bWFwW2lkeF07Cj4gLX0KPiAtCj4gIHNpemVfdCBjcHVfbWFwX19zbnByaW50KHN0cnVjdCBwZXJm X2NwdV9tYXAgKm1hcCwgY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSkKPiAgewo+ICAJaW50IGksIGNw dSwgc3RhcnQgPSAtMTsKPiBAQCAtNTQ3LDcgKzU0Miw3IEBAIHNpemVfdCBjcHVfbWFwX19zbnBy aW50X21hc2soc3RydWN0IHBlcmZfY3B1X21hcCAqbWFwLCBjaGFyICpidWYsIHNpemVfdCBzaXpl KQo+ICAJaW50IGksIGNwdTsKPiAgCWNoYXIgKnB0ciA9IGJ1ZjsKPiAgCXVuc2lnbmVkIGNoYXIg KmJpdG1hcDsKPiAtCWludCBsYXN0X2NwdSA9IGNwdV9tYXBfX2NwdShtYXAsIG1hcC0+bnIgLSAx KTsKPiArCWludCBsYXN0X2NwdSA9IHBlcmZfY3B1X21hcF9fY3B1KG1hcCwgbWFwLT5uciAtIDEp Owo+ICAKPiAgCWlmIChidWYgPT0gTlVMTCkKPiAgCQlyZXR1cm4gMDsKPiBAQCAtNTU5LDcgKzU1 NCw3IEBAIHNpemVfdCBjcHVfbWFwX19zbnByaW50X21hc2soc3RydWN0IHBlcmZfY3B1X21hcCAq bWFwLCBjaGFyICpidWYsIHNpemVfdCBzaXplKQo+ICAJfQo+ICAKPiAgCWZvciAoaSA9IDA7IGkg PCBtYXAtPm5yOyBpKyspIHsKPiAtCQljcHUgPSBjcHVfbWFwX19jcHUobWFwLCBpKTsKPiArCQlj cHUgPSBwZXJmX2NwdV9tYXBfX2NwdShtYXAsIGkpOwo+ICAJCWJpdG1hcFtjcHUgLyA4XSB8PSAx IDw8IChjcHUgJSA4KTsKPiAgCX0KPiAgCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9j cHVtYXAuaCBiL3Rvb2xzL3BlcmYvdXRpbC9jcHVtYXAuaAo+IGluZGV4IGEwNTNiZjMxYTNmMC4u ODc1NDViY2Q0NjFkIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9jcHVtYXAuaAo+ICsr KyBiL3Rvb2xzL3BlcmYvdXRpbC9jcHVtYXAuaAo+IEBAIC04MCw3ICs4MCw2IEBAIGludCBjcHVf bWFwX19idWlsZF9tYXAoc3RydWN0IHBlcmZfY3B1X21hcCAqY3B1cywgc3RydWN0IGNwdV9hZ2dy X21hcCAqKnJlcywKPiAgCQkgICAgICAgc3RydWN0IGFnZ3JfY3B1X2lkICgqZikoaW50IGNwdSwg dm9pZCAqZGF0YSksCj4gIAkJICAgICAgIHZvaWQgKmRhdGEpOwo+ICAKPiAtaW50IGNwdV9tYXBf X2NwdShzdHJ1Y3QgcGVyZl9jcHVfbWFwICpjcHVzLCBpbnQgaWR4KTsKPiAgYm9vbCBjcHVfbWFw X19oYXMoc3RydWN0IHBlcmZfY3B1X21hcCAqY3B1cywgaW50IGNwdSk7Cj4gIAo+ICBib29sIGFn Z3JfY3B1X2lkX19lcXVhbChjb25zdCBzdHJ1Y3QgYWdncl9jcHVfaWQgKmEsIGNvbnN0IHN0cnVj dCBhZ2dyX2NwdV9pZCAqYik7Cj4gLS0gCj4gMi4zNC4xLjQ0OC5nYTJiMmJmZGYzMS1nb29nCgot LSAKCi0gQXJuYWxkbwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=