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 351C4C48BC4 for ; Fri, 23 Feb 2024 09:01:52 +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:References:In-Reply-To: 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=NkDgbr/Z7xEtFw9herbCAjGBngIUMX0k1V35v04zqWc=; b=fcijVyt4bUl6MY RvwPQmjmd+ohRE26Fwh3DrPPGr2zPQE6rZLepMOTNSfwLpfB076sUjAjhDiHJLHa2xQJZ9+RMhq9v /EG308aeU4IpDRzASZQgh+yq+yl90MAlxZXM8ltXEE/FhEB97VfAw+3p5mh4ZlrBi1Sa7hwOENBrS sIcrd9dH4xSAxCeyybHnv7Eot7mMWV5bf88PPuIOAqD8mdJvYhxXu+kVY+IOXP9eo5nYJimjXPc9h JrrKK0I6l1lWjRfVKJipCQoT0SUfbLDivDXogM7ugLUuhwY2bSzE5YJx5dedVRgvYM/1XLMw2fTq5 hlz2fiKSIbbtWC7wXEmQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rdRRC-00000008b1e-2Q3V; Fri, 23 Feb 2024 09:01:46 +0000 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rdRR8-00000008b15-1fe8 for linux-mtd@lists.infradead.org; Fri, 23 Feb 2024 09:01:44 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id C1615E0017; Fri, 23 Feb 2024 09:01:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1708678895; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1Vj9QkQx1jTo/wRbJivlvWlybG+MdoJBjgt06SSoOYg=; b=mHYAsYi3Tg7LoY/AtepEifXcitFfxV8Lajke5ihOUvWa3z1oZN5r4DVjKt5m4zEjNlTTv0 gkVvSxzDJseNBW2+GXqZMNXDopobstdBmknFo22+LFBbdyi+B/+LA/N002KDPH6bSW37p9 LPHvQpjQYBY9YzPJRTBkAE9MOT8KFhTNQOzFyrwb/nH288CHooMhFdjP2Wn9v+dVsIhiMi 5rRDsTYc7q4EDppMLxJ0gJVFP/xTMpxOyxvPt9jjFZHzL6FSIplnoL+zB45aazo/GCPPTM deSxfMkQWtLMEWDSco7TnshecNV8i4GYfdmCtc3rtpRNKOMkqnrkFgV9rsvdOg== Date: Fri, 23 Feb 2024 10:01:32 +0100 From: Miquel Raynal To: KR Kim Cc: richard@nod.at, vigneshr@ti.com, moh.sardi@skyhighmemory.com, changsub.shim@skyhighmemory.com, linux-mtd@lists.infradead.org Subject: Re: [PATCH] Skyhighmemory Message-ID: <20240223100132.142c7c07@xps-13> In-Reply-To: <20240223063522.641771-1-kr.kim@skyhighmemory.com> References: <20240223063522.641771-1-kr.kim@skyhighmemory.com> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-GND-Sasl: miquel.raynal@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240223_010142_755506_A6A11922 X-CRM114-Status: GOOD ( 31.52 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGVsbG8gS2ltLAoKVGhhbmtzIGZvciB5b3VyIGNvbnRyaWJ1dGlvbiwgYSBmZXcgY29tbWVudHMg YmVsb3cuCgpGaXJzdCwgcGxlYXNlIGNvbnNpZGVyIGFsd2F5cyBhZGRpbmcgdGhlIHJlbGV2YW50 IE1haW50YWluZXJzIGFuZCBMaXN0CmluIENvcHksIEkgYWxyZWFkeSByZXZpZXdlZCB0aGUgcGF0 Y2ggc28gaGVyZSBpcyBteSBhbnN3ZXIsIGJ1dCBuZXh0CnRpbWUgSSB3aWxsIG5vdCBhbnN3ZXIg aWYgeW91IHNlbmQgYW5vdGhlciBtZXNzYWdlIGluIHByaXZhdGUuCgprci5raW1Ac2t5aGlnaG1l bW9yeS5jb20gd3JvdGUgb24gRnJpLCAyMyBGZWIgMjAyNCAxNTozNToyMiArMDkwMDoKCj4gRnJv bTog4oCcS3llb25ncmhvIDxrci5raW1Ac2t5aGlnaG1lbW9yeS5jb20+CgpQbGVhc2Ugd3JpdGUg YSBjb21taXQgbG9nIGFuZCBmaXggdGhlIGNvbW1pdCB0aXRsZS4KCj4gU2lnbmVkLW9mZi1ieTog 4oCcS3llb25ncmhvIDxrci5raW1Ac2t5aGlnaG1lbW9yeS5jb20+Cj4gLS0tCj4gIGRyaXZlcnMv bXRkL25hbmQvc3BpL01ha2VmaWxlICB8ICAgMiArLQo+ICBkcml2ZXJzL210ZC9uYW5kL3NwaS9j b3JlLmMgICAgfCAgIDcgKy0KPiAgZHJpdmVycy9tdGQvbmFuZC9zcGkvc2t5aGlnaC5jIHwgMTkx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2xpbnV4L210ZC9z cGluYW5kLmggICAgfCAgIDMgKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDIwMSBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQo+ICBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IGRyaXZlcnMv bXRkL25hbmQvc3BpL01ha2VmaWxlCj4gIG1vZGUgY2hhbmdlIDEwMDY0NCA9PiAxMDA3NTUgZHJp dmVycy9tdGQvbmFuZC9zcGkvY29yZS5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL210 ZC9uYW5kL3NwaS9za3loaWdoLmMKPiAgbW9kZSBjaGFuZ2UgMTAwNjQ0ID0+IDEwMDc1NSBpbmNs dWRlL2xpbnV4L210ZC9zcGluYW5kLmgKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFu ZC9zcGkvTWFrZWZpbGUgYi9kcml2ZXJzL210ZC9uYW5kL3NwaS9NYWtlZmlsZQo+IG9sZCBtb2Rl IDEwMDY0NAo+IG5ldyBtb2RlIDEwMDc1NQo+IGluZGV4IDE5Y2M3NzI4OGViYi4uNDhiNDI5ZDkw NDYwCj4gLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9zcGkvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJz L210ZC9uYW5kL3NwaS9NYWtlZmlsZQo+IEBAIC0xLDQgKzEsNCBAQAo+ICAjIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gIHNwaW5hbmQtb2JqcyA6PSBjb3JlLm8gYWxsaWFuY2Vt ZW1vcnkubyBhdG8ubyBlc210Lm8gZm9yZXNlZS5vIGdpZ2FkZXZpY2UubyBtYWNyb25peC5vCj4g LXNwaW5hbmQtb2JqcyArPSBtaWNyb24ubyBwYXJhZ29uLm8gdG9zaGliYS5vIHdpbmJvbmQubyB4 dHgubwo+ICtzcGluYW5kLW9ianMgKz0gbWljcm9uLm8gcGFyYWdvbi5vIHRvc2hpYmEubyB3aW5i b25kLm8geHR4Lm8gc2t5aGlnaC5vCgpQbGVhc2Uga2VlcCB0aGUgYWxwaGFiZXRpY2FsIG9yZGVy aW5nLgoKPiAgb2JqLSQoQ09ORklHX01URF9TUElfTkFORCkgKz0gc3BpbmFuZC5vCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvc3BpL2NvcmUuYyBiL2RyaXZlcnMvbXRkL25hbmQvc3Bp L2NvcmUuYwo+IG9sZCBtb2RlIDEwMDY0NAo+IG5ldyBtb2RlIDEwMDc1NQo+IGluZGV4IGUwYjY3 MTVlNWRmZS4uZTNmMGE3NTQ0YmE0Cj4gLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9zcGkvY29yZS5j Cj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9zcGkvY29yZS5jCj4gQEAgLTM0LDcgKzM0LDcgQEAg c3RhdGljIGludCBzcGluYW5kX3JlYWRfcmVnX29wKHN0cnVjdCBzcGluYW5kX2RldmljZSAqc3Bp bmFuZCwgdTggcmVnLCB1OCAqdmFsKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBp bnQgc3BpbmFuZF93cml0ZV9yZWdfb3Aoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kLCB1 OCByZWcsIHU4IHZhbCkKPiAraW50IHNwaW5hbmRfd3JpdGVfcmVnX29wKHN0cnVjdCBzcGluYW5k X2RldmljZSAqc3BpbmFuZCwgdTggcmVnLCB1OCB2YWwpCgpJZiB0aGlzIGlzIHJlYWxseSBuZWVk ZWQsIHBsZWFzZSBkbyBpdCBpbiBhIHByZXBhcmF0aW9uIHBhdGNoLiBCdXQgVEJICkknbSBub3Qg cmVhbGx5IHN1cmUgaXQgaXMgbmVlZGVkLgoKPiAgewo+ICAJc3RydWN0IHNwaV9tZW1fb3Agb3Ag PSBTUElOQU5EX1NFVF9GRUFUVVJFX09QKHJlZywKPiAgCQkJCQkJICAgICAgc3BpbmFuZC0+c2Ny YXRjaGJ1Zik7Cj4gQEAgLTE5Niw2ICsxOTYsMTAgQEAgc3RhdGljIGludCBzcGluYW5kX2luaXRf cXVhZF9lbmFibGUoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kKQo+ICBzdGF0aWMgaW50 IHNwaW5hbmRfZWNjX2VuYWJsZShzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQsCj4gIAkJ CSAgICAgIGJvb2wgZW5hYmxlKQo+ICB7Cj4gKwkvKiBTSE0gOiBhbHdheXMgRUNDIGVuYWJsZSAq Lwo+ICsJaWYgKHNwaW5hbmQtPmZsYWdzICYgU1BJTkFORF9PTl9ESUVfRUNDX01BTkRBVE9SWSkK PiArCQlyZXR1cm4gMDsKPiArCgpDYW4geW91IHBsZWFzZSBtb3ZlIHRoaXMgbG9naWMgdG8geW91 ciB2ZW5kb3IgZHJpdmVyPwoKPiAgCXJldHVybiBzcGluYW5kX3VwZF9jZmcoc3BpbmFuZCwgQ0ZH X0VDQ19FTkFCTEUsCj4gIAkJCSAgICAgICBlbmFibGUgPyBDRkdfRUNDX0VOQUJMRSA6IDApOwo+ ICB9Cj4gQEAgLTk0NSw2ICs5NDksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNwaW5hbmRfbWFu dWZhY3R1cmVyICpzcGluYW5kX21hbnVmYWN0dXJlcnNbXSA9IHsKPiAgCSZtYWNyb25peF9zcGlu YW5kX21hbnVmYWN0dXJlciwKPiAgCSZtaWNyb25fc3BpbmFuZF9tYW51ZmFjdHVyZXIsCj4gIAkm cGFyYWdvbl9zcGluYW5kX21hbnVmYWN0dXJlciwKPiArCSZza3loaWdoX3NwaW5hbmRfbWFudWZh Y3R1cmVyLAo+ICAJJnRvc2hpYmFfc3BpbmFuZF9tYW51ZmFjdHVyZXIsCj4gIAkmd2luYm9uZF9z cGluYW5kX21hbnVmYWN0dXJlciwKPiAgCSZ4dHhfc3BpbmFuZF9tYW51ZmFjdHVyZXIsCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvc3BpL3NreWhpZ2guYyBiL2RyaXZlcnMvbXRkL25h bmQvc3BpL3NreWhpZ2guYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAw MDAwLi43MWRlNGZhMzQ0MDYKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9tdGQvbmFu ZC9zcGkvc2t5aGlnaC5jCj4gQEAgLTAsMCArMSwxOTEgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAKPiArLyoKPiArICogQ29weXJpZ2h0IChjKSAyMDIyIFNreUhpZ2gg TWVtb3J5IExpbWl0ZWQKPiArICoKPiArICogQXV0aG9yOiBUYWthaGlybyBLdXdhbm8gPHRha2Fo aXJvLmt1d2Fub0BpbmZpbmVvbi5jb20+Cj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2Rl dmljZS5oPgo+ICsjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9t dGQvc3BpbmFuZC5oPgo+ICsKPiArI2RlZmluZSBTUElOQU5EX01GUl9TS1lISUdICQkweDAxCj4g Kwo+ICsjZGVmaW5lIFNLWUhJR0hfU1RBVFVTX0VDQ18xVE8yX0JJVEZMSVBTCSgxIDw8IDQpCj4g KyNkZWZpbmUgU0tZSElHSF9TVEFUVVNfRUNDXzNUTzRfQklURkxJUFMJKDIgPDwgNCkKPiArI2Rl ZmluZSBTS1lISUdIX1NUQVRVU19FQ0NfNVRPNl9CSVRGTElQUwkoMyA8PCA0KQo+ICsKPiArI2Rl ZmluZSBTS1lISUdIX0NPTkZJR19QUk9URUNUX0VOCUJJVCgxKQo+ICsKPiArc3RhdGljIFNQSU5B TkRfT1BfVkFSSUFOVFMocmVhZF9jYWNoZV92YXJpYW50cywKPiArCQlTUElOQU5EX1BBR0VfUkVB RF9GUk9NX0NBQ0hFX1FVQURJT19PUCgwLCA0LCBOVUxMLCAwKSwKPiArCQlTUElOQU5EX1BBR0Vf UkVBRF9GUk9NX0NBQ0hFX1g0X09QKDAsIDEsIE5VTEwsIDApLAo+ICsJCVNQSU5BTkRfUEFHRV9S RUFEX0ZST01fQ0FDSEVfRFVBTElPX09QKDAsIDIsIE5VTEwsIDApLAo+ICsJCVNQSU5BTkRfUEFH RV9SRUFEX0ZST01fQ0FDSEVfWDJfT1AoMCwgMSwgTlVMTCwgMCksCj4gKwkJU1BJTkFORF9QQUdF X1JFQURfRlJPTV9DQUNIRV9PUCh0cnVlLCAwLCAxLCBOVUxMLCAwKSwKPiArCQlTUElOQU5EX1BB R0VfUkVBRF9GUk9NX0NBQ0hFX09QKGZhbHNlLCAwLCAxLCBOVUxMLCAwKSk7Cj4gKwo+ICtzdGF0 aWMgU1BJTkFORF9PUF9WQVJJQU5UUyh3cml0ZV9jYWNoZV92YXJpYW50cywKPiArCQlTUElOQU5E X1BST0dfTE9BRF9YNCh0cnVlLCAwLCBOVUxMLCAwKSwKPiArCQlTUElOQU5EX1BST0dfTE9BRCh0 cnVlLCAwLCBOVUxMLCAwKSk7Cj4gKwo+ICtzdGF0aWMgU1BJTkFORF9PUF9WQVJJQU5UUyh1cGRh dGVfY2FjaGVfdmFyaWFudHMsCj4gKwkJU1BJTkFORF9QUk9HX0xPQURfWDQoZmFsc2UsIDAsIE5V TEwsIDApLAo+ICsJCVNQSU5BTkRfUFJPR19MT0FEKGZhbHNlLCAwLCBOVUxMLCAwKSk7Cj4gKwo+ ICtzdGF0aWMgaW50IHNreWhpZ2hfc3BpbmFuZF9vb2JsYXlvdXRfZWNjKHN0cnVjdCBtdGRfaW5m byAqbXRkLCBpbnQgc2VjdGlvbiwKPiArCQkJCQkgc3RydWN0IG10ZF9vb2JfcmVnaW9uICpyZWdp b24pCj4gK3sKPiArCWlmIChzZWN0aW9uKQo+ICsJCXJldHVybiAtRVJBTkdFOwo+ICsKPiArCXJl Z2lvbi0+bGVuZ3RoID0gMDsKPiArCXJlZ2lvbi0+b2Zmc2V0ID0gbXRkLT5vb2JzaXplOwoKVGhl IEVDQyBieXRlcyBhcmUgbm90IHN0b3JlZCBhbnl3aGVyZT8KCj4gKwo+ICsJcmV0dXJuIDA7Cj4g K30KPiArCj4gK3N0YXRpYyBpbnQgc2t5aGlnaF9zcGluYW5kX29vYmxheW91dF9mcmVlKHN0cnVj dCBtdGRfaW5mbyAqbXRkLCBpbnQgc2VjdGlvbiwKPiArCQkJCQkgIHN0cnVjdCBtdGRfb29iX3Jl Z2lvbiAqcmVnaW9uKQo+ICt7Cj4gKwlpZiAoc2VjdGlvbikKPiArCQlyZXR1cm4gLUVSQU5HRTsK PiArCj4gKwlyZWdpb24tPmxlbmd0aCA9IG10ZC0+b29ic2l6ZSAtIDI7Cj4gKwlyZWdpb24tPm9m ZnNldCA9IDI7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgbXRkX29vYmxheW91dF9vcHMgc2t5aGlnaF9zcGluYW5kX29vYmxheW91dCA9IHsKPiArCS5l Y2MgPSBza3loaWdoX3NwaW5hbmRfb29ibGF5b3V0X2VjYywKPiArCS5mcmVlID0gc2t5aGlnaF9z cGluYW5kX29vYmxheW91dF9mcmVlLAo+ICt9Owo+ICsKPiArI2lmIDAKClBsZWFzZSBkcm9wIGRl YnVnIGNvZGUgZnJvbSB5b3VyIHN1Ym1pc3Npb24uCgo+ICtib29sIHNreWhpZ2hfc3BpbmFuZF9p c2JhZChzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQsCj4gKwkJCSAgIGNvbnN0IHN0cnVj dCBuYW5kX3BvcyAqcG9zKQo+ICt7Cj4gKwl1OCBtYXJrZXI7Cj4gKwlzdHJ1Y3QgbmFuZF9wYWdl X2lvX3JlcSByZXEgPSB7Cj4gKwkJLnBvcyA9ICpwb3MsCj4gKwkJLm9vYmxlbiA9IDEsCj4gKwkJ Lm9vYm9mZnMgPSAwLAo+ICsJCS5vb2JidWYuaW4gPSAmbWFya2VyLAo+ICsJCS5tb2RlID0gTVRE X09QU19SQVcsCj4gKwl9Owo+ICsKPiArCXJlcS5wb3MucGFnZSA9IDA7Cj4gKwlzcGluYW5kX3Jl YWRfcGFnZShzcGluYW5kLCAmcmVxKTsKPiArCWlmIChtYXJrZXIgIT0gMHhmZikKPiArCQlyZXR1 cm4gdHJ1ZTsKPiArCj4gKyNpZiAwCj4gKwlyZXEucG9zLnBhZ2UgPSAxOwo+ICsJc3BpbmFuZF9y ZWFkX3BhZ2Uoc3BpbmFuZCwgJnJlcSk7Cj4gKwlpZiAobWFya2VyICE9IDB4ZmYpCj4gKwkJcmV0 dXJuIHRydWU7Cj4gKwo+ICsJcmVxLnBvcy5wYWdlID0gNjM7Cj4gKwlzcGluYW5kX3JlYWRfcGFn ZShzcGluYW5kLCAmcmVxKTsKPiArCWlmIChtYXJrZXIgIT0gMHhmZikKPiArCQlyZXR1cm4gdHJ1 ZTsKPiArI2VuZGlmCj4gKwo+ICsJcmV0dXJuIGZhbHNlOwo+ICt9Cj4gKyNlbmRpZgo+ICsKPiAr c3RhdGljIGludCBza3loaWdoX3NwaW5hbmRfZWNjX2dldF9zdGF0dXMoc3RydWN0IHNwaW5hbmRf ZGV2aWNlICpzcGluYW5kLAo+ICsJCQkJICB1OCBzdGF0dXMpCj4gK3sKPiArCS8qIFNITQo+ICsJ MDAgOiBObyBiaXQtZmxpcAo+ICsJMDEgOiAxLTIgZXJyb3JzIGNvcnJlY3RlZAo+ICsJMTAgOiAz LTYgZXJyb3JzIGNvcnJlY3RlZCAgICAgICAgIAo+ICsJMTEgOiB1bmNvcnJlY3RhYmxlCj4gKwkq LwoKVGhlIHN0eWxlIGlzIHdyb25nLCBjaGVja3BhdGNoLnBsIC0tc3RyaWN0PwoKPiArCj4gKwlz d2l0Y2ggKHN0YXR1cyAmIFNUQVRVU19FQ0NfTUFTSykgewo+ICsJY2FzZSBTVEFUVVNfRUNDX05P X0JJVEZMSVBTOgo+ICsJCXJldHVybiAwOwo+ICsKPiArCWNhc2UgU0tZSElHSF9TVEFUVVNfRUND XzFUTzJfQklURkxJUFM6Cj4gKwkJcmV0dXJuIDI7Cj4gKwo+ICsJLyogY2hhbmdlIGZyb20gNCB0 byA2ICovCj4gKwljYXNlIFNLWUhJR0hfU1RBVFVTX0VDQ18zVE80X0JJVEZMSVBTOgo+ICsJCXJl dHVybiA2OyAKPiArCj4gKwkvKiB1bmNvcnJlY3RhYmxlIGZvciAnMTEnICovCj4gKwljYXNlIFNL WUhJR0hfU1RBVFVTX0VDQ181VE82X0JJVEZMSVBTOgo+ICsJCXJldHVybiAtRUJBRE1TRzs7CgpU aGUgbGFzdCB0d28gbWFjcm8gbmFtZXMgZGVmaW5pdGVseSBkb24ndCBtYXRjaCB3aGF0IHRoZXkg YWN0dWFsbHkKbWVhbi4gSXQncyB2ZXJ5IHN0cmFuZ2UuIFBsZWFzZSBhbGlnbiB0aGUgbmFtZXMg d2l0aCB0aGUgcmVhbCBpbXBhY3QuCgo+ICsKPiArCWRlZmF1bHQ6Cj4gKwkJYnJlYWs7Cj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIC1FSU5WQUw7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg c3BpbmFuZF9pbmZvIHNreWhpZ2hfc3BpbmFuZF90YWJsZVtdID0gewo+ICsJU1BJTkFORF9JTkZP KCJTMzVNTDAxRzMwMSIsCj4gKwkJICAgICBTUElOQU5EX0lEKFNQSU5BTkRfUkVBRElEX01FVEhP RF9PUENPREVfRFVNTVksIDB4MTUpLAo+ICsJCSAgICAgTkFORF9NRU1PUkcoMSwgMjA0OCwgNjQs IDY0LCAxMDI0LCAyMCwgMSwgMSwgMSksCj4gKwkJICAgICBOQU5EX0VDQ1JFUSg2LCAzMiksCj4g KwkJICAgICBTUElOQU5EX0lORk9fT1BfVkFSSUFOVFMoJnJlYWRfY2FjaGVfdmFyaWFudHMsCj4g KwkJCQkJICAgICAgJndyaXRlX2NhY2hlX3ZhcmlhbnRzLAo+ICsJCQkJCSAgICAgICZ1cGRhdGVf Y2FjaGVfdmFyaWFudHMpLAo+ICsJCSAgICAgU1BJTkFORF9PTl9ESUVfRUNDX01BTkRBVE9SWSwK PiArCQkgICAgIFNQSU5BTkRfRUNDSU5GTygmc2t5aGlnaF9zcGluYW5kX29vYmxheW91dCwKPiAr CQkgICAgIAkJICAgICBza3loaWdoX3NwaW5hbmRfZWNjX2dldF9zdGF0dXMpKSwKPiArCVNQSU5B TkRfSU5GTygiUzM1TUwwMUczMDAiLAo+ICsJCSAgICAgU1BJTkFORF9JRChTUElOQU5EX1JFQURJ RF9NRVRIT0RfT1BDT0RFX0RVTU1ZLCAweDE0KSwKPiArCQkgICAgIE5BTkRfTUVNT1JHKDEsIDIw NDgsIDEyOCwgNjQsIDEwMjQsIDIwLCAxLCAxLCAxKSwKPiArCQkgICAgIE5BTkRfRUNDUkVRKDYs IDMyKSwKPiArCQkgICAgIFNQSU5BTkRfSU5GT19PUF9WQVJJQU5UUygmcmVhZF9jYWNoZV92YXJp YW50cywKPiArCQkJCQkgICAgICAmd3JpdGVfY2FjaGVfdmFyaWFudHMsCj4gKwkJCQkJICAgICAg JnVwZGF0ZV9jYWNoZV92YXJpYW50cyksCj4gKwkJICAgICBTUElOQU5EX09OX0RJRV9FQ0NfTUFO REFUT1JZLAo+ICsJCSAgICAgU1BJTkFORF9FQ0NJTkZPKCZza3loaWdoX3NwaW5hbmRfb29ibGF5 b3V0LAo+ICsJCSAgICAgCQkgICAgIHNreWhpZ2hfc3BpbmFuZF9lY2NfZ2V0X3N0YXR1cykpLAo+ ICsJU1BJTkFORF9JTkZPKCJTMzVNTDAyRzMwMCIsCj4gKwkJICAgICBTUElOQU5EX0lEKFNQSU5B TkRfUkVBRElEX01FVEhPRF9PUENPREVfRFVNTVksIDB4MjUpLAo+ICsJCSAgICAgTkFORF9NRU1P UkcoMSwgMjA0OCwgMTI4LCA2NCwgMjA0OCwgNDAsIDIsIDEsIDEpLAo+ICsJCSAgICAgTkFORF9F Q0NSRVEoNiwgMzIpLAo+ICsJCSAgICAgU1BJTkFORF9JTkZPX09QX1ZBUklBTlRTKCZyZWFkX2Nh Y2hlX3ZhcmlhbnRzLAo+ICsJCQkJCSAgICAgICZ3cml0ZV9jYWNoZV92YXJpYW50cywKPiArCQkJ CQkgICAgICAmdXBkYXRlX2NhY2hlX3ZhcmlhbnRzKSwKPiArCQkgICAgIFNQSU5BTkRfT05fRElF X0VDQ19NQU5EQVRPUlksCj4gKwkJICAgICBTUElOQU5EX0VDQ0lORk8oJnNreWhpZ2hfc3BpbmFu ZF9vb2JsYXlvdXQsCj4gKwkJICAgICAJCSAgICAgc2t5aGlnaF9zcGluYW5kX2VjY19nZXRfc3Rh dHVzKSksCj4gKwlTUElOQU5EX0lORk8oIlMzNU1MMDRHMzAwIiwKPiArCQkgICAgIFNQSU5BTkRf SUQoU1BJTkFORF9SRUFESURfTUVUSE9EX09QQ09ERV9EVU1NWSwgMHgzNSksCj4gKwkJICAgICBO QU5EX01FTU9SRygxLCAyMDQ4LCAxMjgsIDY0LCA0MDk2LCA4MCwgMiwgMSwgMSksCj4gKwkJICAg ICBOQU5EX0VDQ1JFUSg2LCAzMiksCj4gKwkJICAgICBTUElOQU5EX0lORk9fT1BfVkFSSUFOVFMo JnJlYWRfY2FjaGVfdmFyaWFudHMsCj4gKwkJCQkJICAgICAgJndyaXRlX2NhY2hlX3ZhcmlhbnRz LAo+ICsJCQkJCSAgICAgICZ1cGRhdGVfY2FjaGVfdmFyaWFudHMpLAo+ICsJCSAgICAgU1BJTkFO RF9PTl9ESUVfRUNDX01BTkRBVE9SWSwKPiArCQkgICAgIFNQSU5BTkRfRUNDSU5GTygmc2t5aGln aF9zcGluYW5kX29vYmxheW91dCwKPiArCQkgICAgIAkJICAgICBza3loaWdoX3NwaW5hbmRfZWNj X2dldF9zdGF0dXMpKSwKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQgc2t5aGlnaF9zcGluYW5kX2lu aXQoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kKQo+ICt7Cj4gKwlyZXR1cm4gc3BpbmFu ZF93cml0ZV9yZWdfb3Aoc3BpbmFuZCwgUkVHX0JMT0NLX0xPQ0ssCj4gKwkJCQkgICAgU0tZSElH SF9DT05GSUdfUFJPVEVDVF9FTik7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3Bp bmFuZF9tYW51ZmFjdHVyZXJfb3BzIHNreWhpZ2hfc3BpbmFuZF9tYW51Zl9vcHMgPSB7Cj4gKwku aW5pdCA9IHNreWhpZ2hfc3BpbmFuZF9pbml0LAo+ICsvKgkuaXNiYWQgPSBza3loaWdoX3NwaW5h bmRfaXNiYWQsKi8KCkRyb3AgdGhpcyBsaW5lIGFzIHdlbGwKCj4gK307Cj4gKwo+ICtjb25zdCBz dHJ1Y3Qgc3BpbmFuZF9tYW51ZmFjdHVyZXIgc2t5aGlnaF9zcGluYW5kX21hbnVmYWN0dXJlciA9 IHsKPiArCS5pZCA9IFNQSU5BTkRfTUZSX1NLWUhJR0gsCj4gKwkubmFtZSA9ICJTa3lIaWdoIiwK PiArCS5jaGlwcyA9IHNreWhpZ2hfc3BpbmFuZF90YWJsZSwKPiArCS5uY2hpcHMgPSBBUlJBWV9T SVpFKHNreWhpZ2hfc3BpbmFuZF90YWJsZSksCj4gKwkub3BzID0gJnNreWhpZ2hfc3BpbmFuZF9t YW51Zl9vcHMsCj4gK307Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbXRkL3NwaW5hbmQu aCBiL2luY2x1ZGUvbGludXgvbXRkL3NwaW5hbmQuaAo+IG9sZCBtb2RlIDEwMDY0NAo+IG5ldyBt b2RlIDEwMDc1NQo+IGluZGV4IGJhZGI0YzFhYzA3OS4uMGUxMzUwNzZkZjI0Cj4gLS0tIGEvaW5j bHVkZS9saW51eC9tdGQvc3BpbmFuZC5oCj4gKysrIGIvaW5jbHVkZS9saW51eC9tdGQvc3BpbmFu ZC5oCj4gQEAgLTI2OCw2ICsyNjgsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IHNwaW5hbmRfbWFu dWZhY3R1cmVyIGdpZ2FkZXZpY2Vfc3BpbmFuZF9tYW51ZmFjdHVyZXI7Cj4gIGV4dGVybiBjb25z dCBzdHJ1Y3Qgc3BpbmFuZF9tYW51ZmFjdHVyZXIgbWFjcm9uaXhfc3BpbmFuZF9tYW51ZmFjdHVy ZXI7Cj4gIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3BpbmFuZF9tYW51ZmFjdHVyZXIgbWljcm9uX3Nw aW5hbmRfbWFudWZhY3R1cmVyOwo+ICBleHRlcm4gY29uc3Qgc3RydWN0IHNwaW5hbmRfbWFudWZh Y3R1cmVyIHBhcmFnb25fc3BpbmFuZF9tYW51ZmFjdHVyZXI7Cj4gK2V4dGVybiBjb25zdCBzdHJ1 Y3Qgc3BpbmFuZF9tYW51ZmFjdHVyZXIgc2t5aGlnaF9zcGluYW5kX21hbnVmYWN0dXJlcjsKPiAg ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzcGluYW5kX21hbnVmYWN0dXJlciB0b3NoaWJhX3NwaW5hbmRf bWFudWZhY3R1cmVyOwo+ICBleHRlcm4gY29uc3Qgc3RydWN0IHNwaW5hbmRfbWFudWZhY3R1cmVy IHdpbmJvbmRfc3BpbmFuZF9tYW51ZmFjdHVyZXI7Cj4gIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3Bp bmFuZF9tYW51ZmFjdHVyZXIgeHR4X3NwaW5hbmRfbWFudWZhY3R1cmVyOwo+IEBAIC0zMTIsNiAr MzEzLDcgQEAgc3RydWN0IHNwaW5hbmRfZWNjX2luZm8gewo+ICAKPiAgI2RlZmluZSBTUElOQU5E X0hBU19RRV9CSVQJCUJJVCgwKQo+ICAjZGVmaW5lIFNQSU5BTkRfSEFTX0NSX0ZFQVRfQklUCQlC SVQoMSkKPiArI2RlZmluZSBTUElOQU5EX09OX0RJRV9FQ0NfTUFOREFUT1JZCUJJVCgyKQkvKiBT SE0gKi8KPiAgCj4gIC8qKgo+ICAgKiBzdHJ1Y3Qgc3BpbmFuZF9vbmRpZV9lY2NfY29uZiAtIHBy aXZhdGUgU1BJLU5BTkQgb24tZGllIEVDQyBlbmdpbmUgc3RydWN0dXJlCj4gQEAgLTUxOCw1ICs1 MjAsNiBAQCBpbnQgc3BpbmFuZF9tYXRjaF9hbmRfaW5pdChzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2Ug KnNwaW5hbmQsCj4gIAo+ICBpbnQgc3BpbmFuZF91cGRfY2ZnKHN0cnVjdCBzcGluYW5kX2Rldmlj ZSAqc3BpbmFuZCwgdTggbWFzaywgdTggdmFsKTsKPiAgaW50IHNwaW5hbmRfc2VsZWN0X3Rhcmdl dChzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQsIHVuc2lnbmVkIGludCB0YXJnZXQpOwo+ ICtpbnQgc3BpbmFuZF93cml0ZV9yZWdfb3Aoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5k LCB1OCByZWcsIHU4IHZhbCk7Cj4gIAo+ICAjZW5kaWYgLyogX19MSU5VWF9NVERfU1BJTkFORF9I ICovCgoKVGhhbmtzLApNaXF1w6hsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo=