21 Jun, 2018

36 commits

  • Replace %p with %pS or just remove it if unneeded.
    And use WARN_ONCE() if it is a single bug.

    Signed-off-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Anil S Keshavamurthy
    Cc: Arnd Bergmann
    Cc: David Howells
    Cc: David S . Miller
    Cc: Heiko Carstens
    Cc: Jon Medhurst
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Thomas Richter
    Cc: Tobin C . Harding
    Cc: Will Deacon
    Cc: acme@kernel.org
    Cc: akpm@linux-foundation.org
    Cc: brueckner@linux.vnet.ibm.com
    Cc: linux-arch@vger.kernel.org
    Cc: rostedt@goodmis.org
    Cc: schwidefsky@de.ibm.com
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/lkml/152491899284.9916.5350534544808158621.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Show probed address in debugfs kprobe list file as same
    as kallsyms does. This information is used for checking
    kprobes are placed in the expected address. So it should
    be able to compared with address in kallsyms.

    Signed-off-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Anil S Keshavamurthy
    Cc: Arnd Bergmann
    Cc: David Howells
    Cc: David S . Miller
    Cc: Heiko Carstens
    Cc: Jon Medhurst
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Thomas Richter
    Cc: Tobin C . Harding
    Cc: Will Deacon
    Cc: acme@kernel.org
    Cc: akpm@linux-foundation.org
    Cc: brueckner@linux.vnet.ibm.com
    Cc: linux-arch@vger.kernel.org
    Cc: rostedt@goodmis.org
    Cc: schwidefsky@de.ibm.com
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/lkml/152491896256.9916.1583733714492565296.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Show kprobes blacklist addresses under same condition of
    showing kallsyms addresses.

    Since there are several name conflict for local symbols,
    kprobe blacklist needs to show each addresses so that
    user can identify where is on blacklist by comparing
    with kallsyms.

    Signed-off-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Anil S Keshavamurthy
    Cc: Arnd Bergmann
    Cc: David Howells
    Cc: David S . Miller
    Cc: Heiko Carstens
    Cc: Jon Medhurst
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Thomas Richter
    Cc: Tobin C . Harding
    Cc: Will Deacon
    Cc: acme@kernel.org
    Cc: akpm@linux-foundation.org
    Cc: brueckner@linux.vnet.ibm.com
    Cc: linux-arch@vger.kernel.org
    Cc: rostedt@goodmis.org
    Cc: schwidefsky@de.ibm.com
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/lkml/152491893217.9916.14760965896164273464.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Since the blacklist and list files on debugfs indicates
    a sensitive address information to reader, it should be
    restricted to the root user.

    Suggested-by: Thomas Richter
    Suggested-by: Ingo Molnar
    Signed-off-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Anil S Keshavamurthy
    Cc: Arnd Bergmann
    Cc: David Howells
    Cc: David S . Miller
    Cc: Heiko Carstens
    Cc: Jon Medhurst
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tobin C . Harding
    Cc: Will Deacon
    Cc: acme@kernel.org
    Cc: akpm@linux-foundation.org
    Cc: brueckner@linux.vnet.ibm.com
    Cc: linux-arch@vger.kernel.org
    Cc: rostedt@goodmis.org
    Cc: schwidefsky@de.ibm.com
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/lkml/152491890171.9916.5183693615601334087.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Use new return type 'vm_fault_t' for fault handlers.

    For now, this is just documenting that the function returns
    a VM_FAULT value rather than an errno. Once all instances
    are converted, vm_fault_t will become a distinct type.

    See the following commit:

    1c8f422059ae ("mm: change return type to vm_fault_t")

    Signed-off-by: Souptick Joarder
    Reviewed-by: Matthew Wilcox
    Acked-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: acme@kernel.org
    Cc: akpm@linux-foundation.org
    Cc: alexander.shishkin@linux.intel.com
    Cc: jolsa@redhat.com
    Cc: namhyung@kernel.org
    Link: https://lkml.kernel.org/lkml/20180521182520.GA19677@jordon-HP-15-Notebook-PC
    Signed-off-by: Ingo Molnar

    Souptick Joarder
     
  • Context switches with perf LBR call stack context are fairly expensive
    because they do a lot of MSR writes. Currently we unconditionally do the
    expensive operation when LBR call stack is enabled. It's not necessary
    for some common cases, e.g task -> other kernel thread -> same task.
    The LBR registers are not changed, hence they don't need to be
    rewritten/restored.

    Introduce per-CPU variables to track the last LBR call stack context.
    If the same context is scheduled in, the rewrite/restore is not
    required, with the following two exceptions:

    - The LBR registers may be modified by a normal LBR event, i.e., adding
    a new LBR event or scheduling an existing LBR event. In both cases,
    the LBR registers are reset first. The last LBR call stack information
    is cleared in intel_pmu_lbr_reset(). Restoring the LBR registers is
    required.

    - The LBR registers are initialized to zero in C6.
    If the LBR registers which TOS points is cleared, C6 must be entered
    while swapped out. Restoring the LBR registers is required as well.

    These exceptions are not common.

    Signed-off-by: Kan Liang
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Jiri Olsa
    Cc: Stephane Eranian
    Cc: Vince Weaver
    Cc: Alexander Shishkin
    Cc: acme@kernel.org
    Cc: eranian@google.com
    Link: https://lore.kernel.org/lkml/1528213126-4312-2-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar

    Kan Liang
     
  • LBR has a limited stack size. If a task has a deeper call stack than
    LBR's stack size, only the overflowed part is reported. A complete call
    stack may not be reconstructed by perf tool.

    Current code doesn't access all LBR registers. It only read the ones
    below the TOS. The LBR registers above the TOS will be discarded
    unconditionally.

    When a CALL is captured, the TOS is incremented by 1 , modulo max LBR
    stack size. The LBR HW only records the call stack information to the
    register which the TOS points to. It will not touch other LBR
    registers. So the registers above the TOS probably still store the valid
    call stack information for an overflowed call stack, which need to be
    reported.

    To retrieve complete call stack information, we need to start from TOS,
    read all LBR registers until an invalid entry is detected.
    0s can be used to detect the invalid entry, because:

    - When a RET is captured, the HW zeros the LBR register which TOS points
    to, then decreases the TOS.
    - The LBR registers are reset to 0 when adding a new LBR event or
    scheduling an existing LBR event.
    - A taken branch at IP 0 is not expected

    The context switch code is also modified to save/restore all valid LBR
    registers. Furthermore, the LBR registers, which don't have valid call
    stack information, need to be reset in restore, because they may be
    polluted while swapped out.

    Here is a small test program, tchain_deep.
    Its call stack is deeper than 32.

    noinline void f33(void)
    {
    int i;

    for (i = 0; i < 10000000;) {
    if (i%2)
    i++;
    else
    i++;
    }
    }

    noinline void f32(void)
    {
    f33();
    }

    noinline void f31(void)
    {
    f32();
    }

    ... ...

    noinline void f1(void)
    {
    f2();
    }

    int main()
    {
    f1();
    }

    Here is the test result on SKX. The max stack size of SKX is 32.

    Without the patch:

    $ perf record -e cycles --call-graph lbr -- ./tchain_deep
    $ perf report --stdio
    #
    # Children Self Command Shared Object Symbol
    # ........ ........ ........... ................ .................
    #
    100.00% 99.99% tchain_deep tchain_deep [.] f33
    |
    --99.99%--f30
    f31
    f32
    f33

    With the patch:

    $ perf record -e cycles --call-graph lbr -- ./tchain_deep
    $ perf report --stdio
    # Children Self Command Shared Object Symbol
    # ........ ........ ........... ................ ..................
    #
    99.99% 0.00% tchain_deep tchain_deep [.] f1
    |
    ---f1
    f2
    f3
    f4
    f5
    f6
    f7
    f8
    f9
    f10
    f11
    f12
    f13
    f14
    f15
    f16
    f17
    f18
    f19
    f20
    f21
    f22
    f23
    f24
    f25
    f26
    f27
    f28
    f29
    f30
    f31
    f32
    f33

    Signed-off-by: Kan Liang
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Jiri Olsa
    Cc: Stephane Eranian
    Cc: Vince Weaver
    Cc: Alexander Shishkin
    Cc: Thomas Gleixner
    Cc: acme@kernel.org
    Cc: eranian@google.com
    Link: https://lore.kernel.org/lkml/1528213126-4312-1-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar

    Kan Liang
     
  • Remove jprobe stub APIs from linux/kprobes.h since
    the jprobe implementation was completely gone.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942503572.15209.1652552217914694917.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Add a section that explaining how to change the execution
    path with kprobes and warnings for some arch.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Jonathan Corbet
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linux-doc@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942500680.15209.12374262914863044775.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Since int3 and debug exception(for singlestep) are run with
    IRQ disabled and while running single stepping we drop IF
    from regs->flags, that path must not be preemptible. So we
    can remove the preempt disable/enable calls from that path.

    Suggested-by: Ingo Molnar
    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linux-doc@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942497779.15209.2879580696589868291.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Clear current_kprobe and enable preemption in kprobe
    even if pre_handler returns !0.

    This simplifies function override using kprobes.

    Jprobe used to require to keep the preemption disabled and
    keep current_kprobe until it returned to original function
    entry. For this reason kprobe_int3_handler() and similar
    arch dependent kprobe handers checks pre_handler result
    and exit without enabling preemption if the result is !0.

    After removing the jprobe, Kprobes does not need to
    keep preempt disabled even if user handler returns !0
    anymore.

    But since the function override handler in error-inject
    and bpf is also returns !0 if it overrides a function,
    to balancing the preempt count, it enables preemption
    and reset current kprobe by itself.

    That is a bad design that is very buggy. This fixes
    such unbalanced preempt-count and current_kprobes setting
    in kprobes, bpf and error-inject.

    Note: for powerpc and x86, this removes all preempt_disable
    from kprobe_ftrace_handler because ftrace callbacks are
    called under preempt disabled.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Acked-by: Naveen N. Rao
    Cc: Alexei Starovoitov
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: David S. Miller
    Cc: Fenghua Yu
    Cc: Heiko Carstens
    Cc: James Hogan
    Cc: Josef Bacik
    Cc: Linus Torvalds
    Cc: Martin Schwidefsky
    Cc: Michael Ellerman
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Ralf Baechle
    Cc: Rich Felker
    Cc: Russell King
    Cc: Steven Rostedt
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Cc: linux-arch@vger.kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-ia64@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: linux-s390@vger.kernel.org
    Cc: linux-sh@vger.kernel.org
    Cc: linux-snps-arc@lists.infradead.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: sparclinux@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942494574.15209.12323837825873032258.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Don't call the ->break_handler() from the sparc64 kprobes code,
    because it was only used by jprobes which got removed.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: David S. Miller
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: sparclinux@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942491684.15209.8114703769135529984.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Don't call the ->break_handler() from the SH kprobes code,
    because it was only used by jprobes which got removed.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Rich Felker
    Cc: Steven Rostedt
    Cc: Yoshinori Sato
    Cc: linux-arch@vger.kernel.org
    Cc: linux-sh@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942488763.15209.7791710414058030809.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Don't call the ->break_handler() from the s390 kprobes code,
    because it was only used by jprobes which got removed.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Heiko Carstens
    Cc: Linus Torvalds
    Cc: Martin Schwidefsky
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linux-s390@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942485849.15209.16608277783809018031.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Don't call the ->break_handler() from the MIPS kprobes code,
    because it was only used by jprobes which got removed.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: James Hogan
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Ralf Baechle
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Link: https://lore.kernel.org/lkml/152942482953.15209.843924518200700137.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Don't call the ->break_handler() from the ia64 kprobes code,
    because it was only used by jprobes which got removed.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Fenghua Yu
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: Tony Luck
    Cc: linux-arch@vger.kernel.org
    Cc: linux-ia64@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942480045.15209.10715901482832337704.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Don't call the ->break_handler() from the powerpc kprobes code,
    because it was only used by jprobes which got removed.

    This also removes skip_singlestep() and embeds it in the
    caller, kprobe_ftrace_handler(), which simplifies regs->nip
    operation around there.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Acked-by: Naveen N. Rao
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Benjamin Herrenschmidt
    Cc: Linus Torvalds
    Cc: Michael Ellerman
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Link: https://lore.kernel.org/lkml/152942477127.15209.8982613703787878618.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Don't call the ->break_handler() from the arm64 kprobes code,
    because it was only used by jprobes which got removed.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Acked-by: Will Deacon
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Catalin Marinas
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Link: https://lore.kernel.org/lkml/152942474231.15209.17684808374429473004.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Don't call the ->break_handler() from the arm kprobes code,
    because it was only used by jprobes which got removed.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Russell King
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Link: https://lore.kernel.org/lkml/152942471328.15209.10625693210204476080.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Don't call the ->break_handler() from the ARC kprobes code,
    because it was only used by jprobes which got removed.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: Vineet Gupta
    Cc: linux-arch@vger.kernel.org
    Cc: linux-snps-arc@lists.infradead.org
    Link: https://lore.kernel.org/lkml/152942468446.15209.13773902741600803798.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Don't call the ->break_handler() and remove break_handler
    related code from x86 since that was only used by jprobe
    which got removed.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942465549.15209.15889693025972771135.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Don't check the ->break_handler() from the core kprobes code,
    because it was only used by jprobes which got removed.

    ( In followup patches we'll remove the remaining calls in low level
    arch handlers as well and remove the callback altogether. )

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942462686.15209.6324404940493598980.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Remove arch dependent setjump/longjump functions
    and unused fields in kprobe_ctlblk for jprobes
    from arch/sparc.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: David S. Miller
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: sparclinux@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942459795.15209.9736720668494241853.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Remove arch dependent setjump/longjump functions
    and unused fields in kprobe_ctlblk for jprobes
    from arch/sh.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Rich Felker
    Cc: Steven Rostedt
    Cc: Yoshinori Sato
    Cc: linux-arch@vger.kernel.org
    Cc: linux-sh@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942456877.15209.5482537226935729621.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Remove arch dependent setjump/longjump functions
    and unused fields in kprobe_ctlblk for jprobes
    from arch/s390.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Heiko Carstens
    Cc: Linus Torvalds
    Cc: Martin Schwidefsky
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linux-s390@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942453967.15209.8535227381029256754.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Remove arch dependent setjump/longjump functions
    and unused fields in kprobe_ctlblk for jprobes
    from arch/mips.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: James Hogan
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Ralf Baechle
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Link: https://lore.kernel.org/lkml/152942451058.15209.3459785416221980965.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Remove arch dependent setjump/longjump functions
    and unused fields in kprobe_ctlblk for jprobes
    from arch/ia64.

    Note that since ia64 jprobes code is a bit different
    from other architectures, this keeps __IA64_BREAK_JPROBE
    for checking the ->break_handler(). It will be removed
    with the break_handler() calls afterwards.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Fenghua Yu
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: Tony Luck
    Cc: linux-arch@vger.kernel.org
    Cc: linux-ia64@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942448152.15209.2026051332977587306.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Remove arch dependent setjump/longjump functions
    and unused fields in kprobe_ctlblk for jprobes
    from arch/powerpc. This also reverts commits
    related __is_active_jprobe() function.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Acked-by: Naveen N. Rao
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Benjamin Herrenschmidt
    Cc: Linus Torvalds
    Cc: Michael Ellerman
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Link: https://lore.kernel.org/lkml/152942445234.15209.12868722778364739753.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Remove arch dependent setjump/longjump functions
    and unused fields in kprobe_ctlblk for jprobes
    from arch/arm64.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Acked-by: Will Deacon
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Catalin Marinas
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Link: https://lore.kernel.org/lkml/152942442318.15209.17767976282305601884.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Remove arch dependent setjump/longjump functions
    and unused fields in kprobe_ctlblk for jprobes
    from arch/arm.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Russell King
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Link: https://lore.kernel.org/lkml/152942439350.15209.11127640848082283736.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Remove arch dependent setjump/longjump functions
    and unused fields in kprobe_ctlblk for jprobes
    from arch/arc.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: Vineet Gupta
    Cc: linux-arch@vger.kernel.org
    Cc: linux-snps-arc@lists.infradead.org
    Link: https://lore.kernel.org/lkml/152942436460.15209.3038881268172249579.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Remove arch dependent setjump/longjump functions
    and unused fields in kprobe_ctlblk for jprobes
    from arch/x86.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942433578.15209.14034551799624757792.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Remove functionally empty jprobe API implementations and test cases.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942430705.15209.2307050500995264322.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Remove 'jps' from the document, since jprobe got removed.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Thomas Gleixner
    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Jonathan Corbet
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: linux-arch@vger.kernel.org
    Cc: linux-doc@vger.kernel.org
    Link: https://lore.kernel.org/lkml/152942427814.15209.6650206464370123166.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Pull rdma fixes from Jason Gunthorpe:
    "Here are eight fairly small fixes collected over the last two weeks.

    Regression and crashing bug fixes:

    - mlx4/5: Fixes for issues found from various checkers

    - A resource tracking and uverbs regression in the core code

    - qedr: NULL pointer regression found during testing

    - rxe: Various small bugs"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
    IB/rxe: Fix missing completion for mem_reg work requests
    RDMA/core: Save kernel caller name when creating CQ using ib_create_cq()
    IB/uverbs: Fix ordering of ucontext check in ib_uverbs_write
    IB/mlx4: Fix an error handling path in 'mlx4_ib_rereg_user_mr()'
    RDMA/qedr: Fix NULL pointer dereference when running over iWARP without RDMA-CM
    IB/mlx5: Fix return value check in flow_counters_set_data()
    IB/mlx5: Fix memory leak in mlx5_ib_create_flow
    IB/rxe: avoid double kfree skb

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) Fix crash on bpf_prog_load() errors, from Daniel Borkmann.

    2) Fix ATM VCC memory accounting, from David Woodhouse.

    3) fib6_info objects need RCU freeing, from Eric Dumazet.

    4) Fix SO_BINDTODEVICE handling for TCP sockets, from David Ahern.

    5) Fix clobbered error code in enic_open() failure path, from
    Govindarajulu Varadarajan.

    6) Propagate dev_get_valid_name() error returns properly, from Li
    RongQing.

    7) Fix suspend/resume in davinci_emac driver, from Bartosz Golaszewski.

    8) Various act_ife fixes (recursive locking, IDR leaks, etc.) from
    Davide Caratti.

    9) Fix buggy checksum handling in sungem driver, from Eric Dumazet.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (40 commits)
    ip: limit use of gso_size to udp
    stmmac: fix DMA channel hang in half-duplex mode
    net: stmmac: socfpga: add additional ocp reset line for Stratix10
    net: sungem: fix rx checksum support
    bpfilter: ignore binary files
    bpfilter: fix build error
    net/usb/drivers: Remove useless hrtimer_active check
    net/sched: act_ife: preserve the action control in case of error
    net/sched: act_ife: fix recursive lock and idr leak
    net: ethernet: fix suspend/resume in davinci_emac
    net: propagate dev_get_valid_name return code
    enic: do not overwrite error code
    net/tcp: Fix socket lookups with SO_BINDTODEVICE
    ptp: replace getnstimeofday64() with ktime_get_real_ts64()
    net/ipv6: respect rcu grace period before freeing fib6_info
    net: net_failover: fix typo in net_failover_slave_register()
    ipvlan: use ETH_MAX_MTU as max mtu
    net: hamradio: use eth_broadcast_addr
    enic: initialize enic->rfs_h.lock in enic_probe
    MAINTAINERS: Add Sam as the maintainer for NCSI
    ...

    Linus Torvalds
     

