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 81EB2C77B7E for ; Thu, 1 Jun 2023 08:31:44 +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=0DIfGOld/6Iu3W5Z+9XMPwMsvh6H2CM+L69vnxrz4a4=; b=J9uuFiT6eutPyv bpXWqWONN11IGAfX7ilsokX70JSFTb6cr5w5ifaaczkzpWdKMYcyEsNuD6ahpi8CQdvhS69kL5VK6 IZh7abFl3VF09vGqj45bb3qUdjP8jU8EVEhAosf5twGQHoHklHB30wSx5zUTiteMw1epcSzjkEXhZ TjguUIh5jOSGNUt6aCvTUEA1DlVblCsbQ2GDeymE2mfSXnDqr37P3XfEbf0fMHIKbvmOxa+lQumQS W+0f3O+sHG4tayovmc3HcFau/kur29pJJybUAj+tpOjAsQxexwaV9AVdwIShkiyMM57TxothlT2E8 c35jqmCwnHNI3QHLfcLQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q4diL-002ZGm-19; Thu, 01 Jun 2023 08:31:21 +0000 Received: from relay8-d.mail.gandi.net ([2001:4b98:dc4:8::228]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q4diH-002ZF7-0E; Thu, 01 Jun 2023 08:31:19 +0000 X-GND-Sasl: miquel.raynal@bootlin.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1685608274; 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=Cah2zLTpzlNGsP/8SUSmD1ez7BpuFUpsiaP0UNlHnqA=; b=LayGOI6JXCqX5cyoOrcKYQHDUxDUsFRYiLBJFDozVs6WJIBSROInUjVxGThdE6HaGdMryQ A4qnq70WlvRV0rVjYIsa7nnYoYtpKCNnSbvJm0ngAJux7WDoTiYsiX+4IwLPbOmjJqPcvD IJ11XkZK0v6xP5Nc9ZZlREv0LNhXDLHeo272qzEsbBZNFpCTBrPkP/dxEzoCQO5q4Ehx9R KuI86HFwEIPQOwRauirkxcv5tCK9k0IGiWt64z+e0MvzAxfoff410Zs+3w4PSnQtKL1E3b A3enSCg/ISp/8Y0fFFTVWhpK4zDlGBesBCeJfzfi6Xlx8ap7QblJ2EWplhnFng== X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com Received: by mail.gandi.net (Postfix) with ESMTPSA id 3E16D1BF205; Thu, 1 Jun 2023 08:31:12 +0000 (UTC) Date: Thu, 1 Jun 2023 10:31:11 +0200 From: Miquel Raynal To: Arseniy Krasnov Cc: Liang Yang , Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , , , , , , Subject: Re: [RFC PATCH v5 3/6] mtd: rawnand: meson: only expose unprotected user OOB bytes Message-ID: <20230601103111.6840acc0@xps-13> In-Reply-To: <20230601061850.3907800-4-AVKrasnov@sberdevices.ru> References: <20230601061850.3907800-1-AVKrasnov@sberdevices.ru> <20230601061850.3907800-4-AVKrasnov@sberdevices.ru> 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-20230601_013117_557488_E79AB58E X-CRM114-Status: GOOD ( 42.94 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgQXJzZW5peSwKCkFWS3Jhc25vdkBzYmVyZGV2aWNlcy5ydSB3cm90ZSBvbiBUaHUsIDEgSnVu IDIwMjMgMDk6MTg6NDYgKzAzMDA6Cgo+IFRoaXMgbW92ZXMgZnJlZSBieXRlcyBvZiBPT0IgdG8g bm9uLXByb3RlY3RlZCBFQ0MgYXJlYS4gSXQgaXMgbmVlZGVkIHRvCgpBcyB3ZSBkaXNjdXNzZWQs IEkgZXhwZWN0IHRoaXMgY29tbWl0IHRvIGp1c3QgY2hhbmdlIHRoZSBPT0IgbGF5b3V0IHRvCmV4 cG9zZSB1bnByb3RlY3RlZCBPT0IgYnl0ZXMgdG8gdGhlIHVzZXIsIHRoYXQgaXMgdGhlIG9ubHkg Y2hhbmdlIHRoaXMKY29tbWl0IHNob3VsZCBjYXJyeS4gSWYgdGhhdCBkb2VzIG5vdCB3b3JrLCB5 b3Ugc2hvdWxkIGFkZCBhCnByZXBhcmF0aW9uIHBhdGNoLgoKPiBtYWtlIEpGRlMyIHdvcmtzIGNv cnJlY3RseSB3aXRoIHRoaXMgTkFORCBjb250cm9sbGVyLiBQcm9ibGVtIGZpcmVzIHdoZW4KPiBK RkZTMiBkcml2ZXIgd3JpdGVzIGNsZWFubWFya2VyIHRvIHNvbWUgcGFnZSBhbmQgbGF0ZXIgaXQg dHJpZXMgdG8gd3JpdGUKPiB0byB0aGlzIHBhZ2UgLSB3cml0ZSB3aWxsIGJlIGRvbmUgc3VjY2Vz c2Z1bGx5LCBidXQgYWZ0ZXIgdGhhdCBzdWNoIHBhZ2UKPiBiZWNvbWVzIHVucmVhZGFibGUgZHVl IHRvIGludmFsaWQgRUNDIGNvZGVzLiBUaGlzIGhhcHBlbnMgYmVjYXVzZSBzZWNvbmQKPiB3cml0 ZSBuZWVkcyB0byB1cGRhdGUgRUNDIGNvZGVzLCBidXQgaXQgaXMgaW1wb3NzaWJsZSB0byBkbyBp dCBjb3JyZWN0bHkKPiB3aXRob3V0IGJsb2NrIGVyYXNlLiBTbyBpZGVhIG9mIHRoaXMgcGF0Y2gg aXMgdG8gdXNlIHRoZSB1bnByb3RlY3RlZCBPT0IKPiBhcmVhIHRvIHN0b3JlIHRoZSBjbGVhbm1h cmtlcnMsIHNvIHRoYXQgdGhleSBjYW4gYmUgd3JpdHRlbiBieSB0aGUKPiBmaWxlc3lzdGVtIHdp dGhvdXQgY2FyaW5nIG11Y2ggYWJvdXQgdGhlIHBhZ2UgYmVpbmcgZW1wdHkgb3Igbm90OiB0aGUK PiBFQ0MgY29kZXMgd2lsbCBub3QgYmUgd3JpdHRlbiBhbnl3YXkuCj4gCj4gSkZGUzIgaXMgb25s eSB1c2VmdWwgb24gdGlueSBOQU5EIGRldmljZXMsIHdoZXJlIFVCSSBkb2VzIG5vdCBmaXQsIHdo aWNoCj4gYXJlIHVzdWFsbHkgdHJ1ZSBTTEMgZmxhc2hlcywgd2l0aCB0aGUgY2FwYWJpbGl0eSBv ZiB3cml0aW5nIGEgcGFnZSB3aXRoCj4gZW1wdHkgKDB4RkYpIGRhdGEsIGFuZCBzdGlsbCBiZSBh YmxlIHRvIHdyaXRlIGFjdHVhbCBkYXRhIHRvIGl0IGxhdGVyIGluCj4gYSBzZWNvbmQgd3JpdGUu Cj4gCj4gU2lnbmVkLW9mZi1ieTogQXJzZW5peSBLcmFzbm92IDxBVktyYXNub3ZAc2JlcmRldmlj ZXMucnU+Cj4gLS0tCj4gIENoYW5nZWxvZyB2NC0+djU6Cj4gICogRHJvcCBjb3NtZXRpYyBjaGFu Z2VzIGZyb20gdGhpcyBwYXRjaC4KPiAgKiBEbyBub3QgaWdub3JlIEVDQyBwcm90ZWN0ZWQgdXNl ciBieXRlcyBwcm92aWRlZCBieSBody4gRXZlbiB0aGVzZQo+ICAgIGJ5dGVzIGFyZSBvdXQgb2Yg dXNlciBhcmVhIG9mIE9PQiwgaXRzIHZhbHVlcyBhcmUgc3RpbGwgcmVhZCBmcm9tCj4gICAgdGhl IHByb3ZpZGVkIE9PQiBidWZmZXIgYW5kIHdyaXR0ZW4gYnkgaGFyZHdhcmUuIFNhbWUgYmVoYXZp b3VyIGlzCj4gICAgcHJlc2VydmVkIGZvciByZWFkIGFjY2VzcyAtIHN1Y2ggYnl0ZXMgYXJlIHJl YWQgZnJvbSBETUEgYnVmZmVyIGFuZAo+ICAgIHBsYWNlZCB0byBPT0IgYnVmZmVyLgo+ICAqIE9P QiByZWFkIGFuZCB3cml0ZSBiZWNvbWUgbW9yZSBsaWdodHdlaWdodCBiZWNhdXNlIEkgcmVtb3Zl ZCBoZWF2eQo+ICAgIFJFQUQwIGFuZCBQQUdFUFJPRyBjb21tYW5kIGZyb20gaXQgKGJvdGggY29t bWFuZHMgYXJlIHN0aWxsIHNlbnQKPiAgICB3aGVuIE9PQiBhY2Nlc3MgaXMgcGVyZm9ybWVkIHVz aW5nIE9PQiBjYWxsYmFja3MpLiBJbiBjYXNlIG9mIHBhZ2UKPiAgICByZWFkL3dyaXRlIE9PQiBk YXRhIGlzIGhhbmRsZWQgaW4gdGhlIGludGVybmFsIFNSQU0gb2YgdGhlIGNvbnRyb2xsZXIuCj4g ICogQ29tbWl0IG1lc3NhZ2UgdXBkYXRlZC4KPiAgKiBUZW1wb3JhcnkgYnVmZmVyIGZvciBPT0Ig cmVhZC93cml0ZSBpcyByZW1vdmVkLiBTZWVtcyBldmVyeXRoaW5nCj4gICAgd29ya3MgY29ycmVj dGx5IHdpdGhvdXQgaXQuCj4gCj4gIGRyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYyB8 IDEzNCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDEx NyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tdGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVzb25f bmFuZC5jCj4gaW5kZXggODJhNjI5MDI1YWRjLi5lNDJjMjhiZTAyZjMgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jCj4gKysrIGIvZHJpdmVycy9tdGQvbmFu ZC9yYXcvbWVzb25fbmFuZC5jCj4gQEAgLTM1OCw4ICszNTgsMTEgQEAgc3RhdGljIHU4ICptZXNv bl9uZmNfZGF0YV9wdHIoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCwgaW50IGkpCj4gIHN0YXRpYyB2 b2lkIG1lc29uX25mY19nZXRfZGF0YV9vb2Ioc3RydWN0IG5hbmRfY2hpcCAqbmFuZCwKPiAgCQkJ CSAgIHU4ICpidWYsIHU4ICpvb2JidWYpCj4gIHsKPiArCXN0cnVjdCBtZXNvbl9uZmNfbmFuZF9j aGlwICptZXNvbl9jaGlwID0gdG9fbWVzb25fbmFuZChuYW5kKTsKPiArCXN0cnVjdCBtdGRfaW5m byAqbXRkID0gbmFuZF90b19tdGQobmFuZCk7Cj4gIAlpbnQgaSwgb29iX2xlbiA9IDA7Cj4gIAl1 OCAqZHNyYywgKm9zcmM7Cj4gKwl1OCAqb29idGFpbDsKPiAgCj4gIAlvb2JfbGVuID0gbmFuZC0+ ZWNjLmJ5dGVzICsgMjsKPiAgCWZvciAoaSA9IDA7IGkgPCBuYW5kLT5lY2Muc3RlcHM7IGkrKykg ewo+IEBAIC0zNjgsMTcgKzM3MSwyNyBAQCBzdGF0aWMgdm9pZCBtZXNvbl9uZmNfZ2V0X2RhdGFf b29iKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsCj4gIAkJCW1lbWNweShidWYsIGRzcmMsIG5hbmQt PmVjYy5zaXplKTsKPiAgCQkJYnVmICs9IG5hbmQtPmVjYy5zaXplOwo+ICAJCX0KPiArCj4gIAkJ b3NyYyA9IG1lc29uX25mY19vb2JfcHRyKG5hbmQsIGkpOwo+ICAJCW1lbWNweShvb2JidWYsIG9z cmMsIG9vYl9sZW4pOwo+ICAJCW9vYmJ1ZiArPSBvb2JfbGVuOwo+ICAJfQo+ICsKPiArCW9vYnRh aWwgPSBtZXNvbl9jaGlwLT5kYXRhX2J1ZiArIG5hbmQtPmVjYy5zdGVwcyAqCj4gKwkJICAobmFu ZC0+ZWNjLnNpemUgKyBvb2JfbGVuKTsKPiArCj4gKwkvKiAnb29iYnVmJyBwb2ludHMgdG8gdGhl IHN0YXJ0IG9mIHVzZXIgYXJlYS4gKi8KPiArCW1lbWNweShvb2JidWYsIG9vYnRhaWwsIG10ZC0+ b29ic2l6ZSAtIG5hbmQtPmVjYy5zdGVwcyAqIG9vYl9sZW4pOwo+ICB9Cj4gIAo+ICBzdGF0aWMg dm9pZCBtZXNvbl9uZmNfc2V0X2RhdGFfb29iKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsCj4gIAkJ CQkgICBjb25zdCB1OCAqYnVmLCB1OCAqb29iYnVmKQo+ICB7Cj4gKwlzdHJ1Y3QgbWVzb25fbmZj X25hbmRfY2hpcCAqbWVzb25fY2hpcCA9IHRvX21lc29uX25hbmQobmFuZCk7Cj4gKwlzdHJ1Y3Qg bXRkX2luZm8gKm10ZCA9IG5hbmRfdG9fbXRkKG5hbmQpOwo+ICAJaW50IGksIG9vYl9sZW4gPSAw Owo+ICAJdTggKmRzcmMsICpvc3JjOwo+ICsJdTggKm9vYnRhaWw7Cj4gIAo+ICAJb29iX2xlbiA9 IG5hbmQtPmVjYy5ieXRlcyArIDI7Cj4gIAlmb3IgKGkgPSAwOyBpIDwgbmFuZC0+ZWNjLnN0ZXBz OyBpKyspIHsKPiBAQCAtMzkxLDYgKzQwNCwxMiBAQCBzdGF0aWMgdm9pZCBtZXNvbl9uZmNfc2V0 X2RhdGFfb29iKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsCj4gIAkJbWVtY3B5KG9zcmMsIG9vYmJ1 Ziwgb29iX2xlbik7Cj4gIAkJb29iYnVmICs9IG9vYl9sZW47Cj4gIAl9Cj4gKwo+ICsJb29idGFp bCA9IG1lc29uX2NoaXAtPmRhdGFfYnVmICsgbmFuZC0+ZWNjLnN0ZXBzICoKPiArCQkgIChuYW5k LT5lY2Muc2l6ZSArIG9vYl9sZW4pOwoKVGhpcyBpcyBhbHdheXMgdGFyZ2V0aW5nIHRoZSBzYW1l IGFyZWEsIHNvIGl0IGxvb2tzIHN0cmFuZ2UgdG8gbWUuCgo+ICsKPiArCS8qICdvb2JidWYnIHBv aW50cyB0byB0aGUgc3RhcnQgb2YgdXNlciBhcmVhLiAqLwo+ICsJbWVtY3B5KG9vYnRhaWwsIG9v YmJ1ZiwgbXRkLT5vb2JzaXplIC0gbmFuZC0+ZWNjLnN0ZXBzICogb29iX2xlbik7CgpUQkggSSBk b24ndCBnZXQgd2hhdCB5b3UgZG8gaGVyZS4KCj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgbWVzb25f bmZjX3F1ZXVlX3JiKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsIGludCB0aW1lb3V0X21zKQo+IEBA IC00MzMsNyArNDUyLDcgQEAgc3RhdGljIHZvaWQgbWVzb25fbmZjX3NldF91c2VyX2J5dGUoc3Ry dWN0IG5hbmRfY2hpcCAqbmFuZCwgdTggKm9vYl9idWYpCj4gIAlfX2xlNjQgKmluZm87Cj4gIAlp bnQgaSwgY291bnQ7Cj4gIAo+IC0JZm9yIChpID0gMCwgY291bnQgPSAwOyBpIDwgbmFuZC0+ZWNj LnN0ZXBzOyBpKyssIGNvdW50ICs9IDIpIHsKPiArCWZvciAoaSA9IDAsIGNvdW50ID0gMDsgaSA8 IG5hbmQtPmVjYy5zdGVwczsgaSsrLCBjb3VudCArPSAobmFuZC0+ZWNjLmJ5dGVzICsgMikpIHsK PiAgCQlpbmZvID0gJm1lc29uX2NoaXAtPmluZm9fYnVmW2ldOwo+ICAJCSppbmZvIHw9IG9vYl9i dWZbY291bnRdOwo+ICAJCSppbmZvIHw9IG9vYl9idWZbY291bnQgKyAxXSA8PCA4Owo+IEBAIC00 NDYsNyArNDY1LDcgQEAgc3RhdGljIHZvaWQgbWVzb25fbmZjX2dldF91c2VyX2J5dGUoc3RydWN0 IG5hbmRfY2hpcCAqbmFuZCwgdTggKm9vYl9idWYpCj4gIAlfX2xlNjQgKmluZm87Cj4gIAlpbnQg aSwgY291bnQ7Cj4gIAo+IC0JZm9yIChpID0gMCwgY291bnQgPSAwOyBpIDwgbmFuZC0+ZWNjLnN0 ZXBzOyBpKyssIGNvdW50ICs9IDIpIHsKPiArCWZvciAoaSA9IDAsIGNvdW50ID0gMDsgaSA8IG5h bmQtPmVjYy5zdGVwczsgaSsrLCBjb3VudCArPSAobmFuZC0+ZWNjLmJ5dGVzICsgMikpIHsKPiAg CQlpbmZvID0gJm1lc29uX2NoaXAtPmluZm9fYnVmW2ldOwo+ICAJCW9vYl9idWZbY291bnRdID0g KmluZm87Cj4gIAkJb29iX2J1Zltjb3VudCArIDFdID0gKmluZm8gPj4gODsKPiBAQCAtNjM4LDYg KzY1Nyw4NCBAQCBzdGF0aWMgaW50IG1lc29uX25mY19yd19jbWRfcHJlcGFyZV9hbmRfZXhlY3V0 ZShzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gK3N0YXRp YyB1MzIgbWVzb25fbmZjX29vYl9mcmVlX2J5dGVzKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQpCj4g K3sKPiArCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQobmFuZCk7Cj4gKwo+ICsJ cmV0dXJuIG10ZC0+b29ic2l6ZSAtIG5hbmQtPmVjYy5zdGVwcyAqIChuYW5kLT5lY2MuYnl0ZXMg KyAyKTsKClRoaXMgbG9va3MgbGlrZSBhIHN0YXRpYyB2YWx1ZSwganVzdCBzYXZlIGl0IHNvbWV3 aGVyZSBpbnN0ZWFkIG9mCnJlY29tcHV0aW5nIGl0PwoKPiArfQo+ICsKPiArc3RhdGljIGludCBt ZXNvbl9uZmNfd3JpdGVfb29iKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsIGludCBwYWdlKQo+ICt7 Cj4gKwlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9IG5hbmRfdG9fbXRkKG5hbmQpOwo+ICsJdTMyIHBh Z2Vfc2l6ZSA9IG10ZC0+d3JpdGVzaXplICsgbXRkLT5vb2JzaXplOwo+ICsJdTMyIG9vYl9ieXRl cyA9IG1lc29uX25mY19vb2JfZnJlZV9ieXRlcyhuYW5kKTsKPiArCXU4ICpvb2JfYnVmOwo+ICsJ aW50IHJldDsKPiArCj4gKwlpZiAoIW9vYl9ieXRlcykKPiArCQlyZXR1cm4gMDsKCkNhbiB0aGlz IGhhcHBlbj8KCj4gKwo+ICsJLyogQ2FsbGVkIGFzIE9PQiB3cml0ZSBoZWxwZXIsIHdpbGwgc2Vu ZCBOQU5EX0NNRF9QQUdFUFJPRy4gKi8KPiArCWlmIChwYWdlICE9IC0xKSB7Cj4gKwkJcmV0ID0g bmFuZF9wcm9nX3BhZ2VfYmVnaW5fb3AobmFuZCwgcGFnZSwgMCwgTlVMTCwgMCk7Cj4gKwkJaWYg KHJldCkKPiArCQkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlvb2JfYnVmID0gbmFuZC0+b29i X3BvaTsKPiArCj4gKwlyZXQgPSBuYW5kX2NoYW5nZV93cml0ZV9jb2x1bW5fb3AobmFuZCwgcGFn ZV9zaXplIC0gb29iX2J5dGVzLAo+ICsJCQkJCSAgb29iX2J1ZiArIChtdGQtPm9vYnNpemUgLSBv b2JfYnl0ZXMpLAo+ICsJCQkJCSAgb29iX2J5dGVzLCBmYWxzZSk7Cj4gKwlpZiAocmV0KQo+ICsJ CXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0dXJuIChwYWdlICE9IC0xKSA/IG5hbmRfcHJvZ19wYWdl X2VuZF9vcChuYW5kKSA6IDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbWVzb25fbmZjX3JlYWRf b29iKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsIGludCBwYWdlKQo+ICt7Cj4gKwlzdHJ1Y3QgbXRk X2luZm8gKm10ZCA9IG5hbmRfdG9fbXRkKG5hbmQpOwo+ICsJdTggKm9vYl9idWYgPSBuYW5kLT5v b2JfcG9pOwo+ICsJdTMyIG9vYl9ieXRlczsKPiArCXUzMiBwYWdlX3NpemU7Cj4gKwlpbnQgcmV0 Owo+ICsJaW50IGk7Cj4gKwo+ICsJLyogQ2FsbGVkIGFzIE9PQiByZWFkIGhlbHBlciwgc2VuZCBO QU5EX0NNRF9SRUFEMC4gKi8KPiArCWlmIChwYWdlICE9IC0xKSB7CgpJIGRvbid0IGxpa2UgdGhp cyBsb2dpYyB3aXRoIHRoZSAiLTEiLCBpdCByZWFsbHkgaGlkZXMgd2hhdCB0aGUKY29udHJvbGxl ciBuZWVkcyB0byBkbywgaWYgeW91IG5lZWQgYSBoZWxwZXIgdG8gc2VuZCBhIGNvbW1hbmQsIHRo ZW4KY3JlYXRlIHRoYXQgaGVscGVyIGFuZCBnaXZlIGl0IGEgZGVjZW50IG5hbWUuCgo+ICsJCXJl dCA9IG5hbmRfcmVhZF9wYWdlX29wKG5hbmQsIHBhZ2UsIDAsIE5VTEwsIDApOwo+ICsJCWlmIChy ZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJLyogUmVhZCBFQ0MgY29kZXMgYW5k IHVzZXIgYnl0ZXMuICovCj4gKwlmb3IgKGkgPSAwOyBpIDwgbmFuZC0+ZWNjLnN0ZXBzOyBpKysp IHsKPiArCQl1MzIgZWNjX29mZnMgPSBuYW5kLT5lY2Muc2l6ZSAqIChpICsgMSkgKwo+ICsJCQkg ICAgICAgKG5hbmQtPmVjYy5ieXRlcyArIDIpICogaTsKPiArCj4gKwkJcmV0ID0gbmFuZF9jaGFu Z2VfcmVhZF9jb2x1bW5fb3AobmFuZCwgZWNjX29mZnMsCj4gKwkJCQkJCSBvb2JfYnVmICsgaSAq IChuYW5kLT5lY2MuYnl0ZXMgKyAyKSwKPiArCQkJCQkJIChuYW5kLT5lY2MuYnl0ZXMgKyAyKSwg ZmFsc2UpOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJb29i X2J5dGVzID0gbWVzb25fbmZjX29vYl9mcmVlX2J5dGVzKG5hbmQpOwo+ICsKPiArCWlmICghb29i X2J5dGVzKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCXBhZ2Vfc2l6ZSA9IG10ZC0+d3JpdGVzaXpl ICsgbXRkLT5vb2JzaXplOwo+ICsKPiArCXJldCA9IG5hbmRfY2hhbmdlX3JlYWRfY29sdW1uX29w KG5hbmQsIHBhZ2Vfc2l6ZSAtIG9vYl9ieXRlcywKPiArCQkJCQkgb29iX2J1ZiArIChtdGQtPm9v YnNpemUgLSBvb2JfYnl0ZXMpLAo+ICsJCQkJCSBvb2JfYnl0ZXMsIGZhbHNlKTsKPiArCj4gKwly ZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IG1lc29uX25mY193cml0ZV9wYWdlX3N1 YihzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLAo+ICAJCQkJICAgIGludCBwYWdlLCBpbnQgcmF3KQo+ ICB7Cj4gQEAgLTY3NCw2ICs3NzEsMTIgQEAgc3RhdGljIGludCBtZXNvbl9uZmNfd3JpdGVfcGFn ZV9zdWIoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCwKPiAgCQkJCSAgICAgTkZDX0NNRF9TQ1JBTUJM RVJfRElTQUJMRSk7Cj4gIAl9Cj4gIAo+ICsJaWYgKCFyYXcpIHsKCldoeSB0aGlzIGNoZWNrPwoK WW91IHNob3VsZCBpbnN0ZWFkIHByb3BhZ2F0ZSB0aGUgb29iX3JlcXVpcmVkIGZpZWxkIGFuZCBj aGVjayB0aGF0CnZhbHVlIEkgYmVsaWV2ZS4KCj4gKwkJcmV0ID0gbWVzb25fbmZjX3dyaXRlX29v YihuYW5kLCAtMSk7Cj4gKwkJaWYgKHJldCkKPiArCQkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4g IAljbWQgPSBuZmMtPnBhcmFtLmNoaXBfc2VsZWN0IHwgTkZDX0NNRF9DTEUgfCBOQU5EX0NNRF9Q QUdFUFJPRzsKPiAgCXdyaXRlbChjbWQsIG5mYy0+cmVnX2Jhc2UgKyBORkNfUkVHX0NNRCk7Cj4g IAltZXNvbl9uZmNfcXVldWVfcmIobmFuZCwgUFNFQ19UT19NU0VDKHNkci0+dFBST0dfbWF4KSk7 Cj4gQEAgLTgzNCwxNyArOTM3LDEwIEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX3JlYWRfcGFnZV9o d2VjYyhzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLCB1OCAqYnVmLAo+ICAJCW1lbWNweShidWYsIG1l c29uX2NoaXAtPmRhdGFfYnVmLCBtdGQtPndyaXRlc2l6ZSk7Cj4gIAl9Cj4gIAo+IC0JcmV0dXJu IGJpdGZsaXBzOwo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IG1lc29uX25mY19yZWFkX29vYl9yYXco c3RydWN0IG5hbmRfY2hpcCAqbmFuZCwgaW50IHBhZ2UpCj4gLXsKPiAtCXJldHVybiBtZXNvbl9u ZmNfcmVhZF9wYWdlX3JhdyhuYW5kLCBOVUxMLCAxLCBwYWdlKTsKPiAtfQo+ICsJaWYgKG9vYl9y ZXF1aXJlZCAmJiByZXQpCgpVbmNsZWFyIHdoeSB5b3UgY2hlY2sgcmV0IGhlcmU/Cgo+ICsJCW1l c29uX25mY19yZWFkX29vYihuYW5kLCAtMSk7Cj4gIAo+IC1zdGF0aWMgaW50IG1lc29uX25mY19y ZWFkX29vYihzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLCBpbnQgcGFnZSkKPiAtewo+IC0JcmV0dXJu IG1lc29uX25mY19yZWFkX3BhZ2VfaHdlY2MobmFuZCwgTlVMTCwgMSwgcGFnZSk7Cj4gKwlyZXR1 cm4gYml0ZmxpcHM7Cj4gIH0KPiAgCj4gIHN0YXRpYyBib29sIG1lc29uX25mY19pc19idWZmZXJf ZG1hX3NhZmUoY29uc3Qgdm9pZCAqYnVmZmVyKQo+IEBAIC05ODcsMTIgKzEwODMsMTYgQEAgc3Rh dGljIGludCBtZXNvbl9vb2JsYXlvdXRfZnJlZShzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgaW50IHNl Y3Rpb24sCj4gIAkJCQlzdHJ1Y3QgbXRkX29vYl9yZWdpb24gKm9vYnJlZ2lvbikKPiAgewo+ICAJ c3RydWN0IG5hbmRfY2hpcCAqbmFuZCA9IG10ZF90b19uYW5kKG10ZCk7Cj4gKwl1MzIgb29iX2J5 dGVzID0gbWVzb25fbmZjX29vYl9mcmVlX2J5dGVzKG5hbmQpOwo+ICAKPiAgCWlmIChzZWN0aW9u ID49IG5hbmQtPmVjYy5zdGVwcykKPiAgCQlyZXR1cm4gLUVSQU5HRTsKPiAgCj4gLQlvb2JyZWdp b24tPm9mZnNldCA9IHNlY3Rpb24gKiAoMiArIG5hbmQtPmVjYy5ieXRlcyk7CgpUaGUgZmlyc3Qg dHdvIGJ5dGVzIG9mIE9PQiBhcmUgcmVzZXJ2ZWQgZm9yIHRoZSBiYWQgYmxvY2sgbWFya2Vycy4g VGhpcwppcyBub3QgcmVsYXRlZCB0byB5b3VyIGNvbnRyb2xsZXIuCgo+IC0Jb29icmVnaW9uLT5s ZW5ndGggPSAyOwo+ICsJLyogU3BsaXQgcmVzdCBvZiBPT0IgYXJlYSAobm90IGNvdmVyZWQgYnkg RUNDIGVuZ2luZSkgcGVyIGVhY2gKPiArCSAqIEVDQyBzZWN0aW9uLiBUaGlzIHdpbGwgYmUgT09C IGRhdGEgYXZhaWxhYmxlIHRvIHVzZXIuCj4gKwkgKi8KPiArCW9vYnJlZ2lvbi0+b2Zmc2V0ID0g KHNlY3Rpb24gKyBuYW5kLT5lY2Muc3RlcHMpICogKDIgKyBuYW5kLT5lY2MuYnl0ZXMpOwoKVGhp cyBpcyBub3QgcG9zc2libGUsIHNlZSBhYm92ZS4KCj4gKwlvb2JyZWdpb24tPmxlbmd0aCA9IG9v Yl9ieXRlcyAvIG5hbmQtPmVjYy5zdGVwczsKPiAgCj4gIAlyZXR1cm4gMDsKPiAgfQo+IEBAIC0x MjIwLDEyICsxMzIwLDEyIEBAIHN0YXRpYyBpbnQgbWVzb25fbmFuZF9hdHRhY2hfY2hpcChzdHJ1 Y3QgbmFuZF9jaGlwICpuYW5kKQo+ICAJbmFuZC0+ZWNjLmVuZ2luZV90eXBlID0gTkFORF9FQ0Nf RU5HSU5FX1RZUEVfT05fSE9TVDsKPiAgCW5hbmQtPmVjYy53cml0ZV9wYWdlX3JhdyA9IG1lc29u X25mY193cml0ZV9wYWdlX3JhdzsKPiAgCW5hbmQtPmVjYy53cml0ZV9wYWdlID0gbWVzb25fbmZj X3dyaXRlX3BhZ2VfaHdlY2M7Cj4gLQluYW5kLT5lY2Mud3JpdGVfb29iX3JhdyA9IG5hbmRfd3Jp dGVfb29iX3N0ZDsKPiAtCW5hbmQtPmVjYy53cml0ZV9vb2IgPSBuYW5kX3dyaXRlX29vYl9zdGQ7 Cj4gIAo+ICsJbmFuZC0+ZWNjLndyaXRlX29vYl9yYXcgPSBtZXNvbl9uZmNfd3JpdGVfb29iOwo+ ICsJbmFuZC0+ZWNjLndyaXRlX29vYiA9IG1lc29uX25mY193cml0ZV9vb2I7Cj4gIAluYW5kLT5l Y2MucmVhZF9wYWdlX3JhdyA9IG1lc29uX25mY19yZWFkX3BhZ2VfcmF3Owo+ICAJbmFuZC0+ZWNj LnJlYWRfcGFnZSA9IG1lc29uX25mY19yZWFkX3BhZ2VfaHdlY2M7Cj4gLQluYW5kLT5lY2MucmVh ZF9vb2JfcmF3ID0gbWVzb25fbmZjX3JlYWRfb29iX3JhdzsKPiArCW5hbmQtPmVjYy5yZWFkX29v Yl9yYXcgPSBtZXNvbl9uZmNfcmVhZF9vb2I7Cj4gIAluYW5kLT5lY2MucmVhZF9vb2IgPSBtZXNv bl9uZmNfcmVhZF9vb2I7Cj4gIAo+ICAJaWYgKG5hbmQtPm9wdGlvbnMgJiBOQU5EX0JVU1dJRFRI XzE2KSB7CgoKVGhhbmtzLApNaXF1w6hsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==