diff --git a/android/abi_gki_aarch64.stg b/android/abi_gki_aarch64.stg index c9d2d04124b3..b50c2f469354 100644 --- a/android/abi_gki_aarch64.stg +++ b/android/abi_gki_aarch64.stg @@ -5418,6 +5418,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x1d520d5f } +pointer_reference { + id: 0x0dc6d22d + kind: POINTER + pointee_type_id: 0x1d5bae2a +} pointer_reference { id: 0x0dc70534 kind: POINTER @@ -23438,6 +23443,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xefdda716 } +pointer_reference { + id: 0x316c7444 + kind: POINTER + pointee_type_id: 0xeff1378d +} pointer_reference { id: 0x316cc8eb kind: POINTER @@ -25033,6 +25043,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xf8f87438 } +pointer_reference { + id: 0x34b671f6 + kind: POINTER + pointee_type_id: 0xf8992146 +} pointer_reference { id: 0x34bb6aad kind: POINTER @@ -27833,6 +27848,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xc3d9368e } +pointer_reference { + id: 0x3a6990ff + kind: POINTER + pointee_type_id: 0xc3e6a560 +} pointer_reference { id: 0x3a6a6a5b kind: POINTER @@ -32763,6 +32783,11 @@ qualified { qualifier: CONST qualified_type_id: 0x7f136064 } +qualified { + id: 0xc3e6a560 + qualifier: CONST + qualified_type_id: 0x7fdd230a +} qualified { id: 0xc407b8af qualifier: CONST @@ -35378,6 +35403,11 @@ qualified { qualifier: CONST qualified_type_id: 0xcf6aab90 } +qualified { + id: 0xeff1378d + qualifier: CONST + qualified_type_id: 0xcf8368bd +} qualified { id: 0xeff3c532 qualifier: CONST @@ -52445,6 +52475,12 @@ member { type_id: 0x14fb0ab0 offset: 576 } +member { + id: 0xe1383385 + name: "avail" + type_id: 0x14fb0ab0 + offset: 128 +} member { id: 0xe19ce3ba name: "avail" @@ -75133,6 +75169,12 @@ member { name: "desc" type_id: 0x1c4f6f14 } +member { + id: 0x87ca6452 + name: "desc" + type_id: 0x104d72c1 + offset: 64 +} member { id: 0x87ca6bab name: "desc" @@ -204676,6 +204718,12 @@ member { type_id: 0x399f63b7 offset: 640 } +member { + id: 0x8b87889f + name: "used" + type_id: 0x399f63b7 + offset: 192 +} member { id: 0x8b8d6727 name: "used" @@ -274247,6 +274295,18 @@ struct_union { member_id: 0xd6e6640d } } +struct_union { + id: 0xcf8368bd + kind: STRUCT + name: "vring" + definition { + bytesize: 32 + member_id: 0x1c73cad3 + member_id: 0x87ca6452 + member_id: 0xe1383385 + member_id: 0x8b87889f + } +} struct_union { id: 0xdf09be6b kind: STRUCT @@ -286193,6 +286253,56 @@ enumeration { } } } +enumeration { + id: 0xd59c9b2e + name: "key_need_perm" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "KEY_NEED_UNSPECIFIED" + } + enumerator { + name: "KEY_NEED_VIEW" + value: 1 + } + enumerator { + name: "KEY_NEED_READ" + value: 2 + } + enumerator { + name: "KEY_NEED_WRITE" + value: 3 + } + enumerator { + name: "KEY_NEED_SEARCH" + value: 4 + } + enumerator { + name: "KEY_NEED_LINK" + value: 5 + } + enumerator { + name: "KEY_NEED_SETATTR" + value: 6 + } + enumerator { + name: "KEY_NEED_UNLINK" + value: 7 + } + enumerator { + name: "KEY_SYSADMIN_OVERRIDE" + value: 8 + } + enumerator { + name: "KEY_AUTHTOKEN_OVERRIDE" + value: 9 + } + enumerator { + name: "KEY_DEFER_PERM_CHECK" + value: 10 + } + } +} enumeration { id: 0x4e0bad92 name: "kmsg_dump_reason" @@ -294895,6 +295005,12 @@ function { parameter_id: 0x18bd6530 parameter_id: 0xe02e14d6 } +function { + id: 0x1014b61a + return_type_id: 0x48b5725f + parameter_id: 0x01950729 + parameter_id: 0x3a6990ff +} function { id: 0x1014c641 return_type_id: 0x48b5725f @@ -295832,6 +295948,12 @@ function { parameter_id: 0x0258f96e parameter_id: 0x391f15ea } +function { + id: 0x10ebd1f0 + return_type_id: 0x48b5725f + parameter_id: 0x0258f96e + parameter_id: 0x396f8e0f +} function { id: 0x10ee407c return_type_id: 0x48b5725f @@ -297865,6 +297987,12 @@ function { return_type_id: 0x48b5725f parameter_id: 0x0f88e7f2 } +function { + id: 0x137c4474 + return_type_id: 0x48b5725f + parameter_id: 0x0c2e195c + parameter_id: 0x3be4ec15 +} function { id: 0x137d1ffc return_type_id: 0x48b5725f @@ -299016,6 +299144,14 @@ function { return_type_id: 0x48b5725f parameter_id: 0x1625e208 } +function { + id: 0x1511e92c + return_type_id: 0x48b5725f + parameter_id: 0x15a30023 + parameter_id: 0x3be4ec15 + parameter_id: 0x34b671f6 + parameter_id: 0xf1a6dfed +} function { id: 0x151457b1 return_type_id: 0xd5cc9c9a @@ -304561,6 +304697,15 @@ function { parameter_id: 0x92233392 parameter_id: 0x92233392 } +function { + id: 0x1d8bbf50 + return_type_id: 0x48b5725f + parameter_id: 0x3760766d + parameter_id: 0x337f6d5e + parameter_id: 0x18bd6530 + parameter_id: 0x072e5f93 + parameter_id: 0xf435685e +} function { id: 0x1d8c491d return_type_id: 0x1b8590a8 @@ -310381,6 +310526,15 @@ function { parameter_id: 0x2aa0b9bb parameter_id: 0x33756485 } +function { + id: 0x5cf53bc8 + return_type_id: 0x18bd6530 + parameter_id: 0x2aa0b9bb + parameter_id: 0x33756485 + parameter_id: 0x18bd6530 + parameter_id: 0x18bd6530 + parameter_id: 0xf1a6dfed +} function { id: 0x5cf56554 return_type_id: 0x18bd6530 @@ -311345,6 +311499,13 @@ function { parameter_id: 0x32caaf24 parameter_id: 0x1bf16028 } +function { + id: 0x6f9910f4 + return_type_id: 0x1d44326e + parameter_id: 0x0ca27481 + parameter_id: 0x3e6396e0 + parameter_id: 0x3399c453 +} function { id: 0x6f9cf068 return_type_id: 0x1d44326e @@ -323951,6 +324112,17 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x33756485 } +function { + id: 0x99968d2f + return_type_id: 0x6720d32f + parameter_id: 0x135282ce + parameter_id: 0x3f0185ef + parameter_id: 0xf435685e + parameter_id: 0xf91e7e64 + parameter_id: 0x82011f33 + parameter_id: 0x4585663f + parameter_id: 0x4585663f +} function { id: 0x9997c326 return_type_id: 0x6720d32f @@ -326501,6 +326673,13 @@ function { parameter_id: 0x1aee9939 parameter_id: 0x04f728c1 } +function { + id: 0x9b290896 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x2170d06d + parameter_id: 0x0dc6d22d +} function { id: 0x9b299206 return_type_id: 0x6720d32f @@ -327595,6 +327774,11 @@ function { parameter_id: 0xe02e14d6 parameter_id: 0xf435685e } +function { + id: 0x9b6aa399 + return_type_id: 0x6720d32f + parameter_id: 0x1ba902d8 +} function { id: 0x9b6acfa5 return_type_id: 0x6720d32f @@ -328724,6 +328908,13 @@ function { parameter_id: 0x6720d32f parameter_id: 0x6720d32f } +function { + id: 0x9baa4352 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x00abf683 + parameter_id: 0x1d5bae2a +} function { id: 0x9baa8508 return_type_id: 0x6720d32f @@ -328882,6 +329073,15 @@ function { parameter_id: 0x11cfee5a parameter_id: 0x11cfee5a } +function { + id: 0x9bb59830 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x04c02b90 + parameter_id: 0x27b5ed37 + parameter_id: 0x3593bec8 + parameter_id: 0x6720d32f +} function { id: 0x9bb5b719 return_type_id: 0x6720d32f @@ -330443,6 +330643,14 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x1013df15 } +function { + id: 0x9bf1212e + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1582ab06 + parameter_id: 0x2170d06d + parameter_id: 0x33756485 +} function { id: 0x9bf1e232 return_type_id: 0x6720d32f @@ -333294,6 +333502,14 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x6d7f5ff6 } +function { + id: 0x9d92ea72 + return_type_id: 0x6720d32f + parameter_id: 0x06835e9c + parameter_id: 0x6d7f5ff6 + parameter_id: 0x1d5bae2a + parameter_id: 0x1d5bae2a +} function { id: 0x9d93897e return_type_id: 0x6720d32f @@ -334885,6 +335101,12 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x07dcdbe1 } +function { + id: 0x9e64f6c8 + return_type_id: 0x6720d32f + parameter_id: 0x0c2e195c + parameter_id: 0x3be4ec15 +} function { id: 0x9e65fffe return_type_id: 0x6720d32f @@ -338477,6 +338699,11 @@ function { parameter_id: 0x06835e9c parameter_id: 0x33756485 } +function { + id: 0xbd098825 + return_type_id: 0x316c7444 + parameter_id: 0x31fa879c +} function { id: 0xbd324cd3 return_type_id: 0x29c600bb @@ -338974,6 +339201,13 @@ function { return_type_id: 0x3f37d9d5 parameter_id: 0x30d9f406 } +function { + id: 0xc59b3a62 + return_type_id: 0x3a800090 + parameter_id: 0xe2836f7f + parameter_id: 0x33756485 + parameter_id: 0xd59c9b2e +} function { id: 0xc61915b4 return_type_id: 0x4585663f @@ -347834,6 +348068,15 @@ elf_symbol { type_id: 0x9bc38873 full_name: "__traceiter_android_vh_copy_process" } +elf_symbol { + id: 0x21cae9c7 + name: "__traceiter_android_vh_count_workingset_refault" + is_defined: true + symbol_type: FUNCTION + crc: 0x7a9b5b02 + type_id: 0x9b2a7922 + full_name: "__traceiter_android_vh_count_workingset_refault" +} elf_symbol { id: 0x9247dcb1 name: "__traceiter_android_vh_cpu_idle_enter" @@ -348122,6 +348365,15 @@ elf_symbol { type_id: 0x9b3c0938 full_name: "__traceiter_android_vh_do_shrink_slab" } +elf_symbol { + id: 0x20f34a30 + name: "__traceiter_android_vh_do_shrink_slab_ex" + is_defined: true + symbol_type: FUNCTION + crc: 0x31c005bf + type_id: 0x9bb59830 + full_name: "__traceiter_android_vh_do_shrink_slab_ex" +} elf_symbol { id: 0x54bc5972 name: "__traceiter_android_vh_do_swap_page" @@ -348257,6 +348509,15 @@ elf_symbol { type_id: 0x9a1e34e7 full_name: "__traceiter_android_vh_file_is_tiny_bypass" } +elf_symbol { + id: 0x6091a763 + name: "__traceiter_android_vh_filemap_add_folio" + is_defined: true + symbol_type: FUNCTION + crc: 0xf557b3f5 + type_id: 0x9bf1212e + full_name: "__traceiter_android_vh_filemap_add_folio" +} elf_symbol { id: 0x49c69e22 name: "__traceiter_android_vh_filemap_get_folio" @@ -348779,6 +349040,15 @@ elf_symbol { type_id: 0x9bdad4db full_name: "__traceiter_android_vh_mem_cgroup_alloc" } +elf_symbol { + id: 0x44892f77 + name: "__traceiter_android_vh_mem_cgroup_charge" + is_defined: true + symbol_type: FUNCTION + crc: 0x5837f7b9 + type_id: 0x9b290896 + full_name: "__traceiter_android_vh_mem_cgroup_charge" +} elf_symbol { id: 0x27757c9a name: "__traceiter_android_vh_mem_cgroup_css_offline" @@ -349742,6 +350012,15 @@ elf_symbol { type_id: 0x99c3be61 full_name: "__traceiter_android_vh_show_suspend_epoch_val" } +elf_symbol { + id: 0x6f5e0f48 + name: "__traceiter_android_vh_shrink_node" + is_defined: true + symbol_type: FUNCTION + crc: 0xedb9c8bc + type_id: 0x9baa4352 + full_name: "__traceiter_android_vh_shrink_node" +} elf_symbol { id: 0x709279fd name: "__traceiter_android_vh_shrink_node_memcgs" @@ -352892,6 +353171,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_copy_process" } +elf_symbol { + id: 0xbe784d1d + name: "__tracepoint_android_vh_count_workingset_refault" + is_defined: true + symbol_type: OBJECT + crc: 0xb5598d13 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_count_workingset_refault" +} elf_symbol { id: 0x26324a1f name: "__tracepoint_android_vh_cpu_idle_enter" @@ -353180,6 +353468,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_do_shrink_slab" } +elf_symbol { + id: 0xe66acad6 + name: "__tracepoint_android_vh_do_shrink_slab_ex" + is_defined: true + symbol_type: OBJECT + crc: 0xc2d711ec + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_do_shrink_slab_ex" +} elf_symbol { id: 0xeb9f1c78 name: "__tracepoint_android_vh_do_swap_page" @@ -353315,6 +353612,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_file_is_tiny_bypass" } +elf_symbol { + id: 0x0c03d499 + name: "__tracepoint_android_vh_filemap_add_folio" + is_defined: true + symbol_type: OBJECT + crc: 0x0f1c26ed + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_filemap_add_folio" +} elf_symbol { id: 0x6d970e8c name: "__tracepoint_android_vh_filemap_get_folio" @@ -353837,6 +354143,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_mem_cgroup_alloc" } +elf_symbol { + id: 0x013b5969 + name: "__tracepoint_android_vh_mem_cgroup_charge" + is_defined: true + symbol_type: OBJECT + crc: 0x44608ada + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_mem_cgroup_charge" +} elf_symbol { id: 0xe160b6f0 name: "__tracepoint_android_vh_mem_cgroup_css_offline" @@ -354800,6 +355115,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_show_suspend_epoch_val" } +elf_symbol { + id: 0x1f2d6f1e + name: "__tracepoint_android_vh_shrink_node" + is_defined: true + symbol_type: OBJECT + crc: 0x37d2569f + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_shrink_node" +} elf_symbol { id: 0x87db1583 name: "__tracepoint_android_vh_shrink_node_memcgs" @@ -356294,6 +356618,15 @@ elf_symbol { type_id: 0x97ce5a08 full_name: "__xa_alloc_cyclic" } +elf_symbol { + id: 0x1820daaf + name: "__xa_cmpxchg" + is_defined: true + symbol_type: FUNCTION + crc: 0x0a0ebc08 + type_id: 0x5cf53bc8 + full_name: "__xa_cmpxchg" +} elf_symbol { id: 0x4b52e164 name: "__xa_erase" @@ -358030,6 +358363,15 @@ elf_symbol { type_id: 0x15a61d9b full_name: "bio_clone_blkg_association" } +elf_symbol { + id: 0x5dacbb8b + name: "bio_crypt_set_ctx" + is_defined: true + symbol_type: FUNCTION + crc: 0xc73f174a + type_id: 0x1511e92c + full_name: "bio_crypt_set_ctx" +} elf_symbol { id: 0x3a8604de name: "bio_end_io_acct_remapped" @@ -358282,6 +358624,24 @@ elf_symbol { type_id: 0x66cc4765 full_name: "blk_check_plugged" } +elf_symbol { + id: 0x59a87a04 + name: "blk_crypto_evict_key" + is_defined: true + symbol_type: FUNCTION + crc: 0x7aa61f98 + type_id: 0x137c4474 + full_name: "blk_crypto_evict_key" +} +elf_symbol { + id: 0xc255c6cd + name: "blk_crypto_init_key" + is_defined: true + symbol_type: FUNCTION + crc: 0xf001a432 + type_id: 0x99968d2f + full_name: "blk_crypto_init_key" +} elf_symbol { id: 0x4ffac461 name: "blk_crypto_keyslot_index" @@ -358309,6 +358669,15 @@ elf_symbol { type_id: 0x12bd0b6f full_name: "blk_crypto_reprogram_all_keys" } +elf_symbol { + id: 0xd24babf0 + name: "blk_crypto_start_using_key" + is_defined: true + symbol_type: FUNCTION + crc: 0x2385fdf5 + type_id: 0x9e64f6c8 + full_name: "blk_crypto_start_using_key" +} elf_symbol { id: 0x90bf9007 name: "blk_execute_rq" @@ -360638,6 +361007,15 @@ elf_symbol { type_id: 0x9b87e6ee full_name: "cgroup_path_ns" } +elf_symbol { + id: 0xd7e100b7 + name: "cgroup_rm_cftypes" + is_defined: true + symbol_type: FUNCTION + crc: 0xca8ed728 + type_id: 0x9b6aa399 + full_name: "cgroup_rm_cftypes" +} elf_symbol { id: 0x6d77f512 name: "cgroup_taskset_first" @@ -365654,6 +366032,15 @@ elf_symbol { type_id: 0x19a776c5 full_name: "device_destroy" } +elf_symbol { + id: 0x3cb87444 + name: "device_find_any_child" + is_defined: true + symbol_type: FUNCTION + crc: 0x4f7a1913 + type_id: 0xadb90e65 + full_name: "device_find_any_child" +} elf_symbol { id: 0x0b165427 name: "device_find_child" @@ -367049,6 +367436,15 @@ elf_symbol { type_id: 0xbbe36438 full_name: "devm_nvmem_cell_get" } +elf_symbol { + id: 0x6841cd31 + name: "devm_nvmem_cell_put" + is_defined: true + symbol_type: FUNCTION + crc: 0x2459791b + type_id: 0x10ebd1f0 + full_name: "devm_nvmem_cell_put" +} elf_symbol { id: 0xa8b058e5 name: "devm_nvmem_device_get" @@ -375610,6 +376006,15 @@ elf_symbol { type_id: 0xc075980c full_name: "full_name_hash" } +elf_symbol { + id: 0x16ccff22 + name: "fw_devlink_purge_absent_suppliers" + is_defined: true + symbol_type: FUNCTION + crc: 0x0c65c0aa + type_id: 0x11bc7f41 + full_name: "fw_devlink_purge_absent_suppliers" +} elf_symbol { id: 0xc35e482b name: "fwnode_create_software_node" @@ -385415,6 +385820,15 @@ elf_symbol { type_id: 0x83a40349 full_name: "lookup_positive_unlocked" } +elf_symbol { + id: 0x7d6628ba + name: "lookup_user_key" + is_defined: true + symbol_type: FUNCTION + crc: 0x1dc6c93b + type_id: 0xc59b3a62 + full_name: "lookup_user_key" +} elf_symbol { id: 0x493ce9fc name: "loops_per_jiffy" @@ -386126,6 +386540,15 @@ elf_symbol { type_id: 0x59f18b0b full_name: "mem_cgroup_from_id" } +elf_symbol { + id: 0xa9fabdf2 + name: "mem_cgroup_move_account" + is_defined: true + symbol_type: FUNCTION + crc: 0x39369a57 + type_id: 0x9d92ea72 + full_name: "mem_cgroup_move_account" +} elf_symbol { id: 0x6da682ae name: "mem_cgroup_update_lru_size" @@ -388057,6 +388480,15 @@ elf_symbol { type_id: 0x1c31d966 full_name: "netdev_state_change" } +elf_symbol { + id: 0xbd1de982 + name: "netdev_stats_to_stats64" + is_defined: true + symbol_type: FUNCTION + crc: 0xcf3b69b3 + type_id: 0x1014b61a + full_name: "netdev_stats_to_stats64" +} elf_symbol { id: 0x64f1f9ef name: "netdev_txq_to_tc" @@ -388552,6 +388984,24 @@ elf_symbol { type_id: 0x92045331 full_name: "nf_register_sockopt" } +elf_symbol { + id: 0x7d136425 + name: "nf_sk_lookup_slow_v4" + is_defined: true + symbol_type: FUNCTION + crc: 0x5c995b47 + type_id: 0x6f9910f4 + full_name: "nf_sk_lookup_slow_v4" +} +elf_symbol { + id: 0xfe90bb40 + name: "nf_sk_lookup_slow_v6" + is_defined: true + symbol_type: FUNCTION + crc: 0xdbfefa2e + type_id: 0x6f9910f4 + full_name: "nf_sk_lookup_slow_v6" +} elf_symbol { id: 0x840dad92 name: "nf_unregister_net_hook" @@ -399355,6 +399805,15 @@ elf_symbol { type_id: 0x1d45c70c full_name: "rt_mutex_lock" } +elf_symbol { + id: 0x556f3b4a + name: "rt_mutex_lock_interruptible" + is_defined: true + symbol_type: FUNCTION + crc: 0xc30ea2a1 + type_id: 0x905d75b0 + full_name: "rt_mutex_lock_interruptible" +} elf_symbol { id: 0x205145e9 name: "rt_mutex_trylock" @@ -409808,6 +410267,15 @@ elf_symbol { type_id: 0xdf267053 full_name: "typec_port_register_altmode" } +elf_symbol { + id: 0xfe0397d1 + name: "typec_port_register_altmodes" + is_defined: true + symbol_type: FUNCTION + crc: 0xe10772e7 + type_id: 0x1d8bbf50 + full_name: "typec_port_register_altmodes" +} elf_symbol { id: 0x22d09ebb name: "typec_register_partner" @@ -415883,6 +416351,15 @@ elf_symbol { type_id: 0xb0635f1b full_name: "virtqueue_get_used_addr" } +elf_symbol { + id: 0xa3699271 + name: "virtqueue_get_vring" + is_defined: true + symbol_type: FUNCTION + crc: 0x89e54a5c + type_id: 0xbd098825 + full_name: "virtqueue_get_vring" +} elf_symbol { id: 0x40994c4b name: "virtqueue_get_vring_size" @@ -418581,6 +419058,7 @@ interface { symbol_id: 0xa4527895 symbol_id: 0x3644fdcd symbol_id: 0x63b166c2 + symbol_id: 0x21cae9c7 symbol_id: 0x9247dcb1 symbol_id: 0xfd04e27a symbol_id: 0xa124d3e0 @@ -418613,6 +419091,7 @@ interface { symbol_id: 0xea6452e1 symbol_id: 0x1cc3aec5 symbol_id: 0xb12728da + symbol_id: 0x20f34a30 symbol_id: 0x54bc5972 symbol_id: 0x9dbd7b92 symbol_id: 0x2576f1c7 @@ -418628,6 +419107,7 @@ interface { symbol_id: 0x1f554c2a symbol_id: 0x343adff1 symbol_id: 0x93a4717b + symbol_id: 0x6091a763 symbol_id: 0x49c69e22 symbol_id: 0xb7d91f76 symbol_id: 0x4eda1196 @@ -418686,6 +419166,7 @@ interface { symbol_id: 0x0e1f9e23 symbol_id: 0x61ea12b8 symbol_id: 0x1bfed9f9 + symbol_id: 0x44892f77 symbol_id: 0x27757c9a symbol_id: 0xb832c560 symbol_id: 0x96b60e0b @@ -418793,6 +419274,7 @@ interface { symbol_id: 0xe7f6f975 symbol_id: 0x78accdce symbol_id: 0x6d9f8b13 + symbol_id: 0x6f5e0f48 symbol_id: 0x709279fd symbol_id: 0xdfd06b97 symbol_id: 0x69c3749b @@ -419143,6 +419625,7 @@ interface { symbol_id: 0x9d49459f symbol_id: 0x759240ef symbol_id: 0xe054bfe0 + symbol_id: 0xbe784d1d symbol_id: 0x26324a1f symbol_id: 0x4ade2774 symbol_id: 0x704b9aae @@ -419175,6 +419658,7 @@ interface { symbol_id: 0xff7bbbff symbol_id: 0x82ce823f symbol_id: 0x474d211c + symbol_id: 0xe66acad6 symbol_id: 0xeb9f1c78 symbol_id: 0xe2d7542c symbol_id: 0x15374b6d @@ -419190,6 +419674,7 @@ interface { symbol_id: 0x0d418d38 symbol_id: 0x2121385f symbol_id: 0x50a83025 + symbol_id: 0x0c03d499 symbol_id: 0x6d970e8c symbol_id: 0xb34d9200 symbol_id: 0x223c9b64 @@ -419248,6 +419733,7 @@ interface { symbol_id: 0xc34a5545 symbol_id: 0x00a5fe5e symbol_id: 0x6377ba8b + symbol_id: 0x013b5969 symbol_id: 0xe160b6f0 symbol_id: 0x37c5c41a symbol_id: 0x78341cfd @@ -419355,6 +419841,7 @@ interface { symbol_id: 0x42ad45a3 symbol_id: 0x0a5014f0 symbol_id: 0x8712dd01 + symbol_id: 0x1f2d6f1e symbol_id: 0x87db1583 symbol_id: 0x3e70324d symbol_id: 0xc8a7ac69 @@ -419521,6 +420008,7 @@ interface { symbol_id: 0xcf1808d5 symbol_id: 0x01b711f3 symbol_id: 0xb0e141a3 + symbol_id: 0x1820daaf symbol_id: 0x4b52e164 symbol_id: 0xd6e3f912 symbol_id: 0x52069d2d @@ -419714,6 +420202,7 @@ interface { symbol_id: 0xaa6c907e symbol_id: 0xb2553250 symbol_id: 0xb389e6a5 + symbol_id: 0x5dacbb8b symbol_id: 0x3a8604de symbol_id: 0x61a552c6 symbol_id: 0x5a9da856 @@ -419742,9 +420231,12 @@ interface { symbol_id: 0x0b5d5f1c symbol_id: 0x1516f6b7 symbol_id: 0x650319ec + symbol_id: 0x59a87a04 + symbol_id: 0xc255c6cd symbol_id: 0x4ffac461 symbol_id: 0xad8bab96 symbol_id: 0x528ef002 + symbol_id: 0xd24babf0 symbol_id: 0x90bf9007 symbol_id: 0xd76a9123 symbol_id: 0x9eda4f26 @@ -420004,6 +420496,7 @@ interface { symbol_id: 0x4d06ba53 symbol_id: 0x3c85cae0 symbol_id: 0x4ce62869 + symbol_id: 0xd7e100b7 symbol_id: 0x6d77f512 symbol_id: 0xb3cbf3c8 symbol_id: 0xb7533de5 @@ -420562,6 +421055,7 @@ interface { symbol_id: 0x83a82ebe symbol_id: 0xe85fa1f1 symbol_id: 0xe6df6df5 + symbol_id: 0x3cb87444 symbol_id: 0x0b165427 symbol_id: 0x01805ccc symbol_id: 0xd81e7ab3 @@ -420717,6 +421211,7 @@ interface { symbol_id: 0x6e37c2ad symbol_id: 0x91f58d29 symbol_id: 0x7abe395b + symbol_id: 0x6841cd31 symbol_id: 0xa8b058e5 symbol_id: 0x47264dbb symbol_id: 0x35094803 @@ -421666,6 +422161,7 @@ interface { symbol_id: 0xee139066 symbol_id: 0x613adcb1 symbol_id: 0x370e6f08 + symbol_id: 0x16ccff22 symbol_id: 0xc35e482b symbol_id: 0x53816b02 symbol_id: 0xc9ddb79e @@ -422755,6 +423251,7 @@ interface { symbol_id: 0xcda3f19d symbol_id: 0xad10cf0f symbol_id: 0x3c2ed3a0 + symbol_id: 0x7d6628ba symbol_id: 0x493ce9fc symbol_id: 0x1440b3fe symbol_id: 0xf625170a @@ -422834,6 +423331,7 @@ interface { symbol_id: 0xa848deda symbol_id: 0x8eadb5fd symbol_id: 0x140f40dd + symbol_id: 0xa9fabdf2 symbol_id: 0x6da682ae symbol_id: 0x7f797603 symbol_id: 0x01e78001 @@ -423049,6 +423547,7 @@ interface { symbol_id: 0xd0f388bf symbol_id: 0xc32be078 symbol_id: 0x13d32ab6 + symbol_id: 0xbd1de982 symbol_id: 0x64f1f9ef symbol_id: 0x88a6525c symbol_id: 0xa9b870ab @@ -423104,6 +423603,8 @@ interface { symbol_id: 0x8b1dfb41 symbol_id: 0x43078d96 symbol_id: 0xaf6b3cf1 + symbol_id: 0x7d136425 + symbol_id: 0xfe90bb40 symbol_id: 0x840dad92 symbol_id: 0x619db28f symbol_id: 0x21972142 @@ -424304,6 +424805,7 @@ interface { symbol_id: 0x6a82e2a4 symbol_id: 0xec5e9065 symbol_id: 0x264c5308 + symbol_id: 0x556f3b4a symbol_id: 0x205145e9 symbol_id: 0x0eff96d9 symbol_id: 0xc7dca9cd @@ -425466,6 +425968,7 @@ interface { symbol_id: 0x0df14bce symbol_id: 0xd6fc8732 symbol_id: 0x4fe4e1e0 + symbol_id: 0xfe0397d1 symbol_id: 0x22d09ebb symbol_id: 0xad69345e symbol_id: 0x381c401c @@ -426141,6 +426644,7 @@ interface { symbol_id: 0x97472a76 symbol_id: 0x18b1b4af symbol_id: 0x6baf8fe0 + symbol_id: 0xa3699271 symbol_id: 0x40994c4b symbol_id: 0xc310fa7c symbol_id: 0xbadb7e4b diff --git a/android/abi_gki_aarch64_bcmstb b/android/abi_gki_aarch64_bcmstb index dfabff0dc590..e41670aeff26 100644 --- a/android/abi_gki_aarch64_bcmstb +++ b/android/abi_gki_aarch64_bcmstb @@ -1767,6 +1767,11 @@ # required by nexusmem.ko restore_online_page_callback __alloc_pages_bulk + __rt_mutex_init + rt_mutex_lock + rt_mutex_trylock + rt_mutex_unlock + rt_mutex_lock_interruptible # required by nexus.ko recalc_sigpending diff --git a/android/abi_gki_aarch64_honor b/android/abi_gki_aarch64_honor index c0bb4f2b0064..3d64640bbeef 100644 --- a/android/abi_gki_aarch64_honor +++ b/android/abi_gki_aarch64_honor @@ -37,6 +37,8 @@ __tracepoint_rpm_resume __traceiter_rpm_return_int __tracepoint_rpm_return_int + __traceiter_android_vh_count_workingset_refault + __tracepoint_android_vh_count_workingset_refault binder_alloc_copy_from_buffer kfree __kmalloc diff --git a/android/abi_gki_aarch64_mtk b/android/abi_gki_aarch64_mtk index 46313f2a6297..26727ae17c50 100644 --- a/android/abi_gki_aarch64_mtk +++ b/android/abi_gki_aarch64_mtk @@ -415,6 +415,7 @@ device_create_with_groups device_del device_destroy + device_find_any_child device_find_child device_find_child_by_name device_for_each_child @@ -530,6 +531,7 @@ devm_memremap_pages devm_mfd_add_devices devm_nvmem_cell_get + devm_nvmem_cell_put devm_nvmem_device_get devm_nvmem_register devm_of_icc_get @@ -1029,6 +1031,7 @@ fsg_common_set_inquiry_string fsg_common_set_sysfs fsg_config_from_params + fw_devlink_purge_absent_suppliers fwnode_device_is_available fwnode_get_name fwnode_get_named_child_node @@ -1726,6 +1729,8 @@ nfnl_lock nfnl_unlock nf_register_net_hooks + nf_sk_lookup_slow_v4 + nf_sk_lookup_slow_v6 nf_unregister_net_hooks nla_find nla_memcpy @@ -3115,6 +3120,7 @@ typec_partner_set_identity typec_partner_set_pd_revision typec_partner_set_svdm_version + typec_port_register_altmodes typec_register_partner typec_register_port typec_set_data_role diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index b037e1bc50e9..fd92c270e73f 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -4083,6 +4083,7 @@ virtqueue_get_buf_ctx virtqueue_get_desc_addr virtqueue_get_used_addr + virtqueue_get_vring virtqueue_get_vring_size virtqueue_is_broken virtqueue_kick diff --git a/android/abi_gki_aarch64_xiaomi b/android/abi_gki_aarch64_xiaomi index 29dfbb4f0036..da618470dc5f 100644 --- a/android/abi_gki_aarch64_xiaomi +++ b/android/abi_gki_aarch64_xiaomi @@ -348,6 +348,21 @@ #required by zram.ko bioset_init bioset_exit + bio_crypt_set_ctx + blk_crypto_evict_key + blk_crypto_init_key + blk_crypto_start_using_key + mem_cgroup_move_account + cgroup_rm_cftypes + __traceiter_android_vh_mem_cgroup_charge + __traceiter_android_vh_filemap_add_folio + __traceiter_android_vh_shrink_node + __tracepoint_android_vh_mem_cgroup_charge + __tracepoint_android_vh_filemap_add_folio + __tracepoint_android_vh_shrink_node + __alloc_pages_bulk + __xa_cmpxchg + lookup_user_key #required by mi_asap.ko __traceiter_android_vh_read_pages @@ -380,6 +395,14 @@ # required by shrink memory module shrink_slab +# required by mi_mem_engine.ko + __traceiter_android_vh_tune_swappiness + __tracepoint_android_vh_tune_swappiness + __traceiter_android_vh_do_shrink_slab_ex + __tracepoint_android_vh_do_shrink_slab_ex + __traceiter_android_vh_shrink_slab_bypass + __tracepoint_android_vh_shrink_slab_bypass + #required by cifs.ko add_swap_extent asn1_ber_decoder @@ -497,3 +520,7 @@ __traceiter_android_vh_filemap_read __tracepoint_android_vh_filemap_read __traceiter_android_vh_filemap_map_pages_range __tracepoint_android_vh_filemap_map_pages_range + +#required by rtase.ko +proc_get_parent_data +netdev_stats_to_stats64 diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 7ceecabcaa38..77dd1eb1b1f3 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -297,6 +297,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_read_done); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_preset); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_uid); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_user); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_charge); 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); @@ -310,6 +311,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmap_region); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_unmap_one); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_slab_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_shrink_slab); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_shrink_slab_ex); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_get_page_wmark); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_add_new_anon_rmap); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_psci_tos_resident_on); @@ -438,6 +440,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_queue_request_and_unlock); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_fuse_request_end); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_trylock_failed); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_should_memcg_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_node); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shmem_swapin_folio); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_wp_page); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_swap_page); @@ -450,6 +453,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_rwsem_reader_owned); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_clear_rwsem_reader_owned); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_rwsem_writer_owned); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_clear_rwsem_writer_owned); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_filemap_add_folio); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_pr_set_vma_name_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_folio_trylock); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_get_folio_trylock_result); @@ -459,6 +463,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_handle_trylock_failed_folio); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_hibernate_state); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_should_be_protected); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_referenced_check_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_count_workingset_refault); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_swapmem_gather_init); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_swapmem_gather_add_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_swapmem_gather_finish); diff --git a/drivers/usb/gadget/function/f_accessory.c b/drivers/usb/gadget/function/f_accessory.c index a8e1babb23a2..9a4aec8dbaf0 100644 --- a/drivers/usb/gadget/function/f_accessory.c +++ b/drivers/usb/gadget/function/f_accessory.c @@ -172,7 +172,7 @@ static struct usb_ss_ep_comp_descriptor acc_superspeedplus_comp_desc = { /* the following 2 values can be tweaked if necessary */ .bMaxBurst = 6, - .bmAttributes = 16, + /* .bmAttributes = 0, */ }; static struct usb_endpoint_descriptor acc_superspeed_in_desc = { @@ -197,7 +197,7 @@ static struct usb_ss_ep_comp_descriptor acc_superspeed_comp_desc = { /* the following 2 values can be tweaked if necessary */ .bMaxBurst = 6, - .bmAttributes = 16, + /* .bmAttributes = 0, */ }; static struct usb_endpoint_descriptor acc_highspeed_in_desc = { diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 89e7e4826efc..dffce67fd288 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -1973,7 +1973,7 @@ static void free_note_info(struct elf_note_info *info) threads = t->next; WARN_ON(t->notes[0].data && t->notes[0].data != &t->prstatus); for (i = 1; i < info->thread_notes; ++i) - kfree(t->notes[i].data); + kvfree(t->notes[i].data); kfree(t); } kfree(info->psinfo.data); diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 34d85514e225..d9728163ae6c 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -4571,7 +4571,7 @@ static void f2fs_trace_rw_file_path(struct kiocb *iocb, size_t count, int rw) struct inode *inode = file_inode(iocb->ki_filp); char *buf, *path; - buf = f2fs_kmalloc(F2FS_I_SB(inode), PATH_MAX, GFP_KERNEL); + buf = f2fs_getname(F2FS_I_SB(inode)); if (!buf) return; path = dentry_path_raw(file_dentry(iocb->ki_filp), buf, PATH_MAX); diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index f9f84a4e4204..125014d3ce55 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h @@ -90,7 +90,7 @@ struct ipv6_devconf { ANDROID_KABI_RESERVE(2); ANDROID_KABI_RESERVE(3); - ANDROID_KABI_RESERVE(4); + ANDROID_KABI_BACKPORT_OK(4); }; struct ipv6_params { diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index a0e507337acc..67c055298914 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -357,6 +357,11 @@ enum page_memcg_data_flags { static inline bool folio_memcg_kmem(struct folio *folio); +int mem_cgroup_move_account(struct page *page, + bool compound, + struct mem_cgroup *from, + struct mem_cgroup *to); + /* * After the initialization objcg->memcg is always pointing at * a valid memcg, but can be atomically swapped to the parent memcg. @@ -1188,6 +1193,14 @@ static inline bool PageMemcgKmem(struct page *page) return false; } +static inline int mem_cgroup_move_account(struct page *page, + bool compound, + struct mem_cgroup *from, + struct mem_cgroup *to) +{ + return 0; +} + static inline bool mem_cgroup_is_root(struct mem_cgroup *memcg) { return true; diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index 013b85d2c9a7..fdbdd8080370 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -221,6 +221,9 @@ DECLARE_HOOK(android_vh_look_around, DECLARE_HOOK(android_vh_mm_alloc_pages_direct_reclaim_enter, TP_PROTO(unsigned int order), TP_ARGS(order)); +DECLARE_HOOK(android_vh_mem_cgroup_charge, + TP_PROTO(struct folio *folio, struct mem_cgroup **memcg), + TP_ARGS(folio, memcg)); DECLARE_HOOK(android_vh_should_fault_around, TP_PROTO(struct vm_fault *vmf, bool *should_around), TP_ARGS(vmf, should_around)); @@ -267,6 +270,9 @@ DECLARE_HOOK(android_vh_page_should_be_protected, s8 priority, u64 *ext, int *should_protect), TP_ARGS(folio, nr_scanned, priority, ext, should_protect)); +DECLARE_HOOK(android_vh_count_workingset_refault, + TP_PROTO(struct folio *folio), + TP_ARGS(folio)); DECLARE_HOOK(android_vh_swapmem_gather_init, TP_PROTO(struct mm_struct *mm), TP_ARGS(mm)); @@ -282,6 +288,10 @@ DECLARE_HOOK(android_vh_oom_swapmem_gather_init, DECLARE_HOOK(android_vh_oom_swapmem_gather_finish, TP_PROTO(struct mm_struct *mm), TP_ARGS(mm)); +DECLARE_HOOK(android_vh_filemap_add_folio, + TP_PROTO(struct address_space *mapping, struct folio *folio, + pgoff_t index), + TP_ARGS(mapping, folio, index)); DECLARE_HOOK(android_vh_do_read_fault, TP_PROTO(struct vm_fault *vmf, unsigned long fault_around_bytes), TP_ARGS(vmf, fault_around_bytes)); diff --git a/include/trace/hooks/vmscan.h b/include/trace/hooks/vmscan.h index 94303994f6d6..e318c2d51c1f 100644 --- a/include/trace/hooks/vmscan.h +++ b/include/trace/hooks/vmscan.h @@ -21,6 +21,10 @@ DECLARE_HOOK(android_vh_shrink_slab_bypass, DECLARE_HOOK(android_vh_do_shrink_slab, TP_PROTO(struct shrinker *shrinker, long *freeable), TP_ARGS(shrinker, freeable)); +DECLARE_HOOK(android_vh_do_shrink_slab_ex, + TP_PROTO(struct shrink_control *shrinkctl, struct shrinker *shrinker, + long *freeable, int priority), + TP_ARGS(shrinkctl, shrinker, freeable, priority)); DECLARE_HOOK(android_vh_shrink_node_memcgs, TP_PROTO(struct mem_cgroup *memcg, bool *skip), TP_ARGS(memcg, skip)); @@ -82,6 +86,9 @@ DECLARE_HOOK(android_vh_page_referenced_check_bypass, DECLARE_HOOK(android_vh_folio_referenced_check_bypass, TP_PROTO(struct folio *folio, s8 priority, unsigned long nr_to_scan, int lru, bool *bypass), TP_ARGS(folio, priority, nr_to_scan, lru, bypass)); +DECLARE_HOOK(android_vh_shrink_node, + TP_PROTO(pg_data_t *pgdat, struct mem_cgroup *memcg), + TP_ARGS(pgdat, memcg)); DECLARE_HOOK(android_vh_should_memcg_bypass, TP_PROTO(struct mem_cgroup *memcg, int priority, bool *bypass), TP_ARGS(memcg, priority, bypass)); diff --git a/include/uapi/linux/userfaultfd.h b/include/uapi/linux/userfaultfd.h index ffdbefb3c5d5..dfac99ea1b08 100644 --- a/include/uapi/linux/userfaultfd.h +++ b/include/uapi/linux/userfaultfd.h @@ -331,7 +331,7 @@ struct uffdio_move { * to move same src folio. It's a KMI workaround and cannot be relied * upon by userspace. */ -#define UFFDIO_MOVE_MODE_CONFIRM_FIXED ((__u64)1<<63) +#define UFFDIO_MOVE_MODE_CONFIRM_FIXED ((__u64)1<<62) __u64 mode; /* * "move" is written by the ioctl and must be at the end: the diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index af7dfdf9efc9..550f49a1e492 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -2313,9 +2313,37 @@ static struct file_system_type cgroup2_fs_type = { }; #ifdef CONFIG_CPUSETS +enum cpuset_param { + Opt_cpuset_v2_mode, +}; + +static const struct fs_parameter_spec cpuset_fs_parameters[] = { + fsparam_flag ("cpuset_v2_mode", Opt_cpuset_v2_mode), + {} +}; + +static int cpuset_parse_param(struct fs_context *fc, struct fs_parameter *param) +{ + struct cgroup_fs_context *ctx = cgroup_fc2context(fc); + struct fs_parse_result result; + int opt; + + opt = fs_parse(fc, cpuset_fs_parameters, param, &result); + if (opt < 0) + return opt; + + switch (opt) { + case Opt_cpuset_v2_mode: + ctx->flags |= CGRP_ROOT_CPUSET_V2_MODE; + return 0; + } + return -EINVAL; +} + static const struct fs_context_operations cpuset_fs_context_ops = { .get_tree = cgroup1_get_tree, .free = cgroup_fs_context_free, + .parse_param = cpuset_parse_param, }; /* @@ -2352,6 +2380,7 @@ static int cpuset_init_fs_context(struct fs_context *fc) static struct file_system_type cpuset_fs_type = { .name = "cpuset", .init_fs_context = cpuset_init_fs_context, + .parameters = cpuset_fs_parameters, .fs_flags = FS_USERNS_MOUNT, }; #endif @@ -4408,6 +4437,7 @@ int cgroup_rm_cftypes(struct cftype *cfts) cgroup_unlock(); return ret; } +EXPORT_SYMBOL_GPL(cgroup_rm_cftypes); /** * cgroup_add_cftypes - add an array of cftypes to a subsystem diff --git a/kernel/regset.c b/kernel/regset.c index 586823786f39..b2871fa68b2a 100644 --- a/kernel/regset.c +++ b/kernel/regset.c @@ -16,14 +16,14 @@ static int __regset_get(struct task_struct *target, if (size > regset->n * regset->size) size = regset->n * regset->size; if (!p) { - to_free = p = kzalloc(size, GFP_KERNEL); + to_free = p = kvzalloc(size, GFP_KERNEL); if (!p) return -ENOMEM; } res = regset->regset_get(target, regset, (struct membuf){.p = p, .left = size}); if (res < 0) { - kfree(to_free); + kvfree(to_free); return res; } *data = p; @@ -71,6 +71,6 @@ int copy_regset_to_user(struct task_struct *target, ret = regset_get_alloc(target, regset, size, &buf); if (ret > 0) ret = copy_to_user(data, buf, ret) ? -EFAULT : 0; - kfree(buf); + kvfree(buf); return ret; } diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 5f0d03491f2e..64a231649cce 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -8050,10 +8050,15 @@ do_sched_setscheduler(pid_t pid, int policy, struct sched_param __user *param) rcu_read_lock(); retval = -ESRCH; p = find_process_by_pid(pid); - if (p != NULL) - retval = sched_setscheduler(p, policy, &lparam); + if (likely(p)) + get_task_struct(p); rcu_read_unlock(); + if (likely(p)) { + retval = sched_setscheduler(p, policy, &lparam); + put_task_struct(p); + } + return retval; } diff --git a/mm/filemap.c b/mm/filemap.c index 2c7ee688aa20..5a04eee34ba8 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -870,6 +870,7 @@ noinline int __filemap_add_folio(struct address_space *mapping, VM_BUG_ON_FOLIO(folio_test_swapbacked(folio), folio); mapping_set_update(&xas, mapping); + trace_android_vh_filemap_add_folio(mapping, folio, index); if (!huge) { int error = mem_cgroup_charge(folio, NULL, gfp); VM_BUG_ON_FOLIO(index & (folio_nr_pages(folio) - 1), folio); diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 90a9052b8384..531e47b6eed3 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1372,6 +1372,7 @@ vm_fault_t do_huge_pmd_wp_page(struct vm_fault *vmf) pmd_t entry; page_move_anon_rmap(page, vma); + SetPageAnonExclusive(page); folio_unlock(folio); reuse: if (unlikely(unshare)) { diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 4b517a75f8fe..011effee5f62 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -5581,8 +5581,10 @@ retry_avoidcopy: * owner and can reuse this page. */ if (page_mapcount(old_page) == 1 && PageAnon(old_page)) { - if (!PageAnonExclusive(old_page)) + if (!PageAnonExclusive(old_page)) { page_move_anon_rmap(old_page, vma); + SetPageAnonExclusive(old_page); + } if (likely(!unshare)) set_huge_ptep_writable(vma, haddr, ptep); diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 948e583886b8..f57fd8932dc9 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5755,7 +5755,7 @@ static struct page *mc_handle_file_pte(struct vm_area_struct *vma, * This function doesn't do "charge" to new cgroup and doesn't do "uncharge" * from old cgroup. */ -static int mem_cgroup_move_account(struct page *page, +int mem_cgroup_move_account(struct page *page, bool compound, struct mem_cgroup *from, struct mem_cgroup *to) @@ -5866,6 +5866,7 @@ out_unlock: out: return ret; } +EXPORT_SYMBOL_GPL(mem_cgroup_move_account); /** * get_mctgt_type - get target type of moving charge @@ -6983,6 +6984,7 @@ int __mem_cgroup_charge(struct folio *folio, struct mm_struct *mm, gfp_t gfp) int ret; memcg = get_mem_cgroup_from_mm(mm); + trace_android_vh_mem_cgroup_charge(folio, &memcg); ret = charge_memcg(folio, memcg, gfp); css_put(&memcg->css); diff --git a/mm/memory.c b/mm/memory.c index a565c6f7011f..31ea60f18bd5 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3563,6 +3563,7 @@ static vm_fault_t do_wp_page(struct vm_fault *vmf) * sunglasses. Hit it. */ page_move_anon_rmap(vmf->page, vma); + SetPageAnonExclusive(vmf->page); folio_unlock(folio); reuse: if (unlikely(unshare)) { diff --git a/mm/rmap.c b/mm/rmap.c index 992502845a7d..c80af87c3376 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -1140,7 +1140,6 @@ void page_move_anon_rmap(struct page *page, struct vm_area_struct *vma) * folio_test_anon()) will not see one without the other. */ WRITE_ONCE(folio->mapping, anon_vma); - SetPageAnonExclusive(page); } /** diff --git a/mm/vmscan.c b/mm/vmscan.c index 9dbd8b1ae7a6..c14a16044515 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -816,6 +816,7 @@ static unsigned long do_shrink_slab(struct shrink_control *shrinkctl, freeable = shrinker->count_objects(shrinker, shrinkctl); trace_android_vh_do_shrink_slab(shrinker, &freeable); + trace_android_vh_do_shrink_slab_ex(shrinkctl, shrinker, &freeable, priority); if (freeable == 0 || freeable == SHRINK_EMPTY) return freeable; @@ -6605,6 +6606,7 @@ static void shrink_node(pg_data_t *pgdat, struct scan_control *sc) struct lruvec *target_lruvec; bool reclaimable = false; + trace_android_vh_shrink_node(pgdat, sc->target_mem_cgroup); if (lru_gen_enabled() && global_reclaim(sc)) { lru_gen_shrink_node(pgdat, sc); return; diff --git a/mm/workingset.c b/mm/workingset.c index 4379f109f204..333640fc7deb 100644 --- a/mm/workingset.c +++ b/mm/workingset.c @@ -16,6 +16,7 @@ #include #include #include +#include /* * Double CLOCK lists @@ -401,6 +402,8 @@ void workingset_refault(struct folio *folio, void *shadow) int memcgid; long nr; + trace_android_vh_count_workingset_refault(folio); + if (lru_gen_enabled()) { lru_gen_refault(folio, shadow); return; diff --git a/net/core/filter.c b/net/core/filter.c index 38a5f43e7ab3..8d2e0694b93f 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -212,24 +212,36 @@ BPF_CALL_3(bpf_skb_get_nlattr_nest, struct sk_buff *, skb, u32, a, u32, x) return 0; } +static int bpf_skb_load_helper_convert_offset(const struct sk_buff *skb, int offset) +{ + if (likely(offset >= 0)) + return offset; + + if (offset >= SKF_NET_OFF) + return offset - SKF_NET_OFF + skb_network_offset(skb); + + if (offset >= SKF_LL_OFF && skb_mac_header_was_set(skb)) + return offset - SKF_LL_OFF + skb_mac_offset(skb); + + return INT_MIN; +} + BPF_CALL_4(bpf_skb_load_helper_8, const struct sk_buff *, skb, const void *, data, int, headlen, int, offset) { - u8 tmp, *ptr; + u8 tmp; const int len = sizeof(tmp); - if (offset >= 0) { - if (headlen - offset >= len) - return *(u8 *)(data + offset); - if (!skb_copy_bits(skb, offset, &tmp, sizeof(tmp))) - return tmp; - } else { - ptr = bpf_internal_load_pointer_neg_helper(skb, offset, len); - if (likely(ptr)) - return *(u8 *)ptr; - } + offset = bpf_skb_load_helper_convert_offset(skb, offset); + if (offset == INT_MIN) + return -EFAULT; - return -EFAULT; + if (headlen - offset >= len) + return *(u8 *)(data + offset); + if (!skb_copy_bits(skb, offset, &tmp, sizeof(tmp))) + return tmp; + else + return -EFAULT; } BPF_CALL_2(bpf_skb_load_helper_8_no_cache, const struct sk_buff *, skb, @@ -242,21 +254,19 @@ BPF_CALL_2(bpf_skb_load_helper_8_no_cache, const struct sk_buff *, skb, BPF_CALL_4(bpf_skb_load_helper_16, const struct sk_buff *, skb, const void *, data, int, headlen, int, offset) { - __be16 tmp, *ptr; + __be16 tmp; const int len = sizeof(tmp); - if (offset >= 0) { - if (headlen - offset >= len) - return get_unaligned_be16(data + offset); - if (!skb_copy_bits(skb, offset, &tmp, sizeof(tmp))) - return be16_to_cpu(tmp); - } else { - ptr = bpf_internal_load_pointer_neg_helper(skb, offset, len); - if (likely(ptr)) - return get_unaligned_be16(ptr); - } + offset = bpf_skb_load_helper_convert_offset(skb, offset); + if (offset == INT_MIN) + return -EFAULT; - return -EFAULT; + if (headlen - offset >= len) + return get_unaligned_be16(data + offset); + if (!skb_copy_bits(skb, offset, &tmp, sizeof(tmp))) + return be16_to_cpu(tmp); + else + return -EFAULT; } BPF_CALL_2(bpf_skb_load_helper_16_no_cache, const struct sk_buff *, skb, @@ -269,21 +279,19 @@ BPF_CALL_2(bpf_skb_load_helper_16_no_cache, const struct sk_buff *, skb, BPF_CALL_4(bpf_skb_load_helper_32, const struct sk_buff *, skb, const void *, data, int, headlen, int, offset) { - __be32 tmp, *ptr; + __be32 tmp; const int len = sizeof(tmp); - if (likely(offset >= 0)) { - if (headlen - offset >= len) - return get_unaligned_be32(data + offset); - if (!skb_copy_bits(skb, offset, &tmp, sizeof(tmp))) - return be32_to_cpu(tmp); - } else { - ptr = bpf_internal_load_pointer_neg_helper(skb, offset, len); - if (likely(ptr)) - return get_unaligned_be32(ptr); - } + offset = bpf_skb_load_helper_convert_offset(skb, offset); + if (offset == INT_MIN) + return -EFAULT; - return -EFAULT; + if (headlen - offset >= len) + return get_unaligned_be32(data + offset); + if (!skb_copy_bits(skb, offset, &tmp, sizeof(tmp))) + return be32_to_cpu(tmp); + else + return -EFAULT; } BPF_CALL_2(bpf_skb_load_helper_32_no_cache, const struct sk_buff *, skb,