Commit 41b4e9a1 authored by Nicolas Ferre's avatar Nicolas Ferre Committed by Chris Ball

mmc: atmel-mci: fix incorrect setting of host->data to NULL

Setting host->data to NULL is incorrect sequence in STATE_SENDING_STOP
state of FSM: This early setting leads to the skip of dma_unmap_sg()
in atmci_dma_cleanup() which is a bug.

Idea taken from dw_mmc by Seungwon Jeon.
Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
Cc: Seungwon Jeon <tgih.jun@samsung.com>
Acked-by: default avatarLudovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: default avatarChris Ball <cjb@laptop.org>
parent eb6d5ae1
...@@ -1685,7 +1685,6 @@ static void atmci_tasklet_func(unsigned long priv) ...@@ -1685,7 +1685,6 @@ static void atmci_tasklet_func(unsigned long priv)
dev_dbg(&host->pdev->dev, "FSM: cmd ready\n"); dev_dbg(&host->pdev->dev, "FSM: cmd ready\n");
host->cmd = NULL; host->cmd = NULL;
host->data = NULL;
data->bytes_xfered = data->blocks * data->blksz; data->bytes_xfered = data->blocks * data->blksz;
data->error = 0; data->error = 0;
atmci_command_complete(host, mrq->stop); atmci_command_complete(host, mrq->stop);
...@@ -1699,6 +1698,7 @@ static void atmci_tasklet_func(unsigned long priv) ...@@ -1699,6 +1698,7 @@ static void atmci_tasklet_func(unsigned long priv)
atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY); atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY);
state = STATE_WAITING_NOTBUSY; state = STATE_WAITING_NOTBUSY;
} }
host->data = NULL;
break; break;
case STATE_END_REQUEST: case STATE_END_REQUEST:
......
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