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

staging: mt7621-mmc: Check for nonzero number of scatterlist entries

The buffer descriptor setup loop is correct only if it is setting up at
least one bd struct.  Besides, there is an error if dma_map_sg() returns
0, which is possible and must be handled.

Additionally, remove the BUG_ON() checking sglen, which is unnecessary
because we configure DMA with that constraint during init.
Signed-off-by: default avatarGeorge Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f2778bb3
......@@ -591,8 +591,6 @@ static void msdc_dma_setup(struct msdc_host *host, struct msdc_dma *dma,
struct bd *bd;
u32 j;
BUG_ON(sglen > MAX_BD_NUM); /* not support currently */
gpd = dma->gpd;
bd = dma->bd;
......@@ -681,6 +679,13 @@ static int msdc_do_request(struct mmc_host *mmc, struct mmc_request *mrq)
data->sg_count = dma_map_sg(mmc_dev(mmc), data->sg,
data->sg_len,
mmc_get_dma_dir(data));
if (data->sg_count == 0) {
dev_err(mmc_dev(host->mmc), "failed to map DMA for transfer\n");
data->error = -ENOMEM;
goto done;
}
msdc_dma_setup(host, &host->dma, data->sg,
data->sg_count);
......
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