From nobody Sat Sep 26 14:39:03 2026 Received: from mx0b-00128a01.pphosted.com (mx0b-00128a01.pphosted.com [148.163.139.77]) (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 23C44468C0F; Mon, 31 Aug 2026 15:07:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.139.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788188850; cv=fail; b=EzXFT6UQEqLrZw87niUk2Vu+bmMrUr5xTEumJoi8sQRROyApOnXACew+dUICy9m5WeII05SXBAwTRMvTw4Bm8YAfzbSuDxd2CjgiZvD39H5VPmPTE7B+Yah1ATWL9CY13avJm1/xr9+0KmTO83rqy4H6ghjMY2YqGS5FgtnOTsY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788188850; c=relaxed/simple; bh=1IRztMYyN98YPy8CKBNMfqKLHmmsJJuEtwz69UdkKw0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=c487E6suFe9ODynsBAu/gbd+0YPeKNaqgVnpR+ekWy6zsJDzPOKbI7/P+tZiJYNzMUesjRfDaRq8ttX3jlebQKgwedBq3VY6yOYS1Bq7ojh8tYukudL/d9Kxn6jFHDPQCZ2h/vYYkgHa7XAeseTmPzVOLxer8YUnl9wZKamM2ug= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=wd2NS6zV; arc=fail smtp.client-ip=148.163.139.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="wd2NS6zV" Received: from pps.filterd (m0167091.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VEUOWq612916; Mon, 31 Aug 2026 11:06:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=e0YpG u4zt9GnN8Pn96daOhbMusB+oyMc0iIE5T+ZDK4=; b=wd2NS6zVtUrJEcTuT4q0u tyFwZil8EITHaNRA/ypovJ9TLKmOKq9InPU0wbzUVKw88ECWXUPRrU48VZ1qnDsl 9Fwr1duSpcBOv6uerN0hdB/2g5FKVtWnGLpdI1SWwkoZ3U4rKWJ0pQ5atUG3WcVP GZG22W6d25D8x0arsxZUKaZaQz9O8vXLTLvmntHZiUJG5WvTQjwjHXpulgGOJbuR XeTOiLo9C5GKW/QIvxT/1jOWFanfwDSc3mfOi7TyJINuiv9s1yFsoLMW7kVbiLXi ShRslETvNSRLW9kBkd3yWzozKYg6tgRF2kWWJJLylk9Az7ZkzdszsmMIwCqDcERs g== Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010015.outbound.protection.outlook.com [52.101.61.15]) by mx0b-00128a01.pphosted.com (PPS) with ESMTPS id 4gbs68em5h-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 31 Aug 2026 11:06:12 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SuW1jrT6kcfb3RSfcudN7Gbp4ILl26VjhHzCX6tmx65jPkMerAmOoAil1cfDqnkaM4o35t/EtPj7eTbFgHjK+zuKvXykPBsifuLqiLvjsnMwpRdBrb2+xy25MHVu+SeaV0AM8QrqKXcVTykBYpMcYTXvcPSqp4NnRSrNX8rClqNKf+qxRsVON5e59/YvZa/MtoSIQDH6k9kVo9m61lDx8JTqTEmSAt0eZvzttYuvzrJ86Io8JeDT/0U7fXn/NEkXOjDYNLyTgzMlqKCknOkqgQLWn+GA1mudRtemOWbyDShVUy3gK2E/oMhs5VrqPvWdZTGzVJkQ00DRqCOd9n9QQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=e0YpGu4zt9GnN8Pn96daOhbMusB+oyMc0iIE5T+ZDK4=; b=CK7mMWAbMIlhkMhLAHc7b8wpl3mPTEyKr29gNvNPWkjfcMzAH9thFOO9phnrGHXgOfuQiSR0r3KZ4wulLglldqJUgTsae6ZFmCGe3CKNJwlg99u7xq3YrvzwN1EZs5NBWqkw/pxTvSostPu6sCSXcEt07aPcrOn6cvmlupSQgdwISawDILcW5AFTh+hQgAINvsgu1bjvIK9mesb3MbBtWadKM+HhCORWgbAM97zL09miDOkpj3My6+tLvmRSykJcedXqXciZ6L8p7bxD8AeiNUXs4/HpV9bbtpBdDyb71Cb4LQnMB6bYFw3tlPXivlji2Acsaj+Pr3mHK4HZLvLcQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none Received: from SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) by PH9PR03MB767167.namprd03.prod.outlook.com (2603:10b6:510:3e8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 15:06:10 +0000 Received: from SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a]) by SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a%6]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 15:06:10 +0000 From: =?utf-8?q?Nuno_S=C3=A1?= Date: Mon, 31 Aug 2026 16:07:17 +0100 Subject: [PATCH 1/2] mtd: spinand: fix NULL pointer dereference with no ECC engine Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-mtd-nand-no-ecc-fixes-v1-1-c2ec46641b90@analog.com> References: <20260831-mtd-nand-no-ecc-fixes-v1-0-c2ec46641b90@analog.com> In-Reply-To: <20260831-mtd-nand-no-ecc-fixes-v1-0-c2ec46641b90@analog.com> To: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Richard Weinberger , Vignesh Raghavendra , Boris Brezillon , Miquel Raynal , stable@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788188838; l=3587; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=1IRztMYyN98YPy8CKBNMfqKLHmmsJJuEtwz69UdkKw0=; b=vfSltMt6baXHkrHTH5uExI7/KLEAF2RQHJBmMXOKs4gZwNbUHb3lZBe4W+QiSCibqQUn2BQ9V xoW7JSEK2nyCOO5dag8R85oEjNJSr0zx6mdNv9To0Z2rD5E75GB3ozI X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-ClientProxiedBy: MR1P264CA0152.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:54::14) To SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5469:EE_|PH9PR03MB767167:EE_ X-MS-Office365-Filtering-Correlation-Id: 538511ba-302a-4060-b5cf-08df07716439 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|23010399003|10067099003|18002099003|22082099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: XIv4uudRKp+VzqV24WCfkbIeILIY6S8/0UgoPQ/jEfxoamYkt5WcwA83yoZs4OZ8h/Xx3PmhU3zFEoUKCSQArAnjRd9KoZ0oAJC2JoV3wCgcDmsztw6cJx3vwUUYDrxAmAmjf+NpeWiEcYr5Qud0Quk8rC+R0CI7uv2fQZSZ+rP/PN7+KnTkKNxR9g4YA21WNNEjDjLC55galI74g9twGgA6oWhx6QdCy7H8sIPhGQls7GoSS5eilfajJx6+RNjyMSfZti1P+nyQZCwc2zRmLUrTmESipYcBgNHblP9/MQT073GF+pVPFg2qgekQaIkOLPqczxaltOQQAdxD5MUSjY3DYjJTyqcB5Fj1SwYfBagnGtblnGoJ+r0Oph7nhR/BnYrV6RL+QeqNxNw5cURpdr3GDsZziqSftYjYExKEaEG3OfEV3FAPx6RP+utam2gEJy736Unk94cu4UtykYBMmdDnavjVLuTihqVxJHesiciu6jJOUqwQuQHnitj48mCEDK7iBiu+vJPpqmlqzWrMaF2tRxPlHxFMNZtf9qFD2wpE0UaD92US/9Y0lK5KYKxZnd8aX1b8cpnjhHdrA+JE3CSS4Fvuhbbv8dUEkhvMOU0IqtUzqEu3O3YZH6TulD+ylH3OGRAiTyBCh0YATM/uZEuImJK7F+/19ErrjIbsxzM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5469.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(23010399003)(10067099003)(18002099003)(22082099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Qld6U3REaTdCbU9NS21hcFFGcXZ5Q2ttRFZaT1hROWhUNHl5QUZ5bVR5Njhq?= =?utf-8?B?SEg5TmdZOWNoeVdETm5WUlNJRTdhenZvZ2gxZWJDODZSZTRNZWh1OThqZ1dE?= =?utf-8?B?aFZhdkl6RVZoSXcwblBWZkdDQ3V2R1A3bU9vN002VFpxSzhTR2M2dHBJVWxB?= =?utf-8?B?a1lxbW5rbS9kdkZlV1lGSCtEZlFsYnFTMkxIakJZdEN1eUJMSGk3ZW1uTjhR?= =?utf-8?B?eTBISkdNZURZbHFiN2ZjWm5JaFh0WExyNHlPbXhYR25SWFhTZGE1WGUxQzlq?= =?utf-8?B?NHhSZ0cwUUwzczBXTk1SUDFhSUVPUktwN256ZEU3UHpwYW1oU2t6NGRLQ0ky?= =?utf-8?B?eW9CSURqQ3o2Q291eFFNMjV6bzBSb0hmbXpqUHdEUFZpQWpqd0crSi9SckJu?= =?utf-8?B?bjhWbnRmV3ZzS1hSUnMvc1BMWkpnK0FCYTVVWmNnellqckVLTUJFa0Zra1Jv?= =?utf-8?B?ZHR1MHBuckpqK0FRN0c2b1ovbFFyY1FPNGNZZXZVOFc2SzAydkxnT3BxZTN3?= =?utf-8?B?cG55S1A1Sis1eUJDbTFLQUxkYlFzYjFqMW1XL2plZlVzT3ZHWU8rOVB2OUtY?= =?utf-8?B?WEdGblF5dHZqODFHaW9LQ3lDRDZUcEtJUmZycXozR1FGNHk2YkVaY1REb0tm?= =?utf-8?B?Q09RRE8ydW92S1FkOWxEL0FWYzdjZ0YrMmNmWEdsK2YxZUplaENsbzZpZU1y?= =?utf-8?B?enhXenlxaTg1OXozVnUvRlNMWlBwYlhpVzM2ZWJnZW9IMzBEVFFLVWVKcGpY?= =?utf-8?B?djR2MHB1aTVFVkpGWGJHNmtMTnhoVEpab016YVNZVDM0MHkzMENaZEdsZWhq?= =?utf-8?B?RHdKN3pDVWN3SW5sVDRDT2MxeGhDc3l0SEJqNWZhZGlzbzlZcERzTFY3bDVw?= =?utf-8?B?a2dvV2dGRUlkV0M1Y2tLRTR2YlpuVjYxdUJXQi9Wd0R3Vkx4NS9QcFVpOUVv?= =?utf-8?B?MVlncXJCbGpKa2h4bkNpMEZZNklRYkgyS24xUTd6bktMbnRrYm1uUTZ6T3dD?= =?utf-8?B?K1hId0t1S1VlY04rdE5qQjdWL2gxaUxhSFdXU000eHFGazkvN1VBV2poeHZK?= =?utf-8?B?dFlnV2NSaEhXWWx3RlhSZmsveENnWHJ0bGo1QWRRbFpzZm91ZDhOWlJHQzNp?= =?utf-8?B?ZVBqVEp6VmZPVjA5Z0lHTDE3Ulh1UDhHbkozT2JYSFRyRDFYSW55QkVicUh6?= =?utf-8?B?dXI3dGR6cFJFS3FtN3JKZm1mSGR2ZzlPWGxoelZoaUVrNmo0Y0QxNHJZLzFy?= =?utf-8?B?dmwzTFBkTkpNblU1SzhGR0JacE82cXhQQmxRM3NCQXhJOGs2emVtVW0rT3Jl?= =?utf-8?B?ZUU0V3FoS3hKdHpwUmMrMzZnNnBiNjBRcjBHVnVqdXNqZWhpbW5SQmM3UU8r?= =?utf-8?B?N2EvU1ZTYlR2d29QR2Jlb3ZKN3lCR3VCKzVnKzc3bG96RTJkYnpoUVB1N1FU?= =?utf-8?B?VVZrVE9EZ2Jpbk5iWVVRNFZ1bGtWL0hKamN5WC9ZUXB5RDR4SWJYOEEyVHRi?= =?utf-8?B?eUlUWXU0UDduVndEczB3M0VxZXRxcHVheVhVMG45NHl3UUU2VklRTzRhQUpj?= =?utf-8?B?V2F1cUw0S1RSZEhnbFlMdG8wNWVQemZDclBnaEtSWVdwdVVCenpMOXFacHFs?= =?utf-8?B?amZOeUl3MzQ3MEp2Unh4aUZtckUyVmRPME4zMEpudWowazRVY3Jvdk5JYWNL?= =?utf-8?B?NlJiMllISlorMFBOaWtnYWNhekY4ekFSK1VGYWJvWkxmSGNMUzJ2bnNaUUpW?= =?utf-8?B?dG1nK1lLYzFzMnpDR0V5Rmx0S2xabjhBbmxDZmpRK1BSY2pFeDdWUHBmekRq?= =?utf-8?B?Y2tXMGdUMkRGcTU1T1hCT3FoZURnVlJvNWxVNUsvZm00cUh4dDlRa0lEOXg4?= =?utf-8?B?NmFINUkxTWxCK0RJa1Y4cmJYWFZrZEx2VEhmK0piOTFBeUhYdlA4dWloYXJR?= =?utf-8?B?cUtiM2tJeU1uaWxFcVpHQ1ZId2ZPd2lkVWw0OEQ3Z1RmWkdPN21GZDJYQ1d0?= =?utf-8?B?YnRySTNXTXppcGdBVUtqeHdVZUFQWjdURDUzdmkwTXJzdmxXRTNEUGJSOHNI?= =?utf-8?B?UFNvZkVkV3dmMUozT0NLYkZMNmRESGpXYnphZG81dVJlRFZ5VHE4S2lhNzFN?= =?utf-8?B?eWs4cWJGa0I4U1ZMTWY5bXUzUlEyVUtFckU0TDNWZkp0MXc4cWhIUWFYQXBK?= =?utf-8?B?TGErMUluZDJLNEgxQUZzRmlKZStPZUJtTGFuaHhpV1FVRnZwM2NOSHpncmRv?= =?utf-8?B?UjhLVnVCdjRuaWN6ZEc0bnBqcVBkTU9LNHp5SzhncTY3NE1TcmNMdFFhL3Rk?= =?utf-8?B?cllCcTVNd0E2ZHNTSFk2YjgyUC93NmtDVHhxMldCbDdEYWVDM2k5dz09?= X-Exchange-RoutingPolicyChecked: u/FHN/2ubvI9gn8raClQTWBNQf85aGfLkuNVjNyoGpGPOQDzNZzt741q/qPf/940hM4CwVN6QpQ6YaagY3CYhWpYSpUlmake9oYQHpeQRG9CVS0Hh0hO4Sm/ii2tKy1RQGMxIrDQEnV2WAbvdmNCQj+FafYRzpsU2R9BpP3fZa1nQCdTtlzJtsGQAiGa+U32d7EFcpjgUiObXnodEqfGWYH1xSmyMDOnGCQU4VBRGj8rVpxkAPJB4Xt9N/Hc2e23A6w7e0yj/QHazyoTGl9OX3+NMfFMtYGt+wJ0gHIX9RPxfA81rhMnSW9hWz/qU5Mkl0HCHvOfHcJ6UjntJKXVhg== X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: 538511ba-302a-4060-b5cf-08df07716439 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5469.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 15:06:10.5700 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1rOu8V/KTeNiDpa0u0FWXTkRW/8ueBJL2B2ZbzW/pBxiZ5fXeEgQMDu9VgnSOZuI4V+8totrH1bORV6FDX+2aQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH9PR03MB767167 X-Proofpoint-ORIG-GUID: yuGGNdYGOCkPUo5hhVv16lfTWQ4qDUIe X-Proofpoint-GUID: yuGGNdYGOCkPUo5hhVv16lfTWQ4qDUIe X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDEzMCBTYWx0ZWRfX+iTPh4tMBjK+ ImrpTzyLFqLDcd+8CbxCyXbtKsTKiU0Kfnuph7WwWeWCY65pYKFdJVi90jApHsjnBmfcp+U1Yfw g1yfn30dj6q6b5MmvjWZamkVQbpnX5iqSiMddC9wAZsdMgSzcvB4tIF8WelfarYXRfUGlt/lbYo N5COGQX7DT87sgsuX+nE52pRHGuc5iMUtQxBAdpcQRK1QR+z53ImOx/r6DOCcMSKwCiIyw6ASav GO7cT3qZEi7Y0ZuMfsvvX7TVMVatFI6Yvp8prrTCLgsclPZCoL3kKMC94Y5+1je57Ta+zsSagZi nL7fmdHZssgagYXiQ9o4Vkizk2Ya0nuc/2nwADfjWZnfoK8LjpSNxT9zJ1ECsZjS96Ny1kFh4+1 qdhNds6Acs2gun3NVKyCfF1/PSP/Kyun9y0YmPVPYOLrrg/352I+rALm8z1cpiIZn9JlnfvKEpc CvfHvoOHz74ZjTaLBVA== X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDEzMCBTYWx0ZWRfXzDIcFx5qGPPX cqxGKYMgKEBJ5FVmmEn361kgTkGPxFMlshsU0I7ddzbrZYEq/j6Fz0pxtcYd4mirra74tpbZfc5 2UTjZpxvW8gqeWNbBHtZ7gb+bb7dS9oLCm7HqqRMY/QMBeaypD1X X-Authority-Analysis: v=2.4 cv=Xcq5Co55 c=1 sm=1 tr=0 ts=6a959864 cx=c_pps a=85i0V4ggiSMiQM2jsTwpvQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=0sLvza09kfJOxVLZPwjg:22 a=ugNRTJOwpmtT476g4l8T:22 a=VwQbUJbxAAAA:8 a=gAnH3GRIAAAA:8 a=OXZ2oO85O3lAY8GZ5_gA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_05,2026-08-27_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 clxscore=1011 lowpriorityscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608310130 When "nand-no-ecc-engine" is set in DT, nanddev_get_ecc_engine() takes the NAND_ECC_ENGINE_TYPE_NONE path and returns success while leaving nand->ecc.engine NULL. The SPI-NAND code nevertheless dereferences it unconditionally to test for a pipelined engine, so probing such a device oopses immediately. Rather than open-coding the test three times, add a nand_ecc_is_pipelined() helper to the NAND core that folds the NULL check into the integration comparison, and use it everywhere. Future callers then cannot reintroduce the problem. Fixes: f9d7c7265bcf ("mtd: spinand: Create direct mapping descriptors for E= CC operations") Cc: stable@vger.kernel.org Signed-off-by: Nuno S=C3=A1 --- drivers/mtd/nand/ecc.c | 7 +++++++ drivers/mtd/nand/spi/core.c | 8 +++----- include/linux/mtd/nand.h | 2 ++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/mtd/nand/ecc.c b/drivers/mtd/nand/ecc.c index 6ccdff3fc913..1d809cbd47e6 100644 --- a/drivers/mtd/nand/ecc.c +++ b/drivers/mtd/nand/ecc.c @@ -159,6 +159,13 @@ int nand_ecc_finish_io_req(struct nand_device *nand, } EXPORT_SYMBOL(nand_ecc_finish_io_req); =20 +bool nand_ecc_is_pipelined(const struct nand_device *nand) +{ + return nand->ecc.engine && + nand->ecc.engine->integration =3D=3D NAND_ECC_ENGINE_INTEGRATION_P= IPELINED; +} +EXPORT_SYMBOL(nand_ecc_is_pipelined); + /* Define default OOB placement schemes for large and small page devices */ static int nand_ooblayout_ecc_sp(struct mtd_info *mtd, int section, struct mtd_oob_region *oobregion) diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c index 35365b67dd8e..03ff43445693 100644 --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c @@ -508,8 +508,7 @@ static int spinand_read_from_cache_op(struct spinand_de= vice *spinand, else rdesc->info.op_tmpl =3D &rdesc->info.primary_op_tmpl; =20 - if (nand->ecc.engine->integration =3D=3D NAND_ECC_ENGINE_INTEGRATION_PIPE= LINED && - req->mode !=3D MTD_OPS_RAW) + if (nand_ecc_is_pipelined(nand) && req->mode !=3D MTD_OPS_RAW) rdesc->info.op_tmpl->data.ecc =3D true; else rdesc->info.op_tmpl->data.ecc =3D false; @@ -603,8 +602,7 @@ static int spinand_write_to_cache_op(struct spinand_dev= ice *spinand, =20 wdesc =3D spinand->dirmaps[req->pos.plane].wdesc; =20 - if (nand->ecc.engine->integration =3D=3D NAND_ECC_ENGINE_INTEGRATION_PIPE= LINED && - req->mode !=3D MTD_OPS_RAW) + if (nand_ecc_is_pipelined(nand) && req->mode !=3D MTD_OPS_RAW) wdesc->info.op_tmpl->data.ecc =3D true; else wdesc->info.op_tmpl->data.ecc =3D false; @@ -1261,7 +1259,7 @@ static int spinand_create_dirmap(struct spinand_devic= e *spinand, struct spi_mem_dirmap_desc *desc; bool enable_ecc =3D false, secondary_op =3D false; =20 - if (nand->ecc.engine->integration =3D=3D NAND_ECC_ENGINE_INTEGRATION_PIPE= LINED) + if (nand_ecc_is_pipelined(nand)) enable_ecc =3D true; =20 if (spinand->cont_read_possible && spinand->op_templates->cont_read_cache) diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index 09c8c93e4dba..6936180b6ea5 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h @@ -305,6 +305,8 @@ int nand_ecc_prepare_io_req(struct nand_device *nand, struct nand_page_io_req *req); int nand_ecc_finish_io_req(struct nand_device *nand, struct nand_page_io_req *req); +bool nand_ecc_is_pipelined(const struct nand_device *nand); + bool nand_ecc_is_strong_enough(struct nand_device *nand); =20 #if IS_REACHABLE(CONFIG_MTD_NAND_CORE) --=20 2.55.0 From nobody Sat Sep 26 14:39:03 2026 Received: from mx0b-00128a01.pphosted.com (mx0a-00128a01.pphosted.com [148.163.135.77]) (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 BA944525A91; Mon, 31 Aug 2026 15:07:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.135.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788188849; cv=fail; b=BU1kwQcG5P4ZMhUR2SpSsJuh+Hg77w323W8D6BCD1Rh4ioSzjnXoQXdeHHeDd3+uYZMwV4J/jI9k2hcAlByNdRI4KEWetWU4wxZV5UaVF0r6x8rTrKskjEoa2+zHJHQeYlDhd8rFz+8lfTZDCGvlBGm/2bojv7ICvKArMM4mMiI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788188849; c=relaxed/simple; bh=x/xUDRpfeDTQcKn/6BxmOYSGaD0JwJ0aby3dCb6r6I4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=VqThGXGGZOdTVYaf/qijJywevc5lbjp9vznUMRkdvKIbLXqvk/rG4G3IWaSJmxuosH6245+cYfFnxQr8je41AtyXO3QTDS9lSlpGyTENA3ObxjmxYiZ5MTNkU3V/+nnrFwXa7aRnTox43kvqPIjQr6DmexlqU2e4RZF7CYXa6OQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=WOznDQhh; arc=fail smtp.client-ip=148.163.135.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="WOznDQhh" Received: from pps.filterd (m0375855.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VEVDoM889044; Mon, 31 Aug 2026 11:06:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=ib4PE 4EjexcdnxfgiSyAK4wibIBbzY4hGKIBXM+ZZBA=; b=WOznDQhh5XRsevtaeuLPd OlRPPBvr/l5voYLgbBrGwltzrUb7JlozhtpiQTRNKLQZqdBJ7sDvfERvNZ1nHg6r kbXtQhGpsJNvtmRmZgeSkxkzBYM7+I0lFHAdM3GGEAe5Zhjej+6bDyU4lFKjyOgX UleiNr5fXZh5eVdovXkv+1jpoIM2ie50j7uIEdFALlIKE2Ed5sgCWXkhVbR4jKgO K/dblR24/eHjyyagKMmz/0jnII6No/Va2UkNZ2f/R0FsfmedccfodEBYC5PwQ/62 S3nuszH8E01ycssEwjqWyCeMYIO0OEtRiJrzt+syhEWb2zV68IoDG8gKMMbcv7zh w== Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11011067.outbound.protection.outlook.com [52.101.62.67]) by mx0b-00128a01.pphosted.com (PPS) with ESMTPS id 4gcdrdn6ck-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 31 Aug 2026 11:06:15 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MUTrg639SY6M2hMrM0tpM8f93bDsKFQj5xAHWkc0Qv17XOWvOvFKFlYMaywKDvy1GV2GRQns6LikI++z15pcadhvzRD7bTbvUzfBxai2pKqae+FXhKr6CZHdOIqk1+VteM7p3krp0w/5iH0vs60VHLwjRHioB0qTT+OJ24fVr7TtKuLLoSgjdFAuIM+Lf5xE4m8cmoVTF4FdhPvA6wUQ3/VVMymYrh797sjnnG5L8bBZx4Gy1G7uML7lRyTQhsiEqGPW4bFerK488PLJfB6ozXEo6tqL4GauIy1nD2Vx/LOLZ6WO7rJjaGqSRLKS2ZW/8Sfn0QrxgF+7HbGK83H43A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ib4PE4EjexcdnxfgiSyAK4wibIBbzY4hGKIBXM+ZZBA=; b=Rx6Ps4m6hKrfxNOWFfB01HxIwkQp/G4s1FmdPExqFSzkIkXNq52sWJuUizuRDnpJO5NrRinXN4+84yAbL/iK3ZfBawhCXlsh28oqNjOa1yUGEzdw5cdqm9B2G9Uy4raiMSXsojPJPBVgcnXdO+MUHVkkJjSO/2lDGs34zwqRZXK6yckGKL7GqxczzhBWq3jr882CgBtHIgJ3lCEPCUDxuxTA3KSYJlGzgvSnqxWzwNMqrcrcVO3CTFo72Zm4nAV3JcB2Z+Gi52ATCaL4757pNwPBAza6bNEsASis1TFig4ZhpA1eOp7h3QmdoHRSA6NdPdi0VJbzCSU6B8iHvGJzYQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none Received: from SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) by PH9PR03MB767167.namprd03.prod.outlook.com (2603:10b6:510:3e8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 15:06:14 +0000 Received: from SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a]) by SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a%6]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 15:06:14 +0000 From: =?utf-8?q?Nuno_S=C3=A1?= Date: Mon, 31 Aug 2026 16:07:18 +0100 Subject: [PATCH 2/2] mtd: spinand: fix zero oobavail when no ECC engine is used Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-mtd-nand-no-ecc-fixes-v1-2-c2ec46641b90@analog.com> References: <20260831-mtd-nand-no-ecc-fixes-v1-0-c2ec46641b90@analog.com> In-Reply-To: <20260831-mtd-nand-no-ecc-fixes-v1-0-c2ec46641b90@analog.com> To: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Richard Weinberger , Vignesh Raghavendra , Boris Brezillon , Miquel Raynal , stable@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788188838; l=1923; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=x/xUDRpfeDTQcKn/6BxmOYSGaD0JwJ0aby3dCb6r6I4=; b=omOmYhLc8HqaHrQlBp6welGuSr8MtTp9c4Vg8alaooRXBF2Upwp/GeJKblQuuNcg4yP25BHHP qaQXOzytBeoB6A6aTLnkCndKB8jCfGw1TLrrZxJD86/eriqzO8OBlTn X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-ClientProxiedBy: MA3P292CA0061.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:49::14) To SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5469:EE_|PH9PR03MB767167:EE_ X-MS-Office365-Filtering-Correlation-Id: 15f706f5-a8b8-4789-2fe4-08df07716678 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|23010399003|10067099003|18002099003|22082099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: SiyWDOHB7Dut7UbsrJG4e10T+A2IeSnu3uzTH42NI963sr9TVQ0BDiIJ5JATP+aHOoeKfkXavLnGrcR5QlocciqyXfY8ZvnO0Hn/GYDN2z79LRqEeWUEvAECmwBM9MeUy594OsCht+2AtI15VcE4DfULFBRALkRWMe3G+FeXJZtXrd6AFJIn5pWPtNmeTxOaTZre5YdvkmNsK2z1z4Hixtd8+VHZQqSOgFZ4ggcaXaAVlF9vWOiolE/RCBpQ0gQfuNQ6r1lkQ4WgBjCqLiDSVdniqydL5FlolbR1RBXO8Le3QImES1ZWTZrv/AUS/6wf73G6/QizQB7Po4Tdpy/r2/uW55dUmteuXsmuJ825wPGsaWahl4dKhL0nzy1WpHGaVikT3JWLzGK0oMync3Dh68/9GXk7WI/3v+4sflY55VOPoACi3gLxVW4kj96H82T+lAHNIKgOdbWKm/4qwntrDqZgyrMsDbxKqy58IiaY46oR6IFtKw3ShYV9LK/PZEJkFzRIXTKvRYkgOGvqp978twhhCG0gJjM2y9KqZnYNgECoefYcbS1/rl+CqzE7e8d493kmNGc6p6CRc9OiHS2mBMEleGSDmhlmhmOQisbQF6cYM1iwnoXiyw8XJI7kd2YSLoH7gtVRcK9IX0SBW4TM1guxvufcywdC6jzWUKgpWNY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5469.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(23010399003)(10067099003)(18002099003)(22082099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a1QyYUVsRG14RTBtWldBbVY4cHp0cW5VVEpNaWdQTlIyRWowd0dFMWRibXNV?= =?utf-8?B?bnIrUzZhc05IMldWYTFDOVlyOUxxcTJJQWc0K2tBbk5zZGVTeW1uZ2RsVFo2?= =?utf-8?B?aHg2M1VQa2VpWmloSmdZN2kyN2dodGxCZS9RVjBYaVltOTZpTnUvOWJDbkU0?= =?utf-8?B?TXU4YXhIbStRekRDTEpKd0I2N0p6dDNUMkRuVlhmK1M0RVllMzV1ZjRwMDd5?= =?utf-8?B?eURycGpEbWk1Y0FjTjE3U3EzOXFEL3FybXArYnpyNU5jM3BGUUpRRCtaTnY0?= =?utf-8?B?clkzdityVFpwL0hhYS9BYk5FRWFUZVZBd2dxUVgyYU9GSndrVm51TmQwZEts?= =?utf-8?B?Y01EbDFpK3V4Y1h1V1o5ayt4SVNWQXljSXVsUmVNL21DU1RkU3VuU0hXVzND?= =?utf-8?B?TlIxTjVTLzd0cXZsNWVTdXlBTXRZMGdHVDhVNnhqYnh3K2xlekxQdWJ2RTdp?= =?utf-8?B?WjU5Znc4LzhXdmk2SHhBbER5cElJa204QVpTOEFLOUZ4cGZSa1hlcXZqcUpL?= =?utf-8?B?S2hLL3NJQWlzc2g0V1hCQ2tlUUZ3b2Z6ditlYTd1dzNPM0Z4TGRIYjRLanYw?= =?utf-8?B?czJoN1NnRFNJNlhzeXZpZXJUUy8rMVdsbEs4WlBOYkxVNE9kVzF4ZmtGWHlM?= =?utf-8?B?d3FiWGlEdS9wVVp3MlJuMm0wa2JOSXI5emlYMjBsdFJ1UHBFSzJpbDlDS2FU?= =?utf-8?B?bVIvbEd0WEVhNExwQzN5Rml2VHFUd3YyWlhrSFExaXRWV0JjbiszQkRXdnkv?= =?utf-8?B?SXk4UmhzSGxxMDN1TDNvbU04SjBGNXVlTTdyU3pjbC8xd3dIYWVGU0lDQVpD?= =?utf-8?B?dVVmcStYMGJXd2JnNzAwTkFnL0VQbk9OYUJwQTkyU2JPOURBZ01zdmZGMFlK?= =?utf-8?B?UTZXbzI2d3pOQ1JiZDNmaG9TRE02NVp6ajlIamxLNTk1Wk40R24wRThjT1Yw?= =?utf-8?B?VzNyeGNoaUxwVkhXRGRxWVlEa3JyNitTSkVtWUNRTDVPcmlYbGZTUEMycGtp?= =?utf-8?B?VHA2bzFtN0tNVGJnUEVCZkpwSGxYVnZBUEY3Uy9iU3FzOUlVWWM4WDJzUkxW?= =?utf-8?B?QXMwZEFJcSs3ckVYdkRiaDFzR29lZW9TNG52Rzh4NzNMcmhVeWJ2UXYxbklm?= =?utf-8?B?QzBObFZYNW1kSmtNbmE3ZXR2N1hHbHBwK3pmU2FSTmdsYW03UHNvSzEvK3Jy?= =?utf-8?B?bk56MnAvN0NJc1F5UXhwYmVtTmNjdm9XcjFaSUE2T2FLYWpMNXB6cmdxWG9F?= =?utf-8?B?NFl3elo2clJFeC82Y3J6cDdMbnNBcDFGdmdYZWVTbUNnclo3VW5ORExPNzdZ?= =?utf-8?B?amZGNTZMSWZlc0k0WDUrN01VcG9uUGFHemluOS9wSG00cUQ3cEhFUmRJdWlw?= =?utf-8?B?ZGxMcklaK1BOOWFYbnY0STFRVjVINDY1Q0M1cytBWjZiRUVPcVlENFRFeDJJ?= =?utf-8?B?RnNYY3V1aUhwbHo1Z1lhUXJvM3NUTnlzWEtRc0g3YXhBTG5aazM4NTdvNHNu?= =?utf-8?B?TEtNTE54bThQSFhsWWpIVUhsOSthSkVseDRvaTlmQmRuQ1FNbHc4OEJJZmFB?= =?utf-8?B?RE82UkxZdVdIZk8wZTFiRmJJa09ZSTIzSW9wbXkvcTdZdmszWWNDNllwMmFU?= =?utf-8?B?TnpWSjRWajFXc0FXMnROSDlCTFF5Ym5CL3ZQRHlhbGVDeXpEbmZ4clBtZ3c1?= =?utf-8?B?Q2VOZ2NKNW53SlpRNENEbmwyZzY2TU4rUHpwZWJ4ZzlZUWNtbGNYOUkxdWNn?= =?utf-8?B?ZTcvS2RRbjFRdnlsU3p3Qng0bW5MeFMwNlRRK0NVLzExekVlM3ZZblhYT3Vx?= =?utf-8?B?ZXNCd2NlV0hIUEtqUjBESWpGL0RIRmNjMXZHcm1lS2VrWUcwa0gxWCtGV3Z4?= =?utf-8?B?bkV6d0l1bnZoc0RIMHpBbENJQVRVR3NXZUpzMHJjbERhNHhIUVh5amJCNThm?= =?utf-8?B?dm1kQXdkV0QyQVppSlV2RzhyYzgvdWM5UW9xYVFUbXFPSmhDRHdrT1V5RStJ?= =?utf-8?B?aXJwVXZpeVZZaUkwWjdiM2FQSkV2cG9wYXdxZHBLZHJUWTFDdEViNElDVm1m?= =?utf-8?B?anJ2aG50QTZ3RGViMnNZang2dG5ZU21tMzI0YkI0SjFrdjk4RzFKTGZDU1lU?= =?utf-8?B?aFNIZ1EzaGs3Yk9VSHFaNS9FODVwOWhRUEdMbmdoL2tvVHpoYzllamtMVE4x?= =?utf-8?B?ZFVobFVkT1Zzd3FKZ0wwWVYyazZWZ0tJamMzNVJPNnF2amtIRGphNVpRcTBk?= =?utf-8?B?UTJMTDNPWkIrM0pqalViR1BoalF1bU9XQ2NJdEVjWTkrTWVqSUhDaDlmNGI4?= =?utf-8?B?RkZIdThFbkZlajJuUndqZk9RVlZ3MTR1dm1qK2krOEJXa0RQUzV6Zz09?= X-Exchange-RoutingPolicyChecked: Nkvju3YUodzkJIBnXMmon36BS0yQkOcrMnH8tjsopl2df04kNVAIox7AqhhxRDUXKBzlSxzi6Z34VhPREbSTXfI66JkomT82/PvQFBdwaJ21P3JwFQNnti2wlK+zIB0z3Qy8FHdE2S/rKPx61jng27UObBSZ7lxJ2So0GIoXjYGurNqZ8OsGZc4jaIBOaiu4oRbA/buAxdlugNm7fV+ce4BOVIVHu9EUzf4dwmxaxKc7vo4tl+8qjkat1F0mDy9RwUOsyEUEuVwbhoxU/TX3rtQl6VrCe88A+P0OONC1+acUF8k4rBf8UyJ4JhB5pQ1NJuYgy/ONcJvgd3Do/OI21A== X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: 15f706f5-a8b8-4789-2fe4-08df07716678 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5469.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 15:06:14.2470 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Cf6kFjGXfeeytWhXo1Mf514W7xqX5Qqo7irqJXuJy2O15XStBwPFLzyAdlxhpIilo1ww8YNZLwhCwwJPuvymOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH9PR03MB767167 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDEzMCBTYWx0ZWRfX2trGV+GR3SaS /PfrEIKq97vaicnKqVhR4v49B3GTzV8XFtE/i+i5YyPSTY55UPx/jkTJhOjQzFbiHIm2LbYHSDb LoOSGH5NGNOzALXYf3jVQt3y6ZWqIwuZhPDaP9daQIT1MYcTkduq X-Authority-Analysis: v=2.4 cv=feSdDUQF c=1 sm=1 tr=0 ts=6a959867 cx=c_pps a=GcdpE1at2Es8HfJfZlkF2Q==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=0sLvza09kfJOxVLZPwjg:22 a=N--XFCr6TIEc_64PeIT2:22 a=VwQbUJbxAAAA:8 a=gAnH3GRIAAAA:8 a=pgLpeqkCuYE-37Z2sHMA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-ORIG-GUID: 79b-lh6TnrFjR1wkjJTlGERIdVcr3VE2 X-Proofpoint-GUID: 79b-lh6TnrFjR1wkjJTlGERIdVcr3VE2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDEzMCBTYWx0ZWRfX2n3jvtJGUYJW Ndp7DrygOoklEcXWM/qw8fzrsXixQFLN6SZ9IApTgOxF0PbST34D1H69TZAvyRsbYgMyjpkcwA7 mR9FXIqdLb5cDPBf+nDaTRf/7u2XrVbm345doyggfojLLTAMezlXWQ7/Cii63IjXV+zLd3TOokj U6j5Am2IVDLqtvQt1u0rheb4tnkJ6GFZ0SCpJx/5abcMvRiTwrS7CKaD7eIOauYjvNWP3lqQUwm Ew+h+NyH1AHC6VgoLW9J7GsEb/TWEM/ol2KNsOBXXC5Kq59Q7/uqMCP5aOLy/auzdD6ydycUmjf lu6UnqK5F6eXG3mHeZ4dAzPrmv7NOjMjuqCBO6Sx1g1SSXvEmBdBKq3xMRnxb9QwVH8g/N4w6Cw rdIMUiyxMkmGxTHq8XE1teVwOT3ENtQcHochO00qpDYoMh8DCQH5HAzNvPaxOSI+A1WZJgrjVrl 7m9CcccPppoTarDTtIg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_05,2026-08-27_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 bulkscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608310130 Commit 00c15b78b4b4 ("mtd: spinand: Allow the case where there is no ECC engine") made the OOB free bytes count conditional on having an ECC engine so that probing would not fail when none is requested. However mtd->oobavail is still assigned from ret just after that block, and ret is 0 there, so the device ends up advertising no available OOB bytes at all. mtd_oobavail() returns mtd->oobavail for MTD_OPS_AUTO_OOB, so a zero value makes every automatic OOB access fail with -EINVAL. JFFS2 fares worse: it keeps its cleanmarker in the OOB area on NAND and refuses to mount outright, reporting "inconsistent device description". No ECC engine also means no ooblayout was ever installed, which would make the count return -ENOTSUPP, so install the same fallback layout the on-die path already uses before counting unconditionally. Fixes: 00c15b78b4b4 ("mtd: spinand: Allow the case where there is no ECC en= gine") Cc: stable@vger.kernel.org Signed-off-by: Nuno S=C3=A1 --- drivers/mtd/nand/spi/core.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c index 03ff43445693..8f3d12c5dd90 100644 --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c @@ -1978,12 +1978,17 @@ static int spinand_init(struct spinand_device *spin= and) goto err_cleanup_ecc_engine; } =20 - if (nand->ecc.engine) { - ret =3D mtd_ooblayout_count_freebytes(mtd); - if (ret < 0) - goto err_cleanup_ecc_engine; + if (!nand->ecc.engine) { + if (spinand->eccinfo.ooblayout) + mtd_set_ooblayout(mtd, spinand->eccinfo.ooblayout); + else + mtd_set_ooblayout(mtd, &spinand_noecc_ooblayout); } =20 + ret =3D mtd_ooblayout_count_freebytes(mtd); + if (ret < 0) + goto err_cleanup_ecc_engine; + mtd->oobavail =3D ret; =20 /* Propagate ECC information to mtd_info */ --=20 2.55.0