All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Paul Burton <paul.burton@mips.com>,
	James Hogan <jhogan@kernel.org>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	"David S. Miller" <davem@davemloft.net>
Cc: Nicholas Piggin <npiggin@gmail.com>,
	Khalid Aziz <khalid.aziz@oracle.com>,
	Andrey Konovalov <andreyknvl@google.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	linux-mips@vger.kernel.org, linux-sh@vger.kernel.org,
	sparclinux@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-mm@kvack.org, x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 02/16] mm: simplify gup_fast_permitted
Date: Tue, 11 Jun 2019 14:40:48 +0000	[thread overview]
Message-ID: <20190611144102.8848-3-hch@lst.de> (raw)
In-Reply-To: <20190611144102.8848-1-hch@lst.de>

Pass in the already calculated end value instead of recomputing it, and
leave the end > start check in the callers instead of duplicating them
in the arch code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/s390/include/asm/pgtable.h   |  8 +-------
 arch/x86/include/asm/pgtable_64.h |  8 +-------
 mm/gup.c                          | 17 +++++++----------
 3 files changed, 9 insertions(+), 24 deletions(-)

diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h
index 9f0195d5fa16..9b274fcaacb6 100644
--- a/arch/s390/include/asm/pgtable.h
+++ b/arch/s390/include/asm/pgtable.h
@@ -1270,14 +1270,8 @@ static inline pte_t *pte_offset(pmd_t *pmd, unsigned long address)
 #define pte_offset_map(pmd, address) pte_offset_kernel(pmd, address)
 #define pte_unmap(pte) do { } while (0)
 
-static inline bool gup_fast_permitted(unsigned long start, int nr_pages)
+static inline bool gup_fast_permitted(unsigned long start, unsigned long end)
 {
-	unsigned long len, end;
-
-	len = (unsigned long) nr_pages << PAGE_SHIFT;
-	end = start + len;
-	if (end < start)
-		return false;
 	return end <= current->mm->context.asce_limit;
 }
 #define gup_fast_permitted gup_fast_permitted
diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h
index 0bb566315621..4990d26dfc73 100644
--- a/arch/x86/include/asm/pgtable_64.h
+++ b/arch/x86/include/asm/pgtable_64.h
@@ -259,14 +259,8 @@ extern void init_extra_mapping_uc(unsigned long phys, unsigned long size);
 extern void init_extra_mapping_wb(unsigned long phys, unsigned long size);
 
 #define gup_fast_permitted gup_fast_permitted
