Skip to content

Commit

Permalink
mmc: msm_sdcc: Fix issue where we might not end a sucessfull request
Browse files Browse the repository at this point in the history
Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
  • Loading branch information
San Mehat authored and Daniel Walker committed Mar 18, 2010
1 parent f474849 commit b3b0ca8
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions drivers/mmc/host/msm_sdcc.c
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ msmsdcc_dma_complete_func(struct msm_dmov_cmd *cmd,

mrq = host->curr.mrq;
BUG_ON(!mrq);
WARN_ON(!mrq->data);

if (!(result & DMOV_RSLT_VALID)) {
pr_err("msmsdcc: Invalid DataMover result\n");
Expand Down Expand Up @@ -719,14 +720,13 @@ static void
msmsdcc_handle_irq_data(struct msmsdcc_host *host, u32 status,
void __iomem *base)
{
struct mmc_data *data;
struct mmc_data *data = host->curr.data;

if (status & (MCI_CMDSENT | MCI_CMDRESPEND | MCI_CMDCRCFAIL |
MCI_CMDTIMEOUT) && host->curr.cmd) {
msmsdcc_do_cmdirq(host, status);
}

data = host->curr.data;
if (!data)
return;

Expand All @@ -739,7 +739,8 @@ msmsdcc_handle_irq_data(struct msmsdcc_host *host, u32 status,
msm_dmov_stop_cmd(host->dma.channel,
&host->dma.hdr, 0);
else {
msmsdcc_stop_data(host);
if (host->curr.data)
msmsdcc_stop_data(host);
if (!data->stop)
msmsdcc_request_end(host, data->mrq);
else
Expand Down

0 comments on commit b3b0ca8

Please sign in to comment.