diff mbox series

[12/14] mmc: tmio_mmc_core: Replace kmap_atomic() with kmap_local_page()

Message ID 20221005101951.3165-13-adrian.hunter@intel.com (mailing list archive)
State New, archived
Headers show
Series mmc: Replace kmap_atomic() with kmap_local_page() | expand

Commit Message

Adrian Hunter Oct. 5, 2022, 10:19 a.m. UTC
kmap_local_page() is equivalent to kmap_atomic() except that it does not
disable page faults or preemption. Where possible kmap_local_page() is
preferred to kmap_atomic() - refer kernel highmem documentation.

In this case, there is no need to disable page faults or preemption, so
replace kmap_atomic() with kmap_local_page(), and, correspondingly,
kunmap_atomic() with kunmap_local().

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
---
 drivers/mmc/host/tmio_mmc.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Wolfram Sang Oct. 31, 2022, 7:38 p.m. UTC | #1
On Wed, Oct 05, 2022 at 01:19:49PM +0300, Adrian Hunter wrote:
> kmap_local_page() is equivalent to kmap_atomic() except that it does not
> disable page faults or preemption. Where possible kmap_local_page() is
> preferred to kmap_atomic() - refer kernel highmem documentation.
> 
> In this case, there is no need to disable page faults or preemption, so
> replace kmap_atomic() with kmap_local_page(), and, correspondingly,
> kunmap_atomic() with kunmap_local().
> 
> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>

Not disabling preemption sounds good!

Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
diff mbox series

Patch

diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h
index 22375790b57b..e36ff80108e6 100644
--- a/drivers/mmc/host/tmio_mmc.h
+++ b/drivers/mmc/host/tmio_mmc.h
@@ -206,13 +206,13 @@  irqreturn_t tmio_mmc_irq(int irq, void *devid);
 
 static inline char *tmio_mmc_kmap_atomic(struct scatterlist *sg)
 {
-	return kmap_atomic(sg_page(sg)) + sg->offset;
+	return kmap_local_page(sg_page(sg)) + sg->offset;
 }
 
 static inline void tmio_mmc_kunmap_atomic(struct scatterlist *sg,
 					  void *virt)
 {
-	kunmap_atomic(virt - sg->offset);
+	kunmap_local(virt - sg->offset);
 }
 
 #ifdef CONFIG_PM