From: Dan Carpenter <dan.carpenter@oracle.com>
To: ben-linux@fluff.org
Cc: linux-mmc@vger.kernel.org
Subject: re: mmc: sdhci: Check mrq->cmd in sdhci_tasklet_finish
Date: Mon, 7 Jul 2014 15:00:25 +0300 [thread overview]
Message-ID: <20140707120025.GA13887@mwanda> (raw)
[ This is old but the inconsistent NULL check was added so deliberately
that it looks odd so I'm sending the email. -dan ]
Hello Ben Dooks,
This is a semi-automatic email about new static checker warnings.
The patch b7b4d3426d2b: "mmc: sdhci: Check mrq->cmd in
sdhci_tasklet_finish" from Apr 27, 2011, leads to the following
Smatch complaint:
drivers/mmc/host/sdhci.c:2151 sdhci_tasklet_finish()
error: we previously assumed 'mrq->cmd' could be null (see line 2124)
drivers/mmc/host/sdhci.c
2123 if (!(host->flags & SDHCI_DEVICE_DEAD) &&
2124 ((mrq->cmd && mrq->cmd->error) ||
^^^^^^^^
Patch adds NULL check.
2125 (mrq->data && (mrq->data->error ||
2126 (mrq->data->stop && mrq->data->stop->error))) ||
2127 (host->quirks & SDHCI_QUIRK_RESET_AFTER_REQUEST))) {
2128
2129 /* Some controllers need this kick or reset won't work here */
2130 if (host->quirks & SDHCI_QUIRK_CLOCK_BEFORE_RESET)
2131 /* This is to force an update */
2132 host->ops->set_clock(host, host->clock);
2133
2134 /* Spec says we should do both at the same time, but Ricoh
2135 controllers do not like that. */
2136 sdhci_do_reset(host, SDHCI_RESET_CMD);
2137 sdhci_do_reset(host, SDHCI_RESET_DATA);
2138 }
2139
2140 host->mrq = NULL;
2141 host->cmd = NULL;
2142 host->data = NULL;
2143
2144 #ifndef SDHCI_USE_LEDS_CLASS
2145 sdhci_deactivate_led(host);
2146 #endif
2147
2148 mmiowb();
2149 spin_unlock_irqrestore(&host->lock, flags);
2150
2151 mmc_request_done(host->mmc, mrq);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
But we "mrq->cmd" is not checked here and it's dereferenced inside the
mmc_request_done() function call.
2152 sdhci_runtime_pm_put(host);
2153 }
regards,
dan carpenter
reply other threads:[~2014-07-07 12:00 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140707120025.GA13887@mwanda \
--to=dan.carpenter@oracle.com \
--cc=ben-linux@fluff.org \
--cc=linux-mmc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.