mmc vs highmem, was: Re: [PATCH 2/2] blk-mq: ensure a q_usage_counter reference is held when splitting bios

Christoph Hellwig
2024-01-22T07:34:27Z

On Mon, Jan 15, 2024 at 12:20:50PM +0100, Ulf Hansson wrote:
> Not sure exactly what problem you are trying to solve here, but I am
> certainly happy to help, if I can.
>
> Can you perhaps point me to a couple of drivers that need to be converted?

Sure.

mmc_alloc_disk sets BLK_BOUNCE_HIGH for any mmc host that doesn't have a
DMA mask set, which is a bit odd as all proper devices should have a
valid DMA mask. I suspect platform devices might sometimes not have
one, which historically was the wild west.

A better indicator might be the use of page_address in the I/O path,
which usually comes in the form of using the sg_virt() helper.
For drivers/mmc/ that seems to be: davinci_mmc, moxart-mmc, mvsdio,
mxcmmc, omap, sdhci-esdhc-mcf and sh_mmcif.

tmio_mmc_core on the other hand seems to have code properly kmapping
a scatterlist, which might be worth lifting into a common helper to
help the above drivers.

>
> Kind regards
> Uffe
---end quoted text---