2017-04-13 12:11:15

by Jan Glauber

[permalink] [raw]
Subject: [PATCH 0/2] Cavium MMC driver smatch fixes

Hi Ulf,

here are two cosmetical changes for the reported smatch errors.

Jan Glauber (2):
mmc: cavium: Remove redundant pointer check
mmc: cavium: Check pointer before de-reference

drivers/mmc/host/cavium.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--
2.9.0.rc0.21.g7777322


2017-04-13 12:11:21

by Jan Glauber

[permalink] [raw]
Subject: [PATCH 2/2] mmc: cavium: Check pointer before de-reference

Add a pointer check to prevent this smatch warning:

drivers/mmc/host/cavium.c:803 cvm_mmc_request()
error: we previously assumed 'cmd->data' could be null (see line 782)

This is a theoretical fix because MMC_CMD_ADTC seems to imply
that cmd->data is not null. Nevertheless checking cmd->data
before using it improves readability.

Signed-off-by: Jan Glauber <[email protected]>
---
drivers/mmc/host/cavium.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mmc/host/cavium.c b/drivers/mmc/host/cavium.c
index ddf902c..d89c2eb 100644
--- a/drivers/mmc/host/cavium.c
+++ b/drivers/mmc/host/cavium.c
@@ -799,7 +799,7 @@ static void cvm_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)
FIELD_PREP(MIO_EMM_CMD_IDX, cmd->opcode) |
FIELD_PREP(MIO_EMM_CMD_ARG, cmd->arg);
set_bus_id(&emm_cmd, slot->bus_id);
- if (mmc_cmd_type(cmd) == MMC_CMD_ADTC)
+ if (cmd->data && mmc_cmd_type(cmd) == MMC_CMD_ADTC)
emm_cmd |= FIELD_PREP(MIO_EMM_CMD_OFFSET,
64 - ((cmd->data->blocks * cmd->data->blksz) / 8));

--
2.9.0.rc0.21.g7777322

2017-04-13 12:11:40

by Jan Glauber

[permalink] [raw]
Subject: [PATCH 1/2] mmc: cavium: Remove redundant pointer check

Remove redundant mmc->card check reported by smatch:

drivers/mmc/host/cavium.c:694 cvm_mmc_dma_request()
warn: variable dereferenced before check 'mmc->card' (see line 675)

Signed-off-by: Jan Glauber <[email protected]>
---
drivers/mmc/host/cavium.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mmc/host/cavium.c b/drivers/mmc/host/cavium.c
index d842b69..ddf902c 100644
--- a/drivers/mmc/host/cavium.c
+++ b/drivers/mmc/host/cavium.c
@@ -691,7 +691,7 @@ static void cvm_mmc_dma_request(struct mmc_host *mmc,
* bit mask to check for CRC errors and timeouts only.
* Otherwise, use the default power reset value.
*/
- if (mmc->card && mmc_card_sd(mmc->card))
+ if (mmc_card_sd(mmc->card))
writeq(0x00b00000ull, host->base + MIO_EMM_STS_MASK(host));
else
writeq(0xe4390080ull, host->base + MIO_EMM_STS_MASK(host));
--
2.9.0.rc0.21.g7777322

2017-04-18 19:15:59

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH 0/2] Cavium MMC driver smatch fixes

On 13 April 2017 at 14:10, Jan Glauber <[email protected]> wrote:
> Hi Ulf,
>
> here are two cosmetical changes for the reported smatch errors.
>
> Jan Glauber (2):
> mmc: cavium: Remove redundant pointer check
> mmc: cavium: Check pointer before de-reference
>
> drivers/mmc/host/cavium.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> --
> 2.9.0.rc0.21.g7777322
>

Thanks, applied for next!

Kind regards
Uffe