1. 13 Oct, 2022 4 commits
    • Xu Kuohai's avatar
      selftests/bpf: Fix memory leak caused by not destroying skeleton · 6e8280b9
      Xu Kuohai authored
      Some test cases does not destroy skeleton object correctly, causing ASAN
      to report memory leak warning. Fix it.
      
      Fixes: 0ef6740e ("selftests/bpf: Add tests for kptr_ref refcounting")
      Fixes: 1642a394 ("selftests/bpf: Add struct argument tests with fentry/fexit programs.")
      Signed-off-by: default avatarXu Kuohai <xukuohai@huawei.com>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Acked-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
      Link: https://lore.kernel.org/bpf/20221011120108.782373-4-xukuohai@huaweicloud.com
      6e8280b9
    • Xu Kuohai's avatar
      libbpf: Fix memory leak in parse_usdt_arg() · 0dc9254e
      Xu Kuohai authored
      In the arm64 version of parse_usdt_arg(), when sscanf returns 2, reg_name
      is allocated but not freed. Fix it.
      
      Fixes: 0f861992 ("libbpf: Usdt aarch64 arg parsing support")
      Signed-off-by: default avatarXu Kuohai <xukuohai@huawei.com>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Acked-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
      Link: https://lore.kernel.org/bpf/20221011120108.782373-3-xukuohai@huaweicloud.com
      0dc9254e
    • Xu Kuohai's avatar
      libbpf: Fix use-after-free in btf_dump_name_dups · 93c660ca
      Xu Kuohai authored
      ASAN reports an use-after-free in btf_dump_name_dups:
      
      ERROR: AddressSanitizer: heap-use-after-free on address 0xffff927006db at pc 0xaaaab5dfb618 bp 0xffffdd89b890 sp 0xffffdd89b928
      READ of size 2 at 0xffff927006db thread T0
          #0 0xaaaab5dfb614 in __interceptor_strcmp.part.0 (test_progs+0x21b614)
          #1 0xaaaab635f144 in str_equal_fn tools/lib/bpf/btf_dump.c:127
          #2 0xaaaab635e3e0 in hashmap_find_entry tools/lib/bpf/hashmap.c:143
          #3 0xaaaab635e72c in hashmap__find tools/lib/bpf/hashmap.c:212
          #4 0xaaaab6362258 in btf_dump_name_dups tools/lib/bpf/btf_dump.c:1525
          #5 0xaaaab636240c in btf_dump_resolve_name tools/lib/bpf/btf_dump.c:1552
          #6 0xaaaab6362598 in btf_dump_type_name tools/lib/bpf/btf_dump.c:1567
          #7 0xaaaab6360b48 in btf_dump_emit_struct_def tools/lib/bpf/btf_dump.c:912
          #8 0xaaaab6360630 in btf_dump_emit_type tools/lib/bpf/btf_dump.c:798
          #9 0xaaaab635f720 in btf_dump__dump_type tools/lib/bpf/btf_dump.c:282
          #10 0xaaaab608523c in test_btf_dump_incremental tools/testing/selftests/bpf/prog_tests/btf_dump.c:236
          #11 0xaaaab6097530 in test_btf_dump tools/testing/selftests/bpf/prog_tests/btf_dump.c:875
          #12 0xaaaab6314ed0 in run_one_test tools/testing/selftests/bpf/test_progs.c:1062
          #13 0xaaaab631a0a8 in main tools/testing/selftests/bpf/test_progs.c:1697
          #14 0xffff9676d214 in __libc_start_main ../csu/libc-start.c:308
          #15 0xaaaab5d65990  (test_progs+0x185990)
      
      0xffff927006db is located 11 bytes inside of 16-byte region [0xffff927006d0,0xffff927006e0)
      freed by thread T0 here:
          #0 0xaaaab5e2c7c4 in realloc (test_progs+0x24c7c4)
          #1 0xaaaab634f4a0 in libbpf_reallocarray tools/lib/bpf/libbpf_internal.h:191
          #2 0xaaaab634f840 in libbpf_add_mem tools/lib/bpf/btf.c:163
          #3 0xaaaab636643c in strset_add_str_mem tools/lib/bpf/strset.c:106
          #4 0xaaaab6366560 in strset__add_str tools/lib/bpf/strset.c:157
          #5 0xaaaab6352d70 in btf__add_str tools/lib/bpf/btf.c:1519
          #6 0xaaaab6353e10 in btf__add_field tools/lib/bpf/btf.c:2032
          #7 0xaaaab6084fcc in test_btf_dump_incremental tools/testing/selftests/bpf/prog_tests/btf_dump.c:232
          #8 0xaaaab6097530 in test_btf_dump tools/testing/selftests/bpf/prog_tests/btf_dump.c:875
          #9 0xaaaab6314ed0 in run_one_test tools/testing/selftests/bpf/test_progs.c:1062
          #10 0xaaaab631a0a8 in main tools/testing/selftests/bpf/test_progs.c:1697
          #11 0xffff9676d214 in __libc_start_main ../csu/libc-start.c:308
          #12 0xaaaab5d65990  (test_progs+0x185990)
      
      previously allocated by thread T0 here:
          #0 0xaaaab5e2c7c4 in realloc (test_progs+0x24c7c4)
          #1 0xaaaab634f4a0 in libbpf_reallocarray tools/lib/bpf/libbpf_internal.h:191
          #2 0xaaaab634f840 in libbpf_add_mem tools/lib/bpf/btf.c:163
          #3 0xaaaab636643c in strset_add_str_mem tools/lib/bpf/strset.c:106
          #4 0xaaaab6366560 in strset__add_str tools/lib/bpf/strset.c:157
          #5 0xaaaab6352d70 in btf__add_str tools/lib/bpf/btf.c:1519
          #6 0xaaaab6353ff0 in btf_add_enum_common tools/lib/bpf/btf.c:2070
          #7 0xaaaab6354080 in btf__add_enum tools/lib/bpf/btf.c:2102
          #8 0xaaaab6082f50 in test_btf_dump_incremental tools/testing/selftests/bpf/prog_tests/btf_dump.c:162
          #9 0xaaaab6097530 in test_btf_dump tools/testing/selftests/bpf/prog_tests/btf_dump.c:875
          #10 0xaaaab6314ed0 in run_one_test tools/testing/selftests/bpf/test_progs.c:1062
          #11 0xaaaab631a0a8 in main tools/testing/selftests/bpf/test_progs.c:1697
          #12 0xffff9676d214 in __libc_start_main ../csu/libc-start.c:308
          #13 0xaaaab5d65990  (test_progs+0x185990)
      
      The reason is that the key stored in hash table name_map is a string
      address, and the string memory is allocated by realloc() function, when
      the memory is resized by realloc() later, the old memory may be freed,
      so the address stored in name_map references to a freed memory, causing
      use-after-free.
      
      Fix it by storing duplicated string address in name_map.
      
      Fixes: 919d2b1d ("libbpf: Allow modification of BTF and add btf__add_str API")
      Signed-off-by: default avatarXu Kuohai <xukuohai@huawei.com>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Acked-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
      Link: https://lore.kernel.org/bpf/20221011120108.782373-2-xukuohai@huaweicloud.com
      93c660ca
    • Martin KaFai Lau's avatar
      selftests/bpf: S/iptables/iptables-legacy/ in the bpf_nf and xdp_synproxy test · de9c8d84
      Martin KaFai Lau authored
      The recent vm image in CI has reported error in selftests that use
      the iptables command.  Manu Bretelle has pointed out the difference
      in the recent vm image that the iptables is sym-linked to the iptables-nft.
      With this knowledge,  I can also reproduce the CI error by manually running
      with the 'iptables-nft'.
      
      This patch is to replace the iptables command with iptables-legacy
      to unblock the CI tests.
      Signed-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Acked-by: default avatarDavid Vernet <void@manifault.com>
      Link: https://lore.kernel.org/bpf/20221012221235.3529719-1-martin.lau@linux.dev
      de9c8d84
  2. 12 Oct, 2022 1 commit
  3. 10 Oct, 2022 7 commits
  4. 07 Oct, 2022 1 commit
  5. 06 Oct, 2022 4 commits
    • Jiri Olsa's avatar
      selftests/bpf: Add missing bpf_iter_vma_offset__destroy call · 1d2d941b
      Jiri Olsa authored
      Adding missing bpf_iter_vma_offset__destroy call and using in-skeletin
      link pointer so we don't need extra bpf_link__destroy call.
      
      Fixes: b3e1331e ("selftests/bpf: Test parameterized task BPF iterators.")
      Cc: Kui-Feng Lee <kuifeng@fb.com>
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Link: https://lore.kernel.org/r/20221006083106.117987-1-jolsa@kernel.orgSigned-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
      1d2d941b
    • Yonghong Song's avatar
      selftests/bpf: Add selftest deny_namespace to s390x deny list · 8206e4e9
      Yonghong Song authored
      BPF CI reported that selftest deny_namespace failed with s390x.
      
        test_unpriv_userns_create_no_bpf:PASS:no-bpf unpriv new user ns 0 nsec
        test_deny_namespace:PASS:skel load 0 nsec
        libbpf: prog 'test_userns_create': failed to attach: ERROR: strerror_r(-524)=22
        libbpf: prog 'test_userns_create': failed to auto-attach: -524
        test_deny_namespace:FAIL:attach unexpected error: -524 (errno 524)
        #57/1    deny_namespace/unpriv_userns_create_no_bpf:FAIL
        #57      deny_namespace:FAIL
      
      BPF program test_userns_create is a BPF LSM type program which is
      based on trampoline and s390x does not support s390x. Let add the
      test to x390x deny list to avoid this failure in BPF CI.
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Link: https://lore.kernel.org/r/20221006053429.3549165-1-yhs@fb.comSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      8206e4e9
    • Andrii Nakryiko's avatar
      scripts/bpf_doc.py: update logic to not assume sequential enum values · ce3e44a0
      Andrii Nakryiko authored
      Relax bpf_doc.py's expectation of all BPF_FUNC_xxx enumerators having
      sequential values increasing by one. Instead, only make sure that
      relative order of BPF helper descriptions in comments matches
      enumerators definitions order.
      
      Also additionally make sure that helper IDs are not duplicated.
      
      And also make sure that for cases when we have multiple descriptions for
      the same BPF helper (e.g., for bpf_get_socket_cookie()), all such
      descriptions are grouped together.
      
      Such checks should capture all the same (and more) issues in upstream
      UAPI headers, but also handle backported kernels correctly.
      Reported-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Reviewed-by: default avatarQuentin Monnet <quentin@isovalent.com>
      Link: https://lore.kernel.org/r/20221006042452.2089843-2-andrii@kernel.orgSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      ce3e44a0
    • Andrii Nakryiko's avatar
      bpf: explicitly define BPF_FUNC_xxx integer values · 8a76145a
      Andrii Nakryiko authored
      Historically enum bpf_func_id's BPF_FUNC_xxx enumerators relied on
      implicit sequential values being assigned by compiler. This is
      convenient, as new BPF helpers are always added at the very end, but it
      also has its downsides, some of them being:
      
        - with over 200 helpers now it's very hard to know what's each helper's ID,
          which is often important to know when working with BPF assembly (e.g.,
          by dumping raw bpf assembly instructions with llvm-objdump -d
          command). it's possible to work around this by looking into vmlinux.h,
          dumping /sys/btf/kernel/vmlinux, looking at libbpf-provided
          bpf_helper_defs.h, etc. But it always feels like an unnecessary step
          and one should be able to quickly figure this out from UAPI header.
      
        - when backporting and cherry-picking only some BPF helpers onto older
          kernels it's important to be able to skip some enum values for helpers
          that weren't backported, but preserve absolute integer IDs to keep BPF
          helper IDs stable so that BPF programs stay portable across upstream
          and backported kernels.
      
      While neither problem is insurmountable, they come up frequently enough
      and are annoying enough to warrant improving the situation. And for the
      backporting the problem can easily go unnoticed for a while, especially
      if backport is done with people not very familiar with BPF subsystem overall.
      
      Anyways, it's easy to fix this by making sure that __BPF_FUNC_MAPPER
      macro provides explicit helper IDs. Unfortunately that would potentially
      break existing users that use UAPI-exposed __BPF_FUNC_MAPPER and are
      expected to pass macro that accepts only symbolic helper identifier
      (e.g., map_lookup_elem for bpf_map_lookup_elem() helper).
      
      As such, we need to introduce a new macro (___BPF_FUNC_MAPPER) which
      would specify both identifier and integer ID, but in such a way as to
      allow existing __BPF_FUNC_MAPPER be expressed in terms of new
      ___BPF_FUNC_MAPPER macro. And that's what this patch is doing. To avoid
      duplication and allow __BPF_FUNC_MAPPER stay *exactly* the same,
      ___BPF_FUNC_MAPPER accepts arbitrary "context" arguments, which can be
      used to pass any extra macros, arguments, and whatnot. In our case we
      use this to pass original user-provided macro that expects single
      argument and __BPF_FUNC_MAPPER is using it's own three-argument
      __BPF_FUNC_MAPPER_APPLY intermediate macro to impedance-match new and
      old "callback" macros.
      
      Once we resolve this, we use new ___BPF_FUNC_MAPPER to define enum
      bpf_func_id with explicit values. The other users of __BPF_FUNC_MAPPER
      in kernel (namely in kernel/bpf/disasm.c) are kept exactly the same both
      as demonstration that backwards compat works, but also to avoid
      unnecessary code churn.
      
      Note that new ___BPF_FUNC_MAPPER() doesn't forcefully insert comma
      between values, as that might not be appropriate in all possible cases
      where ___BPF_FUNC_MAPPER might be used by users. This doesn't reduce
      usability, as it's trivial to insert that comma inside "callback" macro.
      
      To validate all the manually specified IDs are exactly right, we used
      BTF to compare before and after values:
      
        $ bpftool btf dump file ~/linux-build/default/vmlinux | rg bpf_func_id -A 211 > after.txt
        $ git stash # stach UAPI changes
        $ make -j90
        ... re-building kernel without UAPI changes ...
        $ bpftool btf dump file ~/linux-build/default/vmlinux | rg bpf_func_id -A 211 > before.txt
        $ diff -u before.txt after.txt
        --- before.txt  2022-10-05 10:48:18.119195916 -0700
        +++ after.txt   2022-10-05 10:46:49.446615025 -0700
        @@ -1,4 +1,4 @@
        -[14576] ENUM 'bpf_func_id' encoding=UNSIGNED size=4 vlen=211
        +[9560] ENUM 'bpf_func_id' encoding=UNSIGNED size=4 vlen=211
                'BPF_FUNC_unspec' val=0
                'BPF_FUNC_map_lookup_elem' val=1
                'BPF_FUNC_map_update_elem' val=2
      
      As can be seen from diff above, the only thing that changed was resulting BTF
      type ID of ENUM bpf_func_id, not any of the enumerators, their names or integer
      values.
      
      The only other place that needed fixing was scripts/bpf_doc.py used to generate
      man pages and bpf_helper_defs.h header for libbpf and selftests. That script is
      tightly-coupled to exact shape of ___BPF_FUNC_MAPPER macro definition, so had
      to be trivially adapted.
      
      Cc: Quentin Monnet <quentin@isovalent.com>
      Reported-by: default avatarAndrea Terzolo <andrea.terzolo@polito.it>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Reviewed-by: default avatarQuentin Monnet <quentin@isovalent.com>
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Acked-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
      Link: https://lore.kernel.org/r/20221006042452.2089843-1-andrii@kernel.orgSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      8a76145a
  6. 05 Oct, 2022 5 commits
  7. 04 Oct, 2022 18 commits
    • Linus Torvalds's avatar
      Merge tag 'net-next-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 0326074f
      Linus Torvalds authored
      Pull networking updates from Jakub Kicinski:
       "Core:
      
         - Introduce and use a single page frag cache for allocating small skb
           heads, clawing back the 10-20% performance regression in UDP flood
           test from previous fixes.
      
         - Run packets which already went thru HW coalescing thru SW GRO. This
           significantly improves TCP segment coalescing and simplifies
           deployments as different workloads benefit from HW or SW GRO.
      
         - Shrink the size of the base zero-copy send structure.
      
         - Move TCP init under a new slow / sleepable version of DO_ONCE().
      
        BPF:
      
         - Add BPF-specific, any-context-safe memory allocator.
      
         - Add helpers/kfuncs for PKCS#7 signature verification from BPF
           programs.
      
         - Define a new map type and related helpers for user space -> kernel
           communication over a ring buffer (BPF_MAP_TYPE_USER_RINGBUF).
      
         - Allow targeting BPF iterators to loop through resources of one
           task/thread.
      
         - Add ability to call selected destructive functions. Expose
           crash_kexec() to allow BPF to trigger a kernel dump. Use
           CAP_SYS_BOOT check on the loading process to judge permissions.
      
         - Enable BPF to collect custom hierarchical cgroup stats efficiently
           by integrating with the rstat framework.
      
         - Support struct arguments for trampoline based programs. Only
           structs with size <= 16B and x86 are supported.
      
         - Invoke cgroup/connect{4,6} programs for unprivileged ICMP ping
           sockets (instead of just TCP and UDP sockets).
      
         - Add a helper for accessing CLOCK_TAI for time sensitive network
           related programs.
      
         - Support accessing network tunnel metadata's flags.
      
         - Make TCP SYN ACK RTO tunable by BPF programs with TCP Fast Open.
      
         - Add support for writing to Netfilter's nf_conn:mark.
      
        Protocols:
      
         - WiFi: more Extremely High Throughput (EHT) and Multi-Link Operation
           (MLO) work (802.11be, WiFi 7).
      
         - vsock: improve support for SO_RCVLOWAT.
      
         - SMC: support SO_REUSEPORT.
      
         - Netlink: define and document how to use netlink in a "modern" way.
           Support reporting missing attributes via extended ACK.
      
         - IPSec: support collect metadata mode for xfrm interfaces.
      
         - TCPv6: send consistent autoflowlabel in SYN_RECV state and RST
           packets.
      
         - TCP: introduce optional per-netns connection hash table to allow
           better isolation between namespaces (opt-in, at the cost of memory
           and cache pressure).
      
         - MPTCP: support TCP_FASTOPEN_CONNECT.
      
         - Add NEXT-C-SID support in Segment Routing (SRv6) End behavior.
      
         - Adjust IP_UNICAST_IF sockopt behavior for connected UDP sockets.
      
         - Open vSwitch:
            - Allow specifying ifindex of new interfaces.
            - Allow conntrack and metering in non-initial user namespace.
      
         - TLS: support the Korean ARIA-GCM crypto algorithm.
      
         - Remove DECnet support.
      
        Driver API:
      
         - Allow selecting the conduit interface used by each port in DSA
           switches, at runtime.
      
         - Ethernet Power Sourcing Equipment and Power Device support.
      
         - Add tc-taprio support for queueMaxSDU parameter, i.e. setting per
           traffic class max frame size for time-based packet schedules.
      
         - Support PHY rate matching - adapting between differing host-side
           and link-side speeds.
      
         - Introduce QUSGMII PHY mode and 1000BASE-KX interface mode.
      
         - Validate OF (device tree) nodes for DSA shared ports; make
           phylink-related properties mandatory on DSA and CPU ports.
           Enforcing more uniformity should allow transitioning to phylink.
      
         - Require that flash component name used during update matches one of
           the components for which version is reported by info_get().
      
         - Remove "weight" argument from driver-facing NAPI API as much as
           possible. It's one of those magic knobs which seemed like a good
           idea at the time but is too indirect to use in practice.
      
         - Support offload of TLS connections with 256 bit keys.
      
        New hardware / drivers:
      
         - Ethernet:
            - Microchip KSZ9896 6-port Gigabit Ethernet Switch
            - Renesas Ethernet AVB (EtherAVB-IF) Gen4 SoCs
            - Analog Devices ADIN1110 and ADIN2111 industrial single pair
              Ethernet (10BASE-T1L) MAC+PHY.
            - Rockchip RV1126 Gigabit Ethernet (a version of stmmac IP).
      
         - Ethernet SFPs / modules:
            - RollBall / Hilink / Turris 10G copper SFPs
            - HALNy GPON module
      
         - WiFi:
            - CYW43439 SDIO chipset (brcmfmac)
            - CYW89459 PCIe chipset (brcmfmac)
            - BCM4378 on Apple platforms (brcmfmac)
      
        Drivers:
      
         - CAN:
            - gs_usb: HW timestamp support
      
         - Ethernet PHYs:
            - lan8814: cable diagnostics
      
         - Ethernet NICs:
            - Intel (100G):
               - implement control of FCS/CRC stripping
               - port splitting via devlink
               - L2TPv3 filtering offload
            - nVidia/Mellanox:
               - tunnel offload for sub-functions
               - MACSec offload, w/ Extended packet number and replay window
                 offload
               - significantly restructure, and optimize the AF_XDP support,
                 align the behavior with other vendors
            - Huawei:
               - configuring DSCP map for traffic class selection
               - querying standard FEC statistics
               - querying SerDes lane number via ethtool
            - Marvell/Cavium:
               - egress priority flow control
               - MACSec offload
            - AMD/SolarFlare:
               - PTP over IPv6 and raw Ethernet
            - small / embedded:
               - ax88772: convert to phylink (to support SFP cages)
               - altera: tse: convert to phylink
               - ftgmac100: support fixed link
               - enetc: standard Ethtool counters
               - macb: ZynqMP SGMII dynamic configuration support
               - tsnep: support multi-queue and use page pool
               - lan743x: Rx IP & TCP checksum offload
               - igc: add xdp frags support to ndo_xdp_xmit
      
         - Ethernet high-speed switches:
            - Marvell (prestera):
               - support SPAN port features (traffic mirroring)
               - nexthop object offloading
            - Microchip (sparx5):
               - multicast forwarding offload
               - QoS queuing offload (tc-mqprio, tc-tbf, tc-ets)
      
         - Ethernet embedded switches:
            - Marvell (mv88e6xxx):
               - support RGMII cmode
            - NXP (felix):
               - standardized ethtool counters
            - Microchip (lan966x):
               - QoS queuing offload (tc-mqprio, tc-tbf, tc-cbs, tc-ets)
               - traffic policing and mirroring
               - link aggregation / bonding offload
               - QUSGMII PHY mode support
      
         - Qualcomm 802.11ax WiFi (ath11k):
            - cold boot calibration support on WCN6750
            - support to connect to a non-transmit MBSSID AP profile
            - enable remain-on-channel support on WCN6750
            - Wake-on-WLAN support for WCN6750
            - support to provide transmit power from firmware via nl80211
            - support to get power save duration for each client
            - spectral scan support for 160 MHz
      
         - MediaTek WiFi (mt76):
            - WiFi-to-Ethernet bridging offload for MT7986 chips
      
         - RealTek WiFi (rtw89):
            - P2P support"
      
      * tag 'net-next-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1864 commits)
        eth: pse: add missing static inlines
        once: rename _SLOW to _SLEEPABLE
        net: pse-pd: add regulator based PSE driver
        dt-bindings: net: pse-dt: add bindings for regulator based PoDL PSE controller
        ethtool: add interface to interact with Ethernet Power Equipment
        net: mdiobus: search for PSE nodes by parsing PHY nodes.
        net: mdiobus: fwnode_mdiobus_register_phy() rework error handling
        net: add framework to support Ethernet PSE and PDs devices
        dt-bindings: net: phy: add PoDL PSE property
        net: marvell: prestera: Propagate nh state from hw to kernel
        net: marvell: prestera: Add neighbour cache accounting
        net: marvell: prestera: add stub handler neighbour events
        net: marvell: prestera: Add heplers to interact with fib_notifier_info
        net: marvell: prestera: Add length macros for prestera_ip_addr
        net: marvell: prestera: add delayed wq and flush wq on deinit
        net: marvell: prestera: Add strict cleanup of fib arbiter
        net: marvell: prestera: Add cleanup of allocated fib_nodes
        net: marvell: prestera: Add router nexthops ABI
        eth: octeon: fix build after netif_napi_add() changes
        net/mlx5: E-Switch, Return EBUSY if can't get mode lock
        ...
      0326074f
    • Linus Torvalds's avatar
      Merge tag 'landlock-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · 522667b2
      Linus Torvalds authored
      Pull landlock updates from Mickaël Salaün:
       "Improve user help for Landlock (documentation and sample)"
      
      * tag 'landlock-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:
        landlock: Fix documentation style
        landlock: Slightly improve documentation and fix spelling
        samples/landlock: Print hints about ABI versions
      522667b2
    • Linus Torvalds's avatar
      Merge tag 'audit-pr-20221003' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit · c645c11a
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "Six audit patches for v6.1, most are pretty trivial, but a quick list
        of the highlights are below:
      
         - Only free the audit proctitle information on task exit. This allows
           us to cache the information and improve performance slightly.
      
         - Use the time_after() macro to do time comparisons instead of doing
           it directly and potentially causing ourselves problems when the
           timer wraps.
      
         - Convert an audit_context state comparison from a relative enum
           comparison, e.g. (x < y), to a not-equal comparison to ensure that
           we are not caught out at some unknown point in the future by an
           enum shuffle.
      
         - A handful of small cleanups such as tidying up comments and
           removing unused declarations"
      
      * tag 'audit-pr-20221003' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
        audit: remove selinux_audit_rule_update() declaration
        audit: use time_after to compare time
        audit: free audit_proctitle only on task exit
        audit: explicitly check audit_context->context enum value
        audit: audit_context pid unused, context enum comment fix
        audit: fix repeated words in comments
      c645c11a
    • Linus Torvalds's avatar
      Merge tag 'x86_cleanups_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3eba620e
      Linus Torvalds authored
      Pull x86 cleanups from Borislav Petkov:
      
       - The usual round of smaller fixes and cleanups all over the tree
      
      * tag 'x86_cleanups_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Include the header of init_ia32_feat_ctl()'s prototype
        x86/uaccess: Improve __try_cmpxchg64_user_asm() for x86_32
        x86: Fix various duplicate-word comment typos
        x86/boot: Remove superfluous type casting from arch/x86/boot/bitops.h
      3eba620e
    • Linus Torvalds's avatar
      Merge tag 'x86_cache_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 193e2268
      Linus Torvalds authored
      Pull x86 cache resource control updates from Borislav Petkov:
      
       - More work by James Morse to disentangle the resctrl filesystem
         generic code from the architectural one with the endgoal of plugging
         ARM's MPAM implementation into it too so that the user interface
         remains the same
      
       - Properly restore the MSR_MISC_FEATURE_CONTROL value instead of
         blindly overwriting it to 0
      
      * tag 'x86_cache_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        x86/resctrl: Make resctrl_arch_rmid_read() return values in bytes
        x86/resctrl: Add resctrl_rmid_realloc_limit to abstract x86's boot_cpu_data
        x86/resctrl: Rename and change the units of resctrl_cqm_threshold
        x86/resctrl: Move get_corrected_mbm_count() into resctrl_arch_rmid_read()
        x86/resctrl: Move mbm_overflow_count() into resctrl_arch_rmid_read()
        x86/resctrl: Pass the required parameters into resctrl_arch_rmid_read()
        x86/resctrl: Abstract __rmid_read()
        x86/resctrl: Allow per-rmid arch private storage to be reset
        x86/resctrl: Add per-rmid arch private storage for overflow and chunks
        x86/resctrl: Calculate bandwidth from the previous __mon_event_count() chunks
        x86/resctrl: Allow update_mba_bw() to update controls directly
        x86/resctrl: Remove architecture copy of mbps_val
        x86/resctrl: Switch over to the resctrl mbps_val list
        x86/resctrl: Create mba_sc configuration in the rdt_domain
        x86/resctrl: Abstract and use supports_mba_mbps()
        x86/resctrl: Remove set_mba_sc()s control array re-initialisation
        x86/resctrl: Add domain offline callback for resctrl work
        x86/resctrl: Group struct rdt_hw_domain cleanup
        x86/resctrl: Add domain online callback for resctrl work
        x86/resctrl: Merge mon_capable and mon_enabled
        ...
      193e2268
    • Linus Torvalds's avatar
      Merge tag 'x86_microcode_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b5f0b113
      Linus Torvalds authored
      Pull x75 microcode loader updates from Borislav Petkov:
      
       - Get rid of a single ksize() usage
      
       - By popular demand, print the previous microcode revision an update
         was done over
      
       - Remove more code related to the now gone MICROCODE_OLD_INTERFACE
      
       - Document the problems stemming from microcode late loading
      
      * tag 'x86_microcode_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode/AMD: Track patch allocation size explicitly
        x86/microcode: Print previous version of microcode after reload
        x86/microcode: Remove ->request_microcode_user()
        x86/microcode: Document the whole late loading problem
      b5f0b113
    • Linus Torvalds's avatar
      Merge tag 'x86_paravirt_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9bf445b6
      Linus Torvalds authored
      Pull x86 paravirt fix from Borislav Petkov:
      
       - Ensure paravirt patching site descriptors are aligned properly so
         that code can do proper arithmetic with their addresses
      
      * tag 'x86_paravirt_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/paravirt: Ensure proper alignment
      9bf445b6
    • Linus Torvalds's avatar
      Merge tag 'x86_misc_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 901735e5
      Linus Torvalds authored
      Pull misc x86 fixes from Borislav Petkov:
      
       - Drop misleading "RIP" from the opcodes dumping message
      
       - Correct APM entry's Konfig help text
      
      * tag 'x86_misc_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/dumpstack: Don't mention RIP in "Code: "
        x86/Kconfig: Specify idle=poll instead of no-hlt
      901735e5
    • Linus Torvalds's avatar
      Merge tag 'x86_asm_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bb1f1154
      Linus Torvalds authored
      Pull x86 asm update from Borislav Petkov:
      
       - Use the __builtin_ffs/ctzl() compiler builtins for the constant
         argument case in the kernel's optimized ffs()/ffz() helpers in order
         to make use of the compiler's constant folding optmization passes.
      
      * tag 'x86_asm_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/asm/bitops: Use __builtin_ctzl() to evaluate constant expressions
        x86/asm/bitops: Use __builtin_ffs() to evaluate constant expressions
      bb1f1154
    • Linus Torvalds's avatar
      Merge tag 'x86_core_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8cded8fb
      Linus Torvalds authored
      Pull x86 core fixes from Borislav Petkov:
      
       - Make sure an INT3 is slapped after every unconditional retpoline JMP
         as both vendors suggest
      
       - Clean up pciserial a bit
      
      * tag 'x86_core_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86,retpoline: Be sure to emit INT3 after JMP *%\reg
        x86/earlyprintk: Clean up pciserial
      8cded8fb
    • Linus Torvalds's avatar
      Merge tag 'x86_apic_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5bb3a16d
      Linus Torvalds authored
      Pull x86 APIC update from Borislav Petkov:
      
       - Add support for locking the APIC in X2APIC mode to prevent SGX
         enclave leaks
      
      * tag 'x86_apic_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic: Don't disable x2APIC if locked
      5bb3a16d
    • Linus Torvalds's avatar
      Merge tag 'ras_core_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 51eaa866
      Linus Torvalds authored
      Pull x86 RAS updates from Borislav Petkov:
      
       - Fix the APEI MCE callback handler to consult the hardware about the
         granularity of the memory error instead of hard-coding it
      
       - Offline memory pages on Intel machines after 2 errors reported per
         page
      
      * tag 'ras_core_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce: Retrieve poison range from hardware
        RAS/CEC: Reduce offline page threshold for Intel systems
      51eaa866
    • Linus Torvalds's avatar
      Merge tag 'x86_cpu_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7db99f01
      Linus Torvalds authored
      Pull x86 cpu updates from Borislav Petkov:
      
       - Print the CPU number at segfault time.
      
         The number printed is not always accurate (preemption is enabled at
         that time) but the print string contains "likely" and after a lot of
         back'n'forth on this, this was the consensus that was reached. See
         thread at [1].
      
       - After a *lot* of testing and polishing, finally the clear_user()
         improvements to inline REP; STOSB by default
      
      Link: https://lore.kernel.org/r/5d62c1d0-7425-d5bb-ecb5-1dc3b4d7d245@intel.com [1]
      
      * tag 'x86_cpu_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Print likely CPU at segfault time
        x86/clear_user: Make it faster
      7db99f01
    • Linus Torvalds's avatar
      Merge tag 'x86_sgx_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ba94a7a9
      Linus Torvalds authored
      Pull x86 SGX update from Borislav Petkov:
      
       - Improve the documentation of a couple of SGX functions handling
         backing storage
      
      * tag 'x86_sgx_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sgx: Improve comments for sgx_encl_lookup/alloc_backing()
      ba94a7a9
    • Linus Torvalds's avatar
      Merge tag 'x86_timers_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f8475a67
      Linus Torvalds authored
      Pull x86 RTC cleanups from Borislav Petkov:
      
       - Cleanup x86/rtc.c and delete duplicated functionality in favor of
         using the respective functionality from the RTC library
      
      * tag 'x86_timers_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/rtc: Rename mach_set_rtc_mmss() to mach_set_cmos_time()
        x86/rtc: Rewrite & simplify mach_get_cmos_time() by deleting duplicated functionality
      f8475a67
    • Linus Torvalds's avatar
      Merge tag 'x86_platform_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3339914a
      Linus Torvalds authored
      Pull x86 platform update from Borislav Petkov:
       "A single x86/platform improvement when the kernel is running as an
        ACRN guest:
      
         - Get TSC and CPU frequency from CPUID leaf 0x40000010 when the
           kernel is running as a guest on the ACRN hypervisor"
      
      * tag 'x86_platform_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/acrn: Set up timekeeping
      3339914a
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · bf767625
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - Add support for Skylake-S CPUs to ie31200_edac
      
       - Improve error decoding speed of the Intel drivers by avoiding the
         ACPI facilities but doing decoding in the driver itself
      
       - Other misc improvements to the Intel drivers
      
       - The usual cleanups and fixlets all over EDAC land
      
      * tag 'edac_updates_for_v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/i7300: Correct the i7300_exit() function name in comment
        x86/sb_edac: Add row column translation for Broadwell
        EDAC/i10nm: Print an extra register set of retry_rd_err_log
        EDAC/i10nm: Retrieve and print retry_rd_err_log registers for HBM
        EDAC/skx_common: Add ChipSelect ADXL component
        EDAC/ppc_4xx: Reorder symbols to get rid of a few forward declarations
        EDAC: Remove obsolete declarations in edac_module.h
        EDAC/i10nm: Add driver decoder for Ice Lake and Tremont CPUs
        EDAC/skx_common: Make output format similar
        EDAC/skx_common: Use driver decoder first
        EDAC/mc: Drop duplicated dimm->nr_pages debug printout
        EDAC/mc: Replace spaces with tabs in memtype flags definition
        EDAC/wq: Remove unneeded flush_workqueue()
        EDAC/ie31200: Add Skylake-S support
      bf767625
    • Borislav Petkov's avatar
      Merge branches 'edac-drivers' and 'edac-misc' into edac-updates-for-v6.1 · c2577956
      Borislav Petkov authored
      Combine all queued EDAC changes for submission into v6.1:
      
      * edac-drivers:
        EDAC/ie31200: Add Skylake-S support
      
      * edac-misc:
        EDAC/i7300: Correct the i7300_exit() function name in comment
        x86/sb_edac: Add row column translation for Broadwell
        EDAC/i10nm: Print an extra register set of retry_rd_err_log
        EDAC/i10nm: Retrieve and print retry_rd_err_log registers for HBM
        EDAC/skx_common: Add ChipSelect ADXL component
        EDAC/ppc_4xx: Reorder symbols to get rid of a few forward declarations
        EDAC: Remove obsolete declarations in edac_module.h
        EDAC/i10nm: Add driver decoder for Ice Lake and Tremont CPUs
        EDAC/skx_common: Make output format similar
        EDAC/skx_common: Use driver decoder first
        EDAC/mc: Drop duplicated dimm->nr_pages debug printout
        EDAC/mc: Replace spaces with tabs in memtype flags definition
        EDAC/wq: Remove unneeded flush_workqueue()
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      c2577956