On Thu, Jul 31, 2025 at 12:11:47PM +0100, Andrew Goodbody wrote:
>In owl_mmc_prepare_data there is a NULL check for the pointer data but
>it happens after data has already been dereferenced. Refactor the code
>so that the NULL check happens before any code dereferences data.
>
>This issue was found by Smatch.
>
>Signed-off-by: Andrew Goodbody <andrew.goodb...@linaro.org>
>---
> drivers/mmc/owl_mmc.c | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
>diff --git a/drivers/mmc/owl_mmc.c b/drivers/mmc/owl_mmc.c
>index bd4906f58e7..c18807b1f49 100644
>--- a/drivers/mmc/owl_mmc.c
>+++ b/drivers/mmc/owl_mmc.c
>@@ -135,19 +135,19 @@ static void owl_mmc_prepare_data(struct owl_mmc_priv 
>*priv,
> 
>       setbits_le32(priv->reg_base + OWL_REG_SD_EN, OWL_SD_EN_BSEL);
> 
>-      writel(data->blocks, priv->reg_base + OWL_REG_SD_BLK_NUM);
>-      writel(data->blocksize, priv->reg_base + OWL_REG_SD_BLK_SIZE);
>-      total = data->blocksize * data->blocks;
>-
>-      if (total < 512)
>-              writel(total, priv->reg_base + OWL_REG_SD_BUF_SIZE);
>-      else
>-              writel(512, priv->reg_base + OWL_REG_SD_BUF_SIZE);
>-
>       /* DMA STOP */
>       writel(0x0, SD_DMA_CHANNEL(priv->dma_channel, 0) + DMA_START);
> 
>       if (data) {
>+              writel(data->blocks, priv->reg_base + OWL_REG_SD_BLK_NUM);
>+              writel(data->blocksize, priv->reg_base + OWL_REG_SD_BLK_SIZE);
>+              total = data->blocksize * data->blocks;
>+
>+              if (total < 512)
>+                      writel(total, priv->reg_base + OWL_REG_SD_BUF_SIZE);
>+              else
>+                      writel(512, priv->reg_base + OWL_REG_SD_BUF_SIZE);
>+

This piece code is moved to after 'DMA STOP', so code logic is changed.
This may not be expected.

Thanks,
Peng

>               if (data->flags == MMC_DATA_READ) {
>                       buf = (ulong) (data->dest);
>                       owl_dma_config(priv, (ulong) priv->reg_base +
>
>---
>base-commit: 79f3e77133bd7248e4579827effc13f97a32a8a8
>change-id: 20250731-owl_mmc-ef16e32b68fd
>
>Best regards,
>-- 
>Andrew Goodbody <andrew.goodb...@linaro.org>
>

Reply via email to