[Linux-stm32] [PATCH 01/13] mmc: mmci: Only call busy_complete if callback defined

Linus Walleij linus.walleij at linaro.org
Wed Apr 5 06:50:27 UTC 2023


The code unconditionally calls host->ops->busy_complete()
if we get a busy response and the variant supports busy
detection (variant->busy_detect = true).

However there are several STM32 variants that define
variant->busy_detect to true but do not define any
busy_complete() callback. This looks like a recepie for
a NULL pointer exception.

Check that the callback is valid before calling it.

Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
---
 drivers/mmc/host/mmci.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index b9e5dfe74e5c..bc150c0d5eed 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -1381,7 +1381,7 @@ mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd,
 		return;
 
 	/* Handle busy detection on DAT0 if the variant supports it. */
-	if (busy_resp && host->variant->busy_detect)
+	if (busy_resp && host->variant->busy_detect && host->ops->busy_complete)
 		if (!host->ops->busy_complete(host, status, err_msk))
 			return;
 

-- 
2.39.2




More information about the Linux-stm32 mailing list