Re: [PATCH] arch/m68k/kernel/sys_m68k: Add missing mmap_read_lock() to sys_cacheflush()
On Wed, Apr 7, 2021 at 10:00 PM Liam Howlett wrote: > When the superuser flushes the entire cache, the mmap_read_lock() is not > taken, but mmap_read_unlock() is called. Add the missing > mmap_read_lock() call. > > Signed-off-by: Liam R. Howlett Reviewed-by: Geert Uytterhoeven i.e. will queue in the m68k for-v5.13 branch. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Re: [PATCH] arch/m68k/kernel/sys_m68k: Add missing mmap_read_lock() to sys_cacheflush()
On Thu, Apr 08, 2021 at 04:34:20PM +, Liam Howlett wrote: > When the superuser flushes the entire cache, the mmap_read_lock() is not > taken, but mmap_read_unlock() is called. Add the missing > mmap_read_lock() call. > > Fixes: cd2567b6850b (m68k: call find_vma with the mmap_sem held in > sys_cacheflush()) > Signed-off-by: Liam R. Howlett Reviewed-by: Matthew Wilcox (Oracle) Although if it's been broken since 2014, maybe the ability of the superuser to flush the entire cache is not needed any more and can be removed?
Re: [PATCH] arch/m68k/kernel/sys_m68k: Add missing mmap_read_lock() to sys_cacheflush()
Forgot the fixes line. * Liam Howlett [210407 16:00]: > When the superuser flushes the entire cache, the mmap_read_lock() is not > taken, but mmap_read_unlock() is called. Add the missing > mmap_read_lock() call. > > Signed-off-by: Liam R. Howlett > --- > arch/m68k/kernel/sys_m68k.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/m68k/kernel/sys_m68k.c b/arch/m68k/kernel/sys_m68k.c > index 1c235d8f53f3..f55bdcb8e4f1 100644 > --- a/arch/m68k/kernel/sys_m68k.c > +++ b/arch/m68k/kernel/sys_m68k.c > @@ -388,6 +388,8 @@ sys_cacheflush (unsigned long addr, int scope, int cache, > unsigned long len) > ret = -EPERM; > if (!capable(CAP_SYS_ADMIN)) > goto out; > + > + mmap_read_lock(current->mm); > } else { > struct vm_area_struct *vma; > > -- > 2.30.0 From aeee71b15f54426f02f41a4408afbd0b5acab7ec Mon Sep 17 00:00:00 2001 From: "Liam R. Howlett" Date: Wed, 7 Apr 2021 11:39:06 -0400 Subject: [PATCH] arch/m68k/kernel/sys_m68k: Add missing mmap_read_lock() to sys_cacheflush() When the superuser flushes the entire cache, the mmap_read_lock() is not taken, but mmap_read_unlock() is called. Add the missing mmap_read_lock() call. Fixes: cd2567b6850b (m68k: call find_vma with the mmap_sem held in sys_cacheflush()) Signed-off-by: Liam R. Howlett --- arch/m68k/kernel/sys_m68k.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/m68k/kernel/sys_m68k.c b/arch/m68k/kernel/sys_m68k.c index 1c235d8f53f3..f55bdcb8e4f1 100644 --- a/arch/m68k/kernel/sys_m68k.c +++ b/arch/m68k/kernel/sys_m68k.c @@ -388,6 +388,8 @@ sys_cacheflush (unsigned long addr, int scope, int cache, unsigned long len) ret = -EPERM; if (!capable(CAP_SYS_ADMIN)) goto out; + + mmap_read_lock(current->mm); } else { struct vm_area_struct *vma; -- 2.30.0
[PATCH] arch/m68k/kernel/sys_m68k: Add missing mmap_read_lock() to sys_cacheflush()
When the superuser flushes the entire cache, the mmap_read_lock() is not taken, but mmap_read_unlock() is called. Add the missing mmap_read_lock() call. Signed-off-by: Liam R. Howlett --- arch/m68k/kernel/sys_m68k.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/m68k/kernel/sys_m68k.c b/arch/m68k/kernel/sys_m68k.c index 1c235d8f53f3..f55bdcb8e4f1 100644 --- a/arch/m68k/kernel/sys_m68k.c +++ b/arch/m68k/kernel/sys_m68k.c @@ -388,6 +388,8 @@ sys_cacheflush (unsigned long addr, int scope, int cache, unsigned long len) ret = -EPERM; if (!capable(CAP_SYS_ADMIN)) goto out; + + mmap_read_lock(current->mm); } else { struct vm_area_struct *vma; -- 2.30.0