]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
soc: fsl: qe: panic on ioremap() failure in qe_reset()
authorWang Jun <1742789905@qq.com>
Fri, 27 Mar 2026 00:12:25 +0000 (08:12 +0800)
committerChristophe Leroy (CS GROUP) <chleroy@kernel.org>
Sat, 4 Apr 2026 16:52:09 +0000 (18:52 +0200)
When ioremap() fails in qe_reset(), the global pointer qe_immr remains
NULL, leading to a subsequent NULL pointer dereference when the pointer
is accessed. Since this happens early in the boot process, a failure to
map a few bytes of I/O memory indicates a fatal error from which the
system cannot recover.

Follow the same pattern as qe_sdma_init() and panic immediately when
ioremap() fails. This avoids a silent NULL pointer dereference later
and makes the error explicit.

Fixes: 986585385131 ("[POWERPC] Add QUICC Engine (QE) infrastructure")
Cc: stable@vger.kernel.org
Signed-off-by: Wang Jun <1742789905@qq.com>
Link: https://lore.kernel.org/r/tencent_FED49CF5331CC0C7910618883332A08E2606@qq.com
[chleroy: Rearranged change to reduce churn]
Signed-off-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
drivers/soc/fsl/qe/qe.c

index 70b6eddb867b9603121f4dc3768154711a63a8c9..3ecc4ce9cfa25f31f76081978480e9bd0d716eff 100644 (file)
@@ -89,6 +89,9 @@ void qe_reset(void)
        if (qe_immr == NULL)
                qe_immr = ioremap(get_qe_base(), QE_IMMAP_SIZE);
 
+       if (!qe_immr)
+               panic("QE:ioremap failed!");
+
        qe_snums_init();
 
        qe_issue_cmd(QE_RESET, QE_CR_SUBBLOCK_INVALID,