From 6223ad4c14004e5b5ac884b9ca483bdfeb0b9d0c Mon Sep 17 00:00:00 2001 From: simonami99 Date: Thu, 17 Oct 2024 06:38:02 +0000 Subject: [PATCH] Merge branch 'android15-6.6-lts' v6.6.50 into HEAD Merge commit 'ffff4c673ce12ba924ef82848f1a35dea5330c5f' into HEAD Signed-off-by: simonami99 --- BUILD.bazel | 22 + android/abi_gki_aarch64.stg | 3506 +++++++++++++++++ android/abi_gki_aarch64_db845c | 3 + android/abi_gki_aarch64_honor | 82 + android/abi_gki_aarch64_imx | 80 + android/abi_gki_aarch64_mtk | 1 + android/abi_gki_aarch64_pixel | 1 + android/abi_gki_aarch64_qcom | 1 + android/abi_gki_aarch64_unisoc | 61 + android/abi_gki_aarch64_vivo | 4 + android/abi_gki_aarch64_xiaomi | 4 + arch/arm64/include/asm/kvm_pkvm_module.h | 6 +- arch/arm64/kvm/hyp/nvhe/hyp-init.S | 2 +- arch/arm64/kvm/hyp/nvhe/tlb.c | 6 +- arch/arm64/kvm/hyp/pgtable.c | 28 +- arch/arm64/kvm/mmu.c | 7 +- arch/arm64/tools/cpucaps | 2 +- arch/x86/crypto/TEST_MAPPING | 10 + arch/x86/include/asm/TEST_MAPPING | 10 + arch/x86/kernel/fpu/TEST_MAPPING | 10 + block/TEST_MAPPING | 10 + drivers/android/TEST_MAPPING | 10 + drivers/android/binder.c | 1 + drivers/android/binder_alloc.c | 2 - drivers/android/vendor_hooks.c | 45 + drivers/base/TEST_MAPPING | 10 + drivers/block/TEST_MAPPING | 10 + drivers/char/TEST_MAPPING | 10 + drivers/cpufreq/TEST_MAPPING | 10 + drivers/dma-buf/TEST_MAPPING | 10 + .../iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c | 42 +- .../iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c | 49 +- drivers/iommu/io-pgtable-arm-common.c | 3 +- drivers/md/TEST_MAPPING | 10 + drivers/net/TEST_MAPPING | 10 + drivers/pmdomain/arm/scmi_perf_domain.c | 5 +- drivers/thermal/gov_power_allocator.c | 2 + drivers/ufs/core/ufshcd.c | 39 +- drivers/usb/gadget/function/uvc_video.c | 4 +- drivers/virt/gunyah/vm_mgr_mem.c | 14 +- drivers/virtio/TEST_MAPPING | 10 + fs/TEST_MAPPING | 8 + fs/ceph/inode.c | 2 + fs/proc/task_mmu.c | 4 +- include/asm-generic/TEST_MAPPING | 10 + include/crypto/TEST_MAPPING | 10 + include/drm/TEST_MAPPING | 10 + include/linux/TEST_MAPPING | 10 + include/linux/huge_mm.h | 29 +- include/linux/ksm.h | 6 +- include/linux/oom.h | 2 + include/linux/perf_event.h | 1 - include/linux/rmap.h | 4 +- include/linux/sbitmap.h | 5 - include/linux/swap.h | 3 - include/linux/zswap.h | 6 + include/net/TEST_MAPPING | 10 + include/net/xfrm.h | 36 +- include/trace/TEST_MAPPING | 10 + include/trace/hooks/mm.h | 15 + include/trace/hooks/net.h | 6 + include/trace/hooks/ogki_honor.h | 123 + include/trace/hooks/signal.h | 3 + include/trace/hooks/wqlockup.h | 10 + include/ufs/ufshcd.h | 7 +- kernel/bpf/TEST_MAPPING | 10 + kernel/cgroup/TEST_MAPPING | 10 + kernel/cgroup/cpuset.c | 2 + kernel/dma/TEST_MAPPING | 10 + kernel/events/core.c | 38 +- kernel/events/uprobes.c | 2 +- kernel/rcu/tree_nocb.h | 5 +- kernel/sched/TEST_MAPPING | 10 + kernel/signal.c | 11 +- kernel/time/tick-common.c | 6 +- kernel/time/tick-sched.c | 37 +- kernel/workqueue.c | 17 + lib/sbitmap.c | 36 +- mm/TEST_MAPPING | 10 + mm/folio-compat.c | 16 - mm/huge_memory.c | 35 +- mm/khugepaged.c | 31 +- mm/ksm.c | 21 +- mm/madvise.c | 4 + mm/memcontrol.c | 1 + mm/memory.c | 53 +- mm/memremap.c | 18 +- mm/migrate_device.c | 23 +- mm/oom_kill.c | 30 +- mm/page_alloc.c | 15 +- mm/rmap.c | 49 +- mm/swapfile.c | 65 +- mm/truncate.c | 1 + mm/userfaultfd.c | 16 +- mm/vmscan.c | 2 +- mm/zswap.c | 10 + net/TEST_MAPPING | 10 + net/ipv4/af_inet.c | 3 +- net/ipv4/tcp.c | 2 + net/ipv4/tcp_input.c | 15 +- net/ipv4/udp.c | 2 + net/ipv6/af_inet6.c | 3 +- net/socket.c | 3 + net/xfrm/xfrm_state.c | 62 +- 104 files changed, 4726 insertions(+), 450 deletions(-) create mode 100644 include/trace/hooks/ogki_honor.h diff --git a/BUILD.bazel b/BUILD.bazel index 85e2f59831ea..9a5947de47f2 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -876,6 +876,24 @@ ddk_headers( # Implementation details for DDK headers. The targets below cannot be directly # depended on by DDK modules. +# Headers needed to include drivers/usb/host/xhci.h. +ddk_headers( + name = "xhci_headers", + hdrs = [ + "drivers/usb/core/hub.h", + "drivers/usb/core/usb.h", + "drivers/usb/host/pci-quirks.h", + "drivers/usb/host/xhci.h", + "drivers/usb/host/xhci-ext-caps.h", + "drivers/usb/host/xhci-plat.h", + ], + linux_includes = [ + "drivers/usb", + "drivers/usb/host", + ], + visibility = ["//visibility:private"], +) + # DDK headers allowlist. This is the list of all headers and include # directories that are safe to use in DDK modules. ddk_headers( @@ -883,8 +901,11 @@ ddk_headers( hdrs = [ "drivers/thermal/thermal_core.h", "drivers/thermal/thermal_netlink.h", + "sound/usb/card.h", + "sound/usb/usbaudio.h", ":all_headers_allowlist_aarch64_globs", ":all_headers_allowlist_common_globs", + ":xhci_headers", ], # The list of include directories where source files can #include headers # from. In other words, these are the `-I` option to the C compiler. @@ -893,6 +914,7 @@ ddk_headers( "arch/arm64/include", "arch/arm64/include/uapi", "drivers/thermal", + "sound/usb", "include", "include/uapi", ], diff --git a/android/abi_gki_aarch64.stg b/android/abi_gki_aarch64.stg index 647f16bee809..9894eee27790 100644 --- a/android/abi_gki_aarch64.stg +++ b/android/abi_gki_aarch64.stg @@ -1313,6 +1313,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x38da44ec } +pointer_reference { + id: 0x04a9576c + kind: POINTER + pointee_type_id: 0x38e5bb2f +} pointer_reference { id: 0x04ac88c5 kind: POINTER @@ -3533,6 +3538,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x1a840b6a } +pointer_reference { + id: 0x0c32f89e + kind: POINTER + pointee_type_id: 0x1a8b04e5 +} pointer_reference { id: 0x0c333e09 kind: POINTER @@ -8213,6 +8223,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x6b752d98 } +pointer_reference { + id: 0x10504678 + kind: POINTER + pointee_type_id: 0x6b01ff7f +} pointer_reference { id: 0x1058a3c5 kind: POINTER @@ -9238,6 +9253,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x7c95d721 } +pointer_reference { + id: 0x15c24728 + kind: POINTER + pointee_type_id: 0x7d49fa3c +} pointer_reference { id: 0x15c389f6 kind: POINTER @@ -10683,6 +10703,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x45a8a3c4 } +pointer_reference { + id: 0x1bfb2a60 + kind: POINTER + pointee_type_id: 0x45ac4f1e +} pointer_reference { id: 0x1c02c393 kind: POINTER @@ -11733,6 +11758,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x5436403f } +pointer_reference { + id: 0x1f9fd074 + kind: POINTER + pointee_type_id: 0x543fa74f +} pointer_reference { id: 0x1fa347d9 kind: POINTER @@ -12998,6 +13028,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xbe4cc7ee } +pointer_reference { + id: 0x2511a6f5 + kind: POINTER + pointee_type_id: 0xbe067d4b +} pointer_reference { id: 0x2517bcb9 kind: POINTER @@ -27748,6 +27783,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xc8994ffb } +pointer_reference { + id: 0x38bb4688 + kind: POINTER + pointee_type_id: 0xc8adfcbd +} pointer_reference { id: 0x38bc670e kind: POINTER @@ -29103,6 +29143,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xc50f0744 } +pointer_reference { + id: 0x3bd482ed + kind: POINTER + pointee_type_id: 0xc512ed2b +} pointer_reference { id: 0x3bd6fa3a kind: POINTER @@ -29628,6 +29673,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xd99c0331 } +pointer_reference { + id: 0x3cf9dfcf + kind: POINTER + pointee_type_id: 0xd9a799a2 +} pointer_reference { id: 0x3cfc8982 kind: POINTER @@ -31488,6 +31538,11 @@ typedef { name: "cisco_proto" referred_type_id: 0x0a19ea99 } +typedef { + id: 0x70239517 + name: "clock_t" + referred_type_id: 0xe3186d0a +} typedef { id: 0x4478ba6b name: "clockid_t" @@ -33618,6 +33673,11 @@ qualified { qualifier: CONST qualified_type_id: 0x639c2545 } +qualified { + id: 0xc512ed2b + qualifier: CONST + qualified_type_id: 0x640c0226 +} qualified { id: 0xc5274ab2 qualifier: CONST @@ -34863,6 +34923,11 @@ qualified { qualifier: CONST qualified_type_id: 0x1637ba4d } +qualified { + id: 0xd9a799a2 + qualifier: CONST + qualified_type_id: 0x16d9d002 +} qualified { id: 0xda23a084 qualifier: CONST @@ -37796,6 +37861,11 @@ array { number_of_elements: 64 element_type_id: 0x295c7202 } +array { + id: 0x3a8e7b26 + number_of_elements: 3 + element_type_id: 0xa12e384a +} array { id: 0x3b24b1ed number_of_elements: 20 @@ -38761,6 +38831,11 @@ array { number_of_elements: 256 element_type_id: 0x2eab5b8a } +array { + id: 0x729479be + number_of_elements: 2 + element_type_id: 0x78f4e574 +} array { id: 0x7392269c number_of_elements: 60 @@ -39201,6 +39276,11 @@ array { number_of_elements: 4 element_type_id: 0x0c47e7d1 } +array { + id: 0x8fb3c5ee + number_of_elements: 1 + element_type_id: 0xe9e88d93 +} array { id: 0x8fc04f2a number_of_elements: 600 @@ -39636,6 +39716,11 @@ array { number_of_elements: 4 element_type_id: 0xe62ebf07 } +array { + id: 0xb637307e + number_of_elements: 4 + element_type_id: 0xe9e88d93 +} array { id: 0xb6bc1f4d number_of_elements: 17 @@ -47206,6 +47291,13 @@ member { type_id: 0x901eaf6a offset: 43528 } +member { + id: 0xec6d552f + name: "advanced" + type_id: 0x295c7202 + offset: 174 + bitsize: 1 +} member { id: 0x686a7031 name: "advertised" @@ -47271,6 +47363,12 @@ member { type_id: 0x6d7f5ff6 offset: 54784 } +member { + id: 0x1d389d44 + name: "advmss" + type_id: 0x914dbfdc + offset: 13760 +} member { id: 0x59bfd6c9 name: "aead" @@ -48662,6 +48760,12 @@ member { type_id: 0x92233392 offset: 7488 } +member { + id: 0x2d081161 + name: "android_kabi_reserved1" + type_id: 0x92233392 + offset: 19008 +} member { id: 0x2d08116a name: "android_kabi_reserved1" @@ -50910,6 +51014,12 @@ member { type_id: 0x92233392 offset: 320 } +member { + id: 0xd671c193 + name: "android_oem_data1" + type_id: 0x92233392 + offset: 18944 +} member { id: 0xd671c19a name: "android_oem_data1" @@ -51348,6 +51458,12 @@ member { type_id: 0x6d7f5ff6 offset: 136 } +member { + id: 0x48499c9d + name: "app_limited" + type_id: 0xc9082b19 + offset: 15392 +} member { id: 0x422c45dc name: "app_rsts" @@ -57540,6 +57656,13 @@ member { type_id: 0x2f6ef74a offset: 14912 } +member { + id: 0xf5c4330d + name: "bpf_chg_cc_inprogress" + type_id: 0x295c7202 + offset: 18280 + bitsize: 1 +} member { id: 0xa9117c13 name: "bpf_cookie" @@ -57610,6 +57733,12 @@ member { type_id: 0xc9082b19 offset: 33920 } +member { + id: 0xa68610ed + name: "bpf_sock_ops_cb_flags" + type_id: 0x295c7202 + offset: 18272 +} member { id: 0xede39fd1 name: "bpf_storage" @@ -59869,6 +59998,12 @@ member { type_id: 0xf435685e offset: 320 } +member { + id: 0x3ed6f46c + name: "bytes_acked" + type_id: 0x92233392 + offset: 12736 +} member { id: 0x4d36c98b name: "bytes_ext_ops" @@ -59898,12 +60033,30 @@ member { type_id: 0xf435685e offset: 128 } +member { + id: 0xda945faa + name: "bytes_received" + type_id: 0x92233392 + offset: 12352 +} +member { + id: 0xd77f296e + name: "bytes_retrans" + type_id: 0x92233392 + offset: 18048 +} member { id: 0xf2787e23 name: "bytes_rx" type_id: 0x3a3eb2f9 offset: 512 } +member { + id: 0x840adfe0 + name: "bytes_sent" + type_id: 0x92233392 + offset: 12672 +} member { id: 0x8cf55cde name: "bytes_transferred" @@ -63635,6 +63788,25 @@ member { type_id: 0xe62ebf07 offset: 160 } +member { + id: 0x6c307cf4 + name: "chrono_start" + type_id: 0xc9082b19 + offset: 13792 +} +member { + id: 0x4b0fd9ce + name: "chrono_stat" + type_id: 0x2087fff2 + offset: 13824 +} +member { + id: 0x5514b182 + name: "chrono_type" + type_id: 0x295c7202 + offset: 13920 + bitsize: 2 +} member { id: 0x0c0ce077 name: "chunk_mask" @@ -67055,6 +67227,24 @@ member { type_id: 0x6d7f5ff6 offset: 672 } +member { + id: 0x4aed4889 + name: "compressed_ack" + type_id: 0x295c7202 + offset: 13776 +} +member { + id: 0x036494f3 + name: "compressed_ack_rcv_nxt" + type_id: 0xc9082b19 + offset: 12992 +} +member { + id: 0xe98a4097 + name: "compressed_ack_timer" + type_id: 0xcd7704bf + offset: 16384 +} member { id: 0xfb567eb3 name: "compressed_header_size" @@ -68338,6 +68528,11 @@ member { type_id: 0x0fec2355 offset: 64 } +member { + id: 0x5846e373 + name: "cookie" + type_id: 0x0cb73b55 +} member { id: 0x5852e92d name: "cookie" @@ -68424,6 +68619,18 @@ member { type_id: 0xedf277ba offset: 192 } +member { + id: 0x5414dc08 + name: "copied" + type_id: 0x6720d32f + offset: 320 +} +member { + id: 0x1ec2d3d6 + name: "copied_seq" + type_id: 0xc9082b19 + offset: 12512 +} member { id: 0x58138131 name: "copied_timestamp" @@ -72029,6 +72236,12 @@ member { type_id: 0x0f9357d8 offset: 192 } +member { + id: 0xd7cfb6af + name: "cwnd_usage_seq" + type_id: 0xc9082b19 + offset: 14656 +} member { id: 0x09c4ee83 name: "cwriter" @@ -73191,6 +73404,12 @@ member { type_id: 0x29de0844 offset: 64 } +member { + id: 0xffbef712 + name: "data" + type_id: 0x2cdbb77a + offset: 192 +} member { id: 0xffc40278 name: "data" @@ -73527,6 +73746,18 @@ member { type_id: 0x7584e7da offset: 80 } +member { + id: 0x7ecbe350 + name: "data_segs_in" + type_id: 0xc9082b19 + offset: 12448 +} +member { + id: 0xdb2f5379 + name: "data_segs_out" + type_id: 0xc9082b19 + offset: 12640 +} member { id: 0x9e8ccb80 name: "data_shift" @@ -75469,12 +75700,24 @@ member { type_id: 0x6d7f5ff6 offset: 480 } +member { + id: 0x986cabcf + name: "delivered" + type_id: 0xc9082b19 + offset: 15296 +} member { id: 0x9871b666 name: "delivered" type_id: 0xd41e888f offset: 128 } +member { + id: 0xe067849e + name: "delivered_ce" + type_id: 0xc9082b19 + offset: 15328 +} member { id: 0xe07a91f0 name: "delivered_ce" @@ -75487,6 +75730,12 @@ member { type_id: 0xd3c80119 offset: 3008 } +member { + id: 0xc6e15a21 + name: "delivered_mstamp" + type_id: 0x92233392 + offset: 15488 +} member { id: 0xb36073d0 name: "dellink" @@ -82313,6 +82562,26 @@ member { name: "dsa" type_id: 0x0a5c3627 } +member { + id: 0x09aae020 + name: "dsack" + type_id: 0x914dbfdc + offset: 130 + bitsize: 1 +} +member { + id: 0x7efdf5c5 + name: "dsack_dups" + type_id: 0xc9082b19 + offset: 12800 +} +member { + id: 0x28f28f83 + name: "dsack_seen" + type_id: 0x295c7202 + offset: 173 + bitsize: 1 +} member { id: 0x3c3a76c5 name: "dsc" @@ -83064,6 +83333,13 @@ member { type_id: 0x2f2aa245 offset: 64 } +member { + id: 0x330d88ab + name: "dup_ack_counter" + type_id: 0x295c7202 + offset: 13784 + bitsize: 2 +} member { id: 0x74874671 name: "dup_xol_addr" @@ -83111,6 +83387,12 @@ member { type_id: 0x2a0a605f offset: 960 } +member { + id: 0xac4c8189 + name: "duplicate_sack" + type_id: 0x8fb3c5ee + offset: 17216 +} member { id: 0xe631c0e0 name: "duplicated" @@ -83629,6 +83911,12 @@ member { type_id: 0x0f0ac0ac offset: 576 } +member { + id: 0x3dfa7e83 + name: "ecn_flags" + type_id: 0x295c7202 + offset: 14704 +} member { id: 0xd4971fcb name: "ed" @@ -85390,6 +85678,18 @@ member { type_id: 0x92233392 offset: 64 } +member { + id: 0xd5a56009 + name: "end_seq" + type_id: 0xc9082b19 + offset: 32 +} +member { + id: 0xd5a564b1 + name: "end_seq" + type_id: 0xc9082b19 + offset: 96 +} member { id: 0x357800a2 name: "end_station" @@ -87927,6 +88227,12 @@ member { type_id: 0x92233392 offset: 7040 } +member { + id: 0x9633fcdf + name: "exp" + type_id: 0x6d7f5ff6 + offset: 136 +} member { id: 0x964efc36 name: "exp" @@ -89291,6 +89597,39 @@ member { type_id: 0x0d53cd40 offset: 192 } +member { + id: 0xa42f589c + name: "fastopen_client_fail" + type_id: 0x295c7202 + offset: 13926 + bitsize: 2 +} +member { + id: 0x5d29fee1 + name: "fastopen_connect" + type_id: 0x295c7202 + offset: 13923 + bitsize: 1 +} +member { + id: 0x72c8bb67 + name: "fastopen_no_cookie" + type_id: 0x295c7202 + offset: 13924 + bitsize: 1 +} +member { + id: 0x3491077d + name: "fastopen_req" + type_id: 0x04a9576c + offset: 18752 +} +member { + id: 0x7a4a9c6d + name: "fastopen_rsk" + type_id: 0x27847a9a + offset: 18816 +} member { id: 0x5aaa76bb name: "fastopenq" @@ -92139,6 +92478,12 @@ member { type_id: 0x22ee8bee offset: 6720 } +member { + id: 0xc8ee4a83 + name: "first_tx_mstamp" + type_id: 0x92233392 + offset: 15424 +} member { id: 0x7fb051f9 name: "firstuse" @@ -96512,6 +96857,13 @@ member { type_id: 0x0c884220 offset: 384 } +member { + id: 0xdaf76cc3 + name: "frto" + type_id: 0x295c7202 + offset: 13935 + bitsize: 1 +} member { id: 0x9442b15a name: "fs" @@ -101051,6 +101403,12 @@ member { type_id: 0x2584a3b9 offset: 2304 } +member { + id: 0x085eba8a + name: "gso_segs" + type_id: 0x914dbfdc + offset: 12304 +} member { id: 0xeaa4b2c9 name: "gso_size" @@ -103448,6 +103806,12 @@ member { type_id: 0x5395485e offset: 3840 } +member { + id: 0x60f3e74f + name: "high_seq" + type_id: 0xc9082b19 + offset: 17920 +} member { id: 0x15795ada name: "high_speed" @@ -103484,6 +103848,12 @@ member { type_id: 0x3b04bc55 offset: 12992 } +member { + id: 0x6da31b8c + name: "highest_sack" + type_id: 0x054f691a + offset: 17792 +} member { id: 0x2ca966e1 name: "highest_zoneidx" @@ -107880,6 +108250,11 @@ member { name: "idr_rt" type_id: 0x80c20070 } +member { + id: 0x639387b1 + name: "idrinfo" + type_id: 0x3442a45d +} member { id: 0x63938e73 name: "idrinfo" @@ -109603,6 +109978,11 @@ member { type_id: 0x1d33485a offset: 4992 } +member { + id: 0x07676cab + name: "inet_conn" + type_id: 0x82dbb487 +} member { id: 0xa990b1f8 name: "inet_flags" @@ -114510,6 +114890,13 @@ member { type_id: 0x6d7f5ff6 offset: 480 } +member { + id: 0xb9645382 + name: "is_cwnd_limited" + type_id: 0x295c7202 + offset: 13951 + bitsize: 1 +} member { id: 0x454d5b37 name: "is_dead" @@ -115014,6 +115401,13 @@ member { type_id: 0x6d7f5ff6 offset: 968 } +member { + id: 0xb9f122ca + name: "is_sack_reneg" + type_id: 0x295c7202 + offset: 13925 + bitsize: 1 +} member { id: 0x7855a324 name: "is_second_field" @@ -116054,6 +116448,24 @@ member { type_id: 0x0f054e36 offset: 704 } +member { + id: 0xb4c1afb7 + name: "keepalive_intvl" + type_id: 0x4585663f + offset: 18208 +} +member { + id: 0xeb2f3a60 + name: "keepalive_probes" + type_id: 0x295c7202 + offset: 14712 +} +member { + id: 0x9e7c1d4e + name: "keepalive_time" + type_id: 0x4585663f + offset: 18176 +} member { id: 0x3f65622e name: "keepout" @@ -116368,6 +116780,11 @@ member { type_id: 0x674028f7 offset: 832 } +member { + id: 0x8ea8c4ec + name: "key_id" + type_id: 0x405d0abf +} member { id: 0x16578008 name: "key_is_private" @@ -117693,6 +118110,12 @@ member { type_id: 0x92233392 offset: 2624 } +member { + id: 0x8762b004 + name: "last_delivered" + type_id: 0xc9082b19 + offset: 128 +} member { id: 0x555f8d7e name: "last_dir" @@ -117936,6 +118359,12 @@ member { type_id: 0x33756485 offset: 128 } +member { + id: 0x41099e1a + name: "last_oow_ack_time" + type_id: 0xc9082b19 + offset: 12960 +} member { id: 0x1f45cde6 name: "last_period" @@ -119109,6 +119538,12 @@ member { offset: 19 bitsize: 8 } +member { + id: 0xb82c6bed + name: "len" + type_id: 0x29b77961 + offset: 128 +} member { id: 0xb82c8b76 name: "len" @@ -120118,6 +120553,12 @@ member { type_id: 0x33756485 offset: 320 } +member { + id: 0x0ab38055 + name: "linger2" + type_id: 0x6720d32f + offset: 18240 +} member { id: 0x55610d26 name: "link" @@ -122805,6 +123246,18 @@ member { type_id: 0x33756485 offset: 832 } +member { + id: 0x14a579bc + name: "lost" + type_id: 0xc9082b19 + offset: 15360 +} +member { + id: 0x36a89888 + name: "lost_cnt_hint" + type_id: 0x6720d32f + offset: 17856 +} member { id: 0xc431d695 name: "lost_events" @@ -122833,12 +123286,24 @@ member { name: "lost_msgs" type_id: 0x6f3d464c } +member { + id: 0x2d8727b7 + name: "lost_out" + type_id: 0xc9082b19 + offset: 15744 +} member { id: 0xa0d3ef20 name: "lost_samples" type_id: 0x1f4573ef offset: 7936 } +member { + id: 0x86cd9b15 + name: "lost_skb_hint" + type_id: 0x054f691a + offset: 16960 +} member { id: 0xe4294f6c name: "low" @@ -123257,6 +123722,12 @@ member { type_id: 0x4585663f offset: 32 } +member { + id: 0xcaaa728e + name: "lsndtime" + type_id: 0xc9082b19 + offset: 12928 +} member { id: 0xabed4509 name: "lsr_save_mask" @@ -126940,6 +127411,12 @@ member { type_id: 0x4585663f offset: 96 } +member { + id: 0x1d3400c9 + name: "max_packets_out" + type_id: 0xc9082b19 + offset: 14624 +} member { id: 0xc09a431c name: "max_page" @@ -127962,6 +128439,12 @@ member { type_id: 0xc9082b19 offset: 2048 } +member { + id: 0xb0b5b654 + name: "max_window" + type_id: 0xc9082b19 + offset: 13376 +} member { id: 0x140a6e58 name: "max_wq_type_rq" @@ -128788,6 +129271,18 @@ member { type_id: 0x16239d0c offset: 64 } +member { + id: 0xf098db18 + name: "mdev_max_us" + type_id: 0xc9082b19 + offset: 14272 +} +member { + id: 0x00d04fe9 + name: "mdev_us" + type_id: 0xc9082b19 + offset: 14240 +} member { id: 0xc96faa23 name: "mdio" @@ -133728,6 +134223,23 @@ member { type_id: 0x914dbfdc offset: 1152 } +member { + id: 0x8571ffda + name: "mss_cache" + type_id: 0xc9082b19 + offset: 13408 +} +member { + id: 0x5ddbff68 + name: "mss_clamp" + type_id: 0x914dbfdc + offset: 176 +} +member { + id: 0xf3d1e1b3 + name: "mstamp" + type_id: 0x92233392 +} member { id: 0xeb62513d name: "mt" @@ -133811,6 +134323,18 @@ member { type_id: 0x0faae5b1 offset: 64 } +member { + id: 0x36410b0b + name: "mtu_info" + type_id: 0xc9082b19 + offset: 18720 +} +member { + id: 0x541b500d + name: "mtu_probe" + type_id: 0x0904167f + offset: 18624 +} member { id: 0x2e3a46f9 name: "mtu_reduced" @@ -139279,6 +139803,13 @@ member { offset: 86 bitsize: 1 } +member { + id: 0xa073f1ab + name: "nonagle" + type_id: 0x295c7202 + offset: 13928 + bitsize: 4 +} member { id: 0x5cf54475 name: "nonatomic" @@ -139668,6 +140199,12 @@ member { type_id: 0xb381c899 offset: 1152 } +member { + id: 0xfdfb543e + name: "notsent_lowat" + type_id: 0xc9082b19 + offset: 15680 +} member { id: 0xf8489542 name: "now_frame" @@ -142559,6 +143096,12 @@ member { type_id: 0x4585663f offset: 6336 } +member { + id: 0x7cf21fa8 + name: "num_sacks" + type_id: 0x295c7202 + offset: 152 +} member { id: 0xbcb6b731 name: "num_sample_rates" @@ -144044,6 +144587,12 @@ member { type_id: 0xc9082b19 offset: 96 } +member { + id: 0x9be8ed4d + name: "offset" + type_id: 0xf435685e + offset: 64 +} member { id: 0x9beaae82 name: "offset" @@ -144595,6 +145144,12 @@ member { type_id: 0xb0312d5a offset: 7776 } +member { + id: 0x78ec3cd1 + name: "ooo_last_skb" + type_id: 0x054f691a + offset: 17152 +} member { id: 0xdfd3d3d5 name: "ooo_okay" @@ -145250,6 +145805,12 @@ member { name: "ops" type_id: 0x3a40dd6c } +member { + id: 0xafb1449f + name: "ops" + type_id: 0x3a40dd6c + offset: 64 +} member { id: 0xafb144a9 name: "ops" @@ -146521,6 +147082,12 @@ member { type_id: 0x295c7202 offset: 1088 } +member { + id: 0x0b88a2f9 + name: "out_of_order_queue" + type_id: 0xeb923a9b + offset: 17088 +} member { id: 0x21d1ea91 name: "out_q_ctx" @@ -147617,6 +148184,12 @@ member { name: "p_vp9_frame" type_id: 0x1f6d4933 } +member { + id: 0xb18c6424 + name: "pacing_timer" + type_id: 0xcd7704bf + offset: 15808 +} member { id: 0xa9322d92 name: "pack_id" @@ -147693,6 +148266,12 @@ member { type_id: 0xe62ebf07 offset: 64 } +member { + id: 0xfdbc848d + name: "packets_out" + type_id: 0xc9082b19 + offset: 14560 +} member { id: 0xdbefe5f2 name: "packsize" @@ -153094,6 +153673,12 @@ member { offset: 1153 bitsize: 1 } +member { + id: 0x8201bd6f + name: "plb_rehash" + type_id: 0xc9082b19 + offset: 18688 +} member { id: 0xacd4ccce name: "plen" @@ -155973,6 +156558,12 @@ member { type_id: 0x39470e64 offset: 448 } +member { + id: 0xfcce6b61 + name: "pred_flags" + type_id: 0xe276adef + offset: 12320 +} member { id: 0xd9582306 name: "pred_probs" @@ -156956,6 +157547,12 @@ member { type_id: 0xc9082b19 offset: 128 } +member { + id: 0xa9ca3d48 + name: "prior_cwnd" + type_id: 0xc9082b19 + offset: 15200 +} member { id: 0x8be7c123 name: "prior_delivered" @@ -156979,6 +157576,12 @@ member { name: "prior_mstamp" type_id: 0x92233392 } +member { + id: 0x17b8fd63 + name: "prior_ssthresh" + type_id: 0xc9082b19 + offset: 17888 +} member { id: 0x10027c29 name: "priority" @@ -158058,6 +158661,17 @@ member { type_id: 0xc9082b19 offset: 2208 } +member { + id: 0x934c941a + name: "probe_seq_end" + type_id: 0xc9082b19 + offset: 32 +} +member { + id: 0x45320605 + name: "probe_seq_start" + type_id: 0xc9082b19 +} member { id: 0x745418c4 name: "probe_size" @@ -159387,6 +160001,18 @@ member { type_id: 0xd298e888 offset: 4480 } +member { + id: 0x3ce5a1a5 + name: "prr_delivered" + type_id: 0xc9082b19 + offset: 15232 +} +member { + id: 0xe9e7b9b9 + name: "prr_out" + type_id: 0xc9082b19 + offset: 15264 +} member { id: 0x282acc7e name: "prrr" @@ -159989,6 +160615,12 @@ member { type_id: 0xae1656c9 offset: 13184 } +member { + id: 0xa598a60a + name: "pushed_seq" + type_id: 0xc9082b19 + offset: 15712 +} member { id: 0x4ac85a2c name: "put" @@ -161608,6 +162240,12 @@ member { type_id: 0x33756485 offset: 384 } +member { + id: 0x2c2c5fba + name: "rack" + type_id: 0xd4132c46 + offset: 13568 +} member { id: 0x7a85796a name: "radar_detect_regions" @@ -161966,6 +162604,13 @@ member { type_id: 0x33756485 offset: 192 } +member { + id: 0xd6330fb5 + name: "rate_app_limited" + type_id: 0x295c7202 + offset: 13922 + bitsize: 1 +} member { id: 0x94569300 name: "rate_bytes_ps" @@ -161995,6 +162640,12 @@ member { type_id: 0xe62ebf07 offset: 2144 } +member { + id: 0x18e68e5d + name: "rate_delivered" + type_id: 0xc9082b19 + offset: 15552 +} member { id: 0x0f313303 name: "rate_den" @@ -162019,6 +162670,12 @@ member { type_id: 0x295c7202 offset: 104 } +member { + id: 0x47a615a2 + name: "rate_interval_us" + type_id: 0xc9082b19 + offset: 15584 +} member { id: 0x7f7f5ff7 name: "rate_leaf_parent_set" @@ -163211,6 +163868,18 @@ member { type_id: 0xe8034002 offset: 176 } +member { + id: 0x722b8728 + name: "rcv_nxt" + type_id: 0xc9082b19 + offset: 12480 +} +member { + id: 0x3a366983 + name: "rcv_ooopack" + type_id: 0xc9082b19 + offset: 18304 +} member { id: 0xd699ecd4 name: "rcv_probes_mcast" @@ -163223,23 +163892,84 @@ member { type_id: 0x33756485 offset: 448 } +member { + id: 0x035a9333 + name: "rcv_rtt_est" + type_id: 0x13c65297 + offset: 18368 +} +member { + id: 0xcebd1d31 + name: "rcv_rtt_last_tsecr" + type_id: 0xc9082b19 + offset: 18336 +} member { id: 0x0249b0df name: "rcv_saddr" type_id: 0xe276adef } +member { + id: 0x8a514678 + name: "rcv_ssthresh" + type_id: 0xc9082b19 + offset: 13472 +} member { id: 0x1ad12cd4 name: "rcv_tos" type_id: 0xb3e7bac9 offset: 7168 } +member { + id: 0xa56c13a3 + name: "rcv_tsecr" + type_id: 0xc9082b19 + offset: 96 +} +member { + id: 0x9a3cd5ff + name: "rcv_tstamp" + type_id: 0xc9082b19 + offset: 12896 +} +member { + id: 0x908732db + name: "rcv_tsval" + type_id: 0xc9082b19 + offset: 64 +} +member { + id: 0x073e9eaa + name: "rcv_wnd" + type_id: 0xc9082b19 + offset: 15616 +} +member { + id: 0x64ea7467 + name: "rcv_wscale" + type_id: 0x914dbfdc + offset: 140 + bitsize: 4 +} +member { + id: 0x93db6466 + name: "rcv_wup" + type_id: 0xc9082b19 + offset: 12544 +} member { id: 0x75627b5b name: "rcvlists_lock" type_id: 0xf313e71a offset: 704 } +member { + id: 0x389614f5 + name: "rcvq_space" + type_id: 0x0e7661fa + offset: 18496 +} member { id: 0x6bca0440 name: "rd" @@ -164465,6 +165195,12 @@ member { type_id: 0xedf277ba offset: 256 } +member { + id: 0x2ae3da0c + name: "recv_sack_cache" + type_id: 0xb637307e + offset: 17536 +} member { id: 0xd1f78df1 name: "recverr" @@ -164498,6 +165234,13 @@ member { type_id: 0x2c07bcbe offset: 896 } +member { + id: 0xd4dd6281 + name: "recvmsg_inq" + type_id: 0x295c7202 + offset: 13933 + bitsize: 1 +} member { id: 0xfd896136 name: "recycle_ibi_slot" @@ -167095,18 +167838,56 @@ member { type_id: 0xe8034002 offset: 12320 } +member { + id: 0x599289d3 + name: "reo_wnd_persist" + type_id: 0x295c7202 + offset: 168 + bitsize: 5 +} +member { + id: 0xc2607053 + name: "reo_wnd_steps" + type_id: 0x295c7202 + offset: 160 +} member { id: 0x5f8678ed name: "reoffload" type_id: 0x2d08fece offset: 832 } +member { + id: 0xbffa636c + name: "reord_seen" + type_id: 0xc9082b19 + offset: 14752 +} +member { + id: 0x6e16f874 + name: "reordering" + type_id: 0xc9082b19 + offset: 14720 +} member { id: 0x52e0ed5f name: "rep" type_id: 0x75617428 offset: 2624 } +member { + id: 0xf06d7ac6 + name: "repair" + type_id: 0x295c7202 + offset: 13934 + bitsize: 1 +} +member { + id: 0xd0cd0059 + name: "repair_queue" + type_id: 0x295c7202 + offset: 13936 +} member { id: 0x345e6415 name: "repeat" @@ -170181,6 +170962,24 @@ member { type_id: 0x0abe9fd1 offset: 336 } +member { + id: 0x0b8a1d47 + name: "retrans_out" + type_id: 0xc9082b19 + offset: 14592 +} +member { + id: 0x92525280 + name: "retrans_stamp" + type_id: 0xc9082b19 + offset: 17952 +} +member { + id: 0x05aa04de + name: "retransmit_skb_hint" + type_id: 0x054f691a + offset: 17024 +} member { id: 0x4f0d9bec name: "retries" @@ -172292,18 +173091,47 @@ member { type_id: 0xc9082b19 offset: 1632 } +member { + id: 0xbb704fb3 + name: "rtt_min" + type_id: 0x98a86aa3 + offset: 14368 +} +member { + id: 0x50d5fad8 + name: "rtt_seq" + type_id: 0xc9082b19 + offset: 14336 +} member { id: 0x2e4fe3d2 name: "rtt_us" type_id: 0xd41e888f offset: 32 } +member { + id: 0x2e52f84a + name: "rtt_us" + type_id: 0xc9082b19 +} +member { + id: 0x2e52fcab + name: "rtt_us" + type_id: 0xc9082b19 + offset: 64 +} member { id: 0x2e67f9bb name: "rtt_us" type_id: 0xfc0e1dbd offset: 320 } +member { + id: 0x86120289 + name: "rttvar_us" + type_id: 0xc9082b19 + offset: 14304 +} member { id: 0xe53f0bca name: "rtx_syn_ack" @@ -173228,6 +174056,12 @@ member { type_id: 0xedf277ba offset: 1472 } +member { + id: 0xedd76c29 + name: "rx_opt" + type_id: 0xfb9626d5 + offset: 14816 +} member { id: 0x92162365 name: "rx_otherhost_dropped" @@ -173678,6 +174512,11 @@ member { name: "s" type_id: 0x3513af55 } +member { + id: 0x67c839a9 + name: "s" + type_id: 0x3a8e7b26 +} member { id: 0x67cca386 name: "s" @@ -174514,6 +175353,19 @@ member { type_id: 0xd3c80119 offset: 3072 } +member { + id: 0xa9edea21 + name: "sack_ok" + type_id: 0x914dbfdc + offset: 132 + bitsize: 3 +} +member { + id: 0xbd3e4245 + name: "sacked_out" + type_id: 0xc9082b19 + offset: 15776 +} member { id: 0xf8038083 name: "saddr" @@ -174776,6 +175628,13 @@ member { type_id: 0x2d5e4b40 offset: 512 } +member { + id: 0x1d3cfb35 + name: "save_syn" + type_id: 0x295c7202 + offset: 13944 + bitsize: 2 +} member { id: 0x0828dd1d name: "saved_addr" @@ -174906,6 +175765,12 @@ member { type_id: 0x10c6675a offset: 1792 } +member { + id: 0x72f4cff9 + name: "saved_syn" + type_id: 0x10c6675a + offset: 18880 +} member { id: 0x424e9efd name: "saved_tmo" @@ -174930,6 +175795,20 @@ member { type_id: 0x0f626ee5 offset: 1408 } +member { + id: 0x037e8aa7 + name: "saw_tstamp" + type_id: 0x914dbfdc + offset: 128 + bitsize: 1 +} +member { + id: 0x9eb3a9b9 + name: "saw_unknown" + type_id: 0x295c7202 + offset: 144 + bitsize: 1 +} member { id: 0x597655fc name: "sb" @@ -175266,6 +176145,12 @@ member { type_id: 0x2a670b41 offset: 15744 } +member { + id: 0xc7945895 + name: "scaling_ratio" + type_id: 0x295c7202 + offset: 13504 +} member { id: 0xa105764c name: "scan" @@ -176671,6 +177556,18 @@ member { type_id: 0xb3e7bac9 offset: 24 } +member { + id: 0x43536458 + name: "segs_in" + type_id: 0xc9082b19 + offset: 12416 +} +member { + id: 0xef3672e0 + name: "segs_out" + type_id: 0xc9082b19 + offset: 12608 +} member { id: 0x339d15e8 name: "sel" @@ -176737,6 +177634,12 @@ member { type_id: 0x2c40c92f offset: 640 } +member { + id: 0x3a30af8e + name: "selective_acks" + type_id: 0xb637307e + offset: 17280 +} member { id: 0x104f57f6 name: "selector" @@ -177186,6 +178089,12 @@ member { type_id: 0xc9082b19 offset: 256 } +member { + id: 0xfad50a5a + name: "seq" + type_id: 0xc9082b19 + offset: 32 +} member { id: 0xfad50a81 name: "seq" @@ -181380,6 +182289,12 @@ member { name: "size" type_id: 0xf435685e } +member { + id: 0xd98a29b1 + name: "size" + type_id: 0xf435685e + offset: 256 +} member { id: 0xd98a2dfb name: "size" @@ -183389,6 +184304,13 @@ member { name: "smc_hash" type_id: 0x3c4ed50c } +member { + id: 0x7d4497ce + name: "smc_ok" + type_id: 0x914dbfdc + offset: 135 + bitsize: 1 +} member { id: 0xe4cebc7a name: "smccc_feat" @@ -183502,12 +184424,48 @@ member { type_id: 0x33f8b54b offset: 640 } +member { + id: 0x3b23ebdc + name: "snd_cwnd" + type_id: 0xc9082b19 + offset: 15040 +} +member { + id: 0x0ed29373 + name: "snd_cwnd_clamp" + type_id: 0xc9082b19 + offset: 15104 +} +member { + id: 0xdef99ede + name: "snd_cwnd_cnt" + type_id: 0xc9082b19 + offset: 15072 +} +member { + id: 0xe301b2f5 + name: "snd_cwnd_stamp" + type_id: 0xc9082b19 + offset: 15168 +} +member { + id: 0x9e51f1f4 + name: "snd_cwnd_used" + type_id: 0xc9082b19 + offset: 15136 +} member { id: 0xc2ae7a6f name: "snd_interval_us" type_id: 0xc9082b19 offset: 256 } +member { + id: 0x24e972c0 + name: "snd_nxt" + type_id: 0xc9082b19 + offset: 12576 +} member { id: 0x05fda169 name: "snd_portid" @@ -183519,6 +184477,49 @@ member { name: "snd_seq" type_id: 0xc9082b19 } +member { + id: 0x9c800493 + name: "snd_sml" + type_id: 0xc9082b19 + offset: 12864 +} +member { + id: 0xcf5883c9 + name: "snd_ssthresh" + type_id: 0xc9082b19 + offset: 15008 +} +member { + id: 0x8248546f + name: "snd_una" + type_id: 0xc9082b19 + offset: 12832 +} +member { + id: 0x611d6949 + name: "snd_up" + type_id: 0xc9082b19 + offset: 14784 +} +member { + id: 0x1f8008f5 + name: "snd_wl1" + type_id: 0xc9082b19 + offset: 13312 +} +member { + id: 0xb8d73d0d + name: "snd_wnd" + type_id: 0xc9082b19 + offset: 13344 +} +member { + id: 0xa597551f + name: "snd_wscale" + type_id: 0x914dbfdc + offset: 136 + bitsize: 4 +} member { id: 0xb368ac36 name: "sndbit" @@ -183997,6 +184998,11 @@ member { type_id: 0xe02e14d6 offset: 64 } +member { + id: 0x589235ff + name: "space" + type_id: 0xc9082b19 +} member { id: 0x4b5ea168 name: "space_available" @@ -185340,6 +186346,12 @@ member { offset: 97 bitsize: 1 } +member { + id: 0x28d4f219 + name: "srtt_us" + type_id: 0xc9082b19 + offset: 14208 +} member { id: 0x8c8649b8 name: "ss" @@ -186173,6 +187185,11 @@ member { type_id: 0x865acc96 offset: 12160 } +member { + id: 0x3d5d011f + name: "start_seq" + type_id: 0xc9082b19 +} member { id: 0xdadfdff0 name: "start_sg" @@ -190606,6 +191623,41 @@ member { type_id: 0x0ddb38e3 offset: 448 } +member { + id: 0x590d4e2d + name: "syn_data" + type_id: 0x295c7202 + offset: 13946 + bitsize: 1 +} +member { + id: 0x7d5a231b + name: "syn_data_acked" + type_id: 0x295c7202 + offset: 13950 + bitsize: 1 +} +member { + id: 0x5e17538b + name: "syn_fastopen" + type_id: 0x295c7202 + offset: 13947 + bitsize: 1 +} +member { + id: 0x1273b855 + name: "syn_fastopen_ch" + type_id: 0x295c7202 + offset: 13949 + bitsize: 1 +} +member { + id: 0xe4473e6a + name: "syn_fastopen_exp" + type_id: 0x295c7202 + offset: 13948 + bitsize: 1 +} member { id: 0x472be94a name: "syn_recv_sock" @@ -192027,6 +193079,11 @@ member { type_id: 0xf1af8af5 offset: 832 } +member { + id: 0xab76db82 + name: "t" + type_id: 0xc9082b19 +} member { id: 0x87bba0ec name: "t1" @@ -193437,6 +194494,12 @@ member { type_id: 0xc9082b19 offset: 4608 } +member { + id: 0x5e1e9942 + name: "tcp_clock_cache" + type_id: 0x92233392 + offset: 14080 +} member { id: 0x77c518c8 name: "tcp_congestion_control" @@ -193466,6 +194529,12 @@ member { type_id: 0xc9082b19 offset: 64 } +member { + id: 0xc07533a2 + name: "tcp_header_len" + type_id: 0x914dbfdc + offset: 12288 +} member { id: 0xc0a9db63 name: "tcp_ignore_invalid_rst" @@ -193494,6 +194563,12 @@ member { type_id: 0x295c7202 offset: 464 } +member { + id: 0x0c6e4e51 + name: "tcp_mstamp" + type_id: 0x92233392 + offset: 14144 +} member { id: 0x92478c56 name: "tcp_rtx_queue" @@ -193522,11 +194597,23 @@ member { name: "tcp_tsorted_anchor" type_id: 0xd3c80119 } +member { + id: 0x5005e02e + name: "tcp_tx_delay" + type_id: 0xc9082b19 + offset: 13984 +} member { id: 0x71aeb7e1 name: "tcp_udp" type_id: 0xecf3cf5f } +member { + id: 0x2c472f82 + name: "tcp_wstamp_ns" + type_id: 0x92233392 + offset: 14016 +} member { id: 0x285a3906 name: "tcpmem" @@ -194102,6 +195189,13 @@ member { type_id: 0xd3c80119 offset: 8384 } +member { + id: 0xe077955e + name: "thin_lto" + type_id: 0x295c7202 + offset: 13932 + bitsize: 1 +} member { id: 0xca538c03 name: "think_time" @@ -194699,6 +195793,12 @@ member { type_id: 0x92233392 offset: 320 } +member { + id: 0x74712a8a + name: "time" + type_id: 0x92233392 + offset: 64 +} member { id: 0x74da99d4 name: "time" @@ -195061,6 +196161,12 @@ member { name: "timeout_ns" type_id: 0x4585663f } +member { + id: 0x203d801e + name: "timeout_rehash" + type_id: 0x914dbfdc + offset: 18288 +} member { id: 0x39fee070 name: "timeout_set" @@ -195581,6 +196687,19 @@ member { type_id: 0x295c7202 offset: 144 } +member { + id: 0x81d2574b + name: "tlp_high_seq" + type_id: 0xc9082b19 + offset: 13952 +} +member { + id: 0xdab010e7 + name: "tlp_retrans" + type_id: 0x295c7202 + offset: 13786 + bitsize: 1 +} member { id: 0x7404e298 name: "tlv" @@ -196292,6 +197411,12 @@ member { type_id: 0x4585663f offset: 2112 } +member { + id: 0x1ab0af7d + name: "total_retrans" + type_id: 0xc9082b19 + offset: 18112 +} member { id: 0x80674f84 name: "total_rx_match_ratio" @@ -197706,6 +198831,17 @@ member { type_id: 0xc9082b19 offset: 1184 } +member { + id: 0x851fefad + name: "ts_recent" + type_id: 0xc9082b19 + offset: 32 +} +member { + id: 0x8131134d + name: "ts_recent_stamp" + type_id: 0x6720d32f +} member { id: 0xbb298b5e name: "tsev_wq" @@ -197765,6 +198901,24 @@ member { type_id: 0x4585663f offset: 18400 } +member { + id: 0xaf1c2858 + name: "tsoffset" + type_id: 0xc9082b19 + offset: 13024 +} +member { + id: 0x3fe882fb + name: "tsorted_sent_queue" + type_id: 0xd3c80119 + offset: 13184 +} +member { + id: 0xb4b04624 + name: "tsq_node" + type_id: 0xd3c80119 + offset: 13056 +} member { id: 0x7f1030b7 name: "tstamp" @@ -197800,6 +198954,13 @@ member { type_id: 0x6720d32f offset: 1472 } +member { + id: 0xcd6e1313 + name: "tstamp_ok" + type_id: 0x914dbfdc + offset: 129 + bitsize: 1 +} member { id: 0x724f5b37 name: "tstamp_type" @@ -201146,6 +202307,12 @@ member { type_id: 0x32daa21d offset: 640 } +member { + id: 0x50ba6c8c + name: "uarg" + type_id: 0x35dbe029 + offset: 384 +} member { id: 0x6a0a74ef name: "uart_port" @@ -202087,6 +203254,18 @@ member { type_id: 0x1a3a7059 offset: 512 } +member { + id: 0x44e15b29 + name: "undo_marker" + type_id: 0xc9082b19 + offset: 17984 +} +member { + id: 0x7392fd10 + name: "undo_retrans" + type_id: 0x6720d32f + offset: 18016 +} member { id: 0x0645ccd5 name: "unfreeze_fs" @@ -202703,6 +203882,20 @@ member { type_id: 0x33756485 offset: 768 } +member { + id: 0xc2fb89b4 + name: "unused" + type_id: 0x295c7202 + offset: 145 + bitsize: 7 +} +member { + id: 0xd0fa2b27 + name: "unused" + type_id: 0x295c7202 + offset: 13787 + bitsize: 5 +} member { id: 0xd4ec9f32 name: "unused" @@ -203239,6 +204432,18 @@ member { type_id: 0x74d29cf1 offset: 11840 } +member { + id: 0x6e240bd1 + name: "urg_data" + type_id: 0x914dbfdc + offset: 14688 +} +member { + id: 0xf6fff3e5 + name: "urg_seq" + type_id: 0xc9082b19 + offset: 18144 +} member { id: 0x3bf0a986 name: "urgent_bkops_lvl" @@ -204454,6 +205659,12 @@ member { type_id: 0x724805ea offset: 10048 } +member { + id: 0xc4835a3d + name: "user_mss" + type_id: 0x914dbfdc + offset: 160 +} member { id: 0xf44982ea name: "user_name" @@ -205064,6 +206275,12 @@ member { name: "v" type_id: 0xe62ebf07 } +member { + id: 0x28f6afd5 + name: "v" + type_id: 0xc9082b19 + offset: 32 +} member { id: 0x543f6773 name: "v1" @@ -205248,6 +206465,11 @@ member { name: "val" type_id: 0x75617428 } +member { + id: 0x4f647aa3 + name: "val" + type_id: 0x729479be +} member { id: 0x4f67c989 name: "val" @@ -210151,6 +211373,12 @@ member { type_id: 0x4585663f offset: 64 } +member { + id: 0x98ad753d + name: "window_clamp" + type_id: 0xc9082b19 + offset: 13440 +} member { id: 0x1afab587 name: "window_len" @@ -211465,6 +212693,12 @@ member { type_id: 0x2f582494 offset: 1536 } +member { + id: 0xd5cb0b3e + name: "write_seq" + type_id: 0xc9082b19 + offset: 15648 +} member { id: 0x067f8a3d name: "write_syscalls" @@ -211746,6 +212980,13 @@ member { type_id: 0xc93e017b offset: 48 } +member { + id: 0xf0ca4be8 + name: "wscale_ok" + type_id: 0x914dbfdc + offset: 131 + bitsize: 1 +} member { id: 0x8986dade name: "wspecversion" @@ -213715,6 +214956,15 @@ struct_union { member_id: 0xd052cad3 } } +struct_union { + id: 0x0904167f + kind: STRUCT + definition { + bytesize: 8 + member_id: 0x45320605 + member_id: 0x934c941a + } +} struct_union { id: 0x0922f100 kind: STRUCT @@ -214258,6 +215508,16 @@ struct_union { member_id: 0x7316f7a6 } } +struct_union { + id: 0x0e7661fa + kind: STRUCT + definition { + bytesize: 16 + member_id: 0x589235ff + member_id: 0xfad50a5a + member_id: 0x74712a8a + } +} struct_union { id: 0x0eac683f kind: STRUCT @@ -214956,6 +216216,16 @@ struct_union { member_id: 0xc46d15c4 } } +struct_union { + id: 0x13c65297 + kind: STRUCT + definition { + bytesize: 16 + member_id: 0x2e52f84a + member_id: 0xfad50a5a + member_id: 0x74712a8a + } +} struct_union { id: 0x14096380 kind: STRUCT @@ -226057,6 +227327,11 @@ struct_union { member_id: 0xa761a3f4 } } +struct_union { + id: 0x543fa74f + kind: STRUCT + name: "cfg80211_registered_device" +} struct_union { id: 0xd659846e kind: STRUCT @@ -235885,6 +237160,16 @@ struct_union { member_id: 0x9b748e42 } } +struct_union { + id: 0x16d9d002 + kind: STRUCT + name: "flow_dissector_key" + definition { + bytesize: 16 + member_id: 0x8ea8c4ec + member_id: 0x9be8ed4d + } +} struct_union { id: 0x7b243421 kind: STRUCT @@ -248390,6 +249675,25 @@ struct_union { member_id: 0xea3077fb } } +struct_union { + id: 0x98a86aa3 + kind: STRUCT + name: "minmax" + definition { + bytesize: 24 + member_id: 0x67c839a9 + } +} +struct_union { + id: 0xa12e384a + kind: STRUCT + name: "minmax_sample" + definition { + bytesize: 8 + member_id: 0xab76db82 + member_id: 0x28f6afd5 + } +} struct_union { id: 0x0fc94b61 kind: STRUCT @@ -266007,6 +267311,16 @@ struct_union { member_id: 0x59c72968 } } +struct_union { + id: 0x6b01ff7f + kind: STRUCT + name: "tc_action_net" + definition { + bytesize: 16 + member_id: 0x639387b1 + member_id: 0xafb1449f + } +} struct_union { id: 0x7d49fa3c kind: STRUCT @@ -266344,6 +267658,30 @@ struct_union { member_id: 0x95daceb0 } } +struct_union { + id: 0x0cb73b55 + kind: STRUCT + name: "tcp_fastopen_cookie" + definition { + bytesize: 24 + member_id: 0x4f647aa3 + member_id: 0xb82c6bed + member_id: 0x9633fcdf + } +} +struct_union { + id: 0x38e5bb2f + kind: STRUCT + name: "tcp_fastopen_request" + definition { + bytesize: 56 + member_id: 0x5846e373 + member_id: 0xffbef712 + member_id: 0xd98a29b1 + member_id: 0x5414dc08 + member_id: 0x50ba6c8c + } +} struct_union { id: 0x85ab6757 kind: STRUCT @@ -266353,6 +267691,206 @@ struct_union { member_id: 0x0d3e3662 } } +struct_union { + id: 0xfb9626d5 + kind: STRUCT + name: "tcp_options_received" + definition { + bytesize: 24 + member_id: 0x8131134d + member_id: 0x851fefad + member_id: 0x908732db + member_id: 0xa56c13a3 + member_id: 0x037e8aa7 + member_id: 0xcd6e1313 + member_id: 0x09aae020 + member_id: 0xf0ca4be8 + member_id: 0xa9edea21 + member_id: 0x7d4497ce + member_id: 0xa597551f + member_id: 0x64ea7467 + member_id: 0x9eb3a9b9 + member_id: 0xc2fb89b4 + member_id: 0x7cf21fa8 + member_id: 0xc4835a3d + member_id: 0x5ddbff68 + } +} +struct_union { + id: 0xd4132c46 + kind: STRUCT + name: "tcp_rack" + definition { + bytesize: 24 + member_id: 0xf3d1e1b3 + member_id: 0x2e52fcab + member_id: 0xd5a564b1 + member_id: 0x8762b004 + member_id: 0xc2607053 + member_id: 0x599289d3 + member_id: 0x28f28f83 + member_id: 0xec6d552f + } +} +struct_union { + id: 0xe9e88d93 + kind: STRUCT + name: "tcp_sack_block" + definition { + bytesize: 8 + member_id: 0x3d5d011f + member_id: 0xd5a56009 + } +} +struct_union { + id: 0x45ac4f1e + kind: STRUCT + name: "tcp_sock" + definition { + bytesize: 2384 + member_id: 0x07676cab + member_id: 0xc07533a2 + member_id: 0x085eba8a + member_id: 0xfcce6b61 + member_id: 0xda945faa + member_id: 0x43536458 + member_id: 0x7ecbe350 + member_id: 0x722b8728 + member_id: 0x1ec2d3d6 + member_id: 0x93db6466 + member_id: 0x24e972c0 + member_id: 0xef3672e0 + member_id: 0xdb2f5379 + member_id: 0x840adfe0 + member_id: 0x3ed6f46c + member_id: 0x7efdf5c5 + member_id: 0x8248546f + member_id: 0x9c800493 + member_id: 0x9a3cd5ff + member_id: 0xcaaa728e + member_id: 0x41099e1a + member_id: 0x036494f3 + member_id: 0xaf1c2858 + member_id: 0xb4b04624 + member_id: 0x3fe882fb + member_id: 0x1f8008f5 + member_id: 0xb8d73d0d + member_id: 0xb0b5b654 + member_id: 0x8571ffda + member_id: 0x98ad753d + member_id: 0x8a514678 + member_id: 0xc7945895 + member_id: 0x2c2c5fba + member_id: 0x1d389d44 + member_id: 0x4aed4889 + member_id: 0x330d88ab + member_id: 0xdab010e7 + member_id: 0xd0fa2b27 + member_id: 0x6c307cf4 + member_id: 0x4b0fd9ce + member_id: 0x5514b182 + member_id: 0xd6330fb5 + member_id: 0x5d29fee1 + member_id: 0x72c8bb67 + member_id: 0xb9f122ca + member_id: 0xa42f589c + member_id: 0xa073f1ab + member_id: 0xe077955e + member_id: 0xd4dd6281 + member_id: 0xf06d7ac6 + member_id: 0xdaf76cc3 + member_id: 0xd0cd0059 + member_id: 0x1d3cfb35 + member_id: 0x590d4e2d + member_id: 0x5e17538b + member_id: 0xe4473e6a + member_id: 0x1273b855 + member_id: 0x7d5a231b + member_id: 0xb9645382 + member_id: 0x81d2574b + member_id: 0x5005e02e + member_id: 0x2c472f82 + member_id: 0x5e1e9942 + member_id: 0x0c6e4e51 + member_id: 0x28d4f219 + member_id: 0x00d04fe9 + member_id: 0xf098db18 + member_id: 0x86120289 + member_id: 0x50d5fad8 + member_id: 0xbb704fb3 + member_id: 0xfdbc848d + member_id: 0x0b8a1d47 + member_id: 0x1d3400c9 + member_id: 0xd7cfb6af + member_id: 0x6e240bd1 + member_id: 0x3dfa7e83 + member_id: 0xeb2f3a60 + member_id: 0x6e16f874 + member_id: 0xbffa636c + member_id: 0x611d6949 + member_id: 0xedd76c29 + member_id: 0xcf5883c9 + member_id: 0x3b23ebdc + member_id: 0xdef99ede + member_id: 0x0ed29373 + member_id: 0x9e51f1f4 + member_id: 0xe301b2f5 + member_id: 0xa9ca3d48 + member_id: 0x3ce5a1a5 + member_id: 0xe9e7b9b9 + member_id: 0x986cabcf + member_id: 0xe067849e + member_id: 0x14a579bc + member_id: 0x48499c9d + member_id: 0xc8ee4a83 + member_id: 0xc6e15a21 + member_id: 0x18e68e5d + member_id: 0x47a615a2 + member_id: 0x073e9eaa + member_id: 0xd5cb0b3e + member_id: 0xfdfb543e + member_id: 0xa598a60a + member_id: 0x2d8727b7 + member_id: 0xbd3e4245 + member_id: 0xb18c6424 + member_id: 0xe98a4097 + member_id: 0x86cd9b15 + member_id: 0x05aa04de + member_id: 0x0b88a2f9 + member_id: 0x78ec3cd1 + member_id: 0xac4c8189 + member_id: 0x3a30af8e + member_id: 0x2ae3da0c + member_id: 0x6da31b8c + member_id: 0x36a89888 + member_id: 0x17b8fd63 + member_id: 0x60f3e74f + member_id: 0x92525280 + member_id: 0x44e15b29 + member_id: 0x7392fd10 + member_id: 0xd77f296e + member_id: 0x1ab0af7d + member_id: 0xf6fff3e5 + member_id: 0x9e7c1d4e + member_id: 0xb4c1afb7 + member_id: 0x0ab38055 + member_id: 0xa68610ed + member_id: 0xf5c4330d + member_id: 0x203d801e + member_id: 0x3a366983 + member_id: 0xcebd1d31 + member_id: 0x035a9333 + member_id: 0x389614f5 + member_id: 0x541b500d + member_id: 0x8201bd6f + member_id: 0x36410b0b + member_id: 0x3491077d + member_id: 0x7a4a9c6d + member_id: 0x72f4cff9 + member_id: 0xd671c193 + member_id: 0x2d081161 + } +} struct_union { id: 0xa19fd9aa kind: STRUCT @@ -284971,6 +286509,148 @@ enumeration { } } } +enumeration { + id: 0x405d0abf + name: "flow_dissector_key_id" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "FLOW_DISSECTOR_KEY_CONTROL" + } + enumerator { + name: "FLOW_DISSECTOR_KEY_BASIC" + value: 1 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_IPV4_ADDRS" + value: 2 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_IPV6_ADDRS" + value: 3 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_PORTS" + value: 4 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_PORTS_RANGE" + value: 5 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_ICMP" + value: 6 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_ETH_ADDRS" + value: 7 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_TIPC" + value: 8 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_ARP" + value: 9 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_VLAN" + value: 10 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_FLOW_LABEL" + value: 11 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_GRE_KEYID" + value: 12 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_MPLS_ENTROPY" + value: 13 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_ENC_KEYID" + value: 14 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS" + value: 15 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS" + value: 16 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_ENC_CONTROL" + value: 17 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_ENC_PORTS" + value: 18 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_MPLS" + value: 19 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_TCP" + value: 20 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_IP" + value: 21 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_CVLAN" + value: 22 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_ENC_IP" + value: 23 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_ENC_OPTS" + value: 24 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_META" + value: 25 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_CT" + value: 26 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_HASH" + value: 27 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_NUM_OF_VLANS" + value: 28 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_PPPOE" + value: 29 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_L2TPV3" + value: 30 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_CFM" + value: 31 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_IPSEC" + value: 32 + } + enumerator { + name: "FLOW_DISSECTOR_KEY_MAX" + value: 33 + } + } +} enumeration { id: 0x24d17ffc name: "fp_type" @@ -297229,6 +298909,14 @@ function { return_type_id: 0x48b5725f parameter_id: 0x01c5a749 } +function { + id: 0x10e9600e + return_type_id: 0x48b5725f + parameter_id: 0x01de2d7a + parameter_id: 0x01de2d7a + parameter_id: 0x01de2d7a + parameter_id: 0x6d7f5ff6 +} function { id: 0x10e9afeb return_type_id: 0x48b5725f @@ -297254,6 +298942,11 @@ function { parameter_id: 0x0258f96e parameter_id: 0x38514bfb } +function { + id: 0x10efdacd + return_type_id: 0x48b5725f + parameter_id: 0x01de2d7a +} function { id: 0x10f0f603 return_type_id: 0x48b5725f @@ -298011,6 +299704,12 @@ function { parameter_id: 0x3104c07e parameter_id: 0x4585663f } +function { + id: 0x11deb671 + return_type_id: 0x48b5725f + parameter_id: 0x054f691a + parameter_id: 0x054f691a +} function { id: 0x11e015cb return_type_id: 0x48b5725f @@ -300865,6 +302564,11 @@ function { parameter_id: 0x1b8590a8 parameter_id: 0x120540d1 } +function { + id: 0x163a90aa + return_type_id: 0x48b5725f + parameter_id: 0x1a8b04e5 +} function { id: 0x163b1761 return_type_id: 0x48b5725f @@ -302049,6 +303753,12 @@ function { parameter_id: 0x1d1533af parameter_id: 0x1e820193 } +function { + id: 0x17a860a1 + return_type_id: 0x48b5725f + parameter_id: 0x10504678 + parameter_id: 0xc9082b19 +} function { id: 0x17a9b884 return_type_id: 0x48b5725f @@ -302653,6 +304363,14 @@ function { return_type_id: 0x48b5725f parameter_id: 0x20054a7b } +function { + id: 0x189ae8f8 + return_type_id: 0x0beab59b + parameter_id: 0x1749fb69 + parameter_id: 0x391f15ea + parameter_id: 0x32a623d7 + parameter_id: 0x6d7f5ff6 +} function { id: 0x189b5d05 return_type_id: 0x0beab59b @@ -303921,6 +305639,13 @@ function { parameter_id: 0x760e8adc parameter_id: 0x00256a1d } +function { + id: 0x1af68d6f + return_type_id: 0x48b5725f + parameter_id: 0x2a316b68 + parameter_id: 0x3cf9dfcf + parameter_id: 0x4585663f +} function { id: 0x1b00783f return_type_id: 0x48b5725f @@ -305156,6 +306881,14 @@ function { parameter_id: 0x36194830 parameter_id: 0x6d7f5ff6 } +function { + id: 0x1cae8333 + return_type_id: 0x48b5725f + parameter_id: 0x32a623d7 + parameter_id: 0x26a97673 + parameter_id: 0x18bd6530 + parameter_id: 0xf435685e +} function { id: 0x1caf28d1 return_type_id: 0x48b5725f @@ -305532,6 +307265,15 @@ function { return_type_id: 0x48b5725f parameter_id: 0x3609467c } +function { + id: 0x1d1ccc70 + return_type_id: 0x48b5725f + parameter_id: 0x3fab28c8 + parameter_id: 0x92233392 + parameter_id: 0x92233392 + parameter_id: 0x92233392 + parameter_id: 0x6d7f5ff6 +} function { id: 0x1d1cf212 return_type_id: 0x48b5725f @@ -306899,6 +308641,11 @@ function { parameter_id: 0x6d7f5ff6 parameter_id: 0x6d7f5ff6 } +function { + id: 0x1eb68031 + return_type_id: 0x48b5725f + parameter_id: 0x38bb4688 +} function { id: 0x1eb74850 return_type_id: 0x48b5725f @@ -306992,6 +308739,12 @@ function { parameter_id: 0x39487d35 parameter_id: 0x04a6a89c } +function { + id: 0x1ed96c59 + return_type_id: 0x48b5725f + parameter_id: 0x3a40dd6c + parameter_id: 0x3442a45d +} function { id: 0x1eda71a1 return_type_id: 0x48b5725f @@ -307410,6 +309163,13 @@ function { parameter_id: 0x3e6396e0 parameter_id: 0x6720d32f } +function { + id: 0x1f4d44f1 + return_type_id: 0x48b5725f + parameter_id: 0x3df8f8c1 + parameter_id: 0x2e8d5f05 + parameter_id: 0x4478ba6b +} function { id: 0x1f4f6ba0 return_type_id: 0x48b5725f @@ -307783,6 +309543,13 @@ function { parameter_id: 0x4585663f parameter_id: 0x4585663f } +function { + id: 0x1fae5edf + return_type_id: 0x48b5725f + parameter_id: 0x3e6396e0 + parameter_id: 0x2a316b68 + parameter_id: 0x18bd6530 +} function { id: 0x1faea9e9 return_type_id: 0x48b5725f @@ -307790,6 +309557,17 @@ function { parameter_id: 0x01c5a749 parameter_id: 0x39cce413 } +function { + id: 0x1faed94e + return_type_id: 0x48b5725f + parameter_id: 0x3e6396e0 + parameter_id: 0x2a316b68 + parameter_id: 0x18bd6530 + parameter_id: 0x2ec35650 + parameter_id: 0xf435685e + parameter_id: 0x6d7f5ff6 + parameter_id: 0x914dbfdc +} function { id: 0x1fb0c55c return_type_id: 0x48b5725f @@ -309830,6 +311608,11 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x33756485 } +function { + id: 0x416f964c + return_type_id: 0x70239517 + parameter_id: 0x33756485 +} function { id: 0x41818af1 return_type_id: 0xc9082b19 @@ -310593,6 +312376,11 @@ function { return_type_id: 0x0cf3d8fe parameter_id: 0x18bd6530 } +function { + id: 0x5221a908 + return_type_id: 0x2511a6f5 + parameter_id: 0x4585663f +} function { id: 0x52492c62 return_type_id: 0x310ec01d @@ -313529,6 +315317,14 @@ function { parameter_id: 0x0a126667 parameter_id: 0x0a126667 } +function { + id: 0x846ed06b + return_type_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x09451098 + parameter_id: 0x0c32f89e + parameter_id: 0x07dcdbe1 +} function { id: 0x84710953 return_type_id: 0x6720d32f @@ -318242,6 +320038,11 @@ function { parameter_id: 0xc9082b19 parameter_id: 0x07dcdbe1 } +function { + id: 0x926a291d + return_type_id: 0x6720d32f + parameter_id: 0x3fab28c8 +} function { id: 0x926bbb17 return_type_id: 0x6720d32f @@ -319399,6 +321200,19 @@ function { return_type_id: 0x6720d32f parameter_id: 0x3aac87ab } +function { + id: 0x932e1cba + return_type_id: 0x6720d32f + parameter_id: 0x3a433e0e + parameter_id: 0x09451098 + parameter_id: 0x6d7f5ff6 + parameter_id: 0x1c934597 + parameter_id: 0x26a97673 + parameter_id: 0x18bd6530 + parameter_id: 0x18bd6530 + parameter_id: 0x38d23361 + parameter_id: 0x1bf16028 +} function { id: 0x93304bad return_type_id: 0x6720d32f @@ -319428,12 +321242,31 @@ function { return_type_id: 0x6720d32f parameter_id: 0x3ae3ff84 } +function { + id: 0x933cebfd + return_type_id: 0x6720d32f + parameter_id: 0x3a433e0e + parameter_id: 0x09451098 + parameter_id: 0x26a97673 + parameter_id: 0x18bd6530 + parameter_id: 0x6d7f5ff6 + parameter_id: 0x38d23361 + parameter_id: 0x1bf16028 + parameter_id: 0x6d7f5ff6 +} function { id: 0x933f3b0e return_type_id: 0x6720d32f parameter_id: 0x391e6bd6 parameter_id: 0x3e10b518 } +function { + id: 0x934097b0 + return_type_id: 0x6720d32f + parameter_id: 0x38bb4688 + parameter_id: 0x3bd482ed + parameter_id: 0x07dcdbe1 +} function { id: 0x9340e134 return_type_id: 0x6720d32f @@ -319717,6 +321550,15 @@ function { parameter_id: 0x3b04bead parameter_id: 0x33756485 } +function { + id: 0x938d088e + return_type_id: 0x6720d32f + parameter_id: 0x3a433e0e + parameter_id: 0x26a97673 + parameter_id: 0x18bd6530 + parameter_id: 0x6d7f5ff6 + parameter_id: 0x6d7f5ff6 +} function { id: 0x938ec5ae return_type_id: 0x6720d32f @@ -320006,6 +321848,12 @@ function { return_type_id: 0x6720d32f parameter_id: 0x397d00ab } +function { + id: 0x93dfd462 + return_type_id: 0x6720d32f + parameter_id: 0x3fab28c8 + parameter_id: 0x6d7f5ff6 +} function { id: 0x93e044d4 return_type_id: 0x6720d32f @@ -323628,6 +325476,12 @@ function { parameter_id: 0x14b9453b parameter_id: 0x3f8f206d } +function { + id: 0x98511587 + return_type_id: 0x6720d32f + parameter_id: 0x15c24728 + parameter_id: 0x2859d899 +} function { id: 0x985410df return_type_id: 0x6720d32f @@ -324219,6 +326073,14 @@ function { parameter_id: 0x14b9453b parameter_id: 0x052fac00 } +function { + id: 0x98bafce5 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0xc9082b19 + parameter_id: 0xc9082b19 + parameter_id: 0xc9082b19 +} function { id: 0x98bb99ce return_type_id: 0x6720d32f @@ -324620,6 +326482,12 @@ function { return_type_id: 0x6720d32f parameter_id: 0x1259e377 } +function { + id: 0x9916f8e5 + return_type_id: 0x11c404ba + parameter_id: 0x11c404ba + parameter_id: 0xada894ab +} function { id: 0x9917165a return_type_id: 0x6720d32f @@ -325071,6 +326939,14 @@ function { parameter_id: 0x11e6864c parameter_id: 0x23d22dfc } +function { + id: 0x99777843 + return_type_id: 0x6720d32f + parameter_id: 0x10504678 + parameter_id: 0x38d23361 + parameter_id: 0x057af395 + parameter_id: 0x6720d32f +} function { id: 0x99780c28 return_type_id: 0xf435685e @@ -325799,6 +327675,14 @@ function { parameter_id: 0x6720d32f parameter_id: 0x6720d32f } +function { + id: 0x9a150ee4 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x6d7f5ff6 + parameter_id: 0x3e10b518 + parameter_id: 0x33756485 +} function { id: 0x9a17d2c3 return_type_id: 0x6720d32f @@ -325935,6 +327819,24 @@ function { parameter_id: 0x6720d32f parameter_id: 0x3c2755a3 } +function { + id: 0x9a2a0d8f + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x3e10b518 + parameter_id: 0x13580d6c +} +function { + id: 0x9a2a81ab + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x1d19a9d5 + parameter_id: 0x13580d6c +} function { id: 0x9a2ab624 return_type_id: 0x6720d32f @@ -326823,6 +328725,17 @@ function { parameter_id: 0x4585663f parameter_id: 0x22b36393 } +function { + id: 0x9ab82f4e + return_type_id: 0x6720d32f + parameter_id: 0x10504678 + parameter_id: 0xc9082b19 + parameter_id: 0x239e18b5 + parameter_id: 0x057af395 + parameter_id: 0x3a40dd6c + parameter_id: 0x6720d32f + parameter_id: 0xc9082b19 +} function { id: 0x9ab83ca3 return_type_id: 0x6720d32f @@ -326850,6 +328763,13 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x4585663f } +function { + id: 0x9aba8023 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x4585663f + parameter_id: 0x0cbf60eb +} function { id: 0x9abb2786 return_type_id: 0x6720d32f @@ -328254,6 +330174,13 @@ function { parameter_id: 0x31c0ce8c parameter_id: 0x11cfee5a } +function { + id: 0x9b4fb5cf + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x391f15ea + parameter_id: 0x11cfee5a +} function { id: 0x9b50173a return_type_id: 0x6720d32f @@ -328281,6 +330208,15 @@ function { parameter_id: 0x3f949c69 parameter_id: 0x0483e6f8 } +function { + id: 0x9b50d5ea + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x3e10b518 + parameter_id: 0x1f9fd074 + parameter_id: 0x32a623d7 + parameter_id: 0x00c72527 +} function { id: 0x9b51247b return_type_id: 0x6720d32f @@ -328536,6 +330472,14 @@ function { return_type_id: 0x6720d32f parameter_id: 0x1b7b196f } +function { + id: 0x9b5e34bb + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x33756485 + parameter_id: 0xf1a6dfed + parameter_id: 0x0cbf60eb +} function { id: 0x9b5e9d20 return_type_id: 0x6720d32f @@ -328606,6 +330550,13 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x33756485 } +function { + id: 0x9b634f08 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x33756485 + parameter_id: 0x0483e6f8 +} function { id: 0x9b639aa2 return_type_id: 0x6720d32f @@ -328619,6 +330570,13 @@ function { parameter_id: 0x064d6086 parameter_id: 0x11cfee5a } +function { + id: 0x9b63fca9 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x33756485 + parameter_id: 0x064d6086 +} function { id: 0x9b64054e return_type_id: 0x6720d32f @@ -328692,6 +330650,13 @@ function { parameter_id: 0x33756485 parameter_id: 0x11cfee5a } +function { + id: 0x9b664ae7 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x3360dff4 + parameter_id: 0x11cfee5a +} function { id: 0x9b66b9f2 return_type_id: 0x6720d32f @@ -329039,6 +331004,14 @@ function { parameter_id: 0x188b9e81 parameter_id: 0x35d37abd } +function { + id: 0x9b758262 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x36f98e5c + parameter_id: 0x064d6086 + parameter_id: 0x13580d6c +} function { id: 0x9b76121f return_type_id: 0x6720d32f @@ -329737,6 +331710,13 @@ function { parameter_id: 0x3e10b518 parameter_id: 0x33756485 } +function { + id: 0x9ba47dcc + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x0483e6f8 + parameter_id: 0x6720d32f +} function { id: 0x9ba4d640 return_type_id: 0x6720d32f @@ -330181,6 +332161,13 @@ function { parameter_id: 0x2efe8065 parameter_id: 0x18ea6ae3 } +function { + id: 0x9bb963fb + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x0483e6f8 + parameter_id: 0x13580d6c +} function { id: 0x9bb970f2 return_type_id: 0x6720d32f @@ -330282,6 +332269,14 @@ function { parameter_id: 0x0057b869 parameter_id: 0x0057b869 } +function { + id: 0x9bbd796e + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x078316ff + parameter_id: 0x33756485 + parameter_id: 0x0483e6f8 +} function { id: 0x9bbd9550 return_type_id: 0x6720d32f @@ -330289,6 +332284,13 @@ function { parameter_id: 0x0665e6b6 parameter_id: 0x2ee2a594 } +function { + id: 0x9bbdd6cb + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x054f691a + parameter_id: 0x1d44326e +} function { id: 0x9bbe177b return_type_id: 0x6720d32f @@ -330429,6 +332431,13 @@ function { parameter_id: 0x4585663f parameter_id: 0x18bd6530 } +function { + id: 0x9bc1f57d + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d44326e + parameter_id: 0x6d7f5ff6 +} function { id: 0x9bc214f0 return_type_id: 0x6720d32f @@ -330436,6 +332445,24 @@ function { parameter_id: 0x1d19a9d5 parameter_id: 0x6720d32f } +function { + id: 0x9bc22a10 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x18bd6530 + parameter_id: 0x3e10b518 + parameter_id: 0x39470e64 + parameter_id: 0x13580d6c +} +function { + id: 0x9bc2374e + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x18bd6530 + parameter_id: 0x3e10b518 + parameter_id: 0x3e10b518 + parameter_id: 0x13580d6c +} function { id: 0x9bc253cf return_type_id: 0x6720d32f @@ -330461,6 +332488,14 @@ function { parameter_id: 0x2e0f9112 parameter_id: 0x6d7f5ff6 } +function { + id: 0x9bc2eb7c + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x6720d32f + parameter_id: 0x3fe31e81 +} function { id: 0x9bc302e5 return_type_id: 0x6720d32f @@ -330577,6 +332612,13 @@ function { parameter_id: 0x31e58fe0 parameter_id: 0x2efe8065 } +function { + id: 0x9bc999f4 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x18bd6530 + parameter_id: 0x13580d6c +} function { id: 0x9bc9ed5a return_type_id: 0x6720d32f @@ -330804,6 +332846,13 @@ function { parameter_id: 0x2360e10b parameter_id: 0x1f8dbf97 } +function { + id: 0x9bd4253c + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x3fe7e06b +} function { id: 0x9bd4393a return_type_id: 0x6720d32f @@ -331185,6 +333234,13 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x0b3476b2 } +function { + id: 0x9bda4f9c + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x064d6086 +} function { id: 0x9bdaaaaa return_type_id: 0x6720d32f @@ -331305,6 +333361,14 @@ function { parameter_id: 0x1d19a9d5 parameter_id: 0x13580d6c } +function { + id: 0x9bdcdd91 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x1d19a9d5 + parameter_id: 0x11cfee5a +} function { id: 0x9bdcf711 return_type_id: 0x6720d32f @@ -331396,6 +333460,13 @@ function { parameter_id: 0x19238db3 parameter_id: 0x11cfee5a } +function { + id: 0x9bdde64f + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x18ea2d6b +} function { id: 0x9bddee2d return_type_id: 0x6720d32f @@ -331684,6 +333755,14 @@ function { parameter_id: 0x1b2ca025 parameter_id: 0x2e2c982d } +function { + id: 0x9bf38843 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1bfb2a60 + parameter_id: 0xc9082b19 + parameter_id: 0x6720d32f +} function { id: 0x9bf40739 return_type_id: 0x6720d32f @@ -336246,6 +338325,18 @@ function { parameter_id: 0xc9082b19 parameter_id: 0x07dcdbe1 } +function { + id: 0x9e8d7e28 + return_type_id: 0x6720d32f + parameter_id: 0x0ca27481 + parameter_id: 0x09451098 + parameter_id: 0x0277bf8a + parameter_id: 0x239e18b5 + parameter_id: 0x1393392e + parameter_id: 0xc9082b19 + parameter_id: 0xc9082b19 + parameter_id: 0x07dcdbe1 +} function { id: 0x9e8e1c66 return_type_id: 0x6720d32f @@ -337535,6 +339626,13 @@ function { parameter_id: 0x0917901f parameter_id: 0x10afcfdf } +function { + id: 0x9f8801da + return_type_id: 0x6720d32f + parameter_id: 0x0bfc9031 + parameter_id: 0x3e10b518 + parameter_id: 0x3e10b518 +} function { id: 0x9f89d33b return_type_id: 0x6720d32f @@ -338417,6 +340515,11 @@ function { parameter_id: 0xac0d3a85 parameter_id: 0x92233392 } +function { + id: 0xa3813acf + return_type_id: 0x3e10b518 + parameter_id: 0xc714b5b1 +} function { id: 0xa395744b return_type_id: 0x35d510c3 @@ -338639,6 +340742,11 @@ function { parameter_id: 0x4585663f parameter_id: 0xfc0e1dbd } +function { + id: 0xa7fa3f5c + return_type_id: 0x2584a3b9 + parameter_id: 0x054f691a +} function { id: 0xa807a3b8 return_type_id: 0x31c8b544 @@ -340234,6 +342342,11 @@ function { parameter_id: 0x2a285513 parameter_id: 0x4faa9b63 } +function { + id: 0xca3fb0b0 + return_type_id: 0x4585663f + parameter_id: 0x1393392e +} function { id: 0xca4b711f return_type_id: 0x1b084782 @@ -340748,6 +342861,13 @@ function { parameter_id: 0x105c8027 parameter_id: 0x300fdc99 } +function { + id: 0xd6fcc6b4 + return_type_id: 0x1a8b04e5 + parameter_id: 0x3fab28c8 + parameter_id: 0x6720d32f + parameter_id: 0x1a8b04e5 +} function { id: 0xd7754407 return_type_id: 0x276a1779 @@ -341469,6 +343589,12 @@ function { parameter_id: 0x4585663f parameter_id: 0x4585663f } +function { + id: 0xef356aa2 + return_type_id: 0x2e8d5f05 + parameter_id: 0x1a7122b5 + parameter_id: 0x2e8d5f05 +} function { id: 0xef54849c return_type_id: 0x6d7f5ff6 @@ -345609,6 +347735,15 @@ elf_symbol { type_id: 0x1058ca17 full_name: "__ndisc_fill_addr_option" } +elf_symbol { + id: 0x17b7dd8e + name: "__neigh_create" + is_defined: true + symbol_type: FUNCTION + crc: 0xc1d6b9bb + type_id: 0x189ae8f8 + full_name: "__neigh_create" +} elf_symbol { id: 0x9d90da6e name: "__netdev_alloc_frag_align" @@ -346970,6 +349105,15 @@ elf_symbol { type_id: 0x9bdfaf3f full_name: "__traceiter_android_rvh_cpuset_fork" } +elf_symbol { + id: 0x2941af77 + name: "__traceiter_android_rvh_create_worker" + is_defined: true + symbol_type: FUNCTION + crc: 0x255135f9 + type_id: 0x9bdde64f + full_name: "__traceiter_android_rvh_create_worker" +} elf_symbol { id: 0x44c5f919 name: "__traceiter_android_rvh_ctl_dirty_rate" @@ -347348,6 +349492,132 @@ elf_symbol { type_id: 0x9bdbdcc4 full_name: "__traceiter_android_rvh_new_task_stats" } +elf_symbol { + id: 0x0250206d + name: "__traceiter_android_rvh_ogki_audit_log_module_sign" + is_defined: true + symbol_type: FUNCTION + crc: 0x34c257d8 + type_id: 0x9a33392f + full_name: "__traceiter_android_rvh_ogki_audit_log_module_sign" +} +elf_symbol { + id: 0x87dd0245 + name: "__traceiter_android_rvh_ogki_audit_log_usercopy" + is_defined: true + symbol_type: FUNCTION + crc: 0x681c9b47 + type_id: 0x9a150ee4 + full_name: "__traceiter_android_rvh_ogki_audit_log_usercopy" +} +elf_symbol { + id: 0xe49b2192 + name: "__traceiter_android_rvh_ogki_check_task_tags" + is_defined: true + symbol_type: FUNCTION + crc: 0x4067715c + type_id: 0x9bdf0ac7 + full_name: "__traceiter_android_rvh_ogki_check_task_tags" +} +elf_symbol { + id: 0xe81b2ff2 + name: "__traceiter_android_rvh_ogki_get_task_rsum" + is_defined: true + symbol_type: FUNCTION + crc: 0x91a9594f + type_id: 0x9bd4253c + full_name: "__traceiter_android_rvh_ogki_get_task_rsum" +} +elf_symbol { + id: 0x7127a796 + name: "__traceiter_android_rvh_ogki_get_task_tags" + is_defined: true + symbol_type: FUNCTION + crc: 0xcc5dd2c0 + type_id: 0x9bd4253c + full_name: "__traceiter_android_rvh_ogki_get_task_tags" +} +elf_symbol { + id: 0xa9bee043 + name: "__traceiter_android_rvh_ogki_hievent_create" + is_defined: true + symbol_type: FUNCTION + crc: 0x992d2332 + type_id: 0x9aba8023 + full_name: "__traceiter_android_rvh_ogki_hievent_create" +} +elf_symbol { + id: 0x1423c23d + name: "__traceiter_android_rvh_ogki_hievent_destroy" + is_defined: true + symbol_type: FUNCTION + crc: 0x47dad76b + type_id: 0x9bcd4ff7 + full_name: "__traceiter_android_rvh_ogki_hievent_destroy" +} +elf_symbol { + id: 0x68075f38 + name: "__traceiter_android_rvh_ogki_hievent_put_integral" + is_defined: true + symbol_type: FUNCTION + crc: 0x16b356bd + type_id: 0x9bc22a10 + full_name: "__traceiter_android_rvh_ogki_hievent_put_integral" +} +elf_symbol { + id: 0xed153c40 + name: "__traceiter_android_rvh_ogki_hievent_put_string" + is_defined: true + symbol_type: FUNCTION + crc: 0xdbd913d5 + type_id: 0x9bc2374e + full_name: "__traceiter_android_rvh_ogki_hievent_put_string" +} +elf_symbol { + id: 0x9cb4de8a + name: "__traceiter_android_rvh_ogki_hievent_report" + is_defined: true + symbol_type: FUNCTION + crc: 0x2ca5b34a + type_id: 0x9bc999f4 + full_name: "__traceiter_android_rvh_ogki_hievent_report" +} +elf_symbol { + id: 0xb1116c8e + name: "__traceiter_android_rvh_ogki_task_util" + is_defined: true + symbol_type: FUNCTION + crc: 0xbafd696a + type_id: 0x9bda4f9c + full_name: "__traceiter_android_rvh_ogki_task_util" +} +elf_symbol { + id: 0xff1e12be + name: "__traceiter_android_rvh_ogki_uclamp_task_util" + is_defined: true + symbol_type: FUNCTION + crc: 0x3eaf049e + type_id: 0x9bda4f9c + full_name: "__traceiter_android_rvh_ogki_uclamp_task_util" +} +elf_symbol { + id: 0x8f96fe6c + name: "__traceiter_android_rvh_ogki_vfree_bypass" + is_defined: true + symbol_type: FUNCTION + crc: 0x6785ebe0 + type_id: 0x9b4fb5cf + full_name: "__traceiter_android_rvh_ogki_vfree_bypass" +} +elf_symbol { + id: 0x794ebe80 + name: "__traceiter_android_rvh_ogki_vmalloc_node_bypass" + is_defined: true + symbol_type: FUNCTION + crc: 0x3758838b + type_id: 0x9b5e34bb + full_name: "__traceiter_android_rvh_ogki_vmalloc_node_bypass" +} elf_symbol { id: 0xb51338de name: "__traceiter_android_rvh_override_creds" @@ -348887,6 +351157,24 @@ elf_symbol { type_id: 0x9b653d03 full_name: "__traceiter_android_vh_customize_alloc_gfp" } +elf_symbol { + id: 0x3444cc6c + name: "__traceiter_android_vh_customize_thp_gfp_orders" + is_defined: true + symbol_type: FUNCTION + crc: 0x53d7a35c + type_id: 0x9b758262 + full_name: "__traceiter_android_vh_customize_thp_gfp_orders" +} +elf_symbol { + id: 0x2bfcc3a6 + name: "__traceiter_android_vh_customize_thp_pcp_order" + is_defined: true + symbol_type: FUNCTION + crc: 0x70a4428c + type_id: 0x9bc07fe3 + full_name: "__traceiter_android_vh_customize_thp_pcp_order" +} elf_symbol { id: 0xbb17692f name: "__traceiter_android_vh_dc_receive" @@ -349472,6 +351760,15 @@ elf_symbol { type_id: 0x9b563284 full_name: "__traceiter_android_vh_handle_trylock_failed_folio" } +elf_symbol { + id: 0x2e323991 + name: "__traceiter_android_vh_inet_create" + is_defined: true + symbol_type: FUNCTION + crc: 0xcf197007 + type_id: 0x9bc1f57d + full_name: "__traceiter_android_vh_inet_create" +} elf_symbol { id: 0x3d32611b name: "__traceiter_android_vh_inet_csk_clone_lock" @@ -349553,6 +351850,15 @@ elf_symbol { type_id: 0x9bcd4ff7 full_name: "__traceiter_android_vh_jiffies_update" } +elf_symbol { + id: 0xe261e8cc + name: "__traceiter_android_vh_killed_process" + is_defined: true + symbol_type: FUNCTION + crc: 0x6c329cf7 + type_id: 0x9bdcdd91 + full_name: "__traceiter_android_vh_killed_process" +} elf_symbol { id: 0x19426a78 name: "__traceiter_android_vh_kmalloc_large_alloced" @@ -349913,6 +352219,186 @@ elf_symbol { type_id: 0x9b2239e7 full_name: "__traceiter_android_vh_mutex_wait_start" } +elf_symbol { + id: 0x1c5ab7ec + name: "__traceiter_android_vh_ogki_async_psi_bypass" + is_defined: true + symbol_type: FUNCTION + crc: 0x6e8e218a + type_id: 0x9be885da + full_name: "__traceiter_android_vh_ogki_async_psi_bypass" +} +elf_symbol { + id: 0xb514c5cc + name: "__traceiter_android_vh_ogki_audit_log_cfi" + is_defined: true + symbol_type: FUNCTION + crc: 0x53d0973f + type_id: 0x9b63fca9 + full_name: "__traceiter_android_vh_ogki_audit_log_cfi" +} +elf_symbol { + id: 0x056c5936 + name: "__traceiter_android_vh_ogki_audit_log_setid" + is_defined: true + symbol_type: FUNCTION + crc: 0x1011040e + type_id: 0x98bafce5 + full_name: "__traceiter_android_vh_ogki_audit_log_setid" +} +elf_symbol { + id: 0xd3e1b817 + name: "__traceiter_android_vh_ogki_check_vip_status" + is_defined: true + symbol_type: FUNCTION + crc: 0xbc38f702 + type_id: 0x9a2a81ab + full_name: "__traceiter_android_vh_ogki_check_vip_status" +} +elf_symbol { + id: 0x08789d6e + name: "__traceiter_android_vh_ogki_cma_alloc_retry" + is_defined: true + symbol_type: FUNCTION + crc: 0x72a1a9a9 + type_id: 0x9bb963fb + full_name: "__traceiter_android_vh_ogki_cma_alloc_retry" +} +elf_symbol { + id: 0x2853afc7 + name: "__traceiter_android_vh_ogki_f2fs_dsm" + is_defined: true + symbol_type: FUNCTION + crc: 0x4fec602c + type_id: 0x9ba47dcc + full_name: "__traceiter_android_vh_ogki_f2fs_dsm" +} +elf_symbol { + id: 0x910aba6d + name: "__traceiter_android_vh_ogki_f2fs_dsm_get" + is_defined: true + symbol_type: FUNCTION + crc: 0x9e4521e8 + type_id: 0x9b634f08 + full_name: "__traceiter_android_vh_ogki_f2fs_dsm_get" +} +elf_symbol { + id: 0xdf18f975 + name: "__traceiter_android_vh_ogki_get_log_usertype" + is_defined: true + symbol_type: FUNCTION + crc: 0x2d106700 + type_id: 0x9bc07fe3 + full_name: "__traceiter_android_vh_ogki_get_log_usertype" +} +elf_symbol { + id: 0xa86939b3 + name: "__traceiter_android_vh_ogki_hievent_to_jank" + is_defined: true + symbol_type: FUNCTION + crc: 0xb0a3eec5 + type_id: 0x9a2a0d8f + full_name: "__traceiter_android_vh_ogki_hievent_to_jank" +} +elf_symbol { + id: 0xfbaaa7e4 + name: "__traceiter_android_vh_ogki_kmem_cache_create_usercopy" + is_defined: true + symbol_type: FUNCTION + crc: 0x30a4ddfa + type_id: 0x9ab9affb + full_name: "__traceiter_android_vh_ogki_kmem_cache_create_usercopy" +} +elf_symbol { + id: 0x1b51fe53 + name: "__traceiter_android_vh_ogki_set_wifi_state_connect" + is_defined: true + symbol_type: FUNCTION + crc: 0x4600e1d4 + type_id: 0x9b50d5ea + full_name: "__traceiter_android_vh_ogki_set_wifi_state_connect" +} +elf_symbol { + id: 0xcd7341e4 + name: "__traceiter_android_vh_ogki_set_wifi_state_disconnect" + is_defined: true + symbol_type: FUNCTION + crc: 0xbd843b32 + type_id: 0x9b57f8b7 + full_name: "__traceiter_android_vh_ogki_set_wifi_state_disconnect" +} +elf_symbol { + id: 0xd61e33ef + name: "__traceiter_android_vh_ogki_tcp_rcv_estab_fastpath" + is_defined: true + symbol_type: FUNCTION + crc: 0xc8ab34b7 + type_id: 0x9bdaaaaa + full_name: "__traceiter_android_vh_ogki_tcp_rcv_estab_fastpath" +} +elf_symbol { + id: 0x59f99ad9 + name: "__traceiter_android_vh_ogki_tcp_rcv_estab_slowpath" + is_defined: true + symbol_type: FUNCTION + crc: 0x4688bbf5 + type_id: 0x9bdaaaaa + full_name: "__traceiter_android_vh_ogki_tcp_rcv_estab_slowpath" +} +elf_symbol { + id: 0xb274ab91 + name: "__traceiter_android_vh_ogki_tcp_rcv_rtt_update" + is_defined: true + symbol_type: FUNCTION + crc: 0x197a4c6d + type_id: 0x9bf38843 + full_name: "__traceiter_android_vh_ogki_tcp_rcv_rtt_update" +} +elf_symbol { + id: 0x2ae65d56 + name: "__traceiter_android_vh_ogki_tcp_retransmit_timer" + is_defined: true + symbol_type: FUNCTION + crc: 0x2cabcb91 + type_id: 0x9bdaaaaa + full_name: "__traceiter_android_vh_ogki_tcp_retransmit_timer" +} +elf_symbol { + id: 0x6af42306 + name: "__traceiter_android_vh_ogki_tcp_srtt_estimator" + is_defined: true + symbol_type: FUNCTION + crc: 0x3a17365a + type_id: 0x9bdaaaaa + full_name: "__traceiter_android_vh_ogki_tcp_srtt_estimator" +} +elf_symbol { + id: 0xf7d13588 + name: "__traceiter_android_vh_ogki_udp6_unicast_rcv_skb" + is_defined: true + symbol_type: FUNCTION + crc: 0x364a9726 + type_id: 0x9bbdd6cb + full_name: "__traceiter_android_vh_ogki_udp6_unicast_rcv_skb" +} +elf_symbol { + id: 0xd82b5082 + name: "__traceiter_android_vh_ogki_udp_unicast_rcv_skb" + is_defined: true + symbol_type: FUNCTION + crc: 0xc218b6e3 + type_id: 0x9bbdd6cb + full_name: "__traceiter_android_vh_ogki_udp_unicast_rcv_skb" +} +elf_symbol { + id: 0x084f4da7 + name: "__traceiter_android_vh_ogki_ufs_dsm" + is_defined: true + symbol_type: FUNCTION + crc: 0xc9060edf + type_id: 0x9bbd796e + full_name: "__traceiter_android_vh_ogki_ufs_dsm" +} elf_symbol { id: 0x724577f8 name: "__traceiter_android_vh_oom_swapmem_gather_finish" @@ -350075,6 +352561,24 @@ elf_symbol { type_id: 0x9a3ca31d full_name: "__traceiter_android_vh_process_madvise" } +elf_symbol { + id: 0x246a30af + name: "__traceiter_android_vh_process_madvise_begin" + is_defined: true + symbol_type: FUNCTION + crc: 0x3a633578 + type_id: 0x9bc214f0 + full_name: "__traceiter_android_vh_process_madvise_begin" +} +elf_symbol { + id: 0xb30b32e6 + name: "__traceiter_android_vh_process_madvise_iter" + is_defined: true + symbol_type: FUNCTION + crc: 0xe5d65859 + type_id: 0x9bc2eb7c + full_name: "__traceiter_android_vh_process_madvise_iter" +} elf_symbol { id: 0x0954df44 name: "__traceiter_android_vh_process_madvise_return_error" @@ -350597,6 +353101,15 @@ elf_symbol { type_id: 0x9b1657a8 full_name: "__traceiter_android_vh_should_continue_reclaim" } +elf_symbol { + id: 0xda8424a2 + name: "__traceiter_android_vh_should_fault_around" + is_defined: true + symbol_type: FUNCTION + crc: 0xd925d927 + type_id: 0x9b664ae7 + full_name: "__traceiter_android_vh_should_fault_around" +} elf_symbol { id: 0xf3144cdc name: "__traceiter_android_vh_show_mapcount_pages" @@ -350768,6 +353281,15 @@ elf_symbol { type_id: 0x9bb68fe1 full_name: "__traceiter_android_vh_smaps_swap_shared" } +elf_symbol { + id: 0x57cb67b6 + name: "__traceiter_android_vh_sock_create" + is_defined: true + symbol_type: FUNCTION + crc: 0xbe325f01 + type_id: 0x9bdaaaaa + full_name: "__traceiter_android_vh_sock_create" +} elf_symbol { id: 0x7068c1fb name: "__traceiter_android_vh_split_large_folio_bypass" @@ -351272,6 +353794,15 @@ elf_symbol { type_id: 0x9b87f766 full_name: "__traceiter_android_vh_update_vma_flags" } +elf_symbol { + id: 0xc2a5e712 + name: "__traceiter_android_vh_uplink_send_msg" + is_defined: true + symbol_type: FUNCTION + crc: 0x97e8fb9c + type_id: 0x9bdaaaaa + full_name: "__traceiter_android_vh_uplink_send_msg" +} elf_symbol { id: 0x0266a7bc name: "__traceiter_android_vh_uprobes_replace_page" @@ -352280,6 +354811,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_cpuset_fork" } +elf_symbol { + id: 0x2a923aa1 + name: "__tracepoint_android_rvh_create_worker" + is_defined: true + symbol_type: OBJECT + crc: 0xd02e93f6 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_create_worker" +} elf_symbol { id: 0xd9e47a83 name: "__tracepoint_android_rvh_ctl_dirty_rate" @@ -352658,6 +355198,132 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_new_task_stats" } +elf_symbol { + id: 0x37354e4f + name: "__tracepoint_android_rvh_ogki_audit_log_module_sign" + is_defined: true + symbol_type: OBJECT + crc: 0x32153fae + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_audit_log_module_sign" +} +elf_symbol { + id: 0x02a18e17 + name: "__tracepoint_android_rvh_ogki_audit_log_usercopy" + is_defined: true + symbol_type: OBJECT + crc: 0x056204dd + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_audit_log_usercopy" +} +elf_symbol { + id: 0xc3629aa4 + name: "__tracepoint_android_rvh_ogki_check_task_tags" + is_defined: true + symbol_type: OBJECT + crc: 0xbc11a5c8 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_check_task_tags" +} +elf_symbol { + id: 0x3fd4fa70 + name: "__tracepoint_android_rvh_ogki_get_task_rsum" + is_defined: true + symbol_type: OBJECT + crc: 0xb92b310e + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_get_task_rsum" +} +elf_symbol { + id: 0xfdb47178 + name: "__tracepoint_android_rvh_ogki_get_task_tags" + is_defined: true + symbol_type: OBJECT + crc: 0x0798137b + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_get_task_tags" +} +elf_symbol { + id: 0x39af4b45 + name: "__tracepoint_android_rvh_ogki_hievent_create" + is_defined: true + symbol_type: OBJECT + crc: 0xa66d3b4e + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_hievent_create" +} +elf_symbol { + id: 0x1256e683 + name: "__tracepoint_android_rvh_ogki_hievent_destroy" + is_defined: true + symbol_type: OBJECT + crc: 0xee18a0d3 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_hievent_destroy" +} +elf_symbol { + id: 0x240a698e + name: "__tracepoint_android_rvh_ogki_hievent_put_integral" + is_defined: true + symbol_type: OBJECT + crc: 0xfc9e4b3c + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_hievent_put_integral" +} +elf_symbol { + id: 0xd0ae00da + name: "__tracepoint_android_rvh_ogki_hievent_put_string" + is_defined: true + symbol_type: OBJECT + crc: 0x3928b78a + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_hievent_put_string" +} +elf_symbol { + id: 0x29f6df5c + name: "__tracepoint_android_rvh_ogki_hievent_report" + is_defined: true + symbol_type: OBJECT + crc: 0x669cae74 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_hievent_report" +} +elf_symbol { + id: 0x2e21dee8 + name: "__tracepoint_android_rvh_ogki_task_util" + is_defined: true + symbol_type: OBJECT + crc: 0xddb3a7d1 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_task_util" +} +elf_symbol { + id: 0xe6d76394 + name: "__tracepoint_android_rvh_ogki_uclamp_task_util" + is_defined: true + symbol_type: OBJECT + crc: 0x63e8bd78 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_uclamp_task_util" +} +elf_symbol { + id: 0x2c30682a + name: "__tracepoint_android_rvh_ogki_vfree_bypass" + is_defined: true + symbol_type: OBJECT + crc: 0x30a5fbf5 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_vfree_bypass" +} +elf_symbol { + id: 0x68a8b37a + name: "__tracepoint_android_rvh_ogki_vmalloc_node_bypass" + is_defined: true + symbol_type: OBJECT + crc: 0xf7bf156d + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_ogki_vmalloc_node_bypass" +} elf_symbol { id: 0xdf21a7cc name: "__tracepoint_android_rvh_override_creds" @@ -354197,6 +356863,24 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_customize_alloc_gfp" } +elf_symbol { + id: 0x66823d32 + name: "__tracepoint_android_vh_customize_thp_gfp_orders" + is_defined: true + symbol_type: OBJECT + crc: 0xf3f684c7 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_customize_thp_gfp_orders" +} +elf_symbol { + id: 0xc47ad4bc + name: "__tracepoint_android_vh_customize_thp_pcp_order" + is_defined: true + symbol_type: OBJECT + crc: 0x366195af + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_customize_thp_pcp_order" +} elf_symbol { id: 0x869fd955 name: "__tracepoint_android_vh_dc_receive" @@ -354782,6 +357466,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_handle_trylock_failed_folio" } +elf_symbol { + id: 0xee2c17ff + name: "__tracepoint_android_vh_inet_create" + is_defined: true + symbol_type: OBJECT + crc: 0xb2074568 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_inet_create" +} elf_symbol { id: 0xdab6baf5 name: "__tracepoint_android_vh_inet_csk_clone_lock" @@ -354863,6 +357556,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_jiffies_update" } +elf_symbol { + id: 0xa48390ca + name: "__tracepoint_android_vh_killed_process" + is_defined: true + symbol_type: OBJECT + crc: 0x39e06e59 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_killed_process" +} elf_symbol { id: 0xb1f4423e name: "__tracepoint_android_vh_kmalloc_large_alloced" @@ -355223,6 +357925,186 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_mutex_wait_start" } +elf_symbol { + id: 0x830fa786 + name: "__tracepoint_android_vh_ogki_async_psi_bypass" + is_defined: true + symbol_type: OBJECT + crc: 0x1dcccb4c + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_async_psi_bypass" +} +elf_symbol { + id: 0x36cbe626 + name: "__tracepoint_android_vh_ogki_audit_log_cfi" + is_defined: true + symbol_type: OBJECT + crc: 0xb8dcf8a7 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_audit_log_cfi" +} +elf_symbol { + id: 0xcda04300 + name: "__tracepoint_android_vh_ogki_audit_log_setid" + is_defined: true + symbol_type: OBJECT + crc: 0x1ae59dd7 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_audit_log_setid" +} +elf_symbol { + id: 0x508ff939 + name: "__tracepoint_android_vh_ogki_check_vip_status" + is_defined: true + symbol_type: OBJECT + crc: 0x9c278f9d + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_check_vip_status" +} +elf_symbol { + id: 0x0d872dfc + name: "__tracepoint_android_vh_ogki_cma_alloc_retry" + is_defined: true + symbol_type: OBJECT + crc: 0xaad1824c + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_cma_alloc_retry" +} +elf_symbol { + id: 0xd4b0bfc9 + name: "__tracepoint_android_vh_ogki_f2fs_dsm" + is_defined: true + symbol_type: OBJECT + crc: 0xa4014ddb + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_f2fs_dsm" +} +elf_symbol { + id: 0x4be59f2f + name: "__tracepoint_android_vh_ogki_f2fs_dsm_get" + is_defined: true + symbol_type: OBJECT + crc: 0x727e2432 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_f2fs_dsm_get" +} +elf_symbol { + id: 0xa9eb9293 + name: "__tracepoint_android_vh_ogki_get_log_usertype" + is_defined: true + symbol_type: OBJECT + crc: 0x5184022e + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_get_log_usertype" +} +elf_symbol { + id: 0x5363abe5 + name: "__tracepoint_android_vh_ogki_hievent_to_jank" + is_defined: true + symbol_type: OBJECT + crc: 0xc12c59aa + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_hievent_to_jank" +} +elf_symbol { + id: 0x90dcde6e + name: "__tracepoint_android_vh_ogki_kmem_cache_create_usercopy" + is_defined: true + symbol_type: OBJECT + crc: 0x71688f36 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_kmem_cache_create_usercopy" +} +elf_symbol { + id: 0x58026979 + name: "__tracepoint_android_vh_ogki_set_wifi_state_connect" + is_defined: true + symbol_type: OBJECT + crc: 0xb5be14de + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_set_wifi_state_connect" +} +elf_symbol { + id: 0xdce225e2 + name: "__tracepoint_android_vh_ogki_set_wifi_state_disconnect" + is_defined: true + symbol_type: OBJECT + crc: 0x4222a8c6 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_set_wifi_state_disconnect" +} +elf_symbol { + id: 0x61d7ab71 + name: "__tracepoint_android_vh_ogki_tcp_rcv_estab_fastpath" + is_defined: true + symbol_type: OBJECT + crc: 0xfe827ca3 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_tcp_rcv_estab_fastpath" +} +elf_symbol { + id: 0xb3a0d4ef + name: "__tracepoint_android_vh_ogki_tcp_rcv_estab_slowpath" + is_defined: true + symbol_type: OBJECT + crc: 0x8ba74170 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_tcp_rcv_estab_slowpath" +} +elf_symbol { + id: 0x63e85da3 + name: "__tracepoint_android_vh_ogki_tcp_rcv_rtt_update" + is_defined: true + symbol_type: OBJECT + crc: 0xdb3500ce + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_tcp_rcv_rtt_update" +} +elf_symbol { + id: 0x31a26808 + name: "__tracepoint_android_vh_ogki_tcp_retransmit_timer" + is_defined: true + symbol_type: OBJECT + crc: 0x9935d1b0 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_tcp_retransmit_timer" +} +elf_symbol { + id: 0xa2a2dfac + name: "__tracepoint_android_vh_ogki_tcp_srtt_estimator" + is_defined: true + symbol_type: OBJECT + crc: 0xe55e3666 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_tcp_srtt_estimator" +} +elf_symbol { + id: 0x32321776 + name: "__tracepoint_android_vh_ogki_udp6_unicast_rcv_skb" + is_defined: true + symbol_type: OBJECT + crc: 0x61889d45 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_udp6_unicast_rcv_skb" +} +elf_symbol { + id: 0xd716ec80 + name: "__tracepoint_android_vh_ogki_udp_unicast_rcv_skb" + is_defined: true + symbol_type: OBJECT + crc: 0x612cb786 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_udp_unicast_rcv_skb" +} +elf_symbol { + id: 0x62ffe4fd + name: "__tracepoint_android_vh_ogki_ufs_dsm" + is_defined: true + symbol_type: OBJECT + crc: 0x7f265135 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ogki_ufs_dsm" +} elf_symbol { id: 0xdfe6a3ee name: "__tracepoint_android_vh_oom_swapmem_gather_finish" @@ -355385,6 +358267,24 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_process_madvise" } +elf_symbol { + id: 0x1185eadd + name: "__tracepoint_android_vh_process_madvise_begin" + is_defined: true + symbol_type: OBJECT + crc: 0x63bf0cc9 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_process_madvise_begin" +} +elf_symbol { + id: 0x5f208298 + name: "__tracepoint_android_vh_process_madvise_iter" + is_defined: true + symbol_type: OBJECT + crc: 0x7116199f + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_process_madvise_iter" +} elf_symbol { id: 0x8d3808ce name: "__tracepoint_android_vh_process_madvise_return_error" @@ -355907,6 +358807,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_should_continue_reclaim" } +elf_symbol { + id: 0x88acddf0 + name: "__tracepoint_android_vh_should_fault_around" + is_defined: true + symbol_type: OBJECT + crc: 0xd0a33c79 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_should_fault_around" +} elf_symbol { id: 0x288e392e name: "__tracepoint_android_vh_show_mapcount_pages" @@ -356078,6 +358987,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_smaps_swap_shared" } +elf_symbol { + id: 0xb11763a0 + name: "__tracepoint_android_vh_sock_create" + is_defined: true + symbol_type: OBJECT + crc: 0xa07293cf + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_sock_create" +} elf_symbol { id: 0x02bb68bd name: "__tracepoint_android_vh_split_large_folio_bypass" @@ -356582,6 +359500,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_update_vma_flags" } +elf_symbol { + id: 0x56b11d7c + name: "__tracepoint_android_vh_uplink_send_msg" + is_defined: true + symbol_type: OBJECT + crc: 0xa1936286 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_uplink_send_msg" +} elf_symbol { id: 0x7d0336a2 name: "__tracepoint_android_vh_uprobes_replace_page" @@ -364892,6 +367819,15 @@ elf_symbol { type_id: 0x2d64ae3e full_name: "default_llseek" } +elf_symbol { + id: 0xaf548a8c + name: "default_qdisc_ops" + is_defined: true + symbol_type: OBJECT + crc: 0xdf02cf4d + type_id: 0x30cae1c6 + full_name: "default_qdisc_ops" +} elf_symbol { id: 0x44b5caf9 name: "default_wake_function" @@ -364974,6 +367910,15 @@ elf_symbol { type_id: 0x16ae968e full_name: "destroy_workqueue" } +elf_symbol { + id: 0x7fc68fdb + name: "dev_activate" + is_defined: true + symbol_type: FUNCTION + crc: 0xbee04518 + type_id: 0x1c31d966 + full_name: "dev_activate" +} elf_symbol { id: 0x31d27334 name: "dev_add_pack" @@ -365055,6 +368000,15 @@ elf_symbol { type_id: 0x1052519d full_name: "dev_coredumpv" } +elf_symbol { + id: 0x10de32c8 + name: "dev_deactivate" + is_defined: true + symbol_type: FUNCTION + crc: 0xbab838f0 + type_id: 0x1c31d966 + full_name: "dev_deactivate" +} elf_symbol { id: 0x641371dc name: "dev_driver_string" @@ -365172,6 +368126,15 @@ elf_symbol { type_id: 0xfc7fe8d8 full_name: "dev_getfirstbyhwtype" } +elf_symbol { + id: 0xc7ab95e4 + name: "dev_graft_qdisc" + is_defined: true + symbol_type: FUNCTION + crc: 0x80cba650 + type_id: 0xef356aa2 + full_name: "dev_graft_qdisc" +} elf_symbol { id: 0x8c0b66d7 name: "dev_kfree_skb_any_reason" @@ -373538,6 +376501,15 @@ elf_symbol { type_id: 0x1784717f full_name: "drm_rect_rotate" } +elf_symbol { + id: 0xf836eb53 + name: "drm_rect_rotate_inv" + is_defined: true + symbol_type: FUNCTION + crc: 0x6e30ba8e + type_id: 0x1784717f + full_name: "drm_rect_rotate_inv" +} elf_symbol { id: 0xa9f64e27 name: "drm_release" @@ -374692,6 +377664,15 @@ elf_symbol { type_id: 0xf06a5b8e full_name: "ethtool_convert_link_mode_to_legacy_u32" } +elf_symbol { + id: 0x070e04f6 + name: "ethtool_dev_mm_supported" + is_defined: true + symbol_type: FUNCTION + crc: 0x7b3ca9bb + type_id: 0xf20dd3f1 + full_name: "ethtool_dev_mm_supported" +} elf_symbol { id: 0xd3082d07 name: "ethtool_op_get_link" @@ -375387,6 +378368,15 @@ elf_symbol { type_id: 0x82854b3f full_name: "flow_keys_dissector" } +elf_symbol { + id: 0xdf121e19 + name: "flow_rule_alloc" + is_defined: true + symbol_type: FUNCTION + crc: 0xec41b6f7 + type_id: 0x5221a908 + full_name: "flow_rule_alloc" +} elf_symbol { id: 0xdf189e23 name: "flow_rule_match_basic" @@ -377875,6 +380865,15 @@ elf_symbol { type_id: 0xf1d83496 full_name: "glob_match" } +elf_symbol { + id: 0xb096071e + name: "gnet_stats_add_basic" + is_defined: true + symbol_type: FUNCTION + crc: 0x8d5cd9f4 + type_id: 0x10e9600e + full_name: "gnet_stats_add_basic" +} elf_symbol { id: 0x7990bc50 name: "gnet_stats_add_queue" @@ -377884,6 +380883,15 @@ elf_symbol { type_id: 0x13072e26 full_name: "gnet_stats_add_queue" } +elf_symbol { + id: 0xa9715193 + name: "gnet_stats_basic_sync_init" + is_defined: true + symbol_type: FUNCTION + crc: 0x866a62b2 + type_id: 0x10efdacd + full_name: "gnet_stats_basic_sync_init" +} elf_symbol { id: 0x8a6e138f name: "gnet_stats_copy_basic" @@ -383240,6 +386248,15 @@ elf_symbol { type_id: 0x73531faf full_name: "jiffies_64_to_clock_t" } +elf_symbol { + id: 0x01438401 + name: "jiffies_to_clock_t" + is_defined: true + symbol_type: FUNCTION + crc: 0x7d0db45c + type_id: 0x416f964c + full_name: "jiffies_to_clock_t" +} elf_symbol { id: 0x9175ce1c name: "jiffies_to_msecs" @@ -384727,6 +387744,15 @@ elf_symbol { type_id: 0xb4bb7eb3 full_name: "ktime_get_with_offset" } +elf_symbol { + id: 0xeb1e647c + name: "ktime_mono_to_any" + is_defined: true + symbol_type: FUNCTION + crc: 0x6d6fec1f + type_id: 0x9916f8e5 + full_name: "ktime_mono_to_any" +} elf_symbol { id: 0x4026efa6 name: "kunit_binary_assert_format" @@ -387409,6 +390435,15 @@ elf_symbol { type_id: 0x986b6304 full_name: "mpage_writepages" } +elf_symbol { + id: 0x80a63ee1 + name: "mq_change_real_num_tx" + is_defined: true + symbol_type: FUNCTION + crc: 0x38939df4 + type_id: 0x1a2d13ca + full_name: "mq_change_real_num_tx" +} elf_symbol { id: 0xaa427980 name: "msi_domain_first_desc" @@ -387796,6 +390831,15 @@ elf_symbol { type_id: 0x1caf28d1 full_name: "netdev_info" } +elf_symbol { + id: 0x5635039f + name: "netdev_is_rx_handler_busy" + is_defined: true + symbol_type: FUNCTION + crc: 0x5d067cdb + type_id: 0xf20dd3f1 + full_name: "netdev_is_rx_handler_busy" +} elf_symbol { id: 0x5a4e487e name: "netdev_lower_state_changed" @@ -388129,6 +391173,15 @@ elf_symbol { type_id: 0x91c903b5 full_name: "netif_set_xps_queue" } +elf_symbol { + id: 0x7efe2259 + name: "netif_skb_features" + is_defined: true + symbol_type: FUNCTION + crc: 0x516370b7 + type_id: 0xa7fa3f5c + full_name: "netif_skb_features" +} elf_symbol { id: 0x5f6243cf name: "netif_stacked_transfer_operstate" @@ -392103,6 +395156,15 @@ elf_symbol { type_id: 0x1732fd5e full_name: "perf_trace_run_bpf_submit" } +elf_symbol { + id: 0x018498a2 + name: "pfifo_fast_ops" + is_defined: true + symbol_type: OBJECT + crc: 0x8fe89dc0 + type_id: 0xd5ea309d + full_name: "pfifo_fast_ops" +} elf_symbol { id: 0x1e700c22 name: "pfifo_qdisc_ops" @@ -392184,6 +395246,15 @@ elf_symbol { type_id: 0x91ec6dfe full_name: "phy_connect_direct" } +elf_symbol { + id: 0x2bf61c61 + name: "phy_create_lookup" + is_defined: true + symbol_type: FUNCTION + crc: 0x83af7e25 + type_id: 0x9f8801da + full_name: "phy_create_lookup" +} elf_symbol { id: 0x5ebc16d0 name: "phy_disconnect" @@ -395380,6 +398451,15 @@ elf_symbol { type_id: 0x1c80fcb1 full_name: "qdisc_offload_graft_helper" } +elf_symbol { + id: 0x90466af9 + name: "qdisc_offload_query_caps" + is_defined: true + symbol_type: FUNCTION + crc: 0xd59c1375 + type_id: 0x1cae8333 + full_name: "qdisc_offload_query_caps" +} elf_symbol { id: 0x78f8d020 name: "qdisc_put" @@ -395425,6 +398505,15 @@ elf_symbol { type_id: 0x1f5c5adf full_name: "qdisc_watchdog_init" } +elf_symbol { + id: 0x508d9501 + name: "qdisc_watchdog_init_clockid" + is_defined: true + symbol_type: FUNCTION + crc: 0x06719be5 + type_id: 0x1f4d44f1 + full_name: "qdisc_watchdog_init_clockid" +} elf_symbol { id: 0x7d9c9dda name: "qdisc_watchdog_schedule_range_ns" @@ -398225,6 +401314,15 @@ elf_symbol { type_id: 0x9d80e32f full_name: "rtnl_is_locked" } +elf_symbol { + id: 0x730105d4 + name: "rtnl_kfree_skbs" + is_defined: true + symbol_type: FUNCTION + crc: 0x1e95168f + type_id: 0x11deb671 + full_name: "rtnl_kfree_skbs" +} elf_symbol { id: 0x8c0dd14a name: "rtnl_link_register" @@ -401207,6 +404305,51 @@ elf_symbol { type_id: 0x9dc52cf1 full_name: "skb_ensure_writable" } +elf_symbol { + id: 0x414be22e + name: "skb_flow_dissect_ct" + is_defined: true + symbol_type: FUNCTION + crc: 0xad32f9de + type_id: 0x1faed94e + full_name: "skb_flow_dissect_ct" +} +elf_symbol { + id: 0x020865bd + name: "skb_flow_dissect_hash" + is_defined: true + symbol_type: FUNCTION + crc: 0x77eb811f + type_id: 0x1fae5edf + full_name: "skb_flow_dissect_hash" +} +elf_symbol { + id: 0xb3f58cb2 + name: "skb_flow_dissect_meta" + is_defined: true + symbol_type: FUNCTION + crc: 0xf64f2c02 + type_id: 0x1fae5edf + full_name: "skb_flow_dissect_meta" +} +elf_symbol { + id: 0x236e8eb5 + name: "skb_flow_dissect_tunnel_info" + is_defined: true + symbol_type: FUNCTION + crc: 0x108b45a7 + type_id: 0x1fae5edf + full_name: "skb_flow_dissect_tunnel_info" +} +elf_symbol { + id: 0xd1a5a209 + name: "skb_flow_dissector_init" + is_defined: true + symbol_type: FUNCTION + crc: 0x82f9219d + type_id: 0x1af68d6f + full_name: "skb_flow_dissector_init" +} elf_symbol { id: 0xca7402ca name: "skb_free_datagram" @@ -401972,6 +405115,15 @@ elf_symbol { type_id: 0xac45ce43 full_name: "snd_pcm_format_linear" } +elf_symbol { + id: 0xf76bb227 + name: "snd_pcm_format_name" + is_defined: true + symbol_type: FUNCTION + crc: 0xa286a234 + type_id: 0xa3813acf + full_name: "snd_pcm_format_name" +} elf_symbol { id: 0xcd9887e8 name: "snd_pcm_format_physical_width" @@ -403961,6 +407113,15 @@ elf_symbol { type_id: 0x99d969f9 full_name: "sock_no_socketpair" } +elf_symbol { + id: 0x96e969d8 + name: "sock_queue_err_skb" + is_defined: true + symbol_type: FUNCTION + crc: 0xb6493e73 + type_id: 0x9ac4d210 + full_name: "sock_queue_err_skb" +} elf_symbol { id: 0xc4ac81a3 name: "sock_queue_rcv_skb_reason" @@ -405668,6 +408829,87 @@ elf_symbol { type_id: 0xf4933b90 full_name: "tasklist_lock" } +elf_symbol { + id: 0xbdf90845 + name: "tc_cleanup_offload_action" + is_defined: true + symbol_type: FUNCTION + crc: 0x9e89b12c + type_id: 0x1eb68031 + full_name: "tc_cleanup_offload_action" +} +elf_symbol { + id: 0x1a591d57 + name: "tc_setup_cb_add" + is_defined: true + symbol_type: FUNCTION + crc: 0xb7dd2f47 + type_id: 0x933cebfd + full_name: "tc_setup_cb_add" +} +elf_symbol { + id: 0xf099d343 + name: "tc_setup_cb_call" + is_defined: true + symbol_type: FUNCTION + crc: 0x6ff9664f + type_id: 0x938d088e + full_name: "tc_setup_cb_call" +} +elf_symbol { + id: 0xadb59b05 + name: "tc_setup_cb_destroy" + is_defined: true + symbol_type: FUNCTION + crc: 0xb72f715d + type_id: 0x933cebfd + full_name: "tc_setup_cb_destroy" +} +elf_symbol { + id: 0xbfd2d0d2 + name: "tc_setup_cb_reoffload" + is_defined: true + symbol_type: FUNCTION + crc: 0x39ee675d + type_id: 0x932e1cba + full_name: "tc_setup_cb_reoffload" +} +elf_symbol { + id: 0x988023d7 + name: "tc_setup_offload_action" + is_defined: true + symbol_type: FUNCTION + crc: 0x90b02767 + type_id: 0x934097b0 + full_name: "tc_setup_offload_action" +} +elf_symbol { + id: 0xca2d2a6b + name: "tc_skb_ext_tc_disable" + is_defined: true + symbol_type: FUNCTION + crc: 0x7dc5ffa7 + type_id: 0x10985193 + full_name: "tc_skb_ext_tc_disable" +} +elf_symbol { + id: 0xbddc0e4e + name: "tc_skb_ext_tc_enable" + is_defined: true + symbol_type: FUNCTION + crc: 0x86dd708d + type_id: 0x10985193 + full_name: "tc_skb_ext_tc_enable" +} +elf_symbol { + id: 0xd6059721 + name: "tcf_action_check_ctrlact" + is_defined: true + symbol_type: FUNCTION + crc: 0x1ba29df0 + type_id: 0x846ed06b + full_name: "tcf_action_check_ctrlact" +} elf_symbol { id: 0x01cdd14d name: "tcf_action_exec" @@ -405677,6 +408919,33 @@ elf_symbol { type_id: 0x9cdfbc5a full_name: "tcf_action_exec" } +elf_symbol { + id: 0x2d797653 + name: "tcf_action_set_ctrlact" + is_defined: true + symbol_type: FUNCTION + crc: 0xcfb94e78 + type_id: 0xd6fcc6b4 + full_name: "tcf_action_set_ctrlact" +} +elf_symbol { + id: 0xd4d51230 + name: "tcf_action_update_hw_stats" + is_defined: true + symbol_type: FUNCTION + crc: 0x3d57b0f8 + type_id: 0x926a291d + full_name: "tcf_action_update_hw_stats" +} +elf_symbol { + id: 0x2fba8b59 + name: "tcf_action_update_stats" + is_defined: true + symbol_type: FUNCTION + crc: 0x82b1dbbe + type_id: 0x1d1ccc70 + full_name: "tcf_action_update_stats" +} elf_symbol { id: 0x5c71ae40 name: "tcf_block_get" @@ -405695,6 +408964,15 @@ elf_symbol { type_id: 0x1e089e10 full_name: "tcf_block_put" } +elf_symbol { + id: 0xcda1c9b0 + name: "tcf_chain_put_by_act" + is_defined: true + symbol_type: FUNCTION + crc: 0xb44d5312 + type_id: 0x163a90aa + full_name: "tcf_chain_put_by_act" +} elf_symbol { id: 0xef103e2f name: "tcf_classify" @@ -405740,6 +409018,24 @@ elf_symbol { type_id: 0x994ef16f full_name: "tcf_exts_init_ex" } +elf_symbol { + id: 0xcc0525bc + name: "tcf_exts_num_actions" + is_defined: true + symbol_type: FUNCTION + crc: 0x6e03a1a2 + type_id: 0xca3fb0b0 + full_name: "tcf_exts_num_actions" +} +elf_symbol { + id: 0xb8aeb338 + name: "tcf_exts_terse_dump" + is_defined: true + symbol_type: FUNCTION + crc: 0x66d9396a + type_id: 0x9c9d758d + full_name: "tcf_exts_terse_dump" +} elf_symbol { id: 0xd6adc7e6 name: "tcf_exts_validate" @@ -405749,6 +409045,60 @@ elf_symbol { type_id: 0x9e8d7e1b full_name: "tcf_exts_validate" } +elf_symbol { + id: 0xe0bd8904 + name: "tcf_exts_validate_ex" + is_defined: true + symbol_type: FUNCTION + crc: 0x9768b75f + type_id: 0x9e8d7e28 + full_name: "tcf_exts_validate_ex" +} +elf_symbol { + id: 0x199994d8 + name: "tcf_idr_check_alloc" + is_defined: true + symbol_type: FUNCTION + crc: 0x89397b73 + type_id: 0x99777843 + full_name: "tcf_idr_check_alloc" +} +elf_symbol { + id: 0xf8fc1781 + name: "tcf_idr_cleanup" + is_defined: true + symbol_type: FUNCTION + crc: 0x57a4c945 + type_id: 0x17a860a1 + full_name: "tcf_idr_cleanup" +} +elf_symbol { + id: 0x7d1274eb + name: "tcf_idr_create_from_flags" + is_defined: true + symbol_type: FUNCTION + crc: 0x75826656 + type_id: 0x9ab82f4e + full_name: "tcf_idr_create_from_flags" +} +elf_symbol { + id: 0xff33b55b + name: "tcf_idr_release" + is_defined: true + symbol_type: FUNCTION + crc: 0xab6af518 + type_id: 0x93dfd462 + full_name: "tcf_idr_release" +} +elf_symbol { + id: 0x9945c609 + name: "tcf_idrinfo_destroy" + is_defined: true + symbol_type: FUNCTION + crc: 0x8cf846dd + type_id: 0x1ed96c59 + full_name: "tcf_idrinfo_destroy" +} elf_symbol { id: 0xcc386657 name: "tcf_queue_work" @@ -405758,6 +409108,24 @@ elf_symbol { type_id: 0xf39dedcb full_name: "tcf_queue_work" } +elf_symbol { + id: 0x529a9e72 + name: "tcf_register_action" + is_defined: true + symbol_type: FUNCTION + crc: 0xdafa80d5 + type_id: 0x98511587 + full_name: "tcf_register_action" +} +elf_symbol { + id: 0x99d5bf98 + name: "tcf_unregister_action" + is_defined: true + symbol_type: FUNCTION + crc: 0x24c98b1d + type_id: 0x98511587 + full_name: "tcf_unregister_action" +} elf_symbol { id: 0x3c52a978 name: "tcp_bpf_sendmsg_redir" @@ -415710,6 +419078,7 @@ interface { symbol_id: 0x6c942f5c symbol_id: 0xe29f2fd9 symbol_id: 0x8b8ae791 + symbol_id: 0x17b7dd8e symbol_id: 0x9d90da6e symbol_id: 0x6793e03f symbol_id: 0x17112d4d @@ -415861,6 +419230,7 @@ interface { symbol_id: 0x1baec33d symbol_id: 0xf5806276 symbol_id: 0x1a7f4cf6 + symbol_id: 0x2941af77 symbol_id: 0x44c5f919 symbol_id: 0x8f1b1c1e symbol_id: 0xd6290b85 @@ -415903,6 +419273,20 @@ interface { symbol_id: 0x7c212080 symbol_id: 0x1ea5d323 symbol_id: 0x0d22882d + symbol_id: 0x0250206d + symbol_id: 0x87dd0245 + symbol_id: 0xe49b2192 + symbol_id: 0xe81b2ff2 + symbol_id: 0x7127a796 + symbol_id: 0xa9bee043 + symbol_id: 0x1423c23d + symbol_id: 0x68075f38 + symbol_id: 0xed153c40 + symbol_id: 0x9cb4de8a + symbol_id: 0xb1116c8e + symbol_id: 0xff1e12be + symbol_id: 0x8f96fe6c + symbol_id: 0x794ebe80 symbol_id: 0xb51338de symbol_id: 0xc463ba81 symbol_id: 0x21c681ad @@ -416074,6 +419458,8 @@ interface { symbol_id: 0x431c5bf5 symbol_id: 0x9f47ed94 symbol_id: 0x96cfd964 + symbol_id: 0x3444cc6c + symbol_id: 0x2bfcc3a6 symbol_id: 0xbb17692f symbol_id: 0xc8db6e69 symbol_id: 0x45f41f73 @@ -416139,6 +419525,7 @@ interface { symbol_id: 0x83b45f32 symbol_id: 0x47a1ebbd symbol_id: 0x2b2d07aa + symbol_id: 0x2e323991 symbol_id: 0x3d32611b symbol_id: 0x2b3e4b23 symbol_id: 0x7cd03d83 @@ -416148,6 +419535,7 @@ interface { symbol_id: 0x0bf41403 symbol_id: 0x4dca46cc symbol_id: 0xf83fbd26 + symbol_id: 0xe261e8cc symbol_id: 0x19426a78 symbol_id: 0x04e61b81 symbol_id: 0x0992491b @@ -416188,6 +419576,26 @@ interface { symbol_id: 0x0b2ba11b symbol_id: 0xe17999f4 symbol_id: 0x721b87b7 + symbol_id: 0x1c5ab7ec + symbol_id: 0xb514c5cc + symbol_id: 0x056c5936 + symbol_id: 0xd3e1b817 + symbol_id: 0x08789d6e + symbol_id: 0x2853afc7 + symbol_id: 0x910aba6d + symbol_id: 0xdf18f975 + symbol_id: 0xa86939b3 + symbol_id: 0xfbaaa7e4 + symbol_id: 0x1b51fe53 + symbol_id: 0xcd7341e4 + symbol_id: 0xd61e33ef + symbol_id: 0x59f99ad9 + symbol_id: 0xb274ab91 + symbol_id: 0x2ae65d56 + symbol_id: 0x6af42306 + symbol_id: 0xf7d13588 + symbol_id: 0xd82b5082 + symbol_id: 0x084f4da7 symbol_id: 0x724577f8 symbol_id: 0xac55c769 symbol_id: 0xacaadcc9 @@ -416206,6 +419614,8 @@ interface { symbol_id: 0xeba1d6c7 symbol_id: 0x204c04f7 symbol_id: 0x46ce0353 + symbol_id: 0x246a30af + symbol_id: 0xb30b32e6 symbol_id: 0x0954df44 symbol_id: 0x574e7b58 symbol_id: 0xf2c39651 @@ -416264,6 +419674,7 @@ interface { symbol_id: 0x70e34072 symbol_id: 0x53263f73 symbol_id: 0xe828d15b + symbol_id: 0xda8424a2 symbol_id: 0xf3144cdc symbol_id: 0x4d31a413 symbol_id: 0xe7f6f975 @@ -416283,6 +419694,7 @@ interface { symbol_id: 0xcc89dffc symbol_id: 0x08f4cbb0 symbol_id: 0xa082ad86 + symbol_id: 0x57cb67b6 symbol_id: 0x7068c1fb symbol_id: 0x445e3749 symbol_id: 0x3f14ea30 @@ -416339,6 +419751,7 @@ interface { symbol_id: 0xff3c2c62 symbol_id: 0x6a8145ff symbol_id: 0xf12d501f + symbol_id: 0xc2a5e712 symbol_id: 0x0266a7bc symbol_id: 0xd0e4682b symbol_id: 0x08824ed3 @@ -416451,6 +419864,7 @@ interface { symbol_id: 0x9f779ef7 symbol_id: 0x331f5cf0 symbol_id: 0xc53e6388 + symbol_id: 0x2a923aa1 symbol_id: 0xd9e47a83 symbol_id: 0x3eb0f084 symbol_id: 0x832ab9cf @@ -416493,6 +419907,20 @@ interface { symbol_id: 0x99d57c12 symbol_id: 0x3cb4db49 symbol_id: 0x62726c6f + symbol_id: 0x37354e4f + symbol_id: 0x02a18e17 + symbol_id: 0xc3629aa4 + symbol_id: 0x3fd4fa70 + symbol_id: 0xfdb47178 + symbol_id: 0x39af4b45 + symbol_id: 0x1256e683 + symbol_id: 0x240a698e + symbol_id: 0xd0ae00da + symbol_id: 0x29f6df5c + symbol_id: 0x2e21dee8 + symbol_id: 0xe6d76394 + symbol_id: 0x2c30682a + symbol_id: 0x68a8b37a symbol_id: 0xdf21a7cc symbol_id: 0xeea6bf23 symbol_id: 0xee3719e3 @@ -416664,6 +420092,8 @@ interface { symbol_id: 0x66a766d7 symbol_id: 0xc44d61e6 symbol_id: 0x611b30be + symbol_id: 0x66823d32 + symbol_id: 0xc47ad4bc symbol_id: 0x869fd955 symbol_id: 0xaab0786f symbol_id: 0x5e32ebbd @@ -416729,6 +420159,7 @@ interface { symbol_id: 0x4756cfec symbol_id: 0x209f19bb symbol_id: 0x90e3616c + symbol_id: 0xee2c17ff symbol_id: 0xdab6baf5 symbol_id: 0x52cc3d91 symbol_id: 0xba330301 @@ -416738,6 +420169,7 @@ interface { symbol_id: 0x31457bed symbol_id: 0x62c13726 symbol_id: 0xafbca760 + symbol_id: 0xa48390ca symbol_id: 0xb1f4423e symbol_id: 0x918a6f4b symbol_id: 0x8bd577fd @@ -416778,6 +420210,26 @@ interface { symbol_id: 0x68d68809 symbol_id: 0x76e879b6 symbol_id: 0xae5bbde9 + symbol_id: 0x830fa786 + symbol_id: 0x36cbe626 + symbol_id: 0xcda04300 + symbol_id: 0x508ff939 + symbol_id: 0x0d872dfc + symbol_id: 0xd4b0bfc9 + symbol_id: 0x4be59f2f + symbol_id: 0xa9eb9293 + symbol_id: 0x5363abe5 + symbol_id: 0x90dcde6e + symbol_id: 0x58026979 + symbol_id: 0xdce225e2 + symbol_id: 0x61d7ab71 + symbol_id: 0xb3a0d4ef + symbol_id: 0x63e85da3 + symbol_id: 0x31a26808 + symbol_id: 0xa2a2dfac + symbol_id: 0x32321776 + symbol_id: 0xd716ec80 + symbol_id: 0x62ffe4fd symbol_id: 0xdfe6a3ee symbol_id: 0x6bc613d3 symbol_id: 0x20d2ceb3 @@ -416796,6 +420248,8 @@ interface { symbol_id: 0x2bfccca9 symbol_id: 0x2a85f575 symbol_id: 0x2f640519 + symbol_id: 0x1185eadd + symbol_id: 0x5f208298 symbol_id: 0x8d3808ce symbol_id: 0x61f8c8ae symbol_id: 0x0e92ee53 @@ -416854,6 +420308,7 @@ interface { symbol_id: 0x6ed615c4 symbol_id: 0xd860c719 symbol_id: 0x5b6bc3a9 + symbol_id: 0x88acddf0 symbol_id: 0x288e392e symbol_id: 0x823654f5 symbol_id: 0x42ad45a3 @@ -416873,6 +420328,7 @@ interface { symbol_id: 0xab9ebde6 symbol_id: 0x547e3912 symbol_id: 0x227ce62c + symbol_id: 0xb11763a0 symbol_id: 0x02bb68bd symbol_id: 0x052557d7 symbol_id: 0x6fb8113a @@ -416929,6 +420385,7 @@ interface { symbol_id: 0xab2bf68c symbol_id: 0xc09d36c9 symbol_id: 0xeeeac09d + symbol_id: 0x56b11d7c symbol_id: 0x7d0336a2 symbol_id: 0x990b2371 symbol_id: 0xe100c3ad @@ -417852,6 +421309,7 @@ interface { symbol_id: 0x01ff0af3 symbol_id: 0x8ce0927a symbol_id: 0x35ab75ba + symbol_id: 0xaf548a8c symbol_id: 0x44b5caf9 symbol_id: 0x7f1735ac symbol_id: 0x4ba4968c @@ -417861,6 +421319,7 @@ interface { symbol_id: 0x1ef313dc symbol_id: 0x67daf3cf symbol_id: 0xe5161e20 + symbol_id: 0x7fc68fdb symbol_id: 0x31d27334 symbol_id: 0x2f800ec5 symbol_id: 0xd5cd30b1 @@ -417870,6 +421329,7 @@ interface { symbol_id: 0x094eac4e symbol_id: 0xb4062816 symbol_id: 0xeac49112 + symbol_id: 0x10de32c8 symbol_id: 0x641371dc symbol_id: 0x5a345cb5 symbol_id: 0x1df78429 @@ -417883,6 +421343,7 @@ interface { symbol_id: 0x34feac51 symbol_id: 0x87df61b4 symbol_id: 0x8abf96ef + symbol_id: 0xc7ab95e4 symbol_id: 0x8c0b66d7 symbol_id: 0x4f142288 symbol_id: 0x33035bf6 @@ -418810,6 +422271,7 @@ interface { symbol_id: 0x7f211ebf symbol_id: 0x62aa5e8d symbol_id: 0xeeb4f73d + symbol_id: 0xf836eb53 symbol_id: 0xa9f64e27 symbol_id: 0x4ba62142 symbol_id: 0x39b330a8 @@ -418938,6 +422400,7 @@ interface { symbol_id: 0xb3447965 symbol_id: 0xfe219f57 symbol_id: 0x6e69a2b9 + symbol_id: 0x070e04f6 symbol_id: 0xd3082d07 symbol_id: 0x091eb2ba symbol_id: 0x80d8d153 @@ -419015,6 +422478,7 @@ interface { symbol_id: 0xd211b195 symbol_id: 0xba7efe3b symbol_id: 0x6e6c429b + symbol_id: 0xdf121e19 symbol_id: 0xdf189e23 symbol_id: 0x73d9659a symbol_id: 0xae6c6645 @@ -419290,7 +422754,9 @@ interface { symbol_id: 0xe87161bc symbol_id: 0x5a582da8 symbol_id: 0x365c2930 + symbol_id: 0xb096071e symbol_id: 0x7990bc50 + symbol_id: 0xa9715193 symbol_id: 0x8a6e138f symbol_id: 0x0ace9404 symbol_id: 0x64b49555 @@ -419884,6 +423350,7 @@ interface { symbol_id: 0xd63a3f70 symbol_id: 0x075fdad1 symbol_id: 0x6bcfa61d + symbol_id: 0x01438401 symbol_id: 0x9175ce1c symbol_id: 0x81dadb36 symbol_id: 0x9bfc3a5e @@ -420049,6 +423516,7 @@ interface { symbol_id: 0x01b49a38 symbol_id: 0xbe2a589c symbol_id: 0xf03cc7d6 + symbol_id: 0xeb1e647c symbol_id: 0x4026efa6 symbol_id: 0xc1b901e4 symbol_id: 0xf2e6f907 @@ -420346,6 +423814,7 @@ interface { symbol_id: 0x1405e8c0 symbol_id: 0x84babda3 symbol_id: 0xeb5e01d3 + symbol_id: 0x80a63ee1 symbol_id: 0xaa427980 symbol_id: 0xb4fb2bc7 symbol_id: 0x9a879825 @@ -420389,6 +423858,7 @@ interface { symbol_id: 0x980489ec symbol_id: 0x1a34a34f symbol_id: 0x06bf2dbd + symbol_id: 0x5635039f symbol_id: 0x5a4e487e symbol_id: 0x178677d3 symbol_id: 0xb4ca02f0 @@ -420426,6 +423896,7 @@ interface { symbol_id: 0xdbff81b0 symbol_id: 0x1d1d3e9f symbol_id: 0x90914be9 + symbol_id: 0x7efe2259 symbol_id: 0x5f6243cf symbol_id: 0x142ee439 symbol_id: 0xcad08fbc @@ -420867,6 +424338,7 @@ interface { symbol_id: 0xd76c8799 symbol_id: 0x1dad348b symbol_id: 0xd50beffc + symbol_id: 0x018498a2 symbol_id: 0x1e700c22 symbol_id: 0xba681a1a symbol_id: 0x5fa10488 @@ -420876,6 +424348,7 @@ interface { symbol_id: 0xc278f4fa symbol_id: 0x9c15bd7a symbol_id: 0x866cf90c + symbol_id: 0x2bf61c61 symbol_id: 0x5ebc16d0 symbol_id: 0xb39736f6 symbol_id: 0x9d35d830 @@ -421231,11 +424704,13 @@ interface { symbol_id: 0xa637f7b7 symbol_id: 0x083bac44 symbol_id: 0x9cd9475e + symbol_id: 0x90466af9 symbol_id: 0x78f8d020 symbol_id: 0xae1b45d2 symbol_id: 0x788eb5c1 symbol_id: 0xdc29efa5 symbol_id: 0x9928a695 + symbol_id: 0x508d9501 symbol_id: 0x7d9c9dda symbol_id: 0x2721b297 symbol_id: 0xf60ed3ec @@ -421547,6 +425022,7 @@ interface { symbol_id: 0x19b7aeab symbol_id: 0xfccc22f4 symbol_id: 0x50b92bc4 + symbol_id: 0x730105d4 symbol_id: 0x8c0dd14a symbol_id: 0x3480e8df symbol_id: 0x0bf91812 @@ -421878,6 +425354,11 @@ interface { symbol_id: 0xe3dfe241 symbol_id: 0xc8bed5da symbol_id: 0x33735fec + symbol_id: 0x414be22e + symbol_id: 0x020865bd + symbol_id: 0xb3f58cb2 + symbol_id: 0x236e8eb5 + symbol_id: 0xd1a5a209 symbol_id: 0xca7402ca symbol_id: 0xf49fd863 symbol_id: 0x778992cc @@ -421963,6 +425444,7 @@ interface { symbol_id: 0xbfd5ebac symbol_id: 0x68c67cd0 symbol_id: 0xc10b3ddb + symbol_id: 0xf76bb227 symbol_id: 0xcd9887e8 symbol_id: 0xb132031d symbol_id: 0x9ebdc6d8 @@ -422184,6 +425666,7 @@ interface { symbol_id: 0x4333f082 symbol_id: 0xcfa933b0 symbol_id: 0xc7bb50ac + symbol_id: 0x96e969d8 symbol_id: 0xc4ac81a3 symbol_id: 0xde3137d4 symbol_id: 0x3728c158 @@ -422374,16 +425857,39 @@ interface { symbol_id: 0x9c77d018 symbol_id: 0x9b3fb280 symbol_id: 0x6c3c9573 + symbol_id: 0xbdf90845 + symbol_id: 0x1a591d57 + symbol_id: 0xf099d343 + symbol_id: 0xadb59b05 + symbol_id: 0xbfd2d0d2 + symbol_id: 0x988023d7 + symbol_id: 0xca2d2a6b + symbol_id: 0xbddc0e4e + symbol_id: 0xd6059721 symbol_id: 0x01cdd14d + symbol_id: 0x2d797653 + symbol_id: 0xd4d51230 + symbol_id: 0x2fba8b59 symbol_id: 0x5c71ae40 symbol_id: 0x71532d43 + symbol_id: 0xcda1c9b0 symbol_id: 0xef103e2f symbol_id: 0xc924b9c3 symbol_id: 0x2c53af12 symbol_id: 0xa4bb7174 symbol_id: 0xe3443ac3 + symbol_id: 0xcc0525bc + symbol_id: 0xb8aeb338 symbol_id: 0xd6adc7e6 + symbol_id: 0xe0bd8904 + symbol_id: 0x199994d8 + symbol_id: 0xf8fc1781 + symbol_id: 0x7d1274eb + symbol_id: 0xff33b55b + symbol_id: 0x9945c609 symbol_id: 0xcc386657 + symbol_id: 0x529a9e72 + symbol_id: 0x99d5bf98 symbol_id: 0x3c52a978 symbol_id: 0xb4592621 symbol_id: 0xeb0e3e9b diff --git a/android/abi_gki_aarch64_db845c b/android/abi_gki_aarch64_db845c index 37e34abb1e60..55af08f918d1 100644 --- a/android/abi_gki_aarch64_db845c +++ b/android/abi_gki_aarch64_db845c @@ -258,6 +258,9 @@ drm_mode_vrefresh drm_of_find_panel_or_bridge drm_printf + drm_rect_rotate + drm_rect_rotate_inv + drmm_kmalloc enable_irq eth_type_trans _find_first_bit diff --git a/android/abi_gki_aarch64_honor b/android/abi_gki_aarch64_honor index 979e97309e06..52535b748fb7 100644 --- a/android/abi_gki_aarch64_honor +++ b/android/abi_gki_aarch64_honor @@ -56,6 +56,8 @@ tty_set_ldisc tty_kclose __kfifo_len_r + __traceiter_android_vh_killed_process + __tracepoint_android_vh_killed_process __traceiter_android_vh_rwsem_write_wait_finish __tracepoint_android_vh_rwsem_write_wait_finish __tracepoint_android_rvh_cpuinfo_c_show @@ -64,8 +66,18 @@ __traceiter_android_vh_dc_send_copy __tracepoint_android_vh_dc_receive __traceiter_android_vh_dc_receive + __traceiter_android_vh_inet_create + __tracepoint_android_vh_inet_create + __traceiter_android_vh_uplink_send_msg + __tracepoint_android_vh_uplink_send_msg + __traceiter_android_vh_sock_create + __tracepoint_android_vh_sock_create __traceiter_android_vh_modify_scan_control __traceiter_android_vh_should_continue_reclaim + __tracepoint_android_vh_process_madvise_begin + __traceiter_android_vh_process_madvise_begin + __tracepoint_android_vh_process_madvise_iter + __traceiter_android_vh_process_madvise_iter __traceiter_android_vh_file_is_tiny_bypass __tracepoint_android_vh_modify_scan_control __tracepoint_android_vh_should_continue_reclaim @@ -80,6 +92,8 @@ __traceiter_android_vh_slab_alloc_node __tracepoint_android_vh_slab_free __traceiter_android_vh_slab_free + __traceiter_android_vh_should_fault_around + __tracepoint_android_vh_should_fault_around __traceiter_android_vh_tcp_connect __tracepoint_android_vh_tcp_connect __traceiter_android_vh_tcp_write_timeout_estab_retrans @@ -124,3 +138,71 @@ __tracepoint_android_vh_sk_free __traceiter_android_vh_sk_clone_lock __tracepoint_android_vh_sk_clone_lock + __traceiter_android_rvh_ogki_vfree_bypass + __traceiter_android_rvh_ogki_vmalloc_node_bypass + __traceiter_android_vh_ogki_async_psi_bypass + __traceiter_android_vh_ogki_f2fs_dsm + __traceiter_android_vh_ogki_f2fs_dsm_get + __traceiter_android_vh_ogki_check_vip_status + __traceiter_android_vh_ogki_cma_alloc_retry + __traceiter_android_vh_ogki_ufs_dsm + __tracepoint_android_rvh_ogki_vfree_bypass + __tracepoint_android_rvh_ogki_vmalloc_node_bypass + __tracepoint_android_vh_ogki_async_psi_bypass + __tracepoint_android_vh_ogki_f2fs_dsm + __tracepoint_android_vh_ogki_f2fs_dsm_get + __tracepoint_android_vh_ogki_check_vip_status + __tracepoint_android_vh_ogki_cma_alloc_retry + __tracepoint_android_vh_ogki_ufs_dsm + __traceiter_android_vh_ogki_tcp_srtt_estimator + __tracepoint_android_vh_ogki_tcp_srtt_estimator + __traceiter_android_vh_ogki_tcp_rcv_estab_fastpath + __tracepoint_android_vh_ogki_tcp_rcv_estab_fastpath + __traceiter_android_vh_ogki_tcp_rcv_estab_slowpath + __tracepoint_android_vh_ogki_tcp_rcv_estab_slowpath + __traceiter_android_vh_ogki_tcp_rcv_rtt_update + __tracepoint_android_vh_ogki_tcp_rcv_rtt_update + __traceiter_android_vh_ogki_tcp_retransmit_timer + __tracepoint_android_vh_ogki_tcp_retransmit_timer + __traceiter_android_vh_ogki_udp_unicast_rcv_skb + __tracepoint_android_vh_ogki_udp_unicast_rcv_skb + __traceiter_android_vh_ogki_udp6_unicast_rcv_skb + __tracepoint_android_vh_ogki_udp6_unicast_rcv_skb + __tracepoint_android_rvh_ogki_task_util + __traceiter_android_rvh_ogki_task_util + __tracepoint_android_rvh_ogki_uclamp_task_util + __traceiter_android_rvh_ogki_uclamp_task_util + __tracepoint_android_rvh_ogki_get_task_tags + __traceiter_android_rvh_ogki_get_task_tags + __tracepoint_android_rvh_ogki_get_task_rsum + __traceiter_android_rvh_ogki_get_task_rsum + __tracepoint_android_rvh_ogki_check_task_tags + __traceiter_android_rvh_ogki_check_task_tags + __tracepoint_android_vh_ogki_audit_log_cfi + __tracepoint_android_rvh_ogki_audit_log_usercopy + __tracepoint_android_rvh_ogki_audit_log_module_sign + __tracepoint_android_vh_ogki_audit_log_setid + __traceiter_android_vh_ogki_audit_log_cfi + __traceiter_android_rvh_ogki_audit_log_usercopy + __traceiter_android_rvh_ogki_audit_log_module_sign + __traceiter_android_vh_ogki_audit_log_setid + __traceiter_android_vh_ogki_get_log_usertype + __tracepoint_android_vh_ogki_get_log_usertype + __traceiter_android_rvh_ogki_hievent_create + __tracepoint_android_rvh_ogki_hievent_create + __traceiter_android_rvh_ogki_hievent_put_string + __tracepoint_android_rvh_ogki_hievent_put_string + __traceiter_android_rvh_ogki_hievent_put_integral + __tracepoint_android_rvh_ogki_hievent_put_integral + __traceiter_android_rvh_ogki_hievent_report + __tracepoint_android_rvh_ogki_hievent_report + __traceiter_android_rvh_ogki_hievent_destroy + __tracepoint_android_rvh_ogki_hievent_destroy + __traceiter_android_vh_ogki_hievent_to_jank + __tracepoint_android_vh_ogki_hievent_to_jank + __tracepoint_android_vh_ogki_set_wifi_state_connect + __traceiter_android_vh_ogki_set_wifi_state_connect + __tracepoint_android_vh_ogki_set_wifi_state_disconnect + __traceiter_android_vh_ogki_set_wifi_state_disconnect + __traceiter_android_vh_ogki_kmem_cache_create_usercopy + __tracepoint_android_vh_ogki_kmem_cache_create_usercopy diff --git a/android/abi_gki_aarch64_imx b/android/abi_gki_aarch64_imx index f87d336a0d5f..cf255a23848a 100644 --- a/android/abi_gki_aarch64_imx +++ b/android/abi_gki_aarch64_imx @@ -267,14 +267,17 @@ debugfs_remove debugfs_rename default_llseek + default_qdisc_ops default_wake_function delayed_work_timer_fn destroy_workqueue + dev_activate dev_addr_mod dev_alloc_name __dev_change_net_namespace dev_close _dev_crit + dev_deactivate dev_driver_string _dev_err dev_err_probe @@ -291,7 +294,9 @@ __dev_fwnode_const __dev_get_by_index dev_get_by_index + __dev_get_by_name dev_get_regmap + dev_graft_qdisc device_add device_create device_create_file @@ -875,6 +880,8 @@ ethtool_aggregate_rmon_stats ethtool_convert_legacy_u32_to_link_mode ethtool_convert_link_mode_to_legacy_u32 + ethtool_dev_mm_supported + __ethtool_get_link_ksettings ethtool_op_get_link ethtool_op_get_ts_info eth_type_trans @@ -895,6 +902,7 @@ firmware_kobj fixed_size_llseek flow_block_cb_setup_simple + flow_rule_alloc flow_rule_match_basic flow_rule_match_eth_addrs flow_rule_match_ipv4_addrs @@ -982,6 +990,11 @@ get_random_u8 get_unused_fd_flags get_user_pages + gnet_stats_add_basic + gnet_stats_add_queue + gnet_stats_basic_sync_init + gnet_stats_copy_basic + gnet_stats_copy_queue gpiochip_add_data_with_key gpiochip_disable_irq gpiochip_enable_irq @@ -1082,12 +1095,15 @@ ida_destroy ida_free idr_alloc + idr_alloc_u32 idr_destroy idr_find idr_for_each idr_get_next + idr_get_next_ul idr_preload idr_remove + idr_replace ignore_console_lock_warning iio_alloc_pollfunc iio_buffer_enabled @@ -1206,6 +1222,7 @@ iw_handler_set_spy iw_handler_set_thrspy jiffies + jiffies_to_clock_t jiffies_to_msecs jiffies_to_usecs kasan_flag_enabled @@ -1273,6 +1290,7 @@ ktime_get_seconds ktime_get_ts64 ktime_get_with_offset + ktime_mono_to_any kvfree kvfree_call_rcu kvmalloc_node @@ -1400,6 +1418,7 @@ __module_get module_layout module_put + mq_change_real_num_tx __msecs_to_jiffies msi_domain_get_virq msleep @@ -1443,10 +1462,12 @@ netif_receive_skb netif_receive_skb_list netif_rx + __netif_schedule netif_schedule_queue netif_set_real_num_rx_queues netif_set_real_num_tx_queues netif_set_tso_max_segs + netif_skb_features netif_tx_lock netif_tx_stop_all_queues netif_tx_unlock @@ -1468,9 +1489,11 @@ nla_put nla_put_64bit nla_reserve + nla_strscpy __nla_validate nonseekable_open noop_llseek + noop_qdisc nr_cpu_ids nsecs_to_jiffies ns_to_timespec64 @@ -1674,6 +1697,8 @@ perf_pmu_unregister perf_trace_buf_alloc perf_trace_run_bpf_submit + pfifo_fast_ops + pfifo_qdisc_ops pfn_is_map_memory phy_attached_info phy_basic_t1_features @@ -1882,9 +1907,21 @@ pwm_apply_state pwmchip_add pwmchip_remove + __qdisc_calculate_pkt_len + qdisc_create_dflt + qdisc_hash_add + qdisc_offload_query_caps + qdisc_put + qdisc_reset + qdisc_tree_reduce_backlog + qdisc_watchdog_cancel + qdisc_watchdog_init + qdisc_watchdog_init_clockid + qdisc_watchdog_schedule_range_ns queue_delayed_work_on queue_work_on radix_tree_insert + radix_tree_tagged ___ratelimit rational_best_approximation raw_notifier_call_chain @@ -1933,11 +1970,13 @@ register_oom_notifier register_pernet_device register_pm_notifier + register_qdisc register_reboot_notifier register_restart_handler __register_rpmsg_driver register_shrinker register_syscore_ops + register_tcf_proto_ops register_virtio_device register_virtio_driver regmap_add_irq_chip @@ -2016,7 +2055,9 @@ rfkill_resume_polling rfkill_set_hw_state_reason rfkill_unregister + rhashtable_destroy rhashtable_free_and_destroy + rhashtable_init rhashtable_insert_slow rhltable_init __rht_bucket_nested @@ -2063,6 +2104,7 @@ rt_mutex_trylock rt_mutex_unlock rtnl_is_locked + rtnl_kfree_skbs rtnl_lock rtnl_unlock sched_clock @@ -2155,6 +2197,12 @@ skb_csum_hwoffload_help skb_dequeue skb_ensure_writable + __skb_flow_dissect + skb_flow_dissect_ct + skb_flow_dissect_hash + skb_flow_dissect_meta + skb_flow_dissector_init + skb_flow_dissect_tunnel_info __skb_get_hash __skb_gso_segment skb_pull @@ -2299,6 +2347,7 @@ soc_device_match soc_device_register __sock_create + sock_queue_err_skb sock_release sort __spi_alloc_controller @@ -2387,6 +2436,35 @@ __tasklet_schedule tasklet_setup tasklet_unlock_wait + tc_cleanup_offload_action + tcf_action_check_ctrlact + tcf_action_exec + tcf_action_set_ctrlact + tcf_action_update_hw_stats + tcf_action_update_stats + tcf_chain_put_by_act + tcf_exts_destroy + tcf_exts_dump + tcf_exts_dump_stats + tcf_exts_init_ex + tcf_exts_num_actions + tcf_exts_terse_dump + tcf_exts_validate_ex + tcf_idr_check_alloc + tcf_idr_cleanup + tcf_idr_create_from_flags + tcf_idrinfo_destroy + tcf_idr_release + tcf_queue_work + tcf_register_action + tcf_unregister_action + tc_setup_cb_add + tc_setup_cb_call + tc_setup_cb_destroy + tc_setup_cb_reoffload + tc_setup_offload_action + tc_skb_ext_tc_disable + tc_skb_ext_tc_enable tegra_mc_probe_device tegra_sku_info thermal_cooling_device_unregister @@ -2471,9 +2549,11 @@ unregister_netdevice_queue unregister_oom_notifier unregister_pernet_device + unregister_qdisc unregister_reboot_notifier unregister_rpmsg_driver unregister_shrinker + unregister_tcf_proto_ops unregister_virtio_device unregister_virtio_driver up diff --git a/android/abi_gki_aarch64_mtk b/android/abi_gki_aarch64_mtk index b808e075aee9..0b480c4e05b9 100644 --- a/android/abi_gki_aarch64_mtk +++ b/android/abi_gki_aarch64_mtk @@ -2029,6 +2029,7 @@ phy_basic_t1_features phy_connect phy_connect_direct + phy_create_lookup phy_disconnect phy_do_ioctl_running phy_drivers_register diff --git a/android/abi_gki_aarch64_pixel b/android/abi_gki_aarch64_pixel index 830f94b33641..2350694533f6 100644 --- a/android/abi_gki_aarch64_pixel +++ b/android/abi_gki_aarch64_pixel @@ -1230,6 +1230,7 @@ kthread_should_park kthread_should_stop kthread_stop + kthread_stop_put kthread_unpark kthread_worker_fn ktime_get diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index 2f4082851f5b..354e3fda5bc9 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -1595,6 +1595,7 @@ regulator_get_voltage_rdev regulator_is_enabled regulator_is_supported_voltage + regulator_list_voltage_linear regulator_notifier_call_chain regulator_put regulator_register_notifier diff --git a/android/abi_gki_aarch64_unisoc b/android/abi_gki_aarch64_unisoc index 444d61d122ed..313f99bdad1d 100644 --- a/android/abi_gki_aarch64_unisoc +++ b/android/abi_gki_aarch64_unisoc @@ -243,15 +243,76 @@ # required by apsys-dvfs.ko devfreq_update_status +# required by audio-card.ko + devm_snd_soc_register_card + snd_info_free_entry + snd_info_register + snd_interval_refine + snd_soc_daifmt_parse_clock_provider_raw + snd_soc_daifmt_parse_format + snd_soc_dapm_disable_pin + snd_soc_dapm_enable_pin + snd_soc_dapm_sync + snd_soc_of_get_dai_name + snd_soc_of_parse_audio_routing + snd_soc_of_parse_audio_simple_widgets + snd_soc_of_parse_card_name + snd_soc_of_parse_tdm_slot + snd_soc_pm_ops + # required by audio-codec.ko + dapm_regulator_event + desc_to_gpio + iio_channel_get + iio_read_channel_raw + regulator_get_mode regulator_register + regulator_set_mode + regulator_unregister + snd_jack_set_key + snd_soc_card_jack_new + snd_soc_component_read + snd_soc_component_update_bits + snd_soc_dapm_get_enum_double + snd_soc_dapm_get_volsw + snd_soc_dapm_put_enum_double + snd_soc_dapm_put_volsw + snd_soc_jack_report + +# required by audio-dai.ko + snd_soc_dapm_add_routes + snd_soc_new_compress # required by audio-platform.ko + snd_pcm_hw_constraint_integer + snd_pcm_hw_constraint_step + snd_pcm_period_elapsed snd_pcm_rate_bit_to_rate + snd_soc_dapm_mixer_update_power + snd_soc_rtdcom_lookup + snd_soc_set_runtime_hwparams # required by audio-misc.ko __kfifo_from_user_r + __kfifo_init __kfifo_to_user_r + pm_runtime_barrier + pm_runtime_irq_safe + snd_ctl_add + snd_ctl_new1 + snd_hwdep_new + snd_pcm_format_name + snd_soc_add_card_controls + snd_soc_bytes_info_ext + snd_usb_autoresume + snd_usb_autosuspend + snd_usb_endpoint_prepare + snd_usb_hw_free + snd_usb_hw_params + snd_usb_lock_shutdown + snd_usb_register_platform_ops + snd_usb_unlock_shutdown + snd_usb_unregister_platform_ops # required by gzvm.ko __traceiter_android_vh_gzvm_vcpu_exit_reason diff --git a/android/abi_gki_aarch64_vivo b/android/abi_gki_aarch64_vivo index a5e36963791a..dcc23dfdc052 100644 --- a/android/abi_gki_aarch64_vivo +++ b/android/abi_gki_aarch64_vivo @@ -33,6 +33,8 @@ __kmalloc_node __lock_buffer mipi_dsi_dcs_write + __neigh_create + netdev_is_rx_handler_busy noop_qdisc of_css pfifo_qdisc_ops @@ -81,6 +83,7 @@ __traceiter_android_rvh_bpf_skb_load_bytes __traceiter_android_rvh_check_preempt_wakeup __traceiter_android_rvh_cpufreq_transition + __traceiter_android_rvh_create_worker __traceiter_android_rvh_dequeue_task_fair __traceiter_android_rvh_enqueue_task_fair __traceiter_android_rvh_inet_sock_create @@ -198,6 +201,7 @@ __tracepoint_android_rvh_bpf_skb_load_bytes __tracepoint_android_rvh_check_preempt_wakeup __tracepoint_android_rvh_cpufreq_transition + __tracepoint_android_rvh_create_worker __tracepoint_android_rvh_dequeue_task_fair __tracepoint_android_rvh_enqueue_task_fair __tracepoint_android_rvh_inet_sock_create diff --git a/android/abi_gki_aarch64_xiaomi b/android/abi_gki_aarch64_xiaomi index c43b0e94c588..77cc9c9e5c45 100644 --- a/android/abi_gki_aarch64_xiaomi +++ b/android/abi_gki_aarch64_xiaomi @@ -78,6 +78,10 @@ __traceiter_android_vh_compact_finished __tracepoint_android_vh_madvise_cold_or_pageout_abort __tracepoint_android_vh_compact_finished + __traceiter_android_vh_customize_thp_pcp_order + __tracepoint_android_vh_customize_thp_pcp_order + __traceiter_android_vh_customize_thp_gfp_orders + __tracepoint_android_vh_customize_thp_gfp_orders #required by metis.ko module __traceiter_android_vh_rwsem_read_wait_start diff --git a/arch/arm64/include/asm/kvm_pkvm_module.h b/arch/arm64/include/asm/kvm_pkvm_module.h index ce04a79c30ec..306fbdf2a622 100644 --- a/arch/arm64/include/asm/kvm_pkvm_module.h +++ b/arch/arm64/include/asm/kvm_pkvm_module.h @@ -279,11 +279,11 @@ int pkvm_load_early_modules(void); */ #define pkvm_el2_mod_va(kern_va, token) \ ({ \ - unsigned long hyp_text_kern_va = \ - (unsigned long)THIS_MODULE->arch.hyp.text.start; \ + unsigned long hyp_mod_kern_va = \ + (unsigned long)THIS_MODULE->arch.hyp.sections.start; \ unsigned long offset; \ \ - offset = (unsigned long)kern_va - hyp_text_kern_va; \ + offset = (unsigned long)kern_va - hyp_mod_kern_va; \ token + offset; \ }) diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-init.S b/arch/arm64/kvm/hyp/nvhe/hyp-init.S index e70dd989fb85..15d2b5c6b218 100644 --- a/arch/arm64/kvm/hyp/nvhe/hyp-init.S +++ b/arch/arm64/kvm/hyp/nvhe/hyp-init.S @@ -141,7 +141,7 @@ alternative_else_nop_endif /* Invalidate the stale TLBs from Bootloader */ tlbi alle2 - tlbi vmalls12e1 + tlbi alle1 dsb sy mov_q x0, INIT_SCTLR_EL2_MMU_ON diff --git a/arch/arm64/kvm/hyp/nvhe/tlb.c b/arch/arm64/kvm/hyp/nvhe/tlb.c index 898eac43e9ee..8486e951ec0b 100644 --- a/arch/arm64/kvm/hyp/nvhe/tlb.c +++ b/arch/arm64/kvm/hyp/nvhe/tlb.c @@ -129,10 +129,10 @@ static void exit_vmid_context(struct tlb_inv_context *cxt) else __load_host_stage2(); - if (cpus_have_final_cap(ARM64_WORKAROUND_SPECULATIVE_AT)) { - /* Ensure write of the old VMID */ - isb(); + /* Ensure write of the old VMID */ + isb(); + if (cpus_have_final_cap(ARM64_WORKAROUND_SPECULATIVE_AT)) { if (!(cxt->sctlr & SCTLR_ELx_M)) { write_sysreg_el1(cxt->sctlr, SYS_SCTLR); isb(); diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c index b83b4ab96133..ec58fc27e80e 100644 --- a/arch/arm64/kvm/hyp/pgtable.c +++ b/arch/arm64/kvm/hyp/pgtable.c @@ -27,9 +27,6 @@ struct kvm_pgtable_walk_data { const u64 end; }; -static void stage2_unmap_clear_pte(const struct kvm_pgtable_visit_ctx *ctx, - struct kvm_s2_mmu *mmu); - static bool kvm_pgtable_walk_skip_bbm_tlbi(const struct kvm_pgtable_visit_ctx *ctx) { return unlikely(ctx->flags & KVM_PGTABLE_WALK_SKIP_BBM_TLBI); @@ -812,8 +809,7 @@ static bool stage2_try_break_pte(const struct kvm_pgtable_visit_ctx *ctx, return true; } -static void stage2_make_pte(const struct kvm_pgtable_visit_ctx *ctx, - kvm_pte_t new, struct kvm_s2_mmu *mmu) +static void stage2_make_pte(const struct kvm_pgtable_visit_ctx *ctx, kvm_pte_t new) { struct kvm_pgtable_mm_ops *mm_ops = ctx->mm_ops; struct kvm_pgtable_pte_ops *pte_ops = ctx->pte_ops; @@ -822,8 +818,6 @@ static void stage2_make_pte(const struct kvm_pgtable_visit_ctx *ctx, if (pte_ops->pte_is_counted_cb(new, ctx->level)) mm_ops->get_page(ctx->ptep); - else - stage2_unmap_clear_pte(ctx, mmu); smp_store_release(ctx->ptep, new); } @@ -977,7 +971,7 @@ static int stage2_map_walker_try_leaf(const struct kvm_pgtable_visit_ctx *ctx, stage2_pte_executable(new)) mm_ops->icache_inval_pou(kvm_pte_follow(new, mm_ops), granule); - stage2_make_pte(ctx, new, data->mmu); + stage2_make_pte(ctx, new); return 0; } @@ -1079,7 +1073,7 @@ static int stage2_map_walk_leaf(const struct kvm_pgtable_visit_ctx *ctx, * will be mapped lazily. */ new = kvm_init_table_pte(childp, mm_ops); - stage2_make_pte(ctx, new, data->mmu); + stage2_make_pte(ctx, new); return 0; } @@ -1143,7 +1137,7 @@ static int stage2_coalesce_walk_table_post(const struct kvm_pgtable_visit_ctx *c /* Host doesn't require CMOs. */ WARN_ON(mm_ops->dcache_clean_inval_poc || mm_ops->icache_inval_pou); - stage2_make_pte(ctx, new, data->mmu); + stage2_make_pte(ctx, new); /* Finally, free the unlinked table. */ mm_ops->put_page(childp); @@ -1295,6 +1289,18 @@ int kvm_pgtable_stage2_unmap(struct kvm_pgtable *pgt, u64 addr, u64 size) .flags = KVM_PGTABLE_WALK_LEAF | KVM_PGTABLE_WALK_TABLE_POST, }; + /* + * stage2_unmap_walker's TLBI logic is unsafe for the pKVM host stage-2 + * table because a child table may have a refcount of 1 while still + * containing valid mappings. The use of __kvm_tlb_flush_vmid_ipa in + * stage2_unmap_clear_pte is then insufficient to invalidate all leaf + * mappings reachable from the child table. All other stage-2 tables + * hold a reference for every non-zero PTE, and are thus guaranteed to + * be completely empty when refcount is 1. + */ + if (WARN_ON(pgt->flags & KVM_PGTABLE_S2_IDMAP)) + return -EINVAL; + ret = kvm_pgtable_walk(pgt, addr, size, &walker); if (stage2_unmap_defer_tlb_flush(pgt)) /* Perform the deferred TLB invalidations */ @@ -1698,7 +1704,7 @@ static int stage2_split_walker(const struct kvm_pgtable_visit_ctx *ctx, * writes the PTE using smp_store_release(). */ new = kvm_init_table_pte(childp, mm_ops); - stage2_make_pte(ctx, new, mmu); + stage2_make_pte(ctx, new); dsb(ishst); return 0; } diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index fb882ba31881..d7d69a9b0444 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -1804,7 +1804,7 @@ int pkvm_mem_abort_range(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, size_t si read_lock(&vcpu->kvm->mmu_lock); ppage = find_ppage_or_above(vcpu->kvm, fault_ipa); - while (size) { + while (fault_ipa < ipa_end) { if (ppage && ppage->ipa == fault_ipa) { page_size = PAGE_SIZE << ppage->order; ppage = mt_next(&vcpu->kvm->arch.pkvm.pinned_pages, @@ -1832,11 +1832,10 @@ int pkvm_mem_abort_range(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, size_t si * We had to release the mmu_lock so let's update the * reference. */ - ppage = find_ppage_or_above(vcpu->kvm, fault_ipa + PAGE_SIZE); + ppage = find_ppage_or_above(vcpu->kvm, fault_ipa + page_size); } - size = size_sub(size, PAGE_SIZE); - fault_ipa += PAGE_SIZE; + fault_ipa += page_size; } end: read_unlock(&vcpu->kvm->mmu_lock); diff --git a/arch/arm64/tools/cpucaps b/arch/arm64/tools/cpucaps index 4402ba2767a1..7ef83f99325a 100644 --- a/arch/arm64/tools/cpucaps +++ b/arch/arm64/tools/cpucaps @@ -101,7 +101,7 @@ WORKAROUND_REPEAT_TLBI WORKAROUND_SPECULATIVE_AT WORKAROUND_SPECULATIVE_SSBS WORKAROUND_SPECULATIVE_UNPRIV_LOAD -ANDROID_KABI_RESERVE_01 +WORKAROUND_SPECULATIVE_SSBS ANDROID_KABI_RESERVE_02 ANDROID_KABI_RESERVE_03 ANDROID_KABI_RESERVE_04 diff --git a/arch/x86/crypto/TEST_MAPPING b/arch/x86/crypto/TEST_MAPPING index 8d2be6b0182d..d73f8129550b 100644 --- a/arch/x86/crypto/TEST_MAPPING +++ b/arch/x86/crypto/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/arch/x86/include/asm/TEST_MAPPING b/arch/x86/include/asm/TEST_MAPPING index 1b011d39a2cc..ed5f13513ee8 100644 --- a/arch/x86/include/asm/TEST_MAPPING +++ b/arch/x86/include/asm/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/arch/x86/kernel/fpu/TEST_MAPPING b/arch/x86/kernel/fpu/TEST_MAPPING index f9923214765f..f29356a2b089 100644 --- a/arch/x86/kernel/fpu/TEST_MAPPING +++ b/arch/x86/kernel/fpu/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/block/TEST_MAPPING b/block/TEST_MAPPING index 3057cdffe258..13fa08f0296d 100644 --- a/block/TEST_MAPPING +++ b/block/TEST_MAPPING @@ -263,5 +263,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/drivers/android/TEST_MAPPING b/drivers/android/TEST_MAPPING index 2680c4cc1a81..db7a08514bd3 100644 --- a/drivers/android/TEST_MAPPING +++ b/drivers/android/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 786621d93bb5..53e5ba497ebf 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -3634,6 +3634,7 @@ static void binder_transaction(struct binder_proc *proc, */ copy_size = object_offset - user_offset; if (copy_size && (user_offset > object_offset || + object_offset > tr->data_size || binder_alloc_copy_user_to_buffer( &target_proc->alloc, t->buffer, user_offset, diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c index ca0a9b3984aa..ff31bce3fd35 100644 --- a/drivers/android/binder_alloc.c +++ b/drivers/android/binder_alloc.c @@ -937,7 +937,6 @@ void binder_alloc_deferred_release(struct binder_alloc *alloc) int i; for (i = 0; i < alloc->buffer_size / PAGE_SIZE; i++) { - unsigned long page_addr; bool on_lru; if (!alloc->pages[i].page_ptr) @@ -945,7 +944,6 @@ void binder_alloc_deferred_release(struct binder_alloc *alloc) on_lru = list_lru_del(&binder_freelist, &alloc->pages[i].lru); - page_addr = alloc->buffer + i * PAGE_SIZE; binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, "%s: %d: page %d %s\n", __func__, alloc->pid, i, diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index b57570a35768..a3169a243216 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -98,6 +99,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_udp_enqueue_schedule_skb); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_build_skb_around); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_refrigerator); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_send_sig_info); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_killed_process); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_start); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_finish); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_init); @@ -127,6 +129,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_exit); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mpam_set); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_wq_lockup_pool); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_alloc_and_link_pwqs); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_create_worker); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ipi_stop); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sysrq_crash); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_printk_hotplug); @@ -236,6 +239,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_irqs_disable); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_irqs_enable); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_is_fpsimd_save); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_slab_folio_alloced); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_process_madvise_begin); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_process_madvise_iter); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_kmalloc_large_alloced); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_swappiness); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_show_task); @@ -289,6 +294,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gzvm_vcpu_exit_reason); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_mutex_list_add); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_unlock_slowpath); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_save_track_hash); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_should_fault_around); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_id_remove); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_css_offline); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_css_online); @@ -410,6 +416,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_swapmem_gather_finish); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_oom_swapmem_gather_init); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_oom_swapmem_gather_finish); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_f2fs_file_open); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_uplink_send_msg); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_inet_create); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sock_create); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_uid); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_user); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_save_vmalloc_stack); @@ -492,3 +501,39 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dma_heap_buffer_alloc_start); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dma_heap_buffer_alloc_end); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_zs_shrinker_adjust); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_zs_shrinker_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_get_log_usertype); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_hievent_to_jank); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_hievent_create); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_hievent_put_string); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_hievent_put_integral); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_hievent_report); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_hievent_destroy); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_check_vip_status); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_task_util); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_uclamp_task_util); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_get_task_tags); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_get_task_rsum); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_check_task_tags); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_ufs_dsm); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_f2fs_dsm); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_f2fs_dsm_get); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_set_wifi_state_connect); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_set_wifi_state_disconnect); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_audit_log_setid); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_audit_log_cfi); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_audit_log_usercopy); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_audit_log_module_sign); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_cma_alloc_retry); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_async_psi_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_vmalloc_node_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ogki_vfree_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_tcp_srtt_estimator); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_tcp_rcv_estab_fastpath); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_tcp_rcv_estab_slowpath); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_tcp_rcv_rtt_update); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_tcp_retransmit_timer); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_udp_unicast_rcv_skb); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_udp6_unicast_rcv_skb); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ogki_kmem_cache_create_usercopy); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_customize_thp_pcp_order); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_customize_thp_gfp_orders); diff --git a/drivers/base/TEST_MAPPING b/drivers/base/TEST_MAPPING index 9478b2cdc0e3..d05c11e1b47d 100644 --- a/drivers/base/TEST_MAPPING +++ b/drivers/base/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/drivers/block/TEST_MAPPING b/drivers/block/TEST_MAPPING index 971814509797..f301c19f14e6 100644 --- a/drivers/block/TEST_MAPPING +++ b/drivers/block/TEST_MAPPING @@ -204,5 +204,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/drivers/char/TEST_MAPPING b/drivers/char/TEST_MAPPING index 2680c4cc1a81..db7a08514bd3 100644 --- a/drivers/char/TEST_MAPPING +++ b/drivers/char/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/drivers/cpufreq/TEST_MAPPING b/drivers/cpufreq/TEST_MAPPING index 9d68dcd42b40..4263379dc49e 100644 --- a/drivers/cpufreq/TEST_MAPPING +++ b/drivers/cpufreq/TEST_MAPPING @@ -228,5 +228,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/drivers/dma-buf/TEST_MAPPING b/drivers/dma-buf/TEST_MAPPING index 805f489e76f2..8f0f07132ea9 100644 --- a/drivers/dma-buf/TEST_MAPPING +++ b/drivers/dma-buf/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c index 3935243c69e3..10fbb571c8ab 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c @@ -207,6 +207,7 @@ static int kvm_arm_smmu_domain_finalize(struct kvm_arm_smmu_domain *kvm_smmu_dom int ret = 0; struct arm_smmu_device *smmu = master->smmu; struct host_arm_smmu_device *host_smmu = smmu_to_host(smmu); + unsigned int max_domains; if (kvm_smmu_domain->smmu) { if (kvm_smmu_domain->smmu != smmu) @@ -225,25 +226,34 @@ static int kvm_arm_smmu_domain_finalize(struct kvm_arm_smmu_domain *kvm_smmu_dom return 0; } - ret = ida_alloc_range(&kvm_arm_smmu_domain_ida, KVM_IOMMU_DOMAIN_NR_START, - KVM_IOMMU_MAX_DOMAINS, GFP_KERNEL); - if (ret < 0) - return ret; - - kvm_smmu_domain->id = ret; - /* Default to stage-1. */ if (smmu->features & ARM_SMMU_FEAT_TRANS_S1) { kvm_smmu_domain->type = KVM_ARM_SMMU_DOMAIN_S1; kvm_smmu_domain->domain.pgsize_bitmap = host_smmu->cfg_s1.pgsize_bitmap; kvm_smmu_domain->domain.geometry.aperture_end = (1UL << host_smmu->cfg_s1.ias) - 1; + max_domains = 1 << smmu->asid_bits; } else { kvm_smmu_domain->type = KVM_ARM_SMMU_DOMAIN_S2; kvm_smmu_domain->domain.pgsize_bitmap = host_smmu->cfg_s2.pgsize_bitmap; kvm_smmu_domain->domain.geometry.aperture_end = (1UL << host_smmu->cfg_s2.ias) - 1; + max_domains = 1 << smmu->vmid_bits; } kvm_smmu_domain->domain.geometry.force_aperture = true; + /* + * The hypervisor uses the domain_id for asid/vmid so it has to be + * unique, and it has to be in range of this smmu, which can be + * either 8 or 16 bits, this can be improved a bit to make + * 16 bit asids or vmids allocate from the end of the range to + * give more chance to the smmus with 8 bits. + */ + ret = ida_alloc_range(&kvm_arm_smmu_domain_ida, KVM_IOMMU_DOMAIN_NR_START, + min(KVM_IOMMU_MAX_DOMAINS, max_domains), GFP_KERNEL); + if (ret < 0) + return ret; + + kvm_smmu_domain->id = ret; + ret = kvm_call_hyp_nvhe_mc(__pkvm_host_iommu_alloc_domain, kvm_smmu_domain->id, kvm_smmu_domain->type); @@ -442,8 +452,24 @@ static int kvm_arm_smmu_def_domain_type(struct device *dev) return 0; } +static bool kvm_arm_smmu_capable(struct device *dev, enum iommu_cap cap) +{ + struct kvm_arm_smmu_master *master = dev_iommu_priv_get(dev); + + switch (cap) { + case IOMMU_CAP_CACHE_COHERENCY: + /* Assume that a coherent TCU implies coherent TBUs */ + return master->smmu->features & ARM_SMMU_FEAT_COHERENCY; + case IOMMU_CAP_NOEXEC: + case IOMMU_CAP_DEFERRED_FLUSH: + return true; + default: + return false; + } +} + static struct iommu_ops kvm_arm_smmu_ops = { - .capable = arm_smmu_capable, + .capable = kvm_arm_smmu_capable, .device_group = arm_smmu_device_group, .of_xlate = arm_smmu_of_xlate, .get_resv_regions = arm_smmu_get_resv_regions, diff --git a/drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c index 2a253f8e45dc..6fba7a06dd6e 100644 --- a/drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c @@ -530,13 +530,11 @@ static struct hyp_arm_smmu_v3_device *to_smmu(struct kvm_hyp_iommu *iommu) return container_of(iommu, struct hyp_arm_smmu_v3_device, iommu); } -static void smmu_tlb_flush_all(void *cookie) +static void smmu_inv_domain(struct hyp_arm_smmu_v3_device *smmu, + struct hyp_arm_smmu_v3_domain *smmu_domain) { - struct kvm_hyp_iommu_domain *domain = cookie; - struct hyp_arm_smmu_v3_domain *smmu_domain = domain->priv; - struct hyp_arm_smmu_v3_device *smmu; - struct domain_iommu_node *iommu_node; - struct arm_smmu_cmdq_ent cmd; + struct kvm_hyp_iommu_domain *domain = smmu_domain->domain; + struct arm_smmu_cmdq_ent cmd = {}; if (smmu_domain->pgtable->cfg.fmt == ARM_64_LPAE_S2) { cmd.opcode = CMDQ_OP_TLBI_S12_VMALL; @@ -544,19 +542,26 @@ static void smmu_tlb_flush_all(void *cookie) } else { cmd.opcode = CMDQ_OP_TLBI_NH_ASID; cmd.tlbi.asid = domain->domain_id; - /* Domain ID is unique across all VMs. */ - cmd.tlbi.vmid = 0; } + if (smmu->iommu.power_is_off && smmu->caches_clean_on_power_on) + return; + + WARN_ON(smmu_send_cmd(smmu, &cmd)); +} + +static void smmu_tlb_flush_all(void *cookie) +{ + struct kvm_hyp_iommu_domain *domain = cookie; + struct hyp_arm_smmu_v3_domain *smmu_domain = domain->priv; + struct hyp_arm_smmu_v3_device *smmu; + struct domain_iommu_node *iommu_node; + hyp_read_lock(&smmu_domain->lock); list_for_each_entry(iommu_node, &smmu_domain->iommu_list, list) { smmu = to_smmu(iommu_node->iommu); kvm_iommu_lock(&smmu->iommu); - if (smmu->iommu.power_is_off && smmu->caches_clean_on_power_on) { - kvm_iommu_unlock(&smmu->iommu); - continue; - } - WARN_ON(smmu_send_cmd(smmu, &cmd)); + smmu_inv_domain(smmu, smmu_domain); kvm_iommu_unlock(&smmu->iommu); } hyp_read_unlock(&smmu_domain->lock); @@ -1082,11 +1087,15 @@ static int smmu_attach_dev(struct kvm_hyp_iommu *iommu, struct kvm_hyp_iommu_dom WRITE_ONCE(dst[0], cpu_to_le64(ent[0])); ret = smmu_sync_ste(smmu, dst, sid); WARN_ON(ret); - if (iommu_node) - list_add_tail(&iommu_node->list, &smmu_domain->iommu_list); + out_unlock: - if (ret && iommu_node) - hyp_free(iommu_node); + if (iommu_node) { + if (ret) + hyp_free(iommu_node); + else + list_add_tail(&iommu_node->list, &smmu_domain->iommu_list); + } + kvm_iommu_unlock(iommu); hyp_write_unlock(&smmu_domain->lock); return ret; @@ -1143,6 +1152,12 @@ static int smmu_detach_dev(struct kvm_hyp_iommu *iommu, struct kvm_hyp_iommu_dom ret = smmu_sync_ste(smmu, dst, sid); } + /* + * Ensure no stale tlb enteries when domain_id + * is re-used for this SMMU. + */ + smmu_inv_domain(smmu, smmu_domain); + smmu_put_ref_domain(smmu, smmu_domain); out_unlock: kvm_iommu_unlock(iommu); diff --git a/drivers/iommu/io-pgtable-arm-common.c b/drivers/iommu/io-pgtable-arm-common.c index 0a5c4b15efe1..2c699a060352 100644 --- a/drivers/iommu/io-pgtable-arm-common.c +++ b/drivers/iommu/io-pgtable-arm-common.c @@ -278,9 +278,8 @@ int arm_lpae_map_pages(struct io_pgtable_ops *ops, unsigned long iova, if (WARN_ON(iaext || paddr >> cfg->oas)) return -ERANGE; - /* If no access, then nothing to do */ if (!(iommu_prot & (IOMMU_READ | IOMMU_WRITE))) - return 0; + return -EINVAL; prot = arm_lpae_prot_to_pte(data, iommu_prot); ret = __arm_lpae_map(data, iova, paddr, pgsize, pgcount, prot, lvl, diff --git a/drivers/md/TEST_MAPPING b/drivers/md/TEST_MAPPING index 784a71531d6a..3c78e43c8b7a 100644 --- a/drivers/md/TEST_MAPPING +++ b/drivers/md/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/drivers/net/TEST_MAPPING b/drivers/net/TEST_MAPPING index fda37e83e367..5f98e93e6092 100644 --- a/drivers/net/TEST_MAPPING +++ b/drivers/net/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/drivers/pmdomain/arm/scmi_perf_domain.c b/drivers/pmdomain/arm/scmi_perf_domain.c index bc3f78abb6da..d7ef46ccd9b8 100644 --- a/drivers/pmdomain/arm/scmi_perf_domain.c +++ b/drivers/pmdomain/arm/scmi_perf_domain.c @@ -35,7 +35,7 @@ scmi_pd_set_perf_state(struct generic_pm_domain *genpd, unsigned int state) if (!state) return -EINVAL; - ret = pd->perf_ops->level_set(pd->ph, pd->domain_id, state, true); + ret = pd->perf_ops->level_set(pd->ph, pd->domain_id, state, false); if (ret) dev_warn(&genpd->dev, "Failed with %d when trying to set %d perf level", ret, state); @@ -159,6 +159,9 @@ static void scmi_perf_domain_remove(struct scmi_device *sdev) struct genpd_onecell_data *scmi_pd_data = dev_get_drvdata(dev); int i; + if (!scmi_pd_data) + return; + of_genpd_del_provider(dev->of_node); for (i = 0; i < scmi_pd_data->num_domains; i++) diff --git a/drivers/thermal/gov_power_allocator.c b/drivers/thermal/gov_power_allocator.c index fc969642f70b..b9bd2242931d 100644 --- a/drivers/thermal/gov_power_allocator.c +++ b/drivers/thermal/gov_power_allocator.c @@ -658,6 +658,8 @@ static int power_allocator_bind(struct thermal_zone_device *tz) if (!tz->tzp->sustainable_power) dev_warn(&tz->device, "power_allocator: sustainable_power will be estimated\n"); + else + params->sustainable_power = tz->tzp->sustainable_power; get_governor_trips(tz, params); diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 1eb18a603b18..707306dae057 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -1411,7 +1411,7 @@ static int ufshcd_devfreq_target(struct device *dev, int ret = 0; struct ufs_hba *hba = dev_get_drvdata(dev); ktime_t start; - bool scale_up, sched_clk_scaling_suspend_work = false; + bool scale_up = false, sched_clk_scaling_suspend_work = false; struct list_head *clk_list = &hba->clk_list_head; struct ufs_clk_info *clki; unsigned long irq_flags; @@ -2469,6 +2469,7 @@ int ufshcd_send_uic_cmd(struct ufs_hba *hba, struct uic_command *uic_cmd) ufshcd_hold(hba); mutex_lock(&hba->uic_cmd_mutex); ufshcd_add_delay_before_dme_cmd(hba); + WARN_ON(hba->uic_async_done); ret = __ufshcd_send_uic_cmd(hba, uic_cmd, true); if (!ret) @@ -4173,7 +4174,6 @@ static int ufshcd_uic_pwr_ctrl(struct ufs_hba *hba, struct uic_command *cmd) unsigned long flags; u8 status; int ret; - bool reenable_intr = false; mutex_lock(&hba->uic_cmd_mutex); ufshcd_add_delay_before_dme_cmd(hba); @@ -4184,15 +4184,6 @@ static int ufshcd_uic_pwr_ctrl(struct ufs_hba *hba, struct uic_command *cmd) goto out_unlock; } hba->uic_async_done = &uic_async_done; - if (ufshcd_readl(hba, REG_INTERRUPT_ENABLE) & UIC_COMMAND_COMPL) { - ufshcd_disable_intr(hba, UIC_COMMAND_COMPL); - /* - * Make sure UIC command completion interrupt is disabled before - * issuing UIC command. - */ - ufshcd_readl(hba, REG_INTERRUPT_ENABLE); - reenable_intr = true; - } spin_unlock_irqrestore(hba->host->host_lock, flags); ret = __ufshcd_send_uic_cmd(hba, cmd, false); if (ret) { @@ -4236,8 +4227,6 @@ static int ufshcd_uic_pwr_ctrl(struct ufs_hba *hba, struct uic_command *cmd) spin_lock_irqsave(hba->host->host_lock, flags); hba->active_uic_cmd = NULL; hba->uic_async_done = NULL; - if (reenable_intr) - ufshcd_enable_intr(hba, UIC_COMMAND_COMPL); if (ret) { ufshcd_set_link_broken(hba); ufshcd_schedule_eh_work(hba); @@ -5396,31 +5385,31 @@ static bool ufshcd_is_auto_hibern8_error(struct ufs_hba *hba, static irqreturn_t ufshcd_uic_cmd_compl(struct ufs_hba *hba, u32 intr_status) { irqreturn_t retval = IRQ_NONE; + struct uic_command *cmd; spin_lock(hba->host->host_lock); + cmd = hba->active_uic_cmd; if (ufshcd_is_auto_hibern8_error(hba, intr_status)) hba->errors |= (UFSHCD_UIC_HIBERN8_MASK & intr_status); - if ((intr_status & UIC_COMMAND_COMPL) && hba->active_uic_cmd) { - hba->active_uic_cmd->argument2 |= - ufshcd_get_uic_cmd_result(hba); - hba->active_uic_cmd->argument3 = - ufshcd_get_dme_attr_val(hba); - if (!hba->uic_async_done) - hba->active_uic_cmd->cmd_active = 0; - complete(&hba->active_uic_cmd->done); + if (intr_status & UIC_COMMAND_COMPL && cmd) { + if (!hba->uic_async_done) { + cmd->argument2 |= ufshcd_get_uic_cmd_result(hba); + cmd->argument3 = ufshcd_get_dme_attr_val(hba); + cmd->cmd_active = 0; + complete(&cmd->done); + } retval = IRQ_HANDLED; } - if ((intr_status & UFSHCD_UIC_PWR_MASK) && hba->uic_async_done) { - hba->active_uic_cmd->cmd_active = 0; + if (intr_status & UFSHCD_UIC_PWR_MASK && hba->uic_async_done) { + cmd->cmd_active = 0; complete(hba->uic_async_done); retval = IRQ_HANDLED; } if (retval == IRQ_HANDLED) - ufshcd_add_uic_command_trace(hba, hba->active_uic_cmd, - UFS_CMD_COMP); + ufshcd_add_uic_command_trace(hba, cmd, UFS_CMD_COMP); spin_unlock(hba->host->host_lock); return retval; } diff --git a/drivers/usb/gadget/function/uvc_video.c b/drivers/usb/gadget/function/uvc_video.c index 0743fa842f7f..3ceb121fec28 100644 --- a/drivers/usb/gadget/function/uvc_video.c +++ b/drivers/usb/gadget/function/uvc_video.c @@ -472,13 +472,15 @@ uvc_video_complete(struct usb_ep *ep, struct usb_request *req) * Put request back in req_free for it to be cleaned * up later. */ - uvcg_queue_cancel(queue, 0); list_add_tail(&to_queue->list, &video->req_free); } } else { uvc_video_free_request(ureq, ep); + ret = 0; } spin_unlock_irqrestore(&video->req_lock, flags); + if (ret < 0) + uvcg_queue_cancel(queue, 0); } static int diff --git a/drivers/virt/gunyah/vm_mgr_mem.c b/drivers/virt/gunyah/vm_mgr_mem.c index e22c80d285b7..49d0852206f0 100644 --- a/drivers/virt/gunyah/vm_mgr_mem.c +++ b/drivers/virt/gunyah/vm_mgr_mem.c @@ -473,7 +473,7 @@ int gunyah_gup_share_parcel(struct gunyah_vm *ghvm, struct gunyah_rm_mem_parcel u16 vmid; struct folio *folio; unsigned int gup_flags; - unsigned long i, offset; + unsigned long i, offset, entries; parcel->mem_handle = GUNYAH_MEM_HANDLE_INVAL; @@ -548,6 +548,7 @@ int gunyah_gup_share_parcel(struct gunyah_vm *ghvm, struct gunyah_rm_mem_parcel parcel->acl_entries[1].perms = GUNYAH_RM_ACL_R | GUNYAH_RM_ACL_W | GUNYAH_RM_ACL_X; } + /* overallocate & assume no large folios */ parcel->mem_entries = kcalloc(pinned, sizeof(parcel->mem_entries[0]), GFP_KERNEL_ACCOUNT); if (!parcel->mem_entries) { @@ -559,17 +560,20 @@ int gunyah_gup_share_parcel(struct gunyah_vm *ghvm, struct gunyah_rm_mem_parcel parcel->mem_entries[0].size = cpu_to_le64(folio_size(folio)); parcel->mem_entries[0].phys_addr = cpu_to_le64(PFN_PHYS(folio_pfn(folio))); - for (i = 1; i < pinned; i++) { + for (i = 1, entries = 1; i < pinned; i++) { folio = page_folio(pages[i]); if (pages[i] == folio_page(folio, 0)) { - parcel->mem_entries[i].size = cpu_to_le64(folio_size(folio)); - parcel->mem_entries[i].phys_addr = cpu_to_le64(PFN_PHYS(folio_pfn(folio))); + parcel->mem_entries[entries].size = + cpu_to_le64(folio_size(folio)); + parcel->mem_entries[entries].phys_addr = + cpu_to_le64(PFN_PHYS(folio_pfn(folio))); + entries++; } else { unpin_user_page(pages[i]); account_locked_vm(current->mm, 1, false); } } - parcel->n_mem_entries = i; + parcel->n_mem_entries = entries; ret = gunyah_rm_mem_share(ghvm->rm, parcel); goto free_pages; diff --git a/drivers/virtio/TEST_MAPPING b/drivers/virtio/TEST_MAPPING index d0549aded31e..d334101ba304 100644 --- a/drivers/virtio/TEST_MAPPING +++ b/drivers/virtio/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/fs/TEST_MAPPING b/fs/TEST_MAPPING index 383a351470ad..aec38c80637d 100644 --- a/fs/TEST_MAPPING +++ b/fs/TEST_MAPPING @@ -242,6 +242,14 @@ } ], "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + }, { "name": "libdm_test" }, diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c index db6977c15c28..bac37caa1a42 100644 --- a/fs/ceph/inode.c +++ b/fs/ceph/inode.c @@ -78,6 +78,8 @@ struct inode *ceph_new_inode(struct inode *dir, struct dentry *dentry, if (!inode) return ERR_PTR(-ENOMEM); + inode->i_blkbits = CEPH_FSCRYPT_BLOCK_SHIFT; + if (!S_ISLNK(*mode)) { err = ceph_pre_init_acls(dir, mode, as_ctx); if (err < 0) diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index bbdb3108c878..f70d8709cc4b 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -896,8 +896,8 @@ static int show_smap(struct seq_file *m, void *v) __show_smap(m, &mss, false); seq_printf(m, "THPeligible: %8u\n", - !!thp_vma_allowable_orders(vma, vma->vm_flags, true, false, - true, THP_ORDERS_ALL)); + !!thp_vma_allowable_orders(vma, vma->vm_flags, + TVA_SMAPS | TVA_ENFORCE_SYSFS, THP_ORDERS_ALL)); if (arch_pkeys_enabled()) seq_printf(m, "ProtectionKey: %8u\n", vma_pkey(vma)); diff --git a/include/asm-generic/TEST_MAPPING b/include/asm-generic/TEST_MAPPING index f4043122d274..741dd29a1dc1 100644 --- a/include/asm-generic/TEST_MAPPING +++ b/include/asm-generic/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/include/crypto/TEST_MAPPING b/include/crypto/TEST_MAPPING index 456331d22b74..4712409a71e2 100644 --- a/include/crypto/TEST_MAPPING +++ b/include/crypto/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/include/drm/TEST_MAPPING b/include/drm/TEST_MAPPING index af1de78d0fd3..8a2a3f7b63be 100644 --- a/include/drm/TEST_MAPPING +++ b/include/drm/TEST_MAPPING @@ -263,5 +263,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/include/linux/TEST_MAPPING b/include/linux/TEST_MAPPING index 3057cdffe258..13fa08f0296d 100644 --- a/include/linux/TEST_MAPPING +++ b/include/linux/TEST_MAPPING @@ -263,5 +263,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h index c4de5fb1683b..b03c0afc7eb2 100644 --- a/include/linux/huge_mm.h +++ b/include/linux/huge_mm.h @@ -84,8 +84,12 @@ extern struct kobj_attribute shmem_enabled_attr; */ #define THP_ORDERS_ALL (THP_ORDERS_ALL_ANON | THP_ORDERS_ALL_FILE) -#define thp_vma_allowable_order(vma, vm_flags, smaps, in_pf, enforce_sysfs, order) \ - (!!thp_vma_allowable_orders(vma, vm_flags, smaps, in_pf, enforce_sysfs, BIT(order))) +#define TVA_SMAPS (1 << 0) /* Will be used for procfs */ +#define TVA_IN_PF (1 << 1) /* Page fault handler */ +#define TVA_ENFORCE_SYSFS (1 << 2) /* Obey sysfs configuration */ + +#define thp_vma_allowable_order(vma, vm_flags, tva_flags, order) \ + (!!thp_vma_allowable_orders(vma, vm_flags, tva_flags, BIT(order))) #ifdef CONFIG_TRANSPARENT_HUGEPAGE #define HPAGE_PMD_SHIFT PMD_SHIFT @@ -211,17 +215,15 @@ static inline bool file_thp_enabled(struct vm_area_struct *vma) } unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma, - unsigned long vm_flags, bool smaps, - bool in_pf, bool enforce_sysfs, + unsigned long vm_flags, + unsigned long tva_flags, unsigned long orders); /** * thp_vma_allowable_orders - determine hugepage orders that are allowed for vma * @vma: the vm area to check * @vm_flags: use these vm_flags instead of vma->vm_flags - * @smaps: whether answer will be used for smaps file - * @in_pf: whether answer will be used by page fault handler - * @enforce_sysfs: whether sysfs config should be taken into account + * @tva_flags: Which TVA flags to honour * @orders: bitfield of all orders to consider * * Calculates the intersection of the requested hugepage orders and the allowed @@ -234,12 +236,12 @@ unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma, */ static inline unsigned long thp_vma_allowable_orders(struct vm_area_struct *vma, - unsigned long vm_flags, bool smaps, - bool in_pf, bool enforce_sysfs, + unsigned long vm_flags, + unsigned long tva_flags, unsigned long orders) { /* Optimization to check if required orders are enabled early. */ - if (enforce_sysfs && vma_is_anonymous(vma)) { + if ((tva_flags & TVA_ENFORCE_SYSFS) && vma_is_anonymous(vma)) { unsigned long mask = READ_ONCE(huge_anon_orders_always); if (vm_flags & VM_HUGEPAGE) @@ -253,8 +255,7 @@ unsigned long thp_vma_allowable_orders(struct vm_area_struct *vma, return 0; } - return __thp_vma_allowable_orders(vma, vm_flags, smaps, in_pf, - enforce_sysfs, orders); + return __thp_vma_allowable_orders(vma, vm_flags, tva_flags, orders); } enum mthp_stat_item { @@ -432,8 +433,8 @@ static inline unsigned long thp_vma_suitable_orders(struct vm_area_struct *vma, } static inline unsigned long thp_vma_allowable_orders(struct vm_area_struct *vma, - unsigned long vm_flags, bool smaps, - bool in_pf, bool enforce_sysfs, + unsigned long vm_flags, + unsigned long tva_flags, unsigned long orders) { return 0; diff --git a/include/linux/ksm.h b/include/linux/ksm.h index 32ecea266fe6..f701b57fc64b 100644 --- a/include/linux/ksm.h +++ b/include/linux/ksm.h @@ -87,7 +87,7 @@ static inline void ksm_exit(struct mm_struct *mm) * We'd like to make this conditional on vma->vm_flags & VM_MERGEABLE, * but what if the vma was unmerged while the page was swapped out? */ -struct page *ksm_might_need_to_copy(struct page *page, +struct folio *ksm_might_need_to_copy(struct folio *folio, struct vm_area_struct *vma, unsigned long addr); void rmap_walk_ksm(struct folio *folio, struct rmap_walk_control *rwc); @@ -140,10 +140,10 @@ static inline int ksm_madvise(struct vm_area_struct *vma, unsigned long start, return 0; } -static inline struct page *ksm_might_need_to_copy(struct page *page, +static inline struct folio *ksm_might_need_to_copy(struct folio *folio, struct vm_area_struct *vma, unsigned long addr) { - return page; + return folio; } static inline void rmap_walk_ksm(struct folio *folio, diff --git a/include/linux/oom.h b/include/linux/oom.h index 7d0c9c48a0c5..f008e23d9b41 100644 --- a/include/linux/oom.h +++ b/include/linux/oom.h @@ -112,4 +112,6 @@ extern void oom_killer_enable(void); extern struct task_struct *find_lock_task_mm(struct task_struct *p); +/* call for adding killed process to reaper. */ +extern void add_to_oom_reaper(struct task_struct *p); #endif /* _INCLUDE_LINUX_OOM_H */ diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 64841f341949..93773b24e912 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -786,7 +786,6 @@ struct perf_event { struct irq_work pending_irq; struct callback_head pending_task; unsigned int pending_work; - struct rcuwait pending_work_wait; atomic_t event_limit; diff --git a/include/linux/rmap.h b/include/linux/rmap.h index d7d28a97795c..03280fe5691e 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -243,10 +243,8 @@ void folio_add_anon_rmap_ptes(struct folio *, struct page *, int nr_pages, folio_add_anon_rmap_ptes(folio, page, 1, vma, address, flags) void folio_add_anon_rmap_pmd(struct folio *, struct page *, struct vm_area_struct *, unsigned long address, rmap_t flags); -void page_add_new_anon_rmap(struct page *, struct vm_area_struct *, - unsigned long address); void folio_add_new_anon_rmap(struct folio *, struct vm_area_struct *, - unsigned long address); + unsigned long address, rmap_t flags); void folio_add_file_rmap_ptes(struct folio *, struct page *, int nr_pages, struct vm_area_struct *); #define folio_add_file_rmap_pte(folio, page, vma) \ diff --git a/include/linux/sbitmap.h b/include/linux/sbitmap.h index c09cdcc99471..d662cf136021 100644 --- a/include/linux/sbitmap.h +++ b/include/linux/sbitmap.h @@ -36,11 +36,6 @@ struct sbitmap_word { * @cleared: word holding cleared bits */ unsigned long cleared ____cacheline_aligned_in_smp; - - /** - * @swap_lock: serializes simultaneous updates of ->word and ->cleared - */ - spinlock_t swap_lock; } ____cacheline_aligned_in_smp; /** diff --git a/include/linux/swap.h b/include/linux/swap.h index 2169b0d5e104..12f45cd1f2fb 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -421,9 +421,6 @@ void folio_deactivate(struct folio *folio); void folio_mark_lazyfree(struct folio *folio); extern void swap_setup(void); -extern void lru_cache_add_inactive_or_unevictable(struct page *page, - struct vm_area_struct *vma); - /* linux/mm/vmscan.c */ extern unsigned long zone_reclaimable_pages(struct zone *zone); extern unsigned long try_to_free_pages(struct zonelist *zonelist, int order, diff --git a/include/linux/zswap.h b/include/linux/zswap.h index 2a60ce39cfde..f647ee38598a 100644 --- a/include/linux/zswap.h +++ b/include/linux/zswap.h @@ -15,6 +15,7 @@ bool zswap_load(struct folio *folio); void zswap_invalidate(int type, pgoff_t offset); void zswap_swapon(int type); void zswap_swapoff(int type); +bool zswap_never_enabled(void); #else @@ -32,6 +33,11 @@ static inline void zswap_invalidate(int type, pgoff_t offset) {} static inline void zswap_swapon(int type) {} static inline void zswap_swapoff(int type) {} +static inline bool zswap_never_enabled(void) +{ + return true; +} + #endif #endif /* _LINUX_ZSWAP_H */ diff --git a/include/net/TEST_MAPPING b/include/net/TEST_MAPPING index bc83f08bbeea..4a682666ff9d 100644 --- a/include/net/TEST_MAPPING +++ b/include/net/TEST_MAPPING @@ -263,5 +263,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/include/net/xfrm.h b/include/net/xfrm.h index c04a6cc0aba4..bf7743f50dca 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h @@ -176,10 +176,7 @@ struct xfrm_state { struct hlist_node gclist; struct hlist_node bydst; }; - union { - struct hlist_node dev_gclist; - struct hlist_node bysrc; - }; + struct hlist_node bysrc; struct hlist_node byspi; struct hlist_node byseq; @@ -1587,7 +1584,7 @@ int xfrm_state_check_expire(struct xfrm_state *x); static inline void xfrm_dev_state_update_curlft(struct xfrm_state *x) { struct xfrm_dev_offload *xdo = &x->xso; - struct net_device *dev = READ_ONCE(xdo->dev); + struct net_device *dev = xdo->dev; if (x->xso.type != XFRM_DEV_OFFLOAD_PACKET) return; @@ -1944,16 +1941,13 @@ int xfrm_dev_policy_add(struct net *net, struct xfrm_policy *xp, struct xfrm_user_offload *xuo, u8 dir, struct netlink_ext_ack *extack); bool xfrm_dev_offload_ok(struct sk_buff *skb, struct xfrm_state *x); -void xfrm_dev_state_delete(struct xfrm_state *x); -void xfrm_dev_state_free(struct xfrm_state *x); static inline void xfrm_dev_state_advance_esn(struct xfrm_state *x) { struct xfrm_dev_offload *xso = &x->xso; - struct net_device *dev = READ_ONCE(xso->dev); - if (dev && dev->xfrmdev_ops->xdo_dev_state_advance_esn) - dev->xfrmdev_ops->xdo_dev_state_advance_esn(x); + if (xso->dev && xso->dev->xfrmdev_ops->xdo_dev_state_advance_esn) + xso->dev->xfrmdev_ops->xdo_dev_state_advance_esn(x); } static inline bool xfrm_dst_offload_ok(struct dst_entry *dst) @@ -1974,6 +1968,28 @@ static inline bool xfrm_dst_offload_ok(struct dst_entry *dst) return false; } +static inline void xfrm_dev_state_delete(struct xfrm_state *x) +{ + struct xfrm_dev_offload *xso = &x->xso; + + if (xso->dev) + xso->dev->xfrmdev_ops->xdo_dev_state_delete(x); +} + +static inline void xfrm_dev_state_free(struct xfrm_state *x) +{ + struct xfrm_dev_offload *xso = &x->xso; + struct net_device *dev = xso->dev; + + if (dev && dev->xfrmdev_ops) { + if (dev->xfrmdev_ops->xdo_dev_state_free) + dev->xfrmdev_ops->xdo_dev_state_free(x); + xso->dev = NULL; + xso->type = XFRM_DEV_OFFLOAD_UNSPECIFIED; + netdev_put(dev, &xso->dev_tracker); + } +} + static inline void xfrm_dev_policy_delete(struct xfrm_policy *x) { struct xfrm_dev_offload *xdo = &x->xdo; diff --git a/include/trace/TEST_MAPPING b/include/trace/TEST_MAPPING index be6e9ef89bbe..2568623d0076 100644 --- a/include/trace/TEST_MAPPING +++ b/include/trace/TEST_MAPPING @@ -263,5 +263,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index 5fc7c196a0d7..d1b4574d2540 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -54,6 +54,12 @@ DECLARE_HOOK(android_vh_si_meminfo_adjust, DECLARE_HOOK(android_vh_slab_folio_alloced, TP_PROTO(unsigned int order, gfp_t flags), TP_ARGS(order, flags)); +DECLARE_HOOK(android_vh_process_madvise_begin, + TP_PROTO(struct task_struct *task, int behavior), + TP_ARGS(task, behavior)); +DECLARE_HOOK(android_vh_process_madvise_iter, + TP_PROTO(struct task_struct *task, int behavior, ssize_t *ret), + TP_ARGS(task, behavior, ret)); DECLARE_HOOK(android_vh_kmalloc_large_alloced, TP_PROTO(struct page *page, unsigned int order, gfp_t flags), TP_ARGS(page, order, flags)); @@ -127,6 +133,9 @@ DECLARE_HOOK(android_vh_mem_cgroup_css_offline, DECLARE_HOOK(android_vh_save_track_hash, TP_PROTO(bool alloc, struct track *p), TP_ARGS(alloc, p)); +DECLARE_HOOK(android_vh_should_fault_around, + TP_PROTO(struct vm_fault *vmf, bool *should_around), + TP_ARGS(vmf, should_around)); DECLARE_HOOK(android_vh_kmalloc_slab, TP_PROTO(unsigned int index, gfp_t flags, struct kmem_cache **s), TP_ARGS(index, flags, s)); @@ -372,6 +381,12 @@ DECLARE_HOOK(android_vh_zs_shrinker_adjust, DECLARE_HOOK(android_vh_zs_shrinker_bypass, TP_PROTO(bool *bypass), TP_ARGS(bypass)); +DECLARE_HOOK(android_vh_customize_thp_pcp_order, + TP_PROTO(unsigned int *order), + TP_ARGS(order)); +DECLARE_HOOK(android_vh_customize_thp_gfp_orders, + TP_PROTO(gfp_t *gfp_mask, unsigned long *orders, int *order), + TP_ARGS(gfp_mask, orders, order)); #endif /* _TRACE_HOOK_MM_H */ /* This part must be outside protection */ diff --git a/include/trace/hooks/net.h b/include/trace/hooks/net.h index 69dd396611ac..2577182845b6 100644 --- a/include/trace/hooks/net.h +++ b/include/trace/hooks/net.h @@ -83,6 +83,12 @@ DECLARE_HOOK(android_vh_udp_v4_connect, TP_ARGS(sk, daddr, dport, family)); DECLARE_HOOK(android_vh_udp_v6_connect, TP_PROTO(struct sock *sk, struct sockaddr_in6 *sin6), TP_ARGS(sk, sin6)); +DECLARE_HOOK(android_vh_inet_create, + TP_PROTO(struct sock *sk, bool err), TP_ARGS(sk, err)); +DECLARE_HOOK(android_vh_uplink_send_msg, + TP_PROTO(struct sock *sk), TP_ARGS(sk)); +DECLARE_HOOK(android_vh_sock_create, + TP_PROTO(struct sock *sk), TP_ARGS(sk)); DECLARE_HOOK(android_vh_tcp_rtt_estimator, TP_PROTO(struct sock *sk, long mrtt_us), TP_ARGS(sk, mrtt_us)); DECLARE_HOOK(android_vh_udp_enqueue_schedule_skb, diff --git a/include/trace/hooks/ogki_honor.h b/include/trace/hooks/ogki_honor.h new file mode 100644 index 000000000000..f53e84cdf565 --- /dev/null +++ b/include/trace/hooks/ogki_honor.h @@ -0,0 +1,123 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM ogki_honor +#ifdef TRACE_INCLUDE_PATH +#undef TRACE_INCLUDE_PATH +#endif +#define TRACE_INCLUDE_PATH trace/hooks + +#if !defined(_TRACE_HOOK_OGKI_HONOR_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_HOOK_OGKI_HONOR_H + +#include + +struct task_struct; +struct sock; +struct sk_buff; +struct ufs_hba; +struct tcp_sock; +struct net_device; +struct cfg80211_registered_device; +DECLARE_HOOK(android_vh_ogki_async_psi_bypass, + TP_PROTO(bool *bypass), + TP_ARGS(bypass)); +DECLARE_HOOK(android_vh_ogki_ufs_clock_scaling, + TP_PROTO(struct ufs_hba *hba, bool *force_out, bool *force_scaling, bool *scale_up), + TP_ARGS(hba, force_out, force_scaling, scale_up)); +DECLARE_HOOK(android_vh_ogki_ufs_dsm, + TP_PROTO(struct ufs_hba *hba, unsigned long code, char *err_msg), + TP_ARGS(hba, code, err_msg)); +DECLARE_HOOK(android_vh_ogki_audit_log_setid, + TP_PROTO(u32 type, u32 old_id, u32 new_id), + TP_ARGS(type, old_id, new_id)); +DECLARE_HOOK(android_vh_ogki_audit_log_cfi, + TP_PROTO(unsigned long addr, unsigned long* target), + TP_ARGS(addr, target)); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_audit_log_usercopy, + TP_PROTO(bool to_user, const char* name, unsigned long len), + TP_ARGS(to_user, name, len), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_audit_log_module_sign, + TP_PROTO(int err), + TP_ARGS(err), 1); +DECLARE_HOOK(android_vh_ogki_check_vip_status, + TP_PROTO(int cur_pid, int cur_tgid, struct task_struct* task, int* ret), + TP_ARGS(cur_pid, cur_tgid, task, ret)); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_task_util, + TP_PROTO(struct task_struct* p, unsigned long* ret), + TP_ARGS(p, ret), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_uclamp_task_util, + TP_PROTO(struct task_struct* p, unsigned long* ret), + TP_ARGS(p, ret), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_get_task_tags, + TP_PROTO(struct task_struct* p, unsigned long long* ret), + TP_ARGS(p, ret), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_get_task_rsum, + TP_PROTO(struct task_struct* p, unsigned long long* ret), + TP_ARGS(p, ret), 1); +DECLARE_HOOK(android_rvh_ogki_check_task_tags, + TP_PROTO(struct task_struct *p, int *ret), + TP_ARGS(p, ret)); +DECLARE_HOOK(android_vh_ogki_tcp_srtt_estimator, + TP_PROTO(struct sock *sk), TP_ARGS(sk)); +DECLARE_HOOK(android_vh_ogki_tcp_rcv_estab_fastpath, + TP_PROTO(struct sock *sk), TP_ARGS(sk)); +DECLARE_HOOK(android_vh_ogki_tcp_rcv_estab_slowpath, + TP_PROTO(struct sock *sk), TP_ARGS(sk)); +DECLARE_HOOK(android_vh_ogki_set_wifi_state_connect, + TP_PROTO(const char *name, struct cfg80211_registered_device *rdev, struct net_device *dev, u8 *mac_addr), + TP_ARGS(name, rdev, dev, mac_addr)); +DECLARE_HOOK(android_vh_ogki_set_wifi_state_disconnect, + TP_PROTO(const char *name), TP_ARGS(name)); +DECLARE_HOOK(android_vh_ogki_tcp_rcv_rtt_update, + TP_PROTO(struct tcp_sock *tp, u32 sample, int win_dep), TP_ARGS(tp, sample, win_dep)); +DECLARE_HOOK(android_vh_ogki_tcp_retransmit_timer, + TP_PROTO(struct sock *sk), TP_ARGS(sk)); +DECLARE_HOOK(android_vh_ogki_udp_unicast_rcv_skb, + TP_PROTO(struct sk_buff *skb, struct sock *sk), + TP_ARGS(skb, sk)); +DECLARE_HOOK(android_vh_ogki_udp6_unicast_rcv_skb, + TP_PROTO(struct sk_buff *skb, struct sock *sk), + TP_ARGS(skb, sk)); +DECLARE_HOOK(android_vh_ogki_get_log_usertype, + TP_PROTO(unsigned int *type), + TP_ARGS(type)); +DECLARE_HOOK(android_vh_ogki_hievent_to_jank, + TP_PROTO(int tag, int prio, const char *buf, int *ret), + TP_ARGS(tag, prio, buf, ret)); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_hievent_create, + TP_PROTO(unsigned int event_id, void **event), + TP_ARGS(event_id, event), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_hievent_put_string, + TP_PROTO(void *event, const char *key, const char *value, int *ret), + TP_ARGS(event, key, value, ret), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_hievent_put_integral, + TP_PROTO(void *event, const char *key, long long value, int *ret), + TP_ARGS(event, key, value, ret), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_hievent_report, + TP_PROTO(void *event, int *ret), + TP_ARGS(event, ret), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_hievent_destroy, + TP_PROTO(void *event), + TP_ARGS(event), 1); +DECLARE_HOOK(android_vh_ogki_f2fs_dsm, + TP_PROTO(char *name, int len), + TP_ARGS(name, len)); +DECLARE_HOOK(android_vh_ogki_f2fs_dsm_get, + TP_PROTO(unsigned long code, char *err_msg), + TP_ARGS(code, err_msg)); +DECLARE_HOOK(android_vh_ogki_cma_alloc_retry, + TP_PROTO(char *name, int *retry), + TP_ARGS(name, retry)); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_vmalloc_node_bypass, + TP_PROTO(unsigned long size, gfp_t gfp_mask, void **addr), + TP_ARGS(size, gfp_mask, addr), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_ogki_vfree_bypass, + TP_PROTO(const void *addr, bool *bypass), + TP_ARGS(addr, bypass), 1); +DECLARE_HOOK(android_vh_ogki_kmem_cache_create_usercopy, + TP_PROTO(unsigned int flags), + TP_ARGS(flags)); +#endif /* _TRACE_HOOK_OGKI_ogki_H */ +/* This part must be outside protection */ +#include + diff --git a/include/trace/hooks/signal.h b/include/trace/hooks/signal.h index 4e61006cb145..c845aec359d7 100644 --- a/include/trace/hooks/signal.h +++ b/include/trace/hooks/signal.h @@ -14,6 +14,9 @@ DECLARE_HOOK(android_vh_do_send_sig_info, DECLARE_HOOK(android_vh_exit_signal, TP_PROTO(struct task_struct *task), TP_ARGS(task)); +DECLARE_HOOK(android_vh_killed_process, + TP_PROTO(struct task_struct *killer, struct task_struct *dst, bool *reap), + TP_ARGS(killer, dst, reap)); #endif /* _TRACE_HOOK_SIGNAL_H */ /* This part must be outside protection */ #include diff --git a/include/trace/hooks/wqlockup.h b/include/trace/hooks/wqlockup.h index 8c5613cde553..5a34038ae21b 100644 --- a/include/trace/hooks/wqlockup.h +++ b/include/trace/hooks/wqlockup.h @@ -10,13 +10,23 @@ * Following tracepoints are not exported in tracefs and provide a * mechanism for vendor modules to hook and extend functionality */ +DECLARE_RESTRICTED_HOOK(android_rvh_create_worker, + TP_PROTO(struct task_struct *p, struct workqueue_attrs *attrs), + TP_ARGS(p, attrs), 1); + DECLARE_HOOK(android_vh_wq_lockup_pool, TP_PROTO(int cpu, unsigned long pool_ts), TP_ARGS(cpu, pool_ts)); +#ifndef __GENKSYMS__ +DECLARE_RESTRICTED_HOOK(android_rvh_alloc_and_link_pwqs, + TP_PROTO(struct workqueue_struct *wq, int *ret, bool *skip), + TP_ARGS(wq, ret, skip), 1); +#else DECLARE_HOOK(android_rvh_alloc_and_link_pwqs, TP_PROTO(struct workqueue_struct *wq, int *ret, bool *skip), TP_ARGS(wq, ret, skip)); +#endif #endif /* _TRACE_HOOK_WQLOCKUP_H */ /* This part must be outside protection */ diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h index 383bcd0f25db..9736350ce3b0 100644 --- a/include/ufs/ufshcd.h +++ b/include/ufs/ufshcd.h @@ -876,9 +876,10 @@ enum ufshcd_mcq_opr { * @tmf_tag_set: TMF tag set. * @tmf_queue: Used to allocate TMF tags. * @tmf_rqs: array with pointers to TMF requests while these are in progress. - * @active_uic_cmd: handle of active UIC command - * @uic_cmd_mutex: mutex for UIC command - * @uic_async_done: completion used during UIC processing + * @active_uic_cmd: active UIC command pointer. + * @uic_cmd_mutex: mutex used to serialize UIC command processing. + * @uic_async_done: completion used to wait for power mode or hibernation state + * changes. * @ufshcd_state: UFSHCD state * @eh_flags: Error handling flags * @intr_mask: Interrupt Mask Bits diff --git a/kernel/bpf/TEST_MAPPING b/kernel/bpf/TEST_MAPPING index 320ae2583733..4ba6622570e4 100644 --- a/kernel/bpf/TEST_MAPPING +++ b/kernel/bpf/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/kernel/cgroup/TEST_MAPPING b/kernel/cgroup/TEST_MAPPING index 320ae2583733..4ba6622570e4 100644 --- a/kernel/cgroup/TEST_MAPPING +++ b/kernel/cgroup/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c index d303e620e6ba..d46f44f544ea 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -21,7 +21,9 @@ * License. See the file COPYING in the main directory of the Linux * distribution for more details. */ +#ifndef __GENKSYMS__ #include "cgroup-internal.h" +#endif #include #include diff --git a/kernel/dma/TEST_MAPPING b/kernel/dma/TEST_MAPPING index 88b2bee53ea5..6aeabd696a4a 100644 --- a/kernel/dma/TEST_MAPPING +++ b/kernel/dma/TEST_MAPPING @@ -255,5 +255,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/kernel/events/core.c b/kernel/events/core.c index eeacc6676060..163022cee851 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -2288,6 +2288,7 @@ event_sched_out(struct perf_event *event, struct perf_event_context *ctx) if (state != PERF_EVENT_STATE_OFF && !event->pending_work && !task_work_add(current, &event->pending_task, TWA_RESUME)) { + WARN_ON_ONCE(!atomic_long_inc_not_zero(&event->refcount)); event->pending_work = 1; } else { local_dec(&event->ctx->nr_pending); @@ -5174,35 +5175,9 @@ static bool exclusive_event_installable(struct perf_event *event, static void perf_addr_filters_splice(struct perf_event *event, struct list_head *head); -static void perf_pending_task_sync(struct perf_event *event) -{ - struct callback_head *head = &event->pending_task; - - if (!event->pending_work) - return; - /* - * If the task is queued to the current task's queue, we - * obviously can't wait for it to complete. Simply cancel it. - */ - if (task_work_cancel(current, head)) { - event->pending_work = 0; - local_dec(&event->ctx->nr_pending); - return; - } - - /* - * All accesses related to the event are within the same - * non-preemptible section in perf_pending_task(). The RCU - * grace period before the event is freed will make sure all - * those accesses are complete by then. - */ - rcuwait_wait_event(&event->pending_work_wait, !event->pending_work, TASK_UNINTERRUPTIBLE); -} - static void _free_event(struct perf_event *event) { irq_work_sync(&event->pending_irq); - perf_pending_task_sync(event); unaccount_event(event); @@ -6835,28 +6810,24 @@ static void perf_pending_task(struct callback_head *head) struct perf_event *event = container_of(head, struct perf_event, pending_task); int rctx; - /* - * All accesses to the event must belong to the same implicit RCU read-side - * critical section as the ->pending_work reset. See comment in - * perf_pending_task_sync(). - */ - preempt_disable_notrace(); /* * If we 'fail' here, that's OK, it means recursion is already disabled * and we won't recurse 'further'. */ + preempt_disable_notrace(); rctx = perf_swevent_get_recursion_context(); if (event->pending_work) { event->pending_work = 0; perf_sigtrap(event); local_dec(&event->ctx->nr_pending); - rcuwait_wake_up(&event->pending_work_wait); } if (rctx >= 0) perf_swevent_put_recursion_context(rctx); preempt_enable_notrace(); + + put_event(event); } #ifdef CONFIG_GUEST_PERF_EVENTS @@ -11944,7 +11915,6 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu, init_waitqueue_head(&event->waitq); init_irq_work(&event->pending_irq, perf_pending_irq); init_task_work(&event->pending_task, perf_pending_task); - rcuwait_init(&event->pending_work_wait); mutex_init(&event->mmap_mutex); raw_spin_lock_init(&event->addr_filters.lock); diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index 36ed3f3b5993..19ca3c55b963 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -184,7 +184,7 @@ static int __replace_page(struct vm_area_struct *vma, unsigned long addr, if (new_page) { folio_get(new_folio); - folio_add_new_anon_rmap(new_folio, vma, addr); + folio_add_new_anon_rmap(new_folio, vma, addr, RMAP_EXCLUSIVE); folio_add_lru_vma(new_folio, vma); trace_android_vh_uprobes_replace_page(new_folio, old_folio); } else diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h index 30b34f215ca3..e019f166daa6 100644 --- a/kernel/rcu/tree_nocb.h +++ b/kernel/rcu/tree_nocb.h @@ -220,7 +220,10 @@ static bool __wake_nocb_gp(struct rcu_data *rdp_gp, raw_spin_unlock_irqrestore(&rdp_gp->nocb_gp_lock, flags); if (needwake) { trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, TPS("DoWake")); - wake_up_process(rdp_gp->nocb_gp_kthread); + if (cpu_is_offline(raw_smp_processor_id())) + swake_up_one_online(&rdp_gp->nocb_gp_wq); + else + wake_up_process(rdp_gp->nocb_gp_kthread); } return needwake; diff --git a/kernel/sched/TEST_MAPPING b/kernel/sched/TEST_MAPPING index 020e4abde7d5..5d5b51a3bbcf 100644 --- a/kernel/sched/TEST_MAPPING +++ b/kernel/sched/TEST_MAPPING @@ -247,5 +247,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/kernel/signal.c b/kernel/signal.c index f8096bbaf0a8..2655ea43b640 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -47,6 +47,7 @@ #include #include #include +#include #define CREATE_TRACE_POINTS #include @@ -1465,8 +1466,16 @@ int group_send_sig_info(int sig, struct kernel_siginfo *info, ret = check_kill_permission(sig, info, p); rcu_read_unlock(); - if (!ret && sig) + if (!ret && sig) { ret = do_send_sig_info(sig, info, p, type); + if (!ret && sig == SIGKILL) { + bool reap = false; + + trace_android_vh_killed_process(current, p, &reap); + if (reap) + add_to_oom_reaper(p); + } + } return ret; } diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c index c0c660b6fcf9..96b25983cede 100644 --- a/kernel/time/tick-common.c +++ b/kernel/time/tick-common.c @@ -85,7 +85,7 @@ int tick_is_oneshot_available(void) */ static void tick_periodic(int cpu) { - if (tick_do_timer_cpu == cpu) { + if (READ_ONCE(tick_do_timer_cpu) == cpu) { raw_spin_lock(&jiffies_lock); write_seqcount_begin(&jiffies_seq); @@ -199,8 +199,8 @@ static void tick_setup_device(struct tick_device *td, * If no cpu took the do_timer update, assign it to * this cpu: */ - if (tick_do_timer_cpu == TICK_DO_TIMER_BOOT) { - tick_do_timer_cpu = cpu; + if (READ_ONCE(tick_do_timer_cpu) == TICK_DO_TIMER_BOOT) { + WRITE_ONCE(tick_do_timer_cpu, cpu); tick_next_period = ktime_get(); #ifdef CONFIG_NO_HZ_FULL /* diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index 9c556c716382..254624e4bd43 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -185,7 +185,7 @@ static ktime_t tick_init_jiffy_update(void) static void tick_sched_do_timer(struct tick_sched *ts, ktime_t now) { - int cpu = smp_processor_id(); + int tick_cpu, cpu = smp_processor_id(); #ifdef CONFIG_NO_HZ_COMMON /* @@ -198,16 +198,18 @@ static void tick_sched_do_timer(struct tick_sched *ts, ktime_t now) * If nohz_full is enabled, this should not happen because the * tick_do_timer_cpu never relinquishes. */ - if (unlikely(tick_do_timer_cpu == TICK_DO_TIMER_NONE)) { + tick_cpu = READ_ONCE(tick_do_timer_cpu); + if (unlikely(tick_cpu == TICK_DO_TIMER_NONE)) { #ifdef CONFIG_NO_HZ_FULL WARN_ON_ONCE(tick_nohz_full_running); #endif - tick_do_timer_cpu = cpu; + WRITE_ONCE(tick_do_timer_cpu, cpu); + tick_cpu = cpu; } #endif /* Check, if the jiffies need an update */ - if (tick_do_timer_cpu == cpu) { + if (tick_cpu == cpu) { tick_do_update_jiffies64(now); trace_android_vh_jiffies_update(NULL); } @@ -553,7 +555,7 @@ bool tick_nohz_cpu_hotpluggable(unsigned int cpu) * timers, workqueues, timekeeping, ...) on behalf of full dynticks * CPUs. It must remain online when nohz full is enabled. */ - if (tick_nohz_full_running && tick_do_timer_cpu == cpu) + if (tick_nohz_full_running && READ_ONCE(tick_do_timer_cpu) == cpu) return false; return true; } @@ -806,6 +808,7 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) u64 basemono, next_tick, delta, expires; unsigned long basejiff; unsigned int seq; + int tick_cpu; /* Read jiffies and the time when jiffies were updated last */ do { @@ -868,8 +871,9 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) * Otherwise we can sleep as long as we want. */ delta = timekeeping_max_deferment(); - if (cpu != tick_do_timer_cpu && - (tick_do_timer_cpu != TICK_DO_TIMER_NONE || !ts->do_timer_last)) + tick_cpu = READ_ONCE(tick_do_timer_cpu); + if (tick_cpu != cpu && + (tick_cpu != TICK_DO_TIMER_NONE || !ts->do_timer_last)) delta = KTIME_MAX; /* Calculate the next expiry time */ @@ -890,6 +894,7 @@ static void tick_nohz_stop_tick(struct tick_sched *ts, int cpu) u64 basemono = ts->timer_expires_base; u64 expires = ts->timer_expires; ktime_t tick = expires; + int tick_cpu; /* Make sure we won't be trying to stop it twice in a row. */ ts->timer_expires_base = 0; @@ -902,10 +907,11 @@ static void tick_nohz_stop_tick(struct tick_sched *ts, int cpu) * do_timer() never invoked. Keep track of the fact that it * was the one which had the do_timer() duty last. */ - if (cpu == tick_do_timer_cpu) { - tick_do_timer_cpu = TICK_DO_TIMER_NONE; + tick_cpu = READ_ONCE(tick_do_timer_cpu); + if (tick_cpu == cpu) { + WRITE_ONCE(tick_do_timer_cpu, TICK_DO_TIMER_NONE); ts->do_timer_last = 1; - } else if (tick_do_timer_cpu != TICK_DO_TIMER_NONE) { + } else if (tick_cpu != TICK_DO_TIMER_NONE) { ts->do_timer_last = 0; } @@ -1068,8 +1074,10 @@ static bool can_stop_idle_tick(int cpu, struct tick_sched *ts) * invoked. */ if (unlikely(!cpu_online(cpu))) { - if (cpu == tick_do_timer_cpu) - tick_do_timer_cpu = TICK_DO_TIMER_NONE; + int tick_cpu = READ_ONCE(tick_do_timer_cpu); + + if (tick_cpu == cpu) + WRITE_ONCE(tick_do_timer_cpu, TICK_DO_TIMER_NONE); /* * Make sure the CPU doesn't get fooled by obsolete tick * deadline if it comes back online later. @@ -1088,15 +1096,16 @@ static bool can_stop_idle_tick(int cpu, struct tick_sched *ts) return false; if (tick_nohz_full_enabled()) { + int tick_cpu = READ_ONCE(tick_do_timer_cpu); /* * Keep the tick alive to guarantee timekeeping progression * if there are full dynticks CPUs around */ - if (tick_do_timer_cpu == cpu) + if (tick_cpu == cpu) return false; /* Should not happen for nohz-full */ - if (WARN_ON_ONCE(tick_do_timer_cpu == TICK_DO_TIMER_NONE)) + if (WARN_ON_ONCE(tick_cpu == TICK_DO_TIMER_NONE)) return false; } diff --git a/kernel/workqueue.c b/kernel/workqueue.c index d57b9a97c6f6..942f5b7ab95a 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -2220,6 +2220,7 @@ static struct worker *create_worker(struct worker_pool *pool) } set_user_nice(worker->task, pool->attrs->nice); + trace_android_rvh_create_worker(worker->task, pool->attrs); kthread_bind_mask(worker->task, pool_allowed_cpus(pool)); /* successful, attach the worker to the pool */ @@ -6353,6 +6354,9 @@ static struct timer_list wq_watchdog_timer; static unsigned long wq_watchdog_touched = INITIAL_JIFFIES; static DEFINE_PER_CPU(unsigned long, wq_watchdog_touched_cpu) = INITIAL_JIFFIES; +static unsigned int wq_panic_on_stall; +module_param_named(panic_on_stall, wq_panic_on_stall, uint, 0644); + /* * Show workers that might prevent the processing of pending work items. * The only candidates are CPU-bound workers in the running state. @@ -6404,6 +6408,16 @@ static void show_cpu_pools_hogs(void) rcu_read_unlock(); } +static void panic_on_wq_watchdog(void) +{ + static unsigned int wq_stall; + + if (wq_panic_on_stall) { + wq_stall++; + BUG_ON(wq_stall >= wq_panic_on_stall); + } +} + static void wq_watchdog_reset_touched(void) { int cpu; @@ -6477,6 +6491,9 @@ static void wq_watchdog_timer_fn(struct timer_list *unused) if (cpu_pool_stall) show_cpu_pools_hogs(); + if (lockup_detected) + panic_on_wq_watchdog(); + wq_watchdog_reset_touched(); mod_timer(&wq_watchdog_timer, jiffies + thresh); } diff --git a/lib/sbitmap.c b/lib/sbitmap.c index 9307bf17a817..d1247f34d584 100644 --- a/lib/sbitmap.c +++ b/lib/sbitmap.c @@ -60,30 +60,12 @@ static inline void update_alloc_hint_after_get(struct sbitmap *sb, /* * See if we have deferred clears that we can batch move */ -static inline bool sbitmap_deferred_clear(struct sbitmap_word *map, - unsigned int depth, unsigned int alloc_hint, bool wrap) +static inline bool sbitmap_deferred_clear(struct sbitmap_word *map) { - unsigned long mask, word_mask; + unsigned long mask; - guard(spinlock_irqsave)(&map->swap_lock); - - if (!map->cleared) { - if (depth == 0) - return false; - - word_mask = (~0UL) >> (BITS_PER_LONG - depth); - /* - * The current behavior is to always retry after moving - * ->cleared to word, and we change it to retry in case - * of any free bits. To avoid an infinite loop, we need - * to take wrap & alloc_hint into account, otherwise a - * soft lockup may occur. - */ - if (!wrap && alloc_hint) - word_mask &= ~((1UL << alloc_hint) - 1); - - return (READ_ONCE(map->word) & word_mask) != word_mask; - } + if (!READ_ONCE(map->cleared)) + return false; /* * First get a stable cleared mask, setting the old mask to 0. @@ -103,7 +85,6 @@ int sbitmap_init_node(struct sbitmap *sb, unsigned int depth, int shift, bool alloc_hint) { unsigned int bits_per_word; - int i; if (shift < 0) shift = sbitmap_calculate_shift(depth); @@ -135,9 +116,6 @@ int sbitmap_init_node(struct sbitmap *sb, unsigned int depth, int shift, return -ENOMEM; } - for (i = 0; i < sb->map_nr; i++) - spin_lock_init(&sb->map[i].swap_lock); - return 0; } EXPORT_SYMBOL_GPL(sbitmap_init_node); @@ -148,7 +126,7 @@ void sbitmap_resize(struct sbitmap *sb, unsigned int depth) unsigned int i; for (i = 0; i < sb->map_nr; i++) - sbitmap_deferred_clear(&sb->map[i], 0, 0, 0); + sbitmap_deferred_clear(&sb->map[i]); sb->depth = depth; sb->map_nr = DIV_ROUND_UP(sb->depth, bits_per_word); @@ -201,7 +179,7 @@ static int sbitmap_find_bit_in_word(struct sbitmap_word *map, alloc_hint, wrap); if (nr != -1) break; - if (!sbitmap_deferred_clear(map, depth, alloc_hint, wrap)) + if (!sbitmap_deferred_clear(map)) break; } while (1); @@ -523,7 +501,7 @@ unsigned long __sbitmap_queue_get_batch(struct sbitmap_queue *sbq, int nr_tags, unsigned int map_depth = __map_depth(sb, index); unsigned long val; - sbitmap_deferred_clear(map, 0, 0, 0); + sbitmap_deferred_clear(map); val = READ_ONCE(map->word); if (val == (1UL << (map_depth - 1)) - 1) goto next; diff --git a/mm/TEST_MAPPING b/mm/TEST_MAPPING index e2b175d1dc38..b0c83aa3a51c 100644 --- a/mm/TEST_MAPPING +++ b/mm/TEST_MAPPING @@ -226,5 +226,15 @@ } ] } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } \ No newline at end of file diff --git a/mm/folio-compat.c b/mm/folio-compat.c index 10c3247542cb..a546271db69b 100644 --- a/mm/folio-compat.c +++ b/mm/folio-compat.c @@ -77,12 +77,6 @@ bool redirty_page_for_writepage(struct writeback_control *wbc, } EXPORT_SYMBOL(redirty_page_for_writepage); -void lru_cache_add_inactive_or_unevictable(struct page *page, - struct vm_area_struct *vma) -{ - folio_add_lru_vma(page_folio(page), vma); -} - int add_to_page_cache_lru(struct page *page, struct address_space *mapping, pgoff_t index, gfp_t gfp) { @@ -122,13 +116,3 @@ void putback_lru_page(struct page *page) { folio_putback_lru(page_folio(page)); } - -#ifdef CONFIG_MMU -void page_add_new_anon_rmap(struct page *page, struct vm_area_struct *vma, - unsigned long address) -{ - VM_BUG_ON_PAGE(PageTail(page), page); - - return folio_add_new_anon_rmap((struct folio *)page, vma, address); -} -#endif diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 9a689d3a44cf..c7072ae497c2 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -76,10 +76,13 @@ unsigned long huge_anon_orders_madvise __read_mostly; unsigned long huge_anon_orders_inherit __read_mostly; unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma, - unsigned long vm_flags, bool smaps, - bool in_pf, bool enforce_sysfs, + unsigned long vm_flags, + unsigned long tva_flags, unsigned long orders) { + bool smaps = tva_flags & TVA_SMAPS; + bool in_pf = tva_flags & TVA_IN_PF; + bool enforce_sysfs = tva_flags & TVA_ENFORCE_SYSFS; /* Check the intersection of requested and supported orders. */ orders &= vma_is_anonymous(vma) ? THP_ORDERS_ALL_ANON : THP_ORDERS_ALL_FILE; @@ -939,7 +942,7 @@ static vm_fault_t __do_huge_pmd_anonymous_page(struct vm_fault *vmf, entry = mk_huge_pmd(page, vma->vm_page_prot); entry = maybe_pmd_mkwrite(pmd_mkdirty(entry), vma); - folio_add_new_anon_rmap(folio, vma, haddr); + folio_add_new_anon_rmap(folio, vma, haddr, RMAP_EXCLUSIVE); folio_add_lru_vma(folio, vma); pgtable_trans_huge_deposit(vma->vm_mm, vmf->pmd, pgtable); set_pmd_at(vma->vm_mm, haddr, vmf->pmd, entry); @@ -1790,22 +1793,16 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf) if (migrated) { flags |= TNF_MIGRATED; nid = target_nid; - } else { - flags |= TNF_MIGRATE_FAIL; - vmf->ptl = pmd_lock(vma->vm_mm, vmf->pmd); - if (unlikely(!pmd_same(oldpmd, *vmf->pmd))) { - spin_unlock(vmf->ptl); - goto out; - } - goto out_map; - } - -out: - if (nid != NUMA_NO_NODE) task_numa_fault(last_cpupid, nid, HPAGE_PMD_NR, flags); + return 0; + } - return 0; - + flags |= TNF_MIGRATE_FAIL; + vmf->ptl = pmd_lock(vma->vm_mm, vmf->pmd); + if (unlikely(!pmd_same(oldpmd, *vmf->pmd))) { + spin_unlock(vmf->ptl); + return 0; + } out_map: /* Restore the PMD */ pmd = pmd_modify(oldpmd, vma->vm_page_prot); @@ -1816,8 +1813,8 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf) update_mmu_cache_pmd(vma, vmf->address, vmf->pmd); spin_unlock(vmf->ptl); - if (page_nid != NUMA_NO_NODE) - task_numa_fault(last_cpupid, page_nid, HPAGE_PMD_NR, flags); + if (nid != NUMA_NO_NODE) + task_numa_fault(last_cpupid, nid, HPAGE_PMD_NR, flags); return 0; } diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 5bf22688e145..692a7abae411 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -446,7 +446,7 @@ void khugepaged_enter_vma(struct vm_area_struct *vma, { if (!test_bit(MMF_VM_HUGEPAGE, &vma->vm_mm->flags) && hugepage_flags_enabled()) { - if (thp_vma_allowable_order(vma, vm_flags, false, false, true, + if (thp_vma_allowable_order(vma, vm_flags, TVA_ENFORCE_SYSFS, PMD_ORDER)) __khugepaged_enter(vma->vm_mm); } @@ -912,6 +912,7 @@ static int hugepage_vma_revalidate(struct mm_struct *mm, unsigned long address, struct collapse_control *cc) { struct vm_area_struct *vma; + unsigned long tva_flags = cc->is_khugepaged ? TVA_ENFORCE_SYSFS : 0; if (unlikely(hpage_collapse_test_exit(mm))) return SCAN_ANY_PROCESS; @@ -922,8 +923,7 @@ static int hugepage_vma_revalidate(struct mm_struct *mm, unsigned long address, if (!thp_vma_suitable_order(vma, address, PMD_ORDER)) return SCAN_ADDRESS_RANGE; - if (!thp_vma_allowable_order(vma, vma->vm_flags, false, false, - cc->is_khugepaged, PMD_ORDER)) + if (!thp_vma_allowable_order(vma, vma->vm_flags, tva_flags, PMD_ORDER)) return SCAN_VMA_CHECK; /* * Anon VMA expected, the address may be unmapped then @@ -1087,6 +1087,7 @@ static int collapse_huge_page(struct mm_struct *mm, unsigned long address, pmd_t *pmd, _pmd; pte_t *pte; pgtable_t pgtable; + struct folio *folio; struct page *hpage; spinlock_t *pmd_ptl, *pte_ptl; int result = SCAN_FAIL; @@ -1209,13 +1210,13 @@ static int collapse_huge_page(struct mm_struct *mm, unsigned long address, if (unlikely(result != SCAN_SUCCEED)) goto out_up_write; + folio = page_folio(hpage); /* - * spin_lock() below is not the equivalent of smp_wmb(), but - * the smp_wmb() inside __SetPageUptodate() can be reused to - * avoid the copy_huge_page writes to become visible after - * the set_pmd_at() write. + * The smp_wmb() inside __folio_mark_uptodate() ensures the + * copy_huge_page writes become visible before the set_pmd_at() + * write. */ - __SetPageUptodate(hpage); + __folio_mark_uptodate(folio); pgtable = pmd_pgtable(_pmd); _pmd = mk_huge_pmd(hpage, vma->vm_page_prot); @@ -1223,8 +1224,8 @@ static int collapse_huge_page(struct mm_struct *mm, unsigned long address, spin_lock(pmd_ptl); BUG_ON(!pmd_none(*pmd)); - page_add_new_anon_rmap(hpage, vma, address); - lru_cache_add_inactive_or_unevictable(hpage, vma); + folio_add_new_anon_rmap(folio, vma, address, RMAP_EXCLUSIVE); + folio_add_lru_vma(folio, vma); pgtable_trans_huge_deposit(mm, pmd, pgtable); set_pmd_at(mm, address, pmd, _pmd); update_mmu_cache_pmd(vma, address, pmd); @@ -1504,8 +1505,7 @@ int collapse_pte_mapped_thp(struct mm_struct *mm, unsigned long addr, * and map it by a PMD, regardless of sysfs THP settings. As such, let's * analogously elide sysfs THP settings here. */ - if (!thp_vma_allowable_order(vma, vma->vm_flags, false, false, false, - PMD_ORDER)) + if (!thp_vma_allowable_order(vma, vma->vm_flags, 0, PMD_ORDER)) return SCAN_VMA_CHECK; /* Keep pmd pgtable for uffd-wp; see comment in retract_page_tables() */ @@ -2370,8 +2370,8 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages, int *result, progress++; break; } - if (!thp_vma_allowable_order(vma, vma->vm_flags, false, false, - true, PMD_ORDER)) { + if (!thp_vma_allowable_order(vma, vma->vm_flags, + TVA_ENFORCE_SYSFS, PMD_ORDER)) { skip: progress++; continue; @@ -2708,8 +2708,7 @@ int madvise_collapse(struct vm_area_struct *vma, struct vm_area_struct **prev, *prev = vma; - if (!thp_vma_allowable_order(vma, vma->vm_flags, false, false, false, - PMD_ORDER)) + if (!thp_vma_allowable_order(vma, vma->vm_flags, 0, PMD_ORDER)) return -EINVAL; cc = kmalloc(sizeof(*cc), GFP_KERNEL); diff --git a/mm/ksm.c b/mm/ksm.c index a409a0bd0ffc..9aafdc73efa2 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -2790,30 +2790,30 @@ void __ksm_exit(struct mm_struct *mm) trace_ksm_exit(mm); } -struct page *ksm_might_need_to_copy(struct page *page, +struct folio *ksm_might_need_to_copy(struct folio *folio, struct vm_area_struct *vma, unsigned long addr) { - struct folio *folio = page_folio(page); + struct page *page = folio_page(folio, 0); struct anon_vma *anon_vma = folio_anon_vma(folio); struct folio *new_folio; if (folio_test_large(folio)) - return page; + return folio; if (folio_test_ksm(folio)) { if (folio_stable_node(folio) && !(ksm_run & KSM_RUN_UNMERGE)) - return page; /* no need to copy it */ + return folio; /* no need to copy it */ } else if (!anon_vma) { - return page; /* no need to copy it */ + return folio; /* no need to copy it */ } else if (folio->index == linear_page_index(vma, addr) && anon_vma->root == vma->anon_vma->root) { - return page; /* still no need to copy it */ + return folio; /* still no need to copy it */ } if (PageHWPoison(page)) return ERR_PTR(-EHWPOISON); if (!folio_test_uptodate(folio)) - return page; /* let do_swap_page report the error */ + return folio; /* let do_swap_page report the error */ new_folio = vma_alloc_folio(GFP_HIGHUSER_MOVABLE, 0, vma, addr, false); if (new_folio && @@ -2822,9 +2822,10 @@ struct page *ksm_might_need_to_copy(struct page *page, new_folio = NULL; } if (new_folio) { - if (copy_mc_user_highpage(&new_folio->page, page, addr, vma)) { + if (copy_mc_user_highpage(folio_page(new_folio, 0), page, + addr, vma)) { folio_put(new_folio); - memory_failure_queue(page_to_pfn(page), 0); + memory_failure_queue(folio_pfn(folio), 0); return ERR_PTR(-EHWPOISON); } folio_set_dirty(new_folio); @@ -2835,7 +2836,7 @@ struct page *ksm_might_need_to_copy(struct page *page, #endif } - return new_folio ? &new_folio->page : NULL; + return new_folio; } void rmap_walk_ksm(struct folio *folio, struct rmap_walk_control *rwc) diff --git a/mm/madvise.c b/mm/madvise.c index 101487311764..b16a55b1dc65 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -1591,8 +1591,12 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec, } total_len = iov_iter_count(&iter); + trace_android_vh_process_madvise_begin(task, behavior); while (iov_iter_count(&iter)) { + trace_android_vh_process_madvise_iter(task, behavior, &ret); + if (ret < 0) + break; ret = do_madvise(mm, (unsigned long)iter_iov_addr(&iter), iter_iov_len(&iter), behavior); if (ret < 0) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 7a7d7154ddca..76d953a0a93f 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5293,6 +5293,7 @@ static int mem_cgroup_alloc_id(void) static void mem_cgroup_id_remove(struct mem_cgroup *memcg) { if (memcg->id.id > 0) { + trace_android_vh_mem_cgroup_id_remove(memcg); spin_lock(&memcg_idr_lock); idr_remove(&mem_cgroup_idr, memcg->id.id); spin_unlock(&memcg_idr_lock); diff --git a/mm/memory.c b/mm/memory.c index 4185a2f25076..b7bce5423264 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -80,6 +80,7 @@ #include #include +#include #undef CREATE_TRACE_POINTS #include @@ -925,7 +926,7 @@ copy_present_page(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma *prealloc = NULL; copy_user_highpage(&new_folio->page, page, addr, src_vma); __folio_mark_uptodate(new_folio); - folio_add_new_anon_rmap(new_folio, dst_vma, addr); + folio_add_new_anon_rmap(new_folio, dst_vma, addr, RMAP_EXCLUSIVE); folio_add_lru_vma(new_folio, dst_vma); rss[MM_ANONPAGES]++; @@ -3357,7 +3358,7 @@ static vm_fault_t wp_page_copy(struct vm_fault *vmf) * some TLBs while the old PTE remains in others. */ ptep_clear_flush(vma, vmf->address, vmf->pte); - folio_add_new_anon_rmap(new_folio, vma, vmf->address); + folio_add_new_anon_rmap(new_folio, vma, vmf->address, RMAP_EXCLUSIVE); folio_add_lru_vma(new_folio, vma); /* * We call the notify macro here because, when using secondary @@ -4118,15 +4119,18 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) * page->index of !PageKSM() pages would be nonlinear inside the * anon VMA -- PageKSM() is lost on actual swapout. */ - page = ksm_might_need_to_copy(page, vma, vmf->address); - if (unlikely(!page)) { + folio = ksm_might_need_to_copy(folio, vma, vmf->address); + if (unlikely(!folio)) { ret = VM_FAULT_OOM; + folio = swapcache; goto out_page; - } else if (unlikely(PTR_ERR(page) == -EHWPOISON)) { + } else if (unlikely(folio == ERR_PTR(-EHWPOISON))) { ret = VM_FAULT_HWPOISON; + folio = swapcache; goto out_page; } - folio = page_folio(page); + if (folio != swapcache) + page = folio_page(folio, 0); /* * If we want to map a page that's in the swapcache writable, we @@ -4282,8 +4286,17 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) /* ksm created a completely new copy */ if (unlikely(folio != swapcache && swapcache)) { - folio_add_new_anon_rmap(folio, vma, address); + folio_add_new_anon_rmap(folio, vma, address, RMAP_EXCLUSIVE); folio_add_lru_vma(folio, vma); + } else if (!folio_test_anon(folio)) { + /* + * We currently only expect small !anon folios, which are either + * fully exclusive or fully shared. If we ever get large folios + * here, we have to be careful. + */ + VM_WARN_ON_ONCE(folio_test_large(folio)); + VM_WARN_ON_FOLIO(!folio_test_locked(folio), folio); + folio_add_new_anon_rmap(folio, vma, address, rmap_flags); } else { folio_add_anon_rmap_ptes(folio, page, nr_pages, vma, address, rmap_flags); @@ -4381,8 +4394,8 @@ static struct folio *alloc_anon_folio(struct vm_fault *vmf) * for this vma. Then filter out the orders that can't be allocated over * the faulting address and still be fully contained in the vma. */ - orders = thp_vma_allowable_orders(vma, vma->vm_flags, false, true, true, - BIT(PMD_ORDER) - 1); + orders = thp_vma_allowable_orders(vma, vma->vm_flags, + TVA_IN_PF | TVA_ENFORCE_SYSFS, BIT(PMD_ORDER) - 1); orders = thp_vma_suitable_orders(vma, vmf->address, orders); if (!orders) @@ -4412,6 +4425,7 @@ static struct folio *alloc_anon_folio(struct vm_fault *vmf) /* Try allocating the highest of the remaining orders. */ gfp = vma_thp_gfp_mask(vma); + trace_android_vh_customize_thp_gfp_orders(&gfp, &orders, &order); while (orders) { addr = ALIGN_DOWN(vmf->address, PAGE_SIZE << order); folio = vma_alloc_folio(gfp, order, vma, addr, true); @@ -4541,7 +4555,7 @@ static vm_fault_t do_anonymous_page(struct vm_fault *vmf) #ifdef CONFIG_TRANSPARENT_HUGEPAGE count_mthp_stat(folio_order(folio), MTHP_STAT_ANON_FAULT_ALLOC); #endif - folio_add_new_anon_rmap(folio, vma, addr); + folio_add_new_anon_rmap(folio, vma, addr, RMAP_EXCLUSIVE); folio_add_lru_vma(folio, vma); setpte: if (uffd_wp) @@ -4741,7 +4755,7 @@ void set_pte_range(struct vm_fault *vmf, struct folio *folio, if (write && !(vma->vm_flags & VM_SHARED)) { add_mm_counter(vma->vm_mm, MM_ANONPAGES, nr); VM_BUG_ON_FOLIO(nr != 1, folio); - folio_add_new_anon_rmap(folio, vma, addr); + folio_add_new_anon_rmap(folio, vma, addr, RMAP_EXCLUSIVE); folio_add_lru_vma(folio, vma); } else { add_mm_counter(vma->vm_mm, mm_counter_file(folio), nr); @@ -4925,6 +4939,7 @@ static vm_fault_t do_fault_around(struct vm_fault *vmf) /* Return true if we should do read fault-around, false otherwise */ static inline bool should_fault_around(struct vm_fault *vmf) { + bool should_around = true; /* No ->map_pages? No way to fault around... */ if (!vmf->vma->vm_ops->map_pages) return false; @@ -4932,6 +4947,10 @@ static inline bool should_fault_around(struct vm_fault *vmf) if (uffd_disable_fault_around(vmf->vma)) return false; + trace_android_vh_should_fault_around(vmf, &should_around); + if (!should_around) + return false; + /* A single page implies no faulting 'around' at all. */ return fault_around_pages > 1; } @@ -5202,7 +5221,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) if (migrate_misplaced_folio(folio, vma, target_nid)) { nid = target_nid; flags |= TNF_MIGRATED; - task_numa_fault(last_cpupid, page_nid, 1, flags); + task_numa_fault(last_cpupid, nid, 1, flags); return 0; } @@ -5229,8 +5248,8 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) update_mmu_cache_range(vmf, vma, vmf->address, vmf->pte, 1); pte_unmap_unlock(vmf->pte, vmf->ptl); - if (page_nid != NUMA_NO_NODE) - task_numa_fault(last_cpupid, page_nid, 1, flags); + if (nid != NUMA_NO_NODE) + task_numa_fault(last_cpupid, nid, 1, flags); return 0; } @@ -5436,7 +5455,8 @@ static vm_fault_t __handle_mm_fault(struct vm_area_struct *vma, return VM_FAULT_OOM; retry_pud: if (pud_none(*vmf.pud) && - thp_vma_allowable_order(vma, vm_flags, false, true, true, PUD_ORDER)) { + thp_vma_allowable_order(vma, vm_flags, + TVA_IN_PF | TVA_ENFORCE_SYSFS, PUD_ORDER)) { ret = create_huge_pud(&vmf); if (!(ret & VM_FAULT_FALLBACK)) return ret; @@ -5470,7 +5490,8 @@ static vm_fault_t __handle_mm_fault(struct vm_area_struct *vma, goto retry_pud; if (pmd_none(*vmf.pmd) && - thp_vma_allowable_order(vma, vm_flags, false, true, true, PMD_ORDER)) { + thp_vma_allowable_order(vma, vm_flags, + TVA_IN_PF | TVA_ENFORCE_SYSFS, PMD_ORDER)) { ret = create_huge_pmd(&vmf); if (!(ret & VM_FAULT_FALLBACK)) return ret; diff --git a/mm/memremap.c b/mm/memremap.c index bee85560a243..19ed6855f96f 100644 --- a/mm/memremap.c +++ b/mm/memremap.c @@ -485,21 +485,11 @@ void free_zone_device_page(struct page *page) __ClearPageAnonExclusive(page); /* - * When a device managed page is freed, the page->mapping field + * When a device managed page is freed, the folio->mapping field * may still contain a (stale) mapping value. For example, the - * lower bits of page->mapping may still identify the page as an - * anonymous page. Ultimately, this entire field is just stale - * and wrong, and it will cause errors if not cleared. One - * example is: - * - * migrate_vma_pages() - * migrate_vma_insert_page() - * page_add_new_anon_rmap() - * __page_set_anon_rmap() - * ...checks page->mapping, via PageAnon(page) call, - * and incorrectly concludes that the page is an - * anonymous page. Therefore, it incorrectly, - * silently fails to set up the new anon rmap. + * lower bits of folio->mapping may still identify the folio as an + * anonymous folio. Ultimately, this entire field is just stale + * and wrong, and it will cause errors if not cleared. * * For other types of ZONE_DEVICE pages, migration is either * handled differently or not done at all, so there is no need diff --git a/mm/migrate_device.c b/mm/migrate_device.c index 9d0c1ad73722..1bebdfae2286 100644 --- a/mm/migrate_device.c +++ b/mm/migrate_device.c @@ -567,6 +567,7 @@ static void migrate_vma_insert_page(struct migrate_vma *migrate, struct page *page, unsigned long *src) { + struct folio *folio = page_folio(page); struct vm_area_struct *vma = migrate->vma; struct mm_struct *mm = vma->vm_mm; bool flush = false; @@ -599,17 +600,17 @@ static void migrate_vma_insert_page(struct migrate_vma *migrate, goto abort; if (unlikely(anon_vma_prepare(vma))) goto abort; - if (mem_cgroup_charge(page_folio(page), vma->vm_mm, GFP_KERNEL)) + if (mem_cgroup_charge(folio, vma->vm_mm, GFP_KERNEL)) goto abort; /* - * The memory barrier inside __SetPageUptodate makes sure that - * preceding stores to the page contents become visible before + * The memory barrier inside __folio_mark_uptodate makes sure that + * preceding stores to the folio contents become visible before * the set_pte_at() write. */ - __SetPageUptodate(page); + __folio_mark_uptodate(folio); - if (is_device_private_page(page)) { + if (folio_is_device_private(folio)) { swp_entry_t swp_entry; if (vma->vm_flags & VM_WRITE) @@ -620,8 +621,8 @@ static void migrate_vma_insert_page(struct migrate_vma *migrate, page_to_pfn(page)); entry = swp_entry_to_pte(swp_entry); } else { - if (is_zone_device_page(page) && - !is_device_coherent_page(page)) { + if (folio_is_zone_device(folio) && + !folio_is_device_coherent(folio)) { pr_warn_once("Unsupported ZONE_DEVICE page type.\n"); goto abort; } @@ -655,10 +656,10 @@ static void migrate_vma_insert_page(struct migrate_vma *migrate, goto unlock_abort; inc_mm_counter(mm, MM_ANONPAGES); - page_add_new_anon_rmap(page, vma, addr); - if (!is_zone_device_page(page)) - lru_cache_add_inactive_or_unevictable(page, vma); - get_page(page); + folio_add_new_anon_rmap(folio, vma, addr, RMAP_EXCLUSIVE); + if (!folio_is_zone_device(folio)) + folio_add_lru_vma(folio, vma); + folio_get(folio); if (flush) { flush_cache_page(vma, addr, pte_pfn(orig_pte)); diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 4438751e947a..827da9177224 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -748,6 +748,19 @@ static inline void queue_oom_reaper(struct task_struct *tsk) } #endif /* CONFIG_MMU */ +/** + * tsk->mm has to be non NULL and caller has to guarantee it is stable (either + * under task_lock or operate on the current). + */ +static void __mark_oom_victim(struct task_struct *tsk) +{ + struct mm_struct *mm = tsk->mm; + + if (!cmpxchg(&tsk->signal->oom_mm, NULL, mm)) { + mmgrab(tsk->signal->oom_mm); + } +} + /** * mark_oom_victim - mark the given task as OOM victim * @tsk: task to mark @@ -761,7 +774,6 @@ static inline void queue_oom_reaper(struct task_struct *tsk) static void mark_oom_victim(struct task_struct *tsk) { const struct cred *cred; - struct mm_struct *mm = tsk->mm; WARN_ON(oom_killer_disabled); /* OOM killer might race with memcg OOM */ @@ -769,8 +781,7 @@ static void mark_oom_victim(struct task_struct *tsk) return; /* oom_mm is bound to the signal struct life time. */ - if (!cmpxchg(&tsk->signal->oom_mm, NULL, mm)) - mmgrab(tsk->signal->oom_mm); + __mark_oom_victim(tsk); /* * Make sure that the task is woken up from uninterruptible sleep @@ -1263,3 +1274,16 @@ SYSCALL_DEFINE2(process_mrelease, int, pidfd, unsigned int, flags) return -ENOSYS; #endif /* CONFIG_MMU */ } + +void add_to_oom_reaper(struct task_struct *p) +{ + p = find_lock_task_mm(p); + if (!p) + return; + + if (task_will_free_mem(p)) { + __mark_oom_victim(p); + queue_oom_reaper(p); + } + task_unlock(p); +} diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 945b0c07c8b7..5349d3493e10 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -603,7 +603,10 @@ static inline unsigned int order_to_pindex(int migratetype, int order) #ifdef CONFIG_TRANSPARENT_HUGEPAGE if (order > PAGE_ALLOC_COSTLY_ORDER) { - VM_BUG_ON(order != pageblock_order); + unsigned int expected_order = pageblock_order; + + trace_android_vh_customize_thp_pcp_order(&expected_order); + VM_BUG_ON(order != expected_order); return NR_LOWORDER_PCP_LISTS; } #else @@ -618,8 +621,10 @@ static inline int pindex_to_order(unsigned int pindex) int order = pindex / MIGRATE_PCPTYPES; #ifdef CONFIG_TRANSPARENT_HUGEPAGE - if (pindex == NR_LOWORDER_PCP_LISTS) + if (pindex == NR_LOWORDER_PCP_LISTS) { order = pageblock_order; + trace_android_vh_customize_thp_pcp_order(&order); + } #else VM_BUG_ON(order > PAGE_ALLOC_COSTLY_ORDER); #endif @@ -629,10 +634,14 @@ static inline int pindex_to_order(unsigned int pindex) static inline bool pcp_allowed_order(unsigned int order) { + unsigned int __maybe_unused allowed_order; + if (order <= PAGE_ALLOC_COSTLY_ORDER) return true; #ifdef CONFIG_TRANSPARENT_HUGEPAGE - if (order == pageblock_order) + allowed_order = pageblock_order; + trace_android_vh_customize_thp_pcp_order(&allowed_order); + if (order == allowed_order) return true; #endif return false; diff --git a/mm/rmap.c b/mm/rmap.c index 78a128e19b98..23e621ebbc23 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -1282,9 +1282,9 @@ static void __page_check_anon_rmap(struct folio *folio, struct page *page, * We have exclusion against folio_add_anon_rmap_*() because the caller * always holds the page locked. * - * We have exclusion against page_add_new_anon_rmap because those pages + * We have exclusion against folio_add_new_anon_rmap because those pages * are initially only visible via the pagetables, and the pte is locked - * over the call to page_add_new_anon_rmap. + * over the call to folio_add_new_anon_rmap. */ VM_BUG_ON_FOLIO(folio_anon_vma(folio)->root != vma->anon_vma->root, folio); @@ -1298,27 +1298,16 @@ static __always_inline void __folio_add_anon_rmap(struct folio *folio, { int i, nr, nr_pmdmapped = 0; + VM_WARN_ON_FOLIO(!folio_test_anon(folio), folio); + nr = __folio_add_rmap(folio, page, nr_pages, level, &nr_pmdmapped); if (nr_pmdmapped) __lruvec_stat_mod_folio(folio, NR_ANON_THPS, nr_pmdmapped); if (nr) __lruvec_stat_mod_folio(folio, NR_ANON_MAPPED, nr); - if (unlikely(!folio_test_anon(folio))) { - VM_WARN_ON_FOLIO(!folio_test_locked(folio), folio); - /* - * For a PTE-mapped large folio, we only know that the single - * PTE is exclusive. Further, __folio_set_anon() might not get - * folio->index right when not given the address of the head - * page. - */ - VM_WARN_ON_FOLIO(folio_test_large(folio) && - level != RMAP_LEVEL_PMD, folio); - __folio_set_anon(folio, vma, address, - !!(flags & RMAP_EXCLUSIVE)); - } else if (likely(!folio_test_ksm(folio))) { + if (likely(!folio_test_ksm(folio))) __page_check_anon_rmap(folio, page, vma, address); - } if (flags & RMAP_EXCLUSIVE) { switch (level) { @@ -1404,29 +1393,37 @@ void folio_add_anon_rmap_pmd(struct folio *folio, struct page *page, * @folio: The folio to add the mapping to. * @vma: the vm area in which the mapping is added * @address: the user virtual address mapped + * @flags: The rmap flags * * Like folio_add_anon_rmap_*() but must only be called on *new* folios. * This means the inc-and-test can be bypassed. - * The folio does not have to be locked. + * The folio doesn't necessarily need to be locked while it's exclusive + * unless two threads map it concurrently. However, the folio must be + * locked if it's shared. * - * If the folio is pmd-mappable, it is accounted as a THP. As the folio * is new, it's assumed to be mapped exclusively by a single process. + * If the folio is pmd-mappable, it is accounted as a THP. */ void folio_add_new_anon_rmap(struct folio *folio, struct vm_area_struct *vma, - unsigned long address) + unsigned long address, rmap_t flags) { - int nr = folio_nr_pages(folio); + const int nr = folio_nr_pages(folio); + const bool exclusive = flags & RMAP_EXCLUSIVE; VM_WARN_ON_FOLIO(folio_test_hugetlb(folio), folio); + VM_WARN_ON_FOLIO(!exclusive && !folio_test_locked(folio), folio); VM_BUG_ON_VMA(address < vma->vm_start || address + (nr << PAGE_SHIFT) > vma->vm_end, vma); - __folio_set_swapbacked(folio); - __folio_set_anon(folio, vma, address, true); + + if (!folio_test_swapbacked(folio)) + __folio_set_swapbacked(folio); + __folio_set_anon(folio, vma, address, exclusive); if (likely(!folio_test_large(folio))) { /* increment count (starts at -1) */ atomic_set(&folio->_mapcount, 0); - SetPageAnonExclusive(&folio->page); + if (exclusive) + SetPageAnonExclusive(&folio->page); } else if (!folio_test_pmd_mappable(folio)) { int i; @@ -1435,7 +1432,8 @@ void folio_add_new_anon_rmap(struct folio *folio, struct vm_area_struct *vma, /* increment count (starts at -1) */ atomic_set(&page->_mapcount, 0); - SetPageAnonExclusive(page); + if (exclusive) + SetPageAnonExclusive(page); } atomic_set(&folio->_nr_pages_mapped, nr); @@ -1443,7 +1441,8 @@ void folio_add_new_anon_rmap(struct folio *folio, struct vm_area_struct *vma, /* increment count (starts at -1) */ atomic_set(&folio->_entire_mapcount, 0); atomic_set(&folio->_nr_pages_mapped, ENTIRELY_MAPPED); - SetPageAnonExclusive(&folio->page); + if (exclusive) + SetPageAnonExclusive(&folio->page); __lruvec_stat_mod_folio(folio, NR_ANON_THPS, nr); } diff --git a/mm/swapfile.c b/mm/swapfile.c index 39e48bccc059..ccdc02ee3e2f 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -1762,18 +1762,24 @@ static inline int pte_same_as_swp(pte_t pte, pte_t swp_pte) static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd, unsigned long addr, swp_entry_t entry, struct folio *folio) { - struct page *page = folio_file_page(folio, swp_offset(entry)); - struct page *swapcache; + struct page *page; + struct folio *swapcache; spinlock_t *ptl; pte_t *pte, new_pte, old_pte; - bool hwpoisoned = PageHWPoison(page); + bool hwpoisoned = false; int ret = 1; - swapcache = page; - page = ksm_might_need_to_copy(page, vma, addr); - if (unlikely(!page)) + swapcache = folio; + folio = ksm_might_need_to_copy(folio, vma, addr); + if (unlikely(!folio)) return -ENOMEM; - else if (unlikely(PTR_ERR(page) == -EHWPOISON)) + else if (unlikely(folio == ERR_PTR(-EHWPOISON))) { + hwpoisoned = true; + folio = swapcache; + } + + page = folio_file_page(folio, swp_offset(entry)); + if (PageHWPoison(page)) hwpoisoned = true; pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); @@ -1785,13 +1791,12 @@ static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd, old_pte = ptep_get(pte); - if (unlikely(hwpoisoned || !PageUptodate(page))) { + if (unlikely(hwpoisoned || !folio_test_uptodate(folio))) { swp_entry_t swp_entry; dec_mm_counter(vma->vm_mm, MM_SWAPENTS); if (hwpoisoned) { - swp_entry = make_hwpoison_entry(swapcache); - page = swapcache; + swp_entry = make_hwpoison_entry(page); } else { swp_entry = make_poisoned_swp_entry(); } @@ -1807,29 +1812,35 @@ static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd, */ arch_swap_restore(folio_swap(entry, folio), folio); - /* See do_swap_page() */ - BUG_ON(!PageAnon(page) && PageMappedToDisk(page)); - BUG_ON(PageAnon(page) && PageAnonExclusive(page)); - dec_mm_counter(vma->vm_mm, MM_SWAPENTS); inc_mm_counter(vma->vm_mm, MM_ANONPAGES); - get_page(page); - if (page == swapcache) { + folio_get(folio); + if (folio == swapcache) { rmap_t rmap_flags = RMAP_NONE; /* - * See do_swap_page(): PageWriteback() would be problematic. - * However, we do a wait_on_page_writeback() just before this - * call and have the page locked. + * See do_swap_page(): writeback would be problematic. + * However, we do a folio_wait_writeback() just before this + * call and have the folio locked. */ - VM_BUG_ON_PAGE(PageWriteback(page), page); + VM_BUG_ON_FOLIO(folio_test_writeback(folio), folio); if (pte_swp_exclusive(old_pte)) rmap_flags |= RMAP_EXCLUSIVE; - - folio_add_anon_rmap_pte(folio, page, vma, addr, rmap_flags); + /* + * We currently only expect small !anon folios, which are either + * fully exclusive or fully shared. If we ever get large folios + * here, we have to be careful. + */ + if (!folio_test_anon(folio)) { + VM_WARN_ON_ONCE(folio_test_large(folio)); + VM_WARN_ON_FOLIO(!folio_test_locked(folio), folio); + folio_add_new_anon_rmap(folio, vma, addr, rmap_flags); + } else { + folio_add_anon_rmap_pte(folio, page, vma, addr, rmap_flags); + } } else { /* ksm created a completely new copy */ - page_add_new_anon_rmap(page, vma, addr); - lru_cache_add_inactive_or_unevictable(page, vma); + folio_add_new_anon_rmap(folio, vma, addr, RMAP_EXCLUSIVE); + folio_add_lru_vma(folio, vma); } new_pte = pte_mkold(mk_pte(page, vma->vm_page_prot)); if (pte_swp_soft_dirty(old_pte)) @@ -1842,9 +1853,9 @@ static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd, out: if (pte) pte_unmap_unlock(pte, ptl); - if (page != swapcache) { - unlock_page(page); - put_page(page); + if (folio != swapcache) { + folio_unlock(folio); + folio_put(folio); } return ret; } diff --git a/mm/truncate.c b/mm/truncate.c index 064631c8a92a..299fd6690a61 100644 --- a/mm/truncate.c +++ b/mm/truncate.c @@ -240,6 +240,7 @@ bool truncate_inode_partial_folio(struct folio *folio, loff_t start, loff_t end) */ folio_zero_range(folio, offset, length); + cleancache_invalidate_page(folio->mapping, &folio->page); if (folio_needs_release(folio)) folio_invalidate(folio, offset, length); if (!folio_test_large(folio)) diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c index 725c458641cc..f8bdb837320b 100644 --- a/mm/userfaultfd.c +++ b/mm/userfaultfd.c @@ -217,7 +217,7 @@ int mfill_atomic_install_pte(pmd_t *dst_pmd, folio_add_lru(folio); folio_add_file_rmap_pte(folio, page, dst_vma); } else { - folio_add_new_anon_rmap(folio, dst_vma, dst_addr); + folio_add_new_anon_rmap(folio, dst_vma, dst_addr, RMAP_EXCLUSIVE); folio_add_lru_vma(folio, dst_vma); } @@ -1029,8 +1029,8 @@ static int move_present_pte(struct mm_struct *mm, double_pt_lock(dst_ptl, src_ptl); - if (!pte_same(*src_pte, orig_src_pte) || - !pte_same(*dst_pte, orig_dst_pte)) { + if (!pte_same(ptep_get(src_pte), orig_src_pte) || + !pte_same(ptep_get(dst_pte), orig_dst_pte)) { err = -EAGAIN; goto out; } @@ -1073,8 +1073,8 @@ static int move_swap_pte(struct mm_struct *mm, double_pt_lock(dst_ptl, src_ptl); - if (!pte_same(*src_pte, orig_src_pte) || - !pte_same(*dst_pte, orig_dst_pte)) { + if (!pte_same(ptep_get(src_pte), orig_src_pte) || + !pte_same(ptep_get(dst_pte), orig_dst_pte)) { double_pt_unlock(dst_ptl, src_ptl); return -EAGAIN; } @@ -1170,7 +1170,7 @@ static int move_pages_pte(struct mm_struct *mm, pmd_t *dst_pmd, pmd_t *src_pmd, } spin_lock(dst_ptl); - orig_dst_pte = *dst_pte; + orig_dst_pte = ptep_get(dst_pte); spin_unlock(dst_ptl); if (!pte_none(orig_dst_pte)) { err = -EEXIST; @@ -1178,7 +1178,7 @@ static int move_pages_pte(struct mm_struct *mm, pmd_t *dst_pmd, pmd_t *src_pmd, } spin_lock(src_ptl); - orig_src_pte = *src_pte; + orig_src_pte = ptep_get(src_pte); spin_unlock(src_ptl); if (pte_none(orig_src_pte)) { if (!(mode & UFFDIO_MOVE_MODE_ALLOW_SRC_HOLES)) @@ -1216,7 +1216,7 @@ static int move_pages_pte(struct mm_struct *mm, pmd_t *dst_pmd, pmd_t *src_pmd, * page isn't freed under us */ spin_lock(src_ptl); - if (!pte_same(orig_src_pte, *src_pte)) { + if (!pte_same(orig_src_pte, ptep_get(src_pte))) { spin_unlock(src_ptl); err = -EAGAIN; goto out; diff --git a/mm/vmscan.c b/mm/vmscan.c index 25852ae3fe9a..d7af7bf384f5 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2011,7 +2011,7 @@ static unsigned int shrink_folio_list(struct list_head *folio_list, * try_to_unmap acquire PTL from the first PTE, * eliminating the influence of temporary PTE values. */ - if (folio_test_large(folio) && list_empty(&folio->_deferred_list)) + if (folio_test_large(folio)) flags |= TTU_SYNC; if (!ignore_references) diff --git a/mm/zswap.c b/mm/zswap.c index 69681b9173fd..8ad7c97fac19 100644 --- a/mm/zswap.c +++ b/mm/zswap.c @@ -84,6 +84,7 @@ static bool zswap_pool_reached_full; static int zswap_setup(void); /* Enable/disable zswap */ +static DEFINE_STATIC_KEY_MAYBE(CONFIG_ZSWAP_DEFAULT_ON, zswap_ever_enabled); static bool zswap_enabled = IS_ENABLED(CONFIG_ZSWAP_DEFAULT_ON); static int zswap_enabled_param_set(const char *, const struct kernel_param *); @@ -144,6 +145,11 @@ module_param_named(exclusive_loads, zswap_exclusive_loads_enabled, bool, 0644); /* Number of zpools in zswap_pool (empirically determined for scalability) */ #define ZSWAP_NR_ZPOOLS 32 +bool zswap_never_enabled(void) +{ + return !static_branch_maybe(CONFIG_ZSWAP_DEFAULT_ON, &zswap_ever_enabled); +} + /********************************* * data structures **********************************/ @@ -1410,6 +1416,9 @@ bool zswap_load(struct folio *folio) VM_WARN_ON_ONCE(!folio_test_locked(folio)); + if (zswap_never_enabled()) + return false; + /* find */ spin_lock(&tree->lock); entry = zswap_entry_find_get(&tree->rbroot, offset); @@ -1611,6 +1620,7 @@ static int zswap_setup(void) zpool_get_type(pool->zpools[0])); list_add(&pool->list, &zswap_pools); zswap_has_pool = true; + static_branch_enable(&zswap_ever_enabled); } else { pr_err("pool creation failed\n"); zswap_enabled = false; diff --git a/net/TEST_MAPPING b/net/TEST_MAPPING index 3780135e1946..7629782b2f7d 100644 --- a/net/TEST_MAPPING +++ b/net/TEST_MAPPING @@ -242,5 +242,15 @@ { "name": "vts_kernel_net_tests" } + ], + "kernel-presubmit": [ + { + "name": "CtsCameraTestCases", + "options": [ + { + "include-filter": "android.hardware.camera2.cts.FastBasicsTest" + } + ] + } ] } diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index d162ff771fb3..5666ceb8ae82 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -252,7 +252,7 @@ EXPORT_SYMBOL(inet_listen); static int inet_create(struct net *net, struct socket *sock, int protocol, int kern) { - struct sock *sk; + struct sock *sk = NULL; struct inet_protosw *answer; struct inet_sock *inet; struct proto *answer_prot; @@ -401,6 +401,7 @@ static int inet_create(struct net *net, struct socket *sock, int protocol, trace_android_rvh_inet_sock_create(sk); out: + trace_android_vh_inet_create(sk, err); return err; out_rcu_unlock: rcu_read_unlock(); diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 2cb19591cc35..0c05b51ab559 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -1119,6 +1119,8 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size) } } + trace_android_vh_uplink_send_msg(sk); + /* This should be in poll */ sk_clear_bit(SOCKWQ_ASYNC_NOSPACE, sk); diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 89153f4796af..1f799cfd82b7 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -754,7 +754,8 @@ void tcp_rcv_space_adjust(struct sock *sk) * */ - if (READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_moderate_rcvbuf)) { + if (READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_moderate_rcvbuf) && + !(sk->sk_userlocks & SOCK_RCVBUF_LOCK)) { u64 rcvwin, grow; int rcvbuf; @@ -770,14 +771,12 @@ void tcp_rcv_space_adjust(struct sock *sk) rcvbuf = min_t(u64, tcp_space_from_win(sk, rcvwin), READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_rmem[2])); - if (!(sk->sk_userlocks & SOCK_RCVBUF_LOCK)) { - if (rcvbuf > sk->sk_rcvbuf) { - WRITE_ONCE(sk->sk_rcvbuf, rcvbuf); + if (rcvbuf > sk->sk_rcvbuf) { + WRITE_ONCE(sk->sk_rcvbuf, rcvbuf); - /* Make the window clamp follow along. */ - WRITE_ONCE(tp->window_clamp, - tcp_win_from_space(sk, rcvbuf)); - } + /* Make the window clamp follow along. */ + WRITE_ONCE(tp->window_clamp, + tcp_win_from_space(sk, rcvbuf)); } } tp->rcvq_space.space = copied; diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 3795d5edbf88..57dc6770701d 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -1090,6 +1090,8 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) if (msg->msg_flags & MSG_OOB) /* Mirror BSD error message compatibility */ return -EOPNOTSUPP; + trace_android_vh_uplink_send_msg(sk); + getfrag = is_udplite ? udplite_getfrag : ip_generic_getfrag; fl4 = &inet->cork.fl.u.ip4; diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index 1a064668ce59..4885fe7ebeb4 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c @@ -123,7 +123,7 @@ static int inet6_create(struct net *net, struct socket *sock, int protocol, { struct inet_sock *inet; struct ipv6_pinfo *np; - struct sock *sk; + struct sock *sk = NULL; struct inet_protosw *answer; struct proto *answer_prot; unsigned char answer_flags; @@ -276,6 +276,7 @@ static int inet6_create(struct net *net, struct socket *sock, int protocol, trace_android_rvh_inet_sock_create(sk); out: + trace_android_vh_inet_create(sk, err); return err; out_rcu_unlock: rcu_read_unlock(); diff --git a/net/socket.c b/net/socket.c index 8d83c4bb163b..d9c9e2ea1ee3 100644 --- a/net/socket.c +++ b/net/socket.c @@ -109,6 +109,7 @@ #include #include #include +#include #ifdef CONFIG_NET_RX_BUSY_POLL unsigned int sysctl_net_busy_read __read_mostly; @@ -1589,6 +1590,8 @@ int __sock_create(struct net *net, int family, int type, int protocol, goto out_sock_release; *res = sock; + trace_android_vh_sock_create(sock->sk); + return 0; out_module_busy: diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c index d5e296c6eabd..851d172d9a71 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c @@ -49,7 +49,6 @@ static struct kmem_cache *xfrm_state_cache __ro_after_init; static DECLARE_WORK(xfrm_state_gc_work, xfrm_state_gc_task); static HLIST_HEAD(xfrm_state_gc_list); -static HLIST_HEAD(xfrm_state_dev_gc_list); static inline bool xfrm_state_hold_rcu(struct xfrm_state __rcu *x) { @@ -215,7 +214,6 @@ static DEFINE_SPINLOCK(xfrm_state_afinfo_lock); static struct xfrm_state_afinfo __rcu *xfrm_state_afinfo[NPROTO]; static DEFINE_SPINLOCK(xfrm_state_gc_lock); -static DEFINE_SPINLOCK(xfrm_state_dev_gc_lock); int __xfrm_state_delete(struct xfrm_state *x); @@ -685,41 +683,6 @@ struct xfrm_state *xfrm_state_alloc(struct net *net) } EXPORT_SYMBOL(xfrm_state_alloc); -#ifdef CONFIG_XFRM_OFFLOAD -void xfrm_dev_state_delete(struct xfrm_state *x) -{ - struct xfrm_dev_offload *xso = &x->xso; - struct net_device *dev = READ_ONCE(xso->dev); - - if (dev) { - dev->xfrmdev_ops->xdo_dev_state_delete(x); - spin_lock_bh(&xfrm_state_dev_gc_lock); - hlist_add_head(&x->dev_gclist, &xfrm_state_dev_gc_list); - spin_unlock_bh(&xfrm_state_dev_gc_lock); - } -} -EXPORT_SYMBOL_GPL(xfrm_dev_state_delete); - -void xfrm_dev_state_free(struct xfrm_state *x) -{ - struct xfrm_dev_offload *xso = &x->xso; - struct net_device *dev = READ_ONCE(xso->dev); - - if (dev && dev->xfrmdev_ops) { - spin_lock_bh(&xfrm_state_dev_gc_lock); - if (!hlist_unhashed(&x->dev_gclist)) - hlist_del(&x->dev_gclist); - spin_unlock_bh(&xfrm_state_dev_gc_lock); - - if (dev->xfrmdev_ops->xdo_dev_state_free) - dev->xfrmdev_ops->xdo_dev_state_free(x); - WRITE_ONCE(xso->dev, NULL); - xso->type = XFRM_DEV_OFFLOAD_UNSPECIFIED; - netdev_put(dev, &xso->dev_tracker); - } -} -#endif - void __xfrm_state_destroy(struct xfrm_state *x, bool sync) { WARN_ON(x->km.state != XFRM_STATE_DEAD); @@ -885,9 +848,6 @@ EXPORT_SYMBOL(xfrm_state_flush); int xfrm_dev_state_flush(struct net *net, struct net_device *dev, bool task_valid) { - struct xfrm_state *x; - struct hlist_node *tmp; - struct xfrm_dev_offload *xso; int i, err = 0, cnt = 0; spin_lock_bh(&net->xfrm.xfrm_state_lock); @@ -897,6 +857,8 @@ int xfrm_dev_state_flush(struct net *net, struct net_device *dev, bool task_vali err = -ESRCH; for (i = 0; i <= net->xfrm.state_hmask; i++) { + struct xfrm_state *x; + struct xfrm_dev_offload *xso; restart: hlist_for_each_entry(x, net->xfrm.state_bydst+i, bydst) { xso = &x->xso; @@ -906,8 +868,6 @@ int xfrm_dev_state_flush(struct net *net, struct net_device *dev, bool task_vali spin_unlock_bh(&net->xfrm.xfrm_state_lock); err = xfrm_state_delete(x); - xfrm_dev_state_free(x); - xfrm_audit_state_delete(x, err ? 0 : 1, task_valid); xfrm_state_put(x); @@ -924,24 +884,6 @@ int xfrm_dev_state_flush(struct net *net, struct net_device *dev, bool task_vali out: spin_unlock_bh(&net->xfrm.xfrm_state_lock); - - spin_lock_bh(&xfrm_state_dev_gc_lock); -restart_gc: - hlist_for_each_entry_safe(x, tmp, &xfrm_state_dev_gc_list, dev_gclist) { - xso = &x->xso; - - if (xso->dev == dev) { - spin_unlock_bh(&xfrm_state_dev_gc_lock); - xfrm_dev_state_free(x); - spin_lock_bh(&xfrm_state_dev_gc_lock); - goto restart_gc; - } - - } - spin_unlock_bh(&xfrm_state_dev_gc_lock); - - xfrm_flush_gc(); - return err; } EXPORT_SYMBOL(xfrm_dev_state_flush);