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=-7.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 CC2C2C43381 for ; Thu, 21 Mar 2019 09:04:59 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 941DF20811 for ; Thu, 21 Mar 2019 09:04:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="cVxSANBY" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 941DF20811 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kontron.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-ID:In-Reply-To: References:Message-ID:Date:Subject:To:From:Reply-To:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=e64bYlGlZgTc508sTKik6mc09s7E4SPwSC+QcYP5W4s=; b=cVxSANBY7gKQTP TrzG804ixqtTPFhpb9/TwlHg3oXT4zhivX1G6rPwPCAvhhbove/Q5g5SpRLytZt5Wrp8SDMPAMwjz D2XQIEp+i92K7hZs1j8TAZP8zGBzlkyBpSgCJDZm4ucXmNKPquYXoN6Rm161sNB8sgMC9JcvMyRd0 lOy/a7hgTnNyO+0BtqLs0cltixr+TqpJN1aACT7GJXoS+fwZVHaFrNvAwNO5xsTx6Ls8su1i2ixPp 8vtK+6QIHr945ezsGSqtRYTgYbBJwMHL6psz0+cYIy4emVZy1j3SZN9TOPXBJGFvbLqIgUKczXcG+ bBiw53NBytx58ojENiow==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h6td9-0005r8-U0; Thu, 21 Mar 2019 09:04:55 +0000 Received: from skedge03.snt-world.com ([91.208.41.68]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h6tch-0005Y2-Gb for linux-mtd@lists.infradead.org; Thu, 21 Mar 2019 09:04:42 +0000 Received: from sntmail12r.snt-is.com (unknown [10.203.32.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by skedge03.snt-world.com (Postfix) with ESMTPS id D1191626323; Thu, 21 Mar 2019 10:04:23 +0100 (CET) Received: from sntmail12r.snt-is.com (10.203.32.182) by sntmail12r.snt-is.com (10.203.32.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 21 Mar 2019 10:04:23 +0100 Received: from sntmail12r.snt-is.com ([fe80::e551:8750:7bba:3305]) by sntmail12r.snt-is.com ([fe80::e551:8750:7bba:3305%3]) with mapi id 15.01.1713.004; Thu, 21 Mar 2019 10:04:23 +0100 From: Schrempf Frieder To: Miquel Raynal Subject: Re: [PATCH v4 5/7] mtd: rawnand: Support bad block markers in first, second or last page Thread-Topic: [PATCH v4 5/7] mtd: rawnand: Support bad block markers in first, second or last page Thread-Index: AQHUx3auoNOQ4yAEgEe13B50/aYNQqX7WSMAgBqRUQA= Date: Thu, 21 Mar 2019 09:04:23 +0000 Message-ID: <973f8019-77ce-7b5e-0990-1492521ad4b3@kontron.de> References: <20190218104122.18788-1-frieder.schrempf@kontron.de> <20190218104122.18788-6-frieder.schrempf@kontron.de> <20190304122130.4b659bee@xps13> In-Reply-To: <20190304122130.4b659bee@xps13> Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.25.9.43] x-c2processedorg: 51b406b7-48a2-4d03-b652-521f56ac89f3 Content-ID: <822FA20CADEA9647AAD925CD4FA9B528@snt-world.com> MIME-Version: 1.0 X-SnT-MailScanner-Information: Please contact the ISP for more information X-SnT-MailScanner-ID: D1191626323.AEAD3 X-SnT-MailScanner: Not scanned: please contact your Internet E-Mail Service Provider for details X-SnT-MailScanner-SpamCheck: X-SnT-MailScanner-From: frieder.schrempf@kontron.de X-SnT-MailScanner-To: bbrezillon@kernel.org, computersforpeace@gmail.com, dwmw2@infradead.org, linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org, marek.vasut@gmail.com, miquel.raynal@bootlin.com, richard@nod.at X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190321_020428_079944_263AE644 X-CRM114-Status: GOOD ( 26.14 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "bbrezillon@kernel.org" , "richard@nod.at" , "linux-kernel@vger.kernel.org" , Marek Vasut , "linux-mtd@lists.infradead.org" , Brian Norris , David Woodhouse 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 T24gMDQuMDMuMTkgMTI6MjEsIE1pcXVlbCBSYXluYWwgd3JvdGU6DQo+IEhpIFNjaHJlbXBmLA0K PiANCj4gU2NocmVtcGYgRnJpZWRlciA8ZnJpZWRlci5zY2hyZW1wZkBrb250cm9uLmRlPiB3cm90 ZSBvbiBNb24sIDE4IEZlYg0KPiAyMDE5IDEwOjQyOjQ1ICswMDAwOg0KPiANCj4+IEZyb206IEZy aWVkZXIgU2NocmVtcGYgPGZyaWVkZXIuc2NocmVtcGZAa29udHJvbi5kZT4NCj4+DQo+PiBDdXJy ZW50bHkgc3VwcG9ydGVkIGJhZCBibG9jayBtYXJrZXIgcG9zaXRpb25zIHdpdGhpbiB0aGUgYmxv Y2sgYXJlOg0KPj4gKiBpbiBmaXJzdCBwYWdlIG9ubHkNCj4+ICogaW4gbGFzdCBwYWdlIG9ubHkN Cj4+ICogaW4gZmlyc3Qgb3Igc2Vjb25kIHBhZ2UNCj4+DQo+PiBTb21lIEVTTVQgTkFORHMgYXJl IGtub3duIHRvIGhhdmUgYmVlbiBzaGlwcGVkIGJ5IHRoZSBtYW51ZmFjdHVyZXINCj4+IHdpdGgg YmFkIGJsb2NrIG1hcmtlcnMgaW4gdGhlIGZpcnN0IG9yIGxhc3QgcGFnZSwgaW5zdGVhZCBvZiB0 aGUNCj4+IGZpcnN0IG9yIHNlY29uZCBwYWdlLg0KPj4NCj4+IEFsc28gdGhlIGRhdGFzaGVldHMg Zm9yIEN5cHJlc3MvU3BhbnNpb24vQU1EIE5BTkRzIGNsYWltIHRoYXQgdGhlDQo+PiBmaXJzdCwg c2Vjb25kICphbmQqIGxhc3QgcGFnZSBuZWVkcyB0byBiZSBjaGVja2VkLg0KPj4NCj4+IFRoZXJl Zm9yZSB3ZSBtYWtlIGl0IHBvc3NpYmxlIHRvIHNldCBOQU5EX0JCTV9GSVJTVFBBR0UsDQo+PiBO QU5EX0JCTV9TRUNPTkRQQUdFIGFuZCBOQU5EX0JCTV9MQVNUUEFHRSBpbmRlcGVuZGVudGx5IGlu IGFueQ0KPj4gY29tYmluYXRpb24uDQo+Pg0KPj4gVG8gc2ltcGxpZnkgdGhlIGNvZGUsIHRoZSBs b2dpYyB0byBldmFsdWF0ZSB0aGUgZmxhZ3MgaXMgbW92ZWQgdG8gYQ0KPj4gYSBuZXcgZnVuY3Rp b24gbmFuZF9iYm1fZ2V0X25leHRfcGFnZSgpLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEZyaWVk ZXIgU2NocmVtcGYgPGZyaWVkZXIuc2NocmVtcGZAa29udHJvbi5kZT4NCj4+IFJldmlld2VkLWJ5 OiBCb3JpcyBCcmV6aWxsb24gPGJicmV6aWxsb25Aa2VybmVsLm9yZz4NCj4+IC0tLQ0KPj4gICBk cml2ZXJzL210ZC9uYW5kL3Jhdy9pbnRlcm5hbHMuaCB8ICAxICsNCj4+ICAgZHJpdmVycy9tdGQv bmFuZC9yYXcvbmFuZF9iYXNlLmMgfCA2MiArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLQ0KPj4gICBkcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2JidC5jICB8IDI5ICsrKysrKyst LS0tLS0tLS0NCj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCAzNyBkZWxl dGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvaW50ZXJu YWxzLmggYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9pbnRlcm5hbHMuaA0KPj4gaW5kZXggZmJmNmNh MDE1Y2Q3Li45N2FlNjdlMDA5ZDUgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jh dy9pbnRlcm5hbHMuaA0KPj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvaW50ZXJuYWxzLmgN Cj4+IEBAIC03Niw2ICs3Niw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgbmFuZF9tYW51ZmFjdHVy ZXJfb3BzIHRvc2hpYmFfbmFuZF9tYW51Zl9vcHM7DQo+PiAgIA0KPj4gICAvKiBDb3JlIGZ1bmN0 aW9ucyAqLw0KPj4gICBjb25zdCBzdHJ1Y3QgbmFuZF9tYW51ZmFjdHVyZXIgKm5hbmRfZ2V0X21h bnVmYWN0dXJlcih1OCBpZCk7DQo+PiAraW50IG5hbmRfYmJtX2dldF9uZXh0X3BhZ2Uoc3RydWN0 IG5hbmRfY2hpcCAqY2hpcCwgaW50IHBhZ2UpOw0KPj4gICBpbnQgbmFuZF9tYXJrYmFkX2JibShz dHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCBsb2ZmX3Qgb2ZzKTsNCj4+ICAgaW50IG5hbmRfZXJhc2Vf bmFuZChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCBzdHJ1Y3QgZXJhc2VfaW5mbyAqaW5zdHIsDQo+ PiAgIAkJICAgIGludCBhbGxvd2JidCk7DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFu ZC9yYXcvbmFuZF9iYXNlLmMgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2Jhc2UuYw0KPj4g aW5kZXggOWVmN2I4NmNkYzQyLi43YmMyMGMxZmUyM2MgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJz L210ZC9uYW5kL3Jhdy9uYW5kX2Jhc2UuYw0KPj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcv bmFuZF9iYXNlLmMNCj4+IEBAIC0yODUsNiArMjg1LDMxIEBAIHN0YXRpYyB2b2lkIG5hbmRfcmVs ZWFzZV9kZXZpY2Uoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkNCj4+ICAgCXNwaW5fdW5sb2NrKCZj aGlwLT5jb250cm9sbGVyLT5sb2NrKTsNCj4+ICAgfQ0KPj4gICANCj4+ICsvKioNCj4+ICsgKiBu YW5kX2JibV9nZXRfbmV4dF9wYWdlIC0gR2V0IHRoZSBuZXh0IHBhZ2UgZm9yIGJhZCBibG9jayBt YXJrZXJzDQo+PiArICogQGNoaXA6IE5BTkQgY2hpcCBvYmplY3QNCj4+ICsgKiBAaW5kZXg6IEN1 cnJlbnQgcGFnZSwgb25seSBwYWdlcyBiZXlvbmQgdGhpcyB3aWxsIGJlIGNvbnNpZGVyZWQNCj4g DQo+IFdoeSBwYWdlcyAqYmV5b25kKj8gQ2FuJ3QgeW91IGNoYW5nZSB0aGUgbG9naWMgdG8gdXNl IHRoZSBwYWdlIGZyb20NCj4gd2hlcmUgdG8gc3RhcnQgc2VhcmNoaW5nPyBJIGFtIG5vdCBzdXJl IHN1Y2ggYSBjaGFuZ2Ugd291bGQgYmUNCj4gY2xlYXJlciBpbiB0aGUgcmVzdCBvZiB0aGUgY29k ZSBidXQgSSBkb24ndCBsaWtlIHRoZSB0ZXN0cyBhZ2FpbnN0DQo+ICItMSIuIE1heWJlIHlvdSBj b3VsZCBqdXN0IGNoZWNrIG5lZ2F0aXZlIHZhbHVlcyBpbnN0ZWFkLg0KDQpJIGd1ZXNzIEkgY2Fu IGNoYW5nZSB0byB1c2UgdGhlIHBhZ2UgZnJvbSB3aGVyZSB0byBzdGFydCBzZWFyY2hpbmcgYXMg YSANCnBhcmFtZXRlci4gSWYgdGhhdCdzIHdoYXQgeW91IG1lYW4gKGluY2x1c2l2ZSBpbnN0ZWFk IG9mIGV4Y2x1c2l2ZSk/IA0KVGhlbiB0aGUgaW5pdGlhbCBjYWxsIHdvdWxkIGxvb2sgbGlrZSAi bmFuZF9iYm1fZ2V0X25leHRfcGFnZShjaGlwLCAwKSIgDQppbnN0ZWFkIG9mICJuYW5kX2JibV9n ZXRfbmV4dF9wYWdlKGNoaXAsIC0xKSIgd2hpY2ggc2VlbXMgYSBiaXQgY2xlYXJlci4NCg0KPj4g KyAqDQo+PiArICogUmV0dXJucyBhbiBpbnRlZ2VyIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIHBh Z2Ugb2Zmc2V0IHdpdGhpbiBhIGJsb2NrLCBmb3INCj4+ICsgKiBhIHBhZ2UgdGhhdCBpcyB1c2Vk IHRvIHN0b3JlIGJhZCBibG9jayBtYXJrZXJzLiBJZiBubyBtb3JlIHBhZ2VzIGFyZQ0KPj4gKyAq IGF2YWlsYWJsZSwgLTEgaXMgcmV0dXJuZWQuDQo+PiArICovDQo+PiAraW50IG5hbmRfYmJtX2dl dF9uZXh0X3BhZ2Uoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgaW50IHBhZ2UpDQo+PiArew0KPj4g KwlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9IG5hbmRfdG9fbXRkKGNoaXApOw0KPj4gKwlpbnQgbGFz dF9wYWdlID0gKChtdGQtPmVyYXNlc2l6ZSAtIG10ZC0+d3JpdGVzaXplKSA+Pg0KPj4gKwkJCSBj aGlwLT5wYWdlX3NoaWZ0KSAmIGNoaXAtPnBhZ2VtYXNrOw0KPj4gKw0KPj4gKwlpZiAocGFnZSA8 IDAgJiYgY2hpcC0+b3B0aW9ucyAmIE5BTkRfQkJNX0ZJUlNUUEFHRSkNCj4+ICsJCXJldHVybiAw Ow0KPj4gKwllbHNlIGlmIChwYWdlIDwgMSAmJiBjaGlwLT5vcHRpb25zICYgTkFORF9CQk1fU0VD T05EUEFHRSkNCj4+ICsJCXJldHVybiAxOw0KPj4gKwllbHNlIGlmIChwYWdlIDwgbGFzdF9wYWdl ICYmIGNoaXAtPm9wdGlvbnMgJiBOQU5EX0JCTV9MQVNUUEFHRSkNCj4+ICsJCXJldHVybiBsYXN0 X3BhZ2U7DQo+PiArDQo+PiArCXJldHVybiAtMTsNCj4gDQo+IEkgd291bGQgcHJlZmVyIGEgbmFt ZWQgdmFsdWUgKGxpa2UgLUVJTlZBTCkgYW5kIGNoZWNrcyBhZ2FpbnN0IGENCj4gbmVnYXRpdmUg dmFsdWUgKG5vdCAtMSkuDQoNClJpZ2h0LCBtYWtlcyBzZW5zZS4NCg0KPj4gK30NCj4+ICsNCj4+ ICAgLyoqDQo+PiAgICAqIG5hbmRfYmxvY2tfYmFkIC0gW0RFRkFVTFRdIFJlYWQgYmFkIGJsb2Nr IG1hcmtlciBmcm9tIHRoZSBjaGlwDQo+PiAgICAqIEBjaGlwOiBOQU5EIGNoaXAgb2JqZWN0DQo+ PiBAQCAtMjk0LDE5ICszMTksMTQgQEAgc3RhdGljIHZvaWQgbmFuZF9yZWxlYXNlX2RldmljZShz dHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQ0KPj4gICAgKi8NCj4+ICAgc3RhdGljIGludCBuYW5kX2Js b2NrX2JhZChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCBsb2ZmX3Qgb2ZzKQ0KPj4gICB7DQo+PiAt CXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQoY2hpcCk7DQo+PiAtCWludCBwYWdl LCBwYWdlX2VuZCwgcmVzOw0KPj4gKwlpbnQgcGFnZV9vZmZzZXQ7DQo+PiArCWludCByZXMsIGZp cnN0X3BhZ2UgPSAoaW50KShvZnMgPj4gY2hpcC0+cGFnZV9zaGlmdCkgJiBjaGlwLT5wYWdlbWFz azsNCj4gDQo+IE1heWJlOg0KPiANCj4gICAgICAgICAgaW50IGZpcnN0X3BhZ2UsIHBhZ2Vfb2Zm c2V0Ow0KPiAgICAgICAgICBpbnQgcmVzOw0KPiAgICAgICAgICB1OCBiYWQ7DQo+IA0KPiAgICAg ICAgICBmaXJzdF9wYWdlID0gKGludCkob2ZzID4+IGNoaXAtPnBhZ2Vfc2hpZnQpICYgY2hpcC0+ cGFnZW1hc2s7DQo+ICAgICAgICAgIHBhZ2Vfb2Zmc2V0ID0gbmFuZF9iYm1fZ2V0X25leHRfcGFn ZShjaGlwLCAtMSk7DQoNCkxvb2tzIGJldHRlci4NCg0KPj4gICAJdTggYmFkOw0KPj4gICANCj4+ IC0JaWYgKGNoaXAtPm9wdGlvbnMgJiBOQU5EX0JCTV9MQVNUUEFHRSkNCj4+IC0JCW9mcyArPSBt dGQtPmVyYXNlc2l6ZSAtIG10ZC0+d3JpdGVzaXplOw0KPj4gKwlwYWdlX29mZnNldCA9IG5hbmRf YmJtX2dldF9uZXh0X3BhZ2UoY2hpcCwgLTEpOw0KPj4gICANCj4+IC0JcGFnZSA9IChpbnQpKG9m cyA+PiBjaGlwLT5wYWdlX3NoaWZ0KSAmIGNoaXAtPnBhZ2VtYXNrOw0KPj4gLQlwYWdlX2VuZCA9 IHBhZ2UgKyAoKChjaGlwLT5vcHRpb25zICYgTkFORF9CQk1fRklSU1RQQUdFKSAmJg0KPj4gLQkJ CSAgICAoY2hpcC0+b3B0aW9ucyAmIE5BTkRfQkJNX1NFQ09ORFBBR0UpKSA/IDIgOiAxKTsNCj4+ IC0NCj4+IC0JZm9yICg7IHBhZ2UgPCBwYWdlX2VuZDsgcGFnZSsrKSB7DQo+PiAtCQlyZXMgPSBj aGlwLT5lY2MucmVhZF9vb2IoY2hpcCwgcGFnZSk7DQo+PiArCXdoaWxlIChwYWdlX29mZnNldCAh PSAtMSkgew0KPj4gKwkJcmVzID0gY2hpcC0+ZWNjLnJlYWRfb29iKGNoaXAsIGZpcnN0X3BhZ2Ug KyBwYWdlX29mZnNldCk7DQo+PiAgIAkJaWYgKHJlcyA8IDApDQo+PiAgIAkJCXJldHVybiByZXM7 DQo+PiAgIA0KPj4gQEAgLTMxOCw2ICszMzgsOCBAQCBzdGF0aWMgaW50IG5hbmRfYmxvY2tfYmFk KHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsIGxvZmZfdCBvZnMpDQo+PiAgIAkJCXJlcyA9IGh3ZWln aHQ4KGJhZCkgPCBjaGlwLT5iYWRibG9ja2JpdHM7DQo+PiAgIAkJaWYgKHJlcykNCj4+ICAgCQkJ cmV0dXJuIHJlczsNCj4+ICsNCj4+ICsJCXBhZ2Vfb2Zmc2V0ID0gbmFuZF9iYm1fZ2V0X25leHRf cGFnZShjaGlwLCBwYWdlX29mZnNldCk7DQo+PiAgIAl9DQo+PiAgIA0KPj4gICAJcmV0dXJuIDA7 DQo+PiBAQCAtNTI4LDcgKzU1MCw3IEBAIHN0YXRpYyBpbnQgbmFuZF9kZWZhdWx0X2Jsb2NrX21h cmtiYWQoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgbG9mZl90IG9mcykNCj4+ICAgCXN0cnVjdCBt dGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQoY2hpcCk7DQo+PiAgIAlzdHJ1Y3QgbXRkX29vYl9v cHMgb3BzOw0KPj4gICAJdWludDhfdCBidWZbMl0gPSB7IDAsIDAgfTsNCj4+IC0JaW50IHJldCA9 IDAsIHJlcywgaSA9IDA7DQo+PiArCWludCByZXQgPSAwLCByZXMsIHBhZ2Vfb2Zmc2V0Ow0KPj4g ICANCj4+ICAgCW1lbXNldCgmb3BzLCAwLCBzaXplb2Yob3BzKSk7DQo+PiAgIAlvcHMub29iYnVm ID0gYnVmOw0KPj4gQEAgLTU0MSwxOCArNTYzLDE4IEBAIHN0YXRpYyBpbnQgbmFuZF9kZWZhdWx0 X2Jsb2NrX21hcmtiYWQoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgbG9mZl90IG9mcykNCj4+ICAg CX0NCj4+ICAgCW9wcy5tb2RlID0gTVREX09QU19QTEFDRV9PT0I7DQo+PiAgIA0KPj4gLQkvKiBX cml0ZSB0byBmaXJzdC9sYXN0IHBhZ2UocykgaWYgbmVjZXNzYXJ5ICovDQo+PiAtCWlmIChjaGlw LT5vcHRpb25zICYgTkFORF9CQk1fTEFTVFBBR0UpDQo+PiAtCQlvZnMgKz0gbXRkLT5lcmFzZXNp emUgLSBtdGQtPndyaXRlc2l6ZTsNCj4+IC0JZG8gew0KPj4gLQkJcmVzID0gbmFuZF9kb193cml0 ZV9vb2IoY2hpcCwgb2ZzLCAmb3BzKTsNCj4+ICsJcGFnZV9vZmZzZXQgPSBuYW5kX2JibV9nZXRf bmV4dF9wYWdlKGNoaXAsIC0xKTsNCj4+ICsNCj4+ICsJd2hpbGUgKHBhZ2Vfb2Zmc2V0ICE9IC0x KSB7DQo+PiArCQlyZXMgPSBuYW5kX2RvX3dyaXRlX29vYihjaGlwLA0KPj4gKwkJCQkJb2ZzICsg cGFnZV9vZmZzZXQgKiBtdGQtPndyaXRlc2l6ZSwNCj4+ICsJCQkJCSZvcHMpOw0KPj4gKw0KPj4g ICAJCWlmICghcmV0KQ0KPj4gICAJCQlyZXQgPSByZXM7DQo+PiAgIA0KPj4gLQkJaSsrOw0KPj4g LQkJb2ZzICs9IG10ZC0+d3JpdGVzaXplOw0KPj4gLQl9IHdoaWxlICgoY2hpcC0+b3B0aW9ucyAm IE5BTkRfQkJNX0ZJUlNUUEFHRSkgJiYNCj4+IC0JCSAoY2hpcC0+b3B0aW9ucyAmIE5BTkRfQkJN X1NFQ09ORFBBR0UpICYmIGkgPCAyKTsNCj4+ICsJCXBhZ2Vfb2Zmc2V0ID0gbmFuZF9iYm1fZ2V0 X25leHRfcGFnZShjaGlwLCBwYWdlX29mZnNldCk7DQo+PiArCX0NCj4+ICAgDQo+PiAgIAlyZXR1 cm4gcmV0Ow0KPj4gICB9DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFu ZF9iYnQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfYmJ0LmMNCj4+IGluZGV4IDc0NjNh ZmRkYzdhYy4uMDk2MDNjNTAyOTMxIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9y YXcvbmFuZF9iYnQuYw0KPj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9iYnQuYw0K Pj4gQEAgLTQxNSwxMSArNDE1LDEyIEBAIHN0YXRpYyB2b2lkIHJlYWRfYWJzX2JidHMoc3RydWN0 IG5hbmRfY2hpcCAqdGhpcywgdWludDhfdCAqYnVmLA0KPj4gICANCj4+ICAgLyogU2NhbiBhIGdp dmVuIGJsb2NrIHBhcnRpYWxseSAqLw0KPj4gICBzdGF0aWMgaW50IHNjYW5fYmxvY2tfZmFzdChz dHJ1Y3QgbmFuZF9jaGlwICp0aGlzLCBzdHJ1Y3QgbmFuZF9iYnRfZGVzY3IgKmJkLA0KPj4gLQkJ CSAgIGxvZmZfdCBvZmZzLCB1aW50OF90ICpidWYsIGludCBudW1wYWdlcykNCj4+ICsJCQkgICBs b2ZmX3Qgb2ZmcywgdWludDhfdCAqYnVmKQ0KPj4gICB7DQo+PiAgIAlzdHJ1Y3QgbXRkX2luZm8g Km10ZCA9IG5hbmRfdG9fbXRkKHRoaXMpOw0KPj4gKw0KPj4gICAJc3RydWN0IG10ZF9vb2Jfb3Bz IG9wczsNCj4+IC0JaW50IGosIHJldDsNCj4+ICsJaW50IHJldCwgcGFnZV9vZmZzZXQ7DQo+PiAg IA0KPj4gICAJb3BzLm9vYmxlbiA9IG10ZC0+b29ic2l6ZTsNCj4+ICAgCW9wcy5vb2JidWYgPSBi dWY7DQo+PiBAQCAtNDI3LDEyICs0MjgsMTUgQEAgc3RhdGljIGludCBzY2FuX2Jsb2NrX2Zhc3Qo c3RydWN0IG5hbmRfY2hpcCAqdGhpcywgc3RydWN0IG5hbmRfYmJ0X2Rlc2NyICpiZCwNCj4+ICAg CW9wcy5kYXRidWYgPSBOVUxMOw0KPj4gICAJb3BzLm1vZGUgPSBNVERfT1BTX1BMQUNFX09PQjsN Cj4+ICAgDQo+PiAtCWZvciAoaiA9IDA7IGogPCBudW1wYWdlczsgaisrKSB7DQo+PiArCXBhZ2Vf b2Zmc2V0ID0gbmFuZF9iYm1fZ2V0X25leHRfcGFnZSh0aGlzLCAtMSk7DQo+PiArDQo+PiArCXdo aWxlIChwYWdlX29mZnNldCAhPSAtMSkgew0KPj4gICAJCS8qDQo+PiAgIAkJICogUmVhZCB0aGUg ZnVsbCBvb2IgdW50aWwgcmVhZF9vb2IgaXMgZml4ZWQgdG8gaGFuZGxlIHNpbmdsZQ0KPj4gICAJ CSAqIGJ5dGUgcmVhZHMgZm9yIDE2IGJpdCBidXN3aWR0aC4NCj4+ICAgCQkgKi8NCj4+IC0JCXJl dCA9IG10ZF9yZWFkX29vYihtdGQsIG9mZnMsICZvcHMpOw0KPj4gKwkJcmV0ID0gbXRkX3JlYWRf b29iKG10ZCwgb2ZmcyArIHBhZ2Vfb2Zmc2V0ICogbXRkLT53cml0ZXNpemUsDQo+IA0KPiBDYW4g eW91IGFkZCAnKCcgJiAnKScgcGxlYXNlPw0KDQpTdXJlDQoNCj4+ICsJCQkJICAgJm9wcyk7DQo+ PiAgIAkJLyogSWdub3JlIEVDQyBlcnJvcnMgd2hlbiBjaGVja2luZyBmb3IgQkJNICovDQo+PiAg IAkJaWYgKHJldCAmJiAhbXRkX2lzX2JpdGZsaXBfb3JfZWNjZXJyKHJldCkpDQo+PiAgIAkJCXJl dHVybiByZXQ7DQo+PiBAQCAtNDQwLDggKzQ0NCw5IEBAIHN0YXRpYyBpbnQgc2Nhbl9ibG9ja19m YXN0KHN0cnVjdCBuYW5kX2NoaXAgKnRoaXMsIHN0cnVjdCBuYW5kX2JidF9kZXNjciAqYmQsDQo+ PiAgIAkJaWYgKGNoZWNrX3Nob3J0X3BhdHRlcm4oYnVmLCBiZCkpDQo+PiAgIAkJCXJldHVybiAx Ow0KPj4gICANCj4+IC0JCW9mZnMgKz0gbXRkLT53cml0ZXNpemU7DQo+PiArCQlwYWdlX29mZnNl dCA9IG5hbmRfYmJtX2dldF9uZXh0X3BhZ2UodGhpcywgcGFnZV9vZmZzZXQpOw0KPj4gICAJfQ0K Pj4gKw0KPj4gICAJcmV0dXJuIDA7DQo+PiAgIH0NCj4+ICAgDQo+PiBAQCAtNDYwLDE4ICs0NjUs MTEgQEAgc3RhdGljIGludCBjcmVhdGVfYmJ0KHN0cnVjdCBuYW5kX2NoaXAgKnRoaXMsIHVpbnQ4 X3QgKmJ1ZiwNCj4+ICAgCQkgICAgICBzdHJ1Y3QgbmFuZF9iYnRfZGVzY3IgKmJkLCBpbnQgY2hp cCkNCj4+ICAgew0KPj4gICAJc3RydWN0IG10ZF9pbmZvICptdGQgPSBuYW5kX3RvX210ZCh0aGlz KTsNCj4+IC0JaW50IGksIG51bWJsb2NrcywgbnVtcGFnZXM7DQo+PiAtCWludCBzdGFydGJsb2Nr Ow0KPj4gKwlpbnQgaSwgbnVtYmxvY2tzLCBzdGFydGJsb2NrOw0KPj4gICAJbG9mZl90IGZyb207 DQo+PiAgIA0KPj4gICAJcHJfaW5mbygiU2Nhbm5pbmcgZGV2aWNlIGZvciBiYWQgYmxvY2tzXG4i KTsNCj4+ICAgDQo+PiAtCWlmICgodGhpcy0+b3B0aW9ucyAmIE5BTkRfQkJNX0ZJUlNUUEFHRSkg JiYNCj4+IC0JICAgICh0aGlzLT5vcHRpb25zICYgTkFORF9CQk1fU0VDT05EUEFHRSkpDQo+PiAt CQludW1wYWdlcyA9IDI7DQo+PiAtCWVsc2UNCj4+IC0JCW51bXBhZ2VzID0gMTsNCj4+IC0NCj4+ ICAgCWlmIChjaGlwID09IC0xKSB7DQo+PiAgIAkJbnVtYmxvY2tzID0gbXRkLT5zaXplID4+IHRo aXMtPmJidF9lcmFzZV9zaGlmdDsNCj4+ICAgCQlzdGFydGJsb2NrID0gMDsNCj4+IEBAIC00ODgs MTUgKzQ4NiwxMiBAQCBzdGF0aWMgaW50IGNyZWF0ZV9iYnQoc3RydWN0IG5hbmRfY2hpcCAqdGhp cywgdWludDhfdCAqYnVmLA0KPj4gICAJCWZyb20gPSAobG9mZl90KXN0YXJ0YmxvY2sgPDwgdGhp cy0+YmJ0X2VyYXNlX3NoaWZ0Ow0KPj4gICAJfQ0KPj4gICANCj4+IC0JaWYgKHRoaXMtPm9wdGlv bnMgJiBOQU5EX0JCTV9MQVNUUEFHRSkNCj4+IC0JCWZyb20gKz0gbXRkLT5lcmFzZXNpemUgLSAo bXRkLT53cml0ZXNpemUgKiBudW1wYWdlcyk7DQo+PiAtDQo+PiAgIAlmb3IgKGkgPSBzdGFydGJs b2NrOyBpIDwgbnVtYmxvY2tzOyBpKyspIHsNCj4+ICAgCQlpbnQgcmV0Ow0KPj4gICANCj4+ICAg CQlCVUdfT04oYmQtPm9wdGlvbnMgJiBOQU5EX0JCVF9OT19PT0IpOw0KPj4gICANCj4+IC0JCXJl dCA9IHNjYW5fYmxvY2tfZmFzdCh0aGlzLCBiZCwgZnJvbSwgYnVmLCBudW1wYWdlcyk7DQo+PiAr CQlyZXQgPSBzY2FuX2Jsb2NrX2Zhc3QodGhpcywgYmQsIGZyb20sIGJ1Zik7DQo+PiAgIAkJaWYg KHJldCA8IDApDQo+PiAgIAkJCXJldHVybiByZXQ7DQo+PiAgIA0KPiANCj4gDQo+IA0KPiANCj4g VGhhbmtzLA0KPiBNaXF1w6hsDQo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo=