diff --git a/BUILD.bazel b/BUILD.bazel index 1035027d3f17..6f4d747cdc94 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -112,6 +112,7 @@ filegroup( "android/abi_gki_aarch64_pixel", "android/abi_gki_aarch64_qcom", "android/abi_gki_aarch64_rockchip", + "android/abi_gki_aarch64_sony", "android/abi_gki_aarch64_tuxera", "android/abi_gki_aarch64_unisoc", "android/abi_gki_aarch64_virtual_device", diff --git a/android/abi_gki_aarch64.stg b/android/abi_gki_aarch64.stg index 0e606f7fb2ae..4800ec11faa5 100644 --- a/android/abi_gki_aarch64.stg +++ b/android/abi_gki_aarch64.stg @@ -2678,6 +2678,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x0258f96e } +pointer_reference { + id: 0x0a126667 + kind: POINTER + pointee_type_id: 0x02097f03 +} pointer_reference { id: 0x0a134144 kind: POINTER @@ -297152,6 +297157,11 @@ function { parameter_id: 0xc9082b19 parameter_id: 0x3545954a } +function { + id: 0x1f3d2f88 + return_type_id: 0x07f2af49 + parameter_id: 0x3e10b518 +} function { id: 0x1f3dbc29 return_type_id: 0x48b5725f @@ -302472,6 +302482,10 @@ function { id: 0x7e8c435e return_type_id: 0x24e24923 } +function { + id: 0x7e9e1bfa + return_type_id: 0x0d5f1839 +} function { id: 0x7eb670a7 return_type_id: 0x097315c2 @@ -302808,6 +302822,13 @@ function { return_type_id: 0x6720d32f parameter_id: 0x6720d32f } +function { + id: 0x84621ae4 + return_type_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x0a126667 + parameter_id: 0x0a126667 +} function { id: 0x84710953 return_type_id: 0x6720d32f @@ -312138,6 +312159,18 @@ function { parameter_id: 0x6720d32f parameter_id: 0x11cfee5a } +function { + id: 0x9870bdab + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0xf1a6dfed + parameter_id: 0x6720d32f + parameter_id: 0x13580d6c + parameter_id: 0x6720d32f + parameter_id: 0x0a63398f + parameter_id: 0x0b30ee00 + parameter_id: 0x11cfee5a +} function { id: 0x98716c4f return_type_id: 0x6720d32f @@ -312148,6 +312181,14 @@ function { parameter_id: 0x6720d32f parameter_id: 0x0b30ee00 } +function { + id: 0x9872969e + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0xf435685e + parameter_id: 0x36f98e5c + parameter_id: 0x11cfee5a +} function { id: 0x98731419 return_type_id: 0x6720d32f @@ -314056,6 +314097,14 @@ function { parameter_id: 0x92233392 parameter_id: 0x2e0f9112 } +function { + id: 0x9a1898ed + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x6d7f5ff6 + parameter_id: 0x0a63398f + parameter_id: 0x11cfee5a +} function { id: 0x9a1a471c return_type_id: 0x6720d32f @@ -314738,6 +314787,13 @@ function { return_type_id: 0x6720d32f parameter_id: 0x1c1627b0 } +function { + id: 0x9a85c64c + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x4585663f + parameter_id: 0xf1a6dfed +} function { id: 0x9a871ca2 return_type_id: 0x6720d32f @@ -314964,6 +315020,16 @@ function { parameter_id: 0x391f15ea parameter_id: 0xf435685e } +function { + id: 0x9ab56d04 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x4585663f + parameter_id: 0x33756485 + parameter_id: 0x064d6086 + parameter_id: 0x1bf16028 + parameter_id: 0x1bf16028 +} function { id: 0x9ab63fbc return_type_id: 0x6720d32f @@ -315027,6 +315093,15 @@ function { parameter_id: 0x18bd6530 parameter_id: 0xf435685e } +function { + id: 0x9abcf489 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x4585663f + parameter_id: 0x1321a5b2 + parameter_id: 0x6720d32f + parameter_id: 0x3e6239e1 +} function { id: 0x9abe486f return_type_id: 0x6720d32f @@ -315837,6 +315912,13 @@ function { parameter_id: 0x1d841d76 parameter_id: 0x0a134144 } +function { + id: 0x9b3343fb + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x275ab027 + parameter_id: 0x064d6086 +} function { id: 0x9b33517a return_type_id: 0x6720d32f @@ -316719,6 +316801,17 @@ function { parameter_id: 0x295c7202 parameter_id: 0x35f7f02e } +function { + id: 0x9b6e66f6 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x33756485 + parameter_id: 0x33756485 + parameter_id: 0x33756485 + parameter_id: 0x6720d32f + parameter_id: 0x11cfee5a + parameter_id: 0x11cfee5a +} function { id: 0x9b6e7eec return_type_id: 0x6720d32f @@ -317505,12 +317598,25 @@ function { parameter_id: 0x3e10b518 parameter_id: 0x33756485 } +function { + id: 0x9ba4eebd + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x026525e9 + parameter_id: 0x0b012462 +} function { id: 0x9ba51920 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 parameter_id: 0x02a8d0c9 } +function { + id: 0x9ba62ef4 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x026525e9 +} function { id: 0x9ba6ac88 return_type_id: 0x6720d32f @@ -317664,6 +317770,15 @@ function { parameter_id: 0x19466519 parameter_id: 0x6720d32f } +function { + id: 0x9bade7dd + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x06835e9c + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x11cfee5a +} function { id: 0x9bae28ba return_type_id: 0x6720d32f @@ -319986,6 +320101,14 @@ function { return_type_id: 0x3e10b518 parameter_id: 0x3b38b19b } +function { + id: 0x9c8a3bf9 + return_type_id: 0x6720d32f + parameter_id: 0x07f2af49 + parameter_id: 0x3e10b518 + parameter_id: 0x3e10b518 + parameter_id: 0x6d7f5ff6 +} function { id: 0x9c8a5e38 return_type_id: 0x6720d32f @@ -325893,6 +326016,14 @@ function { parameter_id: 0x36d078a0 parameter_id: 0xf435685e } +function { + id: 0xab336d04 + return_type_id: 0xfc0e1dbd + parameter_id: 0x33756485 + parameter_id: 0x33756485 + parameter_id: 0x0b30ee00 + parameter_id: 0x4585663f +} function { id: 0xab344d2b return_type_id: 0x31b5a66f @@ -328659,6 +328790,14 @@ function { parameter_id: 0x4585663f parameter_id: 0x6720d32f } +function { + id: 0xf1d30ddc + return_type_id: 0x26e55184 + parameter_id: 0x347303b4 + parameter_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x351da44b +} function { id: 0xf1d7e113 return_type_id: 0x6d7f5ff6 @@ -332371,6 +332510,15 @@ elf_symbol { type_id: 0x16983453 full_name: "__netif_napi_del" } +elf_symbol { + id: 0xe6b5218e + name: "__netif_rx" + is_defined: true + symbol_type: FUNCTION + crc: 0xfe0edf2f + type_id: 0x9cd33969 + full_name: "__netif_rx" +} elf_symbol { id: 0x6337b091 name: "__netif_set_xps_queue" @@ -334504,6 +334652,15 @@ elf_symbol { type_id: 0x9b922d94 full_name: "__traceiter_android_rvh_util_est_update" } +elf_symbol { + id: 0x88b6e481 + name: "__traceiter_android_rvh_util_fits_cpu" + is_defined: true + symbol_type: FUNCTION + crc: 0x8695f145 + type_id: 0x9b6e66f6 + full_name: "__traceiter_android_rvh_util_fits_cpu" +} elf_symbol { id: 0xebcd0234 name: "__traceiter_android_rvh_wake_up_new_task" @@ -334540,6 +334697,15 @@ elf_symbol { type_id: 0x9ab41198 full_name: "__traceiter_android_vh_adjust_alloc_flags" } +elf_symbol { + id: 0xc9756e19 + name: "__traceiter_android_vh_adjust_kvmalloc_flags" + is_defined: true + symbol_type: FUNCTION + crc: 0xda390245 + type_id: 0x9ab41198 + full_name: "__traceiter_android_vh_adjust_kvmalloc_flags" +} elf_symbol { id: 0xd0b4a794 name: "__traceiter_android_vh_alloc_oem_binder_struct" @@ -335233,6 +335399,15 @@ elf_symbol { type_id: 0x9bdbdcc4 full_name: "__traceiter_android_vh_free_task" } +elf_symbol { + id: 0x812c6920 + name: "__traceiter_android_vh_free_unref_page_bypass" + is_defined: true + symbol_type: FUNCTION + crc: 0x0795105e + type_id: 0x9bade7dd + full_name: "__traceiter_android_vh_free_unref_page_bypass" +} elf_symbol { id: 0xe3ce1f52 name: "__traceiter_android_vh_free_user" @@ -335503,6 +335678,15 @@ elf_symbol { type_id: 0x9a36ff29 full_name: "__traceiter_android_vh_kswapd_per_node" } +elf_symbol { + id: 0x0992491b + name: "__traceiter_android_vh_kvmalloc_node_use_vmalloc" + is_defined: true + symbol_type: FUNCTION + crc: 0x3844ae56 + type_id: 0x9872969e + full_name: "__traceiter_android_vh_kvmalloc_node_use_vmalloc" +} elf_symbol { id: 0xe19d2bf8 name: "__traceiter_android_vh_look_around" @@ -335674,6 +335858,24 @@ elf_symbol { type_id: 0x9b8b2a3f full_name: "__traceiter_android_vh_mmap_region" } +elf_symbol { + id: 0x0c9da1aa + name: "__traceiter_android_vh_mmc_blk_mq_rw_recovery" + is_defined: true + symbol_type: FUNCTION + crc: 0x9a666675 + type_id: 0x9ba62ef4 + full_name: "__traceiter_android_vh_mmc_blk_mq_rw_recovery" +} +elf_symbol { + id: 0xc168df93 + name: "__traceiter_android_vh_mmc_update_mmc_queue" + is_defined: true + symbol_type: FUNCTION + crc: 0x9999acd8 + type_id: 0x9ba4eebd + full_name: "__traceiter_android_vh_mmc_update_mmc_queue" +} elf_symbol { id: 0x5612c9d1 name: "__traceiter_android_vh_mmput" @@ -335872,6 +336074,15 @@ elf_symbol { type_id: 0x9b49a977 full_name: "__traceiter_android_vh_ptype_head" } +elf_symbol { + id: 0x3a545b61 + name: "__traceiter_android_vh_ra_tuning_max_page" + is_defined: true + symbol_type: FUNCTION + crc: 0x1b994310 + type_id: 0x9b3343fb + full_name: "__traceiter_android_vh_ra_tuning_max_page" +} elf_symbol { id: 0x7d069e91 name: "__traceiter_android_vh_record_mutex_lock_starttime" @@ -335944,6 +336155,15 @@ elf_symbol { type_id: 0x9b858538 full_name: "__traceiter_android_vh_rmqueue" } +elf_symbol { + id: 0xd6100bd9 + name: "__traceiter_android_vh_rmqueue_bulk_bypass" + is_defined: true + symbol_type: FUNCTION + crc: 0x0e1493ac + type_id: 0x9abcf489 + full_name: "__traceiter_android_vh_rmqueue_bulk_bypass" +} elf_symbol { id: 0x8d62858f name: "__traceiter_android_vh_rmqueue_smallest_bypass" @@ -336169,6 +336389,15 @@ elf_symbol { type_id: 0x9b17b01e full_name: "__traceiter_android_vh_scheduler_tick" } +elf_symbol { + id: 0xe4ec133d + name: "__traceiter_android_vh_sd_update_bus_speed_mode" + is_defined: true + symbol_type: FUNCTION + crc: 0xd12257ab + type_id: 0x9ba62ef4 + full_name: "__traceiter_android_vh_sd_update_bus_speed_mode" +} elf_symbol { id: 0xaa3f6a65 name: "__traceiter_android_vh_set_wake_flags" @@ -336187,6 +336416,15 @@ elf_symbol { type_id: 0x9bc302e5 full_name: "__traceiter_android_vh_setscheduler_uclamp" } +elf_symbol { + id: 0x53263f73 + name: "__traceiter_android_vh_should_alloc_pages_retry" + is_defined: true + symbol_type: FUNCTION + crc: 0xf9298a33 + type_id: 0x9870bdab + full_name: "__traceiter_android_vh_should_alloc_pages_retry" +} elf_symbol { id: 0xe828d15b name: "__traceiter_android_vh_should_continue_reclaim" @@ -336277,6 +336515,15 @@ elf_symbol { type_id: 0x9be885da full_name: "__traceiter_android_vh_skip_swap_map_write" } +elf_symbol { + id: 0x0562cb47 + name: "__traceiter_android_vh_slab_folio_alloced" + is_defined: true + symbol_type: FUNCTION + crc: 0x7735df78 + type_id: 0x9a85c64c + full_name: "__traceiter_android_vh_slab_folio_alloced" +} elf_symbol { id: 0x08f4cbb0 name: "__traceiter_android_vh_smaps_pte_entry" @@ -336394,6 +336641,15 @@ elf_symbol { type_id: 0x9b2837bd full_name: "__traceiter_android_vh_try_to_unmap_one" } +elf_symbol { + id: 0xc0482ac3 + name: "__traceiter_android_vh_tune_mmap_readaround" + is_defined: true + symbol_type: FUNCTION + crc: 0x05c25963 + type_id: 0x9ab56d04 + full_name: "__traceiter_android_vh_tune_mmap_readaround" +} elf_symbol { id: 0x39155e73 name: "__traceiter_android_vh_tune_scan_type" @@ -336574,6 +336830,15 @@ elf_symbol { type_id: 0x9bb5c5c3 full_name: "__traceiter_android_vh_ufs_use_mcq_hooks" } +elf_symbol { + id: 0x46e1dbde + name: "__traceiter_android_vh_unreserve_highatomic_bypass" + is_defined: true + symbol_type: FUNCTION + crc: 0x3aa2f698 + type_id: 0x9a1898ed + full_name: "__traceiter_android_vh_unreserve_highatomic_bypass" +} elf_symbol { id: 0x6a8145ff name: "__traceiter_android_vh_update_topology_flags_workfn" @@ -337123,6 +337388,24 @@ elf_symbol { type_id: 0x9bdbdcc4 full_name: "__traceiter_sched_waking" } +elf_symbol { + id: 0x62a42e92 + name: "__traceiter_softirq_entry" + is_defined: true + symbol_type: FUNCTION + crc: 0x263c5561 + type_id: 0x9ab9affb + full_name: "__traceiter_softirq_entry" +} +elf_symbol { + id: 0xa7ccbbf5 + name: "__traceiter_softirq_exit" + is_defined: true + symbol_type: FUNCTION + crc: 0x1b06a32a + type_id: 0x9ab9affb + full_name: "__traceiter_softirq_exit" +} elf_symbol { id: 0x863777a0 name: "__traceiter_suspend_resume" @@ -338311,6 +338594,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_util_est_update" } +elf_symbol { + id: 0xabb656f7 + name: "__tracepoint_android_rvh_util_fits_cpu" + is_defined: true + symbol_type: OBJECT + crc: 0xaa223322 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_util_fits_cpu" +} elf_symbol { id: 0xdcf22716 name: "__tracepoint_android_rvh_wake_up_new_task" @@ -338347,6 +338639,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_adjust_alloc_flags" } +elf_symbol { + id: 0xf3cd7eeb + name: "__tracepoint_android_vh_adjust_kvmalloc_flags" + is_defined: true + symbol_type: OBJECT + crc: 0x7a4f5bf1 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_adjust_kvmalloc_flags" +} elf_symbol { id: 0xd7f9868e name: "__tracepoint_android_vh_alloc_oem_binder_struct" @@ -339040,6 +339341,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_free_task" } +elf_symbol { + id: 0x4ce6de1a + name: "__tracepoint_android_vh_free_unref_page_bypass" + is_defined: true + symbol_type: OBJECT + crc: 0xf31d0b7d + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_free_unref_page_bypass" +} elf_symbol { id: 0x4d4fd1cc name: "__tracepoint_android_vh_free_user" @@ -339310,6 +339620,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_kswapd_per_node" } +elf_symbol { + id: 0x8bd577fd + name: "__tracepoint_android_vh_kvmalloc_node_use_vmalloc" + is_defined: true + symbol_type: OBJECT + crc: 0x60c70f5b + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_kvmalloc_node_use_vmalloc" +} elf_symbol { id: 0xda2d53f2 name: "__tracepoint_android_vh_look_around" @@ -339481,6 +339800,24 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_mmap_region" } +elf_symbol { + id: 0x1daf6454 + name: "__tracepoint_android_vh_mmc_blk_mq_rw_recovery" + is_defined: true + symbol_type: OBJECT + crc: 0xc7751460 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_mmc_blk_mq_rw_recovery" +} +elf_symbol { + id: 0x3c1c2029 + name: "__tracepoint_android_vh_mmc_update_mmc_queue" + is_defined: true + symbol_type: OBJECT + crc: 0x5bfb09a0 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_mmc_update_mmc_queue" +} elf_symbol { id: 0x41c8d09b name: "__tracepoint_android_vh_mmput" @@ -339679,6 +340016,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_ptype_head" } +elf_symbol { + id: 0x811d5fab + name: "__tracepoint_android_vh_ra_tuning_max_page" + is_defined: true + symbol_type: OBJECT + crc: 0x9744e016 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ra_tuning_max_page" +} elf_symbol { id: 0x761f292f name: "__tracepoint_android_vh_record_mutex_lock_starttime" @@ -339751,6 +340097,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_rmqueue" } +elf_symbol { + id: 0xfebada43 + name: "__tracepoint_android_vh_rmqueue_bulk_bypass" + is_defined: true + symbol_type: OBJECT + crc: 0x1cdf278d + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_rmqueue_bulk_bypass" +} elf_symbol { id: 0x04365139 name: "__tracepoint_android_vh_rmqueue_smallest_bypass" @@ -339976,6 +340331,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_scheduler_tick" } +elf_symbol { + id: 0xcfab6e83 + name: "__tracepoint_android_vh_sd_update_bus_speed_mode" + is_defined: true + symbol_type: OBJECT + crc: 0x6a78e6b4 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_sd_update_bus_speed_mode" +} elf_symbol { id: 0xd7ceb15f name: "__tracepoint_android_vh_set_wake_flags" @@ -339994,6 +340358,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_setscheduler_uclamp" } +elf_symbol { + id: 0xd860c719 + name: "__tracepoint_android_vh_should_alloc_pages_retry" + is_defined: true + symbol_type: OBJECT + crc: 0xf3041380 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_should_alloc_pages_retry" +} elf_symbol { id: 0x5b6bc3a9 name: "__tracepoint_android_vh_should_continue_reclaim" @@ -340084,6 +340457,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_skip_swap_map_write" } +elf_symbol { + id: 0x4a999b29 + name: "__tracepoint_android_vh_slab_folio_alloced" + is_defined: true + symbol_type: OBJECT + crc: 0x9ccb5403 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_slab_folio_alloced" +} elf_symbol { id: 0x547e3912 name: "__tracepoint_android_vh_smaps_pte_entry" @@ -340201,6 +340583,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_try_to_unmap_one" } +elf_symbol { + id: 0x0f6579e9 + name: "__tracepoint_android_vh_tune_mmap_readaround" + is_defined: true + symbol_type: OBJECT + crc: 0xc42ea17f + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_tune_mmap_readaround" +} elf_symbol { id: 0x49b955bd name: "__tracepoint_android_vh_tune_scan_type" @@ -340381,6 +340772,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_ufs_use_mcq_hooks" } +elf_symbol { + id: 0xd309f564 + name: "__tracepoint_android_vh_unreserve_highatomic_bypass" + is_defined: true + symbol_type: OBJECT + crc: 0xe53f0aff + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_unreserve_highatomic_bypass" +} elf_symbol { id: 0xc09d36c9 name: "__tracepoint_android_vh_update_topology_flags_workfn" @@ -340930,6 +341330,24 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_sched_waking" } +elf_symbol { + id: 0x9a65f074 + name: "__tracepoint_softirq_entry" + is_defined: true + symbol_type: OBJECT + crc: 0x12c92cec + type_id: 0x18ccbd2c + full_name: "__tracepoint_softirq_entry" +} +elf_symbol { + id: 0x158cc323 + name: "__tracepoint_softirq_exit" + is_defined: true + symbol_type: OBJECT + crc: 0x54cebae9 + type_id: 0x18ccbd2c + full_name: "__tracepoint_softirq_exit" +} elf_symbol { id: 0x5b327cd6 name: "__tracepoint_suspend_resume" @@ -341911,6 +342329,15 @@ elf_symbol { type_id: 0x154da6ed full_name: "add_wait_queue_exclusive" } +elf_symbol { + id: 0x717596ae + name: "add_wait_queue_priority" + is_defined: true + symbol_type: FUNCTION + crc: 0x005f18a6 + type_id: 0x154da6ed + full_name: "add_wait_queue_priority" +} elf_symbol { id: 0xf9bb4624 name: "addrconf_add_linklocal" @@ -347930,6 +348357,15 @@ elf_symbol { type_id: 0x9d80e32f full_name: "current_umask" } +elf_symbol { + id: 0xedff0bea + name: "current_work" + is_defined: true + symbol_type: FUNCTION + crc: 0xd75ee543 + type_id: 0x7e9e1bfa + full_name: "current_work" +} elf_symbol { id: 0x171eca8a name: "d_add" @@ -351332,6 +351768,15 @@ elf_symbol { type_id: 0x8556217d full_name: "devm_regulator_get" } +elf_symbol { + id: 0x502d0b80 + name: "devm_regulator_get_enable_optional" + is_defined: true + symbol_type: FUNCTION + crc: 0x85886f4b + type_id: 0x9dee9fa0 + full_name: "devm_regulator_get_enable_optional" +} elf_symbol { id: 0x3c0cefc0 name: "devm_regulator_get_exclusive" @@ -359968,6 +360413,15 @@ elf_symbol { type_id: 0x90d074d8 full_name: "get_user_pages_fast" } +elf_symbol { + id: 0x6a8a4883 + name: "get_user_pages_fast_only" + is_defined: true + symbol_type: FUNCTION + crc: 0xce7bb883 + type_id: 0x90d074d8 + full_name: "get_user_pages_fast_only" +} elf_symbol { id: 0x4909936e name: "get_user_pages_remote" @@ -359977,6 +360431,15 @@ elf_symbol { type_id: 0xa12d9647 full_name: "get_user_pages_remote" } +elf_symbol { + id: 0x474c6d6a + name: "get_user_pages_unlocked" + is_defined: true + symbol_type: FUNCTION + crc: 0x25491db2 + type_id: 0xab336d04 + full_name: "get_user_pages_unlocked" +} elf_symbol { id: 0xce04fca2 name: "get_vaddr_frames" @@ -381460,6 +381923,15 @@ elf_symbol { type_id: 0x1e70c9ff full_name: "serdev_device_write_flush" } +elf_symbol { + id: 0x98b882af + name: "serial8250_do_pm" + is_defined: true + symbol_type: FUNCTION + crc: 0x15a6f758 + type_id: 0x11b2c04d + full_name: "serial8250_do_pm" +} elf_symbol { id: 0x2bb7ad6a name: "serial8250_do_set_termios" @@ -382073,6 +382545,15 @@ elf_symbol { type_id: 0x1dcd0419 full_name: "si_swapinfo" } +elf_symbol { + id: 0x3878f32b + name: "sigprocmask" + is_defined: true + symbol_type: FUNCTION + crc: 0x6a5fa363 + type_id: 0x84621ae4 + full_name: "sigprocmask" +} elf_symbol { id: 0xfc18945f name: "simple_attr_open" @@ -387008,6 +387489,15 @@ elf_symbol { type_id: 0x4552a7f2 full_name: "thermal_of_cooling_device_register" } +elf_symbol { + id: 0xab314de1 + name: "thermal_of_zone_register" + is_defined: true + symbol_type: FUNCTION + crc: 0x21c89698 + type_id: 0xf1d30ddc + full_name: "thermal_of_zone_register" +} elf_symbol { id: 0x4da66281 name: "thermal_of_zone_unregister" @@ -387323,6 +387813,15 @@ elf_symbol { type_id: 0x1459aedb full_name: "touchscreen_report_pos" } +elf_symbol { + id: 0xe2481840 + name: "trace_array_get_by_name" + is_defined: true + symbol_type: FUNCTION + crc: 0x0bb6f3ef + type_id: 0x1f3d2f88 + full_name: "trace_array_get_by_name" +} elf_symbol { id: 0x86b2ecdf name: "trace_array_put" @@ -387332,6 +387831,15 @@ elf_symbol { type_id: 0x1164fa41 full_name: "trace_array_put" } +elf_symbol { + id: 0xa274099f + name: "trace_array_set_clr_event" + is_defined: true + symbol_type: FUNCTION + crc: 0x52d140b6 + type_id: 0x9c8a3bf9 + full_name: "trace_array_set_clr_event" +} elf_symbol { id: 0x00fb9c6d name: "trace_clock_local" @@ -396332,6 +396840,7 @@ interface { symbol_id: 0x9d90da6e symbol_id: 0x6793e03f symbol_id: 0x17112d4d + symbol_id: 0xe6b5218e symbol_id: 0x6337b091 symbol_id: 0x4fc5d8fb symbol_id: 0x45dc2e90 @@ -396569,10 +397078,12 @@ interface { symbol_id: 0xfaa2e0a4 symbol_id: 0xc1ba0eb6 symbol_id: 0x13c17b96 + symbol_id: 0x88b6e481 symbol_id: 0xebcd0234 symbol_id: 0xa3af7947 symbol_id: 0x86527a4e symbol_id: 0xf71b3e6c + symbol_id: 0xc9756e19 symbol_id: 0xd0b4a794 symbol_id: 0x33f9278c symbol_id: 0x2e343246 @@ -396650,6 +397161,7 @@ interface { symbol_id: 0x9e91661b symbol_id: 0xc189c2a7 symbol_id: 0x5ecff02f + symbol_id: 0x812c6920 symbol_id: 0xe3ce1f52 symbol_id: 0x4d354aab symbol_id: 0x3272ce60 @@ -396680,6 +397192,7 @@ interface { symbol_id: 0xf83fbd26 symbol_id: 0xe261e8cc symbol_id: 0x18fde973 + symbol_id: 0x0992491b symbol_id: 0xe19d2bf8 symbol_id: 0x993f42ff symbol_id: 0xfb6a92a8 @@ -396699,6 +397212,8 @@ interface { symbol_id: 0x22de652b symbol_id: 0xf928bf8a symbol_id: 0xe44dacb1 + symbol_id: 0x0c9da1aa + symbol_id: 0xc168df93 symbol_id: 0x5612c9d1 symbol_id: 0xa77effd1 symbol_id: 0xb7624cbd @@ -396721,6 +397236,7 @@ interface { symbol_id: 0x574e7b58 symbol_id: 0xf2c39651 symbol_id: 0x93303c51 + symbol_id: 0x3a545b61 symbol_id: 0x7d069e91 symbol_id: 0x0fa39b81 symbol_id: 0x1a91ec8c @@ -396729,6 +397245,7 @@ interface { symbol_id: 0xe2d75052 symbol_id: 0xf10ce16f symbol_id: 0xa8cef421 + symbol_id: 0xd6100bd9 symbol_id: 0x8d62858f symbol_id: 0xcef5d79f symbol_id: 0x91384eff @@ -396754,8 +397271,10 @@ interface { symbol_id: 0xb5ed74f6 symbol_id: 0xedb34a44 symbol_id: 0xb841c45e + symbol_id: 0xe4ec133d symbol_id: 0xaa3f6a65 symbol_id: 0xa2fe718f + symbol_id: 0x53263f73 symbol_id: 0xe828d15b symbol_id: 0x4d31a413 symbol_id: 0xe7f6f975 @@ -396766,6 +397285,7 @@ interface { symbol_id: 0x69c3749b symbol_id: 0x3d0fc76c symbol_id: 0x8f7ad177 + symbol_id: 0x0562cb47 symbol_id: 0x08f4cbb0 symbol_id: 0x58e7556b symbol_id: 0x2ecf85e9 @@ -396779,6 +397299,7 @@ interface { symbol_id: 0x2bc25325 symbol_id: 0x0119fc41 symbol_id: 0xd9f43028 + symbol_id: 0xc0482ac3 symbol_id: 0x39155e73 symbol_id: 0x3947ecb4 symbol_id: 0x8a773cc3 @@ -396799,6 +397320,7 @@ interface { symbol_id: 0x810f6abf symbol_id: 0xcc8dcd0c symbol_id: 0xcb4d15f3 + symbol_id: 0x46e1dbde symbol_id: 0x6a8145ff symbol_id: 0x08824ed3 symbol_id: 0xcbec9d66 @@ -396860,6 +397382,8 @@ interface { symbol_id: 0xf574f9d9 symbol_id: 0x8fa66546 symbol_id: 0x20097074 + symbol_id: 0x62a42e92 + symbol_id: 0xa7ccbbf5 symbol_id: 0x863777a0 symbol_id: 0xcac5a7d5 symbol_id: 0x2dc83a86 @@ -396992,10 +397516,12 @@ interface { symbol_id: 0xaa2da792 symbol_id: 0x0e614ab0 symbol_id: 0xa68c0f10 + symbol_id: 0xabb656f7 symbol_id: 0xdcf22716 symbol_id: 0x4f980315 symbol_id: 0xe1489e0c symbol_id: 0x8f23a62a + symbol_id: 0xf3cd7eeb symbol_id: 0xd7f9868e symbol_id: 0x37776872 symbol_id: 0xfc735654 @@ -397073,6 +397599,7 @@ interface { symbol_id: 0x901d0e89 symbol_id: 0x04a824b5 symbol_id: 0xe6918e09 + symbol_id: 0x4ce6de1a symbol_id: 0x4d4fd1cc symbol_id: 0x888dea6d symbol_id: 0xace80c56 @@ -397103,6 +397630,7 @@ interface { symbol_id: 0xafbca760 symbol_id: 0xa48390ca symbol_id: 0x586a06d1 + symbol_id: 0x8bd577fd symbol_id: 0xda2d53f2 symbol_id: 0x50a5a949 symbol_id: 0xcb34ca12 @@ -397122,6 +397650,8 @@ interface { symbol_id: 0xa3d5f70d symbol_id: 0x72c79d80 symbol_id: 0xb6da564f + symbol_id: 0x1daf6454 + symbol_id: 0x3c1c2029 symbol_id: 0x41c8d09b symbol_id: 0xe2ad11db symbol_id: 0xcac93aff @@ -397144,6 +397674,7 @@ interface { symbol_id: 0x61f8c8ae symbol_id: 0x0e92ee53 symbol_id: 0xb0c197a3 + symbol_id: 0x811d5fab symbol_id: 0x761f292f symbol_id: 0xef7ad117 symbol_id: 0x158c4cfa @@ -397152,6 +397683,7 @@ interface { symbol_id: 0x13b2fb38 symbol_id: 0xd6904c6d symbol_id: 0xcad24ea3 + symbol_id: 0xfebada43 symbol_id: 0x04365139 symbol_id: 0xd94bc301 symbol_id: 0x3fc5ffc9 @@ -397177,8 +397709,10 @@ interface { symbol_id: 0x931fa088 symbol_id: 0xaaf6a826 symbol_id: 0xff2bccb8 + symbol_id: 0xcfab6e83 symbol_id: 0xd7ceb15f symbol_id: 0x923147c1 + symbol_id: 0xd860c719 symbol_id: 0x5b6bc3a9 symbol_id: 0x823654f5 symbol_id: 0x42ad45a3 @@ -397189,6 +397723,7 @@ interface { symbol_id: 0xc8a7ac69 symbol_id: 0x5ef059ce symbol_id: 0x3204c8e5 + symbol_id: 0x4a999b29 symbol_id: 0x547e3912 symbol_id: 0x39e68fed symbol_id: 0xefb9e5a3 @@ -397202,6 +397737,7 @@ interface { symbol_id: 0xd9d2bcff symbol_id: 0x09ba106b symbol_id: 0xf9580976 + symbol_id: 0x0f6579e9 symbol_id: 0x49b955bd symbol_id: 0xfe6b6962 symbol_id: 0x18e67da1 @@ -397222,6 +397758,7 @@ interface { symbol_id: 0xb7ba0c6d symbol_id: 0xaf7a4dba symbol_id: 0x743ea36d + symbol_id: 0xd309f564 symbol_id: 0xc09d36c9 symbol_id: 0xe100c3ad symbol_id: 0x55476a7c @@ -397283,6 +397820,8 @@ interface { symbol_id: 0xf586b3bb symbol_id: 0x97e630b0 symbol_id: 0xa70e8cd2 + symbol_id: 0x9a65f074 + symbol_id: 0x158cc323 symbol_id: 0x5b327cd6 symbol_id: 0xe91cdbb3 symbol_id: 0x4f1ffabc @@ -397392,6 +397931,7 @@ interface { symbol_id: 0xdee25d92 symbol_id: 0xe251c99f symbol_id: 0xac3dec68 + symbol_id: 0x717596ae symbol_id: 0xf9bb4624 symbol_id: 0x60b70858 symbol_id: 0x7f488498 @@ -398062,6 +398602,7 @@ interface { symbol_id: 0x823aeba5 symbol_id: 0xde96cb2f symbol_id: 0x4c090f07 + symbol_id: 0xedff0bea symbol_id: 0x171eca8a symbol_id: 0x82537a82 symbol_id: 0x79187969 @@ -398440,6 +398981,7 @@ interface { symbol_id: 0x09b1d689 symbol_id: 0x7c6f39ac symbol_id: 0xadafc9a7 + symbol_id: 0x502d0b80 symbol_id: 0x3c0cefc0 symbol_id: 0x7775cca4 symbol_id: 0xed639cd9 @@ -399397,7 +399939,9 @@ interface { symbol_id: 0x0ac85cf7 symbol_id: 0x853a2529 symbol_id: 0x236d47d9 + symbol_id: 0x6a8a4883 symbol_id: 0x4909936e + symbol_id: 0x474c6d6a symbol_id: 0xce04fca2 symbol_id: 0x4ba4e06f symbol_id: 0xbac82e84 @@ -401785,6 +402329,7 @@ interface { symbol_id: 0x3c71822d symbol_id: 0x6e10178a symbol_id: 0x5d6a93ff + symbol_id: 0x98b882af symbol_id: 0x2bb7ad6a symbol_id: 0x4bb58367 symbol_id: 0x63762e51 @@ -401853,6 +402398,7 @@ interface { symbol_id: 0xaba9754d symbol_id: 0x6a9fad39 symbol_id: 0x99c66454 + symbol_id: 0x3878f32b symbol_id: 0xfc18945f symbol_id: 0xcbc81720 symbol_id: 0xda8bd5f1 @@ -402402,6 +402948,7 @@ interface { symbol_id: 0xf4017fdd symbol_id: 0x2d1f2cdd symbol_id: 0xdfc3c1f5 + symbol_id: 0xab314de1 symbol_id: 0x4da66281 symbol_id: 0x8c0c76a2 symbol_id: 0x91df6de8 @@ -402437,7 +402984,9 @@ interface { symbol_id: 0xf7dfdad1 symbol_id: 0x47d78ddb symbol_id: 0x961122f4 + symbol_id: 0xe2481840 symbol_id: 0x86b2ecdf + symbol_id: 0xa274099f symbol_id: 0x00fb9c6d symbol_id: 0x0e209244 symbol_id: 0xe8ad61b2 diff --git a/android/abi_gki_aarch64_exynosauto b/android/abi_gki_aarch64_exynosauto index 2854f95356e9..018959e96b2b 100644 --- a/android/abi_gki_aarch64_exynosauto +++ b/android/abi_gki_aarch64_exynosauto @@ -1,5 +1,6 @@ [abi_symbol_list] # commonly used symbols + add_wait_queue __alloc_pages __alloc_percpu alloc_workqueue @@ -17,6 +18,7 @@ __bitmap_weight blocking_notifier_call_chain blocking_notifier_chain_register + blocking_notifier_chain_unregister bpf_trace_run1 bpf_trace_run2 bpf_trace_run3 @@ -42,6 +44,7 @@ clk_register_fixed_rate clk_set_rate clk_unprepare + clk_unregister cma_alloc cma_release complete @@ -55,11 +58,13 @@ cpu_pm_register_notifier __cpu_possible_mask crc32_le + current_work debugfs_create_dir debugfs_create_file debugfs_create_u32 debugfs_remove default_llseek + default_wake_function delayed_work_timer_fn del_timer del_timer_sync @@ -89,6 +94,8 @@ devm_clk_get devm_free_irq devm_gen_pool_create + devm_gpiod_get + devm_gpiod_get_optional devm_gpio_request_one devm_i2c_new_dummy_device devm_ioremap @@ -99,13 +106,20 @@ devm_kmemdup devm_kstrdup devm_mfd_add_devices + devm_mipi_dsi_attach + devm_mipi_dsi_device_register_full + __devm_of_phy_provider_register + devm_phy_create + devm_phy_get devm_pinctrl_get devm_platform_ioremap_resource devm_platform_ioremap_resource_byname __devm_regmap_init_i2c + devm_regulator_bulk_get devm_regulator_register devm_request_threaded_irq __devm_reset_control_get + devm_rtc_device_register devm_snd_soc_register_card devm_snd_soc_register_component devm_thermal_of_zone_register @@ -116,14 +130,19 @@ _dev_warn disable_irq disable_irq_nosync + display_timings_release dma_alloc_attrs dma_buf_attach + dma_buf_begin_cpu_access dma_buf_detach + dma_buf_end_cpu_access dma_buf_export dma_buf_get dma_buf_map_attachment dma_buf_put dma_buf_unmap_attachment + dma_buf_vmap + dma_buf_vunmap dma_fence_add_callback dma_fence_context_alloc dma_fence_init @@ -151,33 +170,98 @@ dma_unmap_page_attrs dma_unmap_resource dma_unmap_sg_attrs + down_interruptible down_write + drm_add_edid_modes + drm_atomic_helper_bridge_destroy_state + drm_atomic_helper_bridge_duplicate_state + drm_atomic_helper_bridge_reset + drm_atomic_helper_connector_destroy_state + drm_atomic_helper_connector_duplicate_state + drm_atomic_helper_connector_reset + drm_bridge_add + drm_bridge_remove + drm_compat_ioctl + drm_connector_attach_encoder + drm_connector_cleanup + drm_connector_init + drm_connector_list_iter_begin + drm_connector_list_iter_end + drm_connector_list_iter_next + drm_connector_register drm_connector_unregister + drm_connector_update_edid_property + drm_crtc_add_crc_entry + drm_crtc_cleanup + __drm_crtc_commit_free + drm_crtc_send_vblank_event + drm_crtc_vblank_count + drm_crtc_vblank_off + drm_crtc_vblank_on + drm_crtc_vblank_put ___drm_dbg + drm_debugfs_create_files + drm_detect_hdmi_monitor __drm_dev_dbg drm_dev_printk + drm_dev_put + drm_dev_register + drm_dev_unregister + drm_display_mode_from_videomode + drm_do_get_edid + drm_encoder_cleanup + drm_encoder_init __drm_err + drm_framebuffer_cleanup + drm_framebuffer_init + drm_gem_handle_create + drm_gem_mmap drm_gem_object_free drm_gem_object_lookup + drm_gem_object_release + drm_gem_prime_fd_to_handle + drm_gem_prime_handle_to_fd + drm_gem_private_object_init drm_get_edid + drm_helper_connector_dpms + drm_helper_hpd_irq_event + drm_helper_mode_fill_fb_struct + drm_helper_probe_single_connector_modes + drm_ioctl + drm_kms_helper_hotplug_event + drm_kms_helper_poll_fini + drm_kms_helper_poll_init + drmm_mode_config_init + drm_mode_config_cleanup + drm_mode_copy + drm_mode_create + drm_mode_duplicate + drm_mode_object_put + drm_mode_probed_add drm_modeset_lock drm_modeset_unlock + drm_mode_vrefresh + drm_object_attach_property + drm_open + drm_poll + drm_prime_gem_destroy drm_printf + drm_property_create_range + drm_read + drm_release + drm_vblank_init dump_stack - dw_pcie_ep_init dw_pcie_host_init dw_pcie_own_conf_map_bus dw_pcie_read - dw_pcie_read_dbi dw_pcie_setup_rc dw_pcie_write - dw_pcie_write_dbi enable_irq fd_install _find_first_bit - _find_first_zero_bit _find_next_bit finish_wait + flush_delayed_work flush_work __flush_workqueue fortify_panic @@ -185,6 +269,7 @@ free_irq __free_pages fwnode_handle_put + gcd generic_file_llseek generic_handle_irq gen_pool_add_owner @@ -200,6 +285,7 @@ gpiod_direction_output_raw gpiod_get_raw_value gpiod_set_raw_value + gpiod_set_value_cansleep gpio_request_one gpio_to_desc handle_edge_irq @@ -216,15 +302,14 @@ i2c_unregister_device ida_alloc_range ida_free + __init_rwsem __init_swait_queue_head init_timer_key init_wait_entry __init_waitqueue_head iomem_resource iommu_get_domain_for_dev - iommu_map iommu_register_device_fault_handler - iommu_unmap iommu_unregister_device_fault_handler ioremap_prot iounmap @@ -251,6 +336,8 @@ jiffies jiffies_to_msecs kasan_flag_enabled + kasprintf + kernel_kobj kfree kimage_voffset __kmalloc @@ -262,12 +349,17 @@ kmem_cache_destroy kmem_cache_free kmemdup + kobject_create_and_add + kobject_init_and_add + kobject_put krealloc kstrdup + kstrtobool kstrtoint kstrtoll kstrtouint kstrtoull + kthread_complete_and_exit kthread_create_on_node kthread_park kthread_parkme @@ -287,14 +379,26 @@ log_read_mmio log_write_mmio loops_per_jiffy + mdiobus_alloc_size + mdiobus_free + mdiobus_get_phy mdiobus_read + mdiobus_unregister mdiobus_write memcpy memdup_user mem_section memset memstart_addr + mipi_dsi_attach + mipi_dsi_detach + mipi_dsi_device_register_full + mipi_dsi_device_unregister + mipi_dsi_driver_register_full + mipi_dsi_driver_unregister + misc_deregister misc_register + mod_delayed_work_on mod_timer module_layout __msecs_to_jiffies @@ -308,6 +412,8 @@ netdev_err netdev_info netdev_warn + netif_carrier_off + nonseekable_open noop_llseek nr_cpu_ids ns_to_timespec64 @@ -315,24 +421,32 @@ of_address_to_resource of_alias_get_id of_clk_add_provider + of_clk_del_provider of_clk_get of_clk_src_onecell_get + of_count_phandle_with_args of_device_get_match_data of_device_is_available of_device_is_compatible of_find_compatible_node of_find_device_by_node of_find_matching_node_and_match + of_find_mipi_dsi_host_by_node of_find_node_by_name + of_find_node_opts_by_path of_find_property of_get_child_by_name + of_get_display_timings of_get_named_gpio_flags of_get_next_child of_get_property of_get_regulator_init_data + of_graph_get_remote_node + of_graph_parse_endpoint of_iomap of_match_device of_match_node + __of_mdiobus_register of_n_addr_cells of_n_size_cells __of_parse_phandle_with_args @@ -356,45 +470,37 @@ param_ops_int param_ops_string param_ops_uint - pci_alloc_irq_vectors_affinity - pci_clear_master - pci_disable_device - pci_disable_msi pcie_get_mps - pci_enable_device - pci_epc_mem_alloc_addr - pci_epc_mem_free_addr - pci_epc_set_bar - pci_epc_unmap_addr pcie_set_mps pci_find_bus pci_generic_config_read pci_generic_config_write pci_get_device - pci_ioremap_wc_bar pci_load_saved_state pci_msi_create_irq_domain pci_msi_mask_irq pci_msi_unmask_irq - pci_num_vf - __pci_register_driver - pci_request_regions pci_rescan_bus pci_restore_state pci_save_state - pci_set_master pci_store_saved_state - pci_unregister_driver __per_cpu_offset perf_trace_buf_alloc perf_trace_run_bpf_submit + phy_attached_info phy_init_eee phylink_create phylink_generic_validate + phy_power_off + phy_power_on pinctrl_lookup_state pinctrl_select_state + platform_device_register_full + platform_device_unregister + __platform_driver_probe __platform_driver_register platform_driver_unregister + platform_find_device_by_driver platform_get_irq platform_get_irq_byname platform_get_irq_byname_optional @@ -418,6 +524,7 @@ prepare_to_wait_event print_hex_dump _printk + proc_create_data put_device __put_task_struct put_unused_fd @@ -427,9 +534,11 @@ _raw_read_lock_irqsave _raw_read_unlock_irqrestore _raw_spin_lock + _raw_spin_lock_irq _raw_spin_lock_irqsave _raw_spin_trylock _raw_spin_unlock + _raw_spin_unlock_irq _raw_spin_unlock_irqrestore _raw_write_lock_irqsave _raw_write_unlock_irqrestore @@ -437,19 +546,26 @@ rdev_get_drvdata rdev_get_id refcount_warn_saturate + regcache_mark_dirty + regcache_sync __register_chrdev register_console register_pm_notifier + register_restart_handler register_syscore_ops regmap_read regmap_update_bits_base regmap_write + regulator_bulk_disable + regulator_bulk_enable regulator_disable regulator_enable regulator_list_voltage_linear regulator_map_voltage_linear release_firmware __release_region + remove_proc_entry + remove_wait_queue request_firmware __request_region request_threaded_irq @@ -461,6 +577,7 @@ scnprintf seq_lseek seq_printf + seq_putc seq_puts seq_read sg_alloc_table @@ -473,6 +590,7 @@ simple_attr_write simple_open simple_read_from_buffer + simple_strtoul simple_write_to_buffer single_open single_release @@ -484,6 +602,7 @@ snd_soc_dai_set_fmt snd_soc_dai_set_tdm_slot snd_soc_dai_set_tristate + snd_soc_dapm_add_routes snd_soc_dapm_get_enum_double snd_soc_dapm_put_enum_double snd_soc_get_volsw @@ -501,6 +620,7 @@ sscanf __stack_chk_fail strcasecmp + strchr strcmp strcpy strlcat @@ -532,6 +652,7 @@ ttm_bo_mmap_obj __udelay __unregister_chrdev + up up_write __usecs_to_jiffies usleep_range_state @@ -550,10 +671,12 @@ video_device_alloc video_device_release video_ioctl2 + videomode_from_timings __video_register_device video_unregister_device vmalloc vmap + vsnprintf vunmap wait_for_completion wait_for_completion_interruptible_timeout @@ -564,10 +687,25 @@ ww_mutex_lock ww_mutex_unlock +# required by adv7511.ko + cec_allocate_adapter + cec_delete_adapter + cec_received_msg_ts + cec_register_adapter + cec_s_phys_addr + cec_s_phys_addr_from_edid + cec_transmit_attempt_done_ts + cec_transmit_done_ts + cec_unregister_adapter + drm_bridge_hpd_notify + hdmi_avi_infoframe_init + hdmi_avi_infoframe_pack + i2c_new_ancillary_device + regmap_bulk_write + regmap_register_patch + # required by cmupmucal.ko debugfs_create_x32 - kernel_kobj - kobject_create_and_add of_find_node_by_type # required by dmatest.ko @@ -598,9 +736,6 @@ __drm_atomic_helper_private_obj_duplicate_state drm_atomic_private_obj_fini drm_atomic_private_obj_init - drm_connector_register - drm_crtc_add_crc_entry - __drm_crtc_commit_free drm_crtc_commit_wait drm_crtc_wait_one_vblank __drm_debug @@ -608,8 +743,6 @@ drm_display_mode_from_cea_vic drm_edid_duplicate drm_edid_get_monitor_name - drm_kms_helper_hotplug_event - drm_mode_object_put drm_modeset_lock_single_interruptible drm_object_property_set_value __drm_printfn_debug @@ -637,10 +770,8 @@ kmsg_dump_rewind kstat nr_irqs - of_count_phandle_with_args proc_create register_die_notifier - register_restart_handler return_address rtc_time64_to_tm sys_tz @@ -690,23 +821,18 @@ tty_std_termios tty_unregister_driver unregister_console - vsnprintf vzalloc # required by dwc3-exynosauto-usb.ko device_create_managed_software_node - devm_phy_get devm_regulator_get phy_exit phy_init - phy_power_off - phy_power_on platform_device_add platform_device_add_resources platform_device_alloc platform_device_del platform_device_put - platform_device_unregister __pm_relax pm_runtime_allow __pm_stay_awake @@ -744,12 +870,7 @@ sysfs_create_file_ns system_state -# required by exynos-adv-tracer-s2d.ko - simple_strtoul - # required by exynos-chipid_v2.ko - kasprintf - of_find_node_opts_by_path soc_device_register subsys_system_register @@ -778,15 +899,115 @@ pm_genpd_add_subdomain pm_genpd_init +# required by exynos9drm.ko + bus_find_device + component_add + component_bind_all + component_del + component_master_add_with_match + component_master_del + component_unbind_all + console_trylock + console_unlock + debugfs_lookup + device_rename + dma_buf_mmap + drm_atomic_bridge_chain_enable + drm_atomic_bridge_chain_pre_enable + drm_atomic_helper_check + drm_atomic_helper_cleanup_planes + drm_atomic_helper_commit + drm_atomic_helper_commit_modeset_disables + drm_atomic_helper_commit_planes + __drm_atomic_helper_connector_destroy_state + __drm_atomic_helper_connector_duplicate_state + drm_atomic_helper_crtc_destroy_state + drm_atomic_helper_crtc_duplicate_state + drm_atomic_helper_crtc_reset + drm_atomic_helper_disable_plane + drm_atomic_helper_disable_planes_on_crtc + drm_atomic_helper_fake_vblank + drm_atomic_helper_page_flip + __drm_atomic_helper_plane_destroy_state + __drm_atomic_helper_plane_duplicate_state + __drm_atomic_helper_plane_reset + drm_atomic_helper_set_config + drm_atomic_helper_shutdown + drm_atomic_helper_update_plane + drm_atomic_helper_wait_for_vblanks + drm_bridge_attach + drm_crtc_arm_vblank_event + drm_crtc_handle_vblank + drm_crtc_init_with_planes + drm_crtc_vblank_get + drm_crtc_vblank_waitqueue + drm_dev_alloc + drm_display_mode_to_videomode + drm_flip_work_cleanup + drm_flip_work_commit + drm_flip_work_init + drm_flip_work_queue + drm_format_info + drm_gem_create_mmap_offset + drm_gem_vm_close + drm_gem_vm_open + drm_get_connector_status_name + drm_get_format_info + drm_mode_config_helper_resume + drm_mode_config_helper_suspend + drm_mode_config_reset + drm_mode_object_get + drm_of_component_match_add + drm_of_crtc_port_mask + drm_of_find_possible_crtcs + drm_panel_disable + drm_panel_enable + drm_panel_get_modes + drm_panel_prepare + drm_panel_unprepare + drm_plane_cleanup + drm_plane_create_alpha_property + drm_plane_create_blend_mode_property + drm_plane_create_zpos_immutable_property + drm_plane_create_zpos_property + __drm_printfn_info + drm_property_create + drm_property_create_blob + drm_rotation_simplify + drm_state_dump + drm_universal_plane_init + drm_writeback_connector_init + drm_writeback_queue_job + drm_writeback_signal_completion + gpiod_to_irq + kstrtou8 + mipi_dsi_host_register + mipi_dsi_host_unregister + of_drm_find_bridge + of_drm_find_panel + of_find_i2c_device_by_node + of_graph_get_endpoint_by_regs + of_graph_get_next_endpoint + of_graph_get_port_by_id + of_graph_get_remote_port + of_graph_get_remote_port_parent + of_phandle_iterator_init + of_phandle_iterator_next + param_ops_long + platform_bus_type + seq_hex_dump + seq_release + strnstr + synchronize_irq + vmalloc_to_page + # required by exynos_mfc.ko clk_get clk_put - dma_buf_begin_cpu_access - dma_buf_end_cpu_access - dma_buf_vmap - dma_buf_vunmap hex_dump_to_buffer + iommu_map iommu_map_sg + iommu_unmap __sw_hweight64 _totalram_pages vb2_dqbuf @@ -800,7 +1021,6 @@ vb2_streamon # required by exynos_pm_qos.ko - blocking_notifier_chain_unregister kstrtoint_from_user # required by exynos_tty.ko @@ -831,7 +1051,6 @@ of_thermal_get_ntrips # required by gpu-sched.ko - mod_delayed_work_on sched_set_fifo_low __xa_alloc xa_destroy @@ -876,12 +1095,19 @@ # required by i2c-exynosauto.ko cpu_bit_bitmap +# required by lontium-lt9611.ko + drm_hdmi_avi_infoframe_from_display_mode + regmap_multi_reg_write + regulator_set_load + +# required by panel-samsung-dummy.ko + drm_panel_add + drm_panel_init + drm_panel_remove + # required by panic-fingerprint.ko stack_trace_save -# required by pcie-exynos-dw-ep.ko - pci_epc_map_addr - # required by pcs_xpcs.ko mdiobus_modify_changed phylink_mii_c22_pcs_decode_state @@ -889,8 +1115,6 @@ # required by phy-exynosauto-usbdrd-super.ko __clk_is_enabled - __devm_of_phy_provider_register - devm_phy_create gpio_request # required by pinctrl-samsung-core.ko @@ -961,7 +1185,6 @@ phy_write_paged # required by rtc-s2vps02.ko - devm_rtc_device_register pm_wakeup_ws_event rtc_update_irq rtc_valid_tm @@ -970,6 +1193,9 @@ __devm_irq_alloc_descs handle_nested_irq +# required by samsung-bridge-dummy.ko + drm_atomic_helper_bridge_propagate_bus_fmt + # required by samsung-iommu-group-v9.ko iommu_group_alloc iommu_group_set_name @@ -996,7 +1222,6 @@ dma_sync_sg_for_cpu is_dma_buf_file iterate_fd - misc_deregister remap_pfn_range __sg_page_iter_next __sg_page_iter_start @@ -1063,8 +1288,12 @@ bpf_trace_run5 bpf_trace_run9 capable + devfreq_recommended_opp __devm_drm_dev_alloc devm_iounmap + dev_pm_opp_get_voltage + dev_pm_opp_put + dev_pm_qos_update_request dma_buf_dynamic_attach dma_buf_move_notify dma_buf_pin @@ -1089,41 +1318,17 @@ down_read_killable down_read_trylock drain_workqueue - drm_add_edid_modes - drm_compat_ioctl drm_connector_attach_dp_subconnector_property - drm_connector_attach_encoder - drm_connector_cleanup - drm_connector_init drm_connector_init_with_ddc - drm_connector_list_iter_begin - drm_connector_list_iter_end - drm_connector_list_iter_next - drm_connector_update_edid_property - drm_crtc_cleanup drm_crtc_helper_set_config drm_crtc_helper_set_mode drm_crtc_init - drm_crtc_send_vblank_event - drm_crtc_vblank_count drm_crtc_vblank_helper_get_vblank_timestamp - drm_crtc_vblank_off - drm_crtc_vblank_on - drm_crtc_vblank_put drm_cvt_mode - drm_debugfs_create_files - drm_detect_hdmi_monitor drm_dev_enter drm_dev_exit - drm_dev_put - drm_dev_register - drm_dev_unregister drm_edid_header_is_valid drm_edid_is_valid - drm_encoder_cleanup - drm_encoder_init - drm_framebuffer_cleanup - drm_framebuffer_init drm_framebuffer_unregister_private drm_gem_dmabuf_mmap drm_gem_dmabuf_release @@ -1131,54 +1336,29 @@ drm_gem_dmabuf_vunmap drm_gem_fb_create_handle drm_gem_fb_destroy - drm_gem_handle_create - drm_gem_mmap - drm_gem_object_release drm_gem_prime_export - drm_gem_prime_fd_to_handle - drm_gem_prime_handle_to_fd drm_gem_prime_mmap - drm_gem_private_object_init drm_handle_vblank - drm_helper_connector_dpms drm_helper_disable_unused_functions drm_helper_force_disable_all - drm_helper_hpd_irq_event - drm_helper_mode_fill_fb_struct - drm_helper_probe_single_connector_modes - drm_ioctl drm_is_current_master drm_kms_helper_is_poll_worker drm_kms_helper_poll_disable drm_kms_helper_poll_enable - drm_kms_helper_poll_fini - drm_kms_helper_poll_init drm_mm_init drm_mm_insert_node_in_range - drmm_mode_config_init drm_mm_print drm_mm_remove_node drm_mm_takedown - drm_mode_config_cleanup drm_mode_create_scaling_mode_property drm_mode_crtc_set_gamma_size - drm_mode_duplicate - drm_mode_probed_add drm_mode_set_crtcinfo drm_mode_set_name - drm_mode_vrefresh - drm_object_attach_property - drm_open - drm_poll - drm_prime_gem_destroy drm_prime_pages_to_sg drm_prime_sg_to_dma_addr_array __drm_printfn_seq_file drm_property_create_enum - drm_property_create_range __drm_puts_seq_file - drm_read - drm_release drm_syncobj_add_point drm_syncobj_create drm_syncobj_find @@ -1187,11 +1367,10 @@ drm_syncobj_get_fd drm_syncobj_get_handle drm_syncobj_replace_fence - drm_vblank_init __fdget - flush_delayed_work + _find_first_zero_bit __folio_put - gcd + get_random_u32 __get_task_comm handle_simple_irq i2c_bit_add_bus @@ -1204,8 +1383,8 @@ idr_get_next idr_remove idr_replace - __init_rwsem iommu_iova_to_phys + jiffies64_to_msecs jiffies_to_usecs ktime_get_ts64 __memcpy_fromio @@ -1218,8 +1397,11 @@ __page_pinner_put_page param_ops_charp param_ops_hexint + pci_alloc_irq_vectors_affinity pci_assign_unassigned_bus_resources pci_bus_resource_n + pci_bus_type + pci_clear_master pcie_bandwidth_available pcie_get_speed_cap pci_enable_atomic_ops_to_root @@ -1234,6 +1416,7 @@ pci_read_config_word pci_release_resource pci_resize_resource + pci_set_master pci_unmap_rom pci_write_config_dword pci_write_config_word @@ -1251,12 +1434,10 @@ rb_next_postorder __rcu_read_lock __rcu_read_unlock - seq_putc seq_write set_normalized_timespec64 sg_alloc_table_from_pages_segment si_meminfo - strchr sysfs_create_files sysfs_remove_files __traceiter_gpu_mem_total @@ -1309,6 +1490,17 @@ ww_mutex_lock_interruptible ww_mutex_trylock +# required by snd-soc-hdmi-codec.ko + hdmi_audio_infoframe_init + snd_ctl_add + snd_ctl_new1 + snd_pcm_add_chmap_ctls + snd_pcm_create_iec958_consumer_default + snd_pcm_fill_iec958_consumer + snd_pcm_fill_iec958_consumer_hw_params + snd_pcm_hw_constraint_eld + snd_soc_jack_report + # required by snd-soc-samsung-abox-core.ko __devm_regmap_init __devm_regmap_init_mmio_clk @@ -1328,7 +1520,6 @@ snd_pcm_period_elapsed snd_soc_add_component_controls snd_soc_component_init_regmap - snd_soc_dapm_add_routes snd_soc_dapm_kcontrol_widget snd_soc_dapm_mux_update_power snd_soc_dapm_new_control @@ -1339,14 +1530,7 @@ __tasklet_hi_schedule # required by snd-soc-tas6424.ko - devm_gpiod_get_optional - devm_regulator_bulk_get - gpiod_set_value_cansleep regcache_cache_only - regcache_mark_dirty - regcache_sync - regulator_bulk_disable - regulator_bulk_enable # required by snd-soc-tlv320adcx140.ko device_property_read_u8_array @@ -1367,8 +1551,6 @@ # required by spidev.ko device_property_match_string driver_unregister - _raw_spin_lock_irq - _raw_spin_unlock_irq __spi_register_driver spi_setup spi_sync @@ -1413,10 +1595,6 @@ fwnode_get_phy_node get_device_system_crosststamp __local_bh_enable_ip - mdiobus_alloc_size - mdiobus_free - mdiobus_get_phy - mdiobus_unregister mdio_device_create mdio_device_free __napi_alloc_skb @@ -1430,7 +1608,6 @@ netdev_pick_tx netdev_rss_key_fill netdev_update_features - netif_carrier_off netif_carrier_on netif_device_attach netif_device_detach @@ -1441,13 +1618,11 @@ netif_set_real_num_tx_queues netif_tx_wake_queue net_ratelimit - __of_mdiobus_register page_pool_alloc_pages page_pool_create page_pool_destroy page_pool_put_defragged_page page_pool_release_page - phy_attached_info phylink_connect_phy phylink_destroy phylink_disconnect_phy @@ -1525,7 +1700,6 @@ # required by sxgmac.ko alloc_chrdev_region cdev_add - devm_gpiod_get gpiod_direction_output gpiod_set_value @@ -1545,166 +1719,68 @@ ufshcd_system_resume ufshcd_system_suspend +# required by vbufq-fe-module.ko + kstrndup + +# required by vdriver-lib-module.ko + kobject_get + kset_create_and_add + +# required by vi2c-fe-module.ko + down + +# required by vlx-clk-ctrl-common-module.ko + vscnprintf + +# required by vlx-hyp-module.ko + irq_create_of_mapping + irq_dispose_mapping + irq_find_matching_fwspec + of_irq_find_parent + pfn_is_map_memory + pm_power_off + proc_mkdir + +# required by vlx-last-kmsg-module.ko + proc_set_size + +# required by vlx-prop-module.ko + kobject_uevent + kset_unregister + sysfs_create_bin_file + sysfs_remove_bin_file + +# required by vlx-vipc-module.ko + sigprocmask + +# required by vthermal-fe-module.ko + thermal_of_zone_register + thermal_of_zone_unregister + +# required by vvideo2-fe-module.ko + dma_buf_fd + __task_pid_nr_ns + vprintk + +# required by vwatchdog-module.ko + watchdog_register_device + watchdog_unregister_device + # preserved by --additions-only - add_wait_queue - bus_find_device - cec_allocate_adapter - cec_delete_adapter - cec_received_msg_ts - cec_register_adapter - cec_s_phys_addr - cec_s_phys_addr_from_edid - cec_transmit_attempt_done_ts - cec_transmit_done_ts - cec_unregister_adapter - component_add - component_bind_all - component_del - component_master_add_with_match - component_master_del - component_unbind_all console_suspend_enabled - console_trylock - console_unlock - debugfs_lookup - device_rename - devm_mipi_dsi_attach - devm_mipi_dsi_device_register_full - display_timings_release - dma_buf_mmap - drm_atomic_bridge_chain_enable - drm_atomic_bridge_chain_pre_enable - drm_atomic_helper_bridge_destroy_state - drm_atomic_helper_bridge_duplicate_state - drm_atomic_helper_bridge_propagate_bus_fmt - drm_atomic_helper_bridge_reset - drm_atomic_helper_check - drm_atomic_helper_cleanup_planes - drm_atomic_helper_commit - drm_atomic_helper_commit_modeset_disables - drm_atomic_helper_commit_planes - __drm_atomic_helper_connector_destroy_state - drm_atomic_helper_connector_destroy_state - __drm_atomic_helper_connector_duplicate_state - drm_atomic_helper_connector_duplicate_state - drm_atomic_helper_connector_reset - drm_atomic_helper_crtc_destroy_state - drm_atomic_helper_crtc_duplicate_state - drm_atomic_helper_crtc_reset - drm_atomic_helper_disable_plane - drm_atomic_helper_disable_planes_on_crtc - drm_atomic_helper_fake_vblank - drm_atomic_helper_page_flip - __drm_atomic_helper_plane_destroy_state - __drm_atomic_helper_plane_duplicate_state - __drm_atomic_helper_plane_reset - drm_atomic_helper_set_config - drm_atomic_helper_shutdown - drm_atomic_helper_update_plane - drm_atomic_helper_wait_for_vblanks - drm_bridge_add - drm_bridge_attach - drm_bridge_hpd_notify - drm_bridge_remove - drm_crtc_arm_vblank_event - drm_crtc_handle_vblank - drm_crtc_init_with_planes - drm_crtc_vblank_get - drm_crtc_vblank_waitqueue - drm_dev_alloc - drm_display_mode_from_videomode - drm_display_mode_to_videomode - drm_do_get_edid - drm_flip_work_cleanup - drm_flip_work_commit - drm_flip_work_init - drm_flip_work_queue - drm_format_info - drm_gem_create_mmap_offset - drm_gem_vm_close - drm_gem_vm_open - drm_get_connector_status_name - drm_get_format_info - drm_hdmi_avi_infoframe_from_display_mode - drm_mode_config_helper_resume - drm_mode_config_helper_suspend - drm_mode_config_reset - drm_mode_copy - drm_mode_create - drm_mode_object_get - drm_of_component_match_add - drm_of_crtc_port_mask - drm_of_find_possible_crtcs - drm_panel_add - drm_panel_disable - drm_panel_enable - drm_panel_get_modes - drm_panel_init - drm_panel_prepare - drm_panel_remove - drm_panel_unprepare - drm_plane_cleanup - drm_plane_create_alpha_property - drm_plane_create_blend_mode_property - drm_plane_create_zpos_immutable_property - drm_plane_create_zpos_property - __drm_printfn_info - drm_property_create - drm_property_create_blob - drm_rotation_simplify - drm_state_dump - drm_universal_plane_init - drm_writeback_connector_init - drm_writeback_queue_job - drm_writeback_signal_completion - gpiod_to_irq - hdmi_audio_infoframe_init - hdmi_avi_infoframe_init - hdmi_avi_infoframe_pack - i2c_new_ancillary_device - kstrtobool - kstrtou8 - mipi_dsi_attach - mipi_dsi_detach - mipi_dsi_device_register_full - mipi_dsi_device_unregister - mipi_dsi_driver_register_full - mipi_dsi_driver_unregister - mipi_dsi_host_register - mipi_dsi_host_unregister - of_drm_find_bridge - of_drm_find_panel - of_find_i2c_device_by_node - of_find_mipi_dsi_host_by_node - of_get_display_timings - of_graph_get_endpoint_by_regs - of_graph_get_next_endpoint - of_graph_get_port_by_id - of_graph_get_remote_node - of_graph_get_remote_port - of_graph_get_remote_port_parent - of_graph_parse_endpoint - of_phandle_iterator_init - of_phandle_iterator_next - param_ops_long - platform_bus_type - platform_device_register_full - platform_find_device_by_driver - regmap_bulk_write - regmap_multi_reg_write - regmap_register_patch - regulator_set_load - seq_hex_dump - seq_release - snd_ctl_add - snd_ctl_new1 - snd_pcm_add_chmap_ctls - snd_pcm_create_iec958_consumer_default - snd_pcm_fill_iec958_consumer - snd_pcm_fill_iec958_consumer_hw_params - snd_pcm_hw_constraint_eld - snd_soc_jack_report - strnstr - synchronize_irq - videomode_from_timings - vmalloc_to_page + dw_pcie_ep_init + dw_pcie_read_dbi + dw_pcie_write_dbi + pci_disable_device + pci_disable_msi + pci_enable_device + pci_epc_map_addr + pci_epc_mem_alloc_addr + pci_epc_mem_free_addr + pci_epc_set_bar + pci_epc_unmap_addr + pci_ioremap_wc_bar + pci_num_vf + __pci_register_driver + pci_request_regions + pci_unregister_driver diff --git a/android/abi_gki_aarch64_imx b/android/abi_gki_aarch64_imx index 53edd1d3b5d7..c3797c477a4c 100644 --- a/android/abi_gki_aarch64_imx +++ b/android/abi_gki_aarch64_imx @@ -365,6 +365,7 @@ devm_nvmem_device_get devm_nvmem_register devm_of_clk_add_hw_provider + devm_of_iomap devm_of_phy_get __devm_of_phy_provider_register devm_of_platform_populate @@ -391,6 +392,7 @@ __devm_regmap_init_spi devm_regulator_bulk_get devm_regulator_get + devm_regulator_get_enable_optional devm_regulator_get_exclusive devm_regulator_get_optional devm_regulator_register @@ -1410,6 +1412,7 @@ of_iomap of_irq_find_parent of_irq_get + of_irq_get_byname of_machine_is_compatible of_match_device of_match_node @@ -1719,6 +1722,7 @@ regmap_get_device __regmap_init_mmio_clk regmap_irq_get_virq + regmap_raw_read regmap_raw_write regmap_read regmap_register_patch diff --git a/android/abi_gki_aarch64_mtk b/android/abi_gki_aarch64_mtk index 2dcdd2f1f94c..ad1f5f4cac16 100644 --- a/android/abi_gki_aarch64_mtk +++ b/android/abi_gki_aarch64_mtk @@ -7,6 +7,7 @@ add_uevent_var add_wait_queue add_wait_queue_exclusive + add_wait_queue_priority adjust_managed_page_count aes_encrypt aes_expandkey @@ -62,6 +63,7 @@ bio_init bio_put bio_start_io_acct + bitmap_alloc __bitmap_and __bitmap_andnot __bitmap_clear @@ -220,6 +222,7 @@ cpu_bit_bitmap cpufreq_add_update_util_hook cpufreq_cpu_get + cpufreq_cpu_get_raw cpufreq_cpu_put cpufreq_disable_fast_switch cpufreq_driver_fast_switch @@ -228,6 +231,7 @@ cpufreq_enable_fast_switch cpufreq_generic_attr cpufreq_generic_frequency_table_verify + cpufreq_get_driver_data cpufreq_get_policy cpufreq_policy_transition_delay_us cpufreq_quick_get @@ -239,6 +243,8 @@ cpufreq_unregister_driver cpufreq_unregister_governor cpufreq_update_limits + cpufreq_update_policy + cpufreq_update_util_data cpu_hotplug_disable cpu_hotplug_enable __cpuhp_remove_state @@ -457,6 +463,7 @@ devm_clk_bulk_get_optional devm_clk_get devm_clk_get_optional + devm_clk_get_optional_enabled devm_clk_put devm_clk_register dev_mc_sync @@ -472,6 +479,7 @@ devm_fwnode_pwm_get devm_gpiochip_add_data_with_key devm_gpiod_get + devm_gpiod_get_array devm_gpiod_get_index devm_gpiod_get_optional devm_gpiod_put @@ -516,6 +524,7 @@ devm_platform_ioremap_resource_byname devm_power_supply_get_by_phandle devm_power_supply_register + devm_pwmchip_add devm_rc_allocate_device devm_rc_register_device devm_regmap_add_irq_chip @@ -554,7 +563,10 @@ dev_pm_genpd_add_notifier dev_pm_genpd_set_performance_state dev_pm_opp_add + dev_pm_opp_adjust_voltage dev_pm_opp_clear_config + dev_pm_opp_disable + dev_pm_opp_enable dev_pm_opp_find_freq_ceil dev_pm_opp_find_freq_exact dev_pm_opp_find_freq_floor @@ -586,6 +598,7 @@ dev_set_mtu dev_set_name dev_set_promiscuity + dev_set_threaded dev_uc_add dev_uc_del dev_uc_sync @@ -671,6 +684,7 @@ dma_unmap_page_attrs dma_unmap_resource dma_unmap_sg_attrs + dma_vmap_noncontiguous do_trace_netlink_extack double_rq_lock do_wait_intr_irq @@ -744,6 +758,7 @@ drm_connector_cleanup drm_connector_init drm_connector_register + drm_connector_set_panel_orientation drm_connector_unregister drm_connector_update_edid_property drm_crtc_add_crc_entry @@ -832,6 +847,7 @@ drm_panel_enable drm_panel_get_modes drm_panel_init + drm_panel_of_backlight drm_panel_prepare drm_panel_remove drm_panel_unprepare @@ -894,6 +910,7 @@ file_path filp_close filp_open_block + _find_first_and_bit _find_first_bit _find_first_zero_bit find_get_pid @@ -1012,7 +1029,9 @@ get_user_ifreq get_user_pages get_user_pages_fast + get_user_pages_fast_only get_user_pages_remote + get_user_pages_unlocked get_vaddr_frames get_zeroed_page gfn_to_pfn_memslot @@ -1034,6 +1053,7 @@ gpiod_get_raw_value gpiod_get_value gpiod_get_value_cansleep + gpiod_set_array_value_cansleep gpiod_set_debounce gpiod_set_raw_value gpiod_set_value @@ -1059,7 +1079,10 @@ hex_to_bin hid_add_device hid_allocate_device + hid_debug hid_destroy_device + hid_driver_reset_resume + hid_driver_suspend hid_ignore hid_input_report hid_parse_report @@ -1085,6 +1108,7 @@ i2c_put_adapter i2c_put_dma_safe_msg_buf i2c_register_driver + i2c_smbus_read_byte i2c_smbus_read_byte_data i2c_smbus_read_i2c_block_data i2c_smbus_read_word_data @@ -1236,6 +1260,7 @@ irq_domain_simple_ops irq_domain_xlate_onetwocell irq_domain_xlate_twocell + irq_find_matching_fwspec irq_get_irqchip_state irq_get_irq_data irq_modify_status @@ -1452,6 +1477,7 @@ __memcpy_fromio __memcpy_toio memdup_user + memdup_user_nul memmove memory_read_from_buffer memparse @@ -1466,7 +1492,9 @@ migrate_swap __migrate_task mipi_dsi_attach + mipi_dsi_dcs_enter_sleep_mode mipi_dsi_dcs_read + mipi_dsi_dcs_set_display_off mipi_dsi_dcs_write mipi_dsi_dcs_write_buffer mipi_dsi_detach @@ -1497,6 +1525,8 @@ mmc_hw_reset mmc_of_parse mmc_put_card + mmc_pwrseq_register + mmc_pwrseq_unregister mmc_regulator_get_supply mmc_regulator_set_ocr mmc_regulator_set_vqmmc @@ -1643,6 +1673,7 @@ of_dma_xlate_by_chan_id of_drm_find_bridge of_drm_find_panel + of_drm_get_panel_orientation of_find_backlight_by_node of_find_compatible_node of_find_device_by_node @@ -1907,6 +1938,7 @@ __pm_stay_awake pm_stay_awake pm_suspend_default_s2idle + pm_suspend_target_state pm_system_wakeup pm_wakeup_dev_event pm_wakeup_ws_event @@ -2117,6 +2149,7 @@ reset_control_deassert reset_controller_register reset_control_reset + return_address rhashtable_destroy rhashtable_free_and_destroy rhashtable_init @@ -2250,6 +2283,7 @@ serdev_device_wait_until_sent serdev_device_write_buf serdev_device_write_flush + serial8250_do_pm serial8250_do_set_termios serial8250_do_shutdown serial8250_do_startup @@ -2397,6 +2431,7 @@ snd_soc_rtdcom_lookup snd_soc_set_runtime_hwparams snd_soc_unregister_component + snd_vendor_set_ops snprintf soc_device_register soc_device_unregister @@ -2571,6 +2606,7 @@ topology_update_thermal_pressure _totalram_pages _trace_android_vh_record_pcpu_rwsem_starttime + _trace_android_vh_record_pcpu_rwsem_time_early __trace_bprintk trace_event_buffer_commit trace_event_buffer_reserve @@ -2586,6 +2622,7 @@ __traceiter_android_rvh_commit_creds __traceiter_android_rvh_cpu_cgroup_attach __traceiter_android_rvh_cpu_cgroup_online + __traceiter_android_rvh_cpufreq_transition __traceiter_android_rvh_cpu_overutilized __traceiter_android_rvh_dequeue_task __traceiter_android_rvh_dequeue_task_fair @@ -2603,6 +2640,7 @@ __traceiter_android_rvh_is_cpu_allowed __traceiter_android_rvh_new_task_stats __traceiter_android_rvh_override_creds + __traceiter_android_rvh_post_init_entity_util_avg __traceiter_android_rvh_prepare_prio_fork __traceiter_android_rvh_replace_next_task_fair __traceiter_android_rvh_revert_creds @@ -2639,20 +2677,24 @@ __traceiter_android_vh_audio_usb_offload_connect __traceiter_android_vh_binder_restore_priority __traceiter_android_vh_binder_set_priority + __traceiter_android_vh_binder_trans __traceiter_android_vh_binder_transaction_init __traceiter_android_vh_cgroup_attach __traceiter_android_vh_cgroup_set_task __traceiter_android_vh_check_bpf_syscall __traceiter_android_vh_check_file_open __traceiter_android_vh_check_mmap_file + __traceiter_android_vh_check_uninterrupt_tasks __traceiter_android_vh_compaction_exit __traceiter_android_vh_compaction_try_to_compact_pages_exit __traceiter_android_vh_cpufreq_fast_switch __traceiter_android_vh_cpu_idle_enter __traceiter_android_vh_cpu_idle_exit + __traceiter_android_vh_dump_throttled_rt_tasks __traceiter_android_vh_iommu_iovad_alloc_iova __traceiter_android_vh_iommu_iovad_free_iova __traceiter_android_vh_is_fpsimd_save + __traceiter_android_vh_mmc_update_mmc_queue __traceiter_android_vh_mm_alloc_pages_direct_reclaim_enter __traceiter_android_vh_mm_alloc_pages_direct_reclaim_exit __traceiter_android_vh_mm_alloc_pages_may_oom_exit @@ -2661,6 +2703,7 @@ __traceiter_android_vh_rwsem_write_finished __traceiter_android_vh_sched_pelt_multiplier __traceiter_android_vh_scheduler_tick + __traceiter_android_vh_setscheduler_uclamp __traceiter_android_vh_set_wake_flags __traceiter_android_vh_show_resume_epoch_val __traceiter_android_vh_show_suspend_epoch_val @@ -2687,6 +2730,7 @@ __tracepoint_android_rvh_commit_creds __tracepoint_android_rvh_cpu_cgroup_attach __tracepoint_android_rvh_cpu_cgroup_online + __tracepoint_android_rvh_cpufreq_transition __tracepoint_android_rvh_cpu_overutilized __tracepoint_android_rvh_dequeue_task __tracepoint_android_rvh_dequeue_task_fair @@ -2704,6 +2748,7 @@ __tracepoint_android_rvh_is_cpu_allowed __tracepoint_android_rvh_new_task_stats __tracepoint_android_rvh_override_creds + __tracepoint_android_rvh_post_init_entity_util_avg __tracepoint_android_rvh_prepare_prio_fork __tracepoint_android_rvh_replace_next_task_fair __tracepoint_android_rvh_revert_creds @@ -2740,20 +2785,24 @@ __tracepoint_android_vh_audio_usb_offload_connect __tracepoint_android_vh_binder_restore_priority __tracepoint_android_vh_binder_set_priority + __tracepoint_android_vh_binder_trans __tracepoint_android_vh_binder_transaction_init __tracepoint_android_vh_cgroup_attach __tracepoint_android_vh_cgroup_set_task __tracepoint_android_vh_check_bpf_syscall __tracepoint_android_vh_check_file_open __tracepoint_android_vh_check_mmap_file + __tracepoint_android_vh_check_uninterrupt_tasks __tracepoint_android_vh_compaction_exit __tracepoint_android_vh_compaction_try_to_compact_pages_exit __tracepoint_android_vh_cpufreq_fast_switch __tracepoint_android_vh_cpu_idle_enter __tracepoint_android_vh_cpu_idle_exit + __tracepoint_android_vh_dump_throttled_rt_tasks __tracepoint_android_vh_iommu_iovad_alloc_iova __tracepoint_android_vh_iommu_iovad_free_iova __tracepoint_android_vh_is_fpsimd_save + __tracepoint_android_vh_mmc_update_mmc_queue __tracepoint_android_vh_mm_alloc_pages_direct_reclaim_enter __tracepoint_android_vh_mm_alloc_pages_direct_reclaim_exit __tracepoint_android_vh_mm_alloc_pages_may_oom_exit @@ -2762,6 +2811,7 @@ __tracepoint_android_vh_rwsem_write_finished __tracepoint_android_vh_sched_pelt_multiplier __tracepoint_android_vh_scheduler_tick + __tracepoint_android_vh_setscheduler_uclamp __tracepoint_android_vh_set_wake_flags __tracepoint_android_vh_show_resume_epoch_val __tracepoint_android_vh_show_suspend_epoch_val @@ -2886,7 +2936,9 @@ ufshcd_make_hba_operational ufshcd_mcq_config_mac ufshcd_mcq_make_queues_operational + ufshcd_mcq_poll_cqe_lock ufshcd_mcq_read_cqis + ufshcd_mcq_write_cqis ufshcd_pltfrm_init ufshcd_query_attr ufshcd_query_descriptor_retry @@ -2907,6 +2959,7 @@ unmap_mapping_range unpin_user_page unpin_user_pages + unpin_user_pages_dirty_lock unregister_blkdev __unregister_chrdev unregister_chrdev_region diff --git a/android/abi_gki_aarch64_oplus b/android/abi_gki_aarch64_oplus index 5558b80cb237..23996025f107 100644 --- a/android/abi_gki_aarch64_oplus +++ b/android/abi_gki_aarch64_oplus @@ -161,6 +161,7 @@ __traceiter_android_vh_rwsem_opt_spin_start __traceiter_android_vh_rwsem_wake_finish __traceiter_android_vh_adjust_alloc_flags + __traceiter_android_vh_adjust_kvmalloc_flags __traceiter_android_vh_sched_stat_runtime_rt __traceiter_android_vh_shrink_node_memcgs __traceiter_android_vh_sync_txn_recvd @@ -184,6 +185,14 @@ __traceiter_task_rename __traceiter_android_vh_test_clear_look_around_ref __traceiter_android_vh_tune_swappiness + __traceiter_android_vh_alloc_pages_reclaim_bypass + __traceiter_android_vh_free_unref_page_bypass + __traceiter_android_vh_kvmalloc_node_use_vmalloc + __traceiter_android_vh_should_alloc_pages_retry + __traceiter_android_vh_unreserve_highatomic_bypass + __traceiter_android_vh_rmqueue_bulk_bypass + __traceiter_android_vh_tune_mmap_readaround + __traceiter_android_vh_ra_tuning_max_page __traceiter_android_vh_alloc_oem_binder_struct __traceiter_android_vh_binder_transaction_received __traceiter_android_vh_free_oem_binder_struct @@ -250,12 +259,21 @@ __tracepoint_android_vh_rwsem_opt_spin_start __tracepoint_android_vh_rwsem_wake_finish __tracepoint_android_vh_adjust_alloc_flags + __tracepoint_android_vh_adjust_kvmalloc_flags __tracepoint_android_vh_sched_stat_runtime_rt __tracepoint_android_vh_shrink_node_memcgs __tracepoint_android_vh_sync_txn_recvd __tracepoint_android_vh_task_blocks_on_rtmutex __tracepoint_android_vh_test_clear_look_around_ref __tracepoint_android_vh_tune_swappiness + __tracepoint_android_vh_alloc_pages_reclaim_bypass + __tracepoint_android_vh_free_unref_page_bypass + __tracepoint_android_vh_kvmalloc_node_use_vmalloc + __tracepoint_android_vh_should_alloc_pages_retry + __tracepoint_android_vh_unreserve_highatomic_bypass + __tracepoint_android_vh_rmqueue_bulk_bypass + __tracepoint_android_vh_tune_mmap_readaround + __tracepoint_android_vh_ra_tuning_max_page __tracepoint_block_bio_queue __tracepoint_block_getrq __tracepoint_block_rq_complete diff --git a/android/abi_gki_aarch64_pixel b/android/abi_gki_aarch64_pixel index 2da29f765672..9909f57ce909 100644 --- a/android/abi_gki_aarch64_pixel +++ b/android/abi_gki_aarch64_pixel @@ -26,6 +26,7 @@ amba_driver_unregister android_rvh_probe_register anon_inode_getfd + anon_inode_getfile arc4_crypt arc4_setkey __arch_clear_user @@ -2188,6 +2189,7 @@ __traceiter_android_rvh_update_load_avg __traceiter_android_rvh_update_misfit_status __traceiter_android_rvh_update_rt_rq_load_avg + __traceiter_android_rvh_util_fits_cpu __traceiter_android_vh_arch_set_freq_scale __traceiter_android_vh_audio_usb_offload_connect __traceiter_android_vh_binder_restore_priority @@ -2252,6 +2254,8 @@ __traceiter_sched_util_est_cfs_tp __traceiter_sched_util_est_se_tp __traceiter_sched_wakeup + __traceiter_softirq_entry + __traceiter_softirq_exit __traceiter_suspend_resume __traceiter_workqueue_execute_end __traceiter_workqueue_execute_start @@ -2290,6 +2294,7 @@ __tracepoint_android_rvh_update_load_avg __tracepoint_android_rvh_update_misfit_status __tracepoint_android_rvh_update_rt_rq_load_avg + __tracepoint_android_rvh_util_fits_cpu __tracepoint_android_vh_arch_set_freq_scale __tracepoint_android_vh_audio_usb_offload_connect __tracepoint_android_vh_binder_restore_priority @@ -2356,6 +2361,8 @@ __tracepoint_sched_util_est_cfs_tp __tracepoint_sched_util_est_se_tp __tracepoint_sched_wakeup + __tracepoint_softirq_entry + __tracepoint_softirq_exit __tracepoint_suspend_resume __tracepoint_workqueue_execute_end __tracepoint_workqueue_execute_start diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index a49fbc5c7e3c..a02230f1881d 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -2038,6 +2038,7 @@ __netif_napi_del netif_receive_skb netif_receive_skb_list + __netif_rx netif_rx netif_schedule_queue netif_set_real_num_rx_queues @@ -3292,7 +3293,9 @@ topology_update_thermal_pressure _totalram_pages _trace_android_vh_record_pcpu_rwsem_starttime + trace_array_get_by_name trace_array_put + trace_array_set_clr_event __trace_bprintk trace_clock_local trace_event_buffer_commit diff --git a/android/abi_gki_aarch64_sony b/android/abi_gki_aarch64_sony new file mode 100644 index 000000000000..378e681cd184 --- /dev/null +++ b/android/abi_gki_aarch64_sony @@ -0,0 +1,8 @@ +[abi_symbol_list] +#required for failure diagnostics + __traceiter_block_rq_complete + __tracepoint_block_rq_complete + __traceiter_android_vh_mmc_blk_mq_rw_recovery + __tracepoint_android_vh_mmc_blk_mq_rw_recovery + __traceiter_android_vh_sd_update_bus_speed_mode + __tracepoint_android_vh_sd_update_bus_speed_mode diff --git a/android/abi_gki_aarch64_unisoc b/android/abi_gki_aarch64_unisoc index af9b8e60d708..5fd0eff13ff8 100644 --- a/android/abi_gki_aarch64_unisoc +++ b/android/abi_gki_aarch64_unisoc @@ -719,6 +719,7 @@ __traceiter_android_vh_modify_thermal_target_freq __traceiter_android_vh_regmap_update __traceiter_android_vh_scheduler_tick + __traceiter_android_vh_slab_folio_alloced __traceiter_android_vh_thermal_power_cap __traceiter_android_vh_thermal_register __traceiter_android_vh_thermal_unregister @@ -798,6 +799,7 @@ __tracepoint_android_vh_modify_thermal_target_freq __tracepoint_android_vh_regmap_update __tracepoint_android_vh_scheduler_tick + __tracepoint_android_vh_slab_folio_alloced __tracepoint_android_vh_thermal_power_cap __tracepoint_android_vh_thermal_register __tracepoint_android_vh_thermal_unregister diff --git a/arch/arm64/kvm/hyp/nvhe/mem_protect.c b/arch/arm64/kvm/hyp/nvhe/mem_protect.c index 7dcfe1bf5c69..86cd64130328 100644 --- a/arch/arm64/kvm/hyp/nvhe/mem_protect.c +++ b/arch/arm64/kvm/hyp/nvhe/mem_protect.c @@ -79,35 +79,10 @@ static void hyp_unlock_component(void) hyp_spin_unlock(&pkvm_pgd_lock); } -static void assert_host_can_alloc(void) -{ - /* We can always get back to the host from guest context */ - if (read_sysreg(vttbr_el2) != kvm_get_vttbr(&host_mmu.arch.mmu)) - return; - - /* - * An error code must be returned to EL1 to handle memory allocation - * failures cleanly. That's doable for explicit calls into higher - * ELs, but not so much for other EL2 entry reasons such as mem aborts. - * Thankfully we don't need memory allocation in these cases by - * construction, so let's enforce the invariant. - */ - switch (ESR_ELx_EC(read_sysreg(esr_el2))) { - case ESR_ELx_EC_HVC64: - case ESR_ELx_EC_SMC64: - break; - default: - WARN_ON(1); - } -} - static void *host_s2_zalloc_pages_exact(size_t size) { - void *addr; + void *addr = hyp_alloc_pages(&host_s2_pool, get_order(size)); - assert_host_can_alloc(); - - addr = hyp_alloc_pages(&host_s2_pool, get_order(size)); hyp_split_page(hyp_virt_to_page(addr)); /* @@ -122,8 +97,6 @@ static void *host_s2_zalloc_pages_exact(size_t size) static void *host_s2_zalloc_page(void *pool) { - assert_host_can_alloc(); - return hyp_alloc_pages(pool, 0); } diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index 807e66c05709..0f3817fc7ecc 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -1388,7 +1388,7 @@ static int pkvm_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, * prevent try_to_unmap() from succeeding. */ ret = -EIO; - goto dec_account; + goto unpin; } write_lock(&kvm->mmu_lock); @@ -1397,7 +1397,7 @@ static int pkvm_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, if (ret) { if (ret == -EAGAIN) ret = 0; - goto unpin; + goto unlock; } ppage->page = page; @@ -1407,8 +1407,9 @@ static int pkvm_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, return 0; -unpin: +unlock: write_unlock(&kvm->mmu_lock); +unpin: unpin_user_pages(&page, 1); dec_account: account_locked_vm(mm, 1, false); diff --git a/arch/arm64/kvm/pkvm.c b/arch/arm64/kvm/pkvm.c index 1cff760b8f23..10b899483d43 100644 --- a/arch/arm64/kvm/pkvm.c +++ b/arch/arm64/kvm/pkvm.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -21,6 +22,9 @@ #include #include +#include +#include + #include "hyp_constants.h" DEFINE_STATIC_KEY_FALSE(kvm_protected_mode_initialized); @@ -682,7 +686,11 @@ int __init pkvm_load_early_modules(void) { char *token, *buf = early_pkvm_modules; char *module_path = CONFIG_PKVM_MODULE_PATH; - int err; + int err = init_mount("proc", "/proc", "proc", + MS_SILENT | MS_NOEXEC | MS_NOSUID, NULL); + + if (err) + return err; while (true) { token = strsep(&buf, ","); diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index a0e347f6f97e..94154a849a3e 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@ -1563,17 +1563,22 @@ static const struct iommu_ops *acpi_iommu_configure_id(struct device *dev, int err; const struct iommu_ops *ops; + /* Serialise to make dev->iommu stable under our potential fwspec */ + mutex_lock(&iommu_probe_device_lock); /* * If we already translated the fwspec there is nothing left to do, * return the iommu_ops. */ ops = acpi_iommu_fwspec_ops(dev); - if (ops) + if (ops) { + mutex_unlock(&iommu_probe_device_lock); return ops; + } err = iort_iommu_configure_id(dev, id_in); if (err && err != -EPROBE_DEFER) err = viot_iommu_configure(dev); + mutex_unlock(&iommu_probe_device_lock); /* * If we have reason to believe the IOMMU driver missed the initial diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 289b292d7958..71a349221f3f 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -171,6 +171,13 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_balance_anon_file_reclaim); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_show_max_freq); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dm_bufio_shrink_scan_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cleanup_old_buffers_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_unref_page_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_kvmalloc_node_use_vmalloc); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_should_alloc_pages_retry); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_unreserve_highatomic_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue_bulk_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ra_tuning_max_page); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_mmap_readaround); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_insert); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_node_delete); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_node_replace); @@ -255,6 +262,7 @@ 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_rwsem_wake_finish); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_adjust_alloc_flags); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_adjust_kvmalloc_flags); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_looper_state_registered); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_thread_read); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_free_proc); @@ -289,6 +297,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_should_continue_reclaim); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_file_is_tiny_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_mmc_resume); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_mmc_suspend); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_update_mmc_queue); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_signal); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_node_memcgs); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_modify_thermal_request_freq); @@ -351,3 +360,6 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_resume_begin); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_resume_end); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_early_resume_begin); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_filemap_get_folio); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_blk_mq_rw_recovery); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sd_update_bus_speed_mode); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_slab_folio_alloced); diff --git a/drivers/base/devcoredump.c b/drivers/base/devcoredump.c index 1c06781f7114..f3bd9f104bd1 100644 --- a/drivers/base/devcoredump.c +++ b/drivers/base/devcoredump.c @@ -363,6 +363,7 @@ void dev_coredumpm(struct device *dev, struct module *owner, devcd->devcd_dev.class = &devcd_class; mutex_lock(&devcd->mutex); + dev_set_uevent_suppress(&devcd->devcd_dev, true); if (device_add(&devcd->devcd_dev)) goto put_device; @@ -377,6 +378,8 @@ void dev_coredumpm(struct device *dev, struct module *owner, "devcoredump")) dev_warn(dev, "devcoredump create_link failed\n"); + dev_set_uevent_suppress(&devcd->devcd_dev, false); + kobject_uevent(&devcd->devcd_dev.kobj, KOBJ_ADD); INIT_DELAYED_WORK(&devcd->del_wk, devcd_del); schedule_delayed_work(&devcd->del_wk, DEVCD_TIMEOUT); mutex_unlock(&devcd->mutex); diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 2f789f12c38c..0d3fce6596af 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -308,12 +308,13 @@ static u32 dev_iommu_get_max_pasids(struct device *dev) return min_t(u32, max_pasids, dev->iommu->iommu_dev->max_pasids); } +DEFINE_MUTEX(iommu_probe_device_lock); + static int __iommu_probe_device(struct device *dev, struct list_head *group_list) { const struct iommu_ops *ops = dev->bus->iommu_ops; struct iommu_device *iommu_dev; struct iommu_group *group; - static DEFINE_MUTEX(iommu_probe_device_lock); int ret; if (!ops) @@ -325,10 +326,10 @@ static int __iommu_probe_device(struct device *dev, struct list_head *group_list * probably be able to use device_lock() here to minimise the scope, * but for now enforcing a simple global ordering is fine. */ - mutex_lock(&iommu_probe_device_lock); + lockdep_assert_held(&iommu_probe_device_lock); if (!dev_iommu_get(dev)) { ret = -ENOMEM; - goto err_unlock; + goto err_out; } if (!try_module_get(ops->owner)) { @@ -357,7 +358,6 @@ static int __iommu_probe_device(struct device *dev, struct list_head *group_list mutex_unlock(&group->mutex); iommu_group_put(group); - mutex_unlock(&iommu_probe_device_lock); iommu_device_link(iommu_dev, dev); return 0; @@ -372,9 +372,7 @@ out_module_put: err_free: dev_iommu_free(dev); -err_unlock: - mutex_unlock(&iommu_probe_device_lock); - +err_out: return ret; } @@ -384,7 +382,9 @@ int iommu_probe_device(struct device *dev) struct iommu_group *group; int ret; + mutex_lock(&iommu_probe_device_lock); ret = __iommu_probe_device(dev, NULL); + mutex_unlock(&iommu_probe_device_lock); if (ret) goto err_out; @@ -1716,7 +1716,9 @@ static int probe_iommu_group(struct device *dev, void *data) return 0; } + mutex_lock(&iommu_probe_device_lock); ret = __iommu_probe_device(dev, group_list); + mutex_unlock(&iommu_probe_device_lock); if (ret == -ENODEV) ret = 0; diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c index da271c5596fb..47bf96fc0c45 100644 --- a/drivers/iommu/of_iommu.c +++ b/drivers/iommu/of_iommu.c @@ -113,16 +113,20 @@ const struct iommu_ops *of_iommu_configure(struct device *dev, const u32 *id) { const struct iommu_ops *ops = NULL; - struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); + struct iommu_fwspec *fwspec; int err = NO_IOMMU; if (!master_np) return NULL; + /* Serialise to make dev->iommu stable under our potential fwspec */ + mutex_lock(&iommu_probe_device_lock); + fwspec = dev_iommu_fwspec_get(dev); if (fwspec) { - if (fwspec->ops) + if (fwspec->ops) { + mutex_unlock(&iommu_probe_device_lock); return fwspec->ops; - + } /* In the deferred case, start again from scratch */ iommu_fwspec_free(dev); } @@ -156,6 +160,8 @@ const struct iommu_ops *of_iommu_configure(struct device *dev, fwspec = dev_iommu_fwspec_get(dev); ops = fwspec->ops; } + mutex_unlock(&iommu_probe_device_lock); + /* * If we have reason to believe the IOMMU driver missed the initial * probe for dev, replay it to get things in order. diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c index 1fc6767f1878..7a88177b5fe5 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -46,9 +46,12 @@ #include #include #include +#include #include +#include + #include "queue.h" #include "block.h" #include "core.h" @@ -1894,6 +1897,7 @@ static void mmc_blk_mq_rw_recovery(struct mmc_queue *mq, struct request *req) err && mmc_blk_reset(md, card->host, type)) { pr_err("%s: recovery failed!\n", req->q->disk->disk_name); mqrq->retries = MMC_NO_RETRIES; + trace_android_vh_mmc_blk_mq_rw_recovery(card); return; } @@ -3015,6 +3019,7 @@ static int mmc_blk_probe(struct mmc_card *card) ret = PTR_ERR(md); goto out_free; } + trace_android_vh_mmc_update_mmc_queue(card, &md->queue); ret = mmc_blk_alloc_parts(card, md); if (ret) diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c index 246ce027ae0a..1ded32b60beb 100644 --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c @@ -21,6 +21,8 @@ #include #include +#include + #include "core.h" #include "card.h" #include "host.h" @@ -481,6 +483,8 @@ static void sd_update_bus_speed_mode(struct mmc_card *card) SD_MODE_UHS_SDR12)) { card->sd_bus_speed = UHS_SDR12_BUS_SPEED; } + + trace_android_vh_sd_update_bus_speed_mode(card); } static int sd_set_bus_speed_mode(struct mmc_card *card, u8 *status) diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c index 64bad535f79f..a20cba43d217 100644 --- a/drivers/ufs/core/ufs-mcq.c +++ b/drivers/ufs/core/ufs-mcq.c @@ -446,7 +446,7 @@ int ufshcd_mcq_init(struct ufs_hba *hba) for (i = 0; i < hba->nr_hw_queues; i++) { hwq = &hba->uhq[i]; - hwq->max_entries = hba->nutrs; + hwq->max_entries = hba->nutrs + 1; spin_lock_init(&hwq->sq_lock); spin_lock_init(&hwq->cq_lock); mutex_init(&hwq->sq_mutex); @@ -593,7 +593,6 @@ static bool ufshcd_mcq_sqe_search(struct ufs_hba *hba, { struct ufshcd_lrb *lrbp = &hba->lrb[task_tag]; struct utp_transfer_req_desc *utrd; - u32 mask = hwq->max_entries - 1; __le64 cmd_desc_base_addr; bool ret = false; u64 addr, match; @@ -621,7 +620,10 @@ static bool ufshcd_mcq_sqe_search(struct ufs_hba *hba, ret = true; goto out; } - sq_head_slot = (sq_head_slot + 1) & mask; + + sq_head_slot++; + if (sq_head_slot == hwq->max_entries) + sq_head_slot = 0; } out: diff --git a/drivers/ufs/core/ufs_bsg.c b/drivers/ufs/core/ufs_bsg.c index 0d38e7fa34cc..97f4d86f8d90 100644 --- a/drivers/ufs/core/ufs_bsg.c +++ b/drivers/ufs/core/ufs_bsg.c @@ -76,8 +76,7 @@ static int ufs_bsg_exec_advanced_rpmb_req(struct ufs_hba *hba, struct bsg_job *j int ret; int data_len; - if (hba->ufs_version < ufshci_version(4, 0) || !hba->dev_info.b_advanced_rpmb_en || - !(hba->capabilities & MASK_EHSLUTRD_SUPPORTED)) + if (hba->ufs_version < ufshci_version(4, 0) || !hba->dev_info.b_advanced_rpmb_en) return -EINVAL; if (rpmb_request->ehs_req.length != 2 || rpmb_request->ehs_req.ehs_type != 1) diff --git a/drivers/ufs/core/ufshcd-priv.h b/drivers/ufs/core/ufshcd-priv.h index 83cf0a47ec14..d02bd0128df5 100644 --- a/drivers/ufs/core/ufshcd-priv.h +++ b/drivers/ufs/core/ufshcd-priv.h @@ -370,10 +370,11 @@ static inline bool ufs_is_valid_unit_desc_lun(struct ufs_dev_info *dev_info, u8 static inline void ufshcd_inc_sq_tail(struct ufs_hw_queue *q) { - u32 mask = q->max_entries - 1; u32 val; - q->sq_tail_slot = (q->sq_tail_slot + 1) & mask; + q->sq_tail_slot++; + if (q->sq_tail_slot == q->max_entries) + q->sq_tail_slot = 0; val = q->sq_tail_slot * sizeof(struct utp_transfer_req_desc); writel(val, q->mcq_sq_tail); } diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index f91e7c6768e0..0e9b6d149513 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -6485,6 +6485,8 @@ static bool ufshcd_abort_all(struct ufs_hba *hba) if (is_mcq_enabled(hba)) { struct ufshcd_lrb *lrbp; int tag; + struct ufs_hw_queue *hwq; + unsigned long flags; for (tag = 0; tag < hba->nutrs; tag++) { lrbp = &hba->lrb[tag]; @@ -6498,6 +6500,11 @@ static bool ufshcd_abort_all(struct ufs_hba *hba) needs_reset = true; goto out; } + hwq = ufshcd_mcq_req_to_hwq(hba, scsi_cmd_to_rq(lrbp->cmd)); + spin_lock_irqsave(&hwq->cq_lock, flags); + if (ufshcd_cmd_inflight(lrbp->cmd)) + ufshcd_release_scsi_cmd(hba, lrbp); + spin_unlock_irqrestore(&hwq->cq_lock, flags); } } else { /* Clear pending transfer requests */ @@ -7385,7 +7392,15 @@ int ufshcd_advanced_rpmb_req_handler(struct ufs_hba *hba, struct utp_upiu_req *r /* Advanced RPMB starts from UFS 4.0, so its command type is UTP_CMD_TYPE_UFS_STORAGE */ lrbp->command_type = UTP_CMD_TYPE_UFS_STORAGE; - ufshcd_prepare_req_desc_hdr(lrbp, &upiu_flags, dir, 2); + /* + * According to UFSHCI 4.0 specification page 24, if EHSLUTRDS is 0, host controller takes + * EHS length from CMD UPIU, and SW driver use EHS Length field in CMD UPIU. if it is 1, + * HW controller takes EHS length from UTRD. + */ + if (hba->capabilities & MASK_EHSLUTRD_SUPPORTED) + ufshcd_prepare_req_desc_hdr(lrbp, &upiu_flags, dir, 2); + else + ufshcd_prepare_req_desc_hdr(lrbp, &upiu_flags, dir, 0); /* update the task tag and LUN in the request upiu */ req_upiu->header.dword_0 |= cpu_to_be32(upiu_flags << 16 | UFS_UPIU_RPMB_WLUN << 8 | tag); diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c index 76c56166459a..a87fb1e7e9d4 100644 --- a/drivers/ufs/host/ufs-qcom.c +++ b/drivers/ufs/host/ufs-qcom.c @@ -225,7 +225,7 @@ static void ufs_qcom_select_unipro_mode(struct ufs_qcom_host *host) ufs_qcom_cap_qunipro(host) ? QUNIPRO_SEL : 0, REG_UFS_CFG1); - if (host->hw_ver.major == 0x05) + if (host->hw_ver.major >= 0x05) ufshcd_rmwl(host->hba, QUNIPRO_G4_SEL, 0, REG_UFS_CFG0); /* make sure above configuration is applied before we return */ diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c index 1c0c61e8ba69..d7e992ee7743 100644 --- a/drivers/usb/gadget/udc/core.c +++ b/drivers/usb/gadget/udc/core.c @@ -1099,12 +1099,12 @@ EXPORT_SYMBOL_GPL(usb_gadget_set_state); /* ------------------------------------------------------------------------- */ /* Acquire connect_lock before calling this function. */ -static void usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock) +static int usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock) { if (udc->vbus) - usb_gadget_connect_locked(udc->gadget); + return usb_gadget_connect_locked(udc->gadget); else - usb_gadget_disconnect_locked(udc->gadget); + return usb_gadget_disconnect_locked(udc->gadget); } static void vbus_event_work(struct work_struct *work) @@ -1578,12 +1578,23 @@ static int gadget_bind_driver(struct device *dev) } usb_gadget_enable_async_callbacks(udc); udc->allow_connect = true; - usb_udc_connect_control_locked(udc); + ret = usb_udc_connect_control_locked(udc); + if (ret) + goto err_connect_control; + mutex_unlock(&udc->connect_lock); kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); return 0; + err_connect_control: + udc->allow_connect = false; + usb_gadget_disable_async_callbacks(udc); + if (gadget->irq) + synchronize_irq(gadget->irq); + usb_gadget_udc_stop_locked(udc); + mutex_unlock(&udc->connect_lock); + err_start: driver->unbind(udc->gadget); diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c index 27475f13343b..f9f528c64f0f 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -4289,7 +4289,8 @@ static void run_state_machine(struct tcpm_port *port) current_lim = PD_P_SNK_STDBY_MW / 5; tcpm_set_current_limit(port, current_lim, 5000); /* Not sink vbus if operational current is 0mA */ - tcpm_set_charge(port, !!pdo_max_current(port->snk_pdo[0])); + tcpm_set_charge(port, !port->pd_supported || + pdo_max_current(port->snk_pdo[0])); if (!port->pd_supported) tcpm_set_state(port, SNK_READY, 0); diff --git a/fs/fuse/backing.c b/fs/fuse/backing.c index 303a78a63cd2..e16457c75944 100644 --- a/fs/fuse/backing.c +++ b/fs/fuse/backing.c @@ -300,7 +300,9 @@ int fuse_release_initialize(struct fuse_bpf_args *fa, struct fuse_release_in *fr struct inode *inode, struct fuse_file *ff) { /* Always put backing file whatever bpf/userspace says */ - fput(ff->backing_file); + if (ff->backing_file) { + fput(ff->backing_file); + } *fri = (struct fuse_release_in) { .fh = ff->fh, diff --git a/fs/fuse/passthrough.c b/fs/fuse/passthrough.c index c0ae3069c6c8..2449558bac18 100644 --- a/fs/fuse/passthrough.c +++ b/fs/fuse/passthrough.c @@ -214,7 +214,8 @@ int fuse_passthrough_open(struct fuse_dev *fud, u32 lower_fd) } if (!passthrough_filp->f_op->read_iter || - !passthrough_filp->f_op->write_iter) { + !((passthrough_filp->f_path.mnt->mnt_flags | MNT_READONLY) || + passthrough_filp->f_op->write_iter)) { pr_err("FUSE: passthrough file misses file operations.\n"); res = -EBADF; goto err_free_file; diff --git a/fs/proc/base.c b/fs/proc/base.c index 9652d9ec1427..e1105906fdd0 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2022,21 +2022,19 @@ static int pid_revalidate(struct dentry *dentry, unsigned int flags) { struct inode *inode; struct task_struct *task; - int ret = 0; - rcu_read_lock(); - inode = d_inode_rcu(dentry); - if (!inode) - goto out; - task = pid_task(proc_pid(inode), PIDTYPE_PID); + if (flags & LOOKUP_RCU) + return -ECHILD; + + inode = d_inode(dentry); + task = get_proc_task(inode); if (task) { pid_update_inode(task, inode); - ret = 1; + put_task_struct(task); + return 1; } -out: - rcu_read_unlock(); - return ret; + return 0; } static inline bool proc_inode_is_dead(struct inode *inode) diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 9ff1310db24b..eec008e89c32 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -689,6 +689,7 @@ static inline void dev_iommu_priv_set(struct device *dev, void *priv) dev->iommu->priv = priv; } +extern struct mutex iommu_probe_device_lock; int iommu_probe_device(struct device *dev); void iommu_release_device(struct device *dev); diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index c57fb8454a7f..9a3948173be3 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -7873,7 +7873,8 @@ void cfg80211_roamed(struct net_device *dev, struct cfg80211_roam_info *info, * cfg80211_port_authorized - notify cfg80211 of successful security association * * @dev: network device - * @bssid: the BSSID of the AP + * @peer_addr: BSSID of the AP/P2P GO in case of STA/GC or STA/GC MAC address + * in case of AP/P2P GO * @td_bitmap: transition disable policy * @td_bitmap_len: Length of transition disable policy * @gfp: allocation flags @@ -7884,8 +7885,11 @@ void cfg80211_roamed(struct net_device *dev, struct cfg80211_roam_info *info, * should be preceded with a call to cfg80211_connect_result(), * cfg80211_connect_done(), cfg80211_connect_bss() or cfg80211_roamed() to * indicate the 802.11 association. + * This function can also be called by AP/P2P GO driver that supports + * authentication offload. In this case the peer_mac passed is that of + * associated STA/GC. */ -void cfg80211_port_authorized(struct net_device *dev, const u8 *bssid, +void cfg80211_port_authorized(struct net_device *dev, const u8 *peer_addr, const u8* td_bitmap, u8 td_bitmap_len, gfp_t gfp); /** diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index ab479064007c..6b9353695660 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -123,6 +123,31 @@ DECLARE_HOOK(android_vh_mm_compaction_begin, DECLARE_HOOK(android_vh_mm_compaction_end, TP_PROTO(struct compact_control *cc, long vendor_ret), TP_ARGS(cc, vendor_ret)); +DECLARE_HOOK(android_vh_free_unref_page_bypass, + TP_PROTO(struct page *page, int order, int migratetype, bool *bypass), + TP_ARGS(page, order, migratetype, bypass)); +DECLARE_HOOK(android_vh_kvmalloc_node_use_vmalloc, + TP_PROTO(size_t size, gfp_t *kmalloc_flags, bool *use_vmalloc), + TP_ARGS(size, kmalloc_flags, use_vmalloc)); +DECLARE_HOOK(android_vh_should_alloc_pages_retry, + TP_PROTO(gfp_t gfp_mask, int order, int *alloc_flags, + int migratetype, struct zone *preferred_zone, struct page **page, bool *should_alloc_retry), + TP_ARGS(gfp_mask, order, alloc_flags, + migratetype, preferred_zone, page, should_alloc_retry)); +DECLARE_HOOK(android_vh_unreserve_highatomic_bypass, + TP_PROTO(bool force, struct zone *zone, bool *skip_unreserve_highatomic), + TP_ARGS(force, zone, skip_unreserve_highatomic)); +DECLARE_HOOK(android_vh_rmqueue_bulk_bypass, + TP_PROTO(unsigned int order, struct per_cpu_pages *pcp, int migratetype, + struct list_head *list), + TP_ARGS(order, pcp, migratetype, list)); +DECLARE_HOOK(android_vh_ra_tuning_max_page, + TP_PROTO(struct readahead_control *ractl, unsigned long *max_page), + TP_ARGS(ractl, max_page)); +DECLARE_HOOK(android_vh_tune_mmap_readaround, + TP_PROTO(unsigned int ra_pages, pgoff_t pgoff, + pgoff_t *start, unsigned int *size, unsigned int *async_size), + TP_ARGS(ra_pages, pgoff, start, size, async_size)); struct mem_cgroup; DECLARE_HOOK(android_vh_mem_cgroup_alloc, TP_PROTO(struct mem_cgroup *memcg), @@ -168,6 +193,12 @@ struct oom_control; DECLARE_HOOK(android_vh_mm_alloc_pages_may_oom_exit, TP_PROTO(struct oom_control *oc, unsigned long did_some_progress), TP_ARGS(oc, did_some_progress)); +DECLARE_HOOK(android_vh_adjust_kvmalloc_flags, + TP_PROTO(unsigned int order, gfp_t *alloc_flags), + TP_ARGS(order, alloc_flags)); +DECLARE_HOOK(android_vh_slab_folio_alloced, + TP_PROTO(unsigned int order, gfp_t flags), + TP_ARGS(order, flags)); #endif /* _TRACE_HOOK_MM_H */ /* This part must be outside protection */ diff --git a/include/trace/hooks/mmc.h b/include/trace/hooks/mmc.h index 3654c2a928ee..d24319cdfee3 100644 --- a/include/trace/hooks/mmc.h +++ b/include/trace/hooks/mmc.h @@ -7,11 +7,21 @@ #define _TRACE_HOOK_MMC_H #include struct mmc_host; +struct mmc_card; +struct mmc_queue; /* * Following tracepoints are not exported in tracefs and provide a * mechanism for vendor modules to hook and extend functionality */ +DECLARE_HOOK(android_vh_mmc_blk_mq_rw_recovery, + TP_PROTO(struct mmc_card *card), + TP_ARGS(card)); + +DECLARE_HOOK(android_vh_sd_update_bus_speed_mode, + TP_PROTO(struct mmc_card *card), + TP_ARGS(card)); + DECLARE_RESTRICTED_HOOK(android_rvh_mmc_suspend, TP_PROTO(struct mmc_host *host), TP_ARGS(host), 1); @@ -20,6 +30,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_mmc_resume, TP_PROTO(struct mmc_host *host, bool *resume_success), TP_ARGS(host, resume_success), 1); +DECLARE_HOOK(android_vh_mmc_update_mmc_queue, + TP_PROTO(struct mmc_card *card, struct mmc_queue *mq), + TP_ARGS(card, mq)); + #endif /* _TRACE_HOOK_MMC_H */ /* This part must be outside protection */ #include diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 462552ec537e..29396d044885 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -198,6 +198,11 @@ DECLARE_RESTRICTED_HOOK(android_rvh_update_misfit_status, TP_PROTO(struct task_struct *p, struct rq *rq, bool *need_update), TP_ARGS(p, rq, need_update), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_util_fits_cpu, + TP_PROTO(unsigned long util, unsigned long uclamp_min, unsigned long uclamp_max, + int cpu, bool *fits, bool *done), + TP_ARGS(util, uclamp_min, uclamp_max, cpu, fits, done), 1); + DECLARE_RESTRICTED_HOOK(android_rvh_sched_fork_init, TP_PROTO(struct task_struct *p), TP_ARGS(p), 1); diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index 8fc5fc92adde..f3af16ce1f64 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h @@ -334,6 +334,15 @@ * use %NL80211_CMD_START_AP or similar functions. */ +/** + * DOC: OWE DH IE handling offload + * + * By setting @NL80211_EXT_FEATURE_OWE_OFFLOAD flag, drivers can indicate + * kernel/application space to avoid DH IE handling. When this flag is + * advertised, the driver/device will take care of DH IE inclusion and + * processing of peer DH IE to generate PMK. + */ + /** * enum nl80211_commands - supported nl80211 commands * @@ -6434,6 +6443,12 @@ enum nl80211_feature_flags { * in authentication and deauthentication frames sent to unassociated peer * using @NL80211_CMD_FRAME. * + * @NL80211_EXT_FEATURE_OWE_OFFLOAD: Driver/Device wants to do OWE DH IE + * handling in station mode. + * + * @NL80211_EXT_FEATURE_OWE_OFFLOAD_AP: Driver/Device wants to do OWE DH IE + * handling in AP mode. + * * @NUM_NL80211_EXT_FEATURES: number of extended features. * @MAX_NL80211_EXT_FEATURES: highest extended feature index. */ @@ -6505,8 +6520,8 @@ enum nl80211_ext_feature_index { NL80211_EXT_FEATURE_PUNCT, NL80211_EXT_FEATURE_SECURE_NAN, NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA, - NL80211_EXT_FEATURE_ANDROID_KABI_RESERVED_1, - NL80211_EXT_FEATURE_ANDROID_KABI_RESERVED_2, + NL80211_EXT_FEATURE_OWE_OFFLOAD, + NL80211_EXT_FEATURE_OWE_OFFLOAD_AP, NL80211_EXT_FEATURE_ANDROID_KABI_RESERVED_3, NL80211_EXT_FEATURE_ANDROID_KABI_RESERVED_4, NL80211_EXT_FEATURE_ANDROID_KABI_RESERVED_5, diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 240e16edb487..507d1fc4e163 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4459,7 +4459,12 @@ static inline int util_fits_cpu(unsigned long util, { unsigned long capacity_orig, capacity_orig_thermal; unsigned long capacity = capacity_of(cpu); - bool fits, uclamp_max_fits; + bool fits, uclamp_max_fits, done = false; + + trace_android_rvh_util_fits_cpu(util, uclamp_min, uclamp_max, cpu, &fits, &done); + + if (done) + return fits; /* * Check if the real util fits without any uclamp boost/cap applied. diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index a4c6f277c0f6..af7b4c5ba399 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -69,6 +69,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_cpu_dying); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_account_irq); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_place_entity); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_build_perf_domains); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_util_fits_cpu); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_cpu_capacity); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_misfit_status); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rto_next_cpu); diff --git a/kernel/softirq.c b/kernel/softirq.c index a63d8b8bfe60..8c4436f0504f 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -35,6 +35,10 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(irq_handler_entry); EXPORT_TRACEPOINT_SYMBOL_GPL(irq_handler_exit); +EXPORT_TRACEPOINT_SYMBOL_GPL(softirq_entry); +EXPORT_TRACEPOINT_SYMBOL_GPL(softirq_exit); +EXPORT_TRACEPOINT_SYMBOL_GPL(tasklet_entry); +EXPORT_TRACEPOINT_SYMBOL_GPL(tasklet_exit); /* - No shared variables, all the data are CPU local. diff --git a/mm/filemap.c b/mm/filemap.c index c445deb4d32c..63a846a1c1a3 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -3058,6 +3058,8 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) ra->start = max_t(long, 0, vmf->pgoff - ra->ra_pages / 2); ra->size = ra->ra_pages; ra->async_size = ra->ra_pages / 4; + trace_android_vh_tune_mmap_readaround(ra->ra_pages, vmf->pgoff, + &ra->start, &ra->size, &ra->async_size); ractl._index = ra->start; page_cache_ra_order(&ractl, ra, 0); return fpin; diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 644cb57bf1b3..391d92f6bfae 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1727,11 +1727,15 @@ static void __free_pages_ok(struct page *page, unsigned int order, int migratetype; unsigned long pfn = page_to_pfn(page); struct zone *zone = page_zone(page); + bool skip_free_unref_page = false; if (!free_pages_prepare(page, order, true, fpi_flags)) return; migratetype = get_pfnblock_migratetype(page, pfn); + trace_android_vh_free_unref_page_bypass(page, order, migratetype, &skip_free_unref_page); + if (skip_free_unref_page) + return; spin_lock_irqsave(&zone->lock, flags); if (unlikely(has_isolate_pageblock(zone) || @@ -2960,6 +2964,7 @@ static bool unreserve_highatomic_pageblock(const struct alloc_context *ac, struct page *page; int order; bool ret; + bool skip_unreserve_highatomic = false; for_each_zone_zonelist_nodemask(zone, z, zonelist, ac->highest_zoneidx, ac->nodemask) { @@ -2971,6 +2976,11 @@ static bool unreserve_highatomic_pageblock(const struct alloc_context *ac, pageblock_nr_pages) continue; + trace_android_vh_unreserve_highatomic_bypass(force, zone, + &skip_unreserve_highatomic); + if (skip_unreserve_highatomic) + continue; + spin_lock_irqsave(&zone->lock, flags); for (order = 0; order < MAX_ORDER; order++) { struct free_area *area = &(zone->free_area[order]); @@ -3227,6 +3237,10 @@ static struct list_head *get_populated_pcp_list(struct zone *zone, int batch = READ_ONCE(pcp->batch); int alloced; + trace_android_vh_rmqueue_bulk_bypass(order, pcp, migratetype, list); + if (!list_empty(list)) + return list; + /* * Scale batch relative to order if batch implies * free pages can be stored on the PCP. Batch can @@ -3547,10 +3561,16 @@ void free_unref_page(struct page *page, unsigned int order) struct zone *zone; unsigned long pfn = page_to_pfn(page); int migratetype, pcpmigratetype; + bool skip_free_unref_page = false; if (!free_unref_page_prepare(page, pfn, order)) return; + migratetype = get_pcppage_migratetype(page); + trace_android_vh_free_unref_page_bypass(page, order, migratetype, &skip_free_unref_page); + if (skip_free_unref_page) + return; + /* * We only track unmovable, reclaimable, movable, and CMA on pcp lists. * Place ISOLATE pages on the isolated list because they are being @@ -5127,6 +5147,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, unsigned int zonelist_iter_cookie; int reserve_flags; unsigned long alloc_start = jiffies; + bool should_alloc_retry = false; /* * We also sanity check to catch abuse of atomic reserves being used by * callers that are not in atomic context. @@ -5279,6 +5300,11 @@ retry: if (page) goto got_pg; + trace_android_vh_should_alloc_pages_retry(gfp_mask, order, &alloc_flags, + ac->migratetype, ac->preferred_zoneref->zone, &page, &should_alloc_retry); + if (should_alloc_retry) + goto retry; + /* Try direct reclaim and then allocating */ page = __alloc_pages_direct_reclaim(gfp_mask, order, alloc_flags, ac, &did_some_progress); diff --git a/mm/readahead.c b/mm/readahead.c index 844e8134ba96..a8620cac2d83 100644 --- a/mm/readahead.c +++ b/mm/readahead.c @@ -591,6 +591,8 @@ static void ondemand_readahead(struct readahead_control *ractl, if (req_size > max_pages && bdi->io_pages > max_pages) max_pages = min(req_size, bdi->io_pages); + trace_android_vh_ra_tuning_max_page(ractl, &max_pages); + /* * start of file */ diff --git a/mm/slub.c b/mm/slub.c index 3c9d4e333963..32c73002a5c5 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -43,6 +43,7 @@ #include #include +#include #include "internal.h" @@ -1823,6 +1824,8 @@ static inline struct slab *alloc_slab_page(gfp_t flags, int node, if (page_is_pfmemalloc(folio_page(folio, 0))) slab_set_pfmemalloc(slab); + trace_android_vh_slab_folio_alloced(order, flags); + return slab; } diff --git a/mm/util.c b/mm/util.c index 2a40dea3400f..2409c21f0354 100644 --- a/mm/util.c +++ b/mm/util.c @@ -25,12 +25,13 @@ #include #include - +#include #include "internal.h" #include "swap.h" -#ifndef __GENSYMS__ +#ifndef __GENKSYMS__ #include +#include #endif /** @@ -565,7 +566,11 @@ void *kvmalloc_node(size_t size, gfp_t flags, int node) { gfp_t kmalloc_flags = flags; void *ret; + bool use_vmalloc = false; + trace_android_vh_kvmalloc_node_use_vmalloc(size, &kmalloc_flags, &use_vmalloc); + if (use_vmalloc) + goto use_vmalloc_node; /* * We want to attempt a large physically contiguous block first because * it is less likely to fragment multiple larger blocks and therefore @@ -582,6 +587,7 @@ void *kvmalloc_node(size_t size, gfp_t flags, int node) /* nofail semantic is implemented by the vmalloc fallback */ kmalloc_flags &= ~__GFP_NOFAIL; } + trace_android_vh_adjust_kvmalloc_flags(get_order(size), &kmalloc_flags); ret = kmalloc_node(size, kmalloc_flags, node); @@ -608,6 +614,7 @@ void *kvmalloc_node(size_t size, gfp_t flags, int node) * about the resulting pointer, and cannot play * protection games. */ +use_vmalloc_node: return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END, flags, PAGE_KERNEL, VM_ALLOW_HUGE_VMAP, node, __builtin_return_address(0)); diff --git a/mm/vmscan.c b/mm/vmscan.c index 75a5b6b7358c..f2fd1b4fce15 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -4805,16 +4805,17 @@ void lru_gen_release_memcg(struct mem_cgroup *memcg) spin_lock_irq(&pgdat->memcg_lru.lock); - VM_WARN_ON_ONCE(hlist_nulls_unhashed(&lruvec->lrugen.list)); + if (hlist_nulls_unhashed(&lruvec->lrugen.list)) + goto unlock; gen = lruvec->lrugen.gen; - hlist_nulls_del_rcu(&lruvec->lrugen.list); + hlist_nulls_del_init_rcu(&lruvec->lrugen.list); pgdat->memcg_lru.nr_memcgs[gen]--; if (!pgdat->memcg_lru.nr_memcgs[gen] && gen == get_memcg_gen(pgdat->memcg_lru.seq)) WRITE_ONCE(pgdat->memcg_lru.seq, pgdat->memcg_lru.seq + 1); - +unlock: spin_unlock_irq(&pgdat->memcg_lru.lock); } } @@ -5441,8 +5442,10 @@ restart: rcu_read_lock(); hlist_nulls_for_each_entry_rcu(lrugen, pos, &pgdat->memcg_lru.fifo[gen][bin], list) { - if (op) + if (op) { lru_gen_rotate_memcg(lruvec, op); + op = 0; + } mem_cgroup_put(memcg); @@ -5450,7 +5453,7 @@ restart: memcg = lruvec_memcg(lruvec); if (!mem_cgroup_tryget(memcg)) { - op = 0; + lru_gen_release_memcg(memcg); memcg = NULL; continue; } diff --git a/net/wireless/core.h b/net/wireless/core.h index 6c3d25b7fa6e..de46a684332d 100644 --- a/net/wireless/core.h +++ b/net/wireless/core.h @@ -276,7 +276,7 @@ struct cfg80211_event { struct ieee80211_channel *channel; } ij; struct { - u8 bssid[ETH_ALEN]; + u8 peer_addr[ETH_ALEN]; const u8 *td_bitmap; u8 td_bitmap_len; } pa; @@ -417,7 +417,7 @@ int cfg80211_disconnect(struct cfg80211_registered_device *rdev, bool wextev); void __cfg80211_roamed(struct wireless_dev *wdev, struct cfg80211_roam_info *info); -void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid, +void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *peer_addr, const u8 *td_bitmap, u8 td_bitmap_len); int cfg80211_mgd_wext_connect(struct cfg80211_registered_device *rdev, struct wireless_dev *wdev); diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 09fd4198e582..5576b6f4feed 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -18023,7 +18023,7 @@ void nl80211_send_roamed(struct cfg80211_registered_device *rdev, } void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev, - struct net_device *netdev, const u8 *bssid, + struct net_device *netdev, const u8 *peer_addr, const u8 *td_bitmap, u8 td_bitmap_len) { struct sk_buff *msg; @@ -18041,7 +18041,7 @@ void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev, if (nla_put_u32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx) || nla_put_u32(msg, NL80211_ATTR_IFINDEX, netdev->ifindex) || - nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, bssid)) + nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, peer_addr)) goto nla_put_failure; if ((td_bitmap_len > 0) && td_bitmap) diff --git a/net/wireless/nl80211.h b/net/wireless/nl80211.h index 0278d817bb02..e1faa5a26a52 100644 --- a/net/wireless/nl80211.h +++ b/net/wireless/nl80211.h @@ -82,8 +82,11 @@ void nl80211_send_connect_result(struct cfg80211_registered_device *rdev, void nl80211_send_roamed(struct cfg80211_registered_device *rdev, struct net_device *netdev, struct cfg80211_roam_info *info, gfp_t gfp); +/* For STA/GC, indicate port authorized with AP/GO bssid. + * For GO/AP, use peer GC/STA mac_addr. + */ void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev, - struct net_device *netdev, const u8 *bssid, + struct net_device *netdev, const u8 *peer_addr, const u8 *td_bitmap, u8 td_bitmap_len); void nl80211_send_disconnected(struct cfg80211_registered_device *rdev, struct net_device *netdev, u16 reason, diff --git a/net/wireless/sme.c b/net/wireless/sme.c index 271a2df24fc3..73be3d0e995a 100644 --- a/net/wireless/sme.c +++ b/net/wireless/sme.c @@ -1280,24 +1280,29 @@ out: } EXPORT_SYMBOL(cfg80211_roamed); -void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid, - const u8 *td_bitmap, u8 td_bitmap_len) +void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *peer_addr, + const u8 *td_bitmap, u8 td_bitmap_len) { ASSERT_WDEV_LOCK(wdev); if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION && - wdev->iftype != NL80211_IFTYPE_P2P_CLIENT)) + wdev->iftype != NL80211_IFTYPE_P2P_CLIENT && + wdev->iftype != NL80211_IFTYPE_AP && + wdev->iftype != NL80211_IFTYPE_P2P_GO)) return; - if (WARN_ON(!wdev->connected) || - WARN_ON(!ether_addr_equal(wdev->u.client.connected_addr, bssid))) - return; + if (wdev->iftype == NL80211_IFTYPE_STATION || + wdev->iftype == NL80211_IFTYPE_P2P_CLIENT) { + if (WARN_ON(!wdev->connected) || + WARN_ON(!ether_addr_equal(wdev->u.client.connected_addr, peer_addr))) + return; + } nl80211_send_port_authorized(wiphy_to_rdev(wdev->wiphy), wdev->netdev, - bssid, td_bitmap, td_bitmap_len); + peer_addr, td_bitmap, td_bitmap_len); } -void cfg80211_port_authorized(struct net_device *dev, const u8 *bssid, +void cfg80211_port_authorized(struct net_device *dev, const u8 *peer_addr, const u8 *td_bitmap, u8 td_bitmap_len, gfp_t gfp) { struct wireless_dev *wdev = dev->ieee80211_ptr; @@ -1305,7 +1310,7 @@ void cfg80211_port_authorized(struct net_device *dev, const u8 *bssid, struct cfg80211_event *ev; unsigned long flags; - if (WARN_ON(!bssid)) + if (WARN_ON(!peer_addr)) return; ev = kzalloc(sizeof(*ev) + td_bitmap_len, gfp); @@ -1313,7 +1318,7 @@ void cfg80211_port_authorized(struct net_device *dev, const u8 *bssid, return; ev->type = EVENT_PORT_AUTHORIZED; - memcpy(ev->pa.bssid, bssid, ETH_ALEN); + memcpy(ev->pa.peer_addr, peer_addr, ETH_ALEN); ev->pa.td_bitmap = ((u8 *)ev) + sizeof(*ev); ev->pa.td_bitmap_len = td_bitmap_len; memcpy((void *)ev->pa.td_bitmap, td_bitmap, td_bitmap_len); diff --git a/net/wireless/util.c b/net/wireless/util.c index d3056e096da1..d5a4096ff205 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -990,7 +990,7 @@ void cfg80211_process_wdev_events(struct wireless_dev *wdev) __cfg80211_leave(wiphy_to_rdev(wdev->wiphy), wdev); break; case EVENT_PORT_AUTHORIZED: - __cfg80211_port_authorized(wdev, ev->pa.bssid, + __cfg80211_port_authorized(wdev, ev->pa.peer_addr, ev->pa.td_bitmap, ev->pa.td_bitmap_len); break;