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 3F0DDC43458 for ; Sun, 28 Jun 2026 17:51:05 +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=M2cGQsuJNjqikBsF4kJ93wvwP7qI7hQuxyZMUevJ7NI=; b=TUApVVG+u5IKz+ ZR9tnNiGJ/ivMMesuys8tzSdqBQKDd+VGJEz61hKnzqOPscOw/2s0qIdbJ/3fvftyPJU7jEHibwGR ihLaleYdqabXMPIJvLCIpq8bNWTfnKX5pSUaPIeKTz2WW08koo9rKCegFylTFl9JxaY6fb0SmEOLm EM2Yp/NQF3CVoys3+uSr+p8x/w99OKLnbuvJdkaaTDRz7xYHWVdbwCkb/u+eG2YwGC986Ts2ATQ3v ce1b+9LpPb1It0kKbtysyMO+p3aFT1TdTJZXhuaSJkSD+JDRpC//lYE1S8dkIxdkXCiolBLS1R1p/ uZ7hXMEWf5RPOkHtODkQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wdtef-0000000DFqU-4BEI; Sun, 28 Jun 2026 17:50:54 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wdtef-0000000DFqM-01YG for linux-riscv@lists.infradead.org; Sun, 28 Jun 2026 17:50:53 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 3280F4054D; Sun, 28 Jun 2026 17:50:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5C7951F000E9; Sun, 28 Jun 2026 17:50:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1782669052; bh=6mFg+vRVXkDMJryF3S/ofCtYY+gHbSFhj5EVfVorN4c=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=lIM+0kPyzDzwXttK+SvOxudiOx+2QBMx/0b2r8omq2+Hy+KxTiTy4/CbLeKRdYT3F dIkuVXLOwHxvX5b/siDhowjs4KuYm/doxdBet1Z5sCrDoa4hxoodsN2LV7j9oAj6FC fZOnIEzgjolrVCT5Od9asMPzeIq/qB0UwoYhi9ZlRemF8ECSO4L4BS5nW+t5fLEb3x EkfTbfhSEECMdgve3UjpIApsKbuW5v6sPKcBchhcRtXSRD2/bd9mD+LJFVpNd2GqzU FR3/5VCKmHBkEn0eJQ/O+bSEzhxiar5927HI9e1OimMrUKBNbrebdjYpCKI4Px8Xy5 dlYNYMqd329+g== From: =?utf-8?B?QmrDtnJuIFTDtnBlbA==?= To: Varun R Mallya , pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, eddyz87@gmail.com, memxor@gmail.com, pulehui@huawei.com Cc: alex@ghiti.fr, martin.lau@linux.dev, song@kernel.org, yonghong.song@linux.dev, jolsa@kernel.org, emil@etsalapatis.com, puranjay@kernel.org, shuah@kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, varunrmallya@gmail.com Subject: Re: [PATCH bpf-next v2 2/3] riscv, bpf: Add support for BPF exceptions In-Reply-To: <20260628081710.113333-3-varunrmallya@gmail.com> References: <20260628081710.113333-1-varunrmallya@gmail.com> <20260628081710.113333-3-varunrmallya@gmail.com> Date: Sun, 28 Jun 2026 10:50:48 -0700 Message-ID: <87bjcuy2o7.fsf@all.your.base.are.belong.to.us> MIME-Version: 1.0 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 VmFydW4gUiBNYWxseWEgPHZhcnVucm1hbGx5YUBnbWFpbC5jb20+IHdyaXRlczoKCj4gQWRkIHRo ZSBKSVQgc3VwcG9ydCByZXF1aXJlZCBmb3IgQlBGIGV4Y2VwdGlvbnMgKGJwZl90aHJvdygpKSBv biByaXNjdjY0Lgo+Cj4gVHdvIGtpbmRzIG9mIHByb2dyYW0gbmVlZCBzcGVjaWFsIHByb2xvZ3Vl L2VwaWxvZ3VlIGhhbmRsaW5nOgo+Cj4gICAtIEEgcHJvZ3JhbSBhY3RpbmcgYXMgYW4gZXhjZXB0 aW9uIGJvdW5kYXJ5IG11c3Qgc2F2ZSB0aGUgZnVsbCBzZXQgb2YKPiAgICAgcmlzY3YgY2FsbGVl LXNhdmVkIEdQIHJlZ2lzdGVycyAocmEsIHMwLXMxMSksIG5vdCBqdXN0IHRoZSBvbmVzIGl0Cj4g ICAgIGhhcHBlbnMgdG8gY2xvYmJlciwgc28gdGhhdCB0aGUgZXhjZXB0aW9uIGNhbGxiYWNrIGNh biByZXN0b3JlIHRoZQo+ICAgICBzdGF0ZSB0aGF0IHdhcyBsaXZlIGF0IHRoZSBib3VuZGFyeS4g cmEgYW5kIGZwIGFyZSBzdG9yZWQgZmlyc3Qgc28KPiAgICAgdGhlIHNhdmVkIHJhL2ZwIHBhaXIg Zm9ybXMgYSB2YWxpZCBzdGFja2ZyYW1lIHJlY29yZCBmb3IgdGhlCj4gICAgIHVud2luZGVyLgo+ Cj4gICAtIFRoZSBleGNlcHRpb24gY2FsbGJhY2sgKGV4Y2VwdGlvbl9jYikgZG9lcyBub3QgYWxs b2NhdGUgaXRzIG93bgo+ICAgICBmcmFtZS4gSXQgcmV1c2VzIHRoZSBib3VuZGFyeSBwcm9ncmFt J3MgZnJhbWUsIHdob3NlIGZyYW1lIHBvaW50ZXIKPiAgICAgaXMgcGFzc2VkIGluIGEyLCBieSBz ZXR0aW5nIFNQID0gRlAgLSBzdGFja19hZGp1c3QuIFRoaXMgbGluZXMgdGhlCj4gICAgIGVwaWxv Z3VlJ3MgbG9hZHMgdXAgd2l0aCB0aGUgcmVnaXN0ZXJzIHRoZSBib3VuZGFyeSBzYXZlZCwgc28g Ym90aAo+ICAgICBwYXRocyByZXN0b3JlIHRoZSBzYW1lIG9yZGVyLgo+Cj4gV2lyZSB1cCBicGZf aml0X3N1cHBvcnQgdG8gYmUgdHJ1ZSBvbmx5IHdoZW4gQ09ORklHX0ZSQU1FX1BPSU5URVIgaXMK PiBlbmFibGVkLgo+Cj4gU2lnbmVkLW9mZi1ieTogVmFydW4gUiBNYWxseWEgPHZhcnVucm1hbGx5 YUBnbWFpbC5jb20+Cj4gUmV2aWV3ZWQtYnk6IFB1IExlaHVpIDxwdWxlaHVpQGh1YXdlaS5jb20+ Cj4gLS0tCj4gIGFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMgfCAxMTUgKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25z KCspLCAxMyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L25ldC9icGZf aml0X2NvbXA2NC5jIGIvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYwo+IGluZGV4IGMw M2MxZGUxNmI3OS4uYzZlMmY4NTJlODU0IDEwMDY0NAo+IC0tLSBhL2FyY2gvcmlzY3YvbmV0L2Jw Zl9qaXRfY29tcDY0LmMKPiArKysgYi9hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jCj4g QEAgLTU2LDYgKzU2LDMwIEBAIHN0YXRpYyBjb25zdCBpbnQgcHRfcmVnbWFwW10gPSB7Cj4gIAlb UlZfUkVHX1QwXSA9IG9mZnNldG9mKHN0cnVjdCBwdF9yZWdzLCB0MCksCj4gIH07Cj4gIAo+ICsv Kgo+ICsgKiBGdWxsIHNldCBvZiBSSVNDLVYgY2FsbGVlLXNhdmVkIEdQIHJlZ2lzdGVycyAocmEs IHMwLXMxMSkgc2F2ZWQgYnkgYSBwcm9ncmFtCj4gKyAqIGFjdGluZyBhcyBhbiBleGNlcHRpb24g Ym91bmRhcnksIGluIHRoZSBvcmRlciB0aGV5IGFyZSBzdG9yZWQgb24gdGhlIHN0YWNrLgo+ICsg KiBSQSBhbmQgRlAgY29tZSBmaXJzdCBzbyB0aGUgc2F2ZWQgcmEvZnAgcGFpciBmb3JtcyBhIHZh bGlkIHN0YWNrZnJhbWUgcmVjb3JkCj4gKyAqIGF0IFtGUC04XS9bRlAtMTZdIGZvciB0aGUgdW53 aW5kZXIuIFRoZSBleGNlcHRpb24gY2FsbGJhY2sgcmV1c2VzIHRoZQo+ICsgKiBib3VuZGFyeSBw cm9ncmFtJ3MgZnJhbWUgYW5kIHJlc3RvcmVzIHRoaXMgc2FtZSBzZXQgaW4gaXRzIGVwaWxvZ3Vl LCBzbyBib3RoCj4gKyAqIHBhdGhzIG11c3QgYWdyZWUgb24gdGhlIGNvbnRlbnRzIGFuZCBvcmRl cmluZyBvZiB0aGlzIGxpc3QuCj4gKyAqLwoKbml0OiBQbGVhc2UgdXNlIG5ldGRldiBzdHlsZSBt dWx0aS1saW5lIGNvbW1lbnRzICgvKiBCbGFoLCB2cyAvKlxuKQoKPiArc3RhdGljIGNvbnN0IGlu dCBydl9leGNlcHRpb25fY3NhdmVfcmVnc1tdID0gewo+ICsJUlZfUkVHX1JBLAo+ICsJUlZfUkVH X0ZQLAo+ICsJUlZfUkVHX1MxLAo+ICsJUlZfUkVHX1MyLAo+ICsJUlZfUkVHX1MzLAo+ICsJUlZf UkVHX1M0LAo+ICsJUlZfUkVHX1M1LAo+ICsJUlZfUkVHX1M2LAo+ICsJUlZfUkVHX1M3LAo+ICsJ UlZfUkVHX1M4LAo+ICsJUlZfUkVHX1M5LAo+ICsJUlZfUkVHX1MxMCwKPiArCVJWX1JFR19TMTEs Cj4gK307Cj4gKwo+ICBlbnVtIHsKPiAgCVJWX0NUWF9GX1NFRU5fVEFJTF9DQUxMID0JMCwKPiAg CVJWX0NUWF9GX1NFRU5fQ0FMTCA9CQlSVl9SRUdfUkEsCj4gQEAgLTIzMSw2ICsyNTUsMjIgQEAg c3RhdGljIHZvaWQgZW1pdF9pbW0odTggcmQsIHM2NCB2YWwsIHN0cnVjdCBydl9qaXRfY29udGV4 dCAqY3R4KQo+ICBzdGF0aWMgdm9pZCBfX2J1aWxkX2VwaWxvZ3VlKGJvb2wgaXNfdGFpbF9jYWxs LCBzdHJ1Y3QgcnZfaml0X2NvbnRleHQgKmN0eCkKPiAgewo+ICAJaW50IHN0YWNrX2FkanVzdCA9 IGN0eC0+c3RhY2tfc2l6ZSwgc3RvcmVfb2Zmc2V0ID0gc3RhY2tfYWRqdXN0IC0gODsKPiArCXN0 cnVjdCBicGZfcHJvZ19hdXggKmF1eCA9IGN0eC0+cHJvZy0+YXV4Owo+ICsJaW50IGk7Cj4gKwo+ ICsJaWYgKGF1eC0+ZXhjZXB0aW9uX2JvdW5kYXJ5IHx8IGF1eC0+ZXhjZXB0aW9uX2NiKSB7Cj4g KwkJLyoKCm5pdDogQ29tbWVudCBhZ2Fpbi4KCj4gKwkJICogQW4gZXhjZXB0aW9uIGJvdW5kYXJ5 IHNhdmVkIHRoZSBmdWxsIGNhbGxlZS1zYXZlZCByZWdpc3Rlcgo+ICsJCSAqIHNldCBhbmQgdGhl IGV4Y2VwdGlvbiBjYWxsYmFjayByZXN0b3JlcyBpdCBmcm9tIHRoZSBib3VuZGFyeSdzCj4gKwkJ ICogZnJhbWUuIEJvdGggcmVzdG9yZSB0aGUgc2FtZSBmaXhlZCBzZXQsIGluIHRoZSBzYW1lIG9y ZGVyIGl0Cj4gKwkJICogd2FzIHN0b3JlZCBieSBicGZfaml0X2J1aWxkX3Byb2xvZ3VlKCkuCj4g KwkJICovCj4gKwkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocnZfZXhjZXB0aW9uX2NzYXZl X3JlZ3MpOyBpKyspIHsKPiArCQkJZW1pdF9sZChydl9leGNlcHRpb25fY3NhdmVfcmVnc1tpXSwg c3RvcmVfb2Zmc2V0LCBSVl9SRUdfU1AsIGN0eCk7Cj4gKwkJCXN0b3JlX29mZnNldCAtPSA4Owo+ ICsJCX0KPiArCQlnb3RvIGVwaWxvZ3VlX3RhaWw7Cj4gKwl9Cj4gIAo+ICAJaWYgKHNlZW5fcmVn KFJWX1JFR19SQSwgY3R4KSkgewo+ICAJCWVtaXRfbGQoUlZfUkVHX1JBLCBzdG9yZV9vZmZzZXQs IFJWX1JFR19TUCwgY3R4KTsKPiBAQCAtMjY3LDYgKzMwNyw3IEBAIHN0YXRpYyB2b2lkIF9fYnVp bGRfZXBpbG9ndWUoYm9vbCBpc190YWlsX2NhbGwsIHN0cnVjdCBydl9qaXRfY29udGV4dCAqY3R4 KQo+ICAJCXN0b3JlX29mZnNldCAtPSA4Owo+ICAJfQo+ICAKPiArZXBpbG9ndWVfdGFpbDoKPiAg CWVtaXRfYWRkaShSVl9SRUdfU1AsIFJWX1JFR19TUCwgc3RhY2tfYWRqdXN0LCBjdHgpOwo+ICAJ LyogU2V0IHJldHVybiB2YWx1ZS4gKi8KPiAgCWlmICghaXNfdGFpbF9jYWxsKQo+IEBAIC0yMDAy LDExICsyMDQzLDYxIEBAIGludCBicGZfaml0X2VtaXRfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2lu c24gKmluc24sIHN0cnVjdCBydl9qaXRfY29udGV4dCAqY3R4LAo+ICB2b2lkIGJwZl9qaXRfYnVp bGRfcHJvbG9ndWUoc3RydWN0IHJ2X2ppdF9jb250ZXh0ICpjdHgsIGJvb2wgaXNfc3VicHJvZykK PiAgewo+ICAJaW50IGksIHN0YWNrX2FkanVzdCA9IDAsIHN0b3JlX29mZnNldCwgYnBmX3N0YWNr X2FkanVzdDsKPiArCXN0cnVjdCBicGZfcHJvZ19hdXggKmF1eCA9IGN0eC0+cHJvZy0+YXV4Owo+ ICAKPiAgCWJwZl9zdGFja19hZGp1c3QgPSByb3VuZF91cChjdHgtPnByb2ctPmF1eC0+c3RhY2tf ZGVwdGgsIFNUQUNLX0FMSUdOKTsKPiAgCWlmIChicGZfc3RhY2tfYWRqdXN0KQo+ICAJCW1hcmtf ZnAoY3R4KTsKPiAgCj4gKwkvKiBlbWl0IGtjZmkgdHlwZSBwcmVhbWJsZSBpbW1lZGlhdGVseSBi ZWZvcmUgdGhlIGZpcnN0IGluc24gKi8KPiArCWVtaXRfa2NmaShpc19zdWJwcm9nID8gY2ZpX2Jw Zl9zdWJwcm9nX2hhc2ggOiBjZmlfYnBmX2hhc2gsIGN0eCk7Cj4gKwo+ICsJLyogbm9wcyByZXNl cnZlZCBmb3IgYXVpcGMramFsciBwYWlyICovCj4gKwlmb3IgKGkgPSAwOyBpIDwgUlZfRkVOVFJZ X05JTlNOUzsgaSsrKQo+ICsJCWVtaXQocnZfbm9wKCksIGN0eCk7Cj4gKwo+ICsJLyogRmlyc3Qg aW5zdHJ1Y3Rpb24gaXMgYWx3YXlzIHNldHRpbmcgdGhlIHRhaWwtY2FsbC1jb3VudGVyCj4gKwkg KiAoVENDKSByZWdpc3Rlci4gVGhpcyBpbnN0cnVjdGlvbiBpcyBza2lwcGVkIGZvciB0YWlsIGNh bGxzLgo+ICsJICogRm9yY2UgdXNpbmcgYSA0LWJ5dGUgKG5vbi1jb21wcmVzc2VkKSBpbnN0cnVj dGlvbi4KPiArCSAqLwo+ICsJZW1pdChydl9hZGRpKFJWX1JFR19UQ0MsIFJWX1JFR19aRVJPLCBN QVhfVEFJTF9DQUxMX0NOVCksIGN0eCk7Cj4gKwo+ICsJaWYgKGF1eC0+ZXhjZXB0aW9uX2JvdW5k YXJ5IHx8IGF1eC0+ZXhjZXB0aW9uX2NiKSB7Cj4gKwkJLyoKPiArCQkgKiBBIHByb2dyYW0gYWN0 aW5nIGFzIGFuIGV4Y2VwdGlvbiBib3VuZGFyeSBzYXZlcyB0aGUgZnVsbCBzZXQKPiArCQkgKiBv ZiByaXNjdiBjYWxsZWUgc2F2ZWQgcmVnaXN0ZXJzIChyYSwgczAtczExKS4KPiArCQkgKi8KPiAr CQlzdGFja19hZGp1c3QgPSByb3VuZF91cChBUlJBWV9TSVpFKHJ2X2V4Y2VwdGlvbl9jc2F2ZV9y ZWdzKSAqIDgsCj4gKwkJCQkJU1RBQ0tfQUxJR04pOwo+ICsJCXN0YWNrX2FkanVzdCArPSBicGZf c3RhY2tfYWRqdXN0Owo+ICsJCXN0b3JlX29mZnNldCA9IHN0YWNrX2FkanVzdCAtIDg7Cj4gKwo+ ICsJCWlmICghYXV4LT5leGNlcHRpb25fY2IgJiYgYXV4LT5leGNlcHRpb25fYm91bmRhcnkpIHsK PiArCQkJLyoKPiArCQkJICogQm91bmRhcnkgcHJvZ3JhbTogYWxsb2NhdGUgdGhlIGZyYW1lIGFu ZCBzYXZlIHRoZQo+ICsJCQkgKiBmdWxsIGNhbGxlZS1zYXZlZCBzZXQsIGNhcHR1cmluZyB0aGUg Y2FsbGVyJ3MgdmFsdWVzLgo+ICsJCQkgKi8KPiArCQkJZW1pdF9hZGRpKFJWX1JFR19TUCwgUlZf UkVHX1NQLCAtc3RhY2tfYWRqdXN0LCBjdHgpOwo+ICsJCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlf U0laRShydl9leGNlcHRpb25fY3NhdmVfcmVncyk7IGkrKykgewo+ICsJCQkJZW1pdF9zZChSVl9S RUdfU1AsIHN0b3JlX29mZnNldCwKPiArCQkJCQlydl9leGNlcHRpb25fY3NhdmVfcmVnc1tpXSwg Y3R4KTsKPiArCQkJCXN0b3JlX29mZnNldCAtPSA4Owo+ICsJCQl9Cj4gKwkJCWVtaXRfYWRkaShS Vl9SRUdfRlAsIFJWX1JFR19TUCwgc3RhY2tfYWRqdXN0LCBjdHgpOwo+ICsJCX0gZWxzZSB7Cj4g KwkJCS8qCj4gKwkJCSAqIEV4Y2VwdGlvbiBjYWxsYmFjaywgcmV1c2UgdGhlIGJvdW5kYXJ5IHBy b2dyYW0ncwo+ICsJCQkgKiBmcmFtZSwgd2hvc2UgZnJhbWUgcG9pbnRlciBpcyBwYXNzZWQgaW4g YTIuIFNldHRpbmcKPiArCQkJICogU1AgPSBGUCAtIHN0YWNrX2FkanVzdCBsaW5lcyB0aGUgZXBp bG9ndWUncyBsb2FkcyB1cAo+ICsJCQkgKiB3aXRoIHRoZSByZWdpc3RlcnMgdGhlIGJvdW5kYXJ5 IHNhdmVkLgo+ICsJCQkgKi8KPiArCQkJZW1pdF9tdihSVl9SRUdfRlAsIFJWX1JFR19BMiwgY3R4 KTsKPiArCQkJZW1pdF9hZGRpKFJWX1JFR19TUCwgUlZfUkVHX0ZQLCAtc3RhY2tfYWRqdXN0LCBj dHgpOwo+ICsJCX0KPiArCj4gKwkJZ290byB0YWlsX3NldHVwOwo+ICsJfQo+ICsKClRoaXMgZnVu Y3Rpb24gaXMgZ2V0dGluZyBsYXJnZS4uLiBJIHRlbmQgZG8gZm9yZ2V0IGRldGFpbHMsIHNvIGhh dmluZyBpdAppbiBzbWFsbGVyIGhlbHBlcnMgd291bGQgYmUgZ29vZC4gTGV0J3MgdHJ5IHRvIHJl ZmFjdG9yIGEgYml0LgoKVGhlIHNwZWNpYWwgY2FzZSBpcyByZWFsbHkganVzdDoKICAqIGV4Y2Vw dGlvbiBib3VuZGFyeTogYWxsb2NhdGUgZnJhbWUgYW5kIHNhdmUgZnVsbCBsYXlvdXQKICAqIGV4 Y2VwdGlvbl9jYjogcmV1c2UgYm91bmRhcnkgRlAgZnJvbSBhMiBhbmQgZGVyaXZlIFNQIGZyb20g aXQKICAqIGJvdGg6IHJlc3RvcmUgdGhlIHNhbWUgZml4ZWQgbGF5b3V0CgpTbyBoZWxwZXJzIGxp a2UgaXNfZXhjZXB0aW9uX3Byb2coKSwgZXhjZXB0aW9uX3N0YWNrX2FkanVzdCgpLAplbWl0X2V4 Y2VwdGlvbl9ib3VuZGFyeV9wcm9sb2d1ZSgpLCBlbWl0X2V4Y2VwdGlvbl9jYl9wcm9sb2d1ZSgp LCBhbmQKZW1pdF9leGNlcHRpb25fcmVzdG9yZSgpIHdvdWxkIG1ha2UgdGhlIHByb2xvZ3VlL2Vw aWxvZ3VlIGNoYW5nZXMgbXVjaAplYXNpZXIgdG8gcmV2aWV3IGFuZCBhbHNvIHJlZHVjZSBjaHVy biBpbiBicGZfaml0X2J1aWxkX3Byb2xvZ3VlKCkuCgo+ICAJaWYgKHNlZW5fcmVnKFJWX1JFR19S QSwgY3R4KSkKPiAgCQlzdGFja19hZGp1c3QgKz0gODsKPiAgCXN0YWNrX2FkanVzdCArPSA4OyAv KiBSVl9SRUdfRlAgKi8KPiBAQCAtMjAzMCwxOSArMjEyMSw2IEBAIHZvaWQgYnBmX2ppdF9idWls ZF9wcm9sb2d1ZShzdHJ1Y3QgcnZfaml0X2NvbnRleHQgKmN0eCwgYm9vbCBpc19zdWJwcm9nKQo+ ICAKPiAgCXN0b3JlX29mZnNldCA9IHN0YWNrX2FkanVzdCAtIDg7Cj4gIAo+IC0JLyogZW1pdCBr Y2ZpIHR5cGUgcHJlYW1ibGUgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSAgZmlyc3QgaW5zbiAqLwo+ IC0JZW1pdF9rY2ZpKGlzX3N1YnByb2cgPyBjZmlfYnBmX3N1YnByb2dfaGFzaCA6IGNmaV9icGZf aGFzaCwgY3R4KTsKPiAtCj4gLQkvKiBub3BzIHJlc2VydmVkIGZvciBhdWlwYytqYWxyIHBhaXIg Ki8KPiAtCWZvciAoaSA9IDA7IGkgPCBSVl9GRU5UUllfTklOU05TOyBpKyspCj4gLQkJZW1pdChy dl9ub3AoKSwgY3R4KTsKPiAtCj4gLQkvKiBGaXJzdCBpbnN0cnVjdGlvbiBpcyBhbHdheXMgc2V0 dGluZyB0aGUgdGFpbC1jYWxsLWNvdW50ZXIKPiAtCSAqIChUQ0MpIHJlZ2lzdGVyLiBUaGlzIGlu c3RydWN0aW9uIGlzIHNraXBwZWQgZm9yIHRhaWwgY2FsbHMuCj4gLQkgKiBGb3JjZSB1c2luZyBh IDQtYnl0ZSAobm9uLWNvbXByZXNzZWQpIGluc3RydWN0aW9uLgo+IC0JICovCj4gLQllbWl0KHJ2 X2FkZGkoUlZfUkVHX1RDQywgUlZfUkVHX1pFUk8sIE1BWF9UQUlMX0NBTExfQ05UKSwgY3R4KTsK PiAtCj4gIAllbWl0X2FkZGkoUlZfUkVHX1NQLCBSVl9SRUdfU1AsIC1zdGFja19hZGp1c3QsIGN0 eCk7Cj4gIAo+ICAJaWYgKHNlZW5fcmVnKFJWX1JFR19SQSwgY3R4KSkgewo+IEBAIC0yMDgyLDYg KzIxNjAsNyBAQCB2b2lkIGJwZl9qaXRfYnVpbGRfcHJvbG9ndWUoc3RydWN0IHJ2X2ppdF9jb250 ZXh0ICpjdHgsIGJvb2wgaXNfc3VicHJvZykKPiAgCj4gIAllbWl0X2FkZGkoUlZfUkVHX0ZQLCBS Vl9SRUdfU1AsIHN0YWNrX2FkanVzdCwgY3R4KTsKPiAgCj4gK3RhaWxfc2V0dXA6CgpIbW0sIHRo aW5raW5nIG1vcmUgYWJvdXQgaXQsIG1heWJlIGZvbGRpbmcgdGhlICJub3JtYWxfcHJvbG9ndWUo KSIgaW4gYXMKcHJlLWNvbW1pdCwgc28gd2UgY2FuIGF2b2lkIG1vcmUgZ290b3MuCgogIHwgaWYg KGlzX2V4Y2VwdGlvbl9wcm9nKGF1eCkpCiAgfCAgICAgZW1pdF9leGNlcHRpb25fcmVzdG9yZShj dHgsIHN0YWNrX2FkanVzdCk7CiAgfCBlbHNlCiAgfCAgICAgZW1pdF9ub3JtYWxfcmVzdG9yZShj dHgsIHN0YWNrX2FkanVzdCk7CiAgfCAKICB8IGVtaXRfYWRkaShSVl9SRUdfU1AsIFJWX1JFR19T UCwgc3RhY2tfYWRqdXN0LCBjdHgpOwogIHwgLi4uCgpvciBzbXRoLgoKPiAgCWlmIChicGZfc3Rh Y2tfYWRqdXN0KSBlbWl0X2FkZGkoUlZfUkVHX1M1LCBSVl9SRUdfU1AsCj4gIAlicGZfc3RhY2tf YWRqdXN0LCBjdHgpOwo+ICAKPiBAQCAtMjE1NywzICsyMjM2LDEzIEBAIGJvb2wgYnBmX2ppdF9z dXBwb3J0c19mc2Vzc2lvbih2b2lkKQo+ICB7Cj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICsKPiAr Ym9vbCBicGZfaml0X3N1cHBvcnRzX2V4Y2VwdGlvbnModm9pZCkKPiArewo+ICsJLyoKPiArCSAq IGJwZl90aHJvdygpIHVud2luZHMgYnkgd2Fsa2luZyB0aGUgZnJhbWUtcG9pbnRlciBjaGFpbiBm cm9tIGluc2lkZQo+ICsJICogdGhlIGtlcm5lbCBiYWNrIGludG8gdGhlIEJQRiBmcmFtZXMgKHNl ZSBhcmNoX2JwZl9zdGFja193YWxrKCkpLCBzbwo+ICsJICogZXhjZXB0aW9ucyByZXF1aXJlIHRo ZSBmcmFtZS1wb2ludGVyIHVud2luZGVyIHRvIGJlIGVuYWJsZWQuCj4gKwkgKi8KCm5pdDogQ29t bWVudHMuLi4KCgpUaGFua3MsCkJqw7ZybgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1yaXNjdgo=