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 D2A37EB64DA for ; Wed, 19 Jul 2023 05:44:35 +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:Message-ID:Date:References :In-Reply-To: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=im6O+4/vGBgneStmTtZfK4sF+OF2M6YeCzVGXnSUsRY=; b=jMRj3P8RXi3vnL OW+xmJw9+05QvTWdLra/b+NFLHN2MBePK/H1zZHgVL3RYypE4JfW8f940UCYhXNzCetGR7WuqX889 T693e4ZRUIup2PVzL5lYmWWXFlBjWGrbZQJ5Ihsm4nnzWbQ84W2cjV+s+FahzIMW2AX+s21SIw0N7 lhbdJYnhBgvB3mBUfK4K8k84UfUL+46SklWEgqJX5bWVQUtNNHKXDPnUAsmHPiFZtmo4J5Y7D4nZU NCDKC1NeGcKXobGmhCX/NqGIQGF2L2mikENSQtf8hxFG/ZZ2gQuW9VkO+x/MXw3bKw5W3aLhXI/ex L/t9JQOr0x3GlbuSYDBA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qLzzE-005P2E-21; Wed, 19 Jul 2023 05:44:32 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qLzzD-005P1t-2b for linux-riscv@bombadil.infradead.org; Wed, 19 Jul 2023 05:44:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :MIME-Version:Message-ID:Date:References:In-Reply-To:Subject:Cc:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=gcGcmSd7iAh+vNpYfVIfL8oUXRjjMXIsYWOBm6UNOMI=; b=Me6k5M6z7fnS7b5XfoXucY2hHu WTIWaGYrFDV09admVpzixpf2VRo2HOMGf/Surl7j1CYEl7fLNDPMK/tSAZb8a6bH8mk9BcJzP2uve JCVSDLepxzLRh7HeJgfO3UKBH+/zrP/jfNn+1GuxcsQzAcIgE9jD+oUVYj5d1jUREA8pUxpOkfKw9 BhrN9X9MAFg229AEm75sd7llVIdC9zbdSehfiF/OQf3NnOXifB50LgqA0VFXbWWOk0E5ggYMhsRCJ Br/x93g4mSKuSU7+O4u6cs5iUsfRh725OkgRDxnWvyWp34dokknit9GOur/TJohNiV2ziCRwsiLvp km8kfyJg==; Received: from dfw.source.kernel.org ([139.178.84.217]) by desiato.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qLqy5-00BzaC-2t for linux-riscv@lists.infradead.org; Tue, 18 Jul 2023 20:06:48 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id C52A960B45; Tue, 18 Jul 2023 20:06:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ABC02C433C8; Tue, 18 Jul 2023 20:06:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689710800; bh=qfpmhLMrS6QORXM3Xjd7lWMjzf7nk3c04e5lJQkrGhI=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=pn2R1kqWXQrwBfO+NqPq/oSI8rte6bD9B+KHJdk3LYkgd2pCuMZfhIScI5tloPlhi jpai6yXGQn9PEAEamXHdX+BUYyich/cOpnBhzc3uSgapk6V5wk2cAAOsKUSfcbq6nW YuPnEA8+F7qwH6r0yT408RojtEJFHs4iJ4gVJlI63zLJtMjjjKO2aYG7kEYJT5fFxD X+JTgv5pkSEer07J108tSYJJ7rwqbvHpGZCVrB6SwLK9ocv70osLbYxn9uXkfLgcDT E1EOjPOpmWZCoE6WSn0rGvTj1I7NgEGSZ2zF0s+FubxK/qK6WEe8XimCRJPQN6HiSa KDjxRzcKGOYCg== From: =?utf-8?B?QmrDtnJuIFTDtnBlbA==?= To: Pu Lehui , bpf@vger.kernel.org, linux-riscv@lists.infradead.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Palmer Dabbelt , Guo Ren , Song Shuai , Pu Lehui , Pu Lehui Subject: Re: [PATCH bpf] riscv, bpf: Adapt bpf trampoline to optimized riscv ftrace framework In-Reply-To: <20230715090137.2141358-1-pulehui@huaweicloud.com> References: <20230715090137.2141358-1-pulehui@huaweicloud.com> Date: Tue, 18 Jul 2023 22:06:37 +0200 Message-ID: <87lefdougi.fsf@all.your.base.are.belong.to.us> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230718_210646_312933_E0EA3488 X-CRM114-Status: GOOD ( 32.33 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org UHUgTGVodWkgPHB1bGVodWlAaHVhd2VpY2xvdWQuY29tPiB3cml0ZXM6Cgo+IEZyb206IFB1IExl aHVpIDxwdWxlaHVpQGh1YXdlaS5jb20+Cj4KPiBDb21taXQgNjcyNGE3NmNmZjg1ICgicmlzY3Y6 IGZ0cmFjZTogUmVkdWNlIHRoZSBkZXRvdXIgY29kZSBzaXplIHRvCj4gaGFsZiIpIG9wdGltaXpl cyB0aGUgZGV0b3VyIGNvZGUgc2l6ZSBvZiBrZXJuZWwgZnVuY3Rpb25zIHRvIGhhbGYgd2l0aAo+ IFQwIHJlZ2lzdGVyIGFuZCB0aGUgdXBjb21pbmcgRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1Rf Q0FMTFMgb2YgcmlzY3YKPiBpcyBiYXNlZCBvbiB0aGlzIG9wdGltaXphdGlvbiwgd2UgbmVlZCB0 byBhZGFwdCByaXNjdiBicGYgdHJhbXBvbGluZQo+IGJhc2VkIG9uIHRoaXMuIE9uZSB0aGluZyB0 byBkbyBpcyB0byByZWR1Y2UgZGV0b3VyIGNvZGUgc2l6ZSBvZiBicGYKPiBwcm9ncmFtcywgYW5k IHRoZSBzZWNvbmQgaXMgdG8gZGVhbCB3aXRoIHRoZSByZXR1cm4gYWRkcmVzcyBhZnRlciB0aGUK PiBleGVjdXRpb24gb2YgYnBmIHRyYW1wb2xpbmUuIE1lYW53aGlsZSwgYWRkIG1vcmUgY29tbWVu dHMgYW5kIHJlbmFtZQo+IHNvbWUgdmFyaWFibGVzIHRvIG1ha2UgbW9yZSBzZW5zZS4gVGhlIHJl bGF0ZWQgdGVzdHMgaGF2ZSBwYXNzZWQuCj4KPiBUaGlzIGFkYXB0YXRpb24gbmVlZHMgdG8gYmUg bWVyZ2VkIGJlZm9yZSB0aGUgdXBjb21pbmcKPiBEWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9D QUxMUyBvZiByaXNjdiwgb3RoZXJ3aXNlIGl0IHdpbGwgY3Jhc2ggZHVlCj4gdG8gYSBtaXNtYXRj aCBpbiB0aGUgcmV0dXJuIGFkZHJlc3MuIFNvIHdlIHRhcmdldCB0aGlzIG1vZGlmaWNhdGlvbiB0 bwo+IGJwZiB0cmVlIGFuZCBhZGQgZml4ZXMgdGFnIGZvciBsb2NhdGluZy4KClRoYW5rIHlvdSBm b3Igd29ya2luZyBvbiB0aGlzIQoKPiBGaXhlczogNjcyNGE3NmNmZjg1ICgicmlzY3Y6IGZ0cmFj ZTogUmVkdWNlIHRoZSBkZXRvdXIgY29kZSBzaXplIHRvIGhhbGYiKQoKVGhpcyBpcyBub3QgYSBm aXguIE5vdGhpbmcgaXMgYnJva2VuLiBPbmx5IHRoYXQgdGhpcyBwYXRjaCBtdWNoIGNvbWUKYmVm b3JlIG9yIGFzIHBhcnQgb2YgdGhlIGZ0cmFjZSBzZXJpZXMuCgo+IFNpZ25lZC1vZmYtYnk6IFB1 IExlaHVpIDxwdWxlaHVpQGh1YXdlaS5jb20+Cj4gLS0tCj4gIGFyY2gvcmlzY3YvbmV0L2JwZl9q aXRfY29tcDY0LmMgfCAxMTAgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KPiAgMSBm aWxlIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMgYi9hcmNoL3Jpc2N2L25ldC9i cGZfaml0X2NvbXA2NC5jCj4gaW5kZXggYzY0ODg2NGM4Y2QxLi5mZmM5YWE0MmY5MTggMTAwNjQ0 Cj4gLS0tIGEvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYwo+ICsrKyBiL2FyY2gvcmlz Y3YvbmV0L2JwZl9qaXRfY29tcDY0LmMKPiBAQCAtMjQxLDcgKzI0MSw3IEBAIHN0YXRpYyB2b2lk IF9fYnVpbGRfZXBpbG9ndWUoYm9vbCBpc190YWlsX2NhbGwsIHN0cnVjdCBydl9qaXRfY29udGV4 dCAqY3R4KQo+ICAJaWYgKCFpc190YWlsX2NhbGwpCj4gIAkJZW1pdF9tdihSVl9SRUdfQTAsIFJW X1JFR19BNSwgY3R4KTsKPiAgCWVtaXRfamFscihSVl9SRUdfWkVSTywgaXNfdGFpbF9jYWxsID8g UlZfUkVHX1QzIDogUlZfUkVHX1JBLAo+IC0JCSAgaXNfdGFpbF9jYWxsID8gMjAgOiAwLCAvKiBz a2lwIHJlc2VydmVkIG5vcHMgYW5kIFRDQyBpbml0ICovCj4gKwkJICBpc190YWlsX2NhbGwgPyAx MiA6IDAsIC8qIHNraXAgcmVzZXJ2ZWQgbm9wcyBhbmQgVENDIGluaXQgKi8KCk1heWJlIGJlIGV4 cGxpY2l0LCBhbmQgdXNlIHRoZSAiREVUT1VSX0lOU05TIiBmcm9tIGJlbG93IChhbmQgY29udmVy dCB0bwpieXRlcyk/Cgo+ICAJCSAgY3R4KTsKPiAgfQo+ICAKPiBAQCAtNjE4LDMyICs2MTgsNyBA QCBzdGF0aWMgaW50IGFkZF9leGNlcHRpb25faGFuZGxlcihjb25zdCBzdHJ1Y3QgYnBmX2luc24g Kmluc24sCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBnZW5fY2FsbF9vcl9u b3BzKHZvaWQgKnRhcmdldCwgdm9pZCAqaXAsIHUzMiAqaW5zbnMpCj4gLXsKPiAtCXM2NCBydm9m ZjsKPiAtCWludCBpLCByZXQ7Cj4gLQlzdHJ1Y3QgcnZfaml0X2NvbnRleHQgY3R4Owo+IC0KPiAt CWN0eC5uaW5zbnMgPSAwOwo+IC0JY3R4Lmluc25zID0gKHUxNiAqKWluc25zOwo+IC0KPiAtCWlm ICghdGFyZ2V0KSB7Cj4gLQkJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykKPiAtCQkJZW1pdChydl9u b3AoKSwgJmN0eCk7Cj4gLQkJcmV0dXJuIDA7Cj4gLQl9Cj4gLQo+IC0JcnZvZmYgPSAoczY0KSh0 YXJnZXQgLSAoaXAgKyA0KSk7Cj4gLQllbWl0KHJ2X3NkKFJWX1JFR19TUCwgLTgsIFJWX1JFR19S QSksICZjdHgpOwo+IC0JcmV0ID0gZW1pdF9qdW1wX2FuZF9saW5rKFJWX1JFR19SQSwgcnZvZmYs IGZhbHNlLCAmY3R4KTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0dXJuIHJldDsKPiAtCWVtaXQocnZf bGQoUlZfUkVHX1JBLCAtOCwgUlZfUkVHX1NQKSwgJmN0eCk7Cj4gLQo+IC0JcmV0dXJuIDA7Cj4g LX0KPiAtCj4gLXN0YXRpYyBpbnQgZ2VuX2p1bXBfb3Jfbm9wcyh2b2lkICp0YXJnZXQsIHZvaWQg KmlwLCB1MzIgKmluc25zKQo+ICtzdGF0aWMgaW50IGdlbl9qdW1wX29yX25vcHModm9pZCAqdGFy Z2V0LCB2b2lkICppcCwgdTMyICppbnNucywgYm9vbCBpc19jYWxsKQo+ICB7Cj4gIAlzNjQgcnZv ZmY7Cj4gIAlzdHJ1Y3QgcnZfaml0X2NvbnRleHQgY3R4Owo+IEBAIC02NTgsMzggKzYzMywzOCBA QCBzdGF0aWMgaW50IGdlbl9qdW1wX29yX25vcHModm9pZCAqdGFyZ2V0LCB2b2lkICppcCwgdTMy ICppbnNucykKPiAgCX0KPiAgCj4gIAlydm9mZiA9IChzNjQpKHRhcmdldCAtIGlwKTsKPiAtCXJl dHVybiBlbWl0X2p1bXBfYW5kX2xpbmsoUlZfUkVHX1pFUk8sIHJ2b2ZmLCBmYWxzZSwgJmN0eCk7 Cj4gKwlyZXR1cm4gZW1pdF9qdW1wX2FuZF9saW5rKGlzX2NhbGwgPyBSVl9SRUdfVDAgOiBSVl9S RUdfWkVSTywKPiArCQkJCSAgcnZvZmYsIGZhbHNlLCAmY3R4KTsKCk5pdDogUGxlYXNlIHVzZSB0 aGUgZnVsbCAxMDAgY2hhciB3aWR0aC4KCj4gIH0KPiAgCj4gKyNkZWZpbmUgREVUT1VSX05JTlNO UwkyCgpCZXR0ZXIgbmFtZT8gTWF5YmUgY2FsbCB0aGlzIHBhdGNoYWJsZSBmdW5jdGlvbiBlbnRy eSBzb21ldGhpbmc/IEFsc28sCnRvIGNhdGNoIGZ1dHVyZSBicmVha3MgbGlrZSB0aGlzIC0tIHdv dWxkIGl0IG1ha2Ugc2Vuc2UgdG8gaGF2ZSBhCnN0YXRpY19hc3NlcnQoKSBjb21iaW5lZCB3aXRo IHNvbWV0aGluZyB0aWVkIHRvCi1mcGF0Y2hhYmxlLWZ1bmN0aW9uLWVudHJ5PSBmcm9tIGFyY2gv cmlzY3YvTWFrZWZpbGU/Cgo+ICsKPiAgaW50IGJwZl9hcmNoX3RleHRfcG9rZSh2b2lkICppcCwg ZW51bSBicGZfdGV4dF9wb2tlX3R5cGUgcG9rZV90eXBlLAo+ICAJCSAgICAgICB2b2lkICpvbGRf YWRkciwgdm9pZCAqbmV3X2FkZHIpCj4gIHsKPiAtCXUzMiBvbGRfaW5zbnNbNF0sIG5ld19pbnNu c1s0XTsKPiArCXUzMiBvbGRfaW5zbnNbREVUT1VSX05JTlNOU10sIG5ld19pbnNuc1tERVRPVVJf TklOU05TXTsKPiAgCWJvb2wgaXNfY2FsbCA9IHBva2VfdHlwZSA9PSBCUEZfTU9EX0NBTEw7Cj4g LQlpbnQgKCpnZW5faW5zbnMpKHZvaWQgKnRhcmdldCwgdm9pZCAqaXAsIHUzMiAqaW5zbnMpOwo+ IC0JaW50IG5pbnNucyA9IGlzX2NhbGwgPyA0IDogMjsKPiAgCWludCByZXQ7Cj4gIAo+IC0JaWYg KCFpc19icGZfdGV4dF9hZGRyZXNzKCh1bnNpZ25lZCBsb25nKWlwKSkKPiArCWlmICghaXNfa2Vy bmVsX3RleHQoKHVuc2lnbmVkIGxvbmcpaXApICYmCj4gKwkgICAgIWlzX2JwZl90ZXh0X2FkZHJl c3MoKHVuc2lnbmVkIGxvbmcpaXApKQo+ICAJCXJldHVybiAtRU5PVFNVUFA7Cj4gIAo+IC0JZ2Vu X2luc25zID0gaXNfY2FsbCA/IGdlbl9jYWxsX29yX25vcHMgOiBnZW5fanVtcF9vcl9ub3BzOwo+ IC0KPiAtCXJldCA9IGdlbl9pbnNucyhvbGRfYWRkciwgaXAsIG9sZF9pbnNucyk7Cj4gKwlyZXQg PSBnZW5fanVtcF9vcl9ub3BzKG9sZF9hZGRyLCBpcCwgb2xkX2luc25zLCBpc19jYWxsKTsKPiAg CWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gLQlpZiAobWVtY21wKGlwLCBvbGRfaW5z bnMsIG5pbnNucyAqIDQpKQo+ICsJaWYgKG1lbWNtcChpcCwgb2xkX2luc25zLCBERVRPVVJfTklO U05TICogNCkpCj4gIAkJcmV0dXJuIC1FRkFVTFQ7Cj4gIAo+IC0JcmV0ID0gZ2VuX2luc25zKG5l d19hZGRyLCBpcCwgbmV3X2luc25zKTsKPiArCXJldCA9IGdlbl9qdW1wX29yX25vcHMobmV3X2Fk ZHIsIGlwLCBuZXdfaW5zbnMsIGlzX2NhbGwpOwo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0 Owo+ICAKPiAgCWNwdXNfcmVhZF9sb2NrKCk7Cj4gIAltdXRleF9sb2NrKCZ0ZXh0X211dGV4KTsK PiAtCWlmIChtZW1jbXAoaXAsIG5ld19pbnNucywgbmluc25zICogNCkpCj4gLQkJcmV0ID0gcGF0 Y2hfdGV4dChpcCwgbmV3X2luc25zLCBuaW5zbnMpOwo+ICsJaWYgKG1lbWNtcChpcCwgbmV3X2lu c25zLCBERVRPVVJfTklOU05TICogNCkpCj4gKwkJcmV0ID0gcGF0Y2hfdGV4dChpcCwgbmV3X2lu c25zLCBERVRPVVJfTklOU05TKTsKPiAgCW11dGV4X3VubG9jaygmdGV4dF9tdXRleCk7Cj4gIAlj cHVzX3JlYWRfdW5sb2NrKCk7Cj4gIAo+IEBAIC03MTcsNyArNjkyLDcgQEAgc3RhdGljIHZvaWQg cmVzdG9yZV9hcmdzKGludCBucmVncywgaW50IGFyZ3Nfb2ZmLCBzdHJ1Y3QgcnZfaml0X2NvbnRl eHQgKmN0eCkKPiAgfQo+ICAKPiAgc3RhdGljIGludCBpbnZva2VfYnBmX3Byb2coc3RydWN0IGJw Zl90cmFtcF9saW5rICpsLCBpbnQgYXJnc19vZmYsIGludCByZXR2YWxfb2ZmLAo+IC0JCQkgICBp bnQgcnVuX2N0eF9vZmYsIGJvb2wgc2F2ZV9yZXQsIHN0cnVjdCBydl9qaXRfY29udGV4dCAqY3R4 KQo+ICsJCQkgICBpbnQgcnVuX2N0eF9vZmYsIGJvb2wgc2F2ZV9yZXR2YWwsIHN0cnVjdCBydl9q aXRfY29udGV4dCAqY3R4KQoKV2h5IHRoZSBzYXZlX3JldHZhbCBuYW1lIGNoYW5nZT8gVGhpcyBj aHVybiBpcyBub3QgbmVlZGVkIElNTwooZXNwZWNpYWxseSBzaW5jZSB5b3Uga2VlcCB1c2luZyB0 aGUgX3JldCBuYW1lIGJlbG93KS4gUGxlYXNlIGtlZXAgdGhlCm9sZCBuYW1lLgoKPiAgewo+ICAJ aW50IHJldCwgYnJhbmNoX29mZjsKPiAgCXN0cnVjdCBicGZfcHJvZyAqcCA9IGwtPmxpbmsucHJv ZzsKPiBAQCAtNzU3LDcgKzczMiw3IEBAIHN0YXRpYyBpbnQgaW52b2tlX2JwZl9wcm9nKHN0cnVj dCBicGZfdHJhbXBfbGluayAqbCwgaW50IGFyZ3Nfb2ZmLCBpbnQgcmV0dmFsX29mCj4gIAlpZiAo cmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IC0JaWYgKHNhdmVfcmV0KQo+ICsJaWYgKHNhdmVf cmV0dmFsKQo+ICAJCWVtaXRfc2QoUlZfUkVHX0ZQLCAtcmV0dmFsX29mZiwgcmVnbWFwW0JQRl9S RUdfMF0sIGN0eCk7Cj4gIAo+ICAJLyogdXBkYXRlIGJyYW5jaCB3aXRoIGJlcXogKi8KPiBAQCAt Nzg3LDIwICs3NjIsMTkgQEAgc3RhdGljIGludCBfX2FyY2hfcHJlcGFyZV9icGZfdHJhbXBvbGlu ZShzdHJ1Y3QgYnBmX3RyYW1wX2ltYWdlICppbSwKPiAgCWludCBpLCByZXQsIG9mZnNldDsKPiAg CWludCAqYnJhbmNoZXNfb2ZmID0gTlVMTDsKPiAgCWludCBzdGFja19zaXplID0gMCwgbnJlZ3Mg PSBtLT5ucl9hcmdzOwo+IC0JaW50IHJldGFkZHJfb2ZmLCBmcF9vZmYsIHJldHZhbF9vZmYsIGFy Z3Nfb2ZmOwo+IC0JaW50IG5yZWdzX29mZiwgaXBfb2ZmLCBydW5fY3R4X29mZiwgc3JlZ19vZmY7 Cj4gKwlpbnQgZnBfb2ZmLCByZXR2YWxfb2ZmLCBhcmdzX29mZiwgbnJlZ3Nfb2ZmLCBpcF9vZmYs IHJ1bl9jdHhfb2ZmLCBzcmVnX29mZjsKPiAgCXN0cnVjdCBicGZfdHJhbXBfbGlua3MgKmZlbnRy eSA9ICZ0bGlua3NbQlBGX1RSQU1QX0ZFTlRSWV07Cj4gIAlzdHJ1Y3QgYnBmX3RyYW1wX2xpbmtz ICpmZXhpdCA9ICZ0bGlua3NbQlBGX1RSQU1QX0ZFWElUXTsKPiAgCXN0cnVjdCBicGZfdHJhbXBf bGlua3MgKmZtb2RfcmV0ID0gJnRsaW5rc1tCUEZfVFJBTVBfTU9ESUZZX1JFVFVSTl07Cj4gIAl2 b2lkICpvcmlnX2NhbGwgPSBmdW5jX2FkZHI7Cj4gLQlib29sIHNhdmVfcmV0Owo+ICsJYm9vbCBz YXZlX3JldHZhbCwgdHJhY2VkX3JldDsKPiAgCXUzMiBpbnNuOwo+ICAKPiAgCS8qIEdlbmVyYXRl ZCB0cmFtcG9saW5lIHN0YWNrIGxheW91dDoKPiAgCSAqCj4gIAkgKiBGUCAtIDgJICAgIFsgUkEg b2YgcGFyZW50IGZ1bmMJXSByZXR1cm4gYWRkcmVzcyBvZiBwYXJlbnQKPiAgCSAqCQkJCQkgIGZ1 bmN0aW9uCj4gLQkgKiBGUCAtIHJldGFkZHJfb2ZmIFsgUkEgb2YgdHJhY2VkIGZ1bmMJXSByZXR1 cm4gYWRkcmVzcyBvZiB0cmFjZWQKPiArCSAqIEZQIC0gMTYJICAgIFsgUkEgb2YgdHJhY2VkIGZ1 bmMJXSByZXR1cm4gYWRkcmVzcyBvZgo+ICAJdHJhY2VkCgpCUEYgY29kZSB1c2VzIGZyYW1lIHBv aW50ZXJzLiBTaG91bGRuJ3QgdGhlIHRyYW1wb2xpbmUgZnJhbWUgbG9vayBsaWtlIGEKcmVndWxh ciBmcmFtZSBbMV0sIGkuZS4gc3RhcnQgd2l0aCByZXR1cm4gYWRkcmVzcyBmb2xsb3dlZCBieSBw cmV2aW91cwpmcmFtZSBwb2ludGVyPwoKPiAgCSAqCQkJCQkgIGZ1bmN0aW9uCj4gIAkgKiBGUCAt IGZwX29mZgkgICAgWyBGUCBvZiBwYXJlbnQgZnVuYyBdCj4gIAkgKgo+IEBAIC04MzMsMTcgKzgw NywyMCBAQCBzdGF0aWMgaW50IF9fYXJjaF9wcmVwYXJlX2JwZl90cmFtcG9saW5lKHN0cnVjdCBi cGZfdHJhbXBfaW1hZ2UgKmltLAo+ICAJaWYgKG5yZWdzID4gOCkKPiAgCQlyZXR1cm4gLUVOT1RT VVBQOwo+ICAKPiAtCS8qIHJvb20gZm9yIHBhcmVudCBmdW5jdGlvbiByZXR1cm4gYWRkcmVzcyAq Lwo+ICsJLyogcm9vbSBmb3IgcmV0dXJuIGFkZHJlc3Mgb2YgcGFyZW50IGZ1bmN0aW9uICovCj4g IAlzdGFja19zaXplICs9IDg7Cj4gIAo+IC0Jc3RhY2tfc2l6ZSArPSA4Owo+IC0JcmV0YWRkcl9v ZmYgPSBzdGFja19zaXplOwo+ICsJLyogd2hldGhlciByZXR1cm4gdG8gcmV0dXJuIGFkZHJlc3Mg b2YgdHJhY2VkIGZ1bmN0aW9uIGFmdGVyIGJwZiB0cmFtcG9saW5lICovCj4gKwl0cmFjZWRfcmV0 ID0gZnVuY19hZGRyICYmICEoZmxhZ3MgJiBCUEZfVFJBTVBfRl9TS0lQX0ZSQU1FKTsKPiArCS8q IHJvb20gZm9yIHJldHVybiBhZGRyZXNzIG9mIHRyYWNlZCBmdW5jdGlvbiAqLwo+ICsJaWYgKHRy YWNlZF9yZXQpCj4gKwkJc3RhY2tfc2l6ZSArPSA4Owo+ICAKPiAgCXN0YWNrX3NpemUgKz0gODsK PiAgCWZwX29mZiA9IHN0YWNrX3NpemU7Cj4gIAo+IC0Jc2F2ZV9yZXQgPSBmbGFncyAmIChCUEZf VFJBTVBfRl9DQUxMX09SSUcgfCBCUEZfVFJBTVBfRl9SRVRfRkVOVFJZX1JFVCk7Cj4gLQlpZiAo c2F2ZV9yZXQpIHsKPiArCXNhdmVfcmV0dmFsID0gZmxhZ3MgJiAoQlBGX1RSQU1QX0ZfQ0FMTF9P UklHIHwgQlBGX1RSQU1QX0ZfUkVUX0ZFTlRSWV9SRVQpOwo+ICsJaWYgKHNhdmVfcmV0dmFsKSB7 Cj4gIAkJc3RhY2tfc2l6ZSArPSA4Owo+ICAJCXJldHZhbF9vZmYgPSBzdGFja19zaXplOwo+ICAJ fQo+IEBAIC04NjksNyArODQ2LDExIEBAIHN0YXRpYyBpbnQgX19hcmNoX3ByZXBhcmVfYnBmX3Ry YW1wb2xpbmUoc3RydWN0IGJwZl90cmFtcF9pbWFnZSAqaW0sCj4gIAo+ICAJZW1pdF9hZGRpKFJW X1JFR19TUCwgUlZfUkVHX1NQLCAtc3RhY2tfc2l6ZSwgY3R4KTsKPiAgCj4gLQllbWl0X3NkKFJW X1JFR19TUCwgc3RhY2tfc2l6ZSAtIHJldGFkZHJfb2ZmLCBSVl9SRUdfUkEsIGN0eCk7Cj4gKwkv KiBzdG9yZSByZXR1cm4gYWRkcmVzcyBvZiBwYXJlbnQgZnVuY3Rpb24gKi8KPiArCWVtaXRfc2Qo UlZfUkVHX1NQLCBzdGFja19zaXplIC0gOCwgUlZfUkVHX1JBLCBjdHgpOwo+ICsJLyogc3RvcmUg cmV0dXJuIGFkZHJlc3Mgb2YgdHJhY2VkIGZ1bmN0aW9uICovCj4gKwlpZiAodHJhY2VkX3JldCkK PiArCQllbWl0X3NkKFJWX1JFR19TUCwgc3RhY2tfc2l6ZSAtIDE2LCBSVl9SRUdfVDAsIGN0eCk7 Cj4gIAllbWl0X3NkKFJWX1JFR19TUCwgc3RhY2tfc2l6ZSAtIGZwX29mZiwgUlZfUkVHX0ZQLCBj dHgpOwo+ICAKPiAgCWVtaXRfYWRkaShSVl9SRUdfRlAsIFJWX1JFR19TUCwgc3RhY2tfc2l6ZSwg Y3R4KTsKPiBAQCAtODkwLDcgKzg3MSw3IEBAIHN0YXRpYyBpbnQgX19hcmNoX3ByZXBhcmVfYnBm X3RyYW1wb2xpbmUoc3RydWN0IGJwZl90cmFtcF9pbWFnZSAqaW0sCj4gIAo+ICAJLyogc2tpcCB0 byBhY3R1YWwgYm9keSBvZiB0cmFjZWQgZnVuY3Rpb24gKi8KPiAgCWlmIChmbGFncyAmIEJQRl9U UkFNUF9GX1NLSVBfRlJBTUUpCj4gLQkJb3JpZ19jYWxsICs9IDE2Owo+ICsJCW9yaWdfY2FsbCAr PSA4OwoKVXNlIHRoZSBkZWZpbmUgYWJvdmUgc28gaXQncyBvYnZpb3VzIHdoYXQgeW91J3JlIHNr aXBwaW5nLgoKPiAgCj4gIAlpZiAoZmxhZ3MgJiBCUEZfVFJBTVBfRl9DQUxMX09SSUcpIHsKPiAg CQllbWl0X2ltbShSVl9SRUdfQTAsIChjb25zdCBzNjQpaW0sIGN0eCk7Cj4gQEAgLTk2MiwyMiAr OTQzLDI1IEBAIHN0YXRpYyBpbnQgX19hcmNoX3ByZXBhcmVfYnBmX3RyYW1wb2xpbmUoc3RydWN0 IGJwZl90cmFtcF9pbWFnZSAqaW0sCj4gIAlpZiAoZmxhZ3MgJiBCUEZfVFJBTVBfRl9SRVNUT1JF X1JFR1MpCj4gIAkJcmVzdG9yZV9hcmdzKG5yZWdzLCBhcmdzX29mZiwgY3R4KTsKPiAgCj4gLQlp ZiAoc2F2ZV9yZXQpCj4gKwlpZiAoc2F2ZV9yZXR2YWwpCj4gIAkJZW1pdF9sZChSVl9SRUdfQTAs IC1yZXR2YWxfb2ZmLCBSVl9SRUdfRlAsIGN0eCk7Cj4gIAo+ICAJZW1pdF9sZChSVl9SRUdfUzEs IC1zcmVnX29mZiwgUlZfUkVHX0ZQLCBjdHgpOwo+ICAKPiAtCWlmIChmbGFncyAmIEJQRl9UUkFN UF9GX1NLSVBfRlJBTUUpCj4gLQkJLyogcmV0dXJuIGFkZHJlc3Mgb2YgcGFyZW50IGZ1bmN0aW9u ICovCj4gKwlpZiAodHJhY2VkX3JldCkgewo+ICsJCS8qIHJlc3RvcmUgcmV0dXJuIGFkZHJlc3Mg b2YgcGFyZW50IGZ1bmN0aW9uICovCj4gIAkJZW1pdF9sZChSVl9SRUdfUkEsIHN0YWNrX3NpemUg LSA4LCBSVl9SRUdfU1AsIGN0eCk7Cj4gLQllbHNlCj4gLQkJLyogcmV0dXJuIGFkZHJlc3Mgb2Yg dHJhY2VkIGZ1bmN0aW9uICovCj4gLQkJZW1pdF9sZChSVl9SRUdfUkEsIHN0YWNrX3NpemUgLSBy ZXRhZGRyX29mZiwgUlZfUkVHX1NQLCBjdHgpOwo+ICsJCS8qIHJlc3RvcmUgcmV0dXJuIGFkZHJl c3Mgb2YgdHJhY2VkIGZ1bmN0aW9uICovCj4gKwkJZW1pdF9sZChSVl9SRUdfVDAsIHN0YWNrX3Np emUgLSAxNiwgUlZfUkVHX1NQLCBjdHgpOwo+ICsJfSBlbHNlIHsKPiArCQkvKiByZXN0b3JlIHJl dHVybiBhZGRyZXNzIG9mIHBhcmVudCBmdW5jdGlvbiAqLwo+ICsJCWVtaXRfbGQoUlZfUkVHX1Qw LCBzdGFja19zaXplIC0gOCwgUlZfUkVHX1NQLCBjdHgpOwo+ICsJfQo+ICAKPiAgCWVtaXRfbGQo UlZfUkVHX0ZQLCBzdGFja19zaXplIC0gZnBfb2ZmLCBSVl9SRUdfU1AsIGN0eCk7Cj4gIAllbWl0 X2FkZGkoUlZfUkVHX1NQLCBSVl9SRUdfU1AsIHN0YWNrX3NpemUsIGN0eCk7Cj4gIAo+IC0JZW1p dF9qYWxyKFJWX1JFR19aRVJPLCBSVl9SRUdfUkEsIDAsIGN0eCk7Cj4gKwllbWl0X2phbHIoUlZf UkVHX1pFUk8sIFJWX1JFR19UMCwgMCwgY3R4KTsKPiAgCj4gIAlyZXQgPSBjdHgtPm5pbnNuczsK PiAgb3V0Ogo+IEBAIC0xNjY0LDcgKzE2NDgsNyBAQCBpbnQgYnBmX2ppdF9lbWl0X2luc24oY29u c3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3QgcnZfaml0X2NvbnRleHQgKmN0eCwKPiAg Cj4gIHZvaWQgYnBmX2ppdF9idWlsZF9wcm9sb2d1ZShzdHJ1Y3QgcnZfaml0X2NvbnRleHQgKmN0 eCkKPiAgewo+IC0JaW50IGksIHN0YWNrX2FkanVzdCA9IDAsIHN0b3JlX29mZnNldCwgYnBmX3N0 YWNrX2FkanVzdDsKPiArCWludCBzdGFja19hZGp1c3QgPSAwLCBzdG9yZV9vZmZzZXQsIGJwZl9z dGFja19hZGp1c3Q7Cj4gIAo+ICAJYnBmX3N0YWNrX2FkanVzdCA9IHJvdW5kX3VwKGN0eC0+cHJv Zy0+YXV4LT5zdGFja19kZXB0aCwgMTYpOwo+ICAJaWYgKGJwZl9zdGFja19hZGp1c3QpCj4gQEAg LTE2OTEsOSArMTY3NSw5IEBAIHZvaWQgYnBmX2ppdF9idWlsZF9wcm9sb2d1ZShzdHJ1Y3QgcnZf aml0X2NvbnRleHQgKmN0eCkKPiAgCj4gIAlzdG9yZV9vZmZzZXQgPSBzdGFja19hZGp1c3QgLSA4 Owo+ICAKPiAtCS8qIHJlc2VydmUgNCBub3AgaW5zbnMgKi8KPiAtCWZvciAoaSA9IDA7IGkgPCA0 OyBpKyspCj4gLQkJZW1pdChydl9ub3AoKSwgY3R4KTsKPiArCS8qIDIgbm9wcyByZXNlcnZlZCBm b3IgYXVpcGMramFsciBwYWlyICovCj4gKwllbWl0KHJ2X25vcCgpLCBjdHgpOwo+ICsJZW1pdChy dl9ub3AoKSwgY3R4KTsKClVzZSB0aGUgZGVmaW5lIGFib3ZlLCBpbnN0ZWFkIG9mIGhhcmRjb2Rp bmcgdHdvIG5vcHMuCgoKVGhhbmtzLApCasO2cm4KClsxXSBodHRwczovL2dpdGh1Yi5jb20vcmlz Y3Ytbm9uLWlzYS9yaXNjdi1lbGYtcHNhYmktZG9jL2Jsb2IvbWFzdGVyL3Jpc2N2LWNjLmFkb2Mj ZnJhbWUtcG9pbnRlci1jb252ZW50aW9uCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LXJpc2N2Cg==