[RFC v2 0/6] x86: dynamic indirect branch promotion

2018-12-30 Thread Nadav Amit
econfigure the branches whenever a new target is found. However, I do not know at this time how to do learning efficiently, without making learning much more expensive. [1] https://lore.kernel.org/patchwork/cover/1001332/ Nadav Amit (6): x86: introduce kernel restartable sequence objto

[RFC v2 3/6] x86: patch indirect branch promotion

2018-12-30 Thread Nadav Amit
To perform indirect branch promotion, we need to find all the locations and patch them, while ignore various code sections (e.g., init, alternatives). Using a GCC plugin allows us to do so. It is also possible to add on top of this plugin and opt-in/out mechanism. Signed-off-by: Nadav Amit

[RFC v2 6/6] x86: outline optpoline

2018-12-30 Thread Nadav Amit
, and continue execution from there. The current version does not reclaim memory if an entire page of outline optpoline blocks is released (e.g., due to module removal). There are various additional optimizations that are possible to reduce the memory consumption of each optpoline. Signed-off-by: Nadav

[RFC v2 4/6] x86: interface for accessing indirect branch locations

2018-12-30 Thread Nadav Amit
Adding a C interface to access the locations of indirect branches. To be used for dynamic patching. Signed-off-by: Nadav Amit --- arch/x86/include/asm/sections.h | 2 ++ include/linux/module.h | 9 + kernel/module.c | 8 3 files changed, 19 insertions

[RFC v2 5/6] x86: learning and patching indirect branch targets

2018-12-30 Thread Nadav Amit
branches are set back into learning mode to see whether the targets have changed. The current policy might be too aggressive. Signed-off-by: Nadav Amit --- arch/x86/kernel/nospec-branch.c | 992 include/linux/cpuhotplug.h | 1 + 2 files changed, 993 insertions

Re: [PATCH 03/12] __wr_after_init: generic header

2018-12-21 Thread Nadav Amit
> On Dec 19, 2018, at 1:33 PM, Igor Stoppa wrote: > > +static inline void *wr_memset(void *p, int c, __kernel_size_t len) > +{ > + return __wr_op((unsigned long)p, (unsigned long)c, len, WR_MEMSET); > +} What do you think about doing something like: #define __wr

Re: [PATCH v3 00/12] x86, kbuild: revert macrofying inline assembly code

2018-12-18 Thread Nadav Amit
> On Dec 17, 2018, at 8:03 AM, Masahiro Yamada > wrote: > > This series reverts the in-kernel workarounds for inlining issues. > > The commit description of 77b0bf55bc67 mentioned > "We also hope that GCC will eventually get fixed,..." > > Now, GCC provides a solution. > >

Re: [PATCH] kbuild, x86: revert macros in extended asm workarounds

2018-12-18 Thread Nadav Amit
> On Dec 17, 2018, at 1:16 AM, Sedat Dilek wrote: > > On Thu, Dec 13, 2018 at 10:19 AM Masahiro Yamada > wrote: >> Revert the following commits: >> >> - 5bdcd510c2ac9efaf55c4cbd8d46421d8e2320cd >> ("x86/jump-labels: Macrofy inline assembly code to work around GCC inlining >> bugs") >> >> -

Re: [PATCH] kbuild, x86: revert macros in extended asm workarounds

2018-12-16 Thread Nadav Amit
> On Dec 16, 2018, at 2:00 AM, Borislav Petkov wrote: > > On Sun, Dec 16, 2018 at 02:33:39AM +0000, Nadav Amit wrote: >> In general, I think that from the start it was clear that the motivation for >> the patch-set is not just performance and also better code. For exampl

Re: [PATCH v2] x86, kbuild: revert macrofying inline assembly code

2018-12-15 Thread Nadav Amit
> On Dec 15, 2018, at 6:50 PM, Masahiro Yamada > wrote: > > Revert the following 9 commits: > > [1] 5bdcd510c2ac ("x86/jump-labels: Macrofy inline assembly code to >work around GCC inlining bugs") > >This was partially reverted because it made good cleanups >irrespective of the

Re: [PATCH] kbuild, x86: revert macros in extended asm workarounds

2018-12-15 Thread Nadav Amit
> On Dec 14, 2018, at 4:51 PM, Masahiro Yamada > wrote: > > Hi Peter, > > On Thu, Dec 13, 2018 at 7:53 PM Peter Zijlstra wrote: >> On Thu, Dec 13, 2018 at 06:17:41PM +0900, Masahiro Yamada wrote: >>> Revert the following commits: >>> >>> - 5bdcd510c2ac9efaf55c4cbd8d46421d8e2320cd >>>

Re: [PATCH v2 2/4] modules: Add new special vfree flags

2018-12-13 Thread Nadav Amit
> On Dec 13, 2018, at 11:02 AM, Edgecombe, Rick P > wrote: > > On Wed, 2018-12-12 at 23:40 +, Nadav Amit wrote: >>> On Dec 11, 2018, at 4:03 PM, Rick Edgecombe >>> wrote: >>> >>> Add new flags for handling freeing of special permissioned me

Re: [PATCH v7 13/14] module: Do not set nx for module memory before freeing

2018-12-13 Thread Nadav Amit
> On Dec 13, 2018, at 6:10 AM, Jessica Yu wrote: > > +++ Nadav Amit [04/12/18 17:34 -0800]: >> When module memory is about to be freed, there is no apparent reason to >> make it (and its data) executable, but that's exactly what is done >> today. This is n

Re: [PATCH v2 2/4] modules: Add new special vfree flags

