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 X-Spam-Level: X-Spam-Status: No, score=-15.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7AC62C433B4 for ; Sat, 1 May 2021 16:39:20 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DDED661458 for ; Sat, 1 May 2021 16:39:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DDED661458 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=lRR9xc/MbwEd8ErLA1lf9EZkeP94BmvnwDnDZ8FPASA=; b=OfBMt/YyUJVrvLMokUXrb/stW dvs5EPxeNQ8Q40+gk9W4foHbVCC7LSnyhw2zgesKT1u4qLativSW21GjNWieLH/yLeu6eTddjrp84 3ljTmeO341ZKPEv17zGX9AwNfBKfaXSLT92YWCJMq9iFQqyNzIZX7pyXFeDOCbiO1tM8YoqIU8s9x KFWjskFpzsY3eCsy/02y8zU7NjIjz2ndKtb+uV5vlsDbQ0yHw8aENNlq2Fyf7c4+x6RxbFzkyEIXl yRHHvjcLMSwAiyqjVNgIre/CxdProB1OE6N9nXalj8iFJ3hNLuDi9K3HNAFEnGaaKpFnlcFXc6GUM 17obPTgUQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lcsdz-00ALuA-KT; Sat, 01 May 2021 16:39:03 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lcsdw-00ALtx-5s for linux-nvme@desiato.infradead.org; Sat, 01 May 2021 16:39:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To: Subject:Sender:Reply-To:Content-ID:Content-Description; bh=TAp4UXhKJtnc8vcjRw6Wj2Kro2neV8bkyzcwf9fi/eE=; b=c6//mAbYLL12qvlkJ9URses3w9 TVLax5Ra6H+73wyyl1yIG18WtN/TM5HznTzj7/7TdoxlOl5zZasG/HKbtcy1fckxq+2I6LF1scslh P0s7KUKjEXOxTMJxwWoGvXzA6lbmBkY7VrxiiSJLgwwzYC/1aqWFyOIfIu4jFp2qIHAZyEq6K92uP 5R6FSXxoIEPRa5UQCAH/ovcxhREzXv5Dx91dnAGPKzzJ35lJkbEWDnyY/89PBk19z4w82zECl7p1J NfHzloVO20wIHfZUvl/4sT/eezk8Nlrq/CKM+8teTKusyeP4G58y+1P5ZKe8gPIWrA5vDPPl/+3od oFcrYMgQ==; Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lcsdt-0023zt-2R for linux-nvme@lists.infradead.org; Sat, 01 May 2021 16:38:58 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id B55CAAFCF; Sat, 1 May 2021 16:38:55 +0000 (UTC) Subject: Re: [RFC PATCH v4 14/27] nvme-tcp-offload: Add IO level implementation To: Shai Malin , netdev@vger.kernel.org, linux-nvme@lists.infradead.org, sagi@grimberg.me, hch@lst.de, axboe@fb.com, kbusch@kernel.org Cc: "David S . Miller davem @ davemloft . net --cc=Jakub Kicinski" , aelior@marvell.com, mkalderon@marvell.com, okulkarni@marvell.com, pkushwaha@marvell.com, malin1024@gmail.com, Dean Balandin References: <20210429190926.5086-1-smalin@marvell.com> <20210429190926.5086-15-smalin@marvell.com> From: Hannes Reinecke Message-ID: Date: Sat, 1 May 2021 18:38:54 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: <20210429190926.5086-15-smalin@marvell.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210501_093857_434060_575D0477 X-CRM114-Status: GOOD ( 28.92 ) X-BeenThere: linux-nvme@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-nvme" Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org T24gNC8yOS8yMSA5OjA5IFBNLCBTaGFpIE1hbGluIHdyb3RlOgo+IEZyb206IERlYW4gQmFsYW5k aW4gPGRiYWxhbmRpbkBtYXJ2ZWxsLmNvbT4KPiAKPiBJbiB0aGlzIHBhdGNoLCB3ZSBwcmVzZW50 IHRoZSBJTyBsZXZlbCBmdW5jdGlvbmFsaXR5Lgo+IFRoZSBudm1lLXRjcC1vZmZsb2FkIHNoYWxs IHdvcmsgb24gdGhlIElPLWxldmVsLCBtZWFuaW5nIHRoZQo+IG52bWUtdGNwLW9mZmxvYWQgVUxQ IG1vZHVsZSBzaGFsbCBwYXNzIHRoZSByZXF1ZXN0IHRvIHRoZSBudm1lLXRjcC1vZmZsb2FkCj4g dmVuZG9yIGRyaXZlciBhbmQgc2hhbGwgZXhwZWN0IGZvciB0aGUgcmVxdWVzdCBjb21waWxhdGlv bi4KClJlcXVlc3QgY29tcGlsYXRpb24/IE5vdCByZXF1ZXN0IGNvbXBsZXRpb24/Cgo+IE5vIGFk ZGl0aW9uYWwgaGFuZGxpbmcgaXMgbmVlZGVkIGluIGJldHdlZW4sIHRoaXMgZGVzaWduIHdpbGwg cmVkdWNlIHRoZQo+IENQVSB1dGlsaXphdGlvbiBhcyB3ZSB3aWxsIGRlc2NyaWJlIGJlbG93Lgo+ IAo+IFRoZSBudm1lLXRjcC1vZmZsb2FkIHZlbmRvciBkcml2ZXIgc2hhbGwgcmVnaXN0ZXIgdG8g bnZtZS10Y3Atb2ZmbG9hZCBVTFAKPiB3aXRoIHRoZSBmb2xsb3dpbmcgSU8tcGF0aCBvcHM6Cj4g ICAtIGluaXRfcmVxCj4gICAtIHNlbmRfcmVxIC0gaW4gb3JkZXIgdG8gcGFzcyB0aGUgcmVxdWVz dCB0byB0aGUgaGFuZGxpbmcgb2YgdGhlIG9mZmxvYWQKPiAgICAgZHJpdmVyIHRoYXQgc2hhbGwg cGFzcyBpdCB0byB0aGUgdmVuZG9yIHNwZWNpZmljIGRldmljZQo+ICAgLSBwb2xsX3F1ZXVlCj4g Cj4gVGhlIHZlbmRvciBkcml2ZXIgd2lsbCBtYW5hZ2UgdGhlIGNvbnRleHQgZnJvbSB3aGljaCB0 aGUgcmVxdWVzdCB3aWxsIGJlCj4gZXhlY3V0ZWQgYW5kIHRoZSByZXF1ZXN0IGFnZ3JlZ2F0aW9u cy4KPiBPbmNlIHRoZSBJTyBjb21wbGV0ZWQsIHRoZSBudm1lLXRjcC1vZmZsb2FkIHZlbmRvciBk cml2ZXIgc2hhbGwgY2FsbAo+IGNvbW1hbmQuZG9uZSgpIHRoYXQgc2hhbGwgaW52b2tlIHRoZSBu dm1lLXRjcC1vZmZsb2FkIFVMUCBsYXllciBmb3IKPiBjb21wbGV0aW5nIHRoZSByZXF1ZXN0Lgo+ IAo+IFRoaXMgcGF0Y2ggYWxzbyBjb250YWlucyBpbml0aWFsIGRlZmluaXRpb24gb2YgbnZtZV90 Y3Bfb2ZsZF9xdWV1ZV9ycSgpLgo+IAo+IEFja2VkLWJ5OiBJZ29yIFJ1c3NraWtoIDxpcnVzc2tp a2hAbWFydmVsbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogRGVhbiBCYWxhbmRpbiA8ZGJhbGFuZGlu QG1hcnZlbGwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFByYWJoYWthciBLdXNod2FoYSA8cGt1c2h3 YWhhQG1hcnZlbGwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE9ta2FyIEt1bGthcm5pIDxva3Vsa2Fy bmlAbWFydmVsbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWljaGFsIEthbGRlcm9uIDxta2FsZGVy b25AbWFydmVsbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogQXJpZWwgRWxpb3IgPGFlbGlvckBtYXJ2 ZWxsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBTaGFpIE1hbGluIDxzbWFsaW5AbWFydmVsbC5jb20+ Cj4gLS0tCj4gICBkcml2ZXJzL252bWUvaG9zdC90Y3Atb2ZmbG9hZC5jIHwgOTUgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgODcgaW5zZXJ0aW9u cygrKSwgOCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lL2hvc3Qv dGNwLW9mZmxvYWQuYyBiL2RyaXZlcnMvbnZtZS9ob3N0L3RjcC1vZmZsb2FkLmMKPiBpbmRleCA4 ZGRjZTIyNTcxMDAuLjBjZGY1YTQzMjIwOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL252bWUvaG9z dC90Y3Atb2ZmbG9hZC5jCj4gKysrIGIvZHJpdmVycy9udm1lL2hvc3QvdGNwLW9mZmxvYWQuYwo+ IEBAIC0xMjcsNyArMTI3LDEwIEBAIHZvaWQgbnZtZV90Y3Bfb2ZsZF9yZXFfZG9uZShzdHJ1Y3Qg bnZtZV90Y3Bfb2ZsZF9yZXEgKnJlcSwKPiAgIAkJCSAgICB1bmlvbiBudm1lX3Jlc3VsdCAqcmVz dWx0LAo+ICAgCQkJICAgIF9fbGUxNiBzdGF0dXMpCj4gICB7Cj4gLQkvKiBQbGFjZWhvbGRlciAt IGNvbXBsZXRlIHJlcXVlc3Qgd2l0aC93aXRob3V0IGVycm9yICovCj4gKwlzdHJ1Y3QgcmVxdWVz dCAqcnEgPSBibGtfbXFfcnFfZnJvbV9wZHUocmVxKTsKPiArCj4gKwlpZiAoIW52bWVfdHJ5X2Nv bXBsZXRlX3JlcShycSwgY3B1X3RvX2xlMTYoc3RhdHVzIDw8IDEpLCAqcmVzdWx0KSkKPiArCQlu dm1lX2NvbXBsZXRlX3JxKHJxKTsKPiAgIH0KPiAgIAo+ICAgc3RydWN0IG52bWVfdGNwX29mbGRf ZGV2ICoKPiBAQCAtNjg2LDYgKzY4OSwzNCBAQCBzdGF0aWMgdm9pZCBudm1lX3RjcF9vZmxkX2Zy ZWVfY3RybChzdHJ1Y3QgbnZtZV9jdHJsICpuY3RybCkKPiAgIAlrZnJlZShjdHJsKTsKPiAgIH0K PiAgIAo+ICtzdGF0aWMgdm9pZCBudm1lX3RjcF9vZmxkX3NldF9zZ19udWxsKHN0cnVjdCBudm1l X2NvbW1hbmQgKmMpCj4gK3sKPiArCXN0cnVjdCBudm1lX3NnbF9kZXNjICpzZyA9ICZjLT5jb21t b24uZHB0ci5zZ2w7Cj4gKwo+ICsJc2ctPmFkZHIgPSAwOwo+ICsJc2ctPmxlbmd0aCA9IDA7Cj4g KwlzZy0+dHlwZSA9IChOVk1FX1RSQU5TUE9SVF9TR0xfREFUQV9ERVNDIDw8IDQpIHwgTlZNRV9T R0xfRk1UX1RSQU5TUE9SVF9BOwo+ICt9Cj4gKwo+ICtpbmxpbmUgdm9pZCBudm1lX3RjcF9vZmxk X3NldF9zZ19pbmxpbmUoc3RydWN0IG52bWVfdGNwX29mbGRfcXVldWUgKnF1ZXVlLAo+ICsJCQkJ CXN0cnVjdCBudm1lX2NvbW1hbmQgKmMsIHUzMiBkYXRhX2xlbikKPiArewo+ICsJc3RydWN0IG52 bWVfc2dsX2Rlc2MgKnNnID0gJmMtPmNvbW1vbi5kcHRyLnNnbDsKPiArCj4gKwlzZy0+YWRkciA9 IGNwdV90b19sZTY0KHF1ZXVlLT5jdHJsLT5uY3RybC5pY2RvZmYpOwo+ICsJc2ctPmxlbmd0aCA9 IGNwdV90b19sZTMyKGRhdGFfbGVuKTsKPiArCXNnLT50eXBlID0gKE5WTUVfU0dMX0ZNVF9EQVRB X0RFU0MgPDwgNCkgfCBOVk1FX1NHTF9GTVRfT0ZGU0VUOwo+ICt9Cj4gKwo+ICt2b2lkIG52bWVf dGNwX29mbGRfbWFwX2RhdGEoc3RydWN0IG52bWVfY29tbWFuZCAqYywgdTMyIGRhdGFfbGVuKQo+ ICt7Cj4gKwlzdHJ1Y3QgbnZtZV9zZ2xfZGVzYyAqc2cgPSAmYy0+Y29tbW9uLmRwdHIuc2dsOwo+ ICsKPiArCXNnLT5hZGRyID0gMDsKPiArCXNnLT5sZW5ndGggPSBjcHVfdG9fbGUzMihkYXRhX2xl bik7Cj4gKwlzZy0+dHlwZSA9IChOVk1FX1RSQU5TUE9SVF9TR0xfREFUQV9ERVNDIDw8IDQpIHwg TlZNRV9TR0xfRk1UX1RSQU5TUE9SVF9BOwo+ICt9Cj4gKwo+ICAgc3RhdGljIHZvaWQgbnZtZV90 Y3Bfb2ZsZF9zdWJtaXRfYXN5bmNfZXZlbnQoc3RydWN0IG52bWVfY3RybCAqYXJnKQo+ICAgewo+ ICAgCS8qIFBsYWNlaG9sZGVyIC0gc3VibWl0X2FzeW5jX2V2ZW50ICovCj4gQEAgLTg0MSw5ICs4 NzIsMTEgQEAgbnZtZV90Y3Bfb2ZsZF9pbml0X3JlcXVlc3Qoc3RydWN0IGJsa19tcV90YWdfc2V0 ICpzZXQsCj4gICB7Cj4gICAJc3RydWN0IG52bWVfdGNwX29mbGRfcmVxICpyZXEgPSBibGtfbXFf cnFfdG9fcGR1KHJxKTsKPiAgIAlzdHJ1Y3QgbnZtZV90Y3Bfb2ZsZF9jdHJsICpjdHJsID0gc2V0 LT5kcml2ZXJfZGF0YTsKPiArCWludCBxaWQ7Cj4gICAKPiAtCS8qIFBsYWNlaG9sZGVyIC0gaW5p dCByZXF1ZXN0ICovCj4gLQo+ICsJcWlkID0gKHNldCA9PSAmY3RybC0+dGFnX3NldCkgPyBoY3R4 X2lkeCArIDEgOiAwOwo+ICsJcmVxLT5xdWV1ZSA9ICZjdHJsLT5xdWV1ZXNbcWlkXTsKPiArCW52 bWVfcmVxKHJxKS0+Y3RybCA9ICZjdHJsLT5uY3RybDsKPiAgIAlyZXEtPmRvbmUgPSBudm1lX3Rj cF9vZmxkX3JlcV9kb25lOwo+ICAgCWN0cmwtPmRldi0+b3BzLT5pbml0X3JlcShyZXEpOwo+ICAg Cj4gQEAgLTg1OCwxNiArODkxLDYwIEBAIEVYUE9SVF9TWU1CT0xfR1BMKG52bWVfdGNwX29mbGRf aW5saW5lX2RhdGFfc2l6ZSk7Cj4gICAKPiAgIHN0YXRpYyB2b2lkIG52bWVfdGNwX29mbGRfY29t bWl0X3JxcyhzdHJ1Y3QgYmxrX21xX2h3X2N0eCAqaGN0eCkKPiAgIHsKPiAtCS8qIENhbGwgb3Bz LT5jb21taXRfcnFzICovCj4gKwlzdHJ1Y3QgbnZtZV90Y3Bfb2ZsZF9xdWV1ZSAqcXVldWUgPSBo Y3R4LT5kcml2ZXJfZGF0YTsKPiArCXN0cnVjdCBudm1lX3RjcF9vZmxkX2RldiAqZGV2ID0gcXVl dWUtPmRldjsKPiArCXN0cnVjdCBudm1lX3RjcF9vZmxkX29wcyAqb3BzID0gZGV2LT5vcHM7Cj4g Kwo+ICsJb3BzLT5jb21taXRfcnFzKHF1ZXVlKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIGJsa19z dGF0dXNfdAo+ICAgbnZtZV90Y3Bfb2ZsZF9xdWV1ZV9ycShzdHJ1Y3QgYmxrX21xX2h3X2N0eCAq aGN0eCwKPiAgIAkJICAgICAgIGNvbnN0IHN0cnVjdCBibGtfbXFfcXVldWVfZGF0YSAqYmQpCj4g ICB7Cj4gLQkvKiBDYWxsIG52bWVfc2V0dXBfY21kKC4uLikgKi8KPiArCXN0cnVjdCBudm1lX3Rj cF9vZmxkX3JlcSAqcmVxID0gYmxrX21xX3JxX3RvX3BkdShiZC0+cnEpOwo+ICsJc3RydWN0IG52 bWVfdGNwX29mbGRfcXVldWUgKnF1ZXVlID0gaGN0eC0+ZHJpdmVyX2RhdGE7Cj4gKwlzdHJ1Y3Qg bnZtZV90Y3Bfb2ZsZF9jdHJsICpjdHJsID0gcXVldWUtPmN0cmw7Cj4gKwlzdHJ1Y3QgbnZtZV9u cyAqbnMgPSBoY3R4LT5xdWV1ZS0+cXVldWVkYXRhOwo+ICsJc3RydWN0IG52bWVfdGNwX29mbGRf ZGV2ICpkZXYgPSBxdWV1ZS0+ZGV2Owo+ICsJc3RydWN0IG52bWVfdGNwX29mbGRfb3BzICpvcHMg PSBkZXYtPm9wczsKPiArCXN0cnVjdCBudm1lX2NvbW1hbmQgKm52bWVfY21kOwo+ICsJc3RydWN0 IHJlcXVlc3QgKnJxOwo+ICsJYm9vbCBxdWV1ZV9yZWFkeTsKPiArCXUzMiBkYXRhX2xlbjsKPiAr CWludCByYzsKPiArCj4gKwlxdWV1ZV9yZWFkeSA9IHRlc3RfYml0KE5WTUVfVENQX09GTERfUV9M SVZFLCAmcXVldWUtPmZsYWdzKTsKPiArCj4gKwlyZXEtPnJxID0gYmQtPnJxOwo+ICsJcmVxLT5h c3luYyA9IGZhbHNlOwo+ICsJcnEgPSByZXEtPnJxOwo+ICsKPiArCWlmICghbnZtZl9jaGVja19y ZWFkeSgmY3RybC0+bmN0cmwsIHJlcS0+cnEsIHF1ZXVlX3JlYWR5KSkKPiArCQlyZXR1cm4gbnZt Zl9mYWlsX25vbnJlYWR5X2NvbW1hbmQoJmN0cmwtPm5jdHJsLCByZXEtPnJxKTsKPiArCj4gKwly YyA9IG52bWVfc2V0dXBfY21kKG5zLCByZXEtPnJxLCAmcmVxLT5udm1lX2NtZCk7Cj4gKwlpZiAo dW5saWtlbHkocmMpKQo+ICsJCXJldHVybiByYzsKPiAgIAo+IC0JLyogQ2FsbCBvcHMtPnNlbmRf cmVxKC4uLikgKi8KPiArCWJsa19tcV9zdGFydF9yZXF1ZXN0KHJlcS0+cnEpOwo+ICsJcmVxLT5s YXN0ID0gYmQtPmxhc3Q7Cj4gKwo+ICsJbnZtZV9jbWQgPSAmcmVxLT5udm1lX2NtZDsKPiArCW52 bWVfY21kLT5jb21tb24uZmxhZ3MgfD0gTlZNRV9DTURfU0dMX01FVEFCVUY7Cj4gKwo+ICsJZGF0 YV9sZW4gPSBibGtfcnFfbnJfcGh5c19zZWdtZW50cyhycSkgPyBibGtfcnFfcGF5bG9hZF9ieXRl cyhycSkgOiAwOwo+ICsJaWYgKCFkYXRhX2xlbikKPiArCQludm1lX3RjcF9vZmxkX3NldF9zZ19u dWxsKCZyZXEtPm52bWVfY21kKTsKPiArCWVsc2UgaWYgKChycV9kYXRhX2RpcihycSkgPT0gV1JJ VEUpICYmCj4gKwkJIGRhdGFfbGVuIDw9IG52bWVfdGNwX29mbGRfaW5saW5lX2RhdGFfc2l6ZShx dWV1ZSkpCj4gKwkJbnZtZV90Y3Bfb2ZsZF9zZXRfc2dfaW5saW5lKHF1ZXVlLCBudm1lX2NtZCwg ZGF0YV9sZW4pOwo+ICsJZWxzZQo+ICsJCW52bWVfdGNwX29mbGRfbWFwX2RhdGEobnZtZV9jbWQs IGRhdGFfbGVuKTsKPiArCj4gKwlyYyA9IG9wcy0+c2VuZF9yZXEocmVxKTsKPiArCWlmICh1bmxp a2VseShyYykpCj4gKwkJcmV0dXJuIHJjOwo+ICAgCj4gICAJcmV0dXJuIEJMS19TVFNfT0s7Cj4g ICB9Cj4gQEAgLTk0MCw5ICsxMDE3LDExIEBAIHN0YXRpYyBpbnQgbnZtZV90Y3Bfb2ZsZF9tYXBf cXVldWVzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0KQo+ICAgCj4gICBzdGF0aWMgaW50IG52 bWVfdGNwX29mbGRfcG9sbChzdHJ1Y3QgYmxrX21xX2h3X2N0eCAqaGN0eCkKPiAgIHsKPiAtCS8q IFBsYWNlaG9sZGVyIC0gSW1wbGVtZW50IHBvbGxpbmcgbWVjaGFuaXNtICovCj4gKwlzdHJ1Y3Qg bnZtZV90Y3Bfb2ZsZF9xdWV1ZSAqcXVldWUgPSBoY3R4LT5kcml2ZXJfZGF0YTsKPiArCXN0cnVj dCBudm1lX3RjcF9vZmxkX2RldiAqZGV2ID0gcXVldWUtPmRldjsKPiArCXN0cnVjdCBudm1lX3Rj cF9vZmxkX29wcyAqb3BzID0gZGV2LT5vcHM7Cj4gICAKPiAtCXJldHVybiAwOwo+ICsJcmV0dXJu IG9wcy0+cG9sbF9xdWV1ZShxdWV1ZSk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBzdHJ1Y3QgYmxr X21xX29wcyBudm1lX3RjcF9vZmxkX21xX29wcyA9IHsKPiAKUmV2aWV3ZWQtYnk6IEhhbm5lcyBS ZWluZWNrZSA8aGFyZUBzdXNlLmRlPgoKQ2hlZXJzLAoKSGFubmVzCi0tIApEci4gSGFubmVzIFJl aW5lY2tlICAgICAgICAgICAgICAgIEtlcm5lbCBTdG9yYWdlIEFyY2hpdGVjdApoYXJlQHN1c2Uu ZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArNDkgOTExIDc0MDUzIDY4OApTVVNFIFNv ZnR3YXJlIFNvbHV0aW9ucyBHbWJILCBNYXhmZWxkc3RyLiA1LCA5MDQwOSBOw7xybmJlcmcKSFJC IDM2ODA5IChBRyBOw7xybmJlcmcpLCBHZXNjaMOkZnRzZsO8aHJlcjogRmVsaXggSW1lbmTDtnJm ZmVyCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51 eC1udm1lIG1haWxpbmcgbGlzdApMaW51eC1udm1lQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1udm1lCg==