From b07dfe3b2a6cb0905e883510f22f9f7c0bb66d0d Mon Sep 17 00:00:00 2001 From: Ivan Shapovalov Date: Sun, 28 Jul 2024 19:54:07 +0200 Subject: [PATCH 01/20] Makefile: ensure $(OBJDIR) is created before writing to it Signed-off-by: Ivan Shapovalov --- src/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index 547bafb4a..e3bfafe91 100644 --- a/src/Makefile +++ b/src/Makefile @@ -119,13 +119,13 @@ $(OBJDIR)/libbpf.so.$(LIBBPF_VERSION): $(SHARED_OBJS) -Wl,-soname,libbpf.so.$(LIBBPF_MAJOR_VERSION) \ $^ $(ALL_LDFLAGS) -o $@ -$(OBJDIR)/libbpf.pc: force +$(OBJDIR)/libbpf.pc: force | $(OBJDIR) $(Q)sed -e "s|@PREFIX@|$(PREFIX)|" \ -e "s|@LIBDIR@|$(LIBDIR_PC)|" \ -e "s|@VERSION@|$(LIBBPF_VERSION)|" \ < libbpf.pc.template > $@ -$(STATIC_OBJDIR) $(SHARED_OBJDIR): +$(OBJDIR) $(STATIC_OBJDIR) $(SHARED_OBJDIR): $(call msg,MKDIR,$@) $(Q)mkdir -p $@ From ec0d0fda8b5ae572d2da0c38a963bae04d8d76b3 Mon Sep 17 00:00:00 2001 From: Manu Bretelle Date: Wed, 21 Aug 2024 14:10:37 -0700 Subject: [PATCH 02/20] ci: lock down s390x CI to Ubuntu 20.04 runners I am working on upgrading to 24.04 runners. In order to make sure that current jobs are scheduled on Ubuntu 20.04, we need to ask for runners with tag `docker-main`, which is currently set by those old runners. Later, we will be able to switch this tag to `docker-noble-main` which are Ubuntu 24.04 runners. Signed-off-by: Manu Bretelle --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 12860c7a0..8956ea96a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -28,7 +28,7 @@ jobs: runs_on: ubuntu-20.04 arch: 'x86_64' - kernel: 'LATEST' - runs_on: s390x + runs_on: ["s390x", "docker-main"] arch: 's390x' steps: - uses: actions/checkout@v4 From 8e47e755cde787a99d001c0b31e32495cea0c83b Mon Sep 17 00:00:00 2001 From: Manu Bretelle Date: Wed, 21 Aug 2024 14:12:54 -0700 Subject: [PATCH 03/20] ci: bump default llvm version to 17 Ubuntu 24.04's minimum llvm version is 17. Bumping this now to limit changes later. Signed-off-by: Manu Bretelle --- .github/actions/build-selftests/build_selftests.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-selftests/build_selftests.sh b/.github/actions/build-selftests/build_selftests.sh index 31094c464..b9182f6d1 100755 --- a/.github/actions/build-selftests/build_selftests.sh +++ b/.github/actions/build-selftests/build_selftests.sh @@ -11,11 +11,11 @@ foldable start prepare_selftests "Building selftests" LIBBPF_PATH="${REPO_ROOT}" llvm_default_version() { - echo "16" + echo "17" } llvm_latest_version() { - echo "17" + echo "19" } LLVM_VERSION=$(llvm_default_version) From a73c6f7f8080ac2a24851d6500da073f83b9f379 Mon Sep 17 00:00:00 2001 From: Manu Bretelle Date: Wed, 21 Aug 2024 14:14:06 -0700 Subject: [PATCH 04/20] ci: Use llvm repositories matching the host we are running on As this will change to a Ubuntu 24.04 runner, we want this to automatically detect which ubuntu version it is running on. Signed-off-by: Manu Bretelle --- .github/actions/build-selftests/build_selftests.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/actions/build-selftests/build_selftests.sh b/.github/actions/build-selftests/build_selftests.sh index b9182f6d1..512d7d735 100755 --- a/.github/actions/build-selftests/build_selftests.sh +++ b/.github/actions/build-selftests/build_selftests.sh @@ -25,7 +25,11 @@ else REPO_DISTRO_SUFFIX="-${LLVM_VERSION}" fi -echo "deb https://apt.llvm.org/focal/ llvm-toolchain-focal${REPO_DISTRO_SUFFIX} main" \ +DISTRIB_CODENAME="noble" +test -f /etc/lsb-release && . /etc/lsb-release +echo "${DISTRIB_CODENAME}" + +echo "deb https://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}${REPO_DISTRO_SUFFIX} main" \ | sudo tee /etc/apt/sources.list.d/llvm.list PREPARE_SELFTESTS_SCRIPT=${THISDIR}/prepare_selftests-${KERNEL}.sh From 92316f5072149469803e3a3319e5293756dfb7c1 Mon Sep 17 00:00:00 2001 From: Manu Bretelle Date: Wed, 21 Aug 2024 14:36:48 -0700 Subject: [PATCH 05/20] ci: Pass llvm-version as an input and enforce passing it to build-selftests action Signed-off-by: Manu Bretelle --- .github/actions/build-selftests/action.yml | 5 +++++ .github/actions/build-selftests/build_selftests.sh | 5 ----- .github/actions/vmtest/action.yml | 6 ++++++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/actions/build-selftests/action.yml b/.github/actions/build-selftests/action.yml index c677fe03d..787422934 100644 --- a/.github/actions/build-selftests/action.yml +++ b/.github/actions/build-selftests/action.yml @@ -12,6 +12,9 @@ inputs: description: 'where is vmlinux file' required: true default: '${{ github.workspace }}/vmlinux' + llvm-version: + description: 'llvm version' + required: true runs: using: "composite" @@ -28,4 +31,6 @@ runs: export REPO_ROOT="${{ github.workspace }}" export REPO_PATH="${{ inputs.repo-path }}" export VMLINUX_BTF="${{ inputs.vmlinux }}" + export LLVM_VERSION="${{ inputs.llvm-version }}" + ${{ github.action_path }}/build_selftests.sh diff --git a/.github/actions/build-selftests/build_selftests.sh b/.github/actions/build-selftests/build_selftests.sh index 512d7d735..54ad0552f 100755 --- a/.github/actions/build-selftests/build_selftests.sh +++ b/.github/actions/build-selftests/build_selftests.sh @@ -10,15 +10,10 @@ foldable start prepare_selftests "Building selftests" LIBBPF_PATH="${REPO_ROOT}" -llvm_default_version() { - echo "17" -} - llvm_latest_version() { echo "19" } -LLVM_VERSION=$(llvm_default_version) if [[ "${LLVM_VERSION}" == $(llvm_latest_version) ]]; then REPO_DISTRO_SUFFIX="" else diff --git a/.github/actions/vmtest/action.yml b/.github/actions/vmtest/action.yml index fcd1a780b..6bf6cdb16 100644 --- a/.github/actions/vmtest/action.yml +++ b/.github/actions/vmtest/action.yml @@ -13,6 +13,10 @@ inputs: description: 'pahole rev or master' required: true default: 'master' + llvm-version: + description: 'llvm version' + required: false + default: '17' runs: using: "composite" steps: @@ -38,6 +42,7 @@ runs: with: pahole: ${{ inputs.pahole }} arch: ${{ inputs.arch }} + llvm-version: ${{ inputs.llvm-version }} # 1. download CHECKPOINT kernel source - name: Get checkpoint commit shell: bash @@ -93,6 +98,7 @@ runs: with: repo-path: '.kernel' kernel: ${{ inputs.kernel }} + llvm-version: ${{ inputs.llvm-version }} # 4. prepare rootfs - name: prepare rootfs uses: libbpf/ci/prepare-rootfs@main From bc24cd126a6f2153468c380c98b2604e7ed650f6 Mon Sep 17 00:00:00 2001 From: Manu Bretelle Date: Thu, 22 Aug 2024 10:49:24 -0700 Subject: [PATCH 06/20] ci: run test on Ubuntu 24.04 Signed-off-by: Manu Bretelle --- .github/workflows/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8956ea96a..a80ee2547 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,16 +19,16 @@ jobs: matrix: include: - kernel: 'LATEST' - runs_on: ubuntu-20.04 + runs_on: ubuntu-24.04 arch: 'x86_64' - kernel: '5.5.0' - runs_on: ubuntu-20.04 + runs_on: ubuntu-24.04 arch: 'x86_64' - kernel: '4.9.0' - runs_on: ubuntu-20.04 + runs_on: ubuntu-24.04 arch: 'x86_64' - kernel: 'LATEST' - runs_on: ["s390x", "docker-main"] + runs_on: ["s390x", "docker-noble-main"] arch: 's390x' steps: - uses: actions/checkout@v4 From 22ec3eb15d7d5e885abc29e6391962fc0bedb702 Mon Sep 17 00:00:00 2001 From: Andrii Nakryiko Date: Tue, 27 Aug 2024 12:51:55 -0700 Subject: [PATCH 07/20] ci: deny verify_pkcs7_sig as it keeps failing This has nothing to do with libbpf and is probably failing due to environment setup. Signed-off-by: Andrii Nakryiko --- ci/vmtest/configs/DENYLIST | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/vmtest/configs/DENYLIST b/ci/vmtest/configs/DENYLIST index d2d725dc0..e50557f68 100644 --- a/ci/vmtest/configs/DENYLIST +++ b/ci/vmtest/configs/DENYLIST @@ -12,3 +12,4 @@ xdp_bonding/xdp_bonding_features # started failing after net merge from 359e tc_redirect/tc_redirect_dtime # uapi breakage after net-next commit 885c36e59f46 ("net: Re-use and set mono_delivery_time bit for userspace tstamp packets") migrate_reuseport/IPv4 TCP_NEW_SYN_RECV reqsk_timer_handler # flaky, under investigation migrate_reuseport/IPv6 TCP_NEW_SYN_RECV reqsk_timer_handler # flaky, under investigation +verify_pkcs7_sig # keeps failing From 26443a6d43d1ca8c87394b463052e081c28c251b Mon Sep 17 00:00:00 2001 From: chantra Date: Fri, 23 Aug 2024 14:41:13 -0700 Subject: [PATCH 08/20] ci: fix test job names * use the architecture name in job name instead of `runs_on` labels Signed-off-by: Manu Bretelle --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a80ee2547..4ace0e689 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,7 +13,7 @@ concurrency: jobs: vmtest: runs-on: ${{ matrix.runs_on }} - name: Kernel ${{ matrix.kernel }} on ${{ matrix.runs_on }} + selftests + name: Kernel ${{ matrix.kernel }} on ${{ matrix.arch }} + selftests strategy: fail-fast: false matrix: From 20ccbb303a8b7c280acfa742cb4c577a9e235fe9 Mon Sep 17 00:00:00 2001 From: Andrii Nakryiko Date: Fri, 30 Aug 2024 08:31:25 -0700 Subject: [PATCH 09/20] ci: take into account common local DENYLIST/ALLOWLIST Similar to naming convention in BPF selftests. Signed-off-by: Andrii Nakryiko --- ci/vmtest/run_selftests.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ci/vmtest/run_selftests.sh b/ci/vmtest/run_selftests.sh index 0e5ac17f8..7ddcb45b8 100755 --- a/ci/vmtest/run_selftests.sh +++ b/ci/vmtest/run_selftests.sh @@ -67,12 +67,14 @@ local_configs_path=${PROJECT_NAME}/vmtest/configs DENYLIST=$(read_lists \ "$configs_path/DENYLIST" \ "$configs_path/DENYLIST.${ARCH}" \ + "$local_configs_path/DENYLIST" \ "$local_configs_path/DENYLIST-${KERNEL}" \ "$local_configs_path/DENYLIST-${KERNEL}.${ARCH}" \ ) ALLOWLIST=$(read_lists \ "$configs_path/ALLOWLIST" \ "$configs_path/ALLOWLIST.${ARCH}" \ + "$local_configs_path/ALLOWLIST" \ "$local_configs_path/ALLOWLIST-${KERNEL}" \ "$local_configs_path/ALLOWLIST-${KERNEL}.${ARCH}" \ ) From 86fc78bd2b8f7c8eab1f526de7d059fbd95a3f9a Mon Sep 17 00:00:00 2001 From: Kan Liang Date: Wed, 26 Jun 2024 07:35:37 -0700 Subject: [PATCH 10/20] perf/x86/intel: Support new data source for Lunar Lake A new PEBS data source format is introduced for the p-core of Lunar Lake. The data source field is extended to 8 bits with new encodings. A new layout is introduced into the union intel_x86_pebs_dse. Introduce the lnl_latency_data() to parse the new format. Enlarge the pebs_data_source[] accordingly to include new encodings. Only the mem load and the mem store events can generate the data source. Introduce INTEL_HYBRID_LDLAT_CONSTRAINT and INTEL_HYBRID_STLAT_CONSTRAINT to mark them. Add two new bits for the new cache-related data src, L2_MHB and MSC. The L2_MHB is short for L2 Miss Handling Buffer, which is similar to LFB (Line Fill Buffer), but to track the L2 Cache misses. The MSC stands for the memory-side cache. Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Andi Kleen Reviewed-by: Ian Rogers Link: https://lkml.kernel.org/r/20240626143545.480761-6-kan.liang@linux.intel.com --- include/uapi/linux/perf_event.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h index 3a64499b0..4842c36fd 100644 --- a/include/uapi/linux/perf_event.h +++ b/include/uapi/linux/perf_event.h @@ -1349,12 +1349,14 @@ union perf_mem_data_src { #define PERF_MEM_LVLNUM_L2 0x02 /* L2 */ #define PERF_MEM_LVLNUM_L3 0x03 /* L3 */ #define PERF_MEM_LVLNUM_L4 0x04 /* L4 */ -/* 5-0x7 available */ +#define PERF_MEM_LVLNUM_L2_MHB 0x05 /* L2 Miss Handling Buffer */ +#define PERF_MEM_LVLNUM_MSC 0x06 /* Memory-side Cache */ +/* 0x7 available */ #define PERF_MEM_LVLNUM_UNC 0x08 /* Uncached */ #define PERF_MEM_LVLNUM_CXL 0x09 /* CXL */ #define PERF_MEM_LVLNUM_IO 0x0a /* I/O */ #define PERF_MEM_LVLNUM_ANY_CACHE 0x0b /* Any cache */ -#define PERF_MEM_LVLNUM_LFB 0x0c /* LFB */ +#define PERF_MEM_LVLNUM_LFB 0x0c /* LFB / L1 Miss Handling Buffer */ #define PERF_MEM_LVLNUM_RAM 0x0d /* RAM */ #define PERF_MEM_LVLNUM_PMEM 0x0e /* PMEM */ #define PERF_MEM_LVLNUM_NA 0x0f /* N/A */ From 205e86de8bb9d8a20cf01943e661e90c52dc2cbb Mon Sep 17 00:00:00 2001 From: Andrii Nakryiko Date: Fri, 12 Jul 2024 15:44:42 -0700 Subject: [PATCH 11/20] libbpf: Fix no-args func prototype BTF dumping syntax For all these years libbpf's BTF dumper has been emitting not strictly valid syntax for function prototypes that have no input arguments. Instead of `int (*blah)()` we should emit `int (*blah)(void)`. This is not normally a problem, but it manifests when we get kfuncs in vmlinux.h that have no input arguments. Due to compiler internal specifics, we get no BTF information for such kfuncs, if they are not declared with proper `(void)`. The fix is trivial. We also need to adjust a few ancient tests that happily assumed `()` is correct. Fixes: 351131b51c7a ("libbpf: add btf_dump API for BTF-to-C conversion") Reported-by: Tejun Heo Signed-off-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann Acked-by: Stanislav Fomichev Link: https://lore.kernel.org/bpf/20240712224442.282823-1-andrii@kernel.org --- src/btf_dump.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/btf_dump.c b/src/btf_dump.c index 5dbca76b9..894860111 100644 --- a/src/btf_dump.c +++ b/src/btf_dump.c @@ -1559,10 +1559,12 @@ static void btf_dump_emit_type_chain(struct btf_dump *d, * Clang for BPF target generates func_proto with no * args as a func_proto with a single void arg (e.g., * `int (*f)(void)` vs just `int (*f)()`). We are - * going to pretend there are no args for such case. + * going to emit valid empty args (void) syntax for + * such case. Similarly and conveniently, valid + * no args case can be special-cased here as well. */ - if (vlen == 1 && p->type == 0) { - btf_dump_printf(d, ")"); + if (vlen == 0 || (vlen == 1 && p->type == 0)) { + btf_dump_printf(d, "void)"); return; } From a89e519b40f6b1dedbe58f5ed07340e1c1c9effc Mon Sep 17 00:00:00 2001 From: Stanislav Fomichev Date: Fri, 12 Jul 2024 18:52:52 -0700 Subject: [PATCH 12/20] selftests/bpf: Add XDP_UMEM_TX_METADATA_LEN to XSK TX metadata test This flag is now required to use tx_metadata_len. Fixes: 40808a237d9c ("selftests/bpf: Add TX side to xdp_metadata") Reported-by: Julian Schindel Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann Reviewed-by: Maciej Fijalkowski Link: https://lore.kernel.org/bpf/20240713015253.121248-3-sdf@fomichev.me --- include/uapi/linux/if_xdp.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/uapi/linux/if_xdp.h b/include/uapi/linux/if_xdp.h index 638c606df..2f082b01f 100644 --- a/include/uapi/linux/if_xdp.h +++ b/include/uapi/linux/if_xdp.h @@ -41,6 +41,10 @@ */ #define XDP_UMEM_TX_SW_CSUM (1 << 1) +/* Request to reserve tx_metadata_len bytes of per-chunk metadata. + */ +#define XDP_UMEM_TX_METADATA_LEN (1 << 2) + struct sockaddr_xdp { __u16 sxdp_family; __u16 sxdp_flags; From 7b5237996a42c3b8a6fe8ccae656047de2831f58 Mon Sep 17 00:00:00 2001 From: David Vernet Date: Wed, 24 Jul 2024 12:14:58 -0500 Subject: [PATCH 13/20] libbpf: Don't take direct pointers into BTF data from st_ops In struct bpf_struct_ops, we have take a pointer to a BTF type name, and a struct btf_type. This was presumably done for convenience, but can actually result in subtle and confusing bugs given that BTF data can be invalidated before a program is loaded. For example, in sched_ext, we may sometimes resize a data section after a skeleton has been opened, but before the struct_ops scheduler map has been loaded. This may cause the BTF data to be realloc'd, which can then cause a UAF when loading the program because the struct_ops map has pointers directly into the BTF data. We're already storing the BTF type_id in struct bpf_struct_ops. Because type_id is stable, we can therefore just update the places where we were looking at those pointers to instead do the lookups we need from the type_id. Fixes: 590a00888250 ("bpf: libbpf: Add STRUCT_OPS support") Signed-off-by: David Vernet Signed-off-by: Andrii Nakryiko Link: https://lore.kernel.org/bpf/20240724171459.281234-1-void@manifault.com --- src/libbpf.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/libbpf.c b/src/libbpf.c index a3be6f8fa..e55353887 100644 --- a/src/libbpf.c +++ b/src/libbpf.c @@ -496,8 +496,6 @@ struct bpf_program { }; struct bpf_struct_ops { - const char *tname; - const struct btf_type *type; struct bpf_program **progs; __u32 *kern_func_off; /* e.g. struct tcp_congestion_ops in bpf_prog's btf format */ @@ -1083,11 +1081,14 @@ static int bpf_object_adjust_struct_ops_autoload(struct bpf_object *obj) continue; for (j = 0; j < obj->nr_maps; ++j) { + const struct btf_type *type; + map = &obj->maps[j]; if (!bpf_map__is_struct_ops(map)) continue; - vlen = btf_vlen(map->st_ops->type); + type = btf__type_by_id(obj->btf, map->st_ops->type_id); + vlen = btf_vlen(type); for (k = 0; k < vlen; ++k) { slot_prog = map->st_ops->progs[k]; if (prog != slot_prog) @@ -1121,8 +1122,8 @@ static int bpf_map__init_kern_struct_ops(struct bpf_map *map) int err; st_ops = map->st_ops; - type = st_ops->type; - tname = st_ops->tname; + type = btf__type_by_id(btf, st_ops->type_id); + tname = btf__name_by_offset(btf, type->name_off); err = find_struct_ops_kern_types(obj, tname, &mod_btf, &kern_type, &kern_type_id, &kern_vtype, &kern_vtype_id, @@ -1423,8 +1424,6 @@ static int init_struct_ops_maps(struct bpf_object *obj, const char *sec_name, memcpy(st_ops->data, data->d_buf + vsi->offset, type->size); - st_ops->tname = tname; - st_ops->type = type; st_ops->type_id = type_id; pr_debug("struct_ops init: struct %s(type_id=%u) %s found at offset %u\n", @@ -8445,11 +8444,13 @@ static int bpf_object__resolve_externs(struct bpf_object *obj, static void bpf_map_prepare_vdata(const struct bpf_map *map) { + const struct btf_type *type; struct bpf_struct_ops *st_ops; __u32 i; st_ops = map->st_ops; - for (i = 0; i < btf_vlen(st_ops->type); i++) { + type = btf__type_by_id(map->obj->btf, st_ops->type_id); + for (i = 0; i < btf_vlen(type); i++) { struct bpf_program *prog = st_ops->progs[i]; void *kern_data; int prog_fd; @@ -9712,6 +9713,7 @@ static struct bpf_map *find_struct_ops_map_by_offset(struct bpf_object *obj, static int bpf_object__collect_st_ops_relos(struct bpf_object *obj, Elf64_Shdr *shdr, Elf_Data *data) { + const struct btf_type *type; const struct btf_member *member; struct bpf_struct_ops *st_ops; struct bpf_program *prog; @@ -9771,13 +9773,14 @@ static int bpf_object__collect_st_ops_relos(struct bpf_object *obj, } insn_idx = sym->st_value / BPF_INSN_SZ; - member = find_member_by_offset(st_ops->type, moff * 8); + type = btf__type_by_id(btf, st_ops->type_id); + member = find_member_by_offset(type, moff * 8); if (!member) { pr_warn("struct_ops reloc %s: cannot find member at moff %u\n", map->name, moff); return -EINVAL; } - member_idx = member - btf_members(st_ops->type); + member_idx = member - btf_members(type); name = btf__name_by_offset(btf, member->name_off); if (!resolve_func_ptr(btf, member->type, NULL)) { From 8b2948479013b250bdafeec752533911152c4185 Mon Sep 17 00:00:00 2001 From: Alan Maguire Date: Sat, 10 Aug 2024 10:35:04 +0100 Subject: [PATCH 14/20] libbpf: Fix license for btf_relocate.c License should be // SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) ...as with other libbpf files. Fixes: 19e00c897d50 ("libbpf: Split BTF relocation") Reported-by: Neill Kapron Signed-off-by: Alan Maguire Signed-off-by: Andrii Nakryiko Acked-by: Yonghong Song Link: https://lore.kernel.org/bpf/20240810093504.2111134-1-alan.maguire@oracle.com --- src/btf_relocate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/btf_relocate.c b/src/btf_relocate.c index 17f8b32f9..4f7399d85 100644 --- a/src/btf_relocate.c +++ b/src/btf_relocate.c @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: GPL-2.0 +// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) /* Copyright (c) 2024, Oracle and/or its affiliates. */ #ifndef _GNU_SOURCE From 33b22671c2cd92ef2656004cf8d0ac9e250e9663 Mon Sep 17 00:00:00 2001 From: Sam James Date: Tue, 13 Aug 2024 20:49:06 +0100 Subject: [PATCH 15/20] libbpf: Workaround -Wmaybe-uninitialized false positive MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In `elf_close`, we get this with GCC 15 -O3 (at least): ``` In function ‘elf_close’, inlined from ‘elf_close’ at elf.c:53:6, inlined from ‘elf_find_func_offset_from_file’ at elf.c:384:2: elf.c:57:9: warning: ‘elf_fd.elf’ may be used uninitialized [-Wmaybe-uninitialized] 57 | elf_end(elf_fd->elf); | ^~~~~~~~~~~~~~~~~~~~ elf.c: In function ‘elf_find_func_offset_from_file’: elf.c:377:23: note: ‘elf_fd.elf’ was declared here 377 | struct elf_fd elf_fd; | ^~~~~~ In function ‘elf_close’, inlined from ‘elf_close’ at elf.c:53:6, inlined from ‘elf_find_func_offset_from_file’ at elf.c:384:2: elf.c:58:9: warning: ‘elf_fd.fd’ may be used uninitialized [-Wmaybe-uninitialized] 58 | close(elf_fd->fd); | ^~~~~~~~~~~~~~~~~ elf.c: In function ‘elf_find_func_offset_from_file’: elf.c:377:23: note: ‘elf_fd.fd’ was declared here 377 | struct elf_fd elf_fd; | ^~~~~~ ``` In reality, our use is fine, it's just that GCC doesn't model errno here (see linked GCC bug). Suppress -Wmaybe-uninitialized accordingly by initializing elf_fd.fd to -1 and elf_fd.elf to NULL. I've done this in two other functions as well given it could easily occur there too (same access/use pattern). Signed-off-by: Sam James Signed-off-by: Andrii Nakryiko Link: https://gcc.gnu.org/PR114952 Link: https://lore.kernel.org/bpf/14ec488a1cac02794c2fa2b83ae0cef1bce2cb36.1723578546.git.sam@gentoo.org --- src/elf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/elf.c b/src/elf.c index c92e02394..b5ab1cb13 100644 --- a/src/elf.c +++ b/src/elf.c @@ -28,6 +28,9 @@ int elf_open(const char *binary_path, struct elf_fd *elf_fd) int fd, ret; Elf *elf; + elf_fd->elf = NULL; + elf_fd->fd = -1; + if (elf_version(EV_CURRENT) == EV_NONE) { pr_warn("elf: failed to init libelf for %s\n", binary_path); return -LIBBPF_ERRNO__LIBELF; From 4bd31a104469afea3fc19b531844d9d36203ed55 Mon Sep 17 00:00:00 2001 From: Jordan Rome Date: Fri, 23 Aug 2024 12:51:00 -0700 Subject: [PATCH 16/20] bpf: Add bpf_copy_from_user_str kfunc This adds a kfunc wrapper around strncpy_from_user, which can be called from sleepable BPF programs. This matches the non-sleepable 'bpf_probe_read_user_str' helper except it includes an additional 'flags' param, which allows consumers to clear the entire destination buffer on success or failure. Signed-off-by: Jordan Rome Link: https://lore.kernel.org/r/20240823195101.3621028-1-linux@jordanrome.com Signed-off-by: Alexei Starovoitov --- include/uapi/linux/bpf.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index 35bcf52db..f329ee446 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -7512,4 +7512,13 @@ struct bpf_iter_num { __u64 __opaque[1]; } __attribute__((aligned(8))); +/* + * Flags to control BPF kfunc behaviour. + * - BPF_F_PAD_ZEROS: Pad destination buffer with zeros. (See the respective + * helper documentation for details.) + */ +enum bpf_kfunc_flags { + BPF_F_PAD_ZEROS = (1ULL << 0), +}; + #endif /* _UAPI__LINUX_BPF_H__ */ From f6f24022d3054d2855612e642f8fe9f1148b4275 Mon Sep 17 00:00:00 2001 From: Andrii Nakryiko Date: Tue, 27 Aug 2024 13:37:21 -0700 Subject: [PATCH 17/20] libbpf: Fix bpf_object__open_skeleton()'s mishandling of options MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We do an ugly copying of options in bpf_object__open_skeleton() just to be able to set object name from skeleton's recorded name (while still allowing user to override it through opts->object_name). This is not just ugly, but it also is broken due to memcpy() that doesn't take into account potential skel_opts' and user-provided opts' sizes differences due to backward and forward compatibility. This leads to copying over extra bytes and then failing to validate options properly. It could, technically, lead also to SIGSEGV, if we are unlucky. So just get rid of that memory copy completely and instead pass default object name into bpf_object_open() directly, simplifying all this significantly. The rule now is that obj_name should be non-NULL for bpf_object_open() when called with in-memory buffer, so validate that explicitly as well. We adopt bpf_object__open_mem() to this as well and generate default name (based on buffer memory address and size) outside of bpf_object_open(). Fixes: d66562fba1ce ("libbpf: Add BPF object skeleton support") Reported-by: Daniel Müller Signed-off-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann Reviewed-by: Daniel Müller Acked-by: Eduard Zingerman Link: https://lore.kernel.org/bpf/20240827203721.1145494-1-andrii@kernel.org --- src/libbpf.c | 52 +++++++++++++++++++--------------------------------- 1 file changed, 19 insertions(+), 33 deletions(-) diff --git a/src/libbpf.c b/src/libbpf.c index e55353887..d3a542649 100644 --- a/src/libbpf.c +++ b/src/libbpf.c @@ -7905,16 +7905,19 @@ static int bpf_object_init_progs(struct bpf_object *obj, const struct bpf_object } static struct bpf_object *bpf_object_open(const char *path, const void *obj_buf, size_t obj_buf_sz, + const char *obj_name, const struct bpf_object_open_opts *opts) { - const char *obj_name, *kconfig, *btf_tmp_path, *token_path; + const char *kconfig, *btf_tmp_path, *token_path; struct bpf_object *obj; - char tmp_name[64]; int err; char *log_buf; size_t log_size; __u32 log_level; + if (obj_buf && !obj_name) + return ERR_PTR(-EINVAL); + if (elf_version(EV_CURRENT) == EV_NONE) { pr_warn("failed to init libelf for %s\n", path ? : "(mem buf)"); @@ -7924,16 +7927,12 @@ static struct bpf_object *bpf_object_open(const char *path, const void *obj_buf, if (!OPTS_VALID(opts, bpf_object_open_opts)) return ERR_PTR(-EINVAL); - obj_name = OPTS_GET(opts, object_name, NULL); + obj_name = OPTS_GET(opts, object_name, NULL) ?: obj_name; if (obj_buf) { - if (!obj_name) { - snprintf(tmp_name, sizeof(tmp_name), "%lx-%lx", - (unsigned long)obj_buf, - (unsigned long)obj_buf_sz); - obj_name = tmp_name; - } path = obj_name; pr_debug("loading object '%s' from buffer\n", obj_name); + } else { + pr_debug("loading object from %s\n", path); } log_buf = OPTS_GET(opts, kernel_log_buf, NULL); @@ -8017,9 +8016,7 @@ bpf_object__open_file(const char *path, const struct bpf_object_open_opts *opts) if (!path) return libbpf_err_ptr(-EINVAL); - pr_debug("loading %s\n", path); - - return libbpf_ptr(bpf_object_open(path, NULL, 0, opts)); + return libbpf_ptr(bpf_object_open(path, NULL, 0, NULL, opts)); } struct bpf_object *bpf_object__open(const char *path) @@ -8031,10 +8028,15 @@ struct bpf_object * bpf_object__open_mem(const void *obj_buf, size_t obj_buf_sz, const struct bpf_object_open_opts *opts) { + char tmp_name[64]; + if (!obj_buf || obj_buf_sz == 0) return libbpf_err_ptr(-EINVAL); - return libbpf_ptr(bpf_object_open(NULL, obj_buf, obj_buf_sz, opts)); + /* create a (quite useless) default "name" for this memory buffer object */ + snprintf(tmp_name, sizeof(tmp_name), "%lx-%zx", (unsigned long)obj_buf, obj_buf_sz); + + return libbpf_ptr(bpf_object_open(NULL, obj_buf, obj_buf_sz, tmp_name, opts)); } static int bpf_object_unload(struct bpf_object *obj) @@ -13761,29 +13763,13 @@ static int populate_skeleton_progs(const struct bpf_object *obj, int bpf_object__open_skeleton(struct bpf_object_skeleton *s, const struct bpf_object_open_opts *opts) { - DECLARE_LIBBPF_OPTS(bpf_object_open_opts, skel_opts, - .object_name = s->name, - ); struct bpf_object *obj; int err; - /* Attempt to preserve opts->object_name, unless overriden by user - * explicitly. Overwriting object name for skeletons is discouraged, - * as it breaks global data maps, because they contain object name - * prefix as their own map name prefix. When skeleton is generated, - * bpftool is making an assumption that this name will stay the same. - */ - if (opts) { - memcpy(&skel_opts, opts, sizeof(*opts)); - if (!opts->object_name) - skel_opts.object_name = s->name; - } - - obj = bpf_object__open_mem(s->data, s->data_sz, &skel_opts); - err = libbpf_get_error(obj); - if (err) { - pr_warn("failed to initialize skeleton BPF object '%s': %d\n", - s->name, err); + obj = bpf_object_open(NULL, s->data, s->data_sz, s->name, opts); + if (IS_ERR(obj)) { + err = PTR_ERR(obj); + pr_warn("failed to initialize skeleton BPF object '%s': %d\n", s->name, err); return libbpf_err(err); } From fe28fae57a9463fbf935b2fbdeb1aaa8390aa6a2 Mon Sep 17 00:00:00 2001 From: Tony Ambardar Date: Fri, 30 Aug 2024 02:51:50 -0700 Subject: [PATCH 18/20] libbpf: Ensure new BTF objects inherit input endianness New split BTF needs to preserve base's endianness. Similarly, when creating a distilled BTF, we need to preserve original endianness. Fix by updating libbpf's btf__distill_base() and btf_new_empty() to retain the byte order of any source BTF objects when creating new ones. Fixes: ba451366bf44 ("libbpf: Implement basic split BTF support") Fixes: 58e185a0dc35 ("libbpf: Add btf__distill_base() creating split BTF with distilled base BTF") Reported-by: Song Liu Reported-by: Eduard Zingerman Suggested-by: Eduard Zingerman Signed-off-by: Tony Ambardar Signed-off-by: Andrii Nakryiko Tested-by: Alan Maguire Acked-by: Eduard Zingerman Link: https://lore.kernel.org/bpf/6358db36c5f68b07873a0a5be2d062b1af5ea5f8.camel@gmail.com/ Link: https://lore.kernel.org/bpf/20240830095150.278881-1-tony.ambardar@gmail.com --- src/btf.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/btf.c b/src/btf.c index 32c00db3b..40aae244e 100644 --- a/src/btf.c +++ b/src/btf.c @@ -996,6 +996,7 @@ static struct btf *btf_new_empty(struct btf *base_btf) btf->base_btf = base_btf; btf->start_id = btf__type_cnt(base_btf); btf->start_str_off = base_btf->hdr->str_len; + btf->swapped_endian = base_btf->swapped_endian; } /* +1 for empty string at offset 0 */ @@ -5394,6 +5395,9 @@ int btf__distill_base(const struct btf *src_btf, struct btf **new_base_btf, new_base = btf__new_empty(); if (!new_base) return libbpf_err(-ENOMEM); + + btf__set_endianness(new_base, btf__endianness(src_btf)); + dist.id_map = calloc(n, sizeof(*dist.id_map)); if (!dist.id_map) { err = -ENOMEM; From 76c9f50f3e30d2bb096b761bbc8c171198e0bb88 Mon Sep 17 00:00:00 2001 From: Andrii Nakryiko Date: Fri, 30 Aug 2024 15:21:55 -0700 Subject: [PATCH 19/20] sync: latest libbpf changes from kernel Syncing latest libbpf commits from kernel repository. Baseline bpf-next commit: ec5b8c76ab1c6d163762d60cfbedcd27e7527144 Checkpoint bpf-next commit: 2ad6d23f465a4f851e3bcf6d74c315ce7b2c205b Baseline bpf commit: e1533b6319ab9c3a97dad314dd88b3783bc41b69 Checkpoint bpf commit: b408473ea01b2e499d23503e2bf898416da9d7ac Alan Maguire (1): libbpf: Fix license for btf_relocate.c Andrii Nakryiko (2): libbpf: Fix no-args func prototype BTF dumping syntax libbpf: Fix bpf_object__open_skeleton()'s mishandling of options David Vernet (1): libbpf: Don't take direct pointers into BTF data from st_ops Jordan Rome (1): bpf: Add bpf_copy_from_user_str kfunc Kan Liang (1): perf/x86/intel: Support new data source for Lunar Lake Sam James (1): libbpf: Workaround -Wmaybe-uninitialized false positive Stanislav Fomichev (1): selftests/bpf: Add XDP_UMEM_TX_METADATA_LEN to XSK TX metadata test Tony Ambardar (1): libbpf: Ensure new BTF objects inherit input endianness include/uapi/linux/bpf.h | 9 ++++ include/uapi/linux/if_xdp.h | 4 ++ include/uapi/linux/perf_event.h | 6 ++- src/btf.c | 4 ++ src/btf_dump.c | 8 ++-- src/btf_relocate.c | 2 +- src/elf.c | 3 ++ src/libbpf.c | 75 ++++++++++++++------------------- 8 files changed, 62 insertions(+), 49 deletions(-) Signed-off-by: Andrii Nakryiko --- BPF-CHECKPOINT-COMMIT | 2 +- CHECKPOINT-COMMIT | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BPF-CHECKPOINT-COMMIT b/BPF-CHECKPOINT-COMMIT index a63dd8738..71d9e0784 100644 --- a/BPF-CHECKPOINT-COMMIT +++ b/BPF-CHECKPOINT-COMMIT @@ -1 +1 @@ -e1533b6319ab9c3a97dad314dd88b3783bc41b69 +b408473ea01b2e499d23503e2bf898416da9d7ac diff --git a/CHECKPOINT-COMMIT b/CHECKPOINT-COMMIT index 0205e2ace..bbef93051 100644 --- a/CHECKPOINT-COMMIT +++ b/CHECKPOINT-COMMIT @@ -1 +1 @@ -ec5b8c76ab1c6d163762d60cfbedcd27e7527144 +2ad6d23f465a4f851e3bcf6d74c315ce7b2c205b From caa17bdcbfc58e68eaf4d017c058e6577606bf56 Mon Sep 17 00:00:00 2001 From: Andrii Nakryiko Date: Fri, 30 Aug 2024 15:43:00 -0700 Subject: [PATCH 20/20] ci: regenerate vmlinux.h Regenerated latest vmlinux.h for old kernels. Signed-off-by: Andrii Nakryiko --- .github/actions/build-selftests/vmlinux.h | 3718 ++++++++++++++------- 1 file changed, 2449 insertions(+), 1269 deletions(-) diff --git a/.github/actions/build-selftests/vmlinux.h b/.github/actions/build-selftests/vmlinux.h index 651602108..e7029393d 100644 --- a/.github/actions/build-selftests/vmlinux.h +++ b/.github/actions/build-selftests/vmlinux.h @@ -5,6 +5,14 @@ #pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record) #endif +#ifndef __ksym +#define __ksym __attribute__((section(".ksyms"))) +#endif + +#ifndef __weak +#define __weak __attribute__((weak)) +#endif + enum { ACPI_GENL_CMD_UNSPEC = 0, ACPI_GENL_CMD_EVENT = 1, @@ -641,17 +649,11 @@ enum { BLK_MQ_F_TAG_QUEUE_SHARED = 2, BLK_MQ_F_STACKING = 4, BLK_MQ_F_TAG_HCTX_SHARED = 8, - BLK_MQ_F_BLOCKING = 32, - BLK_MQ_F_NO_SCHED = 64, - BLK_MQ_F_NO_SCHED_BY_DEFAULT = 128, - BLK_MQ_F_ALLOC_POLICY_START_BIT = 8, + BLK_MQ_F_BLOCKING = 16, + BLK_MQ_F_NO_SCHED = 32, + BLK_MQ_F_NO_SCHED_BY_DEFAULT = 64, + BLK_MQ_F_ALLOC_POLICY_START_BIT = 7, BLK_MQ_F_ALLOC_POLICY_BITS = 1, - BLK_MQ_S_STOPPED = 0, - BLK_MQ_S_TAG_ACTIVE = 1, - BLK_MQ_S_SCHED_RESTART = 2, - BLK_MQ_S_INACTIVE = 3, - BLK_MQ_MAX_DEPTH = 10240, - BLK_MQ_CPU_WORK_BATCH = 8, }; enum { @@ -666,11 +668,25 @@ enum { BLK_MQ_REQ_PM = 4, }; +enum { + BLK_MQ_S_STOPPED = 0, + BLK_MQ_S_TAG_ACTIVE = 1, + BLK_MQ_S_SCHED_RESTART = 2, + BLK_MQ_S_INACTIVE = 3, + BLK_MQ_S_MAX = 4, +}; + enum { BLK_MQ_UNIQUE_TAG_BITS = 16, BLK_MQ_UNIQUE_TAG_MASK = 65535, }; +enum { + BLK_TAG_ALLOC_FIFO = 0, + BLK_TAG_ALLOC_RR = 1, + BLK_TAG_ALLOC_MAX = 2, +}; + enum { BLOCK_BITMAP = 0, INODE_BITMAP = 1, @@ -1203,6 +1219,12 @@ enum { CGRP_ROOT_MEMORY_LOCAL_EVENTS = 131072, CGRP_ROOT_MEMORY_RECURSIVE_PROT = 262144, CGRP_ROOT_MEMORY_HUGETLB_ACCOUNTING = 524288, + CGRP_ROOT_PIDS_LOCAL_EVENTS = 1048576, +}; + +enum { + CMIS_MODULE_LOW_PWR = 1, + CMIS_MODULE_READY = 3, }; enum { @@ -1603,6 +1625,12 @@ enum { ETHTOOL_A_BITSET_MAX = 5, }; +enum { + ETHTOOL_A_C33_PSE_PW_LIMIT_UNSPEC = 0, + ETHTOOL_A_C33_PSE_PW_LIMIT_MIN = 1, + ETHTOOL_A_C33_PSE_PW_LIMIT_MAX = 2, +}; + enum { ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0, ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 1, @@ -1752,8 +1780,10 @@ enum { ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES = 26, ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES = 27, ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS = 28, - __ETHTOOL_A_COALESCE_CNT = 29, - ETHTOOL_A_COALESCE_MAX = 28, + ETHTOOL_A_COALESCE_RX_PROFILE = 29, + ETHTOOL_A_COALESCE_TX_PROFILE = 30, + __ETHTOOL_A_COALESCE_CNT = 31, + ETHTOOL_A_COALESCE_MAX = 30, }; enum { @@ -1818,6 +1848,15 @@ enum { ETHTOOL_A_HEADER_MAX = 3, }; +enum { + ETHTOOL_A_IRQ_MODERATION_UNSPEC = 0, + ETHTOOL_A_IRQ_MODERATION_USEC = 1, + ETHTOOL_A_IRQ_MODERATION_PKTS = 2, + ETHTOOL_A_IRQ_MODERATION_COMPS = 3, + __ETHTOOL_A_IRQ_MODERATION_CNT = 4, + ETHTOOL_A_IRQ_MODERATION_MAX = 3, +}; + enum { ETHTOOL_A_LINKINFO_UNSPEC = 0, ETHTOOL_A_LINKINFO_HEADER = 1, @@ -1902,6 +1941,19 @@ enum { ETHTOOL_A_MODULE_EEPROM_MAX = 7, }; +enum { + ETHTOOL_A_MODULE_FW_FLASH_UNSPEC = 0, + ETHTOOL_A_MODULE_FW_FLASH_HEADER = 1, + ETHTOOL_A_MODULE_FW_FLASH_FILE_NAME = 2, + ETHTOOL_A_MODULE_FW_FLASH_PASSWORD = 3, + ETHTOOL_A_MODULE_FW_FLASH_STATUS = 4, + ETHTOOL_A_MODULE_FW_FLASH_STATUS_MSG = 5, + ETHTOOL_A_MODULE_FW_FLASH_DONE = 6, + ETHTOOL_A_MODULE_FW_FLASH_TOTAL = 7, + __ETHTOOL_A_MODULE_FW_FLASH_CNT = 8, + ETHTOOL_A_MODULE_FW_FLASH_MAX = 7, +}; + enum { ETHTOOL_A_MODULE_UNSPEC = 0, ETHTOOL_A_MODULE_HEADER = 1, @@ -1964,6 +2016,13 @@ enum { ETHTOOL_A_PRIVFLAGS_MAX = 2, }; +enum { + ETHTOOL_A_PROFILE_UNSPEC = 0, + ETHTOOL_A_PROFILE_IRQ_MODERATION = 1, + __ETHTOOL_A_PROFILE_CNT = 2, + ETHTOOL_A_PROFILE_MAX = 1, +}; + enum { ETHTOOL_A_PSE_UNSPEC = 0, ETHTOOL_A_PSE_HEADER = 1, @@ -1973,8 +2032,14 @@ enum { ETHTOOL_A_C33_PSE_ADMIN_STATE = 5, ETHTOOL_A_C33_PSE_ADMIN_CONTROL = 6, ETHTOOL_A_C33_PSE_PW_D_STATUS = 7, - __ETHTOOL_A_PSE_CNT = 8, - ETHTOOL_A_PSE_MAX = 7, + ETHTOOL_A_C33_PSE_PW_CLASS = 8, + ETHTOOL_A_C33_PSE_ACTUAL_PW = 9, + ETHTOOL_A_C33_PSE_EXT_STATE = 10, + ETHTOOL_A_C33_PSE_EXT_SUBSTATE = 11, + ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT = 12, + ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES = 13, + __ETHTOOL_A_PSE_CNT = 14, + ETHTOOL_A_PSE_MAX = 13, }; enum { @@ -2234,8 +2299,9 @@ enum { ETHTOOL_MSG_PLCA_NTF = 41, ETHTOOL_MSG_MM_GET_REPLY = 42, ETHTOOL_MSG_MM_NTF = 43, - __ETHTOOL_MSG_KERNEL_CNT = 44, - ETHTOOL_MSG_KERNEL_MAX = 43, + ETHTOOL_MSG_MODULE_FW_FLASH_NTF = 44, + __ETHTOOL_MSG_KERNEL_CNT = 45, + ETHTOOL_MSG_KERNEL_MAX = 44, }; enum { @@ -2283,8 +2349,9 @@ enum { ETHTOOL_MSG_PLCA_GET_STATUS = 41, ETHTOOL_MSG_MM_GET = 42, ETHTOOL_MSG_MM_SET = 43, - __ETHTOOL_MSG_USER_CNT = 44, - ETHTOOL_MSG_USER_MAX = 43, + ETHTOOL_MSG_MODULE_FW_FLASH_ACT = 44, + __ETHTOOL_MSG_USER_CNT = 45, + ETHTOOL_MSG_USER_MAX = 44, }; enum { @@ -2456,6 +2523,12 @@ enum { FB_BLANK_POWERDOWN = 4, }; +enum { + FGRAPH_TYPE_RESERVED = 0, + FGRAPH_TYPE_BITMAP = 1, + FGRAPH_TYPE_DATA = 2, +}; + enum { FIB6_NO_SERNUM_CHANGE = 0, }; @@ -2664,6 +2737,7 @@ enum { FTRACE_OPS_FL_TRACE_ARRAY = 32768, FTRACE_OPS_FL_PERMANENT = 65536, FTRACE_OPS_FL_DIRECT = 131072, + FTRACE_OPS_FL_SUBOP = 262144, }; enum { @@ -3629,7 +3703,6 @@ enum { enum { IO_EVENTFD_OP_SIGNAL_BIT = 0, - IO_EVENTFD_OP_FREE_BIT = 1, }; enum { @@ -3740,6 +3813,7 @@ enum { IPPROTO_MPLS = 137, IPPROTO_ETHERNET = 143, IPPROTO_RAW = 255, + IPPROTO_SMC = 256, IPPROTO_MPTCP = 262, IPPROTO_MAX = 263, }; @@ -3945,6 +4019,7 @@ enum { IRQ_DOMAIN_FLAG_NO_MAP = 64, IRQ_DOMAIN_FLAG_MSI_PARENT = 256, IRQ_DOMAIN_FLAG_MSI_DEVICE = 512, + IRQ_DOMAIN_FLAG_DESTROY_GC = 1024, IRQ_DOMAIN_FLAG_NONCORE = 65536, }; @@ -4771,6 +4846,11 @@ enum { MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ = 128, }; +enum { + MEMORY_RECLAIM_SWAPPINESS = 0, + MEMORY_RECLAIM_NULL = 1, +}; + enum { MEMREMAP_WB = 1, MEMREMAP_WT = 2, @@ -4893,6 +4973,7 @@ enum { MSI_FLAG_FREE_MSI_DESCS = 64, MSI_FLAG_USE_DEV_FWNODE = 128, MSI_FLAG_PARENT_PM_DEV = 256, + MSI_FLAG_PCI_MSI_MASK_PARENT = 512, MSI_GENERIC_FLAGS_MASK = 65535, MSI_DOMAIN_FLAGS_MASK = 4294901760, MSI_FLAG_MULTI_PCI_MSI = 65536, @@ -5172,27 +5253,28 @@ enum { NETDEV_A_QSTATS_RX_ALLOC_FAIL = 12, NETDEV_A_QSTATS_RX_HW_DROPS = 13, NETDEV_A_QSTATS_RX_HW_DROP_OVERRUNS = 14, - NETDEV_A_QSTATS_RX_CSUM_UNNECESSARY = 15, - NETDEV_A_QSTATS_RX_CSUM_NONE = 16, - NETDEV_A_QSTATS_RX_CSUM_BAD = 17, - NETDEV_A_QSTATS_RX_HW_GRO_PACKETS = 18, - NETDEV_A_QSTATS_RX_HW_GRO_BYTES = 19, - NETDEV_A_QSTATS_RX_HW_GRO_WIRE_PACKETS = 20, - NETDEV_A_QSTATS_RX_HW_GRO_WIRE_BYTES = 21, - NETDEV_A_QSTATS_RX_HW_DROP_RATELIMITS = 22, - NETDEV_A_QSTATS_TX_HW_DROPS = 23, - NETDEV_A_QSTATS_TX_HW_DROP_ERRORS = 24, - NETDEV_A_QSTATS_TX_CSUM_NONE = 25, - NETDEV_A_QSTATS_TX_NEEDS_CSUM = 26, - NETDEV_A_QSTATS_TX_HW_GSO_PACKETS = 27, - NETDEV_A_QSTATS_TX_HW_GSO_BYTES = 28, - NETDEV_A_QSTATS_TX_HW_GSO_WIRE_PACKETS = 29, - NETDEV_A_QSTATS_TX_HW_GSO_WIRE_BYTES = 30, - NETDEV_A_QSTATS_TX_HW_DROP_RATELIMITS = 31, - NETDEV_A_QSTATS_TX_STOP = 32, - NETDEV_A_QSTATS_TX_WAKE = 33, - __NETDEV_A_QSTATS_MAX = 34, - NETDEV_A_QSTATS_MAX = 33, + NETDEV_A_QSTATS_RX_CSUM_COMPLETE = 15, + NETDEV_A_QSTATS_RX_CSUM_UNNECESSARY = 16, + NETDEV_A_QSTATS_RX_CSUM_NONE = 17, + NETDEV_A_QSTATS_RX_CSUM_BAD = 18, + NETDEV_A_QSTATS_RX_HW_GRO_PACKETS = 19, + NETDEV_A_QSTATS_RX_HW_GRO_BYTES = 20, + NETDEV_A_QSTATS_RX_HW_GRO_WIRE_PACKETS = 21, + NETDEV_A_QSTATS_RX_HW_GRO_WIRE_BYTES = 22, + NETDEV_A_QSTATS_RX_HW_DROP_RATELIMITS = 23, + NETDEV_A_QSTATS_TX_HW_DROPS = 24, + NETDEV_A_QSTATS_TX_HW_DROP_ERRORS = 25, + NETDEV_A_QSTATS_TX_CSUM_NONE = 26, + NETDEV_A_QSTATS_TX_NEEDS_CSUM = 27, + NETDEV_A_QSTATS_TX_HW_GSO_PACKETS = 28, + NETDEV_A_QSTATS_TX_HW_GSO_BYTES = 29, + NETDEV_A_QSTATS_TX_HW_GSO_WIRE_PACKETS = 30, + NETDEV_A_QSTATS_TX_HW_GSO_WIRE_BYTES = 31, + NETDEV_A_QSTATS_TX_HW_DROP_RATELIMITS = 32, + NETDEV_A_QSTATS_TX_STOP = 33, + NETDEV_A_QSTATS_TX_WAKE = 34, + __NETDEV_A_QSTATS_MAX = 35, + NETDEV_A_QSTATS_MAX = 34, }; enum { @@ -5863,11 +5945,6 @@ enum { DEVICE_COUNT_RESOURCE = 17, }; -enum { - PCONFIG_CPUID_SUBLEAF_INVALID = 0, - PCONFIG_CPUID_SUBLEAF_TARGETID = 1, -}; - enum { PERCPU_REF_INIT_ATOMIC = 1, PERCPU_REF_INIT_DEAD = 2, @@ -6098,6 +6175,23 @@ enum { PPC = 1, }; +enum { + QUEUE_FLAG_DYING = 0, + QUEUE_FLAG_NOMERGES = 1, + QUEUE_FLAG_SAME_COMP = 2, + QUEUE_FLAG_FAIL_IO = 3, + QUEUE_FLAG_NOXMERGES = 4, + QUEUE_FLAG_SAME_FORCE = 5, + QUEUE_FLAG_INIT_DONE = 6, + QUEUE_FLAG_STATS = 7, + QUEUE_FLAG_REGISTERED = 8, + QUEUE_FLAG_QUIESCED = 9, + QUEUE_FLAG_RQ_ALLOC_TIME = 10, + QUEUE_FLAG_HCTX_ACTIVE = 11, + QUEUE_FLAG_SQ_SCHED = 12, + QUEUE_FLAG_MAX = 13, +}; + enum { Q_REQUEUE_PI_NONE = 0, Q_REQUEUE_PI_IGNORE = 1, @@ -6188,11 +6282,10 @@ enum { REQ_F_CLEAR_POLLIN = 67108864ULL, REQ_F_HASH_LOCKED = 134217728ULL, REQ_F_POLL_NO_LAZY = 1073741824ULL, - REQ_F_CANCEL_SEQ = 2147483648ULL, - REQ_F_CAN_POLL = 4294967296ULL, - REQ_F_BL_EMPTY = 8589934592ULL, - REQ_F_BL_NO_RECYCLE = 17179869184ULL, - REQ_F_BUFFERS_COMMIT = 34359738368ULL, + REQ_F_CAN_POLL = 2147483648ULL, + REQ_F_BL_EMPTY = 4294967296ULL, + REQ_F_BL_NO_RECYCLE = 8589934592ULL, + REQ_F_BUFFERS_COMMIT = 17179869184ULL, }; enum { @@ -6226,12 +6319,11 @@ enum { REQ_F_SUPPORT_NOWAIT_BIT = 28, REQ_F_ISREG_BIT = 29, REQ_F_POLL_NO_LAZY_BIT = 30, - REQ_F_CANCEL_SEQ_BIT = 31, - REQ_F_CAN_POLL_BIT = 32, - REQ_F_BL_EMPTY_BIT = 33, - REQ_F_BL_NO_RECYCLE_BIT = 34, - REQ_F_BUFFERS_COMMIT_BIT = 35, - __REQ_F_LAST_BIT = 36, + REQ_F_CAN_POLL_BIT = 31, + REQ_F_BL_EMPTY_BIT = 32, + REQ_F_BL_NO_RECYCLE_BIT = 33, + REQ_F_BUFFERS_COMMIT_BIT = 34, + __REQ_F_LAST_BIT = 35, }; enum { @@ -6245,14 +6337,6 @@ enum { RES_RSVD_FAILCNT = 7, }; -enum { - RES_USAGE___2 = 0, - RES_LIMIT___2 = 1, - RES_MAX_USAGE___2 = 2, - RES_FAILCNT___2 = 3, - RES_SOFT_LIMIT = 4, -}; - enum { RTAX_UNSPEC = 0, RTAX_LOCK = 1, @@ -6557,6 +6641,136 @@ enum { SELNL_MSG_MAX = 18, }; +enum { + SFF8024_ID_UNK = 0, + SFF8024_ID_SFF_8472 = 2, + SFF8024_ID_SFP = 3, + SFF8024_ID_DWDM_SFP = 11, + SFF8024_ID_QSFP_8438 = 12, + SFF8024_ID_QSFP_8436_8636 = 13, + SFF8024_ID_QSFP28_8636 = 17, + SFF8024_ID_QSFP_DD = 24, + SFF8024_ID_OSFP = 25, + SFF8024_ID_DSFP = 27, + SFF8024_ID_QSFP_PLUS_CMIS = 30, + SFF8024_ID_SFP_DD_CMIS = 31, + SFF8024_ID_SFP_PLUS_CMIS = 32, + SFF8024_ENCODING_UNSPEC = 0, + SFF8024_ENCODING_8B10B = 1, + SFF8024_ENCODING_4B5B = 2, + SFF8024_ENCODING_NRZ = 3, + SFF8024_ENCODING_8472_MANCHESTER = 4, + SFF8024_ENCODING_8472_SONET = 5, + SFF8024_ENCODING_8472_64B66B = 6, + SFF8024_ENCODING_8436_MANCHESTER = 6, + SFF8024_ENCODING_8436_SONET = 4, + SFF8024_ENCODING_8436_64B66B = 5, + SFF8024_ENCODING_256B257B = 7, + SFF8024_ENCODING_PAM4 = 8, + SFF8024_CONNECTOR_UNSPEC = 0, + SFF8024_CONNECTOR_SC = 1, + SFF8024_CONNECTOR_FIBERJACK = 6, + SFF8024_CONNECTOR_LC = 7, + SFF8024_CONNECTOR_MT_RJ = 8, + SFF8024_CONNECTOR_MU = 9, + SFF8024_CONNECTOR_SG = 10, + SFF8024_CONNECTOR_OPTICAL_PIGTAIL = 11, + SFF8024_CONNECTOR_MPO_1X12 = 12, + SFF8024_CONNECTOR_MPO_2X16 = 13, + SFF8024_CONNECTOR_HSSDC_II = 32, + SFF8024_CONNECTOR_COPPER_PIGTAIL = 33, + SFF8024_CONNECTOR_RJ45 = 34, + SFF8024_CONNECTOR_NOSEPARATE = 35, + SFF8024_CONNECTOR_MXC_2X16 = 36, + SFF8024_ECC_UNSPEC = 0, + SFF8024_ECC_100G_25GAUI_C2M_AOC = 1, + SFF8024_ECC_100GBASE_SR4_25GBASE_SR = 2, + SFF8024_ECC_100GBASE_LR4_25GBASE_LR = 3, + SFF8024_ECC_100GBASE_ER4_25GBASE_ER = 4, + SFF8024_ECC_100GBASE_SR10 = 5, + SFF8024_ECC_100GBASE_CR4 = 11, + SFF8024_ECC_25GBASE_CR_S = 12, + SFF8024_ECC_25GBASE_CR_N = 13, + SFF8024_ECC_10GBASE_T_SFI = 22, + SFF8024_ECC_10GBASE_T_SR = 28, + SFF8024_ECC_5GBASE_T = 29, + SFF8024_ECC_2_5GBASE_T = 30, +}; + +enum { + SFP_PHYS_ID = 0, + SFP_PHYS_EXT_ID = 1, + SFP_PHYS_EXT_ID_SFP = 4, + SFP_CONNECTOR = 2, + SFP_COMPLIANCE = 3, + SFP_ENCODING = 11, + SFP_BR_NOMINAL = 12, + SFP_RATE_ID = 13, + SFF_RID_8079 = 1, + SFF_RID_8431_RX_ONLY = 2, + SFF_RID_8431_TX_ONLY = 4, + SFF_RID_8431 = 6, + SFF_RID_10G8G = 14, + SFP_LINK_LEN_SM_KM = 14, + SFP_LINK_LEN_SM_100M = 15, + SFP_LINK_LEN_50UM_OM2_10M = 16, + SFP_LINK_LEN_62_5UM_OM1_10M = 17, + SFP_LINK_LEN_COPPER_1M = 18, + SFP_LINK_LEN_50UM_OM4_10M = 18, + SFP_LINK_LEN_50UM_OM3_10M = 19, + SFP_VENDOR_NAME = 20, + SFP_VENDOR_OUI = 37, + SFP_VENDOR_PN = 40, + SFP_VENDOR_REV = 56, + SFP_OPTICAL_WAVELENGTH_MSB = 60, + SFP_OPTICAL_WAVELENGTH_LSB = 61, + SFP_CABLE_SPEC = 60, + SFP_CC_BASE = 63, + SFP_OPTIONS = 64, + SFP_OPTIONS_HIGH_POWER_LEVEL = 8192, + SFP_OPTIONS_PAGING_A2 = 4096, + SFP_OPTIONS_RETIMER = 2048, + SFP_OPTIONS_COOLED_XCVR = 1024, + SFP_OPTIONS_POWER_DECL = 512, + SFP_OPTIONS_RX_LINEAR_OUT = 256, + SFP_OPTIONS_RX_DECISION_THRESH = 128, + SFP_OPTIONS_TUNABLE_TX = 64, + SFP_OPTIONS_RATE_SELECT = 32, + SFP_OPTIONS_TX_DISABLE = 16, + SFP_OPTIONS_TX_FAULT = 8, + SFP_OPTIONS_LOS_INVERTED = 4, + SFP_OPTIONS_LOS_NORMAL = 2, + SFP_BR_MAX = 66, + SFP_BR_MIN = 67, + SFP_VENDOR_SN = 68, + SFP_DATECODE = 84, + SFP_DIAGMON = 92, + SFP_DIAGMON_DDM = 64, + SFP_DIAGMON_INT_CAL = 32, + SFP_DIAGMON_EXT_CAL = 16, + SFP_DIAGMON_RXPWR_AVG = 8, + SFP_DIAGMON_ADDRMODE = 4, + SFP_ENHOPTS = 93, + SFP_ENHOPTS_ALARMWARN = 128, + SFP_ENHOPTS_SOFT_TX_DISABLE = 64, + SFP_ENHOPTS_SOFT_TX_FAULT = 32, + SFP_ENHOPTS_SOFT_RX_LOS = 16, + SFP_ENHOPTS_SOFT_RATE_SELECT = 8, + SFP_ENHOPTS_APP_SELECT_SFF8079 = 4, + SFP_ENHOPTS_SOFT_RATE_SFF8431 = 2, + SFP_SFF8472_COMPLIANCE = 94, + SFP_SFF8472_COMPLIANCE_NONE = 0, + SFP_SFF8472_COMPLIANCE_REV9_3 = 1, + SFP_SFF8472_COMPLIANCE_REV9_5 = 2, + SFP_SFF8472_COMPLIANCE_REV10_2 = 3, + SFP_SFF8472_COMPLIANCE_REV10_4 = 4, + SFP_SFF8472_COMPLIANCE_REV11_0 = 5, + SFP_SFF8472_COMPLIANCE_REV11_3 = 6, + SFP_SFF8472_COMPLIANCE_REV11_4 = 7, + SFP_SFF8472_COMPLIANCE_REV12_0 = 8, + SFP_CC_EXT = 95, +}; + enum { SKBFL_ZEROCOPY_ENABLE = 1, SKBFL_SHARED_FRAG = 2, @@ -6857,6 +7071,16 @@ enum { __TCA_FLOWER_KEY_CT_FLAGS_MAX = 33, }; +enum { + TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = 1, + TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = 2, + TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM = 4, + TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT = 8, + TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM = 16, + TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT = 32, + __TCA_FLOWER_KEY_FLAGS_MAX = 33, +}; + enum { TCA_FQ_CODEL_UNSPEC = 0, TCA_FQ_CODEL_TARGET = 1, @@ -7268,11 +7492,7 @@ enum { TRACE_INTERNAL_TRANSITION_BIT = 9, TRACE_BRANCH_BIT = 10, TRACE_IRQ_BIT = 11, - TRACE_GRAPH_BIT = 12, - TRACE_GRAPH_DEPTH_START_BIT = 13, - TRACE_GRAPH_DEPTH_END_BIT = 14, - TRACE_GRAPH_NOTRACE_BIT = 15, - TRACE_RECORD_RECURSION_BIT = 16, + TRACE_RECORD_RECURSION_BIT = 12, }; enum { @@ -7282,6 +7502,13 @@ enum { TRACE_FUNC_OPT_HIGHEST_BIT = 4, }; +enum { + TRACE_GRAPH_FL = 1, + TRACE_GRAPH_DEPTH_START_BIT = 2, + TRACE_GRAPH_DEPTH_END_BIT = 3, + TRACE_GRAPH_NOTRACE_BIT = 4, +}; + enum { TRACE_NOP_OPT_ACCEPT = 1, TRACE_NOP_OPT_REFUSE = 2, @@ -7636,6 +7863,26 @@ enum { __PERCPU_REF_FLAG_BITS = 2, }; +enum { + __RQF_STARTED = 0, + __RQF_FLUSH_SEQ = 1, + __RQF_MIXED_MERGE = 2, + __RQF_DONTPREP = 3, + __RQF_SCHED_TAGS = 4, + __RQF_USE_SCHED = 5, + __RQF_FAILED = 6, + __RQF_QUIET = 7, + __RQF_IO_STAT = 8, + __RQF_PM = 9, + __RQF_HASHED = 10, + __RQF_STATS = 11, + __RQF_SPECIAL_PAYLOAD = 12, + __RQF_ZONE_WRITE_PLUGGING = 13, + __RQF_TIMED_OUT = 14, + __RQF_RESV = 15, + __RQF_BITS = 16, +}; + enum { __SCHED_FEAT_PLACE_LAG = 0, __SCHED_FEAT_PLACE_DEADLINE_INITIAL = 1, @@ -8183,7 +8430,8 @@ typedef enum { PHY_INTERFACE_MODE_10GKR = 30, PHY_INTERFACE_MODE_QUSGMII = 31, PHY_INTERFACE_MODE_1000BASEKX = 32, - PHY_INTERFACE_MODE_MAX = 33, + PHY_INTERFACE_MODE_10G_QXGMII = 33, + PHY_INTERFACE_MODE_MAX = 34, } phy_interface_t; typedef enum { @@ -8753,6 +9001,12 @@ enum acpi_irq_model_id { ACPI_IRQ_MODEL_COUNT = 6, }; +enum acpi_madt_multiproc_wakeup_version { + ACPI_MADT_MP_WAKEUP_VERSION_NONE = 0, + ACPI_MADT_MP_WAKEUP_VERSION_V1 = 1, + ACPI_MADT_MP_WAKEUP_VERSION_RESERVED = 2, +}; + enum acpi_madt_type { ACPI_MADT_TYPE_LOCAL_APIC = 0, ACPI_MADT_TYPE_IO_APIC = 1, @@ -9161,6 +9415,7 @@ enum bh_state_bits { enum bhi_mitigations { BHI_MITIGATION_OFF = 0, BHI_MITIGATION_ON = 1, + BHI_MITIGATION_VMEXIT_ONLY = 2, }; enum bio_merge_status { @@ -9228,11 +9483,6 @@ enum blake2s_lengths { BLAKE2S_256_HASH_SIZE = 32, }; -enum blk_bounce { - BLK_BOUNCE_NONE = 0, - BLK_BOUNCE_HIGH = 1, -}; - enum blk_default_limits { BLK_MAX_SEGMENTS = 128, BLK_SAFE_MAX_SECTORS = 255, @@ -9245,6 +9495,21 @@ enum blk_eh_timer_return { BLK_EH_RESET_TIMER = 1, }; +enum blk_integrity_checksum { + BLK_INTEGRITY_CSUM_NONE = 0, + BLK_INTEGRITY_CSUM_IP = 1, + BLK_INTEGRITY_CSUM_CRC = 2, + BLK_INTEGRITY_CSUM_CRC64 = 3, +} __attribute__((mode(byte))); + +enum blk_integrity_flags { + BLK_INTEGRITY_NOVERIFY = 1, + BLK_INTEGRITY_NOGENERATE = 2, + BLK_INTEGRITY_DEVICE_CAPABLE = 4, + BLK_INTEGRITY_REF_TAG = 8, + BLK_INTEGRITY_STACKED = 16, +}; + enum blk_unique_id { BLK_UID_T10 = 1, BLK_UID_EUI64 = 2, @@ -9367,7 +9632,7 @@ enum bpf_arg_type { ARG_PTR_TO_STACK = 21, ARG_PTR_TO_CONST_STR = 22, ARG_PTR_TO_TIMER = 23, - ARG_PTR_TO_KPTR = 24, + ARG_KPTR_XCHG_DEST = 24, ARG_PTR_TO_DYNPTR = 25, __BPF_ARG_TYPE_MAX = 26, ARG_PTR_TO_MAP_VALUE_OR_NULL = 259, @@ -9793,6 +10058,10 @@ enum bpf_jit_poke_reason { BPF_POKE_REASON_TAIL_CALL = 0, }; +enum bpf_kfunc_flags { + BPF_F_PAD_ZEROS = 1, +}; + enum bpf_link_type { BPF_LINK_TYPE_UNSPEC = 0, BPF_LINK_TYPE_RAW_TRACEPOINT = 1, @@ -10096,6 +10365,11 @@ enum btf_arg_tag { ARG_TAG_ARENA = 16, }; +enum btf_field_iter_kind { + BTF_FIELD_ITER_IDS = 0, + BTF_FIELD_ITER_STRS = 1, +}; + enum btf_field_type { BPF_SPIN_LOCK = 1, BPF_TIMER = 2, @@ -10127,7 +10401,7 @@ enum btf_kfunc_hook { BTF_KFUNC_HOOK_TRACING = 4, BTF_KFUNC_HOOK_SYSCALL = 5, BTF_KFUNC_HOOK_FMODRET = 6, - BTF_KFUNC_HOOK_CGROUP_SKB = 7, + BTF_KFUNC_HOOK_CGROUP = 7, BTF_KFUNC_HOOK_SCHED_ACT = 8, BTF_KFUNC_HOOK_SK_SKB = 9, BTF_KFUNC_HOOK_SOCKET_FILTER = 10, @@ -10169,8 +10443,7 @@ enum cc_attr { CC_ATTR_GUEST_STATE_ENCRYPT = 3, CC_ATTR_GUEST_UNROLL_STRING_IO = 4, CC_ATTR_GUEST_SEV_SNP = 5, - CC_ATTR_HOTPLUG_DISABLED = 6, - CC_ATTR_HOST_SEV_SNP = 7, + CC_ATTR_HOST_SEV_SNP = 6, }; enum cee_attrs { @@ -10187,7 +10460,7 @@ enum cee_attrs { }; enum cfi_mode { - CFI_DEFAULT = 0, + CFI_AUTO = 0, CFI_OFF = 1, CFI_KCFI = 2, CFI_FINEIBT = 3, @@ -10212,7 +10485,8 @@ enum cgroup2_param { Opt_memory_localevents = 2, Opt_memory_recursiveprot = 3, Opt_memory_hugetlb_accounting = 4, - nr__cgroup2_params = 5, + Opt_pids_localevents = 5, + nr__cgroup2_params = 6, }; enum cgroup_bpf_attach_type { @@ -10314,7 +10588,13 @@ enum clocksource_ids { CSID_X86_TSC_EARLY = 2, CSID_X86_TSC = 3, CSID_X86_KVM_CLK = 4, - CSID_MAX = 5, + CSID_X86_ART = 5, + CSID_MAX = 6, +}; + +enum cmis_cdb_fw_write_mechanism { + CMIS_CDB_FW_WRITE_MECHANISM_LPL = 1, + CMIS_CDB_FW_WRITE_MECHANISM_BOTH = 17, }; enum compact_priority { @@ -10511,28 +10791,28 @@ enum cpuhp_state { CPUHP_WORKQUEUE_PREP = 39, CPUHP_POWER_NUMA_PREPARE = 40, CPUHP_HRTIMERS_PREPARE = 41, - CPUHP_PROFILE_PREPARE = 42, - CPUHP_X2APIC_PREPARE = 43, - CPUHP_SMPCFD_PREPARE = 44, - CPUHP_RELAY_PREPARE = 45, - CPUHP_MD_RAID5_PREPARE = 46, - CPUHP_RCUTREE_PREP = 47, - CPUHP_CPUIDLE_COUPLED_PREPARE = 48, - CPUHP_POWERPC_PMAC_PREPARE = 49, - CPUHP_POWERPC_MMU_CTX_PREPARE = 50, - CPUHP_XEN_PREPARE = 51, - CPUHP_XEN_EVTCHN_PREPARE = 52, - CPUHP_ARM_SHMOBILE_SCU_PREPARE = 53, - CPUHP_SH_SH3X_PREPARE = 54, - CPUHP_TOPOLOGY_PREPARE = 55, - CPUHP_NET_IUCV_PREPARE = 56, - CPUHP_ARM_BL_PREPARE = 57, - CPUHP_TRACE_RB_PREPARE = 58, - CPUHP_MM_ZS_PREPARE = 59, - CPUHP_MM_ZSWP_POOL_PREPARE = 60, - CPUHP_KVM_PPC_BOOK3S_PREPARE = 61, - CPUHP_ZCOMP_PREPARE = 62, - CPUHP_TIMERS_PREPARE = 63, + CPUHP_X2APIC_PREPARE = 42, + CPUHP_SMPCFD_PREPARE = 43, + CPUHP_RELAY_PREPARE = 44, + CPUHP_MD_RAID5_PREPARE = 45, + CPUHP_RCUTREE_PREP = 46, + CPUHP_CPUIDLE_COUPLED_PREPARE = 47, + CPUHP_POWERPC_PMAC_PREPARE = 48, + CPUHP_POWERPC_MMU_CTX_PREPARE = 49, + CPUHP_XEN_PREPARE = 50, + CPUHP_XEN_EVTCHN_PREPARE = 51, + CPUHP_ARM_SHMOBILE_SCU_PREPARE = 52, + CPUHP_SH_SH3X_PREPARE = 53, + CPUHP_TOPOLOGY_PREPARE = 54, + CPUHP_NET_IUCV_PREPARE = 55, + CPUHP_ARM_BL_PREPARE = 56, + CPUHP_TRACE_RB_PREPARE = 57, + CPUHP_MM_ZS_PREPARE = 58, + CPUHP_MM_ZSWP_POOL_PREPARE = 59, + CPUHP_KVM_PPC_BOOK3S_PREPARE = 60, + CPUHP_ZCOMP_PREPARE = 61, + CPUHP_TIMERS_PREPARE = 62, + CPUHP_TMIGR_PREPARE = 63, CPUHP_MIPS_SOC_PREPARE = 64, CPUHP_BP_PREPARE_DYN = 65, CPUHP_BP_PREPARE_DYN_END = 85, @@ -10553,101 +10833,103 @@ enum cpuhp_state { CPUHP_AP_IRQ_LOONGARCH_STARTING = 100, CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 101, CPUHP_AP_IRQ_RISCV_IMSIC_STARTING = 102, - CPUHP_AP_ARM_MVEBU_COHERENCY = 103, - CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 104, - CPUHP_AP_PERF_X86_STARTING = 105, - CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 106, - CPUHP_AP_PERF_X86_CSTATE_STARTING = 107, - CPUHP_AP_PERF_XTENSA_STARTING = 108, - CPUHP_AP_ARM_VFP_STARTING = 109, - CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 110, - CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 111, - CPUHP_AP_PERF_ARM_ACPI_STARTING = 112, - CPUHP_AP_PERF_ARM_STARTING = 113, - CPUHP_AP_PERF_RISCV_STARTING = 114, - CPUHP_AP_ARM_L2X0_STARTING = 115, - CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 116, - CPUHP_AP_ARM_ARCH_TIMER_STARTING = 117, - CPUHP_AP_ARM_ARCH_TIMER_EVTSTRM_STARTING = 118, - CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 119, - CPUHP_AP_JCORE_TIMER_STARTING = 120, - CPUHP_AP_ARM_TWD_STARTING = 121, - CPUHP_AP_QCOM_TIMER_STARTING = 122, - CPUHP_AP_TEGRA_TIMER_STARTING = 123, - CPUHP_AP_ARMADA_TIMER_STARTING = 124, - CPUHP_AP_MIPS_GIC_TIMER_STARTING = 125, - CPUHP_AP_ARC_TIMER_STARTING = 126, - CPUHP_AP_RISCV_TIMER_STARTING = 127, - CPUHP_AP_CLINT_TIMER_STARTING = 128, - CPUHP_AP_CSKY_TIMER_STARTING = 129, - CPUHP_AP_TI_GP_TIMER_STARTING = 130, - CPUHP_AP_HYPERV_TIMER_STARTING = 131, - CPUHP_AP_DUMMY_TIMER_STARTING = 132, - CPUHP_AP_ARM_XEN_STARTING = 133, - CPUHP_AP_ARM_XEN_RUNSTATE_STARTING = 134, - CPUHP_AP_ARM_CORESIGHT_STARTING = 135, - CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 136, - CPUHP_AP_ARM64_ISNDEP_STARTING = 137, - CPUHP_AP_SMPCFD_DYING = 138, - CPUHP_AP_HRTIMERS_DYING = 139, - CPUHP_AP_TICK_DYING = 140, - CPUHP_AP_X86_TBOOT_DYING = 141, - CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 142, - CPUHP_AP_ONLINE = 143, - CPUHP_TEARDOWN_CPU = 144, - CPUHP_AP_ONLINE_IDLE = 145, - CPUHP_AP_HYPERV_ONLINE = 146, - CPUHP_AP_KVM_ONLINE = 147, - CPUHP_AP_SCHED_WAIT_EMPTY = 148, - CPUHP_AP_SMPBOOT_THREADS = 149, - CPUHP_AP_IRQ_AFFINITY_ONLINE = 150, - CPUHP_AP_BLK_MQ_ONLINE = 151, - CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 152, - CPUHP_AP_X86_INTEL_EPB_ONLINE = 153, - CPUHP_AP_PERF_ONLINE = 154, - CPUHP_AP_PERF_X86_ONLINE = 155, - CPUHP_AP_PERF_X86_UNCORE_ONLINE = 156, - CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 157, - CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 158, - CPUHP_AP_PERF_X86_RAPL_ONLINE = 159, - CPUHP_AP_PERF_X86_CSTATE_ONLINE = 160, - CPUHP_AP_PERF_S390_CF_ONLINE = 161, - CPUHP_AP_PERF_S390_SF_ONLINE = 162, - CPUHP_AP_PERF_ARM_CCI_ONLINE = 163, - CPUHP_AP_PERF_ARM_CCN_ONLINE = 164, - CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 165, - CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 166, - CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 167, - CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 168, - CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 169, - CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 170, - CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 171, - CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 172, - CPUHP_AP_PERF_ARM_L2X0_ONLINE = 173, - CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 174, - CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 175, - CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 176, - CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 177, - CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 178, - CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 179, - CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 180, - CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 181, - CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 182, - CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 183, - CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 184, - CPUHP_AP_PERF_CSKY_ONLINE = 185, - CPUHP_AP_TMIGR_ONLINE = 186, - CPUHP_AP_WATCHDOG_ONLINE = 187, - CPUHP_AP_WORKQUEUE_ONLINE = 188, - CPUHP_AP_RANDOM_ONLINE = 189, - CPUHP_AP_RCUTREE_ONLINE = 190, - CPUHP_AP_BASE_CACHEINFO_ONLINE = 191, - CPUHP_AP_ONLINE_DYN = 192, - CPUHP_AP_ONLINE_DYN_END = 232, - CPUHP_AP_X86_HPET_ONLINE = 233, - CPUHP_AP_X86_KVM_CLK_ONLINE = 234, - CPUHP_AP_ACTIVE = 235, - CPUHP_ONLINE = 236, + CPUHP_AP_IRQ_RISCV_SBI_IPI_STARTING = 103, + CPUHP_AP_ARM_MVEBU_COHERENCY = 104, + CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 105, + CPUHP_AP_PERF_X86_STARTING = 106, + CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 107, + CPUHP_AP_PERF_X86_CSTATE_STARTING = 108, + CPUHP_AP_PERF_XTENSA_STARTING = 109, + CPUHP_AP_ARM_VFP_STARTING = 110, + CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 111, + CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 112, + CPUHP_AP_PERF_ARM_ACPI_STARTING = 113, + CPUHP_AP_PERF_ARM_STARTING = 114, + CPUHP_AP_PERF_RISCV_STARTING = 115, + CPUHP_AP_ARM_L2X0_STARTING = 116, + CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 117, + CPUHP_AP_ARM_ARCH_TIMER_STARTING = 118, + CPUHP_AP_ARM_ARCH_TIMER_EVTSTRM_STARTING = 119, + CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 120, + CPUHP_AP_JCORE_TIMER_STARTING = 121, + CPUHP_AP_ARM_TWD_STARTING = 122, + CPUHP_AP_QCOM_TIMER_STARTING = 123, + CPUHP_AP_TEGRA_TIMER_STARTING = 124, + CPUHP_AP_ARMADA_TIMER_STARTING = 125, + CPUHP_AP_MIPS_GIC_TIMER_STARTING = 126, + CPUHP_AP_ARC_TIMER_STARTING = 127, + CPUHP_AP_REALTEK_TIMER_STARTING = 128, + CPUHP_AP_RISCV_TIMER_STARTING = 129, + CPUHP_AP_CLINT_TIMER_STARTING = 130, + CPUHP_AP_CSKY_TIMER_STARTING = 131, + CPUHP_AP_TI_GP_TIMER_STARTING = 132, + CPUHP_AP_HYPERV_TIMER_STARTING = 133, + CPUHP_AP_DUMMY_TIMER_STARTING = 134, + CPUHP_AP_ARM_XEN_STARTING = 135, + CPUHP_AP_ARM_XEN_RUNSTATE_STARTING = 136, + CPUHP_AP_ARM_CORESIGHT_STARTING = 137, + CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 138, + CPUHP_AP_ARM64_ISNDEP_STARTING = 139, + CPUHP_AP_SMPCFD_DYING = 140, + CPUHP_AP_HRTIMERS_DYING = 141, + CPUHP_AP_TICK_DYING = 142, + CPUHP_AP_X86_TBOOT_DYING = 143, + CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 144, + CPUHP_AP_ONLINE = 145, + CPUHP_TEARDOWN_CPU = 146, + CPUHP_AP_ONLINE_IDLE = 147, + CPUHP_AP_HYPERV_ONLINE = 148, + CPUHP_AP_KVM_ONLINE = 149, + CPUHP_AP_SCHED_WAIT_EMPTY = 150, + CPUHP_AP_SMPBOOT_THREADS = 151, + CPUHP_AP_IRQ_AFFINITY_ONLINE = 152, + CPUHP_AP_BLK_MQ_ONLINE = 153, + CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 154, + CPUHP_AP_X86_INTEL_EPB_ONLINE = 155, + CPUHP_AP_PERF_ONLINE = 156, + CPUHP_AP_PERF_X86_ONLINE = 157, + CPUHP_AP_PERF_X86_UNCORE_ONLINE = 158, + CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 159, + CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 160, + CPUHP_AP_PERF_X86_RAPL_ONLINE = 161, + CPUHP_AP_PERF_X86_CSTATE_ONLINE = 162, + CPUHP_AP_PERF_S390_CF_ONLINE = 163, + CPUHP_AP_PERF_S390_SF_ONLINE = 164, + CPUHP_AP_PERF_ARM_CCI_ONLINE = 165, + CPUHP_AP_PERF_ARM_CCN_ONLINE = 166, + CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 167, + CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 168, + CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 169, + CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 170, + CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 171, + CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 172, + CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 173, + CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 174, + CPUHP_AP_PERF_ARM_L2X0_ONLINE = 175, + CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 176, + CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 177, + CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 178, + CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 179, + CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 180, + CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 181, + CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 182, + CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 183, + CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 184, + CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 185, + CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 186, + CPUHP_AP_PERF_CSKY_ONLINE = 187, + CPUHP_AP_TMIGR_ONLINE = 188, + CPUHP_AP_WATCHDOG_ONLINE = 189, + CPUHP_AP_WORKQUEUE_ONLINE = 190, + CPUHP_AP_RANDOM_ONLINE = 191, + CPUHP_AP_RCUTREE_ONLINE = 192, + CPUHP_AP_BASE_CACHEINFO_ONLINE = 193, + CPUHP_AP_ONLINE_DYN = 194, + CPUHP_AP_ONLINE_DYN_END = 234, + CPUHP_AP_X86_HPET_ONLINE = 235, + CPUHP_AP_X86_KVM_CLK_ONLINE = 236, + CPUHP_AP_ACTIVE = 237, + CPUHP_ONLINE = 238, }; enum cpuhp_sync_state { @@ -12168,12 +12450,70 @@ enum erspan_encap_type { ERSPAN_ENCAP_INFRAME = 3, }; +enum ethnl_sock_type { + ETHTOOL_SOCK_TYPE_MODULE_FW_FLASH = 0, +}; + enum ethtool_c33_pse_admin_state { ETHTOOL_C33_PSE_ADMIN_STATE_UNKNOWN = 1, ETHTOOL_C33_PSE_ADMIN_STATE_DISABLED = 2, ETHTOOL_C33_PSE_ADMIN_STATE_ENABLED = 3, }; +enum ethtool_c33_pse_ext_state { + ETHTOOL_C33_PSE_EXT_STATE_ERROR_CONDITION = 1, + ETHTOOL_C33_PSE_EXT_STATE_MR_MPS_VALID = 2, + ETHTOOL_C33_PSE_EXT_STATE_MR_PSE_ENABLE = 3, + ETHTOOL_C33_PSE_EXT_STATE_OPTION_DETECT_TED = 4, + ETHTOOL_C33_PSE_EXT_STATE_OPTION_VPORT_LIM = 5, + ETHTOOL_C33_PSE_EXT_STATE_OVLD_DETECTED = 6, + ETHTOOL_C33_PSE_EXT_STATE_PD_DLL_POWER_TYPE = 7, + ETHTOOL_C33_PSE_EXT_STATE_POWER_NOT_AVAILABLE = 8, + ETHTOOL_C33_PSE_EXT_STATE_SHORT_DETECTED = 9, +}; + +enum ethtool_c33_pse_ext_substate_error_condition { + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_NON_EXISTING_PORT = 1, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNDEFINED_PORT = 2, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_INTERNAL_HW_FAULT = 3, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_COMM_ERROR_AFTER_FORCE_ON = 4, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNKNOWN_PORT_STATUS = 5, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_TURN_OFF = 6, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_FORCE_SHUTDOWN = 7, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_CONFIG_CHANGE = 8, + ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_DETECTED_OVER_TEMP = 9, +}; + +enum ethtool_c33_pse_ext_substate_mr_pse_enable { + ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_PSE_ENABLE_DISABLE_PIN_ACTIVE = 1, +}; + +enum ethtool_c33_pse_ext_substate_option_detect_ted { + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_DET_IN_PROCESS = 1, + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_CONNECTION_CHECK_ERROR = 2, +}; + +enum ethtool_c33_pse_ext_substate_option_vport_lim { + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_HIGH_VOLTAGE = 1, + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_LOW_VOLTAGE = 2, + ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_VOLTAGE_INJECTION = 3, +}; + +enum ethtool_c33_pse_ext_substate_ovld_detected { + ETHTOOL_C33_PSE_EXT_SUBSTATE_OVLD_DETECTED_OVERLOAD = 1, +}; + +enum ethtool_c33_pse_ext_substate_power_not_available { + ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_BUDGET_EXCEEDED = 1, + ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PORT_PW_LIMIT_EXCEEDS_CONTROLLER_BUDGET = 2, + ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PD_REQUEST_EXCEEDS_PORT_LIMIT = 3, + ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_HW_PW_LIMIT = 4, +}; + +enum ethtool_c33_pse_ext_substate_short_detected { + ETHTOOL_C33_PSE_EXT_SUBSTATE_SHORT_DETECTED_SHORT_CONDITION = 1, +}; + enum ethtool_c33_pse_pw_d_status { ETHTOOL_C33_PSE_PW_D_STATUS_UNKNOWN = 1, ETHTOOL_C33_PSE_PW_D_STATUS_DISABLED = 2, @@ -12184,6 +12524,17 @@ enum ethtool_c33_pse_pw_d_status { ETHTOOL_C33_PSE_PW_D_STATUS_OTHERFAULT = 7, }; +enum ethtool_cmis_cdb_cmd_id { + ETHTOOL_CMIS_CDB_CMD_QUERY_STATUS = 0, + ETHTOOL_CMIS_CDB_CMD_MODULE_FEATURES = 64, + ETHTOOL_CMIS_CDB_CMD_FW_MANAGMENT_FEATURES = 65, + ETHTOOL_CMIS_CDB_CMD_START_FW_DOWNLOAD = 257, + ETHTOOL_CMIS_CDB_CMD_WRITE_FW_BLOCK_LPL = 259, + ETHTOOL_CMIS_CDB_CMD_COMPLETE_FW_DOWNLOAD = 263, + ETHTOOL_CMIS_CDB_CMD_RUN_FW_IMAGE = 265, + ETHTOOL_CMIS_CDB_CMD_COMMIT_FW_IMAGE = 266, +}; + enum ethtool_fec_config_bits { ETHTOOL_FEC_NONE_BIT = 0, ETHTOOL_FEC_AUTO_BIT = 1, @@ -12364,7 +12715,8 @@ enum ethtool_link_mode_bit_indices { ETHTOOL_LINK_MODE_10baseT1S_Full_BIT = 99, ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100, ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101, - __ETHTOOL_LINK_MODE_MASK_NBITS = 102, + ETHTOOL_LINK_MODE_10baseT1BRR_Full_BIT = 102, + __ETHTOOL_LINK_MODE_MASK_NBITS = 103, }; enum ethtool_mac_stats_src { @@ -12382,6 +12734,13 @@ enum ethtool_mm_verify_status { ETHTOOL_MM_VERIFY_STATUS_DISABLED = 5, }; +enum ethtool_module_fw_flash_status { + ETHTOOL_MODULE_FW_FLASH_STATUS_STARTED = 1, + ETHTOOL_MODULE_FW_FLASH_STATUS_IN_PROGRESS = 2, + ETHTOOL_MODULE_FW_FLASH_STATUS_COMPLETED = 3, + ETHTOOL_MODULE_FW_FLASH_STATUS_ERROR = 4, +}; + enum ethtool_module_power_mode { ETHTOOL_MODULE_POWER_MODE_LOW = 1, ETHTOOL_MODULE_POWER_MODE_HIGH = 2, @@ -12419,6 +12778,20 @@ enum ethtool_podl_pse_pw_d_status { ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR = 7, }; +enum ethtool_reset_flags { + ETH_RESET_MGMT = 1, + ETH_RESET_IRQ = 2, + ETH_RESET_DMA = 4, + ETH_RESET_FILTER = 8, + ETH_RESET_OFFLOAD = 16, + ETH_RESET_MAC = 32, + ETH_RESET_PHY = 64, + ETH_RESET_RAM = 128, + ETH_RESET_AP = 256, + ETH_RESET_DEDICATED = 65535, + ETH_RESET_ALL = 4294967295, +}; + enum ethtool_sfeatures_retval_bits { ETHTOOL_F_UNSUPPORTED__BIT = 0, ETHTOOL_F_WISH__BIT = 1, @@ -12817,6 +13190,16 @@ enum flow_dissect_ret { FLOW_DISSECT_RET_CONTINUE = 4, }; +enum flow_dissector_ctrl_flags { + FLOW_DIS_IS_FRAGMENT = 1, + FLOW_DIS_FIRST_FRAG = 2, + FLOW_DIS_F_TUNNEL_CSUM = 4, + FLOW_DIS_F_TUNNEL_DONT_FRAGMENT = 8, + FLOW_DIS_F_TUNNEL_OAM = 16, + FLOW_DIS_F_TUNNEL_CRIT_OPT = 32, + FLOW_DIS_ENCAPSULATION = 64, +}; + enum flow_dissector_key_id { FLOW_DISSECTOR_KEY_CONTROL = 0, FLOW_DISSECTOR_KEY_BASIC = 1, @@ -13123,6 +13506,11 @@ enum group_type { group_overloaded = 6, }; +enum handle_to_path_flags { + HANDLE_CHECK_PERMS = 1, + HANDLE_CHECK_SUBTREE = 2, +}; + enum hash_algo { HASH_ALGO_MD4 = 0, HASH_ALGO_MD5 = 1, @@ -13165,13 +13553,6 @@ enum header_fields { HDR__LAST = 4, }; -enum hid_bpf_prog_type { - HID_BPF_PROG_TYPE_UNDEF = -1, - HID_BPF_PROG_TYPE_DEVICE_EVENT = 0, - HID_BPF_PROG_TYPE_RDESC_FIXUP = 1, - HID_BPF_PROG_TYPE_MAX = 2, -}; - enum hid_class_request { HID_REQ_GET_REPORT = 1, HID_REQ_GET_IDLE = 2, @@ -13358,8 +13739,9 @@ enum hwtstamp_rx_filters { }; enum hwtstamp_source { - HWTSTAMP_SOURCE_NETDEV = 0, - HWTSTAMP_SOURCE_PHYLIB = 1, + HWTSTAMP_SOURCE_UNSPEC = 0, + HWTSTAMP_SOURCE_NETDEV = 1, + HWTSTAMP_SOURCE_PHYLIB = 2, }; enum hwtstamp_tx_types { @@ -14079,7 +14461,9 @@ enum io_uring_op { IORING_OP_FUTEX_WAITV = 53, IORING_OP_FIXED_FD_INSTALL = 54, IORING_OP_FTRUNCATE = 55, - IORING_OP_LAST = 56, + IORING_OP_BIND = 56, + IORING_OP_LISTEN = 57, + IORING_OP_LAST = 58, }; enum io_uring_register_op { @@ -14566,21 +14950,6 @@ enum kvm_apic_logical_mode { KVM_APIC_MODE_MAP_DISABLED = 4, }; -enum kvm_apicv_inhibit { - APICV_INHIBIT_REASON_DISABLE = 0, - APICV_INHIBIT_REASON_HYPERV = 1, - APICV_INHIBIT_REASON_ABSENT = 2, - APICV_INHIBIT_REASON_BLOCKIRQ = 3, - APICV_INHIBIT_REASON_PHYSICAL_ID_ALIASED = 4, - APICV_INHIBIT_REASON_APIC_ID_MODIFIED = 5, - APICV_INHIBIT_REASON_APIC_BASE_MODIFIED = 6, - APICV_INHIBIT_REASON_NESTED = 7, - APICV_INHIBIT_REASON_IRQWIN = 8, - APICV_INHIBIT_REASON_PIT_REINJ = 9, - APICV_INHIBIT_REASON_SEV = 10, - APICV_INHIBIT_REASON_LOGICAL_ID_ALIASED = 11, -}; - enum kvm_bus { KVM_MMIO_BUS = 0, KVM_PIO_BUS = 1, @@ -14681,55 +15050,57 @@ enum linux_mptcp_mib_field { MPTCP_MIB_RETRANSSEGS = 8, MPTCP_MIB_JOINNOTOKEN = 9, MPTCP_MIB_JOINSYNRX = 10, - MPTCP_MIB_JOINSYNACKRX = 11, - MPTCP_MIB_JOINSYNACKMAC = 12, - MPTCP_MIB_JOINACKRX = 13, - MPTCP_MIB_JOINACKMAC = 14, - MPTCP_MIB_DSSNOMATCH = 15, - MPTCP_MIB_INFINITEMAPTX = 16, - MPTCP_MIB_INFINITEMAPRX = 17, - MPTCP_MIB_DSSTCPMISMATCH = 18, - MPTCP_MIB_DATACSUMERR = 19, - MPTCP_MIB_OFOQUEUETAIL = 20, - MPTCP_MIB_OFOQUEUE = 21, - MPTCP_MIB_OFOMERGE = 22, - MPTCP_MIB_NODSSWINDOW = 23, - MPTCP_MIB_DUPDATA = 24, - MPTCP_MIB_ADDADDR = 25, - MPTCP_MIB_ADDADDRTX = 26, - MPTCP_MIB_ADDADDRTXDROP = 27, - MPTCP_MIB_ECHOADD = 28, - MPTCP_MIB_ECHOADDTX = 29, - MPTCP_MIB_ECHOADDTXDROP = 30, - MPTCP_MIB_PORTADD = 31, - MPTCP_MIB_ADDADDRDROP = 32, - MPTCP_MIB_JOINPORTSYNRX = 33, - MPTCP_MIB_JOINPORTSYNACKRX = 34, - MPTCP_MIB_JOINPORTACKRX = 35, - MPTCP_MIB_MISMATCHPORTSYNRX = 36, - MPTCP_MIB_MISMATCHPORTACKRX = 37, - MPTCP_MIB_RMADDR = 38, - MPTCP_MIB_RMADDRDROP = 39, - MPTCP_MIB_RMADDRTX = 40, - MPTCP_MIB_RMADDRTXDROP = 41, - MPTCP_MIB_RMSUBFLOW = 42, - MPTCP_MIB_MPPRIOTX = 43, - MPTCP_MIB_MPPRIORX = 44, - MPTCP_MIB_MPFAILTX = 45, - MPTCP_MIB_MPFAILRX = 46, - MPTCP_MIB_MPFASTCLOSETX = 47, - MPTCP_MIB_MPFASTCLOSERX = 48, - MPTCP_MIB_MPRSTTX = 49, - MPTCP_MIB_MPRSTRX = 50, - MPTCP_MIB_RCVPRUNED = 51, - MPTCP_MIB_SUBFLOWSTALE = 52, - MPTCP_MIB_SUBFLOWRECOVER = 53, - MPTCP_MIB_SNDWNDSHARED = 54, - MPTCP_MIB_RCVWNDSHARED = 55, - MPTCP_MIB_RCVWNDCONFLICTUPDATE = 56, - MPTCP_MIB_RCVWNDCONFLICT = 57, - MPTCP_MIB_CURRESTAB = 58, - __MPTCP_MIB_MAX = 59, + MPTCP_MIB_JOINSYNBACKUPRX = 11, + MPTCP_MIB_JOINSYNACKRX = 12, + MPTCP_MIB_JOINSYNACKBACKUPRX = 13, + MPTCP_MIB_JOINSYNACKMAC = 14, + MPTCP_MIB_JOINACKRX = 15, + MPTCP_MIB_JOINACKMAC = 16, + MPTCP_MIB_DSSNOMATCH = 17, + MPTCP_MIB_INFINITEMAPTX = 18, + MPTCP_MIB_INFINITEMAPRX = 19, + MPTCP_MIB_DSSTCPMISMATCH = 20, + MPTCP_MIB_DATACSUMERR = 21, + MPTCP_MIB_OFOQUEUETAIL = 22, + MPTCP_MIB_OFOQUEUE = 23, + MPTCP_MIB_OFOMERGE = 24, + MPTCP_MIB_NODSSWINDOW = 25, + MPTCP_MIB_DUPDATA = 26, + MPTCP_MIB_ADDADDR = 27, + MPTCP_MIB_ADDADDRTX = 28, + MPTCP_MIB_ADDADDRTXDROP = 29, + MPTCP_MIB_ECHOADD = 30, + MPTCP_MIB_ECHOADDTX = 31, + MPTCP_MIB_ECHOADDTXDROP = 32, + MPTCP_MIB_PORTADD = 33, + MPTCP_MIB_ADDADDRDROP = 34, + MPTCP_MIB_JOINPORTSYNRX = 35, + MPTCP_MIB_JOINPORTSYNACKRX = 36, + MPTCP_MIB_JOINPORTACKRX = 37, + MPTCP_MIB_MISMATCHPORTSYNRX = 38, + MPTCP_MIB_MISMATCHPORTACKRX = 39, + MPTCP_MIB_RMADDR = 40, + MPTCP_MIB_RMADDRDROP = 41, + MPTCP_MIB_RMADDRTX = 42, + MPTCP_MIB_RMADDRTXDROP = 43, + MPTCP_MIB_RMSUBFLOW = 44, + MPTCP_MIB_MPPRIOTX = 45, + MPTCP_MIB_MPPRIORX = 46, + MPTCP_MIB_MPFAILTX = 47, + MPTCP_MIB_MPFAILRX = 48, + MPTCP_MIB_MPFASTCLOSETX = 49, + MPTCP_MIB_MPFASTCLOSERX = 50, + MPTCP_MIB_MPRSTTX = 51, + MPTCP_MIB_MPRSTRX = 52, + MPTCP_MIB_RCVPRUNED = 53, + MPTCP_MIB_SUBFLOWSTALE = 54, + MPTCP_MIB_SUBFLOWRECOVER = 55, + MPTCP_MIB_SNDWNDSHARED = 56, + MPTCP_MIB_RCVWNDSHARED = 57, + MPTCP_MIB_RCVWNDCONFLICTUPDATE = 58, + MPTCP_MIB_RCVWNDCONFLICT = 59, + MPTCP_MIB_CURRESTAB = 60, + __MPTCP_MIB_MAX = 61, }; enum lock_usage_bit { @@ -14942,7 +15313,7 @@ enum mapping_flags { AS_LARGE_FOLIO_SUPPORT = 6, AS_RELEASE_ALWAYS = 7, AS_STABLE_WRITES = 8, - AS_UNMOVABLE = 9, + AS_INACCESSIBLE = 9, }; enum mapping_status { @@ -14954,13 +15325,6 @@ enum mapping_status { MAPPING_BAD_CSUM = 5, }; -enum mc_target_type { - MC_TARGET_NONE = 0, - MC_TARGET_PAGE = 1, - MC_TARGET_SWAP = 2, - MC_TARGET_DEVICE = 3, -}; - enum mca_msr { MCA_CTL = 0, MCA_STATUS = 1, @@ -15074,10 +15438,10 @@ enum metadata_type { enum mf_action_page_type { MF_MSG_KERNEL = 0, MF_MSG_KERNEL_HIGH_ORDER = 1, - MF_MSG_SLAB = 2, - MF_MSG_DIFFERENT_COMPOUND = 3, - MF_MSG_HUGE = 4, - MF_MSG_FREE_HUGE = 5, + MF_MSG_DIFFERENT_COMPOUND = 2, + MF_MSG_HUGE = 3, + MF_MSG_FREE_HUGE = 4, + MF_MSG_GET_HWPOISON = 5, MF_MSG_UNMAP_FAILED = 6, MF_MSG_DIRTY_SWAPCACHE = 7, MF_MSG_CLEAN_SWAPCACHE = 8, @@ -15091,7 +15455,8 @@ enum mf_action_page_type { MF_MSG_BUDDY = 16, MF_MSG_DAX = 17, MF_MSG_UNSPLIT_THP = 18, - MF_MSG_UNKNOWN = 19, + MF_MSG_ALREADY_POISONED = 19, + MF_MSG_UNKNOWN = 20, }; enum mf_flags { @@ -15124,7 +15489,6 @@ enum migrate_mode { MIGRATE_ASYNC = 0, MIGRATE_SYNC_LIGHT = 1, MIGRATE_SYNC = 2, - MIGRATE_SYNC_NO_COPY = 3, }; enum migrate_reason { @@ -15137,7 +15501,8 @@ enum migrate_reason { MR_CONTIG_RANGE = 6, MR_LONGTERM_PIN = 7, MR_DEMOTION = 8, - MR_TYPES = 9, + MR_DAMON = 9, + MR_TYPES = 10, }; enum migratetype { @@ -15313,9 +15678,15 @@ enum mthp_stat_item { MTHP_STAT_ANON_FAULT_ALLOC = 0, MTHP_STAT_ANON_FAULT_FALLBACK = 1, MTHP_STAT_ANON_FAULT_FALLBACK_CHARGE = 2, - MTHP_STAT_ANON_SWPOUT = 3, - MTHP_STAT_ANON_SWPOUT_FALLBACK = 4, - __MTHP_STAT_COUNT = 5, + MTHP_STAT_SWPOUT = 3, + MTHP_STAT_SWPOUT_FALLBACK = 4, + MTHP_STAT_SHMEM_ALLOC = 5, + MTHP_STAT_SHMEM_FALLBACK = 6, + MTHP_STAT_SHMEM_FALLBACK_CHARGE = 7, + MTHP_STAT_SPLIT = 8, + MTHP_STAT_SPLIT_FAILED = 9, + MTHP_STAT_SPLIT_DEFERRED = 10, + __MTHP_STAT_COUNT = 11, }; enum multi_stop_state { @@ -15591,21 +15962,22 @@ enum netfs_folio_trace { netfs_folio_trace_clear_g = 12, netfs_folio_trace_clear_s = 13, netfs_folio_trace_copy_to_cache = 14, - netfs_folio_trace_filled_gaps = 15, - netfs_folio_trace_kill = 16, - netfs_folio_trace_kill_cc = 17, - netfs_folio_trace_kill_g = 18, - netfs_folio_trace_kill_s = 19, - netfs_folio_trace_mkwrite = 20, - netfs_folio_trace_mkwrite_plus = 21, - netfs_folio_trace_not_under_wback = 22, - netfs_folio_trace_read_gaps = 23, - netfs_folio_trace_redirtied = 24, - netfs_folio_trace_store = 25, - netfs_folio_trace_store_copy = 26, - netfs_folio_trace_store_plus = 27, - netfs_folio_trace_wthru = 28, - netfs_folio_trace_wthru_plus = 29, + netfs_folio_trace_end_copy = 15, + netfs_folio_trace_filled_gaps = 16, + netfs_folio_trace_kill = 17, + netfs_folio_trace_kill_cc = 18, + netfs_folio_trace_kill_g = 19, + netfs_folio_trace_kill_s = 20, + netfs_folio_trace_mkwrite = 21, + netfs_folio_trace_mkwrite_plus = 22, + netfs_folio_trace_not_under_wback = 23, + netfs_folio_trace_read_gaps = 24, + netfs_folio_trace_redirtied = 25, + netfs_folio_trace_store = 26, + netfs_folio_trace_store_copy = 27, + netfs_folio_trace_store_plus = 28, + netfs_folio_trace_wthru = 29, + netfs_folio_trace_wthru_plus = 30, } __attribute__((mode(byte))); enum netfs_how_to_modify { @@ -15683,12 +16055,13 @@ enum netfs_rreq_trace { netfs_rreq_trace_resubmit = 6, netfs_rreq_trace_set_pause = 7, netfs_rreq_trace_unlock = 8, - netfs_rreq_trace_unmark = 9, - netfs_rreq_trace_wait_ip = 10, - netfs_rreq_trace_wait_pause = 11, - netfs_rreq_trace_wake_ip = 12, - netfs_rreq_trace_unpause = 13, - netfs_rreq_trace_write_done = 14, + netfs_rreq_trace_unlock_pgpriv2 = 9, + netfs_rreq_trace_unmark = 10, + netfs_rreq_trace_wait_ip = 11, + netfs_rreq_trace_wait_pause = 12, + netfs_rreq_trace_wake_ip = 13, + netfs_rreq_trace_unpause = 14, + netfs_rreq_trace_write_done = 15, } __attribute__((mode(byte))); enum netfs_sreq_ref_trace { @@ -15863,8 +16236,7 @@ enum nf_ct_sysctl_index { NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_CLOSING = 39, NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_TIMEWAIT = 40, NF_SYSCTL_CT_PROTO_DCCP_LOOSE = 41, - NF_SYSCTL_CT_LWTUNNEL = 42, - NF_SYSCTL_CT_LAST_SYSCTL = 43, + NF_SYSCTL_CT_LAST_SYSCTL = 42, }; enum nf_ct_tcp_action { @@ -16607,6 +16979,18 @@ enum pageflags { PG_large_rmappable = 9, }; +enum pagetype { + PG_buddy = 1073741824LL, + PG_offline = 536870912LL, + PG_table = 268435456LL, + PG_guard = 134217728LL, + PG_hugetlb = 67108864LL, + PG_slab = 33554432LL, + PG_zsmalloc = 16777216LL, + PAGE_TYPE_BASE = 2147483648LL, + PAGE_MAPCOUNT_RESERVE = -65536LL, +}; + enum partition_cmd { partcmd_enable = 0, partcmd_enablei = 1, @@ -16873,10 +17257,11 @@ enum pcie_reset_state { pcie_hot_reset = 3, }; -enum pconfig_target { - INVALID_TARGET = 0, - MKTME_TARGET = 1, - PCONFIG_TARGET_NR = 2, +enum pcim_addr_devres_type { + PCIM_ADDR_DEVRES_TYPE_INVALID = 0, + PCIM_ADDR_DEVRES_TYPE_REGION = 1, + PCIM_ADDR_DEVRES_TYPE_REGION_MAPPING = 2, + PCIM_ADDR_DEVRES_TYPE_MAPPING = 3, }; enum pcpu_fc { @@ -17278,7 +17663,8 @@ enum pg_level { PG_LEVEL_2M = 2, PG_LEVEL_1G = 3, PG_LEVEL_512G = 4, - PG_LEVEL_NUM = 5, + PG_LEVEL_256T = 5, + PG_LEVEL_NUM = 6, }; enum pgdat_flags { @@ -17680,6 +18066,15 @@ enum proc_pidonly { PROC_PIDONLY_ON = 1, }; +enum procmap_query_flags { + PROCMAP_QUERY_VMA_READABLE = 1, + PROCMAP_QUERY_VMA_WRITABLE = 2, + PROCMAP_QUERY_VMA_EXECUTABLE = 4, + PROCMAP_QUERY_VMA_SHARED = 8, + PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16, + PROCMAP_QUERY_FILE_BACKED_VMA = 32, +}; + enum prs_errcode { PERR_NONE = 0, PERR_INVCPUS = 1, @@ -17869,6 +18264,15 @@ enum rdma_nl_counter_mode { RDMA_COUNTER_MODE_MAX = 3, }; +enum rdma_nl_dev_type { + RDMA_DEVICE_TYPE_SMI = 1, +}; + +enum rdma_nl_name_assign_type { + RDMA_NAME_ASSIGN_TYPE_UNKNOWN = 0, + RDMA_NAME_ASSIGN_TYPE_USER = 1, +}; + enum rdma_restrack_type { RDMA_RESTRACK_PD = 0, RDMA_RESTRACK_CQ = 1, @@ -17955,8 +18359,9 @@ enum req_flag_bits { __REQ_SWAP = 24, __REQ_DRV = 25, __REQ_FS_PRIVATE = 26, - __REQ_NOUNMAP = 27, - __REQ_NR_BITS = 28, + __REQ_ATOMIC = 27, + __REQ_NOUNMAP = 28, + __REQ_NR_BITS = 29, }; enum req_op { @@ -17977,13 +18382,6 @@ enum req_op { REQ_OP_LAST = 36, }; -enum res_type { - _MEM = 0, - _MEMSWAP = 1, - _KMEM = 2, - _TCP = 3, -}; - enum resctrl_conf_type { CDP_NONE = 0, CDP_CODE = 1, @@ -18239,6 +18637,7 @@ enum rtnl_link_flags { RTNL_FLAG_DOIT_UNLOCKED = 1, RTNL_FLAG_BULK_DEL_SUPPORTED = 2, RTNL_FLAG_DUMP_UNLOCKED = 4, + RTNL_FLAG_DUMP_SPLIT_NLM_DONE = 8, }; enum rw_hint { @@ -19137,6 +19536,7 @@ enum task_work_notify_mode { TWA_RESUME = 1, TWA_SIGNAL = 2, TWA_SIGNAL_NO_IPI = 3, + TWA_NMI_CURRENT = 4, }; enum tc_clsbpf_command { @@ -19398,6 +19798,7 @@ enum thermal_notify_event { THERMAL_TZ_BIND_CDEV = 9, THERMAL_TZ_UNBIND_CDEV = 10, THERMAL_INSTANCE_WEIGHT_CHANGED = 11, + THERMAL_TZ_RESUME = 12, }; enum thermal_trend { @@ -20077,18 +20478,6 @@ enum uncore_access_type { UNCORE_ACCESS_MAX = 3, }; -enum unix_recv_queue_lock_class { - U_RECVQ_LOCK_NORMAL = 0, - U_RECVQ_LOCK_EMBRYO = 1, -}; - -enum unix_socket_lock_class { - U_LOCK_NORMAL = 0, - U_LOCK_SECOND = 1, - U_LOCK_DIAG = 2, - U_LOCK_GC_LISTENER = 3, -}; - enum unix_vertex_index { UNIX_VERTEX_INDEX_MARK1 = 0, UNIX_VERTEX_INDEX_MARK2 = 1, @@ -20394,6 +20783,14 @@ enum vm_fault_reason { VM_FAULT_HINDEX_MASK = 983040, }; +enum vm_stat_item { + NR_DIRTY_THRESHOLD = 0, + NR_DIRTY_BG_THRESHOLD = 1, + NR_MEMMAP_PAGES = 2, + NR_MEMMAP_BOOT_PAGES = 3, + NR_VM_STAT_ITEMS = 4, +}; + enum vma_resv_mode { VMA_NEEDS_RESV = 0, VMA_COMMIT_RESV = 1, @@ -20442,6 +20839,12 @@ enum vmx_l1d_flush_state { VMENTER_L1D_FLUSH_NOT_REQUIRED = 5, }; +enum vp_vq_vector_policy { + VP_VQ_VECTOR_POLICY_EACH = 0, + VP_VQ_VECTOR_POLICY_SHARED_SLOW = 1, + VP_VQ_VECTOR_POLICY_SHARED = 2, +}; + enum wb_reason { WB_REASON_BACKGROUND = 0, WB_REASON_VMSCAN = 1, @@ -20575,6 +20978,7 @@ enum wq_internal_consts { RESCUER_NICE_LEVEL = -20, HIGHPRI_NICE_LEVEL = -20, WQ_NAME_LEN = 32, + WORKER_ID_LEN = 42, }; enum wq_misc_consts { @@ -20582,13 +20986,7 @@ enum wq_misc_consts { WORK_CPU_UNBOUND = 128, WORK_BUSY_PENDING = 1, WORK_BUSY_RUNNING = 2, - WORKER_DESC_LEN = 24, -}; - -enum writeback_stat_item { - NR_DIRTY_THRESHOLD = 0, - NR_DIRTY_BG_THRESHOLD = 1, - NR_VM_WRITEBACK_STAT_ITEMS = 2, + WORKER_DESC_LEN = 32, }; enum writeback_sync_modes { @@ -20831,7 +21229,8 @@ enum xfrm_attr_type_t { XFRMA_IF_ID = 31, XFRMA_MTIMER_THRESH = 32, XFRMA_SA_DIR = 33, - __XFRMA_MAX = 34, + XFRMA_NAT_KEEPALIVE_INTERVAL = 34, + __XFRMA_MAX = 35, }; enum xfrm_nlgroups { @@ -21008,6 +21407,8 @@ typedef int __kernel_timer_t; typedef int __s32; +typedef int class_get_unused_fd_t; + typedef __kernel_clockid_t clockid_t; typedef __s32 s32; @@ -21416,6 +21817,10 @@ typedef u32 acpi_rsdesc_size; typedef u32 acpi_status; +typedef unsigned int blk_features_t; + +typedef unsigned int blk_flags_t; + typedef unsigned int blk_insert_t; typedef unsigned int blk_mode_t; @@ -21625,10 +22030,6 @@ struct list_head { struct list_head *prev; }; -struct dentry; - -struct file; - typedef struct { int counter; } atomic_t; @@ -21639,6 +22040,10 @@ struct refcount_struct { typedef struct refcount_struct refcount_t; +struct dentry; + +struct file; + typedef struct { struct list_head list; long unsigned int flags; @@ -21659,6 +22064,8 @@ typedef struct { struct folio *v; } Sector; +struct ZSTD_DDict_s; + typedef struct ZSTD_DDict_s ZSTD_DDict; typedef struct { @@ -21850,6 +22257,8 @@ typedef struct { void *lock; } class_cpus_read_lock_t; +struct raw_spinlock; + typedef struct raw_spinlock raw_spinlock_t; typedef struct { @@ -21890,49 +22299,6 @@ typedef struct { void *lock; } class_rcu_t; -struct pin_cookie { - unsigned int val; -}; - -struct rq_flags { - long unsigned int flags; - struct pin_cookie cookie; - unsigned int clock_update_flags; -}; - -typedef struct { - struct rq *lock; - struct rq_flags rf; -} class_rq_lock_irq_t; - -typedef struct { - struct rq *lock; - struct rq_flags rf; -} class_rq_lock_irqsave_t; - -typedef struct spinlock spinlock_t; - -typedef struct { - spinlock_t *lock; -} class_spinlock_irq_t; - -typedef struct { - spinlock_t *lock; - long unsigned int flags; -} class_spinlock_irqsave_t; - -typedef struct { - spinlock_t *lock; -} class_spinlock_t; - -struct task_struct; - -typedef struct { - struct task_struct *lock; - struct rq *rq; - struct rq_flags rf; -} class_task_rq_lock_t; - struct qspinlock { union { atomic_t val; @@ -21983,10 +22349,63 @@ typedef struct { struct lockdep_map dep_map; } rwlock_t; +typedef struct { + rwlock_t *lock; +} class_read_lock_t; + +struct pin_cookie { + unsigned int val; +}; + +struct rq_flags { + long unsigned int flags; + struct pin_cookie cookie; + unsigned int clock_update_flags; +}; + +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irq_t; + +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irqsave_t; + +struct spinlock; + +typedef struct spinlock spinlock_t; + +typedef struct { + spinlock_t *lock; +} class_spinlock_irq_t; + +typedef struct { + spinlock_t *lock; + long unsigned int flags; +} class_spinlock_irqsave_t; + +typedef struct { + spinlock_t *lock; +} class_spinlock_t; + +struct task_struct; + +typedef struct { + struct task_struct *lock; + struct rq *rq; + struct rq_flags rf; +} class_task_rq_lock_t; + typedef struct { rwlock_t *lock; } class_write_lock_irq_t; +typedef struct { + rwlock_t *lock; +} class_write_lock_t; + typedef struct { unsigned char op; unsigned char bits; @@ -22251,10 +22670,6 @@ typedef struct { long unsigned int key[2]; } hsiphash_key_t; -typedef struct { - long unsigned int pd; -} hugepd_t; - typedef struct { unsigned int __nmi_count; unsigned int apic_timer_irqs; @@ -22328,8 +22743,6 @@ struct rw_semaphore { struct lockdep_map dep_map; }; -struct ldt_struct; - struct mutex { atomic_long_t owner; raw_spinlock_t wait_lock; @@ -22339,6 +22752,8 @@ struct mutex { struct lockdep_map dep_map; }; +struct ldt_struct; + struct vdso_image; typedef struct { @@ -22650,24 +23065,12 @@ struct PartitionBlock { __be32 pb_EReserved[15]; }; -struct sk_buff; - -struct Qdisc_ops; - -struct qdisc_size_table; - struct hlist_node { struct hlist_node *next; struct hlist_node **pprev; }; -struct netdev_queue; - -struct net_rate_estimator; - -struct gnet_stats_basic_sync; - -struct gnet_stats_queue; +struct sk_buff; struct sk_buff_list { struct sk_buff *next; @@ -22725,6 +23128,14 @@ struct lock_class_key { }; }; +struct Qdisc_ops; + +struct qdisc_size_table; + +struct netdev_queue; + +struct net_rate_estimator; + struct Qdisc { int (*enqueue)(struct sk_buff *, struct Qdisc *, struct sk_buff **); struct sk_buff * (*dequeue)(struct Qdisc *); @@ -23530,10 +23941,6 @@ struct _gpt_mbr_record { typedef struct _gpt_mbr_record gpt_mbr_record; -struct intel_gtt_driver; - -struct pci_dev; - struct resource { resource_size_t start; resource_size_t end; @@ -23545,6 +23952,10 @@ struct resource { struct resource *child; }; +struct intel_gtt_driver; + +struct pci_dev; + struct page; struct _intel_private { @@ -23703,14 +24114,6 @@ struct ack_sample { u32 in_flight; }; -struct acomp_req; - -struct scatterlist; - -struct crypto_acomp; - -struct crypto_type; - struct crypto_tfm; struct cipher_alg { @@ -23726,6 +24129,8 @@ struct compress_alg { int (*coa_decompress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *); }; +struct crypto_type; + struct crypto_alg { struct list_head cra_list; struct list_head cra_users; @@ -23752,6 +24157,12 @@ struct comp_alg_common { struct crypto_alg base; }; +struct acomp_req; + +struct scatterlist; + +struct crypto_acomp; + struct acomp_alg { int (*compress)(struct acomp_req *); int (*decompress)(struct acomp_req *); @@ -24003,16 +24414,16 @@ struct acpi_device_data { struct list_head subnodes; }; +struct kref { + refcount_t refcount; +}; + struct kset; struct kobj_type; struct kernfs_node; -struct kref { - refcount_t refcount; -}; - struct kobject { const char *name; struct list_head entry; @@ -24709,22 +25120,6 @@ struct acpi_device_dir { struct proc_dir_entry *entry; }; -struct acpi_scan_handler; - -struct acpi_hotplug_context; - -struct acpi_device_software_nodes; - -struct acpi_gpio_mapping; - -struct device_private; - -struct device_type; - -struct bus_type; - -struct device_driver; - struct dev_links_info { struct list_head suppliers; struct list_head consumers; @@ -24762,8 +25157,6 @@ struct dev_pm_info { struct dev_pm_qos *qos; }; -struct dev_pm_domain; - struct irq_domain; struct msi_device_data; @@ -24773,6 +25166,20 @@ struct dev_msi_info { struct msi_device_data *data; }; +struct dev_archdata {}; + +struct dev_iommu; + +struct device_private; + +struct device_type; + +struct bus_type; + +struct device_driver; + +struct dev_pm_domain; + struct dma_map_ops; struct bus_dma_region; @@ -24783,8 +25190,6 @@ struct cma; struct io_tlb_mem; -struct dev_archdata {}; - struct device_node; struct class; @@ -24793,8 +25198,6 @@ struct attribute_group; struct iommu_group; -struct dev_iommu; - struct device_physical_location; struct device { @@ -24844,6 +25247,14 @@ struct device { bool dma_skip_sync: 1; }; +struct acpi_scan_handler; + +struct acpi_hotplug_context; + +struct acpi_device_software_nodes; + +struct acpi_gpio_mapping; + struct acpi_device { u32 pld_crc; int device_type; @@ -25684,9 +26095,10 @@ struct acpi_madt_local_x2apic_nmi { struct acpi_madt_multiproc_wakeup { struct acpi_subtable_header header; - u16 mailbox_version; + u16 version; u32 reserved; - u64 base_address; + u64 mailbox_address; + u64 reset_vector; }; struct acpi_madt_multiproc_wakeup_mailbox { @@ -26236,7 +26648,7 @@ struct acpi_processor_flags { u8 has_lpi: 1; u8 power_setup_done: 1; u8 bm_rld_set: 1; - u8 need_hotplug_init: 1; + u8 previously_online: 1; }; struct acpi_processor_cx { @@ -26259,10 +26671,6 @@ struct acpi_processor_power { int timer_broadcast_on_state; }; -struct acpi_processor_performance; - -struct acpi_processor_tx_tss; - struct acpi_tsd_package { u64 num_entries; u64 revision; @@ -26271,13 +26679,15 @@ struct acpi_tsd_package { u64 num_processors; }; -struct acpi_processor; - struct acpi_processor_tx { u16 power; u16 performance; }; +struct acpi_processor_tx_tss; + +struct acpi_processor; + struct acpi_processor_throttling { unsigned int state; unsigned int platform_limit; @@ -26308,8 +26718,6 @@ struct acpi_processor_limit { struct acpi_processor_lx user; }; -struct thermal_cooling_device; - struct plist_node { int prio; struct list_head prio_list; @@ -26324,6 +26732,10 @@ struct freq_qos_request { struct freq_constraints *qos; }; +struct acpi_processor_performance; + +struct thermal_cooling_device; + struct acpi_processor { acpi_handle handle; u32 acpi_id; @@ -26353,8 +26765,6 @@ struct acpi_processor_errata { } piix4; }; -struct acpi_processor_px; - struct acpi_psd_package { u64 num_entries; u64 revision; @@ -26363,6 +26773,8 @@ struct acpi_psd_package { u64 num_processors; }; +struct acpi_processor_px; + struct acpi_processor_performance { unsigned int state; unsigned int platform_limit; @@ -26843,6 +27255,7 @@ struct acpi_scan_handler { bool (*match)(const char *, const struct acpi_device_id **); int (*attach)(struct acpi_device *, const struct acpi_device_id *); void (*detach)(struct acpi_device *); + void (*post_eject)(struct acpi_device *); void (*bind)(struct device *); void (*unbind)(struct device *); struct acpi_hotplug_profile hotplug; @@ -26910,6 +27323,15 @@ struct acpi_srat_mem_affinity { u64 reserved2; } __attribute__((packed)); +struct acpi_srat_rintc_affinity { + struct acpi_subtable_header header; + u16 reserved; + u32 proximity_domain; + u32 acpi_processor_uid; + u32 flags; + u32 clock_domain; +}; + struct acpi_srat_x2apic_cpu_affinity { struct acpi_subtable_header header; u16 reserved; @@ -27717,16 +28139,16 @@ struct agp_memory { int num_sg; }; -struct ahash_request; - -struct crypto_ahash; - struct hash_alg_common { unsigned int digestsize; unsigned int statesize; struct crypto_alg base; }; +struct ahash_request; + +struct crypto_ahash; + struct ahash_alg { int (*init)(struct ahash_request *); int (*update)(struct ahash_request *); @@ -27808,8 +28230,6 @@ struct poll_iocb { struct work_struct work; }; -struct kioctx; - typedef int kiocb_cancel_fn(struct kiocb *); struct io_event { @@ -27819,6 +28239,8 @@ struct io_event { __s64 res2; }; +struct kioctx; + struct eventfd_ctx; struct aio_kiocb { @@ -28063,6 +28485,8 @@ struct amd_cpudata { u32 policy; u64 cppc_cap1_cached; bool suspended; + s16 epp_default; + bool boost_state; }; struct amd_hostbridge { @@ -28076,8 +28500,6 @@ struct amd_l3_cache { u8 subcaches[4]; }; -struct perf_event; - struct event_constraint { union { long unsigned int idxmsk[1]; @@ -28091,6 +28513,8 @@ struct event_constraint { unsigned int size; }; +struct perf_event; + struct amd_nb { int nb_id; int refcnt; @@ -29228,8 +29652,6 @@ struct audit_buffer { gfp_t gfp_mask; }; -struct fsnotify_mark; - struct audit_tree; struct audit_node { @@ -29238,6 +29660,8 @@ struct audit_node { unsigned int index; }; +struct fsnotify_mark; + struct audit_chunk { struct list_head hash; long unsigned int key; @@ -29281,8 +29705,6 @@ struct path { struct dentry *dentry; }; -struct audit_tree_refs; - struct mq_attr { __kernel_long_t mq_flags; __kernel_long_t mq_maxmsg; @@ -29311,6 +29733,8 @@ struct audit_proctitle { char *value; }; +struct audit_tree_refs; + struct audit_context { int dummy; enum { @@ -29729,8 +30153,6 @@ struct avtab_node { struct avtab_node *next; }; -struct backing_dev_info; - struct percpu_counter { raw_spinlock_t lock; s64 count; @@ -29751,6 +30173,8 @@ struct percpu_ref { struct percpu_ref_data *data; }; +struct backing_dev_info; + struct cgroup_subsys_state; struct bdi_writeback { @@ -29880,8 +30304,6 @@ struct backlight_properties { enum backlight_scale scale; }; -struct backlight_ops; - typedef int (*notifier_fn_t)(struct notifier_block *, long unsigned int, void *); struct notifier_block { @@ -29890,6 +30312,8 @@ struct notifier_block { int priority; }; +struct backlight_ops; + struct backlight_device { struct backlight_properties props; struct mutex update_lock; @@ -30066,9 +30490,13 @@ struct inode { }; dev_t i_rdev; loff_t i_size; - struct timespec64 __i_atime; - struct timespec64 __i_mtime; - struct timespec64 __i_ctime; + time64_t i_atime_sec; + time64_t i_mtime_sec; + time64_t i_ctime_sec; + u32 i_atime_nsec; + u32 i_mtime_nsec; + u32 i_ctime_nsec; + u32 i_generation; spinlock_t i_lock; short unsigned int i_bytes; u8 i_blkbits; @@ -30110,7 +30538,6 @@ struct inode { char *i_link; unsigned int i_dir_seq; }; - __u32 i_generation; __u32 i_fsnotify_mask; struct fsnotify_mark_connector *i_fsnotify_marks; void *i_private; @@ -30171,22 +30598,20 @@ struct bio; typedef void bio_end_io_t(struct bio *); -struct blkcg_gq; - struct bio_issue { u64 value; }; -struct bio_vec; - -struct bio_set; - struct bio_vec { struct page *bv_page; unsigned int bv_len; unsigned int bv_offset; }; +struct blkcg_gq; + +struct bio_set; + struct bio { struct bio *bi_next; struct block_device *bi_bdev; @@ -30221,6 +30646,19 @@ struct bio_alloc_cache { unsigned int nr_irq; }; +struct bio_integrity_payload { + struct bio *bip_bio; + struct bvec_iter bip_iter; + short unsigned int bip_vcnt; + short unsigned int bip_max_vcnt; + short unsigned int bip_flags; + int: 0; + struct bvec_iter bio_iter; + struct work_struct bip_work; + struct bio_vec *bip_vec; + struct bio_vec bip_inline_vecs[0]; +}; + struct bio_list { struct bio *head; struct bio *tail; @@ -30389,6 +30827,15 @@ struct blk_independent_access_ranges { struct blk_independent_access_range ia_range[0]; }; +struct blk_integrity { + unsigned char flags; + enum blk_integrity_checksum csum_type; + unsigned char tuple_size; + unsigned char pi_offset; + unsigned char interval_exp; + unsigned char tag_size; +}; + struct blk_io_trace { __u32 magic; __u32 sequence; @@ -30757,6 +31204,7 @@ struct blkcg { struct cgroup_subsys_state css; spinlock_t lock; refcount_t online_pin; + atomic_t congestion_count; struct xarray blkg_tree; struct blkcg_gq *blkg_hint; struct hlist_head blkg_list; @@ -30766,8 +31214,6 @@ struct blkcg { struct list_head cgwb_list; }; -struct blkg_iostat_set; - struct blkg_iostat { u64 bytes[3]; u64 ios[3]; @@ -30807,8 +31253,6 @@ struct blkcg_gq { struct callback_head callback_head; }; -struct cftype; - typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t); typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *); @@ -30827,6 +31271,8 @@ typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *); typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *); +struct cftype; + struct blkcg_policy { int plid; struct cftype *dfl_cftypes; @@ -30902,10 +31348,10 @@ struct blkpg_partition { char volname[64]; }; -struct hd_geometry; - typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); +struct hd_geometry; + struct pr_ops; struct block_device_operations { @@ -31421,6 +31867,8 @@ struct btf; struct obj_cgroup; +struct btf_type; + struct bpf_map { const struct bpf_map_ops *ops; struct bpf_map *inner_map_meta; @@ -31449,6 +31897,7 @@ struct bpf_map { }; atomic64_t writecnt; struct { + const struct btf_type *attach_func_proto; spinlock_t lock; enum bpf_prog_type type; bool jited; @@ -31462,8 +31911,6 @@ struct bpf_map { s64 *elem_count; }; -struct vm_struct; - typedef struct lockdep_map *lockdep_map_p; struct maple_tree { @@ -31475,6 +31922,8 @@ struct maple_tree { void *ma_root; }; +struct vm_struct; + struct bpf_arena { struct bpf_map map; u64 user_vm_start; @@ -31520,18 +31969,21 @@ struct bpf_async_cb { struct bpf_prog *prog; void *callback_fn; void *value; - struct callback_head rcu; + union { + struct callback_head rcu; + struct work_struct delete_work; + }; u64 flags; }; -struct bpf_hrtimer; - -struct bpf_work; - struct bpf_spin_lock { __u32 val; }; +struct bpf_hrtimer; + +struct bpf_work; + struct bpf_async_kern { union { struct bpf_async_cb *cb; @@ -31549,8 +32001,6 @@ struct btf_func_model { u8 arg_flags[12]; }; -struct btf_type; - struct bpf_attach_target_info { struct btf_func_model fmodel; long int tgt_addr; @@ -31927,15 +32377,15 @@ struct bpf_cgroup_link { enum bpf_attach_type type; }; -struct bpf_storage_buffer; - -struct bpf_cgroup_storage_map; - struct bpf_cgroup_storage_key { __u64 cgroup_inode_id; __u32 attach_type; }; +struct bpf_storage_buffer; + +struct bpf_cgroup_storage_map; + struct bpf_cgroup_storage { union { struct bpf_storage_buffer *buf; @@ -32037,10 +32487,6 @@ struct bpf_cpu_map { struct bpf_cpu_map_entry **cpu_map; }; -struct xdp_bulk_queue; - -struct ptr_ring; - struct bpf_cpumap_val { __u32 qsize; union { @@ -32049,6 +32495,10 @@ struct bpf_cpumap_val { } bpf_prog; }; +struct xdp_bulk_queue; + +struct ptr_ring; + struct bpf_cpu_map_entry { u32 cpu; int map_id; @@ -32353,15 +32803,15 @@ struct bpf_sock { __s32 rx_queue_mapping; }; -struct proto; - -struct inet_timewait_death_row; - struct hlist_nulls_node { struct hlist_nulls_node *next; struct hlist_nulls_node **pprev; }; +struct proto; + +struct inet_timewait_death_row; + struct sock_common { union { __addrpair skc_addrpair; @@ -32423,6 +32873,17 @@ struct sock_common { }; }; +struct page_frag { + struct page *page; + __u32 offset; + __u32 size; +}; + +struct sock_cgroup_data { + struct cgroup *cgroup; + u32 classid; +}; + struct dst_entry; struct sk_filter; @@ -32435,17 +32896,6 @@ struct mem_cgroup; struct xfrm_policy; -struct page_frag { - struct page *page; - __u32 offset; - __u32 size; -}; - -struct sock_cgroup_data { - struct cgroup *cgroup; - u32 classid; -}; - struct sock_reuseport; struct bpf_local_storage; @@ -33191,6 +33641,7 @@ struct bpf_func_proto { bool gpl_only; bool pkt_access; bool might_sleep; + bool allow_fastcall; enum bpf_return_type ret_type; union { struct { @@ -33309,6 +33760,7 @@ struct bpf_func_state { struct bpf_hrtimer { struct bpf_async_cb cb; struct hrtimer timer; + atomic_t cancelling; }; struct bpf_mem_caches; @@ -33323,10 +33775,6 @@ struct bpf_mem_alloc { struct work_struct work; }; -struct bucket; - -struct pcpu_freelist_head; - struct pcpu_freelist_node; struct pcpu_freelist_head { @@ -33359,6 +33807,8 @@ struct bpf_lru { long: 64; }; +struct bucket; + struct htab_elem; struct bpf_htab { @@ -33370,7 +33820,6 @@ struct bpf_htab { long: 64; long: 64; long: 64; - long: 64; union { struct pcpu_freelist freelist; struct bpf_lru lru; @@ -33417,6 +33866,7 @@ struct bpf_insn { struct bpf_insn_access_aux { enum bpf_reg_type reg_type; + bool is_ldsx; union { int ctx_field_size; struct { @@ -33425,6 +33875,7 @@ struct bpf_insn_access_aux { }; }; struct bpf_verifier_log *log; + bool is_retval; }; struct bpf_map_ptr_state { @@ -33478,6 +33929,8 @@ struct bpf_insn_aux_data { bool is_iter_next; bool call_with_percpu_alloc_ptr; u8 alu_state; + u8 fastcall_pattern: 1; + u8 fastcall_spills_num: 3; unsigned int orig_idx; bool jmp_point; bool prune_point; @@ -33917,8 +34370,6 @@ struct bpf_iter_task_vma_kern { struct bpf_iter_task_vma_kern_data *data; }; -struct mmap_unlock_irq_work; - struct maple_enode; struct maple_alloc; @@ -33942,6 +34393,8 @@ struct vma_iterator { struct ma_state mas; }; +struct mmap_unlock_irq_work; + struct bpf_iter_task_vma_kern_data { struct task_struct *task; struct mm_struct *mm; @@ -33970,6 +34423,7 @@ struct bpf_jmp_history_entry { u32 idx; u32 prev_idx: 22; u32 flags: 10; + u64 linked_regs; }; struct bpf_key { @@ -34070,18 +34524,20 @@ struct ftrace_ops { long unsigned int trampoline; long unsigned int trampoline_size; struct list_head list; + struct list_head subop_list; ftrace_ops_func_t ops_func; + struct ftrace_ops *managed; long unsigned int direct_call; }; -struct rethook; - struct fprobe; typedef int (*fprobe_entry_cb)(struct fprobe *, long unsigned int, long unsigned int, struct pt_regs *, void *); typedef void (*fprobe_exit_cb)(struct fprobe *, long unsigned int, long unsigned int, struct pt_regs *, void *); +struct rethook; + struct fprobe { struct ftrace_ops ops; long unsigned int nmissed; @@ -34416,10 +34872,10 @@ struct bpf_map_info { __u64 map_extra; }; -struct bpf_prog_aux; - typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64); +struct bpf_prog_aux; + struct bpf_map_ops { int (*map_alloc_check)(union bpf_attr *); struct bpf_map * (*map_alloc)(union bpf_attr *); @@ -34549,6 +35005,32 @@ struct bpf_nested_pt_regs { struct pt_regs regs[3]; }; +struct bpf_nh_params { + u32 nh_family; + union { + u32 ipv4_nh; + struct in6_addr ipv6_nh; + }; +}; + +struct bpf_redirect_info { + u64 tgt_index; + void *tgt_value; + struct bpf_map *map; + u32 flags; + u32 map_id; + enum bpf_map_type map_type; + struct bpf_nh_params nh; + u32 kern_flags; +}; + +struct bpf_net_context { + struct bpf_redirect_info ri; + struct list_head cpu_map_flush_list; + struct list_head dev_map_flush_list; + struct list_head xskmap_map_flush_list; +}; + struct bpf_netns_link { struct bpf_link link; enum bpf_attach_type type; @@ -34579,14 +35061,6 @@ struct bpf_nf_link { const struct nf_defrag_hook *defrag_hook; }; -struct bpf_nh_params { - u32 nh_family; - union { - u32 ipv4_nh; - struct in6_addr ipv6_nh; - }; -}; - struct bpf_prog_offload_ops; struct bpf_offload_dev { @@ -34642,10 +35116,6 @@ struct bpf_preload_ops { struct module *owner; }; -struct bpf_prog_stats; - -struct sock_fprog_kern; - struct sock_filter { __u16 code; __u8 jt; @@ -34653,6 +35123,10 @@ struct sock_filter { __u32 k; }; +struct bpf_prog_stats; + +struct sock_fprog_kern; + struct bpf_prog { u16 pages; u16 jited: 1; @@ -34938,17 +35412,6 @@ struct bpf_redir_neigh { }; }; -struct bpf_redirect_info { - u64 tgt_index; - void *tgt_value; - struct bpf_map *map; - u32 flags; - u32 kern_flags; - u32 map_id; - enum bpf_map_type map_type; - struct bpf_nh_params nh; -}; - struct bpf_refcount { __u32 __opaque[1]; }; @@ -35971,7 +36434,7 @@ struct bpf_ringbuf { long: 64; long: 64; long unsigned int producer_pos; - long: 64; + long unsigned int pending_pos; long: 64; long: 64; long: 64; @@ -36505,6 +36968,7 @@ struct bpf_scratchpad { __be32 diff[128]; u8 buff[512]; }; + local_lock_t bh_lock; }; struct bpf_security_struct { @@ -36522,8 +36986,6 @@ struct bpf_shim_tramp_link { struct bpf_trampoline *trampoline; }; -struct bpf_shtab_bucket; - struct sk_psock_progs { struct bpf_prog *msg_parser; struct bpf_prog *stream_parser; @@ -36535,6 +36997,8 @@ struct sk_psock_progs { struct bpf_link *skb_verdict_link; }; +struct bpf_shtab_bucket; + struct bpf_shtab { struct bpf_map map; struct bpf_shtab_bucket *buckets; @@ -36699,8 +37163,6 @@ struct bpf_struct_ops_link { wait_queue_head_t wait_hup; }; -struct bpf_struct_ops_value; - struct bpf_struct_ops_value { struct bpf_struct_ops_common_value common; long: 64; @@ -36730,7 +37192,6 @@ struct bpf_struct_ops_map { long: 64; long: 64; long: 64; - long: 64; struct bpf_struct_ops_value kvalue; }; @@ -36789,6 +37250,7 @@ struct bpf_subprog_info { u32 linfo_idx; u16 stack_depth; u16 stack_extra; + s16 fastcall_stack_off; bool has_tail_call: 1; bool tail_call_reachable: 1; bool has_ld_abs: 1; @@ -36796,6 +37258,7 @@ struct bpf_subprog_info { bool is_async_cb: 1; bool is_exception_cb: 1; bool args_cached: 1; + bool keep_fastcall_stack: 1; u8 arg_cnt; struct bpf_subprog_arg_info args[5]; }; @@ -36908,12 +37371,6 @@ struct bpf_trace_run_ctx { bool is_uprobe; }; -struct perf_callchain_entry; - -struct perf_raw_record; - -struct perf_branch_stack; - union perf_sample_weight { __u64 full; struct { @@ -36945,6 +37402,12 @@ struct perf_regs { struct pt_regs *regs; }; +struct perf_callchain_entry; + +struct perf_raw_record; + +struct perf_branch_stack; + struct perf_sample_data { u64 sample_flags; u64 period; @@ -37085,8 +37548,6 @@ struct bpf_unix_iter_state { bool st_bucket_done; }; -struct bpf_uprobe_multi_link; - struct uprobe_consumer { int (*handler)(struct uprobe_consumer *, struct pt_regs *); int (*ret_handler)(struct uprobe_consumer *, long unsigned int, struct pt_regs *); @@ -37094,6 +37555,8 @@ struct uprobe_consumer { struct uprobe_consumer *next; }; +struct bpf_uprobe_multi_link; + struct bpf_uprobe { struct bpf_uprobe_multi_link *link; loff_t offset; @@ -37117,12 +37580,6 @@ struct bpf_uprobe_multi_run_ctx { struct bpf_uprobe *uprobe; }; -struct bpf_verifier_stack_elem; - -struct bpf_verifier_state; - -struct bpf_verifier_state_list; - struct btf_mod_pair { struct btf *btf; struct module *module; @@ -37138,6 +37595,12 @@ struct bpf_verifier_log { char kbuf[1024]; }; +struct bpf_verifier_stack_elem; + +struct bpf_verifier_state; + +struct bpf_verifier_state_list; + struct bpf_verifier_env { u32 insn_idx; u32 prev_insn_idx; @@ -37198,13 +37661,17 @@ struct bpf_verifier_env { u64 scratched_stack_slots; u64 prev_log_pos; u64 prev_insn_print_pos; + struct bpf_reg_state fake_reg[2]; char tmp_str_buf[320]; + struct bpf_insn insn_buf[16]; + struct bpf_insn epilogue_buf[16]; }; struct bpf_verifier_ops { const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *); bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *); int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *); + int (*gen_epilogue)(struct bpf_insn *, const struct bpf_prog *, s16); int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *); u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int); @@ -37570,6 +38037,7 @@ struct btf { u32 start_str_off; char name[56]; bool kernel_btf; + __u32 *base_id_map; }; struct btf_anon_stack { @@ -37624,6 +38092,14 @@ struct btf_field { }; }; +struct btf_field_desc { + int t_off_cnt; + int t_offs[2]; + int m_sz; + int m_off_cnt; + int m_offs[1]; +}; + struct btf_field_info { enum btf_field_type type; u32 off; @@ -37638,6 +38114,14 @@ struct btf_field_info { }; }; +struct btf_field_iter { + struct btf_field_desc desc; + void *p; + int m_idx; + int off_idx; + int vlen; +}; + struct btf_id_dtor_kfunc { u32 btf_id; u32 kfunc_btf_id; @@ -37709,6 +38193,13 @@ struct btf_module { int flags; }; +struct btf_name_info { + const char *name; + bool needs_size: 1; + unsigned int size: 31; + __u32 id; +}; + struct btf_param { __u32 name_off; __u32 type; @@ -37730,6 +38221,19 @@ struct btf_record { struct btf_field fields[0]; }; +struct btf_relocate { + struct btf *btf; + const struct btf *base_btf; + const struct btf *dist_base_btf; + unsigned int nr_base_types; + unsigned int nr_split_types; + unsigned int nr_dist_base_types; + int dist_str_len; + int base_str_len; + __u32 *id_map; + __u32 *str_map; +}; + struct btf_sec_info { u32 off; u32 len; @@ -39499,7 +40003,7 @@ struct bus_type { const struct attribute_group **bus_groups; const struct attribute_group **dev_groups; const struct attribute_group **drv_groups; - int (*match)(struct device *, struct device_driver *); + int (*match)(struct device *, const struct device_driver *); int (*uevent)(const struct device *, struct kobj_uevent_env *); int (*probe)(struct device *); void (*sync_state)(struct device *); @@ -39683,8 +40187,6 @@ struct load_weight { u32 inv_weight; }; -struct sched_entity; - struct sched_avg { u64 last_update_time; u64 load_sum; @@ -39697,6 +40199,8 @@ struct sched_avg { unsigned int util_est; }; +struct sched_entity; + struct task_group; struct cfs_rq { @@ -39801,10 +40305,6 @@ struct cgroup_file { struct timer_list notify_timer; }; -struct cgroup_root; - -struct cgroup_rstat_cpu; - struct task_cputime { u64 stime; u64 utime; @@ -39821,8 +40321,6 @@ struct prev_cputime { raw_spinlock_t lock; }; -struct psi_group; - struct cgroup_bpf { struct bpf_prog_array *effective[38]; struct hlist_head progs[38]; @@ -39840,6 +40338,12 @@ struct cgroup_freezer_state { int nr_frozen_tasks; }; +struct cgroup_root; + +struct cgroup_rstat_cpu; + +struct psi_group; + struct cgroup { struct cgroup_subsys_state self; long unsigned int flags; @@ -39886,7 +40390,6 @@ struct cgroup { struct work_struct release_agent_work; struct psi_group *psi; struct cgroup_bpf bpf; - atomic_t congestion_count; struct cgroup_freezer_state freezer; struct bpf_local_storage *bpf_cgrp_storage; struct cgroup *ancestors[0]; @@ -39894,6 +40397,7 @@ struct cgroup { long: 64; long: 64; long: 64; + long: 64; }; struct cgroup__safe_rcu { @@ -39905,8 +40409,6 @@ struct cgroup_cls_state { u32 classid; }; -struct cgroup_namespace; - struct css_set; struct css_task_iter { @@ -39924,6 +40426,8 @@ struct css_task_iter { struct list_head iters_node; }; +struct cgroup_namespace; + struct cgroup_pidlist; struct cgroup_file_ctx { @@ -40261,8 +40765,6 @@ struct class_compat { struct kobject *kobj; }; -struct common_datum; - struct hashtab_node; struct hashtab { @@ -40276,6 +40778,8 @@ struct symtab { u32 nprim; }; +struct common_datum; + struct constraint_node; struct class_datum { @@ -40394,13 +40898,13 @@ struct clk_composite { const struct clk_ops *gate_ops; }; -struct clk_parent_map; - struct clk_duty { unsigned int num; unsigned int den; }; +struct clk_parent_map; + struct clk_core { const char *name; const struct clk_ops *ops; @@ -40666,6 +41170,8 @@ struct clock_identity { u8 id[8]; }; +struct clocksource_base; + struct clocksource { u64 (*read)(struct clocksource *); u64 mask; @@ -40677,10 +41183,12 @@ struct clocksource { u64 max_cycles; const char *name; struct list_head list; + u32 freq_khz; int rating; enum clocksource_ids id; enum vdso_clock_mode vdso_clock_mode; long unsigned int flags; + struct clocksource_base *base; int (*enable)(struct clocksource *); void (*disable)(struct clocksource *); void (*suspend)(struct clocksource *); @@ -40693,6 +41201,14 @@ struct clocksource { struct module *owner; }; +struct clocksource_base { + enum clocksource_ids id; + u32 freq_khz; + u64 offset; + u32 numerator; + u32 denominator; +}; + struct clone_args { __u64 flags; __u64 pidfd; @@ -40818,6 +41334,89 @@ struct cma { bool reserve_pages_on_error; }; +struct cmis_cdb_advert_rpl { + u8 inst_supported; + u8 read_write_len_ext; + u8 resv1; + u8 resv2; +}; + +struct cmis_cdb_fw_mng_features_rpl { + u8 resv1; + u8 resv2; + u8 start_cmd_payload_size; + u8 resv3; + u8 read_write_len_ext; + u8 write_mechanism; + u8 resv4; + u8 resv5; + __be16 max_duration_start; + __be16 resv6; + __be16 max_duration_write; + __be16 max_duration_complete; + __be16 resv7; +}; + +struct cmis_cdb_module_features_rpl { + u8 resv1[34]; + __be16 max_completion_time; +}; + +struct cmis_cdb_query_status_pl { + u16 response_delay; +}; + +struct cmis_cdb_query_status_rpl { + u8 length; + u8 status; +}; + +struct cmis_cdb_run_fw_image_pl { + u8 resv1; + u8 image_to_run; + u16 delay_to_reset; +}; + +struct cmis_cdb_start_fw_download_pl_h { + __be32 image_size; + __be32 resv1; +}; + +struct cmis_cdb_start_fw_download_pl { + union { + struct { + __be32 image_size; + __be32 resv1; + }; + struct cmis_cdb_start_fw_download_pl_h head; + }; + u8 vendor_data[112]; +}; + +struct cmis_cdb_write_fw_block_lpl_pl { + __be32 block_address; + u8 fw_block[116]; +}; + +struct cmis_fw_update_fw_mng_features { + u8 start_cmd_payload_size; + u16 max_duration_start; + u16 max_duration_write; + u16 max_duration_complete; +}; + +struct cmis_password_entry_pl { + __be32 password; +}; + +struct cmis_rev_rpl { + u8 rev; +}; + +struct cmis_wait_for_cond_rpl { + u8 state; +}; + struct cmsghdr { __kernel_size_t cmsg_len; int cmsg_level; @@ -40898,10 +41497,6 @@ struct codel_vars { codel_time_t ldelay; }; -union codetag_ref { - struct codetag *ct; -}; - struct collapse_control { bool is_khugepaged; u32 node_load[64]; @@ -41195,21 +41790,37 @@ struct conntrack_gc_work { bool early_drop; }; +struct winsize { + short unsigned int ws_row; + short unsigned int ws_col; + short unsigned int ws_xpixel; + short unsigned int ws_ypixel; +}; + +struct hvc_struct; + +struct console { + struct list_head list; + struct hvc_struct *hvc; + struct winsize ws; + u32 vtermno; +}; + struct tty_driver; struct nbcon_write_context; struct printk_buffers; -struct console { +struct console___2 { char name[16]; - void (*write)(struct console *, const char *, unsigned int); - int (*read)(struct console *, char *, unsigned int); - struct tty_driver * (*device)(struct console *, int *); + void (*write)(struct console___2 *, const char *, unsigned int); + int (*read)(struct console___2 *, char *, unsigned int); + struct tty_driver * (*device)(struct console___2 *, int *); void (*unblank)(); - int (*setup)(struct console *, char *); - int (*exit)(struct console *); - int (*match)(struct console *, char *, int, char *); + int (*setup)(struct console___2 *, char *); + int (*exit)(struct console___2 *); + int (*match)(struct console___2 *, char *, int, char *); short int flags; short int index; int cflag; @@ -41219,31 +41830,16 @@ struct console { long unsigned int dropped; void *data; struct hlist_node node; - bool (*write_atomic)(struct console *, struct nbcon_write_context *); + bool (*write_atomic)(struct console___2 *, struct nbcon_write_context *); atomic_t nbcon_state; atomic_long_t nbcon_seq; struct printk_buffers *pbufs; }; -struct hvc_struct; - -struct winsize { - short unsigned int ws_row; - short unsigned int ws_col; - short unsigned int ws_xpixel; - short unsigned int ws_ypixel; -}; - -struct console___2 { - struct list_head list; - struct hvc_struct *hvc; - struct winsize ws; - u32 vtermno; -}; - struct console_cmdline { char name[16]; int index; + char devname[32]; bool user_specified; char *options; }; @@ -41264,13 +41860,6 @@ struct console_font_op { unsigned char *data; }; -struct console_option { - char name[32]; - char opt[16]; - char brl_opt[16]; - u8 has_brl_opt: 1; -}; - struct constant_table { const char *name; int value; @@ -41389,8 +41978,8 @@ struct convert_context_args { }; struct copy_subpage_arg { - struct page *dst; - struct page *src; + struct folio *dst; + struct folio *src; struct vm_area_struct *vma; }; @@ -41426,6 +42015,8 @@ struct core_vma_metadata { struct file *file; }; +struct kernel_siginfo; + typedef struct kernel_siginfo kernel_siginfo_t; struct coredump_params { @@ -42206,14 +42797,14 @@ struct perf_branch_stack { struct perf_branch_entry entries[0]; }; -struct er_account; - struct perf_guest_switch_msr { unsigned int msr; u64 host; u64 guest; }; +struct er_account; + struct intel_shared_regs; struct intel_excl_cntrs; @@ -42462,7 +43053,7 @@ struct cpufreq_driver { int (*bios_limit)(int, unsigned int *); int (*online)(struct cpufreq_policy *); int (*offline)(struct cpufreq_policy *); - int (*exit)(struct cpufreq_policy *); + void (*exit)(struct cpufreq_policy *); int (*suspend)(struct cpufreq_policy *); int (*resume)(struct cpufreq_policy *); void (*ready)(struct cpufreq_policy *); @@ -42743,10 +43334,10 @@ struct cpuidle_state_usage { long long unsigned int rejected; }; -struct cpuidle_state_kobj; - struct cpuidle_driver_kobj; +struct cpuidle_state_kobj; + struct cpuidle_device_kobj; struct cpuidle_device { @@ -43518,7 +44109,7 @@ struct ctl_node { struct ctl_table_header *header; }; -typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *); +typedef int proc_handler(const struct ctl_table *, int, void *, size_t *, loff_t *); struct ctl_table_poll; @@ -43995,11 +44586,11 @@ struct dentry { struct qstr d_name; struct inode *d_inode; unsigned char d_iname[40]; - struct lockref d_lockref; const struct dentry_operations *d_op; struct super_block *d_sb; long unsigned int d_time; void *d_fsdata; + struct lockref d_lockref; union { struct list_head d_lru; wait_queue_head_t *d_wait; @@ -44123,13 +44714,13 @@ struct vmem_altmap { bool inaccessible; }; -struct dev_pagemap_ops; - struct range { u64 start; u64 end; }; +struct dev_pagemap_ops; + struct dev_pagemap { struct vmem_altmap altmap; struct percpu_ref ref; @@ -44299,7 +44890,7 @@ struct device_private { struct klist_node knode_bus; struct klist_node knode_class; struct list_head deferred_probe; - struct device_driver *async_driver; + const struct device_driver *async_driver; char *deferred_probe_reason; struct device *device; u8 dead: 1; @@ -44341,15 +44932,15 @@ struct devkmsg_user { struct printk_buffers pbufs; }; -struct devlink_dpipe_headers; - -struct devlink_ops; - struct devlink_dev_stats { u32 reload_stats[6]; u32 remote_reload_stats[6]; }; +struct devlink_dpipe_headers; + +struct devlink_ops; + struct devlink_rel; struct devlink { @@ -44454,7 +45045,7 @@ struct devlink_dpipe_table { bool resource_valid; u64 resource_id; u64 resource_units; - struct devlink_dpipe_table_ops *table_ops; + const struct devlink_dpipe_table_ops *table_ops; struct callback_head rcu; }; @@ -44710,10 +45301,6 @@ struct devlink_param_item { bool driverinit_value_new_valid; }; -struct devlink_port_ops; - -struct ib_device; - struct netdev_phys_item_id { unsigned char id[32]; unsigned char id_len; @@ -44758,6 +45345,10 @@ struct devlink_port_attrs { }; }; +struct devlink_port_ops; + +struct ib_device; + struct devlink_port { struct list_head list; struct list_head region_list; @@ -45093,6 +45684,18 @@ struct dim_cq_moder { u16 pkts; u16 comps; u8 cq_period_mode; + struct callback_head rcu; +}; + +struct dim_irq_moder { + u8 profile_flags; + u8 coal_flags; + u8 dim_rx_mode; + u8 dim_tx_mode; + struct dim_cq_moder *rx_profile; + struct dim_cq_moder *tx_profile; + void (*rx_dim_work)(struct work_struct *); + void (*tx_dim_work)(struct work_struct *); }; struct dir_context; @@ -45137,6 +45740,8 @@ struct dirty_throttle_control { long unsigned int wb_thresh; long unsigned int wb_bg_thresh; long unsigned int pos_ratio; + bool freerun; + bool dirty_exceeded; }; struct disk_events { @@ -45226,14 +45831,14 @@ struct dl_rq { u64 bw_ratio; }; -struct dma_chan; - typedef void (*dma_async_tx_callback)(void *); struct dmaengine_result; typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); +struct dma_chan; + struct dmaengine_unmap_data; struct dma_descriptor_metadata_ops; @@ -45258,8 +45863,6 @@ struct dma_block { dma_addr_t dma; }; -struct dma_buf_ops; - struct iosys_map { union { void *vaddr_iomem; @@ -45268,14 +45871,16 @@ struct iosys_map { bool is_iomem; }; -struct dma_resv; - struct dma_buf_poll_cb_t { struct dma_fence_cb cb; wait_queue_head_t *poll; __poll_t active; }; +struct dma_buf_ops; + +struct dma_resv; + struct dma_buf { size_t size; struct file *file; @@ -45415,6 +46020,8 @@ struct dma_filter { const struct dma_slave_map *map; }; +struct dma_vec; + struct dma_interleaved_template; struct dma_slave_caps; @@ -45461,6 +46068,7 @@ struct dma_device { struct dma_async_tx_descriptor * (*device_prep_dma_memset)(struct dma_chan *, dma_addr_t, int, size_t, long unsigned int); struct dma_async_tx_descriptor * (*device_prep_dma_memset_sg)(struct dma_chan *, struct scatterlist *, unsigned int, int, long unsigned int); struct dma_async_tx_descriptor * (*device_prep_dma_interrupt)(struct dma_chan *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_peripheral_dma_vec)(struct dma_chan *, const struct dma_vec *, size_t, enum dma_transfer_direction, long unsigned int); struct dma_async_tx_descriptor * (*device_prep_slave_sg)(struct dma_chan *, struct scatterlist *, unsigned int, enum dma_transfer_direction, long unsigned int, void *); struct dma_async_tx_descriptor * (*device_prep_dma_cyclic)(struct dma_chan *, dma_addr_t, size_t, size_t, enum dma_transfer_direction, long unsigned int); struct dma_async_tx_descriptor * (*device_prep_interleaved_dma)(struct dma_chan *, struct dma_interleaved_template *, long unsigned int); @@ -45502,6 +46110,13 @@ struct dma_fence { int error; }; +struct dma_fence_array; + +struct dma_fence_array_cb { + struct dma_fence_cb cb; + struct dma_fence_array *array; +}; + struct dma_fence_array { struct dma_fence base; spinlock_t lock; @@ -45509,11 +46124,7 @@ struct dma_fence_array { atomic_t num_pending; struct dma_fence **fences; struct irq_work work; -}; - -struct dma_fence_array_cb { - struct dma_fence_cb cb; - struct dma_fence_array *array; + struct dma_fence_array_cb callbacks[0]; }; struct dma_fence_chain { @@ -45702,6 +46313,11 @@ struct dma_tx_state { u32 in_flight_bytes; }; +struct dma_vec { + dma_addr_t addr; + size_t len; +}; + struct dmaengine_result { enum dmaengine_tx_result result; u32 residue; @@ -45905,14 +46521,14 @@ struct drbg_core { char backend_cra_name[128]; }; -struct drbg_state_ops; - struct drbg_string { const unsigned char *buf; size_t len; struct list_head list; }; +struct drbg_state_ops; + struct drbg_state { struct mutex drbg_mutex; unsigned char *V; @@ -46060,7 +46676,7 @@ struct dst_ops { u32 * (*cow_metrics)(struct dst_entry *, long unsigned int); void (*destroy)(struct dst_entry *); void (*ifdown)(struct dst_entry *, struct net_device *); - struct dst_entry * (*negative_advice)(struct dst_entry *); + void (*negative_advice)(struct sock *, struct dst_entry *); void (*link_failure)(struct sk_buff *); void (*update_pmtu)(struct dst_entry *, struct sock *, struct sk_buff *, u32, bool); void (*redirect)(struct dst_entry *, struct sock *, struct sk_buff *); @@ -46213,14 +46829,6 @@ struct early_load_data { u32 new_rev; }; -struct ktermios; - -struct serial_rs485; - -struct serial_iso7816; - -struct uart_state; - struct uart_icount { __u32 cts; __u32 dsr; @@ -46235,10 +46843,6 @@ struct uart_icount { __u32 buf_overrun; }; -struct uart_ops; - -struct serial_port_device; - struct serial_rs485 { __u32 flags; __u32 delay_rts_before_send; @@ -46263,6 +46867,14 @@ struct serial_iso7816 { __u32 reserved[5]; }; +struct ktermios; + +struct uart_state; + +struct uart_ops; + +struct serial_port_device; + struct uart_port { spinlock_t lock; long unsigned int iobase; @@ -46298,7 +46910,7 @@ struct uart_port { unsigned int ignore_status_mask; struct uart_state *state; struct uart_icount icount; - struct console *cons; + struct console___2 *cons; upf_t flags; upstat_t status; bool hw_stopped; @@ -46332,7 +46944,7 @@ struct uart_port { }; struct earlycon_device { - struct console *con; + struct console___2 *con; struct uart_port port; char options[32]; unsigned int baud; @@ -46815,8 +47427,6 @@ struct elf64_sym { typedef struct elf64_sym Elf64_Sym; -struct elf_thread_core_info; - struct memelfnote { const char *name; int type; @@ -46838,6 +47448,8 @@ struct siginfo { typedef struct siginfo siginfo_t; +struct elf_thread_core_info; + struct elf_note_info { struct elf_thread_core_info *thread; struct memelfnote psinfo; @@ -46964,15 +47576,15 @@ struct epoll_filefd { int fd; } __attribute__((packed)); -struct eppoll_entry; - -struct eventpoll; - struct epoll_event { __poll_t events; __u64 data; } __attribute__((packed)); +struct eppoll_entry; + +struct eventpoll; + struct epitem { union { struct rb_node rbn; @@ -47120,6 +47732,12 @@ struct ethnl_dump_ctx { long unsigned int pos_ifindex; }; +struct ethnl_module_fw_flash_ntf_params { + u32 portid; + u32 seq; + bool closed_sock; +}; + struct ethnl_request_ops { u8 request_cmd; u8 reply_cmd; @@ -47137,6 +47755,12 @@ struct ethnl_request_ops { int (*set)(struct ethnl_req_info *, struct genl_info *); }; +struct ethnl_sock_priv { + struct net_device *dev; + u32 portid; + enum ethnl_sock_type type; +}; + struct ethnl_tunnel_info_dump_ctx { struct ethnl_req_info req_info; long unsigned int ifindex; @@ -47156,6 +47780,25 @@ struct ethtool_ah_espip6_spec { __u8 tclass; }; +struct ethtool_c33_pse_ext_state_info { + enum ethtool_c33_pse_ext_state c33_pse_ext_state; + union { + enum ethtool_c33_pse_ext_substate_error_condition error_condition; + enum ethtool_c33_pse_ext_substate_mr_pse_enable mr_pse_enable; + enum ethtool_c33_pse_ext_substate_option_detect_ted option_detect_ted; + enum ethtool_c33_pse_ext_substate_option_vport_lim option_vport_lim; + enum ethtool_c33_pse_ext_substate_ovld_detected ovld_detected; + enum ethtool_c33_pse_ext_substate_power_not_available power_not_available; + enum ethtool_c33_pse_ext_substate_short_detected short_detected; + u32 __c33_pse_ext_substate; + }; +}; + +struct ethtool_c33_pse_pw_limit_range { + u32 min; + u32 max; +}; + struct ethtool_cmd { __u32 cmd; __u32 supported; @@ -47176,6 +47819,66 @@ struct ethtool_cmd { __u32 reserved[2]; }; +struct ethtool_cmis_cdb { + u8 cmis_rev; + u8 read_write_len_ext; + u16 max_completion_time; +}; + +struct ethtool_cmis_cdb_request { + __be16 id; + union { + struct { + __be16 epl_len; + u8 lpl_len; + u8 chk_code; + u8 resv1; + u8 resv2; + u8 payload[120]; + }; + struct { + __be16 epl_len; + u8 lpl_len; + u8 chk_code; + u8 resv1; + u8 resv2; + u8 payload[120]; + } body; + }; +}; + +struct ethtool_cmis_cdb_cmd_args { + struct ethtool_cmis_cdb_request req; + u16 max_duration; + u8 read_write_len_ext; + u8 msleep_pre_rpl; + u8 rpl_exp_len; + u8 flags; + char *err_msg; +}; + +struct ethtool_cmis_cdb_rpl_hdr { + u8 rpl_len; + u8 rpl_chk_code; +}; + +struct ethtool_cmis_cdb_rpl { + struct ethtool_cmis_cdb_rpl_hdr hdr; + u8 payload[120]; +}; + +struct ethtool_module_fw_flash_params { + __be32 password; + u8 password_valid: 1; +}; + +struct ethtool_cmis_fw_update_params { + struct net_device *dev; + struct ethtool_module_fw_flash_params params; + struct ethnl_module_fw_flash_ntf_params ntf_params; + const struct firmware *fw; +}; + struct ethtool_flash { __u32 cmd; __u32 region; @@ -47518,11 +48221,25 @@ struct ethtool_module_eeprom { u8 *data; }; +struct ethtool_module_fw_flash { + struct list_head list; + netdevice_tracker dev_tracker; + struct work_struct work; + struct ethtool_cmis_fw_update_params fw_update; +}; + struct ethtool_module_power_mode_params { enum ethtool_module_power_mode_policy policy; enum ethtool_module_power_mode mode; }; +struct ethtool_netdev_state { + struct xarray rss_ctx; + struct mutex rss_lock; + unsigned int wol_enabled: 1; + unsigned int module_fw_flash_in_progress: 1; +}; + struct ethtool_regs; struct ethtool_wolinfo; @@ -47543,7 +48260,9 @@ struct ethtool_rxnfc; struct ethtool_rxfh_param; -struct ethtool_ts_info; +struct ethtool_rxfh_context; + +struct kernel_ethtool_ts_info; struct ethtool_ts_stats; @@ -47557,6 +48276,10 @@ struct ethtool_ops { u32 cap_link_lanes_supported: 1; u32 cap_rss_ctx_supported: 1; u32 cap_rss_sym_xor_supported: 1; + u32 rxfh_indir_space; + u16 rxfh_key_space; + u16 rxfh_priv_size; + u32 rxfh_max_num_contexts; u32 supported_coalesce_params; u32 supported_ring_params; void (*get_drvinfo)(struct net_device *, struct ethtool_drvinfo *); @@ -47597,12 +48320,15 @@ struct ethtool_ops { u32 (*get_rxfh_indir_size)(struct net_device *); int (*get_rxfh)(struct net_device *, struct ethtool_rxfh_param *); int (*set_rxfh)(struct net_device *, struct ethtool_rxfh_param *, struct netlink_ext_ack *); + int (*create_rxfh_context)(struct net_device *, struct ethtool_rxfh_context *, const struct ethtool_rxfh_param *, struct netlink_ext_ack *); + int (*modify_rxfh_context)(struct net_device *, struct ethtool_rxfh_context *, const struct ethtool_rxfh_param *, struct netlink_ext_ack *); + int (*remove_rxfh_context)(struct net_device *, struct ethtool_rxfh_context *, u32, struct netlink_ext_ack *); void (*get_channels)(struct net_device *, struct ethtool_channels *); int (*set_channels)(struct net_device *, struct ethtool_channels *); int (*get_dump_flag)(struct net_device *, struct ethtool_dump *); int (*get_dump_data)(struct net_device *, struct ethtool_dump *, void *); int (*set_dump)(struct net_device *, struct ethtool_dump *); - int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *); + int (*get_ts_info)(struct net_device *, struct kernel_ethtool_ts_info *); void (*get_ts_stats)(struct net_device *, struct ethtool_ts_stats *); int (*get_module_info)(struct net_device *, struct ethtool_modinfo *); int (*get_module_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *); @@ -47621,6 +48347,7 @@ struct ethtool_ops { int (*get_phy_tunable)(struct net_device *, const struct ethtool_tunable *, void *); int (*set_phy_tunable)(struct net_device *, const struct ethtool_tunable *, const void *); int (*get_module_eeprom_by_page)(struct net_device *, const struct ethtool_module_eeprom *, struct netlink_ext_ack *); + int (*set_module_eeprom_by_page)(struct net_device *, const struct ethtool_module_eeprom *, struct netlink_ext_ack *); void (*get_eth_phy_stats)(struct net_device *, struct ethtool_eth_phy_stats *); void (*get_eth_mac_stats)(struct net_device *, struct ethtool_eth_mac_stats *); void (*get_eth_ctrl_stats)(struct net_device *, struct ethtool_eth_ctrl_stats *); @@ -47838,6 +48565,19 @@ struct ethtool_rxfh { __u32 rss_config[0]; }; +struct ethtool_rxfh_context { + u32 indir_size; + u32 key_size; + u16 priv_size; + u8 hfunc; + u8 input_xfrm; + u8 indir_configured: 1; + u8 key_configured: 1; + u32 key_off; + long: 0; + u8 data[0]; +}; + struct ethtool_rxfh_param { u8 hfunc; u32 indir_size; @@ -47966,8 +48706,6 @@ struct evdev { bool exist; }; -struct fasync_struct; - struct input_event { __kernel_ulong_t __sec; __kernel_ulong_t __usec; @@ -47976,6 +48714,8 @@ struct input_event { __s32 value; }; +struct fasync_struct; + struct evdev_client { unsigned int head; unsigned int tail; @@ -48122,7 +48862,6 @@ struct eventfs_inode { struct eventfs_root_inode { struct eventfs_inode ei; - struct inode *parent_inode; struct dentry *events_dir; }; @@ -48697,12 +49436,12 @@ struct ext4_inode { __le32 i_projid; }; -struct jbd2_inode; - struct ext4_pending_tree { struct rb_root root; }; +struct jbd2_inode; + struct ext4_inode_info { __le32 i_data[15]; __u32 i_dtime; @@ -48754,6 +49493,8 @@ struct ext4_inode_info { kprojid_t i_projid; }; +struct jbd2_journal_handle; + typedef struct jbd2_journal_handle handle_t; struct ext4_io_end { @@ -48925,18 +49666,6 @@ struct ext4_renament { int dir_inlined; }; -struct ext4_super_block; - -struct journal_s; - -struct ext4_system_blocks; - -struct flex_groups; - -struct shrinker; - -struct mb_cache; - struct rcu_sync { int gp_state; int gp_count; @@ -48953,6 +49682,18 @@ struct percpu_rw_semaphore { struct lockdep_map dep_map; }; +struct ext4_super_block; + +struct journal_s; + +struct ext4_system_blocks; + +struct flex_groups; + +struct shrinker; + +struct mb_cache; + struct ext4_sb_info { long unsigned int s_desc_size; long unsigned int s_inodes_per_block; @@ -49931,6 +50672,8 @@ struct fd { typedef struct fd class_fd_raw_t; +typedef struct fd class_fd_t; + struct fd_data { fmode_t mode; unsigned int fd; @@ -50161,13 +50904,19 @@ struct fgraph_data { long: 0; } __attribute__((packed)); -typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); +struct fgraph_ops; -typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); +typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *, struct fgraph_ops *); + +typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *, struct fgraph_ops *); struct fgraph_ops { trace_func_graph_ent_t entryfunc; trace_func_graph_ret_t retfunc; + struct ftrace_ops ops; + void *private; + trace_func_graph_ent_t saved_func; + int idx; }; struct fgraph_ret_regs { @@ -50309,15 +51058,11 @@ struct fib6_gc_args { int more; }; -struct fib6_table; - struct rt6key { struct in6_addr addr; int plen; }; -struct nexthop; - struct rtable; struct fnhe_hash_bucket; @@ -50353,6 +51098,10 @@ struct fib6_nh { struct rt6_exception_bucket *rt6i_exception_bucket; }; +struct fib6_table; + +struct nexthop; + struct fib6_info { struct fib6_table *fib6_table; struct fib6_info *fib6_next; @@ -50654,6 +51403,7 @@ struct fib_result { unsigned char type; unsigned char scope; u32 tclassid; + dscp_t dscp; struct fib_nh_common *nhc; struct fib_info *fi; struct fib_table *table; @@ -50885,10 +51635,6 @@ struct file_lease { const struct lease_manager_operations *fl_lmops; }; -struct file_lock_operations; - -struct lock_manager_operations; - struct nlm_lockowner; struct nfs_lock_info { @@ -50903,6 +51649,10 @@ struct nfs4_lock_info { struct nfs4_lock_state *owner; }; +struct file_lock_operations; + +struct lock_manager_operations; + struct file_lock { struct file_lock_core c; loff_t fl_start; @@ -51215,12 +51965,12 @@ struct flock64 { typedef void (*action_destr)(void *); +struct nf_flowtable; + struct ip_tunnel_info; struct psample_group; -struct nf_flowtable; - struct flow_action_entry { enum flow_action_id id; u32 hw_index; @@ -51811,8 +52561,8 @@ struct page { struct callback_head callback_head; }; union { - atomic_t _mapcount; unsigned int page_type; + atomic_t _mapcount; }; atomic_t _refcount; long unsigned int memcg_data; @@ -52141,8 +52891,6 @@ struct fq_codel_sched_data { struct list_head old_flows; }; -struct inet_frags; - typedef u32 (*rht_hashfn_t)(const void *, u32, u32); typedef u32 (*rht_obj_hashfn_t)(const void *, u32, u32); @@ -52176,6 +52924,8 @@ struct rhashtable { atomic_t nelems; }; +struct inet_frags; + struct fqdir { long int high_thresh; long int low_thresh; @@ -52291,13 +53041,13 @@ struct freq_desc { u32 mask; }; -struct fs_context_operations; - struct p_log { const char *prefix; struct fc_log *log; }; +struct fs_context_operations; + struct fs_context { const struct fs_context_operations *ops; struct mutex uapi_mutex; @@ -52372,6 +53122,8 @@ struct fs_parse_result { int int_32; unsigned int uint_32; u64 uint_64; + kuid_t uid; + kgid_t gid; }; }; @@ -52505,14 +53257,14 @@ struct fsnotify_event { struct list_head list; }; -struct fsnotify_ops; - struct inotify_group_private_data { spinlock_t idr_lock; struct idr idr; struct ucounts *ucounts; }; +struct fsnotify_ops; + struct fsnotify_group { const struct fsnotify_ops *ops; refcount_t refcnt; @@ -52598,10 +53350,6 @@ struct fsxattr { unsigned char fsx_pad[8]; }; -struct tracer; - -struct ring_buffer_iter; - struct trace_seq { char buffer[8156]; struct seq_buf seq; @@ -52609,6 +53357,10 @@ struct trace_seq { int full; }; +struct tracer; + +struct ring_buffer_iter; + struct trace_iterator { struct trace_array *tr; struct tracer *trace; @@ -53688,14 +54440,14 @@ struct geneve_dev_node { struct geneve_dev *geneve; }; -struct geneve_sock; - struct gro_cell; struct gro_cells { struct gro_cell *cells; }; +struct geneve_sock; + struct geneve_dev { struct geneve_dev_node hlist4; struct geneve_dev_node hlist6; @@ -54167,6 +54919,12 @@ union handle_parts { }; }; +struct handle_to_path_ctx { + struct path root; + enum handle_to_path_flags flags; + unsigned int fh_flags; +}; + struct hash { int ino; int minor; @@ -54745,8 +55503,6 @@ struct hpx_type3 { u32 reg_mask_or; }; -struct hrtimer_cpu_base; - struct seqcount_raw_spinlock { seqcount_t seqcount; raw_spinlock_t *lock; @@ -54754,6 +55510,8 @@ struct seqcount_raw_spinlock { typedef struct seqcount_raw_spinlock seqcount_raw_spinlock_t; +struct hrtimer_cpu_base; + struct hrtimer_clock_base { struct hrtimer_cpu_base *cpu_base; unsigned int index; @@ -54801,6 +55559,7 @@ struct hsr_tag { struct hstate { struct mutex resize_lock; + struct lock_class_key resize_key; int next_nid_to_alloc; int next_nid_to_free; unsigned int order; @@ -54818,8 +55577,6 @@ struct hstate { unsigned int nr_huge_pages_node[64]; unsigned int free_huge_pages_node[64]; unsigned int surplus_huge_pages_node[64]; - struct cftype cgroup_files_dfl[8]; - struct cftype cgroup_files_legacy[10]; char name[32]; }; @@ -54980,8 +55737,6 @@ struct hv_ops { void (*dtr_rts)(struct hvc_struct *, bool); }; -struct tty_buffer; - struct tty_buffer { union { struct tty_buffer *next; @@ -55261,10 +56016,6 @@ struct ib_cq; typedef void (*ib_comp_handler)(struct ib_cq *, void *); -struct ib_event; - -struct ib_wc; - struct irq_poll; typedef int irq_poll_fn(struct irq_poll *, int); @@ -55288,6 +56039,10 @@ struct rdma_restrack_entry { u32 id; }; +struct ib_event; + +struct ib_wc; + struct ib_cq { struct ib_device *device; struct ib_ucq_object *uobject; @@ -55328,6 +56083,16 @@ struct ib_cqe { void (*done)(struct ib_cq *, struct ib_wc *); }; +struct ib_mad; + +struct uverbs_attr_bundle; + +struct rdma_cm_id; + +struct iw_cm_id; + +struct iw_cm_conn_param; + struct ib_qp; struct ib_send_wr; @@ -55338,8 +56103,6 @@ struct ib_srq; struct ib_grh; -struct ib_mad; - struct ib_device_attr; struct ib_udata; @@ -55376,8 +56139,6 @@ struct ib_mr; struct ib_sge; -struct uverbs_attr_bundle; - struct ib_mr_status; struct ib_mw; @@ -55414,12 +56175,6 @@ struct ib_dm_mr_attr; struct rdma_hw_stats; -struct rdma_cm_id; - -struct iw_cm_id; - -struct iw_cm_conn_param; - struct rdma_counter; struct ib_device_ops { @@ -55473,7 +56228,7 @@ struct ib_device_ops { int (*modify_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_udata *); int (*query_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_qp_init_attr *); int (*destroy_qp)(struct ib_qp *, struct ib_udata *); - int (*create_cq)(struct ib_cq *, const struct ib_cq_init_attr *, struct ib_udata *); + int (*create_cq)(struct ib_cq *, const struct ib_cq_init_attr *, struct uverbs_attr_bundle *); int (*modify_cq)(struct ib_cq *, u16, u16); int (*destroy_cq)(struct ib_cq *, struct ib_udata *); int (*resize_cq)(struct ib_cq *, int, struct ib_udata *); @@ -55544,6 +56299,8 @@ struct ib_device_ops { int (*fill_stat_mr_entry)(struct sk_buff *, struct ib_mr *); int (*query_ucontext)(struct ib_ucontext *, struct uverbs_attr_bundle *); int (*get_numa_node)(struct ib_device *); + struct ib_device * (*add_sub_dev)(struct ib_device *, enum rdma_nl_dev_type, const char *); + void (*del_sub_dev)(struct ib_device *); size_t size_ib_ah; size_t size_ib_counters; size_t size_ib_cq; @@ -55556,8 +56313,6 @@ struct ib_device_ops { size_t size_ib_xrcd; }; -struct ib_port_data; - struct ib_odp_caps { uint64_t general_caps; struct { @@ -55644,6 +56399,8 @@ struct rdma_restrack_root; struct uapi_definition; +struct ib_port_data; + struct rdma_link_ops; struct ib_device { @@ -55690,6 +56447,12 @@ struct ib_device { char iw_ifname[16]; u32 iw_driver_flags; u32 lag_flags; + struct mutex subdev_lock; + struct list_head subdev_list_head; + enum rdma_nl_dev_type type; + struct ib_device *parent; + struct list_head subdev_list; + enum rdma_nl_name_assign_type name_assign_type; }; struct ib_device_modify { @@ -56108,6 +56871,7 @@ struct ib_qp { struct list_head rdma_mrs; struct list_head sig_mrs; struct ib_srq *srq; + struct completion srq_completion; struct ib_xrcd *xrcd; struct list_head xrcd_list; atomic_t usecnt; @@ -56115,6 +56879,7 @@ struct ib_qp { struct ib_qp *real_qp; struct ib_uqp_object *uobject; void (*event_handler)(struct ib_event *, void *); + void (*registered_event_handler)(struct ib_event *, void *); void *qp_context; const struct ib_gid_attr *av_sgid_attr; const struct ib_gid_attr *alt_path_sgid_attr; @@ -57205,10 +57970,10 @@ struct ima_digest_data { u8 digest[0]; }; -struct ima_iint_cache; - struct modsig; +struct ima_iint_cache; + struct ima_event_data { struct ima_iint_cache *iint; struct file *file; @@ -57395,16 +58160,16 @@ struct in6_validator_info { struct netlink_ext_ack *extack; }; -struct in_ifaddr; - -struct neigh_parms; - struct ipv4_devconf { void *sysctl; int data[33]; long unsigned int state[1]; }; +struct in_ifaddr; + +struct neigh_parms; + struct in_device { struct net_device *dev; netdevice_tracker dev_tracker; @@ -57687,10 +58452,6 @@ struct inet_bind_hashbucket { struct hlist_head chain; }; -struct ipv6_pinfo; - -struct ip_mc_socklist; - struct inet_cork { unsigned int flags; __be32 addr; @@ -57712,6 +58473,10 @@ struct inet_cork_full { struct flowi fl; }; +struct ipv6_pinfo; + +struct ip_mc_socklist; + struct inet_sock { struct sock sk; struct ipv6_pinfo *pinet6; @@ -58365,7 +59130,7 @@ struct input_devres { struct input_handler { void *private; void (*event)(struct input_handle *, unsigned int, unsigned int, int); - void (*events)(struct input_handle *, const struct input_value *, unsigned int); + unsigned int (*events)(struct input_handle *, struct input_value *, unsigned int); bool (*filter)(struct input_handle *, unsigned int, unsigned int, int); bool (*match)(struct input_handler *, struct input_dev *); int (*connect)(struct input_handler *, struct input_dev *, const struct input_device_id *); @@ -58510,8 +59275,6 @@ struct intel_shared_regs { unsigned int core_id; }; -struct intel_uncore_pmu; - struct intel_uncore_extra_reg { raw_spinlock_t lock; u64 config; @@ -58520,6 +59283,8 @@ struct intel_uncore_extra_reg { atomic_t ref; }; +struct intel_uncore_pmu; + struct intel_uncore_box { int dieid; int n_active; @@ -58545,16 +59310,21 @@ struct intel_uncore_box { struct intel_uncore_discovery_type { struct rb_node node; enum uncore_access_type access_type; - u64 box_ctrl; - u64 *box_ctrl_die; + struct rb_root units; u16 type; u8 num_counters; u8 counter_width; u8 ctl_offset; u8 ctr_offset; - u16 num_boxes; - unsigned int *ids; - u64 *box_offset; + u16 num_units; +}; + +struct intel_uncore_discovery_unit { + struct rb_node node; + unsigned int pmu_idx; + unsigned int id; + unsigned int die; + u64 addr; }; struct intel_uncore_init_fun { @@ -58587,6 +59357,7 @@ struct intel_uncore_pmu { int func_id; bool registered; atomic_t activeboxes; + cpumask_t cpu_mask; struct intel_uncore_type *type; struct intel_uncore_box **boxes; }; @@ -58621,7 +59392,6 @@ struct intel_uncore_type { unsigned int fixed_ctr; unsigned int fixed_ctl; unsigned int box_ctl; - u64 *box_ctls; union { unsigned int msr_offset; unsigned int mmio_offset; @@ -58635,7 +59405,6 @@ struct intel_uncore_type { u64 *pci_offsets; u64 *mmio_offsets; }; - unsigned int *box_ids; struct event_constraint unconstrainted; struct event_constraint *constraints; struct intel_uncore_pmu *pmus; @@ -58645,10 +59414,12 @@ struct intel_uncore_type { const struct attribute_group *attr_groups[4]; const struct attribute_group **attr_update; struct pmu *pmu; + struct rb_root *boxes; struct intel_uncore_topology **topology; int (*get_topology)(struct intel_uncore_type *); void (*set_mapping)(struct intel_uncore_type *); void (*cleanup_mapping)(struct intel_uncore_type *); + void (*cleanup_extra_boxes)(struct intel_uncore_type *); }; union intel_x86_pebs_dse { @@ -58681,6 +59452,15 @@ union intel_x86_pebs_dse { unsigned int mtl_fwd_blk: 1; unsigned int ld_reserved4: 24; }; + struct { + unsigned int lnc_dse: 8; + unsigned int ld_reserved5: 2; + unsigned int lnc_stlb_miss: 1; + unsigned int lnc_locked: 1; + unsigned int lnc_data_blk: 1; + unsigned int lnc_addr_blk: 1; + unsigned int ld_reserved6: 18; + }; }; struct internal_container { @@ -58747,7 +59527,7 @@ struct msghdr { __kernel_size_t msg_controllen; struct kiocb *msg_iocb; struct ubuf_info *msg_ubuf; - int (*sg_from_iter)(struct sock *, struct sk_buff *, struct iov_iter *, size_t); + int (*sg_from_iter)(struct sk_buff *, struct iov_iter *, size_t); }; struct io_async_msghdr { @@ -58784,6 +59564,11 @@ struct io_async_rw { struct wait_page_queue wpq; }; +struct io_bind { + struct file *file; + int addr_len; +}; + struct io_bitmap { u64 sequence; refcount_t refcnt; @@ -58952,7 +59737,7 @@ struct io_ev_fd { struct io_fadvise { struct file *file; u64 offset; - u32 len; + u64 len; u32 advice; }; @@ -59025,7 +59810,6 @@ struct io_issue_def { unsigned int pollout: 1; unsigned int poll_exclusive: 1; unsigned int buffer_select: 1; - unsigned int not_supported: 1; unsigned int audit_skip: 1; unsigned int ioprio: 1; unsigned int iopoll: 1; @@ -59036,14 +59820,10 @@ struct io_issue_def { int (*prep)(struct io_kiocb *, const struct io_uring_sqe *); }; -struct io_mapped_ubuf; - struct io_wq_work_node { struct io_wq_work_node *next; }; -struct io_rsrc_node; - struct io_tw_state; typedef void (*io_req_tw_func_t)(struct io_kiocb *, struct io_tw_state *); @@ -59055,10 +59835,14 @@ struct io_task_work { struct io_wq_work { struct io_wq_work_node list; - unsigned int flags; + atomic_t flags; int cancel_seq; }; +struct io_mapped_ubuf; + +struct io_rsrc_node; + struct io_kiocb { union { struct file *file; @@ -59083,11 +59867,12 @@ struct io_kiocb { }; struct io_rsrc_node *rsrc_node; atomic_t refs; - atomic_t poll_refs; + bool cancel_seq_set; struct io_task_work io_task_work; struct hlist_node hash_node; struct async_poll *apoll; void *async_data; + atomic_t poll_refs; struct io_kiocb *link; const struct cred *creds; struct io_wq_work work; @@ -59106,10 +59891,15 @@ struct io_link { int flags; }; +struct io_listen { + struct file *file; + int backlog; +}; + struct io_madvise { struct file *file; u64 addr; - u32 len; + u64 len; u32 advice; }; @@ -59252,8 +60042,6 @@ struct io_restriction { bool registered; }; -struct io_rings; - struct io_wq_work_list { struct io_wq_work_node *first; struct io_wq_work_node *last; @@ -59272,10 +60060,11 @@ struct io_submit_state { bool need_plug; bool cq_flush; short unsigned int submit_nr; - unsigned int cqes_count; struct blk_plug plug; }; +struct io_rings; + struct io_sq_data; struct io_rsrc_data; @@ -59331,6 +60120,7 @@ struct io_ring_ctx { long: 64; long: 64; long: 64; + long: 64; }; struct { struct io_uring_cqe *cqe_cached; @@ -59378,7 +60168,6 @@ struct io_ring_ctx { struct list_head io_buffers_cache; struct wait_queue_head poll_wq; struct io_restriction restrictions; - struct io_mapped_ubuf *dummy_ubuf; struct io_rsrc_data *file_data; struct io_rsrc_data *buf_data; struct list_head rsrc_ref_list; @@ -59398,9 +60187,11 @@ struct io_ring_ctx { u32 iowq_limits[2]; struct callback_head poll_wq_task_work; struct list_head defer_list; + struct io_alloc_cache msg_cache; + spinlock_t msg_lock; struct list_head napi_list; spinlock_t napi_lock; - unsigned int napi_busy_poll_to; + ktime_t napi_busy_poll_dt; bool napi_prefer_busy_poll; bool napi_enabled; struct hlist_head napi_ht[16]; @@ -59409,6 +60200,11 @@ struct io_ring_ctx { short unsigned int n_sqe_pages; struct page **ring_pages; struct page **sqe_pages; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; struct io_uring { @@ -59896,7 +60692,7 @@ struct io_wait_queue { unsigned int cq_tail; unsigned int nr_timeouts; ktime_t timeout; - unsigned int napi_busy_poll_to; + ktime_t napi_busy_poll_dt; bool napi_prefer_busy_poll; }; @@ -59949,6 +60745,7 @@ struct io_worker { struct completion ref_done; long unsigned int create_state; struct callback_head create_work; + int init_retries; union { struct callback_head rcu; struct work_struct work; @@ -60145,8 +60942,6 @@ struct iocb { __u32 aio_resfd; }; -struct latency_stat; - struct percentile_stats { u64 total; u64 missed; @@ -60302,8 +61097,6 @@ struct iomap_writepage_ctx { struct iommu_group {}; -struct iommu_ops {}; - struct ioremap_desc { unsigned int flags; }; @@ -61270,6 +62063,7 @@ struct ipv6_stub { struct neigh_table *nd_tbl; int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *)); struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *); + int (*ip6_xmit)(const struct sock *, struct sk_buff *, struct flowi6 *, __u32, struct ipv6_txoptions *, int, u32); }; struct ipv6_txoptions { @@ -61416,8 +62210,6 @@ struct irq_affinity_notify { void (*release)(struct kref *); }; -struct msi_desc; - struct uv_alloc_info { int limit; int blade; @@ -61425,6 +62217,8 @@ struct uv_alloc_info { char *name; }; +struct msi_desc; + struct irq_alloc_info { enum irq_alloc_type type; u32 flags; @@ -61623,6 +62417,7 @@ struct irq_domain { struct device *pm_dev; struct irq_domain *parent; const struct msi_parent_ops *msi_parent_ops; + void (*exit)(struct irq_domain *); irq_hw_number_t hwirq_max; unsigned int revmap_size; struct xarray revmap_tree; @@ -61635,9 +62430,37 @@ struct irq_domain_chip_generic { unsigned int irq_flags_to_clear; unsigned int irq_flags_to_set; enum irq_gc_flags gc_flags; + void (*exit)(struct irq_chip_generic *); struct irq_chip_generic *gc[0]; }; +struct irq_domain_chip_generic_info { + const char *name; + irq_flow_handler_t handler; + unsigned int irqs_per_chip; + unsigned int num_ct; + unsigned int irq_flags_to_clear; + unsigned int irq_flags_to_set; + enum irq_gc_flags gc_flags; + int (*init)(struct irq_chip_generic *); + void (*exit)(struct irq_chip_generic *); +}; + +struct irq_domain_info { + struct fwnode_handle *fwnode; + unsigned int domain_flags; + unsigned int size; + irq_hw_number_t hwirq_max; + int direct_max; + enum irq_domain_bus_token bus_token; + const struct irq_domain_ops *ops; + void *host_data; + struct irq_domain *parent; + struct irq_domain_chip_generic_info *dgc_info; + int (*init)(struct irq_domain *); + void (*exit)(struct irq_domain *); +}; + struct irq_fwspec; struct irq_domain_ops { @@ -61853,6 +62676,8 @@ struct iw_node_attr { int nid; }; +struct transaction_s; + typedef struct transaction_s transaction_t; struct jbd2_inode { @@ -61993,8 +62818,6 @@ struct journal_head { struct jbd2_buffer_trigger_type *b_frozen_triggers; }; -typedef struct journal_superblock_s journal_superblock_t; - struct transaction_run_stats_s { long unsigned int rs_wait; long unsigned int rs_request_delay; @@ -62013,6 +62836,10 @@ struct transaction_stats_s { struct transaction_run_stats_s run; }; +struct journal_superblock_s; + +typedef struct journal_superblock_s journal_superblock_t; + struct journal_s { long unsigned int j_flags; int j_errno; @@ -62062,6 +62889,7 @@ struct journal_s { struct task_struct *j_task; int j_max_transaction_buffers; int j_revoke_records_per_block; + int j_transaction_overhead_buffers; long unsigned int j_commit_interval; struct timer_list j_commit_timer; spinlock_t j_revoke_lock; @@ -62354,6 +63182,14 @@ struct kernel_ethtool_ringparam { u32 tx_push_buf_max_len; }; +struct kernel_ethtool_ts_info { + u32 cmd; + u32 so_timestamping; + int phc_index; + enum hwtstamp_tx_types tx_types; + enum hwtstamp_rx_filters rx_filters; +}; + struct kernel_hwtstamp_config { int flags; int tx_type; @@ -62594,8 +63430,6 @@ struct kexec_segment { size_t memsz; }; -struct key_user; - struct key_type; struct key_tag; @@ -62619,6 +63453,8 @@ union key_payload { void *data[4]; }; +struct key_user; + struct key_restriction; struct key { @@ -63012,12 +63848,14 @@ struct kmalloced_param { struct kmap_ctrl {}; -struct kmem_cache_cpu; +typedef struct kmem_cache *kmem_buckets[14]; struct kmem_cache_order_objects { unsigned int x; }; +struct kmem_cache_cpu; + struct kmem_cache_node; struct kmem_cache { @@ -63338,6 +64176,9 @@ struct kstat { u32 dio_offset_align; u64 change_cookie; u64 subvol; + u32 atomic_write_unit_min; + u32 atomic_write_unit_max; + u32 atomic_write_segments_max; }; struct kstatfs { @@ -63355,11 +64196,9 @@ struct kstatfs { long int f_spare[4]; }; -struct statmount; - struct statmount { __u32 size; - __u32 __spare1; + __u32 mnt_opts; __u64 mask; __u32 sb_dev_major; __u32 sb_dev_minor; @@ -63377,7 +64216,8 @@ struct statmount { __u64 propagate_from; __u32 mnt_root; __u32 mnt_point; - __u64 __spare2[50]; + __u64 mnt_ns_id; + __u64 __spare2[49]; char str[0]; }; @@ -63493,8 +64333,6 @@ struct kvm_memslots { int node_idx; }; -struct kvm_io_bus; - struct kvm_vm_stat_generic { u64 remote_tlb_flush; u64 remote_tlb_flush_requests; @@ -63530,8 +64368,6 @@ struct kvm_ioapic; struct kvm_pit; -struct kvm_apic_map; - struct kvm_xen_hvm_config { __u32 flags; __u32 msr; @@ -63542,10 +64378,6 @@ struct kvm_xen_hvm_config { __u8 pad2[30]; }; -struct kvm_x86_msr_filter; - -struct kvm_x86_pmu_event_filter; - struct kvm_mmu_memory_cache { gfp_t gfp_zero; gfp_t gfp_custom; @@ -63556,6 +64388,12 @@ struct kvm_mmu_memory_cache { void **objects; }; +struct kvm_apic_map; + +struct kvm_x86_msr_filter; + +struct kvm_x86_pmu_event_filter; + struct kvm_arch { long unsigned int n_used_mmu_pages; long unsigned int n_requested_mmu_pages; @@ -63565,6 +64403,7 @@ struct kvm_arch { u8 vm_type; bool has_private_mem; bool has_protected_state; + bool pre_fault_allowed; struct hlist_head mmu_page_hash[4096]; struct list_head active_mmu_pages; struct list_head zapped_obsolete_pages; @@ -63605,6 +64444,7 @@ struct kvm_arch { int nr_vcpus_matched_tsc; u32 default_tsc_khz; bool user_set_tsc; + u64 apic_bus_cycle_ns; seqcount_raw_spinlock_t pvclock_sc; bool use_master_clock; u64 master_kernel_ns; @@ -63647,6 +64487,8 @@ struct kvm_arch { struct kvm_mmu_memory_cache split_desc_cache; }; +struct kvm_io_bus; + struct kvm_stat_data; struct kvm { @@ -63874,8 +64716,6 @@ struct kvm_mmio_fragment { unsigned int len; }; -struct kvm_vcpu; - struct kvm_page_fault; struct x86_exception; @@ -63892,6 +64732,8 @@ struct rsvd_bits_validate { u64 bad_mt_xwr; }; +struct kvm_vcpu; + struct kvm_mmu { long unsigned int (*get_guest_pgd)(struct kvm_vcpu *); u64 (*get_pdptr)(struct kvm_vcpu *, int); @@ -63919,17 +64761,12 @@ struct kvm_msr_entry { __u64 data; }; -struct kvm_mtrr_range { - u64 base; - u64 mask; - struct list_head node; -}; - struct kvm_mtrr { - struct kvm_mtrr_range var_ranges[8]; - mtrr_type fixed_ranges[88]; + u64 var[16]; + u64 fixed_64k; + u64 fixed_16k[2]; + u64 fixed_4k[8]; u64 deftype; - struct list_head head; }; struct kvm_vmx_nested_state_hdr { @@ -64004,12 +64841,12 @@ struct kvm_pmu { unsigned int nr_arch_fixed_counters; unsigned int available_event_types; u64 fixed_ctr_ctrl; - u64 fixed_ctr_ctrl_mask; + u64 fixed_ctr_ctrl_rsvd; u64 global_ctrl; u64 global_status; u64 counter_bitmask[2]; - u64 global_ctrl_mask; - u64 global_status_mask; + u64 global_ctrl_rsvd; + u64 global_status_rsvd; u64 reserved_bits; u64 raw_event_mask; struct kvm_pmc gp_counters[8]; @@ -64022,9 +64859,9 @@ struct kvm_pmu { long unsigned int pmc_in_use[1]; u64 ds_area; u64 pebs_enable; - u64 pebs_enable_mask; + u64 pebs_enable_rsvd; u64 pebs_data_cfg; - u64 pebs_data_cfg_mask; + u64 pebs_data_cfg_rsvd; u64 host_cross_mapped_mask; bool need_cleanup; u8 event_count; @@ -64165,7 +65002,7 @@ struct kvm_sync_regs { struct kvm_run { __u8 request_interrupt_window; - __u8 immediate_exit; + __u8 immediate_exit__unsafe; __u8 padding1[6]; __u32 exit_reason; __u8 ready_for_interrupt_injection; @@ -64591,8 +65428,10 @@ struct kvm_vcpu { int mmio_cur_fragment; int mmio_nr_fragments; struct kvm_mmio_fragment mmio_fragments[2]; + bool wants_to_run; bool preempted; bool ready; + bool scheduled_out; struct kvm_vcpu_arch arch; struct kvm_vcpu_stat stat; char stats_id[48]; @@ -64618,7 +65457,7 @@ struct kvm_x86_nested_ops { void (*leave_nested)(struct kvm_vcpu *); bool (*is_exception_vmexit)(struct kvm_vcpu *, u8, u32); int (*check_events)(struct kvm_vcpu *); - bool (*has_events)(struct kvm_vcpu *); + bool (*has_events)(struct kvm_vcpu *, bool); void (*triple_fault)(struct kvm_vcpu *); int (*get_state)(struct kvm_vcpu *, struct kvm_nested_state *, unsigned int); int (*set_state)(struct kvm_vcpu *, struct kvm_nested_state *, struct kvm_nested_state *); @@ -64629,10 +65468,10 @@ struct kvm_x86_nested_ops { void (*hv_inject_synthetic_vmexit_post_tlb_flush)(struct kvm_vcpu *); }; -struct msr_data; - struct x86_instruction_info; +struct msr_data; + struct kvm_x86_ops { const char *name; int (*check_processor_compatibility)(); @@ -64700,13 +65539,11 @@ struct kvm_x86_ops { void (*enable_nmi_window)(struct kvm_vcpu *); void (*enable_irq_window)(struct kvm_vcpu *); void (*update_cr8_intercept)(struct kvm_vcpu *, int, int); - bool (*check_apicv_inhibit_reasons)(enum kvm_apicv_inhibit); const long unsigned int required_apicv_inhibits; bool allow_apicv_in_x2apic_without_x2apic_virtualization; void (*refresh_apicv_exec_ctrl)(struct kvm_vcpu *); void (*hwapic_irr_update)(struct kvm_vcpu *, int); void (*hwapic_isr_update)(int); - bool (*guest_apic_has_interrupt)(struct kvm_vcpu *); void (*load_eoi_exitmap)(struct kvm_vcpu *, u64 *); void (*set_virtual_apic_mode)(struct kvm_vcpu *); void (*set_apic_access_page_addr)(struct kvm_vcpu *); @@ -64724,7 +65561,6 @@ struct kvm_x86_ops { void (*get_exit_info)(struct kvm_vcpu *, u32 *, u64 *, u64 *, u32 *, u32 *); int (*check_intercept)(struct kvm_vcpu *, struct x86_instruction_info *, enum x86_intercept_stage, struct x86_exception *); void (*handle_exit_irqoff)(struct kvm_vcpu *); - void (*sched_in)(struct kvm_vcpu *, int); int cpu_dirty_log_size; void (*update_cpu_dirty_logging)(struct kvm_vcpu *); const struct kvm_x86_nested_ops *nested_ops; @@ -64756,6 +65592,9 @@ struct kvm_x86_ops { long unsigned int (*vcpu_get_apicv_inhibit_reasons)(struct kvm_vcpu *); gva_t (*get_untagged_addr)(struct kvm_vcpu *, gva_t, unsigned int); void * (*alloc_apic_backing_page)(struct kvm_vcpu *); + int (*gmem_prepare)(struct kvm *, kvm_pfn_t, gfn_t, int); + void (*gmem_invalidate)(kvm_pfn_t, kvm_pfn_t); + int (*private_max_mapping_level)(struct kvm *, kvm_pfn_t); }; struct kvm_x86_pmu_event_filter { @@ -65008,6 +65847,20 @@ struct link_mode_info { u8 duplex; }; +struct linked_reg { + u8 frameno; + union { + u8 spi; + u8 regno; + }; + bool is_reg; +}; + +struct linked_regs { + int cnt; + struct linked_reg entries[6]; +}; + struct linkinfo_reply_data { struct ethnl_reply_data base; struct ethtool_link_ksettings ksettings; @@ -65050,9 +65903,9 @@ struct rlimit { struct linux_binprm { struct vm_area_struct *vma; long unsigned int vma_pages; + long unsigned int argmin; struct mm_struct *mm; long unsigned int p; - long unsigned int argmin; unsigned int have_execfd: 1; unsigned int execfd_creds: 1; unsigned int secureexec: 1; @@ -65139,8 +65992,6 @@ struct linux_tls_mib { long unsigned int mibs[13]; }; -struct lirc_scancode; - struct lirc_scancode { __u64 timestamp; __u16 flags; @@ -65501,10 +66352,10 @@ struct lru_rotate { struct folio_batch fbatch; }; -struct pglist_data; - struct zswap_lruvec_state {}; +struct pglist_data; + struct lruvec { struct list_head lists[5]; spinlock_t lru_lock; @@ -65976,11 +66827,6 @@ struct mc146818_get_time_callback_param { unsigned char century; }; -union mc_target { - struct folio *folio; - swp_entry_t ent; -}; - struct mca_config { __u64 lmce_disabled: 1; __u64 disabled: 1; @@ -66091,15 +66937,15 @@ struct mdio_bus_stats { struct u64_stats_sync syncp; }; -struct mii_bus; - struct reset_control; +struct mii_bus; + struct mdio_device { struct device dev; struct mii_bus *bus; char modalias[32]; - int (*bus_match)(struct device *, struct device_driver *); + int (*bus_match)(struct device *, const struct device_driver *); void (*device_free)(struct mdio_device *); void (*device_remove)(struct mdio_device *); int addr; @@ -66132,17 +66978,6 @@ struct vmpressure { struct work_struct work; }; -struct mem_cgroup_threshold_ary; - -struct mem_cgroup_thresholds { - struct mem_cgroup_threshold_ary *primary; - struct mem_cgroup_threshold_ary *spare; -}; - -struct memcg_vmstats; - -struct memcg_vmstats_percpu; - struct wb_domain { spinlock_t lock; struct fprop_global completions; @@ -66164,6 +66999,10 @@ struct memcg_cgwb_frn { struct wb_completion done; }; +struct memcg_vmstats; + +struct memcg_vmstats_percpu; + struct mem_cgroup_per_node; struct mem_cgroup { @@ -66178,78 +67017,33 @@ struct mem_cgroup { struct page_counter swap; struct page_counter memsw; }; - struct page_counter kmem; - struct page_counter tcpmem; struct work_struct high_work; - long unsigned int soft_limit; struct vmpressure vmpressure; bool oom_group; - bool oom_lock; - int under_oom; int swappiness; - int oom_kill_disable; struct cgroup_file events_file; struct cgroup_file events_local_file; struct cgroup_file swap_events_file; - struct mutex thresholds_lock; - struct mem_cgroup_thresholds thresholds; - struct mem_cgroup_thresholds memsw_thresholds; - struct list_head oom_notify; - long unsigned int move_charge_at_immigrate; - spinlock_t move_lock; - long unsigned int move_lock_flags; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct cacheline_padding _pad1_; struct memcg_vmstats *vmstats; atomic_long_t memory_events[9]; atomic_long_t memory_events_local[9]; long unsigned int socket_pressure; - bool tcpmem_active; - int tcpmem_pressure; int kmemcg_id; struct obj_cgroup *objcg; struct obj_cgroup *orig_objcg; struct list_head objcg_list; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct cacheline_padding _pad2_; - atomic_t moving_account; - struct task_struct *move_lock_task; struct memcg_vmstats_percpu *vmstats_percpu; struct list_head cgwb_list; struct wb_domain cgwb_domain; struct memcg_cgwb_frn cgwb_frn[4]; - struct list_head event_list; - spinlock_t event_list_lock; struct deferred_split deferred_split_queue; struct mem_cgroup_per_node *nodeinfo[0]; long: 64; long: 64; -}; - -struct mem_cgroup_event { - struct mem_cgroup *memcg; - struct eventfd_ctx *eventfd; - struct list_head list; - int (*register_event)(struct mem_cgroup *, struct eventfd_ctx *, const char *); - void (*unregister_event)(struct mem_cgroup *, struct eventfd_ctx *); - poll_table pt; - wait_queue_head_t *wqh; - wait_queue_entry_t wait; - struct work_struct remove; -}; - -struct mem_cgroup_eventfd_list { - struct list_head list; - struct eventfd_ctx *eventfd; + long: 64; + long: 64; + long: 64; + long: 64; }; struct mem_cgroup_reclaim_iter { @@ -66260,16 +67054,28 @@ struct mem_cgroup_reclaim_iter { struct shrinker_info; struct mem_cgroup_per_node { - struct lruvec lruvec; + struct mem_cgroup *memcg; struct lruvec_stats_percpu *lruvec_stats_percpu; struct lruvec_stats *lruvec_stats; + struct shrinker_info *shrinker_info; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct lruvec lruvec; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad2_; long unsigned int lru_zone_size[20]; struct mem_cgroup_reclaim_iter iter; - struct shrinker_info *shrinker_info; - struct rb_node tree_node; - long unsigned int usage_in_excess; - bool on_tree; - struct mem_cgroup *memcg; + long: 64; + long: 64; }; typedef struct pglist_data pg_data_t; @@ -66279,29 +67085,6 @@ struct mem_cgroup_reclaim_cookie { unsigned int generation; }; -struct mem_cgroup_threshold { - struct eventfd_ctx *eventfd; - long unsigned int threshold; -}; - -struct mem_cgroup_threshold_ary { - int current_threshold; - unsigned int size; - struct mem_cgroup_threshold entries[0]; -}; - -struct mem_cgroup_tree_per_node; - -struct mem_cgroup_tree { - struct mem_cgroup_tree_per_node *rb_tree_per_node[64]; -}; - -struct mem_cgroup_tree_per_node { - struct rb_root rb_root; - struct rb_node *rb_rightmost; - spinlock_t lock; -}; - struct quota_format_type; struct mem_dqinfo { @@ -66383,12 +67166,6 @@ struct membuf { size_t left; }; -struct memcg_path { - local_lock_t lock; - char *buf; - local_t buf_idx; -}; - struct memcg_stock_pcp { local_lock_t stock_lock; struct mem_cgroup *cached; @@ -66444,8 +67221,6 @@ struct memory_dev_type { struct kref kref; }; -struct memory_failure_entry; - struct memory_failure_entry { long unsigned int pfn; int flags; @@ -66463,7 +67238,7 @@ struct memory_failure_cpu { }; struct memory_failure_entry buf[16]; } fifo; - spinlock_t lock; + raw_spinlock_t lock; struct work_struct work; }; @@ -66749,21 +67524,23 @@ struct mii_timestamper { void (*txtstamp)(struct mii_timestamper *, struct sk_buff *, int); int (*hwtstamp)(struct mii_timestamper *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); void (*link_state)(struct mii_timestamper *, struct phy_device *); - int (*ts_info)(struct mii_timestamper *, struct ethtool_ts_info *); + int (*ts_info)(struct mii_timestamper *, struct kernel_ethtool_ts_info *); struct device *device; }; -struct min_heap { - void *data; +struct min_heap_callbacks { + bool (*less)(const void *, const void *, void *); + void (*swp)(void *, void *, void *); +}; + +struct min_heap_char { int nr; int size; + char *data; + char preallocated[0]; }; -struct min_heap_callbacks { - int elem_size; - bool (*less)(const void *, const void *); - void (*swp)(void *, void *); -}; +typedef struct min_heap_char min_heap_char; struct minix_super_block { __u16 s_ninodes; @@ -66945,7 +67722,7 @@ struct mm_struct { struct work_struct async_put_work; long unsigned int ksm_merging_pages; long unsigned int ksm_rmap_items; - long unsigned int ksm_zero_pages; + atomic_long_t ksm_zero_pages; long: 64; long: 64; long: 64; @@ -67030,8 +67807,6 @@ struct mmsghdr { unsigned int msg_len; }; -struct mmu_gather_batch; - struct encoded_page; struct mmu_gather_batch { @@ -67072,6 +67847,7 @@ struct mnt_id_req { __u32 spare; __u64 mnt_id; __u64 param; + __u64 mnt_ns_id; }; struct uid_gid_extent { @@ -67110,6 +67886,8 @@ struct mnt_namespace { u64 event; unsigned int nr_mounts; unsigned int pending_mounts; + struct rb_node mnt_ns_tree_node; + refcount_t passive; }; struct mnt_pcp { @@ -67160,14 +67938,14 @@ struct module_kobject { struct completion *kobj_completion; }; -struct module_attribute; - struct module_memory { void *base; unsigned int size; struct mod_tree_node mtn; }; +struct module_attribute; + struct module_sect_attrs; struct module_notes_attrs; @@ -67225,7 +68003,9 @@ struct module { unsigned int num_bpf_raw_events; struct bpf_raw_event_map *bpf_raw_events; unsigned int btf_data_size; + unsigned int btf_base_data_size; void *btf_data; + void *btf_base_data; struct jump_entry *jump_entries; unsigned int num_jump_entries; unsigned int num_trace_bprintk_fmt; @@ -67248,7 +68028,6 @@ struct module { atomic_t refcnt; struct error_injection_entry *ei_funcs; unsigned int num_ei_funcs; - long: 64; }; struct module_attribute { @@ -67408,19 +68187,6 @@ struct movable_operations { void (*putback_page)(struct page *); }; -struct move_charge_struct { - spinlock_t lock; - struct mm_struct *mm; - struct mem_cgroup *from; - struct mem_cgroup *to; - long unsigned int flags; - long unsigned int precharge; - long unsigned int moved_charge; - long unsigned int moved_swap; - struct task_struct *moving_task; - wait_queue_head_t waitq; -}; - struct move_extent { __u32 reserved; __u32 donor_fd; @@ -67668,7 +68434,7 @@ struct mptcp_full_info { }; struct mptcp_mib { - long unsigned int mibs[59]; + long unsigned int mibs[61]; }; struct mptcp_rm_list { @@ -68091,6 +68857,7 @@ struct mptcp_subflow_request_sock { u16 mp_capable: 1; u16 mp_join: 1; u16 backup: 1; + u16 request_bkup: 1; u16 csum_reqd: 1; u16 allow_join_id0: 1; u8 local_id; @@ -68120,8 +68887,6 @@ struct mqueue_fs_context { bool newns; }; -struct posix_msg_tree_node; - struct sigevent { sigval_t sigev_value; int sigev_signo; @@ -68136,6 +68901,8 @@ struct sigevent { } _sigev_un; }; +struct posix_msg_tree_node; + struct mqueue_inode_info { spinlock_t lock; struct inode vfs_inode; @@ -68428,11 +69195,8 @@ struct msi_dev_domain { struct irq_domain *domain; }; -struct platform_msi_priv_data; - struct msi_device_data { long unsigned int properties; - struct platform_msi_priv_data *platform_data; struct mutex mutex; struct msi_dev_domain __domains[1]; long unsigned int __iter_idx; @@ -68558,7 +69322,7 @@ struct msr_regs_info { }; struct mthp_stat { - long unsigned int stats[50]; + long unsigned int stats[110]; }; struct mtrr_gentry { @@ -68669,8 +69433,6 @@ struct name_snapshot { unsigned char inline_name[40]; }; -struct saved; - struct saved { struct path link; struct delayed_call done; @@ -68717,6 +69479,7 @@ struct page_frag_1k { }; struct napi_alloc_cache { + local_lock_t bh_lock; struct page_frag_cache page; struct page_frag_1k page_small; unsigned int skb_count; @@ -68777,8 +69540,23 @@ struct napi_gro_cb { }; }; +struct nat_keepalive { + struct net *net; + u16 family; + xfrm_address_t saddr; + xfrm_address_t daddr; + __be16 encap_sport; + __be16 encap_dport; + __u32 smark; +}; + +struct nat_keepalive_work_ctx { + time64_t next_run; + time64_t now; +}; + struct nbcon_context { - struct console *console; + struct console___2 *console; unsigned int spinwait_max_us; enum nbcon_prio prio; unsigned int allow_unsafe_takeover: 1; @@ -69046,8 +69824,6 @@ union nested_table { struct ref_tracker_dir {}; -struct uevent_sock; - struct raw_notifier_head { struct notifier_block *head; }; @@ -69114,6 +69890,11 @@ struct ping_group_range { kgid_t range[2]; }; +struct sysctl_fib_multipath_hash_seed { + u32 user_seed; + u32 mp_seed; +}; + struct netns_ipv4 { __u8 __cacheline_group_begin__netns_ipv4_read_tx[0]; u8 sysctl_tcp_early_retrans; @@ -69207,6 +69988,7 @@ struct netns_ipv4 { u8 sysctl_tcp_sack; u8 sysctl_tcp_window_scaling; u8 sysctl_tcp_timestamps; + int sysctl_tcp_rto_min_us; u8 sysctl_tcp_recovery; u8 sysctl_tcp_thin_linear_timeouts; u8 sysctl_tcp_slow_start_after_idle; @@ -69260,6 +70042,7 @@ struct netns_ipv4 { long unsigned int *sysctl_local_reserved_ports; int sysctl_ip_prot_sock; struct mr_table *mrt; + struct sysctl_fib_multipath_hash_seed sysctl_fib_multipath_hash_seed; u32 sysctl_fib_multipath_hash_fields; u8 sysctl_fib_multipath_use_neigh; u8 sysctl_fib_multipath_hash_policy; @@ -69270,8 +70053,6 @@ struct netns_ipv4 { atomic_t rt_genid; siphash_key_t ip_id_key; long: 64; - long: 64; - long: 64; }; struct netns_sysctl_ipv6 { @@ -69379,6 +70160,7 @@ struct netns_nf { struct proc_dir_entry *proc_netfilter; const struct nf_logger *nf_loggers[11]; struct ctl_table_header *nf_log_dir_header; + struct ctl_table_header *nf_lwtnl_dir_header; struct nf_hook_entries *hooks_ipv4[5]; struct nf_hook_entries *hooks_ipv6[5]; unsigned int defrag_ipv4_users; @@ -69437,8 +70219,6 @@ struct netns_ct { struct nf_ip_net nf_ct_proto; }; -struct net_generic; - struct netns_bpf { struct bpf_prog_array *run_array[2]; struct bpf_prog *progs[2]; @@ -69503,6 +70283,10 @@ struct netns_xfrm { seqcount_spinlock_t xfrm_policy_hash_generation; spinlock_t xfrm_policy_lock; struct mutex xfrm_cfg_mutex; + struct delayed_work nat_keepalive_work; + long: 64; + long: 64; + long: 64; }; struct mpls_route; @@ -69520,6 +70304,10 @@ struct netns_xdp { struct hlist_head list; }; +struct uevent_sock; + +struct net_generic; + struct net { refcount_t passive; spinlock_t rules_mod_lock; @@ -69568,7 +70356,6 @@ struct net { long: 64; long: 64; long: 64; - long: 64; struct netns_xfrm xfrm; u64 net_cookie; struct netns_mpls mpls; @@ -69583,31 +70370,13 @@ struct net { long: 64; }; -struct net_device_ops; - struct netdev_tc_txq { u16 count; u16 offset; }; -struct xps_dev_maps; - -struct pcpu_lstats; - -struct pcpu_sw_netstats; - -struct pcpu_dstats; - -struct netdev_rx_queue; - typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **); -struct netdev_name_node; - -struct xdp_metadata_ops; - -struct xsk_tx_metadata_ops; - struct net_device_stats { union { long unsigned int rx_packets; @@ -69703,26 +70472,44 @@ struct net_device_stats { }; }; -struct net_device_core_stats; - struct netdev_hw_addr_list { struct list_head list; int count; struct rb_root tree; }; -struct vlan_info; - struct mpls_dev; +struct sfp_bus; + +struct net_device_ops; + +struct xps_dev_maps; + +struct pcpu_lstats; + +struct pcpu_sw_netstats; + +struct pcpu_dstats; + +struct netdev_rx_queue; + +struct netdev_name_node; + +struct xdp_metadata_ops; + +struct xsk_tx_metadata_ops; + +struct net_device_core_stats; + +struct vlan_info; + struct xdp_dev_bulk_queue; struct netdev_stat_ops; struct netdev_queue_mgmt_ops; -struct sfp_bus; - struct udp_tunnel_nic_info; struct udp_tunnel_nic; @@ -69824,9 +70611,9 @@ struct net_device { short unsigned int neigh_priv_len; short unsigned int dev_id; short unsigned int dev_port; - short unsigned int padded; - spinlock_t addr_list_lock; int irq; + u32 priv_len; + spinlock_t addr_list_lock; struct netdev_hw_addr_list uc; struct netdev_hw_addr_list mc; struct netdev_hw_addr_list dev_addrs; @@ -69886,10 +70673,10 @@ struct net_device { struct lock_class_key *qdisc_tx_busylock; bool proto_down; bool threaded; - unsigned int wol_enabled: 1; struct list_head net_notifier_list; const struct udp_tunnel_nic_info *udp_tunnel_nic_info; struct udp_tunnel_nic *udp_tunnel_nic; + struct ethtool_netdev_state *ethtool; struct bpf_xdp_entity xdp_state[3]; u8 dev_addr_shadow[32]; netdevice_tracker linkwatch_dev_tracker; @@ -69898,6 +70685,13 @@ struct net_device { struct rtnl_hw_stats64 *offload_xstats_l3; struct devlink_port *devlink_port; struct hlist_head page_pools; + struct dim_irq_moder *irq_moder; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u8 priv[0]; }; struct net_device_core_stats { @@ -70448,6 +71242,12 @@ struct netdev_stat_ops { void (*get_base_stats)(struct net_device *, struct netdev_queue_stats_rx *, struct netdev_queue_stats_tx *); }; +struct netdev_xmit { + u16 recursion; + u8 more; + u8 skip_txqueue; +}; + struct netevent_redirect { struct dst_entry *old; struct dst_entry *new; @@ -70501,6 +71301,7 @@ struct netfs_inode { struct mutex wb_lock; loff_t remote_i_size; loff_t zero_point; + atomic_t io_count; long unsigned int flags; }; @@ -70848,7 +71649,6 @@ struct netlink_kernel_cfg { unsigned int groups; unsigned int flags; void (*input)(struct sk_buff *); - struct mutex *cb_mutex; int (*bind)(struct net *, int); void (*unbind)(struct net *, int); void (*release)(struct sock *, long unsigned int *); @@ -71087,8 +71887,6 @@ struct nf_conntrack_tuple_hash { struct nf_conntrack_tuple tuple; }; -struct nf_ct_ext; - struct nf_ct_dccp { u_int8_t role[2]; u_int8_t state; @@ -71115,6 +71913,8 @@ union nf_conntrack_proto { unsigned int tmpl_padto; }; +struct nf_ct_ext; + struct nf_conn { struct nf_conntrack ct_general; spinlock_t lock; @@ -71653,8 +72453,6 @@ struct nh_dump_filter { u32 op_flags; }; -struct nh_res_table; - struct nh_grp_entry_stats; struct nh_grp_entry { @@ -71676,6 +72474,8 @@ struct nh_grp_entry { u64 packets_hw; }; +struct nh_res_table; + struct nh_group { struct nh_group *spare; u16 num_nh; @@ -72095,11 +72895,6 @@ struct numa_meminfo { struct numa_memblk blk[128]; }; -struct numa_stat { - const char *name; - unsigned int lru_mask; -}; - struct numa_stats { long unsigned int load; long unsigned int runnable; @@ -72164,14 +72959,14 @@ struct nvmem_cell_table { struct list_head node; }; -struct nvmem_keepout; - -struct nvmem_layout; - typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t); typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t); +struct nvmem_keepout; + +struct nvmem_layout; + struct nvmem_config { struct device *dev; const char *name; @@ -72254,12 +73049,12 @@ struct obj_cgroup { }; }; -struct objpool_slot; - struct objpool_head; typedef int (*objpool_fini_cb)(struct objpool_head *, void *); +struct objpool_slot; + struct objpool_head { int obj_size; int nr_objs; @@ -72338,6 +73133,13 @@ struct od_policy_dbs_info { unsigned int sample_type: 1; }; +struct of_dev_auxdata { + char *compatible; + resource_size_t phys_addr; + char *name; + void *platform_data; +}; + struct of_device_id { char name[32]; char type[32]; @@ -72486,11 +73288,6 @@ struct oom_control { enum oom_constraint constraint; }; -struct oom_wait_info { - struct mem_cgroup *memcg; - wait_queue_entry_t wait; -}; - struct open_flags { int open_flag; umode_t mode; @@ -72545,6 +73342,7 @@ struct x86_cpu_id { __u16 model; __u16 steppings; __u16 feature; + __u16 flags; kernel_ulong_t driver_data; }; @@ -72600,8 +73398,6 @@ struct p9_client { char name[65]; }; -struct p9_req_t; - struct p9_fcall { u32 size; u8 id; @@ -72621,6 +73417,8 @@ struct p9_poll_wait { wait_queue_head_t *wait_addr; }; +struct p9_req_t; + struct p9_conn { struct list_head mux_list; struct p9_client *client; @@ -73110,7 +73908,7 @@ struct page_pool_params_fast { struct pp_alloc_cache { u32 count; - struct page *cache[128]; + netmem_ref cache[128]; }; struct ptr_ring { @@ -73147,7 +73945,7 @@ struct ptr_ring { struct page_pool_params_slow { struct net_device *netdev; unsigned int flags; - void (*init_callback)(struct page *, void *); + void (*init_callback)(netmem_ref, void *); void *init_arg; }; @@ -73161,9 +73959,12 @@ struct page_pool { long: 0; __u8 __cacheline_group_begin__frag[0]; long int frag_users; - struct page *frag_page; + netmem_ref frag_page; unsigned int frag_offset; + long: 0; __u8 __cacheline_group_end__frag[0]; + long: 64; + struct {} __cacheline_group_pad__frag; struct delayed_work release_dw; void (*disconnect)(void *); long unsigned int defer_start; @@ -73172,7 +73973,6 @@ struct page_pool { long: 64; long: 64; long: 64; - long: 64; struct pp_alloc_cache alloc; long: 64; long: 64; @@ -73223,7 +74023,7 @@ struct page_pool_params { struct { struct net_device *netdev; unsigned int flags; - void (*init_callback)(struct page *, void *); + void (*init_callback)(netmem_ref, void *); void *init_arg; }; struct page_pool_params_slow slow; @@ -73428,6 +74228,12 @@ struct pci2phy_map { int pbus_to_dieid[256]; }; +struct pci_acs { + u16 cap; + u16 ctrl; + u16 fw_ctrl; +}; + struct pci_bus { struct list_head node; struct pci_bus *parent; @@ -73484,16 +74290,16 @@ struct pci_check_idx_range { int end; }; -struct rcec_ea; - -struct pcie_link_state; - struct pci_vpd { struct mutex lock; unsigned int len; u8 cap; }; +struct rcec_ea; + +struct pcie_link_state; + struct pci_sriov; struct pci_dev { @@ -73527,9 +74333,10 @@ struct pci_dev { struct device_dma_parameters dma_parms; pci_power_t current_state; u8 pm_cap; - unsigned int imm_ready: 1; unsigned int pme_support: 5; unsigned int pme_poll: 1; + unsigned int pinned: 1; + unsigned int imm_ready: 1; unsigned int d1_support: 1; unsigned int d2_support: 1; unsigned int no_d1d2: 1; @@ -73556,8 +74363,6 @@ struct pci_dev { struct resource resource[17]; struct resource driver_exclusive_resource; bool match_driver; - struct lock_class_key cfg_access_key; - struct lockdep_map cfg_access_lock; unsigned int transparent: 1; unsigned int io_window: 1; unsigned int pref_window: 1; @@ -73661,28 +74466,19 @@ struct pci_device_id { __u32 override_only; }; -struct pci_devres { - unsigned int enabled: 1; - unsigned int pinned: 1; - unsigned int orig_intx: 1; - unsigned int restore_intx: 1; - unsigned int mwi: 1; - u32 region_mask; -}; - struct pci_domain_busn_res { struct list_head list; struct resource res; int domain_nr; }; -struct pci_error_handlers; - struct pci_dynids { spinlock_t lock; struct list_head list; }; +struct pci_error_handlers; + struct pci_driver { const char *name; const struct pci_device_id *id_table; @@ -73825,15 +74621,6 @@ struct pci_reset_fn_method { char *name; }; -struct pci_root_info { - struct list_head list; - char name[12]; - struct list_head resources; - struct resource busn; - int node; - int link; -}; - struct pci_sysdata { int domain; int node; @@ -73842,7 +74629,7 @@ struct pci_sysdata { void *fwnode; }; -struct pci_root_info___2 { +struct pci_root_info { struct acpi_pci_root_info common; struct pci_sysdata sd; bool mcfg_added; @@ -73850,6 +74637,15 @@ struct pci_root_info___2 { u8 end_bus; }; +struct pci_root_info___2 { + struct list_head list; + char name[12]; + struct list_head resources; + struct resource busn; + int node; + int link; +}; + struct pci_root_res { struct list_head list; struct resource res; @@ -73984,6 +74780,18 @@ struct pcie_tlp_log { u32 dw[4]; }; +struct pcim_addr_devres { + enum pcim_addr_devres_type type; + void *baseaddr; + long unsigned int offset; + long unsigned int len; + int bar; +}; + +struct pcim_intx_devres { + int orig_intx; +}; + struct pcim_iomap_devres { void *table[6]; }; @@ -74056,12 +74864,12 @@ struct pcpu_chunk { }; struct pcpu_dstats { - u64 rx_packets; - u64 rx_bytes; - u64 rx_drops; - u64 tx_packets; - u64 tx_bytes; - u64 tx_drops; + u64_stats_t rx_packets; + u64_stats_t rx_bytes; + u64_stats_t rx_drops; + u64_stats_t tx_packets; + u64_stats_t tx_bytes; + u64_stats_t tx_drops; struct u64_stats_sync syncp; long: 64; long: 64; @@ -74256,9 +75064,7 @@ struct per_cpu_pages { u8 alloc_factor; u8 expire; short int free_count; - struct list_head lists[13]; - long: 64; - long: 64; + struct list_head lists[14]; }; struct per_cpu_zonestat { @@ -74655,11 +75461,12 @@ struct perf_event { unsigned int pending_wakeup; unsigned int pending_kill; unsigned int pending_disable; - unsigned int pending_sigtrap; long unsigned int pending_addr; struct irq_work pending_irq; + struct irq_work pending_disable_irq; struct callback_head pending_task; unsigned int pending_work; + struct rcuwait pending_work_wait; atomic_t event_limit; struct perf_addr_filters_head addr_filters; struct perf_addr_filter_range *addr_filter_ranges; @@ -74684,6 +75491,13 @@ struct perf_event { __u32 orig_type; }; +struct perf_event_min_heap { + int nr; + int size; + struct perf_event **data; + struct perf_event *preallocated[0]; +}; + struct perf_event_mmap_page { __u32 version; __u32 compat_version; @@ -75072,8 +75886,6 @@ struct phc_vclocks_reply_data { int *index; }; -struct phy_ops; - struct phy_attrs { u32 bus_width; u32 max_link_rate; @@ -75082,6 +75894,8 @@ struct phy_attrs { struct regulator; +struct phy_ops; + struct phy { struct device dev; int id; @@ -75152,12 +75966,12 @@ union phy_configure_opts { struct phy_configure_opts_lvds lvds; }; -struct phy_driver; - struct phylink; struct pse_control; +struct phy_driver; + struct phy_device { struct mdio_device mdio; const struct phy_driver *drv; @@ -75183,6 +75997,7 @@ struct phy_device { unsigned int interrupts: 1; unsigned int irq_suspended: 1; unsigned int irq_rerun: 1; + unsigned int default_timestamp: 1; int rate_matching; enum phy_state state; u32 dev_flags; @@ -75583,10 +76398,10 @@ struct plat_serial8250_port { void (*handle_break)(struct uart_port *); }; -struct platform_device_id; - struct mfd_cell; +struct platform_device_id; + struct platform_device { const char *name; int id; @@ -75623,8 +76438,10 @@ struct platform_device_info { struct platform_driver { int (*probe)(struct platform_device *); - int (*remove)(struct platform_device *); - void (*remove_new)(struct platform_device *); + union { + void (*remove)(struct platform_device *); + void (*remove_new)(struct platform_device *); + }; void (*shutdown)(struct platform_device *); int (*suspend)(struct platform_device *, pm_message_t); int (*resume)(struct platform_device *); @@ -75634,16 +76451,6 @@ struct platform_driver { bool driver_managed_dma; }; -typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); - -struct platform_msi_priv_data { - struct device *dev; - void *host_data; - msi_alloc_info_t arg; - irq_write_msi_msg_t write_msg; - int devid; -}; - struct platform_object { struct platform_device pdev; char name[0]; @@ -75727,8 +76534,6 @@ struct pnp_card_device_id { } devs[8]; }; -struct pnp_card_link; - struct pnp_device_id; struct pnp_driver { @@ -75743,6 +76548,8 @@ struct pnp_driver { struct device_driver driver; }; +struct pnp_card_link; + struct pnp_card_driver { struct list_head global_list; char *name; @@ -76015,18 +76822,18 @@ struct pool_workqueue { long: 64; }; -struct ports_device; - -struct port_buffer; - -struct virtqueue; - struct port_stats { long unsigned int bytes_sent; long unsigned int bytes_received; long unsigned int bytes_discarded; }; +struct ports_device; + +struct port_buffer; + +struct virtqueue; + struct port___2 { struct list_head list; struct ports_device *portdev; @@ -76037,7 +76844,7 @@ struct port___2 { struct virtqueue *out_vq; struct dentry *debugfs_file; struct port_stats stats; - struct console___2 cons; + struct console cons; struct cdev *cdev; struct device *dev; struct kref kref; @@ -76073,14 +76880,14 @@ struct portdrv_service_data { u32 service; }; -struct virtio_device; - struct virtio_console_control { __virtio32 id; __virtio16 event; __virtio16 value; }; +struct virtio_device; + struct ports_device { struct list_head list; struct work_struct control_work; @@ -76251,7 +77058,7 @@ struct power_supply_battery_info { int overvoltage_limit_uv; int constant_charge_current_max_ua; int constant_charge_voltage_max_uv; - struct power_supply_maintenance_charge_table *maintenance_charge; + const struct power_supply_maintenance_charge_table *maintenance_charge; int maintenance_charge_size; int alert_low_temp_charge_current_ua; int alert_low_temp_charge_voltage_uv; @@ -76270,9 +77077,9 @@ struct power_supply_battery_info { int ocv_table_size[20]; struct power_supply_resistance_temp_table *resist_table; int resist_table_size; - struct power_supply_vbat_ri_table *vbat2ri_discharging; + const struct power_supply_vbat_ri_table *vbat2ri_discharging; int vbat2ri_discharging_size; - struct power_supply_vbat_ri_table *vbat2ri_charging; + const struct power_supply_vbat_ri_table *vbat2ri_charging; int vbat2ri_charging_size; int bti_resistance_ohm; int bti_resistance_tolerance; @@ -76823,10 +77630,10 @@ struct probe_entry_arg { unsigned int size; }; -struct proc_ops; - typedef int (*proc_write_t)(struct file *, char *, size_t); +struct proc_ops; + struct proc_dir_entry { atomic_t in_use; refcount_t refcnt; @@ -76937,9 +77744,22 @@ struct process_timer { struct task_struct *task; }; -struct profile_hit { - u32 pc; - u32 hits; +struct procmap_query { + __u64 size; + __u64 query_flags; + __u64 query_addr; + __u64 vma_start; + __u64 vma_end; + __u64 vma_flags; + __u64 vma_page_size; + __u64 vma_offset; + __u64 inode; + __u32 dev_major; + __u32 dev_minor; + __u32 vma_name_size; + __u32 build_id_size; + __u64 vma_name_addr; + __u64 build_id_addr; }; struct prog_entry { @@ -76982,6 +77802,8 @@ struct prot_inuse { int val[64]; }; +struct smc_hashinfo; + struct proto_accept_arg; struct sk_psock; @@ -76990,8 +77812,6 @@ struct timewait_sock_ops; struct raw_hashinfo; -struct smc_hashinfo; - struct proto { void (*close)(struct sock *, long int); int (*pre_connect)(struct sock *, struct sockaddr *, int); @@ -77174,6 +77994,12 @@ struct pse_control_status { enum ethtool_podl_pse_pw_d_status podl_pw_status; enum ethtool_c33_pse_admin_state c33_admin_state; enum ethtool_c33_pse_pw_d_status c33_pw_status; + u32 c33_pw_class; + u32 c33_actual_pw; + struct ethtool_c33_pse_ext_state_info c33_ext_state_info; + u32 c33_avail_pw_limit; + struct ethtool_c33_pse_pw_limit_range *c33_pw_limit_ranges; + u32 c33_pw_limit_nb_ranges; }; struct pse_reply_data { @@ -77712,7 +78538,8 @@ struct qtag_prefix { }; struct queue_limits { - enum blk_bounce bounce; + blk_features_t features; + blk_flags_t flags; long unsigned int seg_boundary_mask; long unsigned int virt_boundary_mask; unsigned int max_hw_sectors; @@ -77735,16 +78562,22 @@ struct queue_limits { unsigned int discard_granularity; unsigned int discard_alignment; unsigned int zone_write_granularity; + unsigned int atomic_write_hw_max; + unsigned int atomic_write_max_sectors; + unsigned int atomic_write_hw_boundary; + unsigned int atomic_write_boundary_sectors; + unsigned int atomic_write_hw_unit_min; + unsigned int atomic_write_unit_min; + unsigned int atomic_write_hw_unit_max; + unsigned int atomic_write_unit_max; short unsigned int max_segments; short unsigned int max_integrity_segments; short unsigned int max_discard_segments; - unsigned char misaligned; - unsigned char discard_misaligned; - unsigned char raid_partial_stripes_expensive; - bool zoned; unsigned int max_open_zones; unsigned int max_active_zones; unsigned int dma_alignment; + unsigned int dma_pad_mask; + struct blk_integrity integrity; }; struct queue_pages { @@ -77760,8 +78593,8 @@ struct queue_pages { struct queue_sysfs_entry { struct attribute attr; - ssize_t (*show)(struct request_queue *, char *); - ssize_t (*store)(struct request_queue *, const char *, size_t); + ssize_t (*show)(struct gendisk *, char *); + ssize_t (*store)(struct gendisk *, const char *, size_t); }; struct quirk_entry { @@ -78176,8 +79009,6 @@ union rcu_noqs { u16 s; }; -struct rcu_node; - struct rcu_segcblist { struct callback_head *head; struct callback_head **tails[4]; @@ -78198,6 +79029,8 @@ struct rcu_snap_record { long unsigned int jiffies; }; +struct rcu_node; + struct rcu_data { long unsigned int gp_seq; long unsigned int gp_seq_needed; @@ -78382,7 +79215,7 @@ struct rcu_state { struct llist_node *srs_done_tail; struct sr_wait_node srs_wait_nodes[5]; struct work_struct srs_cleanup_work; - long: 64; + atomic_t srs_cleanups_pending; }; struct rcu_synchronize { @@ -78598,6 +79431,15 @@ struct receive_queue { char name[16]; struct xdp_rxq_info xdp_rxq; struct virtnet_rq_dma *last_dma; + struct xsk_buff_pool *xsk_pool; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xsk_rxq_info; + struct xdp_buff **xsk_buffs; long: 64; long: 64; long: 64; @@ -78795,7 +79637,6 @@ struct request_queue { struct rq_qos *rq_qos; struct mutex rq_qos_mutex; int id; - unsigned int dma_pad_mask; long unsigned int nr_requests; struct timer_list timeout; struct work_struct timeout_work; @@ -78856,11 +79697,19 @@ struct res_proc_context { int error; }; +struct reserve_mem_table { + char name[16]; + phys_addr_t start; + phys_addr_t size; +}; + +typedef resource_size_t (*resource_alignf)(void *, const struct resource *, resource_size_t, resource_size_t); + struct resource_constraint { resource_size_t min; resource_size_t max; resource_size_t align; - resource_size_t (*alignf)(void *, const struct resource *, resource_size_t, resource_size_t); + resource_alignf alignf; void *alignf_data; }; @@ -79924,6 +80773,8 @@ struct rusage { __kernel_long_t ru_nivcsw; }; +typedef struct rw_semaphore *class_rwsem_read_t; + struct rwsem_waiter { struct list_head list; struct task_struct *task; @@ -79989,6 +80840,7 @@ struct sbitmap_word { long: 64; long: 64; long unsigned int cleared; + spinlock_t swap_lock; long: 64; long: 64; long: 64; @@ -80014,6 +80866,7 @@ struct scan_control { struct mem_cgroup *target_mem_cgroup; long unsigned int anon_cost; long unsigned int file_cost; + int *proactive_swappiness; unsigned int may_deactivate: 2; unsigned int force_deactivate: 1; unsigned int skipped_deactivate: 1; @@ -80025,6 +80878,7 @@ struct scan_control { unsigned int proactive: 1; unsigned int memcg_low_reclaim: 1; unsigned int memcg_low_skipped: 1; + unsigned int memcg_full_walk: 1; unsigned int hibernation_mode: 1; unsigned int compaction_ready: 1; unsigned int cache_trim_mode: 1; @@ -80495,8 +81349,6 @@ struct sctp_ep_common { struct sctp_bind_addr bind_addr; }; -struct sctp_endpoint; - struct sctp_cookie { __u32 my_vtag; __u32 peer_vtag; @@ -80536,12 +81388,6 @@ struct sctp_inithdr_host { __u32 initial_tsn; }; -struct sctp_random_param; - -struct sctp_chunks_param; - -struct sctp_hmac_algo_param; - struct sctp_stream_out_ext; struct sctp_stream_out { @@ -80595,10 +81441,10 @@ struct sctp_stream { struct sctp_stream_interleave *si; }; -struct sctp_association; - struct sctp_sched_ops; +struct sctp_association; + struct sctp_outq { struct sctp_association *asoc; struct list_head out_chunk_list; @@ -80622,10 +81468,6 @@ struct sctp_ulpq { struct sk_buff_head lobby; }; -struct sctp_auth_bytes; - -struct sctp_shared_key; - struct sctp_priv_assoc_stats { struct __kernel_sockaddr_storage obs_rto_ipaddr; __u64 max_obs_rto; @@ -80645,6 +81487,18 @@ struct sctp_priv_assoc_stats { __u64 ictrlchunks; }; +struct sctp_endpoint; + +struct sctp_random_param; + +struct sctp_chunks_param; + +struct sctp_hmac_algo_param; + +struct sctp_auth_bytes; + +struct sctp_shared_key; + struct sctp_association { struct sctp_ep_common base; struct list_head asocs; @@ -80835,6 +81689,18 @@ union sctp_params { struct sctp_addip_param *addip; }; +struct sctp_sndrcvinfo { + __u16 sinfo_stream; + __u16 sinfo_ssn; + __u16 sinfo_flags; + __u32 sinfo_ppid; + __u32 sinfo_context; + __u32 sinfo_timetolive; + __u32 sinfo_tsn; + __u32 sinfo_cumtsn; + sctp_assoc_t sinfo_assoc_id; +}; + struct sctp_datahdr; struct sctp_inithdr; @@ -80865,18 +81731,6 @@ struct sctp_chunkhdr; struct sctphdr; -struct sctp_sndrcvinfo { - __u16 sinfo_stream; - __u16 sinfo_ssn; - __u16 sinfo_flags; - __u32 sinfo_ppid; - __u32 sinfo_context; - __u32 sinfo_timetolive; - __u32 sinfo_tsn; - __u32 sinfo_cumtsn; - sctp_assoc_t sinfo_assoc_id; -}; - struct sctp_datamsg; struct sctp_chunk { @@ -81599,6 +82453,7 @@ struct security_hook_heads { struct hlist_head inode_setattr; struct hlist_head inode_post_setattr; struct hlist_head inode_getattr; + struct hlist_head inode_xattr_skipcap; struct hlist_head inode_setxattr; struct hlist_head inode_post_setxattr; struct hlist_head inode_getxattr; @@ -81856,6 +82711,7 @@ union security_list_options { int (*inode_setattr)(struct mnt_idmap *, struct dentry *, struct iattr *); void (*inode_post_setattr)(struct mnt_idmap *, struct dentry *, int); int (*inode_getattr)(const struct path *); + int (*inode_xattr_skipcap)(const char *); int (*inode_setxattr)(struct mnt_idmap *, struct dentry *, const char *, const void *, size_t, int); void (*inode_post_setxattr)(struct dentry *, const char *, const void *, size_t, int); int (*inode_getxattr)(struct dentry *, const char *); @@ -82008,7 +82864,7 @@ union security_list_options { int (*key_permission)(key_ref_t, const struct cred *, enum key_need_perm); int (*key_getsecurity)(struct key *, char **); void (*key_post_create_or_update)(struct key *, struct key *, const void *, size_t, long unsigned int, bool); - int (*audit_rule_init)(u32, u32, char *, void **); + int (*audit_rule_init)(u32, u32, char *, void **, gfp_t); int (*audit_rule_known)(struct audit_krule *); int (*audit_rule_match)(u32, u32, u32, void *); void (*audit_rule_free)(void *); @@ -82065,6 +82921,7 @@ struct seg6_action_param { }; struct seg6_bpf_srh_state { + local_lock_t bh_lock; struct ipv6_sr_hdr *srh; u16 hdrlen; bool valid; @@ -83137,6 +83994,11 @@ struct sigpool_entry { uint16_t reserved: 15; }; +struct sigpool_scratch { + local_lock_t bh_lock; + void *pad; +}; + struct sigqueue { struct list_head list; int flags; @@ -83479,7 +84341,7 @@ struct skcipher_walk_buffer { }; struct sku_microcode { - u8 model; + u32 vfm; u8 stepping; u32 microcode; }; @@ -83645,6 +84507,7 @@ struct smp_ops { int (*cpu_disable)(); void (*cpu_die)(unsigned int); void (*play_dead)(); + void (*stop_this_cpu)(); void (*send_call_func_ipi)(const struct cpumask *); void (*send_call_func_single_ipi)(int); }; @@ -83665,6 +84528,11 @@ struct so_timestamping { int bind_phc; }; +struct sock_bh_locked { + struct sock *sock; + local_lock_t bh_lock; +}; + struct sock_diag_handler { struct module *owner; __u8 family; @@ -83809,6 +84677,7 @@ struct socket_alloc { struct socket socket; struct inode vfs_inode; long: 64; + long: 64; }; struct sockmap_link { @@ -83824,6 +84693,7 @@ struct softirq_action { struct softnet_data { struct list_head poll_list; struct sk_buff_head process_queue; + local_lock_t process_queue_bh_lock; unsigned int processed; unsigned int time_squeeze; struct softnet_data *rps_ipi_list; @@ -83834,11 +84704,9 @@ struct softnet_data { struct Qdisc *output_queue; struct Qdisc **output_queue_tailp; struct sk_buff *completion_queue; - struct { - u16 recursion; - u8 more; - u8 skip_txqueue; - } xmit; + struct netdev_xmit xmit; + long: 64; + long: 64; long: 64; long: 64; long: 64; @@ -84260,7 +85128,11 @@ struct statx { __u32 stx_dio_mem_align; __u32 stx_dio_offset_align; __u64 stx_subvol; - __u64 __spare3[11]; + __u32 stx_atomic_write_unit_min; + __u32 stx_atomic_write_unit_max; + __u32 stx_atomic_write_segments_max; + __u32 __spare1[1]; + __u64 __spare3[9]; }; struct stop_event_data { @@ -84636,7 +85508,6 @@ struct swevent_htable { struct swevent_hlist *swevent_hlist; struct mutex hlist_mutex; int hlist_refcount; - int recursion[4]; }; struct switchdev_notifier_info { @@ -84882,6 +85753,7 @@ struct sysrq_state { struct system_counterval_t { u64 cycles; enum clocksource_ids cs_id; + bool use_nsecs; }; struct system_device_crosststamp { @@ -84911,6 +85783,7 @@ struct taint_flag { char c_true; char c_false; bool module; + const char *desc; }; struct tap_filter { @@ -85006,8 +85879,6 @@ struct tlbflush_unmap_batch { bool writable; }; -struct uprobe_task; - struct thread_struct { struct desc_struct tls_array[3]; long unsigned int sp; @@ -85035,6 +85906,8 @@ struct thread_struct { struct fpu fpu; }; +struct uprobe_task; + struct task_struct { struct thread_info thread_info; unsigned int __state; @@ -85111,7 +85984,6 @@ struct task_struct { unsigned int in_execve: 1; unsigned int in_iowait: 1; unsigned int restore_sigmask: 1; - unsigned int in_user_fault: 1; unsigned int brk_randomized: 1; unsigned int no_cgroup_migration: 1; unsigned int frozen: 1; @@ -85221,6 +86093,7 @@ struct task_struct { struct futex_pi_state *pi_state_cache; struct mutex futex_exit_mutex; unsigned int futex_state; + u8 perf_recursion[4]; struct perf_event_context *perf_event_ctxp; struct mutex perf_event_mutex; struct list_head perf_event_list; @@ -85265,12 +86138,11 @@ struct task_struct { u64 default_timer_slack_ns; int curr_ret_stack; int curr_ret_depth; - struct ftrace_ret_stack *ret_stack; + long unsigned int *ret_stack; long long unsigned int ftrace_timestamp; atomic_t trace_overrun; atomic_t tracing_graph_pause; long unsigned int trace_recursion; - struct mem_cgroup *memcg_in_oom; unsigned int memcg_nr_pages_over_high; struct mem_cgroup *active_memcg; struct obj_cgroup *objcg; @@ -85288,6 +86160,7 @@ struct task_struct { void *security; struct bpf_local_storage *bpf_storage; struct bpf_run_ctx *bpf_ctx; + struct bpf_net_context *bpf_net_context; void *mce_vaddr; __u64 mce_kflags; u64 mce_addr; @@ -85408,10 +86281,6 @@ struct tc_act_pernet_id { unsigned int id; }; -struct tc_action_ops; - -struct tcf_idrinfo; - struct tcf_t { __u64 install; __u64 lastuse; @@ -85419,6 +86288,10 @@ struct tcf_t { __u64 firstuse; }; +struct tc_action_ops; + +struct tcf_idrinfo; + struct tc_cookie; struct tcf_chain; @@ -86580,7 +87453,7 @@ struct tcpm_hash_bucket { struct tcx_entry { struct mini_Qdisc *miniq; struct bpf_mprog_bundle bundle; - bool miniq_active; + u32 miniq_active; struct callback_head rcu; }; @@ -86590,6 +87463,12 @@ struct tcx_link { u32 location; }; +struct temp_masks { + u32 tcc_offset; + u32 digital_readout; + u32 pkg_digital_readout; +}; + struct termio { short unsigned int c_iflag; short unsigned int c_oflag; @@ -86736,7 +87615,7 @@ struct thermal_zone_device_ops { int (*get_temp)(struct thermal_zone_device *, int *); int (*set_trips)(struct thermal_zone_device *, int, int); int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode); - int (*set_trip_temp)(struct thermal_zone_device *, int, int); + int (*set_trip_temp)(struct thermal_zone_device *, const struct thermal_trip *, int); int (*get_crit_temp)(struct thermal_zone_device *, int *); int (*set_emul_temp)(struct thermal_zone_device *, int); int (*get_trend)(struct thermal_zone_device *, const struct thermal_trip *, enum thermal_trend *); @@ -86751,6 +87630,7 @@ struct thermal_zone_device { char type[20]; struct device device; struct completion removal; + struct completion resume; struct attribute_group trips_attribute_group; struct thermal_attr *trip_temp_attrs; struct thermal_attr *trip_type_attrs; @@ -86760,6 +87640,7 @@ struct thermal_zone_device { int num_trips; long unsigned int passive_delay_jiffies; long unsigned int polling_delay_jiffies; + long unsigned int recheck_delay_jiffies; int temperature; int last_temperature; int emul_temperature; @@ -86778,6 +87659,7 @@ struct thermal_zone_device { struct delayed_work poll_queue; enum thermal_notify_event notify_event; bool suspended; + bool resuming; struct thermal_trip_desc trips[0]; }; @@ -86874,9 +87756,7 @@ struct throtl_grp { bool has_rules_bps[2]; bool has_rules_iops[2]; uint64_t bps[2]; - uint64_t bps_conf[2]; unsigned int iops[2]; - unsigned int iops_conf[2]; uint64_t bytes_disp[2]; unsigned int io_disp[2]; long unsigned int last_low_overflow_time[2]; @@ -87364,21 +88244,21 @@ struct tm { int tm_yday; }; -struct tmigr_group; - struct tmigr_event { struct timerqueue_node nextevt; unsigned int cpu; bool ignore; }; +struct tmigr_group; + struct tmigr_cpu { raw_spinlock_t lock; bool online; bool idle; bool remote; struct tmigr_group *tmgroup; - u8 childmask; + u8 groupmask; u64 wakeup; struct tmigr_event cpuevt; }; @@ -87393,19 +88273,10 @@ struct tmigr_group { unsigned int level; int numa_node; unsigned int num_children; - u8 childmask; + u8 groupmask; struct list_head list; }; -struct tmigr_remote_data { - long unsigned int basej; - u64 now; - u64 firstexp; - u8 childmask; - bool check; - bool tmc_active; -}; - union tmigr_state { u32 state; struct { @@ -87421,6 +88292,10 @@ struct tmigr_walk { struct tmigr_event *evt; u8 childmask; bool remote; + long unsigned int basej; + u64 now; + bool check; + bool tmc_active; }; struct tmpmasks { @@ -87476,8 +88351,8 @@ struct topa_entry { u64 rsvd2: 1; u64 size: 4; u64 rsvd3: 2; - u64 base: 36; - u64 rsvd4: 16; + u64 base: 40; + u64 rsvd4: 12; }; struct topa_page { @@ -87746,8 +88621,6 @@ struct tpm_buf { u8 handles; }; -struct tpm_class_ops; - struct tpm_chip_seqops { struct tpm_chip *chip; const struct seq_operations *seqops; @@ -87761,6 +88634,8 @@ struct tpm_space { u32 buf_size; }; +struct tpm_class_ops; + struct tpm_chip { struct device dev; struct device devs; @@ -87908,8 +88783,8 @@ struct trace_array { int buffer_disabled; int sys_refcount_enter; int sys_refcount_exit; - struct trace_event_file *enter_syscall_files[462]; - struct trace_event_file *exit_syscall_files[462]; + struct trace_event_file *enter_syscall_files[463]; + struct trace_event_file *exit_syscall_files[463]; int stop_count; int clock_id; int nr_topts; @@ -87938,6 +88813,7 @@ struct trace_array { struct ftrace_ops *ops; struct trace_pid_list *function_pids; struct trace_pid_list *function_no_pids; + struct fgraph_ops *gops; struct list_head func_probes; struct list_head mod_trace; struct list_head mod_notrace; @@ -88466,7 +89342,7 @@ struct trace_event_data_offsets_ext4_es_find_extent_range_enter {}; struct trace_event_data_offsets_ext4_es_find_extent_range_exit {}; -struct trace_event_data_offsets_ext4_es_insert_delayed_block {}; +struct trace_event_data_offsets_ext4_es_insert_delayed_extent {}; struct trace_event_data_offsets_ext4_es_lookup_extent_enter {}; @@ -89248,6 +90124,12 @@ struct trace_event_data_offsets_task_rename {}; struct trace_event_data_offsets_tasklet {}; +struct trace_event_data_offsets_tcp_ao_event {}; + +struct trace_event_data_offsets_tcp_ao_event_sk {}; + +struct trace_event_data_offsets_tcp_ao_event_sne {}; + struct trace_event_data_offsets_tcp_cong_state_set {}; struct trace_event_data_offsets_tcp_event_sk {}; @@ -89256,6 +90138,8 @@ struct trace_event_data_offsets_tcp_event_sk_skb {}; struct trace_event_data_offsets_tcp_event_skb {}; +struct trace_event_data_offsets_tcp_hash_event {}; + struct trace_event_data_offsets_tcp_probe {}; struct trace_event_data_offsets_tcp_retransmit_synack {}; @@ -89430,7 +90314,7 @@ struct trace_event_file { struct trace_subsystem_dir *system; struct list_head triggers; long unsigned int flags; - atomic_t ref; + refcount_t ref; atomic_t sm_ref; atomic_t tm_ref; }; @@ -89634,6 +90518,7 @@ struct trace_event_raw_block_rq { sector_t sector; unsigned int nr_sector; unsigned int bytes; + short unsigned int ioprio; char rwbs[8]; char comm[16]; u32 __data_loc_cmd; @@ -89646,6 +90531,7 @@ struct trace_event_raw_block_rq_completion { sector_t sector; unsigned int nr_sector; int error; + short unsigned int ioprio; char rwbs[8]; u32 __data_loc_cmd; char __data[0]; @@ -89668,6 +90554,7 @@ struct trace_event_raw_block_rq_requeue { dev_t dev; sector_t sector; unsigned int nr_sector; + short unsigned int ioprio; char rwbs[8]; u32 __data_loc_cmd; char __data[0]; @@ -90309,6 +91196,7 @@ struct trace_event_raw_ext4_da_reserve_space { dev_t dev; ino_t ino; __u64 i_blocks; + int reserve_blocks; int reserved_data_blocks; __u16 mode; char __data[0]; @@ -90397,7 +91285,7 @@ struct trace_event_raw_ext4_es_find_extent_range_exit { char __data[0]; }; -struct trace_event_raw_ext4_es_insert_delayed_block { +struct trace_event_raw_ext4_es_insert_delayed_extent { struct trace_entry ent; dev_t dev; ino_t ino; @@ -90405,7 +91293,8 @@ struct trace_event_raw_ext4_es_insert_delayed_block { ext4_lblk_t len; ext4_fsblk_t pblk; char status; - bool allocated; + bool lclu_allocated; + bool end_allocated; char __data[0]; }; @@ -91824,6 +92713,7 @@ struct trace_event_raw_kfree_skb { struct trace_entry ent; void *skbaddr; void *location; + void *rx_sk; short unsigned int protocol; enum skb_drop_reason reason; char __data[0]; @@ -92930,7 +93820,7 @@ struct trace_event_raw_page_pool_release { struct trace_event_raw_page_pool_state_hold { struct trace_entry ent; const struct page_pool *pool; - const struct page *page; + long unsigned int netmem; u32 hold; long unsigned int pfn; char __data[0]; @@ -92939,7 +93829,7 @@ struct trace_event_raw_page_pool_state_hold { struct trace_event_raw_page_pool_state_release { struct trace_entry ent; const struct page_pool *pool; - const struct page *page; + long unsigned int netmem; u32 release; long unsigned int pfn; char __data[0]; @@ -93498,6 +94388,58 @@ struct trace_event_raw_tasklet { char __data[0]; }; +struct trace_event_raw_tcp_ao_event { + struct trace_entry ent; + __u64 net_cookie; + const void *skbaddr; + const void *skaddr; + int state; + __u8 saddr[28]; + __u8 daddr[28]; + int l3index; + __u16 sport; + __u16 dport; + __u16 family; + bool fin; + bool syn; + bool rst; + bool psh; + bool ack; + __u8 keyid; + __u8 rnext; + __u8 maclen; + char __data[0]; +}; + +struct trace_event_raw_tcp_ao_event_sk { + struct trace_entry ent; + __u64 net_cookie; + const void *skaddr; + int state; + __u8 saddr[28]; + __u8 daddr[28]; + __u16 sport; + __u16 dport; + __u16 family; + __u8 keyid; + __u8 rnext; + char __data[0]; +}; + +struct trace_event_raw_tcp_ao_event_sne { + struct trace_entry ent; + __u64 net_cookie; + const void *skaddr; + int state; + __u8 saddr[28]; + __u8 daddr[28]; + __u16 sport; + __u16 dport; + __u16 family; + __u32 new_sne; + char __data[0]; +}; + struct trace_event_raw_tcp_cong_state_set { struct trace_entry ent; const void *skaddr; @@ -93549,6 +94491,26 @@ struct trace_event_raw_tcp_event_skb { char __data[0]; }; +struct trace_event_raw_tcp_hash_event { + struct trace_entry ent; + __u64 net_cookie; + const void *skbaddr; + const void *skaddr; + int state; + __u8 saddr[28]; + __u8 daddr[28]; + int l3index; + __u16 sport; + __u16 dport; + __u16 family; + bool fin; + bool syn; + bool rst; + bool psh; + bool ack; + char __data[0]; +}; + struct trace_event_raw_tcp_probe { struct trace_entry ent; __u8 saddr[28]; @@ -93736,7 +94698,7 @@ struct trace_event_raw_tmigr_connect_child_parent { unsigned int lvl; unsigned int numa_node; unsigned int num_children; - u32 childmask; + u32 groupmask; char __data[0]; }; @@ -93747,7 +94709,7 @@ struct trace_event_raw_tmigr_connect_cpu_parent { unsigned int lvl; unsigned int numa_node; unsigned int num_children; - u32 childmask; + u32 groupmask; char __data[0]; }; @@ -94321,10 +95283,7 @@ struct tracefs_fs_info { }; struct tracefs_inode { - union { - struct inode vfs_inode; - struct callback_head rcu; - }; + struct inode vfs_inode; struct list_head list; long unsigned int flags; void *private; @@ -94541,7 +95500,7 @@ struct tsc_adjust { struct tsinfo_reply_data { struct ethnl_reply_data base; - struct ethtool_ts_info ts_info; + struct kernel_ethtool_ts_info ts_info; struct ethtool_ts_stats stats; }; @@ -94959,7 +95918,7 @@ struct uart_driver { int major; int minor; int nr; - struct console *cons; + struct console___2 *cons; struct uart_state *state; struct tty_driver *tty_driver; }; @@ -95151,13 +96110,13 @@ struct udp_tunnel_nic { struct udp_tunnel_nic_table_entry *entries[0]; }; -struct udp_tunnel_nic_shared; - struct udp_tunnel_nic_table_info { unsigned int n_entries; unsigned int tunnel_types; }; +struct udp_tunnel_nic_shared; + struct udp_tunnel_nic_info { int (*set_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *); int (*unset_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *); @@ -95330,7 +96289,6 @@ struct umd_info { struct uncached_list { spinlock_t lock; struct list_head head; - struct list_head quarantine; }; struct uncharge_gather { @@ -95522,6 +96480,11 @@ struct unixware_disklabel { struct unixware_vtoc vtoc; }; +struct unlink_vma_file_batch { + int count; + struct vm_area_struct *vmas[8]; +}; + struct unwind_state { struct stack_info stack_info; long unsigned int stack_mask; @@ -96037,6 +97000,11 @@ struct vdso_image { long int sym_vdso32_rt_sigreturn_landing_pad; }; +struct vdso_rng_data { + u64 generation; + u8 is_ready; +}; + struct vector_cleanup { struct hlist_head head; struct timer_list timer; @@ -96231,6 +97199,8 @@ struct virtio_admin_cmd { __le64 group_member_id; struct scatterlist *data_sg; struct scatterlist *result_sg; + struct completion completion; + int ret; }; struct virtio_admin_cmd_hdr { @@ -96405,7 +97375,7 @@ struct virtio_chan { struct list_head chan_list; }; -typedef void vq_callback_t(struct virtqueue *); +struct virtqueue_info; struct virtio_shm_region; @@ -96416,7 +97386,7 @@ struct virtio_config_ops { u8 (*get_status)(struct virtio_device *); void (*set_status)(struct virtio_device *, u8); void (*reset)(struct virtio_device *); - int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, vq_callback_t **, const char * const *, const bool *, struct irq_affinity *); + int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, struct virtqueue_info *, struct irq_affinity *); void (*del_vqs)(struct virtio_device *); void (*synchronize_cbs)(struct virtio_device *); u64 (*get_features)(struct virtio_device *); @@ -96427,8 +97397,6 @@ struct virtio_config_ops { bool (*get_shm_region)(struct virtio_device *, struct virtio_shm_region *, u8); int (*disable_vq_and_reset)(struct virtqueue *); int (*enable_vq_after_reset)(struct virtqueue *); - int (*create_avq)(struct virtio_device *); - void (*destroy_avq)(struct virtio_device *); }; struct virtio_console_config { @@ -96591,15 +97559,11 @@ struct virtio_net_stats_reply_hdr { __le16 size; }; -struct virtio_pci_vq_info { - struct virtqueue *vq; - struct list_head node; - unsigned int msix_vector; -}; +struct virtio_pci_vq_info; struct virtio_pci_admin_vq { - struct virtio_pci_vq_info info; - struct mutex cmd_lock; + struct virtio_pci_vq_info *info; + spinlock_t lock; u64 supported_cmds; char name[10]; u16 vq_index; @@ -96663,6 +97627,7 @@ struct virtio_pci_device { u8 *isr; spinlock_t lock; struct list_head virtqueues; + struct list_head slow_virtqueues; struct virtio_pci_vq_info **vqs; struct virtio_pci_admin_vq admin_vq; int msix_enabled; @@ -96675,7 +97640,7 @@ struct virtio_pci_device { struct virtqueue * (*setup_vq)(struct virtio_pci_device *, struct virtio_pci_vq_info *, unsigned int, void (*)(struct virtqueue *), const char *, bool, u16); void (*del_vq)(struct virtio_pci_vq_info *); u16 (*config_vector)(struct virtio_pci_device *, u16); - bool (*is_avq)(struct virtio_device *, unsigned int); + int (*avq_index)(struct virtio_device *, u16 *, u16 *); }; struct virtio_pci_modern_common_cfg { @@ -96686,6 +97651,12 @@ struct virtio_pci_modern_common_cfg { __le16 admin_queue_num; }; +struct virtio_pci_vq_info { + struct virtqueue *vq; + struct list_head node; + unsigned int msix_vector; +}; + struct virtio_shm_region { u64 addr; u64 len; @@ -96747,6 +97718,8 @@ struct virtnet_rq_dma { struct virtnet_sq_free_stats { u64 packets; u64 bytes; + u64 napi_packets; + u64 napi_bytes; }; struct virtnet_stat_desc { @@ -96775,6 +97748,14 @@ struct virtqueue { void *priv; }; +typedef void vq_callback_t(struct virtqueue *); + +struct virtqueue_info { + const char *name; + vq_callback_t *callback; + bool ctx; +}; + struct vlan_priority_tci_mapping; struct vlan_pcpu_stats; @@ -96873,14 +97854,14 @@ struct vlan_vid_info { int refcount; }; -struct vma_lock; - -struct vma_numab_state; - struct vm_userfaultfd_ctx { struct userfaultfd_ctx *ctx; }; +struct vma_lock; + +struct vma_numab_state; + struct vm_area_struct { union { struct { @@ -96996,6 +97977,7 @@ struct vm_unmapped_area_info { struct vma_list { struct vm_area_struct *vma; struct list_head head; + atomic_t mmap_count; }; struct vma_lock { @@ -97021,12 +98003,6 @@ struct vma_prepare { struct vm_area_struct *remove2; }; -struct vma_swap_readahead { - short unsigned int win; - short unsigned int offset; - short unsigned int nr_pte; -}; - struct vmap_area { long unsigned int va_start; long unsigned int va_end; @@ -97050,6 +98026,7 @@ struct vmap_block { struct list_head free_list; struct callback_head callback_head; struct list_head purge; + unsigned int cpu; }; struct vmap_block_queue { @@ -97095,10 +98072,16 @@ struct vmpressure_event { struct list_head node; }; +struct vring_desc; + typedef struct vring_desc vring_desc_t; +struct vring_avail; + typedef struct vring_avail vring_avail_t; +struct vring_used; + typedef struct vring_used vring_used_t; struct vring { @@ -97299,8 +98282,6 @@ struct vxlan_dev_node { struct vxlan_dev *vxlan; }; -struct vxlan_sock; - struct vxlan_rdst { union vxlan_addr remote_ip; __be16 remote_port; @@ -97313,6 +98294,8 @@ struct vxlan_rdst { struct dst_cache dst_cache; }; +struct vxlan_sock; + struct vxlan_vni_group; struct vxlan_dev { @@ -97639,7 +98622,7 @@ struct worker { long unsigned int last_active; unsigned int flags; int id; - char desc[24]; + char desc[32]; struct workqueue_struct *rescue_wq; }; @@ -97662,8 +98645,6 @@ struct worker_pool { struct hlist_head busy_hash[64]; struct worker *manager; struct list_head workers; - struct list_head dying_workers; - struct completion *detach_completion; struct ida worker_ida; struct workqueue_attrs *attrs; struct hlist_node hash_node; @@ -97914,10 +98895,12 @@ struct x86_cpuinit_ops { }; struct x86_guest { - bool (*enc_status_change_prepare)(long unsigned int, int, bool); - bool (*enc_status_change_finish)(long unsigned int, int, bool); + int (*enc_status_change_prepare)(long unsigned int, int, bool); + int (*enc_status_change_finish)(long unsigned int, int, bool); bool (*enc_tlb_flush_required)(bool); bool (*enc_cache_flush_required)(); + void (*enc_kexec_begin)(); + void (*enc_kexec_finish)(); }; struct x86_hybrid_pmu { @@ -97927,9 +98910,16 @@ struct x86_hybrid_pmu { cpumask_t supported_cpus; union perf_capabilities intel_cap; u64 intel_ctrl; - int max_pebs_events; - int num_counters; - int num_counters_fixed; + u64 pebs_events_mask; + u64 config_mask; + union { + u64 cntr_mask64; + long unsigned int cntr_mask[1]; + }; + union { + u64 fixed_cntr_mask64; + long unsigned int fixed_cntr_mask[1]; + }; struct event_constraint unconstrained; u64 hw_cache_event_ids[42]; u64 hw_cache_extra_regs[42]; @@ -97939,7 +98929,7 @@ struct x86_hybrid_pmu { unsigned int late_ack: 1; unsigned int mid_ack: 1; unsigned int enabled_ack: 1; - u64 pebs_data_source[16]; + u64 pebs_data_source[256]; }; struct x86_hyper_init { @@ -98042,6 +99032,7 @@ struct x86_legacy_features { struct x86_mapping_info { void * (*alloc_pgt_page)(void *); + void (*free_pgt_page)(void *, void *); void *context; long unsigned int page_flag; long unsigned int offset; @@ -98134,12 +99125,20 @@ struct x86_pmu { int (*schedule_events)(struct cpu_hw_events *, int, int *); unsigned int eventsel; unsigned int perfctr; + unsigned int fixedctr; int (*addr_offset)(int, bool); int (*rdpmc_index)(int); u64 (*event_map)(int); int max_events; - int num_counters; - int num_counters_fixed; + u64 config_mask; + union { + u64 cntr_mask64; + long unsigned int cntr_mask[1]; + }; + union { + u64 fixed_cntr_mask64; + long unsigned int fixed_cntr_mask[1]; + }; int cntval_bits; u64 cntval_mask; union { @@ -98186,7 +99185,7 @@ struct x86_pmu { unsigned int pebs_ept: 1; int pebs_record_size; int pebs_buffer_size; - int max_pebs_events; + u64 pebs_events_mask; void (*drain_pebs)(struct pt_regs *, struct perf_sample_data *); struct event_constraint *pebs_constraints; void (*pebs_aliases)(struct perf_event *); @@ -99047,8 +100046,6 @@ struct xfrm_policy_queue { long unsigned int timeout; }; -struct xfrm_sec_ctx; - struct xfrm_tmpl { struct xfrm_id id; xfrm_address_t saddr; @@ -99063,6 +100060,8 @@ struct xfrm_tmpl { u32 calgos; }; +struct xfrm_sec_ctx; + struct xfrm_policy { possible_net_t xp_net; struct hlist_node bydst; @@ -99178,7 +100177,10 @@ struct xfrm_state { struct hlist_node gclist; struct hlist_node bydst; }; - struct hlist_node bysrc; + union { + struct hlist_node dev_gclist; + struct hlist_node bysrc; + }; struct hlist_node byspi; struct hlist_node byseq; refcount_t refcnt; @@ -99216,6 +100218,8 @@ struct xfrm_state { u32 mapping_maxage; struct xfrm_encap_tmpl *encap; struct sock *encap_sk; + u32 nat_keepalive_interval; + time64_t nat_keepalive_expiration; xfrm_address_t *coaddr; struct xfrm_state *tunnel; atomic_t tunnel_users; @@ -100914,7 +101918,7 @@ typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, lo typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); -typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *); +typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *, int); typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); @@ -100940,7 +101944,7 @@ typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode * typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *); -typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool); +typedef void (*btf_trace_ext4_es_insert_delayed_extent)(void *, struct inode *, struct extent_status *, bool, bool); typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *); @@ -101346,7 +102350,7 @@ typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t); typedef void (*btf_trace_kfree)(void *, long unsigned int, const void *); -typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason); +typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason, struct sock *); typedef void (*btf_trace_kmalloc)(void *, long unsigned int, const void *, size_t, size_t, gfp_t, int); @@ -101636,9 +102640,9 @@ typedef void (*btf_trace_page_fault_user)(void *, long unsigned int, struct pt_r typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32); -typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, const struct page *, u32); +typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, netmem_ref, u32); -typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, const struct page *, u32); +typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, netmem_ref, u32); typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int); @@ -101846,12 +102850,38 @@ typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *) typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); +typedef void (*btf_trace_tcp_ao_handshake_failure)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_key_not_found)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_mismatch)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_rcv_sne_update)(void *, const struct sock *, __u32); + +typedef void (*btf_trace_tcp_ao_rnext_request)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_snd_sne_update)(void *, const struct sock *, __u32); + +typedef void (*btf_trace_tcp_ao_synack_no_key)(void *, const struct sock *, const __u8, const __u8); + +typedef void (*btf_trace_tcp_ao_wrong_maclen)(void *, const struct sock *, const struct sk_buff *, const __u8, const __u8, const __u8); + typedef void (*btf_trace_tcp_bad_csum)(void *, const struct sk_buff *); typedef void (*btf_trace_tcp_cong_state_set)(void *, struct sock *, const u8); typedef void (*btf_trace_tcp_destroy_sock)(void *, struct sock *); +typedef void (*btf_trace_tcp_hash_ao_required)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_hash_bad_header)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_hash_md5_mismatch)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_hash_md5_required)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_hash_md5_unexpected)(void *, const struct sock *, const struct sk_buff *); + typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *); typedef void (*btf_trace_tcp_rcv_space_adjust)(void *, struct sock *); @@ -102148,6 +103178,8 @@ typedef size_t (*iov_ustep_f)(void *, size_t, size_t, void *, void *); typedef void ip6_icmp_send_t(struct sk_buff *, u8, u8, __u32, const struct in6_addr *, const struct inet6_skb_parm *); +typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); + typedef void k_handler_fn(struct vc_data *, unsigned char, char); typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); @@ -102200,6 +103232,8 @@ typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); typedef int (*sendmsg_func)(struct sock *, struct msghdr *); +typedef void (*serial8250_isa_config_fn)(int, struct uart_port *, u32 *); + typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); @@ -102234,12 +103268,16 @@ typedef int (*tg_visitor)(struct task_group *, void *); typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); -typedef bool (*up_f)(struct tmigr_group *, struct tmigr_group *, void *); +typedef bool (*up_f)(struct tmigr_group *, struct tmigr_group *, struct tmigr_walk *); typedef int wait_bit_action_f(struct wait_bit_key *, int); typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); +struct net_bridge; + +struct nf_bridge_frag_data; + struct bpf_iter; struct creds; @@ -102248,9 +103286,151 @@ struct fscrypt_inode_info; struct fsverity_info; -struct net_bridge; -struct nf_bridge_frag_data; +/* BPF kfuncs */ +#ifndef BPF_NO_KFUNC_PROTOTYPES +extern void cgroup_rstat_updated(struct cgroup *cgrp, int cpu) __weak __ksym; +extern void cgroup_rstat_flush(struct cgroup *cgrp) __weak __ksym; +extern struct bpf_key *bpf_lookup_user_key(u32 serial, u64 flags) __weak __ksym; +extern struct bpf_key *bpf_lookup_system_key(u64 id) __weak __ksym; +extern void bpf_key_put(struct bpf_key *bkey) __weak __ksym; +extern bool bpf_session_is_return() __weak __ksym; +extern __u64 *bpf_session_cookie() __weak __ksym; +extern void *bpf_obj_new_impl(u64 local_type_id__k, void *meta__ign) __weak __ksym; +extern void *bpf_percpu_obj_new_impl(u64 local_type_id__k, void *meta__ign) __weak __ksym; +extern void bpf_obj_drop_impl(void *p__alloc, void *meta__ign) __weak __ksym; +extern void bpf_percpu_obj_drop_impl(void *p__alloc, void *meta__ign) __weak __ksym; +extern void *bpf_refcount_acquire_impl(void *p__refcounted_kptr, void *meta__ign) __weak __ksym; +extern int bpf_list_push_front_impl(struct bpf_list_head *head, struct bpf_list_node *node, void *meta__ign, u64 off) __weak __ksym; +extern int bpf_list_push_back_impl(struct bpf_list_head *head, struct bpf_list_node *node, void *meta__ign, u64 off) __weak __ksym; +extern struct bpf_list_node *bpf_list_pop_front(struct bpf_list_head *head) __weak __ksym; +extern struct bpf_list_node *bpf_list_pop_back(struct bpf_list_head *head) __weak __ksym; +extern struct task_struct *bpf_task_acquire(struct task_struct *p) __weak __ksym; +extern void bpf_task_release(struct task_struct *p) __weak __ksym; +extern struct bpf_rb_node *bpf_rbtree_remove(struct bpf_rb_root *root, struct bpf_rb_node *node) __weak __ksym; +extern int bpf_rbtree_add_impl(struct bpf_rb_root *root, struct bpf_rb_node *node, bool (*less)(struct bpf_rb_node *, const struct bpf_rb_node *), void *meta__ign, u64 off) __weak __ksym; +extern struct bpf_rb_node *bpf_rbtree_first(struct bpf_rb_root *root) __weak __ksym; +extern struct cgroup *bpf_cgroup_acquire(struct cgroup *cgrp) __weak __ksym; +extern void bpf_cgroup_release(struct cgroup *cgrp) __weak __ksym; +extern struct cgroup *bpf_cgroup_ancestor(struct cgroup *cgrp, int level) __weak __ksym; +extern struct cgroup *bpf_cgroup_from_id(u64 cgid) __weak __ksym; +extern long int bpf_task_under_cgroup(struct task_struct *task, struct cgroup *ancestor) __weak __ksym; +extern struct cgroup *bpf_task_get_cgroup1(struct task_struct *task, int hierarchy_id) __weak __ksym; +extern struct task_struct *bpf_task_from_pid(s32 pid) __weak __ksym; +extern void bpf_throw(u64 cookie) __weak __ksym; +extern void *bpf_cast_to_kern_ctx(void *obj) __weak __ksym; +extern void *bpf_rdonly_cast(const void *obj__ign, u32 btf_id__k) __weak __ksym; +extern void bpf_rcu_read_lock() __weak __ksym; +extern void bpf_rcu_read_unlock() __weak __ksym; +extern void *bpf_dynptr_slice(const struct bpf_dynptr *p, u32 offset, void *buffer__opt, u32 buffer__szk) __weak __ksym; +extern void *bpf_dynptr_slice_rdwr(const struct bpf_dynptr *p, u32 offset, void *buffer__opt, u32 buffer__szk) __weak __ksym; +extern int bpf_iter_num_new(struct bpf_iter_num *it, int start, int end) __weak __ksym; +extern int *bpf_iter_num_next(struct bpf_iter_num *it) __weak __ksym; +extern void bpf_iter_num_destroy(struct bpf_iter_num *it) __weak __ksym; +extern int bpf_iter_task_vma_new(struct bpf_iter_task_vma *it, struct task_struct *task, u64 addr) __weak __ksym; +extern struct vm_area_struct *bpf_iter_task_vma_next(struct bpf_iter_task_vma *it) __weak __ksym; +extern void bpf_iter_task_vma_destroy(struct bpf_iter_task_vma *it) __weak __ksym; +extern int bpf_iter_css_task_new(struct bpf_iter_css_task *it, struct cgroup_subsys_state *css, unsigned int flags) __weak __ksym; +extern struct task_struct *bpf_iter_css_task_next(struct bpf_iter_css_task *it) __weak __ksym; +extern void bpf_iter_css_task_destroy(struct bpf_iter_css_task *it) __weak __ksym; +extern int bpf_iter_css_new(struct bpf_iter_css *it, struct cgroup_subsys_state *start, unsigned int flags) __weak __ksym; +extern struct cgroup_subsys_state *bpf_iter_css_next(struct bpf_iter_css *it) __weak __ksym; +extern void bpf_iter_css_destroy(struct bpf_iter_css *it) __weak __ksym; +extern int bpf_iter_task_new(struct bpf_iter_task *it, struct task_struct *task__nullable, unsigned int flags) __weak __ksym; +extern struct task_struct *bpf_iter_task_next(struct bpf_iter_task *it) __weak __ksym; +extern void bpf_iter_task_destroy(struct bpf_iter_task *it) __weak __ksym; +extern int bpf_dynptr_adjust(const struct bpf_dynptr *p, u32 start, u32 end) __weak __ksym; +extern bool bpf_dynptr_is_null(const struct bpf_dynptr *p) __weak __ksym; +extern bool bpf_dynptr_is_rdonly(const struct bpf_dynptr *p) __weak __ksym; +extern __u32 bpf_dynptr_size(const struct bpf_dynptr *p) __weak __ksym; +extern int bpf_dynptr_clone(const struct bpf_dynptr *p, struct bpf_dynptr *clone__uninit) __weak __ksym; +extern int bpf_modify_return_test_tp(int nonce) __weak __ksym; +extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; +extern int bpf_wq_set_callback_impl(struct bpf_wq *wq, int (*callback_fn)(void *, int *, void *), unsigned int flags, void *aux__ign) __weak __ksym; +extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; +extern void bpf_preempt_disable() __weak __ksym; +extern void bpf_preempt_enable() __weak __ksym; +extern int bpf_iter_bits_new(struct bpf_iter_bits *it, const u64 *unsafe_ptr__ign, u32 nr_words) __weak __ksym; +extern int *bpf_iter_bits_next(struct bpf_iter_bits *it) __weak __ksym; +extern void bpf_iter_bits_destroy(struct bpf_iter_bits *it) __weak __ksym; +extern int bpf_copy_from_user_str(void *dst, u32 dst__sz, const void *unsafe_ptr__ign, u64 flags) __weak __ksym; +extern s64 bpf_map_sum_elem_count(const struct bpf_map *map) __weak __ksym; +extern void *bpf_arena_alloc_pages(void *p__map, void *addr__ign, u32 page_cnt, int node_id, u64 flags) __weak __ksym; +extern void bpf_arena_free_pages(void *p__map, void *ptr__ign, u32 page_cnt) __weak __ksym; +extern struct bpf_cpumask *bpf_cpumask_create() __weak __ksym; +extern void bpf_cpumask_release(struct bpf_cpumask *cpumask) __weak __ksym; +extern struct bpf_cpumask *bpf_cpumask_acquire(struct bpf_cpumask *cpumask) __weak __ksym; +extern u32 bpf_cpumask_first(const struct cpumask *cpumask) __weak __ksym; +extern u32 bpf_cpumask_first_zero(const struct cpumask *cpumask) __weak __ksym; +extern u32 bpf_cpumask_first_and(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern void bpf_cpumask_set_cpu(u32 cpu, struct bpf_cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_clear_cpu(u32 cpu, struct bpf_cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_test_cpu(u32 cpu, const struct cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_test_and_set_cpu(u32 cpu, struct bpf_cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_test_and_clear_cpu(u32 cpu, struct bpf_cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_setall(struct bpf_cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_clear(struct bpf_cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_and(struct bpf_cpumask *dst, const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern void bpf_cpumask_or(struct bpf_cpumask *dst, const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern void bpf_cpumask_xor(struct bpf_cpumask *dst, const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern bool bpf_cpumask_equal(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern bool bpf_cpumask_intersects(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern bool bpf_cpumask_subset(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern bool bpf_cpumask_empty(const struct cpumask *cpumask) __weak __ksym; +extern bool bpf_cpumask_full(const struct cpumask *cpumask) __weak __ksym; +extern void bpf_cpumask_copy(struct bpf_cpumask *dst, const struct cpumask *src) __weak __ksym; +extern u32 bpf_cpumask_any_distribute(const struct cpumask *cpumask) __weak __ksym; +extern u32 bpf_cpumask_any_and_distribute(const struct cpumask *src1, const struct cpumask *src2) __weak __ksym; +extern u32 bpf_cpumask_weight(const struct cpumask *cpumask) __weak __ksym; +extern struct bpf_crypto_ctx *bpf_crypto_ctx_create(const struct bpf_crypto_params *params, u32 params__sz, int *err) __weak __ksym; +extern void bpf_crypto_ctx_release(struct bpf_crypto_ctx *ctx) __weak __ksym; +extern struct bpf_crypto_ctx *bpf_crypto_ctx_acquire(struct bpf_crypto_ctx *ctx) __weak __ksym; +extern int bpf_crypto_decrypt(struct bpf_crypto_ctx *ctx, const struct bpf_dynptr *src, const struct bpf_dynptr *dst, const struct bpf_dynptr *siv__nullable) __weak __ksym; +extern int bpf_crypto_encrypt(struct bpf_crypto_ctx *ctx, const struct bpf_dynptr *src, const struct bpf_dynptr *dst, const struct bpf_dynptr *siv__nullable) __weak __ksym; +extern struct file *bpf_get_task_exe_file(struct task_struct *task) __weak __ksym; +extern void bpf_put_file(struct file *file) __weak __ksym; +extern int bpf_path_d_path(struct path *path, char *buf, size_t buf__sz) __weak __ksym; +extern int bpf_get_dentry_xattr(struct dentry *dentry, const char *name__str, struct bpf_dynptr *value_p) __weak __ksym; +extern int bpf_get_file_xattr(struct file *file, const char *name__str, struct bpf_dynptr *value_p) __weak __ksym; +extern int bpf_dynptr_from_skb(struct __sk_buff *s, u64 flags, struct bpf_dynptr *ptr__uninit) __weak __ksym; +extern int bpf_dynptr_from_xdp(struct xdp_md *x, u64 flags, struct bpf_dynptr *ptr__uninit) __weak __ksym; +extern int bpf_sock_addr_set_sun_path(struct bpf_sock_addr_kern *sa_kern, const u8 *sun_path, u32 sun_path__sz) __weak __ksym; +extern int bpf_sk_assign_tcp_reqsk(struct __sk_buff *s, struct sock *sk, struct bpf_tcp_req_attrs *attrs, int attrs__sz) __weak __ksym; +extern int bpf_sock_destroy(struct sock_common *sock) __weak __ksym; +extern int bpf_xdp_metadata_rx_timestamp(const struct xdp_md *ctx, u64 *timestamp) __weak __ksym; +extern int bpf_xdp_metadata_rx_hash(const struct xdp_md *ctx, u32 *hash, enum xdp_rss_hash_type *rss_type) __weak __ksym; +extern int bpf_xdp_metadata_rx_vlan_tag(const struct xdp_md *ctx, __be16 *vlan_proto, u16 *vlan_tci) __weak __ksym; +extern int bpf_modify_return_test(int a, int *b) __weak __ksym; +extern int bpf_modify_return_test2(int a, int *b, short int c, int d, void *e, char f, int g) __weak __ksym; +extern int bpf_fentry_test1(int a) __weak __ksym; +extern void bpf_kfunc_call_test_release(struct prog_test_ref_kfunc *p) __weak __ksym; +extern void bpf_kfunc_call_memb_release(struct prog_test_member *p) __weak __ksym; +extern struct nf_conn___init *bpf_xdp_ct_alloc(struct xdp_md *xdp_ctx, struct bpf_sock_tuple *bpf_tuple, u32 tuple__sz, struct bpf_ct_opts *opts, u32 opts__sz) __weak __ksym; +extern struct nf_conn *bpf_xdp_ct_lookup(struct xdp_md *xdp_ctx, struct bpf_sock_tuple *bpf_tuple, u32 tuple__sz, struct bpf_ct_opts *opts, u32 opts__sz) __weak __ksym; +extern struct nf_conn___init *bpf_skb_ct_alloc(struct __sk_buff *skb_ctx, struct bpf_sock_tuple *bpf_tuple, u32 tuple__sz, struct bpf_ct_opts *opts, u32 opts__sz) __weak __ksym; +extern struct nf_conn *bpf_skb_ct_lookup(struct __sk_buff *skb_ctx, struct bpf_sock_tuple *bpf_tuple, u32 tuple__sz, struct bpf_ct_opts *opts, u32 opts__sz) __weak __ksym; +extern struct nf_conn *bpf_ct_insert_entry(struct nf_conn___init *nfct_i) __weak __ksym; +extern void bpf_ct_release(struct nf_conn *nfct) __weak __ksym; +extern void bpf_ct_set_timeout(struct nf_conn___init *nfct, u32 timeout) __weak __ksym; +extern int bpf_ct_change_timeout(struct nf_conn *nfct, u32 timeout) __weak __ksym; +extern int bpf_ct_set_status(const struct nf_conn___init *nfct, u32 status) __weak __ksym; +extern int bpf_ct_change_status(struct nf_conn *nfct, u32 status) __weak __ksym; +extern int bpf_skb_set_fou_encap(struct __sk_buff *skb_ctx, struct bpf_fou_encap *encap, int type) __weak __ksym; +extern int bpf_skb_get_fou_encap(struct __sk_buff *skb_ctx, struct bpf_fou_encap *encap) __weak __ksym; +extern void cubictcp_init(struct sock *sk) __weak __ksym; +extern u32 cubictcp_recalc_ssthresh(struct sock *sk) __weak __ksym; +extern void cubictcp_cong_avoid(struct sock *sk, u32 ack, u32 acked) __weak __ksym; +extern void cubictcp_state(struct sock *sk, u8 new_state) __weak __ksym; +extern void cubictcp_cwnd_event(struct sock *sk, enum tcp_ca_event event) __weak __ksym; +extern void cubictcp_acked(struct sock *sk, const struct ack_sample *sample) __weak __ksym; +extern u32 tcp_reno_ssthresh(struct sock *sk) __weak __ksym; +extern void tcp_reno_cong_avoid(struct sock *sk, u32 ack, u32 acked) __weak __ksym; +extern u32 tcp_reno_undo_cwnd(struct sock *sk) __weak __ksym; +extern u32 tcp_slow_start(struct tcp_sock *tp, u32 acked) __weak __ksym; +extern void tcp_cong_avoid_ai(struct tcp_sock *tp, u32 w, u32 acked) __weak __ksym; +extern struct xfrm_state *bpf_xdp_get_xfrm_state(struct xdp_md *ctx, struct bpf_xfrm_state_opts *opts, u32 opts__sz) __weak __ksym; +extern void bpf_xdp_xfrm_state_release(struct xfrm_state *x) __weak __ksym; +#endif #ifndef BPF_NO_PRESERVE_ACCESS_INDEX #pragma clang attribute pop