From: Linus Walleij <linus.walleij@linaro.org>
To: Christoph Hellwig <hch@lst.de>, Jens Axboe <axboe@kernel.dk>,
Ming Lei <ming.lei@redhat.com>, Arnd Bergmann <arnd@arndb.de>,
Ulf Hansson <ulf.hansson@linaro.org>,
Nicolas Pitre <nico@fluxnic.net>,
Aaro Koskinen <aaro.koskinen@iki.fi>,
Adrian Hunter <adrian.hunter@intel.com>,
Angelo Dureghello <angelo.dureghello@timesys.com>
Cc: linux-mmc@vger.kernel.org, linux-block@vger.kernel.org,
linux-omap@vger.kernel.org,
Linus Walleij <linus.walleij@linaro.org>
Subject: [PATCH v2 0/9] mmc: Use proper sg_miter for scatterlists
Date: Sat, 27 Jan 2024 01:19:47 +0100 [thread overview]
Message-ID: <20240127-mmc-proper-kmap-v2-0-d8e732aa97d1@linaro.org> (raw)
It was brought to our attention that some MMC host drivers
are referencing sg_virt(sg) directly on scatterlist entries,
which will not perform buffer bouncing for CONFIG_HIGHMEM
pages that reside in highmem.
See the following mail from Christoph and the discussion:
https://lore.kernel.org/linux-mmc/20240122073423.GA25859@lst.de/
This means that bugs with highmem pages can go unnoticed
until an actual highmem page is finally used and not bounced,
resulting in things like unpredictable file corruption.
Attempt to fix this by amending all host controllers
calling sg_virt() for PIO to instead do proper traversal
of the scatterlists using sg_miter helpers that will
kmap() the pages properly, possibly bouncing
it from highmem if need be.
All patches are compile-tested except the m68k one,
sdhci-esdhc-mcf.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Changes in v2:
- Bite the bullet and just patch all drivers to use sg_miter
- Link to v1: https://lore.kernel.org/r/20240125-mmc-proper-kmap-v1-0-ba953c1ac3f9@linaro.org
---
Linus Walleij (9):
mmc: davinci_mmc: Use sg_miter for PIO
mmc: moxart-mmc: Factor out moxart_use_dma() helper
mmc: moxart-mmc: Fix accounting in DMA transfer
mmc: moxart-mmc: Use sg_miter for PIO
mmc: mvsdio: Use sg_miter for PIO
mmc: mxcmmc: Use sg_miter for PIO
mmc: omap: Use sg_miter for PIO
mmc: sdhci-esdhc-mcf: Use sg_miter for swapping
mmc: sh_mmcif: Use sg_miter for PIO
drivers/mmc/host/davinci_mmc.c | 61 ++++++++++------------
drivers/mmc/host/moxart-mmc.c | 90 ++++++++++++++++----------------
drivers/mmc/host/mvsdio.c | 71 +++++++++++++++++++-------
drivers/mmc/host/mxcmmc.c | 53 +++++++++++--------
drivers/mmc/host/omap.c | 53 +++++++++----------
drivers/mmc/host/sdhci-esdhc-mcf.c | 12 +++--
drivers/mmc/host/sh_mmcif.c | 102 +++++++++++++++++++++++--------------
7 files changed, 251 insertions(+), 191 deletions(-)
---
base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d
change-id: 20240125-mmc-proper-kmap-f2d4cf5d1756
Best regards,
--
Linus Walleij <linus.walleij@linaro.org>
next reply other threads:[~2024-01-27 0:20 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-27 0:19 Linus Walleij [this message]
2024-01-27 0:19 ` [PATCH v2 1/9] mmc: davinci_mmc: Use sg_miter for PIO Linus Walleij
2024-01-27 0:19 ` [PATCH v2 2/9] mmc: moxart-mmc: Factor out moxart_use_dma() helper Linus Walleij
2024-01-27 0:19 ` [PATCH v2 3/9] mmc: moxart-mmc: Fix accounting in DMA transfer Linus Walleij
2024-01-27 0:19 ` [PATCH v2 4/9] mmc: moxart-mmc: Use sg_miter for PIO Linus Walleij
2024-01-27 0:19 ` [PATCH v2 5/9] mmc: mvsdio: " Linus Walleij
2024-01-27 0:19 ` [PATCH v2 6/9] mmc: mxcmmc: " Linus Walleij
2024-01-27 0:19 ` [PATCH v2 7/9] mmc: omap: " Linus Walleij
2024-01-27 0:19 ` [PATCH v2 8/9] mmc: sdhci-esdhc-mcf: Use sg_miter for swapping Linus Walleij
2024-02-21 6:30 ` Adrian Hunter
2024-01-27 0:19 ` [PATCH v2 9/9] mmc: sh_mmcif: Use sg_miter for PIO Linus Walleij
2024-02-20 21:03 ` Geert Uytterhoeven
2024-02-20 23:00 ` Linus Walleij
2024-02-21 9:50 ` Geert Uytterhoeven
2024-02-21 21:25 ` Linus Walleij
2024-02-22 9:20 ` Geert Uytterhoeven
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240127-mmc-proper-kmap-v2-0-d8e732aa97d1@linaro.org \
--to=linus.walleij@linaro.org \
--cc=aaro.koskinen@iki.fi \
--cc=adrian.hunter@intel.com \
--cc=angelo.dureghello@timesys.com \
--cc=arnd@arndb.de \
--cc=axboe@kernel.dk \
--cc=hch@lst.de \
--cc=linux-block@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=ming.lei@redhat.com \
--cc=nico@fluxnic.net \
--cc=ulf.hansson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).