[PATCH v2] mmc: Convert from tasklet to BH workqueue

Adrian Hunter adrian.hunter at intel.com
Wed Jun 12 22:09:19 PDT 2024


On 13/06/24 02:49, 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 at kernel.org>
> 
> Tested-by: Christian Loehle <christian.loehle at arm.com>
> Tested-by: Aubin Constans <aubin.constans at microchip.com>
> Acked-by: Aubin Constans <aubin.constans at microchip.com>
> Acked-by: Michał Mirosław <mirq-linux at rere.qmqm.pl>
> Reviewed-by: Christian Loehle <christian.loehle at arm.com>
> Signed-off-by: Allen Pais <allen.lkml at gmail.com>
> ---
> v2:
>    - fixed patch styling issues
>    - rename work to bh_work
> 
> Link to v1:
> https://lore.kernel.org/all/20240327160314.9982-10-apais@linux.microsoft.com/
> 

[SNIP]

> diff --git a/drivers/mmc/host/sdhci-bcm-kona.c b/drivers/mmc/host/sdhci-bcm-kona.c
> index cb9152c6a65d..9c215db81b2b 100644
> --- a/drivers/mmc/host/sdhci-bcm-kona.c
> +++ b/drivers/mmc/host/sdhci-bcm-kona.c
> @@ -107,7 +107,7 @@ static void sdhci_bcm_kona_sd_init(struct sdhci_host *host)
>   * Software emulation of the SD card insertion/removal. Set insert=1 for insert
>   * and insert=0 for removal. The card detection is done by GPIO. For Broadcom
>   * IP to function properly the bit 0 of CORESTAT register needs to be set/reset
> - * to generate the CD IRQ handled in sdhci.c which schedules card_tasklet.
> + * to generate the CD IRQ handled in sdhci.c which schedules card_bh_work.

The comment was stale because sdhci.c has not had a card_tasklet for
a long time.  Just drop the " which schedules card_tasklet"

>   */
>  static int sdhci_bcm_kona_sd_card_emulate(struct sdhci_host *host, int insert)
>  {




More information about the linux-arm-kernel mailing list