2018-12-12 Thread Nadav Amit
> On Dec 11, 2018, at 4:03 PM, Rick Edgecombe > wrote: > > Add new flags for handling freeing of special permissioned memory in vmalloc, > and remove places where the handling was done in module.c. > > This will enable this flag for all architectures. > > Signed-off-by: Rick Edgecombe > ---

Re: [PATCH v2 0/4] Static calls

2018-12-12 Thread Nadav Amit
> On Dec 12, 2018, at 1:36 PM, Edward Cree wrote: > > On 12/12/18 21:15, Nadav Amit wrote: >>> On Dec 12, 2018, at 10:33 AM, Edward Cree wrote: >>> >>> AIUI the outline version uses a tail-call (i.e. jmpq *target) rather than an >>> additional cal

Re: [PATCH v2 4/4] x86/vmalloc: Add TLB efficient x86 arch_vunmap

2018-12-12 Thread Nadav Amit
> On Dec 12, 2018, at 1:05 PM, Edgecombe, Rick P > wrote: > > On Wed, 2018-12-12 at 06:30 +, Nadav Amit wrote: >>> On Dec 11, 2018, at 4:03 PM, Rick Edgecombe >>> wrote: >>> >>> This adds a more efficient x86 architecture specific implement

Re: [PATCH v2 0/4] Static calls

2018-12-12 Thread Nadav Amit
> On Dec 12, 2018, at 10:33 AM, Edward Cree wrote: > > On 12/12/18 18:14, Nadav Amit wrote: >> Second, (2i) is not very intuitive for me. Using the out-of-line static >> calls seems to me as less performant than the inline (potentially, I didn’t >> check). >>

Re: [PATCH v2 0/4] Static calls

