diff mbox series

[04/16] bvec: add a bvec_kmap_local helper

Message ID 20210608160603.1535935-5-hch@lst.de
State New
Headers show
Series [01/16] mm: use kmap_local_page in memzero_page | expand

Commit Message

Christoph Hellwig June 8, 2021, 4:05 p.m. UTC
Add a helper to call kmap_local_page on a bvec.  There is no need for
an unmap helper given that kunmap_local accept any address in the mapped
page.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 include/linux/bvec.h | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Ilya Dryomov June 9, 2021, 9:33 a.m. UTC | #1
On Tue, Jun 8, 2021 at 6:06 PM Christoph Hellwig <hch@lst.de> wrote:
>

> Add a helper to call kmap_local_page on a bvec.  There is no need for

> an unmap helper given that kunmap_local accept any address in the mapped

> page.

>

> Signed-off-by: Christoph Hellwig <hch@lst.de>

> ---

>  include/linux/bvec.h | 6 ++++++

>  1 file changed, 6 insertions(+)

>

> diff --git a/include/linux/bvec.h b/include/linux/bvec.h

> index 883faf5f1523..d64d6c0ceb77 100644

> --- a/include/linux/bvec.h

> +++ b/include/linux/bvec.h

> @@ -7,6 +7,7 @@

>  #ifndef __LINUX_BVEC_H

>  #define __LINUX_BVEC_H

>

> +#include <linux/highmem.h>

>  #include <linux/bug.h>

>  #include <linux/errno.h>

>  #include <linux/limits.h>

> @@ -183,4 +184,9 @@ static inline void bvec_advance(const struct bio_vec *bvec,

>         }

>  }

>

> +static inline void *bvec_kmap_local(struct bio_vec *bvec)

> +{

> +       return kmap_local_page(bvec->bv_page) + bvec->bv_offset;

> +}

> +

>  #endif /* __LINUX_BVEC_H */


Might be useful to add the second sentence of the commit message as
a comment for bvec_kmap_local().  It could be expanded to mention the
single-page bvec caveat too.

Thanks,

                Ilya
diff mbox series

Patch

diff --git a/include/linux/bvec.h b/include/linux/bvec.h
index 883faf5f1523..d64d6c0ceb77 100644
--- a/include/linux/bvec.h
+++ b/include/linux/bvec.h
@@ -7,6 +7,7 @@ 
 #ifndef __LINUX_BVEC_H
 #define __LINUX_BVEC_H
 
+#include <linux/highmem.h>
 #include <linux/bug.h>
 #include <linux/errno.h>
 #include <linux/limits.h>
@@ -183,4 +184,9 @@  static inline void bvec_advance(const struct bio_vec *bvec,
 	}
 }
 
+static inline void *bvec_kmap_local(struct bio_vec *bvec)
+{
+	return kmap_local_page(bvec->bv_page) + bvec->bv_offset;
+}
+
 #endif /* __LINUX_BVEC_H */