diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2020-12-10 16:36:30 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-12-10 16:36:30 -0800 | 
| commit | 47003b9971cc7c38737f21e07034502ca35ab7af (patch) | |
| tree | aa0e5d672f53c7a6dfad96dd54b6305667664c28 /arch/powerpc | |
| parent | 197c61cb176a40f5877c3caf8249722e77b7d989 (diff) | |
| parent | 5eedf9fe8db23313df104576845cec5f481b9b60 (diff) | |
| download | linux-47003b9971cc7c38737f21e07034502ca35ab7af.tar.bz2 | |
Merge tag 'powerpc-5.10-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
Pull powerpc fix from Michael Ellerman:
 "One commit to implement copy_from_kernel_nofault_allowed(), otherwise
  copy_from_kernel_nofault() can trigger warnings when accessing bad
  addresses in some configurations.
  Thanks to Christophe Leroy and Qian Cai"
* tag 'powerpc-5.10-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
  powerpc/mm: Fix KUAP warning by providing copy_from_kernel_nofault_allowed()
Diffstat (limited to 'arch/powerpc')
| -rw-r--r-- | arch/powerpc/mm/Makefile | 2 | ||||
| -rw-r--r-- | arch/powerpc/mm/maccess.c | 9 | 
2 files changed, 10 insertions, 1 deletions
| diff --git a/arch/powerpc/mm/Makefile b/arch/powerpc/mm/Makefile index 5e147986400d..55b4a8bd408a 100644 --- a/arch/powerpc/mm/Makefile +++ b/arch/powerpc/mm/Makefile @@ -5,7 +5,7 @@  ccflags-$(CONFIG_PPC64)	:= $(NO_MINIMAL_TOC) -obj-y				:= fault.o mem.o pgtable.o mmap.o \ +obj-y				:= fault.o mem.o pgtable.o mmap.o maccess.o \  				   init_$(BITS).o pgtable_$(BITS).o \  				   pgtable-frag.o ioremap.o ioremap_$(BITS).o \  				   init-common.o mmu_context.o drmem.o diff --git a/arch/powerpc/mm/maccess.c b/arch/powerpc/mm/maccess.c new file mode 100644 index 000000000000..fa9a7a718fc6 --- /dev/null +++ b/arch/powerpc/mm/maccess.c @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0-only + +#include <linux/uaccess.h> +#include <linux/kernel.h> + +bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size) +{ +	return is_kernel_addr((unsigned long)unsafe_src); +} |