2018-12-12 Thread Nadav Amit
> On Dec 12, 2018, at 9:11 AM, Edward Cree wrote: > > On 12/12/18 05:59, Nadav Amit wrote: >> Thanks for cc’ing me. (I didn’t know about the other patch-sets.) > Well in my case, that's because I haven't posted any yet. (Will follow up > shortly with what I curren

Re: [PATCH v2 4/4] x86/vmalloc: Add TLB efficient x86 arch_vunmap

2018-12-11 Thread Nadav Amit
> On Dec 11, 2018, at 4:03 PM, Rick Edgecombe > wrote: > > This adds a more efficient x86 architecture specific implementation of > arch_vunmap, that can free any type of special permission memory with only 1 > TLB > flush. > > In order to enable this, _set_pages_p and _set_pages_np are made

Re: [PATCH v2 0/4] Static calls

2018-12-11 Thread Nadav Amit
> On Dec 11, 2018, at 10:05 AM, Josh Poimboeuf wrote: > > On Fri, Dec 07, 2018 at 04:06:32PM +, Edward Cree wrote: >> Sorry if this has been pointed out before (it's a very long thread), but >> in the out-of-line implementation, it appears that static_call_update() >> never alters key->func.

Re: Should this_cpu_read() be volatile?

2018-12-11 Thread Nadav Amit
> On Dec 10, 2018, at 12:55 AM, Peter Zijlstra wrote: > > On Sun, Dec 09, 2018 at 04:57:43PM -0800, Nadav Amit wrote: >>> On Dec 8, 2018, at 2:52 AM, Peter Zijlstra wrote: > >>> My patch proposed here: >>> >>> https://marc.info/?l=linux-mm=1544

Re: [PATCH v7 00/14] x86/alternative: text_poke() enhancements

2018-12-09 Thread Nadav Amit
> On Dec 6, 2018, at 2:03 AM, Peter Zijlstra wrote: > > On Tue, Dec 04, 2018 at 05:33:54PM -0800, Nadav Amit wrote: >> Which leads me to (b) - the patch-set is big "enough" IMHO. Indeed, >> there are open security issues in the kernel when it comes to W^X. But &

Re: Should this_cpu_read() be volatile?

2018-12-09 Thread Nadav Amit
> On Dec 8, 2018, at 2:52 AM, Peter Zijlstra wrote: > > On Fri, Dec 07, 2018 at 04:40:52PM -0800, Nadav Amit wrote: > >>> I'm actually having difficulty finding the this_cpu_read() in any of the >>> functions you mention, so I cannot make any concrete sugge

Re: [PATCH 3.16 226/328] x86/mm: Use WRITE_ONCE() when setting PTEs

2018-12-09 Thread Nadav Amit
t me know. > > ------ > > From: Nadav Amit > > commit 9bc4f28af75a91aea0ae383f50b0a430c4509303 upstream. > > When page-table entries are set, the compiler might optimize their > assignment by using multiple instructions to set the PTE. This might > turn into a security hazard if the us

Should this_cpu_read() be volatile?

2018-12-07 Thread Nadav Amit
[Resend, changing title & adding lkml and some others ] On Dec 7, 2018, at 3:12 PM, Nadav Amit wrote: [ We can start a new thread, since I have the tendency to hijack threads. ] > On Dec 7, 2018, at 12:45 AM, Peter Zijlstra wrote: > > On Thu, Dec 06, 2018 at 09:26:24AM -080

Should this_cpu_read() be volatile?

2018-12-07 Thread Nadav Amit
[Resend, changing title & adding lkml and some others ] On Dec 7, 2018, at 3:12 PM, Nadav Amit wrote: [ We can start a new thread, since I have the tendency to hijack threads. ] > On Dec 7, 2018, at 12:45 AM, Peter Zijlstra wrote: > > On Thu, Dec 06, 2018 at 09:26:24AM -080

Re: [PATCH 1/2] vmalloc: New flag for flush before releasing pages

2018-12-06 Thread Nadav Amit
> On Dec 6, 2018, at 12:17 PM, Andy Lutomirski wrote: > > On Thu, Dec 6, 2018 at 11:39 AM Nadav Amit wrote: >>> On Dec 6, 2018, at 11:19 AM, Andy Lutomirski wrote: >>> >>> On Thu, Dec 6, 2018 at 11:01 AM Tycho Andersen wrote: >>>> On Thu, D

Re: [PATCH v7 13/14] module: Do not set nx for module memory before freeing

2018-12-06 Thread Nadav Amit
> On Dec 6, 2018, at 12:21 PM, Edgecombe, Rick P > wrote: > > On Thu, 2018-12-06 at 10:52 -0800, Andy Lutomirski wrote: >> On Wed, Dec 5, 2018 at 12:52 AM Nadav Amit wrote: >>> When module memory is about to be freed, there is no apparent reason to >>&g

Re: [PATCH v7 13/14] module: Do not set nx for module memory before freeing

2018-12-06 Thread Nadav Amit
> On Dec 6, 2018, at 12:21 PM, Edgecombe, Rick P > wrote: > > On Thu, 2018-12-06 at 10:52 -0800, Andy Lutomirski wrote: >> On Wed, Dec 5, 2018 at 12:52 AM Nadav Amit wrote: >>> When module memory is about to be freed, there is no apparent reason to >>&g

Re: [PATCH 1/2] vmalloc: New flag for flush before releasing pages

2018-12-06 Thread Nadav Amit
> On Dec 6, 2018, at 11:19 AM, Andy Lutomirski wrote: > > On Thu, Dec 6, 2018 at 11:01 AM Tycho Andersen wrote: >> On Thu, Dec 06, 2018 at 10:53:50AM -0800, Andy Lutomirski wrote: If we are going to unmap the linear alias, why not do it at vmalloc() time rather than vfree() time? >>>

Re: [PATCH v7 13/14] module: Do not set nx for module memory before freeing

2018-12-06 Thread Nadav Amit
> On Dec 6, 2018, at 10:52 AM, Andy Lutomirski wrote: > > On Wed, Dec 5, 2018 at 12:52 AM Nadav Amit wrote: >> When module memory is about to be freed, there is no apparent reason to >> make it (and its data) executable, but that's exactly what is done >> t

Re: [PATCH v7 13/14] module: Do not set nx for module memory before freeing

2018-12-06 Thread Nadav Amit
> On Dec 6, 2018, at 10:52 AM, Andy Lutomirski wrote: > > On Wed, Dec 5, 2018 at 12:52 AM Nadav Amit wrote: >> When module memory is about to be freed, there is no apparent reason to >> make it (and its data) executable, but that's exactly what is done >> t

Re: [RFC] avoid indirect calls for DMA direct mappings

2018-12-06 Thread Nadav Amit
> On Dec 6, 2018, at 9:43 AM, Jesper Dangaard Brouer wrote: > > On Thu, 6 Dec 2018 07:37:19 -0800 > Christoph Hellwig wrote: > >> Hi all, >> >> a while ago Jesper reported major performance regressions due to the >> spectre v2 mitigations in his XDP forwarding workloads. A large part >> of

Re: [PATCH v7 13/14] module: Do not set nx for module memory before freeing

2018-12-06 Thread Nadav Amit
> On Dec 6, 2018, at 1:57 AM, Peter Zijlstra wrote: > > On Tue, Dec 04, 2018 at 05:34:07PM -0800, Nadav Amit wrote: > >> So let's remove it. Andy suggested that the changes of the PTEs can be >> avoided (excluding the direct-mapping alias), which is true. However, &g

Re: [PATCH v7 13/14] module: Do not set nx for module memory before freeing

2018-12-06 Thread Nadav Amit
> On Dec 6, 2018, at 1:57 AM, Peter Zijlstra wrote: > > On Tue, Dec 04, 2018 at 05:34:07PM -0800, Nadav Amit wrote: > >> So let's remove it. Andy suggested that the changes of the PTEs can be >> avoided (excluding the direct-mapping alias), which is true. However, &g

Re: [PATCH v7 08/14] x86/ftrace: Use text_poke_*() infrastructure

2018-12-05 Thread Nadav Amit
> On Dec 4, 2018, at 5:34 PM, Nadav Amit wrote: > > A following patch is going to make module allocated memory > non-executable. This requires to modify ftrace and make the memory > executable again after it is configured. > > In addition, this patch makes ftrace use th

Re: [PATCH v7 08/14] x86/ftrace: Use text_poke_*() infrastructure

2018-12-05 Thread Nadav Amit
> On Dec 4, 2018, at 5:34 PM, Nadav Amit wrote: > > A following patch is going to make module allocated memory > non-executable. This requires to modify ftrace and make the memory > executable again after it is configured. > > In addition, this patch makes ftrace use th

[PATCH v7 00/14] x86/alternative: text_poke() enhancements

2018-12-05 Thread Nadav Amit
in poking_init [masami] Andy Lutomirski (1): x86/mm: temporary mm struct Nadav Amit (13): Fix "x86/alternatives: Lockdep-enforce text_mutex in text_poke*()" x86/jump_label: Use text_poke_early() during early init fork: provide a function for copying init_mm x86/altern

[PATCH v7 00/14] x86/alternative: text_poke() enhancements

2018-12-05 Thread Nadav Amit
in poking_init [masami] Andy Lutomirski (1): x86/mm: temporary mm struct Nadav Amit (13): Fix "x86/alternatives: Lockdep-enforce text_mutex in text_poke*()" x86/jump_label: Use text_poke_early() during early init fork: provide a function for copying init_mm x86/altern

[PATCH v7 07/14] x86/kgdb: avoid redundant comparison of patched code

2018-12-05 Thread Nadav Amit
text_poke() already ensures that the written value is the correct one and fails if that is not the case. There is no need for an additional comparison. Remove it. Signed-off-by: Nadav Amit --- arch/x86/kernel/kgdb.c | 14 +- 1 file changed, 1 insertion(+), 13 deletions(-) diff

[PATCH v7 02/14] x86/jump_label: Use text_poke_early() during early init

2018-12-05 Thread Nadav Amit
that would set a temporary mm for patching, which is initialized after some static-keys are enabled/disabled. Cc: Andy Lutomirski Cc: Kees Cook Cc: Dave Hansen Cc: Masami Hiramatsu Cc: Peter Zijlstra Signed-off-by: Nadav Amit --- arch/x86/kernel/jump_label.c | 7 ++- 1 file changed, 6 insertions

[PATCH v7 08/14] x86/ftrace: Use text_poke_*() infrastructure

2018-12-05 Thread Nadav Amit
. This provides the advantages of having slightly "safer" code patching and avoiding races with module removal or other mechanisms that patch the kernel code. Cc: Steven Rostedt Signed-off-by: Nadav Amit --- arch/x86/kernel/ftrace.c | 74 +--- 1 file c

[PATCH v7 03/14] x86/mm: temporary mm struct

2018-12-05 Thread Nadav Amit
: Peter Zijlstra Cc: Dave Hansen Reviewed-by: Masami Hiramatsu Tested-by: Masami Hiramatsu Signed-off-by: Andy Lutomirski Signed-off-by: Nadav Amit --- arch/x86/include/asm/mmu_context.h | 32 ++ 1 file changed, 32 insertions(+) diff --git a/arch/x86/include/asm

[PATCH v7 07/14] x86/kgdb: avoid redundant comparison of patched code

2018-12-05 Thread Nadav Amit
text_poke() already ensures that the written value is the correct one and fails if that is not the case. There is no need for an additional comparison. Remove it. Signed-off-by: Nadav Amit --- arch/x86/kernel/kgdb.c | 14 +- 1 file changed, 1 insertion(+), 13 deletions(-) diff

[PATCH v7 02/14] x86/jump_label: Use text_poke_early() during early init

2018-12-05 Thread Nadav Amit
that would set a temporary mm for patching, which is initialized after some static-keys are enabled/disabled. Cc: Andy Lutomirski Cc: Kees Cook Cc: Dave Hansen Cc: Masami Hiramatsu Cc: Peter Zijlstra Signed-off-by: Nadav Amit --- arch/x86/kernel/jump_label.c | 7 ++- 1 file changed, 6 insertions

[PATCH v7 08/14] x86/ftrace: Use text_poke_*() infrastructure

2018-12-05 Thread Nadav Amit
. This provides the advantages of having slightly "safer" code patching and avoiding races with module removal or other mechanisms that patch the kernel code. Cc: Steven Rostedt Signed-off-by: Nadav Amit --- arch/x86/kernel/ftrace.c | 74 +--- 1 file c

[PATCH v7 03/14] x86/mm: temporary mm struct

2018-12-05 Thread Nadav Amit
: Peter Zijlstra Cc: Dave Hansen Reviewed-by: Masami Hiramatsu Tested-by: Masami Hiramatsu Signed-off-by: Andy Lutomirski Signed-off-by: Nadav Amit --- arch/x86/include/asm/mmu_context.h | 32 ++ 1 file changed, 32 insertions(+) diff --git a/arch/x86/include/asm

[PATCH v7 05/14] x86/alternative: initializing temporary mm for patching

2018-12-05 Thread Nadav Amit
Hiramatsu Tested-by: Masami Hiramatsu Suggested-by: Andy Lutomirski Signed-off-by: Nadav Amit --- arch/x86/include/asm/pgtable.h | 3 +++ arch/x86/include/asm/text-patching.h | 2 ++ arch/x86/kernel/alternative.c| 3 +++ arch/x86/mm/init_64.c| 35

[PATCH v7 09/14] x86/kprobes: Instruction pages initialization enhancements

2018-12-05 Thread Nadav Amit
executable pages from modifications using nested page-tables. This would allow us to ensure the executable has not changed between allocation and its write-protection. While at it, do some small cleanup of what appears to be unnecessary masking. Cc: Masami Hiramatsu Signed-off-by: Nadav Amit

[PATCH v7 05/14] x86/alternative: initializing temporary mm for patching

2018-12-05 Thread Nadav Amit
Hiramatsu Tested-by: Masami Hiramatsu Suggested-by: Andy Lutomirski Signed-off-by: Nadav Amit --- arch/x86/include/asm/pgtable.h | 3 +++ arch/x86/include/asm/text-patching.h | 2 ++ arch/x86/kernel/alternative.c| 3 +++ arch/x86/mm/init_64.c| 35

[PATCH v7 09/14] x86/kprobes: Instruction pages initialization enhancements

2018-12-05 Thread Nadav Amit
executable pages from modifications using nested page-tables. This would allow us to ensure the executable has not changed between allocation and its write-protection. While at it, do some small cleanup of what appears to be unnecessary masking. Cc: Masami Hiramatsu Signed-off-by: Nadav Amit

[PATCH v7 04/14] fork: provide a function for copying init_mm

2018-12-05 Thread Nadav Amit
Provide a function for copying init_mm. This function will be later used for setting a temporary mm. Cc: Andy Lutomirski Cc: Kees Cook Cc: Peter Zijlstra Cc: Dave Hansen Reviewed-by: Masami Hiramatsu Tested-by: Masami Hiramatsu Signed-off-by: Nadav Amit --- include/linux/sched/task.h | 1

[PATCH v7 06/14] x86/alternative: use temporary mm for text poking

2018-12-05 Thread Nadav Amit
not conservative enough when mapping pages, as it always tries to map 2 pages, even when a single one is sufficient. So try to be more conservative, and do not map more than needed. Cc: Andy Lutomirski Cc: Kees Cook Cc: Peter Zijlstra Cc: Dave Hansen Cc: Masami Hiramatsu Signed-off-by: Nadav Amit

[PATCH v7 01/14] Fix "x86/alternatives: Lockdep-enforce text_mutex in text_poke*()"

2018-12-05 Thread Nadav Amit
orce text_mutex in text_poke*()") Suggested-by: Peter Zijlstra Acked-by: Jiri Kosina Signed-off-by: Nadav Amit --- arch/x86/include/asm/text-patching.h | 1 + arch/x86/kernel/alternative.c| 52 arch/x86/kernel/kgdb.c | 11 +++--- 3 files changed,

[PATCH v7 01/14] Fix "x86/alternatives: Lockdep-enforce text_mutex in text_poke*()"

2018-12-05 Thread Nadav Amit
orce text_mutex in text_poke*()") Suggested-by: Peter Zijlstra Acked-by: Jiri Kosina Signed-off-by: Nadav Amit --- arch/x86/include/asm/text-patching.h | 1 + arch/x86/kernel/alternative.c| 52 arch/x86/kernel/kgdb.c | 11 +++--- 3 files changed,

[PATCH v7 04/14] fork: provide a function for copying init_mm

2018-12-05 Thread Nadav Amit
Provide a function for copying init_mm. This function will be later used for setting a temporary mm. Cc: Andy Lutomirski Cc: Kees Cook Cc: Peter Zijlstra Cc: Dave Hansen Reviewed-by: Masami Hiramatsu Tested-by: Masami Hiramatsu Signed-off-by: Nadav Amit --- include/linux/sched/task.h | 1

[PATCH v7 06/14] x86/alternative: use temporary mm for text poking

2018-12-05 Thread Nadav Amit
not conservative enough when mapping pages, as it always tries to map 2 pages, even when a single one is sufficient. So try to be more conservative, and do not map more than needed. Cc: Andy Lutomirski Cc: Kees Cook Cc: Peter Zijlstra Cc: Dave Hansen Cc: Masami Hiramatsu Signed-off-by: Nadav Amit

[PATCH v7 11/14] x86/jump-label: remove support for custom poker

2018-12-05 Thread Nadav Amit
Signed-off-by: Nadav Amit --- arch/x86/kernel/jump_label.c | 24 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c index ed5fe274a7d8..994c13e2867d 100644 --- a/arch/x86/kernel/jump_label.c +++ b/arch/x86

[PATCH v7 12/14] x86/alternative: Remove the return value of text_poke_*()

2018-12-05 Thread Nadav Amit
The return value of text_poke_early() and text_poke_bp() is useless. Remove it. Cc: Andy Lutomirski Cc: Kees Cook Cc: Peter Zijlstra Cc: Dave Hansen Cc: Masami Hiramatsu Signed-off-by: Nadav Amit --- arch/x86/include/asm/text-patching.h | 4 ++-- arch/x86/kernel/alternative.c| 11

[PATCH v7 14/14] module: Prevent module removal racing with text_poke()

2018-12-05 Thread Nadav Amit
It seems dangerous to allow code modifications to take place concurrently with module unloading. So take the text_mutex while the memory of the module is freed. Signed-off-by: Nadav Amit --- kernel/module.c | 5 + 1 file changed, 5 insertions(+) diff --git a/kernel/module.c b/kernel

[PATCH v7 13/14] module: Do not set nx for module memory before freeing

2018-12-05 Thread Nadav Amit
be avoided (excluding the direct-mapping alias), which is true. However, in x86 it requires some cleanup of the contiguous page allocator, which is outside of the scope of this patch-set. Cc: Rick P Edgecombe Cc: Will Deacon Cc: Andy Lutomirski Signed-off-by: Nadav Amit --- kernel/module.c | 35

[PATCH v7 11/14] x86/jump-label: remove support for custom poker

2018-12-05 Thread Nadav Amit
Signed-off-by: Nadav Amit --- arch/x86/kernel/jump_label.c | 24 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c index ed5fe274a7d8..994c13e2867d 100644 --- a/arch/x86/kernel/jump_label.c +++ b/arch/x86

[PATCH v7 12/14] x86/alternative: Remove the return value of text_poke_*()

2018-12-05 Thread Nadav Amit
The return value of text_poke_early() and text_poke_bp() is useless. Remove it. Cc: Andy Lutomirski Cc: Kees Cook Cc: Peter Zijlstra Cc: Dave Hansen Cc: Masami Hiramatsu Signed-off-by: Nadav Amit --- arch/x86/include/asm/text-patching.h | 4 ++-- arch/x86/kernel/alternative.c| 11

[PATCH v7 14/14] module: Prevent module removal racing with text_poke()

2018-12-05 Thread Nadav Amit
It seems dangerous to allow code modifications to take place concurrently with module unloading. So take the text_mutex while the memory of the module is freed. Signed-off-by: Nadav Amit --- kernel/module.c | 5 + 1 file changed, 5 insertions(+) diff --git a/kernel/module.c b/kernel

[PATCH v7 13/14] module: Do not set nx for module memory before freeing

2018-12-05 Thread Nadav Amit
be avoided (excluding the direct-mapping alias), which is true. However, in x86 it requires some cleanup of the contiguous page allocator, which is outside of the scope of this patch-set. Cc: Rick P Edgecombe Cc: Will Deacon Cc: Andy Lutomirski Signed-off-by: Nadav Amit --- kernel/module.c | 35

[PATCH v7 10/14] x86: avoid W^X being broken during modules loading

2018-12-05 Thread Nadav Amit
protection. Cc: Kees Cook Cc: Peter Zijlstra Cc: Dave Hansen Cc: Masami Hiramatsu Suggested-by: Thomas Gleixner Suggested-by: Andy Lutomirski Signed-off-by: Nadav Amit --- arch/x86/kernel/alternative.c | 28 +--- arch/x86/kernel/module.c | 2 +- include/linux

[PATCH v7 10/14] x86: avoid W^X being broken during modules loading

2018-12-05 Thread Nadav Amit
protection. Cc: Kees Cook Cc: Peter Zijlstra Cc: Dave Hansen Cc: Masami Hiramatsu Suggested-by: Thomas Gleixner Suggested-by: Andy Lutomirski Signed-off-by: Nadav Amit --- arch/x86/kernel/alternative.c | 28 +--- arch/x86/kernel/module.c | 2 +- include/linux

Re: [RFC PATCH 0/5] x86: dynamic indirect call promotion

2018-11-30 Thread Nadav Amit
> On Nov 29, 2018, at 7:19 AM, Josh Poimboeuf wrote: > > On Wed, Nov 28, 2018 at 10:06:52PM -0800, Andy Lutomirski wrote: >> On Wed, Nov 28, 2018 at 7:24 PM Andy Lutomirski wrote: >>> On Nov 28, 2018, at 6:06 PM, Nadav Amit wrote: >>> >>>>> On

Re: [RFC PATCH 0/5] x86: dynamic indirect call promotion

2018-11-30 Thread Nadav Amit
> On Nov 29, 2018, at 7:19 AM, Josh Poimboeuf wrote: > > On Wed, Nov 28, 2018 at 10:06:52PM -0800, Andy Lutomirski wrote: >> On Wed, Nov 28, 2018 at 7:24 PM Andy Lutomirski wrote: >>> On Nov 28, 2018, at 6:06 PM, Nadav Amit wrote: >>> >>>>> On

Re: [PATCH 1/2] Makefile: Fix distcc compilation with x86 macros

2018-11-30 Thread Nadav Amit
> On Nov 29, 2018, at 8:43 AM, Logan Gunthorpe wrote: > > > > On 2018-11-28 6:31 p.m., Nadav Amit wrote: >>> On Nov 28, 2018, at 4:49 PM, Logan Gunthorpe wrote: >>> >>> >>> >>> On 2018-11-28 5:38 p.m., Nadav Amit wrote: >>

Re: [PATCH 1/2] Makefile: Fix distcc compilation with x86 macros

2018-11-30 Thread Nadav Amit
> On Nov 29, 2018, at 8:43 AM, Logan Gunthorpe wrote: > > > > On 2018-11-28 6:31 p.m., Nadav Amit wrote: >>> On Nov 28, 2018, at 4:49 PM, Logan Gunthorpe wrote: >>> >>> >>> >>> On 2018-11-28 5:38 p.m., Nadav Amit wrote: >>

Re: [PATCH v2] x86/hyper-v: Mark TLFS structures packed

2018-11-30 Thread Nadav Amit
mization, which would break the hypervisor ABI. > > Mark the structures as packed to prevent this. Seems good to me (I made sure you remembered to set __packed for the nested structs ;-) ) If needed: Acked-by: Nadav Amit Having said that, something else is sort of strange in the T

Re: [PATCH v2] x86/hyper-v: Mark TLFS structures packed

2018-11-30 Thread Nadav Amit
mization, which would break the hypervisor ABI. > > Mark the structures as packed to prevent this. Seems good to me (I made sure you remembered to set __packed for the nested structs ;-) ) If needed: Acked-by: Nadav Amit Having said that, something else is sort of strange in the T

