[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <gw6adkoy3ndjdjufti2gs2gnk3xdgylt6tnia2zha76hsgdwtq@dr3czbxjij66>
Date: Fri, 21 Jun 2024 11:53:43 +0200
From: Wolfram Sang <wsa+renesas@...g-engineering.com>
To: Allen Pais <allen.lkml@...il.com>
Cc: Aubin Constans <aubin.constans@...rochip.com>,
Ulf Hansson <ulf.hansson@...aro.org>, Nicolas Ferre <nicolas.ferre@...rochip.com>,
Alexandre Belloni <alexandre.belloni@...tlin.com>, Claudiu Beznea <claudiu.beznea@...on.dev>,
Manuel Lauss <manuel.lauss@...il.com>, Michał Mirosław <mirq-linux@...e.qmqm.pl>,
Jaehoon Chung <jh80.chung@...sung.com>, Aaro Koskinen <aaro.koskinen@....fi>,
Adrian Hunter <adrian.hunter@...el.com>, Florian Fainelli <florian.fainelli@...adcom.com>,
Ray Jui <rjui@...adcom.com>, Scott Branden <sbranden@...adcom.com>,
Broadcom internal kernel review list <bcm-kernel-feedback-list@...adcom.com>, Alex Dubov <oakad@...oo.com>,
Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>, Masami Hiramatsu <mhiramat@...nel.org>,
Bruce Chang <brucechang@....com.tw>, Harald Welte <HaraldWelte@...tech.com>,
Pierre Ossman <pierre@...man.eu>, Christian Loehle <christian.loehle@....com>,
linux-mmc@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, linux-omap@...r.kernel.org, linux-renesas-soc@...r.kernel.org
Subject: Re: [PATCH v3] mmc: Convert from tasklet to BH workqueue
Hi,
On Tue, Jun 18, 2024 at 03:52:07PM GMT, Allen Pais wrote:
> The only generic interface to execute asynchronously in the BH context is
> tasklet; however, it's marked deprecated and has some design flaws. To
> replace tasklets, BH workqueue support was recently added. A BH workqueue
> behaves similarly to regular workqueues except that the queued work items
> are executed in the BH context.
>
> This patch converts drivers/mmc/* from tasklet to BH workqueue.
>
> Based on the work done by Tejun Heo <tj@...nel.org>
Has this been fully build-tested?
===
drivers/mmc/host/renesas_sdhi_internal_dmac.c: In function ‘renesas_sdhi_internal_dmac_complete_work_fn’:
./include/linux/container_of.h:20:54: error: ‘struct tmio_mmc_host’ has no member named ‘dma_complete’
===
In deed, 'dma_complete' is only in 'struct renesas_sdhi_dma'. From
there, we can get to the parent 'struct renesas_sdhi' using
container_of. But then, I don't see a way to go to 'struct
tmio_mmc_host' from there. The other way around is possible because
there is the pointer 'struct tmio_mmc_data *pdata' in the TMIO struct
pointing to the data contained in 'struct renesas_sdhi'. 'host_to_priv()'
does the math. But I don't see a path the other way around.
So, it doesn't look like the workqueue interface can provide a
generic pointer like tasklets could do? This means we have to add a
pointer from 'struct renesas_sdhi' to 'struct tmio_mmc_host'?
All the best,
Wolfram
Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)
Powered by blists - more mailing lists