Le 10/03/2026 à 13:11, Wang Jun a écrit :
[Vous ne recevez pas souvent de courriers de [email protected]. Découvrez 
pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]

The function qe_reset() uses qe_immr without checking if it is NULL,
which could happen if ioremap() failed earlier. Add a NULL check and
perform ioremap() if needed; if it still fails, print an error and
return to avoid crashing the system.

I don't understand what you are trying to say here. What you say is already what qe_reset() does: it does a NULL check and performs ioremap() when it is NULL:

        if (qe_immr == NULL)
                qe_immr = ioremap(get_qe_base(), QE_IMMAP_SIZE);

You are adding a second NULL check and return early from qe_reset(). But it doesn't really fix the problem because qe_immr is used in many other places so you are just delaying the problem.

What needs to be done is that if qe_immr remap fails, all drivers depending on it don't get probed.


Signed-off-by: Wang Jun <[email protected]>
---
  drivers/soc/fsl/qe/qe.c | 7 ++++++-
  1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/soc/fsl/qe/qe.c b/drivers/soc/fsl/qe/qe.c
index 70b6eddb867b..6dcfa340970a 100644
--- a/drivers/soc/fsl/qe/qe.c
+++ b/drivers/soc/fsl/qe/qe.c
@@ -86,8 +86,13 @@ static phys_addr_t get_qe_base(void)

  void qe_reset(void)
  {
-       if (qe_immr == NULL)
+       if (qe_immr == NULL) {
                 qe_immr = ioremap(get_qe_base(), QE_IMMAP_SIZE);
+               if (qe_immr == NULL) {
+                       pr_err("QE: cannot remap IMMR\n");
+                       return;
+               }
+       }

         qe_snums_init();

--
2.43.0



Reply via email to