Re: [PATCH v4 3/3] arm64: kvm: inject SError with user space specified syndrome

2017-07-05 Thread gengdongjiu
Hi James, On 2017/7/4 18:14, James Morse wrote: > Hi gengdongjiu, > > Can you give us a specific example of an error you are trying to handle? For example: guest OS user space accesses device type memory, but happen SError. because the SError is asynchronous faults, it does not take immediately.

Re: [PATCH 0/5] Make PDF builds work again

2017-07-05 Thread Frank Rowand
On 07/03/17 01:25, Daniel Vetter wrote: > On Sun, Jun 18, 2017 at 05:46:25PM -0600, Jonathan Corbet wrote: >> I've just spent rather more time than I would like figuring out why the PDF >> builds fail and what was needed to fix it. The result is the following >> patch series. It's a combination o

Re: [PATCH] Docs: add 'lintdocs' target with basic sanity checks

2017-07-05 Thread Jim Davis
On Tue, Jul 4, 2017 at 12:39 AM, Markus Heiser wrote: > From: Markus Heiser > > The 'lintdocs' produces no output. The input is only parsed and checked for > consistency. This is useful for basic sanity checks [1]. Is this meant to apply to 4.12? I'm having no luck with git am, even after slogg

[RFC v5 00/38] powerpc: Memory Protection Keys

2017-07-05 Thread Ram Pai
Memory protection keys enable applications to protect its address space from inadvertent access or corruption from itself. The overall idea: A process allocates a key and associates it with an address range withinits address space. The process then can dynamically set read/wr

Re: [PATCH 0/5] Make PDF builds work again

2017-07-05 Thread Jim Davis
On Mon, Jul 3, 2017 at 5:44 AM, Jonathan Corbet wrote: > On Mon, 3 Jul 2017 10:25:38 +0200 > Daniel Vetter wrote: > >> Only now stumbled over the full thread, but the drm patch is already >> queued up for at least 4.13 (Dave was out and all that). I guess we could >> try to cherry-pick through st

[RFC v5 14/38] powerpc: initial plumbing for key management

2017-07-05 Thread Ram Pai
Initial plumbing to manage all the keys supported by the hardware. Total 32 keys are supported on powerpc. However pkey 0,1 and 31 are reserved. So effectively we have 29 pkeys. This patch keeps track of reserved keys, allocated keys and keys that are currently free. Also it adds skeletal fu

[RFC v5 37/38] Documentation: Move protecton key documentation to arch neutral directory

2017-07-05 Thread Ram Pai
Since PowerPC and Intel both support memory protection keys, moving the documenation to arch-neutral directory. Signed-off-by: Ram Pai --- Documentation/vm/protection-keys.txt | 85 + Documentation/x86/protection-keys.txt | 85

[RFC v5 34/38] procfs: display the protection-key number associated with a vma

2017-07-05 Thread Ram Pai
Display the pkey number associated with the vma in smaps of a task. The key will be seen as below: ProtectionKey: 0 Signed-off-by: Ram Pai --- arch/powerpc/kernel/setup_64.c |8 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/kernel/setup_64.c b/arch/pow

[RFC v5 38/38] Documentation: PowerPC specific updates to memory protection keys

2017-07-05 Thread Ram Pai
Add documentation updates that capture PowerPC specific changes. Signed-off-by: Ram Pai --- Documentation/vm/protection-keys.txt | 85 ++ 1 files changed, 65 insertions(+), 20 deletions(-) diff --git a/Documentation/vm/protection-keys.txt b/Documentation/vm/pr

[RFC v5 32/38] powerpc: capture the violated protection key on fault

2017-07-05 Thread Ram Pai
Capture the protection key that got violated in paca. This value will be used by used to inform the signal handler. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/paca.h |1 + arch/powerpc/kernel/asm-offsets.c |1 + arch/powerpc/mm/fault.c |3 +++ 3 files changed, 5

[RFC v5 30/38] powerpc: capture AMR register content on pkey violation

2017-07-05 Thread Ram Pai
capture AMR register contents, and save it in paca whenever a pkey violation is detected. This value will be needed to deliver pkey-violation signal to the task. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/paca.h |3 +++ arch/powerpc/kernel/asm-offsets.c |5 + arch/powerpc

[RFC v5 36/38] selftest: PowerPC specific test updates to memory protection keys

2017-07-05 Thread Ram Pai
Abstracted out the arch specific code into the header file, and added powerpc specific changes. a) added 4k-backed hpte, memory allocator, powerpc specific. b) added three test case where the key is associated after the page is accessed/allocated/mapped. c) cleaned up the code to make chec

[RFC v5 35/38] selftest: Move protecton key selftest to arch neutral directory

2017-07-05 Thread Ram Pai
Signed-off-by: Ram Pai --- tools/testing/selftests/vm/Makefile |1 + tools/testing/selftests/vm/pkey-helpers.h | 219 tools/testing/selftests/vm/protection_keys.c | 1395 + tools/testing/selftests/x86/Makefile |2 +- tools/testing/self

[RFC v5 33/38] powerpc: Deliver SEGV signal on pkey violation

2017-07-05 Thread Ram Pai
The value of the AMR register at the time of exception is made available in gp_regs[PT_AMR] of the siginfo. The value of the pkey, whose protection got violated, is made available in si_pkey field of the siginfo structure. Signed-off-by: Ram Pai --- arch/powerpc/include/uapi/asm/ptrace.h |3

[RFC v5 31/38] powerpc: introduce get_pte_pkey() helper

2017-07-05 Thread Ram Pai
get_pte_pkey() helper returns the pkey associated with a address corresponding to a given mm_struct. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/book3s/64/mmu-hash.h |5 arch/powerpc/mm/hash_utils_64.c | 28 + 2 files changed, 33 insertion

[RFC v5 28/38] powerpc: implementation for arch_vma_access_permitted()

2017-07-05 Thread Ram Pai
This patch provides the implementation for arch_vma_access_permitted(). Returns true if the requested access is allowed by pkey associated with the vma. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/mmu_context.h |5 arch/powerpc/mm/pkeys.c| 40 ++

[RFC v5 26/38] powerpc: check key protection for user page access

2017-07-05 Thread Ram Pai
Make sure that the kernel does not access user pages without checking their key-protection. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/book3s/64/pgtable.h | 14 ++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h

[RFC v5 29/38] powerpc: Handle exceptions caused by pkey violation

2017-07-05 Thread Ram Pai
Handle Data and Instruction exceptions caused by memory protection-key. The CPU will detect the key fault if the HPTE is already programmed with the key. However if the HPTE is not hashed, a key fault will not be detected by the hardware. The software will detect pkey violation in such a cas

[RFC v5 27/38] powerpc: Macro the mask used for checking DSI exception

2017-07-05 Thread Ram Pai
Replace the magic number used to check for DSI exception with a meaningful value. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/reg.h |7 ++- arch/powerpc/kernel/exceptions-64s.S |2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/include/as

[RFC v5 20/38] powerpc: ability to associate pkey to a vma

2017-07-05 Thread Ram Pai
arch-independent code expects the arch to map a pkey into the vma's protection bit setting. The patch provides that ability. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/mman.h |8 +++- arch/powerpc/include/asm/pkeys.h | 14 -- 2 files changed, 19 insertions(+),

[RFC v5 24/38] powerpc: Program HPTE key protection bits

2017-07-05 Thread Ram Pai
Map the PTE protection key bits to the HPTE key protection bits, while creating HPTE entries. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/book3s/64/mmu-hash.h |5 + arch/powerpc/include/asm/pkeys.h |9 + arch/powerpc/mm/hash_utils_64.c |

[RFC v5 25/38] powerpc: helper to validate key-access permissions of a pte

2017-07-05 Thread Ram Pai
helper function that checks if the read/write/execute is allowed on the pte. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/book3s/64/pgtable.h |2 + arch/powerpc/include/asm/pkeys.h |9 +++ arch/powerpc/mm/pkeys.c | 31

[RFC v5 23/38] powerpc: sys_pkey_mprotect() system call

2017-07-05 Thread Ram Pai
Patch provides the ability for a process to associate a pkey with a address range. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/systbl.h |1 + arch/powerpc/include/asm/unistd.h |4 +--- arch/powerpc/include/uapi/asm/unistd.h |1 + 3 files changed, 3 insertions(+), 3

[RFC v5 21/38] powerpc: implementation for arch_override_mprotect_pkey()

2017-07-05 Thread Ram Pai
arch independent code calls arch_override_mprotect_pkey() to return a pkey that best matches the requested protection. This patch provides the implementation. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/pkeys.h | 10 ++- arch/powerpc/mm/pkeys.c | 47

[RFC v5 22/38] powerpc: map vma key-protection bits to pte key bits.

2017-07-05 Thread Ram Pai
map the pkey bits in the pte from the key protection bits of the vma. The pte bits used for pkey are 3,4,5,6 and 57. The first four bits are the same four bits that were freed up initially in this patch series. remember? :-) Without those four bits this patch would'nt be possible. Signed-off-by:

[RFC v5 19/38] powerpc: introduce execute-only pkey

2017-07-05 Thread Ram Pai
This patch provides the implementation of execute-only pkey. The architecture-independent expects the ability to create and manage a special key which has execute-only permission. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/book3s/64/mmu.h |1 + arch/powerpc/include/asm/pkeys.h

