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 49165EB64D7 for ; Tue, 13 Jun 2023 22:36:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240820AbjFMWgM (ORCPT ); Tue, 13 Jun 2023 18:36:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40284 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240872AbjFMWgK (ORCPT ); Tue, 13 Jun 2023 18:36:10 -0400 Received: from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com [IPv6:2607:f8b0:4864:20::52e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1F305127; Tue, 13 Jun 2023 15:36:08 -0700 (PDT) Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-517ab9a4a13so4226939a12.1; Tue, 13 Jun 2023 15:36:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686695767; x=1689287767; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=xAqqAV+ENjmI6SCXfRKgZ8uj6XEGLuGnV0zLgQaihAY=; b=PXqpFiS9HyxAARrrXP23NAgxQpz27h6o0YU4nxWEPeCY1/6N3h7wqaFs9VH7FUFAQm D+j7CSDkMXghnf+GdfBt1fKJyjonHbzuq+pPbnBkkfD+6NTLnh9LiVRK+W2xv66DlNMT o1IBi8SFGtqqKAE0kEqAX6X3COY8niBVGTAtmHBCVHYcSFU7EKn92dZDaFRhhXraDpmS kmGDhOedfd8M6vQ8BC1+0Pnd/p2JK91PF8mvVGuxZrBlynRDsk7yPOCDboQif1MDEkoH Qm6bW5It7VA7uXshzzH5YRDNYctoSLSY/V1VFzWI399gxlfYZ12fngBbr/++oJi6hoeI RAng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686695767; x=1689287767; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=xAqqAV+ENjmI6SCXfRKgZ8uj6XEGLuGnV0zLgQaihAY=; b=llHvhNp9js+RBWbzvnrOgWiIGIiHTZLoBrelQMDhbWOu/HypJVUdcZYTnibpqWmDqf WD9lMyh6w8+DDqk+cs0eVw/OJSAt7Yz0+yQ7TsCj5pp9ccscuMXQohJuCWcTCZ+CRYEK 15V3vyIMZdth0XforosIKouuryqnlvYn0j4GvjShhO9zKrsjBLeYHQK49NKeBabufjYT 6iEbqnuro7rRm/eYifIf3mmKgp+mNFaobm4Htqptiqo+6zTn/9hw6POJRWSof1uTI5+U BSuO0R8O/9bAkxa85kaNKnYDM1Jx/Hbwfe+DhnsO1V9P/B1UrRJvUeGGmigW10kKNXVK Ho7w== X-Gm-Message-State: AC+VfDxteH22U0ihDt5Z8tr0dANusw7HIkRhwuQ2tK8A/tWjt81Xz4cd 0hoEENXseyFPxIJIlPBPXNA= X-Google-Smtp-Source: ACHHUZ5YPstkWINYVefAMOQAsNSMtRGjYuy+ju0q86LfTQYQU+GDjKFmE6s4f+oZ4u7samadgbL3Vw== X-Received: by 2002:a17:903:1c3:b0:1b2:f8d:3ef5 with SMTP id e3-20020a17090301c300b001b20f8d3ef5mr12833654plh.38.1686695767340; Tue, 13 Jun 2023 15:36:07 -0700 (PDT) Received: from ?IPV6:2a03:83e0:1156:1:222a:4b8d:6a5d:b39d? ([2620:10d:c090:500::6:1cfe]) by smtp.gmail.com with ESMTPSA id s13-20020a170902988d00b001ac937171e4sm10661270plp.254.2023.06.13.15.36.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 13 Jun 2023 15:36:06 -0700 (PDT) Message-ID: <06f219e8-9ae5-01a1-f955-25f556ad5077@gmail.com> Date: Tue, 13 Jun 2023 15:36:04 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH v3 bpf-next 03/10] bpftool: Show probed function in kprobe_multi link info To: Yafang Shao , ast@kernel.org, daniel@iogearbox.net, john.fastabend@gmail.com, andrii@kernel.org, martin.lau@linux.dev, song@kernel.org, yhs@fb.com, kpsingh@kernel.org, sdf@google.com, haoluo@google.com, jolsa@kernel.org, quentin@isovalent.com, rostedt@goodmis.org, mhiramat@kernel.org Cc: bpf@vger.kernel.org, linux-trace-kernel@vger.kernel.org References: <20230612151608.99661-1-laoar.shao@gmail.com> <20230612151608.99661-4-laoar.shao@gmail.com> Content-Language: en-US From: Kui-Feng Lee In-Reply-To: <20230612151608.99661-4-laoar.shao@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-trace-kernel@vger.kernel.org DQoNCk9uIDYvMTIvMjMgMDg6MTYsIFlhZmFuZyBTaGFvIHdyb3RlOg0KPiBTaG93IHRoZSBh bHJlYWR5IGV4cG9zZSBrcHJvYmVfbXVsdGkgbGluayBpbmZvIGluIGJwZnRvb2wuIFRoZSBy ZXN1bHQgYXMNCj4gZm9sbG93cywNCj4gDQo+IDUyOiBrcHJvYmVfbXVsdGkgIHByb2cgMzgx DQo+ICAgICAgICAgIHJldHByb2JlIDAgIGZ1bmNfY250IDcNCj4gICAgICAgICAgYWRkcnMg ZmZmZmZmZmY5ZWM0NGYyMCAgZnVuY3Mgc2NoZWR1bGVfdGltZW91dF9pbnRlcnJ1cHRpYmxl DQo+ICAgICAgICAgICAgICAgIGZmZmZmZmZmOWVjNDRmNjAgICAgICAgIHNjaGVkdWxlX3Rp bWVvdXRfa2lsbGFibGUNCj4gICAgICAgICAgICAgICAgZmZmZmZmZmY5ZWM0NGZhMCAgICAg ICAgc2NoZWR1bGVfdGltZW91dF91bmludGVycnVwdGlibGUNCj4gICAgICAgICAgICAgICAg ZmZmZmZmZmY5ZWM0NGZlMCAgICAgICAgc2NoZWR1bGVfdGltZW91dF9pZGxlDQo+ICAgICAg ICAgICAgICAgIGZmZmZmZmZmYzA5NDY4ZDAgICAgICAgIHhmc190cmFuc19nZXRfZWZkIFt4 ZnNdDQo+ICAgICAgICAgICAgICAgIGZmZmZmZmZmYzA5NTNhMTAgICAgICAgIHhmc190cmFu c19nZXRfYnVmX21hcCBbeGZzXQ0KPiAgICAgICAgICAgICAgICBmZmZmZmZmZmMwOTU3MzIw ICAgICAgICB4ZnNfdHJhbnNfZ2V0X2RxdHJ4IFt4ZnNdDQo+ICAgICAgICAgIHBpZHMga3By b2JlX211bHRpKDU1OTg2MikNCj4gNTM6IGtwcm9iZV9tdWx0aSAgcHJvZyAzODENCj4gICAg ICAgICAgcmV0cHJvYmUgMSAgZnVuY19jbnQgNw0KPiAgICAgICAgICBhZGRycyBmZmZmZmZm ZjllYzQ0ZjIwICBmdW5jcyBzY2hlZHVsZV90aW1lb3V0X2ludGVycnVwdGlibGUNCj4gICAg ICAgICAgICAgICAgZmZmZmZmZmY5ZWM0NGY2MCAgICAgICAgc2NoZWR1bGVfdGltZW91dF9r aWxsYWJsZQ0KPiAgICAgICAgICAgICAgICBmZmZmZmZmZjllYzQ0ZmEwICAgICAgICBzY2hl ZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZQ0KPiAgICAgICAgICAgICAgICBmZmZmZmZm ZjllYzQ0ZmUwICAgICAgICBzY2hlZHVsZV90aW1lb3V0X2lkbGUNCj4gICAgICAgICAgICAg ICAgZmZmZmZmZmZjMDk0NjhkMCAgICAgICAgeGZzX3RyYW5zX2dldF9lZmQgW3hmc10NCj4g ICAgICAgICAgICAgICAgZmZmZmZmZmZjMDk1M2ExMCAgICAgICAgeGZzX3RyYW5zX2dldF9i dWZfbWFwIFt4ZnNdDQo+ICAgICAgICAgICAgICAgIGZmZmZmZmZmYzA5NTczMjAgICAgICAg IHhmc190cmFuc19nZXRfZHF0cnggW3hmc10NCj4gICAgICAgICAgcGlkcyBrcHJvYmVfbXVs dGkoNTU5ODYyKQ0KPiANCj4gJCB0b29scy9icGYvYnBmdG9vbC9icGZ0b29sIGxpbmsgc2hv dyAtag0KPiBbeyJpZCI6NTIsInR5cGUiOiJrcHJvYmVfbXVsdGkiLCJwcm9nX2lkIjozODEs InJldHByb2JlIjowLCJmdW5jX2NudCI6NywiZnVuY3MiOlt7ImFkZHIiOjE4NDQ2NzQ0MDcy MDc4MjQ5NzYwLCJmdW5jIjoic2NoZWR1bGVfdGltZW91dF9pbnRlcnJ1cHRpYmxlIiwibW9k dWxlIjoiIn0seyJhZGRyIjoxODQ0Njc0NDA3MjA3ODI0OTgyNCwiZnVuYyI6InNjaGVkdWxl X3RpbWVvdXRfa2lsbGFibGUiLCJtb2R1bGUiOiIifSx7ImFkZHIiOjE4NDQ2NzQ0MDcyMDc4 MjQ5ODg4LCJmdW5jIjoic2NoZWR1bGVfdGltZW91dF91bmludGVycnVwdGlibGUiLCJtb2R1 bGUiOiIifSx7ImFkZHIiOjE4NDQ2NzQ0MDcyMDc4MjQ5OTUyLCJmdW5jIjoic2NoZWR1bGVf dGltZW91dF9pZGxlIiwibW9kdWxlIjoiIn0seyJhZGRyIjoxODQ0Njc0NDA3MjY0NTUzNTk1 MiwiZnVuYyI6Inhmc190cmFuc19nZXRfZWZkIiwibW9kdWxlIjoiW3hmc10ifSx7ImFkZHIi OjE4NDQ2NzQ0MDcyNjQ1NTg5NTIwLCJmdW5jIjoieGZzX3RyYW5zX2dldF9idWZfbWFwIiwi bW9kdWxlIjoiW3hmc10ifSx7ImFkZHIiOjE4NDQ2NzQ0MDcyNjQ1NjA0MTI4LCJmdW5jIjoi eGZzX3RyYW5zX2dldF9kcXRyeCIsIm1vZHVsZSI6Ilt4ZnNdIn1dLCJwaWRzIjpbeyJwaWQi OjU1OTg2MiwiY29tbSI6Imtwcm9iZV9tdWx0aSJ9XX0seyJpZCI6NTMsInR5cGUiOiJrcHJv YmVfbXVsdGkiLCJwcm9nX2lkIjozODEsInJldHByb2JlIjoxLCJmdW5jX2NudCI6NywiZnVu Y3MiOlt7ImFkZHIiOjE4NDQ2NzQ0MDcyMDc4MjQ5NzYwLCJmdW5jIjoic2NoZWR1bGVfdGlt ZW91dF9pbnRlcnJ1cHRpYmxlIiwibW9kdWxlIjoiIn0seyJhZGRyIjoxODQ0Njc0NDA3MjA3 ODI0OTgyNCwiZnVuYyI6InNjaGVkdWxlX3RpbWVvdXRfa2lsbGFibGUiLCJtb2R1bGUiOiIi fSx7ImFkZHIiOjE4NDQ2NzQ0MDcyMDc4MjQ5ODg4LCJmdW5jIjoic2NoZWR1bGVfdGltZW91 dF91bmludGVycnVwdGlibGUiLCJtb2R1bGUiOiIifSx7ImFkZHIiOjE4NDQ2NzQ0MDcyMDc4 MjQ5OTUyLCJmdW5jIjoic2NoZWR1bGVfdGltZW91dF9pZGxlIiwibW9kdWxlIjoiIn0seyJh ZGRyIjoxODQ0Njc0NDA3MjY0NTUzNTk1MiwiZnVuYyI6Inhmc190cmFuc19nZXRfZWZkIiwi bW9kdWxlIjoiW3hmc10ifSx7ImFkZHIiOjE4NDQ2NzQ0MDcyNjQ1NTg5NTIwLCJmdW5jIjoi eGZzX3RyYW5zX2dldF9idWZfbWFwIiwibW9kdWxlIjoiW3hmc10ifSx7ImFkZHIiOjE4NDQ2 NzQ0MDcyNjQ1NjA0MTI4LCJmdW5jIjoieGZzX3RyYW5zX2dldF9kcXRyeCIsIm1vZHVsZSI6 Ilt4ZnNdIn1dLCJwaWRzIjpbeyJwaWQiOjU1OTg2MiwiY29tbSI6Imtwcm9iZV9tdWx0aSJ9 XX1dDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBZYWZhbmcgU2hhbyA8bGFvYXIuc2hhb0BnbWFp bC5jb20+DQo+IC0tLQ0KPiAgIHRvb2xzL2JwZi9icGZ0b29sL2xpbmsuYyB8IDEwOSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiAgIDEgZmls ZSBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiANCj4gZGlm ZiAtLWdpdCBhL3Rvb2xzL2JwZi9icGZ0b29sL2xpbmsuYyBiL3Rvb2xzL2JwZi9icGZ0b29s L2xpbmsuYw0KPiBpbmRleCAyZDc4NjA3Li4wMDE1NTgyIDEwMDY0NA0KPiAtLS0gYS90b29s cy9icGYvYnBmdG9vbC9saW5rLmMNCj4gKysrIGIvdG9vbHMvYnBmL2JwZnRvb2wvbGluay5j DQo+IEBAIC0xNCw4ICsxNCwxMCBAQA0KPiAgIA0KPiAgICNpbmNsdWRlICJqc29uX3dyaXRl ci5oIg0KPiAgICNpbmNsdWRlICJtYWluLmgiDQo+ICsjaW5jbHVkZSAieGxhdGVkX2R1bXBl ci5oIg0KPiAgIA0KPiAgIHN0YXRpYyBzdHJ1Y3QgaGFzaG1hcCAqbGlua190YWJsZTsNCj4g K3N0YXRpYyBzdHJ1Y3QgZHVtcF9kYXRhIGRkID0ge307DQo+ICAgDQo+ICAgc3RhdGljIGlu dCBsaW5rX3BhcnNlX2ZkKGludCAqYXJnYywgY2hhciAqKiphcmd2KQ0KPiAgIHsNCj4gQEAg LTE2Niw2ICsxNjgsNDUgQEAgc3RhdGljIGludCBnZXRfcHJvZ19pbmZvKGludCBwcm9nX2lk LCBzdHJ1Y3QgYnBmX3Byb2dfaW5mbyAqaW5mbykNCj4gICAJcmV0dXJuIGVycjsNCj4gICB9 DQo+ICAgDQo+ICtzdGF0aWMgaW50IGNtcF91NjQoY29uc3Qgdm9pZCAqQSwgY29uc3Qgdm9p ZCAqQikNCj4gK3sNCj4gKwljb25zdCBfX3U2NCAqYSA9IEEsICpiID0gQjsNCj4gKw0KPiAr CXJldHVybiAqYSAtICpiOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiArc2hvd19r cHJvYmVfbXVsdGlfanNvbihzdHJ1Y3QgYnBmX2xpbmtfaW5mbyAqaW5mbywganNvbl93cml0 ZXJfdCAqd3RyKQ0KPiArew0KPiArCV9fdTMyIGksIGogPSAwOw0KPiArCV9fdTY0ICphZGRy czsNCj4gKw0KPiArCWpzb253X3VpbnRfZmllbGQoanNvbl93dHIsICJyZXRwcm9iZSIsDQo+ ICsJCQkgaW5mby0+a3Byb2JlX211bHRpLmZsYWdzICYgQlBGX0ZfS1BST0JFX01VTFRJX1JF VFVSTik7DQo+ICsJanNvbndfdWludF9maWVsZChqc29uX3d0ciwgImZ1bmNfY250IiwgaW5m by0+a3Byb2JlX211bHRpLmNvdW50KTsNCj4gKwlqc29ud19uYW1lKGpzb25fd3RyLCAiZnVu Y3MiKTsNCj4gKwlqc29ud19zdGFydF9hcnJheShqc29uX3d0cik7DQo+ICsJYWRkcnMgPSAo X191NjQgKil1NjRfdG9fcHRyKGluZm8tPmtwcm9iZV9tdWx0aS5hZGRycyk7DQo+ICsJcXNv cnQoKHZvaWQgKilhZGRycywgaW5mby0+a3Byb2JlX211bHRpLmNvdW50LCBzaXplb2YoX191 NjQpLCBjbXBfdTY0KTsNCj4gKw0KPiArCS8qIExvYWQgaXQgb25jZSBmb3IgYWxsLiAqLw0K PiArCWlmICghZGQuc3ltX2NvdW50KQ0KPiArCQlrZXJuZWxfc3ltc19sb2FkKCZkZCk7DQo+ ICsJZm9yIChpID0gMDsgaSA8IGRkLnN5bV9jb3VudDsgaSsrKSB7DQo+ICsJCWlmIChkZC5z eW1fbWFwcGluZ1tpXS5hZGRyZXNzICE9IGFkZHJzW2pdKQ0KPiArCQkJY29udGludWU7DQo+ ICsJCWpzb253X3N0YXJ0X29iamVjdChqc29uX3d0cik7DQo+ICsJCWpzb253X3VpbnRfZmll bGQoanNvbl93dHIsICJhZGRyIiwgZGQuc3ltX21hcHBpbmdbaV0uYWRkcmVzcyk7DQo+ICsJ CWpzb253X3N0cmluZ19maWVsZChqc29uX3d0ciwgImZ1bmMiLCBkZC5zeW1fbWFwcGluZ1tp XS5uYW1lKTsNCj4gKwkJLyogUHJpbnQgbm9uZSBpZiBpdCBpcyB2bWxpbnV4ICovDQo+ICsJ CWpzb253X3N0cmluZ19maWVsZChqc29uX3d0ciwgIm1vZHVsZSIsIGRkLnN5bV9tYXBwaW5n W2ldLm1vZHVsZSk7DQo+ICsJCWpzb253X2VuZF9vYmplY3QoanNvbl93dHIpOw0KPiArCQlp ZiAoaisrID09IGluZm8tPmtwcm9iZV9tdWx0aS5jb3VudCkNCj4gKwkJCWJyZWFrOw0KPiAr CX0NCj4gKwlqc29ud19lbmRfYXJyYXkoanNvbl93dHIpOw0KPiArfQ0KPiArDQo+ICAgc3Rh dGljIGludCBzaG93X2xpbmtfY2xvc2VfanNvbihpbnQgZmQsIHN0cnVjdCBicGZfbGlua19p bmZvICppbmZvKQ0KPiAgIHsNCj4gICAJc3RydWN0IGJwZl9wcm9nX2luZm8gcHJvZ19pbmZv Ow0KPiBAQCAtMjE4LDYgKzI1OSw5IEBAIHN0YXRpYyBpbnQgc2hvd19saW5rX2Nsb3NlX2pz b24oaW50IGZkLCBzdHJ1Y3QgYnBmX2xpbmtfaW5mbyAqaW5mbykNCj4gICAJCWpzb253X3Vp bnRfZmllbGQoanNvbl93dHIsICJtYXBfaWQiLA0KPiAgIAkJCQkgaW5mby0+c3RydWN0X29w cy5tYXBfaWQpOw0KPiAgIAkJYnJlYWs7DQo+ICsJY2FzZSBCUEZfTElOS19UWVBFX0tQUk9C RV9NVUxUSToNCj4gKwkJc2hvd19rcHJvYmVfbXVsdGlfanNvbihpbmZvLCBqc29uX3d0cik7 DQo+ICsJCWJyZWFrOw0KPiAgIAlkZWZhdWx0Og0KPiAgIAkJYnJlYWs7DQo+ICAgCX0NCj4g QEAgLTM1MSw2ICszOTUsNDQgQEAgdm9pZCBuZXRmaWx0ZXJfZHVtcF9wbGFpbihjb25zdCBz dHJ1Y3QgYnBmX2xpbmtfaW5mbyAqaW5mbykNCj4gICAJCXByaW50ZigiIGZsYWdzIDB4JXgi LCBpbmZvLT5uZXRmaWx0ZXIuZmxhZ3MpOw0KPiAgIH0NCj4gICANCj4gK3N0YXRpYyB2b2lk IHNob3dfa3Byb2JlX211bHRpX3BsYWluKHN0cnVjdCBicGZfbGlua19pbmZvICppbmZvKQ0K PiArew0KPiArCV9fdTMyIGksIGogPSAwOw0KPiArCV9fdTY0ICphZGRyczsNCj4gKw0KPiAr CWlmICghaW5mby0+a3Byb2JlX211bHRpLmNvdW50KQ0KPiArCQlyZXR1cm47DQo+ICsNCj4g KwlwcmludGYoIlxuXHRyZXRwcm9iZSAlZCAgZnVuY19jbnQgJXUgICIsDQo+ICsJICAgICAg IGluZm8tPmtwcm9iZV9tdWx0aS5mbGFncyAmIEJQRl9GX0tQUk9CRV9NVUxUSV9SRVRVUk4s DQo+ICsJICAgICAgIGluZm8tPmtwcm9iZV9tdWx0aS5jb3VudCk7DQo+ICsJYWRkcnMgPSAo X191NjQgKil1NjRfdG9fcHRyKGluZm8tPmtwcm9iZV9tdWx0aS5hZGRycyk7DQo+ICsJcXNv cnQoKHZvaWQgKilhZGRycywgaW5mby0+a3Byb2JlX211bHRpLmNvdW50LCBzaXplb2YoX191 NjQpLCBjbXBfdTY0KTsNCj4gKw0KPiArCS8qIExvYWQgaXQgb25jZSBmb3IgYWxsLiAqLw0K PiArCWlmICghZGQuc3ltX2NvdW50KQ0KPiArCQlrZXJuZWxfc3ltc19sb2FkKCZkZCk7DQo+ ICsJZm9yIChpID0gMDsgaSA8IGRkLnN5bV9jb3VudDsgaSsrKSB7DQo+ICsJCWlmIChkZC5z eW1fbWFwcGluZ1tpXS5hZGRyZXNzICE9IGFkZHJzW2pdKQ0KPiArCQkJY29udGludWU7DQo+ ICsJCWlmICghaikNCj4gKwkJCXByaW50ZigiXG5cdGFkZHJzICUwMTZseCAgZnVuY3MgJXMi LA0KPiArCQkJICAgICAgIGRkLnN5bV9tYXBwaW5nW2ldLmFkZHJlc3MsDQo+ICsJCQkgICAg ICAgZGQuc3ltX21hcHBpbmdbaV0ubmFtZSk7DQo+ICsJCWVsc2UNCj4gKwkJCXByaW50Zigi XG5cdCAgICAgICUwMTZseCAgICAgICAgJXMiLA0KPiArCQkJICAgICAgIGRkLnN5bV9tYXBw aW5nW2ldLmFkZHJlc3MsDQo+ICsJCQkgICAgICAgZGQuc3ltX21hcHBpbmdbaV0ubmFtZSk7 DQo+ICsJCWlmIChkZC5zeW1fbWFwcGluZ1tpXS5tb2R1bGVbMF0gIT0gJ1wwJykNCj4gKwkJ CXByaW50ZigiICVzICAiLCBkZC5zeW1fbWFwcGluZ1tpXS5tb2R1bGUpOw0KPiArCQllbHNl DQo+ICsJCQlwcmludGYoIiAgIik7DQoNCkNvdWxkIHlvdSBleHBsYWluIHdoYXQgdGhlc2Ug ZXh0cmEgc3BhY2VzIGFmdGVyIG1vZHVsZSBuYW1lcyBhcmUgZm9yPw0KDQo+ICsNCj4gKwkJ aWYgKGorKyA9PSBpbmZvLT5rcHJvYmVfbXVsdGkuY291bnQpDQo+ICsJCQlicmVhazsNCj4g Kwl9DQo+ICt9DQo+ICsNCj4gICBzdGF0aWMgaW50IHNob3dfbGlua19jbG9zZV9wbGFpbihp bnQgZmQsIHN0cnVjdCBicGZfbGlua19pbmZvICppbmZvKQ0KPiAgIHsNCj4gICAJc3RydWN0 IGJwZl9wcm9nX2luZm8gcHJvZ19pbmZvOw0KPiBAQCAtMzk2LDYgKzQ3OCw5IEBAIHN0YXRp YyBpbnQgc2hvd19saW5rX2Nsb3NlX3BsYWluKGludCBmZCwgc3RydWN0IGJwZl9saW5rX2lu Zm8gKmluZm8pDQo+ICAgCWNhc2UgQlBGX0xJTktfVFlQRV9ORVRGSUxURVI6DQo+ICAgCQlu ZXRmaWx0ZXJfZHVtcF9wbGFpbihpbmZvKTsNCj4gICAJCWJyZWFrOw0KPiArCWNhc2UgQlBG X0xJTktfVFlQRV9LUFJPQkVfTVVMVEk6DQo+ICsJCXNob3dfa3Byb2JlX211bHRpX3BsYWlu KGluZm8pOw0KPiArCQlicmVhazsNCj4gICAJZGVmYXVsdDoNCj4gICAJCWJyZWFrOw0KPiAg IAl9DQo+IEBAIC00MTcsNyArNTAyLDkgQEAgc3RhdGljIGludCBkb19zaG93X2xpbmsoaW50 IGZkKQ0KPiAgIHsNCj4gICAJc3RydWN0IGJwZl9saW5rX2luZm8gaW5mbzsNCj4gICAJX191 MzIgbGVuID0gc2l6ZW9mKGluZm8pOw0KPiArCV9fdTY0ICphZGRycyA9IE5VTEw7DQo+ICAg CWNoYXIgYnVmWzI1Nl07DQo+ICsJaW50IGNvdW50Ow0KPiAgIAlpbnQgZXJyOw0KPiAgIA0K PiAgIAltZW1zZXQoJmluZm8sIDAsIHNpemVvZihpbmZvKSk7DQo+IEBAIC00NDEsMTIgKzUy OCwyOCBAQCBzdGF0aWMgaW50IGRvX3Nob3dfbGluayhpbnQgZmQpDQo+ICAgCQlpbmZvLml0 ZXIudGFyZ2V0X25hbWVfbGVuID0gc2l6ZW9mKGJ1Zik7DQo+ICAgCQlnb3RvIGFnYWluOw0K PiAgIAl9DQo+ICsJaWYgKGluZm8udHlwZSA9PSBCUEZfTElOS19UWVBFX0tQUk9CRV9NVUxU SSAmJg0KPiArCSAgICAhaW5mby5rcHJvYmVfbXVsdGkuYWRkcnMpIHsNCj4gKwkJY291bnQg PSBpbmZvLmtwcm9iZV9tdWx0aS5jb3VudDsNCj4gKwkJaWYgKGNvdW50KSB7DQo+ICsJCQlh ZGRycyA9IGNhbGxvYyhjb3VudCwgc2l6ZW9mKF9fdTY0KSk7DQo+ICsJCQlpZiAoIWFkZHJz KSB7DQo+ICsJCQkJcF9lcnIoIm1lbSBhbGxvYyBmYWlsZWQiKTsNCj4gKwkJCQljbG9zZShm ZCk7DQo+ICsJCQkJcmV0dXJuIC0xOw0KPiArCQkJfQ0KPiArCQkJaW5mby5rcHJvYmVfbXVs dGkuYWRkcnMgPSAodW5zaWduZWQgbG9uZylhZGRyczsNCj4gKwkJCWdvdG8gYWdhaW47DQo+ ICsJCX0NCj4gKwl9DQo+ICAgDQo+ICAgCWlmIChqc29uX291dHB1dCkNCj4gICAJCXNob3df bGlua19jbG9zZV9qc29uKGZkLCAmaW5mbyk7DQo+ICAgCWVsc2UNCj4gICAJCXNob3dfbGlu a19jbG9zZV9wbGFpbihmZCwgJmluZm8pOw0KPiAgIA0KPiArCWlmIChhZGRycykNCj4gKwkJ ZnJlZShhZGRycyk7DQo+ICAgCWNsb3NlKGZkKTsNCj4gICAJcmV0dXJuIDA7DQo+ICAgfQ0K PiBAQCAtNDcxLDcgKzU3NCw4IEBAIHN0YXRpYyBpbnQgZG9fc2hvdyhpbnQgYXJnYywgY2hh ciAqKmFyZ3YpDQo+ICAgCQlmZCA9IGxpbmtfcGFyc2VfZmQoJmFyZ2MsICZhcmd2KTsNCj4g ICAJCWlmIChmZCA8IDApDQo+ICAgCQkJcmV0dXJuIGZkOw0KPiAtCQlyZXR1cm4gZG9fc2hv d19saW5rKGZkKTsNCj4gKwkJZG9fc2hvd19saW5rKGZkKTsNCj4gKwkJZ290byBvdXQ7DQo+ ICAgCX0NCj4gICANCj4gICAJaWYgKGFyZ2MpDQo+IEBAIC01MTAsNiArNjE0LDkgQEAgc3Rh dGljIGludCBkb19zaG93KGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gICAJaWYgKHNob3df cGlubmVkKQ0KPiAgIAkJZGVsZXRlX3Bpbm5lZF9vYmpfdGFibGUobGlua190YWJsZSk7DQo+ ICAgDQo+ICtvdXQ6DQo+ICsJaWYgKGRkLnN5bV9jb3VudCkNCj4gKwkJa2VybmVsX3N5bXNf ZGVzdHJveSgmZGQpOw0KPiAgIAlyZXR1cm4gZXJybm8gPT0gRU5PRU5UID8gMCA6IC0xOw0K PiAgIH0NCj4gICANCg==