-static inline bool gup_fast_permitted(unsigned long start, int nr_pages)
+static inline bool gup_fast_permitted(unsigned long start, unsigned long end)
 {
-	unsigned long len, end;
-
-	len = (unsigned long)nr_pages << PAGE_SHIFT;
-	end = start + len;
-	if (end < start)
-		return false;
 	if (end >> __VIRTUAL_MASK_SHIFT)
 		return false;
 	return true;
diff --git a/mm/gup.c b/mm/gup.c
index 6bb521db67ec..3237f33792e6 100644
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -2123,13 +2123,9 @@ static void gup_pgd_range(unsigned long addr, unsigned long end,
  * Check if it's allowed to use __get_user_pages_fast() for the range, or
  * we need to fall back to the slow version:
  */
-bool gup_fast_permitted(unsigned long start, int nr_pages)
+static bool gup_fast_permitted(unsigned long start, unsigned long end)
 {
-	unsigned long len, end;
-
-	len = (unsigned long) nr_pages << PAGE_SHIFT;
-	end = start + len;
-	return end >= start;
+	return true;
 }
 #endif
 
@@ -2150,6 +2146,8 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
 	len = (unsigned long) nr_pages << PAGE_SHIFT;
 	end = start + len;
 
+	if (end <= start)
+		return 0;
 	if (unlikely(!access_ok((void __user *)start, len)))
 		return 0;
 
@@ -2165,7 +2163,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
 	 * block IPIs that come from THPs splitting.
 	 */
 
-	if (gup_fast_permitted(start, nr_pages)) {
+	if (gup_fast_permitted(start, end)) {
 		local_irq_save(flags);
 		gup_pgd_range(start, end, write ? FOLL_WRITE : 0, pages, &nr);
 		local_irq_restore(flags);
@@ -2224,13 +2222,12 @@ int get_user_pages_fast(unsigned long start, int nr_pages,
 	len = (unsigned long) nr_pages << PAGE_SHIFT;
 	end = start + len;
 
-	if (nr_pages <= 0)
+	if (end <= start)
 		return 0;
-
 	if (unlikely(!access_ok((void __user *)start, len)))
 		return -EFAULT;
 
-	if (gup_fast_permitted(start, nr_pages)) {
+	if (gup_fast_permitted(start, end)) {
 		local_irq_disable();
 		gup_pgd_range(addr, end, gup_flags, pages, &nr);
 		local_irq_enable();
-- 
2.20.1

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Paul Burton <paul.burton@mips.com>,
	James Hogan <jhogan@kernel.org>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	"David S. Miller" <davem@davemloft.net>
Cc: Nicholas Piggin <npiggin@gmail.com>,
	Khalid Aziz <khalid.aziz@oracle.com>,
	Andrey Konovalov <andreyknvl@google.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	linux-mips@vger.kernel.org, linux-sh@vger.kernel.org,
	sparclinux@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-mm@kvack.org, x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 02/16] mm: simplify gup_fast_permitted
Date: Tue, 11 Jun 2019 16:40:48 +0200	[thread overview]
Message-ID: <20190611144102.8848-3-hch@lst.de> (raw)
In-Reply-To: <20190611144102.8848-1-hch@lst.de>

Pass in the already calculated end value instead of recomputing it, and
leave the end > start check in the callers instead of duplicating them
in the arch code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/s390/include/asm/pgtable.h   |  8 +-------
 arch/x86/include/asm/pgtable_64.h |  8 +-------
 mm/gup.c                          | 17 +++++++----------
 3 files changed, 9 insertions(+), 24 deletions(-)

diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h
index 9f0195d5fa16..9b274fcaacb6 100644
--- a/arch/s390/include/asm/pgtable.h
+++ b/arch/s390/include/asm/pgtable.h
@@ -1270,14 +1270,8 @@ static inline pte_t *pte_offset(pmd_t *pmd, unsigned long address)
 #define pte_offset_map(pmd, address) pte_offset_kernel(pmd, address)
 #define pte_unmap(pte) do { } while (0)
 
-static inline bool gup_fast_permitted(unsigned long start, int nr_pages)
+static inline bool gup_fast_permitted(unsigned long start, unsigned long end)
 {
-	unsigned long len, end;
-
-	len = (unsigned long) nr_pages << PAGE_SHIFT;
-	end = start + len;
-	if (end < start)
-		return false;
 	return end <= current->mm->context.asce_limit;
 }
 #define gup_fast_permitted gup_fast_permitted
diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h
index 0bb566315621..4990d26dfc73 100644
--- a/arch/x86/include/asm/pgtable_64.h
+++ b/arch/x86/include/asm/pgtable_64.h
@@ -259,14 +259,8 @@ extern void init_extra_mapping_uc(unsigned long phys, unsigned long size);
 extern void init_extra_mapping_wb(unsigned long phys, unsigned long size);
 
 #define gup_fast_permitted gup_fast_permitted
-static inline bool gup_fast_permitted(unsigned long start, int nr_pages)
+static inline bool gup_fast_permitted(unsigned long start, unsigned long end)
 {
-	unsigned long len, end;
-
-	len = (unsigned long)nr_pages << PAGE_SHIFT;
-	end = start + len;
-	if (end < start)
-		return false;
 	if (end >> __VIRTUAL_MASK_SHIFT)
 		return false;
 	return true;
diff --git a/mm/gup.c b/mm/gup.c
index 6bb521db67ec..3237f33792e6 100644
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -2123,13 +2123,9 @@ static void gup_pgd_range(unsigned long addr, unsigned long end,
  * Check if it's allowed to use __get_user_pages_fast() for the range, or
  * we need to fall back to the slow version:
  */
-bool gup_fast_permitted(unsigned long start, int nr_pages)
+static bool gup_fast_permitted(unsigned long start, unsigned long end)
 {
-	unsigned long len, end;
-
-	len = (unsigned long) nr_pages << PAGE_SHIFT;
-	end = start + len;
-	return end >= start;
+	return true;
 }
 #endif
 
@@ -2150,6 +2146,8 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
 	len = (unsigned long) nr_pages << PAGE_SHIFT;
 	end = start + len;
 
+	if (end <= start)
+		return 0;
 	if (unlikely(!access_ok((void __user *)start, len)))
 		return 0;
 
@@ -2165,7 +2163,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
 	 * block IPIs that come from THPs splitting.
 	 */
 
-	if (gup_fast_permitted(start, nr_pages)) {
+	if (gup_fast_permitted(start, end)) {
 		local_irq_save(flags);
 		gup_pgd_range(start, end, write ? FOLL_WRITE : 0, pages, &nr);
 		local_irq_restore(flags);
@@ -2224,13 +2222,12 @@ int get_user_pages_fast(unsigned long start, int nr_pages,
 	len = (unsigned long) nr_pages << PAGE_SHIFT;
 	end = start + len;
 
-	if (nr_pages <= 0)
+	if (end <= start)
 		return 0;
-
 	if (unlikely(!access_ok((void __user *)start, len)))
 		return -EFAULT;
 
-	if (gup_fast_permitted(start, nr_pages)) {
+	if (gup_fast_permitted(start, end)) {
 		local_irq_disable();
 		gup_pgd_range(addr, end, gup_flags, pages, &nr);
 		local_irq_enable();
-- 
2.20.1


WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Paul Burton <paul.burton@mips.com>,
	James Hogan <jhogan@kernel.org>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	"David S. Miller" <davem@davemloft.net>
Cc: linux-sh@vger.kernel.org,
	Andrey Konovalov <andreyknvl@google.com>,
	x86@kernel.org, linux-mips@vger.kernel.org,
	Nicholas Piggin <npiggin@gmail.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Khalid Aziz <khalid.aziz@oracle.com>,
	Paul Mackerras <paulus@samba.org>,
	sparclinux@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: [PATCH 02/16] mm: simplify gup_fast_permitted
Date: Tue, 11 Jun 2019 16:40:48 +0200	[thread overview]
Message-ID: <20190611144102.8848-3-hch@lst.de> (raw)
In-Reply-To: <20190611144102.8848-1-hch@lst.de>

Pass in the already calculated end value instead of recomputing it, and
leave the end > start check in the callers instead of duplicating them
in the arch code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/s390/include/asm/pgtable.h   |  8 +-------
 arch/x86/include/asm/pgtable_64.h |  8 +-------
 mm/gup.c                          | 17 +++++++----------
 3 files changed, 9 insertions(+), 24 deletions(-)

diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h
index 9f0195d5fa16..9b274fcaacb6 100644
--- a/arch/s390/include/asm/pgtable.h
+++ b/arch/s390/include/asm/pgtable.h
@@ -1270,14 +1270,8 @@ static inline pte_t *pte_offset(pmd_t *pmd, unsigned long address)
 #define pte_offset_map(pmd, address) pte_offset_kernel(pmd, address)
 #define pte_unmap(pte) do { } while (0)
 
-static inline bool gup_fast_permitted(unsigned long start, int nr_pages)
+static inline bool gup_fast_permitted(unsigned long start, unsigned long end)
 {
-	unsigned long len, end;
-
-	len = (unsigned long) nr_pages << PAGE_SHIFT;
-	end = start + len;
-	if (end < start)
-		return false;
 	return end <= current->mm->context.asce_limit;
 }
 #define gup_fast_permitted gup_fast_permitted
diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h
index 0bb566315621..4990d26dfc73 100644
--- a/arch/x86/include/asm/pgtable_64.h
+++ b/arch/x86/include/asm/pgtable_64.h
@@ -259,14 +259,8 @@ extern void init_extra_mapping_uc(unsigned long phys, unsigned long size);
 extern void init_extra_mapping_wb(unsigned long phys, unsigned long size);
 
 #define gup_fast_permitted gup_fast_permitted
-static inline bool gup_fast_permitted(unsigned long start, int nr_pages)
+static inline bool gup_fast_permitted(unsigned long start, unsigned long end)
 {
-	unsigned long len, end;
-
-	len = (unsigned long)nr_pages << PAGE_SHIFT;
-	end = start + len;
-	if (end < start)
-		return false;
 	if (end >> __VIRTUAL_MASK_SHIFT)
 		return false;
 	return true;
diff --git a/mm/gup.c b/mm/gup.c
index 6bb521db67ec..3237f33792e6 100644
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -2123,13 +2123,9 @@ static void gup_pgd_range(unsigned long addr, unsigned long end,
  * Check if it's allowed to use __get_user_pages_fast() for the range, or
  * we need to fall back to the slow version:
  */
-bool gup_fast_permitted(unsigned long start, int nr_pages)
+static bool gup_fast_permitted(unsigned long start, unsigned long end)
 {
-	unsigned long len, end;
-
-	len = (unsigned long) nr_pages << PAGE_SHIFT;
-	end = start + len;
-	return end >= start;
+	return true;
 }
 #endif
 
@@ -2150,6 +2146,8 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
 	len = (unsigned long) nr_pages << PAGE_SHIFT;
 	end = start + len;
 
+	if (end <= start)
+		return 0;
 	if (unlikely(!access_ok((void __user *)start, len)))
 		return 0;
 
@@ -2165,7 +2163,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
 	 * block IPIs that come from THPs splitting.
 	 */
 
-	if (gup_fast_permitted(start, nr_pages)) {
+	if (gup_fast_permitted(start, end)) {
 		local_irq_save(flags);
 		gup_pgd_range(start, end, write ? FOLL_WRITE : 0, pages, &nr);
 		local_irq_restore(flags);
@@ -2224,13 +2222,12 @@ int get_user_pages_fast(unsigned long start, int nr_pages,
 	len = (unsigned long) nr_pages << PAGE_SHIFT;
 	end = start + len;
 
-	if (nr_pages <= 0)
+	if (end <= start)
 		return 0;
-
 	if (unlikely(!access_ok((void __user *)start, len)))
 		return -EFAULT;
 
-	if (gup_fast_permitted(start, nr_pages)) {
+	if (gup_fast_permitted(start, end)) {
 		local_irq_disable();
 		gup_pgd_range(addr, end, gup_flags, pages, &nr);
 		local_irq_enable();
-- 
2.20.1


  parent reply	other threads:[~2019-06-11 14:40 UTC|newest]

Thread overview: 249+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-11 14:40 switch the remaining architectures to use generic GUP v3 Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 01/16] mm: use untagged_addr() for get_user_pages_fast addresses Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 19:22   ` Khalid Aziz
2019-06-11 19:22     ` Khalid Aziz
2019-06-11 19:22     ` Khalid Aziz
2019-06-21 13:16   ` Jason Gunthorpe
2019-06-21 13:16     ` Jason Gunthorpe
2019-06-21 13:16     ` Jason Gunthorpe
2019-06-21 13:39   ` Jason Gunthorpe
2019-06-21 13:39     ` Jason Gunthorpe
2019-06-21 13:39     ` Jason Gunthorpe
2019-06-21 15:35     ` Khalid Aziz
2019-06-21 15:35       ` Khalid Aziz
2019-06-21 15:35       ` Khalid Aziz
2019-06-21 15:54       ` Jason Gunthorpe
2019-06-21 15:54         ` Jason Gunthorpe
2019-06-21 15:54         ` Jason Gunthorpe
2019-06-25  7:41     ` Christoph Hellwig
2019-06-25  7:41       ` Christoph Hellwig
2019-06-25  7:41       ` Christoph Hellwig
2019-06-25  7:43     ` Christoph Hellwig
2019-06-25  7:43       ` Christoph Hellwig
2019-06-25  7:43       ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig [this message]
2019-06-11 14:40   ` [PATCH 02/16] mm: simplify gup_fast_permitted Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-21 13:40   ` Jason Gunthorpe
2019-06-21 13:40     ` Jason Gunthorpe
2019-06-21 13:40     ` Jason Gunthorpe
2019-06-11 14:40 ` [PATCH 03/16] mm: lift the x86_32 PAE version of gup_get_pte to common code Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-21 13:45   ` Jason Gunthorpe
2019-06-21 13:45     ` Jason Gunthorpe
2019-06-21 13:45     ` Jason Gunthorpe
2019-06-11 14:40 ` [PATCH 04/16] MIPS: use the generic get_user_pages_fast code Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-21 14:05   ` Jason Gunthorpe
2019-06-21 14:05     ` Jason Gunthorpe
2019-06-21 14:05     ` Jason Gunthorpe
2019-06-25  7:46     ` Christoph Hellwig
2019-06-25  7:46       ` Christoph Hellwig
2019-06-25  7:46       ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 05/16] sh: add the missing pud_page definition Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 06/16] sh: use the generic get_user_pages_fast code Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 07/16] sparc64: add the missing pgd_page definition Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 08/16] sparc64: define untagged_addr() Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 19:23   ` Khalid Aziz
2019-06-11 19:23     ` Khalid Aziz
2019-06-11 19:23     ` Khalid Aziz
2019-06-11 14:40 ` [PATCH 09/16] sparc64: use the generic get_user_pages_fast code Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 19:35   ` Khalid Aziz
2019-06-11 19:35     ` Khalid Aziz
2019-06-11 19:35     ` Khalid Aziz
2019-06-11 14:40 ` [PATCH 10/16] mm: rename CONFIG_HAVE_GENERIC_GUP to CONFIG_HAVE_FAST_GUP Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 19:35   ` Khalid Aziz
2019-06-11 19:35     ` Khalid Aziz
2019-06-11 19:35     ` Khalid Aziz
2019-06-21 14:28   ` Jason Gunthorpe
2019-06-21 14:28     ` Jason Gunthorpe
2019-06-21 14:28     ` Jason Gunthorpe
2019-06-25  7:50     ` Christoph Hellwig
2019-06-25  7:50       ` Christoph Hellwig
2019-06-25  7:50       ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 11/16] mm: consolidate the get_user_pages* implementations Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-21 14:41   ` Jason Gunthorpe
2019-06-21 14:41     ` Jason Gunthorpe
2019-06-21 14:41     ` Jason Gunthorpe
2019-06-25  7:56     ` Christoph Hellwig
2019-06-25  7:56       ` Christoph Hellwig
2019-06-25  7:56       ` Christoph Hellwig
2019-06-25 11:56       ` Jason Gunthorpe
2019-06-25 11:56         ` Jason Gunthorpe
2019-06-25 11:56         ` Jason Gunthorpe
2019-06-11 14:40 ` [PATCH 12/16] mm: validate get_user_pages_fast flags Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 13/16] mm: move the powerpc hugepd code to mm/gup.c Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:40   ` Christoph Hellwig
2019-06-11 14:41 ` [PATCH 14/16] mm: switch gup_hugepte to use try_get_compound_head Christoph Hellwig
2019-06-11 14:41   ` Christoph Hellwig
2019-06-11 14:41   ` Christoph Hellwig
2019-06-11 14:41 ` [PATCH 15/16] mm: mark the page referenced in gup_hugepte Christoph Hellwig
2019-06-11 14:41   ` Christoph Hellwig
2019-06-11 14:41   ` Christoph Hellwig
2019-06-11 14:41 ` [PATCH 16/16] mm: pass get_user_pages_fast iterator arguments in a structure Christoph Hellwig
2019-06-11 14:41   ` Christoph Hellwig
2019-06-11 14:41   ` Christoph Hellwig
2019-06-12  0:52   ` Nicholas Piggin
2019-06-12  0:52     ` Nicholas Piggin
2019-06-12  0:52     ` Nicholas Piggin
2019-06-12  1:09     ` Linus Torvalds
2019-06-12  1:09       ` Linus Torvalds
2019-06-12  1:09       ` Linus Torvalds
2019-06-12  1:09       ` Linus Torvalds
2019-06-20 12:18       ` Nicholas Piggin
2019-06-20 12:18         ` Nicholas Piggin
2019-06-20 12:18         ` Nicholas Piggin
2019-06-20 17:21         ` Linus Torvalds
2019-06-20 17:21           ` Linus Torvalds
2019-06-20 17:21           ` Linus Torvalds
2019-06-20 17:21           ` Linus Torvalds
2019-06-21  8:15           ` Christoph Hellwig
2019-06-21  8:15             ` Christoph Hellwig
2019-06-21  8:15             ` Christoph Hellwig
2019-06-21 23:55             ` Nicholas Piggin
2019-06-21 23:55               ` Nicholas Piggin
2019-06-21 23:55               ` Nicholas Piggin
2019-06-21  8:29           ` Nicholas Piggin
2019-06-21  8:29             ` Nicholas Piggin
2019-06-21  8:29             ` Nicholas Piggin
2019-06-12  1:27     ` Nadav Amit
2019-06-12  1:27       ` Nadav Amit
2019-06-12  1:27       ` Nadav Amit
2019-06-20 11:45 ` switch the remaining architectures to use generic GUP v3 Christoph Hellwig
2019-06-20 11:45   ` Christoph Hellwig
2019-06-20 11:45   ` Christoph Hellwig
2019-06-21 14:43 ` Jason Gunthorpe
2019-06-21 14:43   ` Jason Gunthorpe
2019-06-21 14:43   ` Jason Gunthorpe
2019-06-25 14:36 ` switch the remaining architectures to use generic GUP v4 Christoph Hellwig
2019-06-25 14:36   ` Christoph Hellwig
2019-06-25 14:36   ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 01/16] mm: use untagged_addr() for get_user_pages_fast addresses Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 02/16] mm: simplify gup_fast_permitted Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 03/16] mm: lift the x86_32 PAE version of gup_get_pte to common code Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 04/16] MIPS: use the generic get_user_pages_fast code Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-29 14:37     ` Guenter Roeck
2019-06-29 14:37       ` Guenter Roeck
2019-06-29 14:37       ` Guenter Roeck
2019-06-25 14:37   ` [PATCH 05/16] sh: add the missing pud_page definition Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 06/16] sh: use the generic get_user_pages_fast code Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-29 15:15     ` Guenter Roeck
2019-06-29 15:15       ` Guenter Roeck
2019-06-29 15:15       ` Guenter Roeck
2019-06-25 14:37   ` [PATCH 07/16] sparc64: add the missing pgd_page definition Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 08/16] sparc64: define untagged_addr() Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 09/16] sparc64: use the generic get_user_pages_fast code Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-07-17 21:59     ` Dmitry V. Levin
2019-07-17 21:59       ` Dmitry V. Levin
2019-07-17 22:04       ` Linus Torvalds
2019-07-17 22:04         ` Linus Torvalds
2019-07-17 22:04         ` Linus Torvalds
2019-07-17 23:30         ` Dmitry V. Levin
2019-07-17 23:30           ` Dmitry V. Levin
2019-07-18  0:17           ` Linus Torvalds
2019-07-18  0:17             ` Linus Torvalds
2019-07-18  0:17             ` Linus Torvalds
2019-07-18  1:21             ` David Miller
2019-07-18  1:21               ` David Miller
2019-07-18 21:43             ` David Miller
2019-07-18 21:43               ` David Miller
2019-07-18 21:14       ` David Miller
2019-07-18 21:14         ` David Miller
2019-07-19  6:00         ` Christoph Hellwig
2019-07-19  6:00           ` Christoph Hellwig
2019-07-24 19:32         ` Anatoly Pugachev
2019-07-24 19:32           ` Anatoly Pugachev
2019-07-24 19:32           ` Anatoly Pugachev
2019-07-24 20:13           ` David Miller
2019-07-24 20:13             ` David Miller
2019-07-25 18:33             ` Anatoly Pugachev
2019-07-25 18:33               ` Anatoly Pugachev
2019-07-25 18:33               ` Anatoly Pugachev
2019-07-25 22:52               ` David Miller
2019-07-25 22:52                 ` David Miller
2019-07-28  2:09               ` David Miller
2019-07-28  2:09                 ` David Miller
2019-07-28 20:00                 ` Anatoly Pugachev
2019-07-28 20:00                   ` Anatoly Pugachev
2019-07-28 20:00                   ` Anatoly Pugachev
2019-07-26 17:58       ` Khalid Aziz
2019-07-26 17:58         ` Khalid Aziz
2019-08-09 19:59       ` Anatoly Pugachev
2019-08-09 19:59         ` Anatoly Pugachev
2019-08-09 19:59         ` Anatoly Pugachev
2019-08-10  7:17         ` Christoph Hellwig
2019-08-10  7:17           ` Christoph Hellwig
2019-08-10 19:36           ` Mikael Pettersson
2019-08-10 19:36             ` Mikael Pettersson
2019-08-10 19:36             ` Mikael Pettersson
2019-08-11 20:30             ` Anatoly Pugachev
2019-08-11 20:30               ` Anatoly Pugachev
2019-08-11 20:30               ` Anatoly Pugachev
2019-06-25 14:37   ` [PATCH 10/16] mm: rename CONFIG_HAVE_GENERIC_GUP to CONFIG_HAVE_FAST_GUP Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 11/16] mm: reorder code blocks in gup.c Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 12/16] mm: consolidate the get_user_pages* implementations Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 13/16] mm: validate get_user_pages_fast flags Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 14/16] mm: move the powerpc hugepd code to mm/gup.c Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 19:37     ` Andrew Morton
2019-06-25 19:37       ` Andrew Morton
2019-06-25 19:37       ` Andrew Morton
2019-06-26  5:49       ` Christoph Hellwig
2019-06-26  5:49         ` Christoph Hellwig
2019-06-26  5:49         ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 15/16] mm: switch gup_hugepte to use try_get_compound_head Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37   ` [PATCH 16/16] mm: mark the page referenced in gup_hugepte Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig
2019-06-25 14:37     ` Christoph Hellwig

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=20190611144102.8848-3-hch@lst.de \
    --to=hch@lst.de \
    --cc=andreyknvl@google.com \
    --cc=benh@kernel.crashing.org \
    --cc=dalias@libc.org \
    --cc=davem@davemloft.net \
    --cc=jhogan@kernel.org \
    --cc=khalid.aziz@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=npiggin@gmail.com \
    --cc=paul.burton@mips.com \
    --cc=paulus@samba.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=x86@kernel.org \
    --cc=ysato@users.sourceforge.jp \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.