* [PATCH 2/2] MIPS/c-r4k: do no use mmap_sem for gup_fast()
[not found] <20190207053740.26915-1-dave@stgolabs.net>
@ 2019-02-07 5:37 ` Davidlohr Bueso
2019-02-07 19:00 ` Paul Burton
0 siblings, 1 reply; 3+ messages in thread
From: Davidlohr Bueso @ 2019-02-07 5:37 UTC (permalink / raw)
To: akpm
Cc: linux-mm, dave, linux-kernel, Ralf Baechle, Paul Burton,
James Hogan, linux-mips, Davidlohr Bueso
It is well known that because the mm can internally
call the regular gup_unlocked if the lockless approach
fails and take the sem there, the caller must not hold
the mmap_sem already.
Fixes: e523f289fe4d (MIPS: c-r4k: Fix sigtramp SMP call to use kmap)
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: James Hogan <jhogan@kernel.org>
Cc: linux-mips@vger.kernel.org
Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
---
arch/mips/mm/c-r4k.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index cc4e17caeb26..38fe86928837 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -1034,11 +1034,9 @@ static void r4k_flush_cache_sigtramp(unsigned long addr)
struct flush_cache_sigtramp_args args;
int npages;
- down_read(¤t->mm->mmap_sem);
-
npages = get_user_pages_fast(addr, 1, 0, &args.page);
if (npages < 1)
- goto out;
+ return;
args.mm = current->mm;
args.addr = addr;
@@ -1046,8 +1044,6 @@ static void r4k_flush_cache_sigtramp(unsigned long addr)
r4k_on_each_cpu(R4K_HIT, local_r4k_flush_cache_sigtramp, &args);
put_page(args.page);
-out:
- up_read(¤t->mm->mmap_sem);
}
static void r4k_flush_icache_all(void)
--
2.16.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 2/2] MIPS/c-r4k: do no use mmap_sem for gup_fast()
2019-02-07 5:37 ` [PATCH 2/2] MIPS/c-r4k: do no use mmap_sem for gup_fast() Davidlohr Bueso
@ 2019-02-07 19:00 ` Paul Burton
2019-02-07 19:25 ` Davidlohr Bueso
0 siblings, 1 reply; 3+ messages in thread
From: Paul Burton @ 2019-02-07 19:00 UTC (permalink / raw)
To: Davidlohr Bueso
Cc: akpm, linux-mm, linux-kernel, Ralf Baechle, James Hogan,
linux-mips, Davidlohr Bueso
Hi Davidlohr,
On Wed, Feb 06, 2019 at 09:37:40PM -0800, Davidlohr Bueso wrote:
> It is well known that because the mm can internally
> call the regular gup_unlocked if the lockless approach
> fails and take the sem there, the caller must not hold
> the mmap_sem already.
>
> Fixes: e523f289fe4d (MIPS: c-r4k: Fix sigtramp SMP call to use kmap)
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: Paul Burton <paul.burton@mips.com>
> Cc: James Hogan <jhogan@kernel.org>
> Cc: linux-mips@vger.kernel.org
> Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Thanks - this looks good, but:
1) The problem it fixes was introduced in v4.8.
2) Commit adcc81f148d7 ("MIPS: math-emu: Write-protect delay slot
emulation pages") actually left flush_cache_sigtramp unused, and has
been backported to stable kernels also as far as v4.8.
Therefore this will just fix code that never gets called, and I'll go
delete the whole thing instead.
Thanks,
Paul
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 2/2] MIPS/c-r4k: do no use mmap_sem for gup_fast()
2019-02-07 19:00 ` Paul Burton
@ 2019-02-07 19:25 ` Davidlohr Bueso
0 siblings, 0 replies; 3+ messages in thread
From: Davidlohr Bueso @ 2019-02-07 19:25 UTC (permalink / raw)
To: Paul Burton
Cc: akpm, linux-mm, linux-kernel, Ralf Baechle, James Hogan,
linux-mips, Davidlohr Bueso
On Thu, 07 Feb 2019, Paul Burton wrote:
>Hi Davidlohr,
>
>On Wed, Feb 06, 2019 at 09:37:40PM -0800, Davidlohr Bueso wrote:
>> It is well known that because the mm can internally
>> call the regular gup_unlocked if the lockless approach
>> fails and take the sem there, the caller must not hold
>> the mmap_sem already.
>>
>> Fixes: e523f289fe4d (MIPS: c-r4k: Fix sigtramp SMP call to use kmap)
>> Cc: Ralf Baechle <ralf@linux-mips.org>
>> Cc: Paul Burton <paul.burton@mips.com>
>> Cc: James Hogan <jhogan@kernel.org>
>> Cc: linux-mips@vger.kernel.org
>> Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
>
>Thanks - this looks good, but:
>
> 1) The problem it fixes was introduced in v4.8.
>
> 2) Commit adcc81f148d7 ("MIPS: math-emu: Write-protect delay slot
> emulation pages") actually left flush_cache_sigtramp unused, and has
> been backported to stable kernels also as far as v4.8.
>
>Therefore this will just fix code that never gets called, and I'll go
>delete the whole thing instead.
Even better.
Thanks,
Davidlohr
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-02-07 19:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20190207053740.26915-1-dave@stgolabs.net>
2019-02-07 5:37 ` [PATCH 2/2] MIPS/c-r4k: do no use mmap_sem for gup_fast() Davidlohr Bueso
2019-02-07 19:00 ` Paul Burton
2019-02-07 19:25 ` Davidlohr Bueso
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 NNTP newsgroup(s).