)]}'
{
  "log": [
    {
      "commit": "c2e5f4fd1148727801a63d938cec210f16b48864",
      "tree": "36ec2eaa2fdbf1d83ab14992a6a60e407f1ab29c",
      "parents": [
        "f3add6dec36d9d747929918ba1d7ce8866e1c054",
        "fad361a2ee9099028774ff9081bf9abf08bd2ff0"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Thu Aug 17 19:25:44 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Thu Aug 17 19:25:44 2023 -0700"
      },
      "message": "Merge branch \u0027netconsole-enable-compile-time-configuration\u0027\n\nBreno Leitao says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nnetconsole: Enable compile time configuration\n\nEnable netconsole features to be set at compilation time. Create two\nKconfig options that allow users to set extended logs and release\nprepending features at compilation time.\n\nThe first patch de-duplicates the initialization code, and the second\npatch adds the support in the de-duplicated code, avoiding touching two\ndifferent functions with the same change.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://lore.kernel.org/r/20230811093158.1678322-1-leitao@debian.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "fad361a2ee9099028774ff9081bf9abf08bd2ff0",
      "tree": "36ec2eaa2fdbf1d83ab14992a6a60e407f1ab29c",
      "parents": [
        "b0a9e2c9a99f64e3c59e8a32a11b90c667201203"
      ],
      "author": {
        "name": "Breno Leitao",
        "email": "leitao@debian.org",
        "time": "Fri Aug 11 02:31:58 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Thu Aug 17 19:25:42 2023 -0700"
      },
      "message": "netconsole: Enable compile time configuration\n\nEnable netconsole features to be set at compilation time. Create two\nKconfig options that allow users to set extended logs and release\nprepending features at compilation time.\n\nRight now, the user needs to pass command line parameters to netconsole,\nsuch as \"+\"/\"r\" to enable extended logs and version prepending features.\n\nWith these two options, the user could set the default values for the\nfeatures at compile time, and don\u0027t need to pass it in the command line\nto get them enabled, simplifying the command line.\n\nSigned-off-by: Breno Leitao \u003cleitao@debian.org\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nLink: https://lore.kernel.org/r/20230811093158.1678322-3-leitao@debian.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "b0a9e2c9a99f64e3c59e8a32a11b90c667201203",
      "tree": "3e7a6c5c6a18a32a56733245a436c1b36e41f537",
      "parents": [
        "f3add6dec36d9d747929918ba1d7ce8866e1c054"
      ],
      "author": {
        "name": "Breno Leitao",
        "email": "leitao@debian.org",
        "time": "Fri Aug 11 02:31:57 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Thu Aug 17 19:25:42 2023 -0700"
      },
      "message": "netconsole: Create a allocation helper\n\nDe-duplicate the initialization and allocation code for struct\nnetconsole_target.\n\nThe same allocation and initialization code is duplicated in two\ndifferent places in the netconsole subsystem, when the netconsole target\nis initialized by command line parameters (alloc_param_target()), and\ndynamically by sysfs (make_netconsole_target()).\n\nCreate a helper function, and call it from the two different functions.\n\nSuggested-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: Breno Leitao \u003cleitao@debian.org\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nLink: https://lore.kernel.org/r/20230811093158.1678322-2-leitao@debian.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "f3add6dec36d9d747929918ba1d7ce8866e1c054",
      "tree": "fe291d4ea3a4d58e2378d46942cad4e0cc2b029c",
      "parents": [
        "0c2d8227ba7881306d8404a3a2ffd97ac479fc0a"
      ],
      "author": {
        "name": "Justin Stitt",
        "email": "justinstitt@google.com",
        "time": "Tue Aug 15 20:35:59 2023 +0000"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Thu Aug 17 19:25:40 2023 -0700"
      },
      "message": "net: mdio: fix -Wvoid-pointer-to-enum-cast warning\n\nWhen building with clang 18 I see the following warning:\n|       drivers/net/mdio/mdio-xgene.c:338:13: warning: cast to smaller integer\n|               type \u0027enum xgene_mdio_id\u0027 from \u0027const void *\u0027 [-Wvoid-pointer-to-enum-cast]\n|         338 |                 mdio_id \u003d (enum xgene_mdio_id)of_id-\u003edata;\n\nThis is due to the fact that `of_id-\u003edata` is a void* while `enum\nxgene_mdio_id` has the size of an int. This leads to truncation and\npossible data loss.\n\nLink: https://github.com/ClangBuiltLinux/linux/issues/1910\nReported-by: Nathan Chancellor \u003cnathan@kernel.org\u003e\nSigned-off-by: Justin Stitt \u003cjustinstitt@google.com\u003e\nReviewed-by: Andrew Lunn \u003candrew@lunn.ch\u003e\nReviewed-by: Russell King (Oracle) \u003crmk+kernel@armlinux.org.uk\u003e\nLink: https://lore.kernel.org/r/20230815-void-drivers-net-mdio-mdio-xgene-v1-1-5304342e0659@google.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "0c2d8227ba7881306d8404a3a2ffd97ac479fc0a",
      "tree": "f27f4197ec501dabebe659449643875005102fff",
      "parents": [
        "a5e5b2cd47bc7ac853b3ae9d4af97d08caaf585d",
        "3cad70bc74ef8471e30a05a90798904ce8f8feb5"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Thu Aug 17 19:15:07 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Thu Aug 17 19:15:08 2023 -0700"
      },
      "message": "Merge branch \u0027netem-use-a-seeded-prng-for-loss-and-corruption-events\u0027\n\nFrançois Michel says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nnetem: use a seeded PRNG for loss and corruption events\n\nIn order to reproduce bugs or performance evaluation of\nnetwork protocols and applications, it is useful to have\nreproducible test suites and tools. This patch adds\na way to specify a PRNG seed through the\nTCA_NETEM_PRNG_SEED attribute for generating netem\nloss and corruption events. Initializing the qdisc\nwith the same seed leads to the exact same loss\nand corruption patterns. If no seed is explicitly\nspecified, the qdisc generates a random seed using\nget_random_u64().\n\nThis patch can be and has been tested using tc from\nthe following iproute2-next fork:\nhttps://github.com/francoismichel/iproute2-next\n\nFor instance, setting the seed 42424242 on the loopback\nwith a loss rate of 10% will systematically drop the 5th,\n12th and 24th packet when sending 25 packets.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://lore.kernel.org/r/20230815092348.1449179-1-francois.michel@uclouvain.be\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "3cad70bc74ef8471e30a05a90798904ce8f8feb5",
      "tree": "f27f4197ec501dabebe659449643875005102fff",
      "parents": [
        "9c87b2aeccf174bce220e527d48391439981273b"
      ],
      "author": {
        "name": "François Michel",
        "email": "francois.michel@uclouvain.be",
        "time": "Tue Aug 15 11:23:40 2023 +0200"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Thu Aug 17 19:15:06 2023 -0700"
      },
      "message": "netem: use seeded PRNG for correlated loss events\n\nUse prandom_u32_state() instead of get_random_u32() to generate\nthe correlated loss events of netem.\n\nSigned-off-by: François Michel \u003cfrancois.michel@uclouvain.be\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nAcked-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nLink: https://lore.kernel.org/r/20230815092348.1449179-4-francois.michel@uclouvain.be\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "9c87b2aeccf174bce220e527d48391439981273b",
      "tree": "20b51823c6840055659ef4fd5b162d5c1f622cc8",
      "parents": [
        "4072d97ddc447ce9dd8f7a39cdf6f92d2031bb01"
      ],
      "author": {
        "name": "François Michel",
        "email": "francois.michel@uclouvain.be",
        "time": "Tue Aug 15 11:23:39 2023 +0200"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Thu Aug 17 19:15:05 2023 -0700"
      },
      "message": "netem: use a seeded PRNG for generating random losses\n\nUse prandom_u32_state() instead of get_random_u32() to generate\nthe random loss events of netem. The state of the prng is part\nof the prng attribute of struct netem_sched_data.\n\nSigned-off-by: François Michel \u003cfrancois.michel@uclouvain.be\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nAcked-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nLink: https://lore.kernel.org/r/20230815092348.1449179-3-francois.michel@uclouvain.be\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "4072d97ddc447ce9dd8f7a39cdf6f92d2031bb01",
      "tree": "87096da91c4853b507a2aa966892cd3f876c9622",
      "parents": [
        "a5e5b2cd47bc7ac853b3ae9d4af97d08caaf585d"
      ],
      "author": {
        "name": "François Michel",
        "email": "francois.michel@uclouvain.be",
        "time": "Tue Aug 15 11:23:38 2023 +0200"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Thu Aug 17 19:15:05 2023 -0700"
      },
      "message": "netem: add prng attribute to netem_sched_data\n\nAdd prng attribute to struct netem_sched_data and\nallows setting the seed of the PRNG through netlink\nusing the new TCA_NETEM_PRNG_SEED attribute.\nThe PRNG attribute is not actually used yet.\n\nSigned-off-by: François Michel \u003cfrancois.michel@uclouvain.be\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nAcked-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nLink: https://lore.kernel.org/r/20230815092348.1449179-2-francois.michel@uclouvain.be\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "a5e5b2cd47bc7ac853b3ae9d4af97d08caaf585d",
      "tree": "879158e5679ca0d385c86ceca9511f5c17df825f",
      "parents": [
        "b2f8323364abf1b6fcd828851ea8be2f757c052a"
      ],
      "author": {
        "name": "Jialin Zhang",
        "email": "zhangjialin11@huawei.com",
        "time": "Tue Aug 15 10:42:48 2023 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Thu Aug 17 19:13:09 2023 -0700"
      },
      "message": "net: ena: Use pci_dev_id() to simplify the code\n\nPCI core API pci_dev_id() can be used to get the BDF number for a pci\ndevice. We don\u0027t need to compose it manually. Use pci_dev_id() to\nsimplify the code a little bit.\n\nSigned-off-by: Jialin Zhang \u003czhangjialin11@huawei.com\u003e\nReviewed-by: Leon Romanovsky \u003cleonro@nvidia.com\u003e\nReviewed-by: Shay Agroskin \u003cshayagr@amazon.com\u003e\nLink: https://lore.kernel.org/r/20230815024248.3519068-1-zhangjialin11@huawei.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "b2f8323364abf1b6fcd828851ea8be2f757c052a",
      "tree": "69d232eccf3762869d27890293b6c8f11dc515aa",
      "parents": [
        "f54a2a132a9d76c0e31fd1d5f569e84682563e54"
      ],
      "author": {
        "name": "Ziyang Xuan",
        "email": "william.xuanziyang@huawei.com",
        "time": "Mon Aug 14 16:30:00 2023 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Thu Aug 17 19:11:10 2023 -0700"
      },
      "message": "tun: add __exit annotations to module exit func tun_cleanup()\n\nAdd missing __exit annotations to module exit func tun_cleanup().\n\nSigned-off-by: Ziyang Xuan \u003cwilliam.xuanziyang@huawei.com\u003e\nReviewed-by: Leon Romanovsky \u003cleonro@nvidia.com\u003e\nLink: https://lore.kernel.org/r/20230814083000.3893589-1-william.xuanziyang@huawei.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "f54a2a132a9d76c0e31fd1d5f569e84682563e54",
      "tree": "3d8b494b5db194c25f2fff425f050a22ca1c4d06",
      "parents": [
        "42b118c9f97f5e0431b6a364a789c212bed96652",
        "de40537364c34fd665a0f00d156d24c6c0e89a66"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Wed Aug 16 20:09:43 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Wed Aug 16 20:09:43 2023 -0700"
      },
      "message": "Merge tag \u0027for-netdev\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next\n\nDaniel Borkmann says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npull-request: bpf-next 2023-08-16\n\nWe\u0027ve added 17 non-merge commits during the last 6 day(s) which contain\na total of 20 files changed, 1179 insertions(+), 37 deletions(-).\n\nThe main changes are:\n\n1) Add a BPF hook in sys_socket() to change the protocol ID\n   from IPPROTO_TCP to IPPROTO_MPTCP to cover migration for legacy\n   applications, from Geliang Tang.\n\n2) Follow-up/fallout fix from the SO_REUSEPORT + bpf_sk_assign work\n   to fix a splat on non-fullsock sks in inet[6]_steal_sock,\n   from Lorenz Bauer.\n\n3) Improvements to struct_ops links to avoid forcing presence of\n   update/validate callbacks. Also add bpf_struct_ops fields documentation,\n   from David Vernet.\n\n4) Ensure libbpf sets close-on-exec flag on gzopen, from Marco Vedovati.\n\n5) Several new tcx selftest additions and bpftool link show support for\n   tcx and xdp links, from Daniel Borkmann.\n\n6) Fix a smatch warning on uninitialized symbol in\n   bpf_perf_link_fill_kprobe, from Yafang Shao.\n\n7) BPF selftest fixes e.g. misplaced break in kfunc_call test,\n   from Yipeng Zou.\n\n8) Small cleanup to remove unused declaration bpf_link_new_file,\n   from Yue Haibing.\n\n9) Small typo fix to bpftool\u0027s perf help message, from Daniel T. Lee.\n\n* tag \u0027for-netdev\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next:\n  selftests/bpf: Add mptcpify test\n  selftests/bpf: Fix error checks of mptcp open_and_load\n  selftests/bpf: Add two mptcp netns helpers\n  bpf: Add update_socket_protocol hook\n  bpftool: Implement link show support for xdp\n  bpftool: Implement link show support for tcx\n  selftests/bpf: Add selftest for fill_link_info\n  bpf: Fix uninitialized symbol in bpf_perf_link_fill_kprobe()\n  net: Fix slab-out-of-bounds in inet[6]_steal_sock\n  bpf: Document struct bpf_struct_ops fields\n  bpf: Support default .validate() and .update() behavior for struct_ops links\n  selftests/bpf: Add various more tcx test cases\n  selftests/bpf: Clean up fmod_ret in bench_rename test script\n  selftests/bpf: Fix repeat option when kfunc_call verification fails\n  libbpf: Set close-on-exec flag on gzopen\n  bpftool: fix perf help message\n  bpf: Remove unused declaration bpf_link_new_file()\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://lore.kernel.org/r/20230816212840.1539-1-daniel@iogearbox.net\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "42b118c9f97f5e0431b6a364a789c212bed96652",
      "tree": "e2546f9bf2fa367ff2c7c8419b0e8403c79789be",
      "parents": [
        "950fe35831af0c1f9d87d4105843c3b7f1fbf09b"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Wed Aug 16 19:33:44 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Wed Aug 16 19:33:54 2023 -0700"
      },
      "message": "Revert \"net: ethernet: ti: am65-cpsw: add mqprio qdisc offload in channel mode\"\n\nThis reverts commit 90bc21aaef4adaefceda2d385756138fc247c0c2.\n\nPatch was merged too hastily, Vladimir requested changes in:\nhttps://lore.kernel.org/all/20230816121305.5dio5tk3chge2ndh@skbuf/\n\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "de40537364c34fd665a0f00d156d24c6c0e89a66",
      "tree": "04764d5159b1301502abda24221d7d418eb4386f",
      "parents": [
        "053bbf9bff58864be880d7e9a5af586793dbb7de",
        "ddba122428a75261fc4d3547f4e7e4aa6b67caef"
      ],
      "author": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Wed Aug 16 10:22:17 2023 -0700"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Wed Aug 16 11:42:35 2023 -0700"
      },
      "message": "Merge branch \u0027bpf: Force to MPTCP\u0027\n\nGeliang Tang says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nAs is described in the \"How to use MPTCP?\" section in MPTCP wiki [1]:\n\n\"Your app should create sockets with IPPROTO_MPTCP as the proto:\n( socket(AF_INET, SOCK_STREAM, IPPROTO_MPTCP); ). Legacy apps can be\nforced to create and use MPTCP sockets instead of TCP ones via the\nmptcpize command bundled with the mptcpd daemon.\"\n\nBut the mptcpize (LD_PRELOAD technique) command has some limitations\n[2]:\n\n - it doesn\u0027t work if the application is not using libc (e.g. GoLang\napps)\n - in some envs, it might not be easy to set env vars / change the way\napps are launched, e.g. on Android\n - mptcpize needs to be launched with all apps that want MPTCP: we could\nhave more control from BPF to enable MPTCP only for some apps or all the\nones of a netns or a cgroup, etc.\n - it is not in BPF, we cannot talk about it at netdev conf.\n\nSo this patchset attempts to use BPF to implement functions similer to\nmptcpize.\n\nThe main idea is to add a hook in sys_socket() to change the protocol id\nfrom IPPROTO_TCP (or 0) to IPPROTO_MPTCP.\n\n[1]\nhttps://github.com/multipath-tcp/mptcp_net-next/wiki\n[2]\nhttps://github.com/multipath-tcp/mptcp_net-next/issues/79\n\nv14:\n - Use getsockopt(MPTCP_INFO) to verify mptcp protocol intead of using\nnstat command.\n\nv13:\n - drop \"Use random netns name for mptcp\" patch.\n\nv12:\n - update diag_* log of update_socket_protocol.\n - add \u0027ip netns show\u0027 after \u0027ip netns del\u0027 to check if there is\na test did not clean up its netns.\n - return libbpf_get_error() instead of -EIO for the error from\nopen_and_load().\n - Use getsockopt(SOL_PROTOCOL) to verify mptcp protocol intead of\nusing \u0027ss -tOni\u0027.\n\nv11:\n - add comments about outputs of \u0027ss\u0027 and \u0027nstat\u0027.\n - use \"err \u003d verify_mptcpify()\" instead of using \u003d+.\n\nv10:\n - drop \"#ifdef CONFIG_BPF_JIT\".\n - include vmlinux.h and bpf_tracing_net.h to avoid defining some\nmacros.\n - drop unneeded checks for mptcp.\n\nv9:\n - update comment for \u0027update_socket_protocol\u0027.\n\nv8:\n - drop the additional checks on the \u0027protocol\u0027 value after the\n\u0027update_socket_protocol()\u0027 call.\n\nv7:\n - add __weak and __diag_* for update_socket_protocol.\n\nv6:\n - add update_socket_protocol.\n\nv5:\n - add bpf_mptcpify helper.\n\nv4:\n - use lsm_cgroup/socket_create\n\nv3:\n - patch 8: char cmd[128]; -\u003e char cmd[256];\n\nv2:\n - Fix build selftests errors reported by CI\n\nCloses: https://github.com/multipath-tcp/mptcp_net-next/issues/79\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "ddba122428a75261fc4d3547f4e7e4aa6b67caef",
      "tree": "04764d5159b1301502abda24221d7d418eb4386f",
      "parents": [
        "207746550262e81b1e360d003a67f7ef7bacfbae"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Wed Aug 16 09:11:59 2023 +0800"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Wed Aug 16 11:42:33 2023 -0700"
      },
      "message": "selftests/bpf: Add mptcpify test\n\nImplement a new test program mptcpify: if the family is AF_INET or\nAF_INET6, the type is SOCK_STREAM, and the protocol ID is 0 or\nIPPROTO_TCP, set it to IPPROTO_MPTCP. It will be hooked in\nupdate_socket_protocol().\n\nExtend the MPTCP test base, add a selftest test_mptcpify() for the\nmptcpify case. Open and load the mptcpify test prog to mptcpify the\nTCP sockets dynamically, then use start_server() and connect_to_fd()\nto create a TCP socket, but actually what\u0027s created is an MPTCP\nsocket, which can be verified through \u0027getsockopt(SOL_PROTOCOL)\u0027\nand \u0027getsockopt(MPTCP_INFO)\u0027.\n\nAcked-by: Yonghong Song \u003cyonghong.song@linux.dev\u003e\nReviewed-by: Matthieu Baerts \u003cmatthieu.baerts@tessares.net\u003e\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\nLink: https://lore.kernel.org/r/364e72f307e7bb38382ec7442c182d76298a9c41.1692147782.git.geliang.tang@suse.com\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "207746550262e81b1e360d003a67f7ef7bacfbae",
      "tree": "b2006f93323a1ae47d0ff46b0b4e7081ede94ddc",
      "parents": [
        "97c9c652089b7081d5ed03b1dd0076c04ab12a4a"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Wed Aug 16 09:11:58 2023 +0800"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Wed Aug 16 10:22:16 2023 -0700"
      },
      "message": "selftests/bpf: Fix error checks of mptcp open_and_load\n\nReturn libbpf_get_error(), instead of -EIO, for the error from\nmptcp_sock__open_and_load().\n\nLoad success means prog_fd and map_fd are always valid. So drop these\nunneeded ASSERT_GE checks for them in mptcp run_test().\n\nAcked-by: Yonghong Song \u003cyonghong.song@linux.dev\u003e\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\nLink: https://lore.kernel.org/r/db5fcb93293df9ab173edcbaf8252465b80da6f2.1692147782.git.geliang.tang@suse.com\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "97c9c652089b7081d5ed03b1dd0076c04ab12a4a",
      "tree": "dae5ca67669e16adddb4413c2ea35895243ee107",
      "parents": [
        "0dd061a6a115f25132989cbd591a25afb2dee086"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Wed Aug 16 09:11:57 2023 +0800"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Wed Aug 16 10:22:16 2023 -0700"
      },
      "message": "selftests/bpf: Add two mptcp netns helpers\n\nAdd two netns helpers for mptcp tests: create_netns() and\ncleanup_netns(). Use them in test_base().\n\nThese new helpers will be re-used in the following commits\nintroducing new tests.\n\nAcked-by: Yonghong Song \u003cyonghong.song@linux.dev\u003e\nReviewed-by: Matthieu Baerts \u003cmatthieu.baerts@tessares.net\u003e\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\nLink: https://lore.kernel.org/r/7506371fb6c417b401cc9d7365fe455754f4ba3f.1692147782.git.geliang.tang@suse.com\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "0dd061a6a115f25132989cbd591a25afb2dee086",
      "tree": "51f583e636e2bba81c9f2340f8a54ac3bcbafad9",
      "parents": [
        "053bbf9bff58864be880d7e9a5af586793dbb7de"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Wed Aug 16 09:11:56 2023 +0800"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Wed Aug 16 10:22:16 2023 -0700"
      },
      "message": "bpf: Add update_socket_protocol hook\n\nAdd a hook named update_socket_protocol in __sys_socket(), for bpf\nprogs to attach to and update socket protocol. One user case is to\nforce legacy TCP apps to create and use MPTCP sockets instead of\nTCP ones.\n\nDefine a fmod_ret set named bpf_mptcp_fmodret_ids, add the hook\nupdate_socket_protocol into this set, and register it in\nbpf_mptcp_kfunc_init().\n\nCloses: https://github.com/multipath-tcp/mptcp_net-next/issues/79\nAcked-by: Matthieu Baerts \u003cmatthieu.baerts@tessares.net\u003e\nAcked-by: Yonghong Song \u003cyonghong.song@linux.dev\u003e\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\nLink: https://lore.kernel.org/r/ac84be00f97072a46f8a72b4e2be46cbb7fa5053.1692147782.git.geliang.tang@suse.com\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "053bbf9bff58864be880d7e9a5af586793dbb7de",
      "tree": "0c687e9ba2d3c6b02448639a49b805b274a320d1",
      "parents": [
        "e16e6c6df475b10b1ed933a6827798312612358f"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Wed Aug 16 11:56:51 2023 +0200"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Wed Aug 16 10:14:17 2023 -0700"
      },
      "message": "bpftool: Implement link show support for xdp\n\nAdd support to dump XDP link information to bpftool. This reuses the\nrecently added show_link_ifindex_{plain,json}(). The XDP link info only\nexposes the ifindex.\n\nBelow shows an example link dump output, and a cgroup link is included\nfor comparison, too:\n\n  # bpftool link\n  [...]\n  10: cgroup  prog 2466\n        cgroup_id 1  attach_type cgroup_inet6_post_bind\n  [...]\n  16: xdp  prog 2477\n        ifindex enp5s0(3)\n  [...]\n\nEquivalent json output:\n\n  # bpftool link --json\n  [...]\n  {\n    \"id\": 10,\n    \"type\": \"cgroup\",\n    \"prog_id\": 2466,\n    \"cgroup_id\": 1,\n    \"attach_type\": \"cgroup_inet6_post_bind\"\n  },\n  [...]\n  {\n    \"id\": 16,\n    \"type\": \"xdp\",\n    \"prog_id\": 2477,\n    \"devname\": \"enp5s0\",\n    \"ifindex\": 3\n  }\n  [...]\n\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nReviewed-by: Quentin Monnet \u003cquentin@isovalent.com\u003e\nLink: https://lore.kernel.org/r/20230816095651.10014-2-daniel@iogearbox.net\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "e16e6c6df475b10b1ed933a6827798312612358f",
      "tree": "14a1179fabb61db2bd47432a06140a274f705e8f",
      "parents": [
        "23cf7aa539dc26f45e42ef6303613f03f4ae2142"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Wed Aug 16 11:56:50 2023 +0200"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Wed Aug 16 10:14:17 2023 -0700"
      },
      "message": "bpftool: Implement link show support for tcx\n\nAdd support to dump tcx link information to bpftool. This adds a\ncommon helper show_link_ifindex_{plain,json}() which can be reused\nalso for other link types. The plain text and json device output is\nthe same format as in bpftool net dump.\n\nBelow shows an example link dump output along with a cgroup link\nfor comparison:\n\n  # bpftool link\n  [...]\n  10: cgroup  prog 1977\n        cgroup_id 1  attach_type cgroup_inet6_post_bind\n  [...]\n  13: tcx  prog 2053\n        ifindex enp5s0(3)  attach_type tcx_ingress\n  14: tcx  prog 2080\n        ifindex enp5s0(3)  attach_type tcx_egress\n  [...]\n\nEquivalent json output:\n\n  # bpftool link --json\n  [...]\n  {\n    \"id\": 10,\n    \"type\": \"cgroup\",\n    \"prog_id\": 1977,\n    \"cgroup_id\": 1,\n    \"attach_type\": \"cgroup_inet6_post_bind\"\n  },\n  [...]\n  {\n    \"id\": 13,\n    \"type\": \"tcx\",\n    \"prog_id\": 2053,\n    \"devname\": \"enp5s0\",\n    \"ifindex\": 3,\n    \"attach_type\": \"tcx_ingress\"\n  },\n  {\n    \"id\": 14,\n    \"type\": \"tcx\",\n    \"prog_id\": 2080,\n    \"devname\": \"enp5s0\",\n    \"ifindex\": 3,\n    \"attach_type\": \"tcx_egress\"\n  }\n  [...]\n\nSuggested-by: Yafang Shao \u003claoar.shao@gmail.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nReviewed-by: Quentin Monnet \u003cquentin@isovalent.com\u003e\nAcked-by: Yafang Shao \u003claoar.shao@gmail.com\u003e\nLink: https://lore.kernel.org/r/20230816095651.10014-1-daniel@iogearbox.net\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "23cf7aa539dc26f45e42ef6303613f03f4ae2142",
      "tree": "73a267c49dde4f9d4b4b83a4a34c3413d37e6af0",
      "parents": [
        "0aa35162d2a1ed7ae5303b8d91f7290d3b8b9219"
      ],
      "author": {
        "name": "Yafang Shao",
        "email": "laoar.shao@gmail.com",
        "time": "Sun Aug 13 14:19:00 2023 +0000"
      },
      "committer": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Wed Aug 16 16:44:28 2023 +0200"
      },
      "message": "selftests/bpf: Add selftest for fill_link_info\n\nAdd selftest for the fill_link_info of uprobe, kprobe and tracepoint.\nThe result:\n\n  $ tools/testing/selftests/bpf/test_progs --name\u003dfill_link_info\n  #79/1    fill_link_info/kprobe_link_info:OK\n  #79/2    fill_link_info/kretprobe_link_info:OK\n  #79/3    fill_link_info/kprobe_invalid_ubuff:OK\n  #79/4    fill_link_info/tracepoint_link_info:OK\n  #79/5    fill_link_info/uprobe_link_info:OK\n  #79/6    fill_link_info/uretprobe_link_info:OK\n  #79/7    fill_link_info/kprobe_multi_link_info:OK\n  #79/8    fill_link_info/kretprobe_multi_link_info:OK\n  #79/9    fill_link_info/kprobe_multi_invalid_ubuff:OK\n  #79      fill_link_info:OK\n  Summary: 1/9 PASSED, 0 SKIPPED, 0 FAILED\n\nThe test case for kprobe_multi won\u0027t be run on aarch64, as it is not\nsupported.\n\nSigned-off-by: Yafang Shao \u003claoar.shao@gmail.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Yonghong Song \u003cyonghong.song@linux.dev\u003e\nAcked-by: Jiri Olsa \u003cjolsa@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/20230813141900.1268-3-laoar.shao@gmail.com\n"
    },
    {
      "commit": "0aa35162d2a1ed7ae5303b8d91f7290d3b8b9219",
      "tree": "6f024ce8ddafb7a080a191ebc7dd479aa90b2baa",
      "parents": [
        "8897562f67b3e61ad736cd5c9f307447d33280e4"
      ],
      "author": {
        "name": "Yafang Shao",
        "email": "laoar.shao@gmail.com",
        "time": "Sun Aug 13 14:18:59 2023 +0000"
      },
      "committer": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Wed Aug 16 16:44:23 2023 +0200"
      },
      "message": "bpf: Fix uninitialized symbol in bpf_perf_link_fill_kprobe()\n\nThe commit 1b715e1b0ec5 (\"bpf: Support -\u003efill_link_info for perf_event\") leads\nto the following Smatch static checker warning:\n\n    kernel/bpf/syscall.c:3416 bpf_perf_link_fill_kprobe()\n    error: uninitialized symbol \u0027type\u0027.\n\nThat can happens when uname is NULL. So fix it by verifying the uname when we\nreally need to fill it.\n\nFixes: 1b715e1b0ec5 (\"bpf: Support -\u003efill_link_info for perf_event\")\nReported-by: Dan Carpenter \u003cdan.carpenter@linaro.org\u003e\nSigned-off-by: Yafang Shao \u003claoar.shao@gmail.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Yonghong Song \u003cyonghong.song@linux.dev\u003e\nAcked-by: Jiri Olsa \u003cjolsa@kernel.org\u003e\nCloses: https://lore.kernel.org/bpf/85697a7e-f897-4f74-8b43-82721bebc462@kili.mountain\nLink: https://lore.kernel.org/bpf/20230813141900.1268-2-laoar.shao@gmail.com\n"
    },
    {
      "commit": "950fe35831af0c1f9d87d4105843c3b7f1fbf09b",
      "tree": "8c8afcc445ef67bf8afa8cb5fdd9e7b94058ac09",
      "parents": [
        "d147085183ea1b0efd2c18fca76e4dee873b1e4e",
        "a63e10da42e757408d98732aaf5cf84bfd3a8276"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 12:26:44 2023 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 12:26:44 2023 +0100"
      },
      "message": "Merge branch \u0027ipv6-expired-routes\u0027\n\nKui-Feng Lee says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nRemove expired routes with a separated list of routes.\n\nFIB6 GC walks trees of fib6_tables to remove expired routes. Walking a tree\ncan be expensive if the number of routes in a table is big, even if most of\nthem are permanent. Checking routes in a separated list of routes having\nexpiration will avoid this potential issue.\n\nBackground\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe size of a Linux IPv6 routing table can become a big problem if not\nmanaged appropriately.  Now, Linux has a garbage collector to remove\nexpired routes periodically.  However, this may lead to a situation in\nwhich the routing path is blocked for a long period due to an\nexcessive number of routes.\n\nFor example, years ago, there is a commit c7bb4b89033b (\"ipv6: tcp:\ndrop silly ICMPv6 packet too big messages\").  The root cause is that\nmalicious ICMPv6 packets were sent back for every small packet sent to\nthem. These packets add routes with an expiration time that prompts\nthe GC to periodically check all routes in the tables, including\npermanent ones.\n\nWhy Route Expires\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nUsers can add IPv6 routes with an expiration time manually. However,\nthe Neighbor Discovery protocol may also generate routes that can\nexpire.  For example, Router Advertisement (RA) messages may create a\ndefault route with an expiration time. [RFC 4861] For IPv4, it is not\npossible to set an expiration time for a route, and there is no RA, so\nthere is no need to worry about such issues.\n\nCreate Routes with Expires\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nYou can create routes with expires with the  command.\n\nFor example,\n\n    ip -6 route add 2001:b000:591::3 via fe80::5054:ff:fe12:3457 \\\n        dev enp0s3 expires 30\n\nThe route that has been generated will be deleted automatically in 30\nseconds.\n\nGC of FIB6\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe function called fib6_run_gc() is responsible for performing\ngarbage collection (GC) for the Linux IPv6 stack. It checks for the\nexpiration of every route by traversing the trees of routing\ntables. The time taken to traverse a routing table increases with its\nsize. Holding the routing table lock during traversal is particularly\nundesirable. Therefore, it is preferable to keep the lock for the\nshortest possible duration.\n\nSolution\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe cause of the issue is keeping the routing table locked during the\ntraversal of large trees. To solve this problem, we can create a separate\nlist of routes that have expiration. This will prevent GC from checking\npermanent routes.\n\nResult\n\u003d\u003d\u003d\u003d\u003d\u003d\n\nWe conducted a test to measure the execution times of fib6_gc_timer_cb()\nand observed that it enhances the GC of FIB6. During the test, we added\npermanent routes with the following numbers: 1000, 3000, 6000, and\n9000. Additionally, we added a route with an expiration time.\n\nHere are the average execution times for the kernel without the patch.\n - 120020 ns with 1000 permanent routes\n - 308920 ns with 3000 ...\n - 581470 ns with 6000 ...\n - 855310 ns with 9000 ...\n\nThe kernel with the patch consistently takes around 14000 ns to execute,\nregardless of the number of permanent routes that are installed.\n\nMajor changes from v7:\n\n - Fix warings raised by the patchwork.\n\nMajor changes from v6:\n\n - Remove unnecessary check of tb6 in fib6_clean_expires_locked().\n\n - Use ib6_clean_expires_locked() instead in fib6_purge_rt().\n\nMajor changes from v5:\n\n - Change the order of adding new routes to the GC list and starting\n   GC timer.\n\n - Remove time measurements from the test case.\n\n - Stop forcing GC flush.\n\nMajor changes from v4:\n\n - Detect existence of \u0027strace\u0027 in the test case.\n\nMajor changes from v3:\n\n - Fix the type of arg according to feedback.\n\n - Add 1k temporary routes and 5K permanent routes in the test case.\n   Measure time spending on GC with strace.\n\nMajor changes from v2:\n\n - Remove unnecessary and incorrect sysctl restoring in the test case.\n\nMajor changes from v1:\n\n - Moved gc_link to avoid creating a hole in fib6_info.\n\n - Moved fib6_set_expires*() and fib6_clean_expires*() to the header\n   file and inlined. And removed duplicated lines.\n\n - Added a test case.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a63e10da42e757408d98732aaf5cf84bfd3a8276",
      "tree": "8c8afcc445ef67bf8afa8cb5fdd9e7b94058ac09",
      "parents": [
        "3dec89b14d37ee635e772636dad3f09f78f1ab87"
      ],
      "author": {
        "name": "Kui-Feng Lee",
        "email": "thinker.li@gmail.com",
        "time": "Tue Aug 15 11:07:06 2023 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 12:26:43 2023 +0100"
      },
      "message": "selftests: fib_tests: Add a test case for IPv6 garbage collection\n\nAdd 1000 IPv6 routes with expiration time (w/ and w/o additional 5000\npermanet routes in the background.)  Wait for a few seconds to make sure\nthey are removed correctly.\n\nThe expected output of the test looks like the following example.\n\n\u003e Fib6 garbage collection test\n\u003e     TEST: ipv6 route garbage collection [ OK ]\n\nSigned-off-by: Kui-Feng Lee \u003cthinker.li@gmail.com\u003e\nReviewed-by: David Ahern \u003cdsahern@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3dec89b14d37ee635e772636dad3f09f78f1ab87",
      "tree": "a5d4c70bd3dc5e7eff770b068e7c20f083033ac0",
      "parents": [
        "d147085183ea1b0efd2c18fca76e4dee873b1e4e"
      ],
      "author": {
        "name": "Kui-Feng Lee",
        "email": "thinker.li@gmail.com",
        "time": "Tue Aug 15 11:07:05 2023 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 12:26:43 2023 +0100"
      },
      "message": "net/ipv6: Remove expired routes with a separated list of routes.\n\nFIB6 GC walks trees of fib6_tables to remove expired routes. Walking a tree\ncan be expensive if the number of routes in a table is big, even if most of\nthem are permanent. Checking routes in a separated list of routes having\nexpiration will avoid this potential issue.\n\nSigned-off-by: Kui-Feng Lee \u003cthinker.li@gmail.com\u003e\nReviewed-by: David Ahern \u003cdsahern@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d147085183ea1b0efd2c18fca76e4dee873b1e4e",
      "tree": "71718e9f7f19cc85d1ff26dee5b7006f88d48c87",
      "parents": [
        "ac8a52962164a50e693fa021d3564d7745b83a7f"
      ],
      "author": {
        "name": "Kai-Heng Feng",
        "email": "kai.heng.feng@canonical.com",
        "time": "Tue Aug 15 10:01:11 2023 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 12:22:22 2023 +0100"
      },
      "message": "e1000e: Use PME poll to circumvent unreliable ACPI wake\n\nOn some I219 devices, ethernet cable plugging detection only works once\nfrom PCI D3 state. Subsequent cable plugging does set PME bit correctly,\nbut device still doesn\u0027t get woken up.\n\nSince I219 connects to the root complex directly, it relies on platform\nfirmware (ACPI) to wake it up. In this case, the GPE from _PRW only\nworks for first cable plugging but fails to notify the driver for\nsubsequent plugging events.\n\nThe issue was originally found on CNP, but the same issue can be found\non ADL too. So workaround the issue by continuing use PME poll after\nfirst ACPI wake. As PME poll is always used, the runtime suspend\nrestriction for CNP can also be removed.\n\nSigned-off-by: Kai-Heng Feng \u003ckai.heng.feng@canonical.com\u003e\nTested-by: Naama Meir \u003cnaamax.meir@linux.intel.com\u003e\nAcked-by: Sasha Neftin \u003csasha.neftin@intel.com\u003e\nReviewed-by: Simon Horman \u003csimon.horman@corigine.com\u003e\nReviewed-by: Leon Romanovsky \u003cleonro@nvidia.com\u003e\nSigned-off-by: Tony Nguyen \u003canthony.l.nguyen@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ac8a52962164a50e693fa021d3564d7745b83a7f",
      "tree": "8cafe2afe9f3308bf2dda05e24f8eb7bdf315420",
      "parents": [
        "7fd034bce6d276353a4e70c516789dfe6b2c32ae"
      ],
      "author": {
        "name": "Abel Wu",
        "email": "wuyun.abel@bytedance.com",
        "time": "Mon Aug 14 15:09:11 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 12:21:32 2023 +0100"
      },
      "message": "net-memcg: Fix scope of sockmem pressure indicators\n\nNow there are two indicators of socket memory pressure sit inside\nstruct mem_cgroup, socket_pressure and tcpmem_pressure, indicating\nmemory reclaim pressure in memcg-\u003ememory and -\u003etcpmem respectively.\n\nWhen in legacy mode (cgroupv1), the socket memory is charged into\n-\u003etcpmem which is independent of -\u003ememory, so socket_pressure has\nnothing to do with socket\u0027s pressure at all. Things could be worse\nby taking socket_pressure into consideration in legacy mode, as a\npressure in -\u003ememory can lead to premature reclamation/throttling\nin socket.\n\nWhile for the default mode (cgroupv2), the socket memory is charged\ninto -\u003ememory, and -\u003etcpmem/-\u003etcpmem_pressure are simply not used.\n\nSo {socket,tcpmem}_pressure are only used in default/legacy mode\nrespectively for indicating socket memory pressure. This patch fixes\nthe pieces of code that make mixed use of both.\n\nFixes: 8e8ae645249b (\"mm: memcontrol: hook up vmpressure to socket pressure\")\nSigned-off-by: Abel Wu \u003cwuyun.abel@bytedance.com\u003e\nAcked-by: Shakeel Butt \u003cshakeelb@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7fd034bce6d276353a4e70c516789dfe6b2c32ae",
      "tree": "088c72ebc4e47f60ad4eac36e97cbeafde23e944",
      "parents": [
        "90bc21aaef4adaefceda2d385756138fc247c0c2"
      ],
      "author": {
        "name": "Louis Peens",
        "email": "louis.peens@corigine.com",
        "time": "Tue Aug 15 14:43:25 2023 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 12:18:54 2023 +0100"
      },
      "message": "nfp: update maintainer\n\nTake over maintainership of the nfp driver from Simon as he\nis moving away from Corigine.\n\nSigned-off-by: Louis Peens \u003clouis.peens@corigine.com\u003e\nAcked-by: Simon Horman \u003csimon.horman@corigine.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "90bc21aaef4adaefceda2d385756138fc247c0c2",
      "tree": "50643d5eb140fbaff5231d482b4ab98bd10027fa",
      "parents": [
        "569dce3f8e6406fe220752baf9133d9cdc0b63a8"
      ],
      "author": {
        "name": "Grygorii Strashko",
        "email": "grygorii.strashko@ti.com",
        "time": "Tue Aug 15 11:21:05 2023 +0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 12:17:49 2023 +0100"
      },
      "message": "net: ethernet: ti: am65-cpsw: add mqprio qdisc offload in channel mode\n\nThis patch adds MQPRIO Qdisc offload in full \u0027channel\u0027 mode which allows\nnot only setting up pri:tc mapping, but also configuring TX shapers on\nexternal port FIFOs. The K3 CPSW MQPRIO Qdisc offload is expected to work\nwith VLAN/priority tagged packets. Non-tagged packets have to be mapped\nonly to TC0.\n\n- TX traffic classes must be rated starting from TC that has highest\npriority and with no gaps\n- Traffic classes are used starting from 0, that has highest priority\n- min_rate defines Committed Information Rate (guaranteed)\n- max_rate defines Excess Information Rate (non guaranteed) and offloaded\nas (max_rate[i] - tcX_min_rate[i])\n- VLAN/priority tagged packets mapped to TC0 will exit switch with VLAN tag\npriority 0\n\nThe configuration example:\n ethtool -L eth1 tx 5\n ethtool --set-priv-flags eth1 p0-rx-ptype-rrobin off\n\n tc qdisc add dev eth1 parent root handle 100: mqprio num_tc 3 \\\n map 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 \\\n queues 1@0 1@1 1@2 hw 1 mode channel \\\n shaper bw_rlimit min_rate 0 100mbit 200mbit max_rate 0 101mbit 202mbit\n\n tc qdisc replace dev eth2 handle 100: parent root mqprio num_tc 1 \\\n map 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 queues 1@0 hw 1\n\n ip link add link eth1 name eth1.100 type vlan id 100\n ip link set eth1.100 type vlan egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7\n\nIn the above example two ports share the same TX CPPI queue 0 for low\npriority traffic. 3 traffic classes are defined for eth1 and mapped to:\nTC0 - low priority, TX CPPI queue 0 -\u003e ext Port 1 fifo0, no rate limit\nTC1 - prio 2, TX CPPI queue 1 -\u003e ext Port 1 fifo1, CIR\u003d100Mbit/s, EIR\u003d1Mbit/s\nTC2 - prio 3, TX CPPI queue 2 -\u003e ext Port 1 fifo2, CIR\u003d200Mbit/s, EIR\u003d2Mbit/s\n\nSigned-off-by: Grygorii Strashko \u003cgrygorii.strashko@ti.com\u003e\nSigned-off-by: Roger Quadros \u003crogerq@kernel.org\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "569dce3f8e6406fe220752baf9133d9cdc0b63a8",
      "tree": "6f331e6826eefbbc3a1bfc3fc24eac5434fabfad",
      "parents": [
        "936db833c2dd0a9ae738c8ce24fff816c9c8e381",
        "12af73269fd942c98ff9999a2ce0c04165aae136"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:18 2023 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:18 2023 +0100"
      },
      "message": "Merge branch \u0027inet-data-races\u0027\n\nEric Dumazet says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\ninet: socket lock and data-races avoidance\n\nIn this series, I converted 20 bits in \"struct inet_sock\" and made\nthem truly atomic.\n\nThis allows to implement many IP_ socket options in a lockless\nfashion (no need to acquire socket lock), and fixes data-races\nthat were showing up in various KCSAN reports.\n\nI also took care of IP_TTL/IP_MINTTL, but left few other options\nfor another series.\n\nv4: Rebased after recent mptcp changes.\n  Added Reviewed-by: tags from Simon (thanks !)\n\nv3: fixed patch 7, feedback from build bot about ipvs set_mcast_loop()\n\nv2: addressed a feedback from a build bot in patch 9 by removing\n unused issk variable in mptcp_setsockopt_sol_ip_set_transparent()\n Added Acked-by: tags from Soheil (thanks !)\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "12af73269fd942c98ff9999a2ce0c04165aae136",
      "tree": "6f331e6826eefbbc3a1bfc3fc24eac5434fabfad",
      "parents": [
        "10f42426e5bcea728d7fae96609b29b4fb1f7518"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:47 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:18 2023 +0100"
      },
      "message": "inet: implement lockless IP_MINTTL\n\ninet-\u003emin_ttl is already read with READ_ONCE().\n\nImplementing IP_MINTTL socket option set/read\nwithout holding the socket lock is easy.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "10f42426e5bcea728d7fae96609b29b4fb1f7518",
      "tree": "96616c34b54ec1557e0b65ed307efd6f060141a4",
      "parents": [
        "08e39c0dfa29f233f5a621f7d274b793a080c769"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:46 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:18 2023 +0100"
      },
      "message": "inet: implement lockless IP_TTL\n\nip_select_ttl() is racy, because it reads inet-\u003euc_ttl\nwithout proper locking.\n\nAdd READ_ONCE()/WRITE_ONCE() annotations while\nallowing IP_TTL socket option to be set/read without\nholding the socket lock.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "08e39c0dfa29f233f5a621f7d274b793a080c769",
      "tree": "5edd6e05adc3042bbf121d2c62424e28759df625",
      "parents": [
        "ca571e2eb7eb6202aa367e01c811aab023272f38"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:45 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:18 2023 +0100"
      },
      "message": "inet: move inet-\u003edefer_connect to inet-\u003einet_flags\n\nMake room in struct inet_sock by removing this bit field,\nusing one available bit in inet_flags instead.\n\nAlso move local_port_range to fill the resulting hole,\nsaving 8 bytes on 64bit arches.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nReviewed-by: Matthieu Baerts \u003cmatthieu.baerts@tessares.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ca571e2eb7eb6202aa367e01c811aab023272f38",
      "tree": "00d2396e709e8e8274a64205378a81cc95045825",
      "parents": [
        "f04b8d3478a3a63f17d8dc0dc6da16a828b48df0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:44 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:17 2023 +0100"
      },
      "message": "inet: move inet-\u003ebind_address_no_port to inet-\u003einet_flags\n\nIP_BIND_ADDRESS_NO_PORT socket option can now be set/read\nwithout locking the socket.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f04b8d3478a3a63f17d8dc0dc6da16a828b48df0",
      "tree": "45703f4ce7f75dd79e9bd28c2e282d3e094bf6f6",
      "parents": [
        "b1c0356a58577ce0a583e3044bf801877fc0b5de"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:43 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:17 2023 +0100"
      },
      "message": "inet: move inet-\u003enodefrag to inet-\u003einet_flags\n\nIP_NODEFRAG socket option can now be set/read\nwithout locking the socket.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b1c0356a58577ce0a583e3044bf801877fc0b5de",
      "tree": "a5ed4452baf8a48fce1274b747228b842b18f377",
      "parents": [
        "4bd0623f04eef65c0a324000fad73c4d3a677f8e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:42 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:17 2023 +0100"
      },
      "message": "inet: move inet-\u003eis_icsk to inet-\u003einet_flags\n\nWe move single bit fields to inet-\u003einet_flags to avoid races.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4bd0623f04eef65c0a324000fad73c4d3a677f8e",
      "tree": "dcf54f73781e3cc0f479a4b24bb9d12b64239116",
      "parents": [
        "307b4ac6dc18436076cdd314aa3e556be077bf2d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:41 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:17 2023 +0100"
      },
      "message": "inet: move inet-\u003etransparent to inet-\u003einet_flags\n\nIP_TRANSPARENT socket option can now be set/read\nwithout locking the socket.\n\nv2: removed unused issk variable in mptcp_setsockopt_sol_ip_set_transparent()\nv4: rebased after commit 3f326a821b99 (\"mptcp: change the mpc check helper to return a sk\")\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Paolo Abeni \u003cpabeni@redhat.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nReviewed-by: Matthieu Baerts \u003cmatthieu.baerts@tessares.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "307b4ac6dc18436076cdd314aa3e556be077bf2d",
      "tree": "c750fdee64bbf6c74db275a134986b0b02f718b9",
      "parents": [
        "b09bde5c3554d58cb711dac55a10ecc56d436966"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:40 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:17 2023 +0100"
      },
      "message": "inet: move inet-\u003emc_all to inet-\u003einet_frags\n\nIP_MULTICAST_ALL socket option can now be set/read\nwithout locking the socket.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b09bde5c3554d58cb711dac55a10ecc56d436966",
      "tree": "f454c01e10f8a1312d9941a1867f49569b36aaa4",
      "parents": [
        "cafbe182a467bf6799242fd7468438cf1ab833dc"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:39 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:17 2023 +0100"
      },
      "message": "inet: move inet-\u003emc_loop to inet-\u003einet_frags\n\nIP_MULTICAST_LOOP socket option can now be set/read\nwithout locking the socket.\n\nv3: fix build bot error reported in ipvs set_mcast_loop()\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cafbe182a467bf6799242fd7468438cf1ab833dc",
      "tree": "d6c57b53c808f8c43ce28c365c25d128fb4dd824",
      "parents": [
        "3f7e753206bb20fc098b44ec40001befd1fe18d1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:38 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:17 2023 +0100"
      },
      "message": "inet: move inet-\u003ehdrincl to inet-\u003einet_flags\n\nIP_HDRINCL socket option can now be set/read\nwithout locking the socket.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3f7e753206bb20fc098b44ec40001befd1fe18d1",
      "tree": "2dbbbbfceaea1fc24ad2d095debef470312e3f2a",
      "parents": [
        "8e8cfb114d9f1e2efddb892f993c1ad61635c85e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:37 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:17 2023 +0100"
      },
      "message": "inet: move inet-\u003efreebind to inet-\u003einet_flags\n\nIP_FREEBIND socket option can now be set/read\nwithout locking the socket.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nReviewed-by: Matthieu Baerts \u003cmatthieu.baerts@tessares.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8e8cfb114d9f1e2efddb892f993c1ad61635c85e",
      "tree": "88c0a039aec470e4de049c64b008af3c6408c095",
      "parents": [
        "6b5f43ea08150e7ff72f734545101c58489ead5b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:36 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:17 2023 +0100"
      },
      "message": "inet: move inet-\u003erecverr_rfc4884 to inet-\u003einet_flags\n\nIP_RECVERR_RFC4884 socket option can now be set/read\nwithout locking the socket.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b5f43ea08150e7ff72f734545101c58489ead5b",
      "tree": "805b596ad9e4070ad6766a0e11b601d9a88edbac",
      "parents": [
        "b4d84bce4c437c4ac1b6f7ef4d612d7d52f62cfe"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:35 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:17 2023 +0100"
      },
      "message": "inet: move inet-\u003erecverr to inet-\u003einet_flags\n\nIP_RECVERR socket option can now be set/get without locking the socket.\n\nThis patch potentially avoid data-races around inet-\u003erecverr.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4d84bce4c437c4ac1b6f7ef4d612d7d52f62cfe",
      "tree": "b29d6153bd51752d08e5a669832e37286cff8fbd",
      "parents": [
        "c274af2242693f59f00851b3660a21b10bcd76cc"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:34 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:17 2023 +0100"
      },
      "message": "inet: set/get simple options locklessly\n\nNow we have inet-\u003einet_flags, we can set following options\nwithout having to hold the socket lock:\n\nIP_PKTINFO, IP_RECVTTL, IP_RECVTOS, IP_RECVOPTS, IP_RETOPTS,\nIP_PASSSEC, IP_RECVORIGDSTADDR, IP_RECVFRAGSIZE.\n\nip_sock_set_pktinfo() no longer hold the socket lock.\n\nSimilarly we can get the following options whithout holding\nthe socket lock:\n\nIP_PKTINFO, IP_RECVTTL, IP_RECVTOS, IP_RECVOPTS, IP_RETOPTS,\nIP_PASSSEC, IP_RECVORIGDSTADDR, IP_CHECKSUM, IP_RECVFRAGSIZE.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c274af2242693f59f00851b3660a21b10bcd76cc",
      "tree": "9e6dff9911b9a0fd9b26f973ea89217f5ca29da0",
      "parents": [
        "936db833c2dd0a9ae738c8ce24fff816c9c8e381"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Aug 16 08:15:33 2023 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 11:09:16 2023 +0100"
      },
      "message": "inet: introduce inet-\u003einet_flags\n\nVarious inet fields are currently racy.\n\ndo_ip_setsockopt() and do_ip_getsockopt() are mostly holding\nthe socket lock, but some (fast) paths do not.\n\nUse a new inet-\u003einet_flags to hold atomic bits in the series.\n\nRemove inet-\u003ecmsg_flags, and use instead 9 bits from inet_flags.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Soheil Hassas Yeganeh \u003csoheil@google.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "936db833c2dd0a9ae738c8ce24fff816c9c8e381",
      "tree": "74759a9cd1359b73eb676cbc917744704f02361b",
      "parents": [
        "61a9b174f461de4d0668a98ca2f668b65ebdf131",
        "cf2abd8724318195a0cd7e55ff1dcac74b4b110a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 09:59:40 2023 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 09:59:40 2023 +0100"
      },
      "message": "Merge branch \u0027redundant-of_match_ptr\u0027\n\nRuan Jinjie says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nnet: Remove redundant of_match_ptr() macro\n\nSince these net drivers depend on CONFIG_OF, there is\nno need to wrap the macro of_match_ptr() here.\n\nChanges in v3:\n- Collect responses from v1 and v2.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf2abd8724318195a0cd7e55ff1dcac74b4b110a",
      "tree": "74759a9cd1359b73eb676cbc917744704f02361b",
      "parents": [
        "537a6b9927083e2b7b0b3223dc77a985707d5339"
      ],
      "author": {
        "name": "Ruan Jinjie",
        "email": "ruanjinjie@huawei.com",
        "time": "Mon Aug 14 10:55:19 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 09:59:40 2023 +0100"
      },
      "message": "wlcore: spi: Remove redundant of_match_ptr()\n\nThe driver depends on CONFIG_OF, it is not necessary to use\nof_match_ptr() here.\n\nSigned-off-by: Ruan Jinjie \u003cruanjinjie@huawei.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "537a6b9927083e2b7b0b3223dc77a985707d5339",
      "tree": "8f360ca71003a6bde68c6fc18f16cae9e8cc5fa1",
      "parents": [
        "21b566fda00f1907b41a06fb0255746639e4579f"
      ],
      "author": {
        "name": "Ruan Jinjie",
        "email": "ruanjinjie@huawei.com",
        "time": "Mon Aug 14 10:55:18 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 09:59:40 2023 +0100"
      },
      "message": "net: qualcomm: Remove redundant of_match_ptr()\n\nThe driver depends on CONFIG_OF, it is not necessary to use\nof_match_ptr() here.\n\nSigned-off-by: Ruan Jinjie \u003cruanjinjie@huawei.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "21b566fda00f1907b41a06fb0255746639e4579f",
      "tree": "8d4798b4982de585f49b61a63664e34a59bcff79",
      "parents": [
        "81d463c02b910f4abb1415c365f9491e10333552"
      ],
      "author": {
        "name": "Ruan Jinjie",
        "email": "ruanjinjie@huawei.com",
        "time": "Mon Aug 14 10:55:17 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 09:59:40 2023 +0100"
      },
      "message": "net: gemini: Remove redundant of_match_ptr()\n\nThe driver depends on CONFIG_OF, it is not necessary to use\nof_match_ptr() here.\n\nSigned-off-by: Ruan Jinjie \u003cruanjinjie@huawei.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "81d463c02b910f4abb1415c365f9491e10333552",
      "tree": "b2d775ec6ce7765ba963cd8861503099fa5c15df",
      "parents": [
        "aae249dfa089c0c9d845ef18d70c0b7ef367df64"
      ],
      "author": {
        "name": "Ruan Jinjie",
        "email": "ruanjinjie@huawei.com",
        "time": "Mon Aug 14 10:55:16 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 09:59:40 2023 +0100"
      },
      "message": "net: dsa: rzn1-a5psw: Remove redundant of_match_ptr()\n\nThe driver depends on CONFIG_OF, it is not necessary to use\nof_match_ptr() here.\n\nSigned-off-by: Ruan Jinjie \u003cruanjinjie@huawei.com\u003e\nReviewed-by: Vladimir Oltean \u003colteanv@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aae249dfa089c0c9d845ef18d70c0b7ef367df64",
      "tree": "37d0a0d13acfa3ce54327417e948f201ed728cd4",
      "parents": [
        "61a9b174f461de4d0668a98ca2f668b65ebdf131"
      ],
      "author": {
        "name": "Ruan Jinjie",
        "email": "ruanjinjie@huawei.com",
        "time": "Mon Aug 14 10:55:15 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 09:59:40 2023 +0100"
      },
      "message": "net: dsa: realtek: Remove redundant of_match_ptr()\n\nThe driver depends on CONFIG_OF, it is not necessary to use\nof_match_ptr() here.\n\nSigned-off-by: Ruan Jinjie \u003cruanjinjie@huawei.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nReviewed-by: Vladimir Oltean \u003colteanv@gmail.com\u003e\nReviewed-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61a9b174f461de4d0668a98ca2f668b65ebdf131",
      "tree": "278d1761775da359f602323261789dd34fc8bff2",
      "parents": [
        "bc02fc7990239a73f199105bb57b34963b6a12c7"
      ],
      "author": {
        "name": "Li Zetao",
        "email": "lizetao1@huawei.com",
        "time": "Tue Aug 15 15:49:27 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 09:54:16 2023 +0100"
      },
      "message": "nfc: virtual_ncidev: Use module_misc_device macro to simplify the code\n\nUse the module_misc_device macro to simplify the code, which is the\nsame as declaring with module_init() and module_exit().\n\nSigned-off-by: Li Zetao \u003clizetao1@huawei.com\u003e\nReviewed-by: Krzysztof Kozlowski \u003ckrzysztof.kozlowski@linaro.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc02fc7990239a73f199105bb57b34963b6a12c7",
      "tree": "309c7470a38477a15964ec3750eb130cd2520521",
      "parents": [
        "78c53eaae1e13d973098a968d3e3bdaaceef5aca",
        "36122201eeaefd78547def9681aa5d83b5a00b6a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 08:56:38 2023 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 08:56:38 2023 +0100"
      },
      "message": "Merge branch \u0027hns3-ethtool\u0027\n\nJijie Shao says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nhns3: refactor registers information for ethtool -d\n\nrefactor registers information for ethtool -d\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "36122201eeaefd78547def9681aa5d83b5a00b6a",
      "tree": "309c7470a38477a15964ec3750eb130cd2520521",
      "parents": [
        "3ef5d70b82ad5be1235e16318d9ab4f848a5bd68"
      ],
      "author": {
        "name": "Jijie Shao",
        "email": "shaojijie@huawei.com",
        "time": "Tue Aug 15 14:06:41 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 08:56:38 2023 +0100"
      },
      "message": "net: hns3: fix wrong rpu tln reg issue\n\nIn the original RPU query command, the status register values of\nmultiple RPU tunnels are accumulated by default, which is unreasonable.\nThis patch Fix it by querying the specified tunnel ID.\nThe tunnel number of the device can be obtained from firmware\nduring initialization.\n\nFixes: ddb54554fa51 (\"net: hns3: add DFX registers information for ethtool -d\")\nSigned-off-by: Jijie Shao \u003cshaojijie@huawei.com\u003e\nReviewed-by: Leon Romanovsky \u003cleonro@nvidia.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ef5d70b82ad5be1235e16318d9ab4f848a5bd68",
      "tree": "081c94b05395bcdb3af3ea64963f48318ef596b8",
      "parents": [
        "d8634b7c3f62d265fc2ecf29286aa9c5b78f969f"
      ],
      "author": {
        "name": "Jijie Shao",
        "email": "shaojijie@huawei.com",
        "time": "Tue Aug 15 14:06:40 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 08:56:38 2023 +0100"
      },
      "message": "net: hns3: Support tlv in regs data for HNS3 VF driver\n\nThe dump register function is being refactored.\nThe third step in refactoring is to support tlv info in regs data for\nHNS3 PF driver.\n\nCurrently, if we use \"ethtool -d\" to dump regs value,\nthe output is as follows:\n  offset1: 00 01 02 03 04 05 ...\n  offset2：10 11 12 13 14 15 ...\n  ......\n\nWe can\u0027t get the value of a register directly.\n\nThis patch deletes the original separator information and\nadd tag_len_value information in regs data.\nethtool can parse register data in key-value format by -d command.\n\na patch will be added to the ethtool to parse regs data\nin the following format:\n  reg1 : value2\n  reg2 : value2\n  ......\n\nSigned-off-by: Jijie Shao \u003cshaojijie@huawei.com\u003e\nReviewed-by: Leon Romanovsky \u003cleonro@nvidia.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d8634b7c3f62d265fc2ecf29286aa9c5b78f969f",
      "tree": "3cdbae02298a1752a9729753aba392afe785ea8c",
      "parents": [
        "939ccd107ffcade20c9c7055a2e7ae0fd724fb72"
      ],
      "author": {
        "name": "Jijie Shao",
        "email": "shaojijie@huawei.com",
        "time": "Tue Aug 15 14:06:39 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 08:56:38 2023 +0100"
      },
      "message": "net: hns3: Support tlv in regs data for HNS3 PF driver\n\nThe dump register function is being refactored.\nThe second step in refactoring is to support tlv info in regs data for\nHNS3 PF driver.\n\nCurrently, if we use \"ethtool -d\" to dump regs value,\nthe output is as follows:\n  offset1: 00 01 02 03 04 05 ...\n  offset2：10 11 12 13 14 15 ...\n  ......\n\nWe can\u0027t get the value of a register directly.\n\nThis patch deletes the original separator information and\nadd tag_len_value information in regs data.\nethtool can parse register data in key-value format by -d command.\n\na patch will be added to the ethtool to parse regs data\nin the following format:\n  reg1 : value2\n  reg2 : value2\n  ......\n\nSigned-off-by: Jijie Shao \u003cshaojijie@huawei.com\u003e\nReviewed-by: Leon Romanovsky \u003cleonro@nvidia.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "939ccd107ffcade20c9c7055a2e7ae0fd724fb72",
      "tree": "d83240805549cffb484b272e3018d44ce65d20e1",
      "parents": [
        "78c53eaae1e13d973098a968d3e3bdaaceef5aca"
      ],
      "author": {
        "name": "Jijie Shao",
        "email": "shaojijie@huawei.com",
        "time": "Tue Aug 15 14:06:38 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 08:56:38 2023 +0100"
      },
      "message": "net: hns3: move dump regs function to a separate file\n\nThe dump register function is being refactored.\nThe first step in refactoring is put the dump regs function\ninto a separate file.\n\nSigned-off-by: Jijie Shao \u003cshaojijie@huawei.com\u003e\nReviewed-by: Leon Romanovsky \u003cleonro@nvidia.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "78c53eaae1e13d973098a968d3e3bdaaceef5aca",
      "tree": "700d33b0330e79774134b6b6b6322b5a28d5dc93",
      "parents": [
        "e56e220d73caf06e9e6f5553f414376b4af51c8a",
        "af6f4791380c320802df2106e295efd29c5e8b16"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 07:12:40 2023 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 07:12:40 2023 +0100"
      },
      "message": "Merge branch \u0027fec-XDP_TX\u0027\n\nWei Fang says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nnet: fec: add XDP_TX feature support\n\nThis patch set is to support the XDP_TX feature of FEC driver, the first\npatch is add initial XDP_TX support, and the second patch improves the\nperformance of XDP_TX by not using xdp_convert_buff_to_frame(). Please\nrefer to the commit message of each patch for more details.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAcked-by: Jesper Dangaard Brouer \u003chawk@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "af6f4791380c320802df2106e295efd29c5e8b16",
      "tree": "700d33b0330e79774134b6b6b6322b5a28d5dc93",
      "parents": [
        "f601899e432155c1c7d372a7924f1a2301ca64b4"
      ],
      "author": {
        "name": "Wei Fang",
        "email": "wei.fang@nxp.com",
        "time": "Tue Aug 15 13:19:55 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 07:12:39 2023 +0100"
      },
      "message": "net: fec: improve XDP_TX performance\n\nAs suggested by Jesper and Alexander, we can avoid converting xdp_buff\nto xdp_frame in case of XDP_TX to save a bunch of CPU cycles, so that\nwe can further improve the XDP_TX performance.\n\nBefore this patch on i.MX8MP-EVK board, the performance shows as follows.\nroot@imx8mpevk:~# ./xdp2 eth0\nproto 17:     353918 pkt/s\nproto 17:     352923 pkt/s\nproto 17:     353900 pkt/s\nproto 17:     352672 pkt/s\nproto 17:     353912 pkt/s\nproto 17:     354219 pkt/s\n\nAfter applying this patch, the performance is improved.\nroot@imx8mpevk:~# ./xdp2 eth0\nproto 17:     369261 pkt/s\nproto 17:     369267 pkt/s\nproto 17:     369206 pkt/s\nproto 17:     369214 pkt/s\nproto 17:     369126 pkt/s\nproto 17:     369272 pkt/s\n\nSigned-off-by: Wei Fang \u003cwei.fang@nxp.com\u003e\nSuggested-by: Alexander Lobakin \u003caleksander.lobakin@intel.com\u003e\nSuggested-by: Jesper Dangaard Brouer \u003chawk@kernel.org\u003e\nReviewed-by: Jesper Dangaard Brouer \u003chawk@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f601899e432155c1c7d372a7924f1a2301ca64b4",
      "tree": "506746a575dee0d1aee9f377287a900c13bb9af6",
      "parents": [
        "e56e220d73caf06e9e6f5553f414376b4af51c8a"
      ],
      "author": {
        "name": "Wei Fang",
        "email": "wei.fang@nxp.com",
        "time": "Tue Aug 15 13:19:54 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 07:12:39 2023 +0100"
      },
      "message": "net: fec: add XDP_TX feature support\n\nThe XDP_TX feature is not supported before, and all the frames\nwhich are deemed to do XDP_TX action actually do the XDP_DROP\naction. So this patch adds the XDP_TX support to FEC driver.\n\nI tested the performance of XDP_TX in XDP_DRV mode and XDP_SKB\nmode respectively on i.MX8MP-EVK platform, and as suggested by\nJesper, I also tested the performance of XDP_REDIRECT on the\nsame platform. And the test steps and results are as follows.\n\nXDP_TX test:\nStep 1: One board is used as generator and connects to switch,and\nthe FEC port of DUT also connects to the switch. Both boards with\nflow control off. Then the generator runs the\npktgen_sample03_burst_single_flow.sh script to generate and send\nburst traffic to DUT. Note that the size of packet was set to 64\nbytes and the procotol of packet was UDP in my test scenario. In\naddition, the SMAC of the packet need to be different from the MAC\nof the generator, because the xdp2 program will swap the DMAC and\nSMAC of the packet and send it back to the generator. If the SMAC\nof the generated packet is the MAC of the generator, the generator\nwill receive the returned traffic which increase the CPU loading\nand significantly degrade the transmit speed of the generator, and\nfinally it affects the test of XDP_TX performance.\n\nStep 2: The DUT runs the xdp2 program to transmit received UDP\npackets back out on the same port where they were received.\n\nroot@imx8mpevk:~# ./xdp2 eth0\nproto 17:     353918 pkt/s\nproto 17:     352923 pkt/s\nproto 17:     353900 pkt/s\nproto 17:     352672 pkt/s\nproto 17:     353912 pkt/s\nproto 17:     354219 pkt/s\n\nroot@imx8mpevk:~# ./xdp2 -S eth0\nproto 17:     160604 pkt/s\nproto 17:     160708 pkt/s\nproto 17:     160564 pkt/s\nproto 17:     160684 pkt/s\nproto 17:     160640 pkt/s\nproto 17:     160720 pkt/s\n\nThe above results show that the XDP_TX performance of XDP_DRV mode\nis much better than XDP_SKB mode, more than twice that of XDP_SKB\nmode, which is in line with our expectation.\n\nXDP_REDIRECT test:\nStep1: Both the generator and the FEC port of the DUT connet to the\nswitch port. All the ports with flow control off, then the generator\nruns the pktgen script to generate and send burst traffic to DUT.\nNote that the size of packet was set to 64 bytes and the procotol of\npacket was UDP in my test scenario.\n\nStep2: The DUT runs the xdp_redirect program to redirect the traffic\nfrom the FEC port to the FEC port itself.\n\nroot@imx8mpevk:~# ./xdp_redirect eth0 eth0\nRedirecting from eth0 (ifindex 2; driver fec) to eth0\n(ifindex 2; driver fec)\nSummary        232,302 rx/s        0 err,drop/s      232,344 xmit/s\nSummary        234,579 rx/s        0 err,drop/s      234,577 xmit/s\nSummary        235,548 rx/s        0 err,drop/s      235,549 xmit/s\nSummary        234,704 rx/s        0 err,drop/s      234,703 xmit/s\nSummary        235,504 rx/s        0 err,drop/s      235,504 xmit/s\nSummary        235,223 rx/s        0 err,drop/s      235,224 xmit/s\nSummary        234,509 rx/s        0 err,drop/s      234,507 xmit/s\nSummary        235,481 rx/s        0 err,drop/s      235,482 xmit/s\nSummary        234,684 rx/s        0 err,drop/s      234,683 xmit/s\nSummary        235,520 rx/s        0 err,drop/s      235,520 xmit/s\nSummary        235,461 rx/s        0 err,drop/s      235,461 xmit/s\nSummary        234,627 rx/s        0 err,drop/s      234,627 xmit/s\nSummary        235,611 rx/s        0 err,drop/s      235,611 xmit/s\n  Packets received    : 3,053,753\n  Average packets/s   : 234,904\n  Packets transmitted : 3,053,792\n  Average transmit/s  : 234,907\n\nCompared the performance of XDP_TX with XDP_REDIRECT, XDP_TX is also\nmuch better than XDP_REDIRECT. It\u0027s also in line with our expectation.\n\nSigned-off-by: Wei Fang \u003cwei.fang@nxp.com\u003e\nSuggested-by: Jesper Dangaard Brouer \u003chawk@kernel.org\u003e\nSuggested-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\nReviewed-by: Larysa Zaremba \u003clarysa.zaremba@intel.com\u003e\nAcked-by: Jesper Dangaard Brouer \u003chawk@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e56e220d73caf06e9e6f5553f414376b4af51c8a",
      "tree": "def23827f7ab04d3fbfe80d62621c52b1b035574",
      "parents": [
        "ccd06f502b91a78e45149efc70cb9b91f3bf3c68"
      ],
      "author": {
        "name": "Zhengchao Shao",
        "email": "shaozhengchao@huawei.com",
        "time": "Sat Aug 12 16:40:36 2023 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 16 07:07:16 2023 +0100"
      },
      "message": "selftests: bonding: remove redundant delete action of device link1_1\n\nWhen run command \"ip netns delete client\", device link1_1 has been\ndeleted. So, it is no need to delete link1_1 again. Remove it.\n\nSigned-off-by: Zhengchao Shao \u003cshaozhengchao@huawei.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ccd06f502b91a78e45149efc70cb9b91f3bf3c68",
      "tree": "6769be77bf6912b0ab7af6959fd3957801f040de",
      "parents": [
        "9cf3db3cd898a256247ad9f0661f14c05003b57f",
        "bd3a2f77809b84df5dc15edd72cf9955568e698e"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 19:21:49 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 19:21:49 2023 -0700"
      },
      "message": "Merge tag \u0027mlx5-updates-2023-08-14\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux\n\nSaeed Mahameed says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nmlx5-updates-2023-08-14\n\n1) Handle PTP out of order CQEs issue\n2) Check FW status before determining reset successful\n3) Expose maximum supported SFs via devlink resource\n4) MISC cleanups\n\n* tag \u0027mlx5-updates-2023-08-14\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux:\n  net/mlx5: Don\u0027t query MAX caps twice\n  net/mlx5: Remove unused MAX HCA capabilities\n  net/mlx5: Remove unused CAPs\n  net/mlx5: Fix error message in mlx5_sf_dev_state_change_handler()\n  net/mlx5: Remove redundant check of mlx5_vhca_event_supported()\n  net/mlx5: Use mlx5_sf_start_function_id() helper instead of directly calling MLX5_CAP_GEN()\n  net/mlx5: Remove redundant SF supported check from mlx5_sf_hw_table_init()\n  net/mlx5: Use auxiliary_device_uninit() instead of device_put()\n  net/mlx5: E-switch, Add checking for flow rule destinations\n  net/mlx5: Check with FW that sync reset completed successfully\n  net/mlx5: Expose max possible SFs via devlink resource\n  net/mlx5e: Add recovery flow for tx devlink health reporter for unhealthy PTP SQ\n  net/mlx5e: Make tx_port_ts logic resilient to out-of-order CQEs\n  net/mlx5: Consolidate devlink documentation in devlink/mlx5.rst\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://lore.kernel.org/r/20230814214144.159464-1-saeed@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "9cf3db3cd898a256247ad9f0661f14c05003b57f",
      "tree": "46f99a18fecd1ef445092b7db1b9e4b00e55f047",
      "parents": [
        "cf74eb5a5bc867258e7d0b0d1c3c4a60e1e3de2f",
        "7582113c6917c280c90352d1935cfa451e74376a"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 19:18:36 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 19:18:36 2023 -0700"
      },
      "message": "Merge branch \u0027net-warn-about-attempts-to-register-negative-ifindex\u0027\n\nJakub Kicinski says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nnet: warn about attempts to register negative ifindex\n\nFollow up to the recently posted fix for OvS lacking input\nvalidation:\nhttps://lore.kernel.org/all/20230814203840.2908710-1-kuba@kernel.org/\n\nWarn about negative ifindex more explicitly and misc YNL updates.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://lore.kernel.org/r/20230814205627.2914583-1-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "7582113c6917c280c90352d1935cfa451e74376a",
      "tree": "46f99a18fecd1ef445092b7db1b9e4b00e55f047",
      "parents": [
        "ded67d90815a412f327051d27eb6c6de57cd2c03"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 13:56:27 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 19:18:34 2023 -0700"
      },
      "message": "tools: ynl: add more info to KeyErrors on missing attrs\n\nWhen developing specs its useful to know which attr space\nYNL was trying to find an attribute in on key error.\n\nInstead of printing:\n KeyError: 0\nadd info about the space:\n Exception: Space \u0027vport\u0027 has no attribute with value \u00270\u0027\n\nReviewed-by: Donald Hunter \u003cdonald.hunter@gmail.com\u003e\nLink: https://lore.kernel.org/r/20230814205627.2914583-4-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "ded67d90815a412f327051d27eb6c6de57cd2c03",
      "tree": "799e1a7747692abf8571f1c00bf6e82abeeedc2b",
      "parents": [
        "956db0a13b47df7f3d6d624394e602e8bf9b057e"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 13:56:26 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 19:18:34 2023 -0700"
      },
      "message": "netlink: specs: add ovs_vport new command\n\nAdd NEW to the spec, it was useful testing the fix for OvS\ninput validation.\n\nReviewed-by: Donald Hunter \u003cdonald.hunter@gmail.com\u003e\nLink: https://lore.kernel.org/r/20230814205627.2914583-3-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "956db0a13b47df7f3d6d624394e602e8bf9b057e",
      "tree": "98a6379b884bb9a1986cbb8f9757034f093180c5",
      "parents": [
        "cf74eb5a5bc867258e7d0b0d1c3c4a60e1e3de2f"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 13:56:25 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 19:18:34 2023 -0700"
      },
      "message": "net: warn about attempts to register negative ifindex\n\nSince the xarray changes we mix returning valid ifindex and negative\nerrno in a single int returned from dev_index_reserve(). This depends\non the fact that ifindexes can\u0027t be negative. Otherwise we may insert\ninto the xarray and return a very large negative value. This in turn\nmay break ERR_PTR().\n\nOvS is susceptible to this problem and lacking validation (fix posted\nseparately for net).\n\nReject negative ifindex explicitly. Add a warning because the input\nvalidation is better handled by the caller.\n\nReviewed-by: Leon Romanovsky \u003cleonro@nvidia.com\u003e\nLink: https://lore.kernel.org/r/20230814205627.2914583-2-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "cf74eb5a5bc867258e7d0b0d1c3c4a60e1e3de2f",
      "tree": "9f83f15073de84b5a0d959c59a5235cc0951df56",
      "parents": [
        "3bfdcc324a04ba27f3fd2a6633c53de1758e7b6a"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 08:35:21 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 19:07:12 2023 -0700"
      },
      "message": "eth: r8152: try to use a normal budget\n\nMario reports that loading r8152 on his system leads to a:\n\n  netif_napi_add_weight() called with weight 256\n\nwarning getting printed. We don\u0027t have any solid data\non why such high budget was chosen, and it may cause\nstalls in processing other softirqs and rt threads.\nSo try to switch back to the default (64) weight.\n\nIf this slows down someone\u0027s system we should investigate\nwhich part of stopping starting the NAPI poll in this\ndriver are expensive.\n\nReported-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\nLink: https://lore.kernel.org/all/0bfd445a-81f7-f702-08b0-bd5a72095e49@amd.com/\nAcked-by: Hayes Wang \u003chayeswang@realtek.com\u003e\nLink: https://lore.kernel.org/r/20230814153521.2697982-1-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "3bfdcc324a04ba27f3fd2a6633c53de1758e7b6a",
      "tree": "2cf936ace4fcb3d17279ae557d627e1057faf97f",
      "parents": [
        "7a456b894ea57cceee6951ce421205152f23a051"
      ],
      "author": {
        "name": "Yue Haibing",
        "email": "yuehaibing@huawei.com",
        "time": "Mon Aug 14 21:58:21 2023 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 19:05:17 2023 -0700"
      },
      "message": "net: e1000e: Remove unused declarations\n\nCommit bdfe2da6aefd (\"e1000e: cosmetic move of function prototypes to the new mac.h\")\ndeclared but never implemented them.\n\nSigned-off-by: Yue Haibing \u003cyuehaibing@huawei.com\u003e\nReviewed-by: Tony Nguyen \u003canthony.l.nguyen@intel.com\u003e\nLink: https://lore.kernel.org/r/20230814135821.4808-1-yuehaibing@huawei.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "7a456b894ea57cceee6951ce421205152f23a051",
      "tree": "c2e436bdd039b9e5edae5035932289df170a3187",
      "parents": [
        "c66937b0f8dbb4c6c043663c702b1053fb47fab2"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Aug 14 09:45:03 2023 +0200"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 19:04:36 2023 -0700"
      },
      "message": "qed: remove unused \u0027resp_size\u0027 calculation\n\nNewer versions of clang warn about this variable being assigned but\nnever used:\n\ndrivers/net/ethernet/qlogic/qed/qed_vf.c:63:67: error: parameter \u0027resp_size\u0027 set but not used [-Werror,-Wunused-but-set-parameter]\n\nThere is no indication in the git history on how this was ever\nmeant to be used, so just remove the entire calculation and argument\npassing for it to avoid the warning.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nReviewed-by: Leon Romanovsky \u003cleonro@nvidia.com\u003e\nLink: https://lore.kernel.org/r/20230814074512.1067715-1-arnd@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "c66937b0f8dbb4c6c043663c702b1053fb47fab2",
      "tree": "2ae67e7db0e16c76c31f36e7d518f22be9661f5c",
      "parents": [
        "b31f7a8b3a07c306fe568d3801c4161e0932712d"
      ],
      "author": {
        "name": "Daniel Golle",
        "email": "daniel@makrotopia.org",
        "time": "Mon Aug 14 02:58:14 2023 +0100"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 18:57:59 2023 -0700"
      },
      "message": "net: phy: mediatek-ge-soc: support PHY LEDs\n\nImplement netdev trigger and primitive bliking offloading as well as\nsimple set_brigthness function for both PHY LEDs of the in-SoC PHYs\nfound in MT7981 and MT7988.\n\nFor MT7988, read boottrap register and apply LED polarities accordingly\nto get uniform behavior from all LEDs on MT7988.\nThis requires syscon phandle \u0027mediatek,pio\u0027 present in parenting MDIO bus\nwhich should point to the syscon holding the boottrap register.\n\nSigned-off-by: Daniel Golle \u003cdaniel@makrotopia.org\u003e\nReviewed-by: Andrew Lunn \u003candrew@lunn.ch\u003e\nLink: https://lore.kernel.org/r/dc324d48c00cd7350f3a506eaa785324cae97372.1691977904.git.daniel@makrotopia.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "b31f7a8b3a07c306fe568d3801c4161e0932712d",
      "tree": "2527f1eee6b271107a29670991051727d018b1e7",
      "parents": [
        "1e02d75817172c8ca32f6c6bdf389ab4efd76305",
        "db1428f66a8c97793e6596e7c62047211dd6db79"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 18:54:54 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 18:54:55 2023 -0700"
      },
      "message": "Merge branch \u0027nexthop-various-cleanups\u0027\n\nIdo Schimmel says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nnexthop: Various cleanups\n\nBenefit from recent bug fixes and simplify the nexthop dump code.\n\nNo regressions in existing tests:\n\n # ./fib_nexthops.sh\n [...]\n Tests passed: 234\n Tests failed:   0\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://lore.kernel.org/r/20230813164856.2379822-1-idosch@nvidia.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "db1428f66a8c97793e6596e7c62047211dd6db79",
      "tree": "2527f1eee6b271107a29670991051727d018b1e7",
      "parents": [
        "23ab9324fd260277f83a07c51fdc625442e98265"
      ],
      "author": {
        "name": "Ido Schimmel",
        "email": "idosch@nvidia.com",
        "time": "Sun Aug 13 19:48:56 2023 +0300"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 18:54:53 2023 -0700"
      },
      "message": "nexthop: Do not increment dump sentinel at the end of the dump\n\nThe nexthop and nexthop bucket dump callbacks previously returned a\npositive return code even when the dump was complete, prompting the core\nnetlink code to invoke the callback again, until returning zero.\n\nZero was only returned by these callbacks when no information was filled\nin the provided skb, which was achieved by incrementing the dump\nsentinel at the end of the dump beyond the ID of the last nexthop.\n\nThis is no longer necessary as when the dump is complete these callbacks\nreturn zero.\n\nRemove the unnecessary increment.\n\nSigned-off-by: Ido Schimmel \u003cidosch@nvidia.com\u003e\nReviewed-by: Petr Machata \u003cpetrm@nvidia.com\u003e\nReviewed-by: David Ahern \u003cdsahern@kernel.org\u003e\nLink: https://lore.kernel.org/r/20230813164856.2379822-3-idosch@nvidia.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "23ab9324fd260277f83a07c51fdc625442e98265",
      "tree": "61b53825f6a771e596980c0fca154a44e428ca86",
      "parents": [
        "1e02d75817172c8ca32f6c6bdf389ab4efd76305"
      ],
      "author": {
        "name": "Ido Schimmel",
        "email": "idosch@nvidia.com",
        "time": "Sun Aug 13 19:48:55 2023 +0300"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 18:54:52 2023 -0700"
      },
      "message": "nexthop: Simplify nexthop bucket dump\n\nBefore commit f10d3d9df49d (\"nexthop: Make nexthop bucket dump more\nefficient\"), rtm_dump_nexthop_bucket_nh() returned a non-zero return\ncode for each resilient nexthop group whose buckets it dumped,\nregardless if it encountered an error or not.\n\nThis meant that the sentinel (\u0027dd-\u003ectx-\u003enh.idx\u0027) used by the function\nthat walked the different nexthops could not be used as a sentinel for\nthe bucket dump, as otherwise buckets from the same group would be\ndumped over and over again.\n\nThis was dealt with by adding another sentinel (\u0027dd-\u003ectx-\u003edone_nh_idx\u0027)\nthat was incremented by rtm_dump_nexthop_bucket_nh() after successfully\ndumping all the buckets from a given group.\n\nAfter the previously mentioned commit this sentinel is no longer\nnecessary since the function no longer returns a non-zero return code\nwhen successfully dumping all the buckets from a given group.\n\nRemove this sentinel and simplify the code.\n\nSigned-off-by: Ido Schimmel \u003cidosch@nvidia.com\u003e\nReviewed-by: Petr Machata \u003cpetrm@nvidia.com\u003e\nReviewed-by: David Ahern \u003cdsahern@kernel.org\u003e\nLink: https://lore.kernel.org/r/20230813164856.2379822-2-idosch@nvidia.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "1e02d75817172c8ca32f6c6bdf389ab4efd76305",
      "tree": "f4c8c8f002a13abb5d2f45f02987d3f05922a6cc",
      "parents": [
        "c65dffc6f25c59e3c637ab4e124f8686a08f3c15",
        "1c53717c80740be035d2110e20ad4877a1784c61"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 18:51:49 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 18:51:49 2023 -0700"
      },
      "message": "Merge branch \u0027seg6-add-next-c-sid-support-for-srv6-end-x-behavior\u0027\n\nAndrea Mayer says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nseg6: add NEXT-C-SID support for SRv6 End.X behavior\n\nIn the Segment Routing (SR) architecture a list of instructions, called\nsegments, can be added to the packet headers to influence the forwarding and\nprocessing of the packets in an SR enabled network.\n\nConsidering the Segment Routing over IPv6 data plane (SRv6) [1], the segment\nidentifiers (SIDs) are IPv6 addresses (128 bits) and the segment list (SID\nList) is carried in the Segment Routing Header (SRH). A segment may correspond\nto a \"behavior\" that is executed by a node when the packet is received.\nThe Linux kernel currently supports a large subset of the behaviors described\nin [2] (e.g., End, End.X, End.T and so on).\n\nIn some SRv6 scenarios, the number of segments carried by the SID List may\nincrease dramatically, reducing the MTU (Maximum Transfer Unit) size and/or\nlimiting the processing power of legacy hardware devices (due to longer IPv6\nheaders).\n\nThe NEXT-C-SID mechanism [3] extends the SRv6 architecture by providing several\nways to efficiently represent the SID List.\nBy leveraging the NEXT-C-SID, it is possible to encode several SRv6 segments\nwithin a single 128 bit SID address (also referenced as Compressed SID\nContainer). In this way, the length of the SID List can be drastically reduced.\n\nThe NEXT-C-SID mechanism is built upon the \"flavors\" framework defined in [2].\nThis framework is already supported by the Linux SRv6 subsystem and is used to\nmodify and/or extend a subset of existing behaviors.\n\nIn this patchset, we extend the SRv6 End.X behavior in order to support the\nNEXT-C-SID mechanism.\n\nIn details, the patchset is made of:\n - patch 1/2: add NEXT-C-SID support for SRv6 End.X behavior;\n - patch 2/2: add selftest for NEXT-C-SID in SRv6 End.X behavior.\n\nFrom the user space perspective, we do not need to change the iproute2 code to\nsupport the NEXT-C-SID flavor for the SRv6 End.X behavior. However, we will\nupdate the man page considering the NEXT-C-SID flavor applied to the SRv6 End.X\nbehavior in a separate patch.\n\n[1] - https://datatracker.ietf.org/doc/html/rfc8754\n[2] - https://datatracker.ietf.org/doc/html/rfc8986\n[3] - https://datatracker.ietf.org/doc/html/draft-ietf-spring-srv6-srh-compression\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://lore.kernel.org/r/20230812180926.16689-1-andrea.mayer@uniroma2.it\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "1c53717c80740be035d2110e20ad4877a1784c61",
      "tree": "f4c8c8f002a13abb5d2f45f02987d3f05922a6cc",
      "parents": [
        "7458575a07f1c6768e46b8eac6e09a358804c9f6"
      ],
      "author": {
        "name": "Paolo Lungaroni",
        "email": "paolo.lungaroni@uniroma2.it",
        "time": "Sat Aug 12 20:09:26 2023 +0200"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 18:51:47 2023 -0700"
      },
      "message": "selftests: seg6: add selftest for NEXT-C-SID flavor in SRv6 End.X behavior\n\nThis selftest is designed for testing the support of NEXT-C-SID flavor\nfor SRv6 End.X behavior. It instantiates a virtual network composed of\nseveral nodes: hosts and SRv6 routers. Each node is realized using a\nnetwork namespace that is properly interconnected to others through veth\npairs, according to the topology depicted in the selftest script file.\nThe test considers SRv6 routers implementing IPv4/IPv6 L3 VPNs leveraged\nby hosts for communicating with each other. Such routers i) apply\ndifferent SRv6 Policies to the traffic received from connected hosts,\nconsidering the IPv4 or IPv6 protocols; ii) use the NEXT-C-SID\ncompression mechanism for encoding several SRv6 segments within a single\n128-bit SID address, referred to as a Compressed SID (C-SID) container.\n\nThe NEXT-C-SID is provided as a \"flavor\" of the SRv6 End.X behavior,\nenabling it to properly process the C-SID containers. The correct\nexecution of the enabled NEXT-C-SID SRv6 End.X behavior is verified\nthrough reachability tests carried out between hosts belonging to the\nsame VPN.\n\nSigned-off-by: Paolo Lungaroni \u003cpaolo.lungaroni@uniroma2.it\u003e\nCo-developed-by: Andrea Mayer \u003candrea.mayer@uniroma2.it\u003e\nSigned-off-by: Andrea Mayer \u003candrea.mayer@uniroma2.it\u003e\nReviewed-by: David Ahern \u003cdsahern@kernel.org\u003e\nLink: https://lore.kernel.org/r/20230812180926.16689-3-andrea.mayer@uniroma2.it\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "7458575a07f1c6768e46b8eac6e09a358804c9f6",
      "tree": "e857f1727cc19f510e168e524dc18f26d8a37074",
      "parents": [
        "c65dffc6f25c59e3c637ab4e124f8686a08f3c15"
      ],
      "author": {
        "name": "Andrea Mayer",
        "email": "andrea.mayer@uniroma2.it",
        "time": "Sat Aug 12 20:09:25 2023 +0200"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 18:51:47 2023 -0700"
      },
      "message": "seg6: add NEXT-C-SID support for SRv6 End.X behavior\n\nThe NEXT-C-SID mechanism described in [1] offers the possibility of\nencoding several SRv6 segments within a single 128 bit SID address. Such\na SID address is called a Compressed SID (C-SID) container. In this way,\nthe length of the SID List can be drastically reduced.\n\nA SID instantiated with the NEXT-C-SID flavor considers an IPv6 address\nlogically structured in three main blocks: i) Locator-Block; ii)\nLocator-Node Function; iii) Argument.\n\n                        C-SID container\n+------------------------------------------------------------------+\n|     Locator-Block      |Loc-Node|            Argument            |\n|                        |Function|                                |\n+------------------------------------------------------------------+\n\u003c--------- B -----------\u003e \u003c- NF -\u003e \u003c------------- A ---------------\u003e\n\n   (i) The Locator-Block can be any IPv6 prefix available to the provider;\n\n  (ii) The Locator-Node Function represents the node and the function to\n       be triggered when a packet is received on the node;\n\n (iii) The Argument carries the remaining C-SIDs in the current C-SID\n       container.\n\nThis patch leverages the NEXT-C-SID mechanism previously introduced in the\nLinux SRv6 subsystem [2] to support SID compression capabilities in the\nSRv6 End.X behavior [3].\nAn SRv6 End.X behavior with NEXT-C-SID flavor works as an End.X behavior\nbut it is capable of processing the compressed SID List encoded in C-SID\ncontainers.\n\nAn SRv6 End.X behavior with NEXT-C-SID flavor can be configured to support\nuser-provided Locator-Block and Locator-Node Function lengths. In this\nimplementation, such lengths must be evenly divisible by 8 (i.e. must be\nbyte-aligned), otherwise the kernel informs the user about invalid\nvalues with a meaningful error code and message through netlink_ext_ack.\n\nIf Locator-Block and/or Locator-Node Function lengths are not provided\nby the user during configuration of an SRv6 End.X behavior instance with\nNEXT-C-SID flavor, the kernel will choose their default values i.e.,\n32-bit Locator-Block and 16-bit Locator-Node Function.\n\n[1] - https://datatracker.ietf.org/doc/html/draft-ietf-spring-srv6-srh-compression\n[2] - https://lore.kernel.org/all/20220912171619.16943-1-andrea.mayer@uniroma2.it/\n[3] - https://datatracker.ietf.org/doc/html/rfc8986#name-endx-l3-cross-connect\n\nSigned-off-by: Andrea Mayer \u003candrea.mayer@uniroma2.it\u003e\nReviewed-by: Hangbin Liu \u003cliuhangbin@gmail.com\u003e\nReviewed-by: David Ahern \u003cdsahern@kernel.org\u003e\nLink: https://lore.kernel.org/r/20230812180926.16689-2-andrea.mayer@uniroma2.it\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "c65dffc6f25c59e3c637ab4e124f8686a08f3c15",
      "tree": "5e2ed5a4d6937188be0b8b3f13746716ec5a50a3",
      "parents": [
        "479b322ee6feaff612285a0e7f22c022e8cd84eb",
        "f946270d05c26044c67511ef5a9d91e06962d79f"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 15:01:03 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 15:01:03 2023 -0700"
      },
      "message": "Merge branch \u0027genetlink-provide-struct-genl_info-to-dumps\u0027\n\nJakub Kicinski says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\ngenetlink: provide struct genl_info to dumps\n\nOne of the biggest (which is not to say only) annoyances with genetlink\nhandling today is that doit and dumpit need some of the same information,\nbut it is passed to them in completely different structs.\n\nThe implementations commonly end up writing a _fill() method which\npopulates a message and have to pass at least 6 parameters. 3 of which\nare extracted manually from request info.\n\nAfter a lot of umming and ahing I decided to populate struct genl_info\nfor dumps, without trying to factor out only the common parts.\nThis makes the adoption easiest.\n\nIn the future we may add a new version of dump which takes\nstruct genl_info *info as the second argument, instead of\nstruct netlink_callback *cb. For now developers have to call\ngenl_info_dump(cb) to get the info.\n\nTypical genetlink families no longer get exposed to netlink protocol\ninternals like pid and seq numbers.\n\nv3:\n - correct the condition in ethtool code (patch 10)\nv2: https://lore.kernel.org/all/20230810233845.2318049-1-kuba@kernel.org/\n - replace the GENL_INFO_NTF() macro with init helper\n - fix the commit messages\nv1: https://lore.kernel.org/all/20230809182648.1816537-1-kuba@kernel.org/\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://lore.kernel.org/r/20230814214723.2924989-1-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "f946270d05c26044c67511ef5a9d91e06962d79f",
      "tree": "5e2ed5a4d6937188be0b8b3f13746716ec5a50a3",
      "parents": [
        "ec0e5b09b834da3889be8458bb0451c3baa803d9"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 14:47:23 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 15:01:03 2023 -0700"
      },
      "message": "ethtool: netlink: always pass genl_info to .prepare_data\n\nWe had a number of bugs in the past because developers forgot\nto fully test dumps, which pass NULL as info to .prepare_data.\n.prepare_data implementations would try to access info-\u003eextack\nleading to a null-deref.\n\nNow that dumps and notifications can access struct genl_info\nwe can pass it in, and remove the info null checks.\n\nReviewed-by: Vladimir Oltean \u003cvladimir.oltean@nxp.com\u003e\nTested-by: Vladimir Oltean \u003cvladimir.oltean@nxp.com\u003e # pause\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nLink: https://lore.kernel.org/r/20230814214723.2924989-11-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "ec0e5b09b834da3889be8458bb0451c3baa803d9",
      "tree": "c81e8d8478330401614ac3c152bc7116db31be41",
      "parents": [
        "0e19d3108aeab6a9edcef07bf0f123fa2961d0d6"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 14:47:22 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 15:01:03 2023 -0700"
      },
      "message": "ethtool: netlink: simplify arguments to ethnl_default_parse()\n\nPass struct genl_info directly instead of its members.\n\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nLink: https://lore.kernel.org/r/20230814214723.2924989-10-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "0e19d3108aeab6a9edcef07bf0f123fa2961d0d6",
      "tree": "9c259abfe561f55ebfa143e9f2bf2eb325149b06",
      "parents": [
        "5aa51d9f889ca61201044b28677eb60236b0d746"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 14:47:21 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 15:01:03 2023 -0700"
      },
      "message": "netdev-genl: use struct genl_info for reply construction\n\nUse the just added APIs to make the code simpler.\n\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nLink: https://lore.kernel.org/r/20230814214723.2924989-9-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "5aa51d9f889ca61201044b28677eb60236b0d746",
      "tree": "1b6cd2296e4eead33ac0071ef54772522f1871fc",
      "parents": [
        "5c670a010de46687ed27553602d8131ce4d7a9fb"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 14:47:20 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 15:01:03 2023 -0700"
      },
      "message": "genetlink: add genlmsg_iput() API\n\nAdd some APIs and helpers required for convenient construction\nof replies and notifications based on struct genl_info.\n\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nLink: https://lore.kernel.org/r/20230814214723.2924989-8-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "5c670a010de46687ed27553602d8131ce4d7a9fb",
      "tree": "21e6b86bf8601507147e8a28c50d89bcfffc9419",
      "parents": [
        "7288dd2fd4888c85c687f8ded69c280938d1a7b6"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 14:47:19 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 15:01:03 2023 -0700"
      },
      "message": "genetlink: add a family pointer to struct genl_info\n\nHaving family in struct genl_info is quite useful. It cuts\ndown the number of arguments which need to be passed to\nhelpers which already take struct genl_info.\n\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nLink: https://lore.kernel.org/r/20230814214723.2924989-7-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "7288dd2fd4888c85c687f8ded69c280938d1a7b6",
      "tree": "ce4be8f0057fdbb735eaa91190525f2d11f7b870",
      "parents": [
        "9272af109fe65d1a13f28c5c13777b62d3e97e8c"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 14:47:18 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 15:00:45 2023 -0700"
      },
      "message": "genetlink: use attrs from struct genl_info\n\nSince dumps carry struct genl_info now, use the attrs pointer\nfrom genl_info and remove the one in struct genl_dumpit_info.\n\nReviewed-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nReviewed-by: Miquel Raynal \u003cmiquel.raynal@bootlin.com\u003e\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nLink: https://lore.kernel.org/r/20230814214723.2924989-6-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "9272af109fe65d1a13f28c5c13777b62d3e97e8c",
      "tree": "edb1bbfc92c4f5314ca2fff9faa4e7a24ee3390d",
      "parents": [
        "bffcc6882a1bb2be8c9420184966f4c2c822078e"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 14:47:17 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 14:54:44 2023 -0700"
      },
      "message": "genetlink: add struct genl_info to struct genl_dumpit_info\n\nNetlink GET implementations must currently juggle struct genl_info\nand struct netlink_callback, depending on whether they were called\nfrom doit or dumpit.\n\nAdd genl_info to the dump state and populate the fields.\nThis way implementations can simply pass struct genl_info around.\n\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nLink: https://lore.kernel.org/r/20230814214723.2924989-5-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "bffcc6882a1bb2be8c9420184966f4c2c822078e",
      "tree": "50c31c2c1ddd30eb23cac61206c50d7aa3c347a8",
      "parents": [
        "fde9bd4a4d41b65a936d65eb416c1de27cb562f1"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 14:47:16 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 14:54:44 2023 -0700"
      },
      "message": "genetlink: remove userhdr from struct genl_info\n\nOnly three families use info-\u003euserhdr today and going forward\nwe discourage using fixed headers in new families.\nSo having the pointer to user header in struct genl_info\nis an overkill. Compute the header pointer at runtime.\n\nReviewed-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nReviewed-by: Aaron Conole \u003caconole@redhat.com\u003e\nLink: https://lore.kernel.org/r/20230814214723.2924989-4-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "fde9bd4a4d41b65a936d65eb416c1de27cb562f1",
      "tree": "fe69b9e89f35c38bc81dae31d62f9823f62a63d3",
      "parents": [
        "84817d8c6042e6261ea45c53fe8b5a0bd55c3993"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 14:47:15 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 14:54:44 2023 -0700"
      },
      "message": "genetlink: make genl_info-\u003enlhdr const\n\nstruct netlink_callback has a const nlh pointer, make the\npointer in struct genl_info const as well, to make copying\nbetween the two easier.\n\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nLink: https://lore.kernel.org/r/20230814214723.2924989-3-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "84817d8c6042e6261ea45c53fe8b5a0bd55c3993",
      "tree": "ef5743f845054913133ee0bc1ed5d07487198511",
      "parents": [
        "479b322ee6feaff612285a0e7f22c022e8cd84eb"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 14:47:14 2023 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Aug 15 14:54:44 2023 -0700"
      },
      "message": "genetlink: push conditional locking into dumpit/done\n\nAdd helpers which take/release the genl mutex based\non family-\u003eparallel_ops. Remove the separation between\nhandling of ops in locked and parallel families.\n\nFuture patches would make the duplicated code grow even more.\n\nReviewed-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nLink: https://lore.kernel.org/r/20230814214723.2924989-2-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "8897562f67b3e61ad736cd5c9f307447d33280e4",
      "tree": "d407c79392c986d17b4b16d9df68bcc4edbe31f1",
      "parents": [
        "dda770407b817a7cfa72517905857f489cfc5e59"
      ],
      "author": {
        "name": "Lorenz Bauer",
        "email": "lmb@isovalent.com",
        "time": "Tue Aug 15 09:53:41 2023 +0100"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Tue Aug 15 13:57:51 2023 -0700"
      },
      "message": "net: Fix slab-out-of-bounds in inet[6]_steal_sock\n\nKumar reported a KASAN splat in tcp_v6_rcv:\n\n  bash-5.2# ./test_progs -t btf_skc_cls_ingress\n  ...\n  [   51.810085] BUG: KASAN: slab-out-of-bounds in tcp_v6_rcv+0x2d7d/0x3440\n  [   51.810458] Read of size 2 at addr ffff8881053f038c by task test_progs/226\n\nThe problem is that inet[6]_steal_sock accesses sk-\u003esk_protocol without\naccounting for request or timewait sockets. To fix this we can\u0027t just\ncheck sock_common-\u003eskc_reuseport since that flag is present on timewait\nsockets.\n\nInstead, add a fullsock check to avoid the out of bands access of sk_protocol.\n\nFixes: 9c02bec95954 (\"bpf, net: Support SO_REUSEPORT sockets with bpf_sk_assign\")\nReported-by: Kumar Kartikeya Dwivedi \u003cmemxor@gmail.com\u003e\nSigned-off-by: Lorenz Bauer \u003clmb@isovalent.com\u003e\nLink: https://lore.kernel.org/r/20230815-bpf-next-v2-1-95126eaa4c1b@isovalent.com\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "dda770407b817a7cfa72517905857f489cfc5e59",
      "tree": "30ef212b336ed1259f26922f93cf56000262049f",
      "parents": [
        "ccd9a8be2e42a337ad4da5d8a051e8293200a4f3",
        "bb48cf1679d294d4fd3bfaa88289ed9004cbb025"
      ],
      "author": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Mon Aug 14 22:23:40 2023 -0700"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Mon Aug 14 22:23:47 2023 -0700"
      },
      "message": "Merge branch \u0027Update and document struct_ops\u0027\n\nDavid Vernet says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nThe struct bpf_struct_ops structure in BPF is a framework that allows\nsubsystems to extend themselves using BPF. In commit 68b04864ca425\n(\"bpf: Create links for BPF struct_ops maps\") and commit aef56f2e918bf\n(\"bpf: Update the struct_ops of a bpf_link\"), the structure was updated\nto include new -\u003evalidate() and -\u003eupdate() callbacks respectively in\nsupport of allowing struct_ops maps to be created with BPF_F_LINK.\n\nThe intention was that struct bpf_struct_ops implementations could\nsupport map updates through the link. Because map validation and\nregistration would take place in two separate steps for struct_ops\nmaps managed by the link (the first in map update elem, and the latter\nin link create), the -\u003evalidate() callback was added, and any struct_ops\nimplementation that wished to use BPF_F_LINK, even just for lifetime\nmanagement, would then be required to define both it and -\u003eupdate().\n\nNot all struct_ops implementations can or will support update, however.\nFor example, the sched_ext struct_ops implementation proposed in [0]\nwill not be able to support atomic map updates because it can race with\nsysrq, has to cycle tasks through various states in order to safely\ntransition, etc. It can, however, benefit from letting the BPF link\nautomatically evict the struc_ops map when the application exits (e.g.\nif it crashes).\n\nThis patch set therefore:\n\n1. Updates the struct_ops implementation to support default values for\n   -\u003evalidate() and -\u003eupdate() so that struct_ops implementations can\n   benefit from BPF_F_LINK management even if they can\u0027t support\n   updates.\n2. Documents struct bpf_struct_ops so that the semantics are clear and\n   well defined.\n---\nv2: https://lore.kernel.org/bpf/0f5ea3de-c6e7-490f-b5ec-b5c7cd288687@gmail.com/T/\nChanges from v2 -\u003e v3:\n- Add patch 2/2 that documents the struct bpf_struct_ops structure.\n- Add Kui-Feng\u0027s Acked-by tag to patch 1/2.\n\nv1: https://lore.kernel.org/lkml/20230811150934.GA542801@maniforge/\nChanges from v1 -\u003e v2:\n- Move the if (!st_map-\u003est_ops-\u003eupdate) check outside of the critical\n  section before we acquire the update_mutex.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "bb48cf1679d294d4fd3bfaa88289ed9004cbb025",
      "tree": "30ef212b336ed1259f26922f93cf56000262049f",
      "parents": [
        "8ba651ed7fa1641f7c4941b79f2e3dd4ddb58aec"
      ],
      "author": {
        "name": "David Vernet",
        "email": "void@manifault.com",
        "time": "Mon Aug 14 13:59:08 2023 -0500"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Mon Aug 14 22:23:39 2023 -0700"
      },
      "message": "bpf: Document struct bpf_struct_ops fields\n\nSubsystems that want to implement a struct bpf_struct_ops structure to\nenable struct_ops maps must currently reverse engineer how the structure\nworks. Given that this is meant to be a way for subsystem maintainers to\nextend their subsystems using BPF, let\u0027s document it to make it a bit\neasier on them.\n\nSigned-off-by: David Vernet \u003cvoid@manifault.com\u003e\nLink: https://lore.kernel.org/r/20230814185908.700553-3-void@manifault.com\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "8ba651ed7fa1641f7c4941b79f2e3dd4ddb58aec",
      "tree": "e30a1e5f2b94d7c3a22a97988051e7bfdd420b7e",
      "parents": [
        "ccd9a8be2e42a337ad4da5d8a051e8293200a4f3"
      ],
      "author": {
        "name": "David Vernet",
        "email": "void@manifault.com",
        "time": "Mon Aug 14 13:59:07 2023 -0500"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Mon Aug 14 22:23:39 2023 -0700"
      },
      "message": "bpf: Support default .validate() and .update() behavior for struct_ops links\n\nCurrently, if a struct_ops map is loaded with BPF_F_LINK, it must also\ndefine the .validate() and .update() callbacks in its corresponding\nstruct bpf_struct_ops in the kernel. Enabling struct_ops link is useful\nin its own right to ensure that the map is unloaded if an application\ncrashes. For example, with sched_ext, we want to automatically unload\nthe host-wide scheduler if the application crashes. We would likely\nnever support updating elements of a sched_ext struct_ops map, so we\u0027d\nhave to implement these callbacks showing that they _can\u0027t_ support\nelement updates just to benefit from the basic lifetime management of\nstruct_ops links.\n\nLet\u0027s enable struct_ops maps to work with BPF_F_LINK even if they\nhaven\u0027t defined these callbacks, by assuming that a struct_ops map\nelement cannot be updated by default.\n\nAcked-by: Kui-Feng Lee \u003cthinker.li@gmail.com\u003e\nSigned-off-by: David Vernet \u003cvoid@manifault.com\u003e\nLink: https://lore.kernel.org/r/20230814185908.700553-2-void@manifault.com\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "ccd9a8be2e42a337ad4da5d8a051e8293200a4f3",
      "tree": "b3ab63e42df55151fbfaea89c6d1dcb676899b9a",
      "parents": [
        "83a89c4b6ae93481d3f618aba6a29d89208d26ed"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Mon Aug 14 18:14:10 2023 +0200"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Mon Aug 14 21:54:59 2023 -0700"
      },
      "message": "selftests/bpf: Add various more tcx test cases\n\nAdd several new tcx test cases to improve test coverage. This also includes\na few new tests with ingress instead of clsact qdisc, to cover the fix from\ncommit dc644b540a2d (\"tcx: Fix splat in ingress_destroy upon tcx_entry_free\").\n\n  # ./test_progs -t tc\n  [...]\n  #234     tc_links_after:OK\n  #235     tc_links_append:OK\n  #236     tc_links_basic:OK\n  #237     tc_links_before:OK\n  #238     tc_links_chain_classic:OK\n  #239     tc_links_chain_mixed:OK\n  #240     tc_links_dev_cleanup:OK\n  #241     tc_links_dev_mixed:OK\n  #242     tc_links_ingress:OK\n  #243     tc_links_invalid:OK\n  #244     tc_links_prepend:OK\n  #245     tc_links_replace:OK\n  #246     tc_links_revision:OK\n  #247     tc_opts_after:OK\n  #248     tc_opts_append:OK\n  #249     tc_opts_basic:OK\n  #250     tc_opts_before:OK\n  #251     tc_opts_chain_classic:OK\n  #252     tc_opts_chain_mixed:OK\n  #253     tc_opts_delete_empty:OK\n  #254     tc_opts_demixed:OK\n  #255     tc_opts_detach:OK\n  #256     tc_opts_detach_after:OK\n  #257     tc_opts_detach_before:OK\n  #258     tc_opts_dev_cleanup:OK\n  #259     tc_opts_invalid:OK\n  #260     tc_opts_mixed:OK\n  #261     tc_opts_prepend:OK\n  #262     tc_opts_replace:OK\n  #263     tc_opts_revision:OK\n  [...]\n  Summary: 44/38 PASSED, 0 SKIPPED, 0 FAILED\n\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nLink: https://lore.kernel.org/r/8699efc284b75ccdc51ddf7062fa2370330dc6c0.1692029283.git.daniel@iogearbox.net\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "479b322ee6feaff612285a0e7f22c022e8cd84eb",
      "tree": "d837a1366cd9d73e0caecd44472defe83b057348",
      "parents": [
        "f3cc00303cdbc82f719e0cf0dc6f057e8741b5ee"
      ],
      "author": {
        "name": "Russell King (Oracle)",
        "email": "rmk+kernel@armlinux.org.uk",
        "time": "Sat Aug 12 10:30:33 2023 +0100"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Aug 14 18:57:17 2023 -0700"
      },
      "message": "net: dsa: mv88e6060: add phylink_get_caps implementation\n\nAdd a phylink_get_caps implementation for Marvell 88e6060 DSA switch.\nThis is a fast ethernet switch, with internal PHYs for ports 0 through\n4. Port 4 also supports MII, REVMII, REVRMII and SNI. Port 5 supports\nMII, REVMII, REVRMII and SNI without an internal PHY.\n\nReviewed-by: Andrew Lunn \u003candrew@lunn.ch\u003e\nSigned-off-by: Russell King (Oracle) \u003crmk+kernel@armlinux.org.uk\u003e\nReviewed-by: Vladimir Oltean \u003colteanv@gmail.com\u003e\nLink: https://lore.kernel.org/r/E1qUkx7-003dMX-9b@rmk-PC.armlinux.org.uk\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "bd3a2f77809b84df5dc15edd72cf9955568e698e",
      "tree": "db7ad86074a6b2e165ab8cd439e6f499cd645c2f",
      "parents": [
        "a41cb59117fa12ee17cda5e5c781eecfcb15dc0f"
      ],
      "author": {
        "name": "Shay Drory",
        "email": "shayd@nvidia.com",
        "time": "Tue Jul 11 16:32:05 2023 +0300"
      },
      "committer": {
        "name": "Saeed Mahameed",
        "email": "saeedm@nvidia.com",
        "time": "Mon Aug 14 14:40:22 2023 -0700"
      },
      "message": "net/mlx5: Don\u0027t query MAX caps twice\n\nWhenever mlx5 driver is probed or reloaded, it queries some capabilities\nin MAX mode via set_hca_cap() API. Afterwards, the driver queries all\ncapabilities in MAX mode via mlx5_query_hca_caps() API.\n\nSince MAX caps are read only caps, querying them twice is redundant.\nHence, delete the second query.\n\nSigned-off-by: Shay Drory \u003cshayd@nvidia.com\u003e\nReviewed-by: Maher Sanalla \u003cmsanalla@nvidia.com\u003e\nSigned-off-by: Saeed Mahameed \u003csaeedm@nvidia.com\u003e\n"
    },
    {
      "commit": "a41cb59117fa12ee17cda5e5c781eecfcb15dc0f",
      "tree": "380630b350b21ab5a1afb9c03bc08801cb536fa9",
      "parents": [
        "0b4eb603d635ca47c1c372f69b4b96672e4c2c05"
      ],
      "author": {
        "name": "Shay Drory",
        "email": "shayd@nvidia.com",
        "time": "Tue Jul 11 15:56:08 2023 +0300"
      },
      "committer": {
        "name": "Saeed Mahameed",
        "email": "saeedm@nvidia.com",
        "time": "Mon Aug 14 14:40:22 2023 -0700"
      },
      "message": "net/mlx5: Remove unused MAX HCA capabilities\n\nEach device cap has two modes: MAX and CUR. The driver maintains a\ncache of both modes of the capabilities. For most device caps, the MAX\ncap mode is never used.\n\nHence, remove all driver queries of the MAX mode of the said caps as\nwell as their helper MACROs.\n\nSigned-off-by: Shay Drory \u003cshayd@nvidia.com\u003e\nReviewed-by: Maher Sanalla \u003cmsanalla@nvidia.com\u003e\nSigned-off-by: Saeed Mahameed \u003csaeedm@nvidia.com\u003e\n"
    },
    {
      "commit": "0b4eb603d635ca47c1c372f69b4b96672e4c2c05",
      "tree": "72080026db3b0b9ddf9398f8a7c6fdfb2fd08abb",
      "parents": [
        "36e5a0efc81010dab29b17c66c58417a15851836"
      ],
      "author": {
        "name": "Shay Drory",
        "email": "shayd@nvidia.com",
        "time": "Sun Jan 02 14:57:39 2022 +0200"
      },
      "committer": {
        "name": "Saeed Mahameed",
        "email": "saeedm@nvidia.com",
        "time": "Mon Aug 14 14:40:22 2023 -0700"
      },
      "message": "net/mlx5: Remove unused CAPs\n\nmlx5 driver queries the device for VECTOR_CALC and SHAMPO caps, but\nthere isn\u0027t any user who requires them.\nAs well as, MLX5_MCAM_REGS_0x9080_0x90FF is queried but not used.\n\nThus, drop all usages and definitions of the mentioned caps above.\n\nSigned-off-by: Shay Drory \u003cshayd@nvidia.com\u003e\nReviewed-by: Maher Sanalla \u003cmsanalla@nvidia.com\u003e\nSigned-off-by: Saeed Mahameed \u003csaeedm@nvidia.com\u003e\n"
    },
    {
      "commit": "36e5a0efc81010dab29b17c66c58417a15851836",
      "tree": "36726ac06a0b6a443ef274d84dde457fdaea6386",
      "parents": [
        "b63f8bde2fbadc8eca96b42dd281bf99bc853167"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@nvidia.com",
        "time": "Fri Jun 30 12:45:39 2023 +0200"
      },
      "committer": {
        "name": "Saeed Mahameed",
        "email": "saeedm@nvidia.com",
        "time": "Mon Aug 14 14:40:22 2023 -0700"
      },
      "message": "net/mlx5: Fix error message in mlx5_sf_dev_state_change_handler()\n\nsw_function_id contains sfnum, so fix the error message to name the\nvalue properly.\n\nSigned-off-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nReviewed-by: Shay Drory \u003cshayd@nvidia.com\u003e\nSigned-off-by: Saeed Mahameed \u003csaeedm@nvidia.com\u003e\n"
    },
    {
      "commit": "b63f8bde2fbadc8eca96b42dd281bf99bc853167",
      "tree": "fbb81c104a2d85bb0abeb3687547f5426402562f",
      "parents": [
        "88074d81e5fe8b76010ea3437330d5ab55535537"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@nvidia.com",
        "time": "Fri Jun 30 09:41:14 2023 +0200"
      },
      "committer": {
        "name": "Saeed Mahameed",
        "email": "saeedm@nvidia.com",
        "time": "Mon Aug 14 14:40:21 2023 -0700"
      },
      "message": "net/mlx5: Remove redundant check of mlx5_vhca_event_supported()\n\nSince mlx5_vhca_event_supported() is called in mlx5_sf_dev_supported(),\nremove the redundant call.\n\nSigned-off-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nReviewed-by: Shay Drory \u003cshayd@nvidia.com\u003e\nSigned-off-by: Saeed Mahameed \u003csaeedm@nvidia.com\u003e\n"
    },
    {
      "commit": "88074d81e5fe8b76010ea3437330d5ab55535537",
      "tree": "c4b4970fb143035d87cab743fe113125e9e594c5",
      "parents": [
        "ae80d7a06fdb0b34a0f2842e1aac3da3bde93ccb"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@nvidia.com",
        "time": "Fri Jun 30 09:37:04 2023 +0200"
      },
      "committer": {
        "name": "Saeed Mahameed",
        "email": "saeedm@nvidia.com",
        "time": "Mon Aug 14 14:40:21 2023 -0700"
      },
      "message": "net/mlx5: Use mlx5_sf_start_function_id() helper instead of directly calling MLX5_CAP_GEN()\n\nThere is a helper called mlx5_sf_start_function_id() that\nwraps up a query to get base SF function id. Use that instead of\ncalling MLX5_CAP_GEN() directly.\n\nSigned-off-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nReviewed-by: Shay Drory \u003cshayd@nvidia.com\u003e\nSigned-off-by: Saeed Mahameed \u003csaeedm@nvidia.com\u003e\n"
    },
    {
      "commit": "ae80d7a06fdb0b34a0f2842e1aac3da3bde93ccb",
      "tree": "bf5594dc9ddb884dd85e2c5097548ddfbed10d1e",
      "parents": [
        "2ad0160c02be2a56bd80aaeb5c40221250814c25"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@nvidia.com",
        "time": "Fri Jun 30 09:32:14 2023 +0200"
      },
      "committer": {
        "name": "Saeed Mahameed",
        "email": "saeedm@nvidia.com",
        "time": "Mon Aug 14 14:40:21 2023 -0700"
      },
      "message": "net/mlx5: Remove redundant SF supported check from mlx5_sf_hw_table_init()\n\nSince mlx5_sf_supported() check is done as a first thing in\nmlx5_sf_max_functions(), remove the redundant check.\n\nSigned-off-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nReviewed-by: Shay Drory \u003cshayd@nvidia.com\u003e\nSigned-off-by: Saeed Mahameed \u003csaeedm@nvidia.com\u003e\n"
    },
    {
      "commit": "2ad0160c02be2a56bd80aaeb5c40221250814c25",
      "tree": "4ace972a9b547f8bc6b4e95e28b47cfd5fdc3ef2",
      "parents": [
        "e0e22d59b47a3306d448284a499169a361555099"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@nvidia.com",
        "time": "Wed Jun 28 16:19:52 2023 +0200"
      },
      "committer": {
        "name": "Saeed Mahameed",
        "email": "saeedm@nvidia.com",
        "time": "Mon Aug 14 14:40:21 2023 -0700"
      },
      "message": "net/mlx5: Use auxiliary_device_uninit() instead of device_put()\n\nInstead of using device_put(), use auxiliary_device_uninit() for\nauxiliary device uninit which internally just calls device_put().\n\nSigned-off-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nSigned-off-by: Saeed Mahameed \u003csaeedm@nvidia.com\u003e\n"
    }
  ],
  "next": "e0e22d59b47a3306d448284a499169a361555099"
}