Re: [RFC PATCH 0/5] x86: dynamic indirect call promotion

2018-11-28 Thread Nadav Amit
> On Nov 28, 2018, at 5:40 PM, Andy Lutomirski wrote: > > On Wed, Nov 28, 2018 at 4:38 PM Josh Poimboeuf wrote: >> On Wed, Nov 28, 2018 at 07:34:52PM +0000, Nadav Amit wrote: >>>> On Nov 28, 2018, at 8:08 AM, Josh Poimboeuf wrote: >>>> >>>> O

Re: [RFC PATCH 0/5] x86: dynamic indirect call promotion

2018-11-28 Thread Nadav Amit
> On Nov 28, 2018, at 5:40 PM, Andy Lutomirski wrote: > > On Wed, Nov 28, 2018 at 4:38 PM Josh Poimboeuf wrote: >> On Wed, Nov 28, 2018 at 07:34:52PM +0000, Nadav Amit wrote: >>>> On Nov 28, 2018, at 8:08 AM, Josh Poimboeuf wrote: >>>> >>>> O

Re: [PATCH 1/2] Makefile: Fix distcc compilation with x86 macros

2018-11-28 Thread Nadav Amit
> On Nov 28, 2018, at 4:49 PM, Logan Gunthorpe wrote: > > > > On 2018-11-28 5:38 p.m., Nadav Amit wrote: >> So what’s your take? Would you think this patch is still needed? Should it >> only be enabled automatically for distcc and not for distcc-pump? > >

