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 E244CC433F5 for ; Thu, 19 May 2022 16:07:26 +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=kpP6hy9wDXKg8akGWNWKyBXvtIi9UibiT/vDZq0LBck=; b=hGK9g+vDrhyfOl yGR5auMqOJ02BPQTHeZS8tiYCsJNCkBryYwPHqXmyxukRBMeJrR1NACV9Tdq2lTJL72HezW8Uz2Ga +jrcPVoIPAx76QetqktMZINUTZdKVEPK5YQM7H2psdZTZIkXtItc2GP5SKiaygLA43txjb4fFUhSt RBucKx1Q3YoKFTf35AuhvrNT/TUFHBUmtYjmPOiBND/ndcHEMweEOhAvD2TkGrqSBW5K/jKL5Fe88 +/auOq1cromB1RPScQmZuw5b80xB5dcB202KRCEKPi3xmWoNbLnN72AVs2u4bmo1TcYQ3CRH63407 Rr3DzAmXo/xKBUayKgsg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrig1-008IbM-2c; Thu, 19 May 2022 16:07:01 +0000 Received: from relay8-d.mail.gandi.net ([2001:4b98:dc4:8::228]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrifw-008IaM-Mf for linux-mtd@lists.infradead.org; Thu, 19 May 2022 16:06:59 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id 3BF201BF214; Thu, 19 May 2022 16:06:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1652976413; 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=PLI7LR5JFXNn1/sYqdzR1zjc/7JVtknsG7FkgJ05kJA=; b=Xu3oZ+Plp3gV4/lvIOrfehIKkbqci/e2QsH7fpOh+s8rZLZuCYQ3ZaEHsJQzuen3m4Zjr/ y8HaFsxqECpdwQfEXsNj7VbPi4v/pYym1wEQmDbv7fWvNGL9qjU5Wh9x0YZ4oeIHIIzFD7 KHKIbDZmnWxsFugd332ayhsVhmtzTD64coHXCQe785pmjbF7G0R/iFufSzju931lIrf33O 5ioobJrUCGsMO3u4JVKNMSN2kGdPiOJH3xxDW6R0Uj0TlQ4ohZHtliBGWXXOPDKzEv0ZmC GOYQWpUvp5w77G1d6axqQZJ28uA//dmQdFVCG99SBDQMC78wnwGH5GWXgGv8ow== Date: Thu, 19 May 2022 18:06:51 +0200 From: Miquel Raynal To: Zhengxun Cc: linux-mtd@lists.infradead.org, zhengxunli@mxic.com.tw Subject: Re: [PATCH v2 3/4] mtd: spinand: Add support continuous read operation Message-ID: <20220519180651.603a3f2e@xps-13> In-Reply-To: <20220209091022.30155-4-zhengxunli.mxic@gmail.com> References: <20220209091022.30155-1-zhengxunli.mxic@gmail.com> <20220209091022.30155-4-zhengxunli.mxic@gmail.com> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220519_090657_096640_BDFEC826 X-CRM114-Status: GOOD ( 50.34 ) 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 SGkgWmhlbmd4dW4sCgpTb3JyeSBmb3IgdGhlIGRlbGF5IGluIHJldmlld2luZyB0aGlzIHBhdGNo c2V0LCBoZXJlIGFyZSBhIGZldyBjb21tZW50cwpiZWxvdy4KCkFsc28sIEkgc2VlbSB0byByZW1l bWJlciB0aGF0IHlvdSBzZW50IGEgc2ltaWxhciBwYXRjaHNldCBmb3IgcmF3bmFuZCwKaXMgdGhp cyBzdGlsbCBzb21ldGhpbmcgdGhhdCB5b3Ugd2FudCB0byBwdXNoPyBJSVJDIHRoZXJlIHdlcmUg aXNzdWVzCndpdGggdGhlIHN1cHBvcnQgb2YgdGhlIGNvbnRpbnVvdXMgY29tbWFuZHMgZm9yIGFs bCB0aGUgY29udHJvbGxlcnMuClBsZWFzZSBzZW5kIGEgbmV3IGl0ZXJhdGlvbiBvZiB0aGlzIHBh dGNoc2V0IGlmIHlvdSB3YW50IGhlbHAgYWJvdXQgaXQuCgp6aGVuZ3h1bmxpLm14aWNAZ21haWwu Y29tIHdyb3RlIG9uIFdlZCwgIDkgRmViIDIwMjIgMTc6MTA6MjEgKzA4MDA6Cgo+IFRoZSBjb250 aW51b3VzIHJlYWQgb3BlcmF0aW9uIGluY2x1ZGluZzogZmlyc3RseSwgc3RhcnRpbmcKCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXMgdGhyZWUgcGhhc2VzOgotIHN0YXJ0 aW5nIC4uLgotIGlzc3VpbmcuLi4KLSBwdWxsaW5nLi4uCgo+IHdpdGggdGhlIHBhZ2UgcmVhZCBj b21tYW5kIGFuZCB0aGUgMXN0IHBhZ2UgZGF0YSB3aWxsIGJlCj4gcmVhZCBpbnRvIHRoZSBjYWNo ZSBhZnRlciB0aGUgcmVhZCBsYXRlbmN5IHRSRC4gU2Vjb25kbHksCj4gSXNzdWluZyB0aGUgUmVh ZCBGcm9tIENhY2hlIGNvbW1hbmRzICgwM2gvMEJoLzNCaC82QmgvQkJoL0VCaCkKPiB0byByZWFk IG91dCB0aGUgZGF0YSBmcm9tIGNhY2hlIGNvbnRpbnVvdXNseS4gQWZ0ZXIgYWxsIHRoZQo+IGRh dGEgaXMgcmVhZCBvdXQsIHRoZSBob3N0IHNob3VsZCBwdWxsIENTIyBoaWdoIHRvIHRlcm1pbmF0 ZQo+IHRoaXMgY29udGludW91cyByZWFkIG9wZXJhdGlvbiBhbmQgd2FpdCB0UlNUIGZvciB0aGUg TkFORAo+IGRldmljZSByZXNldHMgcmVhZCBvcGVyYXRpb24uCj4gCj4gVGhlIGNvbnRpbnVvdXMg cmVhZCB1c3VhZ2UgaXMgZW5hYmxlIGJ5IHJlYWQgbXV0aXBsZSBwYWdlCgpDb250aW51b3VzIHJl YWRzIGhhdmUgYSBwb3NpdGl2ZSBpbXBhY3Qgd2hlbiByZWFkaW5nIG1vcmUgdGhhbiBvbmUKcGFn ZS4KCj4gKGF0IGxlYXN0IGxhcmdlciB0aGFuIDEgcGFnZSBzaXplKSBhbmQgdGhlIGNvbHVtbiBh ZGRyZXNzIGlzCj4gZG9uJ3QgY2FyZSBpbiB0aGlzIG9wZXJhdGlvbiwgc2luY2UgdGhlIGRhdGEg b3V0cHV0IGZvciBlYWNoCj4gcGFnZSB3aWxsIGFsd2F5cyBzdGFydCBmcm9tIGJ5dGUgMCBhbmQg YSBmdWxsIHBhZ2UgZGF0YSBzaG91bGQKPiBiZSByZWFkIG91dCBmb3IgZWFjaCBwYWdlLgoKVGhp cyBpcyBub3QgZW50aXJlbHkgdHJ1ZSwgdGhlIHVzZXIgY2FuIHJlcXVlc3QgdG8gcmVhZCBmcm9t IGEKZGlmZmVyZW50IG9mZnNldCwgaXQgd2lsbCBiZSB0cmFuc2xhdGVkIGludG8gYSBwYWdlIGFj Y2VzcyBhbnl3YXkuCgo+IE9uIHRoZSBvdGhlciBoYW5kLCBzaW5jZSB0aGUgY29udGludW91cyBy ZWFkIG1vZGUgY2FuIG9ubHkgcmVhZAo+IHRoZSBlbnRpcmUgcGFnZSBvZiBkYXRhIGFuZCBjYW5u b3QgcmVhZCB0aGUgb29iIGRhdGEsIHRoZSBkeW5hbWljCj4gY2hhbmdlIG1vZGUgaXMgYWRkZWQg dG8gZW5hYmxlIGNvbnRpbnVvdXMgcmVhZCBtb2RlIGFuZCBkaXNhYmxlCj4gY29udGludW91cyBy ZWFkIG1vZGUgaW4gc3BpbmFuZF9tdGRfY29udGludW91c19yZWFkIHRvIGF2b2lkCj4gd3JpdGlu ZyBhbmQgZXJhc2luZyBvcGVyYXRpb24gaXMgYWJub3JtYWwuCgpUaGlzIHNlbnRlbmNlIGlzIG5v dCB2ZXJ5IGNsZWFyLiBJIGRvbid0IHNlZSBob3cgaXQgdHJhbnNsYXRlcyBpbiB0aGUKYmVsb3cg Y29kZS4KCj4gVGhlIHBlcmZvcm1hbmNlIG9mIGNvbnRpbnVvdXMgcmVhZCBtb2RlIGlzIGFzIGZv bGxvd3MuCgpIZXJlIGlzIGEgYmVuY2htYXJrIG9mIHdoYXQgY2FuIGJlIGFjaGlldmVkIHdpdGgg YSBmbGFzaCBjb25maWd1cmVkCmludG8gcXVhZCBtb2RlIGFjY2Vzc2VkIG9uIGEgU1BJIGJ1cyBy dW5uaW5nIGF0IDI1TUh6LgoKPiBTZXQgdGhlCj4gZmxhc2ggdG8gUVVBRCBtb2RlIGFuZCBydW4g MjVNWiBkaXJlY3QgbWFwcGluZyBtb2RlIG9uIHRoZSBTUEkKPiBidXMgYW5kIHVzZSB0aGUgTVRE IHRlc3QgbW9kdWxlIHRvIHNob3cgdGhlIHBlcmZvcm1hbmNlIG9mCj4gY29udGludW91cyByZWFk cy4KPiAKPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Cj4gbXRkX3NwZWVkdGVzdDogTVREIGRldmljZTogMCAgICBjb3VudDogMTAwIAo+IG10ZF9zcGVl ZHRlc3Q6IE1URCBkZXZpY2Ugc2l6ZSAyNjg0MzU0NTYsIGVyYXNlYmxvY2sgc2l6ZSAxMzEwNzIs Cj4gICAgICAgICAgICAgICAgcGFnZSBzaXplIDIwNDgsIGNvdW50IG9mIGVyYXNlYmxvY2tzIDIw NDgsIHBhZ2VzIHBlcgo+IAkgICAgICAgZXJhc2VibG9jayA2NCwgT09CIHNpemUgNjQKPiBtdGRf dGVzdDogc2Nhbm5pbmcgZm9yIGJhZCBlcmFzZWJsb2Nrcwo+IG10ZF90ZXN0OiBzY2FubmVkIDEw MCBlcmFzZWJsb2NrcywgMCBhcmUgYmFkIAo+IG10ZF9zcGVlZHRlc3Q6IHRlc3RpbmcgZXJhc2Vi bG9jayB3cml0ZSBzcGVlZAo+IG10ZF9zcGVlZHRlc3Q6IGVyYXNlYmxvY2sgd3JpdGUgc3BlZWQg aXMgMTI5OCBLaUIvcwo+IG10ZF9zcGVlZHRlc3Q6IHRlc3RpbmcgZXJhc2VibG9jayByZWFkIHNw ZWVkCj4gbXRkX3NwZWVkdGVzdDogZXJhc2VibG9jayByZWFkIHNwZWVkIGlzIDExMDUzIEtpQi9z Cj4gbXRkX3NwZWVkdGVzdDogdGVzdGluZyBwYWdlIHdyaXRlIHNwZWVkCj4gbXRkX3NwZWVkdGVz dDogcGFnZSB3cml0ZSBzcGVlZCBpcyAxMjkxIEtpQi9zCj4gbXRkX3NwZWVkdGVzdDogdGVzdGlu ZyBwYWdlIHJlYWQgc3BlZWQKPiBtdGRfc3BlZWR0ZXN0OiBwYWdlIHJlYWQgc3BlZWQgaXMgMzI0 MCBLaUIvcwo+IG10ZF9zcGVlZHRlc3Q6IHRlc3RpbmcgMiBwYWdlIHdyaXRlIHNwZWVkCj4gbXRk X3NwZWVkdGVzdDogMiBwYWdlIHdyaXRlIHNwZWVkIGlzIDEyODkgS2lCL3MKPiBtdGRfc3BlZWR0 ZXN0OiB0ZXN0aW5nIDIgcGFnZSByZWFkIHNwZWVkCj4gbXRkX3NwZWVkdGVzdDogMiBwYWdlIHJl YWQgc3BlZWQgaXMgMjkwOSBLaUIvcwo+IG10ZF9zcGVlZHRlc3Q6IFRlc3RpbmcgZXJhc2Ugc3Bl ZWQKPiBtdGRfc3BlZWR0ZXN0OiBlcmFzZSBzcGVlZCBpcyA0NTIyOSBLaUIvcwo+IG10ZF9zcGVl ZHRlc3Q6IFRlc3RpbmcgMnggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQKPiBtdGRfc3BlZWR0ZXN0 OiAyeCBtdWx0aS1ibG9jayBlcmFzZSBzcGVlZCBpcyA2MjEzNSBLaUIvcwo+IG10ZF9zcGVlZHRl c3Q6IFRlc3RpbmcgNHggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQKPiBtdGRfc3BlZWR0ZXN0OiA0 eCBtdWx0aS1ibG9jayBlcmFzZSBzcGVlZCBpcyA2MDA5MyBLaUIvcwo+IG10ZF9zcGVlZHRlc3Q6 IFRlc3RpbmcgOHggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQKPiBtdGRfc3BlZWR0ZXN0OiA4eCBt dWx0aS1ibG9jayBlcmFzZSBzcGVlZCBpcyA2MTI0NCBLaUIvcwo+IG10ZF9zcGVlZHRlc3Q6IFRl c3RpbmcgMTZ4IG11bHRpLWJsb2NrIGVyYXNlIHNwZWVkCj4gbXRkX3NwZWVkdGVzdDogMTZ4IG11 bHRpLWJsb2NrIGVyYXNlIHNwZWVkIGlzIDYxNTM4IEtpQi9zCj4gbXRkX3NwZWVkdGVzdDogVGVz dGluZyAzMnggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQKPiBtdGRfc3BlZWR0ZXN0OiAzMnggbXVs dGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMgNjE4MzUgS2lCL3MKPiBtdGRfc3BlZWR0ZXN0OiBUZXN0 aW5nIDY0eCBtdWx0aS1ibG9jayBlcmFzZSBzcGVlZAo+IG10ZF9zcGVlZHRlc3Q6IDY0eCBtdWx0 aS1ibG9jayBlcmFzZSBzcGVlZCBpcyA2MDY2MyBLaUIvcwo+IG10ZF9zcGVlZHRlc3Q6IGZpbmlz aGVkCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ IAo+IFNpZ25lZC1vZmYtYnk6IFpoZW5neHVuIDx6aGVuZ3h1bmxpLm14aWNAZ21haWwuY29tPgoK ICAgICAgICAgICAgICAgICAgICAgICAgICBMaSA/Cgo+IC0tLQo+ICBkcml2ZXJzL210ZC9uYW5k L3NwaS9jb3JlLmMgfCA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4g IDEgZmlsZSBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvc3BpL2NvcmUuYyBiL2RyaXZlcnMvbXRkL25hbmQv c3BpL2NvcmUuYwo+IGluZGV4IDM4MDQxMWZlYWI2Yy4uOTkwODM2ZmZmOTI0IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvbXRkL25hbmQvc3BpL2NvcmUuYwo+ICsrKyBiL2RyaXZlcnMvbXRkL25hbmQv c3BpL2NvcmUuYwo+IEBAIC0zODMsNyArMzgzLDEwIEBAIHN0YXRpYyBpbnQgc3BpbmFuZF9yZWFk X2Zyb21fY2FjaGVfb3Aoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kLAo+ICAJdTE2IGNv bHVtbiA9IDA7Cj4gIAlzc2l6ZV90IHJldDsKPiAgCj4gLQlpZiAocmVxLT5kYXRhbGVuKSB7Cj4g KwlpZiAoc3BpbmFuZC0+dXNlX2NvbnRpbnVvdXNfcmVhZCkgewo+ICsJCWJ1ZiA9IHJlcS0+ZGF0 YWJ1Zi5pbjsKPiArCQluYnl0ZXMgPSByZXEtPmRhdGFsZW47CgpUaGF0IGRvZXMgbm90IHNvdW5k IG5lY2Vzc2FyeSwgcGxlYXNlIHRyeSB0byBrZWVwIHRoZSBleGlzdGluZyBsb2dpYy4KCj4gKwl9 IGVsc2UgaWYgKHJlcS0+ZGF0YWxlbikgewo+ICAJCWJ1ZiA9IHNwaW5hbmQtPmRhdGFidWY7Cj4g IAkJbmJ5dGVzID0gbmFuZGRldl9wYWdlX3NpemUobmFuZCk7Cj4gIAkJY29sdW1uID0gMDsKPiBA QCAtNDEyLDYgKzQxNSw5IEBAIHN0YXRpYyBpbnQgc3BpbmFuZF9yZWFkX2Zyb21fY2FjaGVfb3Ao c3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kLAo+ICAJCWJ1ZiArPSByZXQ7Cj4gIAl9Cj4g IAo+ICsJaWYgKHNwaW5hbmQtPnVzZV9jb250aW51b3VzX3JlYWQpCj4gKwkJcmV0dXJuIDA7Cj4g Kwo+ICAJaWYgKHJlcS0+ZGF0YWxlbikKPiAgCQltZW1jcHkocmVxLT5kYXRhYnVmLmluLCBzcGlu YW5kLT5kYXRhYnVmICsgcmVxLT5kYXRhb2ZmcywKPiAgCQkgICAgICAgcmVxLT5kYXRhbGVuKTsK PiBAQCAtNjQwLDYgKzY0Niw4MSBAQCBzdGF0aWMgaW50IHNwaW5hbmRfd3JpdGVfcGFnZShzdHJ1 Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQsCj4gIAlyZXR1cm4gbmFuZF9lY2NfZmluaXNoX2lv X3JlcShuYW5kLCAoc3RydWN0IG5hbmRfcGFnZV9pb19yZXEgKilyZXEpOwo+ICB9Cj4gIAo+ICtz dGF0aWMgaW50IHNwaW5hbmRfbXRkX2NvbnRpbnVvdXNfcmVhZChzdHJ1Y3QgbXRkX2luZm8gKm10 ZCwgbG9mZl90IGZyb20sCj4gKwkJCQkgICAgICAgc3RydWN0IG10ZF9vb2Jfb3BzICpvcHMsCj4g KwkJCQkgICAgICAgc3RydWN0IG5hbmRfaW9faXRlciAqaXRlcikKPiArewo+ICsJc3RydWN0IHNw aW5hbmRfZGV2aWNlICpzcGluYW5kID0gbXRkX3RvX3NwaW5hbmQobXRkKTsKPiArCXN0cnVjdCBu YW5kX2RldmljZSAqbmFuZCA9IG10ZF90b19uYW5kZGV2KG10ZCk7Cj4gKwlpbnQgcmV0ID0gMDsK PiArCj4gKwkvKgo+ICsJICogU2luY2UgdGhlIGNvbnRpbnVvdXMgcmVhZCBtb2RlIGNhbiBvbmx5 IHJlYWQgdGhlIGVudGlyZSBwYWdlIG9mIGRhdGEKPiArCSAqIGFuZCBjYW5ub3QgcmVhZCB0aGUg b29iIGRhdGEsIHRoZXJlZm9yZSwgb25seSBFQ0MtRnJlZSBTUEktTkFORCBzdXBwb3J0Cj4gKwkg KiBjb250aW51b3VzIHJlYWQgbW9kZSBub3cuCgpUaGF0IGlzIHNpbXBseSBub3QgcG9zc2libGUu IEF0IHRoZSB2ZXJ5IGxlYXN0IHdlIG5lZWQgb24tZGllIEVDQyBOQU5ECmNoaXBzIHRvIHdvcmsg b3RoZXJ3aXNlIHRoZSBmZWF0dXJlIHdpbGwgaGF2ZSBub3QgaW1wYWN0LiBUaGUgcmF3IHBhdGgK aXMgdGhlIHNsb3cgcGF0aCwgd2UgZG9uJ3QgY2FyZSBhYm91dCBwZXJmb3JtYW5jZXMgdGhlcmUu Cgo+ICsJICovCj4gKwlpdGVyLT5yZXEudHlwZSA9IE5BTkRfUEFHRV9SRUFEOwo+ICsJaXRlci0+ cmVxLm1vZGUgPSBNVERfT1BTX1JBVzsKPiArCWl0ZXItPnJlcS5kYXRhb2ZmcyA9IG5hbmRkZXZf b2Zmc190b19wb3MobmFuZCwgZnJvbSwgJml0ZXItPnJlcS5wb3MpOwo+ICsJaXRlci0+cmVxLmRh dGFidWYuaW4gPSBvcHMtPmRhdGJ1ZjsKPiArCWl0ZXItPnJlcS5kYXRhbGVuID0gb3BzLT5sZW47 Cj4gKwo+ICsJaWYgKGZyb20gJiAobmFuZGRldl9wYWdlX3NpemUobmFuZCkgLSAxKSkgewo+ICsJ CXByX2RlYnVnKCIlczogdW5hbGlnbmVkIGFkZHJlc3NcbiIsIF9fZnVuY19fKTsKCldlIGNhbiBz dXBwb3J0IHVuYWxpZ25lZCBhZGRyZXNzZXMsIGp1c3QgbGlrZSB3ZSBkbyBmb3Igbm9ybWFsIGFj Y2Vzc2VzLgoKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCj4gKwlyZXQgPSBzcGluYW5k X2NvbnRpbnVvdXNfcmVhZF9lbmFibGUoc3BpbmFuZCk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVy biByZXQ7Cj4gKwo+ICsJc3BpbmFuZC0+dXNlX2NvbnRpbnVvdXNfcmVhZCA9IHRydWU7Cj4gKwo+ ICsJcmV0ID0gc3BpbmFuZF9zZWxlY3RfdGFyZ2V0KHNwaW5hbmQsIGl0ZXItPnJlcS5wb3MudGFy Z2V0KTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwkvKgo+ICsJICogVGhl IGNvbnRpbnVvdXMgcmVhZCBvcGVyYXRpb24gaW5jbHVkaW5nOiBmaXJzdGx5LCBzdGFydGluZyB3 aXRoIHRoZQo+ICsJICogcGFnZSByZWFkIGNvbW1hbmQgYW5kIHRoZSAxIHN0IHBhZ2UgZGF0YSB3 aWxsIGJlIHJlYWQgaW50byB0aGUgY2FjaGUKPiArCSAqIGFmdGVyIHRoZSByZWFkIGxhdGVuY3kg dFJELiBTZWNvbmRseSwgSXNzdWluZyB0aGUgUmVhZCBGcm9tIENhY2hlCj4gKwkgKiBjb21tYW5k cyAoMDNoLzBCaC8zQmgvNkJoL0JCaC9FQmgpIHRvIHJlYWQgb3V0IHRoZSBkYXRhIGZyb20gY2Fj aGUKPiArCSAqIGNvbnRpbnVvdXNseS4KPiArCSAqCj4gKwkgKiBUaGUgY2FjaGUgaXMgZGl2aWRl ZCBpbnRvIHR3byBoYWx2ZXMsIHdoaWxlIG9uZSBoYWxmIG9mIHRoZSBjYWNoZSBpcwo+ICsJICog b3V0cHV0dGluZyB0aGUgZGF0YSwgdGhlIG90aGVyIGhhbGYgd2lsbCBiZSBsb2FkZWQgZm9yIHRo ZSBuZXcgZGF0YTsKPiArCSAqIHRoZXJlZm9yZSwgdGhlIGhvc3QgY2FuIHJlYWQgb3V0IHRoZSBk YXRhIGNvbnRpbnVvdXNseSBmcm9tIHBhZ2UgdG8KPiArCSAqIHBhZ2UuIE11bHRpcGxlIG9mIFJl YWQgRnJvbSBDYWNoZSBjb21tYW5kcyBjYW4gYmUgaXNzdWVkIGluIG9uZQo+ICsJICogY29udGlu dW91cyByZWFkIG9wZXJhdGlvbiwgZWFjaCBSZWFkIEZyb20gQ2FjaGUgY29tbWFuZCBpcyByZXF1 aXJlZAo+ICsJICogdG8gcmVhZCBtdWx0aXBsZSA0LWJ5dGUgZGF0YSBleGFjdGx5OyBvdGhlcndp c2UsIHRoZSBkYXRhIG91dHB1dCB3aWxsCj4gKwkgKiBiZSBvdXQgb2Ygc2VxdWVuY2UgZnJvbSBv bmUgUmVhZCBGcm9tIENhY2hlIGNvbW1hbmQgdG8gYW5vdGhlciBSZWFkCj4gKwkgKiBGcm9tIENh Y2hlIGNvbW1hbmQuCj4gKwkgKgo+ICsJICogQWZ0ZXIgYWxsIHRoZSBkYXRhIGlzIHJlYWQgb3V0 LCB0aGUgaG9zdCBzaG91bGQgcHVsbCBDUyMgaGlnaCB0bwo+ICsJICogdGVybWluYXRlIHRoaXMg Y29udGludW91cyByZWFkIG9wZXJhdGlvbiBhbmQgd2FpdCBhIDZ1cyBvZiB0UlNUIGZvcgo+ICsJ ICogdGhlIE5BTkQgZGV2aWNlIHJlc2V0cyByZWFkIG9wZXJhdGlvbi4gVGhlIGRhdGEgb3V0cHV0 IGZvciBlYWNoIHBhZ2UKPiArCSAqIHdpbGwgYWx3YXlzIHN0YXJ0IGZyb20gYnl0ZSAwIGFuZCBh IGZ1bGwgcGFnZSBkYXRhIHNob3VsZCBiZSByZWFkIG91dAo+ICsJICogZm9yIGVhY2ggcGFnZS4K PiArCSAqLwo+ICsJcmV0ID0gc3BpbmFuZF9yZWFkX3BhZ2Uoc3BpbmFuZCwgJml0ZXItPnJlcSk7 Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0ID0gc3BpbmFuZF9yZXNl dF9vcChzcGluYW5kKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlyZXQg PSBzcGluYW5kX2NvbnRpbnVvdXNfcmVhZF9kaXNhYmxlKHNwaW5hbmQpOwo+ICsJaWYgKHJldCkK PiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCXNwaW5hbmQtPnVzZV9jb250aW51b3VzX3JlYWQgPSBm YWxzZTsKPiArCj4gKwlvcHMtPnJldGxlbiA9IGl0ZXItPnJlcS5kYXRhbGVuOwo+ICsKPiArCXJl dHVybiByZXQ7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgc3BpbmFuZF9tdGRfcmVhZChzdHJ1Y3Qg bXRkX2luZm8gKm10ZCwgbG9mZl90IGZyb20sCj4gIAkJCSAgICBzdHJ1Y3QgbXRkX29vYl9vcHMg Km9wcykKPiAgewo+IEBAIC02NTYsNiArNzM3LDE5IEBAIHN0YXRpYyBpbnQgc3BpbmFuZF9tdGRf cmVhZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IGZyb20sCj4gIAo+ICAJbXV0ZXhfbG9j aygmc3BpbmFuZC0+bG9jayk7Cj4gIAo+ICsJLyoKPiArCSAqIElmIHRoZSBkZXZpY2Ugc3VwcG9y dCBjb250aW51b3VzIHJlYWQgbW9kZSBhbmQgcmVhZCBsZW5ndGggbGFyZ2VyCj4gKwkgKiB0aGFu IG9uZSBwYWdlIHNpemUgd2lsbCBlbnRlciB0aGUgY29udGludW91cyByZWFkIG1vZGUuIFRoaXMg bW9kZQo+ICsJICogaGVscHMgYXZvaWQgaXNzdWluZyBhIHBhZ2UgcmVhZCBjb21tYW5kIGFuZCBy ZWFkIGZyb20gY2FjaGUgY29tbWFuZAo+ICsJICogYWdhaW4sIGFuZCBpbXByb3ZlcyByZWFkIHBl cmZvcm1hbmNlIGZvciBjb250aW51b3VzIGFkZHJlc3Nlcy4KPiArCSAqLwo+ICsJaWYgKChzcGlu YW5kLT5mbGFncyAmIFNQSU5BTkRfSEFTX0NPTlRfUkVBRF9CSVQpICYmCj4gKwkgICAgKG9wcy0+ bGVuID4gbmFuZGRldl9wYWdlX3NpemUobmFuZCkpKSB7Cj4gKwkJcmV0ID0gc3BpbmFuZF9tdGRf Y29udGludW91c19yZWFkKG10ZCwgZnJvbSwgb3BzLCAmaXRlcik7Cj4gKwo+ICsJCWdvdG8gY29u dGludW91c19yZWFkX2ZpbmlzaDsKCllvdSBjYW4gcmVsZWFzZSB0aGUgbXV0ZXggYW5kIHJldHVy biBpbW1lZGlhdGVseS4KCj4gKwl9Cj4gKwo+ICAJbmFuZGRldl9pb19mb3JfZWFjaF9wYWdlKG5h bmQsIE5BTkRfUEFHRV9SRUFELCBmcm9tLCBvcHMsICZpdGVyKSB7Cj4gIAkJaWYgKGRpc2FibGVf ZWNjKQo+ICAJCQlpdGVyLnJlcS5tb2RlID0gTVREX09QU19SQVc7Cj4gQEAgLTY3OCw2ICs3NzIs NyBAQCBzdGF0aWMgaW50IHNwaW5hbmRfbXRkX3JlYWQoc3RydWN0IG10ZF9pbmZvICptdGQsIGxv ZmZfdCBmcm9tLAo+ICAJCW9wcy0+b29icmV0bGVuICs9IGl0ZXIucmVxLm9vYmxlbjsKPiAgCX0K PiAgCj4gK2NvbnRpbnVvdXNfcmVhZF9maW5pc2g6Cj4gIAltdXRleF91bmxvY2soJnNwaW5hbmQt PmxvY2spOwo+ICAKPiAgCWlmIChlY2NfZmFpbGVkICYmICFyZXQpCgoKVGhhbmtzLApNaXF1w6hs CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K TGludXggTVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo=