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>, linux-mips@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/6] mm: add a gup_fixup_start_addr hook Date: Sat, 25 May 2019 13:32:01 +0000 [thread overview] Message-ID: <20190525133203.25853-5-hch@lst.de> (raw) In-Reply-To: <20190525133203.25853-1-hch@lst.de> This will allow sparc64 to override its ADI tags for get_user_pages and get_user_pages_fast. I have no idea why this is not required for plain old get_user_pages, but it keeps the existing sparc64 behavior. Signed-off-by: Christoph Hellwig <hch@lst.de> --- mm/gup.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mm/gup.c b/mm/gup.c index f173fcbaf1b2..1c21ecfbf38b 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -2117,6 +2117,10 @@ static void gup_pgd_range(unsigned long addr, unsigned long end, } while (pgdp++, addr = next, addr != end); } +#ifndef gup_fixup_start_addr +#define gup_fixup_start_addr(start) (start) +#endif + #ifndef gup_fast_permitted /* * Check if it's allowed to use __get_user_pages_fast() for the range, or @@ -2145,7 +2149,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write, unsigned long flags; int nr = 0; - start &= PAGE_MASK; + start = gup_fixup_start_addr(start) & PAGE_MASK; len = (unsigned long) nr_pages << PAGE_SHIFT; end = start + len; @@ -2218,7 +2222,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, unsigned long addr, len, end; int nr = 0, ret = 0; - start &= PAGE_MASK; + start = gup_fixup_start_addr(start) & PAGE_MASK; addr = start; len = (unsigned long) nr_pages << PAGE_SHIFT; end = start + len; -- 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>, linux-mips@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/6] mm: add a gup_fixup_start_addr hook Date: Sat, 25 May 2019 15:32:01 +0200 [thread overview] Message-ID: <20190525133203.25853-5-hch@lst.de> (raw) In-Reply-To: <20190525133203.25853-1-hch@lst.de> This will allow sparc64 to override its ADI tags for get_user_pages and get_user_pages_fast. I have no idea why this is not required for plain old get_user_pages, but it keeps the existing sparc64 behavior. Signed-off-by: Christoph Hellwig <hch@lst.de> --- mm/gup.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mm/gup.c b/mm/gup.c index f173fcbaf1b2..1c21ecfbf38b 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -2117,6 +2117,10 @@ static void gup_pgd_range(unsigned long addr, unsigned long end, } while (pgdp++, addr = next, addr != end); } +#ifndef gup_fixup_start_addr +#define gup_fixup_start_addr(start) (start) +#endif + #ifndef gup_fast_permitted /* * Check if it's allowed to use __get_user_pages_fast() for the range, or @@ -2145,7 +2149,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write, unsigned long flags; int nr = 0; - start &= PAGE_MASK; + start = gup_fixup_start_addr(start) & PAGE_MASK; len = (unsigned long) nr_pages << PAGE_SHIFT; end = start + len; @@ -2218,7 +2222,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, unsigned long addr, len, end; int nr = 0, ret = 0; - start &= PAGE_MASK; + start = gup_fixup_start_addr(start) & PAGE_MASK; addr = start; len = (unsigned long) nr_pages << PAGE_SHIFT; end = start + len; -- 2.20.1
next prev parent reply other threads:[~2019-05-25 13:32 UTC|newest] Thread overview: 133+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-25 13:31 RFC: switch the remaining architectures to use generic GUP Christoph Hellwig 2019-05-25 13:31 ` Christoph Hellwig 2019-05-25 13:31 ` [PATCH 1/6] MIPS: use the generic get_user_pages_fast code Christoph Hellwig 2019-05-25 13:31 ` Christoph Hellwig 2019-05-25 13:31 ` [PATCH 2/6] sh: add a missing pud_page definition Christoph Hellwig 2019-05-25 13:31 ` Christoph Hellwig 2019-05-25 13:32 ` [PATCH 3/6] sh: use the generic get_user_pages_fast code Christoph Hellwig 2019-05-25 13:32 ` Christoph Hellwig 2019-05-25 13:32 ` Christoph Hellwig [this message] 2019-05-25 13:32 ` [PATCH 4/6] mm: add a gup_fixup_start_addr hook Christoph Hellwig 2019-05-25 17:05 ` Linus Torvalds 2019-05-25 17:05 ` Linus Torvalds 2019-05-25 17:05 ` Linus Torvalds 2019-05-28 15:57 ` Khalid Aziz 2019-05-28 15:57 ` Khalid Aziz 2019-05-29 7:26 ` Christoph Hellwig 2019-05-29 7:26 ` Christoph Hellwig 2019-05-29 8:19 ` Catalin Marinas 2019-05-29 8:19 ` Catalin Marinas 2019-05-29 8:19 ` Catalin Marinas 2019-05-25 13:32 ` [PATCH 5/6] sparc64: use the generic get_user_pages_fast code Christoph Hellwig 2019-05-25 13:32 ` Christoph Hellwig 2019-05-25 16:55 ` David Miller 2019-05-25 16:55 ` David Miller 2019-05-25 13:32 ` [PATCH 6/6] mm: don't allow non-generic get_user_pages_fast implementations Christoph Hellwig 2019-05-25 13:32 ` Christoph Hellwig 2019-05-25 17:07 ` RFC: switch the remaining architectures to use generic GUP Linus Torvalds 2019-05-25 17:07 ` Linus Torvalds 2019-05-25 17:07 ` Linus Torvalds 2019-05-25 17:39 ` Christoph Hellwig 2019-05-25 17:39 ` Christoph Hellwig 2019-06-01 7:49 ` RFC: switch the remaining architectures to use generic GUP v2 Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 01/16] uaccess: add untagged_addr definition for other arches Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-03 15:16 ` Khalid Aziz 2019-06-03 15:16 ` Khalid Aziz 2019-06-03 15:16 ` Khalid Aziz 2019-06-04 7:27 ` Christoph Hellwig 2019-06-04 7:27 ` Christoph Hellwig 2019-06-04 7:27 ` Christoph Hellwig 2019-06-04 11:46 ` Andrey Konovalov 2019-06-04 11:46 ` Andrey Konovalov 2019-06-04 11:46 ` Andrey Konovalov 2019-06-04 11:46 ` Andrey Konovalov 2019-06-01 7:49 ` [PATCH 02/16] mm: use untagged_addr() for get_user_pages_fast addresses Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 03/16] mm: simplify gup_fast_permitted Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 16:14 ` Linus Torvalds 2019-06-01 16:14 ` Linus Torvalds 2019-06-01 16:14 ` Linus Torvalds 2019-06-01 16:14 ` Linus Torvalds 2019-06-03 7:41 ` Christoph Hellwig 2019-06-03 7:41 ` Christoph Hellwig 2019-06-03 7:41 ` Christoph Hellwig 2019-06-03 16:08 ` Linus Torvalds 2019-06-03 16:08 ` Linus Torvalds 2019-06-03 16:08 ` Linus Torvalds 2019-06-03 16:08 ` Linus Torvalds 2019-06-03 17:02 ` Linus Torvalds 2019-06-03 17:02 ` Linus Torvalds 2019-06-03 17:02 ` Linus Torvalds 2019-06-03 17:02 ` Linus Torvalds 2019-06-04 7:26 ` Christoph Hellwig 2019-06-04 7:26 ` Christoph Hellwig 2019-06-04 7:26 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 04/16] mm: lift the x86_32 PAE version of gup_get_pte to common code Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 05/16] MIPS: use the generic get_user_pages_fast code Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 06/16] sh: add the missing pud_page definition Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 07/16] sh: use the generic get_user_pages_fast code Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 08/16] sparc64: add the missing pgd_page definition Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 16:28 ` Linus Torvalds 2019-06-01 16:28 ` Linus Torvalds 2019-06-01 16:28 ` Linus Torvalds 2019-06-01 16:28 ` Linus Torvalds 2019-06-03 7:44 ` Christoph Hellwig 2019-06-03 7:44 ` Christoph Hellwig 2019-06-03 7:44 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 09/16] sparc64: define untagged_addr() Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 10/16] sparc64: use the generic get_user_pages_fast code Christoph Hellwig 2019-06-02 7:39 ` Hillf Danton 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-03 7:44 ` Christoph Hellwig 2019-06-03 7:44 ` Christoph Hellwig 2019-06-03 7:44 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 11/16] mm: rename CONFIG_HAVE_GENERIC_GUP to CONFIG_HAVE_FAST_GUP Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 12/16] mm: consolidate the get_user_pages* implementations Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-06 6:01 ` John Hubbard 2019-06-06 6:01 ` John Hubbard 2019-06-06 6:01 ` John Hubbard 2019-06-06 6:20 ` Christoph Hellwig 2019-06-06 6:20 ` Christoph Hellwig 2019-06-06 6:20 ` Christoph Hellwig 2019-06-06 7:44 ` John Hubbard 2019-06-06 7:44 ` John Hubbard 2019-06-06 7:44 ` John Hubbard 2019-06-01 7:49 ` [PATCH 13/16] mm: validate get_user_pages_fast flags Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 14/16] mm: move the powerpc hugepd code to mm/gup.c Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 15/16] mm: switch gup_hugepte to use try_get_compound_head Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` [PATCH 16/16] mm: mark the page referenced in gup_hugepte Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 7:49 ` Christoph Hellwig 2019-06-01 23:46 ` RFC: switch the remaining architectures to use generic GUP v2 David Miller 2019-06-01 23:46 ` David Miller 2019-06-01 23:46 ` David Miller
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=20190525133203.25853-5-hch@lst.de \ --to=hch@lst.de \ --cc=dalias@libc.org \ --cc=davem@davemloft.net \ --cc=jhogan@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mips@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linux-sh@vger.kernel.org \ --cc=npiggin@gmail.com \ --cc=paul.burton@mips.com \ --cc=sparclinux@vger.kernel.org \ --cc=torvalds@linux-foundation.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: linkBe 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.