Skip to content
  1. Mar 08, 2017
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 500e1af2
      Linus Torvalds authored
      Pull locking fixes from Ingo Molnar:
      
       - Change the new refcount_t warnings from WARN() to WARN_ONCE()
      
       - two ww_mutex fixes
      
       - plus a new lockdep self-consistency check for a bug that triggered in
         practice
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/ww_mutex: Adjust the lock number for stress test
        locking/lockdep: Add nest_lock integrity test
        locking/ww_mutex: Replace cpu_relax() with cond_resched() for tests
        locking/refcounts: Change WARN() to WARN_ONCE()
      500e1af2
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 26db8f99
      Linus Torvalds authored
      Pull IRQ fix from Ingo Molnar:
       "Fix an ARM TI DRA7XX SoC irqchip driver local variables type
        bug/warning"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/crossbar: Fix incorrect type of local variables
      26db8f99
    • Linus Torvalds's avatar
      Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 21f85778
      Linus Torvalds authored
      Pull EFI fixes from Ingo Molnar:
       "A boot crash fix, and a secure boot related boot messages fix"
      
      * 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi/arm: Fix boot crash with CONFIG_CPUMASK_OFFSTACK=y
        efi/libstub: Treat missing SecureBoot variable as Secure Boot disabled
      21f85778
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c688f14c
      Linus Torvalds authored
      Pull core fixes from Ingo Molnar:
       "A couple of sched.h splitup related build fixes, plus an objtool fix"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Fix another GCC jump table detection issue
        drivers/char/nwbutton: Fix build breakage caused by include file reshuffling
        h8300: Fix build breakage caused by header file changes
        avr32: Fix build error caused by include file reshuffling
      c688f14c
    • Linus Torvalds's avatar
      Merge branch 'idr-4.11' of git://git.infradead.org/users/willy/linux-dax · 9e91c144
      Linus Torvalds authored
      Pull idr fix (and new tests) from Matthew Wilcox:
       "One urgent patch in here; freeing the correct IDA bitmap.
      
        Everything else is changes to the test suite"
      
      * 'idr-4.11' of git://git.infradead.org/users/willy/linux-dax:
        radix tree test suite: Specify -m32 in LDFLAGS too
        ida: Free correct IDA bitmap
        radix tree test suite: Depend on Makefile and quieten grep
        radix tree test suite: Fix build with --as-needed
        radix tree test suite: Build 32 bit binaries
        radix tree test suite: Add performance test for radix_tree_join()
        radix tree test suite: Add performance test for radix_tree_split()
        radix tree test suite: Add performance benchmarks
        radix tree test suite: Add test for radix_tree_clear_tags()
        radix tree test suite: Add tests for ida_simple_get() and ida_simple_remove()
        radix tree test suite: Add test for idr_get_next()
      9e91c144
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · f7d6a728
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Five fairly small fixes for things that went in this cycle.
      
        A fairly large patch to rework the CAS logic on Power9, necessitated
        by a late change to the firmware API, and we can't boot without it.
      
        Three fixes going to stable, allowing more instructions to be emulated
        on LE, fixing a boot crash on 32-bit Freescale BookE machines, and the
        OPAL XICS workaround.
      
        And a patch from me to sort the selects under CONFIG PPC. Annoying
        churn, but worth it in the long run, and best for it to go in now to
        avoid conflicts.
      
        Thanks to:
          Alexey Kardashevskiy, Anton Blanchard, Balbir Singh, Gautham R.
          Shenoy, Laurentiu Tudor, Nicholas Piggin, Paul Mackerras, Ravi
          Bangoria, Sachin Sant, Shile Zhang, Suraj Jitindar Singh"
      
      * tag 'powerpc-4.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc: Sort the selects under CONFIG_PPC
        powerpc/64: Fix L1D cache shape vector reporting L1I values
        powerpc/64: Avoid panic during boot due to divide by zero in init_cache_info()
        powerpc: Update to new option-vector-5 format for CAS
        powerpc: Parse the command line before calling CAS
        powerpc/xics: Work around limitations of OPAL XICS priority handling
        powerpc/64: Fix checksum folding in csum_add()
        powerpc/powernv: Fix opal tracepoints with JUMP_LABEL=n
        powerpc/booke: Fix boot crash due to null hugepd
        powerpc: Fix compiling a BE kernel with a powerpc64le toolchain
        selftest/powerpc: Fix false failures for skipped tests
        powerpc/powernv: Fix bug due to labeling ambiguity in power_enter_stop
        powerpc/64: Invalidate process table caching after setting process table
        powerpc: emulate_step() tests for load/store instructions
        powerpc: Emulation support for load/store instructions on LE
      f7d6a728
    • Linus Torvalds's avatar
      Merge branch 'stable/for-linus-4.11' of... · 8c2c8ed8
      Linus Torvalds authored
      Merge branch 'stable/for-linus-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb
      
      Pull swiotlb updates from Konrad Rzeszutek Wilk:
       "Two tiny implementations of the DMA API for callback in ARM (for Xen)"
      
      * 'stable/for-linus-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb:
        swiotlb-xen: implement xen_swiotlb_get_sgtable callback
        swiotlb-xen: implement xen_swiotlb_dma_mmap callback
      8c2c8ed8
    • Matthew Wilcox's avatar
      radix tree test suite: Specify -m32 in LDFLAGS too · f0f3f2d0
      Matthew Wilcox authored
      
      
      Michael's patch to use the default make rule for linking and the patch
      from Rehas to use -m32 if building a 32-bit test-suite on a 64-bit
      platform don't work well together.
      
      Reported-by: default avatarRehas Sachdeva <aquannie@gmail.com>
      Signed-off-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
      f0f3f2d0
    • Matthew Wilcox's avatar
      ida: Free correct IDA bitmap · 4ecd9542
      Matthew Wilcox authored
      
      
      There's a relatively rare race where we look at the per-cpu preallocated
      IDA bitmap, see it's NULL, allocate a new one, and atomically update it.
      If the kmalloc() happened to sleep and we were rescheduled to a different
      CPU, or an interrupt came in at the exact right time, another task
      might have successfully allocated a bitmap and already deposited it.
      I forgot what the semantics of cmpxchg() were and ended up freeing the
      wrong bitmap leading to KASAN reporting a use-after-free.
      
      Dmitry found the bug with syzkaller & wrote the patch.  I wrote the test
      case that will reproduce the bug without his patch being applied.
      
      Reported-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Signed-off-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
      4ecd9542
    • Matthew Wilcox's avatar
      radix tree test suite: Depend on Makefile and quieten grep · 3f1b6f9d
      Matthew Wilcox authored
      
      
      Changing the CFLAGS in the Makefile didn't always lead to a
      recompilation because the OFILES didn't depend on the Makefile.
      Also, after doing make clean, grep would still complain about
      a missing map-shift.h; we need -s as well as -q.
      
      Signed-off-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
      3f1b6f9d
    • Michael Ellerman's avatar
      radix tree test suite: Fix build with --as-needed · 284d96a4
      Michael Ellerman authored
      
      
      Currently the radix tree test suite doesn't build with toolchains that
      use --as-needed by default, for example Ubuntu's:
      
        cc -I. -I../../include -g -O2 -Wall -D_LGPL_SOURCE -fsanitize=address -lpthread -lurcu main.o ... -o main
        /usr/bin/ld: regression1.o: undefined reference to symbol 'pthread_join@@GLIBC_2.17'
        /lib/powerpc64le-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
        collect2: error: ld returned 1 exit status
      
      This is caused by the custom makefile rules placing LDFLAGS before the
      .o files that need the libraries.
      
      We could fix it by using --no-as-needed, or rewriting the custom rules.
      But we can also just drop the custom rules and move the libraries to
      LDLIBS, and then the default rules work correctly - with the one caveat
      that we need to add -fsanitize=address to LDFLAGS because that must be
      passed to the linker as well as the compiler.
      
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Signed-off-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
      284d96a4
    • Rehas Sachdeva's avatar
      radix tree test suite: Build 32 bit binaries · c4634b08
      Rehas Sachdeva authored
      
      
      Add option 'make BUILD=32' for building 32-bit binaries.
      
      Signed-off-by: default avatarRehas Sachdeva <aquannie@gmail.com>
      Signed-off-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
      c4634b08
    • Rehas Sachdeva's avatar
    • Rehas Sachdeva's avatar
    • Rehas Sachdeva's avatar
      radix tree test suite: Add performance benchmarks · 0d4a41c1
      Rehas Sachdeva authored
      
      
      Add performance benchmarks for radix tree insertion, tagging and deletion.
      
      Signed-off-by: default avatarRehas Sachdeva <aquannie@gmail.com>
      Signed-off-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
      0d4a41c1
    • Rehas Sachdeva's avatar
      radix tree test suite: Add test for radix_tree_clear_tags() · c629a344
      Rehas Sachdeva authored
      
      
      Assert that radix_tree_clear_tags() clears the tags on the passed node and
      slot. Assert that the case where the radix tree has only one entry at index
      zero and the node is NULL, is also handled.
      
      Signed-off-by: default avatarRehas Sachdeva <aquannie@gmail.com>
      Signed-off-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
      c629a344
    • Rehas Sachdeva's avatar
      radix tree test suite: Add tests for ida_simple_get() and ida_simple_remove() · 166bb1f5
      Rehas Sachdeva authored
      
      
      Assert that ida_simple_get() allocates an id in the passed range or returns
      error on failure, and ida_simple_remove() releases an allocated id.
      
      Signed-off-by: default avatarRehas Sachdeva <aquannie@gmail.com>
      Signed-off-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
      166bb1f5
    • Rehas Sachdeva's avatar
      radix tree test suite: Add test for idr_get_next() · 2eacc79c
      Rehas Sachdeva authored
      
      
      Assert that idr_get_next() returns the next populated entry in the tree with
      an ID greater than or equal to the value pointed to by @nextid argument.
      
      Signed-off-by: default avatarRehas Sachdeva <aquannie@gmail.com>
      Signed-off-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
      2eacc79c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 304362a8
      Linus Torvalds authored
      Pull namespace fix from Eric Biederman:
       "This fixes a race between put_ucounts and get_ucounts that can cause a
        use after free. The fix works by simplifying the code and so there is
        not even a temptation to be clever and play spinlock vs atomic
        reference games"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        ucount: Remove the atomicity from ucount->count
      304362a8
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · f26db964
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
       "There was some breakage with the changes for jump labels in the 4.11
        merge window:
      
         - powerpc broke as jump labels uses the two LSB bits as flags in
           initialization.
      
           A check was added to make sure that all jump label entries were 4
           bytes aligned, but powerpc didn't work that way for modules. Adding
           an alignment in the module linker script appeared to be the best
           solution.
      
         - Jump labels also added an anonymous union to access those LSB bits
           as a normal long. But because this structure had static
           initialization, it broke older compilers that could not statically
           initialize anonymous unions without brackets.
      
         - The command line parameter for setting function graph filter broke
           the "EMPTY_HASH" descriptor by modifying it instead of creating a
           new hash to hold the entries.
      
         - The command line parameter ftrace_graph_max_depth was added to
           allow its setting at boot time. It uses existing code and only the
           command line hook was added.
      
           This is not really a fix, but as it uses existing code without
           affecting anything else, I added it to this release. It was ready
           before the merge window closed, but I wanted to let it sit in
           linux-next for a couple of days first"
      
      * tag 'trace-v4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ftrace/graph: Add ftrace_graph_max_depth kernel parameter
        tracing: Add #undef to fix compile error
        jump_label: Add comment about initialization order for anonymous unions
        jump_label: Fix anonymous union initialization
        module: set __jump_table alignment to 8
        ftrace/graph: Do not modify the EMPTY_HASH for the function_graph filter
        tracing: Fix code comment for ftrace_ops_get_func()
      f26db964
  2. Mar 07, 2017
    • Josh Poimboeuf's avatar
      objtool: Fix another GCC jump table detection issue · 5c51f4ae
      Josh Poimboeuf authored
      
      
      Arnd Bergmann reported a (false positive) objtool warning:
      
        drivers/infiniband/sw/rxe/rxe_resp.o: warning: objtool: rxe_responder()+0xfe: sibling call from callable instruction with changed frame pointer
      
      The issue is in find_switch_table().  It tries to find a switch
      statement's jump table by walking backwards from an indirect jump
      instruction, looking for a relocation to the .rodata section.  In this
      case it stopped walking prematurely: the first .rodata relocation it
      encountered was for a variable (resp_state_name) instead of a jump
      table, so it just assumed there wasn't a jump table.
      
      The fix is to ignore any .rodata relocation which refers to an ELF
      object symbol.  This works because the jump tables are anonymous and
      have no symbols associated with them.
      
      Reported-by: default avatarArnd Bergmann <arnd@arndb.de>
      Tested-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Fixes: 3732710f
      
       ("objtool: Improve rare switch jump table pattern detection")
      Link: http://lkml.kernel.org/r/20170302225723.3ndbsnl4hkqbne7a@treble
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      5c51f4ae
    • Guenter Roeck's avatar
      drivers/char/nwbutton: Fix build breakage caused by include file reshuffling · bb35e451
      Guenter Roeck authored
      
      
      Fix:
      
        drivers/char/nwbutton.c: In function 'button_sequence_finished':
        drivers/char/nwbutton.c:134:3: error: implicit declaration of function 'kill_cad_pid'
      
      The declaration has been moved from one include file to another.
      
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Fixes: c3edc401
      
       ("sched/headers: Move task_struct::signal and ...")
      Link: http://lkml.kernel.org/r/1488762811-9022-1-git-send-email-linux@roeck-us.net
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      bb35e451
    • Guenter Roeck's avatar
      h8300: Fix build breakage caused by header file changes · 80aa1a54
      Guenter Roeck authored
      
      
      Fix the following h8300 build failures:
      
        arch/h8300/kernel/ptrace_h.c: In function ‘trace_trap’:
        arch/h8300/kernel/ptrace_h.c:253:3: error: implicit declaration of function ‘force_sig’
      
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: uclinux-h8-devel@lists.sourceforge.jp
      Fixes: c3edc401
      
       ("sched/headers: Move task_struct::signal and ...")
      Link: http://lkml.kernel.org/r/1488738434-3504-1-git-send-email-linux@roeck-us.net
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      80aa1a54
    • Guenter Roeck's avatar
      avr32: Fix build error caused by include file reshuffling · 1fbdbcea
      Guenter Roeck authored
      
      
      Various avr32 builds fail:
      
        arch/avr32/oprofile/backtrace.c:58: error: dereferencing pointer to incomplete type
        arch/avr32/oprofile/backtrace.c:60: error: implicit declaration of function 'user_mode'
      
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Acked-by: default avatarHans-Christian Noren Egtvedt <egtvedt@samfundet.no>
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Robert Richter <rric@kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: oprofile-list@lists.sf.net
      Fixes: f780d89a
      
       ("sched/headers: Remove <asm/ptrace.h> from ...")
      Link: http://lkml.kernel.org/r/1488762357-4500-1-git-send-email-linux@roeck-us.net
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      1fbdbcea
    • Eric W. Biederman's avatar
      ucount: Remove the atomicity from ucount->count · 040757f7
      Eric W. Biederman authored
      Always increment/decrement ucount->count under the ucounts_lock.  The
      increments are there already and moving the decrements there means the
      locking logic of the code is simpler.  This simplification in the
      locking logic fixes a race between put_ucounts and get_ucounts that
      could result in a use-after-free because the count could go zero then
      be found by get_ucounts and then be freed by put_ucounts.
      
      A bug presumably this one was found by a combination of syzkaller and
      KASAN.  JongWhan Kim reported the syzkaller failure and Dmitry Vyukov
      spotted the race in the code.
      
      Cc: stable@vger.kernel.org
      Fixes: f6b2db1a
      
       ("userns: Make the count of user namespaces per user")
      Reported-by: default avatarJongHwan Kim <zzoru007@gmail.com>
      Reported-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Reviewed-by: default avatarAndrei Vagin <avagin@gmail.com>
      Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      040757f7
  3. Mar 06, 2017
    • Michael Ellerman's avatar
      powerpc: Sort the selects under CONFIG_PPC · a7d2475a
      Michael Ellerman authored
      
      
      We have a big list of selects under CONFIG_PPC, and currently they're
      completely unsorted. This means people tend to add new selects at the
      bottom of the list, and so two commits which both add a new select will
      often conflict.
      
      Instead sort it alphabetically. This is nicer in and of itself, but also
      means two commits that add a new select will have a greater chance of
      not conflicting.
      
      Add a note at the top and bottom asking people to keep it sorted.
      
      And while we're here pad out the 'if' expressions to make them stand
      out.
      
      Suggested-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      a7d2475a
    • Michael Ellerman's avatar
      powerpc/64: Fix L1D cache shape vector reporting L1I values · 9c7a0086
      Michael Ellerman authored
      It seems we didn't pay quite enough attention when testing the new cache
      shape vectors, which means we didn't notice the bug where the vector for
      the L1D was using the L1I values. Fix it, resulting in eg:
      
        L1I  cache size:     0x8000      32768B         32K
        L1I  line size:        0x80       8-way associative
        L1D  cache size:    0x10000      65536B         64K
        L1D  line size:        0x80       8-way associative
      
      Fixes: 98a5f361
      
       ("powerpc: Add new cache geometry aux vectors")
      Cut-and-paste-bug-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Badly-reviewed-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      9c7a0086
    • Anton Blanchard's avatar
      powerpc/64: Avoid panic during boot due to divide by zero in init_cache_info() · 6ba422c7
      Anton Blanchard authored
      I see a panic in early boot when building with a recent gcc toolchain.
      The issue is a divide by zero, which is undefined. Older toolchains
      let us get away with it:
      
      int foo(int a) { return a / 0; }
      
      foo:
      	li 9,0
      	divw 3,3,9
      	extsw 3,3
      	blr
      
      But newer ones catch it:
      
      foo:
      	trap
      
      Add a check to avoid the divide by zero.
      
      Fixes: e2827fe5
      
       ("powerpc/64: Clean up ppc64_caches using a struct per cache")
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      6ba422c7
    • Suraj Jitindar Singh's avatar
      powerpc: Update to new option-vector-5 format for CAS · 014d02cb
      Suraj Jitindar Singh authored
      
      
      On POWER9 the ibm,client-architecture-support (CAS) negotiation process
      has been updated to change how the host to guest negotiation is done for
      the new hash/radix mmu as well as the nest mmu, process tables and guest
      translation shootdown (GTSE).
      
      This is documented in the unreleased PAPR ACR "CAS option vector
      additions for P9".
      
      The host tells the guest which options it supports in
      ibm,arch-vec-5-platform-support. The guest then chooses a subset of these
      to request in the CAS call and these are agreed to in the
      ibm,architecture-vec-5 property of the chosen node.
      
      Thus we read ibm,arch-vec-5-platform-support and make our selection before
      calling CAS. We then parse the ibm,architecture-vec-5 property of the
      chosen node to check whether we should run as hash or radix.
      
      ibm,arch-vec-5-platform-support format:
      
      index value pairs: <index, val> ... <index, val>
      
      index: Option vector 5 byte number
      val:   Some representation of supported values
      
      Signed-off-by: default avatarSuraj Jitindar Singh <sjitindarsingh@gmail.com>
      Acked-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      [mpe: Don't print about unknown options, be consistent with OV5_FEAT]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      014d02cb
    • Suraj Jitindar Singh's avatar
      powerpc: Parse the command line before calling CAS · 12cc9fd6
      Suraj Jitindar Singh authored
      
      
      On POWER9 the hypervisor requires the guest to decide whether it would
      like to use a hash or radix mmu model at the time it calls
      ibm,client-architecture-support (CAS) based on what the hypervisor has
      said it's allowed to do. It is possible to disable radix by passing
      "disable_radix" on the command line. The next patch will add support for
      the new CAS format, thus we need to parse the command line before calling
      CAS so we can correctly select which mmu we would like to use.
      
      Signed-off-by: default avatarSuraj Jitindar Singh <sjitindarsingh@gmail.com>
      Reviewed-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      Acked-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      12cc9fd6
    • Balbir Singh's avatar
      powerpc/xics: Work around limitations of OPAL XICS priority handling · a69e2fb7
      Balbir Singh authored
      The CPPR (Current Processor Priority Register) of a XICS interrupt
      presentation controller contains a value N, such that only interrupts
      with a priority "more favoured" than N will be received by the CPU,
      where "more favoured" means "less than". So if the CPPR has the value 5
      then only interrupts with a priority of 0-4 inclusive will be received.
      
      In theory the CPPR can support a value of 0 to 255 inclusive.
      In practice Linux only uses values of 0, 4, 5 and 0xff. Setting the CPPR
      to 0 rejects all interrupts, setting it to 0xff allows all interrupts.
      The values 4 and 5 are used to differentiate IPIs from external
      interrupts. Setting the CPPR to 5 allows IPIs to be received but not
      external interrupts.
      
      The CPPR emulation in the OPAL XICS implementation only directly
      supports priorities 0 and 0xff. All other priorities are considered
      equivalent, and mapped to a single priority value internally. This means
      when using icp-opal we can not allow IPIs but not externals.
      
      This breaks Linux's use of priority values when a CPU is hot unplugged.
      After migrating IRQs away from the CPU that is being offlined, we set
      the priority to 5, meaning we still want the offline CPU to receive
      IPIs. But the effect of the OPAL XICS emulation's use of a single
      priority value is that all interrupts are rejected by the CPU. With the
      CPU offline, and not receiving IPIs, we may not be able to wake it up to
      bring it back online.
      
      The first part of the fix is in icp_opal_set_cpu_priority(). CPPR values
      of 0 to 4 inclusive will correctly cause all interrupts to be rejected,
      so we pass those CPPR values through to OPAL. However if we are called
      with a CPPR of 5 or greater, the caller is expecting to be able to allow
      IPIs but not external interrupts. We know this doesn't work, so instead
      of rejecting all interrupts we choose the opposite which is to allow all
      interrupts. This is still not correct behaviour, but we know for the
      only existing caller (xics_migrate_irqs_away()), that it is the better
      option.
      
      The other part of the fix is in xics_migrate_irqs_away(). Instead of
      setting priority (CPPR) to 0, and then back to 5 before migrating IRQs,
      we migrate the IRQs before setting the priority back to 5. This should
      have no effect on an ICP backend with a working set_priority(), and on
      icp-opal it means we will keep all interrupts blocked until after we've
      finished doing the IRQ migration. Additionally we wait for 5ms after
      doing the migration to make sure there are no IRQs in flight.
      
      Fixes: d7436188
      
       ("powerpc/xics: Add ICP OPAL backend")
      Cc: stable@vger.kernel.org # v4.8+
      Suggested-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Reported-by: default avatarVaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
      Tested-by: default avatarVaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
      Signed-off-by: default avatarBalbir Singh <bsingharora@gmail.com>
      [mpe: Rewrote comments and change log, change delay to 5ms]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      a69e2fb7
    • Linus Torvalds's avatar
      Linux 4.11-rc1 · c1ae3cfa
      Linus Torvalds authored
      v4.11-rc1
      c1ae3cfa
  4. Mar 05, 2017
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 8d70eeb8
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix double-free in batman-adv, from Sven Eckelmann.
      
       2) Fix packet stats for fast-RX path, from Joannes Berg.
      
       3) Netfilter's ip_route_me_harder() doesn't handle request sockets
          properly, fix from Florian Westphal.
      
       4) Fix sendmsg deadlock in rxrpc, from David Howells.
      
       5) Add missing RCU locking to transport hashtable scan, from Xin Long.
      
       6) Fix potential packet loss in mlxsw driver, from Ido Schimmel.
      
       7) Fix race in NAPI handling between poll handlers and busy polling,
          from Eric Dumazet.
      
       8) TX path in vxlan and geneve need proper RCU locking, from Jakub
          Kicinski.
      
       9) SYN processing in DCCP and TCP need to disable BH, from Eric
          Dumazet.
      
      10) Properly handle net_enable_timestamp() being invoked from IRQ
          context, also from Eric Dumazet.
      
      11) Fix crash on device-tree systems in xgene driver, from Alban Bedel.
      
      12) Do not call sk_free() on a locked socket, from Arnaldo Carvalho de
          Melo.
      
      13) Fix use-after-free in netvsc driver, from Dexuan Cui.
      
      14) Fix max MTU setting in bonding driver, from WANG Cong.
      
      15) xen-netback hash table can be allocated from softirq context, so use
          GFP_ATOMIC. From Anoob Soman.
      
      16) Fix MAC address change bug in bgmac driver, from Hari Vyas.
      
      17) strparser needs to destroy strp_wq on module exit, from WANG Cong.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (69 commits)
        strparser: destroy workqueue on module exit
        sfc: fix IPID endianness in TSOv2
        sfc: avoid max() in array size
        rds: remove unnecessary returned value check
        rxrpc: Fix potential NULL-pointer exception
        nfp: correct DMA direction in XDP DMA sync
        nfp: don't tell FW about the reserved buffer space
        net: ethernet: bgmac: mac address change bug
        net: ethernet: bgmac: init sequence bug
        xen-netback: don't vfree() queues under spinlock
        xen-netback: keep a local pointer for vif in backend_disconnect()
        netfilter: nf_tables: don't call nfnetlink_set_err() if nfnetlink_send() fails
        netfilter: nft_set_rbtree: incorrect assumption on lower interval lookups
        netfilter: nf_conntrack_sip: fix wrong memory initialisation
        can: flexcan: fix typo in comment
        can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer
        can: gs_usb: fix coding style
        can: gs_usb: Don't use stack memory for USB transfers
        ixgbe: Limit use of 2K buffers on architectures with 256B or larger cache lines
        ixgbe: update the rss key on h/w, when ethtool ask for it
        ...
      8d70eeb8
    • Linus Torvalds's avatar
      Merge tag 'kvm-4.11-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 2d62e076
      Linus Torvalds authored
      Pull more KVM updates from Radim Krčmář:
       "Second batch of KVM changes for the 4.11 merge window:
      
        PPC:
         - correct assumption about ASDR on POWER9
         - fix MMIO emulation on POWER9
      
        x86:
         - add a simple test for ioperm
         - cleanup TSS (going through KVM tree as the whole undertaking was
           caused by VMX's use of TSS)
         - fix nVMX interrupt delivery
         - fix some performance counters in the guest
      
        ... and two cleanup patches"
      
      * tag 'kvm-4.11-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: nVMX: Fix pending events injection
        x86/kvm/vmx: remove unused variable in segment_base()
        selftests/x86: Add a basic selftest for ioperm
        x86/asm: Tidy up TSS limit code
        kvm: convert kvm.users_count from atomic_t to refcount_t
        KVM: x86: never specify a sample period for virtualized in_tx_cp counters
        KVM: PPC: Book3S HV: Don't use ASDR for real-mode HPT faults on POWER9
        KVM: PPC: Book3S HV: Fix software walk of guest process page tables
      2d62e076
    • Linus Torvalds's avatar
      Merge tag 'docs-4.11-fixes' of git://git.lwn.net/linux · be834aaf
      Linus Torvalds authored
      Pull documentation fixes from Jonathan Corbet:
       "A few fixes for the docs tree, including one for a 4.11 build
        regression"
      
      * tag 'docs-4.11-fixes' of git://git.lwn.net/linux:
        Documentation/sphinx: fix primary_domain configuration
        docs: Fix htmldocs build failure
        doc/ko_KR/memory-barriers: Update control-dependencies section
        pcieaer doc: update the link
        Documentation: Update path to sysrq.txt
      be834aaf
    • Linus Torvalds's avatar
      Merge tag 'staging-4.11-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 91aff98b
      Linus Torvalds authored
      Pull staging/IIO driver fixes from Greg KH:
       "Here are a few small staging and IIO driver fixes for issues that
        showed up after the big set if changes you merged last week.
      
        Nothing major, just small bugs resolved in some IIO drivers, a lustre
        allocation fix, and some RaspberryPi driver fixes for reported
        problems, as well as a MAINTAINERS entry update.
      
        All of these have been in linux-next for a week with no reported
        issues"
      
      * tag 'staging-4.11-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: fsl-mc: fix warning in DT ranges parser
        MAINTAINERS: Remove Noralf Trønnes as fbtft maintainer
        staging: vchiq_2835_arm: Make cache-line-size a required DT property
        staging: bcm2835/mmal-vchiq: unlock on error in buffer_from_host()
        staging/lustre/lnet: Fix allocation size for sv_cpt_data
        iio: adc: xilinx: Fix error handling
        iio: 104-quad-8: Fix off-by-one error when addressing flag register
        iio: adc: handle unknow of_device_id data
      91aff98b
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 33a8b3e9
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
      
       - vmalloc stack regression in CCM
      
       - Build problem in CRC32 on ARM
      
       - Memory leak in cavium
      
       - Missing Kconfig dependencies in atmel and mediatek
      
       - XTS Regression on some platforms (s390 and ppc)
      
       - Memory overrun in CCM test vector
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: vmx - Use skcipher for xts fallback
        crypto: vmx - Use skcipher for cbc fallback
        crypto: testmgr - Pad aes_ccm_enc_tv_template vector
        crypto: arm/crc32 - add build time test for CRC instruction support
        crypto: arm/crc32 - fix build error with outdated binutils
        crypto: ccm - move cbcmac input off the stack
        crypto: xts - Propagate NEED_FALLBACK bit
        crypto: api - Add crypto_requires_off helper
        crypto: atmel - CRYPTO_DEV_MEDIATEK should depend on HAS_DMA
        crypto: atmel - CRYPTO_DEV_ATMEL_TDES and CRYPTO_DEV_ATMEL_SHA should depend on HAS_DMA
        crypto: cavium - fix leak on curr if curr->head fails to be allocated
        crypto: cavium - Fix couple of static checker errors
      33a8b3e9
  5. Mar 04, 2017