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 1A24AC433EF for ; Mon, 10 Jan 2022 21:04:32 +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=MwMkoaWXJJUnu41b4gFe3OaaEV96hRtfE3kv1ed+ofQ=; b=veZu6VLbDul+7Z TS6qErpR4OVOLITC3vEbcXrk9MjdkJZLd9F1j5fQqHdnHNi0u/rXcpln1z2mulOY4p578TB8u3CmH HU05sl6KUJoMV2sV0JK5Sh7B0HsUUv5wmDOPWhl/3PoObeDv33yWT+pbFi1QrzAkI7mckNXW9qwJ9 78xgQAQoce/RaqPo480ApMiAD7OTmdjukQ9zjI+jifGPmSo8NI2Z9bYwajDPqhvEUnU6XpgfT+KnV OyjWQ3U6aimeSyr82a905fFE66mEFhO4CTBODlGUKWaZbhkMpUvjceH/DxbHW0mer43F1O0d3JZfH toFXMkxctGJFq8MAYo/A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n71ou-00DKoT-Ea; Mon, 10 Jan 2022 21:03:12 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n71os-00DKoC-EK for linux-arm-kernel@bombadil.infradead.org; Mon, 10 Jan 2022 21:03:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; 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=YoWql6vBCxV1vYjDosJcLRPLiMGhCmOgkPfnGuYui20=; b=oRK9fCo/cWQ9jZjQdFrvFsBlx6 G92kmKttRsq1obGDHZUekF1/5GGpNr7U54kawFViacOi4mg2hox/QwXj/wCRvYB9qAJKuA6NyCCrX BeaEIxpuxxRs1jTPI4ohs9Ge1HL8kSZGzM4eaRrc9S1gwJJLqd7lUWjRUlB+uYMInGkL0GayQX6kh k6hbEHVZ09UYMWI5j2xl74oO/r+icBUMN8RUKNrl3CjvUF0zsMZL016UFXnBvLauM3MEwucOoaEca ITe5hKq/voxhsoOHKtLVepeHwGa2wp2HWznQv9u/SbYNa4PqhKWbMUuLIfjUF3gH6OyyfikpR9Vmb wJXfQ2cw==; Received: from [179.97.37.151] (helo=quaco.ghostprotocols.net) by desiato.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1n71op-000T2E-GI; Mon, 10 Jan 2022 21:03:08 +0000 Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id BBFE340714; Mon, 10 Jan 2022 18:03:04 -0300 (-03) Date: Mon, 10 Jan 2022 18:03:04 -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 v3 06/48] perf cpumap: Switch cpu_map__build_map to cpu function Message-ID: References: <20211230072030.302559-1-irogers@google.com> <20211230072030.302559-8-irogers@google.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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 RW0gTW9uLCBKYW4gMTAsIDIwMjIgYXQgMDU6NDY6NTJQTSAtMDMwMCwgQXJuYWxkbyBDYXJ2YWxo byBkZSBNZWxvIGVzY3JldmV1Ogo+IEVtIFdlZCwgRGVjIDI5LCAyMDIxIGF0IDExOjE5OjQ4UE0g LTA4MDAsIElhbiBSb2dlcnMgZXNjcmV2ZXU6Cj4gPiBBdm9pZCBlcnJvciBwcm9uZSBjcHVfbWFw ICsgaWR4IHZhcmlhbnQuIFJlbW92ZSBub3cgdW51c2VkIGZ1bmN0aW9ucy4KPiAKPiBBdCB0aGlz IHBvaW50IHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBub3cgdW51c2VkIHBlcmZfZW52X19nZXRfY3B1 KCksIGFuZAo+IHRoZW4gZGVhbCB3aXRoIHRoZSBmYWxsb3V0IGluIHRoZSBmb2xsb3dpbmcgcGF0 Y2hlcyB0aGF0IG5lZWRsZXNzbHkKPiBtb2RpZnkgdGhpcyB1bnVzZWQgZnVuY3Rpb24uCj4gCj4g RG9pbmcgdGhhdCBub3cuCgpEb25lLCBmb3JjZSBwdXNoZWQgdG8gdG1wLnBlcmYvcGVyZl9jcHUs IG5vdyBpdCBpcyBnb2luZyBhZ2FpbiB0aHJ1IHRoZQpidWlsZCBjb250YWluZXJzLCBhIGJldHRl ciBzdGFydCBub3c6CgpbcGVyZmJ1aWxkZXJAZml2ZSB+XSQgZXhwb3J0IEJVSUxEX1RBUkJBTEw9 aHR0cDovLzE5Mi4xNjguMTAwLjIvcGVyZi9wZXJmLTUuMTYuMC50YXIueHoKW3BlcmZidWlsZGVy QGZpdmUgfl0kIHRpbWUgZG0KICAgMSAgICA5NS42MSBhbG1hbGludXg6OCAgICAgICAgICAgICAg ICAgICA6IE9rICAgZ2NjIChHQ0MpIDguNS4wIDIwMjEwNTE0IChSZWQgSGF0IDguNS4wLTQpICwg Y2xhbmcgdmVyc2lvbiAxMi4wLjEgKFJlZCBIYXQgMTIuMC4xLTQubW9kdWxlX2VsOC41LjArMTAy NSs5MzE1OWQ2YykKICAgMiAgICA1Ni4xOCBhbHBpbmU6My40ICAgICAgICAgICAgICAgICAgICA6 IE9rICAgZ2NjIChBbHBpbmUgNS4zLjApIDUuMy4wICwgY2xhbmcgdmVyc2lvbiAzLjguMCAodGFn cy9SRUxFQVNFXzM4MC9maW5hbCkKICAgMzogYWxwaW5lOjMuNQoKCi0gQXJuYWxkbwogCj4g4qyi W2FjbWVAdG9vbGJveCBwZXJmXSQgZ2l0IGRpZmYKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9i dWlsdGluLXN0YXQuYyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1zdGF0LmMKPiBpbmRleCA2Yjk4NWFi YWEyZDIyYzU4Li40MGNiMzUxOGYyN2UyMzA5IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvYnVp bHRpbi1zdGF0LmMKPiArKysgYi90b29scy9wZXJmL2J1aWx0aW4tc3RhdC5jCj4gQEAgLTE0Nzcs MjIgKzE0NzcsNiBAQCBzdGF0aWMgdm9pZCBwZXJmX3N0YXRfX2V4aXRfYWdncl9tb2RlKHZvaWQp Cj4gICAgICAgICBzdGF0X2NvbmZpZy5jcHVzX2FnZ3JfbWFwID0gTlVMTDsKPiAgfQo+IAo+IC1z dGF0aWMgaW5saW5lIGludCBwZXJmX2Vudl9fZ2V0X2NwdSh2b2lkICpkYXRhLCBzdHJ1Y3QgcGVy Zl9jcHVfbWFwICptYXAsIGludCBpZHgpCj4gLXsKPiAtICAgICAgIHN0cnVjdCBwZXJmX2VudiAq ZW52ID0gZGF0YTsKPiAtICAgICAgIGludCBjcHU7Cj4gLQo+IC0gICAgICAgaWYgKGlkeCA+IG1h cC0+bnIpCj4gLSAgICAgICAgICAgICAgIHJldHVybiAtMTsKPiAtCj4gLSAgICAgICBjcHUgPSBt YXAtPm1hcFtpZHhdOwo+IC0KPiAtICAgICAgIGlmIChjcHUgPj0gZW52LT5ucl9jcHVzX2F2YWls KQo+IC0gICAgICAgICAgICAgICByZXR1cm4gLTE7Cj4gLQo+IC0gICAgICAgcmV0dXJuIGNwdTsK PiAtfQo+IC0KPiAgc3RhdGljIHN0cnVjdCBhZ2dyX2NwdV9pZCBwZXJmX2Vudl9fZ2V0X3NvY2tl dF9hZ2dyX2J5X2NwdShpbnQgY3B1LCB2b2lkICpkYXRhKQo+ICB7Cj4gICAgICAgICBzdHJ1Y3Qg cGVyZl9lbnYgKmVudiA9IGRhdGE7Cj4gIAo+ID4gUmV2aWV3ZWQtYnk6IEphbWVzIENsYXJrIDxq YW1lcy5jbGFya0Bhcm0uY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogSWFuIFJvZ2VycyA8aXJvZ2Vy c0Bnb29nbGUuY29tPgo+ID4gLS0tCj4gPiAgdG9vbHMvcGVyZi9idWlsdGluLXN0YXQuYyB8IDI4 ICsrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ICB0b29scy9wZXJmL3V0aWwvY3B1bWFw LmMgIHwgMTIgKysrKysrLS0tLS0tCj4gPiAgdG9vbHMvcGVyZi91dGlsL2NwdW1hcC5oICB8ICAy ICstCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMo LSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1zdGF0LmMgYi90b29s cy9wZXJmL2J1aWx0aW4tc3RhdC5jCj4gPiBpbmRleCA5NzkxYWU5YjFhNTMuLjZiOTg1YWJhYTJk MiAxMDA2NDQKPiA+IC0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1zdGF0LmMKPiA+ICsrKyBiL3Rv b2xzL3BlcmYvYnVpbHRpbi1zdGF0LmMKPiA+IEBAIC0xNTA0LDExICsxNTA0LDYgQEAgc3RhdGlj IHN0cnVjdCBhZ2dyX2NwdV9pZCBwZXJmX2Vudl9fZ2V0X3NvY2tldF9hZ2dyX2J5X2NwdShpbnQg Y3B1LCB2b2lkICpkYXRhKQo+ID4gIAlyZXR1cm4gaWQ7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRp YyBzdHJ1Y3QgYWdncl9jcHVfaWQgcGVyZl9lbnZfX2dldF9zb2NrZXQoc3RydWN0IHBlcmZfY3B1 X21hcCAqbWFwLCBpbnQgaWR4LCB2b2lkICpkYXRhKQo+ID4gLXsKPiA+IC0JcmV0dXJuIHBlcmZf ZW52X19nZXRfc29ja2V0X2FnZ3JfYnlfY3B1KHBlcmZfZW52X19nZXRfY3B1KGRhdGEsIG1hcCwg aWR4KSwgZGF0YSk7Cj4gPiAtfQo+ID4gLQo+ID4gIHN0YXRpYyBzdHJ1Y3QgYWdncl9jcHVfaWQg cGVyZl9lbnZfX2dldF9kaWVfYWdncl9ieV9jcHUoaW50IGNwdSwgdm9pZCAqZGF0YSkKPiA+ICB7 Cj4gPiAgCXN0cnVjdCBwZXJmX2VudiAqZW52ID0gZGF0YTsKPiA+IEBAIC0xNTI3LDExICsxNTIy LDYgQEAgc3RhdGljIHN0cnVjdCBhZ2dyX2NwdV9pZCBwZXJmX2Vudl9fZ2V0X2RpZV9hZ2dyX2J5 X2NwdShpbnQgY3B1LCB2b2lkICpkYXRhKQo+ID4gIAlyZXR1cm4gaWQ7Cj4gPiAgfQo+ID4gIAo+ ID4gLXN0YXRpYyBzdHJ1Y3QgYWdncl9jcHVfaWQgcGVyZl9lbnZfX2dldF9kaWUoc3RydWN0IHBl cmZfY3B1X21hcCAqbWFwLCBpbnQgaWR4LCB2b2lkICpkYXRhKQo+ID4gLXsKPiA+IC0JcmV0dXJu IHBlcmZfZW52X19nZXRfZGllX2FnZ3JfYnlfY3B1KHBlcmZfZW52X19nZXRfY3B1KGRhdGEsIG1h cCwgaWR4KSwgZGF0YSk7Cj4gPiAtfQo+ID4gLQo+ID4gIHN0YXRpYyBzdHJ1Y3QgYWdncl9jcHVf aWQgcGVyZl9lbnZfX2dldF9jb3JlX2FnZ3JfYnlfY3B1KGludCBjcHUsIHZvaWQgKmRhdGEpCj4g PiAgewo+ID4gIAlzdHJ1Y3QgcGVyZl9lbnYgKmVudiA9IGRhdGE7Cj4gPiBAQCAtMTU1MSwxMSAr MTU0MSw2IEBAIHN0YXRpYyBzdHJ1Y3QgYWdncl9jcHVfaWQgcGVyZl9lbnZfX2dldF9jb3JlX2Fn Z3JfYnlfY3B1KGludCBjcHUsIHZvaWQgKmRhdGEpCj4gPiAgCXJldHVybiBpZDsKPiA+ICB9Cj4g PiAgCj4gPiAtc3RhdGljIHN0cnVjdCBhZ2dyX2NwdV9pZCBwZXJmX2Vudl9fZ2V0X2NvcmUoc3Ry dWN0IHBlcmZfY3B1X21hcCAqbWFwLCBpbnQgaWR4LCB2b2lkICpkYXRhKQo+ID4gLXsKPiA+IC0J cmV0dXJuIHBlcmZfZW52X19nZXRfY29yZV9hZ2dyX2J5X2NwdShwZXJmX2Vudl9fZ2V0X2NwdShk YXRhLCBtYXAsIGlkeCksIGRhdGEpOwo+ID4gLX0KPiA+IC0KPiA+ICBzdGF0aWMgc3RydWN0IGFn Z3JfY3B1X2lkIHBlcmZfZW52X19nZXRfbm9kZV9hZ2dyX2J5X2NwdShpbnQgY3B1LCB2b2lkICpk YXRhKQo+ID4gIHsKPiA+ICAJc3RydWN0IGFnZ3JfY3B1X2lkIGlkID0gY3B1X21hcF9fZW1wdHlf YWdncl9jcHVfaWQoKTsKPiA+IEBAIC0xNTY0LDMzICsxNTQ5LDI4IEBAIHN0YXRpYyBzdHJ1Y3Qg YWdncl9jcHVfaWQgcGVyZl9lbnZfX2dldF9ub2RlX2FnZ3JfYnlfY3B1KGludCBjcHUsIHZvaWQg KmRhdGEpCj4gPiAgCXJldHVybiBpZDsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHN0cnVjdCBh Z2dyX2NwdV9pZCBwZXJmX2Vudl9fZ2V0X25vZGUoc3RydWN0IHBlcmZfY3B1X21hcCAqbWFwLCBp bnQgaWR4LCB2b2lkICpkYXRhKQo+ID4gLXsKPiA+IC0JcmV0dXJuIHBlcmZfZW52X19nZXRfbm9k ZV9hZ2dyX2J5X2NwdShwZXJmX2Vudl9fZ2V0X2NwdShkYXRhLCBtYXAsIGlkeCksIGRhdGEpOwo+ ID4gLX0KPiA+IC0KPiA+ICBzdGF0aWMgaW50IHBlcmZfZW52X19idWlsZF9zb2NrZXRfbWFwKHN0 cnVjdCBwZXJmX2VudiAqZW52LCBzdHJ1Y3QgcGVyZl9jcHVfbWFwICpjcHVzLAo+ID4gIAkJCQkg ICAgICBzdHJ1Y3QgY3B1X2FnZ3JfbWFwICoqc29ja3ApCj4gPiAgewo+ID4gLQlyZXR1cm4gY3B1 X21hcF9fYnVpbGRfbWFwKGNwdXMsIHNvY2twLCBwZXJmX2Vudl9fZ2V0X3NvY2tldCwgZW52KTsK PiA+ICsJcmV0dXJuIGNwdV9tYXBfX2J1aWxkX21hcChjcHVzLCBzb2NrcCwgcGVyZl9lbnZfX2dl dF9zb2NrZXRfYWdncl9ieV9jcHUsIGVudik7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyBpbnQg cGVyZl9lbnZfX2J1aWxkX2RpZV9tYXAoc3RydWN0IHBlcmZfZW52ICplbnYsIHN0cnVjdCBwZXJm X2NwdV9tYXAgKmNwdXMsCj4gPiAgCQkJCSAgIHN0cnVjdCBjcHVfYWdncl9tYXAgKipkaWVwKQo+ ID4gIHsKPiA+IC0JcmV0dXJuIGNwdV9tYXBfX2J1aWxkX21hcChjcHVzLCBkaWVwLCBwZXJmX2Vu dl9fZ2V0X2RpZSwgZW52KTsKPiA+ICsJcmV0dXJuIGNwdV9tYXBfX2J1aWxkX21hcChjcHVzLCBk aWVwLCBwZXJmX2Vudl9fZ2V0X2RpZV9hZ2dyX2J5X2NwdSwgZW52KTsKPiA+ICB9Cj4gPiAgCj4g PiAgc3RhdGljIGludCBwZXJmX2Vudl9fYnVpbGRfY29yZV9tYXAoc3RydWN0IHBlcmZfZW52ICpl bnYsIHN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMsCj4gPiAgCQkJCSAgICBzdHJ1Y3QgY3B1X2Fn Z3JfbWFwICoqY29yZXApCj4gPiAgewo+ID4gLQlyZXR1cm4gY3B1X21hcF9fYnVpbGRfbWFwKGNw dXMsIGNvcmVwLCBwZXJmX2Vudl9fZ2V0X2NvcmUsIGVudik7Cj4gPiArCXJldHVybiBjcHVfbWFw X19idWlsZF9tYXAoY3B1cywgY29yZXAsIHBlcmZfZW52X19nZXRfY29yZV9hZ2dyX2J5X2NwdSwg ZW52KTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIGludCBwZXJmX2Vudl9fYnVpbGRfbm9kZV9t YXAoc3RydWN0IHBlcmZfZW52ICplbnYsIHN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMsCj4gPiAg CQkJCSAgICBzdHJ1Y3QgY3B1X2FnZ3JfbWFwICoqbm9kZXApCj4gPiAgewo+ID4gLQlyZXR1cm4g Y3B1X21hcF9fYnVpbGRfbWFwKGNwdXMsIG5vZGVwLCBwZXJmX2Vudl9fZ2V0X25vZGUsIGVudik7 Cj4gPiArCXJldHVybiBjcHVfbWFwX19idWlsZF9tYXAoY3B1cywgbm9kZXAsIHBlcmZfZW52X19n ZXRfbm9kZV9hZ2dyX2J5X2NwdSwgZW52KTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHN0cnVj dCBhZ2dyX2NwdV9pZCBwZXJmX3N0YXRfX2dldF9zb2NrZXRfZmlsZShzdHJ1Y3QgcGVyZl9zdGF0 X2NvbmZpZyAqY29uZmlnIF9fbWF5YmVfdW51c2VkLAo+ID4gZGlmZiAtLWdpdCBhL3Rvb2xzL3Bl cmYvdXRpbC9jcHVtYXAuYyBiL3Rvb2xzL3BlcmYvdXRpbC9jcHVtYXAuYwo+ID4gaW5kZXggNDlm YmEyYzUzODIyLi5mZWFmMzRiMjVlZmMgMTAwNjQ0Cj4gPiAtLS0gYS90b29scy9wZXJmL3V0aWwv Y3B1bWFwLmMKPiA+ICsrKyBiL3Rvb2xzL3BlcmYvdXRpbC9jcHVtYXAuYwo+ID4gQEAgLTE2Myw3 ICsxNjMsNyBAQCBzdGF0aWMgaW50IGNtcF9hZ2dyX2NwdV9pZChjb25zdCB2b2lkICphX3BvaW50 ZXIsIGNvbnN0IHZvaWQgKmJfcG9pbnRlcikKPiA+ICB9Cj4gPiAgCj4gPiAgaW50IGNwdV9tYXBf X2J1aWxkX21hcChzdHJ1Y3QgcGVyZl9jcHVfbWFwICpjcHVzLCBzdHJ1Y3QgY3B1X2FnZ3JfbWFw ICoqcmVzLAo+ID4gLQkJICAgICAgIHN0cnVjdCBhZ2dyX2NwdV9pZCAoKmYpKHN0cnVjdCBwZXJm X2NwdV9tYXAgKm1hcCwgaW50IGNwdSwgdm9pZCAqZGF0YSksCj4gPiArCQkgICAgICAgc3RydWN0 IGFnZ3JfY3B1X2lkICgqZikoaW50IGNwdSwgdm9pZCAqZGF0YSksCj4gPiAgCQkgICAgICAgdm9p ZCAqZGF0YSkKPiA+ICB7Cj4gPiAgCWludCBuciA9IGNwdXMtPm5yOwo+ID4gQEAgLTE3OCw3ICsx NzgsNyBAQCBpbnQgY3B1X21hcF9fYnVpbGRfbWFwKHN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMs IHN0cnVjdCBjcHVfYWdncl9tYXAgKipyZXMsCj4gPiAgCWMtPm5yID0gMDsKPiA+ICAKPiA+ICAJ Zm9yIChjcHUgPSAwOyBjcHUgPCBucjsgY3B1KyspIHsKPiA+IC0JCXMxID0gZihjcHVzLCBjcHUs IGRhdGEpOwo+ID4gKwkJczEgPSBmKGNwdSwgZGF0YSk7Cj4gPiAgCQlmb3IgKHMyID0gMDsgczIg PCBjLT5ucjsgczIrKykgewo+ID4gIAkJCWlmIChjcHVfbWFwX19jb21wYXJlX2FnZ3JfY3B1X2lk KHMxLCBjLT5tYXBbczJdKSkKPiA+ICAJCQkJYnJlYWs7Cj4gPiBAQCAtMjkwLDIyICsyOTAsMjIg QEAgc3RydWN0IGFnZ3JfY3B1X2lkIGNwdV9tYXBfX2dldF9ub2RlKHN0cnVjdCBwZXJmX2NwdV9t YXAgKm1hcCwgaW50IGlkeCwgdm9pZCAqZGEKPiA+ICAKPiA+ICBpbnQgY3B1X21hcF9fYnVpbGRf c29ja2V0X21hcChzdHJ1Y3QgcGVyZl9jcHVfbWFwICpjcHVzLCBzdHJ1Y3QgY3B1X2FnZ3JfbWFw ICoqc29ja3ApCj4gPiAgewo+ID4gLQlyZXR1cm4gY3B1X21hcF9fYnVpbGRfbWFwKGNwdXMsIHNv Y2twLCBjcHVfbWFwX19nZXRfc29ja2V0LCBOVUxMKTsKPiA+ICsJcmV0dXJuIGNwdV9tYXBfX2J1 aWxkX21hcChjcHVzLCBzb2NrcCwgY3B1X21hcF9fZ2V0X3NvY2tldF9hZ2dyX2J5X2NwdSwgTlVM TCk7Cj4gPiAgfQo+ID4gIAo+ID4gIGludCBjcHVfbWFwX19idWlsZF9kaWVfbWFwKHN0cnVjdCBw ZXJmX2NwdV9tYXAgKmNwdXMsIHN0cnVjdCBjcHVfYWdncl9tYXAgKipkaWVwKQo+ID4gIHsKPiA+ IC0JcmV0dXJuIGNwdV9tYXBfX2J1aWxkX21hcChjcHVzLCBkaWVwLCBjcHVfbWFwX19nZXRfZGll LCBOVUxMKTsKPiA+ICsJcmV0dXJuIGNwdV9tYXBfX2J1aWxkX21hcChjcHVzLCBkaWVwLCBjcHVf bWFwX19nZXRfZGllX2FnZ3JfYnlfY3B1LCBOVUxMKTsKPiA+ICB9Cj4gPiAgCj4gPiAgaW50IGNw dV9tYXBfX2J1aWxkX2NvcmVfbWFwKHN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMsIHN0cnVjdCBj cHVfYWdncl9tYXAgKipjb3JlcCkKPiA+ICB7Cj4gPiAtCXJldHVybiBjcHVfbWFwX19idWlsZF9t YXAoY3B1cywgY29yZXAsIGNwdV9tYXBfX2dldF9jb3JlLCBOVUxMKTsKPiA+ICsJcmV0dXJuIGNw dV9tYXBfX2J1aWxkX21hcChjcHVzLCBjb3JlcCwgY3B1X21hcF9fZ2V0X2NvcmVfYWdncl9ieV9j cHUsIE5VTEwpOwo+ID4gIH0KPiA+ICAKPiA+ICBpbnQgY3B1X21hcF9fYnVpbGRfbm9kZV9tYXAo c3RydWN0IHBlcmZfY3B1X21hcCAqY3B1cywgc3RydWN0IGNwdV9hZ2dyX21hcCAqKm51bWFwKQo+ ID4gIHsKPiA+IC0JcmV0dXJuIGNwdV9tYXBfX2J1aWxkX21hcChjcHVzLCBudW1hcCwgY3B1X21h cF9fZ2V0X25vZGUsIE5VTEwpOwo+ID4gKwlyZXR1cm4gY3B1X21hcF9fYnVpbGRfbWFwKGNwdXMs IG51bWFwLCBjcHVfbWFwX19nZXRfbm9kZV9hZ2dyX2J5X2NwdSwgTlVMTCk7Cj4gPiAgfQo+ID4g IAo+ID4gIC8qIHNldHVwIHNpbXBsZSByb3V0aW5lcyB0byBlYXNpbHkgYWNjZXNzIG5vZGUgbnVt YmVycyBnaXZlbiBhIGNwdSBudW1iZXIgKi8KPiA+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0 aWwvY3B1bWFwLmggYi90b29scy9wZXJmL3V0aWwvY3B1bWFwLmgKPiA+IGluZGV4IGM2MmQ2Nzcw NDQyNS4uOTY0ODgxNmM0MjU1IDEwMDY0NAo+ID4gLS0tIGEvdG9vbHMvcGVyZi91dGlsL2NwdW1h cC5oCj4gPiArKysgYi90b29scy9wZXJmL3V0aWwvY3B1bWFwLmgKPiA+IEBAIC02Myw3ICs2Myw3 IEBAIGludCBjcHVfX21heF9wcmVzZW50X2NwdSh2b2lkKTsKPiA+ICBpbnQgY3B1X19nZXRfbm9k ZShpbnQgY3B1KTsKPiA+ICAKPiA+ICBpbnQgY3B1X21hcF9fYnVpbGRfbWFwKHN0cnVjdCBwZXJm X2NwdV9tYXAgKmNwdXMsIHN0cnVjdCBjcHVfYWdncl9tYXAgKipyZXMsCj4gPiAtCQkgICAgICAg c3RydWN0IGFnZ3JfY3B1X2lkICgqZikoc3RydWN0IHBlcmZfY3B1X21hcCAqbWFwLCBpbnQgY3B1 LCB2b2lkICpkYXRhKSwKPiA+ICsJCSAgICAgICBzdHJ1Y3QgYWdncl9jcHVfaWQgKCpmKShpbnQg Y3B1LCB2b2lkICpkYXRhKSwKPiA+ICAJCSAgICAgICB2b2lkICpkYXRhKTsKPiA+ICAKPiA+ICBp bnQgY3B1X21hcF9fY3B1KHN0cnVjdCBwZXJmX2NwdV9tYXAgKmNwdXMsIGludCBpZHgpOwo+ID4g LS0gCj4gPiAyLjM0LjEuNDQ4LmdhMmIyYmZkZjMxLWdvb2cKPiAKPiAtLSAKPiAKPiAtIEFybmFs ZG8KCi0tIAoKLSBBcm5hbGRvCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVs QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==