Commit b8585eb5 authored by George Hilliard's avatar George Hilliard Committed by Greg Kroah-Hartman

staging: mt7621-mmc: Only unmap_sg if mapped

A failure while processing the start command could cause dma_unmap_sg()
to be called without first calling dma_map_sg().

Since calling dma_unmap_sg() is only needed when data != NULL, move the
unmap call into the corresponding if {} block.
Signed-off-by: default avatarGeorge Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b22f4992
...@@ -686,7 +686,7 @@ static int msdc_do_request(struct mmc_host *mmc, struct mmc_request *mrq) ...@@ -686,7 +686,7 @@ static int msdc_do_request(struct mmc_host *mmc, struct mmc_request *mrq)
/* then wait command done */ /* then wait command done */
if (msdc_command_resp(host, cmd, 1, CMD_TIMEOUT) != 0) if (msdc_command_resp(host, cmd, 1, CMD_TIMEOUT) != 0)
goto done; goto unmap;
/* for read, the data coming too fast, then CRC error /* for read, the data coming too fast, then CRC error
* start DMA no business with CRC. * start DMA no business with CRC.
...@@ -724,18 +724,17 @@ static int msdc_do_request(struct mmc_host *mmc, struct mmc_request *mrq) ...@@ -724,18 +724,17 @@ static int msdc_do_request(struct mmc_host *mmc, struct mmc_request *mrq)
/* Last: stop transfer */ /* Last: stop transfer */
if (data->stop) { if (data->stop) {
if (msdc_do_command(host, data->stop, 0, CMD_TIMEOUT) != 0) if (msdc_do_command(host, data->stop, 0, CMD_TIMEOUT) != 0)
goto done; goto unmap;
} }
}
done: unmap:
if (data) {
host->data = NULL; host->data = NULL;
dma_unmap_sg(mmc_dev(mmc), data->sg, data->sg_len, dma_unmap_sg(mmc_dev(mmc), data->sg, data->sg_len,
mmc_get_dma_dir(data)); mmc_get_dma_dir(data));
host->blksz = 0; host->blksz = 0;
} }
done:
if (mrq->cmd->error) if (mrq->cmd->error)
host->error = 0x001; host->error = 0x001;
if (mrq->data && mrq->data->error) if (mrq->data && mrq->data->error)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment