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 71BF8CA9EBE for ; Sat, 10 Oct 2026 18:18:35 +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=5aknzfwmGfPoHrkoMP/7K0+8KidAo1Fadd7FC53k3fE=; b=sYe0uVhXZS6Q2N vJLbJAn5nI4XZyMImqIirMo0WtXAZX9GBDVUzxtT4qlRkBoejEluTwyf11z3vLWrdAWpyI6aoG+lg 7KwtL52SN8bheQD8GDjYCNqxYrYSewFJqafnPZMb8X19vYk8sdSfRP2q9klC6J69KU4dxydCd8EC9 ZeueKg0VrnOfgtqSAWHs0HOcZJ36ayzwvdUvJ3O09PPZ15Tj8kjCSM+G2cuHLnJM19L3TEpwjjYk3 t1o0KV+eJBNsSPb81aSzKu6XctedpJcmSpr9iydJXDtaaZ63BziC8fK0yquez34EXd9O5vfQxytq4 JUgQJvbLZ6CSgDgGa15w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xFbeS-00000008Mtt-1YP0; Sat, 10 Oct 2026 18:18:32 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xFbeQ-00000008Mti-21uq for linux-mtd@lists.infradead.org; Sat, 10 Oct 2026 18:18:30 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id D501340774; Sat, 10 Oct 2026 18:18:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B979C1F000FF; Sat, 10 Oct 2026 18:18:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791656309; bh=MibGS/SpY0Ht5gaekMQ0o/eJhlHCrk+F8KrkjlZ3ZDw=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=nSUqUjhs8JB8WpDj8yztKXZhVbc6EY77S5ELQMVm6BCxtosTcbXOrLgMzqn+wgftU DHlAeAf9bGGm+zhbrMa+05fUlij/t9lrqCDrv8kDeetGuUZ57Z3AZcixlZXfHsU/LF VNm/8MGAlIyIGDFN9O7e+wFtUk87azQ+7c6Afd5VPuOUqZAvHx9hW/Adt0FOpJNZHb B6ar9H9vf/wtdxHvPoIrSYYkLPu4unHPa24lA0wzNhy/tNgXzogAUYD5ko7fwbO8P0 RMtlaDTH8i7QRB2zR+Ur4Yb2Iyn3sNRuQMJjYjqmu00XakzraIbHgs1D2OCJWtY8RP Z41ZWeOc79ZVA== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v2 2/3] mtd: cfi_cmdset_0002: implement point() for simple linear maps To: "Orgad Shaneh" , miquel.raynal@bootlin.com, vigneshr@ti.com, richard@nod.at, tsbogend@alpha.franken.de Cc: dwmw2@infradead.org, corbet@lwn.net, linux-doc@vger.kernel.org, linux-mips@vger.kernel.org, ulli.kroll@googlemail.com, linux-mtd@lists.infradead.org, kaloz@openwrt.org, linusw@kernel.org, linux-kernel@vger.kernel.org, john@phrozen.org, nico@fluxnic.net In-Reply-To: <20261010180840.2152492-3-orgads@gmail.com> References: <20261010172142.2138956-1-orgads@gmail.com> <20261010180840.2152492-1-orgads@gmail.com> <20261010180840.2152492-3-orgads@gmail.com> Date: Sat, 10 Oct 2026 18:18:28 +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 MSBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIG10ZDogY2ZpX2NtZHNl dF8wMDAyOiBGTF9QT0lOVCBkZWFkbG9ja3MgYW5kIGhhbmdzIFhJUCBlcmFzZXMgdmlhIEZMX1hJ UF9XSElMRV9FUkFTSU5HCi0tCgpjb21taXQgNWYzYjM1NDNkNWVlNmRhZDVlODE3MWQ4NmVhN2Ey OTBhYmFiNzM3ZQpBdXRob3I6IE9yZ2FkIFNoYW5laCA8b3JnYWRzQGdtYWlsLmNvbT4KCm10ZDog Y2ZpX2NtZHNldF8wMDAyOiBpbXBsZW1lbnQgcG9pbnQoKSBmb3Igc2ltcGxlIGxpbmVhciBtYXBz CgpUaGlzIGNvbW1pdCBhZGRzIGEgcG9pbnQoKSBhbmQgdW5wb2ludCgpIHBhaXIgZm9yIGNmaV9j bWRzZXRfMDAwMiwgbW9kZWxlZApvbiBjZmlfaW50ZWxleHRfcG9pbnQoKSwgYWxsb3dpbmcgbGlu ZWFybHkgbWFwcGVkIGNoaXBzIHRvIGJlIHNjYW5uZWQgaW4KcGxhY2UuIEl0IGhhbmRsZXMgRkxf UE9JTlQgb3BlcmF0aW9ucyBhbmQgZW5zdXJlcyB0aGF0IGEgcG9pbnQgZG9lcyBub3QKc3VzcGVu ZCBhbiBlcmFzZSwgYnV0IHdhaXRzIGZvciBpdCB0byBmaW5pc2ggaW5zdGVhZC4KCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvbXRkL2NoaXBzL2NmaV9jbWRzZXRfMDAwMi5jIGIvZHJpdmVycy9tdGQv Y2hpcHMvY2ZpX2NtZHNldF8wMDAyLmMKPiBpbmRleCA1MTdkYjJmMjcwN2Y0Li5iMDMzMDgzOWEy MTMzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbXRkL2NoaXBzL2NmaV9jbWRzZXRfMDAwMi5jCj4g KysrIGIvZHJpdmVycy9tdGQvY2hpcHMvY2ZpX2NtZHNldF8wMDAyLmMKClsgLi4uIF0KCj4gQEAg LTkwNiw4ICs5MjYsMTIgQEAgc3RhdGljIGludCBnZXRfY2hpcChzdHJ1Y3QgbWFwX2luZm8gKm1h cCwgc3RydWN0IGZsY2hpcCAqY2hpcCwgdW5zaWduZWQgbG9uZyBhZHIKPiAgCQlyZXR1cm4gMDsK PiAgCj4gIAljYXNlIEZMX0VSQVNJTkc6Cj4gKwkJLyoKPiArCQkgKiBOb3QgZm9yIGEgcG9pbnQ6 IHRoZSBlcmFzZSB3b3VsZCBzdGF5IHN1c3BlbmRlZCBmb3IgYXMKPiArCQkgKiBsb25nIGFzIGl0 IGlzIGhlbGQsIHdoaWNoIGZvciBjcmFtZnMgaXMgdGhlIHdob2xlIG1vdW50Lgo+ICsJCSAqLwo+ ICAJCWlmICghY2ZpcCB8fCAhKGNmaXAtPkVyYXNlU3VzcGVuZCAmICgweDF8MHgyKSkgfHwKPiAt CQkgICAgIShtb2RlID09IEZMX1JFQURZIHx8IG1vZGUgPT0gRkxfUE9JTlQgfHwKPiArCQkgICAg IShtb2RlID09IEZMX1JFQURZIHx8Cj4gIAkJICAgIChtb2RlID09IEZMX1dSSVRJTkcgJiYgKGNm aXAtPkVyYXNlU3VzcGVuZCAmIDB4MikpKSkKPiAgCQkJZ290byBzbGVlcDsKCltTZXZlcml0eTog SGlnaF0KVGhpcyBwYXRjaCBjb3JyZWN0bHkgcHJldmVudHMgRkxfUE9JTlQgZnJvbSBzdXNwZW5k aW5nIGFuIGVyYXNlIGhlcmUsIGJ1dApkb2VzIHRoaXMgYWxzbyBuZWVkIHRvIGJlIGFwcGxpZWQg dG8gRkxfWElQX1dISUxFX0VSQVNJTkc/CgpJZiBtdGRfcG9pbnQoKSBpcyBjYWxsZWQgZHVyaW5n IEZMX1hJUF9XSElMRV9FUkFTSU5HLCBnZXRfY2hpcCgpIHN0aWxsCmFsbG93cyBtb2RlID09IEZM X1BPSU5UOgoKZHJpdmVycy9tdGQvY2hpcHMvY2ZpX2NtZHNldF8wMDAyLmM6Z2V0X2NoaXAoKSB7 CiAgICAuLi4KCWNhc2UgRkxfWElQX1dISUxFX0VSQVNJTkc6CgkJaWYgKG1vZGUgIT0gRkxfUkVB RFkgJiYgbW9kZSAhPSBGTF9QT0lOVCAmJgoJCSAgICAoIWNmaXAgfHwgIShjZmlwLT5FcmFzZVN1 c3BlbmQmMikpKQoJCQlnb3RvIHNsZWVwOwoJCWNoaXAtPm9sZHN0YXRlID0gY2hpcC0+c3RhdGU7 CgkJY2hpcC0+c3RhdGUgPSBGTF9SRUFEWTsKCQlyZXR1cm4gMDsKICAgIC4uLgp9CgpUaGlzIGFs bG93cyBkb19wb2ludF9vbmVjaGlwKCkgdG8gc3VjY2Vzc2Z1bGx5IGNoYW5nZSBjaGlwLT5zdGF0 ZSB0byBGTF9QT0lOVAp3aGlsZSBsZWF2aW5nIGNoaXAtPm9sZHN0YXRlIGFzIEZMX1hJUF9XSElM RV9FUkFTSU5HLgoKWyAuLi4gXQoKPiBAQCAtOTYwLDggKzk4NCwxMyBAQCBzdGF0aWMgaW50IGdl dF9jaGlwKHN0cnVjdCBtYXBfaW5mbyAqbWFwLCBzdHJ1Y3QgZmxjaGlwICpjaGlwLCB1bnNpZ25l ZCBsb25nIGFkcgo+ICAJCXJldHVybiAtRUlPOwo+ICAKPiAgCWNhc2UgRkxfUE9JTlQ6Cj4gLQkJ LyogT25seSBpZiB0aGVyZSdzIG5vIG9wZXJhdGlvbiBzdXNwZW5kZWQuLi4gKi8KPiAtCQlpZiAo bW9kZSA9PSBGTF9SRUFEWSAmJiBjaGlwLT5vbGRzdGF0ZSA9PSBGTF9SRUFEWSkKPiArCQkvKgo+ ICsJCSAqIE9ubHkgaWYgdGhlcmUncyBubyBvcGVyYXRpb24gc3VzcGVuZGVkOiB0aGUgY2hpcCBp cyBpbgo+ICsJCSAqIGFycmF5IG1vZGUsIHNvIHJlYWRzLCBmdXJ0aGVyIHBvaW50cyBhbmQgdGhl IHJlYm9vdAo+ICsJCSAqIHJlc2V0ICh3aGljaCBvbmx5IHJlLWVudGVycyBhcnJheSBtb2RlKSBj YW4gZ28gYWhlYWQuCj4gKwkJICovCj4gKwkJaWYgKChtb2RlID09IEZMX1JFQURZIHx8IG1vZGUg PT0gRkxfUE9JTlQgfHwKPiArCQkgICAgIG1vZGUgPT0gRkxfU0hVVERPV04pICYmIGNoaXAtPm9s ZHN0YXRlID09IEZMX1JFQURZKQo+ICAJCQlyZXR1cm4gMDsKPiAgCQlmYWxsdGhyb3VnaDsKPiAg CWRlZmF1bHQ6CgpbU2V2ZXJpdHk6IEhpZ2hdCklmIGNoaXAtPm9sZHN0YXRlIGlzIEZMX1hJUF9X SElMRV9FUkFTSU5HIGJlY2F1c2UgaXQgd2Fzbid0IGZpbHRlcmVkIG91dAphYm92ZSwgd2lsbCBz dWJzZXF1ZW50IG9wZXJhdGlvbnMgZGVhZGxvY2sgaGVyZT8KCkJlY2F1c2Ugb2xkc3RhdGUgaXMg bm90IEZMX1JFQURZLCBub3JtYWwgcmVhZCBvcGVyYXRpb25zIChGTF9SRUFEWSkgd291bGQKZmFs bCB0aHJvdWdoIHRvIHRoZSBzbGVlcCBibG9jayBpbmRlZmluaXRlbHkgdW50aWwgdGhlIHBvaW50 IGlzIHJlbGVhc2VkCih3aGljaCBmb3IgY3JhbWZzIGlzIHRoZSBtb3VudCBsaWZldGltZSkuCgpD b3VsZCB0aGlzIGFsc28gY2F1c2UgdGhlIFhJUCBiYWNrZ3JvdW5kIGVyYXNlIGxvb3AgdG8gc3Bp biBpbmRlZmluaXRlbHkKd2FpdGluZyBmb3IgY2hpcC0+c3RhdGUgdG8gcmV0dXJuIHRvIEZMX1hJ UF9XSElMRV9FUkFTSU5HPwoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlr by5kZXYvIy9wYXRjaHNldC8yMDI2MTAxMDE4MDg0MC4yMTUyNDkyLTEtb3JnYWRzQGdtYWlsLmNv bT9wYXJ0PTIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg== 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 2C3A63314C4; Sat, 10 Oct 2026 18:18:29 +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=1791656311; cv=none; b=DKipgca25jZERBLG/fRqFxsVUfkiFNTQz7LpHDBi8mmcU/0KM53LHCukaetWBJuABgNGQvnxf5SuJJOlm2ckhTmtfqhWccVdKQ6C+2U8jIaimQopUJC25A3MmJftA3JIXMUmgZKt2Hp9RGYQLa6CjJX8ocsE/dfBJP8RO3jLCf0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791656311; c=relaxed/simple; bh=Qo64louV01f5nI8Xu6Q32opf0kDq79BfYBCtWY4FHc0=; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type: Date; b=CsBcayVUDVdg95uzMoNPmYpn7ZzqrMPoE819BBDP1NzhCifkAoDCyI/6cF/RTL4dB+EHcHLT/ap9Sg5l+y2p05ITkT568o8zuUTfTYEHz27EB0a0kWerWMXaL9v8355Q1Ai8ykrSdKJcElezyFAFvX0ptNDlsueB9r1exo5Yxg4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nSUqUjhs; 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="nSUqUjhs" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B979C1F000FF; Sat, 10 Oct 2026 18:18:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791656309; bh=MibGS/SpY0Ht5gaekMQ0o/eJhlHCrk+F8KrkjlZ3ZDw=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=nSUqUjhs8JB8WpDj8yztKXZhVbc6EY77S5ELQMVm6BCxtosTcbXOrLgMzqn+wgftU DHlAeAf9bGGm+zhbrMa+05fUlij/t9lrqCDrv8kDeetGuUZ57Z3AZcixlZXfHsU/LF VNm/8MGAlIyIGDFN9O7e+wFtUk87azQ+7c6Afd5VPuOUqZAvHx9hW/Adt0FOpJNZHb B6ar9H9vf/wtdxHvPoIrSYYkLPu4unHPa24lA0wzNhy/tNgXzogAUYD5ko7fwbO8P0 RMtlaDTH8i7QRB2zR+Ur4Yb2Iyn3sNRuQMJjYjqmu00XakzraIbHgs1D2OCJWtY8RP Z41ZWeOc79ZVA== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v2 2/3] mtd: cfi_cmdset_0002: implement point() for simple linear maps Reply-To: sashiko-reviews@lists.linux.dev To: "Orgad Shaneh" , miquel.raynal@bootlin.com, vigneshr@ti.com, richard@nod.at, tsbogend@alpha.franken.de Cc: dwmw2@infradead.org, corbet@lwn.net, linux-doc@vger.kernel.org, linux-mips@vger.kernel.org, ulli.kroll@googlemail.com, linux-mtd@lists.infradead.org, kaloz@openwrt.org, linusw@kernel.org, linux-kernel@vger.kernel.org, john@phrozen.org, nico@fluxnic.net In-Reply-To: <20261010180840.2152492-3-orgads@gmail.com> References: <20261010172142.2138956-1-orgads@gmail.com> <20261010180840.2152492-1-orgads@gmail.com> <20261010180840.2152492-3-orgads@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Sat, 10 Oct 2026 18:18:28 +0000 Precedence: bulk X-Mailing-List: linux-doc@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: cfi_cmdset_0002: FL_POINT deadlocks and hangs XIP erases via = FL_XIP_WHILE_ERASING -- commit 5f3b3543d5ee6dad5e8171d86ea7a290abab737e Author: Orgad Shaneh mtd: cfi_cmdset_0002: implement point() for simple linear maps This commit adds a point() and unpoint() pair for cfi_cmdset_0002, modeled on cfi_intelext_point(), allowing linearly mapped chips to be scanned in place. It handles FL_POINT operations and ensures that a point does not suspend an erase, but waits for it to finish instead. > diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_= cmdset_0002.c > index 517db2f2707f4..b0330839a2133 100644 > --- a/drivers/mtd/chips/cfi_cmdset_0002.c > +++ b/drivers/mtd/chips/cfi_cmdset_0002.c [ ... ] > @@ -906,8 +926,12 @@ static int get_chip(struct map_info *map, struct flc= hip *chip, unsigned long adr > return 0; > =20 > case FL_ERASING: > + /* > + * Not for a point: the erase would stay suspended for as > + * long as it is held, which for cramfs is the whole mount. > + */ > if (!cfip || !(cfip->EraseSuspend & (0x1|0x2)) || > - !(mode =3D=3D FL_READY || mode =3D=3D FL_POINT || > + !(mode =3D=3D FL_READY || > (mode =3D=3D FL_WRITING && (cfip->EraseSuspend & 0x2)))) > goto sleep; [Severity: High] This patch correctly prevents FL_POINT from suspending an erase here, but does this also need to be applied to FL_XIP_WHILE_ERASING? If mtd_point() is called during FL_XIP_WHILE_ERASING, get_chip() still allows mode =3D=3D FL_POINT: drivers/mtd/chips/cfi_cmdset_0002.c:get_chip() { ... case FL_XIP_WHILE_ERASING: if (mode !=3D FL_READY && mode !=3D FL_POINT && (!cfip || !(cfip->EraseSuspend&2))) goto sleep; chip->oldstate =3D chip->state; chip->state =3D FL_READY; return 0; ... } This allows do_point_onechip() to successfully change chip->state to FL_POI= NT while leaving chip->oldstate as FL_XIP_WHILE_ERASING. [ ... ] > @@ -960,8 +984,13 @@ static int get_chip(struct map_info *map, struct flc= hip *chip, unsigned long adr > return -EIO; > =20 > case FL_POINT: > - /* Only if there's no operation suspended... */ > - if (mode =3D=3D FL_READY && chip->oldstate =3D=3D FL_READY) > + /* > + * Only if there's no operation suspended: the chip is in > + * array mode, so reads, further points and the reboot > + * reset (which only re-enters array mode) can go ahead. > + */ > + if ((mode =3D=3D FL_READY || mode =3D=3D FL_POINT || > + mode =3D=3D FL_SHUTDOWN) && chip->oldstate =3D=3D FL_READY) > return 0; > fallthrough; > default: [Severity: High] If chip->oldstate is FL_XIP_WHILE_ERASING because it wasn't filtered out above, will subsequent operations deadlock here? Because oldstate is not FL_READY, normal read operations (FL_READY) would fall through to the sleep block indefinitely until the point is released (which for cramfs is the mount lifetime). Could this also cause the XIP background erase loop to spin indefinitely waiting for chip->state to return to FL_XIP_WHILE_ERASING? --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261010180840.2152= 492-1-orgads@gmail.com?part=3D2