• Haibo Chen's avatar
    mmc: sdhci: fix dma memory leak in sdhci_pre_req() · d31911b9
    Haibo Chen authored
    Currently one mrq->data maybe execute dma_map_sg() twice
    when mmc subsystem prepare over one new request, and the
    following log show up:
    	sdhci[sdhci_pre_dma_transfer] invalid cookie: 24, next-cookie 25
    
    In this condition, mrq->date map a dma-memory(1) in sdhci_pre_req
    for the first time, and map another dma-memory(2) in sdhci_prepare_data
    for the second time. But driver only unmap the dma-memory(2), and
    dma-memory(1) never unmapped, which cause the dma memory leak issue.
    
    This patch use another method to map the dma memory for the mrq->data
    which can fix this dma memory leak issue.
    
    Fixes: 348487cb ("mmc: sdhci: use pipeline mmc requests to improve performance")
    Reported-and-tested-by: default avatarJiri Slaby <jslaby@suse.cz>
    Signed-off-by: default avatarHaibo Chen <haibo.chen@freescale.com>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    d31911b9
sdhci.c 91.2 KB