On 5 December 2014 at 18:41, Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote: > Both callers of mmc_start_request() call mmc_card_removed() > so move that call into mmc_start_request(). > > This patch is preparation for adding re-tuning support. > > Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> Thanks! Applied for next. Kind regards Uffe > --- > drivers/mmc/core/core.c | 32 ++++++++++++++++++++------------ > 1 file changed, 20 insertions(+), 12 deletions(-) > > diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c > index fcde4da..884f35a 100644 > --- a/drivers/mmc/core/core.c > +++ b/drivers/mmc/core/core.c > @@ -185,13 +185,14 @@ void mmc_request_done(struct mmc_host *host, struct mmc_request *mrq) > > EXPORT_SYMBOL(mmc_request_done); > > -static void > -mmc_start_request(struct mmc_host *host, struct mmc_request *mrq) > +static int mmc_start_request(struct mmc_host *host, struct mmc_request *mrq) > { > #ifdef CONFIG_MMC_DEBUG > unsigned int i, sz; > struct scatterlist *sg; > #endif > + if (mmc_card_removed(host->card)) > + return -ENOMEDIUM; > > if (mrq->sbc) { > pr_debug("<%s: starting CMD%u arg %08x flags %08x>\n", > @@ -251,6 +252,8 @@ mmc_start_request(struct mmc_host *host, struct mmc_request *mrq) > mmc_host_clk_hold(host); > led_trigger_event(host->led, LED_FULL); > host->ops->request(host, mrq); > + > + return 0; > } > > /** > @@ -345,29 +348,34 @@ static void mmc_wait_done(struct mmc_request *mrq) > */ > static int __mmc_start_data_req(struct mmc_host *host, struct mmc_request *mrq) > { > + int err; > + > mrq->done = mmc_wait_data_done; > mrq->host = host; > - if (mmc_card_removed(host->card)) { > - mrq->cmd->error = -ENOMEDIUM; > + > + err = mmc_start_request(host, mrq); > + if (err) { > + mrq->cmd->error = err; > mmc_wait_data_done(mrq); > - return -ENOMEDIUM; > } > - mmc_start_request(host, mrq); > > - return 0; > + return err; > } > > static int __mmc_start_req(struct mmc_host *host, struct mmc_request *mrq) > { > + int err; > + > init_completion(&mrq->completion); > mrq->done = mmc_wait_done; > - if (mmc_card_removed(host->card)) { > - mrq->cmd->error = -ENOMEDIUM; > + > + err = mmc_start_request(host, mrq); > + if (err) { > + mrq->cmd->error = err; > complete(&mrq->completion); > - return -ENOMEDIUM; > } > - mmc_start_request(host, mrq); > - return 0; > + > + return err; > } > > /* > -- > 1.9.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html