Message ID | 1308334461-3869-1-git-send-email-per.forlin@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Per, On Fri, Jun 17 2011, Per Forlin wrote: > Don't use the returned sg_len from dma_map_sg() as inparameter > to dma_unmap_sg(). Use the original sg_len for both dma_map_sg > and dma_unmap_sg according to the documentation in DMA-API.txt. > > Signed-off-by: Per Forlin <per.forlin@linaro.org> > Reviewed-by: Venkatraman S <svenkatr@ti.com> > --- > drivers/mmc/host/omap_hsmmc.c | 5 +++-- > 1 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c > index 259ece0..ad3731a 100644 > --- a/drivers/mmc/host/omap_hsmmc.c > +++ b/drivers/mmc/host/omap_hsmmc.c > @@ -959,7 +959,8 @@ static void omap_hsmmc_dma_cleanup(struct omap_hsmmc_host *host, int errno) > spin_unlock(&host->irq_lock); > > if (host->use_dma && dma_ch != -1) { > - dma_unmap_sg(mmc_dev(host->mmc), host->data->sg, host->dma_len, > + dma_unmap_sg(mmc_dev(host->mmc), host->data->sg, > + host->data->sg_len, > omap_hsmmc_get_dma_dir(host, host->data)); > omap_free_dma(dma_ch); > } > @@ -1343,7 +1344,7 @@ static void omap_hsmmc_dma_cb(int lch, u16 ch_status, void *cb_data) > return; > } > > - dma_unmap_sg(mmc_dev(host->mmc), data->sg, host->dma_len, > + dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, > omap_hsmmc_get_dma_dir(host, data)); > > req_in_progress = host->req_in_progress; Pushed to mmc-next for 3.0-rc, thanks. - Chris.
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 259ece0..ad3731a 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -959,7 +959,8 @@ static void omap_hsmmc_dma_cleanup(struct omap_hsmmc_host *host, int errno) spin_unlock(&host->irq_lock); if (host->use_dma && dma_ch != -1) { - dma_unmap_sg(mmc_dev(host->mmc), host->data->sg, host->dma_len, + dma_unmap_sg(mmc_dev(host->mmc), host->data->sg, + host->data->sg_len, omap_hsmmc_get_dma_dir(host, host->data)); omap_free_dma(dma_ch); } @@ -1343,7 +1344,7 @@ static void omap_hsmmc_dma_cb(int lch, u16 ch_status, void *cb_data) return; } - dma_unmap_sg(mmc_dev(host->mmc), data->sg, host->dma_len, + dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, omap_hsmmc_get_dma_dir(host, data)); req_in_progress = host->req_in_progress;