1. 31 12月, 2017 2 次提交
  2. 28 12月, 2017 1 次提交
  3. 24 12月, 2017 1 次提交
    • T
      x86/ldt: Make the LDT mapping RO · 9f5cb6b3
      Thomas Gleixner 提交于
      Now that the LDT mapping is in a known area when PAGE_TABLE_ISOLATION is
      enabled its a primary target for attacks, if a user space interface fails
      to validate a write address correctly. That can never happen, right?
      
      The SDM states:
      
          If the segment descriptors in the GDT or an LDT are placed in ROM, the
          processor can enter an indefinite loop if software or the processor
          attempts to update (write to) the ROM-based segment descriptors. To
          prevent this problem, set the accessed bits for all segment descriptors
          placed in a ROM. Also, remove operating-system or executive code that
          attempts to modify segment descriptors located in ROM.
      
      So its a valid approach to set the ACCESS bit when setting up the LDT entry
      and to map the table RO. Fixup the selftest so it can handle that new mode.
      
      Remove the manual ACCESS bit setter in set_tls_desc() as this is now
      pointless. Folded the patch from Peter Ziljstra.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Josh Poimboeuf <jpoimboe@redhat.com>
      Cc: Juergen Gross <jgross@suse.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      9f5cb6b3
  4. 23 12月, 2017 3 次提交
  5. 22 12月, 2017 1 次提交
  6. 21 12月, 2017 4 次提交
    • S
      tools/kvm_stat: sort '-f help' output · aa12f594
      Stefan Raspl 提交于
      Sort the fields returned by specifying '-f help' on the command line.
      While at it, simplify the code a bit, indent the output and eliminate an
      extra blank line at the beginning.
      Signed-off-by: NStefan Raspl <raspl@linux.vnet.ibm.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      aa12f594
    • A
      bpf: do not allow root to mangle valid pointers · 82abbf8d
      Alexei Starovoitov 提交于
      Do not allow root to convert valid pointers into unknown scalars.
      In particular disallow:
       ptr &= reg
       ptr <<= reg
       ptr += ptr
      and explicitly allow:
       ptr -= ptr
      since pkt_end - pkt == length
      
      1.
      This minimizes amount of address leaks root can do.
      In the future may need to further tighten the leaks with kptr_restrict.
      
      2.
      If program has such pointer math it's likely a user mistake and
      when verifier complains about it right away instead of many instructions
      later on invalid memory access it's easier for users to fix their progs.
      
      3.
      when register holding a pointer cannot change to scalar it allows JITs to
      optimize better. Like 32-bit archs could use single register for pointers
      instead of a pair required to hold 64-bit scalars.
      
      4.
      reduces architecture dependent behavior. Since code:
      r1 = r10;
      r1 &= 0xff;
      if (r1 ...)
      will behave differently arm64 vs x64 and offloaded vs native.
      
      A significant chunk of ptr mangling was allowed by
      commit f1174f77 ("bpf/verifier: rework value tracking")
      yet some of it was allowed even earlier.
      Signed-off-by: NAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      82abbf8d
    • J
      selftests/bpf: add tests for recent bugfixes · 2255f8d5
      Jann Horn 提交于
      These tests should cover the following cases:
      
       - MOV with both zero-extended and sign-extended immediates
       - implicit truncation of register contents via ALU32/MOV32
       - implicit 32-bit truncation of ALU32 output
       - oversized register source operand for ALU32 shift
       - right-shift of a number that could be positive or negative
       - map access where adding the operation size to the offset causes signed
         32-bit overflow
       - direct stack access at a ~4GiB offset
      
      Also remove the F_LOAD_WITH_STRICT_ALIGNMENT flag from a bunch of tests
      that should fail independent of what flags userspace passes.
      Signed-off-by: NJann Horn <jannh@google.com>
      Signed-off-by: NAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      2255f8d5
    • N
      selftests: net: Adding config fragment CONFIG_NUMA=y · 1c8e77fb
      Naresh Kamboju 提交于
      kernel config fragement CONFIG_NUMA=y is need for reuseport_bpf_numa.
      Signed-off-by: NNaresh Kamboju <naresh.kamboju@linaro.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1c8e77fb
  7. 20 12月, 2017 1 次提交
  8. 19 12月, 2017 2 次提交
    • J
      usbip: fix usbip bind writing random string after command in match_busid · 544c4605
      Juan Zea 提交于
      usbip bind writes commands followed by random string when writing to
      match_busid attribute in sysfs, caused by using full variable size
      instead of string length.
      Signed-off-by: NJuan Zea <juan.zea@qindel.com>
      Acked-by: NShuah Khan <shuahkh@osg.samsung.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      544c4605
    • H
      bpf: fix broken BPF selftest build on s390 · c682ccc4
      Hendrik Brueckner 提交于
      With 720f228e ("bpf: fix broken BPF selftest build") the
      inclusion of arch-specific header files changed.  Including the
      asm/bpf_perf_event.h on s390, correctly includes the s390 specific
      header file.  This header file tries then to include the s390
      asm/ptrace.h and the build fails with:
      
      cc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../../include/generated  -I../../../include    test_verifier.c
      +/root/git/linux/tools/testing/selftests/bpf/libbpf.a /root/git/linux/tools/testing/selftests/bpf/cgroup_helpers.c -lcap -lelf -o
      +/root/git/linux/tools/testing/selftests/bpf/test_verifier
      In file included from ../../../include/uapi/asm/bpf_perf_event.h:4:0,
                       from ../../../include/uapi/linux/bpf_perf_event.h:11,
                       from test_verifier.c:29:
      ../../../include/uapi/../../arch/s390/include/uapi/asm/bpf_perf_event.h:7:9: error: unknown type name 'user_pt_regs'
       typedef user_pt_regs bpf_user_pt_regs_t;
               ^~~~~~~~~~~~
      make: *** [../lib.mk:109: /root/git/linux/tools/testing/selftests/bpf/test_verifier] Error 1
      
      This is caused by a recent update to the s390 asm/ptrace.h file
      that is not (yet) available in the local installation.  That means,
      the s390 asm/ptrace.h must be included from the tools/arch/s390
      directory.
      
      Because there is no proper framework to deal with asm specific
      includes in tools/, slightly modify the s390 asm/bpf_perf_event.h
      to include the local ptrace.h header file.
      
      See also discussion on
      https://marc.info/?l=linux-s390&m=151359424420691&w=2
      
      Please note that this needs to be preserved until tools/ is able to
      correctly handle asm specific headers.
      
      References: https://marc.info/?l=linux-s390&m=151359424420691&w=2
      Fixes: 720f228e ("bpf: fix broken BPF selftest build")
      Signed-off-by: NHendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Cc: Daniel Borkmann <daniel@iogearbox.net>
      Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      c682ccc4
  9. 16 12月, 2017 1 次提交
  10. 15 12月, 2017 4 次提交
  11. 14 12月, 2017 10 次提交
  12. 13 12月, 2017 2 次提交
    • M
      tools/lib/lockdep: Add missing declaration of 'pr_cont()' · 92ccc262
      Mengting Zhang 提交于
      Commit:
      
        681fbec8 ("lockdep: Use consistent printing primitives")
      
      has moved lockdep away from using printk() for printing.
      
      The commit added usage of pr_cont() which wasn't wrapped in the
      userspace headers, causing the following warning for the
      liblockdep build:
      
      	../../../kernel/locking/lockdep.c:3544:2: warning: implicit declaration of function 'pr_cont' [-Wimplicit-function-declaration]
      
      Adding an empty declaration of 'pr_cont' fixes the problem.
      Signed-off-by: NMengting Zhang <zhangmengting@huawei.com>
      Signed-off-by: NSasha Levin <alexander.levin@verizon.com>
      Reviewed-by: NAlexander Sverdlin <alexander.sverdlin@gmail.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: a.p.zijlstra@chello.nl
      Link: http://lkml.kernel.org/r/20171212181644.11913-2-alexander.levin@verizon.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      92ccc262
    • D
      bpf: fix broken BPF selftest build · 720f228e
      Daniel Borkmann 提交于
      At least on x86_64, the kernel's BPF selftests seemed to have stopped
      to build due to 618e165b ("selftests/bpf: sync kernel headers and
      introduce arch support in Makefile"):
      
        [...]
        In file included from test_verifier.c:29:0:
        ../../../include/uapi/linux/bpf_perf_event.h:11:32:
           fatal error: asm/bpf_perf_event.h: No such file or directory
         #include <asm/bpf_perf_event.h>
                                      ^
        compilation terminated.
        [...]
      
      While pulling in tools/arch/*/include/uapi/asm/bpf_perf_event.h seems
      to work fine, there's no automated fall-back logic right now that would
      do the same out of tools/include/uapi/asm-generic/bpf_perf_event.h. The
      usual convention today is to add a include/[uapi/]asm/ equivalent that
      would pull in the correct arch header or generic one as fall-back, all
      ifdef'ed based on compiler target definition. It's similarly done also
      in other cases such as tools/include/asm/barrier.h, thus adapt the same
      here.
      
      Fixes: 618e165b ("selftests/bpf: sync kernel headers and introduce arch support in Makefile")
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Acked-by: NAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: NAlexei Starovoitov <ast@kernel.org>
      720f228e
  13. 12 12月, 2017 2 次提交
  14. 09 12月, 2017 3 次提交
  15. 08 12月, 2017 1 次提交
  16. 07 12月, 2017 2 次提交
    • I
      tooling/headers: Synchronize updated s390 and x86 UAPI headers · 34c9ca37
      Ingo Molnar 提交于
      There were two trivial updates to these upstream UAPI headers:
      
        arch/s390/include/uapi/asm/kvm.h
        arch/s390/include/uapi/asm/kvm_perf.h
        arch/x86/lib/x86-opcode-map.txt
      
      Synchronize them with their tooling copies.
      
      (The x86 opcode map includes a new instruction pattern now.)
      
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      34c9ca37
    • M
      objtool: Fix 64-bit build on 32-bit host · 14c47b54
      Mikulas Patocka 提交于
      The new ORC unwinder breaks the build of a 64-bit kernel on a 32-bit
      host.  Building the kernel on a i386 or x32 host fails with:
      
        orc_dump.c: In function 'orc_dump':
        orc_dump.c:105:26: error: passing argument 2 of 'elf_getshdrnum' from incompatible pointer type [-Werror=incompatible-pointer-types]
          if (elf_getshdrnum(elf, &nr_sections)) {
                                  ^
        In file included from /usr/local/include/gelf.h:32:0,
                         from elf.h:22,
                         from warn.h:26,
                         from orc_dump.c:20:
        /usr/local/include/libelf.h:304:12: note: expected 'size_t * {aka unsigned int *}' but argument is of type 'long unsigned int *'
         extern int elf_getshdrnum (Elf *__elf, size_t *__dst);
                    ^~~~~~~~~~~~~~
        orc_dump.c:190:17: error: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'Elf64_Sxword {aka long long int}' [-Werror=format=]
            printf("%s+%lx:", name, rela.r_addend);
                       ~~^          ~~~~~~~~~~~~~
                       %llx
      
      Fix the build failure.
      
      Another problem is that if the user specifies HOSTCC or HOSTLD
      variables, they are ignored in the objtool makefile.  Change the
      Makefile to respect these variables.
      Signed-off-by: NMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: NJosh Poimboeuf <jpoimboe@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Sven Joachim <svenjoac@gmx.de>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Fixes: 627fce14 ("objtool: Add ORC unwind table generation")
      Link: http://lkml.kernel.org/r/19f0e64d8e07e30a7b307cd010eb780c404fe08d.1512252895.git.jpoimboe@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      14c47b54