Skip to content
  1. Mar 31, 2022
  2. Mar 30, 2022
    • Jakub Kicinski's avatar
      Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf · 77c9387c
      Jakub Kicinski authored
      
      
      Alexei Starovoitov says:
      
      ====================
      pull-request: bpf 2022-03-29
      
      We've added 16 non-merge commits during the last 1 day(s) which contain
      a total of 24 files changed, 354 insertions(+), 187 deletions(-).
      
      The main changes are:
      
      1) x86 specific bits of fprobe/rethook, from Masami and Peter.
      
      2) ice/xsk fixes, from Maciej and Magnus.
      
      3) Various small fixes, from Andrii, Yonghong, Geliang and others.
      
      * https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf:
        selftests/bpf: Fix clang compilation errors
        ice: xsk: Fix indexing in ice_tx_xsk_pool()
        ice: xsk: Stop Rx processing when ntc catches ntu
        ice: xsk: Eliminate unnecessary loop iteration
        xsk: Do not write NULL in SW ring at allocation failure
        x86,kprobes: Fix optprobe trampoline to generate complete pt_regs
        x86,rethook: Fix arch_rethook_trampoline() to generate a complete pt_regs
        x86,rethook,kprobes: Replace kretprobe with rethook on x86
        kprobes: Use rethook for kretprobe if possible
        bpftool: Fix generated code in codegen_asserts
        selftests/bpf: fix selftest after random: Urandom_read tracepoint removal
        bpf: Fix maximum permitted number of arguments check
        bpf: Sync comments for bpf_get_stack
        fprobe: Fix sparse warning for acccessing __rcu ftrace_hash
        fprobe: Fix smatch type mismatch warning
        bpf/bpftool: Add unprivileged_bpf_disabled check against value of 2
      ====================
      
      Link: https://lore.kernel.org/r/20220329234924.39053-1-alexei.starovoitov@gmail.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      77c9387c
    • Vinod Koul's avatar
      dt-bindings: net: qcom,ethqos: Document SM8150 SoC compatible · 6094e391
      Vinod Koul authored
      
      
      SM8150 has an ethernet controller and it needs a different
      configuration, so add a new compatible for this.
      
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
      [bhsharma: Massage the commit log]
      Signed-off-by: default avatarBhupesh Sharma <bhupesh.sharma@linaro.org>
      Link: https://lore.kernel.org/r/20220325200731.1585554-1-bhupesh.sharma@linaro.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      6094e391
  3. Mar 29, 2022
    • Michael Walle's avatar
      net: lan966x: fix kernel oops on ioctl when I/F is down · ad7da1ce
      Michael Walle authored
      ioctls handled by phy_mii_ioctl() will cause a kernel oops when the
      interface is down. Fix it by making sure there is a PHY attached.
      
      Fixes: 735fec99
      
       ("net: lan966x: Implement SIOCSHWTSTAMP and SIOCGHWTSTAMP")
      Signed-off-by: default avatarMichael Walle <michael@walle.cc>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Link: https://lore.kernel.org/r/20220328220350.3118969-1-michael@walle.cc
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      ad7da1ce
    • Paolo Abeni's avatar
      Merge branch 'fix-uaf-bugs-caused-by-ax25_release' · 807ca64e
      Paolo Abeni authored
      
      
      Duoming Zhou says:
      
      ====================
      Fix UAF bugs caused by ax25_release()
      
      The first patch fixes UAF bugs in ax25_send_control, and
      the second patch fixes UAF bugs in ax25 timers.
      ====================
      
      Link: https://lore.kernel.org/r/cover.1648472006.git.duoming@zju.edu.cn
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      807ca64e
    • Duoming Zhou's avatar
      ax25: Fix UAF bugs in ax25 timers · 82e31755
      Duoming Zhou authored
      
      
      There are race conditions that may lead to UAF bugs in
      ax25_heartbeat_expiry(), ax25_t1timer_expiry(), ax25_t2timer_expiry(),
      ax25_t3timer_expiry() and ax25_idletimer_expiry(), when we call
      ax25_release() to deallocate ax25_dev.
      
      One of the UAF bugs caused by ax25_release() is shown below:
      
            (Thread 1)                    |      (Thread 2)
      ax25_dev_device_up() //(1)          |
      ...                                 | ax25_kill_by_device()
      ax25_bind()          //(2)          |
      ax25_connect()                      | ...
       ax25_std_establish_data_link()     |
        ax25_start_t1timer()              | ax25_dev_device_down() //(3)
         mod_timer(&ax25->t1timer,..)     |
                                          | ax25_release()
         (wait a time)                    |  ...
                                          |  ax25_dev_put(ax25_dev) //(4)FREE
         ax25_t1timer_expiry()            |
          ax25->ax25_dev->values[..] //USE|  ...
           ...                            |
      
      We increase the refcount of ax25_dev in position (1) and (2), and
      decrease the refcount of ax25_dev in position (3) and (4).
      The ax25_dev will be freed in position (4) and be used in
      ax25_t1timer_expiry().
      
      The fail log is shown below:
      ==============================================================
      
      [  106.116942] BUG: KASAN: use-after-free in ax25_t1timer_expiry+0x1c/0x60
      [  106.116942] Read of size 8 at addr ffff88800bda9028 by task swapper/0/0
      [  106.116942] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.17.0-06123-g0905eec574
      [  106.116942] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-14
      [  106.116942] Call Trace:
      ...
      [  106.116942]  ax25_t1timer_expiry+0x1c/0x60
      [  106.116942]  call_timer_fn+0x122/0x3d0
      [  106.116942]  __run_timers.part.0+0x3f6/0x520
      [  106.116942]  run_timer_softirq+0x4f/0xb0
      [  106.116942]  __do_softirq+0x1c2/0x651
      ...
      
      This patch adds del_timer_sync() in ax25_release(), which could ensure
      that all timers stop before we deallocate ax25_dev.
      
      Signed-off-by: default avatarDuoming Zhou <duoming@zju.edu.cn>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      82e31755
    • Duoming Zhou's avatar
      ax25: fix UAF bug in ax25_send_control() · 5352a761
      Duoming Zhou authored
      There are UAF bugs in ax25_send_control(), when we call ax25_release()
      to deallocate ax25_dev. The possible race condition is shown below:
      
            (Thread 1)              |     (Thread 2)
      ax25_dev_device_up() //(1)    |
                                    | ax25_kill_by_device()
      ax25_bind()          //(2)    |
      ax25_connect()                | ...
       ax25->state = AX25_STATE_1   |
       ...                          | ax25_dev_device_down() //(3)
      
            (Thread 3)
      ax25_release()                |
       ax25_dev_put()  //(4) FREE   |
       case AX25_STATE_1:           |
        ax25_send_control()         |
         alloc_skb()       //USE    |
      
      The refcount of ax25_dev increases in position (1) and (2), and
      decreases in position (3) and (4). The ax25_dev will be freed
      before dereference sites in ax25_send_control().
      
      The following is part of the report:
      
      [  102.297448] BUG: KASAN: use-after-free in ax25_send_control+0x33/0x210
      [  102.297448] Read of size 8 at addr ffff888009e6e408 by task ax25_close/602
      [  102.297448] Call Trace:
      [  102.303751]  ax25_send_control+0x33/0x210
      [  102.303751]  ax25_release+0x356/0x450
      [  102.305431]  __sock_release+0x6d/0x120
      [  102.305431]  sock_close+0xf/0x20
      [  102.305431]  __fput+0x11f/0x420
      [  102.305431]  task_work_run+0x86/0xd0
      [  102.307130]  get_signal+0x1075/0x1220
      [  102.308253]  arch_do_signal_or_restart+0x1df/0xc00
      [  102.308253]  exit_to_user_mode_prepare+0x150/0x1e0
      [  102.308253]  syscall_exit_to_user_mode+0x19/0x50
      [  102.308253]  do_syscall_64+0x48/0x90
      [  102.308253]  entry_SYSCALL_64_after_hwframe+0x44/0xae
      [  102.308253] RIP: 0033:0x405ae7
      
      This patch defers the free operation of ax25_dev and net_device after
      all corresponding dereference sites in ax25_release() to avoid UAF.
      
      Fixes: 9fd75b66
      
       ("ax25: Fix refcount leaks caused by ax25_cb_del()")
      Signed-off-by: default avatarDuoming Zhou <duoming@zju.edu.cn>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      5352a761
    • Martin Varghese's avatar
      openvswitch: Fixed nd target mask field in the flow dump. · f19c4445
      Martin Varghese authored
      IPv6 nd target mask was not getting populated in flow dump.
      
      In the function __ovs_nla_put_key the icmp code mask field was checked
      instead of icmp code key field to classify the flow as neighbour discovery.
      
      ufid:bdfbe3e5-60c2-43b0-a5ff-dfcac1c37328, recirc_id(0),dp_hash(0/0),
      skb_priority(0/0),in_port(ovs-nm1),skb_mark(0/0),ct_state(0/0),
      ct_zone(0/0),ct_mark(0/0),ct_label(0/0),
      eth(src=00:00:00:00:00:00/00:00:00:00:00:00,
      dst=00:00:00:00:00:00/00:00:00:00:00:00),
      eth_type(0x86dd),
      ipv6(src=::/::,dst=::/::,label=0/0,proto=58,tclass=0/0,hlimit=0/0,frag=no),
      icmpv6(type=135,code=0),
      nd(target=2001::2/::,
      sll=00:00:00:00:00:00/00:00:00:00:00:00,
      tll=00:00:00:00:00:00/00:00:00:00:00:00),
      packets:10, bytes:860, used:0.504s, dp:ovs, actions:ovs-nm2
      
      Fixes: e6445719
      
       (openvswitch: Restructure datapath.c and flow.c)
      Signed-off-by: default avatarMartin Varghese <martin.varghese@nokia.com>
      Link: https://lore.kernel.org/r/20220328054148.3057-1-martinvarghesenokia@gmail.com
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      f19c4445
    • Yonghong Song's avatar
      selftests/bpf: Fix clang compilation errors · ccaff3d5
      Yonghong Song authored
      
      
      llvm upstream patch ([1]) added to issue warning for code like
        void test() {
          int j = 0;
          for (int i = 0; i < 1000; i++)
                  j++;
          return;
        }
      
      This triggered several errors in selftests/bpf build since
      compilation flag -Werror is used.
        ...
        test_lpm_map.c:212:15: error: variable 'n_matches' set but not used [-Werror,-Wunused-but-set-variable]
              size_t i, j, n_matches, n_matches_after_delete, n_nodes, n_lookups;
                           ^
        test_lpm_map.c:212:26: error: variable 'n_matches_after_delete' set but not used [-Werror,-Wunused-but-set-variable]
              size_t i, j, n_matches, n_matches_after_delete, n_nodes, n_lookups;
                                      ^
        ...
        prog_tests/get_stack_raw_tp.c:32:15: error: variable 'cnt' set but not used [-Werror,-Wunused-but-set-variable]
              static __u64 cnt;
                           ^
        ...
      
        For test_lpm_map.c, 'n_matches'/'n_matches_after_delete' are changed to be volatile
        in order to silent the warning. I didn't remove these two declarations since
        they are referenced in a commented code which might be used by people in certain
        cases. For get_stack_raw_tp.c, the variable 'cnt' is removed.
      
        [1] https://reviews.llvm.org/D122271
      
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20220325200304.2915588-1-yhs@fb.com
      ccaff3d5
    • Alexei Starovoitov's avatar
      Merge branch 'xsk: another round of fixes' · 9e928831
      Alexei Starovoitov authored
      
      
      Maciej Fijalkowski says:
      
      ====================
      
      Hello,
      
      yet another fixes for XSK from Magnus and me.
      
      Magnus addresses the fact that xp_alloc() can return NULL, so this needs
      to be handled to avoid clearing entries in the SW ring on driver side.
      Then he addresses the off-by-one problem in Tx desc cleaning routine for
      ice ZC driver.
      
      From my side, I am adding protection to ZC Rx processing loop so that
      cleaning of descriptors wouldn't go over already processed entries.
      Then I also fix an issue with assigning XSK pool to Tx queues.
      
      This is directed to bpf tree.
      
      Thanks!
      
      Maciej Fijalkowski (2):
        ice: xsk: stop Rx processing when ntc catches ntu
        ice: xsk: fix indexing in ice_tx_xsk_pool()
      ====================
      
      Acked-by: default avatarAlexander Lobakin <alexandr.lobakin@intel.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      9e928831
    • Maciej Fijalkowski's avatar
      ice: xsk: Fix indexing in ice_tx_xsk_pool() · 1ac2524d
      Maciej Fijalkowski authored
      Ice driver tries to always create XDP rings array to be
      num_possible_cpus() sized, regardless of user's queue count setting that
      can be changed via ethtool -L for example.
      
      Currently, ice_tx_xsk_pool() calculates the qid by decrementing the
      ring->q_index by the count of XDP queues, but ring->q_index is set to 'i
      + vsi->alloc_txq'.
      
      When user did ethtool -L $IFACE combined 1, alloc_txq is 1, but
      vsi->num_xdp_txq is still num_possible_cpus(). Then, ice_tx_xsk_pool()
      will do OOB access and in the final result ring would not get xsk_pool
      pointer assigned. Then, each ice_xsk_wakeup() call will fail with error
      and it will not be possible to get into NAPI and do the processing from
      driver side.
      
      Fix this by decrementing vsi->alloc_txq instead of vsi->num_xdp_txq from
      ring-q_index in ice_tx_xsk_pool() so the calculation is reflected to the
      setting of ring->q_index.
      
      Fixes: 22bf877e
      
       ("ice: introduce XDP_TX fallback path")
      Signed-off-by: default avatarMaciej Fijalkowski <maciej.fijalkowski@intel.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20220328142123.170157-5-maciej.fijalkowski@intel.com
      1ac2524d
    • Maciej Fijalkowski's avatar
      ice: xsk: Stop Rx processing when ntc catches ntu · 0ec17130
      Maciej Fijalkowski authored
      This can happen with big budget values and some breakage of re-filling
      descriptors as we do not clear the entry that ntu is pointing at the end
      of ice_alloc_rx_bufs_zc. So if ntc is at ntu then it might be the case
      that status_error0 has an old, uncleared value and ntc would go over
      with processing which would result in false results.
      
      Break Rx loop when ntc == ntu to avoid broken behavior.
      
      Fixes: 3876ff52
      
       ("ice: xsk: Handle SW XDP ring wrap and bump tail more often")
      Signed-off-by: default avatarMaciej Fijalkowski <maciej.fijalkowski@intel.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20220328142123.170157-4-maciej.fijalkowski@intel.com
      0ec17130
    • Magnus Karlsson's avatar
      ice: xsk: Eliminate unnecessary loop iteration · 30d19d57
      Magnus Karlsson authored
      The NIC Tx ring completion routine cleans entries from the ring in
      batches. However, it processes one more batch than it is supposed
      to. Note that this does not matter from a functionality point of view
      since it will not find a set DD bit for the next batch and just exit
      the loop. But from a performance perspective, it is faster to
      terminate the loop before and not issue an expensive read over PCIe to
      get the DD bit.
      
      Fixes: 126cdfe1
      
       ("ice: xsk: Improve AF_XDP ZC Tx and use batching API")
      Signed-off-by: default avatarMagnus Karlsson <magnus.karlsson@intel.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20220328142123.170157-3-maciej.fijalkowski@intel.com
      30d19d57
    • Magnus Karlsson's avatar
      xsk: Do not write NULL in SW ring at allocation failure · a95a4d9b
      Magnus Karlsson authored
      For the case when xp_alloc_batch() is used but the batched allocation
      cannot be used, there is a slow path that uses the non-batched
      xp_alloc(). When it fails to allocate an entry, it returns NULL. The
      current code wrote this NULL into the entry of the provided results
      array (pointer to the driver SW ring usually) and returned. This might
      not be what the driver expects and to make things simpler, just write
      successfully allocated xdp_buffs into the SW ring,. The driver might
      have information in there that is still important after an allocation
      failure.
      
      Note that at this point in time, there are no drivers using
      xp_alloc_batch() that could trigger this slow path. But one might get
      added.
      
      Fixes: 47e4075d
      
       ("xsk: Batched buffer allocation for the pool")
      Signed-off-by: default avatarMagnus Karlsson <magnus.karlsson@intel.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20220328142123.170157-2-maciej.fijalkowski@intel.com
      a95a4d9b
    • Alexei Starovoitov's avatar
      Merge branch 'kprobes: rethook: x86: Replace kretprobe trampoline with rethook' · 7df482e6
      Alexei Starovoitov authored
      
      
      Masami Hiramatsu says:
      
      ====================
      Here are the 3rd version for generic kretprobe and kretprobe on x86 for
      replacing the kretprobe trampoline with rethook. The previous version
      is here[1]
      
      [1] https://lore.kernel.org/all/164821817332.2373735.12048266953420821089.stgit@devnote2/T/#u
      
      This version fixed typo and build issues for bpf-next and CONFIG_RETHOOK=y
      error. I also add temporary mitigation lines for ANNOTATE_NOENDBR macro
      issue for bpf-next tree [2/4].
      
      This will be removed after merging kernel IBT series.
      
      Background:
      
      This rethook came from Jiri's request of multiple kprobe for bpf[2].
      He tried to solve an issue that starting bpf with multiple kprobe will
      take a long time because bpf-kprobe will wait for RCU grace period for
      sync rcu events.
      
      Jiri wanted to attach a single bpf handler to multiple kprobes and
      he tried to introduce multiple-probe interface to kprobe. So I asked
      him to use ftrace and kretprobe-like hook if it is only for the
      function entry and exit, instead of adding ad-hoc interface
      to kprobes.
      For this purpose, I introduced the fprobe (kprobe like interface for
      ftrace) with the rethook (this is a generic return hook feature for
      fprobe exit handler)[3].
      
      [2] https://lore.kernel.org/all/20220104080943.113249-1-jolsa@kernel.org/T/#u
      [3] https://lore.kernel.org/all/164191321766.806991.7930388561276940676.stgit@devnote2/T/#u
      
      The rethook is basically same as the kretprobe trampoline. I just made
      it decoupled from kprobes. Eventually, the all arch dependent kretprobe
      trampolines will be replaced with the rethook trampoline instead of
      cloning and set HAVE_RETHOOK=y.
      When I port the rethook for all arch which supports kretprobe, the
      legacy kretprobe specific code (which is for CONFIG_KRETPROBE_ON_RETHOOK=n)
      will be removed eventually.
      ====================
      
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      7df482e6
    • Masami Hiramatsu's avatar
      x86,kprobes: Fix optprobe trampoline to generate complete pt_regs · 45c23bf4
      Masami Hiramatsu authored
      
      
      Currently the optprobe trampoline template code ganerate an
      almost complete pt_regs on-stack, everything except regs->ss.
      The 'regs->ss' points to the top of stack, which is not a
      valid segment decriptor.
      
      As same as the rethook does, complete the job by also pushing ss.
      
      Suggested-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/164826166027.2455864.14759128090648961900.stgit@devnote2
      45c23bf4
    • Peter Zijlstra's avatar
      x86,rethook: Fix arch_rethook_trampoline() to generate a complete pt_regs · 0ef6f5c0
      Peter Zijlstra authored
      
      
      Currently arch_rethook_trampoline() generates an almost complete
      pt_regs on-stack, everything except regs->ss that is, that currently
      points to the fake return address, which is not a valid segment
      descriptor.
      
      Since interpretation of regs->[sb]p should be done in the context of
      regs->ss, and we have code actually doing that (see
      arch/x86/lib/insn-eval.c for instance), complete the job by also
      pushing ss.
      
      This ensures that anybody who does do look at regs->ss doesn't
      mysteriously malfunction, avoiding much future pain.
      
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Reviewed-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Link: https://lore.kernel.org/bpf/164826164851.2455864.17272661073069737350.stgit@devnote2
      0ef6f5c0
    • Masami Hiramatsu's avatar
      x86,rethook,kprobes: Replace kretprobe with rethook on x86 · f3a112c0
      Masami Hiramatsu authored
      
      
      Replaces the kretprobe code with rethook on x86. With this patch,
      kretprobe on x86 uses the rethook instead of kretprobe specific
      trampoline code.
      
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Tested-by: default avatarJiri Olsa <jolsa@kernel.org>
      Link: https://lore.kernel.org/bpf/164826163692.2455864.13745421016848209527.stgit@devnote2
      f3a112c0
    • Masami Hiramatsu's avatar
      kprobes: Use rethook for kretprobe if possible · 73f9b911
      Masami Hiramatsu authored
      
      
      Use rethook for kretprobe function return hooking if the arch sets
      CONFIG_HAVE_RETHOOK=y. In this case, CONFIG_KRETPROBE_ON_RETHOOK is
      set to 'y' automatically, and the kretprobe internal data fields
      switches to use rethook. If not, it continues to use kretprobe
      specific function return hooks.
      
      Suggested-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/164826162556.2455864.12255833167233452047.stgit@devnote2
      73f9b911
    • Jiri Olsa's avatar
      bpftool: Fix generated code in codegen_asserts · ef8a257b
      Jiri Olsa authored
      Arnaldo reported perf compilation fail with:
      
        $ make -k BUILD_BPF_SKEL=1 CORESIGHT=1 PYTHON=python3
        ...
        In file included from util/bpf_counter.c:28:
        /tmp/build/perf//util/bpf_skel/bperf_leader.skel.h: In function ‘bperf_leader_bpf__assert’:
        /tmp/build/perf//util/bpf_skel/bperf_leader.skel.h:351:51: error: unused parameter ‘s’ [-Werror=unused-parameter]
          351 | bperf_leader_bpf__assert(struct bperf_leader_bpf *s)
              |                          ~~~~~~~~~~~~~~~~~~~~~~~~~^
        cc1: all warnings being treated as errors
      
      If there's nothing to generate in the new assert function,
      we will get unused 's' warn/error, adding 'unused' attribute to it.
      
      Fixes: 08d4dba6
      
       ("bpftool: Bpf skeletons assert type sizes")
      Reported-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Link: https://lore.kernel.org/bpf/20220328083703.2880079-1-jolsa@kernel.org
      ef8a257b
    • Andrii Nakryiko's avatar
      selftests/bpf: fix selftest after random: Urandom_read tracepoint removal · 99dea2c6
      Andrii Nakryiko authored
      14c17463
      
       ("random: remove unused tracepoints") removed all the
      tracepoints from drivers/char/random.c, one of which,
      random:urandom_read, was used by stacktrace_build_id selftest to trigger
      stack trace capture.
      
      Fix breakage by switching to kprobing urandom_read() function.
      
      Suggested-by: default avatarYonghong Song <yhs@fb.com>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarYonghong Song <yhs@fb.com>
      Link: https://lore.kernel.org/bpf/20220325225643.2606-1-andrii@kernel.org
      99dea2c6
    • Yuntao Wang's avatar
      bpf: Fix maximum permitted number of arguments check · c29a4920
      Yuntao Wang authored
      
      
      Since the m->arg_size array can hold up to MAX_BPF_FUNC_ARGS argument
      sizes, it's ok that nargs is equal to MAX_BPF_FUNC_ARGS.
      
      Signed-off-by: default avatarYuntao Wang <ytcoode@gmail.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Link: https://lore.kernel.org/bpf/20220324164238.1274915-1-ytcoode@gmail.com
      c29a4920
    • Geliang Tang's avatar
      bpf: Sync comments for bpf_get_stack · 98870605
      Geliang Tang authored
      Commit ee2a0988 missed updating the comments for helper bpf_get_stack
      in tools/include/uapi/linux/bpf.h. Sync it.
      
      Fixes: ee2a0988
      
       ("bpf: Adjust BPF stack helper functions to accommodate skip > 0")
      Signed-off-by: default avatarGeliang Tang <geliang.tang@suse.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Link: https://lore.kernel.org/bpf/ce54617746b7ed5e9ba3b844e55e74cb8a60e0b5.1648110794.git.geliang.tang@suse.com
      98870605
    • Alexei Starovoitov's avatar
      Merge branch 'fprobe: Fixes for Sparse and Smatch warnings' · 76db1784
      Alexei Starovoitov authored
      
      
      Masami Hiramatsu says:
      
      ====================
      
      Hi,
      
      These fprobe patches are for fixing the warnings by Smatch and sparse.
      This is arch independent part of the fixes.
      
      Thank you,
      ---
      ====================
      
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      76db1784
    • Masami Hiramatsu's avatar
      fprobe: Fix sparse warning for acccessing __rcu ftrace_hash · 261608f3
      Masami Hiramatsu authored
      
      
      Since ftrace_ops::local_hash::filter_hash field is an __rcu pointer,
      we have to use rcu_access_pointer() to access it.
      
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/164802093635.1732982.4938094876018890866.stgit@devnote2
      261608f3
    • Masami Hiramatsu's avatar
      fprobe: Fix smatch type mismatch warning · 9052e4e8
      Masami Hiramatsu authored
      
      
      Fix the type mismatching warning of 'rethook_node vs fprobe_rethook_node'
      found by Smatch.
      
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/164802092611.1732982.12268174743437084619.stgit@devnote2
      9052e4e8
    • Milan Landaverde's avatar
      bpf/bpftool: Add unprivileged_bpf_disabled check against value of 2 · 8c1b2119
      Milan Landaverde authored
      
      
      In [1], we added a kconfig knob that can set
      /proc/sys/kernel/unprivileged_bpf_disabled to 2
      
      We now check against this value in bpftool feature probe
      
      [1] https://lore.kernel.org/bpf/74ec548079189e4e4dffaeb42b8987bb3c852eee.1620765074.git.daniel@iogearbox.net
      
      Signed-off-by: default avatarMilan Landaverde <milan@mdaverde.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarQuentin Monnet <quentin@isovalent.com>
      Acked-by: default avatarKP Singh <kpsingh@kernel.org>
      Link: https://lore.kernel.org/bpf/20220322145012.1315376-1-milan@mdaverde.com
      8c1b2119
    • Linus Torvalds's avatar
      Merge tag 'net-5.18-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · d717e4ca
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from netfilter.
      
        Current release - regressions:
      
         - llc: only change llc->dev when bind() succeeds, fix null-deref
      
        Current release - new code bugs:
      
         - smc: fix a memory leak in smc_sysctl_net_exit()
      
         - dsa: realtek: make interface drivers depend on OF
      
        Previous releases - regressions:
      
         - sched: act_ct: fix ref leak when switching zones
      
        Previous releases - always broken:
      
         - netfilter: egress: report interface as outgoing
      
         - vsock/virtio: enable VQs early on probe and finish the setup before
           using them
      
        Misc:
      
         - memcg: enable accounting for nft objects"
      
      * tag 'net-5.18-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (39 commits)
        Revert "selftests: net: Add tls config dependency for tls selftests"
        net/smc: Send out the remaining data in sndbuf before close
        net: move net_unlink_todo() out of the header
        net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator
        net: bnxt_ptp: fix compilation error
        selftests: net: Add tls config dependency for tls selftests
        memcg: enable accounting for nft objects
        net/sched: act_ct: fix ref leak when switching zones
        net/smc: fix a memory leak in smc_sysctl_net_exit()
        selftests: tls: skip cmsg_to_pipe tests with TLS=n
        octeontx2-af: initialize action variable
        net: sparx5: switchdev: fix possible NULL pointer dereference
        net/x25: Fix null-ptr-deref caused by x25_disconnect
        qlcnic: dcb: default to returning -EOPNOTSUPP
        net: sparx5: depends on PTP_1588_CLOCK_OPTIONAL
        net: hns3: fix phy can not link up when autoneg off and reset
        net: hns3: add NULL pointer check for hns3_set/get_ringparam()
        net: hns3: add netdev reset check for hns3_set_tunable()
        net: hns3: clean residual vf config after disable sriov
        net: hns3: add max order judgement for tx spare buffer
        ...
      d717e4ca
    • Jakub Kicinski's avatar
      Revert "selftests: net: Add tls config dependency for tls selftests" · 20695e9a
      Jakub Kicinski authored
      This reverts commit d9142e1c.
      
      The test is supposed to run cleanly with TLS is disabled,
      to test compatibility with TCP behavior. I can't repro
      the failure [1], the problem should be debugged rather
      than papered over.
      
      Link: https://lore.kernel.org/all/20220325161203.7000698c@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com/ [1]
      Fixes: d9142e1c
      
       ("selftests: net: Add tls config dependency for tls selftests")
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      Link: https://lore.kernel.org/r/20220328212904.2685395-1-kuba@kernel.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      20695e9a
    • Wen Gu's avatar
      net/smc: Send out the remaining data in sndbuf before close · 906b3d64
      Wen Gu authored
      
      
      The current autocork algorithms will delay the data transmission
      in BH context to smc_release_cb() when sock_lock is hold by user.
      
      So there is a possibility that when connection is being actively
      closed (sock_lock is hold by user now), some corked data still
      remains in sndbuf, waiting to be sent by smc_release_cb(). This
      will cause:
      
      - smc_close_stream_wait(), which is called under the sock_lock,
        has a high probability of timeout because data transmission is
        delayed until sock_lock is released.
      
      - Unexpected data sends may happen after connction closed and use
        the rtoken which has been deleted by remote peer through
        LLC_DELETE_RKEY messages.
      
      So this patch will try to send out the remaining corked data in
      sndbuf before active close process, to ensure data integrity and
      avoid unexpected data transmission after close.
      
      Reported-by: default avatarGuangguan Wang <guangguan.wang@linux.alibaba.com>
      Fixes: 6b88af83
      
       ("net/smc: don't send in the BH context if sock_owned_by_user")
      Signed-off-by: default avatarWen Gu <guwen@linux.alibaba.com>
      Acked-by: default avatarKarsten Graul <kgraul@linux.ibm.com>
      Link: https://lore.kernel.org/r/1648447836-111521-1-git-send-email-guwen@linux.alibaba.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      906b3d64
    • Linus Torvalds's avatar
      Merge tag 'kgdb-5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux · cffb2b72
      Linus Torvalds authored
      Pull kgdb update from Daniel Thompson:
       "Only a single patch this cycle. Fix an obvious mistake with the kdb
        memory accessors.
      
        It was a stupid mistake (to/from backwards) but it has been there for
        a long time since many architectures tolerated it with surprisingly
        good grace"
      
      * tag 'kgdb-5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux:
        kdb: Fix the putarea helper function
      cffb2b72
    • Linus Torvalds's avatar
      Merge tag 'hexagon-5.18-0' of git://git.kernel.org/pub/scm/linux/kernel/git/bcain/linux · 023f3fef
      Linus Torvalds authored
      Pull hexagon update from Brian Cain:
       "Maintainer email update"
      
      * tag 'hexagon-5.18-0' of git://git.kernel.org/pub/scm/linux/kernel/git/bcain/linux:
        MAINTAINERS: update hexagon maintainer email, tree
      023f3fef
    • Linus Torvalds's avatar
      Merge tag 'microblaze-v5.18' of git://git.monstr.eu/linux-2.6-microblaze · b83d85a5
      Linus Torvalds authored
      Pull microblaze updates from Michal Simek:
      
       - Small fixups
      
       - Remove unused pci_phys_mem_access_prot()
      
      * tag 'microblaze-v5.18' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze/PCI: Remove pci_phys_mem_access_prot() dead code
        microblaze: add const to of_device_id
        microblaze: fix typo in a comment
      b83d85a5
    • Johannes Berg's avatar
      net: move net_unlink_todo() out of the header · f32404ae
      Johannes Berg authored
      
      
      There's no reason for this to be in netdevice.h, it's all
      just used in dev.c. Also make it no longer inline and let
      the compiler decide to do that by itself.
      
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Link: https://lore.kernel.org/r/20220325225023.f49b9056fe1c.I6b901a2df00000837a9bd251a8dd259bd23f5ded@changeid
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f32404ae
    • Xiaomeng Tong's avatar
      net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator · 6da69b1d
      Xiaomeng Tong authored
      The bug is here:
      	return rule;
      
      The list iterator value 'rule' will *always* be set and non-NULL
      by list_for_each_entry(), so it is incorrect to assume that the
      iterator value will be NULL if the list is empty or no element
      is found.
      
      To fix the bug, return 'rule' when found, otherwise return NULL.
      
      Fixes: ae7a5aff
      
       ("net: dsa: bcm_sf2: Keep copy of inserted rules")
      Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarXiaomeng Tong <xiam0nd.tong@gmail.com>
      Link: https://lore.kernel.org/r/20220328032431.22538-1-xiam0nd.tong@gmail.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      6da69b1d
    • Linus Torvalds's avatar
      Merge tag 'livepatching-for-5.18' of... · d111c9f0
      Linus Torvalds authored
      Merge tag 'livepatching-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
      
      Pull livepatching updates from Petr Mladek:
      
       - Forced transitions block only to-be-removed livepatches [Chengming]
      
       - Detect when ftrace handler could not be disabled in self-tests [David]
      
       - Calm down warning from a static analyzer [Tom]
      
      * tag 'livepatching-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        livepatch: Reorder to use before freeing a pointer
        livepatch: Don't block removal of patches that are safe to unload
        livepatch: Skip livepatch tests if ftrace cannot be configured
      d111c9f0
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.18-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · a701f370
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
      
       - A bunch of minor cleanups
      
       - A fix for kexec in Xen dom0 when executed on a high cpu number
      
       - A fix for resuming after suspend of a Xen guest with assigned PCI
         devices
      
       - A fix for a crash due to not disabled preemption when resuming as Xen
         dom0
      
      * tag 'for-linus-5.18-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen: fix is_xen_pmu()
        xen: don't hang when resuming PCI device
        arch:x86:xen: Remove unnecessary assignment in xen_apic_read()
        xen/grant-table: remove readonly parameter from functions
        xen/grant-table: remove gnttab_*transfer*() functions
        drivers/xen: use helper macro __ATTR_RW
        x86/xen: Fix kerneldoc warning
        xen: delay xen_hvm_init_time_ops() if kdump is boot on vcpu>=32
        xen: use time_is_before_eq_jiffies() instead of open coding it
      a701f370
    • Brian Cain's avatar
      MAINTAINERS: update hexagon maintainer email, tree · b0cf9b4b
      Brian Cain authored
      
      
      Some email infrastructure changes required this switch.
      
      Signed-off-by: default avatarBrian Cain <bcain@quicinc.com>
      b0cf9b4b
    • Damien Le Moal's avatar
      net: bnxt_ptp: fix compilation error · dcf50006
      Damien Le Moal authored
      The Broadcom bnxt_ptp driver does not compile with GCC 11.2.2 when
      CONFIG_WERROR is enabled. The following error is generated:
      
      drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c: In function ‘bnxt_ptp_enable’:
      drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:400:43: error: array
      subscript 255 is above array bounds of ‘struct pps_pin[4]’
      [-Werror=array-bounds]
        400 |  ptp->pps_info.pins[pin_id].event = BNXT_PPS_EVENT_EXTERNAL;
            |  ~~~~~~~~~~~~~~~~~~^~~~~~~~
      In file included from drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:20:
      drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h:75:24: note: while
      referencing ‘pins’
         75 |         struct pps_pin pins[BNXT_MAX_TSIO_PINS];
            |                        ^~~~
      cc1: all warnings being treated as errors
      
      This is due to the function ptp_find_pin() returning a pin ID of -1 when
      a valid pin is not found and this error never being checked.
      Change the TSIO_PIN_VALID() function to also check that a pin ID is not
      negative and use this macro in bnxt_ptp_enable() to check the result of
      the calls to ptp_find_pin() to return an error early for invalid pins.
      This fixes the compilation error.
      
      Cc: <stable@vger.kernel.org>
      Fixes: 9e518f25
      
       ("bnxt_en: 1PPS functions to configure TSIO pins")
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
      Reviewed-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Link: https://lore.kernel.org/r/20220328062708.207079-1-damien.lemoal@opensource.wdc.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      dcf50006