)]}'
{
  "log": [
    {
      "commit": "b53b63dbf3748eca32e8d19d56dba43ddfec78e6",
      "tree": "19ca27b2d85727299d5fa93f3a085bf3bef71b4a",
      "parents": [
        "556a399406635566413f9c71b134d5d287b25b29",
        "f932a8e4824b529e455b7e3eb3e5118beceb3e32"
      ],
      "author": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Thu Jan 16 17:51:10 2025 -0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Thu Jan 16 17:51:11 2025 -0800"
      },
      "message": "Merge branch \u0027support-eliding-map-lookup-nullness\u0027\n\nDaniel Xu says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nSupport eliding map lookup nullness\n\nThis patch allows progs to elide a null check on statically known map\nlookup keys. In other words, if the verifier can statically prove that\nthe lookup will be in-bounds, allow the prog to drop the null check.\n\nThis is useful for two reasons:\n\n1. Large numbers of nullness checks (especially when they cannot fail)\n   unnecessarily pushes prog towards BPF_COMPLEXITY_LIMIT_JMP_SEQ.\n2. It forms a tighter contract between programmer and verifier.\n\nFor (1), bpftrace is starting to make heavier use of percpu scratch\nmaps. As a result, for user scripts with large number of unrolled loops,\nwe are starting to hit jump complexity verification errors.  These\npercpu lookups cannot fail anyways, as we only use static key values.\nEliding nullness probably results in less work for verifier as well.\n\nFor (2), percpu scratch maps are often used as a larger stack, as the\ncurrrent stack is limited to 512 bytes. In these situations, it is\ndesirable for the programmer to express: \"this lookup should never fail,\nand if it does, it means I messed up the code\". By omitting the null\ncheck, the programmer can \"ask\" the verifier to double check the logic.\n\n\u003d\u003d\u003d Changelog \u003d\u003d\u003d\n\nChanges in v7:\n* Use more accurate frame number when marking precise\n* Add test for non-stack key\n* Test for marking stack slot precise\n\nChanges in v6:\n* Use is_spilled_scalar_reg() helper and remove unnecessary comment\n* Add back deleted selftest with different helper to dirty dst buffer\n* Check size of spill is exactly key_size and update selftests\n* Read slot_type from correct offset into the spi\n* Rewrite selftests in C where possible\n* Mark constant map keys as precise\n\nChanges in v5:\n* Dropped all acks\n* Use s64 instead of long for const_map_key\n* Ensure stack slot contains spilled reg before accessing spilled_ptr\n* Ensure spilled reg is a scalar before accessing tnum const value\n* Fix verifier selftest for 32-bit write to write at 8 byte alignment\n  to ensure spill is tracked\n* Introduce more precise tracking of helper stack accesses\n* Do constant map key extraction as part of helper argument processing\n  and then remove duplicated stack checks\n* Use ret_flag instead of regs[BPF_REG_0].type\n* Handle STACK_ZERO\n* Fix bug in bpf_load_hdr_opt() arg annotation\n\nChanges in v4:\n* Only allow for CAP_BPF\n* Add test for stack growing upwards\n* Improve comment about stack growing upwards\n\nChanges in v3:\n* Check if stack is (erroneously) growing upwards\n* Mention in commit message why existing tests needed change\n\nChanges in v2:\n* Added a check for when R2 is not a ptr to stack\n* Added a check for when stack is uninitialized (no stack slot yet)\n* Updated existing tests to account for null elision\n* Added test case for when R2 can be both const and non-const\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/cover.1736886479.git.dxu@dxuuu.xyz\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "f932a8e4824b529e455b7e3eb3e5118beceb3e32",
      "tree": "19ca27b2d85727299d5fa93f3a085bf3bef71b4a",
      "parents": [
        "d2102f2f5d75a84dbab6ff890359f0bd4a18ca22"
      ],
      "author": {
        "name": "Daniel Xu",
        "email": "dxu@dxuuu.xyz",
        "time": "Tue Jan 14 13:28:46 2025 -0700"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Thu Jan 16 17:51:10 2025 -0800"
      },
      "message": "bpf: selftests: verifier: Add nullness elision tests\n\nTest that nullness elision works for common use cases. For example, we\nwant to check that both constant scalar spills and STACK_ZERO functions.\nAs well as when there\u0027s both const and non-const values of R2 leading up\nto a lookup. And obviously some bound checks.\n\nParticularly tricky are spills both smaller or larger than key size. For\nsmaller, we need to ensure verifier doesn\u0027t let through a potential read\ninto unchecked bytes. For larger, endianness comes into play, as the\nnative endian value tracked in the verifier may not be the bytes the\nkernel would have read out of the key pointer. So check that we disallow\nboth.\n\nSigned-off-by: Daniel Xu \u003cdxu@dxuuu.xyz\u003e\nLink: https://lore.kernel.org/r/f1dacaa777d4516a5476162e0ea549f7c3354d73.1736886479.git.dxu@dxuuu.xyz\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "d2102f2f5d75a84dbab6ff890359f0bd4a18ca22",
      "tree": "03016831cd0ce9adbf578cc84297450eac2874d2",
      "parents": [
        "37cce22dbd51a3ef7f6c08c3fb5f1c5075a17fbb"
      ],
      "author": {
        "name": "Daniel Xu",
        "email": "dxu@dxuuu.xyz",
        "time": "Tue Jan 14 13:28:45 2025 -0700"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Thu Jan 16 17:51:10 2025 -0800"
      },
      "message": "bpf: verifier: Support eliding map lookup nullness\n\nThis commit allows progs to elide a null check on statically known map\nlookup keys. In other words, if the verifier can statically prove that\nthe lookup will be in-bounds, allow the prog to drop the null check.\n\nThis is useful for two reasons:\n\n1. Large numbers of nullness checks (especially when they cannot fail)\n   unnecessarily pushes prog towards BPF_COMPLEXITY_LIMIT_JMP_SEQ.\n2. It forms a tighter contract between programmer and verifier.\n\nFor (1), bpftrace is starting to make heavier use of percpu scratch\nmaps. As a result, for user scripts with large number of unrolled loops,\nwe are starting to hit jump complexity verification errors.  These\npercpu lookups cannot fail anyways, as we only use static key values.\nEliding nullness probably results in less work for verifier as well.\n\nFor (2), percpu scratch maps are often used as a larger stack, as the\ncurrrent stack is limited to 512 bytes. In these situations, it is\ndesirable for the programmer to express: \"this lookup should never fail,\nand if it does, it means I messed up the code\". By omitting the null\ncheck, the programmer can \"ask\" the verifier to double check the logic.\n\nTests also have to be updated in sync with these changes, as the\nverifier is more efficient with this change. Notable, iters.c tests had\nto be changed to use a map type that still requires null checks, as it\u0027s\nexercising verifier tracking logic w.r.t iterators.\n\nSigned-off-by: Daniel Xu \u003cdxu@dxuuu.xyz\u003e\nLink: https://lore.kernel.org/r/68f3ea96ff3809a87e502a11a4bd30177fc5823e.1736886479.git.dxu@dxuuu.xyz\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "37cce22dbd51a3ef7f6c08c3fb5f1c5075a17fbb",
      "tree": "1a0a9958409ee4c9111c32ab6ea6c41b824692b3",
      "parents": [
        "8ac412a3361173e3000b16167af3d1f6f90af613"
      ],
      "author": {
        "name": "Daniel Xu",
        "email": "dxu@dxuuu.xyz",
        "time": "Tue Jan 14 13:28:44 2025 -0700"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Thu Jan 16 17:51:10 2025 -0800"
      },
      "message": "bpf: verifier: Refactor helper access type tracking\n\nPreviously, the verifier was treating all PTR_TO_STACK registers passed\nto a helper call as potentially written to by the helper. However, all\ncalls to check_stack_range_initialized() already have precise access type\ninformation available.\n\nRather than treat ACCESS_HELPER as a proxy for BPF_WRITE, pass\nenum bpf_access_type to check_stack_range_initialized() to more\nprecisely track helper arguments.\n\nOne benefit from this precision is that registers tracked as valid\nspills and passed as a read-only helper argument remain tracked after\nthe call.  Rather than being marked STACK_MISC afterwards.\n\nAn additional benefit is the verifier logs are also more precise. For\nthis particular error, users will enjoy a slightly clearer message. See\nincluded selftest updates for examples.\n\nAcked-by: Eduard Zingerman \u003ceddyz87@gmail.com\u003e\nSigned-off-by: Daniel Xu \u003cdxu@dxuuu.xyz\u003e\nLink: https://lore.kernel.org/r/ff885c0e5859e0cd12077c3148ff0754cad4f7ed.1736886479.git.dxu@dxuuu.xyz\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "8ac412a3361173e3000b16167af3d1f6f90af613",
      "tree": "27c3dee9bea00312254e869aa5925d1851cd750f",
      "parents": [
        "b8a81b5dd6450be730924ea5e78f5892927cccd1"
      ],
      "author": {
        "name": "Daniel Xu",
        "email": "dxu@dxuuu.xyz",
        "time": "Tue Jan 14 13:28:43 2025 -0700"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Thu Jan 16 17:51:10 2025 -0800"
      },
      "message": "bpf: tcp: Mark bpf_load_hdr_opt() arg2 as read-write\n\nMEM_WRITE attribute is defined as: \"Non-presence of MEM_WRITE means that\nMEM is only being read\". bpf_load_hdr_opt() both reads and writes from\nits arg2 - void *search_res.\n\nThis matters a lot for the next commit where we more precisely track\nstack accesses. Without this annotation, the verifier will make false\nassumptions about the contents of memory written to by helpers and\npossibly prune valid branches.\n\nFixes: 6fad274f06f0 (\"bpf: Add MEM_WRITE attribute\")\nAcked-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\nSigned-off-by: Daniel Xu \u003cdxu@dxuuu.xyz\u003e\nLink: https://lore.kernel.org/r/730e45f8c39be2a5f3d8c4406cceca9d574cbf14.1736886479.git.dxu@dxuuu.xyz\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "b8a81b5dd6450be730924ea5e78f5892927cccd1",
      "tree": "a44df7bb3aaad4a29bb601a285b7c515fe9f22c4",
      "parents": [
        "556a399406635566413f9c71b134d5d287b25b29"
      ],
      "author": {
        "name": "Daniel Xu",
        "email": "dxu@dxuuu.xyz",
        "time": "Tue Jan 14 13:28:42 2025 -0700"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Thu Jan 16 17:51:10 2025 -0800"
      },
      "message": "bpf: verifier: Add missing newline on verbose() call\n\nThe print was missing a newline.\n\nSigned-off-by: Daniel Xu \u003cdxu@dxuuu.xyz\u003e\nLink: https://lore.kernel.org/r/59cbe18367b159cd470dc6d5c652524c1dc2b984.1736886479.git.dxu@dxuuu.xyz\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "556a399406635566413f9c71b134d5d287b25b29",
      "tree": "93ad3111ab82ceca06974b35ed96c9c94a723598",
      "parents": [
        "5ca681a86ef93369685cb63f71994f4cf7303e7c"
      ],
      "author": {
        "name": "Pu Lehui",
        "email": "pulehui@huawei.com",
        "time": "Wed Jan 15 10:02:41 2025 +0000"
      },
      "committer": {
        "name": "Andrii Nakryiko",
        "email": "andrii@kernel.org",
        "time": "Thu Jan 16 15:34:18 2025 -0800"
      },
      "message": "selftests/bpf: Add distilled BTF test about marking BTF_IS_EMBEDDED\n\nWhen redirecting the split BTF to the vmlinux base BTF, we need to mark\nthe distilled base struct/union members of split BTF structs/unions in\nid_map with BTF_IS_EMBEDDED. This indicates that these types must match\nboth name and size later. So if a needed composite type, which is the\nmember of composite type in the split BTF, has a different size in the\nbase BTF we wish to relocate with, btf__relocate() should error out.\n\nSigned-off-by: Pu Lehui \u003cpulehui@huawei.com\u003e\nSigned-off-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/20250115100241.4171581-4-pulehui@huaweicloud.com\n"
    },
    {
      "commit": "5ca681a86ef93369685cb63f71994f4cf7303e7c",
      "tree": "aac02d452804941dfb0e6856c741b033b5d6ca2b",
      "parents": [
        "5436a54332c19df0acbef2b87cbf9f7cba56f2dd"
      ],
      "author": {
        "name": "Pu Lehui",
        "email": "pulehui@huawei.com",
        "time": "Wed Jan 15 10:02:40 2025 +0000"
      },
      "committer": {
        "name": "Andrii Nakryiko",
        "email": "andrii@kernel.org",
        "time": "Thu Jan 16 15:34:18 2025 -0800"
      },
      "message": "libbpf: Fix incorrect traversal end type ID when marking BTF_IS_EMBEDDED\n\nWhen redirecting the split BTF to the vmlinux base BTF, we need to mark\nthe distilled base struct/union members of split BTF structs/unions in\nid_map with BTF_IS_EMBEDDED. This indicates that these types must match\nboth name and size later. Therefore, we need to traverse the entire\nsplit BTF, which involves traversing type IDs from nr_dist_base_types to\nnr_types. However, the current implementation uses an incorrect\ntraversal end type ID, so let\u0027s correct it.\n\nFixes: 19e00c897d50 (\"libbpf: Split BTF relocation\")\nSigned-off-by: Pu Lehui \u003cpulehui@huawei.com\u003e\nSigned-off-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/20250115100241.4171581-3-pulehui@huaweicloud.com\n"
    },
    {
      "commit": "5436a54332c19df0acbef2b87cbf9f7cba56f2dd",
      "tree": "0ba7857af7c0ea869c797c3d120b403f4830c3ef",
      "parents": [
        "4a04cb326a6c7f9a2c066f8c2ca78a5a9b87ddab"
      ],
      "author": {
        "name": "Pu Lehui",
        "email": "pulehui@huawei.com",
        "time": "Wed Jan 15 10:02:39 2025 +0000"
      },
      "committer": {
        "name": "Andrii Nakryiko",
        "email": "andrii@kernel.org",
        "time": "Thu Jan 16 15:34:18 2025 -0800"
      },
      "message": "libbpf: Fix return zero when elf_begin failed\n\nThe error number of elf_begin is omitted when encapsulating the\nbtf_find_elf_sections function.\n\nFixes: c86f180ffc99 (\"libbpf: Make btf_parse_elf process .BTF.base transparently\")\nSigned-off-by: Pu Lehui \u003cpulehui@huawei.com\u003e\nSigned-off-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/20250115100241.4171581-2-pulehui@huaweicloud.com\n"
    },
    {
      "commit": "4a04cb326a6c7f9a2c066f8c2ca78a5a9b87ddab",
      "tree": "b7957cfed555bb1f369a4d35ebbaab856906a32e",
      "parents": [
        "7c311b7cb3c7d84c5c342e803c5cb1b2fabbc438"
      ],
      "author": {
        "name": "Pu Lehui",
        "email": "pulehui@huawei.com",
        "time": "Wed Jan 15 10:02:38 2025 +0000"
      },
      "committer": {
        "name": "Andrii Nakryiko",
        "email": "andrii@kernel.org",
        "time": "Thu Jan 16 15:34:18 2025 -0800"
      },
      "message": "selftests/bpf: Fix btf leak on new btf alloc failure in btf_distill test\n\nFix btf leak on new btf alloc failure in btf_distill test.\n\nFixes: affdeb50616b (\"selftests/bpf: Extend distilled BTF tests to cover BTF relocation\")\nSigned-off-by: Pu Lehui \u003cpulehui@huawei.com\u003e\nSigned-off-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/20250115100241.4171581-1-pulehui@huaweicloud.com\n"
    },
    {
      "commit": "7c311b7cb3c7d84c5c342e803c5cb1b2fabbc438",
      "tree": "44672c606fd07d5cc8011029851b96d8d0ed0caa",
      "parents": [
        "a8d1c48d0720140b53063ff23507845bb2078e92"
      ],
      "author": {
        "name": "Eduard Zingerman",
        "email": "eddyz87@gmail.com",
        "time": "Wed Jan 15 14:38:35 2025 -0800"
      },
      "committer": {
        "name": "Andrii Nakryiko",
        "email": "andrii@kernel.org",
        "time": "Thu Jan 16 15:33:58 2025 -0800"
      },
      "message": "veristat: Load struct_ops programs only once\n\nlibbpf automatically adjusts autoload for struct_ops programs,\nsee libbpf.c:bpf_object_adjust_struct_ops_autoload.\n\nFor example, if there is a map:\n\n    SEC(\".struct_ops.link\")\n    struct sched_ext_ops ops \u003d {\n    \t.enqueue \u003d foo,\n        .tick \u003d bar,\n    };\n\nBoth \u0027foo\u0027 and \u0027bar\u0027 would be loaded if \u0027ops\u0027 autocreate is true,\nboth \u0027foo\u0027 and \u0027bar\u0027 would be skipped if \u0027ops\u0027 autocreate is false.\n\nThis means that when veristat processes object file with \u0027ops\u0027,\nit would load 4 programs in total: two programs per each\n\u0027process_prog\u0027 call.\n\nThe adjustment occurs at object load time, and libbpf remembers\nassociation between \u0027ops\u0027 and \u0027foo\u0027/\u0027bar\u0027 at object open time.\nThe only way to persuade libbpf to load one of two is to adjust map\ninitial value, such that only one program is referenced.\nThis patch does exactly that, significantly reducing time to process\nobject files with big number of struct_ops programs.\n\nSigned-off-by: Eduard Zingerman \u003ceddyz87@gmail.com\u003e\nSigned-off-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/20250115223835.919989-1-eddyz87@gmail.com\n"
    },
    {
      "commit": "a8d1c48d0720140b53063ff23507845bb2078e92",
      "tree": "b72c685428b9e064c1fbc593b091792d97cc2f95",
      "parents": [
        "87c544108b612512b254c8f79aa5c0a8546e2cc4"
      ],
      "author": {
        "name": "Tony Ambardar",
        "email": "tony.ambardar@gmail.com",
        "time": "Wed Jan 15 23:50:36 2025 -0800"
      },
      "committer": {
        "name": "Andrii Nakryiko",
        "email": "andrii@kernel.org",
        "time": "Thu Jan 16 15:20:21 2025 -0800"
      },
      "message": "selftests/bpf: Fix undefined UINT_MAX in veristat.c\n\nInclude \u003climits.h\u003e in \u0027veristat.c\u0027 to provide a UINT_MAX definition and\navoid multiple compile errors against mips64el/musl-libc:\n\nveristat.c: In function \u0027max_verifier_log_size\u0027:\nveristat.c:1135:36: error: \u0027UINT_MAX\u0027 undeclared (first use in this function)\n 1135 |         const int SMALL_LOG_SIZE \u003d UINT_MAX \u003e\u003e 8;\n      |                                    ^~~~~~~~\nveristat.c:24:1: note: \u0027UINT_MAX\u0027 is defined in header \u0027\u003climits.h\u003e\u0027; did you forget to \u0027#include \u003climits.h\u003e\u0027?\n   23 | #include \u003cmath.h\u003e\n  +++ |+#include \u003climits.h\u003e\n   24 |\n\nFixes: 1f7c33630724 (\"selftests/bpf: Increase verifier log limit in veristat\")\nSigned-off-by: Tony Ambardar \u003ctony.ambardar@gmail.com\u003e\nSigned-off-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/20250116075036.3459898-1-tony.ambardar@gmail.com\n"
    },
    {
      "commit": "87c544108b612512b254c8f79aa5c0a8546e2cc4",
      "tree": "e7f8ed4f6e765df7e5cfdc1fe5814852207a32a3",
      "parents": [
        "9fe17b7466f6c1dd29bac83a7a53303b8b16410f"
      ],
      "author": {
        "name": "Puranjay Mohan",
        "email": "puranjay@kernel.org",
        "time": "Wed Jan 15 10:36:47 2025 +0000"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 15 13:44:08 2025 -0800"
      },
      "message": "bpf: Send signals asynchronously if !preemptible\n\nBPF programs can execute in all kinds of contexts and when a program\nrunning in a non-preemptible context uses the bpf_send_signal() kfunc,\nit will cause issues because this kfunc can sleep.\nChange `irqs_disabled()` to `!preemptible()`.\n\nReported-by: syzbot+97da3d7e0112d59971de@syzkaller.appspotmail.com\nCloses: https://lore.kernel.org/all/67486b09.050a0220.253251.0084.GAE@google.com/\nFixes: 1bc7896e9ef4 (\"bpf: Fix deadlock with rq_lock in bpf_send_signal()\")\nSigned-off-by: Puranjay Mohan \u003cpuranjay@kernel.org\u003e\nAcked-by: Yonghong Song \u003cyonghong.song@linux.dev\u003e\nLink: https://lore.kernel.org/r/20250115103647.38487-1-puranjay@kernel.org\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "9fe17b7466f6c1dd29bac83a7a53303b8b16410f",
      "tree": "08339dbc03ac4a33b8f0b1268a8f0b85f1a7cb0f",
      "parents": [
        "be339ddf9e393f5da78a71ae6c2a407fdc04d6be"
      ],
      "author": {
        "name": "Saket Kumar Bhaskar",
        "email": "skb99@linux.ibm.com",
        "time": "Fri Jan 10 16:01:09 2025 +0530"
      },
      "committer": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Wed Jan 15 15:45:29 2025 +0100"
      },
      "message": "selftests/bpf: Fix test_xdp_adjust_tail_grow2 selftest on powerpc\n\nOn powerpc cache line size is 128 bytes, so skb_shared_info must be\naligned accordingly.\n\nSigned-off-by: Saket Kumar Bhaskar \u003cskb99@linux.ibm.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nLink: https://lore.kernel.org/bpf/20250110103109.3670793-1-skb99@linux.ibm.com\n"
    },
    {
      "commit": "be339ddf9e393f5da78a71ae6c2a407fdc04d6be",
      "tree": "27c306ed77057f6a9e5dbb7726a2c92c63c76804",
      "parents": [
        "95ad526edebcb3a68429315c81024ffc4ec0980a",
        "3e99fa9fab1951400599cf67abb11a9c90564e48"
      ],
      "author": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Fri Jan 10 16:04:09 2025 -0800"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Fri Jan 10 17:29:05 2025 -0800"
      },
      "message": "Merge branch \u0027selftests-bpf-migrate-test_xdp_redirect-sh-to-test_progs\u0027\n\nBastien Curutchet says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nThis patch series continues the work to migrate the *.sh tests into\nprog_tests.\n\ntest_xdp_redirect.sh tests the XDP redirections done through\nbpf_redirect().\n\nThese XDP redirections are already tested by prog_tests/xdp_do_redirect.c\nbut IMO it doesn\u0027t cover the exact same code path because\nxdp_do_redirect.c uses bpf_prog_test_run_opts() to trigger redirections\nof \u0027fake packets\u0027 while test_xdp_redirect.sh redirects packets coming\nfrom the network. Also, the test_xdp_redirect.sh script tests the\nredirections with both SKB and DRV modes while xdp_do_redirect.c only\ntests the DRV mode.\n\nThe patch series adds two new test cases in prog_tests/xdp_do_redirect.c\nto replace the test_xdp_redirect.sh script.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20250110-xdp_redirect-v2-0-b8f3ae53e894@bootlin.com\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "3e99fa9fab1951400599cf67abb11a9c90564e48",
      "tree": "27c306ed77057f6a9e5dbb7726a2c92c63c76804",
      "parents": [
        "a94df601091ffcee576925973b51ce8838851d26"
      ],
      "author": {
        "name": "Bastien Curutchet (eBPF Foundation)",
        "email": "bastien.curutchet@bootlin.com",
        "time": "Fri Jan 10 10:21:11 2025 +0100"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Fri Jan 10 17:29:05 2025 -0800"
      },
      "message": "selftests/bpf: Migrate test_xdp_redirect.c to test_xdp_do_redirect.c\n\nprog_tests/xdp_do_redirect.c is the only user of the BPF programs\nlocated in progs/test_xdp_do_redirect.c and progs/test_xdp_redirect.c.\nThere is no need to keep both files with such close names.\n\nMove test_xdp_redirect.c contents to test_xdp_do_redirect.c and remove\nprogs/test_xdp_redirect.c\n\nSigned-off-by: Bastien Curutchet (eBPF Foundation) \u003cbastien.curutchet@bootlin.com\u003e\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\nLink: https://patch.msgid.link/20250110-xdp_redirect-v2-3-b8f3ae53e894@bootlin.com\n"
    },
    {
      "commit": "a94df601091ffcee576925973b51ce8838851d26",
      "tree": "35d24ad94f9e1a14c9b929855feee59826b27ebe",
      "parents": [
        "2c6c5c7c1ad18761c399ef3376f5320eb13f92eb"
      ],
      "author": {
        "name": "Bastien Curutchet (eBPF Foundation)",
        "email": "bastien.curutchet@bootlin.com",
        "time": "Fri Jan 10 10:21:10 2025 +0100"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Fri Jan 10 17:29:05 2025 -0800"
      },
      "message": "selftests/bpf: Migrate test_xdp_redirect.sh to xdp_do_redirect.c\n\ntest_xdp_redirect.sh can\u0027t be used by the BPF CI.\n\nMigrate test_xdp_redirect.sh into a new test case in xdp_do_redirect.c.\nIt uses the same network topology and the same BPF programs located in\nprogs/test_xdp_redirect.c and progs/xdp_dummy.c.\nRemove test_xdp_redirect.sh and its Makefile entry.\n\nSigned-off-by: Bastien Curutchet (eBPF Foundation) \u003cbastien.curutchet@bootlin.com\u003e\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\nLink: https://patch.msgid.link/20250110-xdp_redirect-v2-2-b8f3ae53e894@bootlin.com\n"
    },
    {
      "commit": "2c6c5c7c1ad18761c399ef3376f5320eb13f92eb",
      "tree": "3404ae581666284b3abe6b4576b84aff2bb9bb7c",
      "parents": [
        "95ad526edebcb3a68429315c81024ffc4ec0980a"
      ],
      "author": {
        "name": "Bastien Curutchet (eBPF Foundation)",
        "email": "bastien.curutchet@bootlin.com",
        "time": "Fri Jan 10 10:21:09 2025 +0100"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Fri Jan 10 17:29:05 2025 -0800"
      },
      "message": "selftests/bpf: test_xdp_redirect: Rename BPF sections\n\nSEC(\"redirect_to_111\") and SEC(\"redirect_to_222\") can\u0027t be loaded by the\n__load() helper.\n\nRename both sections SEC(\"xdp\") so it can be interpreted by the __load()\nhelper in upcoming patch.\nUpdate the test_xdp_redirect.sh to use the program name instead of the\nsection name to load the BPF program.\n\nSigned-off-by: Bastien Curutchet (eBPF Foundation) \u003cbastien.curutchet@bootlin.com\u003e\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\nReviewed-by: Alexis Lothoré (eBPF Foundation) \u003calexis.lothore@bootlin.com\u003e\nLink: https://patch.msgid.link/20250110-xdp_redirect-v2-1-b8f3ae53e894@bootlin.com\n"
    },
    {
      "commit": "95ad526edebcb3a68429315c81024ffc4ec0980a",
      "tree": "dc4069d7317664b3c839f48a58809209a056880a",
      "parents": [
        "defac894af93cb347fae0520fe8f14ca36f6fe87"
      ],
      "author": {
        "name": "Daniel Xu",
        "email": "dxu@dxuuu.xyz",
        "time": "Thu Jan 09 16:42:29 2025 -0700"
      },
      "committer": {
        "name": "Andrii Nakryiko",
        "email": "andrii@kernel.org",
        "time": "Fri Jan 10 14:35:30 2025 -0800"
      },
      "message": "veristat: Document verifier log dumping capability\n\n`-vl2` is a useful combination of flags to dump the entire\nverification log. This is helpful when making changes to the verifier,\nas you can see what it thinks program one instruction at a time.\n\nThis was more or less a hidden feature before. Document it so others can\ndiscover it.\n\nSigned-off-by: Daniel Xu \u003cdxu@dxuuu.xyz\u003e\nSigned-off-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/d57bbcca81e06ae8dcdadaedb99a48dced67e422.1736466129.git.dxu@dxuuu.xyz\n"
    },
    {
      "commit": "defac894af93cb347fae0520fe8f14ca36f6fe87",
      "tree": "9f98091dfacbc596023eb1504557623a647a3852",
      "parents": [
        "a43796b5201270b258b7a418c41816ec03393ce5"
      ],
      "author": {
        "name": "Christoph Werle",
        "email": "christoph.werle@longjmp.de",
        "time": "Wed Jan 08 23:09:37 2025 +0100"
      },
      "committer": {
        "name": "Andrii Nakryiko",
        "email": "andrii@kernel.org",
        "time": "Fri Jan 10 14:16:13 2025 -0800"
      },
      "message": "bpftool: Fix control flow graph segfault during edge creation\n\nIf the last instruction of a control flow graph building block is a\nBPF_CALL, an incorrect edge with e-\u003edst set to NULL is created and\nresults in a segfault during graph output.\n\nEnsure that BPF_CALL as last instruction of a building block is handled\ncorrectly and only generates a single edge unlike actual BPF_JUMP*\ninstructions.\n\nSigned-off-by: Christoph Werle \u003cchristoph.werle@longjmp.de\u003e\nSigned-off-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nTested-by: Quentin Monnet \u003cqmo@kernel.org\u003e\nReviewed-by: Quentin Monnet \u003cqmo@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/20250108220937.1470029-1-christoph.werle@longjmp.de\n"
    },
    {
      "commit": "a43796b5201270b258b7a418c41816ec03393ce5",
      "tree": "06a1fdf900e3650d08f9520844fd91608eae4c26",
      "parents": [
        "e2b0bda62d549d9dcbc11f5371c6a41c8c4f54b0"
      ],
      "author": {
        "name": "Yonghong Song",
        "email": "yonghong.song@linux.dev",
        "time": "Thu Jan 09 09:40:28 2025 -0800"
      },
      "committer": {
        "name": "Andrii Nakryiko",
        "email": "andrii@kernel.org",
        "time": "Fri Jan 10 13:11:44 2025 -0800"
      },
      "message": "selftests/bpf: Add a test for kprobe multi with unique_match\n\nAdd a kprobe multi subtest to test kprobe multi unique_match option.\n\nSigned-off-by: Yonghong Song \u003cyonghong.song@linux.dev\u003e\nSigned-off-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/20250109174028.3368967-1-yonghong.song@linux.dev\n"
    },
    {
      "commit": "e2b0bda62d549d9dcbc11f5371c6a41c8c4f54b0",
      "tree": "a9ddcc401da2c0ad02d437566487a2b704fcb9f4",
      "parents": [
        "e8ec1c94866a44723c8ab1c90942503f3402ede8"
      ],
      "author": {
        "name": "Yonghong Song",
        "email": "yonghong.song@linux.dev",
        "time": "Thu Jan 09 09:40:23 2025 -0800"
      },
      "committer": {
        "name": "Andrii Nakryiko",
        "email": "andrii@kernel.org",
        "time": "Fri Jan 10 13:11:42 2025 -0800"
      },
      "message": "libbpf: Add unique_match option for multi kprobe\n\nJordan reported an issue in Meta production environment where func\ntry_to_wake_up() is renamed to try_to_wake_up.llvm.\u003chash\u003e() by clang\ncompiler at lto mode. The original \u0027kprobe/try_to_wake_up\u0027 does not\nwork any more since try_to_wake_up() does not match the actual func\nname in /proc/kallsyms.\n\nThere are a couple of ways to resolve this issue. For example, in\nattach_kprobe(), we could do lookup in /proc/kallsyms so try_to_wake_up()\ncan be replaced by try_to_wake_up.llvm.\u003chach\u003e(). Or we can force users\nto use bpf_program__attach_kprobe() where they need to lookup\n/proc/kallsyms to find out try_to_wake_up.llvm.\u003chach\u003e(). But these two\napproaches requires extra work by either libbpf or user.\n\nLuckily, suggested by Andrii, multi kprobe already supports wildcard (\u0027*\u0027)\nfor symbol matching. In the above example, \u0027try_to_wake_up*\u0027 can match\nto try_to_wake_up() or try_to_wake_up.llvm.\u003chash\u003e() and this allows\nbpf prog works for different kernels as some kernels may have\ntry_to_wake_up() and some others may have try_to_wake_up.llvm.\u003chash\u003e().\n\nThe original intention is to kprobe try_to_wake_up() only, so an optional\nfield unique_match is added to struct bpf_kprobe_multi_opts. If the\nfield is set to true, the number of matched functions must be one.\nOtherwise, the attachment will fail. In the above case, multi kprobe\nwith \u0027try_to_wake_up*\u0027 and unique_match preserves user functionality.\n\nReported-by: Jordan Rome \u003clinux@jordanrome.com\u003e\nSuggested-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nSigned-off-by: Yonghong Song \u003cyonghong.song@linux.dev\u003e\nSigned-off-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/20250109174023.3368432-1-yonghong.song@linux.dev\n"
    },
    {
      "commit": "e8ec1c94866a44723c8ab1c90942503f3402ede8",
      "tree": "f24d2737d0d2fcc7b7d45e00980dc70292ed5189",
      "parents": [
        "bfaac2a0b9e59b595f08606e7762bee50f01a074",
        "d86088e2c35de1eeaae757e49f697f8f42b288fa"
      ],
      "author": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:37 2025 -0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:45 2025 -0800"
      },
      "message": "Merge branch \u0027bpf-reduce-the-use-of-migrate_-disable-enable\u0027\n\nHou Tao says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nThe use of migrate_{disable|enable} pair in BPF is mainly due to the\nintroduction of bpf memory allocator and the use of per-CPU data struct\nin its internal implementation. The caller needs to disable migration\nbefore invoking the alloc or free APIs of bpf memory allocator, and\nenable migration after the invocation.\n\nThe main users of bpf memory allocator are various kind of bpf maps in\nwhich the map values or the special fields in the map values are\nallocated by using bpf memory allocator.\n\nAt present, the running context for bpf program has already disabled\nmigration explictly or implictly, therefore, when these maps are\nmanipulated in bpf program, it is OK to not invoke migrate_disable()\nand migrate_enable() pair. Howevers, it is not always the case when\nthese maps are manipulated through bpf syscall, therefore many\nmigrate_{disable|enable} pairs are added when the map can either be\nmanipulated by BPF program or BPF syscall.\n\nThe initial idea of reducing the use of migrate_{disable|enable} comes\nfrom Alexei [1]. I turned it into a patch set that archives the goals\nthrough the following three methods:\n\n1. remove unnecessary migrate_{disable|enable} pair\nwhen the BPF syscall path also disables migration, it is OK to remove\nthe pair. Patch #1~#3 fall into this category, while patch #4~#5 are\npartially included.\n\n2. move the migrate_{disable|enable} pair from inner callee to outer\n   caller\nInstead of invoking migrate_disable() in the inner callee, invoking\nmigrate_disable() in the outer caller to simplify reasoning about when\nmigrate_disable() is needed. Patch #4~#5 and patch #6~#19 belongs to\nthis category.\n\n3. add cant_migrate() check in the inner callee\nAdd cant_migrate() check in the inner callee to ensure the guarantee\nthat migration is disabled is not broken. Patch #1~#5, #13, #16~#19 also\nbelong to this category.\n\nPlease check the individual patches for more details. Comments are\nalways welcome.\n\nChange Log:\nv2:\n  * sqaush the -\u003emap_free related patches (#10~#12, #15) into one patch\n  * remove unnecessary cant_migrate() checks.\n\nv1: https://lore.kernel.org/bpf/20250106081900.1665573-1-houtao@huaweicloud.com\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20250108010728.207536-1-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "d86088e2c35de1eeaae757e49f697f8f42b288fa",
      "tree": "f24d2737d0d2fcc7b7d45e00980dc70292ed5189",
      "parents": [
        "7b984359e097f30e392e4eee29be7445fc391f29"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:28 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:37 2025 -0800"
      },
      "message": "bpf: Remove migrate_{disable|enable} from bpf_selem_free()\n\nbpf_selem_free() has the following three callers:\n\n(1) bpf_local_storage_update\nIt will be invoked through -\u003emap_update_elem syscall or helpers for\nstorage map. Migration has already been disabled in these running\ncontexts.\n\n(2) bpf_sk_storage_clone\nIt has already disabled migration before invoking bpf_selem_free().\n\n(3) bpf_selem_free_list\nbpf_selem_free_list() has three callers: bpf_selem_unlink_storage(),\nbpf_local_storage_update() and bpf_local_storage_destroy().\n\nThe callers of bpf_selem_unlink_storage() includes: storage map\n-\u003emap_delete_elem syscall, storage map delete helpers and\nbpf_local_storage_map_free(). These contexts have already disabled\nmigration when invoking bpf_selem_unlink() which invokes\nbpf_selem_unlink_storage() and bpf_selem_free_list() correspondingly.\n\nbpf_local_storage_update() has been analyzed as the first caller above.\nbpf_local_storage_destroy() is invoked when freeing the local storage\nfor the kernel object. Now cgroup, task, inode and sock storage have\nalready disabled migration before invoking bpf_local_storage_destroy().\n\nAfter the analyses above, it is safe to remove migrate_{disable|enable}\nfrom bpf_selem_free().\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-17-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "7b984359e097f30e392e4eee29be7445fc391f29",
      "tree": "1adbf0f24e08c3d2d798d474775e6db723ce75ee",
      "parents": [
        "4855a75ebf485f74b06ba85b16b71c4b71a4086d"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:27 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:37 2025 -0800"
      },
      "message": "bpf: Remove migrate_{disable|enable} from bpf_local_storage_free()\n\nbpf_local_storage_free() has three callers:\n\n1) bpf_local_storage_alloc()\nIts caller must have disabled migration.\n\n2) bpf_local_storage_destroy()\nIts four callers (bpf_{cgrp|inode|task|sk}_storage_free()) have already\ninvoked migrate_disable() before invoking bpf_local_storage_destroy().\n\n3) bpf_selem_unlink()\nIts callers include: cgrp/inode/task/sk storage -\u003emap_delete_elem\ncallbacks, bpf_{cgrp|inode|task|sk}_storage_delete() helpers and\nbpf_local_storage_map_free(). All of these callers have already disabled\nmigration before invoking bpf_selem_unlink().\n\nTherefore, it is OK to remove migrate_{disable|enable} pair from\nbpf_local_storage_free().\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-16-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "4855a75ebf485f74b06ba85b16b71c4b71a4086d",
      "tree": "a0f5fd1c3e0f60a58e978c5966ef97a276df690b",
      "parents": [
        "2269b32ab00e1be663b838a1eed14408cb9ba677"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:26 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:37 2025 -0800"
      },
      "message": "bpf: Remove migrate_{disable|enable} from bpf_local_storage_alloc()\n\nThese two callers of bpf_local_storage_alloc() are the same as\nbpf_selem_alloc(): bpf_sk_storage_clone() and\nbpf_local_storage_update(). The running contexts of these two callers\nhave already disabled migration, therefore, there is no need to add\nextra migrate_{disable|enable} pair in bpf_local_storage_alloc().\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-15-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "2269b32ab00e1be663b838a1eed14408cb9ba677",
      "tree": "b54e180ecfd122710d02e566f5a82398b15fcc83",
      "parents": [
        "6a52b965ab6f56293dce316f382db3a9a66f0c9f"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:25 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:37 2025 -0800"
      },
      "message": "bpf: Remove migrate_{disable|enable} from bpf_selem_alloc()\n\nbpf_selem_alloc() has two callers:\n(1) bpf_sk_storage_clone_elem()\nbpf_sk_storage_clone() has already disabled migration before invoking\nbpf_sk_storage_clone_elem().\n\n(2) bpf_local_storage_update()\nIts callers include: cgrp/task/inode/sock storage -\u003emap_update_elem()\ncallbacks and bpf_{cgrp|task|inode|sk}_storage_get() helpers. These\nrunning contexts have already disabled migration\n\nTherefore, there is no need to add extra migrate_{disable|enable} pair\nin bpf_selem_alloc().\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-14-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "6a52b965ab6f56293dce316f382db3a9a66f0c9f",
      "tree": "f084cb19e91eeee9a8c892885a5d2daf6c0a8554",
      "parents": [
        "1d2dbe7120e89090ed4f6be03d6fbadfbfff59bf"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:24 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:37 2025 -0800"
      },
      "message": "bpf: Remove migrate_{disable,enable} in bpf_cpumask_release()\n\nWhen BPF program invokes bpf_cpumask_release(), the migration must have\nbeen disabled. When bpf_cpumask_release_dtor() invokes\nbpf_cpumask_release(), the caller bpf_obj_free_fields() also has\ndisabled migration, therefore, it is OK to remove the unnecessary\nmigrate_{disable|enable} pair in bpf_cpumask_release().\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-13-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "1d2dbe7120e89090ed4f6be03d6fbadfbfff59bf",
      "tree": "ac65a76d06420be8daf9a6488e3a74103ceb26b1",
      "parents": [
        "4b7e7cd1c105cc5881f4054805dfbb92aa24eb78"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:23 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:36 2025 -0800"
      },
      "message": "bpf: Remove migrate_{disable|enable} in bpf_obj_free_fields()\n\nThe callers of bpf_obj_free_fields() have already guaranteed that the\nmigration is disabled, therefore, there is no need to invoke\nmigrate_{disable,enable} pair in bpf_obj_free_fields()\u0027s underly\nimplementation.\n\nThis patch removes unnecessary migrate_{disable|enable} pairs from\nbpf_obj_free_fields() and its callees: bpf_list_head_free() and\nbpf_rb_root_free().\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-12-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "4b7e7cd1c105cc5881f4054805dfbb92aa24eb78",
      "tree": "901fdec55265a71ca9939db741f9834eb9a5face",
      "parents": [
        "090d7f2e640b265335ac0a5a8e09a99f7f28f567"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:22 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:36 2025 -0800"
      },
      "message": "bpf: Disable migration before calling ops-\u003emap_free()\n\nThe freeing of all map elements may invoke bpf_obj_free_fields() to free\nthe special fields in the map value. Since these special fields may be\nallocated from bpf memory allocator, migrate_{disable|enable} pairs are\nnecessary for the freeing of these special fields.\n\nTo simplify reasoning about when migrate_disable() is needed for the\nfreeing of these special fields, let the caller to guarantee migration\nis disabled before invoking bpf_obj_free_fields(). Therefore, disabling\nmigration before calling ops-\u003emap_free() to simplify the freeing of map\nvalues or special fields allocated from bpf memory allocator.\n\nAfter disabling migration in bpf_map_free(), there is no need for\nadditional migration_{disable|enable} pairs in these -\u003emap_free()\ncallbacks. Remove these redundant invocations.\n\nThe migrate_{disable|enable} pairs in the underlying implementation of\nbpf_obj_free_fields() will be removed by the following patch.\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-11-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "090d7f2e640b265335ac0a5a8e09a99f7f28f567",
      "tree": "f62ffd39e42e0fdb9a6026667751d81f33aac2e8",
      "parents": [
        "dfccfc47bde53f5df5bf42486d12a8a2ecdcea60"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:21 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:36 2025 -0800"
      },
      "message": "bpf: Disable migration in bpf_selem_free_rcu\n\nbpf_selem_free_rcu() calls bpf_obj_free_fields() to free the special\nfields in map value (e.g., kptr). Since kptrs may be allocated from bpf\nmemory allocator, migrate_{disable|enable} pairs are necessary for the\nfreeing of these kptrs.\n\nTo simplify reasoning about when migrate_disable() is needed for the\nfreeing of these dynamically-allocated kptrs, let the caller to\nguarantee migration is disabled before invoking bpf_obj_free_fields().\n\nTherefore, the patch adds migrate_{disable|enable} pair in\nbpf_selem_free_rcu(). The migrate_{disable|enable} pairs in the\nunderlying implementation of bpf_obj_free_fields() will be removed by\nthe following patch.\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-10-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "dfccfc47bde53f5df5bf42486d12a8a2ecdcea60",
      "tree": "6ca15ad45b449b76fb2712fb39ea09d77a244a3f",
      "parents": [
        "7d1032d1e3031ef38d1a360380d755f75cb639b8"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:20 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:36 2025 -0800"
      },
      "message": "bpf: Disable migration when cloning sock storage\n\nbpf_sk_storage_clone() will call bpf_selem_free() to free the clone\nelement when the allocation of new sock storage fails. bpf_selem_free()\nwill call check_and_free_fields() to free the special fields in the\nelement. Since the allocated element is not visible to bpf syscall or\nbpf program when bpf_local_storage_alloc() fails, these special fields\nin the element must be all zero when invoking bpf_selem_free().\n\nTo be uniform with other callers of bpf_selem_free(), disabling\nmigration when cloning sock storage. Adding migrate_{disable|enable}\npair also benefits the potential switching from kzalloc to bpf memory\nallocator for sock storage.\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-9-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "7d1032d1e3031ef38d1a360380d755f75cb639b8",
      "tree": "45f58fd1bef89b1c4a2fdfbc182d0c567fbe2cfc",
      "parents": [
        "e319cdc8956645b6e29a3809924647953500b7e1"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:19 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:36 2025 -0800"
      },
      "message": "bpf: Disable migration when destroying sock storage\n\nWhen destroying sock storage, it invokes bpf_local_storage_destroy() to\nremove all storage elements saved in the sock storage. The destroy\nprocedure will call bpf_selem_free() to free the element, and\nbpf_selem_free() calls bpf_obj_free_fields() to free the special fields\nin map value (e.g., kptr). Since kptrs may be allocated from bpf memory\nallocator, migrate_{disable|enable} pairs are necessary for the freeing\nof these kptrs.\n\nTo simplify reasoning about when migrate_disable() is needed for the\nfreeing of these dynamically-allocated kptrs, let the caller to\nguarantee migration is disabled before invoking bpf_obj_free_fields().\nTherefore, the patch adds migrate_{disable|enable} pair in\nbpf_sock_storage_free(). The migrate_{disable|enable} pairs in the\nunderlying implementation of bpf_obj_free_fields() will be removed by\nThe following patch.\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-8-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "e319cdc8956645b6e29a3809924647953500b7e1",
      "tree": "9d10a940ef064a5e0707ac12073237df8d0b11cc",
      "parents": [
        "9e6c958b546692fcdd0da2c2c3b2ac1da6e0233f"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:18 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:36 2025 -0800"
      },
      "message": "bpf: Disable migration when destroying inode storage\n\nWhen destroying inode storage, it invokes bpf_local_storage_destroy() to\nremove all storage elements saved in the inode storage. The destroy\nprocedure will call bpf_selem_free() to free the element, and\nbpf_selem_free() calls bpf_obj_free_fields() to free the special fields\nin map value (e.g., kptr). Since kptrs may be allocated from bpf memory\nallocator, migrate_{disable|enable} pairs are necessary for the freeing\nof these kptrs.\n\nTo simplify reasoning about when migrate_disable() is needed for the\nfreeing of these dynamically-allocated kptrs, let the caller to\nguarantee migration is disabled before invoking bpf_obj_free_fields().\nTherefore, the patch adds migrate_{disable|enable} pair in\nbpf_inode_storage_free(). The migrate_{disable|enable} pairs in the\nunderlying implementation of bpf_obj_free_fields() will be removed by\nthe following patch.\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-7-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "9e6c958b546692fcdd0da2c2c3b2ac1da6e0233f",
      "tree": "9908aa51aa64a15b32c570057823084f2e57d74c",
      "parents": [
        "25dc65f75b08281a42823673d1751c82618ce7a3"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:17 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:36 2025 -0800"
      },
      "message": "bpf: Remove migrate_{disable|enable} from bpf_task_storage_lock helpers\n\nThree callers of bpf_task_storage_lock() are -\u003emap_lookup_elem,\n-\u003emap_update_elem, -\u003emap_delete_elem from bpf syscall. BPF syscall for\nthese three operations of task storage has already disabled migration.\nAnother two callers are bpf_task_storage_get() and\nbpf_task_storage_delete() helpers which will be used by BPF program.\n\nTwo callers of bpf_task_storage_trylock() are bpf_task_storage_get() and\nbpf_task_storage_delete() helpers. The running contexts of these helpers\nhave already disabled migration.\n\nTherefore, it is safe to remove migrate_{disable|enable} from task\nstorage lock helpers for these call sites. However,\nbpf_task_storage_free() also invokes bpf_task_storage_lock() and its\nrunning context doesn\u0027t disable migration, therefore, add the missed\nmigrate_{disable|enable} in bpf_task_storage_free().\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-6-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "25dc65f75b08281a42823673d1751c82618ce7a3",
      "tree": "fd597769329365f90106d706bf427ed922e71f90",
      "parents": [
        "53f2ba0b1cc087a597b43e63d35f355e9348bd61"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:16 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:36 2025 -0800"
      },
      "message": "bpf: Remove migrate_{disable|enable} from bpf_cgrp_storage_lock helpers\n\nThree callers of bpf_cgrp_storage_lock() are -\u003emap_lookup_elem,\n-\u003emap_update_elem, -\u003emap_delete_elem from bpf syscall. BPF syscall for\nthese three operations of cgrp storage has already disabled migration.\n\nTwo call sites of bpf_cgrp_storage_trylock() are bpf_cgrp_storage_get(),\nand bpf_cgrp_storage_delete() helpers. The running contexts of these\nhelpers have already disabled migration.\n\nTherefore, it is safe to remove migrate_disable() for these callers.\nHowever, bpf_cgrp_storage_free() also invokes bpf_cgrp_storage_lock()\nand its running context doesn\u0027t disable migration. Therefore, also add\nthe missed migrate_{disabled|enable} in bpf_cgrp_storage_free().\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-5-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "53f2ba0b1cc087a597b43e63d35f355e9348bd61",
      "tree": "433437f4dd8f201970d429b4c144f5607f5a3742",
      "parents": [
        "ea5b229630a631ee6a72e1f58bc40029efc1daf8"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:15 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:36 2025 -0800"
      },
      "message": "bpf: Remove migrate_{disable|enable} in htab_elem_free\n\nhtab_elem_free() has two call-sites: delete_all_elements() has already\ndisabled migration, free_htab_elem() is invoked by other 4 functions:\n__htab_map_lookup_and_delete_elem, __htab_map_lookup_and_delete_batch,\nhtab_map_update_elem and htab_map_delete_elem.\n\nBPF syscall has already disabled migration before invoking\n-\u003emap_update_elem, -\u003emap_delete_elem, and -\u003emap_lookup_and_delete_elem\ncallbacks for hash map. __htab_map_lookup_and_delete_batch() also\ndisables migration before invoking free_htab_elem(). -\u003emap_update_elem()\nand -\u003emap_delete_elem() of hash map may be invoked by BPF program and\nthe running context of BPF program has already disabled migration.\nTherefore, it is safe to remove the migration_{disable|enable} pair in\nhtab_elem_free()\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-4-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "ea5b229630a631ee6a72e1f58bc40029efc1daf8",
      "tree": "7f24c8d8efb01327833d955baed549e2d84fd2a7",
      "parents": [
        "1b1a01db17af7a44cae8d8d7d7a18dbb056be40f"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:14 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:35 2025 -0800"
      },
      "message": "bpf: Remove migrate_{disable|enable} in -\u003emap_for_each_callback\n\nBPF program may call bpf_for_each_map_elem(), and it will call\nthe -\u003emap_for_each_callback callback of related bpf map. Considering the\nrunning context of bpf program has already disabled migration, remove\nthe unnecessary migrate_{disable|enable} pair in the implementations of\n-\u003emap_for_each_callback. To ensure the guarantee will not be voilated\nlater, also add cant_migrate() check in the implementations.\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-3-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "1b1a01db17af7a44cae8d8d7d7a18dbb056be40f",
      "tree": "c416453cc2b7860b5245bdd156628788a5906630",
      "parents": [
        "bfaac2a0b9e59b595f08606e7762bee50f01a074"
      ],
      "author": {
        "name": "Hou Tao",
        "email": "houtao1@huawei.com",
        "time": "Wed Jan 08 09:07:13 2025 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 18:06:35 2025 -0800"
      },
      "message": "bpf: Remove migrate_{disable|enable} from LPM trie\n\nBoth bpf program and bpf syscall may invoke -\u003eupdate or -\u003edelete\noperation for LPM trie. For bpf program, its running context has already\ndisabled migration explicitly through (migrate_disable()) or implicitly\nthrough (preempt_disable() or disable irq). For bpf syscall, the\nmigration is disabled through the use of bpf_disable_instrumentation()\nbefore invoking the corresponding map operation callback.\n\nTherefore, it is safe to remove the migrate_{disable|enable){} pair from\nLPM trie.\n\nSigned-off-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250108010728.207536-2-houtao@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "bfaac2a0b9e59b595f08606e7762bee50f01a074",
      "tree": "bc29e143c35f7486df1347727c87e2b063dd2d9c",
      "parents": [
        "2ebadb60cb36f2ee74bf83930fc73a5ceeb935fc"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@kernel.org",
        "time": "Mon Jan 06 18:50:48 2025 +0100"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 09:39:58 2025 -0800"
      },
      "message": "selftests/bpf: Add kprobe session recursion check test\n\nAdding kprobe.session probe to bpf_kfunc_common_test that misses bpf\nprogram execution due to recursion check and making sure it increases\nthe program missed count properly.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@kernel.org\u003e\nLink: https://lore.kernel.org/r/20250106175048.1443905-2-jolsa@kernel.org\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "2ebadb60cb36f2ee74bf83930fc73a5ceeb935fc",
      "tree": "0ad805f193bc02f18f137576cfc405721d390b50",
      "parents": [
        "ca3c4f646a9fc7d23b30c70e6663eaa38ac746af"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@kernel.org",
        "time": "Mon Jan 06 18:50:47 2025 +0100"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 09:39:58 2025 -0800"
      },
      "message": "bpf: Return error for missed kprobe multi bpf program execution\n\nWhen kprobe multi bpf program can\u0027t be executed due to recursion check,\nwe currently return 0 (success) to fprobe layer where it\u0027s ignored for\nstandard kprobe multi probes.\n\nFor kprobe session the success return value will make fprobe layer to\ninstall return probe and try to execute it as well.\n\nBut the return session probe should not get executed, because the entry\npart did not run. FWIW the return probe bpf program most likely won\u0027t get\nexecuted, because its recursion check will likely fail as well, but we\ndon\u0027t need to run it in the first place.. also we can make this clear\nand obvious.\n\nIt also affects missed counts for kprobe session program execution, which\nare now doubled (extra count for not executed return probe).\n\nSigned-off-by: Jiri Olsa \u003cjolsa@kernel.org\u003e\nAcked-by: Masami Hiramatsu (Google) \u003cmhiramat@kernel.org\u003e\nLink: https://lore.kernel.org/r/20250106175048.1443905-1-jolsa@kernel.org\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "ca3c4f646a9fc7d23b30c70e6663eaa38ac746af",
      "tree": "b17d99a7aa753ecc31f50627e48dcfbc09206de4",
      "parents": [
        "b8b1e30016260aba338a65fdcc2bfd50933c6f0a"
      ],
      "author": {
        "name": "Pu Lehui",
        "email": "pulehui@huawei.com",
        "time": "Sat Jan 04 01:39:46 2025 +0000"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 09:38:41 2025 -0800"
      },
      "message": "bpf: Move out synchronize_rcu_tasks_trace from mutex CS\n\nCommit ef1b808e3b7c (\"bpf: Fix UAF via mismatching bpf_prog/attachment\nRCU flavors\") resolved a possible UAF issue in uprobes that attach\nnon-sleepable bpf prog by explicitly waiting for a tasks-trace-RCU grace\nperiod. But, in the current implementation, synchronize_rcu_tasks_trace\nis included within the mutex critical section, which increases the\nlength of the critical section and may affect performance. So let\u0027s move\nout synchronize_rcu_tasks_trace from mutex CS.\n\nSigned-off-by: Pu Lehui \u003cpulehui@huawei.com\u003e\nReviewed-by: Jiri Olsa \u003cjolsa@kernel.org\u003e\nLink: https://lore.kernel.org/r/20250104013946.1111785-1-pulehui@huaweicloud.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "b8b1e30016260aba338a65fdcc2bfd50933c6f0a",
      "tree": "34aedc98590328ee0eb9e9431addf4f4ce81888d",
      "parents": [
        "bab18c7db44d3aa6c84450095451580922359c7a"
      ],
      "author": {
        "name": "Soma Nakata",
        "email": "soma.nakata@somane.sakura.ne.jp",
        "time": "Tue Jan 07 08:15:35 2025 +0900"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 09:35:33 2025 -0800"
      },
      "message": "bpf: Fix range_tree_set() error handling\n\nrange_tree_set() might fail and return -ENOMEM,\ncausing subsequent `bpf_arena_alloc_pages` to fail.\nAdd the error handling.\n\nSigned-off-by: Soma Nakata \u003csoma.nakata@somane.sakura.ne.jp\u003e\nAcked-by: Hou Tao \u003choutao1@huawei.com\u003e\nLink: https://lore.kernel.org/r/20250106231536.52856-1-soma.nakata@somane.sakura.ne.jp\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "bab18c7db44d3aa6c84450095451580922359c7a",
      "tree": "b092463864844ee1c3df482ae625a8ddc40bb4c5",
      "parents": [
        "46c61cbeb82f8a4e6354a692d2be1a35cb0bde29"
      ],
      "author": {
        "name": "Ihor Solodrai",
        "email": "ihor.solodrai@pm.me",
        "time": "Tue Jan 07 23:58:18 2025 +0000"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Jan 08 09:33:09 2025 -0800"
      },
      "message": "selftests/bpf: add -std\u003dgnu11 to BPF_CFLAGS and CFLAGS\n\nLatest versions of GCC BPF use C23 standard by default. This causes\ncompilation errors in vmlinux.h due to bool types declarations.\n\nAdd -std\u003dgnu11 to BPF_CFLAGS and CFLAGS. This aligns with the version\nof the standard used when building the kernel currently [1].\n\nFor more details see the discussions at [2] and [3].\n\n[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Makefile#n465\n[2] https://lore.kernel.org/bpf/EYcXjcKDCJY7Yb0GGtAAb7nLKPEvrgWdvWpuNzXm2qi6rYMZDixKv5KwfVVMBq17V55xyC-A1wIjrqG3aw-Imqudo9q9X7D7nLU2gWgbN0w\u003d@pm.me/\n[3] https://lore.kernel.org/bpf/20250106202715.1232864-1-ihor.solodrai@pm.me/\n\nCC: Jose E. Marchesi \u003cjose.marchesi@oracle.com\u003e\nSigned-off-by: Ihor Solodrai \u003cihor.solodrai@pm.me\u003e\nLink: https://lore.kernel.org/r/20250107235813.2964472-1-ihor.solodrai@pm.me\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "46c61cbeb82f8a4e6354a692d2be1a35cb0bde29",
      "tree": "626a76aaa662b001294442fec68bb08649595798",
      "parents": [
        "f44275e7155dc310d36516fc25be503da099781c"
      ],
      "author": {
        "name": "Mykyta Yatsenko",
        "email": "yatsenko@meta.com",
        "time": "Mon Jan 06 14:43:21 2025 +0000"
      },
      "committer": {
        "name": "Andrii Nakryiko",
        "email": "andrii@kernel.org",
        "time": "Mon Jan 06 17:07:49 2025 -0800"
      },
      "message": "selftests/bpf: Handle prog/attach type comparison in veristat\n\nImplemented handling of prog type and attach type stats comparison in\nveristat.\nTo test this change:\n```\n./veristat pyperf600.bpf.o -o csv \u003e base1.csv\n./veristat pyperf600.bpf.o -o csv \u003e base2.csv\n./veristat -C base2.csv base1.csv -o csv\n...,raw_tracepoint,raw_tracepoint,MATCH,\n...,cgroup_inet_ingress,cgroup_inet_ingress,MATCH\n```\n\nSigned-off-by: Mykyta Yatsenko \u003cyatsenko@meta.com\u003e\nSigned-off-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nTested-by: Eduard Zingerman \u003ceddyz87@gmail.com\u003e\nLink: https://lore.kernel.org/bpf/20250106144321.32337-1-mykyta.yatsenko5@gmail.com\n"
    },
    {
      "commit": "f44275e7155dc310d36516fc25be503da099781c",
      "tree": "334f71a654100784daf2fd88bc97f60bdcca245d",
      "parents": [
        "859a7db4c7db84b06ca7fc9c60eb45a130c8fbec"
      ],
      "author": {
        "name": "Ihor Solodrai",
        "email": "ihor.solodrai@pm.me",
        "time": "Mon Jan 06 20:17:31 2025 +0000"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Jan 06 13:37:35 2025 -0800"
      },
      "message": "selftests/bpf: add -fno-strict-aliasing to BPF_CFLAGS\n\nFollowing the discussion at [1], set -fno-strict-aliasing flag for all\nBPF object build rules. Remove now unnecessary \u003ctest\u003e-CFLAGS variables.\n\n[1] https://lore.kernel.org/bpf/20250106185447.951609-1-ihor.solodrai@pm.me/\n\nCC: Jose E. Marchesi \u003cjose.marchesi@oracle.com\u003e\nSigned-off-by: Ihor Solodrai \u003cihor.solodrai@pm.me\u003e\nAcked-by: Eduard Zingerman \u003ceddyz87@gmail.com\u003e\nLink: https://lore.kernel.org/r/20250106201728.1219791-1-ihor.solodrai@pm.me\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "859a7db4c7db84b06ca7fc9c60eb45a130c8fbec",
      "tree": "ed16b336308fe7e06470331a87eb492bfd7c9de0",
      "parents": [
        "2532608530eab68207e384053fae7db7f35256ee",
        "87091dd986db51406e64dd5e8c9d22617c66c6af"
      ],
      "author": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Jan 06 10:59:50 2025 -0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Jan 06 10:59:56 2025 -0800"
      },
      "message": "Merge branch \u0027bpf-allow-bpf_for-bpf_repeat-while-holding-spin\u0027\n\nEmil Tsalapatis says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nIn BPF programs, kfunc calls while holding a lock are not allowed\nbecause kfuncs may sleep by default. The exception to this rule are the\nfunctions in special_kfunc_list, which are guaranteed to not sleep. The\nbpf_iter_num_* functions used by the bpf_for and bpf_repeat macros make\nno function calls themselves, and as such are guaranteed to not sleep.\nAdd them to special_kfunc_list to allow them within BPF spinlock\ncritical sections.\n\nSigned-off-by: Emil Tsalapatis (Meta) \u003cemil@etsalapatis.com\u003e\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20250104202528.882482-1-emil@etsalapatis.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "87091dd986db51406e64dd5e8c9d22617c66c6af",
      "tree": "ed16b336308fe7e06470331a87eb492bfd7c9de0",
      "parents": [
        "512816403ece6cbb67de3af359643384111a9647"
      ],
      "author": {
        "name": "Emil Tsalapatis",
        "email": "emil@etsalapatis.com",
        "time": "Sat Jan 04 15:25:28 2025 -0500"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Jan 06 10:59:49 2025 -0800"
      },
      "message": "selftests/bpf: test bpf_for within spin lock section\n\nAdd a selftest to ensure BPF for loops within critical sections are\naccepted by the verifier.\n\nSigned-off-by: Emil Tsalapatis (Meta) \u003cemil@etsalapatis.com\u003e\nAcked-by: Eduard Zingerman \u003ceddyz87@gmail.com\u003e\nLink: https://lore.kernel.org/r/20250104202528.882482-3-emil@etsalapatis.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "512816403ece6cbb67de3af359643384111a9647",
      "tree": "dfa79743b38112ebd8ed921fc0bf863a03fe8c52",
      "parents": [
        "2532608530eab68207e384053fae7db7f35256ee"
      ],
      "author": {
        "name": "Emil Tsalapatis",
        "email": "emil@etsalapatis.com",
        "time": "Sat Jan 04 15:25:27 2025 -0500"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Jan 06 10:59:49 2025 -0800"
      },
      "message": "bpf: Allow bpf_for/bpf_repeat calls while holding a spinlock\n\nAdd the bpf_iter_num_* kfuncs called by bpf_for in special_kfunc_list,\n and allow the calls even while holding a spin lock.\n\nSigned-off-by: Emil Tsalapatis (Meta) \u003cemil@etsalapatis.com\u003e\nReviewed-by: Eduard Zingerman \u003ceddyz87@gmail.com\u003e\nLink: https://lore.kernel.org/r/20250104202528.882482-2-emil@etsalapatis.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "2532608530eab68207e384053fae7db7f35256ee",
      "tree": "613dc53a7f67164c9cee6cd6f76d0d43bc2e96f3",
      "parents": [
        "8c21f88407d230543435445903cfbb4d05b7b339"
      ],
      "author": {
        "name": "Christophe Leroy",
        "email": "christophe.leroy@csgroup.eu",
        "time": "Mon Jan 06 10:15:31 2025 +0100"
      },
      "committer": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Mon Jan 06 16:10:19 2025 +0100"
      },
      "message": "bpf/tests: Add 32 bits only long conditional jump tests\n\nCommit f1517eb790f9 (\"bpf/tests: Expand branch conversion JIT test\")\nintroduced \"Long conditional jump tests\" but due to those tests making\nuse of 64 bits DIV and MOD, they don\u0027t get jited on powerpc/32,\nleading to the long conditional jump test being skiped for unrelated\nreason.\n\nAdd 4 new tests that are restricted to 32 bits ALU so that the jump\ntests can also be performed on platforms that do no support 64 bits\noperations.\n\nSigned-off-by: Christophe Leroy \u003cchristophe.leroy@csgroup.eu\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nLink: https://lore.kernel.org/bpf/609f87a2d84e032c8d9ccb9ba7aebef893698f1e.1736154762.git.christophe.leroy@csgroup.eu\n"
    },
    {
      "commit": "8c21f88407d230543435445903cfbb4d05b7b339",
      "tree": "eb6375949e7373db55087a5681686635aeaec573",
      "parents": [
        "66bb58ac06c229f213ff974aebc453f1ac6dde09"
      ],
      "author": {
        "name": "Peilin Ye",
        "email": "yepeilin@google.com",
        "time": "Fri Jan 03 02:04:18 2025 +0000"
      },
      "committer": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Mon Jan 06 15:07:41 2025 +0100"
      },
      "message": "bpf, arm64: Emit A64_{ADD,SUB}_I when possible in emit_{lse,ll_sc}_atomic()\n\nCurrently in emit_{lse,ll_sc}_atomic(), if there is an offset, we add it\nto the base address by doing e.g.:\n\n  if (off) {\n          emit_a64_mov_i(1, tmp, off, ctx);\n          emit(A64_ADD(1, tmp, tmp, dst), ctx);\n  [...]\n\nAs pointed out by Xu, we can use emit_a64_add_i() (added in the previous\npatch) instead, which tries to combine the above into a single A64_ADD_I\nor A64_SUB_I when possible.\n\nSuggested-by: Xu Kuohai \u003cxukuohai@huaweicloud.com\u003e\nSigned-off-by: Peilin Ye \u003cyepeilin@google.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Xu Kuohai \u003cxukuohai@huawei.com\u003e\nLink: https://lore.kernel.org/bpf/9ad3034a62361d91a99af24efa03f48c4c9e13ea.1735868489.git.yepeilin@google.com\n"
    },
    {
      "commit": "66bb58ac06c229f213ff974aebc453f1ac6dde09",
      "tree": "27c22e41045312adcaa115c5124d228199b1be62",
      "parents": [
        "0a5807219a862ea1e250c665325b9bffb5940de0"
      ],
      "author": {
        "name": "Peilin Ye",
        "email": "yepeilin@google.com",
        "time": "Fri Jan 03 02:03:42 2025 +0000"
      },
      "committer": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Mon Jan 06 15:07:26 2025 +0100"
      },
      "message": "bpf, arm64: Factor out emit_a64_add_i()\n\nAs suggested by Xu, factor out emit_a64_add_i() for later use. No\nfunctional change.\n\nSuggested-by: Xu Kuohai \u003cxukuohai@huaweicloud.com\u003e\nSigned-off-by: Peilin Ye \u003cyepeilin@google.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Xu Kuohai \u003cxukuohai@huawei.com\u003e\nLink: https://lore.kernel.org/bpf/fedbaca80e6d8bd5bcba1ac5320dfbbdab14472e.1735868489.git.yepeilin@google.com\n"
    },
    {
      "commit": "0a5807219a862ea1e250c665325b9bffb5940de0",
      "tree": "9590483004496b92bffee0f03c3f86fa1761698d",
      "parents": [
        "73b9075f334f5debf28646884a320b796b27768d"
      ],
      "author": {
        "name": "Peilin Ye",
        "email": "yepeilin@google.com",
        "time": "Fri Jan 03 02:02:53 2025 +0000"
      },
      "committer": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Mon Jan 06 15:07:20 2025 +0100"
      },
      "message": "bpf, arm64: Simplify if logic in emit_lse_atomic()\n\nDelete that unnecessary outer if clause. No functional change.\n\nSigned-off-by: Peilin Ye \u003cyepeilin@google.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Xu Kuohai \u003cxukuohai@huawei.com\u003e\nLink: https://lore.kernel.org/bpf/e8520e5503a489e2dea8526077976ae5a0ab1849.1735868489.git.yepeilin@google.com\n"
    },
    {
      "commit": "73b9075f334f5debf28646884a320b796b27768d",
      "tree": "b6f238b91ab6aacdbca765dee7e8ee17f5c16907",
      "parents": [
        "96ea081ed52bf077cad6d00153b6fba68e510767"
      ],
      "author": {
        "name": "Jiayuan Chen",
        "email": "mrpre@163.com",
        "time": "Tue Dec 24 15:59:57 2024 +0800"
      },
      "committer": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Mon Jan 06 15:02:03 2025 +0100"
      },
      "message": "selftests/bpf: Avoid generating untracked files when running bpf selftests\n\nCurrently, when we run the BPF selftests with the following command:\n\n  make -C tools/testing/selftests TARGETS\u003dbpf SKIP_TARGETS\u003d\"\"\n\nThe command generates untracked files and directories with make version\nless than 4.4:\n\n\u0027\u0027\u0027\nUntracked files:\n  (use \"git add \u003cfile\u003e...\" to include in what will be committed)\n\ttools/testing/selftests/bpfFEATURE-DUMP.selftests\n\ttools/testing/selftests/bpffeature/\n\u0027\u0027\u0027\n\nWe lost slash after word \"bpf\". The reason is slash appending code is as\nfollow:\n\n\u0027\u0027\u0027\nOUTPUT :\u003d $(OUTPUT)/\n$(eval include ../../../build/Makefile.feature)\nOUTPUT :\u003d $(patsubst %/,%,$(OUTPUT))\n\u0027\u0027\u0027\n\nThis way of assigning values to OUTPUT will never be effective for the\nvariable OUTPUT provided via the command argument [1] and BPF makefile\nis called from parent Makfile(tools/testing/selftests/Makefile) like:\n\n\u0027\u0027\u0027\nall:\n  ...\n\t$(MAKE) OUTPUT\u003d$$BUILD_TARGET -C $$TARGET\n\u0027\u0027\u0027\n\nAccording to GNU make, we can use override Directive to fix this issue [2].\n\n  [1] https://www.gnu.org/software/make/manual/make.html#Overriding\n  [2] https://www.gnu.org/software/make/manual/make.html#Override-Directive\n\nFixes: dc3a8804d790 (\"selftests/bpf: Adapt OUTPUT appending logic to lower versions of Make\")\nSigned-off-by: Jiayuan Chen \u003cmrpre@163.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Jiri Olsa \u003cjolsa@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/20241224075957.288018-1-mrpre@163.com\n"
    },
    {
      "commit": "96ea081ed52bf077cad6d00153b6fba68e510767",
      "tree": "d9a598807f6b9ffbe6a76bd1bb6566f79e07eb68",
      "parents": [
        "dfa94ce54f4139c893b9c4ec17df6f7c6a7515d3"
      ],
      "author": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Fri Dec 20 12:18:18 2024 -0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Fri Jan 03 10:16:46 2025 -0800"
      },
      "message": "bpf: Reject struct_ops registration that uses module ptr and the module btf_id is missing\n\nThere is a UAF report in the bpf_struct_ops when CONFIG_MODULES\u003dn.\nIn particular, the report is on tcp_congestion_ops that has\na \"struct module *owner\" member.\n\nFor struct_ops that has a \"struct module *owner\" member,\nit can be extended either by the regular kernel module or\nby the bpf_struct_ops. bpf_try_module_get() will be used\nto do the refcounting and different refcount is done\nbased on the owner pointer. When CONFIG_MODULES\u003dn,\nthe btf_id of the \"struct module\" is missing:\n\nWARN: resolve_btfids: unresolved symbol module\n\nThus, the bpf_try_module_get() cannot do the correct refcounting.\n\nNot all subsystem\u0027s struct_ops requires the \"struct module *owner\" member.\ne.g. the recent sched_ext_ops.\n\nThis patch is to disable bpf_struct_ops registration if\nthe struct_ops has the \"struct module *\" member and the\n\"struct module\" btf_id is missing. The btf_type_is_fwd() helper\nis moved to the btf.h header file for this test.\n\nThis has happened since the beginning of bpf_struct_ops which has gone\nthrough many changes. The Fixes tag is set to a recent commit that this\npatch can apply cleanly. Considering CONFIG_MODULES\u003dn is not\ncommon and the age of the issue, targeting for bpf-next also.\n\nFixes: 1611603537a4 (\"bpf: Create argument information for nullable arguments.\")\nReported-by: Robert Morris \u003crtm@csail.mit.edu\u003e\nCloses: https://lore.kernel.org/bpf/74665.1733669976@localhost/\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\nTested-by: Eduard Zingerman \u003ceddyz87@gmail.com\u003e\nAcked-by: Eduard Zingerman \u003ceddyz87@gmail.com\u003e\nLink: https://lore.kernel.org/r/20241220201818.127152-1-martin.lau@linux.dev\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "dfa94ce54f4139c893b9c4ec17df6f7c6a7515d3",
      "tree": "3fb221e3bfd77169e5af86a4af19775ad2c4deaa",
      "parents": [
        "654a3381e3b4df5ab1b87e21b5d9ffd979362cd1"
      ],
      "author": {
        "name": "Pei Xiao",
        "email": "xiaopei01@kylinos.cn",
        "time": "Mon Dec 30 15:16:55 2024 +0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Dec 30 20:12:21 2024 -0800"
      },
      "message": "bpf: Use refcount_t instead of atomic_t for mmap_count\n\nUse an API that resembles more the actual use of mmap_count.\n\nFound by cocci:\nkernel/bpf/arena.c:245:6-25: WARNING: atomic_dec_and_test variation before object free at line 249.\n\nFixes: b90d77e5fd78 (\"bpf: Fix remap of arena.\")\nReported-by: kernel test robot \u003clkp@intel.com\u003e\nCloses: https://lore.kernel.org/oe-kbuild-all/202412292037.LXlYSHKl-lkp@intel.com/\nSigned-off-by: Pei Xiao \u003cxiaopei01@kylinos.cn\u003e\nLink: https://lore.kernel.org/r/6ecce439a6bc81adb85d5080908ea8959b792a50.1735542814.git.xiaopei01@kylinos.cn\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "654a3381e3b4df5ab1b87e21b5d9ffd979362cd1",
      "tree": "11ade26ac682bf5bccc1b199d5ba94609349ae8b",
      "parents": [
        "9468f39ba478d001f2603ce5bf0e1ab4b97452b8"
      ],
      "author": {
        "name": "Lorenzo Pieralisi",
        "email": "lpieralisi@kernel.org",
        "time": "Mon Dec 23 12:59:01 2024 +0100"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Dec 30 15:18:13 2024 -0800"
      },
      "message": "bpf: Remove unused MT_ENTRY define\n\nThe range tree introduction removed the need for maple tree usage\nbut missed removing the MT_ENTRY defined value that was used to\nmark maple tree allocated entries.\nRemove the MT_ENTRY define.\n\nSigned-off-by: Lorenzo Pieralisi \u003clpieralisi@kernel.org\u003e\nLink: https://lore.kernel.org/r/20241223115901.14207-1-lpieralisi@kernel.org\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "9468f39ba478d001f2603ce5bf0e1ab4b97452b8",
      "tree": "4c8d3f2970a12b86aefaed2e9d8c14bf0a3e2dad",
      "parents": [
        "4a24035964b706f5937d3128dcd9677b170b766f"
      ],
      "author": {
        "name": "Mahe Tardy",
        "email": "mahe.tardy@gmail.com",
        "time": "Fri Dec 20 15:22:18 2024 +0000"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Dec 30 14:54:20 2024 -0800"
      },
      "message": "selftests/bpf: fix veristat comp mode with new stats\n\nCommit 82c1f13de315 (\"selftests/bpf: Add more stats into veristat\")\nintroduced new stats, added by default in the CSV output, that were not\nadded to parse_stat_value, used in parse_stats_csv which is used in\ncomparison mode. Thus it broke comparison mode altogether making it fail\nwith \"Unrecognized stat #7\" and EINVAL.\n\nOne quirk is that PROG_TYPE and ATTACH_TYPE have been transformed to\nstrings using libbpf_bpf_prog_type_str and libbpf_bpf_attach_type_str\nrespectively. Since we might not want to compare those string values, we\njust skip the parsing in this patch. We might want to translate it back\nto the enum value or compare the string value directly.\n\nFixes: 82c1f13de315 (\"selftests/bpf: Add more stats into veristat\")\nSigned-off-by: Mahe Tardy \u003cmahe.tardy@gmail.com\u003e\nTested-by: Mykyta Yatsenko\u003cyatsenko@meta.com\u003e\nLink: https://lore.kernel.org/r/20241220152218.28405-1-mahe.tardy@gmail.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "4a24035964b706f5937d3128dcd9677b170b766f",
      "tree": "662f416232b217f292b67b0d9e3f09c533df87c2",
      "parents": [
        "34ea973dd4577bbf480e5cbaa8dd2668182a389c"
      ],
      "author": {
        "name": "Thomas Weißschuh",
        "email": "linux@weissschuh.net",
        "time": "Thu Dec 19 22:41:41 2024 +0100"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Dec 30 14:52:08 2024 -0800"
      },
      "message": "bpf: Fix holes in special_kfunc_list if !CONFIG_NET\n\nIf the function is not available its entry has to be replaced with\nBTF_ID_UNUSED instead of skipped.\nOtherwise the list doesn\u0027t work correctly.\n\nReported-by: Alexei Starovoitov \u003calexei.starovoitov@gmail.com\u003e\nCloses: https://lore.kernel.org/lkml/CAADnVQJQpVziHzrPCCpGE5\u003d8uzw2OkxP8gqe1FkJ6_XVVyVbNw@mail.gmail.com/\nFixes: 00a5acdbf398 (\"bpf: Fix configuration-dependent BTF function references\")\nSigned-off-by: Thomas Weißschuh \u003clinux@weissschuh.net\u003e\nAcked-by: Jiri Olsa \u003cjolsa@kernel.org\u003e\nLink: https://lore.kernel.org/r/20241219-bpf-fix-special_kfunc_list-v1-1-d9d50dd61505@weissschuh.net\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "34ea973dd4577bbf480e5cbaa8dd2668182a389c",
      "tree": "8f98547a18329a867594ac0654dd03cfe5bdb59e",
      "parents": [
        "1846dd8e3a3e28f58e72cadbf4d81f374e63a085",
        "75137d9ebe9e75358e859fda37fa1ca9f05c1a59"
      ],
      "author": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Dec 30 14:49:42 2024 -0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Dec 30 14:49:54 2024 -0800"
      },
      "message": "Merge branch \u0027bpf-verifier-improve-precision-of-bpf_mul\u0027\n\nMatan Shachnai says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nThis patch-set aims to improve precision of BPF_MUL and add testcases\nto illustrate precision gains using signed and unsigned bounds.\n\nChanges from v1:\n - Fixed typo made in patch.\n\nChanges from v2:\n - Added signed multiplication to BPF_MUL.\n - Added test cases to exercise BPF_MUL.\n - Reordered patches in the series.\n\nChanges from v3:\n - Coding style fixes.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20241218032337.12214-1-m.shachnai@gmail.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "75137d9ebe9e75358e859fda37fa1ca9f05c1a59",
      "tree": "8f98547a18329a867594ac0654dd03cfe5bdb59e",
      "parents": [
        "9aa0ebde0014f01a8ca82adcbf43b92345da0d50"
      ],
      "author": {
        "name": "Matan Shachnai",
        "email": "m.shachnai@gmail.com",
        "time": "Tue Dec 17 22:23:35 2024 -0500"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Dec 30 14:49:42 2024 -0800"
      },
      "message": "selftests/bpf: Add testcases for BPF_MUL\n\nThe previous commit improves precision of BPF_MUL.\nAdd tests to exercise updated BPF_MUL.\n\nSigned-off-by: Matan Shachnai \u003cm.shachnai@gmail.com\u003e\nLink: https://lore.kernel.org/r/20241218032337.12214-3-m.shachnai@gmail.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "9aa0ebde0014f01a8ca82adcbf43b92345da0d50",
      "tree": "fe3f83f89b37d934e2280b69e4dd890d5131e873",
      "parents": [
        "1846dd8e3a3e28f58e72cadbf4d81f374e63a085"
      ],
      "author": {
        "name": "Matan Shachnai",
        "email": "m.shachnai@gmail.com",
        "time": "Tue Dec 17 22:23:34 2024 -0500"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Dec 30 14:49:42 2024 -0800"
      },
      "message": "bpf, verifier: Improve precision of BPF_MUL\n\nThis patch improves (or maintains) the precision of register value tracking\nin BPF_MUL across all possible inputs. It also simplifies\nscalar32_min_max_mul() and scalar_min_max_mul().\n\nAs it stands, BPF_MUL is composed of three functions:\n\ncase BPF_MUL:\n  tnum_mul();\n  scalar32_min_max_mul();\n  scalar_min_max_mul();\n\nThe current implementation of scalar_min_max_mul() restricts the u64 input\nranges of dst_reg and src_reg to be within [0, U32_MAX]:\n\n    /* Both values are positive, so we can work with unsigned and\n     * copy the result to signed (unless it exceeds S64_MAX).\n     */\n    if (umax_val \u003e U32_MAX || dst_reg-\u003eumax_value \u003e U32_MAX) {\n        /* Potential overflow, we know nothing */\n        __mark_reg64_unbounded(dst_reg);\n        return;\n    }\n\nThis restriction is done to avoid unsigned overflow, which could otherwise\nwrap the result around 0, and leave an unsound output where umin \u003e umax. We\nalso observe that limiting these u64 input ranges to [0, U32_MAX] leads to\na loss of precision. Consider the case where the u64 bounds of dst_reg are\n[0, 2^34] and the u64 bounds of src_reg are [0, 2^2]. While the\nmultiplication of these two bounds doesn\u0027t overflow and is sound [0, 2^36],\nthe current scalar_min_max_mul() would set the entire register state to\nunbounded.\n\nImportantly, we update BPF_MUL to allow signed bound multiplication\n(i.e. multiplying negative bounds) as well as allow u64 inputs to take on\nvalues from [0, U64_MAX]. We perform signed multiplication on two bounds\n[a,b] and [c,d] by multiplying every combination of the bounds\n(i.e. a*c, a*d, b*c, and b*d) and checking for overflow of each product. If\nthere is an overflow, we mark the signed bounds unbounded [S64_MIN, S64_MAX].\nIn the case of no overflow, we take the minimum of these products to\nbe the resulting smin, and the maximum to be the resulting smax.\n\nThe key idea here is that if there’s no possibility of overflow, either\nwhen multiplying signed bounds or unsigned bounds, we can safely multiply the\nrespective bounds; otherwise, we set the bounds that exhibit overflow\n(during multiplication) to unbounded.\n\nif (check_mul_overflow(*dst_umax, src_reg-\u003eumax_value, dst_umax) ||\n       (check_mul_overflow(*dst_umin, src_reg-\u003eumin_value, dst_umin))) {\n        /* Overflow possible, we know nothing */\n        *dst_umin \u003d 0;\n        *dst_umax \u003d U64_MAX;\n    }\n  ...\n\nBelow, we provide an example BPF program (below) that exhibits the\nimprecision in the current BPF_MUL, where the outputs are all unbounded. In\ncontrast, the updated BPF_MUL produces a bounded register state:\n\nBPF_LD_IMM64(BPF_REG_1, 11),\nBPF_LD_IMM64(BPF_REG_2, 4503599627370624),\nBPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),\nBPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),\nBPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),\nBPF_LD_IMM64(BPF_REG_3, 809591906117232263),\nBPF_ALU64_REG(BPF_MUL, BPF_REG_3, BPF_REG_1),\nBPF_MOV64_IMM(BPF_REG_0, 1),\nBPF_EXIT_INSN(),\n\nVerifier log using the old BPF_MUL:\n\nfunc#0 @0\n0: R1\u003dctx() R10\u003dfp0\n0: (18) r1 \u003d 0xb                      ; R1_w\u003d11\n2: (18) r2 \u003d 0x10000000000080         ; R2_w\u003d0x10000000000080\n4: (87) r2 \u003d -r2                      ; R2_w\u003dscalar()\n5: (87) r2 \u003d -r2                      ; R2_w\u003dscalar()\n6: (5f) r1 \u0026\u003d r2                      ; R1_w\u003dscalar(smin\u003dsmin32\u003d0,smax\u003dumax\u003dsmax32\u003dumax32\u003d11,var_off\u003d(0x0; 0xb)) R2_w\u003dscalar()\n7: (18) r3 \u003d 0xb3c3f8c99262687        ; R3_w\u003d0xb3c3f8c99262687\n9: (2f) r3 *\u003d r1                      ; R1_w\u003dscalar(smin\u003dsmin32\u003d0,smax\u003dumax\u003dsmax32\u003dumax32\u003d11,var_off\u003d(0x0; 0xb)) R3_w\u003dscalar()\n...\n\nVerifier using the new updated BPF_MUL (more precise bounds at label 9)\n\nfunc#0 @0\n0: R1\u003dctx() R10\u003dfp0\n0: (18) r1 \u003d 0xb                      ; R1_w\u003d11\n2: (18) r2 \u003d 0x10000000000080         ; R2_w\u003d0x10000000000080\n4: (87) r2 \u003d -r2                      ; R2_w\u003dscalar()\n5: (87) r2 \u003d -r2                      ; R2_w\u003dscalar()\n6: (5f) r1 \u0026\u003d r2                      ; R1_w\u003dscalar(smin\u003dsmin32\u003d0,smax\u003dumax\u003dsmax32\u003dumax32\u003d11,var_off\u003d(0x0; 0xb)) R2_w\u003dscalar()\n7: (18) r3 \u003d 0xb3c3f8c99262687        ; R3_w\u003d0xb3c3f8c99262687\n9: (2f) r3 *\u003d r1                      ; R1_w\u003dscalar(smin\u003dsmin32\u003d0,smax\u003dumax\u003dsmax32\u003dumax32\u003d11,var_off\u003d(0x0; 0xb)) R3_w\u003dscalar(smin\u003d0,smax\u003dumax\u003d0x7b96bb0a94a3a7cd,var_off\u003d(0x0; 0x7fffffffffffffff))\n...\n\nFinally, we proved the soundness of the new scalar_min_max_mul() and\nscalar32_min_max_mul() functions. Typically, multiplication operations are\nexpensive to check with bitvector-based solvers. We were able to prove the\nsoundness of these functions using Non-Linear Integer Arithmetic (NIA)\ntheory. Additionally, using Agni [2,3], we obtained the encodings for\nscalar32_min_max_mul() and scalar_min_max_mul() in bitvector theory, and\nwere able to prove their soundness using 8-bit bitvectors (instead of\n64-bit bitvectors that the functions actually use).\n\nIn conclusion, with this patch,\n\n1. We were able to show that we can improve the overall precision of\n   BPF_MUL. We proved (using an SMT solver) that this new version of\n   BPF_MUL is at least as precise as the current version for all inputs\n   and more precise for some inputs.\n\n2. We are able to prove the soundness of the new scalar_min_max_mul() and\n   scalar32_min_max_mul(). By leveraging the existing proof of tnum_mul\n   [1], we can say that the composition of these three functions within\n   BPF_MUL is sound.\n\n[1] https://ieeexplore.ieee.org/abstract/document/9741267\n[2] https://link.springer.com/chapter/10.1007/978-3-031-37709-9_12\n[3] https://people.cs.rutgers.edu/~sn349/papers/sas24-preprint.pdf\n\nCo-developed-by: Harishankar Vishwanathan \u003charishankar.vishwanathan@gmail.com\u003e\nSigned-off-by: Harishankar Vishwanathan \u003charishankar.vishwanathan@gmail.com\u003e\nCo-developed-by: Srinivas Narayana \u003csrinivas.narayana@rutgers.edu\u003e\nSigned-off-by: Srinivas Narayana \u003csrinivas.narayana@rutgers.edu\u003e\nCo-developed-by: Santosh Nagarakatte \u003csantosh.nagarakatte@rutgers.edu\u003e\nSigned-off-by: Santosh Nagarakatte \u003csantosh.nagarakatte@rutgers.edu\u003e\nSigned-off-by: Matan Shachnai \u003cm.shachnai@gmail.com\u003e\nLink: https://lore.kernel.org/r/20241218032337.12214-2-m.shachnai@gmail.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "1846dd8e3a3e28f58e72cadbf4d81f374e63a085",
      "tree": "90e443c891db2101e6923d458a24f6d72f08295b",
      "parents": [
        "c5d2bac978c513e1f22273cba9c55db3778032e5"
      ],
      "author": {
        "name": "Daniel Xu",
        "email": "dxu@dxuuu.xyz",
        "time": "Mon Dec 30 14:31:22 2024 -0700"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Dec 30 14:48:15 2024 -0800"
      },
      "message": "libbpf: Set MFD_NOEXEC_SEAL when creating memfd\n\nStarting from 105ff5339f49 (\"mm/memfd: add MFD_NOEXEC_SEAL and\nMFD_EXEC\") and until 1717449b4417 (\"memfd: drop warning for missing\nexec-related flags\"), the kernel would print a warning if neither\nMFD_NOEXEC_SEAL nor MFD_EXEC is set in memfd_create().\n\nIf libbpf runs on on a kernel between these two commits (eg. on an\nimproperly backported system), it\u0027ll trigger this warning.\n\nTo avoid this warning (and also be more secure), explicitly set\nMFD_NOEXEC_SEAL. But since libbpf can be run on potentially very old\nkernels, leave a fallback for kernels without MFD_NOEXEC_SEAL support.\n\nSigned-off-by: Daniel Xu \u003cdxu@dxuuu.xyz\u003e\nLink: https://lore.kernel.org/r/6e62c2421ad7eb1da49cbf16da95aaaa7f94d394.1735594195.git.dxu@dxuuu.xyz\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "c5d2bac978c513e1f22273cba9c55db3778032e5",
      "tree": "01eff7dcbe4ad5615db6c8fd4e4921a6bbbdc0d2",
      "parents": [
        "8eef6ac4d70eb1f0099fff93321d90ce8fa49ee1"
      ],
      "author": {
        "name": "Ariel Otilibili",
        "email": "ariel.otilibili-anieli@eurecom.fr",
        "time": "Wed Dec 11 22:57:29 2024 +0100"
      },
      "committer": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Fri Dec 20 17:55:30 2024 +0100"
      },
      "message": "selftests/bpf: Clear out Python syntax warnings\n\nInvalid escape sequences are used, and produced syntax warnings:\n\n  $ test_bpftool_synctypes.py\n  test_bpftool_synctypes.py:69: SyntaxWarning: invalid escape sequence \u0027\\[\u0027\n    self.start_marker \u003d re.compile(f\u0027(static )?const bool {self.array_name}\\[.*\\] \u003d {{\\n\u0027)\n  test_bpftool_synctypes.py:83: SyntaxWarning: invalid escape sequence \u0027\\[\u0027\n    pattern \u003d re.compile(\u0027\\[(BPF_\\w*)\\]\\s*\u003d (true|false),?$\u0027)\n  test_bpftool_synctypes.py:181: SyntaxWarning: invalid escape sequence \u0027\\s\u0027\n    pattern \u003d re.compile(\u0027^\\s*(BPF_\\w+),?(\\s+/\\*.*\\*/)?$\u0027)\n  test_bpftool_synctypes.py:229: SyntaxWarning: invalid escape sequence \u0027\\*\u0027\n    start_marker \u003d re.compile(f\u0027\\*{block_name}\\* :\u003d {{\u0027)\n  test_bpftool_synctypes.py:229: SyntaxWarning: invalid escape sequence \u0027\\*\u0027\n    start_marker \u003d re.compile(f\u0027\\*{block_name}\\* :\u003d {{\u0027)\n  test_bpftool_synctypes.py:230: SyntaxWarning: invalid escape sequence \u0027\\*\u0027\n    pattern \u003d re.compile(\u0027\\*\\*([\\w/-]+)\\*\\*\u0027)\n  test_bpftool_synctypes.py:248: SyntaxWarning: invalid escape sequence \u0027\\s\u0027\n    start_marker \u003d re.compile(f\u0027\"\\s*{block_name} :\u003d {{\u0027)\n  test_bpftool_synctypes.py:249: SyntaxWarning: invalid escape sequence \u0027\\w\u0027\n    pattern \u003d re.compile(\u0027([\\w/]+) [|}]\u0027)\n  test_bpftool_synctypes.py:267: SyntaxWarning: invalid escape sequence \u0027\\s\u0027\n    start_marker \u003d re.compile(f\u0027\"\\s*{macro}\\s*\" [|}}]\u0027)\n  test_bpftool_synctypes.py:267: SyntaxWarning: invalid escape sequence \u0027\\s\u0027\n    start_marker \u003d re.compile(f\u0027\"\\s*{macro}\\s*\" [|}}]\u0027)\n  test_bpftool_synctypes.py:268: SyntaxWarning: invalid escape sequence \u0027\\w\u0027\n    pattern \u003d re.compile(\u0027([\\w-]+) ?(?:\\||}[ }\\]])\u0027)\n  test_bpftool_synctypes.py:287: SyntaxWarning: invalid escape sequence \u0027\\w\u0027\n    pattern \u003d re.compile(\u0027(?:.*\u003d\\\u0027)?([\\w/]+)\u0027)\n  test_bpftool_synctypes.py:319: SyntaxWarning: invalid escape sequence \u0027\\w\u0027\n    pattern \u003d re.compile(\u0027([\\w-]+) ?(?:\\||}[ }\\]\"])\u0027)\n  test_bpftool_synctypes.py:341: SyntaxWarning: invalid escape sequence \u0027\\|\u0027\n    start_marker \u003d re.compile(\u0027\\|COMMON_OPTIONS\\| replace:: {\u0027)\n  test_bpftool_synctypes.py:342: SyntaxWarning: invalid escape sequence \u0027\\*\u0027\n    pattern \u003d re.compile(\u0027\\*\\*([\\w/-]+)\\*\\*\u0027)\n\nEscaping them clears out the warnings.\n\n  $ tools/testing/selftests/bpf/test_bpftool_synctypes.py; echo $?\n  0\n\nSigned-off-by: Ariel Otilibili \u003cariel.otilibili-anieli@eurecom.fr\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nTested-by: Quentin Monnet \u003cqmo@kernel.org\u003e\nReviewed-by: Quentin Monnet \u003cqmo@kernel.org\u003e\nLink: https://docs.python.org/3/library/re.html\nLink: https://lore.kernel.org/bpf/20241211220012.714055-2-ariel.otilibili-anieli@eurecom.fr\n"
    },
    {
      "commit": "8eef6ac4d70eb1f0099fff93321d90ce8fa49ee1",
      "tree": "b660fadf9e90c75721628b0bc52f64c755b5ec67",
      "parents": [
        "a7c205120d339b6ad2557fe3f33fdf20394f1a0f"
      ],
      "author": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Wed Dec 18 11:30:00 2024 -0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Wed Dec 18 15:36:06 2024 -0800"
      },
      "message": "bpf: bpf_local_storage: Always use bpf_mem_alloc in PREEMPT_RT\n\nIn PREEMPT_RT, kmalloc(GFP_ATOMIC) is still not safe in non preemptible\ncontext. bpf_mem_alloc must be used in PREEMPT_RT. This patch is\nto enforce bpf_mem_alloc in the bpf_local_storage when CONFIG_PREEMPT_RT\nis enabled.\n\n[   35.118559] BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48\n[   35.118566] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1832, name: test_progs\n[   35.118569] preempt_count: 1, expected: 0\n[   35.118571] RCU nest depth: 1, expected: 1\n[   35.118577] INFO: lockdep is turned off.\n    ...\n[   35.118647]  __might_resched+0x433/0x5b0\n[   35.118677]  rt_spin_lock+0xc3/0x290\n[   35.118700]  ___slab_alloc+0x72/0xc40\n[   35.118723]  __kmalloc_noprof+0x13f/0x4e0\n[   35.118732]  bpf_map_kzalloc+0xe5/0x220\n[   35.118740]  bpf_selem_alloc+0x1d2/0x7b0\n[   35.118755]  bpf_local_storage_update+0x2fa/0x8b0\n[   35.118784]  bpf_sk_storage_get_tracing+0x15a/0x1d0\n[   35.118791]  bpf_prog_9a118d86fca78ebb_trace_inet_sock_set_state+0x44/0x66\n[   35.118795]  bpf_trace_run3+0x222/0x400\n[   35.118820]  __bpf_trace_inet_sock_set_state+0x11/0x20\n[   35.118824]  trace_inet_sock_set_state+0x112/0x130\n[   35.118830]  inet_sk_state_store+0x41/0x90\n[   35.118836]  tcp_set_state+0x3b3/0x640\n\nThere is no need to adjust the gfp_flags passing to the\nbpf_mem_cache_alloc_flags() which only honors the GFP_KERNEL.\nThe verifier has ensured GFP_KERNEL is passed only in sleepable context.\n\nIt has been an old issue since the first introduction of the\nbpf_local_storage ~5 years ago, so this patch targets the bpf-next.\n\nbpf_mem_alloc is needed to solve it, so the Fixes tag is set\nto the commit when bpf_mem_alloc was first used in the bpf_local_storage.\n\nFixes: 08a7ce384e33 (\"bpf: Use bpf_mem_cache_alloc/free in bpf_local_storage_elem\")\nReported-by: Alexei Starovoitov \u003cast@kernel.org\u003e\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\nLink: https://lore.kernel.org/r/20241218193000.2084281-1-martin.lau@linux.dev\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "a7c205120d339b6ad2557fe3f33fdf20394f1a0f",
      "tree": "a58fc919e269c140190391e1e2949c019a8f9ac0",
      "parents": [
        "58ecb3a789fdc2b015112a31a91aa674c040a5ba"
      ],
      "author": {
        "name": "Mykyta Yatsenko",
        "email": "yatsenko@meta.com",
        "time": "Tue Dec 17 18:11:13 2024 +0000"
      },
      "committer": {
        "name": "Andrii Nakryiko",
        "email": "andrii@kernel.org",
        "time": "Tue Dec 17 15:09:33 2024 -0800"
      },
      "message": "veristat: Fix top source line stat collection\n\nFix comparator implementation to return most popular source code\nlines instead of least.\nIntroduce min/max macro for building veristat outside of Linux\nrepository.\n\nSigned-off-by: Mykyta Yatsenko \u003cyatsenko@meta.com\u003e\nSigned-off-by: Andrii Nakryiko \u003candrii@kernel.org\u003e\nLink: https://lore.kernel.org/bpf/20241217181113.364651-1-mykyta.yatsenko5@gmail.com\n"
    },
    {
      "commit": "58ecb3a789fdc2b015112a31a91aa674c040a5ba",
      "tree": "14f479361ada138604f0e140c9aaea0a8d426799",
      "parents": [
        "06103dccbbd29408255a409f6f98f7f02387dc93"
      ],
      "author": {
        "name": "Song Liu",
        "email": "song@kernel.org",
        "time": "Wed Dec 11 23:59:56 2024 -0800"
      },
      "committer": {
        "name": "Martin KaFai Lau",
        "email": "martin.lau@kernel.org",
        "time": "Mon Dec 16 12:32:31 2024 -0800"
      },
      "message": "bpf: lsm: Remove hook to bpf_task_storage_free\n\nfree_task() already calls bpf_task_storage_free(). It is not necessary\nto call it again on security_task_free(). Remove the hook.\n\nSigned-off-by: Song Liu \u003csong@kernel.org\u003e\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\nAcked-by: Matt Bobrowski \u003cmattbobrowski@google.com\u003e\nLink: https://patch.msgid.link/20241212075956.2614894-1-song@kernel.org\n"
    },
    {
      "commit": "06103dccbbd29408255a409f6f98f7f02387dc93",
      "tree": "9833a4232056648a326183bea4c5e12c2085f984",
      "parents": [
        "00a5acdbf39816ad23b8db3255c366bbc77e69af",
        "78d4f34e2115b517bcbfe7ec0d018bbbb6f9b0b8"
      ],
      "author": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Dec 16 08:52:55 2024 -0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Mon Dec 16 08:53:59 2024 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf\n\nCross-merge bpf fixes after downstream PR.\n\nNo conflicts.\n\nAdjacent changes in:\nAuto-merging include/linux/bpf.h\nAuto-merging include/linux/bpf_verifier.h\nAuto-merging kernel/bpf/btf.c\nAuto-merging kernel/bpf/verifier.c\nAuto-merging kernel/trace/bpf_trace.c\nAuto-merging tools/testing/selftests/bpf/progs/test_tp_btf_nullable.c\n\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "78d4f34e2115b517bcbfe7ec0d018bbbb6f9b0b8",
      "tree": "f6547cc7e7cd75187736e5bb58ab7c1fa6e2e39e",
      "parents": [
        "42a19aa1707cce382bc5e534e2e36024c3611674"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 15:58:23 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 15:58:23 2024 -0800"
      },
      "message": "Linux 6.13-rc3\n"
    },
    {
      "commit": "42a19aa1707cce382bc5e534e2e36024c3611674",
      "tree": "863b7c9a5abdcc47ad425b5438ed306a7904e268",
      "parents": [
        "7031a38ab74cfe997d2a767d18e3af7445547d07",
        "824927e88456331c7a999fdf5d9d27923b619590"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 15:38:12 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 15:38:12 2024 -0800"
      },
      "message": "Merge tag \u0027arc-6.13-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc\n\nPull ARC fixes from Vineet Gupta:\n\n - Sundry build and misc fixes\n\n* tag \u0027arc-6.13-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:\n  ARC: build: Try to guess GCC variant of cross compiler\n  ARC: bpf: Correct conditional check in \u0027check_jmp_32\u0027\n  ARC: dts: Replace deprecated snps,nr-gpios property for snps,dw-apb-gpio-port devices\n  ARC: build: Use __force to suppress per-CPU cmpxchg warnings\n  ARC: fix reference of dependency for PAE40 config\n  ARC: build: disallow invalid PAE40 + 4K page config\n  arc: rename aux.h to arc_aux.h\n"
    },
    {
      "commit": "7031a38ab74cfe997d2a767d18e3af7445547d07",
      "tree": "84726dc1e072299f9bd05313049e45b7b4e2dd77",
      "parents": [
        "151167d85ae5147dbe67842b702f0511052dc803",
        "145ac100b63732291c0612528444d7f5ab593fb2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 15:33:41 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 15:33:41 2024 -0800"
      },
      "message": "Merge tag \u0027efi-fixes-for-v6.13-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi\n\nPull EFI fixes from Ard Biesheuvel:\n\n - Limit EFI zboot to GZIP and ZSTD before it comes in wider use\n\n - Fix inconsistent error when looking up a non-existent file in\n   efivarfs with a name that does not adhere to the NAME-GUID format\n\n - Drop some unused code\n\n* tag \u0027efi-fixes-for-v6.13-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:\n  efi/esrt: remove esre_attribute::store()\n  efivarfs: Fix error on non-existent file\n  efi/zboot: Limit compression options to GZIP and ZSTD\n"
    },
    {
      "commit": "151167d85ae5147dbe67842b702f0511052dc803",
      "tree": "cca1732ea27ad63fad8e1cf2d0645881cdee9e8a",
      "parents": [
        "dccbe2047a5b0859de24bf463dae9eeea8e01c1e",
        "5b6b08af1fb09ec1ffab9564994cc152e4930431"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 15:29:07 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 15:29:07 2024 -0800"
      },
      "message": "Merge tag \u0027i2c-for-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux\n\nPull i2c fixes from Wolfram Sang:\n \"i2c host fixes: PNX used the wrong unit for timeouts, Nomadik was\n  missing a sentinel, and RIIC was missing rounding up\"\n\n* tag \u0027i2c-for-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:\n  i2c: riic: Always round-up when calculating bus period\n  i2c: nomadik: Add missing sentinel to match table\n  i2c: pnx: Fix timeout in wait functions\n"
    },
    {
      "commit": "dccbe2047a5b0859de24bf463dae9eeea8e01c1e",
      "tree": "d9cca45903448e9dc5e6a9f5527fccc94cbe15dd",
      "parents": [
        "f7c7a1ba222a546438921b0d378a07e7776f9b43",
        "747367340ca6b5070728b86ae36ad6747f66b2fb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 10:01:10 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 10:01:10 2024 -0800"
      },
      "message": "Merge tag \u0027edac_urgent_for_v6.13_rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras\n\nPull EDAC fix from Borislav Petkov:\n\n - Make sure amd64_edac loads successfully on certain Zen4 memory\n   configurations\n\n* tag \u0027edac_urgent_for_v6.13_rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:\n  EDAC/amd64: Simplify ECC check on unified memory controllers\n"
    },
    {
      "commit": "f7c7a1ba222a546438921b0d378a07e7776f9b43",
      "tree": "d94246c37688830980a35b5d775fe5570c8443dc",
      "parents": [
        "acd855a949fc168f5cefe643ed4875a052b66060",
        "773c05f417fa14e1ac94776619e9c978ec001f0b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 09:58:27 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 09:58:27 2024 -0800"
      },
      "message": "Merge tag \u0027irq_urgent_for_v6.13_rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull irq fixes from Borislav Petkov:\n\n - Disable the secure programming interface of the GIC500 chip in the\n   RK3399 SoC to fix interrupt priority assignment and even make a dead\n   machine boot again when the gic-v3 driver enables pseudo NMIs\n\n - Correct the declaration of a percpu variable to fix several sparse\n   warnings\n\n* tag \u0027irq_urgent_for_v6.13_rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  irqchip/gic-v3: Work around insecure GIC integrations\n  irqchip/gic: Correct declaration of *percpu_base pointer in union gic_base\n"
    },
    {
      "commit": "acd855a949fc168f5cefe643ed4875a052b66060",
      "tree": "dba17d0e6d52431439a929f3fd53578530e72e1a",
      "parents": [
        "81576a9a27dfee37acc2f8a71c7326f233bbbeba",
        "c7f7e9c73178e0e342486fd31e7f363ef60e3f83"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 09:38:03 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 09:38:03 2024 -0800"
      },
      "message": "Merge tag \u0027sched_urgent_for_v6.13_rc3-p2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler fixes from Borislav Petkov:\n\n - Prevent incorrect dequeueing of the deadline dlserver helper task and\n   fix its time accounting\n\n - Properly track the CFS runqueue runnable stats\n\n - Check the total number of all queued tasks in a sched fair\u0027s runqueue\n   hierarchy before deciding to stop the tick\n\n - Fix the scheduling of the task that got woken last (NEXT_BUDDY) by\n   preventing those from being delayed\n\n* tag \u0027sched_urgent_for_v6.13_rc3-p2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  sched/dlserver: Fix dlserver time accounting\n  sched/dlserver: Fix dlserver double enqueue\n  sched/eevdf: More PELT vs DELAYED_DEQUEUE\n  sched/fair: Fix sched_can_stop_tick() for fair tasks\n  sched/fair: Fix NEXT_BUDDY\n"
    },
    {
      "commit": "81576a9a27dfee37acc2f8a71c7326f233bbbeba",
      "tree": "003ae32930e33c7b30694855425f9622823350e1",
      "parents": [
        "2d8308bf5b67dff50262d8a9260a50113b3628c6",
        "3522c419758ee8dca5a0e8753ee0070a22157bc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 09:26:13 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 15 09:26:13 2024 -0800"
      },
      "message": "Merge tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull kvm fixes from Paolo Bonzini:\n \"ARM64:\n\n   - Fix confusion with implicitly-shifted MDCR_EL2 masks breaking\n     SPE/TRBE initialization\n\n   - Align nested page table walker with the intended memory attribute\n     combining rules of the architecture\n\n   - Prevent userspace from constraining the advertised ASID width,\n     avoiding horrors of guest TLBIs not matching the intended context\n     in hardware\n\n   - Don\u0027t leak references on LPIs when insertion into the translation\n     cache fails\n\n  RISC-V:\n\n   - Replace csr_write() with csr_set() for HVIEN PMU overflow bit\n\n  x86:\n\n   - Cache CPUID.0xD XSTATE offsets+sizes during module init\n\n     On Intel\u0027s Emerald Rapids CPUID costs hundreds of cycles and there\n     are a lot of leaves under 0xD. Getting rid of the CPUIDs during\n     nested VM-Enter and VM-Exit is planned for the next release, for\n     now just cache them: even on Skylake that is 40% faster\"\n\n* tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm:\n  KVM: x86: Cache CPUID.0xD XSTATE offsets+sizes during module init\n  RISC-V: KVM: Fix csr_write -\u003e csr_set for HVIEN PMU overflow bit\n  KVM: arm64: vgic-its: Add error handling in vgic_its_cache_translation\n  KVM: arm64: Do not allow ID_AA64MMFR0_EL1.ASIDbits to be overridden\n  KVM: arm64: Fix S1/S2 combination when FWB\u003d\u003d1 and S2 has Device memory type\n  arm64: Fix usage of new shifted MDCR_EL2 values\n"
    },
    {
      "commit": "2d8308bf5b67dff50262d8a9260a50113b3628c6",
      "tree": "50a8b2faee224beada38672faaafb242ca5fa80d",
      "parents": [
        "35f301dd4551fa731db4834f915e8351838f6f19",
        "f103396ae31851d00b561ff9f8a32a441953ff8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 15:53:02 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 15:53:02 2024 -0800"
      },
      "message": "Merge tag \u0027scsi-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi\n\nPull SCSI fix from James Bottomley:\n \"Single one-line fix in the ufs driver\"\n\n* tag \u0027scsi-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:\n  scsi: ufs: core: Update compl_time_stamp_local_clock after completing a cqe\n"
    },
    {
      "commit": "35f301dd4551fa731db4834f915e8351838f6f19",
      "tree": "ef5cf8899f05360f35b4b8c370bd5366014357be",
      "parents": [
        "a0e3919a2df29b373b19a8fbd6e4c4c38fc10d87",
        "c83508da5620ef89232cb614fb9e02dfdfef2b8f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 12:58:14 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 12:58:14 2024 -0800"
      },
      "message": "Merge tag \u0027bpf-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf\n\nPull bpf fixes from Daniel Borkmann:\n\n - Fix a bug in the BPF verifier to track changes to packet data\n   property for global functions (Eduard Zingerman)\n\n - Fix a theoretical BPF prog_array use-after-free in RCU handling of\n   __uprobe_perf_func (Jann Horn)\n\n - Fix BPF tracing to have an explicit list of tracepoints and their\n   arguments which need to be annotated as PTR_MAYBE_NULL (Kumar\n   Kartikeya Dwivedi)\n\n - Fix a logic bug in the bpf_remove_insns code where a potential error\n   would have been wrongly propagated (Anton Protopopov)\n\n - Avoid deadlock scenarios caused by nested kprobe and fentry BPF\n   programs (Priya Bala Govindasamy)\n\n - Fix a bug in BPF verifier which was missing a size check for\n   BTF-based context access (Kumar Kartikeya Dwivedi)\n\n - Fix a crash found by syzbot through an invalid BPF prog_array access\n   in perf_event_detach_bpf_prog (Jiri Olsa)\n\n - Fix several BPF sockmap bugs including a race causing a refcount\n   imbalance upon element replace (Michal Luczaj)\n\n - Fix a use-after-free from mismatching BPF program/attachment RCU\n   flavors (Jann Horn)\n\n* tag \u0027bpf-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf: (23 commits)\n  bpf: Avoid deadlock caused by nested kprobe and fentry bpf programs\n  selftests/bpf: Add tests for raw_tp NULL args\n  bpf: Augment raw_tp arguments with PTR_MAYBE_NULL\n  bpf: Revert \"bpf: Mark raw_tp arguments with PTR_MAYBE_NULL\"\n  selftests/bpf: Add test for narrow ctx load for pointer args\n  bpf: Check size for BTF-based ctx access of pointer members\n  selftests/bpf: extend changes_pkt_data with cases w/o subprograms\n  bpf: fix null dereference when computing changes_pkt_data of prog w/o subprogs\n  bpf: Fix theoretical prog_array UAF in __uprobe_perf_func()\n  bpf: fix potential error return\n  selftests/bpf: validate that tail call invalidates packet pointers\n  bpf: consider that tail calls invalidate packet pointers\n  selftests/bpf: freplace tests for tracking of changes_packet_data\n  bpf: check changes_pkt_data property for extension programs\n  selftests/bpf: test for changing packet data from global functions\n  bpf: track changes_pkt_data property for global functions\n  bpf: refactor bpf_helper_changes_pkt_data to use helper number\n  bpf: add find_containing_subprog() utility function\n  bpf,perf: Fix invalid prog_array access in perf_event_detach_bpf_prog\n  bpf: Fix UAF via mismatching bpf_prog/attachment RCU flavors\n  ...\n"
    },
    {
      "commit": "c83508da5620ef89232cb614fb9e02dfdfef2b8f",
      "tree": "d79c3dc662dc6e9d4374ae85362e3f42dc6991de",
      "parents": [
        "a8e1a3ddf7246cd43c93e5459fcc1b4989853a06"
      ],
      "author": {
        "name": "Priya Bala Govindasamy",
        "email": "pgovind2@uci.edu",
        "time": "Fri Dec 13 17:58:58 2024 -0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Sat Dec 14 09:49:27 2024 -0800"
      },
      "message": "bpf: Avoid deadlock caused by nested kprobe and fentry bpf programs\n\nBPF program types like kprobe and fentry can cause deadlocks in certain\nsituations. If a function takes a lock and one of these bpf programs is\nhooked to some point in the function\u0027s critical section, and if the\nbpf program tries to call the same function and take the same lock it will\nlead to deadlock. These situations have been reported in the following\nbug reports.\n\nIn percpu_freelist -\nLink: https://lore.kernel.org/bpf/CAADnVQLAHwsa+2C6j9+UC6ScrDaN9Fjqv1WjB1pP9AzJLhKuLQ@mail.gmail.com/T/\nLink: https://lore.kernel.org/bpf/CAPPBnEYm+9zduStsZaDnq93q1jPLqO-PiKX9jy0MuL8LCXmCrQ@mail.gmail.com/T/\nIn bpf_lru_list -\nLink: https://lore.kernel.org/bpf/CAPPBnEajj+DMfiR_WRWU5\u003d6A7KKULdB5Rob_NJopFLWF+i9gCA@mail.gmail.com/T/\nLink: https://lore.kernel.org/bpf/CAPPBnEZQDVN6VqnQXvVqGoB+ukOtHGZ9b9U0OLJJYvRoSsMY_g@mail.gmail.com/T/\nLink: https://lore.kernel.org/bpf/CAPPBnEaCB1rFAYU7Wf8UxqcqOWKmRPU1Nuzk3_oLk6qXR7LBOA@mail.gmail.com/T/\n\nSimilar bugs have been reported by syzbot.\nIn queue_stack_maps -\nLink: https://lore.kernel.org/lkml/0000000000004c3fc90615f37756@google.com/\nLink: https://lore.kernel.org/all/20240418230932.2689-1-hdanton@sina.com/T/\nIn lpm_trie -\nLink: https://lore.kernel.org/linux-kernel/00000000000035168a061a47fa38@google.com/T/\nIn ringbuf -\nLink: https://lore.kernel.org/bpf/20240313121345.2292-1-hdanton@sina.com/T/\n\nPrevent kprobe and fentry bpf programs from attaching to these critical\nsections by removing CC_FLAGS_FTRACE for percpu_freelist.o,\nbpf_lru_list.o, queue_stack_maps.o, lpm_trie.o, ringbuf.o files.\n\nThe bugs reported by syzbot are due to tracepoint bpf programs being\ncalled in the critical sections. This patch does not aim to fix deadlocks\ncaused by tracepoint programs. However, it does prevent deadlocks from\noccurring in similar situations due to kprobe and fentry programs.\n\nSigned-off-by: Priya Bala Govindasamy \u003cpgovind2@uci.edu\u003e\nLink: https://lore.kernel.org/r/CAPPBnEZpjGnsuA26Mf9kYibSaGLm\u003doF6\u003d12L21X1GEQdqjLnzQ@mail.gmail.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "a0e3919a2df29b373b19a8fbd6e4c4c38fc10d87",
      "tree": "01f04810d8517b4c1ddffc7101e006d5d66312f8",
      "parents": [
        "636110be626b1e039b82d6eba4192d3cb82e5c92",
        "33ead7e538183b1348ba60af90027240a10de751"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 09:35:22 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 09:35:22 2024 -0800"
      },
      "message": "Merge tag \u0027usb-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb\n\nPull USB driver fixes from Greg KH:\n \"Here are some small USB driver fixes for some reported issues.\n  Included in here are:\n\n   - typec driver bugfixes\n\n   - u_serial gadget driver bugfix for much reported and discussed issue\n\n   - dwc2 bugfixes\n\n   - midi gadget driver bugfix\n\n   - ehci-hcd driver bugfix\n\n   - other small bugfixes\n\n  All of these have been in linux-next for over a week with no reported\n  issues\"\n\n* tag \u0027usb-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:\n  usb: typec: ucsi: Fix connector status writing past buffer size\n  usb: typec: ucsi: Fix completion notifications\n  usb: dwc2: Fix HCD port connection race\n  usb: dwc2: hcd: Fix GetPortStatus \u0026 SetPortFeature\n  usb: dwc2: Fix HCD resume\n  usb: gadget: u_serial: Fix the issue that gs_start_io crashed due to accessing null pointer\n  usb: misc: onboard_usb_dev: skip suspend/resume sequence for USB5744 SMBus support\n  usb: dwc3: xilinx: make sure pipe clock is deselected in usb2 only mode\n  usb: core: hcd: only check primary hcd skip_phy_initialization\n  usb: gadget: midi2: Fix interpretation of is_midi1 bits\n  usb: dwc3: imx8mp: fix software node kernel dump\n  usb: typec: anx7411: fix OF node reference leaks in anx7411_typec_switch_probe()\n  usb: typec: anx7411: fix fwnode_handle reference leak\n  usb: host: max3421-hcd: Correctly abort a USB request.\n  dt-bindings: phy: imx8mq-usb: correct reference to usb-switch.yaml\n  usb: ehci-hcd: fix call balance of clocks handling routines\n"
    },
    {
      "commit": "636110be626b1e039b82d6eba4192d3cb82e5c92",
      "tree": "190afac28622bf1ac965d1a0fce5b6bbcb357bb9",
      "parents": [
        "3de4f6d919195678fa400c4da2bb5fda4a124632",
        "4e450dfd0f968b79204637bf13280892dff287b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 09:31:19 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 09:31:19 2024 -0800"
      },
      "message": "Merge tag \u0027tty-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty\n\nPull serial driver fixes from Greg KH:\n \"Here are two small serial driver fixes for 6.13-rc3.  They are:\n\n   - ioport build fallout fix for the 8250 port driver that should\n     resolve Guenter\u0027s runtime problems\n\n   - sh-sci driver bugfix for a reported problem\n\n  Both of these have been in linux-next for a while with no reported\n  issues\"\n\n* tag \u0027tty-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:\n  tty: serial: Work around warning backtrace in serial8250_set_defaults\n  serial: sh-sci: Check if TX data was written to device in .tx_empty()\n"
    },
    {
      "commit": "3de4f6d919195678fa400c4da2bb5fda4a124632",
      "tree": "f86bb6686301673e284f1478615aa8de6858f680",
      "parents": [
        "ec2092915d60df2700f7062f171a7fbbad93166b",
        "48e8a8160dba523af7074e668b2a458250838a3d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 09:27:07 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 09:27:07 2024 -0800"
      },
      "message": "Merge tag \u0027staging-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging\n\nPull staging driver fixes from Greg KH:\n \"Here are some small staging gpib driver build and bugfixes for issues\n  that have been much-reported (should finally fix Guenter\u0027s build\n  issues). There are more of these coming in later -rc releases, but for\n  now this should fix the majority of the reported problems.\n\n  All of these have been in linux-next for a while with no reported\n  issues\"\n\n* tag \u0027staging-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:\n  staging: gpib: Fix i386 build issue\n  staging: gpib: Fix faulty workaround for assignment in if\n  staging: gpib: Workaround for ppc build failure\n  staging: gpib: Make GPIB_NI_PCI_ISA depend on HAS_IOPORT\n"
    },
    {
      "commit": "ec2092915d60df2700f7062f171a7fbbad93166b",
      "tree": "b648edb7c497085f580127ec069cf08ea59c792d",
      "parents": [
        "7824850768aafe0e69ec6586900cc5c1dac94fe3",
        "cd26cd65476711e2c69e0a049c0eeef4b743f5ac"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 09:15:49 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 09:15:49 2024 -0800"
      },
      "message": "Merge tag \u0027v6.13-p2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\nPull crypto fixes from Herbert Xu:\n \"Fix a regression in rsassa-pkcs1 as well as a buffer overrun in\n  hisilicon/debugfs\"\n\n* tag \u0027v6.13-p2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:\n  crypto: hisilicon/debugfs - fix the struct pointer incorrectly offset problem\n  crypto: rsassa-pkcs1 - Copy source data for SG list\n"
    },
    {
      "commit": "7824850768aafe0e69ec6586900cc5c1dac94fe3",
      "tree": "2f05562ab6f63681f115ec411f378d24cd964c14",
      "parents": [
        "115c0cc25130c59025cab8f8a5f1a3a97b1e16e1",
        "7a5f93ea5862da91488975acaa0c7abd508f192b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 08:51:43 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 08:51:43 2024 -0800"
      },
      "message": "Merge tag \u0027rust-fixes-6.13\u0027 of https://github.com/Rust-for-Linux/linux\n\nPull rust fixes from Miguel Ojeda:\n \"Toolchain and infrastructure:\n\n   - Set bindgen\u0027s Rust target version to prevent issues when\n     pairing older rustc releases with newer bindgen releases,\n     such as bindgen \u003e\u003d 0.71.0 and rustc \u003c 1.82 due to\n     unsafe_extern_blocks.\n\n  drm/panic:\n\n   - Remove spurious empty line detected by a new Clippy warning\"\n\n* tag \u0027rust-fixes-6.13\u0027 of https://github.com/Rust-for-Linux/linux:\n  rust: kbuild: set `bindgen`\u0027s Rust target version\n  drm/panic: remove spurious empty line to clean warning\n"
    },
    {
      "commit": "115c0cc25130c59025cab8f8a5f1a3a97b1e16e1",
      "tree": "cc74bf4528a03526993ec9c680a77e1f9cbc04e4",
      "parents": [
        "5d97859e17750073052a45d127cdaec446843838",
        "dda2b8c3c6ccc50deae65cc75f246577348e2ec5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 08:41:40 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 08:41:40 2024 -0800"
      },
      "message": "Merge tag \u0027iommu-fixes-v6.13-rc2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux\n\nPull iommu fixes from Joerg Roedel:\n\n - Per-domain device-list locking fixes for the AMD IOMMU driver\n\n - Fix incorrect use of smp_processor_id() in the NVidia-specific part\n   of the ARM-SMMU-v3 driver\n\n - Intel IOMMU driver fixes:\n     - Remove cache tags before disabling ATS\n     - Avoid draining PRQ in sva mm release path\n     - Fix qi_batch NULL pointer with nested parent domain\n\n* tag \u0027iommu-fixes-v6.13-rc2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux:\n  iommu/vt-d: Avoid draining PRQ in sva mm release path\n  iommu/vt-d: Fix qi_batch NULL pointer with nested parent domain\n  iommu/vt-d: Remove cache tags before disabling ATS\n  iommu/amd: Add lockdep asserts for domain-\u003edev_list\n  iommu/amd: Put list_add/del(dev_data) back under the domain-\u003elock\n  iommu/tegra241-cmdqv: do not use smp_processor_id in preemptible context\n"
    },
    {
      "commit": "5d97859e17750073052a45d127cdaec446843838",
      "tree": "a4068266e9216796a48bac710517f9ebfcbc1ee6",
      "parents": [
        "a446e965a188ee8f745859e63ce046fe98577d45",
        "676fe1f6f74db988191dab5df3bf256908177072"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 08:40:05 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 14 08:40:05 2024 -0800"
      },
      "message": "Merge tag \u0027ata-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux\n\nPull ata fix from Damien Le Moal:\n\n - Fix an OF node reference leak in the sata_highbank driver\n\n* tag \u0027ata-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:\n  ata: sata_highbank: fix OF node reference leak in highbank_initialize_phys()\n"
    },
    {
      "commit": "5b6b08af1fb09ec1ffab9564994cc152e4930431",
      "tree": "2d7851a97d6965b5998aec51f3824e21987b7e33",
      "parents": [
        "fac04efc5c793dccbd07e2d59af9f90b7fc0dca4",
        "de6b43798d9043a7c749a0428dbb02d5fff156e5"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "wsa+renesas@sang-engineering.com",
        "time": "Sat Dec 14 10:01:46 2024 +0100"
      },
      "committer": {
        "name": "Wolfram Sang",
        "email": "wsa+renesas@sang-engineering.com",
        "time": "Sat Dec 14 10:01:46 2024 +0100"
      },
      "message": "Merge tag \u0027i2c-host-fixes-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-current\n\ni2c-host-fixes for v6.13-rc3\n\n- Replaced jiffies with msec for timeout calculations.\n- Added a sentinel to the \u0027of_device_id\u0027 array in Nomadik.\n- Rounded up bus period calculation in RIIC.\n"
    },
    {
      "commit": "a446e965a188ee8f745859e63ce046fe98577d45",
      "tree": "cc5bf877cbfe4fdf9ceaaf7f3746bc7533d4560e",
      "parents": [
        "f86135613a2552b1e6c0875726f45b34b0ddd5a6",
        "633609c48a358134d3f8ef8241dff24841577f58"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 17:36:02 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 17:36:02 2024 -0800"
      },
      "message": "Merge tag \u00276.13-rc2-smb3-client-fixes\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull smb client fixes from Steve French:\n\n - fix rmmod leak\n\n - two minor cleanups\n\n - fix for unlink/rename with pending i/o\n\n* tag \u00276.13-rc2-smb3-client-fixes\u0027 of git://git.samba.org/sfrench/cifs-2.6:\n  smb: client: destroy cfid_put_wq on module exit\n  cifs: Use str_yes_no() helper in cifs_ses_add_channel()\n  cifs: Fix rmdir failure due to ongoing I/O on deleted file\n  smb3: fix compiler warning in reparse code\n"
    },
    {
      "commit": "f86135613a2552b1e6c0875726f45b34b0ddd5a6",
      "tree": "6b2d3706c49ab905198d2cdae12e27f22876b94c",
      "parents": [
        "4e1b4861a28841afc3ec4c192845feb411953d56",
        "25fb0e77b90e290a1ca30900d54c6a495eea65e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 17:29:19 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 17:29:19 2024 -0800"
      },
      "message": "Merge tag \u0027spi-fix-v6.13-rc2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi\n\nPull spi fixes from Mark Brown:\n \"A few fairly small fixes for v6.13, the most substatial one being\n  disabling STIG mode for Cadence QSPI controllers on Altera SoCFPGA\n  platforms since it doesn\u0027t work\"\n\n* tag \u0027spi-fix-v6.13-rc2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:\n  spi: spi-cadence-qspi: Disable STIG mode for Altera SoCFPGA.\n  spi: rockchip: Fix PM runtime count on no-op cs\n  spi: aspeed: Fix an error handling path in aspeed_spi_[read|write]_user()\n"
    },
    {
      "commit": "4e1b4861a28841afc3ec4c192845feb411953d56",
      "tree": "0d11dbf305e759fbe60cb69782d0d59c7fe3d3b8",
      "parents": [
        "e72da82d5a6deec67a680434e1f19ba3996fbb11",
        "f07ae52f5cf6a5584fdf7c8c652f027d90bc8b74"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 17:18:28 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 17:18:28 2024 -0800"
      },
      "message": "Merge tag \u0027regulator-fix-v6.13-rc2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator\n\nPull regulator fixes from Mark Brown:\n \"A couple of additional changes, one ensuring we give AXP717 enough\n  time to stabilise after changing voltages which fixes serious\n  stability issues on some platforms and another documenting the DT\n  support required for the Qualcomm WCN6750\"\n\n* tag \u0027regulator-fix-v6.13-rc2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:\n  regulator: axp20x: AXP717: set ramp_delay\n  regulator: dt-bindings: qcom,qca6390-pmu: document wcn6750-pmu\n"
    },
    {
      "commit": "e72da82d5a6deec67a680434e1f19ba3996fbb11",
      "tree": "e9819602dad115b99ff202160bf27f62096fc2b6",
      "parents": [
        "974acf99744ca5c0663d0864a1ff3a13491c4f4b",
        "d172ea67dbeec5c90f72752c91d202d5718e3754"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 16:58:39 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 16:58:39 2024 -0800"
      },
      "message": "Merge tag \u0027drm-fixes-2024-12-14\u0027 of https://gitlab.freedesktop.org/drm/kernel\n\nPull drm fixes from Dave Airlie:\n \"This is the weekly fixes pull for drm. Just has i915, xe and amdgpu\n  changes in it. Nothing too major in here:\n\n  i915:\n   - Don\u0027t use indexed register writes needlessly [dsb]\n   - Stop using non-posted DSB writes for legacy LUT [color]\n   - Fix NULL pointer dereference in capture_engine\n   - Fix memory leak by correcting cache object name in error handler\n\n  xe:\n   - Fix a KUNIT test error message (Mirsad Todorovac)\n   - Fix an invalidation fence PM ref leak (Daniele)\n   - Fix a register pool UAF (Lucas)\n\n  amdgpu:\n   - ISP hw init fix\n   - SR-IOV fixes\n   - Fix contiguous VRAM mapping for UVD on older GPUs\n   - Fix some regressions due to drm scheduler changes\n   - Workload profile fixes\n   - Cleaner shader fix\n\n  amdkfd:\n   - Fix DMA map direction for migration\n   - Fix a potential null pointer dereference\n   - Cacheline size fixes\n   - Runtime PM fix\"\n\n* tag \u0027drm-fixes-2024-12-14\u0027 of https://gitlab.freedesktop.org/drm/kernel:\n  drm/xe/reg_sr: Remove register pool\n  drm/xe: Call invalidation_fence_fini for PT inval fences in error state\n  drm/xe: fix the ERR_PTR() returned on failure to allocate tiny pt\n  drm/amdkfd: pause autosuspend when creating pdd\n  drm/amdgpu: fix when the cleaner shader is emitted\n  drm/amdgpu: Fix ISP HW init issue\n  drm/amdkfd: hard-code MALL cacheline size for gfx11, gfx12\n  drm/amdkfd: hard-code cacheline size for gfx11\n  drm/amdkfd: Dereference null return value\n  drm/i915: Fix memory leak by correcting cache object name in error handler\n  drm/i915: Fix NULL pointer dereference in capture_engine\n  drm/i915/color: Stop using non-posted DSB writes for legacy LUT\n  drm/i915/dsb: Don\u0027t use indexed register writes needlessly\n  drm/amdkfd: Correct the migration DMA map direction\n  drm/amd/pm: Set SMU v13.0.7 default workload type\n  drm/amd/pm: Initialize power profile mode\n  amdgpu/uvd: get ring reference from rq scheduler\n  drm/amdgpu: fix UVD contiguous CS mapping problem\n  drm/amdgpu: use sjt mec fw on gfx943 for sriov\n  Revert \"drm/amdgpu: Fix ISP hw init issue\"\n"
    },
    {
      "commit": "974acf99744ca5c0663d0864a1ff3a13491c4f4b",
      "tree": "91d3d63744992da0b75058993831d92cbceffa5f",
      "parents": [
        "c810e8df9668d378430862ceb5eeff619da28509",
        "ccb84dc8f4a02e7d30ffd388522996546b4d00e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 16:55:43 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 16:55:43 2024 -0800"
      },
      "message": "Merge tag \u0027pm-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull power management documentation fix from Rafael Wysocki:\n \"Fix a runtime PM documentation mistake that may mislead someone into\n  making a coding mistake (Paul Barker)\"\n\n* tag \u0027pm-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:\n  Documentation: PM: Clarify pm_runtime_resume_and_get() return value\n"
    },
    {
      "commit": "c810e8df9668d378430862ceb5eeff619da28509",
      "tree": "e642e1c907770ad3cacfd9aac0dbaf9ad44a71fe",
      "parents": [
        "c30c65f3fe3506e8838c3eb64b4b5f48b667a131",
        "e14d5ae28eb28c5edef53bd648037d2bb4fce1b3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 16:51:56 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 16:51:56 2024 -0800"
      },
      "message": "Merge tag \u0027acpi-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull ACPI fixes from Rafael Wysocki:\n \"These fix two coding mistakes, one in the ACPI resources handling code\n  and one in ACPICA:\n\n   - Relocate the addr-\u003einfo.mem.caching check in acpi_decode_space() to\n     only execute it if the resource is of the correct type (Ilpo\n     Järvinen)\n\n   - Don\u0027t release a context_mutex that was never acquired in\n     acpi_remove_address_space_handler() (Daniil Tatianin)\"\n\n* tag \u0027acpi-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:\n  ACPICA: events/evxfregn: don\u0027t release the ContextMutex that was never acquired\n  ACPI: resource: Fix memory resource type union access\n"
    },
    {
      "commit": "a8e1a3ddf7246cd43c93e5459fcc1b4989853a06",
      "tree": "0b40e120945f91a39787e98643ddfcac18d73f4f",
      "parents": [
        "e4c80f69758e5088e8aae48f3d6abb41c6da7812",
        "0da1955b5bd2af3a1c3d13916df06e34ffa6df3d"
      ],
      "author": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Fri Dec 13 16:24:54 2024 -0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Fri Dec 13 16:24:54 2024 -0800"
      },
      "message": "Merge branch \u0027explicit-raw_tp-null-arguments\u0027\n\nKumar Kartikeya Dwivedi says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nExplicit raw_tp NULL arguments\n\nThis set reverts the raw_tp masking changes introduced in commit\ncb4158ce8ec8 (\"bpf: Mark raw_tp arguments with PTR_MAYBE_NULL\") and\nreplaces it wwith an explicit list of tracepoints and their arguments\nwhich need to be annotated as PTR_MAYBE_NULL. More context on the\nfallout caused by the masking fix and subsequent discussions can be\nfound in [0].\n\nTo remedy this, we implement a solution of explicitly defined tracepoint\nand define which args need to be marked NULL or scalar (for IS_ERR\ncase). The commit logs describes the details of this approach in detail.\n\nWe will follow up this solution an approach Eduard is working on to\nperform automated analysis of NULL-ness of tracepoint arguments. The\ncurrent PoC is available here:\n\n- LLVM branch with the analysis:\n  https://github.com/eddyz87/llvm-project/tree/nullness-for-tracepoint-params\n- Python script for merging of analysis results:\n  https://gist.github.com/eddyz87/e47c164466a60e8d49e6911cff146f47\n\nThe idea is to infer a tri-state verdict for each tracepoint parameter:\ndefinitely not null, can be null, unknown (in which case no assumptions\nshould be made).\n\nUsing this information, the verifier in most cases will be able to\nprecisely determine the state of the tracepoint parameter without any\nhuman effort. At that point, the table maintained manually in this set\ncan be dropped and replace with this automated analysis tool\u0027s result.\nThis will be kept up to date with each kernel release.\n\n  [0]: https://lore.kernel.org/bpf/20241206161053.809580-1-memxor@gmail.com\n\nChangelog:\n----------\nv2 -\u003e v3:\nv2: https://lore.kernel.org/bpf/20241213175127.2084759-1-memxor@gmail.com\n\n * Address Eduard\u0027s nits, add Reviewed-by\n\nv1 -\u003e v2:\nv1: https://lore.kernel.org/bpf/20241211020156.18966-1-memxor@gmail.com\n\n * Address comments from Jiri\n   * Mark module tracepoints args NULL by default\n   * Add more sunrpc tracepoints\n   * Unify scalar or null handling\n * Address comments from Alexei\n   * Use bitmask approach suggested in review\n   * Unify scalar or null handling\n   * Drop most tests that rely on CONFIG options\n   * Drop scripts to generate tests\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20241213221929.3495062-1-memxor@gmail.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "0da1955b5bd2af3a1c3d13916df06e34ffa6df3d",
      "tree": "0b40e120945f91a39787e98643ddfcac18d73f4f",
      "parents": [
        "838a10bd2ebfe11a60dd67687533a7cfc220cc86"
      ],
      "author": {
        "name": "Kumar Kartikeya Dwivedi",
        "email": "memxor@gmail.com",
        "time": "Fri Dec 13 14:19:29 2024 -0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Fri Dec 13 16:24:53 2024 -0800"
      },
      "message": "selftests/bpf: Add tests for raw_tp NULL args\n\nAdd tests to ensure that arguments are correctly marked based on their\nspecified positions, and whether they get marked correctly as maybe\nnull. For modules, all tracepoint parameters should be marked\nPTR_MAYBE_NULL by default.\n\nSigned-off-by: Kumar Kartikeya Dwivedi \u003cmemxor@gmail.com\u003e\nLink: https://lore.kernel.org/r/20241213221929.3495062-4-memxor@gmail.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "838a10bd2ebfe11a60dd67687533a7cfc220cc86",
      "tree": "3cc4d93c038f8836b2577d53964c369346e659a6",
      "parents": [
        "c00d738e1673ab801e1577e4e3c780ccf88b1a5b"
      ],
      "author": {
        "name": "Kumar Kartikeya Dwivedi",
        "email": "memxor@gmail.com",
        "time": "Fri Dec 13 14:19:28 2024 -0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Fri Dec 13 16:24:53 2024 -0800"
      },
      "message": "bpf: Augment raw_tp arguments with PTR_MAYBE_NULL\n\nArguments to a raw tracepoint are tagged as trusted, which carries the\nsemantics that the pointer will be non-NULL.  However, in certain cases,\na raw tracepoint argument may end up being NULL. More context about this\nissue is available in [0].\n\nThus, there is a discrepancy between the reality, that raw_tp arguments can\nactually be NULL, and the verifier\u0027s knowledge, that they are never NULL,\ncausing explicit NULL check branch to be dead code eliminated.\n\nA previous attempt [1], i.e. the second fixed commit, was made to\nsimulate symbolic execution as if in most accesses, the argument is a\nnon-NULL raw_tp, except for conditional jumps.  This tried to suppress\nbranch prediction while preserving compatibility, but surfaced issues\nwith production programs that were difficult to solve without increasing\nverifier complexity. A more complete discussion of issues and fixes is\navailable at [2].\n\nFix this by maintaining an explicit list of tracepoints where the\narguments are known to be NULL, and mark the positional arguments as\nPTR_MAYBE_NULL. Additionally, capture the tracepoints where arguments\nare known to be ERR_PTR, and mark these arguments as scalar values to\nprevent potential dereference.\n\nEach hex digit is used to encode NULL-ness (0x1) or ERR_PTR-ness (0x2),\nshifted by the zero-indexed argument number x 4. This can be represented\nas follows:\n1st arg: 0x1\n2nd arg: 0x10\n3rd arg: 0x100\n... and so on (likewise for ERR_PTR case).\n\nIn the future, an automated pass will be used to produce such a list, or\ninsert __nullable annotations automatically for tracepoints. Each\ncompilation unit will be analyzed and results will be collated to find\nwhether a tracepoint pointer is definitely not null, maybe null, or an\nunknown state where verifier conservatively marks it PTR_MAYBE_NULL.\nA proof of concept of this tool from Eduard is available at [3].\n\nNote that in case we don\u0027t find a specification in the raw_tp_null_args\narray and the tracepoint belongs to a kernel module, we will\nconservatively mark the arguments as PTR_MAYBE_NULL. This is because\nunlike for in-tree modules, out-of-tree module tracepoints may pass NULL\nfreely to the tracepoint. We don\u0027t protect against such tracepoints\npassing ERR_PTR (which is uncommon anyway), lest we mark all such\narguments as SCALAR_VALUE.\n\nWhile we are it, let\u0027s adjust the test raw_tp_null to not perform\ndereference of the skb-\u003emark, as that won\u0027t be allowed anymore, and make\nit more robust by using inline assembly to test the dead code\nelimination behavior, which should still stay the same.\n\n  [0]: https://lore.kernel.org/bpf/ZrCZS6nisraEqehw@jlelli-thinkpadt14gen4.remote.csb\n  [1]: https://lore.kernel.org/all/20241104171959.2938862-1-memxor@gmail.com\n  [2]: https://lore.kernel.org/bpf/20241206161053.809580-1-memxor@gmail.com\n  [3]: https://github.com/eddyz87/llvm-project/tree/nullness-for-tracepoint-params\n\nReported-by: Juri Lelli \u003cjuri.lelli@redhat.com\u003e # original bug\nReported-by: Manu Bretelle \u003cchantra@meta.com\u003e # bugs in masking fix\nFixes: 3f00c5239344 (\"bpf: Allow trusted pointers to be passed to KF_TRUSTED_ARGS kfuncs\")\nFixes: cb4158ce8ec8 (\"bpf: Mark raw_tp arguments with PTR_MAYBE_NULL\")\nReviewed-by: Eduard Zingerman \u003ceddyz87@gmail.com\u003e\nCo-developed-by: Jiri Olsa \u003cjolsa@kernel.org\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@kernel.org\u003e\nSigned-off-by: Kumar Kartikeya Dwivedi \u003cmemxor@gmail.com\u003e\nLink: https://lore.kernel.org/r/20241213221929.3495062-3-memxor@gmail.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "c00d738e1673ab801e1577e4e3c780ccf88b1a5b",
      "tree": "94b45b22d5b05a7016e38043e1bfbf4a1c6bae42",
      "parents": [
        "e4c80f69758e5088e8aae48f3d6abb41c6da7812"
      ],
      "author": {
        "name": "Kumar Kartikeya Dwivedi",
        "email": "memxor@gmail.com",
        "time": "Fri Dec 13 14:19:27 2024 -0800"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Fri Dec 13 16:24:53 2024 -0800"
      },
      "message": "bpf: Revert \"bpf: Mark raw_tp arguments with PTR_MAYBE_NULL\"\n\nThis patch reverts commit\ncb4158ce8ec8 (\"bpf: Mark raw_tp arguments with PTR_MAYBE_NULL\"). The\npatch was well-intended and meant to be as a stop-gap fixing branch\nprediction when the pointer may actually be NULL at runtime. Eventually,\nit was supposed to be replaced by an automated script or compiler pass\ndetecting possibly NULL arguments and marking them accordingly.\n\nHowever, it caused two main issues observed for production programs and\nfailed to preserve backwards compatibility. First, programs relied on\nthe verifier not exploring \u003d\u003d NULL branch when pointer is not NULL, thus\nthey started failing with a \u0027dereference of scalar\u0027 error.  Next,\nallowing raw_tp arguments to be modified surfaced the warning in the\nverifier that warns against reg-\u003eoff when PTR_MAYBE_NULL is set.\n\nMore information, context, and discusson on both problems is available\nin [0]. Overall, this approach had several shortcomings, and the fixes\nwould further complicate the verifier\u0027s logic, and the entire masking\nscheme would have to be removed eventually anyway.\n\nHence, revert the patch in preparation of a better fix avoiding these\nissues to replace this commit.\n\n  [0]: https://lore.kernel.org/bpf/20241206161053.809580-1-memxor@gmail.com\n\nReported-by: Manu Bretelle \u003cchantra@meta.com\u003e\nFixes: cb4158ce8ec8 (\"bpf: Mark raw_tp arguments with PTR_MAYBE_NULL\")\nSigned-off-by: Kumar Kartikeya Dwivedi \u003cmemxor@gmail.com\u003e\nLink: https://lore.kernel.org/r/20241213221929.3495062-2-memxor@gmail.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "c30c65f3fe3506e8838c3eb64b4b5f48b667a131",
      "tree": "37382900c5e033ea796768f7045dc6f66d4b5ad3",
      "parents": [
        "2a816e4f6a407cfbd7a8345a0c09473eff656139",
        "be26ba96421ab0a8fa2055ccf7db7832a13c44d2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 15:10:59 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 15:10:59 2024 -0800"
      },
      "message": "Merge tag \u0027block-6.13-20241213\u0027 of git://git.kernel.dk/linux\n\nPull block fixes from Jens Axboe:\n\n - Series from Damien fixing issues with the zoned write plugging\n\n - Fix for a potential UAF in block cgroups\n\n - Fix deadlock around queue freezing and the sysfs lock\n\n - Various little cleanups and fixes\n\n* tag \u0027block-6.13-20241213\u0027 of git://git.kernel.dk/linux:\n  block: Fix potential deadlock while freezing queue and acquiring sysfs_lock\n  block: Fix queue_iostats_passthrough_show()\n  blk-mq: Clean up blk_mq_requeue_work()\n  mq-deadline: Remove a local variable\n  blk-iocost: Avoid using clamp() on inuse in __propagate_weights()\n  block: Make bio_iov_bvec_set() accept pointer to const iov_iter\n  block: get wp_offset by bdev_offset_from_zone_start\n  blk-cgroup: Fix UAF in blkcg_unpin_online()\n  MAINTAINERS: update Coly Li\u0027s email address\n  block: Prevent potential deadlocks in zone write plug error recovery\n  dm: Fix dm-zoned-reclaim zone write pointer alignment\n  block: Ignore REQ_NOWAIT for zone reset and zone finish operations\n  block: Use a zone write plug BIO work for REQ_NOWAIT BIOs\n"
    },
    {
      "commit": "2a816e4f6a407cfbd7a8345a0c09473eff656139",
      "tree": "654ed7943656d06754b3d19bc05b5b1db8a5924e",
      "parents": [
        "1c021e7908cc6683a1fcbd26eb02bc8c7c880da0",
        "99d6af6e8a22b792e1845b186f943cd10bb4b7b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 15:08:55 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 15:08:55 2024 -0800"
      },
      "message": "Merge tag \u0027io_uring-6.13-20241213\u0027 of git://git.kernel.dk/linux\n\nPull io_uring fix from Jens Axboe:\n \"A single fix for a regression introduced in the 6.13 merge window\"\n\n* tag \u0027io_uring-6.13-20241213\u0027 of git://git.kernel.dk/linux:\n  io_uring/rsrc: don\u0027t put/free empty buffers\n"
    },
    {
      "commit": "1c021e7908cc6683a1fcbd26eb02bc8c7c880da0",
      "tree": "9ead9478b784343d926ed6ce79e904dd6f3a095a",
      "parents": [
        "4800575d8c0b2f354ab05ab1c4749e45e213bf73",
        "265e98f72bac6c41a4492d3e30a8e5fd22fe0779"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 15:07:22 2024 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 13 15:07:22 2024 -0800"
      },
      "message": "Merge tag \u0027libnvdimm-fixes-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm\n\nPull libnvdimm fix from Ira Weiny:\n\n - sysbot fix for out of bounds access\n\n* tag \u0027libnvdimm-fixes-6.13-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:\n  acpi: nfit: vmalloc-out-of-bounds Read in acpi_nfit_ctl\n"
    }
  ],
  "next": "00a5acdbf39816ad23b8db3255c366bbc77e69af"
}
