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 59478CC6B38 for ; Fri, 16 Oct 2026 04:02: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:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Date:References: In-Reply-To:Cc:To:Subject:From:Message-ID:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ouZwwp+2gkfSc6ITZUepq6HZ9r8ZExtHv9WjglTcf10=; b=T+BJCHpI6ENjDD 1zH2dn9Dhpa/CSuTYUXeMk+bY8n41680HNmJy1wZToqfpMRGYgJ52ieTLVT+9GCnK3oGM+/3Y4Tqp /zAWiYfXWmDvOsrf+o6VXt0QCSpzGcp4t2XolwzSyRaCqLgscUNzuEYlPAFIl8dtlmtLRxiNS+S5C A95IwFzQDKv3eCr0y2X1t988tSP40eRSHQhBOR+ktFk4WNM1atePNBLJ0L8c+5AXG7kD/YBScFgbt /WtvCgI1pD2P2/AlrVKU0Meb6GpTPfha2Y1OdELDnlW9cW9q987v2c1/FZkWSQiqrd5ADeqAAP6sE 2vtNR63daHu7wmZDAoSw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xHZ9Q-00000001vqY-0B8y; Fri, 16 Oct 2026 04:02:36 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xHZ9O-00000001vqQ-2mwc for linux-mtd@lists.infradead.org; Fri, 16 Oct 2026 04:02:34 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id AA8D2600D4; Fri, 16 Oct 2026 04:02:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 888A51F000C4; Fri, 16 Oct 2026 04:02:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792123353; bh=NYhYtY6NNxHVhaTXOhMMsowXI57SxMv7/T8lMzWMVN8=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=OedRXRlapUce4ZGThtU3JvUeqJMCsQv8lMObcrwmI61z2UHc0QWOmhzVm6DNtGp5L chuK0oubaBpriDQSOUC8YCT3+0bYTaYmJesqyIFDUFXPiVs2uJkBZRe/L+XkEwKFjT nzznNLTeqj1Oxh0o6qE/hhhJwD08qBFwFLHuiT13uZHKBqpPwX+ILWkoG3wpp6EWn+ T1lCbXIkIiNszSfWuOrKJea2GE81s8ziROlv/8rt2hhCw+VWcUe66InWcMy5H7foSX B7kl+vxTppAGGpUpuiux4aQVIazKdM4oSgS83hJkmkr2AWLYmx9BA4VC1nAmp/FQwZ 9zYP3GWUDPrkA== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v8 17/17] mtd: rawnand: sunxi: support the Allwinner randomized OOB format To: "James Hilliard" , "Miquel Raynal" , "Richard Weinberger" , "Vignesh Raghavendra" , "Sebastian Andrzej Siewior" , "Clark Williams" , "Steven Rostedt" , "Rob Herring" , "Krzysztof Kozlowski" , "Conor Dooley" Cc: "Chen-Yu Tsai" , "Jernej Skrabec" , "Samuel Holland" , "Maxime Ripard" , "Richard Genoud" , "Boris Brezillon" , "Masahiro Yamada" , "Brian Norris" , linux-mtd@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-rt-devel@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org In-Reply-To: <20261015-submit-sunxi-nand-vendor-oob-layout-v1-v8-17-8ba4881fbee8@gmail.com> References: <20261015-submit-sunxi-nand-vendor-oob-layout-v1-v8-0-8ba4881fbee8@gmail.com> <20261015-submit-sunxi-nand-vendor-oob-layout-v1-v8-17-8ba4881fbee8@gmail.com> Date: Fri, 16 Oct 2026 04:02:32 +0000 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: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 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 VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MSBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIG10ZDogcmF3bmFuZDog c3VueGk6IE1pc3NpbmcgYm91bmRzIGNoZWNrIG9uIGVjYy0+c3RlcHMgYWdhaW5zdCBtYXhfZWNj X3N0ZXBzCi0tCgpjb21taXQgYTJhZTFjZjk1YmI1MmExODUwZTZkYzIzOWM4NzNiNzRkMTc1ODA1 ZQpBdXRob3I6IEphbWVzIEhpbGxpYXJkIDxqYW1lcy5oaWxsaWFyZDFAZ21haWwuY29tPgoKICAg IG10ZDogcmF3bmFuZDogc3VueGk6IHN1cHBvcnQgdGhlIEFsbHdpbm5lciByYW5kb21pemVkIE9P QiBmb3JtYXQKICAgIAogICAgTm9ybWFsIGhhcmR3YXJlLUVDQyByZWFkcyBhbHNvIGRlY29kZSBw cm90ZWN0ZWQgT09CLCBpbmNsdWRpbmcgdGhlCiAgICBiYWQtYmxvY2sgbWFya2VyIGFuZCBtZXRh ZGF0YSB1c2VkIGluIGJhZC1ibG9jay10YWJsZSBzY2Fucy4gQWxsd2lubmVyCiAgICBmaXJtd2Fy ZSBsZWF2ZXMgdGhlIG1hcmtlciBpbiB0aGUgcmFuZG9taXplciBzdHJlYW0sIGJ1dCB0aGUgZXhp c3RpbmcKICAgIGRyaXZlciBjb21wZW5zYXRlcyBpdCB0byBrZWVwIGEgcGxhaW4gcGh5c2ljYWwg bWFya2VyLiBPbiBINi9INjE2LAogICAgZmlybXdhcmUgYWxzbyBwYWNrcyBwcm90ZWN0ZWQgdXNl ciBkYXRhIGJlZm9yZSB0aGUgZmlyc3QgcGFyaXR5IHJlZ2lvbgogICAgcmF0aGVyIHRoYW4gbWF4 aW1pemluZyBpdHMgYWxsb2NhdGlvbiBhY3Jvc3MgdGhlIHBhZ2UuIFRob3NlIG1pc21hdGNoZXMK ICAgIHByZXZlbnQgbm9ybWFsIEVDQyByZWFkcyBmcm9tIGludGVycHJldGluZyBmaXJtd2FyZS1m b3JtYXR0ZWQgcGFnZXMgYW5kCiAgICB0aGVpciBtYXJrZXJzLgoKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9tdGQvbmFuZC9yYXcvc3VueGlfbmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvc3Vu eGlfbmFuZC5jCj4gaW5kZXggNTY1OTRiYjQxMTkzMy4uMGUyZmYxYzU5MTIwZiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9zdW54aV9uYW5kLmMKPiArKysgYi9kcml2ZXJzL210 ZC9uYW5kL3Jhdy9zdW54aV9uYW5kLmMKClsgLi4uIF0KCj4gQEAgLTIzNDIsNiArMjM1MywyOTkg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdW54aV9uZmNfb29iX29wcyBzdW54aV9uZmNfc2NyYW1i bGVkX3BsYWluX2JibV9vb2Jfb3BzID0gewo+ICAJLmZpbmlzaF9yZWFkID0gc3VueGlfbmZjX29v Yl9maW5pc2hfcmVhZCwKPiAgfTsKPiAgCj4gKy8qIEFsbHdpbm5lciByYW5kb21pemVkLU9PQiBm b3JtYXQsIHNlbGVjdGVkIG9ubHkgYnkgYWxsd2lubmVyLHJhbmRvbWl6ZWQtb29iLiAqLwo+ICsj ZGVmaW5lIFNVTlhJX05GQ19INl9BTExXSU5ORVJfT09CX01BWF9VU0VSX0RBVEFfU1ogMTYKPiAr Cj4gK3N0YXRpYyB2b2lkIHN1bnhpX25mY19yYW5kb21pemVfYnVmKHUxNiBzdGF0ZSwgdTggKmJ1 ZiwgdW5zaWduZWQgaW50IGxlbikKPiArewo+ICsJd2hpbGUgKGxlbi0tKSB7Cj4gKwkJKmJ1Zisr IF49IHN0YXRlOwo+ICsJCXN0YXRlID0gc3VueGlfbmZjX3JhbmRvbWl6ZXJfc3RlcChzdGF0ZSwg OCk7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkCj4gK3N1bnhpX25mY19hbGx3aW5uZXJf b29iX3JlY29yZF9zdGF0dXMoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCwKPiArCQkJCSAgICAgIHN0 cnVjdCBzdW54aV9uZmNfYWxsd2lubmVyX29vYl9zdGF0dXMgKnJlc3VsdCwKPiArCQkJCSAgICAg IGludCBsb2dpY2FsX3N0ZXAsIGludCBod19zdGVwLAo+ICsJCQkJICAgICAgc3RydWN0IHN1bnhp X25mY19lY2Nfc25hcHNob3QgKnNuYXBzaG90KQo+ICt7Cj4gKwl1MzIgY291bnQ7Cj4gKwo+ICsJ aWYgKChzbmFwc2hvdC0+cGF0dGVybl9mb3VuZCAmIEJJVChod19zdGVwKSkgJiYKPiArCSAgICAh KHNuYXBzaG90LT5wYXR0ZXJuX2lkICYgQklUKGh3X3N0ZXApKSkKPiArCQlyZXN1bHQtPnplcm9f c3RlcHMgfD0gQklUKGxvZ2ljYWxfc3RlcCk7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyBj b2RlIGludm9rZSB1bmRlZmluZWQgYmVoYXZpb3IgaWYgbG9naWNhbF9zdGVwIGV4Y2VlZHMgdGhl IGJpdC13aWR0aD8KClRoZSBudW1iZXIgb2YgRUNDIHN0ZXBzIGlzIGRlcml2ZWQgZGlyZWN0bHkg ZnJvbSB0aGUgTkFORCBwYWdlIHNpemUgaW4Kc3VueGlfbmFuZF9od19lY2NfY3RybF9pbml0KCk6 CgoJbnNlY3RvcnMgPSBtdGQtPndyaXRlc2l6ZSAvIGVjYy0+c2l6ZTsKCXJldCA9IHN1bnhpX25h bmQtPm9vYl9vcHMtPmluaXRfdXNlcl9kYXRhKG5hbmQsIG5zZWN0b3JzKTsKCkl0IGRvZXNuJ3Qg YXBwZWFyIHRoYXQgbnNlY3RvcnMgaXMgdmFsaWRhdGVkIGFnYWluc3QgdGhlIGNvbnRyb2xsZXIn cwptYXhfZWNjX3N0ZXBzIGxpbWl0LiBJZiBhIE5BTkQgZmxhc2ggd2l0aCBhIGxhcmdlIHBhZ2Ug c2l6ZSBpcyB1c2VkLAplY2MtPnN0ZXBzIChhbmQgdGh1cyBsb2dpY2FsX3N0ZXApIGNhbiBleGNl ZWQgdGhlIGhhcmR3YXJlIGxpbWl0IChlLmcuLAoxNiBvciAzMikuIE9uIDMyLWJpdCBwbGF0Zm9y bXMsIHRoaXMgY291bGQgY2F1c2UgdGhlIEJJVChsb2dpY2FsX3N0ZXApCnNoaWZ0IHRvIG92ZXJm bG93LgoKQWRkaXRpb25hbGx5LCB0aGlzIGNvdWxkIGxlYWQgdG8gb3V0LW9mLWJvdW5kcyBNTUlP IHJlYWRzIGluCnN1bnhpX25mY19od19lY2NfZ2V0X3Byb3Rfb29iX2J5dGVzKCkgd2hlbiBpdGVy YXRpbmcgb3ZlciBlY2MtPnN0ZXBzLAphcyByZWdfaW5kZXggbWlnaHQgZXhjZWVkIHRoZSBzdXBw b3J0ZWQgaGFyZHdhcmUgcmVnaXN0ZXJzIGZvciB1c2VyIGRhdGEuCgpbIC4uLiBdCgo+ICtzdGF0 aWMgaW50IHN1bnhpX25mY19hbGx3aW5uZXJfb29iX2ZpbmlzaF9yZWFkKHN0cnVjdCBuYW5kX2No aXAgKm5hbmQsCj4gKwkJCQkJICAgICAgIHN0cnVjdCBzdW54aV9uZmNfZWNjX3JlYWQgKnJlYWQs Cj4gKwkJCQkJICAgICAgIGludCAqY3VyX29mZikKPiArewo+ICsJc3RydWN0IHN1bnhpX25mY19h bGx3aW5uZXJfb29iX3N0YXR1cyAqcmVzdWx0ID0gJnJlYWQtPmFsbHdpbm5lcl9vb2I7Cj4gKwl1 OCAqYnVmID0gcmVhZC0+YnVmOwo+ICsJYm9vbCBvb2JfcmVxdWlyZWQgPSByZWFkLT5vb2JfcmVx dWlyZWQ7Cj4gKwlib29sIGRtYSA9IHJlYWQtPmRtYTsKPiArCWludCBwYWdlID0gcmVhZC0+cGFn ZTsKPiArCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQobmFuZCk7Cj4gKwlzdHJ1 Y3QgbmFuZF9lY2NfY3RybCAqZWNjID0gJm5hbmQtPmVjYzsKPiArCWludCByZXQ7Cj4gKwo+ICsJ LyoKPiArCSAqIEFsbHdpbm5lciBmaXJtd2FyZSB0cmVhdHMgYW4gYWxsLXplcm8gcGh5c2ljYWwg cGFnZSBhcyBiYWQsIGV2ZW4gd2l0aG91dAo+ICsJICogRUNDIGVycm9ycy4gVGhpcyB0YWtlcyBw cmVjZWRlbmNlIG92ZXIgdGhlIHNwYXJlLWJ5dGUgaGV1cmlzdGljLgo+ICsJICovCj4gKwlpZiAo cmVzdWx0LT56ZXJvX3N0ZXBzID09IEdFTk1BU0soZWNjLT5zdGVwcyAtIDEsIDApKSB7CgpbU2V2 ZXJpdHk6IEhpZ2hdCkNhbiBHRU5NQVNLKCkgaW52b2tlIHVuZGVmaW5lZCBiZWhhdmlvciBoZXJl IGlmIGVjYy0+c3RlcHMgZXhjZWVkcyB0aGUKYXJjaGl0ZWN0dXJlJ3MgYml0LXdpZHRoPwoKU2lt aWxhciB0byB0aGUgQklUKCkgc2hpZnQgYWJvdmUsIHNpbmNlIGVjYy0+c3RlcHMgaXNuJ3QgYm91 bmRlZCBieQptYXhfZWNjX3N0ZXBzLCBhIGxhcmdlIHBhZ2Ugc2l6ZSBjb3VsZCBjYXVzZSB0aGlz IHJhbmdlIHRvIGV4Y2VlZCAzMiBiaXRzLApsZWFkaW5nIHRvIGFuIG92ZXJmbG93LgoKPiArCQlt ZW1zZXQoYnVmLCAwLCBtdGQtPndyaXRlc2l6ZSk7Cj4gKwkJbWVtc2V0KG5hbmQtPm9vYl9wb2ks IDAsIG10ZC0+b29ic2l6ZSk7Cj4gKwkJbXRkLT5lY2Nfc3RhdHMuZmFpbGVkICs9IGVjYy0+c3Rl cHM7Cj4gKwkJcmV0dXJuIDA7Cj4gKwl9CgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6 Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYxMDE1LXN1Ym1pdC1zdW54aS1uYW5kLXZlbmRv ci1vb2ItbGF5b3V0LXYxLXY4LTAtOGJhNDg4MWZiZWU4QGdtYWlsLmNvbT9wYXJ0PTE3CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgg TVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CB41D254B03; Fri, 16 Oct 2026 04:02:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1792123354; cv=none; b=pulgGG4B4Y8XGrrsw3EAnQR00i9k4q79+nCtEWlS4731YuDruwBWXZ2DdJ2XcUxhxjFoU+UcRNxhgChVWBrYS7daGdW2025W7PDF2RV602LP2XZoRXhL+DJK1Wo+jwMS/eHT+gs0KYC8LN4G3GczJwSPmpO+OqMJIu3GLFaIz3E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1792123354; c=relaxed/simple; bh=D/7WZn96n/4VQB8L8pTjKKxOtCun2ZxLUzSvWC0YHM8=; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type: Date; b=sqYzbpKLinrSE6LFvS/lg8dA1WMAsLcYGRf1ujXVAjtVbkBqWaTxvYkIwb7GhmzZeyNeUNt62uKWwWt/jchaNKfeQibBsh/wa4i/hYyGz8hblqR03vUOyJCakCgbbxkmoSjHAxiL7bcdDhpEDVHGaYfYnUJh0m5+ZwwikYS61ks= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OedRXRla; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OedRXRla" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 888A51F000C4; Fri, 16 Oct 2026 04:02:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792123353; bh=NYhYtY6NNxHVhaTXOhMMsowXI57SxMv7/T8lMzWMVN8=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=OedRXRlapUce4ZGThtU3JvUeqJMCsQv8lMObcrwmI61z2UHc0QWOmhzVm6DNtGp5L chuK0oubaBpriDQSOUC8YCT3+0bYTaYmJesqyIFDUFXPiVs2uJkBZRe/L+XkEwKFjT nzznNLTeqj1Oxh0o6qE/hhhJwD08qBFwFLHuiT13uZHKBqpPwX+ILWkoG3wpp6EWn+ T1lCbXIkIiNszSfWuOrKJea2GE81s8ziROlv/8rt2hhCw+VWcUe66InWcMy5H7foSX B7kl+vxTppAGGpUpuiux4aQVIazKdM4oSgS83hJkmkr2AWLYmx9BA4VC1nAmp/FQwZ 9zYP3GWUDPrkA== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v8 17/17] mtd: rawnand: sunxi: support the Allwinner randomized OOB format Reply-To: sashiko-reviews@lists.linux.dev To: "James Hilliard" , "Miquel Raynal" , "Richard Weinberger" , "Vignesh Raghavendra" , "Sebastian Andrzej Siewior" , "Clark Williams" , "Steven Rostedt" , "Rob Herring" , "Krzysztof Kozlowski" , "Conor Dooley" Cc: "Chen-Yu Tsai" , "Jernej Skrabec" , "Samuel Holland" , "Maxime Ripard" , "Richard Genoud" , "Boris Brezillon" , "Masahiro Yamada" , "Brian Norris" , linux-mtd@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-rt-devel@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org In-Reply-To: <20261015-submit-sunxi-nand-vendor-oob-layout-v1-v8-17-8ba4881fbee8@gmail.com> References: <20261015-submit-sunxi-nand-vendor-oob-layout-v1-v8-0-8ba4881fbee8@gmail.com> <20261015-submit-sunxi-nand-vendor-oob-layout-v1-v8-17-8ba4881fbee8@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Fri, 16 Oct 2026 04:02:32 +0000 Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 1 potential issue(= s) to consider: - [High] mtd: rawnand: sunxi: Missing bounds check on ecc->steps against ma= x_ecc_steps -- commit a2ae1cf95bb52a1850e6dc239c873b74d175805e Author: James Hilliard mtd: rawnand: sunxi: support the Allwinner randomized OOB format =20 Normal hardware-ECC reads also decode protected OOB, including the bad-block marker and metadata used in bad-block-table scans. Allwinner firmware leaves the marker in the randomizer stream, but the existing driver compensates it to keep a plain physical marker. On H6/H616, firmware also packs protected user data before the first parity region rather than maximizing its allocation across the page. Those mismatches prevent normal ECC reads from interpreting firmware-formatted pages and their markers. > diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sun= xi_nand.c > index 56594bb411933..0e2ff1c59120f 100644 > --- a/drivers/mtd/nand/raw/sunxi_nand.c > +++ b/drivers/mtd/nand/raw/sunxi_nand.c [ ... ] > @@ -2342,6 +2353,299 @@ static const struct sunxi_nfc_oob_ops sunxi_nfc_s= crambled_plain_bbm_oob_ops =3D { > .finish_read =3D sunxi_nfc_oob_finish_read, > }; > =20 > +/* Allwinner randomized-OOB format, selected only by allwinner,randomize= d-oob. */ > +#define SUNXI_NFC_H6_ALLWINNER_OOB_MAX_USER_DATA_SZ 16 > + > +static void sunxi_nfc_randomize_buf(u16 state, u8 *buf, unsigned int len) > +{ > + while (len--) { > + *buf++ ^=3D state; > + state =3D sunxi_nfc_randomizer_step(state, 8); > + } > +} > + > +static void > +sunxi_nfc_allwinner_oob_record_status(struct nand_chip *nand, > + struct sunxi_nfc_allwinner_oob_status *result, > + int logical_step, int hw_step, > + struct sunxi_nfc_ecc_snapshot *snapshot) > +{ > + u32 count; > + > + if ((snapshot->pattern_found & BIT(hw_step)) && > + !(snapshot->pattern_id & BIT(hw_step))) > + result->zero_steps |=3D BIT(logical_step); [Severity: High] Does this code invoke undefined behavior if logical_step exceeds the bit-wi= dth? The number of ECC steps is derived directly from the NAND page size in sunxi_nand_hw_ecc_ctrl_init(): nsectors =3D mtd->writesize / ecc->size; ret =3D sunxi_nand->oob_ops->init_user_data(nand, nsectors); It doesn't appear that nsectors is validated against the controller's max_ecc_steps limit. If a NAND flash with a large page size is used, ecc->steps (and thus logical_step) can exceed the hardware limit (e.g., 16 or 32). On 32-bit platforms, this could cause the BIT(logical_step) shift to overflow. Additionally, this could lead to out-of-bounds MMIO reads in sunxi_nfc_hw_ecc_get_prot_oob_bytes() when iterating over ecc->steps, as reg_index might exceed the supported hardware registers for user data. [ ... ] > +static int sunxi_nfc_allwinner_oob_finish_read(struct nand_chip *nand, > + struct sunxi_nfc_ecc_read *read, > + int *cur_off) > +{ > + struct sunxi_nfc_allwinner_oob_status *result =3D &read->allwinner_oob; > + u8 *buf =3D read->buf; > + bool oob_required =3D read->oob_required; > + bool dma =3D read->dma; > + int page =3D read->page; > + struct mtd_info *mtd =3D nand_to_mtd(nand); > + struct nand_ecc_ctrl *ecc =3D &nand->ecc; > + int ret; > + > + /* > + * Allwinner firmware treats an all-zero physical page as bad, even wit= hout > + * ECC errors. This takes precedence over the spare-byte heuristic. > + */ > + if (result->zero_steps =3D=3D GENMASK(ecc->steps - 1, 0)) { [Severity: High] Can GENMASK() invoke undefined behavior here if ecc->steps exceeds the architecture's bit-width? Similar to the BIT() shift above, since ecc->steps isn't bounded by max_ecc_steps, a large page size could cause this range to exceed 32 bits, leading to an overflow. > + memset(buf, 0, mtd->writesize); > + memset(nand->oob_poi, 0, mtd->oobsize); > + mtd->ecc_stats.failed +=3D ecc->steps; > + return 0; > + } --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261015-submit-sun= xi-nand-vendor-oob-layout-v1-v8-0-8ba4881fbee8@gmail.com?part=3D17