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 EBCC3C4332F for ; Thu, 15 Dec 2022 08:05:38 +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=DCvSxWpcp5RabXNNFKcV81TFP030BmTIe4D9wS9mvYI=; b=ik1c/jkTzAJ+2r 7EiEEoxKwEAk656MsjjGZuYVXHhEnO0/Su3l5AD18mvWjhhX1G2eZYsQ+O8zqATYWGB9t5xSEeX3S TJ5fLyOYxOLnLtfRFU+oojd9w0DXu8Ua/QUbvg4xgxposXzgTekNvotodUXTze7KwCwN2ZShWUjwp BV44Z3Dbsqm2sPffW0U4iTbXKW2Vvmn+CHZU/fBd7aHVdWZwx0pESh8Z3WOGDETS+Hn2GwkKaRiYY MvV7/VuhtAKqhxUe6aFIgAFiZiKMOExWCrLzYhoAXWWRGWxCU/4Vr9O0Y+lKSRWKDCaOBGAwxUSyb UFVPnlyKg486RWCo7wXw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p5jEq-007URb-6Y; Thu, 15 Dec 2022 08:05:08 +0000 Received: from relay9-d.mail.gandi.net ([217.70.183.199]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1p5jEc-007UJR-UF; Thu, 15 Dec 2022 08:04:57 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id ECFE2FF803; Thu, 15 Dec 2022 08:04:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1671091489; 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=FJMSUayvugL6MlhockYElUgFDKfHQF7VlLpAvaOCTyU=; b=GcnQz6Wp7Md0AacQlPQ2MfiPQio3iVlu1Tq3D6uJnRelE/NIlnQK45X8jp6bMtav8eUT9U vF6vwVV1EPH0Zi6M5AhiYLypvxp5l/g8D+4YDZkLmLMHQkFaB7dvL0/9MVLm/w1I5rGNYU Hb++XjuuguhISsLWsSehFSFHaT2oViPuUoAagPzrhnzAXKPhgnQhuOXSAQwUZW5of0dOwd Gm1euP/4Du9dX7bUMmKq98ph2vfArXJcbSAmg/oHZUzcK2sylutEA1LVbEXHeRjk5IdvgV y0UlcOn9VQM+GQd68r7XN/vKGNh0yI1zMblF2g+1xwR3j+9NcuOIrF94dxMvlg== Date: Thu, 15 Dec 2022 09:04:46 +0100 From: Miquel Raynal To: Marek Vasut Cc: Francesco Dolcini , Richard Weinberger , Vignesh Raghavendra , linux-mtd@lists.infradead.org, Francesco Dolcini , Shawn Guo , linux-arm-kernel@lists.infradead.org, stable@vger.kernel.org, u-boot@lists.denx.de Subject: Re: [PATCH v1] mtd: parsers: ofpart: Fix parsing when size-cells is 0 Message-ID: <20221215090446.28363133@xps-13> In-Reply-To: References: <20221202150556.14c5ae43@xps-13> <2b6fc52d-60b9-d0f4-ab91-4cf7a8095999@denx.de> <20221202160030.1b8d0b8a@xps-13> <223b7a4e-3aff-8070-7387-c77d2ded1dd6@denx.de> <20221202164904.08d750df@xps-13> <0503c46d-c385-74f5-f762-51d87a5ebaff@denx.de> <20221202174255.2c1cb2ff@xps-13> <20221202175730.231d75d5@xps-13> <7afd364c-33b8-38a9-65a6-015b4360db6b@denx.de> <20221205144917.6514168a@xps-13> <20221215081604.5385fa56@xps-13> 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-20221215_000455_420368_5AED2288 X-CRM114-Status: GOOD ( 46.82 ) 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 SGkgTWFyZWssCgptYXJleEBkZW54LmRlIHdyb3RlIG9uIFRodSwgMTUgRGVjIDIwMjIgMDg6NDU6 MzMgKzAxMDA6Cgo+IE9uIDEyLzE1LzIyIDA4OjE2LCBNaXF1ZWwgUmF5bmFsIHdyb3RlOgo+ID4g SGkgTWFyZWsgJiBGcmFuY2VzY28sICAKPiAKPiBIaSwKPiAKPiA+IG1hcmV4QGRlbnguZGUgd3Jv dGUgb24gTW9uLCA1IERlYyAyMDIyIDE3OjI1OjExICswMTAwOgo+ID4gICAKPiA+PiBPbiAxMi81 LzIyIDE0OjQ5LCBNaXF1ZWwgUmF5bmFsIHdyb3RlOiAgCj4gPj4+IEhpIEZyYW5jZXNjbywgIAo+ ID4+Cj4gPj4gSGksCj4gPj4gIAo+ID4+PiBmcmFuY2VzY29AZG9sY2luaS5pdCB3cm90ZSBvbiBN b24sIDUgRGVjIDIwMjIgMTI6MjY6NDQgKzAxMDA6ICAKPiA+Pj4gICAgPj4+PiBPbiBGcmksIERl YyAwMiwgMjAyMiBhdCAwNjowODoyMlBNICswMTAwLCBNYXJlayBWYXN1dCB3cm90ZTogIAo+ID4+ Pj4+IEJ1dCBoZXJlIEkgd291bGQgc2F5IHRoaXMgaXMgYSBmaXJtd2FyZSBidWcgYW5kIGl0IG1p Z2h0IGhhdmUgdG8gYmUgaGFuZGxlZAo+ID4+Pj4+IGxpa2UgYSBmaXJtd2FyZSBidWcsIGkuZS4g d2l0aCBmaXh1cCBpbiB0aGUgcGFydGl0aW9uIHBhcnNlci4gSSBzZWVtIHRvIGJlCj4gPj4+Pj4g Y2hhbmdpbmcgbXkgb3BpbmlvbiBoZXJlIGFnYWluLiAgCj4gPj4+Pgo+ID4+Pj4gSSB3YXMgdGhp bmtpbmcgYXQgdGhpcyBvdmVyIHRoZSB3ZWVrZW5kLCBhbmQgSSBjYW1lIHRvIHRoZSBmb2xsb3dp bmcKPiA+Pj4+IGlkZWFzOgo+ID4+Pj4KPiA+Pj4+ICAgIC0gd2UgbmVlZCBzb21lIGltcHJvdmVt ZW50IG9uIHRoZSBmaXh1cCB3ZSBhbHJlYWR5IGhhdmUgaW4gdGhlCj4gPj4+PiAgICAgIHBhcnRp dGlvbiBwYXJzZXIuIFdlIGNhbm5vdCBpZ25vcmUgdGhlIGZkdCBwcm9kdWNlZCBieSBVLUJvb3Qg LSBhcwo+ID4+Pj4gICAgICBiYWQgYXMgaXQgaXMuCj4gPj4+PiAgICAtIHRoZSBwcm9wb3NlZCBm aXh1cCBpcyBmaW5lIGZvciB0aGUgaW1tZWRpYXRlIG5lZWQsIGJ1dCBpdCBpcwo+ID4+Pj4gICAg ICBub3QgZ29pbmcgdG8gYmUgZW5vdWdoIHRvIGNvdmVyIHRoZSBnZW5lcmFsIGlzc3VlIHdpdGgg dGhlIFUtQm9vdAo+ID4+Pj4gICAgICBnZW5lcmF0ZWQgcGFydGl0aW9ucy4gVS1Cb290IG1pZ2h0 IGtlZXAgZ2VuZXJhdGluZyBwYXJ0aXRpb25zIGFzIGRpcmVjdAo+ID4+Pj4gICAgICBjaGlsZCBv ZiB0aGUgbmFuZCBjb250cm9sbGVyIGV2ZW4gd2hlbiBhIHBhcnRpdGlvbnN7fSBub2RlIGlzCj4g Pj4+PiAgICAgIGF2YWlsYWJsZS4gSW4gdGhpcyBjYXNlIHRoZSBjdXJyZW50IHBhcnNlciBqdXN0 IGZhaWxzIHNpbmNlIGl0IGxvb2tzCj4gPj4+PiAgICAgIG9ubHkgaW50byBpdCBhbmQgaXQgd2ls bCBmaW5kIGl0IGVtcHR5Lgo+ID4+Pj4gICAgLSB0aGUgY3VycmVudCBVLUJvb3Qgb25seSBoYW5k bGUgcGFydGl0aW9uc3t9IGFzIGEgZGlyZWN0IGNoaWxkIG9mIHRoZQo+ID4+Pj4gICAgICBuYW5k LWNvbnRyb2xsZXIsIHRoZSBuYW5kLWNoaXAgaXMgaWdub3JlZC4gVGhpcyBpcyBub3QgdGhlIHdh eSBpdCBpcwo+ID4+Pj4gICAgICBzdXBwb3NlZCB0byB3b3JrLiBVLUJvb3QgY29kZSB3b3VsZCBu ZWVkIHRvIGJlIGltcHJvdmVkLiAgCj4gPj4+Cj4gPj4+IEkndmUgYmVlbiB0aGlua2luZyBhYm91 dCBpdCB0aGlzIHdlZWtlbmQgYXMgd2VsbCBhbmQgdGhlIGN1cnJlbnQgZml4Cj4gPj4+IHdoaWNo ICJqdXN0IHNldCIgc19jZWxsIHRvIDEgc2VlbXMgcmlza3kgZm9yIG1lLCBpdCBpcyB0eXBpY2Fs bHkgdGhlCj4gPj4+IHR5cGUgb2YgcXVpY2sgJiBkaXJ0eSBmaXggdGhhdCBtaWdodCBldmVuIGJy ZWFrIG90aGVyIGJvYXJkIChub2JvZHkKPiA+Pj4ga25ldyB0aGF0IFUtQm9vdCBjdXJyZW50IGxv Z2ljIGV4cGVjdGVkICNzaXplLWNlbGxzIHRvIGJlIHNldCBpbiB0aGUKPiA+Pj4gRFQsIHdoYXQg aWYgYW5vdGhlciAiYnJva2VuIiBEVCBleHBlY3RzIHRoZSBvcHBvc2l0ZS4uLikgIAo+ID4+Cj4g Pj4gVGhlbiB3aXRoIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24sIHN1Y2ggYnJva2VuIERUIHdv dWxkIG5vdCB3b3JrLCBzaW5jZSBjdXJyZW50IERUIGRvZXMgc2V0ICNzaXplLWNlbGxzPTwxPiAo d3JvbmdseSkuCj4gPj4gIAo+ID4+PiAsIG5vdAo+ID4+PiBtZW50aW9uaW5nIHBvdGVudGlhbCBp c3N1ZXMgd2l0aCBiaWcgc3RvcmFnZXMgKD4gNEdpQikuCj4gPj4+Cj4gPj4+IEFsbCBpbiBhbGws IEkgcmVhbGx5IHRoaW5rIHdlIHNob3VsZCByZXZlcnQgdGhlIERUIGNoYW5nZSBub3csIHJldmVy dGluZwo+ID4+PiBhcyBsaXR0bGUgdG8gbm8gZHJhd2JhY2tzIGJlc2lkZXMgYSBkdF9iaW5kaW5n X2NoZWNrIHdhcm5pbmcgYW5kIGdpdmVzCj4gPj4+IHVzIHRpbWUgdG8gZGVhbCB3aXRoIGl0IHBy b3Blcmx5IChib3RoIGluIFUtQm9vdCBhbmQgTGludXgpLiAgCj4gPj4KPiA+PiBJIGFtIHJlYWxs eSBub3QgaGFwcHkgd2l0aCB0aGlzLCBidXQgaWYgdGhhdCdzIG1hcmtlZCBhcyBpbnRlcm1lZGlh dGUgZml4LCBnbyBmb3IgaXQuCj4gPj4KPiA+PiBIb3cgZG8gd2UgZGVhbCB3aXRoIHRoaXMgaW4g dGhlIGxvbmcgcnVuIGhvd2V2ZXI/IFBhcnNlci1zaWRlIGZpeCBsaWtlIHRoaXMgb25lLCBtYXli ZSB3aXRoIGJldHRlciBoZXVyaXN0aWNzID8gIAo+ID4gCj4gPiBZZXN0ZXJkYXkgd2hpbGUgdGFs a2luZyBhYm91dCBhbiBBQ1BJIG1pcy1kZXNjcmlwdGlvbiB3aGljaCBuZWVkZWQKPiA+IGZpeGlu ZywgSSByZWFsaXplZCBmaXhpbmcgdXAgd2hhdCB0aGUgZmlybXdhcmUgcHJvdmlkZXMgdG8gTGlu dXggc2hvdWxkCj4gPiBwcmVmZXJhYmx5IGJlIGhhbmRsZWQgYXMgZWFybHkgYXMgcG9zc2libGUu IFNvIG15IGZpcnN0IGZpcnN0IGlkZWEgd2FzCj4gPiB0byBhdm9pZCB1c2luZyB0aGUgYnJva2Vu ICJmaXh1cCBtdGRwYXJ0cyIgZnVuY3Rpb24gaW4gVS1Cb290IGFuZCBJIGFtCj4gPiBzdGlsbCBj b252aW5jZWQgdGhpcyBpcyB3aGF0IHdlIHNob3VsZCBkbyBpbiBwcmlvcml0eS4gSG93ZXZlciwg YXMKPiA+IHJpZ2h0bHkgcG9pbnRlZCBpbiB0aGlzIHRocmVhZCwgd2UgbmVlZCB0byB0YWtlIGNh cmUgYWJvdXQgdGhlIGNhc2UKPiA+IHdoZXJlIHNvbWVvbmUgd291bGQgdXNlIGEgbmV3ZXIgRFQg KGxldCdzIHNheSwgd2l0aCB0aGUgcmV2ZXJ0ZWQgY2hhbmdlZAo+ID4gcmV2ZXJ0ZWQgYWdhaW4p IHdpdGggYW4gb2xkIFUtQm9vdC4gSSBhbSBzdGlsbCBhZ2FpbnN0IHBpZ2d5IGhhY2tzIGluCj4g PiB0aGUgZ2VuZXJpYyBvZnBhcnQuYyBkcml2ZXIsIGJ1dCB3aGF0IHdlIGNvdWxkIGRvIGhvd2V2 ZXIgaXMgYSBEVAo+ID4gZml4dXAgaW4gdGhlIGluaXRfbWFjaGluZSAob3IgdGhlIGR0X2ZpeHVw KSBob29rIGZvciBpbXg3IENvbGlicmksIHZlcnkKPiA+IG11Y2ggbGlrZSB0aGlzOgo+ID4gaHR0 cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vbGludXgvbGF0ZXN0L3NvdXJjZS9hcmNoL2FybS9tYWNo LW12ZWJ1L2JvYXJkLXY3LmMjTDExMQo+ID4gUGx1cyBhIHdhcm5pbmcgdGhlcmUgc2F5aW5nICJ5 b3VyIGR0IGlzIGJyb2tlbiwgdXBkYXRlIHlvdXIgZmlybXdhcmUiLiAgCj4gCj4gVGhpcyBkb2Vz IG5vdCB3b3JrLCBiZWNhdXNlIHRoZSBvbGQgVS1Cb290IGZpeHVwX210ZHBhcnRzKCkgbWF5IGJl IGFwcGxpZWQgb24gYW55IG1hY2hpbmUsCgpObzogaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20v dS1ib290L2xhdGVzdC9BL2lkZW50L2ZkdF9maXh1cF9tdGRwYXJ0cwpBbmQgd2Ugc2hvdWxkIG1h a2Ugb3VyIGJlc3Qgc28gaXRzIHVzZSBkb2VzIG5vdCBwcm9saWZlcmF0ZS4KSXQncyBub3QgbGlr ZSB0aGVyZSBpcyBoYWxmIGEgZG96ZW4gb2YgZ29vZCB3YXlzIHRvIGRlc2NyaWJlIGFuZCBmb3J3 YXJkCnBhcnRpdGlvbnMgdG9kYXkuCgo+IGl0IGlzIG5vdCBjb2xpYnJpIG14NyBzcGVjaWZpYy4g QWxzbywgbmV3IGFyY2gtc2lkZSB3b3JrYXJvdW5kIGFyZQo+IHJlYWxseSBub3Qgd2VsY29tZSBi eSB0aGUgYXJjaGl0ZWN0dXJlIG1haW50YWluZXJzIGFzIGZhciBhcyBJIGNhbgo+IHRlbGwuCgpT byB3aGF0PyBMZXQncyBwcm9wb3NlIHRoZSBjaGFuZ2UgYW5kIHNlZSB3aGF0IHRoZSBtYWludGFp bmVycyBoYXZlIHRvCnNheS4gSSBhbSBvcGVuIHRvIGRpc2N1c3Npb24uCgpBcyBJIHNhaWQsIGl0 IGlzIG5vdCBjb2xpYnJpIG14NyBzcGVjaWZpYywgdGhlcmUgYXJlIGEgZmV3IGJvYXJkcyB3aGlj aAptaWdodCBiZSBhZmZlY3RlZCwgdGhleSBhcmUgYWxsIGNsZWFybHkgaWRlbnRpZmlhYmxlIHdp dGggYSBjb21wYXRpYmxlLgpJdCdzIG5vdCB0aGUgZW50aXJlIHBsYW5ldCBlaXRoZXIuCgo+ID4g U28gbmV4dCB0aW1lIHNvbWVvbmUgc3R1bWJsZXMgdXBvbiB0aGlzIGlzc3VlLCB3ZSBjYW4gdGVs bCB0aGVtICJmaXgKPiA+IHlvdXIgYm9vdGxvYWRlciIsIGFuZCBhcHBseSB0aGUgc2FtZSBoYWNr IGluIHRoZWlyIGJvYXJkIGZhbWlseSAodGhlcmUKPiA+IGFyZSB0aHJlZSBvciBmb3VyIElJUkMg d2hpY2ggbWlnaHQgYmUgY29uY2VybmVkIHNvbWUgZGF5KS4gIAo+IAo+IFRoZXJlIGFyZSBhbHNv IHRob3NlIG1hY2hpbmVzIHdlIGRvIG5vdCBldmVuIGtub3cgYWJvdXQgd2hpY2ggbWlnaHQgYmUg Z2VuZXJhdGluZyBib2d1cyBEVCB1c2luZyBvbGQgVS1Cb290IGFuZCBmaXh1cF9tdGRwYXJ0cygp LCBzbywgdW5sZXNzIHRoZXJlIGlzIHNvbWUgYWxsLWFyY2ggZml4dXAgaW1wbGVtZW50YXRpb24s IHdlIHdvdWxkbid0IGJlIGFibGUgdG8gZml4IHRoZW0gYWxsIG9uIGFyY2ggc2lkZS4gSSB0aGlu ayB0aGUgYWxsLWFyY2ggZml4dXAgaW1wbGVtZW50YXRpb24gd291bGQgYmUgdGhlIGRyaXZlciBv bmUsIGkuZS4gdGhpcyBwYXRjaCBhcyBpdCBpcyAob3IgbWF5YmUgd2l0aCBzb21lIGltcHJvdmVt ZW50KS4KCklmIHdlIGRvbid0IGtub3cgYWJvdXQgdGhlbSwgYXMgeW91IHNheSwgSSBkb24ndCBm ZWVsIGNvbmNlcm5lZC4KCklmIHNvbWV0aGluZyBpcyBidWdneSwgcGVvcGxlIHdpbGwgcmVwb3J0 IGl0LCB3ZSB3aWxsIHBvaW50IHRoZW0gaW4gdGhlCnJpZ2h0IGRpcmVjdGlvbiBzbyB0aGV5IGNh biBmaXggdGhlaXIgZmlybXdhcmUgYW5kIHByb3Bvc2UgYSBzaW1pbGFyCmZpeCBpbiB0aGVpciBj YXNlIHdoaWNoIHdpbGwgaW52b2x2ZSBhZGRpbmcgYSBuZXcgbWFjaGluZSBjb21wYXRpYmxlIHRv CnRoZSBsaXN0IG9mIGJvYXJkcyB0aGF0IHNob3VsZCB0d2VhayB0aGUgI3NpemUtY2VsbCBwcm9w ZXJ0eS4KCj4gPiBUaGF0IHdvdWxkIGZpeCBhbGwgY2FzZXMgYW5kIG9ubHkgaGF2ZSBhbiBpbXBh Y3Qgb24gdGhlIGFmZmVjdGVkIGJvYXJkcy4gIAo+IAo+IFNhZGx5LCBpdCBkb2VzIG9ubHkgZml4 IHRoZSBrbm93biBjYXNlcywgbm90IHRoZSB1bmtub3duIGNhc2VzIGxpa2UgZG93bnN0cmVhbSBm b3JrcyB3aGljaCBuZXZlciBnZXQgYW55IGJvb3Rsb2FkZXIgdXBkYXRlcyBldmVyLCBhbmQgd2hp Y2ggeW91IGNhbid0IGZpbmQgaW4gdXBzdHJlYW0gVS1Cb290LCBhbmQgd2hpY2ggeW91IHRoZXJl Zm9yZSBjYW5ub3QgZWFzaWx5IGNhdGNoIGluIHRoZSBhcmNoIHNpZGUgZml4dXAuCgpBbmQgPwoK VGhhbmtzLApNaXF1w6hsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo= 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C7F73C4332F for ; Thu, 15 Dec 2022 08:05:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229562AbiLOIFA (ORCPT ); Thu, 15 Dec 2022 03:05:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54244 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229544AbiLOIEy (ORCPT ); Thu, 15 Dec 2022 03:04:54 -0500 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7D22619D for ; Thu, 15 Dec 2022 00:04:52 -0800 (PST) Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id ECFE2FF803; Thu, 15 Dec 2022 08:04:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1671091489; 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=FJMSUayvugL6MlhockYElUgFDKfHQF7VlLpAvaOCTyU=; b=GcnQz6Wp7Md0AacQlPQ2MfiPQio3iVlu1Tq3D6uJnRelE/NIlnQK45X8jp6bMtav8eUT9U vF6vwVV1EPH0Zi6M5AhiYLypvxp5l/g8D+4YDZkLmLMHQkFaB7dvL0/9MVLm/w1I5rGNYU Hb++XjuuguhISsLWsSehFSFHaT2oViPuUoAagPzrhnzAXKPhgnQhuOXSAQwUZW5of0dOwd Gm1euP/4Du9dX7bUMmKq98ph2vfArXJcbSAmg/oHZUzcK2sylutEA1LVbEXHeRjk5IdvgV y0UlcOn9VQM+GQd68r7XN/vKGNh0yI1zMblF2g+1xwR3j+9NcuOIrF94dxMvlg== Date: Thu, 15 Dec 2022 09:04:46 +0100 From: Miquel Raynal To: Marek Vasut Cc: Francesco Dolcini , Richard Weinberger , Vignesh Raghavendra , linux-mtd@lists.infradead.org, Francesco Dolcini , Shawn Guo , linux-arm-kernel@lists.infradead.org, stable@vger.kernel.org, u-boot@lists.denx.de Subject: Re: [PATCH v1] mtd: parsers: ofpart: Fix parsing when size-cells is 0 Message-ID: <20221215090446.28363133@xps-13> In-Reply-To: References: <20221202150556.14c5ae43@xps-13> <2b6fc52d-60b9-d0f4-ab91-4cf7a8095999@denx.de> <20221202160030.1b8d0b8a@xps-13> <223b7a4e-3aff-8070-7387-c77d2ded1dd6@denx.de> <20221202164904.08d750df@xps-13> <0503c46d-c385-74f5-f762-51d87a5ebaff@denx.de> <20221202174255.2c1cb2ff@xps-13> <20221202175730.231d75d5@xps-13> <7afd364c-33b8-38a9-65a6-015b4360db6b@denx.de> <20221205144917.6514168a@xps-13> <20221215081604.5385fa56@xps-13> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org Hi Marek, marex@denx.de wrote on Thu, 15 Dec 2022 08:45:33 +0100: > On 12/15/22 08:16, Miquel Raynal wrote: > > Hi Marek & Francesco, =20 >=20 > Hi, >=20 > > marex@denx.de wrote on Mon, 5 Dec 2022 17:25:11 +0100: > > =20 > >> On 12/5/22 14:49, Miquel Raynal wrote: =20 > >>> Hi Francesco, =20 > >> > >> Hi, > >> =20 > >>> francesco@dolcini.it wrote on Mon, 5 Dec 2022 12:26:44 +0100: =20 > >>> >>>> On Fri, Dec 02, 2022 at 06:08:22PM +0100, Marek Vasut wrote: = =20 > >>>>> But here I would say this is a firmware bug and it might have to be= handled > >>>>> like a firmware bug, i.e. with fixup in the partition parser. I see= m to be > >>>>> changing my opinion here again. =20 > >>>> > >>>> I was thinking at this over the weekend, and I came to the following > >>>> ideas: > >>>> > >>>> - we need some improvement on the fixup we already have in the > >>>> partition parser. We cannot ignore the fdt produced by U-Boot -= as > >>>> bad as it is. > >>>> - the proposed fixup is fine for the immediate need, but it is > >>>> not going to be enough to cover the general issue with the U-Bo= ot > >>>> generated partitions. U-Boot might keep generating partitions a= s direct > >>>> child of the nand controller even when a partitions{} node is > >>>> available. In this case the current parser just fails since it = looks > >>>> only into it and it will find it empty. > >>>> - the current U-Boot only handle partitions{} as a direct child o= f the > >>>> nand-controller, the nand-chip is ignored. This is not the way = it is > >>>> supposed to work. U-Boot code would need to be improved. =20 > >>> > >>> I've been thinking about it this weekend as well and the current fix > >>> which "just set" s_cell to 1 seems risky for me, it is typically the > >>> type of quick & dirty fix that might even break other board (nobody > >>> knew that U-Boot current logic expected #size-cells to be set in the > >>> DT, what if another "broken" DT expects the opposite...) =20 > >> > >> Then with the current configuration, such broken DT would not work, si= nce current DT does set #size-cells=3D<1> (wrongly). > >> =20 > >>> , not > >>> mentioning potential issues with big storages (> 4GiB). > >>> > >>> All in all, I really think we should revert the DT change now, revert= ing > >>> as little to no drawbacks besides a dt_binding_check warning and gives > >>> us time to deal with it properly (both in U-Boot and Linux). =20 > >> > >> I am really not happy with this, but if that's marked as intermediate = fix, go for it. > >> > >> How do we deal with this in the long run however? Parser-side fix like= this one, maybe with better heuristics ? =20 > >=20 > > Yesterday while talking about an ACPI mis-description which needed > > fixing, I realized fixing up what the firmware provides to Linux should > > preferably be handled as early as possible. So my first first idea was > > to avoid using the broken "fixup mtdparts" function in U-Boot and I am > > still convinced this is what we should do in priority. However, as > > rightly pointed in this thread, we need to take care about the case > > where someone would use a newer DT (let's say, with the reverted changed > > reverted again) with an old U-Boot. I am still against piggy hacks in > > the generic ofpart.c driver, but what we could do however is a DT > > fixup in the init_machine (or the dt_fixup) hook for imx7 Colibri, very > > much like this: > > https://elixir.bootlin.com/linux/latest/source/arch/arm/mach-mvebu/boar= d-v7.c#L111 > > Plus a warning there saying "your dt is broken, update your firmware". = =20 >=20 > This does not work, because the old U-Boot fixup_mtdparts() may be applie= d on any machine, No: https://elixir.bootlin.com/u-boot/latest/A/ident/fdt_fixup_mtdparts And we should make our best so its use does not proliferate. It's not like there is half a dozen of good ways to describe and forward partitions today. > it is not colibri mx7 specific. Also, new arch-side workaround are > really not welcome by the architecture maintainers as far as I can > tell. So what? Let's propose the change and see what the maintainers have to say. I am open to discussion. As I said, it is not colibri mx7 specific, there are a few boards which might be affected, they are all clearly identifiable with a compatible. It's not the entire planet either. > > So next time someone stumbles upon this issue, we can tell them "fix > > your bootloader", and apply the same hack in their board family (there > > are three or four IIRC which might be concerned some day). =20 >=20 > There are also those machines we do not even know about which might be ge= nerating bogus DT using old U-Boot and fixup_mtdparts(), so, unless there i= s some all-arch fixup implementation, we wouldn't be able to fix them all o= n arch side. I think the all-arch fixup implementation would be the driver = one, i.e. this patch as it is (or maybe with some improvement). If we don't know about them, as you say, I don't feel concerned. If something is buggy, people will report it, we will point them in the right direction so they can fix their firmware and propose a similar fix in their case which will involve adding a new machine compatible to the list of boards that should tweak the #size-cell property. > > That would fix all cases and only have an impact on the affected boards= . =20 >=20 > Sadly, it does only fix the known cases, not the unknown cases like downs= tream forks which never get any bootloader updates ever, and which you can'= t find in upstream U-Boot, and which you therefore cannot easily catch in t= he arch side fixup. And ? Thanks, Miqu=C3=A8l 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 22A47C4332F for ; Thu, 15 Dec 2022 08:06:06 +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=qvIyZ0CC9FVTNb9NGUK8VohQDt/59ah4ABr4HNWABYU=; b=BT5CFrOC4G50LT MgCZVV+5qyaLPlK4BJChmpV251P6Lk9uqyma8nHGlrIEcUA6L5kMgNisI7iEmE7l+BhbwVdanQj4V jX6EFG6HIn5mHBt54UmHFUs30qPY/CI+MogskdMTSLqyhMkU5/YS9fR4ott+SugZzPPtYGHVV5g0v v0PTFI0kC3ed1opxbYMHHKo883JXBuaOsDLog9/Djz9nBnLD7R8s+Ffo7qDbeciK286zFTghSxWCI djnYO2PpEkqduo4P/0I+V2k9WjlH4oc+TadCTWhelt/roY63hJN4XjvVZwz3g5/DGNgs6UfbaBfEG rA2yF4JvvmK5/PnGTVMQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p5jEh-007UOb-3B; Thu, 15 Dec 2022 08:04:59 +0000 Received: from relay9-d.mail.gandi.net ([217.70.183.199]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1p5jEc-007UJR-UF; Thu, 15 Dec 2022 08:04:57 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id ECFE2FF803; Thu, 15 Dec 2022 08:04:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1671091489; 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=FJMSUayvugL6MlhockYElUgFDKfHQF7VlLpAvaOCTyU=; b=GcnQz6Wp7Md0AacQlPQ2MfiPQio3iVlu1Tq3D6uJnRelE/NIlnQK45X8jp6bMtav8eUT9U vF6vwVV1EPH0Zi6M5AhiYLypvxp5l/g8D+4YDZkLmLMHQkFaB7dvL0/9MVLm/w1I5rGNYU Hb++XjuuguhISsLWsSehFSFHaT2oViPuUoAagPzrhnzAXKPhgnQhuOXSAQwUZW5of0dOwd Gm1euP/4Du9dX7bUMmKq98ph2vfArXJcbSAmg/oHZUzcK2sylutEA1LVbEXHeRjk5IdvgV y0UlcOn9VQM+GQd68r7XN/vKGNh0yI1zMblF2g+1xwR3j+9NcuOIrF94dxMvlg== Date: Thu, 15 Dec 2022 09:04:46 +0100 From: Miquel Raynal To: Marek Vasut Cc: Francesco Dolcini , Richard Weinberger , Vignesh Raghavendra , linux-mtd@lists.infradead.org, Francesco Dolcini , Shawn Guo , linux-arm-kernel@lists.infradead.org, stable@vger.kernel.org, u-boot@lists.denx.de Subject: Re: [PATCH v1] mtd: parsers: ofpart: Fix parsing when size-cells is 0 Message-ID: <20221215090446.28363133@xps-13> In-Reply-To: References: <20221202150556.14c5ae43@xps-13> <2b6fc52d-60b9-d0f4-ab91-4cf7a8095999@denx.de> <20221202160030.1b8d0b8a@xps-13> <223b7a4e-3aff-8070-7387-c77d2ded1dd6@denx.de> <20221202164904.08d750df@xps-13> <0503c46d-c385-74f5-f762-51d87a5ebaff@denx.de> <20221202174255.2c1cb2ff@xps-13> <20221202175730.231d75d5@xps-13> <7afd364c-33b8-38a9-65a6-015b4360db6b@denx.de> <20221205144917.6514168a@xps-13> <20221215081604.5385fa56@xps-13> 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-20221215_000455_420368_5AED2288 X-CRM114-Status: GOOD ( 46.82 ) 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 SGkgTWFyZWssCgptYXJleEBkZW54LmRlIHdyb3RlIG9uIFRodSwgMTUgRGVjIDIwMjIgMDg6NDU6 MzMgKzAxMDA6Cgo+IE9uIDEyLzE1LzIyIDA4OjE2LCBNaXF1ZWwgUmF5bmFsIHdyb3RlOgo+ID4g SGkgTWFyZWsgJiBGcmFuY2VzY28sICAKPiAKPiBIaSwKPiAKPiA+IG1hcmV4QGRlbnguZGUgd3Jv dGUgb24gTW9uLCA1IERlYyAyMDIyIDE3OjI1OjExICswMTAwOgo+ID4gICAKPiA+PiBPbiAxMi81 LzIyIDE0OjQ5LCBNaXF1ZWwgUmF5bmFsIHdyb3RlOiAgCj4gPj4+IEhpIEZyYW5jZXNjbywgIAo+ ID4+Cj4gPj4gSGksCj4gPj4gIAo+ID4+PiBmcmFuY2VzY29AZG9sY2luaS5pdCB3cm90ZSBvbiBN b24sIDUgRGVjIDIwMjIgMTI6MjY6NDQgKzAxMDA6ICAKPiA+Pj4gICAgPj4+PiBPbiBGcmksIERl YyAwMiwgMjAyMiBhdCAwNjowODoyMlBNICswMTAwLCBNYXJlayBWYXN1dCB3cm90ZTogIAo+ID4+ Pj4+IEJ1dCBoZXJlIEkgd291bGQgc2F5IHRoaXMgaXMgYSBmaXJtd2FyZSBidWcgYW5kIGl0IG1p Z2h0IGhhdmUgdG8gYmUgaGFuZGxlZAo+ID4+Pj4+IGxpa2UgYSBmaXJtd2FyZSBidWcsIGkuZS4g d2l0aCBmaXh1cCBpbiB0aGUgcGFydGl0aW9uIHBhcnNlci4gSSBzZWVtIHRvIGJlCj4gPj4+Pj4g Y2hhbmdpbmcgbXkgb3BpbmlvbiBoZXJlIGFnYWluLiAgCj4gPj4+Pgo+ID4+Pj4gSSB3YXMgdGhp bmtpbmcgYXQgdGhpcyBvdmVyIHRoZSB3ZWVrZW5kLCBhbmQgSSBjYW1lIHRvIHRoZSBmb2xsb3dp bmcKPiA+Pj4+IGlkZWFzOgo+ID4+Pj4KPiA+Pj4+ICAgIC0gd2UgbmVlZCBzb21lIGltcHJvdmVt ZW50IG9uIHRoZSBmaXh1cCB3ZSBhbHJlYWR5IGhhdmUgaW4gdGhlCj4gPj4+PiAgICAgIHBhcnRp dGlvbiBwYXJzZXIuIFdlIGNhbm5vdCBpZ25vcmUgdGhlIGZkdCBwcm9kdWNlZCBieSBVLUJvb3Qg LSBhcwo+ID4+Pj4gICAgICBiYWQgYXMgaXQgaXMuCj4gPj4+PiAgICAtIHRoZSBwcm9wb3NlZCBm aXh1cCBpcyBmaW5lIGZvciB0aGUgaW1tZWRpYXRlIG5lZWQsIGJ1dCBpdCBpcwo+ID4+Pj4gICAg ICBub3QgZ29pbmcgdG8gYmUgZW5vdWdoIHRvIGNvdmVyIHRoZSBnZW5lcmFsIGlzc3VlIHdpdGgg dGhlIFUtQm9vdAo+ID4+Pj4gICAgICBnZW5lcmF0ZWQgcGFydGl0aW9ucy4gVS1Cb290IG1pZ2h0 IGtlZXAgZ2VuZXJhdGluZyBwYXJ0aXRpb25zIGFzIGRpcmVjdAo+ID4+Pj4gICAgICBjaGlsZCBv ZiB0aGUgbmFuZCBjb250cm9sbGVyIGV2ZW4gd2hlbiBhIHBhcnRpdGlvbnN7fSBub2RlIGlzCj4g Pj4+PiAgICAgIGF2YWlsYWJsZS4gSW4gdGhpcyBjYXNlIHRoZSBjdXJyZW50IHBhcnNlciBqdXN0 IGZhaWxzIHNpbmNlIGl0IGxvb2tzCj4gPj4+PiAgICAgIG9ubHkgaW50byBpdCBhbmQgaXQgd2ls bCBmaW5kIGl0IGVtcHR5Lgo+ID4+Pj4gICAgLSB0aGUgY3VycmVudCBVLUJvb3Qgb25seSBoYW5k bGUgcGFydGl0aW9uc3t9IGFzIGEgZGlyZWN0IGNoaWxkIG9mIHRoZQo+ID4+Pj4gICAgICBuYW5k LWNvbnRyb2xsZXIsIHRoZSBuYW5kLWNoaXAgaXMgaWdub3JlZC4gVGhpcyBpcyBub3QgdGhlIHdh eSBpdCBpcwo+ID4+Pj4gICAgICBzdXBwb3NlZCB0byB3b3JrLiBVLUJvb3QgY29kZSB3b3VsZCBu ZWVkIHRvIGJlIGltcHJvdmVkLiAgCj4gPj4+Cj4gPj4+IEkndmUgYmVlbiB0aGlua2luZyBhYm91 dCBpdCB0aGlzIHdlZWtlbmQgYXMgd2VsbCBhbmQgdGhlIGN1cnJlbnQgZml4Cj4gPj4+IHdoaWNo ICJqdXN0IHNldCIgc19jZWxsIHRvIDEgc2VlbXMgcmlza3kgZm9yIG1lLCBpdCBpcyB0eXBpY2Fs bHkgdGhlCj4gPj4+IHR5cGUgb2YgcXVpY2sgJiBkaXJ0eSBmaXggdGhhdCBtaWdodCBldmVuIGJy ZWFrIG90aGVyIGJvYXJkIChub2JvZHkKPiA+Pj4ga25ldyB0aGF0IFUtQm9vdCBjdXJyZW50IGxv Z2ljIGV4cGVjdGVkICNzaXplLWNlbGxzIHRvIGJlIHNldCBpbiB0aGUKPiA+Pj4gRFQsIHdoYXQg aWYgYW5vdGhlciAiYnJva2VuIiBEVCBleHBlY3RzIHRoZSBvcHBvc2l0ZS4uLikgIAo+ID4+Cj4g Pj4gVGhlbiB3aXRoIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24sIHN1Y2ggYnJva2VuIERUIHdv dWxkIG5vdCB3b3JrLCBzaW5jZSBjdXJyZW50IERUIGRvZXMgc2V0ICNzaXplLWNlbGxzPTwxPiAo d3JvbmdseSkuCj4gPj4gIAo+ID4+PiAsIG5vdAo+ID4+PiBtZW50aW9uaW5nIHBvdGVudGlhbCBp c3N1ZXMgd2l0aCBiaWcgc3RvcmFnZXMgKD4gNEdpQikuCj4gPj4+Cj4gPj4+IEFsbCBpbiBhbGws IEkgcmVhbGx5IHRoaW5rIHdlIHNob3VsZCByZXZlcnQgdGhlIERUIGNoYW5nZSBub3csIHJldmVy dGluZwo+ID4+PiBhcyBsaXR0bGUgdG8gbm8gZHJhd2JhY2tzIGJlc2lkZXMgYSBkdF9iaW5kaW5n X2NoZWNrIHdhcm5pbmcgYW5kIGdpdmVzCj4gPj4+IHVzIHRpbWUgdG8gZGVhbCB3aXRoIGl0IHBy b3Blcmx5IChib3RoIGluIFUtQm9vdCBhbmQgTGludXgpLiAgCj4gPj4KPiA+PiBJIGFtIHJlYWxs eSBub3QgaGFwcHkgd2l0aCB0aGlzLCBidXQgaWYgdGhhdCdzIG1hcmtlZCBhcyBpbnRlcm1lZGlh dGUgZml4LCBnbyBmb3IgaXQuCj4gPj4KPiA+PiBIb3cgZG8gd2UgZGVhbCB3aXRoIHRoaXMgaW4g dGhlIGxvbmcgcnVuIGhvd2V2ZXI/IFBhcnNlci1zaWRlIGZpeCBsaWtlIHRoaXMgb25lLCBtYXli ZSB3aXRoIGJldHRlciBoZXVyaXN0aWNzID8gIAo+ID4gCj4gPiBZZXN0ZXJkYXkgd2hpbGUgdGFs a2luZyBhYm91dCBhbiBBQ1BJIG1pcy1kZXNjcmlwdGlvbiB3aGljaCBuZWVkZWQKPiA+IGZpeGlu ZywgSSByZWFsaXplZCBmaXhpbmcgdXAgd2hhdCB0aGUgZmlybXdhcmUgcHJvdmlkZXMgdG8gTGlu dXggc2hvdWxkCj4gPiBwcmVmZXJhYmx5IGJlIGhhbmRsZWQgYXMgZWFybHkgYXMgcG9zc2libGUu IFNvIG15IGZpcnN0IGZpcnN0IGlkZWEgd2FzCj4gPiB0byBhdm9pZCB1c2luZyB0aGUgYnJva2Vu ICJmaXh1cCBtdGRwYXJ0cyIgZnVuY3Rpb24gaW4gVS1Cb290IGFuZCBJIGFtCj4gPiBzdGlsbCBj b252aW5jZWQgdGhpcyBpcyB3aGF0IHdlIHNob3VsZCBkbyBpbiBwcmlvcml0eS4gSG93ZXZlciwg YXMKPiA+IHJpZ2h0bHkgcG9pbnRlZCBpbiB0aGlzIHRocmVhZCwgd2UgbmVlZCB0byB0YWtlIGNh cmUgYWJvdXQgdGhlIGNhc2UKPiA+IHdoZXJlIHNvbWVvbmUgd291bGQgdXNlIGEgbmV3ZXIgRFQg KGxldCdzIHNheSwgd2l0aCB0aGUgcmV2ZXJ0ZWQgY2hhbmdlZAo+ID4gcmV2ZXJ0ZWQgYWdhaW4p IHdpdGggYW4gb2xkIFUtQm9vdC4gSSBhbSBzdGlsbCBhZ2FpbnN0IHBpZ2d5IGhhY2tzIGluCj4g PiB0aGUgZ2VuZXJpYyBvZnBhcnQuYyBkcml2ZXIsIGJ1dCB3aGF0IHdlIGNvdWxkIGRvIGhvd2V2 ZXIgaXMgYSBEVAo+ID4gZml4dXAgaW4gdGhlIGluaXRfbWFjaGluZSAob3IgdGhlIGR0X2ZpeHVw KSBob29rIGZvciBpbXg3IENvbGlicmksIHZlcnkKPiA+IG11Y2ggbGlrZSB0aGlzOgo+ID4gaHR0 cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vbGludXgvbGF0ZXN0L3NvdXJjZS9hcmNoL2FybS9tYWNo LW12ZWJ1L2JvYXJkLXY3LmMjTDExMQo+ID4gUGx1cyBhIHdhcm5pbmcgdGhlcmUgc2F5aW5nICJ5 b3VyIGR0IGlzIGJyb2tlbiwgdXBkYXRlIHlvdXIgZmlybXdhcmUiLiAgCj4gCj4gVGhpcyBkb2Vz IG5vdCB3b3JrLCBiZWNhdXNlIHRoZSBvbGQgVS1Cb290IGZpeHVwX210ZHBhcnRzKCkgbWF5IGJl IGFwcGxpZWQgb24gYW55IG1hY2hpbmUsCgpObzogaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20v dS1ib290L2xhdGVzdC9BL2lkZW50L2ZkdF9maXh1cF9tdGRwYXJ0cwpBbmQgd2Ugc2hvdWxkIG1h a2Ugb3VyIGJlc3Qgc28gaXRzIHVzZSBkb2VzIG5vdCBwcm9saWZlcmF0ZS4KSXQncyBub3QgbGlr ZSB0aGVyZSBpcyBoYWxmIGEgZG96ZW4gb2YgZ29vZCB3YXlzIHRvIGRlc2NyaWJlIGFuZCBmb3J3 YXJkCnBhcnRpdGlvbnMgdG9kYXkuCgo+IGl0IGlzIG5vdCBjb2xpYnJpIG14NyBzcGVjaWZpYy4g QWxzbywgbmV3IGFyY2gtc2lkZSB3b3JrYXJvdW5kIGFyZQo+IHJlYWxseSBub3Qgd2VsY29tZSBi eSB0aGUgYXJjaGl0ZWN0dXJlIG1haW50YWluZXJzIGFzIGZhciBhcyBJIGNhbgo+IHRlbGwuCgpT byB3aGF0PyBMZXQncyBwcm9wb3NlIHRoZSBjaGFuZ2UgYW5kIHNlZSB3aGF0IHRoZSBtYWludGFp bmVycyBoYXZlIHRvCnNheS4gSSBhbSBvcGVuIHRvIGRpc2N1c3Npb24uCgpBcyBJIHNhaWQsIGl0 IGlzIG5vdCBjb2xpYnJpIG14NyBzcGVjaWZpYywgdGhlcmUgYXJlIGEgZmV3IGJvYXJkcyB3aGlj aAptaWdodCBiZSBhZmZlY3RlZCwgdGhleSBhcmUgYWxsIGNsZWFybHkgaWRlbnRpZmlhYmxlIHdp dGggYSBjb21wYXRpYmxlLgpJdCdzIG5vdCB0aGUgZW50aXJlIHBsYW5ldCBlaXRoZXIuCgo+ID4g U28gbmV4dCB0aW1lIHNvbWVvbmUgc3R1bWJsZXMgdXBvbiB0aGlzIGlzc3VlLCB3ZSBjYW4gdGVs bCB0aGVtICJmaXgKPiA+IHlvdXIgYm9vdGxvYWRlciIsIGFuZCBhcHBseSB0aGUgc2FtZSBoYWNr IGluIHRoZWlyIGJvYXJkIGZhbWlseSAodGhlcmUKPiA+IGFyZSB0aHJlZSBvciBmb3VyIElJUkMg d2hpY2ggbWlnaHQgYmUgY29uY2VybmVkIHNvbWUgZGF5KS4gIAo+IAo+IFRoZXJlIGFyZSBhbHNv IHRob3NlIG1hY2hpbmVzIHdlIGRvIG5vdCBldmVuIGtub3cgYWJvdXQgd2hpY2ggbWlnaHQgYmUg Z2VuZXJhdGluZyBib2d1cyBEVCB1c2luZyBvbGQgVS1Cb290IGFuZCBmaXh1cF9tdGRwYXJ0cygp LCBzbywgdW5sZXNzIHRoZXJlIGlzIHNvbWUgYWxsLWFyY2ggZml4dXAgaW1wbGVtZW50YXRpb24s IHdlIHdvdWxkbid0IGJlIGFibGUgdG8gZml4IHRoZW0gYWxsIG9uIGFyY2ggc2lkZS4gSSB0aGlu ayB0aGUgYWxsLWFyY2ggZml4dXAgaW1wbGVtZW50YXRpb24gd291bGQgYmUgdGhlIGRyaXZlciBv bmUsIGkuZS4gdGhpcyBwYXRjaCBhcyBpdCBpcyAob3IgbWF5YmUgd2l0aCBzb21lIGltcHJvdmVt ZW50KS4KCklmIHdlIGRvbid0IGtub3cgYWJvdXQgdGhlbSwgYXMgeW91IHNheSwgSSBkb24ndCBm ZWVsIGNvbmNlcm5lZC4KCklmIHNvbWV0aGluZyBpcyBidWdneSwgcGVvcGxlIHdpbGwgcmVwb3J0 IGl0LCB3ZSB3aWxsIHBvaW50IHRoZW0gaW4gdGhlCnJpZ2h0IGRpcmVjdGlvbiBzbyB0aGV5IGNh biBmaXggdGhlaXIgZmlybXdhcmUgYW5kIHByb3Bvc2UgYSBzaW1pbGFyCmZpeCBpbiB0aGVpciBj YXNlIHdoaWNoIHdpbGwgaW52b2x2ZSBhZGRpbmcgYSBuZXcgbWFjaGluZSBjb21wYXRpYmxlIHRv CnRoZSBsaXN0IG9mIGJvYXJkcyB0aGF0IHNob3VsZCB0d2VhayB0aGUgI3NpemUtY2VsbCBwcm9w ZXJ0eS4KCj4gPiBUaGF0IHdvdWxkIGZpeCBhbGwgY2FzZXMgYW5kIG9ubHkgaGF2ZSBhbiBpbXBh Y3Qgb24gdGhlIGFmZmVjdGVkIGJvYXJkcy4gIAo+IAo+IFNhZGx5LCBpdCBkb2VzIG9ubHkgZml4 IHRoZSBrbm93biBjYXNlcywgbm90IHRoZSB1bmtub3duIGNhc2VzIGxpa2UgZG93bnN0cmVhbSBm b3JrcyB3aGljaCBuZXZlciBnZXQgYW55IGJvb3Rsb2FkZXIgdXBkYXRlcyBldmVyLCBhbmQgd2hp Y2ggeW91IGNhbid0IGZpbmQgaW4gdXBzdHJlYW0gVS1Cb290LCBhbmQgd2hpY2ggeW91IHRoZXJl Zm9yZSBjYW5ub3QgZWFzaWx5IGNhdGNoIGluIHRoZSBhcmNoIHNpZGUgZml4dXAuCgpBbmQgPwoK VGhhbmtzLApNaXF1w6hsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1hcm0ta2VybmVsCg==