[PATCH v2 0/2] spi: spi-qpic-snand: fix the stale ECC context pointer

From: Johan Alvarado

Date: Fri Sep 11 2026 - 14:50:38 EST


qcom_spi_ecc_init_ctx_pipelined() installs the ooblayout but never
publishes the ECC context it allocates, so qcom_spi_ooblayout_ecc() and
qcom_spi_ooblayout_free() run against a pointer that describes something
else - a zeroed struct on a first probe, the previous attempt's freed
context on a retry. On IPQ5018 the qcom,smem-part parser makes that retry
routine, and like half the boots on a Mercusys MR80X failed to mount the
rootfs.

Patch 1 is the fix and is unchanged from v1. Patch 2 removes what becomes
redundant once the context is published. It is a cleanup with no
functional change, so it carries no Fixes: tag and is not marked for
stable.

Patch 1 was applied to mtd/fixes as 93bc7c4d2f41 on 2026-09-04 and
dropped the same day, so nothing from this series is queued.

v1: https://lore.kernel.org/all/20260825013848.1056946-1-contact@xxxxxxxx/

Changes in v2:
- Add Gabor Juhos' Tested-by to patch 1.
- Add patch 2, dropping the now redundant assignment in
qcom_spi_ecc_prepare_io_req_pipelined() and the unused zeroed
struct qpic_ecc allocated in qcom_spi_probe(). Suggested by Gabor
Juhos, kept separate so the stable backport stays minimal.
- Rebase onto spi/for-next, which carries commit 44d39535cd4f ("spi:
spi-qpic-snand: remove interim 'dev_data' variable from
qcom_spi_probe()") touching the same probe lines as patch 2.

Both patches build with W=1 and sparse without warnings, and each patch
builds on its own.

Johan Alvarado (2):
spi: spi-qpic-snand: publish the ECC context to snandc->qspi
spi: spi-qpic-snand: drop the redundant ECC context handling

drivers/spi/spi-qpic-snand.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)


base-commit: 98100d83adc8e17606605d131e685b1fbedfe092
--
2.55.0