Re: [PATCH V8 00/14] mmc: Add Command Queue support

From: Linus Walleij
Date: Thu Oct 12 2017 - 04:08:17 EST


On Wed, Oct 11, 2017 at 3:58 PM, Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote:

> Actually completing the request in the ->done callback, may still be
> possible, because in principle it only needs to inform the other
> prepared request that it may start, before it continues to post
> process/completes the current one.

I try to do that in this patch:
https://marc.info/?l=linux-mmc&m=148665460925587&w=2

I'm trying to rebase this work now.

> However, by looking at for example how mmci.c works, it actually holds
> its spinlock while it calls mmc_request_done(). The same spinlock is
> taken in the ->request() function, but not in the ->post_req()
> function. In other words, completing the request in the ->done()
> callback, would make mmci to keep the spinlock held throughout the
> post processing cycle, which then prevents the next request from being
> started.

It seems my patch would not deliver in some drivers until we look
into the locking semantics in the drivers.

Yours,
Linus Walleij