20 Jun, 2018

4 commits

  • Pull HID fixes from Jiri Kosina:

    - Wacom 2nd-gen Intuos Pro large Y axis handling fix from Jason Gerecke

    - fix for hibernation in Intel ISH driver, from Even Xu

    - crash fix for hid-steam driver, from Rodrigo Rivas Costa

    - new device ID addition to google-hammer driver

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: wacom: Correct logical maximum Y for 2nd-gen Intuos Pro large
    HID: intel_ish-hid: ipc: register more pm callbacks to support hibernation
    HID: steam: use hid_device.driver_data instead of hid_set_drvdata()
    HID: google: Add support for whiskers

    Linus Torvalds
     
  • Pull dma-mapping rename from Christoph Hellwig:
    "Move all the dma-mapping code to kernel/dma and lose their dma-*
    prefixes"

    * tag 'dma-rename-4.18' of git://git.infradead.org/users/hch/dma-mapping:
    dma-mapping: move all DMA mapping code to kernel/dma
    dma-mapping: use obj-y instead of lib-y for generic dma ops

    Linus Torvalds
     
  • The HID descriptor for the 2nd-gen Intuos Pro large (PTH-860) contains
    a typo which defines an incorrect logical maximum Y value. This causes
    a small portion of the bottom of the tablet to become unusable (both
    because the area is below the "bottom" of the tablet and because
    'wacom_wac_event' ignores out-of-range values). It also results in a
    skewed aspect ratio.

    To fix this, we add a quirk to 'wacom_usage_mapping' which overwrites
    the data with the correct value.

    Signed-off-by: Jason Gerecke
    CC: stable@vger.kernel.org # v4.10+
    Signed-off-by: Jiri Kosina

    Jason Gerecke
     
  • Current ISH driver only registers suspend/resume PM callbacks which don't
    support hibernation (suspend to disk). Basically after hiberation, the ISH
    can't resume properly and user may not see sensor events (for example: screen
    rotation may not work).

    User will not see a crash or panic or anything except the following message
    in log:

    hid-sensor-hub 001F:8086:22D8.0001: timeout waiting for response from ISHTP device

    So this patch adds support for S4/hiberbation to ISH by using the
    SIMPLE_DEV_PM_OPS() MACRO instead of struct dev_pm_ops directly. The suspend
    and resume functions will now be used for both suspend to RAM and hibernation.

    If power management is disabled, SIMPLE_DEV_PM_OPS will do nothing, the suspend
    and resume related functions won't be used, so mark them as __maybe_unused to
    clarify that this is the intended behavior, and remove #ifdefs for power
    management.

    Cc: stable@vger.kernel.org
    Signed-off-by: Even Xu
    Acked-by: Srinivas Pandruvada
    Signed-off-by: Jiri Kosina

    Even Xu