[RFC v5 16/38] powerpc: implementation for arch_set_user_pkey_access()

2017-07-05 Thread Ram Pai
This patch provides the detailed implementation for a user to allocate a key and enable it in the hardware. It provides the plumbing, but it cannot be used yet till the system call is implemented. The next patch will do so. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/pkeys.h |

[RFC v5 12/38] mm: ability to disable execute permission on a key at creation

2017-07-05 Thread Ram Pai
Currently sys_pkey_create() provides the ability to disable read and write permission on the key, at creation. powerpc has the hardware support to disable execute on a pkey as well.This patch enhances the interface to let disable execute at key creation time. x86 does not allow this. Henc

[RFC v5 18/38] powerpc: store and restore the pkey state across context switches

2017-07-05 Thread Ram Pai
Store and restore the AMR, IAMR and UMOR register state of the task before scheduling out and after scheduling in, respectively. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/processor.h |5 + arch/powerpc/kernel/process.c| 18 ++ 2 files changed, 23 inser

[RFC v5 17/38] powerpc: sys_pkey_alloc() and sys_pkey_free() system calls

2017-07-05 Thread Ram Pai
Finally this patch provides the ability for a process to allocate and free a protection key. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/systbl.h |2 ++ arch/powerpc/include/asm/unistd.h |4 +--- arch/powerpc/include/uapi/asm/unistd.h |2 ++ 3 files changed, 5 inser

[RFC v5 11/38] mm: introduce an additional vma bit for powerpc pkey

2017-07-05 Thread Ram Pai
Currently there are only 4bits in the vma flags to support 16 keys on x86. powerpc supports 32 keys, which needs 5bits. This patch introduces an addition bit in the vma flags. Signed-off-by: Ram Pai --- fs/proc/task_mmu.c |6 +- include/linux/mm.h | 18 +- 2 files chan

[RFC v5 15/38] powerpc: helper function to read,write AMR,IAMR,UAMOR registers

2017-07-05 Thread Ram Pai
Implements helper functions to read and write the key related registers; AMR, IAMR, UAMOR. AMR register tracks the read,write permission of a key IAMR register tracks the execute permission of a key UAMOR register enables and disables a key Signed-off-by: Ram Pai --- arch/powerpc/include/asm/bo

[RFC v5 13/38] x86: disallow pkey creation with PKEY_DISABLE_EXECUTE

2017-07-05 Thread Ram Pai
x86 does not support disabling execute permissions on a pkey. Signed-off-by: Ram Pai --- arch/x86/kernel/fpu/xstate.c |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c index c24ac1e..d582631 100644 --- a/arch/x8

[RFC v5 09/38] powerpc: use helper functions in __hash_page_4K() for 4K PTE

2017-07-05 Thread Ram Pai
replace redundant code with helper functions pte_get_hash_gslot() and pte_set_hash_slot() Signed-off-by: Ram Pai --- arch/powerpc/mm/hash64_4k.c | 14 ++ 1 files changed, 6 insertions(+), 8 deletions(-) diff --git a/arch/powerpc/mm/hash64_4k.c b/arch/powerpc/mm/hash64_4k.c index 6

[RFC v5 06/38] powerpc: use helper functions in __hash_page_64K() for 64K PTE

2017-07-05 Thread Ram Pai
replace redundant code in __hash_page_64K() with helper functions pte_get_hash_gslot() and pte_set_hash_slot() Signed-off-by: Ram Pai --- arch/powerpc/mm/hash64_64k.c | 24 1 files changed, 4 insertions(+), 20 deletions(-) diff --git a/arch/powerpc/mm/hash64_64k.c b/a

[RFC v5 07/38] powerpc: use helper functions in __hash_page_huge() for 64K PTE

2017-07-05 Thread Ram Pai
replace redundant code in __hash_page_huge() with helper functions pte_get_hash_gslot() and pte_set_hash_slot() Signed-off-by: Ram Pai --- arch/powerpc/mm/hugetlbpage-hash64.c | 24 1 files changed, 4 insertions(+), 20 deletions(-) diff --git a/arch/powerpc/mm/hugetlb

[RFC v5 08/38] powerpc: use helper functions in __hash_page_4K() for 64K PTE

2017-07-05 Thread Ram Pai
replace redundant code in __hash_page_4K() with helper functions pte_get_hash_gslot() and pte_set_hash_slot() Signed-off-by: Ram Pai --- arch/powerpc/mm/hash64_64k.c | 34 +- 1 files changed, 9 insertions(+), 25 deletions(-) diff --git a/arch/powerpc/mm/hash64_

[RFC v5 10/38] powerpc: use helper functions in flush_hash_page()

2017-07-05 Thread Ram Pai
replace redundant code in flush_hash_page() with helper function pte_get_hash_gslot(). Signed-off-by: Ram Pai --- arch/powerpc/mm/hash_utils_64.c | 13 - 1 files changed, 4 insertions(+), 9 deletions(-) diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c

[RFC v5 04/38] powerpc: introduce pte_get_hash_gslot() helper

2017-07-05 Thread Ram Pai
Introduce pte_get_hash_gslot()() which returns the slot number of the HPTE in the global hash table. This function will come in handy as we work towards re-arranging the PTE bits in the later patches. Signed-off-by: Ram Pai --- arch/powerpc/include/asm/book3s/64/hash.h |3 +++ arch/powerpc/

[RFC v5 05/38] powerpc: capture the PTE format changes in the dump pte report

2017-07-05 Thread Ram Pai
The H_PAGE_F_SECOND,H_PAGE_F_GIX are not in the 64K main-PTE. capture these changes in the dump pte report. Signed-off-by: Ram Pai --- arch/powerpc/mm/dump_linuxpagetables.c |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/arch/powerpc/mm/dump_linuxpagetables.c b/arch/

[RFC v5 03/38] powerpc: introduce pte_set_hash_slot() helper

2017-07-05 Thread Ram Pai
Introduce pte_set_hash_slot().It sets the (H_PAGE_F_SECOND|H_PAGE_F_GIX) bits at the appropriate location in the PTE of 4K PTE. For 64K PTE, it sets the bits in the second part of the PTE. Though the implementation for the former just needs the slot parameter, it does tak

[RFC v5 02/38] powerpc: Free up four 64K PTE bits in 64K backed HPTE pages

2017-07-05 Thread Ram Pai
Rearrange 64K PTE bits to free up bits 3, 4, 5 and 6 in the 64K backed HPTE pages. This along with the earlier patch will entirely free up the four bits from 64K PTE. The bit numbers are big-endian as defined in the ISA3.0 This patch does the following change to 64K PTE backed by 64K H

[RFC v5 01/38] powerpc: Free up four 64K PTE bits in 4K backed HPTE pages

2017-07-05 Thread Ram Pai
Rearrange 64K PTE bits to free up bits 3, 4, 5 and 6, in the 4K backed HPTE pages.These bits continue to be used for 64K backed HPTE pages in this patch, but will be freed up in the next patch. The bit numbers are big-endian as defined in the ISA3.0 The patch does the following change to t

Re: [PATCH v2 00/53] Get rid of Docbook

2017-07-05 Thread Jim Davis
On Fri, Jun 16, 2017 at 7:03 AM, Markus Heiser wrote: > > docproc and some lines in the Makefile & .gitignore > > ./scripts/docproc.c > ./scripts/.docproc.cmd > ./scripts/Makefile > ./scripts/.gitignore With 4.12, running make xmldocs (or any other working target) and then "make cleandocs; git c

[PATCH 1/1] docs: nfsroot: Document that nfsvers=2 is the default

2017-07-05 Thread Sakari Ailus
Nfsroot uses nfsvers=2 by default (as in fs/nfs/nfsroot.c), unlike is specified in a modern nfs man page. Document this. Signed-off-by: Sakari Ailus --- Hi all, I just figured out that NFS v2 is the default version when mounting root over NFS. It'd be nice to tell in documentation this is actual

Re: [PATCH v3 1/3] rtmutex: update rt-mutex-design

2017-07-05 Thread Alex Shi
Hi Steven, Thanks a lot for detailed review. Every suggestion were token except one need extra review: the 'Waking up in loop'. Is this OK or need more further change? BTW, I didn't add you on Reviewers, since you are author already. :) Best regards Alex On 07/04/2017 02:49 AM, Steven Rostedt

Re: [PATCH] Docs: add 'lintdocs' target with basic sanity checks

2017-07-05 Thread Markus Heiser
> Am 05.07.2017 um 23:14 schrieb Jim Davis : > > On Tue, Jul 4, 2017 at 12:39 AM, Markus Heiser > wrote: >> From: Markus Heiser >> >> The 'lintdocs' produces no output. The input is only parsed and checked for >> consistency. This is useful for basic sanity checks [1]. > > Is this meant to ap

Re: [PATCH v2 04/26] pwm.txt: standardize document format

2017-07-05 Thread Thierry Reding
On Sat, Jun 17, 2017 at 12:26:44PM -0300, Mauro Carvalho Chehab wrote: > Each text file under Documentation follows a different > format. Some doesn't even have titles! > > Change its representation to follow the adopted standard, > using ReST markups for it to be parseable by Sphinx: > > - mark