Re: [PATCH 1/2] Makefile: Fix distcc compilation with x86 macros

2018-11-28 Thread Nadav Amit
> On Nov 28, 2018, at 4:49 PM, Logan Gunthorpe wrote: > > > > On 2018-11-28 5:38 p.m., Nadav Amit wrote: >> So what’s your take? Would you think this patch is still needed? Should it >> only be enabled automatically for distcc and not for distcc-pump? > >

Re: [PATCH 1/2] Makefile: Fix distcc compilation with x86 macros

2018-11-28 Thread Nadav Amit
> On Nov 28, 2018, at 3:09 PM, Logan Gunthorpe wrote: > > > > On 2018-11-14 6:57 p.m., Nadav Amit wrote: >> Eventually, if you get a fix into icecc, we will need to change the >> Makefile, consider the version number and act accordingly. > > I got a fix pulled

Re: [PATCH 1/2] Makefile: Fix distcc compilation with x86 macros

2018-11-28 Thread Nadav Amit
> On Nov 28, 2018, at 3:09 PM, Logan Gunthorpe wrote: > > > > On 2018-11-14 6:57 p.m., Nadav Amit wrote: >> Eventually, if you get a fix into icecc, we will need to change the >> Makefile, consider the version number and act accordingly. > > I got a fix pulled

Re: [RFC PATCH 0/5] x86: dynamic indirect call promotion

2018-11-28 Thread Nadav Amit
> On Nov 28, 2018, at 8:08 AM, Josh Poimboeuf wrote: > > On Wed, Oct 17, 2018 at 05:54:15PM -0700, Nadav Amit wrote: >> This RFC introduces indirect call promotion in runtime, which for the >> matter of simplification (and branding) will be called here "relpolines"

Re: [RFC PATCH 0/5] x86: dynamic indirect call promotion

2018-11-28 Thread Nadav Amit
> On Nov 28, 2018, at 8:08 AM, Josh Poimboeuf wrote: > > On Wed, Oct 17, 2018 at 05:54:15PM -0700, Nadav Amit wrote: >> This RFC introduces indirect call promotion in runtime, which for the >> matter of simplification (and branding) will be called here "relpolines"

Re: [PATCH v6 08/10] x86: avoid W^X being broken during modules loading

2018-11-28 Thread Nadav Amit
> On Nov 20, 2018, at 12:35 PM, Nadav Amit wrote: > > When modules and BPF filters are loaded, there is a time window in > which some memory is both writable and executable. An attacker that has > already found another vulnerability (e.g., a dangling pointer) might be &g

Re: [PATCH v6 08/10] x86: avoid W^X being broken during modules loading

2018-11-28 Thread Nadav Amit
> On Nov 20, 2018, at 12:35 PM, Nadav Amit wrote: > > When modules and BPF filters are loaded, there is a time window in > which some memory is both writable and executable. An attacker that has > already found another vulnerability (e.g., a dangling pointer) might be &g

Re: [PATCH v2 1/4] x86/hyper-v: move synic/stimer control structures definitions to hyperv-tlfs.h

2018-11-28 Thread Nadav Amit
> On Nov 28, 2018, at 5:07 AM, Thomas Gleixner wrote: > > On Wed, 28 Nov 2018, Vitaly Kuznetsov wrote: > >> Nadav Amit writes: >> >>> On a different note: how come all of the hyper-v structs are not marked >>> with the “packed" attribute? &

Re: [PATCH v2 1/4] x86/hyper-v: move synic/stimer control structures definitions to hyperv-tlfs.h

2018-11-28 Thread Nadav Amit
> On Nov 28, 2018, at 5:07 AM, Thomas Gleixner wrote: > > On Wed, 28 Nov 2018, Vitaly Kuznetsov wrote: > >> Nadav Amit writes: >> >>> On a different note: how come all of the hyper-v structs are not marked >>> with the “packed" attribute? &

Re: [PATCH v2 1/4] x86/hyper-v: move synic/stimer control structures definitions to hyperv-tlfs.h

2018-11-27 Thread Nadav Amit
> On Nov 27, 2018, at 10:48 AM, Roman Kagan wrote: > > On Tue, Nov 27, 2018 at 02:10:49PM +0100, Vitaly Kuznetsov wrote: >> Roman Kagan writes: >>> On Mon, Nov 26, 2018 at 04:47:29PM +0100, Vitaly Kuznetsov wrote: >>> I personally tend to prefer masks over bitfields, so I'd rather do the >>>

Re: [PATCH v2 1/4] x86/hyper-v: move synic/stimer control structures definitions to hyperv-tlfs.h

2018-11-27 Thread Nadav Amit
> On Nov 27, 2018, at 10:48 AM, Roman Kagan wrote: > > On Tue, Nov 27, 2018 at 02:10:49PM +0100, Vitaly Kuznetsov wrote: >> Roman Kagan writes: >>> On Mon, Nov 26, 2018 at 04:47:29PM +0100, Vitaly Kuznetsov wrote: >>> I personally tend to prefer masks over bitfields, so I'd rather do the >>>

Re: [PATCH v6 00/10] x86/alternative: text_poke() fixes

2018-11-26 Thread Nadav Amit
> On Nov 26, 2018, at 2:32 AM, Peter Zijlstra wrote: > > On Tue, Nov 20, 2018 at 12:35:35PM -0800, Nadav Amit wrote: > >> Nadav Amit (9): >> Fix "x86/alternatives: Lockdep-enforce text_mutex in text_poke*()" >> x86/jump_label: Use text_poke_ear

Re: [PATCH v6 00/10] x86/alternative: text_poke() fixes

