1. 19 12月, 2017 37 次提交
  2. 18 12月, 2017 3 次提交
    • D
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next · 59436c9e
      David S. Miller 提交于
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf-next 2017-12-18
      
      The following pull-request contains BPF updates for your *net-next* tree.
      
      The main changes are:
      
      1) Allow arbitrary function calls from one BPF function to another BPF function.
         As of today when writing BPF programs, __always_inline had to be used in
         the BPF C programs for all functions, unnecessarily causing LLVM to inflate
         code size. Handle this more naturally with support for BPF to BPF calls
         such that this __always_inline restriction can be overcome. As a result,
         it allows for better optimized code and finally enables to introduce core
         BPF libraries in the future that can be reused out of different projects.
         x86 and arm64 JIT support was added as well, from Alexei.
      
      2) Add infrastructure for tagging functions as error injectable and allow for
         BPF to return arbitrary error values when BPF is attached via kprobes on
         those. This way of injecting errors generically eases testing and debugging
         without having to recompile or restart the kernel. Tags for opting-in for
         this facility are added with BPF_ALLOW_ERROR_INJECTION(), from Josef.
      
      3) For BPF offload via nfp JIT, add support for bpf_xdp_adjust_head() helper
         call for XDP programs. First part of this work adds handling of BPF
         capabilities included in the firmware, and the later patches add support
         to the nfp verifier part and JIT as well as some small optimizations,
         from Jakub.
      
      4) The bpftool now also gets support for basic cgroup BPF operations such
         as attaching, detaching and listing current BPF programs. As a requirement
         for the attach part, bpftool can now also load object files through
         'bpftool prog load'. This reuses libbpf which we have in the kernel tree
         as well. bpftool-cgroup man page is added along with it, from Roman.
      
      5) Back then commit e87c6bc3 ("bpf: permit multiple bpf attachments for
         a single perf event") added support for attaching multiple BPF programs
         to a single perf event. Given they are configured through perf's ioctl()
         interface, the interface has been extended with a PERF_EVENT_IOC_QUERY_BPF
         command in this work in order to return an array of one or multiple BPF
         prog ids that are currently attached, from Yonghong.
      
      6) Various minor fixes and cleanups to the bpftool's Makefile as well
         as a new 'uninstall' and 'doc-uninstall' target for removing bpftool
         itself or prior installed documentation related to it, from Quentin.
      
      7) Add CONFIG_CGROUP_BPF=y to the BPF kernel selftest config file which is
         required for the test_dev_cgroup test case to run, from Naresh.
      
      8) Fix reporting of XDP prog_flags for nfp driver, from Jakub.
      
      9) Fix libbpf's exit code from the Makefile when libelf was not found in
         the system, also from Jakub.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      59436c9e
    • J
      trace: reenable preemption if we modify the ip · 46df3d20
      Josef Bacik 提交于
      Things got moved around between the original bpf_override_return patches
      and the final version, and now the ftrace kprobe dispatcher assumes if
      you modified the ip that you also enabled preemption.  Make a comment of
      this and enable preemption, this fixes the lockdep splat that happened
      when using this feature.
      
      Fixes: 9802d865 ("bpf: add a bpf_override_function helper")
      Signed-off-by: NJosef Bacik <jbacik@fb.com>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      46df3d20
    • J
      nfp: set flags in the correct member of netdev_bpf · 4a29c0db
      Jakub Kicinski 提交于
      netdev_bpf.flags is the input member for installing the program.
      netdev_bpf.prog_flags is the output member for querying.  Set
      the correct one on query.
      
      Fixes: 92f0292b ("net: xdp: report flags program was installed with on query")
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Reviewed-by: NQuentin Monnet <quentin.monnet@netronome.com>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      4a29c0db