On Tue, Apr 14, 2020 at 06:13:55PM +0200, Ulf Hansson wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > When atmci_request_end() is about to finish a request for one slot, there > is a possibility that there is new request queued for another slot. If this > turns out to be the case, the new request is started and the timer is > re-programmed for it. > > Although, a few lines below in atmci_request_end(), this timer becomes > deleted, likely corresponding to the other recently completed request. This > looks wrong, so let's fix it. > > Cc: Ludovic Desroches <ludovic.desroches@xxxxxxxxxxxxx> > Cc: Nicolas Ferre <nicolas.ferre@xxxxxxxxxxxxx> > Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> Nice catch. Thanks Acked-by: Ludovic Desroches <ludovic.desroches@xxxxxxxxxxxxx> > --- > drivers/mmc/host/atmel-mci.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c > index aeaaa5314924..0472df8391b5 100644 > --- a/drivers/mmc/host/atmel-mci.c > +++ b/drivers/mmc/host/atmel-mci.c > @@ -1557,6 +1557,8 @@ static void atmci_request_end(struct atmel_mci *host, struct mmc_request *mrq) > > WARN_ON(host->cmd || host->data); > > + del_timer(&host->timer); > + > /* > * Update the MMC clock rate if necessary. This may be > * necessary if set_ios() is called when a different slot is > @@ -1583,8 +1585,6 @@ static void atmci_request_end(struct atmel_mci *host, struct mmc_request *mrq) > host->state = STATE_IDLE; > } > > - del_timer(&host->timer); > - > spin_unlock(&host->lock); > mmc_request_done(prev_mmc, mrq); > spin_lock(&host->lock); > -- > 2.20.1 >