2018-11-26 Thread Nadav Amit
> On Nov 26, 2018, at 2:32 AM, Peter Zijlstra wrote: > > On Tue, Nov 20, 2018 at 12:35:35PM -0800, Nadav Amit wrote: > >> Nadav Amit (9): >> Fix "x86/alternatives: Lockdep-enforce text_mutex in text_poke*()" >> x86/jump_label: Use text_poke_ear

Re: Out of tree module build errors since v4.20-rc1

2018-11-21 Thread Nadav Amit
> On Nov 21, 2018, at 12:56 PM, Liam R. Howlett wrote: > > > My out of tree driver build is now reporting issues with the jump table: > > ./include/linux/jump_label.h: In function ‘jump_entry_code’: > ./include/linux/jump_label.h:153:14: error: dereferencing pointer to > incomplete type

Re: Out of tree module build errors since v4.20-rc1

2018-11-21 Thread Nadav Amit
> On Nov 21, 2018, at 12:56 PM, Liam R. Howlett wrote: > > > My out of tree driver build is now reporting issues with the jump table: > > ./include/linux/jump_label.h: In function ‘jump_entry_code’: > ./include/linux/jump_label.h:153:14: error: dereferencing pointer to > incomplete type

[PATCH v6 01/10] Fix "x86/alternatives: Lockdep-enforce text_mutex in text_poke*()"

2018-11-20 Thread Nadav Amit
orce text_mutex in text_poke*()") Suggested-by: Peter Zijlstra Acked-by: Jiri Kosina Signed-off-by: Nadav Amit --- arch/x86/include/asm/text-patching.h | 1 + arch/x86/kernel/alternative.c| 52 arch/x86/kernel/kgdb.c | 11 +++--- 3 files changed,

[PATCH v6 10/10] x86/alternative: remove the return value of text_poke_*()

2018-11-20 Thread Nadav Amit
The return value of text_poke_early() and text_poke_bp() is useless. Remove it. Cc: Andy Lutomirski Cc: Kees Cook Cc: Peter Zijlstra Cc: Dave Hansen Cc: Masami Hiramatsu Signed-off-by: Nadav Amit --- arch/x86/include/asm/text-patching.h | 4 ++-- arch/x86/kernel/alternative.c| 11

[PATCH v6 03/10] x86/mm: temporary mm struct

2018-11-20 Thread Nadav Amit
: Peter Zijlstra Cc: Dave Hansen Reviewed-by: Masami Hiramatsu Tested-by: Masami Hiramatsu Signed-off-by: Andy Lutomirski Signed-off-by: Nadav Amit --- arch/x86/include/asm/mmu_context.h | 32 ++ 1 file changed, 32 insertions(+) diff --git a/arch/x86/include/asm

[PATCH v6 01/10] Fix "x86/alternatives: Lockdep-enforce text_mutex in text_poke*()"

2018-11-20 Thread Nadav Amit
orce text_mutex in text_poke*()") Suggested-by: Peter Zijlstra Acked-by: Jiri Kosina Signed-off-by: Nadav Amit --- arch/x86/include/asm/text-patching.h | 1 + arch/x86/kernel/alternative.c| 52 arch/x86/kernel/kgdb.c | 11 +++--- 3 files changed,

[PATCH v6 10/10] x86/alternative: remove the return value of text_poke_*()

2018-11-20 Thread Nadav Amit
The return value of text_poke_early() and text_poke_bp() is useless. Remove it. Cc: Andy Lutomirski Cc: Kees Cook Cc: Peter Zijlstra Cc: Dave Hansen Cc: Masami Hiramatsu Signed-off-by: Nadav Amit --- arch/x86/include/asm/text-patching.h | 4 ++-- arch/x86/kernel/alternative.c| 11

[PATCH v6 03/10] x86/mm: temporary mm struct

2018-11-20 Thread Nadav Amit
: Peter Zijlstra Cc: Dave Hansen Reviewed-by: Masami Hiramatsu Tested-by: Masami Hiramatsu Signed-off-by: Andy Lutomirski Signed-off-by: Nadav Amit --- arch/x86/include/asm/mmu_context.h | 32 ++ 1 file changed, 32 insertions(+) diff --git a/arch/x86/include/asm

[PATCH v6 00/10] x86/alternative: text_poke() fixes

2018-11-20 Thread Nadav Amit
ix [peterz] - Removed remainders of text_poke return value [masami] - Use __weak for poking_init instead of macros [masami] - Simplify error handling in poking_init [masami] andy Lutomirski (1): x86/mm: temporary mm struct Nadav Amit (9): Fix "x86/alternatives: Lockdep-enforce text_mutex i

[PATCH v6 00/10] x86/alternative: text_poke() fixes

2018-11-20 Thread Nadav Amit
ix [peterz] - Removed remainders of text_poke return value [masami] - Use __weak for poking_init instead of macros [masami] - Simplify error handling in poking_init [masami] andy Lutomirski (1): x86/mm: temporary mm struct Nadav Amit (9): Fix "x86/alternatives: Lockdep-enforce text_mutex i

[PATCH v6 04/10] fork: provide a function for copying init_mm

2018-11-20 Thread Nadav Amit
Provide a function for copying init_mm. This function will be later used for setting a temporary mm. Cc: Andy Lutomirski Cc: Kees Cook Cc: Peter Zijlstra Cc: Dave Hansen Reviewed-by: Masami Hiramatsu Tested-by: Masami Hiramatsu Signed-off-by: Nadav Amit --- include/linux/sched/task.h | 1

<    2   3   4   5   6   7   8   9   10   11   >