Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1711834
| From | Michael Ellerman <mpe@ellerman.id.au> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v7 7/9] mm: Add address parameter to arch_validate_prot() |
| Date | 2017-08-15 07:10 +0200 |
| Message-ID | <ueCh3-5tW-7@gated-at.bofh.it> (permalink) |
| References | <ucGI9-4oh-7@gated-at.bofh.it> <ucGIa-4oh-13@gated-at.bofh.it> <ucVHc-65t-15@gated-at.bofh.it> <ucWWC-6Yt-19@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Khalid Aziz <khalid.aziz@oracle.com> writes: > On 08/10/2017 07:20 AM, Michael Ellerman wrote: >> Khalid Aziz <khalid.aziz@oracle.com> writes: >> >>> A protection flag may not be valid across entire address space and >>> hence arch_validate_prot() might need the address a protection bit is >>> being set on to ensure it is a valid protection flag. For example, sparc >>> processors support memory corruption detection (as part of ADI feature) >>> flag on memory addresses mapped on to physical RAM but not on PFN mapped >>> pages or addresses mapped on to devices. This patch adds address to the >>> parameters being passed to arch_validate_prot() so protection bits can >>> be validated in the relevant context. >>> >>> Signed-off-by: Khalid Aziz <khalid.aziz@oracle.com> >>> Cc: Khalid Aziz <khalid@gonehiking.org> >>> --- >>> v7: >>> - new patch >>> >>> arch/powerpc/include/asm/mman.h | 2 +- >>> arch/powerpc/kernel/syscalls.c | 2 +- >>> include/linux/mman.h | 2 +- >>> mm/mprotect.c | 2 +- >>> 4 files changed, 4 insertions(+), 4 deletions(-) >>> >>> diff --git a/arch/powerpc/include/asm/mman.h b/arch/powerpc/include/asm/mman.h >>> index 30922f699341..bc74074304a2 100644 >>> --- a/arch/powerpc/include/asm/mman.h >>> +++ b/arch/powerpc/include/asm/mman.h >>> @@ -40,7 +40,7 @@ static inline bool arch_validate_prot(unsigned long prot) >>> return false; >>> return true; >>> } >>> -#define arch_validate_prot(prot) arch_validate_prot(prot) >>> +#define arch_validate_prot(prot, addr) arch_validate_prot(prot) >> >> This can be simpler, as just: >> >> #define arch_validate_prot arch_validate_prot >> > > Hi Michael, > > Thanks for reviewing! > > My patch expands parameter list for arch_validate_prot() from one to two > parameters. Existing powerpc version of arch_validate_prot() is written > with one parameter. If I use the above #define, compilation fails with: > > mm/mprotect.c: In function ‘do_mprotect_pkey’: > mm/mprotect.c:399: error: too many arguments to function > ‘arch_validate_prot’ > > Another way to solve it would be to add the new addr parameter to > powerpc version of arch_validate_prot() but I chose the less disruptive > solution of tackling it through #define and expanded the existing > #define to include the new parameter. Make sense? Yes, it makes sense. But it's a bit gross. At first glance it looks like our arch_validate_prot() has an incorrect signature. I'd prefer you just updated it to have the correct signature, I think you'll have to change one more line in do_mmap2(). So it's not very intrusive. cheers
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
Re: [PATCH v7 7/9] mm: Add address parameter to arch_validate_prot() Michael Ellerman <mpe@ellerman.id.au> - 2017-08-15 07:10 +0200 Re: [PATCH v7 7/9] mm: Add address parameter to arch_validate_prot() Khalid Aziz <khalid.aziz@oracle.com> - 2017-08-15 16:50 +0200
csiph-web