diff --git a/BUILD.bazel b/BUILD.bazel index 7ff12dea86aa..df717c95f3a6 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -4,6 +4,7 @@ load("@bazel_skylib//rules:write_file.bzl", "write_file") load("//build/bazel_common_rules/dist:dist.bzl", "copy_to_dist_dir") load("//build/kernel/kleaf:common_kernels.bzl", "define_common_kernels") +load("//build/kernel/kleaf:constants.bzl", "X86_64_OUTS") load( "//build/kernel/kleaf:kernel.bzl", "checkpatch", @@ -98,6 +99,7 @@ filegroup( name = "aarch64_additional_kmi_symbol_lists", srcs = [ # keep sorted + "android/abi_gki_aarch64_asus", "android/abi_gki_aarch64_db845c", "android/abi_gki_aarch64_exynos", "android/abi_gki_aarch64_exynosauto", @@ -109,6 +111,7 @@ filegroup( "android/abi_gki_aarch64_oplus", "android/abi_gki_aarch64_pixel", "android/abi_gki_aarch64_qcom", + "android/abi_gki_aarch64_rockchip", "android/abi_gki_aarch64_tuxera", "android/abi_gki_aarch64_unisoc", "android/abi_gki_aarch64_virtual_device", @@ -165,6 +168,101 @@ define_common_kernels(target_configs = { }, }) +# Microdroid is not a real device. The kernel image is built with special +# configs to reduce the size. Hence, not using mixed build. +kernel_build( + name = "kernel_aarch64_microdroid", + srcs = ["//common:kernel_aarch64_sources"], + outs = [ + "Image", + "System.map", + "modules.builtin", + "modules.builtin.modinfo", + "vmlinux", + "vmlinux.symvers", + ], + build_config = "build.config.microdroid.aarch64", + make_goals = [ + "Image", + ], +) + +copy_to_dist_dir( + name = "kernel_aarch64_microdroid_dist", + data = [ + ":kernel_aarch64_microdroid", + ], + dist_dir = "out/kernel_aarch64_microdroid/dist", + flat = True, + log = "info", +) + +# Microdroid is not a real device. The kernel image is built with special +# configs to reduce the size. Hence, not using mixed build. +kernel_build( + name = "kernel_x86_64_microdroid", + srcs = ["//common:kernel_x86_64_sources"], + outs = X86_64_OUTS, + arch = "x86_64", + build_config = "build.config.microdroid.x86_64", + make_goals = [ + "bzImage", + ], +) + +copy_to_dist_dir( + name = "kernel_x86_64_microdroid_dist", + data = [ + ":kernel_x86_64_microdroid", + ], + dist_dir = "out/kernel_x86_64_microdroid/dist", + flat = True, + log = "info", +) + +kernel_build( + name = "kernel_aarch64_crashdump", + srcs = ["//common:kernel_aarch64_sources"], + outs = [ + "Image", + ], + build_config = "build.config.crashdump.aarch64", + make_goals = [ + "Image", + ], +) + +copy_to_dist_dir( + name = "kernel_aarch64_crashdump_dist", + data = [ + ":kernel_aarch64_crashdump", + ], + dist_dir = "out/kernel_aarch64_crashdump/dist", + flat = True, + log = "info", +) + +kernel_build( + name = "kernel_x86_64_crashdump", + srcs = ["//common:kernel_x86_64_sources"], + outs = X86_64_OUTS, + arch = "x86_64", + build_config = "build.config.crashdump.x86_64", + make_goals = [ + "bzImage", + ], +) + +copy_to_dist_dir( + name = "kernel_x86_64_crashdump_dist", + data = [ + ":kernel_x86_64_crashdump", + ], + dist_dir = "out/kernel_x86_64_crashdump/dist", + flat = True, + log = "info", +) + _DB845C_MODULE_OUTS = [ # keep sorted "crypto/michael_mic.ko", diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb index d71ce6cc1c7c..b93c5ad0cccd 100644 --- a/Documentation/ABI/testing/sysfs-bus-usb +++ b/Documentation/ABI/testing/sysfs-bus-usb @@ -264,6 +264,17 @@ Description: attached to the port will not be detected, initialized, or enumerated. +What: /sys/bus/usb/devices/...//port/early_stop +Date: Sep 2022 +Contact: Ray Chi +Description: + Some USB hosts have some watchdog mechanisms so that the device + may enter ramdump if it takes a long time during port initialization. + This attribute allows each port just has two attempts so that the + port initialization will be failed quickly. In addition, if a port + which is marked with early_stop has failed to initialize, it will ignore + all future connections until this attribute is clear. + What: /sys/bus/usb/devices/...//port/state Date: June 2023 Contact: Roy Luo diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst index dc254a3cb956..632bba4e8a1d 100644 --- a/Documentation/admin-guide/cgroup-v2.rst +++ b/Documentation/admin-guide/cgroup-v2.rst @@ -2015,31 +2015,33 @@ that attribute: no-change Do not modify the I/O priority class. - none-to-rt - For requests that do not have an I/O priority class (NONE), - change the I/O priority class into RT. Do not modify - the I/O priority class of other requests. + promote-to-rt + For requests that have a non-RT I/O priority class, change it into RT. + Also change the priority level of these requests to 4. Do not modify + the I/O priority of requests that have priority class RT. restrict-to-be For requests that do not have an I/O priority class or that have I/O - priority class RT, change it into BE. Do not modify the I/O priority - class of requests that have priority class IDLE. + priority class RT, change it into BE. Also change the priority level + of these requests to 0. Do not modify the I/O priority class of + requests that have priority class IDLE. idle Change the I/O priority class of all requests into IDLE, the lowest I/O priority class. + none-to-rt + Deprecated. Just an alias for promote-to-rt. + The following numerical values are associated with the I/O priority policies: -+-------------+---+ -| no-change | 0 | -+-------------+---+ -| none-to-rt | 1 | -+-------------+---+ -| rt-to-be | 2 | -+-------------+---+ -| all-to-idle | 3 | -+-------------+---+ ++----------------+---+ +| no-change | 0 | ++----------------+---+ +| rt-to-be | 2 | ++----------------+---+ +| all-to-idle | 3 | ++----------------+---+ The numerical value that corresponds to each I/O priority class is as follows: @@ -2055,9 +2057,13 @@ The numerical value that corresponds to each I/O priority class is as follows: The algorithm to set the I/O priority class for a request is as follows: -- Translate the I/O priority class policy into a number. -- Change the request I/O priority class into the maximum of the I/O priority - class policy number and the numerical I/O priority class. +- If I/O priority class policy is promote-to-rt, change the request I/O + priority class to IOPRIO_CLASS_RT and change the request I/O priority + level to 4. +- If I/O priorityt class is not promote-to-rt, translate the I/O priority + class policy into a number, then change the request I/O priority class + into the maximum of the I/O priority class policy number and the numerical + I/O priority class. PID --- diff --git a/Documentation/filesystems/erofs.rst b/Documentation/filesystems/erofs.rst index 05e03d54af1a..df681e4391c0 100644 --- a/Documentation/filesystems/erofs.rst +++ b/Documentation/filesystems/erofs.rst @@ -34,8 +34,14 @@ Here is the main features of EROFS: - Little endian on-disk design; - - 4KiB block size and 32-bit block addresses, therefore 16TiB address space - at most for now; + - Block-based distribution and file-based distribution over fscache are + supported; + + - Support multiple devices to refer to external blobs, which can be used + for container images; + + - 32-bit block addresses for each device, therefore 16TiB address space at + most with 4KiB block size for now; - Two inode layouts for different requirements: diff --git a/android/ACK_SHA b/android/ACK_SHA index b12566242bc3..946be38b980f 100644 --- a/android/ACK_SHA +++ b/android/ACK_SHA @@ -1,2 +1,2 @@ -7c8cdb3894d30a697255b8940719f9fde86e2741 -android14-6.1-2023-09_r3 +fffe3966fa735fa5b94b8f36b9ace8e99eb32a82 +android14-6.1-2023-10_r2 diff --git a/android/abi_gki_aarch64.stg b/android/abi_gki_aarch64.stg index 23b4bcc56ef3..dfe46101aa18 100644 --- a/android/abi_gki_aarch64.stg +++ b/android/abi_gki_aarch64.stg @@ -893,6 +893,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x27461240 } +pointer_reference { + id: 0x034b35b4 + kind: POINTER + pointee_type_id: 0x276c304c +} pointer_reference { id: 0x035330ac kind: POINTER @@ -2003,6 +2008,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x37265f81 } +pointer_reference { + id: 0x076327a3 + kind: POINTER + pointee_type_id: 0x37cc7810 +} pointer_reference { id: 0x07665a1f kind: POINTER @@ -2518,6 +2528,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x0f54a4fe } +pointer_reference { + id: 0x0945c216 + kind: POINTER + pointee_type_id: 0x0f57eec7 +} pointer_reference { id: 0x09483d5e kind: POINTER @@ -3528,6 +3543,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x1b77cf3e } +pointer_reference { + id: 0x0c5168e8 + kind: POINTER + pointee_type_id: 0x1b05453e +} pointer_reference { id: 0x0c55d62d kind: POINTER @@ -4133,6 +4153,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x19d93429 } +pointer_reference { + id: 0x0ce80834 + kind: POINTER + pointee_type_id: 0x19e0c64c +} pointer_reference { id: 0x0ce9a2bb kind: POINTER @@ -4518,6 +4543,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x1e9be71c } +pointer_reference { + id: 0x0d36eefe + kind: POINTER + pointee_type_id: 0x1e9b5d67 +} pointer_reference { id: 0x0d370eee kind: POINTER @@ -4763,6 +4793,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x1fee56e5 } +pointer_reference { + id: 0x0d6c28a3 + kind: POINTER + pointee_type_id: 0x1ff04410 +} pointer_reference { id: 0x0d6cb897 kind: POINTER @@ -5168,6 +5203,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x1c88dd20 } +pointer_reference { + id: 0x0db22504 + kind: POINTER + pointee_type_id: 0x1c88728f +} pointer_reference { id: 0x0db25a6d kind: POINTER @@ -5593,6 +5633,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x12c0cb4c } +pointer_reference { + id: 0x0e211675 + kind: POINTER + pointee_type_id: 0x12c4bf48 +} pointer_reference { id: 0x0e211c44 kind: POINTER @@ -5603,6 +5648,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x12c79320 } +pointer_reference { + id: 0x0e2271e2 + kind: POINTER + pointee_type_id: 0x12c92116 +} pointer_reference { id: 0x0e22e25f kind: POINTER @@ -8053,6 +8103,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x6fb840c8 } +pointer_reference { + id: 0x117e85f5 + kind: POINTER + pointee_type_id: 0x6fbaf148 +} pointer_reference { id: 0x118d97cb kind: POINTER @@ -8243,6 +8298,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x6054a6ab } +pointer_reference { + id: 0x128a8a58 + kind: POINTER + pointee_type_id: 0x606acffd +} pointer_reference { id: 0x1291c430 kind: POINTER @@ -8368,6 +8428,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x668004f3 } +pointer_reference { + id: 0x13323bbb + kind: POINTER + pointee_type_id: 0x66880871 +} pointer_reference { id: 0x1333434c kind: POINTER @@ -8538,6 +8603,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x7a249348 } +pointer_reference { + id: 0x14199568 + kind: POINTER + pointee_type_id: 0x7a26b33d +} pointer_reference { id: 0x141d28a8 kind: POINTER @@ -9018,6 +9088,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x708fc0fe } +pointer_reference { + id: 0x16b45c7f + kind: POINTER + pointee_type_id: 0x70919762 +} pointer_reference { id: 0x16b46fbd kind: POINTER @@ -9028,6 +9103,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x71511504 } +pointer_reference { + id: 0x16c5c0ab + kind: POINTER + pointee_type_id: 0x7157e430 +} pointer_reference { id: 0x16df644d kind: POINTER @@ -10503,6 +10583,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x5fd666ab } +pointer_reference { + id: 0x1d6b5d95 + kind: POINTER + pointee_type_id: 0x5fed90c9 +} pointer_reference { id: 0x1d6e33e5 kind: POINTER @@ -10788,6 +10873,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x5057492d } +pointer_reference { + id: 0x1e85f467 + kind: POINTER + pointee_type_id: 0x50573700 +} pointer_reference { id: 0x1e870478 kind: POINTER @@ -11883,6 +11973,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xa405746d } +pointer_reference { + id: 0x239187d3 + kind: POINTER + pointee_type_id: 0xa406f9d2 +} pointer_reference { id: 0x23947191 kind: POINTER @@ -12168,6 +12263,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xb99f29b6 } +pointer_reference { + id: 0x24f9cd24 + kind: POINTER + pointee_type_id: 0xb9a7d20f +} pointer_reference { id: 0x250095e2 kind: POINTER @@ -12433,6 +12533,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xb0090c73 } +pointer_reference { + id: 0x2696c21b + kind: POINTER + pointee_type_id: 0xb01beef1 +} pointer_reference { id: 0x269af4e9 kind: POINTER @@ -12818,6 +12923,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x88c7ff3b } +pointer_reference { + id: 0x28a3a74b + kind: POINTER + pointee_type_id: 0x88ce7bb2 +} pointer_reference { id: 0x28ac1164 kind: POINTER @@ -13103,6 +13213,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x8d58e470 } +pointer_reference { + id: 0x29c64ab1 + kind: POINTER + pointee_type_id: 0x8d59cc59 +} pointer_reference { id: 0x29ccb7ed kind: POINTER @@ -13513,6 +13628,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x84be8096 } +pointer_reference { + id: 0x2bc65a97 + kind: POINTER + pointee_type_id: 0x85598cc2 +} pointer_reference { id: 0x2bc93f35 kind: POINTER @@ -15748,6 +15868,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x9921a72c } +pointer_reference { + id: 0x2cd8a9c9 + kind: POINTER + pointee_type_id: 0x992241b9 +} pointer_reference { id: 0x2cd9dff0 kind: POINTER @@ -16348,6 +16473,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x9e071849 } +pointer_reference { + id: 0x2d12100b + kind: POINTER + pointee_type_id: 0x9e08a6b2 +} pointer_reference { id: 0x2d126960 kind: POINTER @@ -16768,6 +16898,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x9eb7e15e } +pointer_reference { + id: 0x2d3dc4f9 + kind: POINTER + pointee_type_id: 0x9eb7f57a +} pointer_reference { id: 0x2d3df092 kind: POINTER @@ -16963,6 +17098,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x9f1dcaea } +pointer_reference { + id: 0x2d591a0e + kind: POINTER + pointee_type_id: 0x9f248ea4 +} pointer_reference { id: 0x2d594ead kind: POINTER @@ -17078,6 +17218,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x9fd1a709 } +pointer_reference { + id: 0x2d645d4d + kind: POINTER + pointee_type_id: 0x9fd193aa +} pointer_reference { id: 0x2d646f41 kind: POINTER @@ -19418,6 +19563,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x93907678 } +pointer_reference { + id: 0x2e747a05 + kind: POINTER + pointee_type_id: 0x93910e88 +} pointer_reference { id: 0x2e7505e0 kind: POINTER @@ -21788,6 +21938,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x9511594d } +pointer_reference { + id: 0x2fd4f232 + kind: POINTER + pointee_type_id: 0x95132e54 +} pointer_reference { id: 0x2fd86c98 kind: POINTER @@ -22123,6 +22278,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xeabee0bd } +pointer_reference { + id: 0x30408c71 + kind: POINTER + pointee_type_id: 0xeb42d758 +} pointer_reference { id: 0x3043f6b1 kind: POINTER @@ -22188,6 +22348,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xebd0e7ee } +pointer_reference { + id: 0x3064f970 + kind: POINTER + pointee_type_id: 0xebd3035e +} pointer_reference { id: 0x30650ba6 kind: POINTER @@ -22638,6 +22803,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xef9a648b } +pointer_reference { + id: 0x31790b1e + kind: POINTER + pointee_type_id: 0xefa4cae6 +} pointer_reference { id: 0x31829648 kind: POINTER @@ -22953,6 +23123,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xe3685372 } +pointer_reference { + id: 0x324ddec3 + kind: POINTER + pointee_type_id: 0xe3779d93 +} pointer_reference { id: 0x324e6996 kind: POINTER @@ -23313,6 +23488,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xe620f747 } +pointer_reference { + id: 0x331a1d7a + kind: POINTER + pointee_type_id: 0xe6289375 +} pointer_reference { id: 0x331a85e3 kind: POINTER @@ -24478,6 +24658,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xfff5e6f7 } +pointer_reference { + id: 0x356e4b27 + kind: POINTER + pointee_type_id: 0xfff9ca03 +} pointer_reference { id: 0x35737846 kind: POINTER @@ -24758,6 +24943,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xfda4bf28 } +pointer_reference { + id: 0x35feb7e2 + kind: POINTER + pointee_type_id: 0xfdba3915 +} pointer_reference { id: 0x36042134 kind: POINTER @@ -25718,6 +25908,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xca5a7101 } +pointer_reference { + id: 0x380882e7 + kind: POINTER + pointee_type_id: 0xca62ed00 +} pointer_reference { id: 0x3808938b kind: POINTER @@ -25733,6 +25928,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xca69055f } +pointer_reference { + id: 0x380c33d1 + kind: POINTER + pointee_type_id: 0xca7029d8 +} pointer_reference { id: 0x381472e2 kind: POINTER @@ -26453,6 +26653,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xcc81b8d3 } +pointer_reference { + id: 0x39b2ba38 + kind: POINTER + pointee_type_id: 0xcc8a0e7e +} pointer_reference { id: 0x39b425bc kind: POINTER @@ -26808,6 +27013,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xc032f3e5 } +pointer_reference { + id: 0x3a9d5bb9 + kind: POINTER + pointee_type_id: 0xc035887a +} pointer_reference { id: 0x3aac87ab kind: POINTER @@ -27123,6 +27333,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xc733e2de } +pointer_reference { + id: 0x3b622f67 + kind: POINTER + pointee_type_id: 0xc7c85b01 +} pointer_reference { id: 0x3b66c89b kind: POINTER @@ -27223,6 +27438,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xc4e323c9 } +pointer_reference { + id: 0x3ba909c1 + kind: POINTER + pointee_type_id: 0xc4e4c198 +} pointer_reference { id: 0x3baacc82 kind: POINTER @@ -27233,6 +27453,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xc4f6e4f3 } +pointer_reference { + id: 0x3bb0740c + kind: POINTER + pointee_type_id: 0xc48136af +} pointer_reference { id: 0x3bb11c92 kind: POINTER @@ -27308,6 +27533,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xc5e27af4 } +pointer_reference { + id: 0x3beb3e50 + kind: POINTER + pointee_type_id: 0xc5ec1fdd +} pointer_reference { id: 0x3bedc96c kind: POINTER @@ -27433,6 +27663,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xdb44b469 } +pointer_reference { + id: 0x3c417e01 + kind: POINTER + pointee_type_id: 0xdb451e9a +} pointer_reference { id: 0x3c41c19b kind: POINTER @@ -27538,6 +27773,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xdbcfcd34 } +pointer_reference { + id: 0x3c692b7e + kind: POINTER + pointee_type_id: 0xdbe44b66 +} pointer_reference { id: 0x3c6a6bbc kind: POINTER @@ -27808,6 +28048,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xdf713fb7 } +pointer_reference { + id: 0x3d52d75b + kind: POINTER + pointee_type_id: 0xdf0bbbf0 +} pointer_reference { id: 0x3d551c03 kind: POINTER @@ -28663,6 +28908,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xd69f81c9 } +pointer_reference { + id: 0x3f387468 + kind: POINTER + pointee_type_id: 0xd6a1373c +} pointer_reference { id: 0x3f3cd89a kind: POINTER @@ -29303,6 +29553,11 @@ typedef { name: "blk_opf_t" referred_type_id: 0xe62ebf07 } +typedef { + id: 0x1684c624 + name: "blk_plug_cb_fn" + referred_type_id: 0x0c5168e8 +} typedef { id: 0x3cc4e4dd name: "blk_qc_t" @@ -29888,6 +30143,11 @@ typedef { name: "iommu_fault_handler_t" referred_type_id: 0x2f184276 } +typedef { + id: 0x0b098126 + name: "irq_cpustat_t" + referred_type_id: 0x3b85198b +} typedef { id: 0xb0c2eb21 name: "irq_flow_handler_t" @@ -31123,6 +31383,11 @@ typedef { name: "xa_mark_t" referred_type_id: 0x4585663f } +typedef { + id: 0xa7efd65a + name: "xa_update_node_t" + referred_type_id: 0x0d6c28a3 +} typedef { id: 0x313397f7 name: "xfrm_address_t" @@ -31168,6 +31433,11 @@ qualified { qualifier: CONST qualified_type_id: 0x70d15e47 } +qualified { + id: 0xc035887a + qualifier: CONST + qualified_type_id: 0x70919762 +} qualified { id: 0xc04414ae qualifier: CONST @@ -31328,6 +31598,11 @@ qualified { qualifier: CONST qualified_type_id: 0x6101d583 } +qualified { + id: 0xc48136af + qualifier: CONST + qualified_type_id: 0x62436c35 +} qualified { id: 0xc48494d4 qualifier: CONST @@ -31398,6 +31673,11 @@ qualified { qualifier: CONST qualified_type_id: 0x67ce5d5b } +qualified { + id: 0xc5ec1fdd + qualifier: CONST + qualified_type_id: 0x67f7c9ff +} qualified { id: 0xc5f7c32f qualifier: CONST @@ -31513,6 +31793,11 @@ qualified { qualifier: CONST qualified_type_id: 0x6e373489 } +qualified { + id: 0xc7c85b01 + qualifier: CONST + qualified_type_id: 0x6f66da8d +} qualified { id: 0xc7dbc4f1 qualifier: CONST @@ -32283,6 +32568,11 @@ qualified { qualifier: CONST qualified_type_id: 0x29d16967 } +qualified { + id: 0xd6a1373c + qualifier: CONST + qualified_type_id: 0x2ac36a79 +} qualified { id: 0xd6b384f7 qualifier: CONST @@ -33018,6 +33308,11 @@ qualified { qualifier: CONST qualified_type_id: 0xfde6fb43 } +qualified { + id: 0xe3779d93 + qualifier: CONST + qualified_type_id: 0xfd99c0c6 +} qualified { id: 0xe3791aa0 qualifier: CONST @@ -33458,6 +33753,11 @@ qualified { qualifier: CONST qualified_type_id: 0xdf042930 } +qualified { + id: 0xebd3035e + qualifier: CONST + qualified_type_id: 0xdf0bbbf0 +} qualified { id: 0xebd4c806 qualifier: CONST @@ -34493,6 +34793,11 @@ qualified { qualifier: CONST qualified_type_id: 0x8f902d54 } +qualified { + id: 0xfff9ca03 + qualifier: CONST + qualified_type_id: 0x8fa09e85 +} primitive { id: 0x15053314 name: "double" @@ -37327,6 +37632,10 @@ array { id: 0xc81b91b5 element_type_id: 0x30887d17 } +array { + id: 0xc82f70f4 + element_type_id: 0x305bf810 +} array { id: 0xc8c766a0 number_of_elements: 8 @@ -37370,6 +37679,10 @@ array { number_of_elements: 26 element_type_id: 0x295c7202 } +array { + id: 0xcb703345 + element_type_id: 0x3d26f6d4 +} array { id: 0xcbd8574f element_type_id: 0x3f8766fd @@ -37997,6 +38310,11 @@ array { number_of_elements: 15 element_type_id: 0x384f7d7c } +array { + id: 0xf95ab7ac + number_of_elements: 15 + element_type_id: 0x3e10b518 +} array { id: 0xf95fb1e4 number_of_elements: 8 @@ -38555,6 +38873,11 @@ member { type_id: 0x4f2326f3 offset: 1280 } +member { + id: 0x300b2d2f + type_id: 0x4f02e8cc + offset: 512 +} member { id: 0x300b75af type_id: 0x4f03a6ae @@ -39397,6 +39720,11 @@ member { type_id: 0x68d21466 offset: 256 } +member { + id: 0x3a3b9c87 + type_id: 0x67c0081f + offset: 1984 +} member { id: 0x3a3e30f1 type_id: 0x67d69fb5 @@ -40860,6 +41188,11 @@ member { name: "__sk_common" type_id: 0x61a74d47 } +member { + id: 0x8fa57542 + name: "__softirq_pending" + type_id: 0x4585663f +} member { id: 0x11319dfd name: "__stack" @@ -44028,6 +44361,12 @@ member { type_id: 0x18bd6530 offset: 384 } +member { + id: 0xd5613ffc + name: "afbc_size" + type_id: 0xc9082b19 + offset: 1760 +} member { id: 0x9aeabf13 name: "afc" @@ -44197,6 +44536,11 @@ member { type_id: 0x6720d32f offset: 576 } +member { + id: 0x2777335c + name: "alg" + type_id: 0xdabf4001 +} member { id: 0x2784b70a name: "alg" @@ -44344,6 +44688,24 @@ member { type_id: 0x0b395893 offset: 8192 } +member { + id: 0xdeafe619 + name: "aligned_height" + type_id: 0xc9082b19 + offset: 1696 +} +member { + id: 0x6db01f09 + name: "aligned_width" + type_id: 0xc9082b19 + offset: 1664 +} +member { + id: 0x9d7710c5 + name: "alignmask" + type_id: 0x4585663f + offset: 1152 +} member { id: 0x361dfe02 name: "alignment" @@ -51400,6 +51762,17 @@ member { name: "base" type_id: 0xec967f20 } +member { + id: 0x85378cb8 + name: "base" + type_id: 0xed62338c +} +member { + id: 0x8544c9f4 + name: "base" + type_id: 0x9e2c67f2 + offset: 512 +} member { id: 0x85481c0d name: "base" @@ -51549,6 +51922,12 @@ member { type_id: 0x2ac43c51 offset: 128 } +member { + id: 0x85f3d282 + name: "base" + type_id: 0x293b162f + offset: 1024 +} member { id: 0x85f3de85 name: "base" @@ -52392,6 +52771,12 @@ member { type_id: 0xa5960bec offset: 192 } +member { + id: 0x5e2b88f3 + name: "bh" + type_id: 0xa5960bec + offset: 832 +} member { id: 0xb592ec0b name: "bhash" @@ -53464,6 +53849,12 @@ member { type_id: 0x861a0f9a offset: 112 } +member { + id: 0xdb864134 + name: "block_height" + type_id: 0xc9082b19 + offset: 1632 +} member { id: 0x215a13ec name: "block_len" @@ -53530,6 +53921,12 @@ member { type_id: 0x861a0f9a offset: 104 } +member { + id: 0x3b9c97de + name: "block_width" + type_id: 0xc9082b19 + offset: 1600 +} member { id: 0x82470e87 name: "blocked" @@ -53619,6 +54016,12 @@ member { type_id: 0x4585663f offset: 224 } +member { + id: 0x89cc162f + name: "blocksize" + type_id: 0x4585663f + offset: 1088 +} member { id: 0x9d6f12e1 name: "blue" @@ -53715,6 +54118,12 @@ member { type_id: 0xb3e7bac9 offset: 40 } +member { + id: 0x6b1b4f66 + name: "bmNtbFormatsSupported" + type_id: 0x9bd401b6 + offset: 16 +} member { id: 0xb0e7ec93 name: "bmSublinkSpeedAttr" @@ -55161,6 +55570,12 @@ member { name: "buffer" type_id: 0x0483e6f8 } +member { + id: 0x33decf44 + name: "buffer" + type_id: 0x00c72527 + offset: 832 +} member { id: 0x33e6ba8e name: "buffer" @@ -55371,6 +55786,12 @@ member { type_id: 0xd3c80119 offset: 576 } +member { + id: 0xc0824dc3 + name: "buffers" + type_id: 0xd3c80119 + offset: 640 +} member { id: 0x803be3e4 name: "buffersize" @@ -57233,6 +57654,12 @@ member { name: "callback" type_id: 0x0ed1d747 } +member { + id: 0x56f376f1 + name: "callback" + type_id: 0x1684c624 + offset: 128 +} member { id: 0x56a72054 name: "callback_head" @@ -58468,6 +58895,12 @@ member { type_id: 0x60ca2c23 offset: 32 } +member { + id: 0xbf43ebf0 + name: "cdc_filter" + type_id: 0x914dbfdc + offset: 1936 +} member { id: 0x058b41dc name: "cdev" @@ -60099,6 +60532,18 @@ member { type_id: 0x2b8f13b3 offset: 256 } +member { + id: 0x1024996f + name: "chosen" + type_id: 0x1d19a9d5 + offset: 320 +} +member { + id: 0x3d099644 + name: "chosen_points" + type_id: 0xfc0e1dbd + offset: 384 +} member { id: 0x697fbc8c name: "chrdev" @@ -61638,6 +62083,12 @@ member { type_id: 0x0e1719d7 offset: 64 } +member { + id: 0xcd7ec6ac + name: "close" + type_id: 0x0d36eefe + offset: 2304 +} member { id: 0xcd7edc4f name: "close" @@ -64527,6 +64978,12 @@ member { type_id: 0x6720d32f offset: 384 } +member { + id: 0xaf3405ec + name: "constraint" + type_id: 0x6df42b18 + offset: 448 +} member { id: 0x02afc8a1 name: "constraint_set_flags" @@ -64828,6 +65285,12 @@ member { type_id: 0x2bb39ba6 offset: 2176 } +member { + id: 0xfc1d642c + name: "control" + type_id: 0x21069feb + offset: 1472 +} member { id: 0xfc37c610 name: "control" @@ -68576,6 +69039,12 @@ member { type_id: 0xc93e017b offset: 16 } +member { + id: 0xc325cba2 + name: "d" + type_id: 0x3f0185ef + offset: 128 +} member { id: 0x8b60974a name: "d1_support" @@ -68890,6 +69359,12 @@ member { type_id: 0xd3c80119 offset: 1280 } +member { + id: 0xcc4dd9fb + name: "d_sz" + type_id: 0xf435685e + offset: 640 +} member { id: 0x8fb0e835 name: "d_term_en" @@ -69658,6 +70133,12 @@ member { type_id: 0x20fd6195 offset: 64 } +member { + id: 0xffb32814 + name: "data" + type_id: 0x21069feb + offset: 1536 +} member { id: 0xffb530a9 name: "data" @@ -70772,6 +71253,12 @@ member { type_id: 0x6720d32f offset: 256 } +member { + id: 0x74a266cc + name: "debounce_time" + type_id: 0x4585663f + offset: 96 +} member { id: 0x070a913d name: "debug" @@ -71197,6 +71684,12 @@ member { type_id: 0x2ed391e2 offset: 192 } +member { + id: 0x70fa6b40 + name: "decrypt" + type_id: 0x2cd8a9c9 + offset: 192 +} member { id: 0x70fa8381 name: "decrypt" @@ -71856,6 +72349,16 @@ member { type_id: 0x6d7f5ff6 offset: 3072 } +member { + id: 0xc43f5f8d + name: "delayed_ndp16" + type_id: 0x3ba909c1 +} +member { + id: 0xd408f584 + name: "delayed_ndp32" + type_id: 0x35feb7e2 +} member { id: 0x506f3dc2 name: "delayed_runtime" @@ -72405,6 +72908,12 @@ member { type_id: 0x0483e6f8 offset: 1344 } +member { + id: 0x87e0b654 + name: "desc" + type_id: 0x3a9d5bb9 + offset: 7872 +} member { id: 0x87e3bc35 name: "desc" @@ -73447,6 +73956,12 @@ member { type_id: 0x1042c9d1 offset: 192 } +member { + id: 0xce34257f + name: "dev" + type_id: 0x0dc9e98b + offset: 1152 +} member { id: 0xce3495b5 name: "dev" @@ -73902,6 +74417,12 @@ member { type_id: 0xd3c80119 offset: 832 } +member { + id: 0x770654c6 + name: "dev_mac" + type_id: 0xabf64f28 + offset: 1544 +} member { id: 0x31c5367f name: "dev_mapping" @@ -74986,6 +75507,12 @@ member { type_id: 0x0537192f offset: 192 } +member { + id: 0x1ea56ad0 + name: "devnode" + type_id: 0x053432a7 + offset: 64 +} member { id: 0x1ea56fa3 name: "devnode" @@ -75770,6 +76297,12 @@ member { type_id: 0x2d078518 offset: 960 } +member { + id: 0x0da0f708 + name: "disable" + type_id: 0x2d12100b + offset: 64 +} member { id: 0x0da0f771 name: "disable" @@ -77538,12 +78071,24 @@ member { name: "dp" type_id: 0x80ba3719 } +member { + id: 0x55f0c48b + name: "dp" + type_id: 0x3f0185ef + offset: 320 +} member { id: 0x1e95895b name: "dp_subconnector_property" type_id: 0x2a670b41 offset: 7424 } +member { + id: 0x086093bd + name: "dp_sz" + type_id: 0xf435685e + offset: 832 +} member { id: 0x93b48e83 name: "dpa" @@ -77608,6 +78153,18 @@ member { offset: 1034 bitsize: 1 } +member { + id: 0xab0f277e + name: "dpe16" + type_id: 0xc82f70f4 + offset: 64 +} +member { + id: 0x015a8ae1 + name: "dpe32" + type_id: 0xcb703345 + offset: 128 +} member { id: 0x32a55865 name: "dpipe_headers" @@ -77682,6 +78239,12 @@ member { type_id: 0x3e79e71f offset: 1056 } +member { + id: 0x12302e1a + name: "dq" + type_id: 0x3f0185ef + offset: 384 +} member { id: 0x535fdeda name: "dq_count" @@ -77765,6 +78328,12 @@ member { type_id: 0x26ee682a offset: 960 } +member { + id: 0x8d88c04b + name: "dq_sz" + type_id: 0xf435685e + offset: 896 +} member { id: 0xdae271b1 name: "dqb_bhardlimit" @@ -78611,6 +79180,12 @@ member { type_id: 0x18bd6530 offset: 192 } +member { + id: 0xbf6a10c0 + name: "drvflags" + type_id: 0x6720d32f + offset: 1824 +} member { id: 0xacd4449f name: "drvpriv" @@ -78826,12 +79401,24 @@ member { type_id: 0x6d25e07f offset: 128 } +member { + id: 0xbbab7e83 + name: "dst" + type_id: 0x5ade635b + offset: 128 +} member { id: 0xbbb264ba name: "dst" type_id: 0x43c73e81 offset: 896 } +member { + id: 0xbbe061af + name: "dst" + type_id: 0x11cffa09 + offset: 448 +} member { id: 0xbbe06e11 name: "dst" @@ -78946,6 +79533,12 @@ member { type_id: 0x6d7f5ff6 offset: 168 } +member { + id: 0x352c27f4 + name: "dst_len" + type_id: 0x4585663f + offset: 544 +} member { id: 0x35da4011 name: "dst_len" @@ -79586,6 +80179,46 @@ member { name: "dwDTERate" type_id: 0x0baa70a7 } +member { + id: 0x09ca9dd2 + name: "dwDatagramIndex" + type_id: 0x0baa70a7 +} +member { + id: 0x348d64a1 + name: "dwDatagramLength" + type_id: 0x0baa70a7 + offset: 32 +} +member { + id: 0x6e82996c + name: "dwNextNdpIndex" + type_id: 0x0baa70a7 + offset: 64 +} +member { + id: 0x7000a99b + name: "dwNtbInMaxSize" + type_id: 0x0baa70a7 + offset: 32 +} +member { + id: 0xc1f69c16 + name: "dwNtbOutMaxSize" + type_id: 0x0baa70a7 + offset: 128 +} +member { + id: 0x46e37740 + name: "dwReserved12" + type_id: 0x0baa70a7 + offset: 96 +} +member { + id: 0x1e7efd51 + name: "dwSignature" + type_id: 0x0baa70a7 +} member { id: 0x301130d9 name: "dword_0" @@ -79751,6 +80384,12 @@ member { type_id: 0x007e8ce4 offset: 32 } +member { + id: 0x87e623f5 + name: "e" + type_id: 0x3f0185ef + offset: 64 +} member { id: 0x8d6d2188 name: "e1000_base_cx" @@ -79864,6 +80503,12 @@ member { type_id: 0xc93e017b offset: 16 } +member { + id: 0xab258a23 + name: "e_sz" + type_id: 0xf435685e + offset: 576 +} member { id: 0x8c50076a name: "e_tag" @@ -80712,6 +81357,11 @@ member { type_id: 0x2d078518 offset: 896 } +member { + id: 0x98ca1d0f + name: "enable" + type_id: 0x2d12100b +} member { id: 0x98ca2102 name: "enable" @@ -80801,6 +81451,12 @@ member { type_id: 0x74d29cf1 offset: 22144 } +member { + id: 0x7a5a9024 + name: "enable_count" + type_id: 0xc9082b19 + offset: 7808 +} member { id: 0x7a5a9508 name: "enable_count" @@ -81370,6 +82026,12 @@ member { type_id: 0x2c316317 offset: 64 } +member { + id: 0x893e9a51 + name: "encrypt" + type_id: 0x2cd8a9c9 + offset: 128 +} member { id: 0x897f3adb name: "encrypt" @@ -82836,6 +83498,12 @@ member { type_id: 0xb3e7bac9 offset: 112 } +member { + id: 0x48630da5 + name: "ether_desc" + type_id: 0x3f387468 + offset: 1408 +} member { id: 0xedf651c0 name: "ether_spec" @@ -83300,6 +83968,12 @@ member { type_id: 0xcd74e255 offset: 1984 } +member { + id: 0x8daeae65 + name: "event_type" + type_id: 0xc9082b19 + offset: 64 +} member { id: 0x8dfc7230 name: "event_type" @@ -83782,6 +84456,12 @@ member { type_id: 0x0d301752 offset: 1792 } +member { + id: 0x0d2e2ebd + name: "exit" + type_id: 0x0e2271e2 + offset: 512 +} member { id: 0x0d2e75d7 name: "exit" @@ -84211,6 +84891,11 @@ member { type_id: 0x4585663f offset: 608 } +member { + id: 0xbd3cd538 + name: "expkey" + type_id: 0x668e8237 +} member { id: 0x01992270 name: "explicit_contract" @@ -88205,6 +88890,18 @@ member { type_id: 0x6720d32f offset: 8032 } +member { + id: 0x7fd91e93 + name: "fixed_in_len" + type_id: 0xc9082b19 + offset: 2048 +} +member { + id: 0x09807f7a + name: "fixed_out_len" + type_id: 0xc9082b19 + offset: 2016 +} member { id: 0x2899a5e8 name: "fixed_rate" @@ -88555,6 +89252,12 @@ member { type_id: 0x6720d32f offset: 128 } +member { + id: 0x2d0fadac + name: "flags" + type_id: 0x6720d32f + offset: 1056 +} member { id: 0x2d0fadff name: "flags" @@ -91633,6 +92336,11 @@ member { type_id: 0x0d364e53 offset: 320 } +member { + id: 0xfeafbaf6 + name: "free" + type_id: 0x0db22504 +} member { id: 0xfeafc015 name: "free" @@ -92909,6 +93617,12 @@ member { type_id: 0x3af3fd37 offset: 192 } +member { + id: 0xaab5e3db + name: "func_desc" + type_id: 0x3beb3e50 + offset: 1216 +} member { id: 0x74d098cf name: "func_id" @@ -93463,6 +94177,12 @@ member { type_id: 0x25653b02 offset: 1728 } +member { + id: 0x1875f880 + name: "gadget" + type_id: 0x25653b02 + offset: 192 +} member { id: 0x2c80bff4 name: "gadget_driver" @@ -94349,6 +95069,12 @@ member { type_id: 0x0db9efe5 offset: 1600 } +member { + id: 0xd77c9cbe + name: "get_event" + type_id: 0x2d3dc4f9 + offset: 256 +} member { id: 0xad0b27c9 name: "get_features" @@ -95634,6 +96360,12 @@ member { name: "gfp_mask" type_id: 0xf1a6dfed } +member { + id: 0xa4b05168 + name: "gfp_mask" + type_id: 0xe0785a59 + offset: 192 +} member { id: 0xa4b05766 name: "gfp_mask" @@ -98322,6 +99054,11 @@ member { type_id: 0x3e6239e1 offset: 64 } +member { + id: 0xb56701d9 + name: "head" + type_id: 0x3db8d8c8 +} member { id: 0xb568e1b3 name: "head" @@ -98538,6 +99275,18 @@ member { type_id: 0xc93e017b offset: 480 } +member { + id: 0x7a0a7faf + name: "header_len" + type_id: 0xc9082b19 + offset: 1952 +} +member { + id: 0x7a86fcdb + name: "header_len" + type_id: 0x4585663f + offset: 864 +} member { id: 0x7aa45c87 name: "header_len" @@ -99554,6 +100303,12 @@ member { type_id: 0x3654c061 offset: 448 } +member { + id: 0x4af00a54 + name: "host_mac" + type_id: 0xabf64f28 + offset: 1496 +} member { id: 0x0b5b9055 name: "host_no" @@ -103590,6 +104345,12 @@ member { type_id: 0x42201dce offset: 1376 } +member { + id: 0x41e064b8 + name: "ifname_set" + type_id: 0x6d7f5ff6 + offset: 1488 +} member { id: 0xe955f32e name: "ifr_ifrn" @@ -104120,6 +104881,12 @@ member { type_id: 0xff8884d8 offset: 64 } +member { + id: 0x5c6f2950 + name: "in" + type_id: 0xc440583a + offset: 256 +} member { id: 0x5c99cb61 name: "in" @@ -104227,6 +104994,12 @@ member { offset: 34 bitsize: 1 } +member { + id: 0x37e14132 + name: "in_ep" + type_id: 0x0e2680c2 + offset: 1792 +} member { id: 0xe760cbcd name: "in_epnum" @@ -105372,6 +106145,12 @@ member { type_id: 0x2d5e4b40 offset: 1408 } +member { + id: 0x1ac7a60f + name: "init" + type_id: 0x2d645d4d + offset: 448 +} member { id: 0x1ac7a665 name: "init" @@ -107934,6 +108713,12 @@ member { type_id: 0x25eef749 offset: 64 } +member { + id: 0x694d3c49 + name: "ioport" + type_id: 0x29c64ab1 + offset: 1728 +} member { id: 0x695e350f name: "ioport" @@ -109600,6 +110385,12 @@ member { offset: 745 bitsize: 2 } +member { + id: 0x100aab74 + name: "is_fixed" + type_id: 0x6d7f5ff6 + offset: 1984 +} member { id: 0x3952b157 name: "is_frozen" @@ -109827,6 +110618,12 @@ member { offset: 6533 bitsize: 1 } +member { + id: 0xbc20bf07 + name: "is_ndp16" + type_id: 0x295c7202 + offset: 1920 +} member { id: 0x1f3c147c name: "is_nested" @@ -110190,6 +110987,12 @@ member { type_id: 0x6d7f5ff6 offset: 168 } +member { + id: 0x56acdda7 + name: "is_zlp_ok" + type_id: 0x6d7f5ff6 + offset: 1920 +} member { id: 0xfa661c0d name: "isids" @@ -110509,6 +111312,12 @@ member { type_id: 0x2efe8065 offset: 1408 } +member { + id: 0x56ccb987 + name: "iv" + type_id: 0x18bd6530 + offset: 960 +} member { id: 0x56d4cc43 name: "iv" @@ -110527,6 +111336,12 @@ member { type_id: 0x6720d32f offset: 192 } +member { + id: 0x8320112b + name: "ivsize" + type_id: 0x4585663f + offset: 1024 +} member { id: 0x832017a6 name: "ivsize" @@ -110580,6 +111395,12 @@ member { type_id: 0x2c7bd73f offset: 1792 } +member { + id: 0x9f7caab9 + name: "jack_type" + type_id: 0x4585663f + offset: 64 +} member { id: 0x5d9c18bc name: "jack_zones" @@ -116239,6 +117060,11 @@ member { type_id: 0x2ef03743 offset: 192 } +member { + id: 0xd4c95c39 + name: "load_count" + type_id: 0x33756485 +} member { id: 0x387efce1 name: "load_fw" @@ -116852,6 +117678,12 @@ member { type_id: 0xa7c362b0 offset: 9728 } +member { + id: 0x2d4b3012 + name: "lock" + type_id: 0xa7c362b0 + offset: 7424 +} member { id: 0x2d4b30cc name: "lock" @@ -121049,6 +121881,12 @@ member { type_id: 0xe8034002 offset: 64 } +member { + id: 0x3a33fdde + name: "max_datagram_size" + type_id: 0xc9082b19 + offset: 2272 +} member { id: 0x6252d912 name: "max_dec_size" @@ -121598,6 +122436,12 @@ member { type_id: 0x4585663f offset: 2336 } +member { + id: 0xeaccae16 + name: "max_mv" + type_id: 0x4585663f + offset: 32 +} member { id: 0x7b864e19 name: "max_native_cs" @@ -121610,6 +122454,12 @@ member { type_id: 0x6720d32f offset: 160 } +member { + id: 0x90a7314a + name: "max_ndp_size" + type_id: 0xc9082b19 + offset: 1888 +} member { id: 0x4f305ba6 name: "max_newidle_lb_cost" @@ -122199,6 +123049,12 @@ member { type_id: 0x4585663f offset: 64 } +member { + id: 0xcfd59103 + name: "max_size" + type_id: 0x39b2ba38 + offset: 384 +} member { id: 0xc288bba2 name: "max_slices" @@ -122903,6 +123759,18 @@ member { type_id: 0xa84ab8c0 offset: 32 } +member { + id: 0x12ebc87a + name: "mbim_desc" + type_id: 0x324ddec3 + offset: 1280 +} +member { + id: 0x605196d3 + name: "mbim_extended_desc" + type_id: 0x3b622f67 + offset: 1344 +} member { id: 0xaea16832 name: "mbox" @@ -124957,6 +125825,11 @@ member { type_id: 0x4585663f offset: 2304 } +member { + id: 0xa07cb245 + name: "min_mv" + type_id: 0x4585663f +} member { id: 0x31458425 name: "min_nr" @@ -125083,6 +125956,12 @@ member { type_id: 0xb3e7bac9 offset: 7080 } +member { + id: 0x7cb10669 + name: "min_tx_pkt" + type_id: 0x914dbfdc + offset: 2400 +} member { id: 0x47fc27ee name: "min_tx_rate" @@ -125311,6 +126190,12 @@ member { type_id: 0xc9082b19 offset: 3680 } +member { + id: 0xa298fce5 + name: "minor_base" + type_id: 0x6720d32f + offset: 192 +} member { id: 0x850041c9 name: "minor_class" @@ -128115,6 +129000,12 @@ member { type_id: 0x0f626ee5 offset: 640 } +member { + id: 0x3a21c0f4 + name: "mtx" + type_id: 0xf313e71a + offset: 1760 +} member { id: 0x3a75162c name: "mtx" @@ -128493,6 +129384,11 @@ member { type_id: 0x1592957f offset: 2688 } +member { + id: 0x4659cf92 + name: "n" + type_id: 0x3f0185ef +} member { id: 0xc101e64f name: "n2" @@ -128813,6 +129709,12 @@ member { type_id: 0xe62ebf07 offset: 32 } +member { + id: 0x0cc91dc5 + name: "n_sz" + type_id: 0xf435685e + offset: 512 +} member { id: 0xdc10e384 name: "n_tables" @@ -129822,6 +130724,12 @@ member { offset: 8135 bitsize: 1 } +member { + id: 0xf79a533a + name: "native_mode" + type_id: 0x4585663f + offset: 32 +} member { id: 0x24fa7507 name: "native_pcie_hotplug" @@ -129920,6 +130828,11 @@ member { type_id: 0x6720d32f offset: 320 } +member { + id: 0x11638e21 + name: "ncm_parm" + type_id: 0xc4793083 +} member { id: 0xe5f6efa3 name: "ncmd_timer" @@ -131007,6 +131920,12 @@ member { type_id: 0x0ca27481 offset: 704 } +member { + id: 0x723de0ca + name: "net" + type_id: 0x32a623d7 + offset: 128 +} member { id: 0x723dee2d name: "net" @@ -132901,6 +133820,12 @@ member { offset: 275 bitsize: 1 } +member { + id: 0x59c1c7cb + name: "no_skb_reserve" + type_id: 0x6d7f5ff6 + offset: 1480 +} member { id: 0xec4c530d name: "no_sleep" @@ -133374,6 +134299,12 @@ member { type_id: 0x6d7f5ff6 offset: 8696 } +member { + id: 0x788bc17d + name: "nodemask" + type_id: 0x2fb2b385 + offset: 64 +} member { id: 0x8b5fc0c2 name: "nodename" @@ -137060,6 +137991,11 @@ member { offset: 1177 bitsize: 7 } +member { + id: 0x349420c4 + name: "num_timings" + type_id: 0x4585663f +} member { id: 0x8026d50a name: "num_total_plane" @@ -138330,6 +139266,12 @@ member { type_id: 0xdd6eef0a offset: 128 } +member { + id: 0x9bd5d3ca + name: "offset" + type_id: 0xc9082b19 + offset: 1728 +} member { id: 0x9bd5d4ef name: "offset" @@ -138482,6 +139424,12 @@ member { type_id: 0x42201dce offset: 832 } +member { + id: 0xe5a6cde2 + name: "oiv" + type_id: 0x00c72527 + offset: 896 +} member { id: 0x1e0dc421 name: "okfn" @@ -139147,6 +140095,12 @@ member { type_id: 0x11cfee5a offset: 960 } +member { + id: 0xadb9bed8 + name: "open" + type_id: 0x0d36eefe + offset: 2240 +} member { id: 0xadba96dc name: "open" @@ -140020,6 +140974,12 @@ member { type_id: 0x3542336e offset: 576 } +member { + id: 0xafbe6621 + name: "ops" + type_id: 0x356e4b27 + offset: 192 +} member { id: 0xafbed153 name: "ops" @@ -140274,6 +141234,12 @@ member { type_id: 0x2360e10b offset: 256 } +member { + id: 0xb51c2507 + name: "order" + type_id: 0xc5d9d969 + offset: 224 +} member { id: 0xb53fd5a4 name: "order" @@ -140652,6 +141618,12 @@ member { type_id: 0xff8884d8 offset: 160 } +member { + id: 0xb335975f + name: "out" + type_id: 0xc440583a + offset: 448 +} member { id: 0xb396f982 name: "out" @@ -140705,6 +141677,12 @@ member { type_id: 0x34d79405 offset: 128 } +member { + id: 0xbdac13df + name: "out_ep" + type_id: 0x0e2680c2 + offset: 1856 +} member { id: 0x4b42e885 name: "out_epnum" @@ -141530,6 +142508,12 @@ member { type_id: 0x3d7c93df offset: 896 } +member { + id: 0xa68e47c8 + name: "p" + type_id: 0x3f0185ef + offset: 192 +} member { id: 0xa6984880 name: "p" @@ -141757,6 +142741,12 @@ member { name: "p_s64" type_id: 0x0113dde3 } +member { + id: 0x73d7a8f4 + name: "p_sz" + type_id: 0xf435685e + offset: 704 +} member { id: 0x5fce0bc2 name: "p_u16" @@ -142166,6 +143156,17 @@ member { type_id: 0x06835e9c offset: 640 } +member { + id: 0x32051484 + name: "page" + type_id: 0x00c72527 +} +member { + id: 0x32051c2a + name: "page" + type_id: 0x00c72527 + offset: 768 +} member { id: 0x322121cd name: "page" @@ -145990,6 +146991,11 @@ member { name: "phys" type_id: 0x5abe7554 } +member { + id: 0x304c83ff + name: "phys" + type_id: 0x14ca5b0f +} member { id: 0x3065f315 name: "phys" @@ -148910,6 +149916,12 @@ member { type_id: 0x2dde023d offset: 3648 } +member { + id: 0x4b911741 + name: "port_usb" + type_id: 0x380c33d1 + offset: 64 +} member { id: 0xabdfb454 name: "port_write_buf" @@ -154324,6 +155336,12 @@ member { name: "q" type_id: 0x407489b0 } +member { + id: 0xe94def1c + name: "q" + type_id: 0x3f0185ef + offset: 256 +} member { id: 0xe95c6150 name: "q" @@ -154375,6 +155393,12 @@ member { name: "q_node" type_id: 0xd3c80119 } +member { + id: 0x30c8a340 + name: "q_sz" + type_id: 0xf435685e + offset: 768 +} member { id: 0xc5c43282 name: "q_usage_counter" @@ -154475,6 +155499,18 @@ member { type_id: 0x295c7202 offset: 1056 } +member { + id: 0x060b5e2a + name: "qinv" + type_id: 0x3f0185ef + offset: 448 +} +member { + id: 0x112d65f6 + name: "qinv_sz" + type_id: 0xf435685e + offset: 960 +} member { id: 0x9b5b8e67 name: "qlen" @@ -154544,6 +155580,12 @@ member { name: "qmenu_int" type_id: 0x3f74bbde } +member { + id: 0x143073ec + name: "qmult" + type_id: 0x4585663f + offset: 832 +} member { id: 0x91da22df name: "qnbytes" @@ -161574,6 +162616,12 @@ member { type_id: 0x5e8dc7f4 offset: 704 } +member { + id: 0x41836813 + name: "req_lock" + type_id: 0xf313e71a + offset: 256 +} member { id: 0x41d7be50 name: "req_lock" @@ -161743,6 +162791,12 @@ member { type_id: 0x4585663f offset: 32 } +member { + id: 0xa9e8c522 + name: "reqsize" + type_id: 0x4585663f + offset: 576 +} member { id: 0xa9e8c748 name: "reqsize" @@ -163042,6 +164096,12 @@ member { type_id: 0x2d255333 offset: 256 } +member { + id: 0x6290b59b + name: "reset" + type_id: 0x2d12100b + offset: 128 +} member { id: 0x6290e8f3 name: "reset" @@ -167013,6 +168073,12 @@ member { type_id: 0x33756485 offset: 64 } +member { + id: 0xc2e1d78f + name: "rx_frames" + type_id: 0x578f9c2b + offset: 640 +} member { id: 0xa87a1b62 name: "rx_frames_delta" @@ -167125,6 +168191,12 @@ member { name: "rx_mask" type_id: 0x7dbd382e } +member { + id: 0xa064e9a8 + name: "rx_max" + type_id: 0xc9082b19 + offset: 2112 +} member { id: 0xfd4774fd name: "rx_max_coalesced_frames" @@ -167231,6 +168303,12 @@ member { type_id: 0xedf277ba offset: 1472 } +member { + id: 0xb3ff3714 + name: "rx_ntbs" + type_id: 0x92233392 + offset: 2816 +} member { id: 0x9fdf2166 name: "rx_oos_packets" @@ -167266,6 +168344,12 @@ member { type_id: 0xedf277ba offset: 704 } +member { + id: 0xa15b4dcc + name: "rx_overhead" + type_id: 0x92233392 + offset: 2752 +} member { id: 0x6a136bc1 name: "rx_packets" @@ -167340,6 +168424,12 @@ member { name: "rx_read" type_id: 0x2de3e088 } +member { + id: 0xd3d22e9f + name: "rx_reqs" + type_id: 0xd3c80119 + offset: 448 +} member { id: 0xb906969b name: "rx_reserved" @@ -167391,6 +168481,12 @@ member { name: "rx_sc_stats" type_id: 0x3f75f4e8 } +member { + id: 0x32a32199 + name: "rx_seq" + type_id: 0x914dbfdc + offset: 2384 +} member { id: 0xa6aa7bdf name: "rx_seq_discards" @@ -167676,6 +168772,11 @@ member { name: "s" type_id: 0x36592664 } +member { + id: 0x67c7a307 + name: "s" + type_id: 0x3514d59f +} member { id: 0x67c839a9 name: "s" @@ -172328,6 +173429,12 @@ member { type_id: 0x0d44ba38 offset: 128 } +member { + id: 0x87f98767 + name: "set_event" + type_id: 0x2d12100b + offset: 192 +} member { id: 0xada2d6c5 name: "set_fecparam" @@ -172867,6 +173974,12 @@ member { type_id: 0x2e136b7a offset: 1856 } +member { + id: 0x4117392b + name: "set_priv_key" + type_id: 0x2d591a0e + offset: 320 +} member { id: 0x9fa5cb5f name: "set_promiscuous_mode" @@ -172897,6 +174010,12 @@ member { type_id: 0x2ec0f499 offset: 320 } +member { + id: 0xfd2d3002 + name: "set_pub_key" + type_id: 0x2d591a0e + offset: 256 +} member { id: 0xff542925 name: "set_pull_down" @@ -175035,6 +176154,11 @@ member { type_id: 0x4050ae51 offset: 24 } +member { + id: 0x9063e9c1 + name: "sign" + type_id: 0x2cd8a9c9 +} member { id: 0x90777e15 name: "sign" @@ -178826,6 +179950,12 @@ member { type_id: 0x11cffa09 offset: 448 } +member { + id: 0x4427a46d + name: "src" + type_id: 0x11cffa09 + offset: 384 +} member { id: 0x4427ac3d name: "src" @@ -178853,6 +179983,11 @@ member { name: "src" type_id: 0x6d25e07f } +member { + id: 0x446cb466 + name: "src" + type_id: 0x5ade635b +} member { id: 0x4475a595 name: "src" @@ -178973,6 +180108,12 @@ member { type_id: 0xb3e7bac9 offset: 16 } +member { + id: 0xe29869f3 + name: "src_len" + type_id: 0x4585663f + offset: 512 +} member { id: 0x031b1a4e name: "src_maxburst" @@ -182079,6 +183220,12 @@ member { name: "stop" type_id: 0x6720d32f } +member { + id: 0x69fcaeb3 + name: "stop" + type_id: 0x74d29cf1 + offset: 1792 +} member { id: 0x02ed8160 name: "stop_count" @@ -182566,6 +183713,12 @@ member { type_id: 0x4585663f offset: 45344 } +member { + id: 0x5e10ffff + name: "stride" + type_id: 0x4585663f + offset: 1120 +} member { id: 0x5e325618 name: "stride" @@ -183511,6 +184664,12 @@ member { offset: 130 bitsize: 1 } +member { + id: 0x07459e81 + name: "supports_multi_frame" + type_id: 0x6d7f5ff6 + offset: 2080 +} member { id: 0x2138b2e5 name: "supports_op" @@ -188970,6 +190129,12 @@ member { type_id: 0x0cd0749c offset: 832 } +member { + id: 0xbd73b897 + name: "timer_interval" + type_id: 0xc9082b19 + offset: 1856 +} member { id: 0x64abf1a3 name: "timer_intv" @@ -189142,6 +190307,12 @@ member { type_id: 0x5d8155a5 offset: 128 } +member { + id: 0x1f55657f + name: "timings" + type_id: 0x0ce80834 + offset: 64 +} member { id: 0x1f6734de name: "timings" @@ -189583,6 +190754,12 @@ member { type_id: 0x24373219 offset: 512 } +member { + id: 0x896faa0d + name: "todo" + type_id: 0x33756485 + offset: 1408 +} member { id: 0x898f1b47 name: "todo" @@ -189821,6 +190998,12 @@ member { type_id: 0xb02b353a offset: 704 } +member { + id: 0x9d16fe6e + name: "total" + type_id: 0x4585663f + offset: 576 +} member { id: 0x9d2cc35c name: "total" @@ -189879,6 +191062,12 @@ member { type_id: 0x295c7202 offset: 112 } +member { + id: 0xb46976b5 + name: "total_count" + type_id: 0x33756485 + offset: 64 +} member { id: 0x5d3c1feb name: "total_frames" @@ -190013,6 +191202,12 @@ member { type_id: 0x21d43a7b offset: 704 } +member { + id: 0x7248bb69 + name: "totalpages" + type_id: 0x33756485 + offset: 256 +} member { id: 0x0d628d12 name: "totalram" @@ -192361,6 +193556,30 @@ member { type_id: 0xe8034002 offset: 1200 } +member { + id: 0xc168d729 + name: "tx_curr_frame_num" + type_id: 0xc9082b19 + offset: 2080 +} +member { + id: 0x086ff8ab + name: "tx_curr_frame_payload" + type_id: 0xc9082b19 + offset: 2432 +} +member { + id: 0x38ca06c6 + name: "tx_curr_size" + type_id: 0xc9082b19 + offset: 2176 +} +member { + id: 0x5d898398 + name: "tx_curr_skb" + type_id: 0x054f691a + offset: 1600 +} member { id: 0x54a31621 name: "tx_custom_high_usecs" @@ -192614,6 +193833,18 @@ member { type_id: 0xc9082b19 offset: 13152 } +member { + id: 0x61a8790c + name: "tx_low_mem_max_cnt" + type_id: 0xc9082b19 + offset: 2208 +} +member { + id: 0xa94058b8 + name: "tx_low_mem_val" + type_id: 0xc9082b19 + offset: 2240 +} member { id: 0xa6a7625f name: "tx_lpi_enabled" @@ -192638,6 +193869,12 @@ member { type_id: 0x92233392 offset: 384 } +member { + id: 0x6dd1b0db + name: "tx_max" + type_id: 0xc9082b19 + offset: 2144 +} member { id: 0x55810d6d name: "tx_max_coalesced_frames" @@ -192662,6 +193899,12 @@ member { type_id: 0xe62ebf07 offset: 512 } +member { + id: 0x24dde6e5 + name: "tx_max_datagrams" + type_id: 0x914dbfdc + offset: 2304 +} member { id: 0x7992b00c name: "tx_max_pending" @@ -192703,6 +193946,12 @@ member { name: "tx_mode" type_id: 0xb3e7bac9 } +member { + id: 0xd6166cf3 + name: "tx_modulus" + type_id: 0x914dbfdc + offset: 2336 +} member { id: 0x962013d6 name: "tx_msg" @@ -192728,6 +193977,24 @@ member { offset: 579 bitsize: 3 } +member { + id: 0x85dc3e67 + name: "tx_ndp_modulus" + type_id: 0x914dbfdc + offset: 2352 +} +member { + id: 0xe0d8421b + name: "tx_ntbs" + type_id: 0x92233392 + offset: 2688 +} +member { + id: 0xa8317855 + name: "tx_overhead" + type_id: 0x92233392 + offset: 2624 +} member { id: 0x9206d03d name: "tx_packets" @@ -192839,6 +194106,12 @@ member { type_id: 0xc93e017b offset: 944 } +member { + id: 0x32c7bb3d + name: "tx_qlen" + type_id: 0x74d29cf1 + offset: 576 +} member { id: 0x580681a6 name: "tx_queue_len" @@ -192851,6 +194124,54 @@ member { type_id: 0x33756485 offset: 11328 } +member { + id: 0xc1b8b7af + name: "tx_reason_max_datagram" + type_id: 0xc9082b19 + offset: 2560 +} +member { + id: 0x29c64945 + name: "tx_reason_ndp_full" + type_id: 0xc9082b19 + offset: 2496 +} +member { + id: 0xaec5023b + name: "tx_reason_ntb_full" + type_id: 0xc9082b19 + offset: 2464 +} +member { + id: 0x618af26f + name: "tx_reason_timeout" + type_id: 0xc9082b19 + offset: 2528 +} +member { + id: 0x8d6eed3e + name: "tx_rem_sign" + type_id: 0x0baa70a7 + offset: 1728 +} +member { + id: 0x2d67c2b0 + name: "tx_rem_skb" + type_id: 0x054f691a + offset: 1664 +} +member { + id: 0x8c376a11 + name: "tx_remainder" + type_id: 0x914dbfdc + offset: 2320 +} +member { + id: 0xafc385cf + name: "tx_reqs" + type_id: 0xd3c80119 + offset: 320 +} member { id: 0x5f95d285 name: "tx_reserved" @@ -192908,6 +194229,12 @@ member { type_id: 0x054f691a offset: 6528 } +member { + id: 0x163cb0a1 + name: "tx_seq" + type_id: 0x914dbfdc + offset: 2368 +} member { id: 0x2862bcb8 name: "tx_sg" @@ -192999,6 +194326,18 @@ member { type_id: 0xc9082b19 offset: 13024 } +member { + id: 0xa25bc850 + name: "tx_timer" + type_id: 0xcd7704bf + offset: 256 +} +member { + id: 0xf9c0c1b7 + name: "tx_timer_pending" + type_id: 0xc9082b19 + offset: 2048 +} member { id: 0x5343bc40 name: "tx_toggle" @@ -196255,6 +197594,18 @@ member { type_id: 0x29b77961 offset: 11784 } +member { + id: 0x7f0a76c2 + name: "unwrap" + type_id: 0x2e747a05 + offset: 960 +} +member { + id: 0x7f0a7bae + name: "unwrap" + type_id: 0x2e747a05 + offset: 2176 +} member { id: 0xa37704a2 name: "unx" @@ -199717,6 +201068,12 @@ member { type_id: 0x6d7f5ff6 offset: 1216 } +member { + id: 0xf584ce40 + name: "verify" + type_id: 0x2cd8a9c9 + offset: 64 +} member { id: 0xf586d6a4 name: "verify" @@ -200862,6 +202219,11 @@ member { type_id: 0xc9082b19 offset: 96 } +member { + id: 0xde7997b9 + name: "virt" + type_id: 0x14e40ca3 +} member { id: 0xc21c7538 name: "virt_base" @@ -201776,6 +203138,17 @@ member { type_id: 0x9bd401b6 offset: 32 } +member { + id: 0xdd4cd36f + name: "wDatagramIndex" + type_id: 0x9bd401b6 +} +member { + id: 0x3643720a + name: "wDatagramLength" + type_id: 0x9bd401b6 + offset: 16 +} member { id: 0x3b766446 name: "wFunctionalitySupport" @@ -201794,6 +203167,17 @@ member { type_id: 0x9bd401b6 offset: 48 } +member { + id: 0x070c8108 + name: "wLength" + type_id: 0x9bd401b6 + offset: 32 +} +member { + id: 0x070c8c33 + name: "wLength" + type_id: 0x9bd401b6 +} member { id: 0xb75b254f name: "wMTU" @@ -201830,18 +203214,78 @@ member { type_id: 0x9bd401b6 offset: 64 } +member { + id: 0x2726a674 + name: "wNdpInAlignment" + type_id: 0x9bd401b6 + offset: 96 +} +member { + id: 0x8464bb02 + name: "wNdpInDivisor" + type_id: 0x9bd401b6 + offset: 64 +} +member { + id: 0x2c655b0e + name: "wNdpInPayloadRemainder" + type_id: 0x9bd401b6 + offset: 80 +} +member { + id: 0x13c51648 + name: "wNdpOutAlignment" + type_id: 0x9bd401b6 + offset: 192 +} +member { + id: 0x5a711378 + name: "wNdpOutDivisor" + type_id: 0x9bd401b6 + offset: 160 +} +member { + id: 0xcf666fe6 + name: "wNdpOutPayloadRemainder" + type_id: 0x9bd401b6 + offset: 176 +} +member { + id: 0x28625ee1 + name: "wNextNdpIndex" + type_id: 0x9bd401b6 + offset: 48 +} +member { + id: 0x364cd8ff + name: "wNtbOutMaxDatagrams" + type_id: 0x9bd401b6 + offset: 208 +} member { id: 0xd6499e1b name: "wNumberMCFilters" type_id: 0x9bd401b6 offset: 80 } +member { + id: 0x0550cff2 + name: "wPadding1" + type_id: 0x9bd401b6 + offset: 112 +} member { id: 0x84d40eb1 name: "wReserved" type_id: 0x9bd401b6 offset: 80 } +member { + id: 0xe3bc934c + name: "wReserved6" + type_id: 0x9bd401b6 + offset: 48 +} member { id: 0xeffe0b79 name: "wReseved" @@ -203454,6 +204898,12 @@ member { name: "work" type_id: 0x3835dcc0 } +member { + id: 0xd6e660a8 + name: "work" + type_id: 0x1f3c8679 + offset: 1024 +} member { id: 0xd6e661ca name: "work" @@ -204027,6 +205477,18 @@ member { type_id: 0x03913382 offset: 576 } +member { + id: 0xb361ca71 + name: "wrap" + type_id: 0x13323bbb + offset: 896 +} +member { + id: 0xb361ce95 + name: "wrap" + type_id: 0x13323bbb + offset: 2112 +} member { id: 0x48aef34d name: "wrap_around" @@ -205041,6 +206503,11 @@ member { type_id: 0x5d8155a5 offset: 1472 } +member { + id: 0x2d4312a7 + name: "xa" + type_id: 0x2aa0b9bb +} member { id: 0x2de9701e name: "xa" @@ -205058,6 +206525,12 @@ member { type_id: 0x80c20070 offset: 1216 } +member { + id: 0x4487c243 + name: "xa_alloc" + type_id: 0x3da0560e + offset: 256 +} member { id: 0x8c0b8c3b name: "xa_flags" @@ -205070,11 +206543,59 @@ member { type_id: 0x18bd6530 offset: 64 } +member { + id: 0x443272df + name: "xa_index" + type_id: 0x33756485 + offset: 64 +} member { id: 0x310049ee name: "xa_lock" type_id: 0xf313e71a } +member { + id: 0x13932b74 + name: "xa_lru" + type_id: 0x3dfac2ad + offset: 384 +} +member { + id: 0xa6e487bd + name: "xa_node" + type_id: 0x3da0560e + offset: 192 +} +member { + id: 0xade1378e + name: "xa_offset" + type_id: 0x5d8155a5 + offset: 144 +} +member { + id: 0xb6a1c909 + name: "xa_pad" + type_id: 0x5d8155a5 + offset: 152 +} +member { + id: 0xfbb0a625 + name: "xa_shift" + type_id: 0x5d8155a5 + offset: 128 +} +member { + id: 0xb55e6ff0 + name: "xa_sibs" + type_id: 0x5d8155a5 + offset: 136 +} +member { + id: 0x1ec9237c + name: "xa_update" + type_id: 0xa7efd65a + offset: 320 +} member { id: 0xdbe05ee6 name: "xacterrs" @@ -205891,6 +207412,12 @@ member { type_id: 0x6d7f5ff6 offset: 328 } +member { + id: 0xf36870ee + name: "zlp" + type_id: 0x6d7f5ff6 + offset: 1472 +} member { id: 0x8134c684 name: "zombie" @@ -205956,6 +207483,11 @@ member { type_id: 0xc0a0d1f0 offset: 864 } +member { + id: 0x15c9fb88 + name: "zonelist" + type_id: 0x1e85f467 +} member { id: 0xc2f31ff3 name: "zpos" @@ -207492,6 +209024,24 @@ struct_union { member_id: 0x35690218 } } +struct_union { + id: 0x14ca5b0f + kind: STRUCT + definition { + bytesize: 16 + member_id: 0x320350ff + member_id: 0x9b2fad41 + } +} +struct_union { + id: 0x14e40ca3 + kind: STRUCT + definition { + bytesize: 16 + member_id: 0x32051484 + member_id: 0x243566e2 + } +} struct_union { id: 0x153cf6a0 kind: STRUCT @@ -209038,6 +210588,15 @@ struct_union { member_id: 0x8f0ea6b7 } } +struct_union { + id: 0x3514d59f + kind: STRUCT + definition { + bytesize: 512 + member_id: 0xb56701d9 + member_id: 0x8544c9f4 + } +} struct_union { id: 0x352630a5 kind: STRUCT @@ -209380,6 +210939,14 @@ struct_union { member_id: 0xc446e43e } } +struct_union { + id: 0x3b85198b + kind: STRUCT + definition { + bytesize: 64 + member_id: 0x8fa57542 + } +} struct_union { id: 0x3bf747f0 kind: STRUCT @@ -210341,6 +211908,15 @@ struct_union { member_id: 0x8fed16f2 } } +struct_union { + id: 0x4f02e8cc + kind: UNION + definition { + bytesize: 512 + member_id: 0x67c7a307 + member_id: 0x2777335c + } +} struct_union { id: 0x4f03a6ae kind: UNION @@ -210830,6 +212406,15 @@ struct_union { member_id: 0x2e0294e1 } } +struct_union { + id: 0x5ade635b + kind: UNION + definition { + bytesize: 16 + member_id: 0x304c83ff + member_id: 0xde7997b9 + } +} struct_union { id: 0x5ae4b375 kind: UNION @@ -211678,6 +213263,15 @@ struct_union { member_id: 0x8ee7990f } } +struct_union { + id: 0x67c0081f + kind: UNION + definition { + bytesize: 8 + member_id: 0xc43f5f8d + member_id: 0xd408f584 + } +} struct_union { id: 0x67d43857 kind: UNION @@ -213528,6 +215122,39 @@ struct_union { member_id: 0x75906a36 } } +struct_union { + id: 0x6fbaf148 + kind: STRUCT + name: "akcipher_alg" + definition { + bytesize: 512 + member_id: 0x9063e9c1 + member_id: 0xf584ce40 + member_id: 0x893e9a51 + member_id: 0x70fa6b40 + member_id: 0xfd2d3002 + member_id: 0x4117392b + member_id: 0xcfd59103 + member_id: 0x1ac7a60f + member_id: 0x0d2e2ebd + member_id: 0xa9e8c522 + member_id: 0x85f3d282 + } +} +struct_union { + id: 0x606acffd + kind: STRUCT + name: "akcipher_request" + definition { + bytesize: 128 + member_id: 0x85e1e383 + member_id: 0x4427a46d + member_id: 0xbbe061af + member_id: 0xe29869f3 + member_id: 0x352c27f4 + member_id: 0x75906a36 + } +} struct_union { id: 0x91212402 kind: STRUCT @@ -215185,6 +216812,17 @@ struct_union { member_id: 0xa06fe161 } } +struct_union { + id: 0x88ce7bb2 + kind: STRUCT + name: "blk_plug_cb" + definition { + bytesize: 32 + member_id: 0x7c00ef52 + member_id: 0x56f376f1 + member_id: 0xff8a91c0 + } +} struct_union { id: 0xbb19ab6d kind: STRUCT @@ -217134,6 +218772,58 @@ struct_union { member_id: 0x3203541e } } +struct_union { + id: 0x276c304c + kind: STRUCT + name: "cdc_ncm_ctx" + definition { + bytesize: 360 + member_id: 0x11638e21 + member_id: 0xa25bc850 + member_id: 0x5e2b88f3 + member_id: 0xce34257f + member_id: 0xaab5e3db + member_id: 0x12ebc87a + member_id: 0x605196d3 + member_id: 0x48630da5 + member_id: 0xfc1d642c + member_id: 0xffb32814 + member_id: 0x5d898398 + member_id: 0x2d67c2b0 + member_id: 0x8d6eed3e + member_id: 0x3a21c0f4 + member_id: 0x69fcaeb3 + member_id: 0xbf6a10c0 + member_id: 0xbd73b897 + member_id: 0x90a7314a + member_id: 0xbc20bf07 + member_id: 0x3a3b9c87 + member_id: 0xf9c0c1b7 + member_id: 0xc168d729 + member_id: 0xa064e9a8 + member_id: 0x6dd1b0db + member_id: 0x38ca06c6 + member_id: 0x61a8790c + member_id: 0xa94058b8 + member_id: 0x3a33fdde + member_id: 0x24dde6e5 + member_id: 0x8c376a11 + member_id: 0xd6166cf3 + member_id: 0x85dc3e67 + member_id: 0x163cb0a1 + member_id: 0x32a32199 + member_id: 0x7cb10669 + member_id: 0x086ff8ab + member_id: 0xaec5023b + member_id: 0x29c64945 + member_id: 0x618af26f + member_id: 0xc1b8b7af + member_id: 0xa8317855 + member_id: 0xe0d8421b + member_id: 0xa15b4dcc + member_id: 0xb3ff3714 + } +} struct_union { id: 0x5f766fc6 kind: STRUCT @@ -219386,6 +221076,15 @@ struct_union { member_id: 0x8597b963 } } +struct_union { + id: 0x0f57eec7 + kind: STRUCT + name: "crypto_akcipher" + definition { + bytesize: 64 + member_id: 0x8597be7c + } +} struct_union { id: 0x293b162f kind: STRUCT @@ -219423,6 +221122,15 @@ struct_union { member_id: 0x2da18bb2 } } +struct_union { + id: 0x37cc7810 + kind: STRUCT + name: "crypto_cipher" + definition { + bytesize: 64 + member_id: 0x8597be7c + } +} struct_union { id: 0x85b25628 kind: STRUCT @@ -219959,6 +221667,15 @@ struct_union { member_id: 0xe0f6393d } } +struct_union { + id: 0xefa4cae6 + kind: STRUCT + name: "des_ctx" + definition { + bytesize: 128 + member_id: 0xbd3cd538 + } +} struct_union { id: 0x2729c17d kind: STRUCT @@ -220433,6 +222150,54 @@ struct_union { member_id: 0xf21adff5 } } +struct_union { + id: 0x95132e54 + kind: STRUCT + name: "devfreq_event_data" + definition { + bytesize: 16 + member_id: 0xd4c95c39 + member_id: 0xb46976b5 + } +} +struct_union { + id: 0x70919762 + kind: STRUCT + name: "devfreq_event_desc" + definition { + bytesize: 32 + member_id: 0x0de57ce8 + member_id: 0x8daeae65 + member_id: 0x6d52b170 + member_id: 0xafbe6621 + } +} +struct_union { + id: 0x12c4bf48 + kind: STRUCT + name: "devfreq_event_dev" + definition { + bytesize: 992 + member_id: 0x0fa6c6af + member_id: 0xce1ac88b + member_id: 0x2d4b3012 + member_id: 0x7a5a9024 + member_id: 0x87e0b654 + } +} +struct_union { + id: 0x8fa09e85 + kind: STRUCT + name: "devfreq_event_ops" + definition { + bytesize: 40 + member_id: 0x98ca1d0f + member_id: 0x0da0f708 + member_id: 0x6290b59b + member_id: 0x87f98767 + member_id: 0xd77c9cbe + } +} struct_union { id: 0xeee59200 kind: STRUCT @@ -221226,6 +222991,17 @@ struct_union { member_id: 0x2d0ec9dd } } +struct_union { + id: 0xdf0bbbf0 + kind: STRUCT + name: "display_timings" + definition { + bytesize: 16 + member_id: 0x349420c4 + member_id: 0xf79a533a + member_id: 0x1f55657f + } +} struct_union { id: 0x75bc7540 kind: STRUCT @@ -222258,6 +224034,21 @@ struct_union { member_id: 0xd47cf744 } } +struct_union { + id: 0x7a26b33d + kind: STRUCT + name: "drm_afbc_framebuffer" + definition { + bytesize: 224 + member_id: 0x85378cb8 + member_id: 0x3b9c97de + member_id: 0xdb864134 + member_id: 0x6db01f09 + member_id: 0xdeafe619 + member_id: 0x9bd5d3ca + member_id: 0xd5613ffc + } +} struct_union { id: 0x9cb7b96f kind: STRUCT @@ -225136,6 +226927,34 @@ struct_union { member_id: 0x1cd0b4f0 } } +struct_union { + id: 0x8d59cc59 + kind: STRUCT + name: "eth_dev" + definition { + bytesize: 200 + member_id: 0x2d1fec85 + member_id: 0x4b911741 + member_id: 0x723de0ca + member_id: 0x1875f880 + member_id: 0x41836813 + member_id: 0xafc385cf + member_id: 0xd3d22e9f + member_id: 0x32c7bb3d + member_id: 0xc2e1d78f + member_id: 0x143073ec + member_id: 0x7a86fcdb + member_id: 0xb361ca71 + member_id: 0x7f0a76c2 + member_id: 0xd6e660a8 + member_id: 0x896faa0d + member_id: 0xf36870ee + member_id: 0x59c1c7cb + member_id: 0x41e064b8 + member_id: 0x4af00a54 + member_id: 0x770654c6 + } +} struct_union { id: 0xed0cdc47 kind: STRUCT @@ -228576,6 +230395,29 @@ struct_union { member_id: 0xff8a9e7e } } +struct_union { + id: 0xca7029d8 + kind: STRUCT + name: "gether" + definition { + bytesize: 296 + member_id: 0x21a4123c + member_id: 0x694d3c49 + member_id: 0x37e14132 + member_id: 0xbdac13df + member_id: 0x56acdda7 + member_id: 0xbf43ebf0 + member_id: 0x7a0a7faf + member_id: 0x100aab74 + member_id: 0x09807f7a + member_id: 0x7fd91e93 + member_id: 0x07459e81 + member_id: 0xb361ce95 + member_id: 0x7f0a7bae + member_id: 0xadb9bed8 + member_id: 0xcd7ec6ac + } +} struct_union { id: 0x227d416d kind: STRUCT @@ -241880,6 +243722,23 @@ struct_union { member_id: 0x386c7184 } } +struct_union { + id: 0xdbe44b66 + kind: STRUCT + name: "oom_control" + definition { + bytesize: 64 + member_id: 0x15c9fb88 + member_id: 0x788bc17d + member_id: 0xc76cfce5 + member_id: 0xa4b05168 + member_id: 0xb51c2507 + member_id: 0x7248bb69 + member_id: 0x1024996f + member_id: 0x3d099644 + member_id: 0xaf3405ec + } +} struct_union { id: 0x95539d46 kind: STRUCT @@ -248344,6 +250203,30 @@ struct_union { member_id: 0x055225e4 } } +struct_union { + id: 0xca62ed00 + kind: STRUCT + name: "rsa_key" + definition { + bytesize: 128 + member_id: 0x4659cf92 + member_id: 0x87e623f5 + member_id: 0xc325cba2 + member_id: 0xa68e47c8 + member_id: 0xe94def1c + member_id: 0x55f0c48b + member_id: 0x12302e1a + member_id: 0x060b5e2a + member_id: 0x0cc91dc5 + member_id: 0xab258a23 + member_id: 0xcc4dd9fb + member_id: 0x73d7a8f4 + member_id: 0x30c8a340 + member_id: 0x086093bd + member_id: 0x8d88c04b + member_id: 0x112d65f6 + } +} struct_union { id: 0xdbc8b0ff kind: STRUCT @@ -248837,6 +250720,16 @@ struct_union { member_id: 0x202d9792 } } +struct_union { + id: 0xc440583a + kind: STRUCT + name: "scatter_walk" + definition { + bytesize: 16 + member_id: 0x9d8652e2 + member_id: 0x9b595d43 + } +} struct_union { id: 0x6d7f0eb8 kind: STRUCT @@ -251230,6 +253123,16 @@ struct_union { member_id: 0x85f3de85 } } +struct_union { + id: 0xeb42d758 + kind: STRUCT + name: "skcipher_instance" + definition { + bytesize: 576 + member_id: 0xfeafbaf6 + member_id: 0x300b2d2f + } +} struct_union { id: 0x5a18785c kind: STRUCT @@ -251244,6 +253147,30 @@ struct_union { member_id: 0x75906a36 } } +struct_union { + id: 0xb9a7d20f + kind: STRUCT + name: "skcipher_walk" + definition { + bytesize: 152 + member_id: 0x446cb466 + member_id: 0xbbab7e83 + member_id: 0x5c6f2950 + member_id: 0x9a42cf0b + member_id: 0xb335975f + member_id: 0x9d16fe6e + member_id: 0xc0824dc3 + member_id: 0x32051c2a + member_id: 0x33decf44 + member_id: 0xe5a6cde2 + member_id: 0x56ccb987 + member_id: 0x8320112b + member_id: 0x2d0fadac + member_id: 0x89cc162f + member_id: 0x5e10ffff + member_id: 0x9d7710c5 + } +} struct_union { id: 0x140795ac kind: STRUCT @@ -253063,6 +254990,19 @@ struct_union { member_id: 0x720365d0 } } +struct_union { + id: 0x85598cc2 + kind: STRUCT + name: "snd_soc_jack_zone" + definition { + bytesize: 32 + member_id: 0xa07cb245 + member_id: 0xeaccae16 + member_id: 0x9f7caab9 + member_id: 0x74a266cc + member_id: 0x7c00e690 + } +} struct_union { id: 0x69e1c6f0 kind: STRUCT @@ -259777,6 +261717,72 @@ struct_union { member_id: 0xfb7cce1d } } +struct_union { + id: 0x305bf810 + kind: STRUCT + name: "usb_cdc_ncm_dpe16" + definition { + bytesize: 4 + member_id: 0xdd4cd36f + member_id: 0x3643720a + } +} +struct_union { + id: 0x3d26f6d4 + kind: STRUCT + name: "usb_cdc_ncm_dpe32" + definition { + bytesize: 8 + member_id: 0x09ca9dd2 + member_id: 0x348d64a1 + } +} +struct_union { + id: 0xc4e4c198 + kind: STRUCT + name: "usb_cdc_ncm_ndp16" + definition { + bytesize: 8 + member_id: 0x1e7efd51 + member_id: 0x070c8108 + member_id: 0x28625ee1 + member_id: 0xab0f277e + } +} +struct_union { + id: 0xfdba3915 + kind: STRUCT + name: "usb_cdc_ncm_ndp32" + definition { + bytesize: 16 + member_id: 0x1e7efd51 + member_id: 0x070c8108 + member_id: 0xe3bc934c + member_id: 0x6e82996c + member_id: 0x46e37740 + member_id: 0x015a8ae1 + } +} +struct_union { + id: 0xc4793083 + kind: STRUCT + name: "usb_cdc_ncm_ntb_parameters" + definition { + bytesize: 28 + member_id: 0x070c8c33 + member_id: 0x6b1b4f66 + member_id: 0x7000a99b + member_id: 0x8464bb02 + member_id: 0x2c655b0e + member_id: 0x2726a674 + member_id: 0x0550cff2 + member_id: 0xc1f69c16 + member_id: 0x5a711378 + member_id: 0xcf666fe6 + member_id: 0x13c51648 + member_id: 0x364cd8ff + } +} struct_union { id: 0x50209186 kind: STRUCT @@ -259856,6 +261862,18 @@ struct_union { member_id: 0xe7429092 } } +struct_union { + id: 0xe6289375 + kind: STRUCT + name: "usb_class_driver" + definition { + bytesize: 32 + member_id: 0x0ddfefbb + member_id: 0x1ea56ad0 + member_id: 0xb1aa5772 + member_id: 0xa298fce5 + } +} struct_union { id: 0xaec12290 kind: STRUCT @@ -265705,6 +267723,24 @@ struct_union { member_id: 0x38c4c69b } } +struct_union { + id: 0xa406f9d2 + kind: STRUCT + name: "xa_state" + definition { + bytesize: 56 + member_id: 0x2d4312a7 + member_id: 0x443272df + member_id: 0xfbb0a625 + member_id: 0xb55e6ff0 + member_id: 0xade1378e + member_id: 0xb6a1c909 + member_id: 0xa6e487bd + member_id: 0x4487c243 + member_id: 0x1ec9237c + member_id: 0x13932b74 + } +} struct_union { id: 0x80c20070 kind: STRUCT @@ -270681,6 +272717,48 @@ enumeration { } } } +enumeration { + id: 0xb01beef1 + name: "compact_result" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "COMPACT_NOT_SUITABLE_ZONE" + } + enumerator { + name: "COMPACT_SKIPPED" + value: 1 + } + enumerator { + name: "COMPACT_DEFERRED" + value: 2 + } + enumerator { + name: "COMPACT_NO_SUITABLE_PAGE" + value: 3 + } + enumerator { + name: "COMPACT_CONTINUE" + value: 4 + } + enumerator { + name: "COMPACT_COMPLETE" + value: 5 + } + enumerator { + name: "COMPACT_PARTIAL_SKIPPED" + value: 6 + } + enumerator { + name: "COMPACT_CONTENDED" + value: 7 + } + enumerator { + name: "COMPACT_SUCCESS" + value: 8 + } + } +} enumeration { id: 0x7bfd6d29 name: "conn_reasons" @@ -275031,6 +277109,37 @@ enumeration { } } } +enumeration { + id: 0x87463428 + name: "hid_class_request" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "HID_REQ_GET_REPORT" + value: 1 + } + enumerator { + name: "HID_REQ_GET_IDLE" + value: 2 + } + enumerator { + name: "HID_REQ_GET_PROTOCOL" + value: 3 + } + enumerator { + name: "HID_REQ_SET_REPORT" + value: 9 + } + enumerator { + name: "HID_REQ_SET_IDLE" + value: 10 + } + enumerator { + name: "HID_REQ_SET_PROTOCOL" + value: 11 + } + } +} enumeration { id: 0xfa5f37bb name: "hid_report_type" @@ -276426,6 +278535,36 @@ enumeration { } } } +enumeration { + id: 0x0d164218 + name: "lru_list" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "LRU_INACTIVE_ANON" + } + enumerator { + name: "LRU_ACTIVE_ANON" + value: 1 + } + enumerator { + name: "LRU_INACTIVE_FILE" + value: 2 + } + enumerator { + name: "LRU_ACTIVE_FILE" + value: 3 + } + enumerator { + name: "LRU_UNEVICTABLE" + value: 4 + } + enumerator { + name: "NR_LRU_LISTS" + value: 5 + } + } +} enumeration { id: 0x0b05beb9 name: "macsec_offload" @@ -277771,6 +279910,28 @@ enumeration { } } } +enumeration { + id: 0x6df42b18 + name: "oom_constraint" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "CONSTRAINT_NONE" + } + enumerator { + name: "CONSTRAINT_CPUSET" + value: 1 + } + enumerator { + name: "CONSTRAINT_MEMORY_POLICY" + value: 2 + } + enumerator { + name: "CONSTRAINT_MEMCG" + value: 3 + } + } +} enumeration { id: 0xf7c61c85 name: "opp_table_access" @@ -283921,6 +286082,12 @@ function { parameter_id: 0xb0c2eb21 parameter_id: 0x18bd6530 } +function { + id: 0x034a2603 + return_type_id: 0x30408c71 + parameter_id: 0x1fba7d3d + parameter_id: 0x0c96fb14 +} function { id: 0x034f6ce3 return_type_id: 0x34544a3f @@ -283962,6 +286129,13 @@ function { return_type_id: 0xe2774cab parameter_id: 0x24d65b62 } +function { + id: 0x04a35d6c + return_type_id: 0x914dbfdc + parameter_id: 0x126add1c + parameter_id: 0x4585663f + parameter_id: 0x13580d6c +} function { id: 0x04ce0b6f return_type_id: 0x914dbfdc @@ -284258,6 +286432,13 @@ function { return_type_id: 0x343ebce3 parameter_id: 0x343ebce3 } +function { + id: 0x0c5cd477 + return_type_id: 0x0bb0c019 + parameter_id: 0x0258f96e + parameter_id: 0x3e10b518 + parameter_id: 0xf435685e +} function { id: 0x0cd36f30 return_type_id: 0x33756485 @@ -284333,6 +286514,12 @@ function { parameter_id: 0x6d7f5ff6 parameter_id: 0x6d7f5ff6 } +function { + id: 0x0ec08f0d + return_type_id: 0x914dbfdc + parameter_id: 0x3d3b5dd7 + parameter_id: 0x295c7202 +} function { id: 0x0ee8ead6 return_type_id: 0x914dbfdc @@ -284489,6 +286676,18 @@ function { return_type_id: 0x48b5725f parameter_id: 0x0206e690 } +function { + id: 0x101c2d25 + return_type_id: 0x48b5725f + parameter_id: 0x0258f96e + parameter_id: 0x0490bb4a +} +function { + id: 0x101d83a0 + return_type_id: 0x48b5725f + parameter_id: 0x01c5a749 + parameter_id: 0x3d2ef874 +} function { id: 0x10219d88 return_type_id: 0x48b5725f @@ -284699,6 +286898,11 @@ function { parameter_id: 0x6720d32f parameter_id: 0x115a10f4 } +function { + id: 0x104da524 + return_type_id: 0x48b5725f + parameter_id: 0x0357d2dd +} function { id: 0x104de9a9 return_type_id: 0x48b5725f @@ -285585,6 +287789,13 @@ function { return_type_id: 0x48b5725f parameter_id: 0x074f1a14 } +function { + id: 0x114c448e + return_type_id: 0x48b5725f + parameter_id: 0x076327a3 + parameter_id: 0x00c72527 + parameter_id: 0x3f0185ef +} function { id: 0x11508453 return_type_id: 0x9547a3da @@ -285596,6 +287807,13 @@ function { parameter_id: 0x0258f96e parameter_id: 0x3e10b518 } +function { + id: 0x11584934 + return_type_id: 0x48b5725f + parameter_id: 0x0a63398f + parameter_id: 0xd9f550d1 + parameter_id: 0xfc0e1dbd +} function { id: 0x115a73a0 return_type_id: 0x48b5725f @@ -286436,6 +288654,12 @@ function { return_type_id: 0x48b5725f parameter_id: 0x0bb0c019 } +function { + id: 0x1276a8bd + return_type_id: 0x48b5725f + parameter_id: 0x0dc9e98b + parameter_id: 0x6720d32f +} function { id: 0x1277c151 return_type_id: 0x48b5725f @@ -286670,6 +288894,11 @@ function { return_type_id: 0x48b5725f parameter_id: 0x09427c40 } +function { + id: 0x12c92116 + return_type_id: 0x48b5725f + parameter_id: 0x0945c216 +} function { id: 0x12ca5ec4 return_type_id: 0x48b5725f @@ -286807,6 +289036,15 @@ function { parameter_id: 0x09483d5e parameter_id: 0x0858434c } +function { + id: 0x12ed274e + return_type_id: 0x48b5725f + parameter_id: 0x0ae4a2c7 + parameter_id: 0x33756485 + parameter_id: 0x064d6086 + parameter_id: 0x064d6086 + parameter_id: 0x064d6086 +} function { id: 0x12efab79 return_type_id: 0x48b5725f @@ -287157,6 +289395,13 @@ function { parameter_id: 0x81f130ac parameter_id: 0x18bd6530 } +function { + id: 0x137a1cdc + return_type_id: 0x48b5725f + parameter_id: 0x0de4c6b1 + parameter_id: 0x2eab5b8a + parameter_id: 0x87463428 +} function { id: 0x137d1ffc return_type_id: 0x48b5725f @@ -287489,6 +289734,12 @@ function { return_type_id: 0x48b5725f parameter_id: 0x0d8bad22 } +function { + id: 0x13ff1655 + return_type_id: 0x48b5725f + parameter_id: 0x0dc9e98b + parameter_id: 0x054f691a +} function { id: 0x1401698f return_type_id: 0x48b5725f @@ -288043,6 +290294,11 @@ function { return_type_id: 0x48b5725f parameter_id: 0x117e2995 } +function { + id: 0x14c7f0ee + return_type_id: 0x48b5725f + parameter_id: 0x117e85f5 +} function { id: 0x14c81bbb return_type_id: 0x48b5725f @@ -288618,6 +290874,12 @@ function { parameter_id: 0x12c0ba43 parameter_id: 0x6d7f5ff6 } +function { + id: 0x159ef67f + return_type_id: 0x48b5725f + parameter_id: 0x1042c9d1 + parameter_id: 0x4585663f +} function { id: 0x159f9b02 return_type_id: 0x48b5725f @@ -288947,6 +291209,14 @@ function { return_type_id: 0x48b5725f parameter_id: 0x1b36c7a2 } +function { + id: 0x1656fc12 + return_type_id: 0x48b5725f + parameter_id: 0x126add1c + parameter_id: 0x914dbfdc + parameter_id: 0x4585663f + parameter_id: 0x13580d6c +} function { id: 0x1658716c return_type_id: 0x48b5725f @@ -289185,6 +291455,12 @@ function { parameter_id: 0x1a6ea392 parameter_id: 0x24706e28 } +function { + id: 0x16949287 + return_type_id: 0x08113aaf + parameter_id: 0x0258f96e + parameter_id: 0x396fe4f8 +} function { id: 0x16983453 return_type_id: 0x48b5725f @@ -289836,6 +292112,11 @@ function { parameter_id: 0x1c2f6323 parameter_id: 0x3f1a5886 } +function { + id: 0x1776cedc + return_type_id: 0x48b5725f + parameter_id: 0x1fba7d3d +} function { id: 0x177cb160 return_type_id: 0x48b5725f @@ -290188,6 +292469,12 @@ function { parameter_id: 0x3f0185ef parameter_id: 0x4585663f } +function { + id: 0x18159e1c + return_type_id: 0x48b5725f + parameter_id: 0x21069feb + parameter_id: 0x331a1d7a +} function { id: 0x1817bd12 return_type_id: 0x48b5725f @@ -290338,6 +292625,11 @@ function { return_type_id: 0x48b5725f parameter_id: 0x238b8721 } +function { + id: 0x187c3067 + return_type_id: 0x48b5725f + parameter_id: 0x239187d3 +} function { id: 0x187ccd99 return_type_id: 0x17b5cc93 @@ -291136,6 +293428,12 @@ function { parameter_id: 0x2cd31328 parameter_id: 0x6d7f5ff6 } +function { + id: 0x1a1c4881 + return_type_id: 0x0400f16a + parameter_id: 0x1b55a8f2 + parameter_id: 0x4585663f +} function { id: 0x1a27e882 return_type_id: 0x48b5725f @@ -291187,6 +293485,13 @@ function { return_type_id: 0x48b5725f parameter_id: 0x2b603afb } +function { + id: 0x1a42044c + return_type_id: 0xd5cc9c9a + parameter_id: 0x3bb0740c + parameter_id: 0x18bd6530 + parameter_id: 0xf435685e +} function { id: 0x1a450083 return_type_id: 0x48b5725f @@ -291512,6 +293817,11 @@ function { parameter_id: 0x33756485 parameter_id: 0x7f7172c7 } +function { + id: 0x1ae9c33f + return_type_id: 0x48b5725f + parameter_id: 0x29c64ab1 +} function { id: 0x1ae9d1bd return_type_id: 0x48b5725f @@ -291557,6 +293867,12 @@ function { return_type_id: 0x48b5725f parameter_id: 0x2e60a6b2 } +function { + id: 0x1b05453e + return_type_id: 0x48b5725f + parameter_id: 0x28a3a74b + parameter_id: 0x6d7f5ff6 +} function { id: 0x1b0d4d60 return_type_id: 0x48b5725f @@ -291579,6 +293895,12 @@ function { parameter_id: 0x2e94a1e1 parameter_id: 0x0ab1f084 } +function { + id: 0x1b18b5bc + return_type_id: 0x48b5725f + parameter_id: 0x2e94a1e1 + parameter_id: 0x097315c2 +} function { id: 0x1b18f64e return_type_id: 0x48b5725f @@ -292312,6 +294634,12 @@ function { parameter_id: 0x02e98c8d parameter_id: 0x2e18f543 } +function { + id: 0x1c32c5f2 + return_type_id: 0x48b5725f + parameter_id: 0x32a623d7 + parameter_id: 0x00c72527 +} function { id: 0x1c362eb2 return_type_id: 0x48b5725f @@ -292441,6 +294769,11 @@ function { parameter_id: 0x31b5a66f parameter_id: 0x2a670b41 } +function { + id: 0x1c5eb40a + return_type_id: 0x48b5725f + parameter_id: 0x331b9666 +} function { id: 0x1c5ec399 return_type_id: 0x48b5725f @@ -292568,6 +294901,11 @@ function { parameter_id: 0x11cfee5a parameter_id: 0x11cfee5a } +function { + id: 0x1c88728f + return_type_id: 0x48b5725f + parameter_id: 0x30408c71 +} function { id: 0x1c88dd20 return_type_id: 0x48b5725f @@ -292620,6 +294958,12 @@ function { parameter_id: 0x914dbfdc parameter_id: 0x6720d32f } +function { + id: 0x1ca44d8a + return_type_id: 0x48b5725f + parameter_id: 0x32a623d7 + parameter_id: 0x25653b02 +} function { id: 0x1ca75909 return_type_id: 0x48b5725f @@ -292627,6 +294971,13 @@ function { parameter_id: 0x274194ac parameter_id: 0x2e18f543 } +function { + id: 0x1caa303b + return_type_id: 0x48b5725f + parameter_id: 0x331b9666 + parameter_id: 0x3e10b518 + parameter_id: 0x331b9666 +} function { id: 0x1cab6a11 return_type_id: 0x48b5725f @@ -293140,6 +295491,12 @@ function { return_type_id: 0x48b5725f parameter_id: 0x368daf92 } +function { + id: 0x1d3cefc2 + return_type_id: 0x48b5725f + parameter_id: 0x32caaf24 + parameter_id: 0x4585663f +} function { id: 0x1d3f8bd2 return_type_id: 0x48b5725f @@ -294027,11 +296384,23 @@ function { parameter_id: 0x6d7f5ff6 parameter_id: 0xac0d3a85 } +function { + id: 0x1e704726 + return_type_id: 0x48b5725f + parameter_id: 0x3ba05ad7 +} function { id: 0x1e70c9ff return_type_id: 0x48b5725f parameter_id: 0x3ba261b0 } +function { + id: 0x1e768676 + return_type_id: 0x48b5725f + parameter_id: 0x39182992 + parameter_id: 0x2c456d6d + parameter_id: 0x6720d32f +} function { id: 0x1e7a9dc2 return_type_id: 0x48b5725f @@ -294182,6 +296551,11 @@ function { return_type_id: 0x48b5725f parameter_id: 0x3806390a } +function { + id: 0x1e9b5d67 + return_type_id: 0x48b5725f + parameter_id: 0x380c33d1 +} function { id: 0x1e9be71c return_type_id: 0xd5cc9c9a @@ -294462,6 +296836,14 @@ function { return_type_id: 0x48b5725f parameter_id: 0x39a4e83f } +function { + id: 0x1ef25648 + return_type_id: 0x48b5725f + parameter_id: 0x39182992 + parameter_id: 0x0d164218 + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f +} function { id: 0x1ef27e10 return_type_id: 0x48b5725f @@ -294629,6 +297011,13 @@ function { parameter_id: 0x31b96ec5 parameter_id: 0xf435685e } +function { + id: 0x1f2853af + return_type_id: 0x48b5725f + parameter_id: 0x3806390a + parameter_id: 0x6d7f5ff6 + parameter_id: 0x11c404ba +} function { id: 0x1f29471f return_type_id: 0xd5cc9c9a @@ -294732,6 +297121,12 @@ function { parameter_id: 0x3760766d parameter_id: 0x8167e73b } +function { + id: 0x1f45db81 + return_type_id: 0x48b5725f + parameter_id: 0x3c417e01 + parameter_id: 0x33756485 +} function { id: 0x1f4af633 return_type_id: 0x48b5725f @@ -295149,6 +297544,11 @@ function { parameter_id: 0x5268af9d parameter_id: 0x6d7f5ff6 } +function { + id: 0x1fcce445 + return_type_id: 0x48b5725f + parameter_id: 0x3d52d75b +} function { id: 0x1fcd1693 return_type_id: 0x48b5725f @@ -295235,6 +297635,14 @@ function { return_type_id: 0x48b5725f parameter_id: 0x3df0a7d3 } +function { + id: 0x1fe91863 + return_type_id: 0x48b5725f + parameter_id: 0x3e10b518 + parameter_id: 0x3e10b518 + parameter_id: 0x324e7f0f + parameter_id: 0x6d7f5ff6 +} function { id: 0x1feaaebf return_type_id: 0x48b5725f @@ -295269,6 +297677,11 @@ function { parameter_id: 0x3e10b518 parameter_id: 0xa52a0930 } +function { + id: 0x1ff04410 + return_type_id: 0x48b5725f + parameter_id: 0x3da0560e +} function { id: 0x1ff204c3 return_type_id: 0x48b5725f @@ -296153,6 +298566,12 @@ function { return_type_id: 0x48b5725f parameter_id: 0x92233392 } +function { + id: 0x34270f0c + return_type_id: 0x0490bb4a + parameter_id: 0x36e75420 + parameter_id: 0x3e146274 +} function { id: 0x345f1809 return_type_id: 0xa9403390 @@ -297066,6 +299485,12 @@ function { parameter_id: 0x0cbf60eb parameter_id: 0x2b20aa80 } +function { + id: 0x44b624d1 + return_type_id: 0x00c83ba6 + parameter_id: 0x3b04bead + parameter_id: 0x16c5c0ab +} function { id: 0x44ddb78b return_type_id: 0x356691bc @@ -297111,6 +299536,12 @@ function { parameter_id: 0x3860f3c0 parameter_id: 0x6720d32f } +function { + id: 0x45df5dd3 + return_type_id: 0x315b7e01 + parameter_id: 0x3b04bead + parameter_id: 0x6720d32f +} function { id: 0x45f82b62 return_type_id: 0xc9082b19 @@ -297194,6 +299625,13 @@ function { return_type_id: 0x18bd6530 parameter_id: 0x4585663f } +function { + id: 0x48135354 + return_type_id: 0x35304fb1 + parameter_id: 0x3f84ee3c + parameter_id: 0x33756485 + parameter_id: 0x33756485 +} function { id: 0x48834be4 return_type_id: 0xc9082b19 @@ -297368,6 +299806,17 @@ function { return_type_id: 0x18e64f74 parameter_id: 0x3668642a } +function { + id: 0x4d306964 + return_type_id: 0x21069feb + parameter_id: 0x3c9a9fb2 + parameter_id: 0x6720d32f +} +function { + id: 0x4d744842 + return_type_id: 0x3d52d75b + parameter_id: 0x322c8c4b +} function { id: 0x4d878509 return_type_id: 0x21069feb @@ -297638,6 +300087,13 @@ function { parameter_id: 0x2936263d parameter_id: 0x6720d32f } +function { + id: 0x5274946d + return_type_id: 0x1c898f28 + parameter_id: 0x356691bc + parameter_id: 0x6720d32f + parameter_id: 0x4585663f +} function { id: 0x5281433c return_type_id: 0x92233392 @@ -298037,6 +300493,12 @@ function { return_type_id: 0x1c898f28 parameter_id: 0x210b9681 } +function { + id: 0x56edbc2a + return_type_id: 0x18bd6530 + parameter_id: 0x0258f96e + parameter_id: 0x3b4ce03a +} function { id: 0x56f10608 return_type_id: 0x18bd6530 @@ -298412,6 +300874,11 @@ function { parameter_id: 0x391f15ea parameter_id: 0xf435685e } +function { + id: 0x5b0b198d + return_type_id: 0x295c7202 + parameter_id: 0x21069feb +} function { id: 0x5b3d7cd1 return_type_id: 0x18bd6530 @@ -298763,6 +301230,12 @@ function { parameter_id: 0xd0b3a203 parameter_id: 0x0087f4f8 } +function { + id: 0x5ebf0597 + return_type_id: 0x18bd6530 + parameter_id: 0x239187d3 + parameter_id: 0x33756485 +} function { id: 0x5ed273d9 return_type_id: 0x18bd6530 @@ -298947,6 +301420,11 @@ function { parameter_id: 0x21003da7 parameter_id: 0x31b5a66f } +function { + id: 0x637004ab + return_type_id: 0x1582ab06 + parameter_id: 0x2170d06d +} function { id: 0x6408a046 return_type_id: 0x054f691a @@ -299036,6 +301514,12 @@ function { parameter_id: 0x1c3dbe5a parameter_id: 0x1c3dbe5a } +function { + id: 0x66525607 + return_type_id: 0x82bc7069 + parameter_id: 0x347303b4 + parameter_id: 0x6720d32f +} function { id: 0x6680517a return_type_id: 0x054f691a @@ -299044,6 +301528,19 @@ function { parameter_id: 0x6720d32f parameter_id: 0xf1a6dfed } +function { + id: 0x66880871 + return_type_id: 0x054f691a + parameter_id: 0x380c33d1 + parameter_id: 0x054f691a +} +function { + id: 0x66cc4765 + return_type_id: 0x28a3a74b + parameter_id: 0x1684c624 + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f +} function { id: 0x66e18f45 return_type_id: 0x2c8c423d @@ -299145,6 +301642,13 @@ function { parameter_id: 0x2584a3b9 parameter_id: 0x6d7f5ff6 } +function { + id: 0x69b2a88c + return_type_id: 0x0945c216 + parameter_id: 0x3e10b518 + parameter_id: 0xc9082b19 + parameter_id: 0xc9082b19 +} function { id: 0x69be77aa return_type_id: 0x054f691a @@ -299265,6 +301769,13 @@ function { parameter_id: 0x054f691a parameter_id: 0xf1a6dfed } +function { + id: 0x6bfb947b + return_type_id: 0x054f691a + parameter_id: 0x0dc9e98b + parameter_id: 0x054f691a + parameter_id: 0x0baa70a7 +} function { id: 0x6c109ae9 return_type_id: 0x249959de @@ -301110,6 +303621,12 @@ function { return_type_id: 0x6720d32f parameter_id: 0x3668642a } +function { + id: 0x901c3c62 + return_type_id: 0x6720d32f + parameter_id: 0x3ae3ff84 + parameter_id: 0xc9082b19 +} function { id: 0x90208300 return_type_id: 0x6720d32f @@ -302196,6 +304713,13 @@ function { parameter_id: 0x0277bf8a parameter_id: 0x07dcdbe1 } +function { + id: 0x9122ac75 + return_type_id: 0x6720d32f + parameter_id: 0x32a623d7 + parameter_id: 0x0483e6f8 + parameter_id: 0x6720d32f +} function { id: 0x91239923 return_type_id: 0x6720d32f @@ -302261,6 +304785,13 @@ function { return_type_id: 0x6720d32f parameter_id: 0x32caaf24 } +function { + id: 0x9133c6a6 + return_type_id: 0x6720d32f + parameter_id: 0x31790b1e + parameter_id: 0x3f0185ef + parameter_id: 0x4585663f +} function { id: 0x913618b5 return_type_id: 0x6720d32f @@ -302778,6 +305309,13 @@ function { parameter_id: 0x3de3f5a1 parameter_id: 0x268136e5 } +function { + id: 0x919a2688 + return_type_id: 0x6720d32f + parameter_id: 0x3064f970 + parameter_id: 0x04a6a89c + parameter_id: 0x4585663f +} function { id: 0x919a7322 return_type_id: 0x6720d32f @@ -303213,6 +305751,13 @@ function { parameter_id: 0x32a623d7 parameter_id: 0x384c5795 } +function { + id: 0x91c8e13a + return_type_id: 0x6720d32f + parameter_id: 0x32a623d7 + parameter_id: 0x3e10b518 + parameter_id: 0x6720d32f +} function { id: 0x91ca11c2 return_type_id: 0x6720d32f @@ -304141,6 +306686,13 @@ function { parameter_id: 0x3b04bead parameter_id: 0x4585663f } +function { + id: 0x9258444e + return_type_id: 0x6720d32f + parameter_id: 0x3b04bead + parameter_id: 0x4585663f + parameter_id: 0x3e75499e +} function { id: 0x925d3e48 return_type_id: 0x6720d32f @@ -305482,6 +308034,16 @@ function { parameter_id: 0x13580d6c parameter_id: 0x07dcdbe1 } +function { + id: 0x93625762 + return_type_id: 0x6720d32f + parameter_id: 0x3b04bead + parameter_id: 0x079f969f + parameter_id: 0xf435685e + parameter_id: 0x391f15ea + parameter_id: 0x30ccee09 + parameter_id: 0x2a670b41 +} function { id: 0x93627fe0 return_type_id: 0x6720d32f @@ -305522,6 +308084,19 @@ function { return_type_id: 0x6720d32f parameter_id: 0x3bb11c92 } +function { + id: 0x936fda74 + return_type_id: 0x6720d32f + parameter_id: 0x3dcee85d + parameter_id: 0x6720d32f +} +function { + id: 0x9377de98 + return_type_id: 0x6720d32f + parameter_id: 0x380882e7 + parameter_id: 0x391f15ea + parameter_id: 0x4585663f +} function { id: 0x93788ff8 return_type_id: 0x6720d32f @@ -305583,6 +308158,15 @@ function { parameter_id: 0x3e10b518 parameter_id: 0xa52a0930 } +function { + id: 0x938283cb + return_type_id: 0x6720d32f + parameter_id: 0x3b04bead + parameter_id: 0x31c8b544 + parameter_id: 0x12e6ffae + parameter_id: 0x36d2de0e + parameter_id: 0x3db894b0 +} function { id: 0x93833601 return_type_id: 0x6720d32f @@ -305686,6 +308270,13 @@ function { parameter_id: 0x39a8be0c parameter_id: 0x1e8e5a79 } +function { + id: 0x93910e88 + return_type_id: 0x6720d32f + parameter_id: 0x380c33d1 + parameter_id: 0x054f691a + parameter_id: 0x1f73dead +} function { id: 0x9394f11e return_type_id: 0x6720d32f @@ -305754,6 +308345,13 @@ function { parameter_id: 0x4585663f parameter_id: 0x0b27dc43 } +function { + id: 0x939f8199 + return_type_id: 0x6720d32f + parameter_id: 0x3b04bead + parameter_id: 0x36d2de0e + parameter_id: 0x14199568 +} function { id: 0x93a2a3d7 return_type_id: 0x6720d32f @@ -306300,6 +308898,11 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x6720d32f } +function { + id: 0x94418fe1 + return_type_id: 0x6720d32f + parameter_id: 0x2705b338 +} function { id: 0x9441b35b return_type_id: 0x6720d32f @@ -306327,6 +308930,14 @@ function { parameter_id: 0x234c60dd parameter_id: 0x4585663f } +function { + id: 0x94471ba6 + return_type_id: 0x6720d32f + parameter_id: 0x2170d06d + parameter_id: 0x6720d32f + parameter_id: 0x1d5bae2a + parameter_id: 0x064d6086 +} function { id: 0x944726c2 return_type_id: 0x6720d32f @@ -306488,6 +309099,13 @@ function { parameter_id: 0x34434827 parameter_id: 0xcddc4fff } +function { + id: 0x946d2b92 + return_type_id: 0x6720d32f + parameter_id: 0x24f9cd24 + parameter_id: 0x323908e0 + parameter_id: 0x6d7f5ff6 +} function { id: 0x946eaca9 return_type_id: 0x52658204 @@ -306717,6 +309335,13 @@ function { return_type_id: 0x6720d32f parameter_id: 0x25520d15 } +function { + id: 0x94d5972f + return_type_id: 0x6720d32f + parameter_id: 0x24f9cd24 + parameter_id: 0x1c1627b0 + parameter_id: 0x6d7f5ff6 +} function { id: 0x94d8cba3 return_type_id: 0x6720d32f @@ -306887,6 +309512,12 @@ function { parameter_id: 0x23f09c34 parameter_id: 0x1dd302e9 } +function { + id: 0x950d2ca0 + return_type_id: 0x6720d32f + parameter_id: 0x21069feb + parameter_id: 0x331a1d7a +} function { id: 0x950f0fae return_type_id: 0x6720d32f @@ -306905,6 +309536,12 @@ function { parameter_id: 0x21069feb parameter_id: 0x38040a6c } +function { + id: 0x9522132a + return_type_id: 0x6720d32f + parameter_id: 0x24f9cd24 + parameter_id: 0x6720d32f +} function { id: 0x952ae349 return_type_id: 0x6720d32f @@ -307612,6 +310249,14 @@ function { parameter_id: 0x2668e644 parameter_id: 0x78d7d113 } +function { + id: 0x95fc7a3d + return_type_id: 0x6720d32f + parameter_id: 0x23f09c34 + parameter_id: 0x23f09c34 + parameter_id: 0x3e10b518 + parameter_id: 0x3e10b518 +} function { id: 0x95fc827f return_type_id: 0x6720d32f @@ -308519,6 +311164,12 @@ function { parameter_id: 0x391f15ea parameter_id: 0x18bd6530 } +function { + id: 0x974e1bca + return_type_id: 0x6720d32f + parameter_id: 0x2953a412 + parameter_id: 0x26847863 +} function { id: 0x975a548f return_type_id: 0x6720d32f @@ -308623,6 +311274,11 @@ function { return_type_id: 0x6720d32f parameter_id: 0x28136e4b } +function { + id: 0x97889594 + return_type_id: 0x6720d32f + parameter_id: 0x2821daec +} function { id: 0x978bc97a return_type_id: 0x6720d32f @@ -310244,6 +312900,11 @@ function { return_type_id: 0x6720d32f parameter_id: 0x1285100d } +function { + id: 0x992241b9 + return_type_id: 0x6720d32f + parameter_id: 0x128a8a58 +} function { id: 0x9927995d return_type_id: 0xf435685e @@ -310767,6 +313428,12 @@ function { parameter_id: 0x1aeeade4 parameter_id: 0x6720d32f } +function { + id: 0x99ae995e + return_type_id: 0x6720d32f + parameter_id: 0x1042c9d1 + parameter_id: 0x0fb2015e +} function { id: 0x99aea96e return_type_id: 0x6720d32f @@ -311053,6 +313720,11 @@ function { parameter_id: 0x3b04bead parameter_id: 0x2d1f457b } +function { + id: 0x99df4252 + return_type_id: 0x6720d32f + parameter_id: 0x117e85f5 +} function { id: 0x99e0f6e0 return_type_id: 0x6720d32f @@ -311082,6 +313754,14 @@ function { parameter_id: 0x1e870478 parameter_id: 0xf017819f } +function { + id: 0x99e4a009 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x92233392 + parameter_id: 0x0ed82db2 + parameter_id: 0x082be49e +} function { id: 0x99e6ede5 return_type_id: 0x6720d32f @@ -311096,6 +313776,14 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x92233392 } +function { + id: 0x99e7b457 + return_type_id: 0x6720d32f + parameter_id: 0x12e6ffae + parameter_id: 0x3b04bead + parameter_id: 0xc9082b19 + parameter_id: 0x2e18f543 +} function { id: 0x99eacf10 return_type_id: 0x6720d32f @@ -311114,6 +313802,15 @@ function { parameter_id: 0x126add1c parameter_id: 0x3c2fe980 } +function { + id: 0x99ecdba4 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x92233392 + parameter_id: 0x2e029f76 + parameter_id: 0x1d19a9d5 + parameter_id: 0x6720d32f +} function { id: 0x99ed1149 return_type_id: 0x6720d32f @@ -311322,6 +314019,12 @@ function { parameter_id: 0x1d19a9d5 parameter_id: 0x4585663f } +function { + id: 0x9a1d7c68 + return_type_id: 0x6720d32f + parameter_id: 0x12e6ffae + parameter_id: 0xc9082b19 +} function { id: 0x9a1e34e7 return_type_id: 0x6720d32f @@ -311353,6 +314056,15 @@ function { parameter_id: 0x1dc3d428 parameter_id: 0x34a05394 } +function { + id: 0x9a235f02 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f + parameter_id: 0x4585663f + parameter_id: 0x4585663f + parameter_id: 0x4585663f +} function { id: 0x9a23bd25 return_type_id: 0xcc33625b @@ -311369,6 +314081,11 @@ function { return_type_id: 0x6720d32f parameter_id: 0x1e9705eb } +function { + id: 0x9a25325b + return_type_id: 0x6720d32f + parameter_id: 0x1e9745d3 +} function { id: 0x9a299233 return_type_id: 0x6720d32f @@ -311405,6 +314122,14 @@ function { parameter_id: 0x6720d32f parameter_id: 0x1d19a9d5 } +function { + id: 0x9a2b6d98 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f +} function { id: 0x9a2d8ab0 return_type_id: 0x6720d32f @@ -311826,6 +314551,11 @@ function { parameter_id: 0x3e10b518 parameter_id: 0x6720d32f } +function { + id: 0x9a6e7c60 + return_type_id: 0x6720d32f + parameter_id: 0x1fba7d3d +} function { id: 0x9a702edf return_type_id: 0x6720d32f @@ -312117,6 +314847,12 @@ function { parameter_id: 0x18e64f74 parameter_id: 0x4585663f } +function { + id: 0x9aaf7e51 + return_type_id: 0x6720d32f + parameter_id: 0x1fba7d3d + parameter_id: 0x30408c71 +} function { id: 0x9ab24357 return_type_id: 0x6720d32f @@ -312192,6 +314928,12 @@ function { return_type_id: 0x6720d32f parameter_id: 0x1ce51dde } +function { + id: 0x9ab9affb + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x4585663f +} function { id: 0x9abc5077 return_type_id: 0x6720d32f @@ -312681,6 +315423,13 @@ function { parameter_id: 0x6d7f5ff6 parameter_id: 0x1d19a9d5 } +function { + id: 0x9b15020e + return_type_id: 0x6720d32f + parameter_id: 0x188b9e81 + parameter_id: 0x2f3288e0 + parameter_id: 0x2f3288e0 +} function { id: 0x9b153afe return_type_id: 0x6720d32f @@ -312965,6 +315714,12 @@ function { parameter_id: 0x4585663f parameter_id: 0x1253769c } +function { + id: 0x9b2efcfe + return_type_id: 0x6720d32f + parameter_id: 0x19e66c71 + parameter_id: 0x35e13364 +} function { id: 0x9b2f1182 return_type_id: 0x6720d32f @@ -313016,6 +315771,12 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x26e55184 } +function { + id: 0x9b35e16b + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x2696c21b +} function { id: 0x9b37fa13 return_type_id: 0x6720d32f @@ -313427,6 +316188,13 @@ function { parameter_id: 0x1aeeade4 parameter_id: 0x1a5d0549 } +function { + id: 0x9b52c397 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x3c692b7e + parameter_id: 0x33756485 +} function { id: 0x9b5377a8 return_type_id: 0x6720d32f @@ -313441,6 +316209,14 @@ function { parameter_id: 0x3e10b518 parameter_id: 0x11cfee5a } +function { + id: 0x9b54acf0 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x3ee88c45 + parameter_id: 0x03ce74cd + parameter_id: 0x11cfee5a +} function { id: 0x9b54b215 return_type_id: 0x6720d32f @@ -313863,6 +316639,13 @@ function { parameter_id: 0x019e2530 parameter_id: 0x11cfee5a } +function { + id: 0x9b6eb2a8 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x33756485 + parameter_id: 0x33756485 +} function { id: 0x9b6eb620 return_type_id: 0x6720d32f @@ -313889,6 +316672,14 @@ function { parameter_id: 0xc9082b19 parameter_id: 0x17b3f4e8 } +function { + id: 0x9b723218 + return_type_id: 0x2a670b41 + parameter_id: 0x3b04bead + parameter_id: 0xc9082b19 + parameter_id: 0x3e10b518 + parameter_id: 0x1c3dbe5a +} function { id: 0x9b7237ea return_type_id: 0x2a670b41 @@ -314087,6 +316878,13 @@ function { parameter_id: 0x6720d32f parameter_id: 0xfc0e1dbd } +function { + id: 0x9b7ba7c5 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x33756485 + parameter_id: 0x6720d32f +} function { id: 0x9b7bfb3b return_type_id: 0x6720d32f @@ -314367,6 +317165,12 @@ function { parameter_id: 0x2a670b41 parameter_id: 0x0db25a6d } +function { + id: 0x9b94dad5 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x0ed82db2 +} function { id: 0x9b957b56 return_type_id: 0x6720d32f @@ -314504,6 +317308,27 @@ function { parameter_id: 0x02a8d0c9 parameter_id: 0x1d19a9d5 } +function { + id: 0x9ba26d2b + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x02a8d0c9 + parameter_id: 0x1f8dbf97 + parameter_id: 0x24373219 + parameter_id: 0x1d6b5d95 + parameter_id: 0x3e6239e1 + parameter_id: 0x6d7f5ff6 + parameter_id: 0x11cfee5a +} +function { + id: 0x9ba26d9c + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x02a8d0c9 + parameter_id: 0x1f8dbf97 + parameter_id: 0x24373219 + parameter_id: 0x1c3dbe5a +} function { id: 0x9ba2e939 return_type_id: 0x6720d32f @@ -314517,6 +317342,15 @@ function { parameter_id: 0x09d25c5b parameter_id: 0x07f5d8a3 } +function { + id: 0x9ba346af + return_type_id: 0x6720d32f + parameter_id: 0x1b55a8f2 + parameter_id: 0x3e10b518 + parameter_id: 0x3e75499e + parameter_id: 0x4585663f + parameter_id: 0x18bd6530 +} function { id: 0x9ba39408 return_type_id: 0x6720d32f @@ -315288,6 +318122,14 @@ function { parameter_id: 0x1bf16028 parameter_id: 0x370ed8aa } +function { + id: 0x9bcdfb6a + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1bf16028 + parameter_id: 0x370ed8aa + parameter_id: 0x11cfee5a +} function { id: 0x9bcfc1f5 return_type_id: 0x6720d32f @@ -315300,6 +318142,14 @@ function { parameter_id: 0x1b2ca025 parameter_id: 0x21003da7 } +function { + id: 0x9bd01103 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x2e029f76 + parameter_id: 0x13580d6c +} function { id: 0x9bd01b5c return_type_id: 0x6720d32f @@ -315405,6 +318255,16 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x3332797f } +function { + id: 0x9bd44256 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x38bffa98 + parameter_id: 0x6d7f5ff6 + parameter_id: 0x13580d6c + parameter_id: 0x11cfee5a +} function { id: 0x9bd444ea return_type_id: 0x6720d32f @@ -315629,6 +318489,14 @@ function { parameter_id: 0x1c3dbe5a parameter_id: 0x1c898f28 } +function { + id: 0x9bd8639c + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1f8dbf97 + parameter_id: 0x24373219 + parameter_id: 0x38b368bf +} function { id: 0x9bd88151 return_type_id: 0x6720d32f @@ -316079,6 +318947,14 @@ function { parameter_id: 0x92233392 parameter_id: 0x92233392 } +function { + id: 0x9bec16df + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x10de2fab + parameter_id: 0x02a8d0c9 + parameter_id: 0x1f8dbf97 +} function { id: 0x9bee7944 return_type_id: 0x6720d32f @@ -316110,6 +318986,13 @@ function { return_type_id: 0x6720d32f parameter_id: 0x19c40476 } +function { + id: 0x9bf23070 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x11b57133 + parameter_id: 0x6d7f5ff6 +} function { id: 0x9bf37946 return_type_id: 0x6720d32f @@ -317180,6 +320063,12 @@ function { parameter_id: 0x04b193cc parameter_id: 0x06ef24ac } +function { + id: 0x9cb7a3ee + return_type_id: 0x6720d32f + parameter_id: 0x0f78474f + parameter_id: 0xba5444a6 +} function { id: 0x9cb7cef1 return_type_id: 0x6720d32f @@ -317935,6 +320824,12 @@ function { parameter_id: 0x01c5a749 parameter_id: 0x30600191 } +function { + id: 0x9d30566e + return_type_id: 0x6720d32f + parameter_id: 0x026c3dea + parameter_id: 0x0aee8ed6 +} function { id: 0x9d30fa23 return_type_id: 0x6720d32f @@ -318161,6 +321056,12 @@ function { parameter_id: 0x2f73da3b parameter_id: 0x6720d32f } +function { + id: 0x9d4713e6 + return_type_id: 0x6720d32f + parameter_id: 0x034b35b4 + parameter_id: 0x054f691a +} function { id: 0x9d475de3 return_type_id: 0x6720d32f @@ -318486,6 +321387,13 @@ function { parameter_id: 0x1bb6a471 parameter_id: 0x368ec5cb } +function { + id: 0x9d760cc4 + return_type_id: 0x6720d32f + parameter_id: 0x0357d2dd + parameter_id: 0x0b27dc43 + parameter_id: 0x3e10b518 +} function { id: 0x9d763af9 return_type_id: 0x6720d32f @@ -318738,6 +321646,12 @@ function { parameter_id: 0xc700b957 parameter_id: 0x07dcdbe1 } +function { + id: 0x9da46876 + return_type_id: 0x6720d32f + parameter_id: 0x01e0b0cf + parameter_id: 0x1729da91 +} function { id: 0x9da4bde5 return_type_id: 0x6720d32f @@ -318822,6 +321736,11 @@ function { parameter_id: 0x295c7202 parameter_id: 0x4585663f } +function { + id: 0x9db75c24 + return_type_id: 0x6720d32f + parameter_id: 0x00defc2c +} function { id: 0x9db78784 return_type_id: 0x6720d32f @@ -319331,6 +322250,12 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x0c45539b } +function { + id: 0x9de1e6d5 + return_type_id: 0x6720d32f + parameter_id: 0x0258f96e + parameter_id: 0x3dcee85d +} function { id: 0x9de31a69 return_type_id: 0x6720d32f @@ -319670,6 +322595,11 @@ function { parameter_id: 0x0cf3d8fe parameter_id: 0x2ec35650 } +function { + id: 0x9e08a6b2 + return_type_id: 0x6720d32f + parameter_id: 0x0e211675 +} function { id: 0x9e08dfbb return_type_id: 0x6720d32f @@ -320068,6 +322998,28 @@ function { return_type_id: 0x6720d32f parameter_id: 0x0f78474f } +function { + id: 0x9e5fde3c + return_type_id: 0x6720d32f + parameter_id: 0x0dc9e98b + parameter_id: 0x295c7202 + parameter_id: 0x295c7202 + parameter_id: 0x914dbfdc + parameter_id: 0x914dbfdc + parameter_id: 0x391f15ea + parameter_id: 0x914dbfdc +} +function { + id: 0x9e5fdeba + return_type_id: 0x6720d32f + parameter_id: 0x0dc9e98b + parameter_id: 0x295c7202 + parameter_id: 0x295c7202 + parameter_id: 0x914dbfdc + parameter_id: 0x914dbfdc + parameter_id: 0x18bd6530 + parameter_id: 0x914dbfdc +} function { id: 0x9e609ac2 return_type_id: 0x6720d32f @@ -320105,6 +323057,12 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x07dcdbe1 } +function { + id: 0x9e65fffe + return_type_id: 0x6720d32f + parameter_id: 0x09e67e75 + parameter_id: 0x6720d32f +} function { id: 0x9e663e24 return_type_id: 0x6720d32f @@ -320180,6 +323138,13 @@ function { parameter_id: 0x366f4294 parameter_id: 0x0e656e5d } +function { + id: 0x9e6f0e68 + return_type_id: 0x6720d32f + parameter_id: 0x09e67e75 + parameter_id: 0x6720d32f + parameter_id: 0x2bc65a97 +} function { id: 0x9e711486 return_type_id: 0x6720d32f @@ -320246,6 +323211,20 @@ function { parameter_id: 0x07dcdbe1 parameter_id: 0x0aa1f0ee } +function { + id: 0x9e7bd8f3 + return_type_id: 0x6720d32f + parameter_id: 0x05c2a3ca + parameter_id: 0xa2e4cbbb +} +function { + id: 0x9e7d48ad + return_type_id: 0x6720d32f + parameter_id: 0x0dc9e98b + parameter_id: 0x21069feb + parameter_id: 0x295c7202 + parameter_id: 0x6720d32f +} function { id: 0x9e7f936c return_type_id: 0x6720d32f @@ -320435,6 +323414,12 @@ function { parameter_id: 0x3a40dd6c parameter_id: 0x07dcdbe1 } +function { + id: 0x9eb7f57a + return_type_id: 0x6720d32f + parameter_id: 0x0e211675 + parameter_id: 0x2fd4f232 +} function { id: 0x9eb8629a return_type_id: 0x6720d32f @@ -320968,6 +323953,13 @@ function { parameter_id: 0x097315c2 parameter_id: 0x3e10b518 } +function { + id: 0x9f248ea4 + return_type_id: 0x6720d32f + parameter_id: 0x0945c216 + parameter_id: 0x391f15ea + parameter_id: 0x4585663f +} function { id: 0x9f25dc29 return_type_id: 0x6720d32f @@ -321429,6 +324421,16 @@ function { parameter_id: 0x5d8155a5 parameter_id: 0x6720d32f } +function { + id: 0x9f85a1ff + return_type_id: 0x6720d32f + parameter_id: 0x0de4c6b1 + parameter_id: 0x5d8155a5 + parameter_id: 0x2669d715 + parameter_id: 0xf435685e + parameter_id: 0xfa5f37bb + parameter_id: 0x87463428 +} function { id: 0x9f87b817 return_type_id: 0x6720d32f @@ -321857,6 +324859,11 @@ function { id: 0x9fd15b99 return_type_id: 0x11c404ba } +function { + id: 0x9fd193aa + return_type_id: 0x6720d32f + parameter_id: 0x0945c216 +} function { id: 0x9fd1a709 return_type_id: 0x6720d32f @@ -322526,6 +325533,12 @@ function { parameter_id: 0x391f15ea parameter_id: 0x2dec91ef } +function { + id: 0xa7ea77a4 + return_type_id: 0xfc0e1dbd + parameter_id: 0x00c83ba6 + parameter_id: 0x3e10b518 +} function { id: 0xa7f54c85 return_type_id: 0xfc0e1dbd @@ -322654,6 +325667,13 @@ function { parameter_id: 0x4585663f parameter_id: 0xf1a6dfed } +function { + id: 0xaa27b09c + return_type_id: 0x0e211675 + parameter_id: 0x0258f96e + parameter_id: 0x3e10b518 + parameter_id: 0x6720d32f +} function { id: 0xaa55ab2e return_type_id: 0x31b5a66f @@ -322678,6 +325698,12 @@ function { parameter_id: 0x3e10b518 parameter_id: 0x3e10b518 } +function { + id: 0xaa9ceb0d + return_type_id: 0x0e211675 + parameter_id: 0x0258f96e + parameter_id: 0x16b45c7f +} function { id: 0xaa9fab30 return_type_id: 0x3dcee85d @@ -323015,6 +326041,12 @@ function { return_type_id: 0x6720d32f parameter_id: 0xb0ddb211 } +function { + id: 0xb28c48b5 + return_type_id: 0x067c4b9a + parameter_id: 0x358ff5b7 + parameter_id: 0x31b5a66f +} function { id: 0xb2be15b9 return_type_id: 0x6720d32f @@ -323045,6 +326077,13 @@ function { parameter_id: 0x315b7e01 parameter_id: 0x358ff5b7 } +function { + id: 0xb3cfd554 + return_type_id: 0x067c4b9a + parameter_id: 0x358ff5b7 + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f +} function { id: 0xb3df35fa return_type_id: 0x06835e9c @@ -323223,6 +326262,15 @@ function { parameter_id: 0x14b9453b parameter_id: 0x33756485 } +function { + id: 0xb9f52377 + return_type_id: 0x6720d32f + parameter_id: 0x92233392 + parameter_id: 0x3c417e01 + parameter_id: 0x33756485 + parameter_id: 0x33756485 + parameter_id: 0x6720d32f +} function { id: 0xba11bc6a return_type_id: 0x06835e9c @@ -323239,6 +326287,14 @@ function { parameter_id: 0x1344d43c parameter_id: 0xf1a6dfed } +function { + id: 0xba97bb1d + return_type_id: 0x6720d32f + parameter_id: 0x9565759f + parameter_id: 0x9565759f + parameter_id: 0x6d7f5ff6 + parameter_id: 0x33d50b40 +} function { id: 0xbb40a305 return_type_id: 0x6720d32f @@ -323608,6 +326664,11 @@ function { parameter_id: 0x310ec01d parameter_id: 0x310ec01d } +function { + id: 0xc272f60e + return_type_id: 0x4585663f + parameter_id: 0x32a623d7 +} function { id: 0xc29f6b92 return_type_id: 0x3b399f9e @@ -324033,6 +327094,11 @@ function { parameter_id: 0x6720d32f parameter_id: 0x6720d32f } +function { + id: 0xcc8a0e7e + return_type_id: 0x4585663f + parameter_id: 0x0945c216 +} function { id: 0xcc9736e7 return_type_id: 0x65d74a06 @@ -324071,6 +327137,11 @@ function { parameter_id: 0x37f227e9 parameter_id: 0x6720d32f } +function { + id: 0xcd844708 + return_type_id: 0x4585663f + parameter_id: 0x0d7ce7cc +} function { id: 0xcd8cb8f5 return_type_id: 0x4585663f @@ -324456,6 +327527,11 @@ function { return_type_id: 0x02eb105a parameter_id: 0x3e10b518 } +function { + id: 0xd9bb2b92 + return_type_id: 0x4585663f + parameter_id: 0x5d8155a5 +} function { id: 0xd9de6af9 return_type_id: 0x1e93567a @@ -324726,6 +327802,15 @@ function { parameter_id: 0x18a2fb63 parameter_id: 0x4585663f } +function { + id: 0xe10f9802 + return_type_id: 0x2eab5b8a + parameter_id: 0x0de4c6b1 + parameter_id: 0xfa5f37bb + parameter_id: 0x4585663f + parameter_id: 0x4585663f + parameter_id: 0x4585663f +} function { id: 0xe12a6d4e return_type_id: 0x07450c2a @@ -324754,6 +327839,11 @@ function { parameter_id: 0x2df43e6f parameter_id: 0x187ed209 } +function { + id: 0xe2abbe2e + return_type_id: 0x1b55a8f2 + parameter_id: 0x347303b4 +} function { id: 0xe2c8401b return_type_id: 0x3ea2e6c1 @@ -325327,6 +328417,13 @@ function { parameter_id: 0x3e10b518 parameter_id: 0x00c72527 } +function { + id: 0xf12845f8 + return_type_id: 0x32a623d7 + parameter_id: 0x32a623d7 + parameter_id: 0x7584e7da + parameter_id: 0x914dbfdc +} function { id: 0xf1329f23 return_type_id: 0x6d7f5ff6 @@ -325548,6 +328645,17 @@ function { parameter_id: 0x1b55a8f2 parameter_id: 0x4585663f } +function { + id: 0xf2708109 + return_type_id: 0x32a623d7 + parameter_id: 0x380c33d1 +} +function { + id: 0xf272e262 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x31b5a66f + parameter_id: 0x2ef43f67 +} function { id: 0xf275a972 return_type_id: 0x6d7f5ff6 @@ -325572,6 +328680,14 @@ function { return_type_id: 0x26e55184 parameter_id: 0x3e10b518 } +function { + id: 0xf2d3e848 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x324e7f0f + parameter_id: 0x3bcd0c02 + parameter_id: 0x2de928d9 + parameter_id: 0x18bd6530 +} function { id: 0xf2d73ac2 return_type_id: 0x6d7f5ff6 @@ -325660,6 +328776,15 @@ function { return_type_id: 0x6d7f5ff6 parameter_id: 0x36194830 } +function { + id: 0xf3248c4f + return_type_id: 0x6d7f5ff6 + parameter_id: 0x35f8cea5 + parameter_id: 0x3bcd0c02 + parameter_id: 0x4585663f + parameter_id: 0x2de928d9 + parameter_id: 0x18bd6530 +} function { id: 0xf334abb2 return_type_id: 0x6d7f5ff6 @@ -325791,6 +328916,11 @@ function { parameter_id: 0xd0b3a203 parameter_id: 0xd0b3a203 } +function { + id: 0xf3f7a0bb + return_type_id: 0x32a623d7 + parameter_id: 0x3e10b518 +} function { id: 0xf44fff9f return_type_id: 0x6d7f5ff6 @@ -326914,6 +330044,24 @@ elf_symbol { type_id: 0x95e66878 full_name: "___ratelimit" } +elf_symbol { + id: 0x98179c82 + name: "___update_load_avg" + is_defined: true + symbol_type: FUNCTION + crc: 0xc8b1b72f + type_id: 0x1f45db81 + full_name: "___update_load_avg" +} +elf_symbol { + id: 0xfa979d99 + name: "___update_load_sum" + is_defined: true + symbol_type: FUNCTION + crc: 0xd667f721 + type_id: 0xb9f52377 + full_name: "___update_load_sum" +} elf_symbol { id: 0x6e1bc82e name: "__alloc_pages" @@ -327874,6 +331022,15 @@ elf_symbol { type_id: 0x1c25e791 full_name: "__drm_atomic_helper_crtc_reset" } +elf_symbol { + id: 0xa061e45d + name: "__drm_atomic_helper_disable_plane" + is_defined: true + symbol_type: FUNCTION + crc: 0x3695d680 + type_id: 0x9bf37946 + full_name: "__drm_atomic_helper_disable_plane" +} elf_symbol { id: 0xec903c93 name: "__drm_atomic_helper_plane_destroy_state" @@ -328324,6 +331481,15 @@ elf_symbol { type_id: 0x98878fd8 full_name: "__hci_cmd_sync_status_sk" } +elf_symbol { + id: 0xb3d97fa3 + name: "__hid_register_driver" + is_defined: true + symbol_type: FUNCTION + crc: 0xe11057d9 + type_id: 0x9d760cc4 + full_name: "__hid_register_driver" +} elf_symbol { id: 0xf245d4a3 name: "__hrtimer_get_remaining" @@ -328937,6 +332103,24 @@ elf_symbol { type_id: 0x1655e07b full_name: "__mmdrop" } +elf_symbol { + id: 0x68d1b187 + name: "__mod_lruvec_state" + is_defined: true + symbol_type: FUNCTION + crc: 0x0ab46d8d + type_id: 0x1e768676 + full_name: "__mod_lruvec_state" +} +elf_symbol { + id: 0x9de4c040 + name: "__mod_zone_page_state" + is_defined: true + symbol_type: FUNCTION + crc: 0x0683f992 + type_id: 0x11584934 + full_name: "__mod_zone_page_state" +} elf_symbol { id: 0x89d01efd name: "__module_get" @@ -330080,6 +333264,15 @@ elf_symbol { type_id: 0x9ba7ef87 full_name: "__traceiter_android_rvh_arm64_serror_panic" } +elf_symbol { + id: 0x6d4cc1a2 + name: "__traceiter_android_rvh_attach_entity_load_avg" + is_defined: true + symbol_type: FUNCTION + crc: 0xb9a0b097 + type_id: 0x9b96d02c + full_name: "__traceiter_android_rvh_attach_entity_load_avg" +} elf_symbol { id: 0x48420da9 name: "__traceiter_android_rvh_audio_usb_offload_disconnect" @@ -330242,6 +333435,15 @@ elf_symbol { type_id: 0x9b116af7 full_name: "__traceiter_android_rvh_dequeue_task_fair" } +elf_symbol { + id: 0xa0a77bb8 + name: "__traceiter_android_rvh_detach_entity_load_avg" + is_defined: true + symbol_type: FUNCTION + crc: 0x477c169e + type_id: 0x9b96d02c + full_name: "__traceiter_android_rvh_detach_entity_load_avg" +} elf_symbol { id: 0xa3b41867 name: "__traceiter_android_rvh_die_kernel_fault" @@ -330476,6 +333678,24 @@ elf_symbol { type_id: 0x9b8019c6 full_name: "__traceiter_android_rvh_iommu_setup_dma_ops" } +elf_symbol { + id: 0xfc83b254 + name: "__traceiter_android_rvh_irqs_disable" + is_defined: true + symbol_type: FUNCTION + crc: 0x707d1f10 + type_id: 0x9b6eb2a8 + full_name: "__traceiter_android_rvh_irqs_disable" +} +elf_symbol { + id: 0x7e99bc71 + name: "__traceiter_android_rvh_irqs_enable" + is_defined: true + symbol_type: FUNCTION + crc: 0x7a345722 + type_id: 0x9b6eb2a8 + full_name: "__traceiter_android_rvh_irqs_enable" +} elf_symbol { id: 0x7c212080 name: "__traceiter_android_rvh_is_cpu_allowed" @@ -330566,6 +333786,24 @@ elf_symbol { type_id: 0x9b8f15f1 full_name: "__traceiter_android_rvh_post_init_entity_util_avg" } +elf_symbol { + id: 0x167fc668 + name: "__traceiter_android_rvh_preempt_disable" + is_defined: true + symbol_type: FUNCTION + crc: 0x1585c762 + type_id: 0x9b6eb2a8 + full_name: "__traceiter_android_rvh_preempt_disable" +} +elf_symbol { + id: 0xd6a514f5 + name: "__traceiter_android_rvh_preempt_enable" + is_defined: true + symbol_type: FUNCTION + crc: 0x3235e37a + type_id: 0x9b6eb2a8 + full_name: "__traceiter_android_rvh_preempt_enable" +} elf_symbol { id: 0xeccbc3c1 name: "__traceiter_android_rvh_prepare_prio_fork" @@ -330602,6 +333840,15 @@ elf_symbol { type_id: 0x9a1a471c full_name: "__traceiter_android_rvh_refrigerator" } +elf_symbol { + id: 0xc191b2f6 + name: "__traceiter_android_rvh_remove_entity_load_avg" + is_defined: true + symbol_type: FUNCTION + crc: 0x4a7a0801 + type_id: 0x9b96d02c + full_name: "__traceiter_android_rvh_remove_entity_load_avg" +} elf_symbol { id: 0xe3e24295 name: "__traceiter_android_rvh_replace_next_task_fair" @@ -330881,6 +334128,15 @@ elf_symbol { type_id: 0x9bc07fe3 full_name: "__traceiter_android_rvh_set_gfp_zone_flags" } +elf_symbol { + id: 0x9c2c2d71 + name: "__traceiter_android_rvh_set_iowait" + is_defined: true + symbol_type: FUNCTION + crc: 0xd1ed6c7e + type_id: 0x9bd01103 + full_name: "__traceiter_android_rvh_set_iowait" +} elf_symbol { id: 0xcac6b03d name: "__traceiter_android_rvh_set_module_core_rw_nx" @@ -331043,6 +334299,15 @@ elf_symbol { type_id: 0x9bca85c1 full_name: "__traceiter_android_rvh_uclamp_eff_get" } +elf_symbol { + id: 0xa63eb82a + name: "__traceiter_android_rvh_update_blocked_fair" + is_defined: true + symbol_type: FUNCTION + crc: 0x0484f45c + type_id: 0x9b17b01e + full_name: "__traceiter_android_rvh_update_blocked_fair" +} elf_symbol { id: 0xcd824552 name: "__traceiter_android_rvh_update_cpu_capacity" @@ -331052,6 +334317,15 @@ elf_symbol { type_id: 0x9a32aa77 full_name: "__traceiter_android_rvh_update_cpu_capacity" } +elf_symbol { + id: 0xb6d1fa25 + name: "__traceiter_android_rvh_update_load_avg" + is_defined: true + symbol_type: FUNCTION + crc: 0xa1719b21 + type_id: 0x99e4a009 + full_name: "__traceiter_android_rvh_update_load_avg" +} elf_symbol { id: 0x16809a5a name: "__traceiter_android_rvh_update_misfit_status" @@ -331061,6 +334335,15 @@ elf_symbol { type_id: 0x9bd01b5c full_name: "__traceiter_android_rvh_update_misfit_status" } +elf_symbol { + id: 0xfaa2e0a4 + name: "__traceiter_android_rvh_update_rt_rq_load_avg" + is_defined: true + symbol_type: FUNCTION + crc: 0x4748df7a + type_id: 0x99ecdba4 + full_name: "__traceiter_android_rvh_update_rt_rq_load_avg" +} elf_symbol { id: 0xc1ba0eb6 name: "__traceiter_android_rvh_update_thermal_stats" @@ -331106,6 +334389,15 @@ elf_symbol { type_id: 0x9bd1d928 full_name: "__traceiter_android_vh_account_task_time" } +elf_symbol { + id: 0xd0b4a794 + name: "__traceiter_android_vh_alloc_oem_binder_struct" + is_defined: true + symbol_type: FUNCTION + crc: 0x72653196 + type_id: 0x9bec16df + full_name: "__traceiter_android_vh_alloc_oem_binder_struct" +} elf_symbol { id: 0x33f9278c name: "__traceiter_android_vh_alloc_pages_failure_bypass" @@ -331205,6 +334497,15 @@ elf_symbol { type_id: 0x9bdcd3ab full_name: "__traceiter_android_vh_binder_del_ref" } +elf_symbol { + id: 0xcb807696 + name: "__traceiter_android_vh_binder_free_buf" + is_defined: true + symbol_type: FUNCTION + crc: 0x71365aee + type_id: 0x9bd8639c + full_name: "__traceiter_android_vh_binder_free_buf" +} elf_symbol { id: 0xbebf7d98 name: "__traceiter_android_vh_binder_free_proc" @@ -331331,6 +334632,15 @@ elf_symbol { type_id: 0x9ba25f4a full_name: "__traceiter_android_vh_binder_set_priority" } +elf_symbol { + id: 0x6bce867e + name: "__traceiter_android_vh_binder_special_task" + is_defined: true + symbol_type: FUNCTION + crc: 0x93949f33 + type_id: 0x9ba26d2b + full_name: "__traceiter_android_vh_binder_special_task" +} elf_symbol { id: 0x4785a3dd name: "__traceiter_android_vh_binder_thread_read" @@ -331367,6 +334677,15 @@ elf_symbol { type_id: 0x9ba51920 full_name: "__traceiter_android_vh_binder_transaction_init" } +elf_symbol { + id: 0xcc2edef9 + name: "__traceiter_android_vh_binder_transaction_received" + is_defined: true + symbol_type: FUNCTION + crc: 0xffec96fd + type_id: 0x9ba26d9c + full_name: "__traceiter_android_vh_binder_transaction_received" +} elf_symbol { id: 0x61c82fb5 name: "__traceiter_android_vh_binder_wait_for_work" @@ -331394,6 +334713,15 @@ elf_symbol { type_id: 0x9a1a471c full_name: "__traceiter_android_vh_build_sched_domains" } +elf_symbol { + id: 0x31a78b8a + name: "__traceiter_android_vh_bus_iommu_probe" + is_defined: true + symbol_type: FUNCTION + crc: 0x61426ce9 + type_id: 0x9b54acf0 + full_name: "__traceiter_android_vh_bus_iommu_probe" +} elf_symbol { id: 0xa9225bf8 name: "__traceiter_android_vh_cgroup_attach" @@ -331484,6 +334812,24 @@ elf_symbol { type_id: 0x9b63bb96 full_name: "__traceiter_android_vh_cleanup_old_buffers_bypass" } +elf_symbol { + id: 0xa4527895 + name: "__traceiter_android_vh_compaction_exit" + is_defined: true + symbol_type: FUNCTION + crc: 0x5de850c2 + type_id: 0x9a2b6d98 + full_name: "__traceiter_android_vh_compaction_exit" +} +elf_symbol { + id: 0x3644fdcd + name: "__traceiter_android_vh_compaction_try_to_compact_pages_exit" + is_defined: true + symbol_type: FUNCTION + crc: 0xcca408f4 + type_id: 0x9b35e16b + full_name: "__traceiter_android_vh_compaction_try_to_compact_pages_exit" +} elf_symbol { id: 0x9247dcb1 name: "__traceiter_android_vh_cpu_idle_enter" @@ -331691,6 +335037,15 @@ elf_symbol { type_id: 0x9a1e34e7 full_name: "__traceiter_android_vh_file_is_tiny_bypass" } +elf_symbol { + id: 0x9e91661b + name: "__traceiter_android_vh_free_oem_binder_struct" + is_defined: true + symbol_type: FUNCTION + crc: 0xe3c92b7e + type_id: 0x9ba51920 + full_name: "__traceiter_android_vh_free_oem_binder_struct" +} elf_symbol { id: 0xc189c2a7 name: "__traceiter_android_vh_free_one_page_bypass" @@ -332096,6 +335451,33 @@ elf_symbol { type_id: 0x9bb62df9 full_name: "__traceiter_android_vh_meminfo_proc_show" } +elf_symbol { + id: 0x295c28cd + name: "__traceiter_android_vh_mm_alloc_pages_direct_reclaim_enter" + is_defined: true + symbol_type: FUNCTION + crc: 0xe4da6100 + type_id: 0x9ab9affb + full_name: "__traceiter_android_vh_mm_alloc_pages_direct_reclaim_enter" +} +elf_symbol { + id: 0x10e93e46 + name: "__traceiter_android_vh_mm_alloc_pages_direct_reclaim_exit" + is_defined: true + symbol_type: FUNCTION + crc: 0x61d4882e + type_id: 0x9b7ba7c5 + full_name: "__traceiter_android_vh_mm_alloc_pages_direct_reclaim_exit" +} +elf_symbol { + id: 0x49cebcae + name: "__traceiter_android_vh_mm_alloc_pages_may_oom_exit" + is_defined: true + symbol_type: FUNCTION + crc: 0x91a9d265 + type_id: 0x9b52c397 + full_name: "__traceiter_android_vh_mm_alloc_pages_may_oom_exit" +} elf_symbol { id: 0xe44dacb1 name: "__traceiter_android_vh_mmap_region" @@ -332222,6 +335604,15 @@ elf_symbol { type_id: 0x9bb7fe1c full_name: "__traceiter_android_vh_page_add_new_anon_rmap" } +elf_symbol { + id: 0xd14f3adb + name: "__traceiter_android_vh_percpu_rwsem_wq_add" + is_defined: true + symbol_type: FUNCTION + crc: 0xf0301f63 + type_id: 0x9bf23070 + full_name: "__traceiter_android_vh_percpu_rwsem_wq_add" +} elf_symbol { id: 0x5983841b name: "__traceiter_android_vh_post_image_save" @@ -332834,6 +336225,24 @@ elf_symbol { type_id: 0x9b538b4c full_name: "__traceiter_android_vh_typec_tcpm_log" } +elf_symbol { + id: 0x5ab5402f + name: "__traceiter_android_vh_typec_tcpm_modify_src_caps" + is_defined: true + symbol_type: FUNCTION + crc: 0xd505a0db + type_id: 0x9bcdfb6a + full_name: "__traceiter_android_vh_typec_tcpm_modify_src_caps" +} +elf_symbol { + id: 0xaa213206 + name: "__traceiter_android_vh_uclamp_validate" + is_defined: true + symbol_type: FUNCTION + crc: 0xd05b7a41 + type_id: 0x9bd44256 + full_name: "__traceiter_android_vh_uclamp_validate" +} elf_symbol { id: 0xe31bb308 name: "__traceiter_android_vh_ufs_check_int_errors" @@ -332951,6 +336360,24 @@ elf_symbol { type_id: 0x9bcd4ff7 full_name: "__traceiter_android_vh_update_topology_flags_workfn" } +elf_symbol { + id: 0x08824ed3 + name: "__traceiter_android_vh_use_amu_fie" + is_defined: true + symbol_type: FUNCTION + crc: 0xb22c3cda + type_id: 0x9be885da + full_name: "__traceiter_android_vh_use_amu_fie" +} +elf_symbol { + id: 0xcbec9d66 + name: "__traceiter_android_vh_vmscan_kswapd_done" + is_defined: true + symbol_type: FUNCTION + crc: 0x96191a01 + type_id: 0x9a235f02 + full_name: "__traceiter_android_vh_vmscan_kswapd_done" +} elf_symbol { id: 0xb0bf7fd6 name: "__traceiter_android_vh_watchdog_timer_softlockup" @@ -333266,6 +336693,33 @@ elf_symbol { type_id: 0x9bba87c7 full_name: "__traceiter_netif_rx" } +elf_symbol { + id: 0xbbfa35c3 + name: "__traceiter_pelt_cfs_tp" + is_defined: true + symbol_type: FUNCTION + crc: 0x53dcc117 + type_id: 0x9b94dad5 + full_name: "__traceiter_pelt_cfs_tp" +} +elf_symbol { + id: 0x328bf22b + name: "__traceiter_pelt_dl_tp" + is_defined: true + symbol_type: FUNCTION + crc: 0x977e9245 + type_id: 0x9b17b01e + full_name: "__traceiter_pelt_dl_tp" +} +elf_symbol { + id: 0xbdceccc2 + name: "__traceiter_pelt_irq_tp" + is_defined: true + symbol_type: FUNCTION + crc: 0xb26f5140 + type_id: 0x9b17b01e + full_name: "__traceiter_pelt_irq_tp" +} elf_symbol { id: 0x3e69b303 name: "__traceiter_pelt_rt_tp" @@ -333311,6 +336765,15 @@ elf_symbol { type_id: 0x9b6cf0df full_name: "__traceiter_rwmmio_write" } +elf_symbol { + id: 0x1e8ffa55 + name: "__traceiter_sched_cpu_capacity_tp" + is_defined: true + symbol_type: FUNCTION + crc: 0xf30b3e42 + type_id: 0x9b17b01e + full_name: "__traceiter_sched_cpu_capacity_tp" +} elf_symbol { id: 0xb614ca1f name: "__traceiter_sched_overutilized_tp" @@ -333383,6 +336846,24 @@ elf_symbol { type_id: 0x9b0e782a full_name: "__traceiter_sched_update_nr_running_tp" } +elf_symbol { + id: 0x00296361 + name: "__traceiter_sched_util_est_cfs_tp" + is_defined: true + symbol_type: FUNCTION + crc: 0xa50436b4 + type_id: 0x9b94dad5 + full_name: "__traceiter_sched_util_est_cfs_tp" +} +elf_symbol { + id: 0xf574f9d9 + name: "__traceiter_sched_util_est_se_tp" + is_defined: true + symbol_type: FUNCTION + crc: 0xbbb17097 + type_id: 0x9b8f15f1 + full_name: "__traceiter_sched_util_est_se_tp" +} elf_symbol { id: 0x20097074 name: "__traceiter_sched_waking" @@ -333482,6 +336963,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_arm64_serror_panic" } +elf_symbol { + id: 0xc9400cec + name: "__tracepoint_android_rvh_attach_entity_load_avg" + is_defined: true + symbol_type: OBJECT + crc: 0x9476c5e4 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_attach_entity_load_avg" +} elf_symbol { id: 0xaf461bff name: "__tracepoint_android_rvh_audio_usb_offload_disconnect" @@ -333644,6 +337134,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_dequeue_task_fair" } +elf_symbol { + id: 0x5029bb46 + name: "__tracepoint_android_rvh_detach_entity_load_avg" + is_defined: true + symbol_type: OBJECT + crc: 0xb186a022 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_detach_entity_load_avg" +} elf_symbol { id: 0x11f903b1 name: "__tracepoint_android_rvh_die_kernel_fault" @@ -333878,6 +337377,24 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_iommu_setup_dma_ops" } +elf_symbol { + id: 0x4fd98142 + name: "__tracepoint_android_rvh_irqs_disable" + is_defined: true + symbol_type: OBJECT + crc: 0x44ac9f4b + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_irqs_disable" +} +elf_symbol { + id: 0x695c4baf + name: "__tracepoint_android_rvh_irqs_enable" + is_defined: true + symbol_type: OBJECT + crc: 0xc9d53b36 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_irqs_enable" +} elf_symbol { id: 0x99d57c12 name: "__tracepoint_android_rvh_is_cpu_allowed" @@ -333968,6 +337485,24 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_post_init_entity_util_avg" } +elf_symbol { + id: 0x817c415a + name: "__tracepoint_android_rvh_preempt_disable" + is_defined: true + symbol_type: OBJECT + crc: 0xb4ec0da4 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_preempt_disable" +} +elf_symbol { + id: 0x3fe8bcd7 + name: "__tracepoint_android_rvh_preempt_enable" + is_defined: true + symbol_type: OBJECT + crc: 0x86d490a6 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_preempt_enable" +} elf_symbol { id: 0x50605d97 name: "__tracepoint_android_rvh_prepare_prio_fork" @@ -334004,6 +337539,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_refrigerator" } +elf_symbol { + id: 0x5ac6bcbc + name: "__tracepoint_android_rvh_remove_entity_load_avg" + is_defined: true + symbol_type: OBJECT + crc: 0x6b69fe2c + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_remove_entity_load_avg" +} elf_symbol { id: 0x18bac297 name: "__tracepoint_android_rvh_replace_next_task_fair" @@ -334283,6 +337827,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_set_gfp_zone_flags" } +elf_symbol { + id: 0xbe9f9d4f + name: "__tracepoint_android_rvh_set_iowait" + is_defined: true + symbol_type: OBJECT + crc: 0x343470a7 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_set_iowait" +} elf_symbol { id: 0xda52fd4f name: "__tracepoint_android_rvh_set_module_core_rw_nx" @@ -334445,6 +337998,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_uclamp_eff_get" } +elf_symbol { + id: 0xc3add2dc + name: "__tracepoint_android_rvh_update_blocked_fair" + is_defined: true + symbol_type: OBJECT + crc: 0x6d3cb3aa + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_update_blocked_fair" +} elf_symbol { id: 0xdc2af26c name: "__tracepoint_android_rvh_update_cpu_capacity" @@ -334454,6 +338016,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_update_cpu_capacity" } +elf_symbol { + id: 0xcc5017b7 + name: "__tracepoint_android_rvh_update_load_avg" + is_defined: true + symbol_type: OBJECT + crc: 0x8ae1dc28 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_update_load_avg" +} elf_symbol { id: 0x1362c5b0 name: "__tracepoint_android_rvh_update_misfit_status" @@ -334463,6 +338034,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_update_misfit_status" } +elf_symbol { + id: 0xaa2da792 + name: "__tracepoint_android_rvh_update_rt_rq_load_avg" + is_defined: true + symbol_type: OBJECT + crc: 0x4bcdd224 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_update_rt_rq_load_avg" +} elf_symbol { id: 0x0e614ab0 name: "__tracepoint_android_rvh_update_thermal_stats" @@ -334508,6 +338088,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_account_task_time" } +elf_symbol { + id: 0xd7f9868e + name: "__tracepoint_android_vh_alloc_oem_binder_struct" + is_defined: true + symbol_type: OBJECT + crc: 0xf8d28f05 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_alloc_oem_binder_struct" +} elf_symbol { id: 0x37776872 name: "__tracepoint_android_vh_alloc_pages_failure_bypass" @@ -334607,6 +338196,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_binder_del_ref" } +elf_symbol { + id: 0x19dded7c + name: "__tracepoint_android_vh_binder_free_buf" + is_defined: true + symbol_type: OBJECT + crc: 0xf64d3ead + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_binder_free_buf" +} elf_symbol { id: 0xf32898c6 name: "__tracepoint_android_vh_binder_free_proc" @@ -334733,6 +338331,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_binder_set_priority" } +elf_symbol { + id: 0xdda667b0 + name: "__tracepoint_android_vh_binder_special_task" + is_defined: true + symbol_type: OBJECT + crc: 0x46cb2346 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_binder_special_task" +} elf_symbol { id: 0x306b5ff7 name: "__tracepoint_android_vh_binder_thread_read" @@ -334769,6 +338376,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_binder_transaction_init" } +elf_symbol { + id: 0xabc729f7 + name: "__tracepoint_android_vh_binder_transaction_received" + is_defined: true + symbol_type: OBJECT + crc: 0x73e426b8 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_binder_transaction_received" +} elf_symbol { id: 0x75b174bb name: "__tracepoint_android_vh_binder_wait_for_work" @@ -334796,6 +338412,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_build_sched_domains" } +elf_symbol { + id: 0x527423dc + name: "__tracepoint_android_vh_bus_iommu_probe" + is_defined: true + symbol_type: OBJECT + crc: 0xa5acc533 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_bus_iommu_probe" +} elf_symbol { id: 0xd3845a12 name: "__tracepoint_android_vh_cgroup_attach" @@ -334886,6 +338511,24 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_cleanup_old_buffers_bypass" } +elf_symbol { + id: 0x9d49459f + name: "__tracepoint_android_vh_compaction_exit" + is_defined: true + symbol_type: OBJECT + crc: 0x69025433 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_compaction_exit" +} +elf_symbol { + id: 0x759240ef + name: "__tracepoint_android_vh_compaction_try_to_compact_pages_exit" + is_defined: true + symbol_type: OBJECT + crc: 0x85c1c35f + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_compaction_try_to_compact_pages_exit" +} elf_symbol { id: 0x26324a1f name: "__tracepoint_android_vh_cpu_idle_enter" @@ -335093,6 +338736,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_file_is_tiny_bypass" } +elf_symbol { + id: 0x901d0e89 + name: "__tracepoint_android_vh_free_oem_binder_struct" + is_defined: true + symbol_type: OBJECT + crc: 0xc924dc00 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_free_oem_binder_struct" +} elf_symbol { id: 0x04a824b5 name: "__tracepoint_android_vh_free_one_page_bypass" @@ -335498,6 +339150,33 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_meminfo_proc_show" } +elf_symbol { + id: 0xce7e7dff + name: "__tracepoint_android_vh_mm_alloc_pages_direct_reclaim_enter" + is_defined: true + symbol_type: OBJECT + crc: 0xa744fbcb + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_mm_alloc_pages_direct_reclaim_enter" +} +elf_symbol { + id: 0x1a1d0854 + name: "__tracepoint_android_vh_mm_alloc_pages_direct_reclaim_exit" + is_defined: true + symbol_type: OBJECT + crc: 0xaf85b82e + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_mm_alloc_pages_direct_reclaim_exit" +} +elf_symbol { + id: 0xf2890610 + name: "__tracepoint_android_vh_mm_alloc_pages_may_oom_exit" + is_defined: true + symbol_type: OBJECT + crc: 0xde5036e1 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_mm_alloc_pages_may_oom_exit" +} elf_symbol { id: 0xb6da564f name: "__tracepoint_android_vh_mmap_region" @@ -335624,6 +339303,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_page_add_new_anon_rmap" } +elf_symbol { + id: 0x3d63616d + name: "__tracepoint_android_vh_percpu_rwsem_wq_add" + is_defined: true + symbol_type: OBJECT + crc: 0x036f4a0a + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_percpu_rwsem_wq_add" +} elf_symbol { id: 0xab37fc55 name: "__tracepoint_android_vh_post_image_save" @@ -336236,6 +339924,24 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_typec_tcpm_log" } +elf_symbol { + id: 0x1f1a25bd + name: "__tracepoint_android_vh_typec_tcpm_modify_src_caps" + is_defined: true + symbol_type: OBJECT + crc: 0x0c9ea609 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_typec_tcpm_modify_src_caps" +} +elf_symbol { + id: 0xf09ef4d0 + name: "__tracepoint_android_vh_uclamp_validate" + is_defined: true + symbol_type: OBJECT + crc: 0xb9255a9f + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_uclamp_validate" +} elf_symbol { id: 0x609a86da name: "__tracepoint_android_vh_ufs_check_int_errors" @@ -336353,6 +340059,24 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_update_topology_flags_workfn" } +elf_symbol { + id: 0xe100c3ad + name: "__tracepoint_android_vh_use_amu_fie" + is_defined: true + symbol_type: OBJECT + crc: 0x8ea85bac + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_use_amu_fie" +} +elf_symbol { + id: 0x55476a7c + name: "__tracepoint_android_vh_vmscan_kswapd_done" + is_defined: true + symbol_type: OBJECT + crc: 0x46714dec + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_vmscan_kswapd_done" +} elf_symbol { id: 0x42dbeb24 name: "__tracepoint_android_vh_watchdog_timer_softlockup" @@ -336668,6 +340392,33 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_netif_rx" } +elf_symbol { + id: 0x0ab12991 + name: "__tracepoint_pelt_cfs_tp" + is_defined: true + symbol_type: OBJECT + crc: 0x64f74abf + type_id: 0x18ccbd2c + full_name: "__tracepoint_pelt_cfs_tp" +} +elf_symbol { + id: 0x12df1a91 + name: "__tracepoint_pelt_dl_tp" + is_defined: true + symbol_type: OBJECT + crc: 0x15c60a71 + type_id: 0x18ccbd2c + full_name: "__tracepoint_pelt_dl_tp" +} +elf_symbol { + id: 0x67e2af24 + name: "__tracepoint_pelt_irq_tp" + is_defined: true + symbol_type: OBJECT + crc: 0x2200061c + type_id: 0x18ccbd2c + full_name: "__tracepoint_pelt_irq_tp" +} elf_symbol { id: 0xf3cb5921 name: "__tracepoint_pelt_rt_tp" @@ -336713,6 +340464,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_rwmmio_write" } +elf_symbol { + id: 0x191846a3 + name: "__tracepoint_sched_cpu_capacity_tp" + is_defined: true + symbol_type: OBJECT + crc: 0x3b610584 + type_id: 0x18ccbd2c + full_name: "__tracepoint_sched_cpu_capacity_tp" +} elf_symbol { id: 0x2497fb4d name: "__tracepoint_sched_overutilized_tp" @@ -336785,6 +340545,24 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_sched_update_nr_running_tp" } +elf_symbol { + id: 0x2160e0b7 + name: "__tracepoint_sched_util_est_cfs_tp" + is_defined: true + symbol_type: OBJECT + crc: 0x2c790d4a + type_id: 0x18ccbd2c + full_name: "__tracepoint_sched_util_est_cfs_tp" +} +elf_symbol { + id: 0xf586b3bb + name: "__tracepoint_sched_util_est_se_tp" + is_defined: true + symbol_type: OBJECT + crc: 0x3a74e484 + type_id: 0x18ccbd2c + full_name: "__tracepoint_sched_util_est_se_tp" +} elf_symbol { id: 0xa70e8cd2 name: "__tracepoint_sched_waking" @@ -336929,6 +340707,15 @@ elf_symbol { type_id: 0x20cd94dc full_name: "__usecs_to_jiffies" } +elf_symbol { + id: 0x4c0a941a + name: "__v4l2_ctrl_handler_setup" + is_defined: true + symbol_type: FUNCTION + crc: 0x3ae35349 + type_id: 0x9d1bec55 + full_name: "__v4l2_ctrl_handler_setup" +} elf_symbol { id: 0xfc85c168 name: "__v4l2_ctrl_modify_range" @@ -337001,6 +340788,15 @@ elf_symbol { type_id: 0x9f0d3989 full_name: "__video_register_device" } +elf_symbol { + id: 0x6b7624f1 + name: "__vlan_find_dev_deep_rcu" + is_defined: true + symbol_type: FUNCTION + crc: 0xa50a5b08 + type_id: 0xf12845f8 + full_name: "__vlan_find_dev_deep_rcu" +} elf_symbol { id: 0x97d65f20 name: "__vmalloc" @@ -337109,6 +340905,15 @@ elf_symbol { type_id: 0x97ce5a08 full_name: "__xa_alloc_cyclic" } +elf_symbol { + id: 0x4b52e164 + name: "__xa_erase" + is_defined: true + symbol_type: FUNCTION + crc: 0xe02c9c92 + type_id: 0x5cf34a0d + full_name: "__xa_erase" +} elf_symbol { id: 0xd6e3f912 name: "__xa_insert" @@ -337118,6 +340923,15 @@ elf_symbol { type_id: 0x97e0f111 full_name: "__xa_insert" } +elf_symbol { + id: 0x52069d2d + name: "__xa_store" + is_defined: true + symbol_type: FUNCTION + crc: 0xca9beaa4 + type_id: 0x5cf6a3cf + full_name: "__xa_store" +} elf_symbol { id: 0x640280c1 name: "__xdp_rxq_info_reg" @@ -337136,6 +340950,24 @@ elf_symbol { type_id: 0x10605221 full_name: "__xfrm_state_destroy" } +elf_symbol { + id: 0xda249832 + name: "_bcd2bin" + is_defined: true + symbol_type: FUNCTION + crc: 0xb6936ffe + type_id: 0xd9bb2b92 + full_name: "_bcd2bin" +} +elf_symbol { + id: 0x206fe2ef + name: "_bin2bcd" + is_defined: true + symbol_type: FUNCTION + crc: 0x80ca5026 + type_id: 0xdcb8e234 + full_name: "_bin2bcd" +} elf_symbol { id: 0x5693f2df name: "_copy_from_iter" @@ -338277,6 +342109,15 @@ elf_symbol { type_id: 0x8448d7e4 full_name: "available_idle_cpu" } +elf_symbol { + id: 0x3eb51b20 + name: "avenrun" + is_defined: true + symbol_type: OBJECT + crc: 0xf1e98c74 + type_id: 0x1e18ac15 + full_name: "avenrun" +} elf_symbol { id: 0xb9c34cbd name: "backlight_device_get_by_type" @@ -338790,6 +342631,15 @@ elf_symbol { type_id: 0xfc093226 full_name: "blk_bio_list_merge" } +elf_symbol { + id: 0x650319ec + name: "blk_check_plugged" + is_defined: true + symbol_type: FUNCTION + crc: 0xd27b25dd + type_id: 0x66cc4765 + full_name: "blk_check_plugged" +} elf_symbol { id: 0x4ffac461 name: "blk_crypto_keyslot_index" @@ -340696,6 +344546,69 @@ elf_symbol { type_id: 0xfdb03c5c full_name: "capable_wrt_inode_uidgid" } +elf_symbol { + id: 0x0d8df2d6 + name: "cdc_ncm_bind_common" + is_defined: true + symbol_type: FUNCTION + crc: 0xa165232f + type_id: 0x9e7d48ad + full_name: "cdc_ncm_bind_common" +} +elf_symbol { + id: 0xbe895b99 + name: "cdc_ncm_change_mtu" + is_defined: true + symbol_type: FUNCTION + crc: 0xe9dd0df4 + type_id: 0x90b5e896 + full_name: "cdc_ncm_change_mtu" +} +elf_symbol { + id: 0x438a802b + name: "cdc_ncm_fill_tx_frame" + is_defined: true + symbol_type: FUNCTION + crc: 0x3e5e696a + type_id: 0x6bfb947b + full_name: "cdc_ncm_fill_tx_frame" +} +elf_symbol { + id: 0xe05cfed6 + name: "cdc_ncm_rx_verify_ndp16" + is_defined: true + symbol_type: FUNCTION + crc: 0xbeac75e1 + type_id: 0x9d4fba25 + full_name: "cdc_ncm_rx_verify_ndp16" +} +elf_symbol { + id: 0xb0d627f0 + name: "cdc_ncm_rx_verify_nth16" + is_defined: true + symbol_type: FUNCTION + crc: 0x0c8f8ef8 + type_id: 0x9d4713e6 + full_name: "cdc_ncm_rx_verify_nth16" +} +elf_symbol { + id: 0x3b573ab8 + name: "cdc_ncm_select_altsetting" + is_defined: true + symbol_type: FUNCTION + crc: 0x0bd5ab5f + type_id: 0x5b0b198d + full_name: "cdc_ncm_select_altsetting" +} +elf_symbol { + id: 0xb4ff03eb + name: "cdc_ncm_unbind" + is_defined: true + symbol_type: FUNCTION + crc: 0xb2a5cb89 + type_id: 0x136e318e + full_name: "cdc_ncm_unbind" +} elf_symbol { id: 0xb2bfcc0c name: "cdc_parse_cdc_header" @@ -340759,6 +344672,15 @@ elf_symbol { type_id: 0x17107dc5 full_name: "cdev_init" } +elf_symbol { + id: 0x1ae20002 + name: "ce_aes_expandkey" + is_defined: true + symbol_type: FUNCTION + crc: 0x68f275ad + type_id: 0x982246a7 + full_name: "ce_aes_expandkey" +} elf_symbol { id: 0xc8e5adc6 name: "cec_allocate_adapter" @@ -340840,6 +344762,15 @@ elf_symbol { type_id: 0x158d1ae2 full_name: "cec_notifier_set_phys_addr_from_edid" } +elf_symbol { + id: 0xa383a6c1 + name: "cec_queue_pin_hpd_event" + is_defined: true + symbol_type: FUNCTION + crc: 0xafee3a98 + type_id: 0x1f2853af + full_name: "cec_queue_pin_hpd_event" +} elf_symbol { id: 0x1ff124cb name: "cec_received_msg_ts" @@ -341252,6 +345183,15 @@ elf_symbol { type_id: 0xde3bc780 full_name: "clk_fixed_rate_ops" } +elf_symbol { + id: 0xf42e28c4 + name: "clk_fractional_divider_general_approximation" + is_defined: true + symbol_type: FUNCTION + crc: 0xc8861ced + type_id: 0x12ed274e + full_name: "clk_fractional_divider_general_approximation" +} elf_symbol { id: 0x8a96e88d name: "clk_fractional_divider_ops" @@ -341297,6 +345237,15 @@ elf_symbol { type_id: 0xa96c5286 full_name: "clk_get_parent" } +elf_symbol { + id: 0x04880ada + name: "clk_get_phase" + is_defined: true + symbol_type: FUNCTION + crc: 0x1c5ff742 + type_id: 0x92f35938 + full_name: "clk_get_phase" +} elf_symbol { id: 0x25ef9f7a name: "clk_get_rate" @@ -341468,6 +345417,15 @@ elf_symbol { type_id: 0x12217922 full_name: "clk_hw_unregister" } +elf_symbol { + id: 0x91507af8 + name: "clk_hw_unregister_composite" + is_defined: true + symbol_type: FUNCTION + crc: 0xa5812f72 + type_id: 0x12217922 + full_name: "clk_hw_unregister_composite" +} elf_symbol { id: 0xd2c17be4 name: "clk_is_match" @@ -341648,6 +345606,15 @@ elf_symbol { type_id: 0x92046299 full_name: "clk_set_parent" } +elf_symbol { + id: 0x98850f9d + name: "clk_set_phase" + is_defined: true + symbol_type: FUNCTION + crc: 0xb7329c06 + type_id: 0x936fda74 + full_name: "clk_set_phase" +} elf_symbol { id: 0x495f0223 name: "clk_set_rate" @@ -341774,6 +345741,15 @@ elf_symbol { type_id: 0xfa5a390c full_name: "cma_release" } +elf_symbol { + id: 0xfb23b117 + name: "compat_only_sysfs_link_entry_to_kobj" + is_defined: true + symbol_type: FUNCTION + crc: 0x256e3ace + type_id: 0x95fc7a3d + full_name: "compat_only_sysfs_link_entry_to_kobj" +} elf_symbol { id: 0x4f627b39 name: "compat_ptr_ioctl" @@ -341837,6 +345813,15 @@ elf_symbol { type_id: 0x9d7428e0 full_name: "component_bind_all" } +elf_symbol { + id: 0x9901e8ee + name: "component_compare_dev" + is_defined: true + symbol_type: FUNCTION + crc: 0x0b549846 + type_id: 0x9d7428e0 + full_name: "component_compare_dev" +} elf_symbol { id: 0x4bc5faef name: "component_compare_dev_name" @@ -342186,6 +346171,15 @@ elf_symbol { type_id: 0xd0d5f663 full_name: "cpu_bit_bitmap" } +elf_symbol { + id: 0x15e1667b + name: "cpu_have_feature" + is_defined: true + symbol_type: FUNCTION + crc: 0x41237f71 + type_id: 0xefc5028b + full_name: "cpu_have_feature" +} elf_symbol { id: 0x33bbeca6 name: "cpu_hotplug_disable" @@ -342789,6 +346783,15 @@ elf_symbol { type_id: 0xc25cf5fc full_name: "cpumask_any_and_distribute" } +elf_symbol { + id: 0xd53a5822 + name: "cpumask_local_spread" + is_defined: true + symbol_type: FUNCTION + crc: 0xc8a91f5b + type_id: 0xde26a438 + full_name: "cpumask_local_spread" +} elf_symbol { id: 0xb1469ae6 name: "cpumask_next_wrap" @@ -342947,6 +346950,24 @@ elf_symbol { type_id: 0x911583bf full_name: "crypto_ahash_digest" } +elf_symbol { + id: 0xf8751b15 + name: "crypto_ahash_final" + is_defined: true + symbol_type: FUNCTION + crc: 0x1af67977 + type_id: 0x911583bf + full_name: "crypto_ahash_final" +} +elf_symbol { + id: 0xdd9947d5 + name: "crypto_ahash_finup" + is_defined: true + symbol_type: FUNCTION + crc: 0x095c49bc + type_id: 0x911583bf + full_name: "crypto_ahash_finup" +} elf_symbol { id: 0xff08526f name: "crypto_ahash_setkey" @@ -342974,6 +346995,15 @@ elf_symbol { type_id: 0xd40f21a4 full_name: "crypto_alloc_ahash" } +elf_symbol { + id: 0x5d9de9a7 + name: "crypto_alloc_akcipher" + is_defined: true + symbol_type: FUNCTION + crc: 0xdc2b9dfc + type_id: 0x69b2a88c + full_name: "crypto_alloc_akcipher" +} elf_symbol { id: 0x1d1f6717 name: "crypto_alloc_base" @@ -343019,6 +347049,16 @@ elf_symbol { type_id: 0x329319f8 full_name: "crypto_alloc_sync_skcipher" } +elf_symbol { + id: 0xa3db58f1 + name: "crypto_cipher_encrypt_one" + is_defined: true + symbol_type: FUNCTION + crc: 0x1f362def + namespace: "CRYPTO_INTERNAL" + type_id: 0x114c448e + full_name: "crypto_cipher_encrypt_one" +} elf_symbol { id: 0x1257590d name: "crypto_comp_compress" @@ -343163,6 +347203,24 @@ elf_symbol { type_id: 0x9ee20867 full_name: "crypto_register_ahash" } +elf_symbol { + id: 0xc60881ee + name: "crypto_register_akcipher" + is_defined: true + symbol_type: FUNCTION + crc: 0x44f8c5fe + type_id: 0x99df4252 + full_name: "crypto_register_akcipher" +} +elf_symbol { + id: 0xd9005076 + name: "crypto_register_alg" + is_defined: true + symbol_type: FUNCTION + crc: 0x4a1204f0 + type_id: 0x9db75c24 + full_name: "crypto_register_alg" +} elf_symbol { id: 0xcb0ffe5b name: "crypto_register_notifier" @@ -343208,6 +347266,15 @@ elf_symbol { type_id: 0x928f1946 full_name: "crypto_register_skcipher" } +elf_symbol { + id: 0x8e0112d7 + name: "crypto_register_template" + is_defined: true + symbol_type: FUNCTION + crc: 0xf1da2be6 + type_id: 0x9a6e7c60 + full_name: "crypto_register_template" +} elf_symbol { id: 0x0e52d725 name: "crypto_req_done" @@ -343217,6 +347284,24 @@ elf_symbol { type_id: 0x10100c3c full_name: "crypto_req_done" } +elf_symbol { + id: 0x162a73f7 + name: "crypto_sha1_finup" + is_defined: true + symbol_type: FUNCTION + crc: 0xe1737405 + type_id: 0x9fb1dc71 + full_name: "crypto_sha1_finup" +} +elf_symbol { + id: 0x7dcc32e4 + name: "crypto_sha1_update" + is_defined: true + symbol_type: FUNCTION + crc: 0xb7dbc187 + type_id: 0x9fb1df6d + full_name: "crypto_sha1_update" +} elf_symbol { id: 0x91309df9 name: "crypto_shash_digest" @@ -343316,6 +347401,24 @@ elf_symbol { type_id: 0x13fabadb full_name: "crypto_unregister_ahash" } +elf_symbol { + id: 0xdb6ddedf + name: "crypto_unregister_akcipher" + is_defined: true + symbol_type: FUNCTION + crc: 0xbfd52d96 + type_id: 0x14c7f0ee + full_name: "crypto_unregister_akcipher" +} +elf_symbol { + id: 0x883df740 + name: "crypto_unregister_alg" + is_defined: true + symbol_type: FUNCTION + crc: 0xa0dbb600 + type_id: 0x10afee98 + full_name: "crypto_unregister_alg" +} elf_symbol { id: 0x551c18d1 name: "crypto_unregister_notifier" @@ -343361,6 +347464,15 @@ elf_symbol { type_id: 0x1f97abfa full_name: "crypto_unregister_skcipher" } +elf_symbol { + id: 0x801e3d5d + name: "crypto_unregister_template" + is_defined: true + symbol_type: FUNCTION + crc: 0xd6fa098b + type_id: 0x1776cedc + full_name: "crypto_unregister_template" +} elf_symbol { id: 0xd36400de name: "css_next_child" @@ -343919,6 +348031,15 @@ elf_symbol { type_id: 0x1f15d172 full_name: "delayed_work_timer_fn" } +elf_symbol { + id: 0x1ef313dc + name: "des_expand_key" + is_defined: true + symbol_type: FUNCTION + crc: 0xa8fb743d + type_id: 0x9133c6a6 + full_name: "des_expand_key" +} elf_symbol { id: 0x67daf3cf name: "desc_to_gpio" @@ -344432,6 +348553,15 @@ elf_symbol { type_id: 0x9df535bf full_name: "dev_pm_opp_get_sharing_cpus" } +elf_symbol { + id: 0xe1beb7e3 + name: "dev_pm_opp_get_supplies" + is_defined: true + symbol_type: FUNCTION + crc: 0xa27bcff7 + type_id: 0x9b2efcfe + full_name: "dev_pm_opp_get_supplies" +} elf_symbol { id: 0x0d97ed87 name: "dev_pm_opp_get_suspend_opp_freq" @@ -344855,6 +348985,51 @@ elf_symbol { type_id: 0x11aaf502 full_name: "devfreq_cooling_unregister" } +elf_symbol { + id: 0x349b4e0a + name: "devfreq_event_disable_edev" + is_defined: true + symbol_type: FUNCTION + crc: 0xf7add401 + type_id: 0x9e08a6b2 + full_name: "devfreq_event_disable_edev" +} +elf_symbol { + id: 0x11f117af + name: "devfreq_event_enable_edev" + is_defined: true + symbol_type: FUNCTION + crc: 0x1a88e996 + type_id: 0x9e08a6b2 + full_name: "devfreq_event_enable_edev" +} +elf_symbol { + id: 0x781fabb2 + name: "devfreq_event_get_edev_by_phandle" + is_defined: true + symbol_type: FUNCTION + crc: 0x37666b78 + type_id: 0xaa27b09c + full_name: "devfreq_event_get_edev_by_phandle" +} +elf_symbol { + id: 0xe2544e4d + name: "devfreq_event_get_edev_count" + is_defined: true + symbol_type: FUNCTION + crc: 0x2e31dce9 + type_id: 0x9dee9fa0 + full_name: "devfreq_event_get_edev_count" +} +elf_symbol { + id: 0xdd8da0cf + name: "devfreq_event_get_event" + is_defined: true + symbol_type: FUNCTION + crc: 0x9719d881 + type_id: 0x9eb7f57a + full_name: "devfreq_event_get_event" +} elf_symbol { id: 0x19e74e36 name: "devfreq_get_devfreq_by_node" @@ -345404,6 +349579,15 @@ elf_symbol { type_id: 0x9dee9fa0 full_name: "device_rename" } +elf_symbol { + id: 0xa09675ab + name: "device_set_node" + is_defined: true + symbol_type: FUNCTION + crc: 0x3fd03b85 + type_id: 0x101c2d25 + full_name: "device_set_node" +} elf_symbol { id: 0xcdcce9e8 name: "device_set_of_node_from_dev" @@ -345791,6 +349975,15 @@ elf_symbol { type_id: 0xda80c39b full_name: "devm_devfreq_add_device" } +elf_symbol { + id: 0xa4692a70 + name: "devm_devfreq_event_add_edev" + is_defined: true + symbol_type: FUNCTION + crc: 0x5d86691d + type_id: 0xaa9ceb0d + full_name: "devm_devfreq_event_add_edev" +} elf_symbol { id: 0x3afde7ec name: "devm_devfreq_register_notifier" @@ -345800,6 +349993,15 @@ elf_symbol { type_id: 0x9d8c8e95 full_name: "devm_devfreq_register_notifier" } +elf_symbol { + id: 0x6415475c + name: "devm_devfreq_register_opp_notifier" + is_defined: true + symbol_type: FUNCTION + crc: 0x7d3273ad + type_id: 0x9d8b7529 + full_name: "devm_devfreq_register_opp_notifier" +} elf_symbol { id: 0x2bf23b7c name: "devm_devfreq_remove_device" @@ -346214,6 +350416,15 @@ elf_symbol { type_id: 0x3d63b46a full_name: "devm_kasprintf" } +elf_symbol { + id: 0x0abc683e + name: "devm_kasprintf_strarray" + is_defined: true + symbol_type: FUNCTION + crc: 0xd205a636 + type_id: 0x0c5cd477 + full_name: "devm_kasprintf_strarray" +} elf_symbol { id: 0x7c053015 name: "devm_kfree" @@ -346331,6 +350542,15 @@ elf_symbol { type_id: 0x5468daf3 full_name: "devm_memremap" } +elf_symbol { + id: 0x86c1623f + name: "devm_memunmap" + is_defined: true + symbol_type: FUNCTION + crc: 0xd7fbf31f + type_id: 0x106c9a5c + full_name: "devm_memunmap" +} elf_symbol { id: 0x36e39cf6 name: "devm_mfd_add_devices" @@ -346448,6 +350668,15 @@ elf_symbol { type_id: 0x68eaecc0 full_name: "devm_pci_alloc_host_bridge" } +elf_symbol { + id: 0x92ffc2e2 + name: "devm_pci_remap_cfg_resource" + is_defined: true + symbol_type: FUNCTION + crc: 0x029de2b5 + type_id: 0x56edbc2a + full_name: "devm_pci_remap_cfg_resource" +} elf_symbol { id: 0xd6e5f7c7 name: "devm_phy_create" @@ -347024,6 +351253,15 @@ elf_symbol { type_id: 0x106c9a5c full_name: "devres_remove_group" } +elf_symbol { + id: 0x30dd6796 + name: "disable_hardirq" + is_defined: true + symbol_type: FUNCTION + crc: 0xbd3fe1e3 + type_id: 0xefc5028b + full_name: "disable_hardirq" +} elf_symbol { id: 0x573e2956 name: "disable_irq" @@ -347060,6 +351298,15 @@ elf_symbol { type_id: 0x1bd69e9e full_name: "disk_set_zoned" } +elf_symbol { + id: 0x80814925 + name: "display_timings_release" + is_defined: true + symbol_type: FUNCTION + crc: 0x3b4c240a + type_id: 0x1fcce445 + full_name: "display_timings_release" +} elf_symbol { id: 0x9c5fb17e name: "divider_get_val" @@ -347461,6 +351708,15 @@ elf_symbol { type_id: 0x10aa5f7a full_name: "dma_buf_put" } +elf_symbol { + id: 0x77d18a9c + name: "dma_buf_set_name" + is_defined: true + symbol_type: FUNCTION + crc: 0x752c3098 + type_id: 0xa7ea77a4 + full_name: "dma_buf_set_name" +} elf_symbol { id: 0xd0deb542 name: "dma_buf_unmap_attachment" @@ -348554,6 +352810,15 @@ elf_symbol { type_id: 0x9068c1cc full_name: "drm_add_modes_noedid" } +elf_symbol { + id: 0x7e8263f6 + name: "drm_aperture_remove_conflicting_framebuffers" + is_defined: true + symbol_type: FUNCTION + crc: 0xa5abe6ba + type_id: 0xba97bb1d + full_name: "drm_aperture_remove_conflicting_framebuffers" +} elf_symbol { id: 0x588ab3fd name: "drm_aperture_remove_conflicting_pci_framebuffers" @@ -349400,6 +353665,24 @@ elf_symbol { type_id: 0xfcf090be full_name: "drm_bridge_detect" } +elf_symbol { + id: 0x3ef0db06 + name: "drm_bridge_get_edid" + is_defined: true + symbol_type: FUNCTION + crc: 0xdeb653ce + type_id: 0xc7bc0e4a + full_name: "drm_bridge_get_edid" +} +elf_symbol { + id: 0xc72378aa + name: "drm_bridge_get_modes" + is_defined: true + symbol_type: FUNCTION + crc: 0x8446a07e + type_id: 0x94dc0c27 + full_name: "drm_bridge_get_modes" +} elf_symbol { id: 0xd82232b3 name: "drm_bridge_hpd_notify" @@ -349535,6 +353818,15 @@ elf_symbol { type_id: 0x1cf53808 full_name: "drm_connector_cleanup" } +elf_symbol { + id: 0xf8bd92c8 + name: "drm_connector_has_possible_encoder" + is_defined: true + symbol_type: FUNCTION + crc: 0x2e4b4a64 + type_id: 0xf272e262 + full_name: "drm_connector_has_possible_encoder" +} elf_symbol { id: 0x70b7d94b name: "drm_connector_init" @@ -349679,6 +353971,15 @@ elf_symbol { type_id: 0x1e67551a full_name: "drm_crtc_enable_color_mgmt" } +elf_symbol { + id: 0x08309f5e + name: "drm_crtc_from_index" + is_defined: true + symbol_type: FUNCTION + crc: 0x34429a5e + type_id: 0x45df5dd3 + full_name: "drm_crtc_from_index" +} elf_symbol { id: 0x11e9361c name: "drm_crtc_handle_vblank" @@ -350183,6 +354484,15 @@ elf_symbol { type_id: 0xc21e59d8 full_name: "drm_format_info_block_width" } +elf_symbol { + id: 0x4b9e6227 + name: "drm_format_info_min_pitch" + is_defined: true + symbol_type: FUNCTION + crc: 0x6910e4cd + type_id: 0x5274946d + full_name: "drm_format_info_min_pitch" +} elf_symbol { id: 0x9c6b68f2 name: "drm_framebuffer_cleanup" @@ -350246,6 +354556,15 @@ elf_symbol { type_id: 0x9398dfdf full_name: "drm_gem_create_mmap_offset" } +elf_symbol { + id: 0xd4d38d4c + name: "drm_gem_dmabuf_export" + is_defined: true + symbol_type: FUNCTION + crc: 0x9af5812d + type_id: 0x44b624d1 + full_name: "drm_gem_dmabuf_export" +} elf_symbol { id: 0x81bdff8a name: "drm_gem_dmabuf_mmap" @@ -350282,6 +354601,24 @@ elf_symbol { type_id: 0x10563618 full_name: "drm_gem_dmabuf_vunmap" } +elf_symbol { + id: 0xac1aeaf0 + name: "drm_gem_dumb_map_offset" + is_defined: true + symbol_type: FUNCTION + crc: 0x8220a182 + type_id: 0x99e7b457 + full_name: "drm_gem_dumb_map_offset" +} +elf_symbol { + id: 0x622cdd92 + name: "drm_gem_fb_afbc_init" + is_defined: true + symbol_type: FUNCTION + crc: 0x38ebad6a + type_id: 0x939f8199 + full_name: "drm_gem_fb_afbc_init" +} elf_symbol { id: 0xc7970f23 name: "drm_gem_fb_begin_cpu_access" @@ -350327,6 +354664,15 @@ elf_symbol { type_id: 0x0bfc976c full_name: "drm_gem_fb_get_obj" } +elf_symbol { + id: 0x585410d0 + name: "drm_gem_fb_init_with_funcs" + is_defined: true + symbol_type: FUNCTION + crc: 0x882550af + type_id: 0x938283cb + full_name: "drm_gem_fb_init_with_funcs" +} elf_symbol { id: 0xd4a13963 name: "drm_gem_fb_vmap" @@ -350372,6 +354718,15 @@ elf_symbol { type_id: 0x99d6eb87 full_name: "drm_gem_handle_create" } +elf_symbol { + id: 0xd32d7c35 + name: "drm_gem_handle_delete" + is_defined: true + symbol_type: FUNCTION + crc: 0x855a2628 + type_id: 0x9a1d7c68 + full_name: "drm_gem_handle_delete" +} elf_symbol { id: 0xf76bbee4 name: "drm_gem_lock_reservations" @@ -351002,6 +355357,15 @@ elf_symbol { type_id: 0x19394f8b full_name: "drm_mm_remove_node" } +elf_symbol { + id: 0xd0dd3133 + name: "drm_mm_reserve_node" + is_defined: true + symbol_type: FUNCTION + crc: 0x2754dad8 + type_id: 0x974e1bca + full_name: "drm_mm_reserve_node" +} elf_symbol { id: 0x3b867568 name: "drm_mm_scan_add_block" @@ -351146,6 +355510,15 @@ elf_symbol { type_id: 0x42ee3dd4 full_name: "drm_mode_create_tile_group" } +elf_symbol { + id: 0x0d3b6723 + name: "drm_mode_create_tv_properties" + is_defined: true + symbol_type: FUNCTION + crc: 0x30d9d722 + type_id: 0x9258444e + full_name: "drm_mode_create_tv_properties" +} elf_symbol { id: 0x58b810bd name: "drm_mode_crtc_set_gamma_size" @@ -351209,6 +355582,15 @@ elf_symbol { type_id: 0xc6a0fd0e full_name: "drm_mode_find_dmt" } +elf_symbol { + id: 0xc3ae75b9 + name: "drm_mode_is_420" + is_defined: true + symbol_type: FUNCTION + crc: 0x8c35d2cf + type_id: 0xf10b3730 + full_name: "drm_mode_is_420" +} elf_symbol { id: 0xca851619 name: "drm_mode_is_420_also" @@ -351308,6 +355690,33 @@ elf_symbol { type_id: 0x1f00dfeb full_name: "drm_mode_sort" } +elf_symbol { + id: 0x003f0aec + name: "drm_mode_validate_driver" + is_defined: true + symbol_type: FUNCTION + crc: 0x952d25ca + type_id: 0xb13e733c + full_name: "drm_mode_validate_driver" +} +elf_symbol { + id: 0x43bb72ae + name: "drm_mode_validate_size" + is_defined: true + symbol_type: FUNCTION + crc: 0xd7a9cf42 + type_id: 0xb3cfd554 + full_name: "drm_mode_validate_size" +} +elf_symbol { + id: 0x49fd657a + name: "drm_mode_validate_ycbcr420" + is_defined: true + symbol_type: FUNCTION + crc: 0xcb2c6fb3 + type_id: 0xb28c48b5 + full_name: "drm_mode_validate_ycbcr420" +} elf_symbol { id: 0x4e6bfabc name: "drm_mode_vrefresh" @@ -351452,6 +355861,15 @@ elf_symbol { type_id: 0x9dad5a62 full_name: "drm_of_component_probe" } +elf_symbol { + id: 0xdb6eae3a + name: "drm_of_crtc_port_mask" + is_defined: true + symbol_type: FUNCTION + crc: 0xf557a5fd + type_id: 0x3d0f6874 + full_name: "drm_of_crtc_port_mask" +} elf_symbol { id: 0x122e3e9f name: "drm_of_encoder_active_endpoint" @@ -351839,6 +356257,15 @@ elf_symbol { type_id: 0x9b72aa8f full_name: "drm_property_create_enum" } +elf_symbol { + id: 0x8d62d3e1 + name: "drm_property_create_object" + is_defined: true + symbol_type: FUNCTION + crc: 0x6e0229f2 + type_id: 0x9b723218 + full_name: "drm_property_create_object" +} elf_symbol { id: 0x7a4db2f9 name: "drm_property_create_range" @@ -351884,6 +356311,15 @@ elf_symbol { type_id: 0xff934450 full_name: "drm_property_replace_blob" } +elf_symbol { + id: 0x4cf5ba17 + name: "drm_property_replace_global_blob" + is_defined: true + symbol_type: FUNCTION + crc: 0xd2ff27b8 + type_id: 0x93625762 + full_name: "drm_property_replace_global_blob" +} elf_symbol { id: 0x9718e72e name: "drm_puts" @@ -352379,6 +356815,15 @@ elf_symbol { type_id: 0x5ca118ca full_name: "dw_pcie_find_capability" } +elf_symbol { + id: 0xdc24b796 + name: "dw_pcie_find_ext_capability" + is_defined: true + symbol_type: FUNCTION + crc: 0x8adbc3f0 + type_id: 0x0ec08f0d + full_name: "dw_pcie_find_ext_capability" +} elf_symbol { id: 0xb8395a3e name: "dw_pcie_host_init" @@ -352388,6 +356833,15 @@ elf_symbol { type_id: 0x94e69702 full_name: "dw_pcie_host_init" } +elf_symbol { + id: 0xa625950b + name: "dw_pcie_link_up" + is_defined: true + symbol_type: FUNCTION + crc: 0x9b8ebc8e + type_id: 0x92ce345a + full_name: "dw_pcie_link_up" +} elf_symbol { id: 0x9d898d75 name: "dw_pcie_own_conf_map_bus" @@ -353072,6 +357526,15 @@ elf_symbol { type_id: 0x988f2c1b full_name: "extcon_set_state_sync" } +elf_symbol { + id: 0xad3eb214 + name: "extcon_sync" + is_defined: true + symbol_type: FUNCTION + crc: 0x7893b9d4 + type_id: 0x989473cc + full_name: "extcon_sync" +} elf_symbol { id: 0xb107d2cd name: "extcon_unregister_notifier" @@ -353504,6 +357967,33 @@ elf_symbol { type_id: 0xfdf39d0a full_name: "flush_work" } +elf_symbol { + id: 0x06c58be7 + name: "folio_add_lru" + is_defined: true + symbol_type: FUNCTION + crc: 0x42a88286 + type_id: 0x18c46588 + full_name: "folio_add_lru" +} +elf_symbol { + id: 0x159a69a3 + name: "folio_mapping" + is_defined: true + symbol_type: FUNCTION + crc: 0xad0ae85f + type_id: 0x637004ab + full_name: "folio_mapping" +} +elf_symbol { + id: 0x39840ab2 + name: "folio_referenced" + is_defined: true + symbol_type: FUNCTION + crc: 0x6114128f + type_id: 0x94471ba6 + full_name: "folio_referenced" +} elf_symbol { id: 0x3dca9a13 name: "folio_wait_bit" @@ -353558,6 +358048,15 @@ elf_symbol { type_id: 0x1f1c7cd5 full_name: "fortify_panic" } +elf_symbol { + id: 0x5c388f41 + name: "fpsimd_context_busy" + is_defined: true + symbol_type: OBJECT + crc: 0x535be82a + type_id: 0x6d7f5ff6 + full_name: "fpsimd_context_busy" +} elf_symbol { id: 0x93b9959a name: "fput" @@ -353882,6 +358381,15 @@ elf_symbol { type_id: 0xc075980c full_name: "full_name_hash" } +elf_symbol { + id: 0xc35e482b + name: "fwnode_create_software_node" + is_defined: true + symbol_type: FUNCTION + crc: 0xf7a29e9c + type_id: 0x34270f0c + full_name: "fwnode_create_software_node" +} elf_symbol { id: 0x53816b02 name: "fwnode_device_is_available" @@ -355109,6 +359617,141 @@ elf_symbol { type_id: 0x11a59ba3 full_name: "getboottime64" } +elf_symbol { + id: 0xa7339c42 + name: "gether_cleanup" + is_defined: true + symbol_type: FUNCTION + crc: 0x8878cfa6 + type_id: 0x1ae9c33f + full_name: "gether_cleanup" +} +elf_symbol { + id: 0x23fbc3f8 + name: "gether_connect" + is_defined: true + symbol_type: FUNCTION + crc: 0xea64e647 + type_id: 0xf2708109 + full_name: "gether_connect" +} +elf_symbol { + id: 0x46e18dbd + name: "gether_disconnect" + is_defined: true + symbol_type: FUNCTION + crc: 0x1bf99a25 + type_id: 0x1e9b5d67 + full_name: "gether_disconnect" +} +elf_symbol { + id: 0xf5970852 + name: "gether_get_dev_addr" + is_defined: true + symbol_type: FUNCTION + crc: 0x557d0eb6 + type_id: 0x9122ac75 + full_name: "gether_get_dev_addr" +} +elf_symbol { + id: 0x0a3cdb4a + name: "gether_get_host_addr" + is_defined: true + symbol_type: FUNCTION + crc: 0xb4ae8361 + type_id: 0x9122ac75 + full_name: "gether_get_host_addr" +} +elf_symbol { + id: 0xdb6a18dc + name: "gether_get_host_addr_u8" + is_defined: true + symbol_type: FUNCTION + crc: 0xf8b424a5 + type_id: 0x1c32c5f2 + full_name: "gether_get_host_addr_u8" +} +elf_symbol { + id: 0x412252a6 + name: "gether_get_ifname" + is_defined: true + symbol_type: FUNCTION + crc: 0x5bd0d402 + type_id: 0x9122ac75 + full_name: "gether_get_ifname" +} +elf_symbol { + id: 0x9c589482 + name: "gether_get_qmult" + is_defined: true + symbol_type: FUNCTION + crc: 0xb460cb61 + type_id: 0xc272f60e + full_name: "gether_get_qmult" +} +elf_symbol { + id: 0x0400c852 + name: "gether_register_netdev" + is_defined: true + symbol_type: FUNCTION + crc: 0x1d6ccbe0 + type_id: 0x91296bda + full_name: "gether_register_netdev" +} +elf_symbol { + id: 0xcdcde62d + name: "gether_set_dev_addr" + is_defined: true + symbol_type: FUNCTION + crc: 0x3c2aa803 + type_id: 0x91d1290e + full_name: "gether_set_dev_addr" +} +elf_symbol { + id: 0xba5f9a53 + name: "gether_set_gadget" + is_defined: true + symbol_type: FUNCTION + crc: 0x95a29c7a + type_id: 0x1ca44d8a + full_name: "gether_set_gadget" +} +elf_symbol { + id: 0x8802e047 + name: "gether_set_host_addr" + is_defined: true + symbol_type: FUNCTION + crc: 0x0d98da0f + type_id: 0x91d1290e + full_name: "gether_set_host_addr" +} +elf_symbol { + id: 0xf7264f57 + name: "gether_set_ifname" + is_defined: true + symbol_type: FUNCTION + crc: 0xddaa7799 + type_id: 0x91c8e13a + full_name: "gether_set_ifname" +} +elf_symbol { + id: 0x370e3283 + name: "gether_set_qmult" + is_defined: true + symbol_type: FUNCTION + crc: 0xae8e571d + type_id: 0x1d27ccfe + full_name: "gether_set_qmult" +} +elf_symbol { + id: 0xe87161bc + name: "gether_setup_name_default" + is_defined: true + symbol_type: FUNCTION + crc: 0x5d7e340b + type_id: 0xf3f7a0bb + full_name: "gether_setup_name_default" +} elf_symbol { id: 0x112db471 name: "gf128mul_lle" @@ -355442,6 +360085,15 @@ elf_symbol { type_id: 0x9b54e21c full_name: "gpiochip_populate_parent_fwspec_fourcell" } +elf_symbol { + id: 0x14b7a009 + name: "gpiochip_relres_irq" + is_defined: true + symbol_type: FUNCTION + crc: 0x9c82d602 + type_id: 0x17b7d7d6 + full_name: "gpiochip_relres_irq" +} elf_symbol { id: 0x7dd9e61e name: "gpiochip_remove" @@ -355451,6 +360103,15 @@ elf_symbol { type_id: 0x16a1c24e full_name: "gpiochip_remove" } +elf_symbol { + id: 0x30903940 + name: "gpiochip_reqres_irq" + is_defined: true + symbol_type: FUNCTION + crc: 0x920467d8 + type_id: 0x9aaf656a + full_name: "gpiochip_reqres_irq" +} elf_symbol { id: 0x77a0ab63 name: "gpiochip_unlock_as_irq" @@ -356189,6 +360850,15 @@ elf_symbol { type_id: 0x102e21e5 full_name: "hdmi_avi_infoframe_pack" } +elf_symbol { + id: 0x4e8277c6 + name: "hdmi_avi_infoframe_pack_only" + is_defined: true + symbol_type: FUNCTION + crc: 0x2ee4c2b1 + type_id: 0x1a42044c + full_name: "hdmi_avi_infoframe_pack_only" +} elf_symbol { id: 0x7ec10e18 name: "hdmi_drm_infoframe_init" @@ -356297,6 +360967,15 @@ elf_symbol { type_id: 0x98aacbd0 full_name: "hid_allocate_device" } +elf_symbol { + id: 0xa832c6f3 + name: "hid_debug" + is_defined: true + symbol_type: OBJECT + crc: 0x05495392 + type_id: 0x6720d32f + full_name: "hid_debug" +} elf_symbol { id: 0x2ffc7c7e name: "hid_destroy_device" @@ -356306,6 +360985,87 @@ elf_symbol { type_id: 0x13e1603f full_name: "hid_destroy_device" } +elf_symbol { + id: 0x1706be22 + name: "hid_driver_reset_resume" + is_defined: true + symbol_type: FUNCTION + crc: 0x38266a07 + type_id: 0x9ef9d283 + full_name: "hid_driver_reset_resume" +} +elf_symbol { + id: 0x4c3911f0 + name: "hid_driver_suspend" + is_defined: true + symbol_type: FUNCTION + crc: 0x63c99127 + type_id: 0x9d398c85 + full_name: "hid_driver_suspend" +} +elf_symbol { + id: 0x8717f26f + name: "hid_hw_close" + is_defined: true + symbol_type: FUNCTION + crc: 0xffa28586 + type_id: 0x13e1603f + full_name: "hid_hw_close" +} +elf_symbol { + id: 0x361004c8 + name: "hid_hw_open" + is_defined: true + symbol_type: FUNCTION + crc: 0x83abbb03 + type_id: 0x9ef9d283 + full_name: "hid_hw_open" +} +elf_symbol { + id: 0xcf5ea9a2 + name: "hid_hw_output_report" + is_defined: true + symbol_type: FUNCTION + crc: 0x8f5731d2 + type_id: 0x9e5d7885 + full_name: "hid_hw_output_report" +} +elf_symbol { + id: 0x6c303862 + name: "hid_hw_raw_request" + is_defined: true + symbol_type: FUNCTION + crc: 0x1754ea42 + type_id: 0x9f85a1ff + full_name: "hid_hw_raw_request" +} +elf_symbol { + id: 0x553bc5f3 + name: "hid_hw_request" + is_defined: true + symbol_type: FUNCTION + crc: 0xe88265d4 + type_id: 0x137a1cdc + full_name: "hid_hw_request" +} +elf_symbol { + id: 0xfba34655 + name: "hid_hw_start" + is_defined: true + symbol_type: FUNCTION + crc: 0x80c181b3 + type_id: 0x9fefc71b + full_name: "hid_hw_start" +} +elf_symbol { + id: 0x52d444b1 + name: "hid_hw_stop" + is_defined: true + symbol_type: FUNCTION + crc: 0x109cf170 + type_id: 0x13e1603f + full_name: "hid_hw_stop" +} elf_symbol { id: 0x7d0e44ca name: "hid_ignore" @@ -356324,6 +361084,15 @@ elf_symbol { type_id: 0x9d13a27c full_name: "hid_input_report" } +elf_symbol { + id: 0x0eb11e95 + name: "hid_open_report" + is_defined: true + symbol_type: FUNCTION + crc: 0x99072c9a + type_id: 0x9ef9d283 + full_name: "hid_open_report" +} elf_symbol { id: 0x6ca4d0ed name: "hid_parse_report" @@ -356333,6 +361102,33 @@ elf_symbol { type_id: 0x9e711486 full_name: "hid_parse_report" } +elf_symbol { + id: 0x741d5af7 + name: "hid_report_raw_event" + is_defined: true + symbol_type: FUNCTION + crc: 0x358ef5ff + type_id: 0x9d13a27c + full_name: "hid_report_raw_event" +} +elf_symbol { + id: 0x6e37f09d + name: "hid_unregister_driver" + is_defined: true + symbol_type: FUNCTION + crc: 0xe1767c20 + type_id: 0x104da524 + full_name: "hid_unregister_driver" +} +elf_symbol { + id: 0x29d6d842 + name: "hid_validate_values" + is_defined: true + symbol_type: FUNCTION + crc: 0x67c1cd41 + type_id: 0xe10f9802 + full_name: "hid_validate_values" +} elf_symbol { id: 0x21d35235 name: "hidp_hid_driver" @@ -357602,6 +362398,15 @@ elf_symbol { type_id: 0xa98cedf4 full_name: "iio_channel_get" } +elf_symbol { + id: 0x0b446726 + name: "iio_channel_get_all" + is_defined: true + symbol_type: FUNCTION + crc: 0x30387314 + type_id: 0xa974af20 + full_name: "iio_channel_get_all" +} elf_symbol { id: 0x8aa99af0 name: "iio_channel_release" @@ -357611,6 +362416,15 @@ elf_symbol { type_id: 0x1ef16b9c full_name: "iio_channel_release" } +elf_symbol { + id: 0x5ecdc560 + name: "iio_channel_release_all" + is_defined: true + symbol_type: FUNCTION + crc: 0x47935be9 + type_id: 0x1ef16b9c + full_name: "iio_channel_release_all" +} elf_symbol { id: 0x7ee06725 name: "iio_dealloc_pollfunc" @@ -357854,6 +362668,15 @@ elf_symbol { type_id: 0x16dc304e full_name: "iio_trigger_unregister" } +elf_symbol { + id: 0xdf3e8655 + name: "iio_update_buffers" + is_defined: true + symbol_type: FUNCTION + crc: 0x7cc9b292 + type_id: 0x9b15020e + full_name: "iio_update_buffers" +} elf_symbol { id: 0x6f2f4bd1 name: "iio_write_channel_raw" @@ -357890,6 +362713,15 @@ elf_symbol { type_id: 0x9399e12a full_name: "in4_pton" } +elf_symbol { + id: 0xcc6510bd + name: "in6_dev_finish_destroy" + is_defined: true + symbol_type: FUNCTION + crc: 0x71b83d03 + type_id: 0x1e704726 + full_name: "in6_dev_finish_destroy" +} elf_symbol { id: 0xc93c3b7d name: "in6_pton" @@ -358484,6 +363316,15 @@ elf_symbol { type_id: 0x158f9726 full_name: "input_set_capability" } +elf_symbol { + id: 0x31a5a9d7 + name: "input_set_poll_interval" + is_defined: true + symbol_type: FUNCTION + crc: 0xaf8d6e4f + type_id: 0x159ef67f + full_name: "input_set_poll_interval" +} elf_symbol { id: 0xfa66175a name: "input_set_timestamp" @@ -358493,6 +363334,15 @@ elf_symbol { type_id: 0x14cff3f5 full_name: "input_set_timestamp" } +elf_symbol { + id: 0x3975a1c8 + name: "input_setup_polling" + is_defined: true + symbol_type: FUNCTION + crc: 0xe6795292 + type_id: 0x99ae995e + full_name: "input_setup_polling" +} elf_symbol { id: 0x6a48a444 name: "input_unregister_device" @@ -358736,6 +363586,15 @@ elf_symbol { type_id: 0x1b338a63 full_name: "iommu_detach_device_pasid" } +elf_symbol { + id: 0xc578c7af + name: "iommu_detach_group" + is_defined: true + symbol_type: FUNCTION + crc: 0x41cce3f8 + type_id: 0x1b18b5bc + full_name: "iommu_detach_group" +} elf_symbol { id: 0x4c05b91e name: "iommu_dev_disable_feature" @@ -359717,6 +364576,15 @@ elf_symbol { type_id: 0x1247424a full_name: "irq_gc_mask_set_bit" } +elf_symbol { + id: 0x508904bc + name: "irq_gc_set_wake" + is_defined: true + symbol_type: FUNCTION + crc: 0x12d2b40d + type_id: 0x9e49e56e + full_name: "irq_gc_set_wake" +} elf_symbol { id: 0xe8b2d7a6 name: "irq_generic_chip_ops" @@ -359870,6 +364738,15 @@ elf_symbol { type_id: 0x85d454a8 full_name: "irq_set_parent" } +elf_symbol { + id: 0x3b8e2bac + name: "irq_stat" + is_defined: true + symbol_type: OBJECT + crc: 0xcc365d07 + type_id: 0x0b098126 + full_name: "irq_stat" +} elf_symbol { id: 0xc89a8e29 name: "irq_to_desc" @@ -361905,6 +366782,15 @@ elf_symbol { type_id: 0x927aedd4 full_name: "led_mc_calc_color_components" } +elf_symbol { + id: 0xbea2c272 + name: "led_set_brightness_nosleep" + is_defined: true + symbol_type: FUNCTION + crc: 0x8d7fee8c + type_id: 0x1d3cefc2 + full_name: "led_set_brightness_nosleep" +} elf_symbol { id: 0x2e74d698 name: "led_set_brightness_sync" @@ -362697,6 +367583,15 @@ elf_symbol { type_id: 0x173d80e7 full_name: "media_entity_remove_links" } +elf_symbol { + id: 0xda5dc517 + name: "media_entity_setup_link" + is_defined: true + symbol_type: FUNCTION + crc: 0xe5982bfb + type_id: 0x901c3c62 + full_name: "media_entity_setup_link" +} elf_symbol { id: 0x84278a73 name: "media_graph_walk_cleanup" @@ -362805,6 +367700,15 @@ elf_symbol { type_id: 0x59f18b0b full_name: "mem_cgroup_from_id" } +elf_symbol { + id: 0x6da682ae + name: "mem_cgroup_update_lru_size" + is_defined: true + symbol_type: FUNCTION + crc: 0x351f9cbb + type_id: 0x1ef25648 + full_name: "mem_cgroup_update_lru_size" +} elf_symbol { id: 0x7f797603 name: "mem_dump_obj" @@ -363170,6 +368074,15 @@ elf_symbol { type_id: 0x142e3633 full_name: "mii_ethtool_gset" } +elf_symbol { + id: 0x863e9436 + name: "mii_link_ok" + is_defined: true + symbol_type: FUNCTION + crc: 0x957e09ab + type_id: 0x9906a4a5 + full_name: "mii_link_ok" +} elf_symbol { id: 0x1579ecd2 name: "mii_nway_restart" @@ -363440,6 +368353,15 @@ elf_symbol { type_id: 0xf4f34784 full_name: "mipi_dsi_packet_format_is_long" } +elf_symbol { + id: 0xb6dbcbcc + name: "mipi_dsi_packet_format_is_short" + is_defined: true + symbol_type: FUNCTION + crc: 0x238b099f + type_id: 0xf4f34784 + full_name: "mipi_dsi_packet_format_is_short" +} elf_symbol { id: 0xdca2a3c4 name: "mipi_dsi_picture_parameter_set" @@ -363917,6 +368839,15 @@ elf_symbol { type_id: 0x1c081607 full_name: "mmc_set_timing" } +elf_symbol { + id: 0xa6d8e105 + name: "mmc_sw_reset" + is_defined: true + symbol_type: FUNCTION + crc: 0x59a1e31f + type_id: 0x9d19aa55 + full_name: "mmc_sw_reset" +} elf_symbol { id: 0x44bb49dc name: "mmc_switch" @@ -366068,6 +370999,15 @@ elf_symbol { type_id: 0x91f5fad8 full_name: "of_get_display_timing" } +elf_symbol { + id: 0x824695bc + name: "of_get_display_timings" + is_defined: true + symbol_type: FUNCTION + crc: 0x98a67fd3 + type_id: 0x4d744842 + full_name: "of_get_display_timings" +} elf_symbol { id: 0x05a46d27 name: "of_get_drm_display_mode" @@ -366248,6 +371188,15 @@ elf_symbol { type_id: 0x796e9f62 full_name: "of_graph_get_remote_node" } +elf_symbol { + id: 0x9539ac95 + name: "of_graph_get_remote_port" + is_defined: true + symbol_type: FUNCTION + crc: 0xc8fcc975 + type_id: 0x7a78fdc4 + full_name: "of_graph_get_remote_port" +} elf_symbol { id: 0xc699a239 name: "of_graph_get_remote_port_parent" @@ -366554,6 +371503,15 @@ elf_symbol { type_id: 0x119fef8e full_name: "of_phy_simple_xlate" } +elf_symbol { + id: 0xb27a823c + name: "of_pinctrl_get" + is_defined: true + symbol_type: FUNCTION + crc: 0xdcb4edab + type_id: 0xe2abbe2e + full_name: "of_pinctrl_get" +} elf_symbol { id: 0x840bde05 name: "of_platform_depopulate" @@ -366824,6 +371782,15 @@ elf_symbol { type_id: 0x5a09df06 full_name: "of_translate_address" } +elf_symbol { + id: 0xee187039 + name: "of_usb_get_dr_mode_by_phy" + is_defined: true + symbol_type: FUNCTION + crc: 0x2ea7a3cd + type_id: 0x66525607 + full_name: "of_usb_get_dr_mode_by_phy" +} elf_symbol { id: 0x7d8fe18b name: "of_usb_get_phy_mode" @@ -368780,6 +373747,15 @@ elf_symbol { type_id: 0x911c4ef8 full_name: "phy_mii_ioctl" } +elf_symbol { + id: 0xce039362 + name: "phy_mipi_dphy_config_validate" + is_defined: true + symbol_type: FUNCTION + crc: 0x881bad5e + type_id: 0x94418fe1 + full_name: "phy_mipi_dphy_config_validate" +} elf_symbol { id: 0x890d0269 name: "phy_mipi_dphy_get_default_config" @@ -369500,6 +374476,15 @@ elf_symbol { type_id: 0x9b558913 full_name: "pinctrl_enable" } +elf_symbol { + id: 0x35b1ed7b + name: "pinctrl_find_gpio_range_from_pin" + is_defined: true + symbol_type: FUNCTION + crc: 0x25629e8a + type_id: 0x1a1c4881 + full_name: "pinctrl_find_gpio_range_from_pin" +} elf_symbol { id: 0xf8bcc2db name: "pinctrl_force_default" @@ -369725,6 +374710,15 @@ elf_symbol { type_id: 0x9b4d90bf full_name: "pinctrl_utils_reserve_map" } +elf_symbol { + id: 0x62c010b9 + name: "pinmux_generic_add_function" + is_defined: true + symbol_type: FUNCTION + crc: 0x6264567f + type_id: 0x9ba346af + full_name: "pinmux_generic_add_function" +} elf_symbol { id: 0x013abbf5 name: "pinmux_generic_get_function" @@ -370076,6 +375070,15 @@ elf_symbol { type_id: 0x9dee9fa0 full_name: "pm_clk_add" } +elf_symbol { + id: 0x5b13a53d + name: "pm_clk_add_clk" + is_defined: true + symbol_type: FUNCTION + crc: 0x319b67c2 + type_id: 0x9de1e6d5 + full_name: "pm_clk_add_clk" +} elf_symbol { id: 0xaba73bf2 name: "pm_clk_create" @@ -370445,6 +375448,15 @@ elf_symbol { type_id: 0x169d12f4 full_name: "power_supply_changed" } +elf_symbol { + id: 0x50bfe1d8 + name: "power_supply_class" + is_defined: true + symbol_type: OBJECT + crc: 0x3e11d97d + type_id: 0x2a4c6b85 + full_name: "power_supply_class" +} elf_symbol { id: 0xa9ebbb66 name: "power_supply_find_ocv2cap_table" @@ -370508,6 +375520,15 @@ elf_symbol { type_id: 0x9ba3144f full_name: "power_supply_get_property" } +elf_symbol { + id: 0xf20efe74 + name: "power_supply_get_property_from_supplier" + is_defined: true + symbol_type: FUNCTION + crc: 0xf188af38 + type_id: 0x9ba3144f + full_name: "power_supply_get_property_from_supplier" +} elf_symbol { id: 0xd28bb85a name: "power_supply_is_system_supplied" @@ -371201,6 +376222,15 @@ elf_symbol { type_id: 0x910aa3e9 full_name: "public_key_verify_signature" } +elf_symbol { + id: 0xd38a2f2a + name: "push_cpu_stop" + is_defined: true + symbol_type: FUNCTION + crc: 0x99bd5133 + type_id: 0x9bafba63 + full_name: "push_cpu_stop" +} elf_symbol { id: 0x11d4227b name: "put_cmsg" @@ -371246,6 +376276,15 @@ elf_symbol { type_id: 0x1f796a1c full_name: "put_iova_domain" } +elf_symbol { + id: 0xb9bfc7b9 + name: "put_pages_list" + is_defined: true + symbol_type: FUNCTION + crc: 0xf0009fee + type_id: 0x1f00dfeb + full_name: "put_pages_list" +} elf_symbol { id: 0x1744651d name: "put_pid" @@ -371309,6 +376348,15 @@ elf_symbol { type_id: 0x9b6d4a33 full_name: "pvclock_gtod_register_notifier" } +elf_symbol { + id: 0x5ae13553 + name: "pwm_adjust_config" + is_defined: true + symbol_type: FUNCTION + crc: 0x22bed5ce + type_id: 0x97889594 + full_name: "pwm_adjust_config" +} elf_symbol { id: 0x53ee2234 name: "pwm_apply_state" @@ -373181,6 +378229,15 @@ elf_symbol { type_id: 0x9f59863d full_name: "regulator_set_voltage_time_sel" } +elf_symbol { + id: 0x12ab7c99 + name: "regulator_suspend_enable" + is_defined: true + symbol_type: FUNCTION + crc: 0x668c29cc + type_id: 0x9cb7a3ee + full_name: "regulator_suspend_enable" +} elf_symbol { id: 0x21b06e02 name: "regulator_sync_voltage" @@ -373388,6 +378445,15 @@ elf_symbol { type_id: 0x700bbe07 full_name: "reservation_ww_class" } +elf_symbol { + id: 0xb15014ad + name: "reserve_iova" + is_defined: true + symbol_type: FUNCTION + crc: 0x207ae624 + type_id: 0x48135354 + full_name: "reserve_iova" +} elf_symbol { id: 0x089f5fe6 name: "reset_control_acquire" @@ -373487,6 +378553,15 @@ elf_symbol { type_id: 0x47f7e87e full_name: "return_address" } +elf_symbol { + id: 0xd8c7c137 + name: "reweight_task" + is_defined: true + symbol_type: FUNCTION + crc: 0x3a6ca281 + type_id: 0x1642b8aa + full_name: "reweight_task" +} elf_symbol { id: 0xa3f52060 name: "rfkill_alloc" @@ -373739,6 +378814,15 @@ elf_symbol { type_id: 0x100e6fc8 full_name: "root_device_unregister" } +elf_symbol { + id: 0xbd83c333 + name: "root_mem_cgroup" + is_defined: true + symbol_type: OBJECT + crc: 0x9ab36151 + type_id: 0x1d5bae2a + full_name: "root_mem_cgroup" +} elf_symbol { id: 0x7d858174 name: "root_task_group" @@ -374153,6 +379237,24 @@ elf_symbol { type_id: 0x8e47c273 full_name: "rps_needed" } +elf_symbol { + id: 0xde4d20e6 + name: "rsa_parse_priv_key" + is_defined: true + symbol_type: FUNCTION + crc: 0xd75b20aa + type_id: 0x9377de98 + full_name: "rsa_parse_priv_key" +} +elf_symbol { + id: 0x6a82e2a4 + name: "rsa_parse_pub_key" + is_defined: true + symbol_type: FUNCTION + crc: 0x89ae7aa0 + type_id: 0x9377de98 + full_name: "rsa_parse_pub_key" +} elf_symbol { id: 0xec5e9065 name: "rt6_lookup" @@ -374711,6 +379813,15 @@ elf_symbol { type_id: 0x9823bcf6 full_name: "schedule_timeout" } +elf_symbol { + id: 0x3bc1cc84 + name: "schedule_timeout_idle" + is_defined: true + symbol_type: FUNCTION + crc: 0x7807f0f8 + type_id: 0x9823bcf6 + full_name: "schedule_timeout_idle" +} elf_symbol { id: 0xb05cd7bd name: "schedule_timeout_interruptible" @@ -375089,6 +380200,15 @@ elf_symbol { type_id: 0x93dfa305 full_name: "sdhci_add_host" } +elf_symbol { + id: 0xf399cd48 + name: "sdhci_adma_write_desc" + is_defined: true + symbol_type: FUNCTION + crc: 0x01560eef + type_id: 0x1ecc6a5d + full_name: "sdhci_adma_write_desc" +} elf_symbol { id: 0x05840f35 name: "sdhci_cleanup_host" @@ -375170,6 +380290,15 @@ elf_symbol { type_id: 0x1f55a7e6 full_name: "sdhci_get_property" } +elf_symbol { + id: 0x15f1b772 + name: "sdhci_pltfm_clk_get_max_clock" + is_defined: true + symbol_type: FUNCTION + crc: 0x91fe6c0a + type_id: 0xc0843ed1 + full_name: "sdhci_pltfm_clk_get_max_clock" +} elf_symbol { id: 0x38940a34 name: "sdhci_pltfm_free" @@ -375188,6 +380317,15 @@ elf_symbol { type_id: 0xb019e307 full_name: "sdhci_pltfm_init" } +elf_symbol { + id: 0x9f8a16f0 + name: "sdhci_pltfm_unregister" + is_defined: true + symbol_type: FUNCTION + crc: 0xca4fab1b + type_id: 0x924d155a + full_name: "sdhci_pltfm_unregister" +} elf_symbol { id: 0xad3b5931 name: "sdhci_remove_host" @@ -375260,6 +380398,24 @@ elf_symbol { type_id: 0x1f5b92f5 full_name: "sdhci_set_bus_width" } +elf_symbol { + id: 0x92732196 + name: "sdhci_set_clock" + is_defined: true + symbol_type: FUNCTION + crc: 0xefd8b1a4 + type_id: 0x1fd10421 + full_name: "sdhci_set_clock" +} +elf_symbol { + id: 0xd29660d9 + name: "sdhci_set_power_and_bus_voltage" + is_defined: true + symbol_type: FUNCTION + crc: 0x3726c8e5 + type_id: 0x1f835b6f + full_name: "sdhci_set_power_and_bus_voltage" +} elf_symbol { id: 0xa6c906b5 name: "sdhci_set_power_noreg" @@ -375269,6 +380425,15 @@ elf_symbol { type_id: 0x1f835b6f full_name: "sdhci_set_power_noreg" } +elf_symbol { + id: 0x77dba918 + name: "sdhci_set_uhs_signaling" + is_defined: true + symbol_type: FUNCTION + crc: 0x30232005 + type_id: 0x1fd10421 + full_name: "sdhci_set_uhs_signaling" +} elf_symbol { id: 0x5cc4535c name: "sdhci_setup_host" @@ -375395,6 +380560,15 @@ elf_symbol { type_id: 0x99685c26 full_name: "sdio_readsb" } +elf_symbol { + id: 0xe1092bbd + name: "sdio_readw" + is_defined: true + symbol_type: FUNCTION + crc: 0xf956e25f + type_id: 0x04a35d6c + full_name: "sdio_readw" +} elf_symbol { id: 0x3003f174 name: "sdio_register_driver" @@ -375494,6 +380668,15 @@ elf_symbol { type_id: 0x980bf22a full_name: "sdio_writesb" } +elf_symbol { + id: 0xb3b8cbe2 + name: "sdio_writew" + is_defined: true + symbol_type: FUNCTION + crc: 0xc72a8a38 + type_id: 0x1656fc12 + full_name: "sdio_writew" +} elf_symbol { id: 0xec171799 name: "security_file_ioctl" @@ -376304,6 +381487,24 @@ elf_symbol { type_id: 0xf07462c6 full_name: "sget_fc" } +elf_symbol { + id: 0x0b4df89e + name: "sha1_init" + is_defined: true + symbol_type: FUNCTION + crc: 0x50624917 + type_id: 0x1c5eb40a + full_name: "sha1_init" +} +elf_symbol { + id: 0x7996527c + name: "sha1_transform" + is_defined: true + symbol_type: FUNCTION + crc: 0x5e0ccb9f + type_id: 0x1caa303b + full_name: "sha1_transform" +} elf_symbol { id: 0x7f3b48aa name: "shmem_file_setup" @@ -376998,6 +382199,60 @@ elf_symbol { type_id: 0x11b644af full_name: "skb_unlink" } +elf_symbol { + id: 0x706a5214 + name: "skcipher_alloc_instance_simple" + is_defined: true + symbol_type: FUNCTION + crc: 0xae8e9e95 + type_id: 0x034a2603 + full_name: "skcipher_alloc_instance_simple" +} +elf_symbol { + id: 0x56fe28ac + name: "skcipher_register_instance" + is_defined: true + symbol_type: FUNCTION + crc: 0xd2b42989 + type_id: 0x9aaf7e51 + full_name: "skcipher_register_instance" +} +elf_symbol { + id: 0xfb0d7eaf + name: "skcipher_walk_aead_decrypt" + is_defined: true + symbol_type: FUNCTION + crc: 0x9356d0fe + type_id: 0x946d2b92 + full_name: "skcipher_walk_aead_decrypt" +} +elf_symbol { + id: 0x910f3594 + name: "skcipher_walk_aead_encrypt" + is_defined: true + symbol_type: FUNCTION + crc: 0x4e121a7c + type_id: 0x946d2b92 + full_name: "skcipher_walk_aead_encrypt" +} +elf_symbol { + id: 0x6a015d4f + name: "skcipher_walk_done" + is_defined: true + symbol_type: FUNCTION + crc: 0xe799e196 + type_id: 0x9522132a + full_name: "skcipher_walk_done" +} +elf_symbol { + id: 0xcb37c2fd + name: "skcipher_walk_virt" + is_defined: true + symbol_type: FUNCTION + crc: 0xa1045e95 + type_id: 0x94d5972f + full_name: "skcipher_walk_virt" +} elf_symbol { id: 0x57adf54a name: "skip_spaces" @@ -377466,6 +382721,15 @@ elf_symbol { type_id: 0x9e61ffc7 full_name: "snd_pcm_create_iec958_consumer_default" } +elf_symbol { + id: 0xa4da49fe + name: "snd_pcm_create_iec958_consumer_hw_params" + is_defined: true + symbol_type: FUNCTION + crc: 0x11eba48e + type_id: 0x96d423b4 + full_name: "snd_pcm_create_iec958_consumer_hw_params" +} elf_symbol { id: 0xb9a87429 name: "snd_pcm_fill_iec958_consumer" @@ -377736,6 +383000,15 @@ elf_symbol { type_id: 0x98e6a470 full_name: "snd_pcm_stop" } +elf_symbol { + id: 0xc26d0753 + name: "snd_pcm_stop_xrun" + is_defined: true + symbol_type: FUNCTION + crc: 0x789b9ad6 + type_id: 0x98aeb261 + full_name: "snd_pcm_stop_xrun" +} elf_symbol { id: 0x1f5649eb name: "snd_sgbuf_get_addr" @@ -378537,6 +383810,24 @@ elf_symbol { type_id: 0x9e6bce91 full_name: "snd_soc_jack_add_gpios" } +elf_symbol { + id: 0xc92a02ef + name: "snd_soc_jack_add_zones" + is_defined: true + symbol_type: FUNCTION + crc: 0x1e0a39c0 + type_id: 0x9e6f0e68 + full_name: "snd_soc_jack_add_zones" +} +elf_symbol { + id: 0x804bafc3 + name: "snd_soc_jack_get_type" + is_defined: true + symbol_type: FUNCTION + crc: 0x0056842b + type_id: 0x9e65fffe + full_name: "snd_soc_jack_get_type" +} elf_symbol { id: 0xabad0839 name: "snd_soc_jack_notifier_register" @@ -379923,6 +385214,15 @@ elf_symbol { type_id: 0x1b3aea40 full_name: "static_key_disable" } +elf_symbol { + id: 0x8ac195eb + name: "static_key_enable" + is_defined: true + symbol_type: FUNCTION + crc: 0x6b2b69f7 + type_id: 0x1b3aea40 + full_name: "static_key_enable" +} elf_symbol { id: 0xd09568e0 name: "static_key_slow_dec" @@ -380286,6 +385586,15 @@ elf_symbol { type_id: 0x1d20fb22 full_name: "suspend_set_ops" } +elf_symbol { + id: 0xd5e0987f + name: "swiotlb_max_segment" + is_defined: true + symbol_type: FUNCTION + crc: 0x5b6b0329 + type_id: 0xcedb7efb + full_name: "swiotlb_max_segment" +} elf_symbol { id: 0x1fe11014 name: "sync_blockdev" @@ -380493,6 +385802,15 @@ elf_symbol { type_id: 0x4585663f full_name: "sysctl_sched_features" } +elf_symbol { + id: 0x87812861 + name: "sysctl_sched_latency" + is_defined: true + symbol_type: OBJECT + crc: 0xceee0cb7 + type_id: 0x4585663f + full_name: "sysctl_sched_latency" +} elf_symbol { id: 0x18d0dd21 name: "sysctl_vals" @@ -381105,6 +386423,15 @@ elf_symbol { type_id: 0xfca015af full_name: "tcpm_port_is_toggling" } +elf_symbol { + id: 0xd2070626 + name: "tcpm_register_port" + is_defined: true + symbol_type: FUNCTION + crc: 0xd95cde3e + type_id: 0x16949287 + full_name: "tcpm_register_port" +} elf_symbol { id: 0xdebe76ba name: "tcpm_sink_frs" @@ -381123,6 +386450,24 @@ elf_symbol { type_id: 0x129c1f38 full_name: "tcpm_sourcing_vbus" } +elf_symbol { + id: 0xfccd15d1 + name: "tcpm_tcpc_reset" + is_defined: true + symbol_type: FUNCTION + crc: 0xea220941 + type_id: 0x129c1f38 + full_name: "tcpm_tcpc_reset" +} +elf_symbol { + id: 0x591431f1 + name: "tcpm_unregister_port" + is_defined: true + symbol_type: FUNCTION + crc: 0x76eeda4b + type_id: 0x129c1f38 + full_name: "tcpm_unregister_port" +} elf_symbol { id: 0x6869c83d name: "tcpm_vbus_change" @@ -381132,6 +386477,24 @@ elf_symbol { type_id: 0x129c1f38 full_name: "tcpm_vbus_change" } +elf_symbol { + id: 0x7cfd9233 + name: "teo_cpu_get_util_threshold" + is_defined: true + symbol_type: FUNCTION + crc: 0x0482d3ad + type_id: 0x2864f998 + full_name: "teo_cpu_get_util_threshold" +} +elf_symbol { + id: 0xbd25c7d0 + name: "teo_cpu_set_util_threshold" + is_defined: true + symbol_type: FUNCTION + crc: 0xba6e00b6 + type_id: 0x099db0ca + full_name: "teo_cpu_set_util_threshold" +} elf_symbol { id: 0x5bbd3545 name: "thermal_cdev_update" @@ -384318,6 +389681,15 @@ elf_symbol { type_id: 0x95c42336 full_name: "usb_add_hcd" } +elf_symbol { + id: 0xea314c1f + name: "usb_add_phy" + is_defined: true + symbol_type: FUNCTION + crc: 0xb3aac08b + type_id: 0x9e7bd8f3 + full_name: "usb_add_phy" +} elf_symbol { id: 0xdc59a2d7 name: "usb_add_phy_dev" @@ -384651,6 +390023,15 @@ elf_symbol { type_id: 0x1fbef67f full_name: "usb_deregister" } +elf_symbol { + id: 0x201afca9 + name: "usb_deregister_dev" + is_defined: true + symbol_type: FUNCTION + crc: 0x6835cf09 + type_id: 0x18159e1c + full_name: "usb_deregister_dev" +} elf_symbol { id: 0xd75ad246 name: "usb_device_match_id" @@ -384831,6 +390212,15 @@ elf_symbol { type_id: 0x9dcedb70 full_name: "usb_find_common_endpoints" } +elf_symbol { + id: 0x899ff164 + name: "usb_find_interface" + is_defined: true + symbol_type: FUNCTION + crc: 0x8b21a5ec + type_id: 0x4d306964 + full_name: "usb_find_interface" +} elf_symbol { id: 0x4ec99a42 name: "usb_free_all_descriptors" @@ -385281,6 +390671,15 @@ elf_symbol { type_id: 0x33756485 full_name: "usb_hcds_loaded" } +elf_symbol { + id: 0x00a14c5c + name: "usb_hid_driver" + is_defined: true + symbol_type: OBJECT + crc: 0x06332c5c + type_id: 0x2def15e8 + full_name: "usb_hid_driver" +} elf_symbol { id: 0x868c5f6e name: "usb_hub_clear_tt_buffer" @@ -385335,6 +390734,15 @@ elf_symbol { type_id: 0x9ebe912b full_name: "usb_interface_id" } +elf_symbol { + id: 0x83676405 + name: "usb_interrupt_msg" + is_defined: true + symbol_type: FUNCTION + crc: 0xc5e153c9 + type_id: 0x9fce79d4 + full_name: "usb_interrupt_msg" +} elf_symbol { id: 0x89c78ea4 name: "usb_kill_anchored_urbs" @@ -385425,6 +390833,15 @@ elf_symbol { type_id: 0x11252cf3 full_name: "usb_phy_set_event" } +elf_symbol { + id: 0xbf06fcb7 + name: "usb_poison_anchored_urbs" + is_defined: true + symbol_type: FUNCTION + crc: 0x842f046d + type_id: 0x1d8d80fc + full_name: "usb_poison_anchored_urbs" +} elf_symbol { id: 0xcaff4b1e name: "usb_poison_urb" @@ -385488,6 +390905,15 @@ elf_symbol { type_id: 0x18d9f669 full_name: "usb_queue_reset_device" } +elf_symbol { + id: 0xa60cf3b7 + name: "usb_register_dev" + is_defined: true + symbol_type: FUNCTION + crc: 0xf06b7687 + type_id: 0x950d2ca0 + full_name: "usb_register_dev" +} elf_symbol { id: 0x944deaea name: "usb_register_driver" @@ -385587,6 +391013,15 @@ elf_symbol { type_id: 0x580ef044 full_name: "usb_role_switch_get_drvdata" } +elf_symbol { + id: 0x9de82d32 + name: "usb_role_switch_get_role" + is_defined: true + symbol_type: FUNCTION + crc: 0xff42c374 + type_id: 0x9a23bd25 + full_name: "usb_role_switch_get_role" +} elf_symbol { id: 0x09c05733 name: "usb_role_switch_put" @@ -385965,6 +391400,15 @@ elf_symbol { type_id: 0x1675f88f full_name: "usb_unregister_notify" } +elf_symbol { + id: 0x9ea1c58f + name: "usb_wakeup_enabled_descendants" + is_defined: true + symbol_type: FUNCTION + crc: 0xa1709c0c + type_id: 0xcd844708 + full_name: "usb_wakeup_enabled_descendants" +} elf_symbol { id: 0x140d9164 name: "usb_wakeup_notification" @@ -385974,6 +391418,42 @@ elf_symbol { type_id: 0x12d17df8 full_name: "usb_wakeup_notification" } +elf_symbol { + id: 0xbbf007f4 + name: "usbnet_change_mtu" + is_defined: true + symbol_type: FUNCTION + crc: 0xdf1db1f5 + type_id: 0x90b5e896 + full_name: "usbnet_change_mtu" +} +elf_symbol { + id: 0xd28057f3 + name: "usbnet_defer_kevent" + is_defined: true + symbol_type: FUNCTION + crc: 0x6e3c218b + type_id: 0x1276a8bd + full_name: "usbnet_defer_kevent" +} +elf_symbol { + id: 0x580c56b8 + name: "usbnet_disconnect" + is_defined: true + symbol_type: FUNCTION + crc: 0xfe1e5ee6 + type_id: 0x18d9f669 + full_name: "usbnet_disconnect" +} +elf_symbol { + id: 0x8f0c866d + name: "usbnet_get_drvinfo" + is_defined: true + symbol_type: FUNCTION + crc: 0xa5701874 + type_id: 0x1cc68e0f + full_name: "usbnet_get_drvinfo" +} elf_symbol { id: 0x52816b1c name: "usbnet_get_endpoints" @@ -385983,6 +391463,33 @@ elf_symbol { type_id: 0x9e768332 full_name: "usbnet_get_endpoints" } +elf_symbol { + id: 0x4f4e9353 + name: "usbnet_get_link" + is_defined: true + symbol_type: FUNCTION + crc: 0xa8e792b0 + type_id: 0x4951a397 + full_name: "usbnet_get_link" +} +elf_symbol { + id: 0x3f51a906 + name: "usbnet_get_link_ksettings_mii" + is_defined: true + symbol_type: FUNCTION + crc: 0x2d9393b2 + type_id: 0x914dbe16 + full_name: "usbnet_get_link_ksettings_mii" +} +elf_symbol { + id: 0x6515c416 + name: "usbnet_get_msglevel" + is_defined: true + symbol_type: FUNCTION + crc: 0xaa53e6df + type_id: 0x4951a397 + full_name: "usbnet_get_msglevel" +} elf_symbol { id: 0x19d80976 name: "usbnet_link_change" @@ -385992,6 +391499,150 @@ elf_symbol { type_id: 0x12448959 full_name: "usbnet_link_change" } +elf_symbol { + id: 0x6c854cb3 + name: "usbnet_nway_reset" + is_defined: true + symbol_type: FUNCTION + crc: 0x44c1d620 + type_id: 0x91296bda + full_name: "usbnet_nway_reset" +} +elf_symbol { + id: 0xcd021e80 + name: "usbnet_open" + is_defined: true + symbol_type: FUNCTION + crc: 0x37e3dac8 + type_id: 0x91296bda + full_name: "usbnet_open" +} +elf_symbol { + id: 0x147e4ad2 + name: "usbnet_probe" + is_defined: true + symbol_type: FUNCTION + crc: 0xa6db5d48 + type_id: 0x952154fc + full_name: "usbnet_probe" +} +elf_symbol { + id: 0x167360fc + name: "usbnet_read_cmd" + is_defined: true + symbol_type: FUNCTION + crc: 0xa46394ea + type_id: 0x9e5fdeba + full_name: "usbnet_read_cmd" +} +elf_symbol { + id: 0x69b1070f + name: "usbnet_read_cmd_nopm" + is_defined: true + symbol_type: FUNCTION + crc: 0x721f340d + type_id: 0x9e5fdeba + full_name: "usbnet_read_cmd_nopm" +} +elf_symbol { + id: 0x3be16591 + name: "usbnet_resume" + is_defined: true + symbol_type: FUNCTION + crc: 0xb279d24c + type_id: 0x95c144d5 + full_name: "usbnet_resume" +} +elf_symbol { + id: 0x6e3c0f91 + name: "usbnet_set_link_ksettings_mii" + is_defined: true + symbol_type: FUNCTION + crc: 0x3f50bb22 + type_id: 0x91cc9f9b + full_name: "usbnet_set_link_ksettings_mii" +} +elf_symbol { + id: 0x99cb2edf + name: "usbnet_set_msglevel" + is_defined: true + symbol_type: FUNCTION + crc: 0xcbf61848 + type_id: 0x1f15f9ca + full_name: "usbnet_set_msglevel" +} +elf_symbol { + id: 0x2325cd65 + name: "usbnet_skb_return" + is_defined: true + symbol_type: FUNCTION + crc: 0x7602f70e + type_id: 0x13ff1655 + full_name: "usbnet_skb_return" +} +elf_symbol { + id: 0x9cf79f8d + name: "usbnet_start_xmit" + is_defined: true + symbol_type: FUNCTION + crc: 0x64b56e3d + type_id: 0x5515f11d + full_name: "usbnet_start_xmit" +} +elf_symbol { + id: 0x2f365f93 + name: "usbnet_stop" + is_defined: true + symbol_type: FUNCTION + crc: 0x1328858d + type_id: 0x91296bda + full_name: "usbnet_stop" +} +elf_symbol { + id: 0x6229bd38 + name: "usbnet_suspend" + is_defined: true + symbol_type: FUNCTION + crc: 0xf5d2649e + type_id: 0x96011ad3 + full_name: "usbnet_suspend" +} +elf_symbol { + id: 0x90b81315 + name: "usbnet_tx_timeout" + is_defined: true + symbol_type: FUNCTION + crc: 0x93fad802 + type_id: 0x1d27ccfe + full_name: "usbnet_tx_timeout" +} +elf_symbol { + id: 0xb011e423 + name: "usbnet_write_cmd" + is_defined: true + symbol_type: FUNCTION + crc: 0xf6bbc53f + type_id: 0x9e5fde3c + full_name: "usbnet_write_cmd" +} +elf_symbol { + id: 0x27363bb6 + name: "usbnet_write_cmd_async" + is_defined: true + symbol_type: FUNCTION + crc: 0x54bea6a3 + type_id: 0x9e5fde3c + full_name: "usbnet_write_cmd_async" +} +elf_symbol { + id: 0x10932377 + name: "usbnet_write_cmd_nopm" + is_defined: true + symbol_type: FUNCTION + crc: 0xee57cfe4 + type_id: 0x9e5fde3c + full_name: "usbnet_write_cmd_nopm" +} elf_symbol { id: 0xb5437ef4 name: "usleep_range_state" @@ -386433,6 +392084,15 @@ elf_symbol { type_id: 0x9bba7997 full_name: "v4l2_fh_release" } +elf_symbol { + id: 0x538ad5cc + name: "v4l2_find_dv_timings_cap" + is_defined: true + symbol_type: FUNCTION + crc: 0x3aa68d7a + type_id: 0xf3248c4f + full_name: "v4l2_find_dv_timings_cap" +} elf_symbol { id: 0x2244c8f0 name: "v4l2_format_info" @@ -386892,6 +392552,42 @@ elf_symbol { type_id: 0x900d5d3b full_name: "v4l2_pipeline_link_notify" } +elf_symbol { + id: 0xb2eba8d7 + name: "v4l2_pipeline_pm_get" + is_defined: true + symbol_type: FUNCTION + crc: 0x12d08c2a + type_id: 0x9a25325b + full_name: "v4l2_pipeline_pm_get" +} +elf_symbol { + id: 0xa84f74e5 + name: "v4l2_pipeline_pm_put" + is_defined: true + symbol_type: FUNCTION + crc: 0xce6853d3 + type_id: 0x173d80e7 + full_name: "v4l2_pipeline_pm_put" +} +elf_symbol { + id: 0x64b2fdfd + name: "v4l2_print_dv_timings" + is_defined: true + symbol_type: FUNCTION + crc: 0x08402862 + type_id: 0x1fe91863 + full_name: "v4l2_print_dv_timings" +} +elf_symbol { + id: 0x34ad1913 + name: "v4l2_querymenu" + is_defined: true + symbol_type: FUNCTION + crc: 0x11003a10 + type_id: 0x9d30566e + full_name: "v4l2_querymenu" +} elf_symbol { id: 0x5f3882d0 name: "v4l2_s_ctrl" @@ -386910,6 +392606,15 @@ elf_symbol { type_id: 0x9df4075f full_name: "v4l2_s_parm_cap" } +elf_symbol { + id: 0x90eb49a1 + name: "v4l2_src_change_event_subdev_subscribe" + is_defined: true + symbol_type: FUNCTION + crc: 0xe05167de + type_id: 0x9d3b60fc + full_name: "v4l2_src_change_event_subdev_subscribe" +} elf_symbol { id: 0xac8d7ab3 name: "v4l2_src_change_event_subscribe" @@ -386955,6 +392660,33 @@ elf_symbol { type_id: 0x9d1d4664 full_name: "v4l2_subdev_link_validate_default" } +elf_symbol { + id: 0x5da8252d + name: "v4l2_subdev_notify_event" + is_defined: true + symbol_type: FUNCTION + crc: 0x9389db87 + type_id: 0x101d83a0 + full_name: "v4l2_subdev_notify_event" +} +elf_symbol { + id: 0x1e8152b6 + name: "v4l2_type_names" + is_defined: true + symbol_type: OBJECT + crc: 0x123959a1 + type_id: 0xf95ab7ac + full_name: "v4l2_type_names" +} +elf_symbol { + id: 0xd07f1826 + name: "v4l2_valid_dv_timings" + is_defined: true + symbol_type: FUNCTION + crc: 0x0af3d134 + type_id: 0xf2d3e848 + full_name: "v4l2_valid_dv_timings" +} elf_symbol { id: 0x7733b651 name: "v4l_bound_align_image" @@ -387576,6 +393308,24 @@ elf_symbol { type_id: 0x90a73fa7 full_name: "video_device_alloc" } +elf_symbol { + id: 0x2e0c3fe5 + name: "video_device_pipeline_start" + is_defined: true + symbol_type: FUNCTION + crc: 0x7a4ef3ef + type_id: 0x9da46876 + full_name: "video_device_pipeline_start" +} +elf_symbol { + id: 0xae3c44c1 + name: "video_device_pipeline_stop" + is_defined: true + symbol_type: FUNCTION + crc: 0xc359213b + type_id: 0x10e07da0 + full_name: "video_device_pipeline_stop" +} elf_symbol { id: 0xb1b42a22 name: "video_device_release" @@ -387621,6 +393371,15 @@ elf_symbol { type_id: 0x1ed8d47c full_name: "videomode_from_timing" } +elf_symbol { + id: 0x6d215713 + name: "videomode_from_timings" + is_defined: true + symbol_type: FUNCTION + crc: 0x414d119a + type_id: 0x919a2688 + full_name: "videomode_from_timings" +} elf_symbol { id: 0x1bf9e9e5 name: "virtio_break_device" @@ -389115,6 +394874,24 @@ elf_symbol { type_id: 0x5cf6a3cf full_name: "xa_store" } +elf_symbol { + id: 0xb5ba02d4 + name: "xas_find" + is_defined: true + symbol_type: FUNCTION + crc: 0x39c9d88c + type_id: 0x5ebf0597 + full_name: "xas_find" +} +elf_symbol { + id: 0x0fe35b07 + name: "xas_pause" + is_defined: true + symbol_type: FUNCTION + crc: 0x0fbc0c0e + type_id: 0x187c3067 + full_name: "xas_pause" +} elf_symbol { id: 0xebb799b4 name: "xdp_convert_zc_to_xdp_frame" @@ -389834,6 +395611,8 @@ interface { symbol_id: 0x5b94e7ac symbol_id: 0x41de13f7 symbol_id: 0xe284f532 + symbol_id: 0x98179c82 + symbol_id: 0xfa979d99 symbol_id: 0x6e1bc82e symbol_id: 0x9fa51b33 symbol_id: 0x228f3ab6 @@ -389942,6 +395721,7 @@ interface { symbol_id: 0x1c1ee265 symbol_id: 0x77466fa6 symbol_id: 0x0b0f732e + symbol_id: 0xa061e45d symbol_id: 0xec903c93 symbol_id: 0x7149b35b symbol_id: 0x04e4be20 @@ -389992,6 +395772,7 @@ interface { symbol_id: 0x010ff5f2 symbol_id: 0xe3bb3be3 symbol_id: 0xdf924e64 + symbol_id: 0xb3d97fa3 symbol_id: 0xf245d4a3 symbol_id: 0x74b9825e symbol_id: 0xd672e937 @@ -390060,6 +395841,8 @@ interface { symbol_id: 0x0ba13d85 symbol_id: 0x479db511 symbol_id: 0x603dcc7d + symbol_id: 0x68d1b187 + symbol_id: 0x9de4c040 symbol_id: 0x89d01efd symbol_id: 0xf680e61c symbol_id: 0x4cfc63ca @@ -390187,6 +395970,7 @@ interface { symbol_id: 0xb42422d5 symbol_id: 0xb3d70eab symbol_id: 0x0b48afa1 + symbol_id: 0x6d4cc1a2 symbol_id: 0x48420da9 symbol_id: 0x144db0a1 symbol_id: 0x192bbbd5 @@ -390205,6 +395989,7 @@ interface { symbol_id: 0x8f1b1c1e symbol_id: 0xd6290b85 symbol_id: 0x3e4ab4f6 + symbol_id: 0xa0a77bb8 symbol_id: 0xa3b41867 symbol_id: 0x40034e11 symbol_id: 0x6e62463e @@ -390231,6 +396016,8 @@ interface { symbol_id: 0x7edcea8d symbol_id: 0x72c43156 symbol_id: 0x61e95c07 + symbol_id: 0xfc83b254 + symbol_id: 0x7e99bc71 symbol_id: 0x7c212080 symbol_id: 0x1ea5d323 symbol_id: 0xc1a482d8 @@ -390241,10 +396028,13 @@ interface { symbol_id: 0x88e9b222 symbol_id: 0x097e467e symbol_id: 0xfad1d9f5 + symbol_id: 0x167fc668 + symbol_id: 0xd6a514f5 symbol_id: 0xeccbc3c1 symbol_id: 0xbd2d27dc symbol_id: 0xe41b0c78 symbol_id: 0x13f466b7 + symbol_id: 0xc191b2f6 symbol_id: 0xe3e24295 symbol_id: 0xaedef3a2 symbol_id: 0xde725472 @@ -390276,6 +396066,7 @@ interface { symbol_id: 0xbe8d73f2 symbol_id: 0xaf658447 symbol_id: 0xe56edb7a + symbol_id: 0x9c2c2d71 symbol_id: 0xcac6b03d symbol_id: 0x4a5f5242 symbol_id: 0x08cd7e9d @@ -390294,13 +396085,17 @@ interface { symbol_id: 0x23097c08 symbol_id: 0xe3ee70ae symbol_id: 0xcce6f612 + symbol_id: 0xa63eb82a symbol_id: 0xcd824552 + symbol_id: 0xb6d1fa25 symbol_id: 0x16809a5a + symbol_id: 0xfaa2e0a4 symbol_id: 0xc1ba0eb6 symbol_id: 0x13c17b96 symbol_id: 0xebcd0234 symbol_id: 0xa3af7947 symbol_id: 0x86527a4e + symbol_id: 0xd0b4a794 symbol_id: 0x33f9278c symbol_id: 0x2e343246 symbol_id: 0xa6e329cd @@ -390312,6 +396107,7 @@ interface { symbol_id: 0x528da532 symbol_id: 0x530ad17d symbol_id: 0x6e0b473c + symbol_id: 0xcb807696 symbol_id: 0xbebf7d98 symbol_id: 0x6935b08b symbol_id: 0xd595bd2c @@ -390326,13 +396122,16 @@ interface { symbol_id: 0xc6c9353c symbol_id: 0xd738b678 symbol_id: 0x2a9c6616 + symbol_id: 0x6bce867e symbol_id: 0x4785a3dd symbol_id: 0x25f13dbe symbol_id: 0xf6faffcb symbol_id: 0x5cf60b10 + symbol_id: 0xcc2edef9 symbol_id: 0x61c82fb5 symbol_id: 0x53fba77d symbol_id: 0xe479b209 + symbol_id: 0x31a78b8a symbol_id: 0xa9225bf8 symbol_id: 0x33c527ab symbol_id: 0x5012fcd8 @@ -390343,6 +396142,8 @@ interface { symbol_id: 0x005c7625 symbol_id: 0xf3accb84 symbol_id: 0xef7737f8 + symbol_id: 0xa4527895 + symbol_id: 0x3644fdcd symbol_id: 0x9247dcb1 symbol_id: 0xfd04e27a symbol_id: 0xa124d3e0 @@ -390366,6 +396167,7 @@ interface { symbol_id: 0x1f554c2a symbol_id: 0x343adff1 symbol_id: 0x93a4717b + symbol_id: 0x9e91661b symbol_id: 0xc189c2a7 symbol_id: 0x5ecff02f symbol_id: 0xe3ce1f52 @@ -390411,6 +396213,9 @@ interface { symbol_id: 0x3431d426 symbol_id: 0x8c174a7d symbol_id: 0xea8ce2b0 + symbol_id: 0x295c28cd + symbol_id: 0x10e93e46 + symbol_id: 0x49cebcae symbol_id: 0xe44dacb1 symbol_id: 0x5612c9d1 symbol_id: 0xa77effd1 @@ -390425,6 +396230,7 @@ interface { symbol_id: 0xe17999f4 symbol_id: 0x721b87b7 symbol_id: 0xacaadcc9 + symbol_id: 0xd14f3adb symbol_id: 0x5983841b symbol_id: 0x7d499dab symbol_id: 0xa09f7a4b @@ -390493,6 +396299,8 @@ interface { symbol_id: 0x9545623c symbol_id: 0x558490b1 symbol_id: 0x8af2b51e + symbol_id: 0x5ab5402f + symbol_id: 0xaa213206 symbol_id: 0xe31bb308 symbol_id: 0x6a6dc806 symbol_id: 0xa56348c9 @@ -390506,6 +396314,8 @@ interface { symbol_id: 0xcc8dcd0c symbol_id: 0xcb4d15f3 symbol_id: 0x6a8145ff + symbol_id: 0x08824ed3 + symbol_id: 0xcbec9d66 symbol_id: 0xb0bf7fd6 symbol_id: 0xae5e5469 symbol_id: 0x6911084f @@ -390541,11 +396351,15 @@ interface { symbol_id: 0xc8ec671c symbol_id: 0x60c24c4f symbol_id: 0xa7548418 + symbol_id: 0xbbfa35c3 + symbol_id: 0x328bf22b + symbol_id: 0xbdceccc2 symbol_id: 0x3e69b303 symbol_id: 0x7f1a363f symbol_id: 0x2c11fea4 symbol_id: 0x45e62871 symbol_id: 0x85a11e58 + symbol_id: 0x1e8ffa55 symbol_id: 0xb614ca1f symbol_id: 0x2de60b3e symbol_id: 0x9cf075c5 @@ -390554,6 +396368,8 @@ interface { symbol_id: 0x41fdc249 symbol_id: 0x570f3032 symbol_id: 0xc42d0053 + symbol_id: 0x00296361 + symbol_id: 0xf574f9d9 symbol_id: 0x20097074 symbol_id: 0x863777a0 symbol_id: 0xcac5a7d5 @@ -390565,6 +396381,7 @@ interface { symbol_id: 0x4b7a8fd7 symbol_id: 0xcd36f539 symbol_id: 0x748c1fd7 + symbol_id: 0xc9400cec symbol_id: 0xaf461bff symbol_id: 0xd7757253 symbol_id: 0x1e8a7e23 @@ -390583,6 +396400,7 @@ interface { symbol_id: 0x3eb0f084 symbol_id: 0x832ab9cf symbol_id: 0xaa8affb8 + symbol_id: 0x5029bb46 symbol_id: 0x11f903b1 symbol_id: 0x25e320a3 symbol_id: 0xcd81b300 @@ -390609,6 +396427,8 @@ interface { symbol_id: 0x0991fcbf symbol_id: 0x693af5b0 symbol_id: 0x59d74b45 + symbol_id: 0x4fd98142 + symbol_id: 0x695c4baf symbol_id: 0x99d57c12 symbol_id: 0x3cb4db49 symbol_id: 0x3a6f3fb2 @@ -390619,10 +396439,13 @@ interface { symbol_id: 0x18752990 symbol_id: 0x448fc4e4 symbol_id: 0x121537db + symbol_id: 0x817c415a + symbol_id: 0x3fe8bcd7 symbol_id: 0x50605d97 symbol_id: 0xa5e991f6 symbol_id: 0x261c997e symbol_id: 0x3b6248c1 + symbol_id: 0x5ac6bcbc symbol_id: 0x18bac297 symbol_id: 0x1a849f34 symbol_id: 0x3f328d3c @@ -390654,6 +396477,7 @@ interface { symbol_id: 0x4bc6b114 symbol_id: 0x93751239 symbol_id: 0x70131d40 + symbol_id: 0xbe9f9d4f symbol_id: 0xda52fd4f symbol_id: 0x86f03c84 symbol_id: 0x498fea3f @@ -390672,13 +396496,17 @@ interface { symbol_id: 0xafe46ece symbol_id: 0xe445d254 symbol_id: 0x64e2c288 + symbol_id: 0xc3add2dc symbol_id: 0xdc2af26c + symbol_id: 0xcc5017b7 symbol_id: 0x1362c5b0 + symbol_id: 0xaa2da792 symbol_id: 0x0e614ab0 symbol_id: 0xa68c0f10 symbol_id: 0xdcf22716 symbol_id: 0x4f980315 symbol_id: 0xe1489e0c + symbol_id: 0xd7f9868e symbol_id: 0x37776872 symbol_id: 0xfc735654 symbol_id: 0x1ebb872f @@ -390690,6 +396518,7 @@ interface { symbol_id: 0xfb7cdd24 symbol_id: 0xc8703937 symbol_id: 0x61b56472 + symbol_id: 0x19dded7c symbol_id: 0xf32898c6 symbol_id: 0x332635cd symbol_id: 0xf06625d6 @@ -390704,13 +396533,16 @@ interface { symbol_id: 0x57a9a36a symbol_id: 0x21d8d29a symbol_id: 0x2e04cb9c + symbol_id: 0xdda667b0 symbol_id: 0x306b5ff7 symbol_id: 0x2fce8f78 symbol_id: 0xec7035fd symbol_id: 0xa9d55136 + symbol_id: 0xabc729f7 symbol_id: 0x75b174bb symbol_id: 0x506628ab symbol_id: 0x0d3c7607 + symbol_id: 0x527423dc symbol_id: 0xd3845a12 symbol_id: 0x6f146fe1 symbol_id: 0x678bb5ba @@ -390721,6 +396553,8 @@ interface { symbol_id: 0x5cc4ca5b symbol_id: 0x607a7f0a symbol_id: 0xca10f06e + symbol_id: 0x9d49459f + symbol_id: 0x759240ef symbol_id: 0x26324a1f symbol_id: 0x4ade2774 symbol_id: 0x704b9aae @@ -390744,6 +396578,7 @@ interface { symbol_id: 0x0d418d38 symbol_id: 0x2121385f symbol_id: 0x50a83025 + symbol_id: 0x901d0e89 symbol_id: 0x04a824b5 symbol_id: 0xe6918e09 symbol_id: 0x4d4fd1cc @@ -390789,6 +396624,9 @@ interface { symbol_id: 0xac62c748 symbol_id: 0xa2bd1edf symbol_id: 0xa5b4e5b2 + symbol_id: 0xce7e7dff + symbol_id: 0x1a1d0854 + symbol_id: 0xf2890610 symbol_id: 0xb6da564f symbol_id: 0x41c8d09b symbol_id: 0xe2ad11db @@ -390803,6 +396641,7 @@ interface { symbol_id: 0x76e879b6 symbol_id: 0xae5bbde9 symbol_id: 0x20d2ceb3 + symbol_id: 0x3d63616d symbol_id: 0xab37fc55 symbol_id: 0x49b95a49 symbol_id: 0xb194c4c5 @@ -390871,6 +396710,8 @@ interface { symbol_id: 0x75a2f39e symbol_id: 0x7b5c377f symbol_id: 0x6436c788 + symbol_id: 0x1f1a25bd + symbol_id: 0xf09ef4d0 symbol_id: 0x609a86da symbol_id: 0x08a49528 symbol_id: 0xa03a7d43 @@ -390884,6 +396725,8 @@ interface { symbol_id: 0xaf7a4dba symbol_id: 0x743ea36d symbol_id: 0xc09d36c9 + symbol_id: 0xe100c3ad + symbol_id: 0x55476a7c symbol_id: 0x42dbeb24 symbol_id: 0xa13f65ff symbol_id: 0xf57e8f65 @@ -390919,11 +396762,15 @@ interface { symbol_id: 0x4a43bdfe symbol_id: 0xd224caa5 symbol_id: 0xcbc5fd52 + symbol_id: 0x0ab12991 + symbol_id: 0x12df1a91 + symbol_id: 0x67e2af24 symbol_id: 0xf3cb5921 symbol_id: 0xcb194ec9 symbol_id: 0x009c40ce symbol_id: 0x02473ce7 symbol_id: 0x65f99dde + symbol_id: 0x191846a3 symbol_id: 0x2497fb4d symbol_id: 0x37548d14 symbol_id: 0x6aa1a617 @@ -390932,6 +396779,8 @@ interface { symbol_id: 0x7d5529d3 symbol_id: 0xe10cee18 symbol_id: 0x477e3555 + symbol_id: 0x2160e0b7 + symbol_id: 0xf586b3bb symbol_id: 0xa70e8cd2 symbol_id: 0x5b327cd6 symbol_id: 0xe91cdbb3 @@ -390948,6 +396797,7 @@ interface { symbol_id: 0x7c261545 symbol_id: 0xf497de36 symbol_id: 0xf44f6a18 + symbol_id: 0x4c0a941a symbol_id: 0xfc85c168 symbol_id: 0xb6af2644 symbol_id: 0x96901dfb @@ -390956,6 +396806,7 @@ interface { symbol_id: 0x3f61ffe2 symbol_id: 0xab99b62a symbol_id: 0x4648ac0b + symbol_id: 0x6b7624f1 symbol_id: 0x97d65f20 symbol_id: 0xf84b240e symbol_id: 0xb63e140d @@ -390968,9 +396819,13 @@ interface { symbol_id: 0xcf1808d5 symbol_id: 0x01b711f3 symbol_id: 0xb0e141a3 + symbol_id: 0x4b52e164 symbol_id: 0xd6e3f912 + symbol_id: 0x52069d2d symbol_id: 0x640280c1 symbol_id: 0xb3b57b4d + symbol_id: 0xda249832 + symbol_id: 0x206fe2ef symbol_id: 0x5693f2df symbol_id: 0xb029aed0 symbol_id: 0xa762593e @@ -391098,6 +396953,7 @@ interface { symbol_id: 0x82786c66 symbol_id: 0xd772fde3 symbol_id: 0x1abdc14f + symbol_id: 0x3eb51b20 symbol_id: 0xb9c34cbd symbol_id: 0x0bd7f049 symbol_id: 0xf54175ef @@ -391155,6 +397011,7 @@ interface { symbol_id: 0x226328f4 symbol_id: 0x0b5d5f1c symbol_id: 0x1516f6b7 + symbol_id: 0x650319ec symbol_id: 0x4ffac461 symbol_id: 0xad8bab96 symbol_id: 0x528ef002 @@ -391367,6 +397224,13 @@ interface { symbol_id: 0x9e7fc289 symbol_id: 0x0e419b40 symbol_id: 0x61aaf300 + symbol_id: 0x0d8df2d6 + symbol_id: 0xbe895b99 + symbol_id: 0x438a802b + symbol_id: 0xe05cfed6 + symbol_id: 0xb0d627f0 + symbol_id: 0x3b573ab8 + symbol_id: 0xb4ff03eb symbol_id: 0xb2bfcc0c symbol_id: 0x06192615 symbol_id: 0x9e3deb49 @@ -391374,6 +397238,7 @@ interface { symbol_id: 0xa84b7a9c symbol_id: 0x1c488fd9 symbol_id: 0x4a75c450 + symbol_id: 0x1ae20002 symbol_id: 0xc8e5adc6 symbol_id: 0xa0a33b62 symbol_id: 0xc80b76b2 @@ -391383,6 +397248,7 @@ interface { symbol_id: 0xfe061fe6 symbol_id: 0xcda0bdad symbol_id: 0x3c28dcec + symbol_id: 0xa383a6c1 symbol_id: 0x1ff124cb symbol_id: 0x80b6d91d symbol_id: 0x229b68f6 @@ -391429,11 +397295,13 @@ interface { symbol_id: 0xdac60909 symbol_id: 0x39dbce1e symbol_id: 0x5a11b234 + symbol_id: 0xf42e28c4 symbol_id: 0x8a96e88d symbol_id: 0xbd2ef94c symbol_id: 0x580bab0e symbol_id: 0x48318742 symbol_id: 0xa11919c2 + symbol_id: 0x04880ada symbol_id: 0x25ef9f7a symbol_id: 0xd6393164 symbol_id: 0x6c7fb432 @@ -391453,6 +397321,7 @@ interface { symbol_id: 0x76052ea8 symbol_id: 0x754e3185 symbol_id: 0x72598679 + symbol_id: 0x91507af8 symbol_id: 0xd2c17be4 symbol_id: 0xc5d5f65e symbol_id: 0x6ca4b892 @@ -391473,6 +397342,7 @@ interface { symbol_id: 0xd84adb21 symbol_id: 0xed719736 symbol_id: 0x2b1e3d59 + symbol_id: 0x98850f9d symbol_id: 0x495f0223 symbol_id: 0x7fbd0d58 symbol_id: 0x06f2ea68 @@ -391487,6 +397357,7 @@ interface { symbol_id: 0x5f9864aa symbol_id: 0x966a7c42 symbol_id: 0xab62b21c + symbol_id: 0xfb23b117 symbol_id: 0x4f627b39 symbol_id: 0xda163e44 symbol_id: 0xb375007c @@ -391494,6 +397365,7 @@ interface { symbol_id: 0x0356dc1d symbol_id: 0x53eb2602 symbol_id: 0xcce97787 + symbol_id: 0x9901e8ee symbol_id: 0x4bc5faef symbol_id: 0xa06e08e9 symbol_id: 0x98bdb018 @@ -391533,6 +397405,7 @@ interface { symbol_id: 0x9f1f7cee symbol_id: 0xd89255c2 symbol_id: 0x962b6a68 + symbol_id: 0x15e1667b symbol_id: 0x33bbeca6 symbol_id: 0x4e0ae383 symbol_id: 0x81619b01 @@ -391600,6 +397473,7 @@ interface { symbol_id: 0x9b056e94 symbol_id: 0x2061f0ca symbol_id: 0xd878ab56 + symbol_id: 0xd53a5822 symbol_id: 0xb1469ae6 symbol_id: 0x3afbe534 symbol_id: 0x2cc0b276 @@ -391618,14 +397492,18 @@ interface { symbol_id: 0x0a2b21ec symbol_id: 0xbdd0f4c6 symbol_id: 0xe5e28fcd + symbol_id: 0xf8751b15 + symbol_id: 0xdd9947d5 symbol_id: 0xff08526f symbol_id: 0xc81e9eb3 symbol_id: 0x237a3562 + symbol_id: 0x5d9de9a7 symbol_id: 0x1d1f6717 symbol_id: 0x20c19184 symbol_id: 0xef67fe16 symbol_id: 0x9eca665b symbol_id: 0x3ea8bbd7 + symbol_id: 0xa3db58f1 symbol_id: 0x1257590d symbol_id: 0x833374c8 symbol_id: 0x717034d4 @@ -391642,12 +397520,17 @@ interface { symbol_id: 0x053cd2eb symbol_id: 0xd1471c13 symbol_id: 0x3359f049 + symbol_id: 0xc60881ee + symbol_id: 0xd9005076 symbol_id: 0xcb0ffe5b symbol_id: 0xa79ba8cc symbol_id: 0x23b67585 symbol_id: 0x1e81ded9 symbol_id: 0xfca661a6 + symbol_id: 0x8e0112d7 symbol_id: 0x0e52d725 + symbol_id: 0x162a73f7 + symbol_id: 0x7dcc32e4 symbol_id: 0x91309df9 symbol_id: 0xfdca589d symbol_id: 0xb50ff8bd @@ -391659,11 +397542,14 @@ interface { symbol_id: 0xbb92068e symbol_id: 0x81600265 symbol_id: 0x57a4fa38 + symbol_id: 0xdb6ddedf + symbol_id: 0x883df740 symbol_id: 0x551c18d1 symbol_id: 0xeb9b8f1f symbol_id: 0x4d669c6d symbol_id: 0x6715c595 symbol_id: 0x9f75c77b + symbol_id: 0x801e3d5d symbol_id: 0xd36400de symbol_id: 0x2c08983d symbol_id: 0x81bdacc5 @@ -391726,6 +397612,7 @@ interface { symbol_id: 0xf666562b symbol_id: 0xa5179b7b symbol_id: 0xc1583575 + symbol_id: 0x1ef313dc symbol_id: 0x67daf3cf symbol_id: 0xe5161e20 symbol_id: 0x31d27334 @@ -391783,6 +397670,7 @@ interface { symbol_id: 0xf233a4f2 symbol_id: 0x5f8e5002 symbol_id: 0x4bb20cbc + symbol_id: 0xe1beb7e3 symbol_id: 0x0d97ed87 symbol_id: 0x0aa80467 symbol_id: 0x92dcd9e0 @@ -391830,6 +397718,11 @@ interface { symbol_id: 0x04c32c7c symbol_id: 0x15eb01e7 symbol_id: 0x647c0881 + symbol_id: 0x349b4e0a + symbol_id: 0x11f117af + symbol_id: 0x781fabb2 + symbol_id: 0xe2544e4d + symbol_id: 0xdd8da0cf symbol_id: 0x19e74e36 symbol_id: 0xdb9d4783 symbol_id: 0x4c5f0ec2 @@ -391891,6 +397784,7 @@ interface { symbol_id: 0x22e51db4 symbol_id: 0x5a62c5df symbol_id: 0x20c43211 + symbol_id: 0xa09675ab symbol_id: 0xcdcce9e8 symbol_id: 0x67a68b2f symbol_id: 0x89e08852 @@ -391934,7 +397828,9 @@ interface { symbol_id: 0xdeeb802d symbol_id: 0x78407718 symbol_id: 0x88d6fe86 + symbol_id: 0xa4692a70 symbol_id: 0x3afde7ec + symbol_id: 0x6415475c symbol_id: 0x2bf23b7c symbol_id: 0x97301de5 symbol_id: 0x8ed64fa4 @@ -391981,6 +397877,7 @@ interface { symbol_id: 0xb08551d1 symbol_id: 0x5b0ad2ac symbol_id: 0xc576d59e + symbol_id: 0x0abc683e symbol_id: 0x7c053015 symbol_id: 0xff9fcdce symbol_id: 0xa34635ab @@ -391994,6 +397891,7 @@ interface { symbol_id: 0x92b974cd symbol_id: 0x57498e16 symbol_id: 0x888f691d + symbol_id: 0x86c1623f symbol_id: 0x36e39cf6 symbol_id: 0x6e37c2ad symbol_id: 0x91f58d29 @@ -392007,6 +397905,7 @@ interface { symbol_id: 0x6e7e1dc0 symbol_id: 0x1ed62a9d symbol_id: 0x5df7b359 + symbol_id: 0x92ffc2e2 symbol_id: 0xd6e5f7c7 symbol_id: 0x7695d1dd symbol_id: 0xcf6046cf @@ -392071,10 +397970,12 @@ interface { symbol_id: 0xabe60a33 symbol_id: 0x7ae5eeb4 symbol_id: 0x317870a4 + symbol_id: 0x30dd6796 symbol_id: 0x573e2956 symbol_id: 0xe5bfa8c8 symbol_id: 0xd48a6769 symbol_id: 0xdd957eaf + symbol_id: 0x80814925 symbol_id: 0x9c5fb17e symbol_id: 0xedd83590 symbol_id: 0x840989b2 @@ -392118,6 +398019,7 @@ interface { symbol_id: 0xdcb8ed3c symbol_id: 0x4ec1de19 symbol_id: 0xe5cfd7ac + symbol_id: 0x77d18a9c symbol_id: 0xd0deb542 symbol_id: 0xe8233473 symbol_id: 0x710f1fc2 @@ -392239,6 +398141,7 @@ interface { symbol_id: 0xe5349379 symbol_id: 0xb7abbec5 symbol_id: 0x573a436c + symbol_id: 0x7e8263f6 symbol_id: 0x588ab3fd symbol_id: 0x1389094c symbol_id: 0x098d4189 @@ -392333,6 +398236,8 @@ interface { symbol_id: 0x0dfe64b8 symbol_id: 0x51b726c8 symbol_id: 0x5d9f16f7 + symbol_id: 0x3ef0db06 + symbol_id: 0xc72378aa symbol_id: 0xd82232b3 symbol_id: 0x69a31cde symbol_id: 0xfbc28ac3 @@ -392348,6 +398253,7 @@ interface { symbol_id: 0x1cc3ba5d symbol_id: 0xf01aa08a symbol_id: 0x7fe4fd87 + symbol_id: 0xf8bd92c8 symbol_id: 0x70b7d94b symbol_id: 0x3b6d3ed0 symbol_id: 0xcda9ec73 @@ -392364,6 +398270,7 @@ interface { symbol_id: 0xc8580afc symbol_id: 0xbe89afca symbol_id: 0x3b7c3802 + symbol_id: 0x08309f5e symbol_id: 0x11e9361c symbol_id: 0x98de519f symbol_id: 0x49bf35a9 @@ -392420,6 +398327,7 @@ interface { symbol_id: 0xaad93a6e symbol_id: 0x820af79e symbol_id: 0xf5a866d4 + symbol_id: 0x4b9e6227 symbol_id: 0x9c6b68f2 symbol_id: 0x8ab89d74 symbol_id: 0x717f2784 @@ -392427,20 +398335,25 @@ interface { symbol_id: 0x88d310ca symbol_id: 0x596f41bc symbol_id: 0xcf21a814 + symbol_id: 0xd4d38d4c symbol_id: 0x81bdff8a symbol_id: 0xeba98304 symbol_id: 0x48e94357 symbol_id: 0x6cbff317 + symbol_id: 0xac1aeaf0 + symbol_id: 0x622cdd92 symbol_id: 0xc7970f23 symbol_id: 0x5758ca8d symbol_id: 0x8f687080 symbol_id: 0x128b55c8 symbol_id: 0xd2191311 + symbol_id: 0x585410d0 symbol_id: 0xd4a13963 symbol_id: 0xa09bde3a symbol_id: 0xaef6523a symbol_id: 0xef97e722 symbol_id: 0x026b095a + symbol_id: 0xd32d7c35 symbol_id: 0xf76bbee4 symbol_id: 0x91de51a1 symbol_id: 0x007e9802 @@ -392511,6 +398424,7 @@ interface { symbol_id: 0x93c0dba2 symbol_id: 0xd7cfff98 symbol_id: 0xecb4d16d + symbol_id: 0xd0dd3133 symbol_id: 0x3b867568 symbol_id: 0xc5806cb6 symbol_id: 0xd48e0164 @@ -392527,6 +398441,7 @@ interface { symbol_id: 0xbe3f1757 symbol_id: 0x64649d2c symbol_id: 0x51b5201f + symbol_id: 0x0d3b6723 symbol_id: 0x58b810bd symbol_id: 0x23e302cb symbol_id: 0x9a3d3812 @@ -392534,6 +398449,7 @@ interface { symbol_id: 0xa6782aae symbol_id: 0x648de106 symbol_id: 0xe96cf682 + symbol_id: 0xc3ae75b9 symbol_id: 0xca851619 symbol_id: 0x6a50bad9 symbol_id: 0x1183a93d @@ -392545,6 +398461,9 @@ interface { symbol_id: 0x76120529 symbol_id: 0x7a8a4736 symbol_id: 0x3f8952ab + symbol_id: 0x003f0aec + symbol_id: 0x43bb72ae + symbol_id: 0x49fd657a symbol_id: 0x4e6bfabc symbol_id: 0x935fb0ee symbol_id: 0xe5fad629 @@ -392561,6 +398480,7 @@ interface { symbol_id: 0x0cf86849 symbol_id: 0x6f8184d5 symbol_id: 0x8aa099dd + symbol_id: 0xdb6eae3a symbol_id: 0x122e3e9f symbol_id: 0xc0d6517a symbol_id: 0xd479c471 @@ -392604,11 +398524,13 @@ interface { symbol_id: 0x3bb33b54 symbol_id: 0x8da7c819 symbol_id: 0x808bdf9f + symbol_id: 0x8d62d3e1 symbol_id: 0x7a4db2f9 symbol_id: 0xb96f3f15 symbol_id: 0xafb178b7 symbol_id: 0xceb76dac symbol_id: 0xb1f5cc24 + symbol_id: 0x4cf5ba17 symbol_id: 0x9718e72e symbol_id: 0x8da70bb5 symbol_id: 0xc84875f6 @@ -392664,7 +398586,9 @@ interface { symbol_id: 0x42636e32 symbol_id: 0x9bb960df symbol_id: 0xbf2af0d7 + symbol_id: 0xdc24b796 symbol_id: 0xb8395a3e + symbol_id: 0xa625950b symbol_id: 0x9d898d75 symbol_id: 0x9ec4a8cb symbol_id: 0x9b31fd86 @@ -392741,6 +398665,7 @@ interface { symbol_id: 0xb1dfbb02 symbol_id: 0xacc42253 symbol_id: 0x0a446897 + symbol_id: 0xad3eb214 symbol_id: 0xb107d2cd symbol_id: 0x8628f24d symbol_id: 0xc56006c7 @@ -392789,12 +398714,16 @@ interface { symbol_id: 0xb290a148 symbol_id: 0x09d08108 symbol_id: 0x3c7c2553 + symbol_id: 0x06c58be7 + symbol_id: 0x159a69a3 + symbol_id: 0x39840ab2 symbol_id: 0x3dca9a13 symbol_id: 0x07508208 symbol_id: 0xcb14b5cc symbol_id: 0x1721c938 symbol_id: 0x1bf542c4 symbol_id: 0x5c93a483 + symbol_id: 0x5c388f41 symbol_id: 0x93b9959a symbol_id: 0x618f059e symbol_id: 0x48641588 @@ -392831,6 +398760,7 @@ interface { symbol_id: 0xee139066 symbol_id: 0x613adcb1 symbol_id: 0x370e6f08 + symbol_id: 0xc35e482b symbol_id: 0x53816b02 symbol_id: 0xc9ddb79e symbol_id: 0x11780300 @@ -392967,6 +398897,21 @@ interface { symbol_id: 0x4ba4e06f symbol_id: 0xbac82e84 symbol_id: 0xa8319a8c + symbol_id: 0xa7339c42 + symbol_id: 0x23fbc3f8 + symbol_id: 0x46e18dbd + symbol_id: 0xf5970852 + symbol_id: 0x0a3cdb4a + symbol_id: 0xdb6a18dc + symbol_id: 0x412252a6 + symbol_id: 0x9c589482 + symbol_id: 0x0400c852 + symbol_id: 0xcdcde62d + symbol_id: 0xba5f9a53 + symbol_id: 0x8802e047 + symbol_id: 0xf7264f57 + symbol_id: 0x370e3283 + symbol_id: 0xe87161bc symbol_id: 0x112db471 symbol_id: 0xfe79963a symbol_id: 0xbc19d975 @@ -393004,7 +398949,9 @@ interface { symbol_id: 0x65492c23 symbol_id: 0xa106a350 symbol_id: 0x59b3b64e + symbol_id: 0x14b7a009 symbol_id: 0x7dd9e61e + symbol_id: 0x30903940 symbol_id: 0x77a0ab63 symbol_id: 0x4825b485 symbol_id: 0xa448ac51 @@ -393087,6 +399034,7 @@ interface { symbol_id: 0x0e1d2fa4 symbol_id: 0x306e3b3d symbol_id: 0x684435da + symbol_id: 0x4e8277c6 symbol_id: 0x7ec10e18 symbol_id: 0xe197ec6f symbol_id: 0x58069299 @@ -393099,10 +399047,24 @@ interface { symbol_id: 0x88f82161 symbol_id: 0xccc593d6 symbol_id: 0x97a02af0 + symbol_id: 0xa832c6f3 symbol_id: 0x2ffc7c7e + symbol_id: 0x1706be22 + symbol_id: 0x4c3911f0 + symbol_id: 0x8717f26f + symbol_id: 0x361004c8 + symbol_id: 0xcf5ea9a2 + symbol_id: 0x6c303862 + symbol_id: 0x553bc5f3 + symbol_id: 0xfba34655 + symbol_id: 0x52d444b1 symbol_id: 0x7d0e44ca symbol_id: 0x10de460f + symbol_id: 0x0eb11e95 symbol_id: 0x6ca4d0ed + symbol_id: 0x741d5af7 + symbol_id: 0x6e37f09d + symbol_id: 0x29d6d842 symbol_id: 0x21d35235 symbol_id: 0x334ff68f symbol_id: 0xd7ecf501 @@ -393244,7 +399206,9 @@ interface { symbol_id: 0x76041d7e symbol_id: 0xd941beb8 symbol_id: 0xe4653a75 + symbol_id: 0x0b446726 symbol_id: 0x8aa99af0 + symbol_id: 0x5ecdc560 symbol_id: 0x7ee06725 symbol_id: 0xea065265 symbol_id: 0xd50bc6e1 @@ -393272,10 +399236,12 @@ interface { symbol_id: 0x7551a60b symbol_id: 0x08fd4b84 symbol_id: 0xc6d8f246 + symbol_id: 0xdf3e8655 symbol_id: 0x6f2f4bd1 symbol_id: 0xf87ecda4 symbol_id: 0x00b4d2da symbol_id: 0xdf968210 + symbol_id: 0xcc6510bd symbol_id: 0xc93c3b7d symbol_id: 0xcae49fd9 symbol_id: 0x83940072 @@ -393342,7 +399308,9 @@ interface { symbol_id: 0xdd50f291 symbol_id: 0xd2b5c87d symbol_id: 0xf58961c1 + symbol_id: 0x31a5a9d7 symbol_id: 0xfa66175a + symbol_id: 0x3975a1c8 symbol_id: 0x6a48a444 symbol_id: 0xc73383c1 symbol_id: 0x0ee6aecf @@ -393370,6 +399338,7 @@ interface { symbol_id: 0xe80863b1 symbol_id: 0xd81a7d03 symbol_id: 0x0566bca1 + symbol_id: 0xc578c7af symbol_id: 0x4c05b91e symbol_id: 0xa5459730 symbol_id: 0xe77a1ae2 @@ -393479,6 +399448,7 @@ interface { symbol_id: 0x9ed1af8c symbol_id: 0xf030b866 symbol_id: 0x01f6343f + symbol_id: 0x508904bc symbol_id: 0xe8b2d7a6 symbol_id: 0x2ed6bfeb symbol_id: 0xa9c80d6c @@ -393496,6 +399466,7 @@ interface { symbol_id: 0x5904d735 symbol_id: 0xcb7dc482 symbol_id: 0xaed00f8c + symbol_id: 0x3b8e2bac symbol_id: 0xc89a8e29 symbol_id: 0x92dfef70 symbol_id: 0xd1f69ecb @@ -393722,6 +399693,7 @@ interface { symbol_id: 0x62cd5012 symbol_id: 0xda95494e symbol_id: 0x76f00da5 + symbol_id: 0xbea2c272 symbol_id: 0x2e74d698 symbol_id: 0x7bbb8d5f symbol_id: 0xa18d331b @@ -393810,6 +399782,7 @@ interface { symbol_id: 0xd0b869bf symbol_id: 0x3e285e2f symbol_id: 0xf5924d9f + symbol_id: 0xda5dc517 symbol_id: 0x84278a73 symbol_id: 0xf5327fe3 symbol_id: 0x92649662 @@ -393822,6 +399795,7 @@ interface { symbol_id: 0xa848deda symbol_id: 0x8eadb5fd symbol_id: 0x140f40dd + symbol_id: 0x6da682ae symbol_id: 0x7f797603 symbol_id: 0x01e78001 symbol_id: 0x746374fa @@ -393863,6 +399837,7 @@ interface { symbol_id: 0xbad16ab3 symbol_id: 0x68c3a63b symbol_id: 0xbc90165b + symbol_id: 0x863e9436 symbol_id: 0x1579ecd2 symbol_id: 0xe4572a81 symbol_id: 0x07b15271 @@ -393893,6 +399868,7 @@ interface { symbol_id: 0xd08cb4e7 symbol_id: 0x596b8466 symbol_id: 0xd9f124cf + symbol_id: 0xb6dbcbcc symbol_id: 0xdca2a3c4 symbol_id: 0x6d579aaf symbol_id: 0xe4059d72 @@ -393946,6 +399922,7 @@ interface { symbol_id: 0x2f332836 symbol_id: 0x165e673e symbol_id: 0xe8a26880 + symbol_id: 0xa6d8e105 symbol_id: 0x44bb49dc symbol_id: 0x6e71b72c symbol_id: 0x381bc1b0 @@ -394185,6 +400162,7 @@ interface { symbol_id: 0xe2b0e5a5 symbol_id: 0xb8036e9c symbol_id: 0xe36e392a + symbol_id: 0x824695bc symbol_id: 0x05a46d27 symbol_id: 0xe3de7018 symbol_id: 0x26fb2401 @@ -394205,6 +400183,7 @@ interface { symbol_id: 0xd3bfa538 symbol_id: 0x1544acf1 symbol_id: 0xacdbe7cb + symbol_id: 0x9539ac95 symbol_id: 0xc699a239 symbol_id: 0xe63f0c53 symbol_id: 0x8be0e5f9 @@ -394239,6 +400218,7 @@ interface { symbol_id: 0x783e3f26 symbol_id: 0xeb2dab5b symbol_id: 0x5516ad40 + symbol_id: 0xb27a823c symbol_id: 0x840bde05 symbol_id: 0x923f5818 symbol_id: 0x41ba71c8 @@ -394269,6 +400249,7 @@ interface { symbol_id: 0x28517749 symbol_id: 0xdfe02c28 symbol_id: 0xdcce2e99 + symbol_id: 0xee187039 symbol_id: 0x7d8fe18b symbol_id: 0x02252ed7 symbol_id: 0xbfb07eec @@ -394486,6 +400467,7 @@ interface { symbol_id: 0x0e1df21c symbol_id: 0xac520589 symbol_id: 0x2eeef935 + symbol_id: 0xce039362 symbol_id: 0x890d0269 symbol_id: 0xa22df476 symbol_id: 0x3b5dbc43 @@ -394566,6 +400548,7 @@ interface { symbol_id: 0x9df74c73 symbol_id: 0x740c134e symbol_id: 0xacd66e9e + symbol_id: 0x35b1ed7b symbol_id: 0xf8bcc2db symbol_id: 0x3f5b9269 symbol_id: 0xdfa2e68a @@ -394591,6 +400574,7 @@ interface { symbol_id: 0xe59b51ac symbol_id: 0x82feb89e symbol_id: 0x417866a8 + symbol_id: 0x62c010b9 symbol_id: 0x013abbf5 symbol_id: 0x9542ffda symbol_id: 0xb1ded749 @@ -394630,6 +400614,7 @@ interface { symbol_id: 0x55fd0d76 symbol_id: 0x25e7db1a symbol_id: 0xb634bd54 + symbol_id: 0x5b13a53d symbol_id: 0xaba73bf2 symbol_id: 0xa2a45fe2 symbol_id: 0xe8ce7aa9 @@ -394671,6 +400656,7 @@ interface { symbol_id: 0x324d8228 symbol_id: 0xd612789c symbol_id: 0x561323f1 + symbol_id: 0x50bfe1d8 symbol_id: 0xa9ebbb66 symbol_id: 0x2f21ba25 symbol_id: 0x81c5befa @@ -394678,6 +400664,7 @@ interface { symbol_id: 0xd1691fe4 symbol_id: 0x4804f611 symbol_id: 0x842fc505 + symbol_id: 0xf20efe74 symbol_id: 0xd28bb85a symbol_id: 0x9e62b4cc symbol_id: 0x26c5a1b9 @@ -394755,11 +400742,13 @@ interface { symbol_id: 0xb36e22d3 symbol_id: 0x683db5bf symbol_id: 0x177fa0e0 + symbol_id: 0xd38a2f2a symbol_id: 0x11d4227b symbol_id: 0x71551ba9 symbol_id: 0x435b99c6 symbol_id: 0x5db8ecdc symbol_id: 0x01768311 + symbol_id: 0xb9bfc7b9 symbol_id: 0x1744651d symbol_id: 0x9103dd70 symbol_id: 0xffdd03be @@ -394767,6 +400756,7 @@ interface { symbol_id: 0xde695e5a symbol_id: 0x4e730977 symbol_id: 0x8dafa617 + symbol_id: 0x5ae13553 symbol_id: 0x53ee2234 symbol_id: 0x227e051f symbol_id: 0x9a5fd229 @@ -394975,6 +400965,7 @@ interface { symbol_id: 0x0b03a904 symbol_id: 0x2bce772d symbol_id: 0x705777ef + symbol_id: 0x12ab7c99 symbol_id: 0x21b06e02 symbol_id: 0x70f8b485 symbol_id: 0x3a44a497 @@ -394998,6 +400989,7 @@ interface { symbol_id: 0x0d3c3e14 symbol_id: 0xe5340075 symbol_id: 0x6aab6dda + symbol_id: 0xb15014ad symbol_id: 0x089f5fe6 symbol_id: 0x0c73acc8 symbol_id: 0xace4bcdf @@ -395009,6 +401001,7 @@ interface { symbol_id: 0xd41c441b symbol_id: 0x8607d899 symbol_id: 0x1d945826 + symbol_id: 0xd8c7c137 symbol_id: 0xa3f52060 symbol_id: 0x001f1a24 symbol_id: 0x46d54e34 @@ -395037,6 +401030,7 @@ interface { symbol_id: 0x6af2dc93 symbol_id: 0x56f4af9c symbol_id: 0x93ee7a0f + symbol_id: 0xbd83c333 symbol_id: 0x7d858174 symbol_id: 0x0e66eaf7 symbol_id: 0x81bce56b @@ -395083,6 +401077,8 @@ interface { symbol_id: 0x74c27ecd symbol_id: 0x80913de9 symbol_id: 0xbffd1c46 + symbol_id: 0xde4d20e6 + symbol_id: 0x6a82e2a4 symbol_id: 0xec5e9065 symbol_id: 0x264c5308 symbol_id: 0x205145e9 @@ -395145,6 +401141,7 @@ interface { symbol_id: 0x11ca9115 symbol_id: 0xf4841d33 symbol_id: 0x34a94ed3 + symbol_id: 0x3bc1cc84 symbol_id: 0xb05cd7bd symbol_id: 0xf41c5e13 symbol_id: 0xafbfe5ff @@ -395187,6 +401184,7 @@ interface { symbol_id: 0x9c54c873 symbol_id: 0x771aea1d symbol_id: 0x8d3c4841 + symbol_id: 0xf399cd48 symbol_id: 0x05840f35 symbol_id: 0xa6141872 symbol_id: 0x56b779c5 @@ -395196,8 +401194,10 @@ interface { symbol_id: 0x5ab300fb symbol_id: 0x33d40ef0 symbol_id: 0xeb6692c0 + symbol_id: 0x15f1b772 symbol_id: 0x38940a34 symbol_id: 0x322ca1cc + symbol_id: 0x9f8a16f0 symbol_id: 0xad3b5931 symbol_id: 0xdc85b8be symbol_id: 0xd1dc3f24 @@ -395206,7 +401206,10 @@ interface { symbol_id: 0x4e595f64 symbol_id: 0xd94e8fae symbol_id: 0xd2399e18 + symbol_id: 0x92732196 + symbol_id: 0xd29660d9 symbol_id: 0xa6c906b5 + symbol_id: 0x77dba918 symbol_id: 0x5cc4535c symbol_id: 0x7d2c4acc symbol_id: 0x1f593233 @@ -395221,6 +401224,7 @@ interface { symbol_id: 0xbd7218cd symbol_id: 0x8ef4fedc symbol_id: 0x4f956c89 + symbol_id: 0xe1092bbd symbol_id: 0x3003f174 symbol_id: 0xf85ae22f symbol_id: 0xcca4d1a0 @@ -395232,6 +401236,7 @@ interface { symbol_id: 0xbf0b0a4c symbol_id: 0x4a4e8bee symbol_id: 0x5b060b7d + symbol_id: 0xb3b8cbe2 symbol_id: 0xec171799 symbol_id: 0xb7265b03 symbol_id: 0x24b9d7ed @@ -395322,6 +401327,8 @@ interface { symbol_id: 0x7c74f0ec symbol_id: 0x8525915d symbol_id: 0x12402fa7 + symbol_id: 0x0b4df89e + symbol_id: 0x7996527c symbol_id: 0x7f3b48aa symbol_id: 0xf47010e0 symbol_id: 0x436ee92c @@ -395399,6 +401406,12 @@ interface { symbol_id: 0x745d77d7 symbol_id: 0xee44d535 symbol_id: 0xeedc57e1 + symbol_id: 0x706a5214 + symbol_id: 0x56fe28ac + symbol_id: 0xfb0d7eaf + symbol_id: 0x910f3594 + symbol_id: 0x6a015d4f + symbol_id: 0xcb37c2fd symbol_id: 0x57adf54a symbol_id: 0xcfc71fe1 symbol_id: 0xadfa8107 @@ -395451,6 +401464,7 @@ interface { symbol_id: 0x5f29be60 symbol_id: 0xfd1fa5d2 symbol_id: 0x964dcd4d + symbol_id: 0xa4da49fe symbol_id: 0xb9a87429 symbol_id: 0xbfd5ebac symbol_id: 0x68c67cd0 @@ -395481,6 +401495,7 @@ interface { symbol_id: 0x92edca7e symbol_id: 0xb2f7eb17 symbol_id: 0x8eb5b50d + symbol_id: 0xc26d0753 symbol_id: 0x1f5649eb symbol_id: 0x31ef5894 symbol_id: 0x0af8ff72 @@ -395570,6 +401585,8 @@ interface { symbol_id: 0xcd537f33 symbol_id: 0xef58928a symbol_id: 0x48726233 + symbol_id: 0xc92a02ef + symbol_id: 0x804bafc3 symbol_id: 0xabad0839 symbol_id: 0x6d4398fa symbol_id: 0xce618820 @@ -395724,6 +401741,7 @@ interface { symbol_id: 0xf304733e symbol_id: 0x153d2098 symbol_id: 0xc24d49e4 + symbol_id: 0x8ac195eb symbol_id: 0xd09568e0 symbol_id: 0xe4a0e986 symbol_id: 0x6dc2f0b4 @@ -395765,6 +401783,7 @@ interface { symbol_id: 0x0e1b0b82 symbol_id: 0xfb52ace2 symbol_id: 0x44e002a2 + symbol_id: 0xd5e0987f symbol_id: 0x1fe11014 symbol_id: 0x75fe69c4 symbol_id: 0x2a267913 @@ -395788,6 +401807,7 @@ interface { symbol_id: 0x2f857527 symbol_id: 0x3e5f4f82 symbol_id: 0xbf1515af + symbol_id: 0x87812861 symbol_id: 0x18d0dd21 symbol_id: 0x92705587 symbol_id: 0xdbe66171 @@ -395856,9 +401876,14 @@ interface { symbol_id: 0xbabc4102 symbol_id: 0x4c16a6b4 symbol_id: 0xc8ad19b6 + symbol_id: 0xd2070626 symbol_id: 0xdebe76ba symbol_id: 0xae3ea97c + symbol_id: 0xfccd15d1 + symbol_id: 0x591431f1 symbol_id: 0x6869c83d + symbol_id: 0x7cfd9233 + symbol_id: 0xbd25c7d0 symbol_id: 0x5bbd3545 symbol_id: 0xf4017fdd symbol_id: 0x2d1f2cdd @@ -396213,6 +402238,7 @@ interface { symbol_id: 0x8f72141f symbol_id: 0x8dc26f05 symbol_id: 0xcb2698e3 + symbol_id: 0xea314c1f symbol_id: 0xdc59a2d7 symbol_id: 0xc8d57f30 symbol_id: 0xa1439ad9 @@ -396250,6 +402276,7 @@ interface { symbol_id: 0x27e59f46 symbol_id: 0x109adee2 symbol_id: 0x784d1cb4 + symbol_id: 0x201afca9 symbol_id: 0xd75ad246 symbol_id: 0xdefa9d60 symbol_id: 0x905187d4 @@ -396270,6 +402297,7 @@ interface { symbol_id: 0x792a6c04 symbol_id: 0xdc1a1266 symbol_id: 0x4a8ce807 + symbol_id: 0x899ff164 symbol_id: 0x4ec99a42 symbol_id: 0xf83f300d symbol_id: 0x57c3f1e7 @@ -396320,12 +402348,14 @@ interface { symbol_id: 0x700d3d6b symbol_id: 0xbdfbbc33 symbol_id: 0x1b3f668e + symbol_id: 0x00a14c5c symbol_id: 0x868c5f6e symbol_id: 0xb89dad0b symbol_id: 0x110008ad symbol_id: 0x5df193f7 symbol_id: 0x9b635032 symbol_id: 0x4048e514 + symbol_id: 0x83676405 symbol_id: 0x89c78ea4 symbol_id: 0x37cf2035 symbol_id: 0x2db08c33 @@ -396336,6 +402366,7 @@ interface { symbol_id: 0xe9d87e68 symbol_id: 0xf55bd7e0 symbol_id: 0xf3c1fd90 + symbol_id: 0xbf06fcb7 symbol_id: 0xcaff4b1e symbol_id: 0x92510f88 symbol_id: 0x1294ca70 @@ -396343,6 +402374,7 @@ interface { symbol_id: 0x214d76fa symbol_id: 0xa834737e symbol_id: 0x869e15d7 + symbol_id: 0xa60cf3b7 symbol_id: 0x944deaea symbol_id: 0x413dc89c symbol_id: 0xbc035d91 @@ -396354,6 +402386,7 @@ interface { symbol_id: 0xd5bd73b9 symbol_id: 0x951bfee9 symbol_id: 0x55fbd705 + symbol_id: 0x9de82d32 symbol_id: 0x09c05733 symbol_id: 0xf104e451 symbol_id: 0x282288bb @@ -396396,9 +402429,33 @@ interface { symbol_id: 0x0741c87d symbol_id: 0x3bf4fac5 symbol_id: 0xcac8f190 + symbol_id: 0x9ea1c58f symbol_id: 0x140d9164 + symbol_id: 0xbbf007f4 + symbol_id: 0xd28057f3 + symbol_id: 0x580c56b8 + symbol_id: 0x8f0c866d symbol_id: 0x52816b1c + symbol_id: 0x4f4e9353 + symbol_id: 0x3f51a906 + symbol_id: 0x6515c416 symbol_id: 0x19d80976 + symbol_id: 0x6c854cb3 + symbol_id: 0xcd021e80 + symbol_id: 0x147e4ad2 + symbol_id: 0x167360fc + symbol_id: 0x69b1070f + symbol_id: 0x3be16591 + symbol_id: 0x6e3c0f91 + symbol_id: 0x99cb2edf + symbol_id: 0x2325cd65 + symbol_id: 0x9cf79f8d + symbol_id: 0x2f365f93 + symbol_id: 0x6229bd38 + symbol_id: 0x90b81315 + symbol_id: 0xb011e423 + symbol_id: 0x27363bb6 + symbol_id: 0x10932377 symbol_id: 0xb5437ef4 symbol_id: 0x1473720a symbol_id: 0xa459c02b @@ -396448,6 +402505,7 @@ interface { symbol_id: 0x592a4678 symbol_id: 0xff77e1ca symbol_id: 0xe66642fe + symbol_id: 0x538ad5cc symbol_id: 0x2244c8f0 symbol_id: 0x58330374 symbol_id: 0xdb18c924 @@ -396499,13 +402557,21 @@ interface { symbol_id: 0x906c5f61 symbol_id: 0xf40e82dd symbol_id: 0x9b29f9ed + symbol_id: 0xb2eba8d7 + symbol_id: 0xa84f74e5 + symbol_id: 0x64b2fdfd + symbol_id: 0x34ad1913 symbol_id: 0x5f3882d0 symbol_id: 0xe203e72f + symbol_id: 0x90eb49a1 symbol_id: 0xac8d7ab3 symbol_id: 0x2f159216 symbol_id: 0xb1da32d2 symbol_id: 0x354ec447 symbol_id: 0x28f5deaf + symbol_id: 0x5da8252d + symbol_id: 0x1e8152b6 + symbol_id: 0xd07f1826 symbol_id: 0x7733b651 symbol_id: 0x8e6a3c4a symbol_id: 0x3635e264 @@ -396575,11 +402641,14 @@ interface { symbol_id: 0x2f1da35c symbol_id: 0x47f90fd0 symbol_id: 0x969a2ec0 + symbol_id: 0x2e0c3fe5 + symbol_id: 0xae3c44c1 symbol_id: 0xb1b42a22 symbol_id: 0x689b6a95 symbol_id: 0xbd9fe5b6 symbol_id: 0x76ec943c symbol_id: 0x1a4e4142 + symbol_id: 0x6d215713 symbol_id: 0x1bf9e9e5 symbol_id: 0xec6b2b3d symbol_id: 0x4b519cf9 @@ -396746,6 +402815,8 @@ interface { symbol_id: 0xb91fc02e symbol_id: 0xaa425530 symbol_id: 0x9b05d33a + symbol_id: 0xb5ba02d4 + symbol_id: 0x0fe35b07 symbol_id: 0xebb799b4 symbol_id: 0xcaf4c4fe symbol_id: 0x11080b78 diff --git a/android/abi_gki_aarch64_asus b/android/abi_gki_aarch64_asus new file mode 100644 index 000000000000..98ab875a5b2a --- /dev/null +++ b/android/abi_gki_aarch64_asus @@ -0,0 +1,11 @@ +[abi_symbol_list] +# aura sync + hid_unregister_driver + hid_hw_raw_request + hid_open_report + hid_hw_start + hid_hw_stop + __hid_register_driver + hid_hw_output_report + hid_hw_open + hid_hw_close diff --git a/android/abi_gki_aarch64_exynosauto b/android/abi_gki_aarch64_exynosauto index a26228697242..8cf069ca2e0e 100644 --- a/android/abi_gki_aarch64_exynosauto +++ b/android/abi_gki_aarch64_exynosauto @@ -1,13 +1,33 @@ [abi_symbol_list] # commonly used symbols + __alloc_pages + __alloc_percpu alloc_workqueue alt_cb_patch_nops __arch_copy_from_user __arch_copy_to_user arm64_use_ng_mappings + __arm_smccc_smc + atomic_notifier_call_chain + atomic_notifier_chain_register + atomic_notifier_chain_unregister + __bitmap_and + bitmap_find_free_region + bitmap_release_region + __bitmap_weight blocking_notifier_call_chain blocking_notifier_chain_register + blocking_notifier_chain_unregister + bpf_trace_run1 + bpf_trace_run2 + bpf_trace_run3 + bpf_trace_run4 + bpf_trace_run6 + call_rcu + cancel_delayed_work cancel_delayed_work_sync + cancel_work_sync + cdev_init __check_object_size __class_create class_destroy @@ -23,84 +43,323 @@ clk_register_fixed_rate clk_set_rate clk_unprepare + cma_alloc + cma_release complete + complete_all __const_udelay + __copy_overflow + __cpuhp_setup_state cpu_hwcaps cpu_number + __cpu_online_mask + cpu_pm_register_notifier + __cpu_possible_mask + crc32_le debugfs_create_dir debugfs_create_file debugfs_create_u32 debugfs_remove default_llseek delayed_work_timer_fn + del_timer + del_timer_sync + destroy_workqueue + _dev_crit dev_driver_string + _dev_emerg _dev_err + dev_err_probe + dev_fwnode device_create device_create_file device_destroy device_for_each_child device_get_match_data + device_get_phy_mode + device_initialize + device_property_present + device_register device_remove_file device_set_wakeup_capable + device_unregister device_wakeup_disable device_wakeup_enable _dev_info + devm_add_action 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 devm_ioremap_resource + devm_kasprintf devm_kfree devm_kmalloc + 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_snd_soc_register_card + devm_snd_soc_register_component + devm_thermal_of_zone_register + _dev_notice + devres_add + __devres_alloc_node + dev_set_name _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 + dma_fence_release + dma_fence_remove_callback + dma_fence_signal + dma_fence_wait_timeout dma_free_attrs + dma_heap_buffer_alloc + dma_heap_find + dma_heap_put + dmam_alloc_attrs dma_map_page_attrs + dma_map_resource + dma_map_sgtable dma_release_channel dma_request_chan + dma_resv_iter_first + dma_resv_iter_next dma_set_coherent_mask dma_set_mask + dma_sync_sg_for_device + dma_sync_single_for_cpu + dma_sync_single_for_device dma_unmap_page_attrs + dma_unmap_resource + dma_unmap_sg_attrs + 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_host_init + dw_pcie_own_conf_map_bus + dw_pcie_read + dw_pcie_setup_rc + dw_pcie_write enable_irq + fd_install + _find_first_bit + _find_next_bit + finish_wait + flush_delayed_work + flush_work + __flush_workqueue fortify_panic + fput free_irq + __free_pages + fwnode_handle_put + gcd + generic_file_llseek + generic_handle_irq + gen_pool_add_owner + gen_pool_alloc_algo_owner + gen_pool_avail + gen_pool_free_owner + gen_pool_size get_device + get_random_bytes + get_unused_fd_flags gic_nonsecure_priorities gpiod_direction_input 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 handle_level_irq + hrtimer_cancel + hrtimer_init + hrtimer_start_range_ns + i2c_add_adapter i2c_add_numbered_adapter + i2c_del_adapter i2c_del_driver i2c_register_driver + i2c_transfer 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_register_device_fault_handler + iommu_unregister_device_fault_handler ioremap_prot iounmap + __irq_apply_affinity_hint + irq_chip_ack_parent + irq_chip_mask_parent + irq_chip_unmask_parent + irq_create_mapping_affinity + __irq_domain_add + irq_domain_get_irq_data + irq_domain_remove + irq_domain_set_info + irq_domain_update_bus_token irq_get_irq_data irq_modify_status irq_of_parse_and_map + __irq_resolve_mapping + irq_set_chained_handler_and_data irq_set_chip_and_handler_name irq_set_chip_data irq_set_irq_wake + irq_to_desc is_vmalloc_addr jiffies + jiffies_to_msecs + kasan_flag_enabled + kasprintf kfree + kimage_voffset __kmalloc kmalloc_caches + kmalloc_large kmalloc_trace + kmem_cache_alloc + kmem_cache_create + kmem_cache_destroy + kmem_cache_free + kmemdup + krealloc + kstrdup kstrtoint + kstrtoll + kstrtouint + kstrtoull + kthread_create_on_node + kthread_park + kthread_parkme + kthread_should_park + kthread_should_stop + kthread_stop + kthread_unpark ktime_get ktime_get_mono_fast_ns + ktime_get_real_ts64 + kvfree + kvmalloc_node __list_add_valid __list_del_entry_valid log_post_read_mmio @@ -108,125 +367,317 @@ log_read_mmio log_write_mmio loops_per_jiffy + mdiobus_read + 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_register + mod_timer module_layout __msecs_to_jiffies msleep __mutex_init + mutex_is_locked mutex_lock + mutex_lock_interruptible + mutex_trylock mutex_unlock + netdev_err + netdev_info + netdev_warn + noop_llseek + nr_cpu_ids + ns_to_timespec64 + __num_online_cpus of_address_to_resource of_alias_get_id of_clk_add_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_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_n_addr_cells + of_n_size_cells __of_parse_phandle_with_args + of_platform_populate + of_property_count_elems_of_size of_property_read_string of_property_read_string_helper + of_property_read_u32_index + of_property_read_variable_u16_array of_property_read_variable_u32_array + of_property_read_variable_u8_array + of_prop_next_string + of_prop_next_u32 + of_reserved_mem_device_init_by_idx + of_reserved_mem_device_release + of_reserved_mem_lookup of_root + oops_in_progress panic + panic_notifier_list param_ops_int + param_ops_string param_ops_uint + pcie_get_mps + pcie_set_mps + pci_find_bus + pci_generic_config_read + pci_generic_config_write + pci_get_device + pci_load_saved_state + pci_msi_create_irq_domain + pci_msi_mask_irq + pci_msi_unmask_irq + pci_rescan_bus + pci_restore_state + pci_save_state + pci_store_saved_state + __per_cpu_offset + perf_trace_buf_alloc + perf_trace_run_bpf_submit + phy_init_eee + phylink_create + phylink_generic_validate + phy_power_off + phy_power_on pinctrl_lookup_state pinctrl_select_state + platform_device_unregister __platform_driver_register platform_driver_unregister platform_get_irq + platform_get_irq_byname + platform_get_irq_byname_optional platform_get_irq_optional platform_get_resource platform_get_resource_byname __pm_runtime_disable pm_runtime_enable + pm_runtime_forbid + pm_runtime_force_resume + pm_runtime_force_suspend __pm_runtime_idle __pm_runtime_resume pm_runtime_set_autosuspend_delay + __pm_runtime_set_status __pm_runtime_suspend __pm_runtime_use_autosuspend + pm_wakeup_dev_event + preempt_schedule + preempt_schedule_notrace + prepare_to_wait_event + print_hex_dump _printk put_device __put_task_struct + put_unused_fd queue_delayed_work_on queue_work_on + ___ratelimit + _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 + rcu_barrier rdev_get_drvdata rdev_get_id + refcount_warn_saturate + regcache_mark_dirty + regcache_sync + __register_chrdev + register_console register_pm_notifier 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 + request_firmware + __request_region + request_threaded_irq + reset_control_assert + reset_control_deassert sched_clock + schedule + schedule_timeout + scnprintf seq_lseek seq_printf + seq_putc seq_puts seq_read + sg_alloc_table + sg_free_table sg_init_table + sg_next + simple_attr_open + simple_attr_read + simple_attr_release + simple_attr_write simple_open simple_read_from_buffer simple_write_to_buffer single_open single_release + smp_call_on_cpu + snd_pcm_format_width + snd_soc_component_read + snd_soc_component_update_bits + snd_soc_component_write + 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 + snd_soc_info_enum_double + snd_soc_info_volsw + snd_soc_of_get_dai_link_codecs + snd_soc_of_get_dai_name + snd_soc_of_parse_audio_routing + snd_soc_of_put_dai_link_codecs + snd_soc_put_volsw snprintf + sort + split_page sprintf sscanf __stack_chk_fail strcasecmp + strchr strcmp + strcpy strlcat strlen strncmp + strncpy strnlen strscpy + strsep strstr + __sw_hweight32 + sync_file_create syscon_regmap_lookup_by_phandle sysfs_create_group + sysfs_create_groups sysfs_emit + sysfs_remove_group system_wq + thermal_zone_device_update + trace_event_buffer_commit + trace_event_buffer_reserve + trace_event_printf + trace_event_raw_init + trace_event_reg + trace_handle_return + tracepoint_probe_register + trace_raw_output_prep + __trace_trigger_soft_disabled + ttm_bo_mmap_obj __udelay + __unregister_chrdev + up_write + __usecs_to_jiffies usleep_range_state + v4l2_device_register + v4l2_device_unregister + v4l2_fh_add + v4l2_fh_del + v4l2_fh_exit + v4l2_fh_init + vb2_buffer_done + vb2_dma_sg_memops + vb2_plane_cookie + vb2_queue_init + vfree + video_devdata + video_device_alloc + video_device_release + video_ioctl2 + videomode_from_timings + __video_register_device + video_unregister_device + vmalloc + vmap + vsnprintf + vunmap + wait_for_completion_interruptible_timeout wait_for_completion_timeout + __wake_up + wake_up_process __warn_printk + 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 - kstrtouint of_find_node_by_type # required by dmatest.ko __dma_request_channel - finish_wait - get_random_bytes - init_wait_entry - __init_waitqueue_head - kmem_cache_create - kmem_cache_destroy - kthread_create_on_node - kthread_should_stop - kthread_stop mempool_alloc mempool_alloc_slab mempool_create @@ -236,44 +687,123 @@ param_get_bool param_get_string param_ops_bool - param_ops_string param_set_bool param_set_copystring - prepare_to_wait_event - refcount_warn_saturate - schedule - schedule_timeout set_freezable set_user_nice strim - __wake_up - wake_up_process + +# required by drm_display_helper.ko + devm_backlight_device_register + _dev_printk + drm_atomic_get_connector_state + drm_atomic_get_crtc_state + drm_atomic_get_new_private_obj_state + drm_atomic_get_old_private_obj_state + drm_atomic_get_private_obj_state + __drm_atomic_helper_private_obj_duplicate_state + drm_atomic_private_obj_fini + drm_atomic_private_obj_init + drm_crtc_commit_wait + drm_crtc_wait_one_vblank + __drm_debug + drm_detect_monitor_audio + drm_display_mode_from_cea_vic + drm_edid_duplicate + drm_edid_get_monitor_name + drm_modeset_lock_single_interruptible + drm_object_property_set_value + __drm_printfn_debug + memchr_inv + __sw_hweight8 + system_long_wq + +# required by drm_ttm_helper.ko + drm_print_bits + ttm_bo_vmap + ttm_bo_vunmap + +# required by dss.ko + android_debug_symbol + arch_timer_read_counter + console_suspend_enabled + copy_from_kernel_nofault + dump_backtrace + init_task + input_close_device + input_open_device + input_register_handle + input_register_handler + input_unregister_handle + kmsg_dump_get_line + kmsg_dump_rewind + kstat + nr_irqs + proc_create + register_die_notifier + register_restart_handler + return_address + rtc_time64_to_tm + sys_tz + time64_to_tm + touch_softlockup_watchdog + __traceiter_android_vh_ipi_stop + __traceiter_cpu_idle + __traceiter_device_pm_callback_end + __traceiter_device_pm_callback_start + __traceiter_hrtimer_expire_entry + __traceiter_hrtimer_expire_exit + __traceiter_irq_handler_entry + __traceiter_irq_handler_exit + __traceiter_rwmmio_post_read + __traceiter_rwmmio_read + __traceiter_rwmmio_write + __traceiter_sched_switch + __traceiter_suspend_resume + __traceiter_workqueue_execute_end + __traceiter_workqueue_execute_start + __tracepoint_android_vh_ipi_stop + __tracepoint_cpu_idle + __tracepoint_device_pm_callback_end + __tracepoint_device_pm_callback_start + __tracepoint_hrtimer_expire_entry + __tracepoint_hrtimer_expire_exit + __tracepoint_irq_handler_entry + __tracepoint_irq_handler_exit + __tracepoint_rwmmio_post_read + __tracepoint_rwmmio_read + __tracepoint_rwmmio_write + __tracepoint_sched_switch + __tracepoint_suspend_resume + __tracepoint_workqueue_execute_end + __tracepoint_workqueue_execute_start + __tty_alloc_driver + tty_driver_kref_put + tty_port_close + tty_port_destroy + tty_port_hangup + tty_port_init + tty_port_link_device + tty_port_open + tty_register_driver + tty_std_termios + tty_unregister_driver + unregister_console + vzalloc # required by dwc3-exynosauto-usb.ko - cancel_work_sync device_create_managed_software_node - device_property_present - devm_phy_get devm_regulator_get - of_match_device - of_platform_populate 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 - platform_get_irq_byname_optional __pm_relax pm_runtime_allow - pm_runtime_forbid - __pm_runtime_set_status __pm_stay_awake - sysfs_remove_group typec_register_partner typec_register_port typec_set_data_role @@ -287,16 +817,8 @@ wakeup_source_register wakeup_source_unregister -# required by ect_parser.ko - memstart_addr - of_reserved_mem_lookup - strcpy - vmap - # required by exynos-acme.ko - __bitmap_and bitmap_parselist - __bitmap_weight __cpu_active_mask cpufreq_cpu_get cpufreq_cpu_get_raw @@ -309,78 +831,177 @@ cpufreq_register_driver cpufreq_table_index_unsorted cpuhp_tasks_frozen - __cpu_online_mask dev_pm_opp_add - _find_first_bit freq_qos_add_request freq_qos_update_request get_cpu_device - nr_cpu_ids - scnprintf sysfs_create_file_ns system_state -# required by exynos-bts.ko - devm_kstrdup - _dev_notice +# 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 +# required by exynos-coresight.ko + __cpuhp_setup_state_cpuslocked + cpu_pm_unregister_notifier + __cpu_present_mask + +# required by exynos-debug-test.ko + _ctype + remove_cpu + smp_call_function + smp_call_function_single + +# required by exynos-ehld.ko + sprint_symbol + +# required by exynos-itmon.ko + bitmap_print_to_pagebuf + free_pages + __get_free_pages + int_pow + # required by exynos-pd.ko - atomic_notifier_call_chain - kstrdup of_genpd_add_provider_simple pm_genpd_add_subdomain pm_genpd_init -# required by exynos-pd_el3.ko - __arm_smccc_smc +# required by exynos9drm.ko + add_wait_queue + 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 + kstrtobool + 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 + platform_find_device_by_driver + seq_hex_dump + seq_release + strnstr + synchronize_irq + vmalloc_to_page -# required by exynos-pm-time.ko - jiffies_to_msecs - -# required by exynos-pm.ko - of_property_count_elems_of_size - -# required by exynos_acpm.ko - generic_file_llseek - simple_attr_open - simple_attr_read - simple_attr_release - simple_attr_write - wait_for_completion_interruptible_timeout +# required by exynos_mfc.ko + clk_get + clk_put + hex_dump_to_buffer + iommu_map + iommu_map_sg + iommu_unmap + __sw_hweight64 + _totalram_pages + vb2_dqbuf + vb2_plane_vaddr + vb2_poll + vb2_qbuf + vb2_querybuf + vb2_queue_release + vb2_reqbufs + vb2_streamoff + vb2_streamon # required by exynos_pm_qos.ko - blocking_notifier_chain_unregister kstrtoint_from_user - misc_register - noop_llseek - _raw_read_lock_irqsave - _raw_read_unlock_irqrestore - _raw_write_lock_irqsave - _raw_write_unlock_irqrestore - __usecs_to_jiffies # required by exynos_tty.ko - atomic_notifier_chain_register dma_get_slave_caps - dma_sync_single_for_cpu - dma_sync_single_for_device do_SAK handle_sysrq - iomem_resource - kmalloc_large - oops_in_progress - panic_notifier_list - _raw_spin_trylock - register_console - __release_region - __request_region - request_threaded_irq sysrq_mask tty_flip_buffer_push tty_insert_flip_string_fixed_flag @@ -401,28 +1022,48 @@ uart_write_wakeup # required by exynosauto_v920_thermal.ko - devm_thermal_of_zone_register devm_thermal_of_zone_unregister - of_device_is_compatible of_thermal_get_ntrips - strncpy - thermal_zone_device_update + +# required by gpu-sched.ko + mod_delayed_work_on + sched_set_fifo_low + wait_for_completion + __xa_alloc + xa_destroy + xa_erase + xa_find + xa_find_after + xa_store + +# required by hardlockup-watchdog.ko + cpus_read_lock + cpus_read_unlock + free_percpu + hrtimer_forward + hrtimer_try_to_cancel + +# required by hwmon.ko + __class_register + class_unregister + device_property_read_string + devres_free + devres_release + kobject_uevent_env + strpbrk + sysfs_notify # required by i2c-dev.ko bus_register_notifier bus_unregister_notifier cdev_device_add cdev_device_del - cdev_init - device_initialize - dev_set_name i2c_adapter_type i2c_bus_type i2c_for_each_dev i2c_get_adapter i2c_put_adapter i2c_smbus_xfer - i2c_transfer i2c_transfer_buffer_flags i2c_verify_client register_chrdev_region @@ -430,21 +1071,34 @@ # required by i2c-exynosauto.ko cpu_bit_bitmap - i2c_del_adapter - __irq_apply_affinity_hint + +# required by lontium-lt9611.ko + drm_hdmi_avi_infoframe_from_display_mode + platform_device_register_full + 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 pcs_xpcs.ko + mdiobus_modify_changed + phylink_mii_c22_pcs_decode_state + phylink_mii_c22_pcs_encode_advertisement # 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 device_get_next_child_node devm_gpiochip_add_data_with_key - devm_kmemdup devm_pinctrl_register - fwnode_handle_put fwnode_property_present generic_handle_domain_irq gpiochip_generic_free @@ -452,18 +1106,9 @@ gpiochip_get_data gpiochip_lock_as_irq gpiochip_unlock_as_irq - handle_edge_irq - irq_create_mapping_affinity - __irq_domain_add - irq_domain_remove irq_domain_xlate_twocell - irq_set_chained_handler_and_data - kmemdup - krealloc - of_device_get_match_data of_fwnode_ops of_node_name_eq - of_prop_next_string pinctrl_add_gpio_range pinctrl_dev_get_drvdata pinctrl_remove_gpio_range @@ -471,35 +1116,52 @@ # required by pl330.ko amba_driver_register amba_driver_unregister - dev_err_probe - __devm_reset_control_get dma_async_device_register dma_async_device_unregister dma_async_tx_descriptor_init dmaengine_unmap_put dma_get_slave_channel - dma_map_resource - dma_unmap_resource of_dma_controller_free of_dma_controller_register - pm_runtime_force_resume - pm_runtime_force_suspend pm_runtime_irq_safe - reset_control_assert - reset_control_deassert - sg_next tasklet_kill __tasklet_schedule tasklet_setup # required by pwm-samsung.ko - devm_platform_ioremap_resource - of_prop_next_u32 pwmchip_add pwmchip_remove pwm_get_chip_data pwm_set_chip_data +# required by realtek.ko + __genphy_config_aneg + genphy_handle_interrupt_no_ack + genphy_read_abilities + genphy_read_mmd_unsupported + genphy_read_status + genphy_resume + genphy_soft_reset + genphy_suspend + genphy_update_link + genphy_write_mmd_unsupported + __mdiobus_read + __mdiobus_write + phy_basic_t1_features + phy_drivers_register + phy_drivers_unregister + phy_error + __phy_modify + phy_modify + phy_modify_changed + phy_modify_paged + phy_modify_paged_changed + phy_read_paged + phy_restore_page + phy_select_page + phy_trigger_machine + phy_write_paged + # required by rtc-s2vps02.ko devm_rtc_device_register pm_wakeup_ws_event @@ -507,13 +1169,350 @@ rtc_valid_tm # required by s2vps02-master-mfd.ko - destroy_workqueue __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 + +# required by samsung-secure-iova.ko + gen_pool_create + gen_pool_destroy + gen_pool_first_fit_align + +# required by samsung_dma_heap.ko + adjust_managed_page_count + anon_inode_getfile + deferred_free + dma_buf_get_flags + dmabuf_page_pool_alloc + dmabuf_page_pool_create + dmabuf_page_pool_destroy + dmabuf_page_pool_free + dmabuf_page_pool_get_size + dma_heap_add + dma_heap_get_dev + dma_heap_get_drvdata + dma_heap_get_name + dma_sync_sg_for_cpu + is_dma_buf_file + iterate_fd + misc_deregister + remap_pfn_range + __sg_page_iter_next + __sg_page_iter_start + __traceiter_android_vh_show_mem + __tracepoint_android_vh_show_mem + +# required by samsung_iommu_v9.ko + device_link_add + device_link_del + iommu_alloc_resv_region + iommu_device_register + iommu_device_sysfs_add + iommu_device_sysfs_remove + iommu_device_unlink + iommu_device_unregister + iommu_fwspec_add_ids + iommu_fwspec_free + iommu_group_for_each_dev + iommu_group_get + iommu_group_get_iommudata + iommu_group_remove_device + iommu_group_set_iommudata + iommu_report_device_fault + of_find_node_with_property + +# required by scaler.ko + clk_set_parent + dma_fence_default_wait + dma_heap_buffer_free + sync_file_get_fence + v4l2_ctrl_handler_free + v4l2_ctrl_handler_init_class + v4l2_ctrl_handler_setup + v4l2_ctrl_new_custom + v4l2_ctrl_new_std + v4l2_m2m_buf_queue + v4l2_m2m_buf_remove + v4l2_m2m_ctx_init + v4l2_m2m_ctx_release + v4l2_m2m_dqbuf + v4l2_m2m_get_curr_priv + v4l2_m2m_get_vq + v4l2_m2m_init + v4l2_m2m_job_finish + v4l2_m2m_mmap + v4l2_m2m_next_buf + v4l2_m2m_poll + v4l2_m2m_qbuf + v4l2_m2m_querybuf + v4l2_m2m_release + v4l2_m2m_reqbufs + v4l2_m2m_streamoff + v4l2_m2m_streamon + v4l2_m2m_try_schedule + v4l_bound_align_image + work_busy + +# required by sgpu.ko + autoremove_wake_function + backlight_device_register + backlight_device_unregister + __bitmap_andnot + __bitmap_xor + bpf_trace_run5 + bpf_trace_run9 + capable + __devm_drm_dev_alloc + devm_iounmap + dma_buf_dynamic_attach + dma_buf_move_notify + dma_buf_pin + dma_buf_unpin + dma_fence_array_create + dma_fence_chain_ops + dma_fence_chain_walk + dma_fence_get_status + dma_fence_get_stub + dma_fence_signal_locked + dma_fence_wait_any_timeout + dma_get_required_mask + dma_resv_add_fence + dma_resv_get_fences + dma_resv_get_singleton + dma_resv_iter_first_unlocked + dma_resv_iter_next_unlocked + dma_resv_reserve_fences + dma_resv_test_signaled + dma_resv_wait_timeout + do_wait_intr + down_read_killable + down_read_trylock + drain_workqueue + drm_connector_attach_dp_subconnector_property + drm_connector_init_with_ddc + drm_crtc_helper_set_config + drm_crtc_helper_set_mode + drm_crtc_init + drm_crtc_vblank_helper_get_vblank_timestamp + drm_cvt_mode + drm_dev_enter + drm_dev_exit + drm_edid_header_is_valid + drm_edid_is_valid + drm_framebuffer_unregister_private + drm_gem_dmabuf_mmap + drm_gem_dmabuf_release + drm_gem_dmabuf_vmap + drm_gem_dmabuf_vunmap + drm_gem_fb_create_handle + drm_gem_fb_destroy + drm_gem_prime_export + drm_gem_prime_mmap + drm_handle_vblank + drm_helper_disable_unused_functions + drm_helper_force_disable_all + drm_is_current_master + drm_kms_helper_is_poll_worker + drm_kms_helper_poll_disable + drm_kms_helper_poll_enable + drm_mm_init + drm_mm_insert_node_in_range + drm_mm_print + drm_mm_remove_node + drm_mm_takedown + drm_mode_create_scaling_mode_property + drm_mode_crtc_set_gamma_size + drm_mode_set_crtcinfo + drm_mode_set_name + drm_prime_pages_to_sg + drm_prime_sg_to_dma_addr_array + __drm_printfn_seq_file + drm_property_create_enum + __drm_puts_seq_file + drm_syncobj_add_point + drm_syncobj_create + drm_syncobj_find + drm_syncobj_find_fence + drm_syncobj_free + drm_syncobj_get_fd + drm_syncobj_get_handle + drm_syncobj_replace_fence + __fdget + _find_first_zero_bit + __folio_put + __get_task_comm + handle_simple_irq + i2c_bit_add_bus + i2c_new_client_device + ida_destroy + idr_alloc + idr_destroy + idr_find + idr_for_each + idr_get_next + idr_remove + idr_replace + iommu_iova_to_phys + jiffies_to_usecs + ktime_get_ts64 + __memcpy_fromio + __memcpy_toio + memremap + memunmap + mmu_notifier_synchronize + nsecs_to_jiffies + page_pinner_inited + __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_clear_master + pcie_bandwidth_available + pcie_get_speed_cap + pci_enable_atomic_ops_to_root + pci_enable_pcie_error_reporting + pci_free_irq_vectors + pci_get_domain_bus_and_slot + pci_iomap + pci_iounmap + pci_irq_vector + pci_map_rom + pci_msix_vec_count + pci_read_config_word + pci_release_resource + pci_resize_resource + pci_set_master + pci_unmap_rom + pci_write_config_dword + pci_write_config_word + perf_pmu_unregister + pid_task + pin_user_pages_fast + pm_runtime_autosuspend_expiration + power_supply_is_system_supplied + __printk_ratelimit + radix_tree_tagged + __rb_erase_color + rb_first_postorder + __rb_insert_augmented + rb_next + rb_next_postorder + __rcu_read_lock + __rcu_read_unlock + seq_write + set_normalized_timespec64 + sg_alloc_table_from_pages_segment + si_meminfo + sysfs_create_files + sysfs_remove_files + __traceiter_gpu_mem_total + __tracepoint_gpu_mem_total + trace_print_array_seq + ttm_bo_init_reserved + ttm_bo_kmap + ttm_bo_kunmap + ttm_bo_lock_delayed_workqueue + ttm_bo_mem_space + ttm_bo_move_accel_cleanup + ttm_bo_move_memcpy + ttm_bo_move_to_lru_tail + ttm_bo_pin + ttm_bo_put + ttm_bo_set_bulk_move + ttm_bo_unlock_delayed_workqueue + ttm_bo_unpin + ttm_bo_validate + ttm_bo_vm_access + ttm_bo_vm_close + ttm_bo_vm_dummy_page + ttm_bo_vm_fault_reserved + ttm_bo_vm_open + ttm_bo_vm_reserve + ttm_device_fini + ttm_device_init + ttm_eu_backoff_reservation + ttm_eu_fence_buffer_objects + ttm_eu_reserve_buffers + ttm_glob + ttm_lru_bulk_move_tail + ttm_pool_alloc + ttm_pool_debugfs + ttm_pool_free + ttm_range_man_fini_nocheck + ttm_range_man_init_nocheck + ttm_resource_fini + ttm_resource_free + ttm_resource_init + ttm_resource_manager_evict_all + ttm_resource_manager_init + ttm_resource_manager_usage + ttm_sg_tt_init + ttm_tt_fini + unpin_user_page + up_read + vm_get_page_prot + __wake_up_locked + 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 + __devm_request_region + dma_mmap_attrs + irq_set_affinity + kthread_bind + __platform_register_drivers + platform_unregister_drivers + pm_runtime_no_callbacks + snd_ctl_enum_info + snd_pcm_hw_constraint_integer + snd_pcm_lib_free_pages + snd_pcm_lib_ioctl + snd_pcm_lib_malloc_pages + snd_pcm_lib_preallocate_free_for_all + snd_pcm_period_elapsed + snd_soc_add_component_controls + snd_soc_component_init_regmap + snd_soc_dapm_kcontrol_widget + snd_soc_dapm_mux_update_power + snd_soc_dapm_new_control + snd_soc_dapm_new_controls + snd_soc_set_runtime_hwparams + snd_soc_unregister_component + stpcpy + __tasklet_hi_schedule + +# required by snd-soc-tas6424.ko + regcache_cache_only + +# required by snd-soc-tlv320adcx140.ko + device_property_read_u8_array + gpiod_set_raw_value_cansleep + snd_soc_dapm_get_volsw + snd_soc_dapm_put_volsw + # required by spi-exynosauto.ko gpio_free - gpio_request_one __spi_alloc_controller spi_controller_resume spi_controller_suspend @@ -525,21 +1524,166 @@ # required by spidev.ko device_property_match_string driver_unregister - _raw_spin_lock_irq - _raw_spin_unlock_irq - __register_chrdev __spi_register_driver spi_setup spi_sync stream_open - __unregister_chrdev + +# required by stmmac-platform.ko + devm_clk_get_optional + of_get_mac_address + of_phy_is_fixed_link + +# required by stmmac.ko + bitmap_free + bitmap_zalloc + bpf_dispatcher_xdp_func + bpf_master_redirect_enabled_key + bpf_prog_put + bpf_stats_enabled_key + bpf_warn_invalid_xdp_action + consume_skb + debugfs_rename + dev_addr_mod + dev_close + device_set_wakeup_enable + __dev_kfree_skb_any + devm_alloc_etherdev_mqs + dev_open + do_trace_netlink_extack + dql_completed + dql_reset + eth_mac_addr + ethtool_convert_legacy_u32_to_link_mode + ethtool_convert_link_mode_to_legacy_u32 + ethtool_op_get_link + ethtool_op_get_ts_info + eth_type_trans + flow_block_cb_setup_simple + flow_rule_match_basic + flow_rule_match_ipv4_addrs + flow_rule_match_ports + flow_rule_match_vlan + fwnode_get_named_child_node + 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 + napi_complete_done + napi_disable + napi_enable + napi_gro_receive + __napi_schedule + napi_schedule_prep + netdev_alert + netdev_pick_tx + netdev_rss_key_fill + netdev_update_features + netif_carrier_off + netif_carrier_on + netif_device_attach + netif_device_detach + netif_napi_add_weight + __netif_napi_del + netif_schedule_queue + netif_set_real_num_rx_queues + 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 + phylink_ethtool_get_eee + phylink_ethtool_get_pauseparam + phylink_ethtool_get_wol + phylink_ethtool_ksettings_get + phylink_ethtool_ksettings_set + phylink_ethtool_nway_reset + phylink_ethtool_set_eee + phylink_ethtool_set_pauseparam + phylink_ethtool_set_wol + phylink_expects_phy + phylink_fwnode_phy_connect + phylink_get_eee_err + phylink_mii_ioctl + phylink_resume + phylink_speed_down + phylink_speed_up + phylink_start + phylink_stop + phylink_suspend + pinctrl_pm_select_default_state + pinctrl_pm_select_sleep_state + ptp_clock_event + ptp_clock_index + ptp_clock_register + ptp_clock_unregister + _raw_spin_lock_bh + _raw_spin_unlock_bh + register_netdev + register_netdevice_notifier + reset_control_reset + rtnl_lock + rtnl_unlock + skb_add_rx_frag + skb_pull + skb_put + skb_tstamp_tx + synchronize_net + synchronize_rcu + __traceiter_xdp_exception + __tracepoint_xdp_exception + unregister_netdev + unregister_netdevice_notifier + xdp_convert_zc_to_xdp_frame + xdp_do_flush + xdp_do_redirect + xdp_master_redirect + xdp_return_frame + xdp_return_frame_rx_napi + xdp_rxq_info_is_reg + __xdp_rxq_info_reg + xdp_rxq_info_reg_mem_model + xdp_rxq_info_unreg + xdp_rxq_info_unreg_mem_model + xdp_warn + xp_alloc + xp_dma_map + xp_dma_sync_for_cpu_slow + xp_dma_sync_for_device_slow + xp_dma_unmap + xp_free + xp_raw_get_dma + xp_set_rxq_info + xsk_clear_rx_need_wakeup + xsk_get_pool_from_qid + xsk_set_rx_need_wakeup + xsk_set_tx_need_wakeup + xsk_tx_completed + xsk_tx_peek_desc + xsk_tx_release + xsk_uses_need_wakeup + +# required by sxgmac.ko + alloc_chrdev_region + cdev_add + gpiod_direction_output + gpiod_set_value # required by ufs-exynosauto-core.ko - _find_next_bit - flush_work - kstrtoull - of_property_read_variable_u16_array - of_property_read_variable_u8_array scsi_dma_unmap scsi_done ufshcd_auto_hibern8_update diff --git a/android/abi_gki_aarch64_imx b/android/abi_gki_aarch64_imx index 478cb5cab475..53edd1d3b5d7 100644 --- a/android/abi_gki_aarch64_imx +++ b/android/abi_gki_aarch64_imx @@ -492,6 +492,9 @@ dma_get_sgtable_attrs dma_get_slave_channel dma_heap_add + dma_heap_buffer_alloc + dma_heap_buffer_free + dma_heap_find dma_heap_get_dev dma_heap_get_drvdata dma_heap_get_name @@ -1164,6 +1167,8 @@ kvfree kvfree_call_rcu kvmalloc_node + led_classdev_register_ext + led_classdev_unregister led_init_default_state_get __list_add_valid __list_del_entry_valid @@ -1820,6 +1825,7 @@ schedule schedule_hrtimeout schedule_timeout + schedule_timeout_idle schedule_timeout_uninterruptible scmi_driver_register scmi_driver_unregister diff --git a/android/abi_gki_aarch64_mtk b/android/abi_gki_aarch64_mtk index bac4ddf87c67..2dcdd2f1f94c 100644 --- a/android/abi_gki_aarch64_mtk +++ b/android/abi_gki_aarch64_mtk @@ -2645,12 +2645,17 @@ __traceiter_android_vh_check_bpf_syscall __traceiter_android_vh_check_file_open __traceiter_android_vh_check_mmap_file + __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_iommu_iovad_alloc_iova __traceiter_android_vh_iommu_iovad_free_iova __traceiter_android_vh_is_fpsimd_save + __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 __traceiter_android_vh_rwsem_init __traceiter_android_vh_rwsem_wake __traceiter_android_vh_rwsem_write_finished @@ -2661,6 +2666,7 @@ __traceiter_android_vh_show_suspend_epoch_val __traceiter_android_vh_syscall_prctl_finished __traceiter_android_vh_ufs_clock_scaling + __traceiter_android_vh_vmscan_kswapd_done __traceiter_cpu_frequency __traceiter_gpu_mem_total __traceiter_ipi_entry @@ -2740,12 +2746,17 @@ __tracepoint_android_vh_check_bpf_syscall __tracepoint_android_vh_check_file_open __tracepoint_android_vh_check_mmap_file + __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_iommu_iovad_alloc_iova __tracepoint_android_vh_iommu_iovad_free_iova __tracepoint_android_vh_is_fpsimd_save + __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 __tracepoint_android_vh_rwsem_init __tracepoint_android_vh_rwsem_wake __tracepoint_android_vh_rwsem_write_finished @@ -2756,6 +2767,7 @@ __tracepoint_android_vh_show_suspend_epoch_val __tracepoint_android_vh_syscall_prctl_finished __tracepoint_android_vh_ufs_clock_scaling + __tracepoint_android_vh_vmscan_kswapd_done __tracepoint_cpu_frequency __tracepoint_gpu_mem_total __tracepoint_ipi_entry diff --git a/android/abi_gki_aarch64_oplus b/android/abi_gki_aarch64_oplus index 1e638ea28886..8976672a1927 100644 --- a/android/abi_gki_aarch64_oplus +++ b/android/abi_gki_aarch64_oplus @@ -20,6 +20,9 @@ down_read_trylock drm_crtc_vblank_waitqueue filp_close + folio_add_lru + folio_mapping + folio_referenced for_each_kernel_tracepoint freq_qos_add_notifier freq_qos_remove_notifier @@ -42,11 +45,14 @@ jiffies_64_to_clock_t kick_process ktime_get_coarse_real_ts64 + mem_cgroup_update_lru_size memory_cgrp_subsys memory_cgrp_subsys_enabled_key mem_cgroup_from_id mipi_dsi_generic_write mmc_wait_for_cmd + __mod_lruvec_state + __mod_zone_page_state nf_ct_attach nf_ct_delete nf_register_net_hook @@ -62,6 +68,7 @@ prepare_to_wait_exclusive proc_symlink public_key_verify_signature + put_pages_list radix_tree_lookup_slot radix_tree_replace_slot _raw_write_trylock @@ -69,6 +76,7 @@ register_tcf_proto_ops regulator_map_voltage_linear_range remove_proc_subtree + root_mem_cgroup rtc_read_alarm rtc_set_alarm __rtnl_link_unregister @@ -108,6 +116,7 @@ __traceiter_android_vh_futex_wake_up_q_finish __traceiter_android_vh_record_mutex_lock_starttime __traceiter_android_vh_record_pcpu_rwsem_starttime + __traceiter_android_vh_percpu_rwsem_wq_add __traceiter_android_vh_record_rtmutex_lock_starttime __traceiter_android_vh_record_rwsem_lock_starttime __traceiter_android_vh_alter_mutex_list_add @@ -174,6 +183,11 @@ __traceiter_task_rename __traceiter_android_vh_test_clear_look_around_ref __traceiter_android_vh_tune_swappiness + __traceiter_android_vh_alloc_oem_binder_struct + __traceiter_android_vh_binder_transaction_received + __traceiter_android_vh_free_oem_binder_struct + __traceiter_android_vh_binder_special_task + __traceiter_android_vh_binder_free_buf __tracepoint_android_rvh_post_init_entity_util_avg __tracepoint_android_rvh_rtmutex_force_update __tracepoint_android_vh_account_process_tick_gran @@ -226,6 +240,7 @@ __tracepoint_android_vh_mutex_unlock_slowpath __tracepoint_android_vh_record_mutex_lock_starttime __tracepoint_android_vh_record_pcpu_rwsem_starttime + __tracepoint_android_vh_percpu_rwsem_wq_add __tracepoint_android_vh_record_rtmutex_lock_starttime __tracepoint_android_vh_record_rwsem_lock_starttime __tracepoint_android_vh_rtmutex_waiter_prio @@ -256,6 +271,11 @@ __tracepoint_sched_stat_wait __tracepoint_sched_waking __tracepoint_task_rename + __tracepoint_android_vh_alloc_oem_binder_struct + __tracepoint_android_vh_binder_transaction_received + __tracepoint_android_vh_free_oem_binder_struct + __tracepoint_android_vh_binder_special_task + __tracepoint_android_vh_binder_free_buf __trace_puts try_to_free_mem_cgroup_pages typec_mux_get_drvdata diff --git a/android/abi_gki_aarch64_pixel b/android/abi_gki_aarch64_pixel index 4fe7be5b8bbe..d1af571b8452 100644 --- a/android/abi_gki_aarch64_pixel +++ b/android/abi_gki_aarch64_pixel @@ -1,4 +1,5 @@ [abi_symbol_list] + activate_task add_cpu add_timer add_timer_on @@ -30,6 +31,7 @@ __arch_clear_user __arch_copy_from_user __arch_copy_to_user + arch_freq_scale arch_timer_read_counter argv_free argv_split @@ -42,6 +44,7 @@ atomic_notifier_chain_register atomic_notifier_chain_unregister autoremove_wake_function + available_idle_cpu backlight_device_set_brightness badblocks_check badblocks_clear @@ -49,13 +52,19 @@ badblocks_init badblocks_set badblocks_show + balance_push_callback bcmp bdev_end_io_acct bdev_nr_zones bdev_start_io_acct bin2hex + bio_add_page + bio_alloc_bioset + bio_chain bio_endio bio_end_io_acct_remapped + bio_init + bio_put bio_start_io_acct __bitmap_and __bitmap_andnot @@ -76,6 +85,9 @@ bitmap_zalloc blk_abort_request __blk_alloc_disk + blk_check_plugged + blkdev_get_by_dev + blkdev_put blk_execute_rq_nowait __blk_mq_alloc_disk blk_mq_alloc_tag_set @@ -114,6 +126,8 @@ blocking_notifier_chain_unregister bpf_trace_run1 bpf_trace_run10 + bpf_trace_run11 + bpf_trace_run12 bpf_trace_run2 bpf_trace_run3 bpf_trace_run4 @@ -143,11 +157,13 @@ cdev_device_del cdev_init __check_object_size + check_preempt_curr __class_create class_destroy class_interface_unregister __class_register class_unregister + cleancache_register_ops clear_page __ClearPageMovable clk_disable @@ -204,22 +220,36 @@ _copy_from_iter __copy_overflow _copy_to_iter + __cpu_active_mask cpu_all_bits 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 + cpufreq_driver_resolve_freq + __cpufreq_driver_target cpufreq_driver_target + cpufreq_enable_fast_switch cpufreq_freq_transition_begin cpufreq_freq_transition_end cpufreq_frequency_table_verify cpufreq_generic_attr cpufreq_get cpufreq_get_policy + cpufreq_policy_transition_delay_us cpufreq_quick_get cpufreq_register_driver + cpufreq_register_governor cpufreq_register_notifier + cpufreq_remove_update_util_hook cpufreq_table_index_unsorted + cpufreq_this_cpu_can_update + cpufreq_update_util_data + cpu_hotplug_disable + cpu_hotplug_enable __cpuhp_remove_state __cpuhp_setup_state __cpuhp_setup_state_cpuslocked @@ -227,15 +257,19 @@ __cpuhp_state_remove_instance cpuhp_tasks_frozen cpu_hwcaps + cpuidle_driver_state_disabled + cpuidle_get_driver cpu_latency_qos_add_request cpu_latency_qos_remove_request cpu_latency_qos_update_request + cpumask_local_spread cpu_number __cpu_online_mask cpu_pm_register_notifier cpu_pm_unregister_notifier __cpu_possible_mask __cpu_present_mask + cpupri_find_fitness cpu_scale cpus_read_lock cpus_read_unlock @@ -275,6 +309,7 @@ csum_partial csum_tcpudp_nofold _ctype + deactivate_task debugfs_attr_read debugfs_attr_write debugfs_create_atomic_t @@ -282,6 +317,7 @@ debugfs_create_devm_seqfile debugfs_create_dir debugfs_create_file + debugfs_create_file_unsafe debugfs_create_size_t debugfs_create_symlink debugfs_create_u16 @@ -326,6 +362,7 @@ __dev_get_by_index dev_get_by_index dev_get_by_name + dev_get_stats device_add device_add_disk device_add_groups @@ -340,6 +377,7 @@ device_get_child_node_count device_get_dma_attr device_get_match_data + device_get_named_child_node device_get_next_child_node device_initialize device_link_add @@ -394,13 +432,17 @@ devm_ioremap_resource devm_ioremap_wc devm_iounmap + __devm_irq_alloc_descs devm_kasprintf devm_kfree devm_kmalloc devm_kmemdup + devm_krealloc devm_kstrdup devm_kstrdup_const devm_led_classdev_register_ext + devm_memremap + devm_memunmap devm_mfd_add_devices devm_nvmem_register __devm_of_phy_provider_register @@ -420,18 +462,21 @@ __devm_regmap_init __devm_regmap_init_i2c __devm_regmap_init_spi + __devm_regmap_init_spmi_ext devm_regulator_bulk_get devm_regulator_get devm_regulator_get_exclusive devm_regulator_get_optional devm_regulator_put devm_regulator_register + devm_request_any_context_irq __devm_request_region devm_request_threaded_irq devm_rtc_device_register devm_snd_soc_register_component devm_thermal_of_cooling_device_register devm_thermal_of_zone_register + devm_thermal_of_zone_unregister devm_usb_get_phy_by_phandle _dev_notice dev_pm_domain_attach_by_name @@ -459,6 +504,7 @@ __devres_alloc_node devres_free dev_set_name + dev_vprintk_emit _dev_warn disable_irq disable_irq_nosync @@ -486,6 +532,7 @@ dmabuf_page_pool_free dmabuf_page_pool_get_size dma_buf_put + dma_buf_set_name dma_buf_unmap_attachment dma_buf_vmap dma_buf_vunmap @@ -542,19 +589,25 @@ drain_workqueue driver_register driver_unregister + drm_add_edid_modes drm_add_modes_noedid drm_atomic_add_affected_connectors drm_atomic_add_affected_planes + drm_atomic_bridge_chain_disable + drm_atomic_bridge_chain_post_disable drm_atomic_commit drm_atomic_get_connector_state drm_atomic_get_crtc_state drm_atomic_get_new_connector_for_encoder + drm_atomic_get_new_private_obj_state drm_atomic_get_old_connector_for_encoder + drm_atomic_get_old_private_obj_state drm_atomic_get_plane_state drm_atomic_get_private_obj_state drm_atomic_helper_bridge_destroy_state drm_atomic_helper_bridge_duplicate_state drm_atomic_helper_bridge_reset + drm_atomic_helper_calc_timestamping_constants drm_atomic_helper_check_modeset drm_atomic_helper_check_planes drm_atomic_helper_check_plane_state @@ -567,7 +620,10 @@ drm_atomic_helper_commit_planes drm_atomic_helper_commit_tail __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 @@ -583,6 +639,7 @@ drm_atomic_helper_setup_commit drm_atomic_helper_shutdown drm_atomic_helper_swap_state + drm_atomic_helper_update_legacy_modeset_state drm_atomic_helper_update_plane drm_atomic_helper_wait_for_dependencies drm_atomic_helper_wait_for_flip_done @@ -610,12 +667,17 @@ drm_connector_list_iter_next drm_connector_register drm_connector_unregister + drm_connector_update_edid_property + drm_crtc_add_crc_entry drm_crtc_arm_vblank_event drm_crtc_cleanup + __drm_crtc_commit_free + drm_crtc_commit_wait drm_crtc_enable_color_mgmt drm_crtc_handle_vblank drm_crtc_init_with_planes drm_crtc_send_vblank_event + drm_crtc_vblank_count drm_crtc_vblank_count_and_time drm_crtc_vblank_get drm_crtc_vblank_off @@ -623,10 +685,20 @@ drm_crtc_vblank_put drm_crtc_wait_one_vblank ___drm_dbg + __drm_debug + drm_detect_monitor_audio + __drm_dev_dbg + drm_dev_printk drm_dev_put drm_dev_register drm_dev_unregister + drm_display_mode_from_cea_vic drm_display_mode_to_videomode + drm_do_get_edid + drm_edid_duplicate + drm_edid_get_monitor_name + drm_edid_is_valid + drm_edid_to_sad drm_encoder_cleanup drm_encoder_init __drm_err @@ -648,6 +720,7 @@ drm_gem_private_object_init drm_gem_vm_close drm_gem_vm_open + drm_get_edid drm_get_format_info drm_helper_mode_fill_fb_struct drm_helper_probe_single_connector_modes @@ -655,10 +728,13 @@ drm_kms_helper_hotplug_event drm_kms_helper_poll_fini drm_kms_helper_poll_init + drm_match_cea_mode drmm_kmalloc drmm_mode_config_init drm_mode_config_reset drm_mode_convert_to_umode + drm_mode_copy + drm_mode_destroy drm_mode_duplicate drm_mode_equal drm_mode_equal_no_clocks @@ -672,9 +748,11 @@ drm_modeset_drop_locks drm_modeset_lock drm_modeset_lock_all_ctx + drm_modeset_lock_single_interruptible drm_modeset_unlock drm_mode_vrefresh drm_object_attach_property + drm_object_property_set_value drm_open drm_panel_add drm_panel_disable @@ -724,10 +802,13 @@ dump_backtrace dump_stack dw_handle_msi_irq + dw_pcie_find_capability dw_pcie_host_init dw_pcie_read + dw_pcie_read_dbi dw_pcie_setup_rc dw_pcie_write + dw_pcie_write_dbi __dynamic_dev_dbg __dynamic_pr_debug em_cpu_get @@ -755,6 +836,9 @@ __fdget fd_install fget + file_path + filp_close + filp_open_block find_extend_vma _find_first_and_bit _find_first_bit @@ -765,12 +849,14 @@ _find_next_bit _find_next_zero_bit find_pid_ns + find_task_by_vpid find_vma_intersection finish_wait flush_dcache_page flush_delayed_work flush_work __flush_workqueue + __folio_lock __folio_put folio_wait_bit fortify_panic @@ -791,6 +877,9 @@ freq_qos_add_request freq_qos_remove_request freq_qos_update_request + fs_bio_set + fsnotify + __fsnotify_parent full_name_hash fwnode_get_name fwnode_gpiod_get_index @@ -823,6 +912,22 @@ get_cpu_iowait_time_us get_device __get_free_pages + get_governor_parent_kobj + gether_cleanup + gether_connect + gether_disconnect + gether_get_dev_addr + gether_get_host_addr + gether_get_host_addr_u8 + gether_get_ifname + gether_get_qmult + gether_register_netdev + gether_set_dev_addr + gether_set_gadget + gether_set_host_addr + gether_set_ifname + gether_set_qmult + gether_setup_name_default get_net_ns_by_fd get_net_ns_by_pid get_pid_task @@ -832,6 +937,8 @@ __get_random_u32_below get_random_u8 get_sg_io_hdr + __get_task_comm + get_task_cred get_thermal_instance get_unused_fd_flags get_user_pages @@ -839,6 +946,10 @@ get_vaddr_frames gic_nonsecure_priorities glob_match + gov_attr_set_get + gov_attr_set_init + gov_attr_set_put + governor_sysfs_ops gpiochip_generic_config gpiochip_generic_free gpiochip_generic_request @@ -871,6 +982,7 @@ handle_simple_irq handle_sysrq hashlen_string + have_governor_per_policy hex2bin hex_dump_to_buffer hex_to_bin @@ -888,6 +1000,7 @@ hwrng_register hwrng_unregister i2c_adapter_type + i2c_add_adapter i2c_add_numbered_adapter i2c_bus_type i2c_del_adapter @@ -965,6 +1078,7 @@ interval_tree_iter_first interval_tree_iter_next interval_tree_remove + int_pow int_sqrt int_to_scsilun iomem_resource @@ -1015,7 +1129,9 @@ irq_domain_get_irq_data irq_domain_remove irq_domain_set_info + irq_domain_simple_ops irq_domain_xlate_twocell + irq_force_affinity irq_get_irq_data irq_modify_status irq_of_parse_and_map @@ -1027,6 +1143,8 @@ irq_set_irq_type irq_set_irq_wake irq_to_desc + irq_work_queue + irq_work_sync is_vmalloc_addr jiffies jiffies64_to_msecs @@ -1039,6 +1157,7 @@ kernel_param_lock kernel_param_unlock kernel_restart + kernfs_path_from_node key_create_or_update key_put keyring_alloc @@ -1064,6 +1183,7 @@ kmem_cache_destroy kmem_cache_free kmemdup + kmemdup_nul kobject_add kobject_create_and_add kobject_del @@ -1154,6 +1274,7 @@ mbox_request_channel mbox_send_message memchr + memchr_inv memcmp memcpy __memcpy_fromio @@ -1202,6 +1323,7 @@ __msecs_to_jiffies msleep msleep_interruptible + mtree_load __mutex_init mutex_is_locked mutex_lock @@ -1238,6 +1360,8 @@ netlink_unregister_notifier net_ns_type_operations net_ratelimit + nf_register_net_hooks + nf_unregister_net_hooks nla_find nla_memcpy __nla_parse @@ -1252,6 +1376,7 @@ noop_llseek nr_cpu_ids nr_irqs + ns_capable nsec_to_clock_t ns_to_timespec64 __num_online_cpus @@ -1284,6 +1409,7 @@ of_find_node_by_phandle of_find_node_by_type of_find_node_opts_by_path + of_find_node_with_property of_find_property of_fwnode_ops of_genpd_add_provider_simple @@ -1495,17 +1621,23 @@ prepare_to_wait_event print_hex_dump _printk + _printk_deferred proc_create proc_create_data proc_create_single_data proc_dointvec proc_dostring + proc_douintvec_minmax proc_mkdir proc_mkdir_data proc_remove + proc_set_size + proc_symlink pskb_expand_head __pskb_pull_tail ___pskb_trim + push_cpu_stop + __put_cred put_device put_disk put_iova_domain @@ -1537,6 +1669,8 @@ _raw_spin_lock_bh _raw_spin_lock_irq _raw_spin_lock_irqsave + raw_spin_rq_lock_nested + raw_spin_rq_unlock _raw_spin_trylock _raw_spin_unlock _raw_spin_unlock_bh @@ -1634,7 +1768,10 @@ __request_percpu_irq __request_region request_threaded_irq + resched_curr + reserve_iova return_address + reweight_task rfkill_alloc rfkill_blocked rfkill_destroy @@ -1651,6 +1788,7 @@ rht_bucket_nested_insert __root_device_register root_device_unregister + root_task_group round_jiffies round_jiffies_relative round_jiffies_up @@ -1668,12 +1806,18 @@ rt_mutex_unlock rtnl_is_locked rtnl_lock + rtnl_trylock rtnl_unlock + runqueues sched_clock + sched_feat_keys sched_setattr_nocheck + sched_set_fifo + sched_set_normal sched_setscheduler sched_setscheduler_nocheck sched_show_task + sched_uclamp_used schedule schedule_timeout schedule_timeout_interruptible @@ -1722,6 +1866,7 @@ set_page_dirty set_page_dirty_lock __SetPageMovable + set_task_cpu set_user_nice sg_alloc_table sg_alloc_table_from_pages_segment @@ -1789,6 +1934,7 @@ snd_jack_set_key snd_pcm_format_physical_width snd_pcm_format_width + snd_pcm_hw_constraint_integer snd_pcm_hw_constraint_list snd_pcm_lib_free_pages snd_pcm_lib_ioctl @@ -1845,6 +1991,7 @@ snd_soc_register_card snd_soc_register_component snd_soc_runtime_set_dai_fmt + snd_soc_set_runtime_hwparams snd_soc_unregister_card snd_soc_unregister_component snprintf @@ -1867,6 +2014,10 @@ spi_sync spi_sync_locked spi_unregister_controller + spmi_controller_add + spmi_controller_alloc + spmi_controller_remove + __spmi_driver_register sprintf sprint_symbol srcu_init_notifier_head @@ -1876,9 +2027,11 @@ sscanf __stack_chk_fail static_key_disable + static_key_enable static_key_slow_dec static_key_slow_inc stop_machine + stop_one_cpu_nowait strcasecmp strcat strchr @@ -1892,6 +2045,7 @@ strlen strncasecmp strncat + strnchr strncmp strncpy strncpy_from_user @@ -1904,6 +2058,8 @@ strsep strspn strstr + submit_bio + submit_bio_wait subsys_system_register suspend_set_ops __sw_hweight16 @@ -1917,6 +2073,8 @@ synchronize_net synchronize_rcu syscon_regmap_lookup_by_phandle + sysctl_sched_features + sysctl_sched_latency sysfs_add_file_to_group sysfs_add_link_to_group sysfs_create_file_ns @@ -1946,12 +2104,14 @@ system_wq sys_tz task_active_pid_ns + __tasklet_hi_schedule tasklet_init tasklet_kill __tasklet_schedule tasklet_setup tasklet_unlock_wait __task_pid_nr_ns + task_rq_lock tcpci_get_tcpm_port tcpci_irq tcpci_register_port @@ -1962,17 +2122,25 @@ tcpm_pd_transmit_complete tcpm_port_clean tcpm_port_is_toggling + tcpm_register_port tcpm_sink_frs tcpm_sourcing_vbus + tcpm_tcpc_reset + tcpm_unregister_port tcpm_vbus_change + teo_cpu_get_util_threshold + teo_cpu_set_util_threshold thermal_cdev_update thermal_cooling_device_unregister thermal_of_cooling_device_register + thermal_pressure thermal_zone_device_disable thermal_zone_device_enable thermal_zone_device_register thermal_zone_device_unregister thermal_zone_device_update + thermal_zone_get_temp + thermal_zone_get_zone_by_name thread_group_cputime_adjusted time64_to_tm topology_update_thermal_pressure @@ -1986,17 +2154,58 @@ trace_event_raw_init trace_event_reg trace_handle_return + __traceiter_android_rvh_attach_entity_load_avg + __traceiter_android_rvh_audio_usb_offload_disconnect + __traceiter_android_rvh_can_migrate_task + __traceiter_android_rvh_cgroup_force_kthread_migration + __traceiter_android_rvh_check_preempt_wakeup + __traceiter_android_rvh_cpu_overutilized + __traceiter_android_rvh_dequeue_task + __traceiter_android_rvh_dequeue_task_fair + __traceiter_android_rvh_detach_entity_load_avg + __traceiter_android_rvh_enqueue_task + __traceiter_android_rvh_enqueue_task_fair + __traceiter_android_rvh_find_lowest_rq + __traceiter_android_rvh_irqs_disable + __traceiter_android_rvh_irqs_enable + __traceiter_android_rvh_post_init_entity_util_avg + __traceiter_android_rvh_preempt_disable + __traceiter_android_rvh_preempt_enable + __traceiter_android_rvh_prepare_prio_fork + __traceiter_android_rvh_remove_entity_load_avg + __traceiter_android_rvh_rtmutex_prepare_setprio + __traceiter_android_rvh_sched_newidle_balance + __traceiter_android_rvh_select_task_rq_fair + __traceiter_android_rvh_select_task_rq_rt + __traceiter_android_rvh_set_cpus_allowed_by_task + __traceiter_android_rvh_set_iowait + __traceiter_android_rvh_setscheduler + __traceiter_android_rvh_set_task_cpu + __traceiter_android_rvh_set_user_nice __traceiter_android_rvh_typec_tcpci_get_vbus + __traceiter_android_rvh_uclamp_eff_get + __traceiter_android_rvh_update_blocked_fair + __traceiter_android_rvh_update_load_avg + __traceiter_android_rvh_update_rt_rq_load_avg + __traceiter_android_vh_arch_set_freq_scale + __traceiter_android_vh_audio_usb_offload_connect + __traceiter_android_vh_binder_restore_priority + __traceiter_android_vh_binder_set_priority __traceiter_android_vh_cpu_idle_enter __traceiter_android_vh_cpu_idle_exit + __traceiter_android_vh_dump_throttled_rt_tasks + __traceiter_android_vh_dup_task_struct __traceiter_android_vh_enable_thermal_genl_check __traceiter_android_vh_ipi_stop __traceiter_android_vh_scheduler_tick + __traceiter_android_vh_setscheduler_uclamp __traceiter_android_vh_sysrq_crash __traceiter_android_vh_typec_store_partner_src_caps __traceiter_android_vh_typec_tcpci_override_toggling __traceiter_android_vh_typec_tcpm_get_timer __traceiter_android_vh_typec_tcpm_log + __traceiter_android_vh_typec_tcpm_modify_src_caps + __traceiter_android_vh_uclamp_validate __traceiter_android_vh_ufs_check_int_errors __traceiter_android_vh_ufs_compl_command __traceiter_android_vh_ufs_fill_prdt @@ -2006,7 +2215,9 @@ __traceiter_android_vh_ufs_send_uic_command __traceiter_android_vh_ufs_update_sdev __traceiter_android_vh_ufs_update_sysfs + __traceiter_android_vh_use_amu_fie __traceiter_clock_set_rate + __traceiter_cpu_frequency __traceiter_device_pm_callback_end __traceiter_device_pm_callback_start __traceiter_gpu_mem_total @@ -2017,22 +2228,72 @@ __traceiter_mmap_lock_acquire_returned __traceiter_mmap_lock_released __traceiter_mmap_lock_start_locking + __traceiter_pelt_cfs_tp + __traceiter_pelt_dl_tp + __traceiter_pelt_irq_tp + __traceiter_pelt_rt_tp + __traceiter_pelt_se_tp + __traceiter_sched_cpu_capacity_tp + __traceiter_sched_overutilized_tp __traceiter_sched_switch + __traceiter_sched_util_est_cfs_tp + __traceiter_sched_util_est_se_tp __traceiter_suspend_resume __traceiter_workqueue_execute_end __traceiter_workqueue_execute_start trace_output_call + __tracepoint_android_rvh_attach_entity_load_avg + __tracepoint_android_rvh_audio_usb_offload_disconnect + __tracepoint_android_rvh_can_migrate_task + __tracepoint_android_rvh_cgroup_force_kthread_migration + __tracepoint_android_rvh_check_preempt_wakeup + __tracepoint_android_rvh_cpu_overutilized + __tracepoint_android_rvh_dequeue_task + __tracepoint_android_rvh_dequeue_task_fair + __tracepoint_android_rvh_detach_entity_load_avg + __tracepoint_android_rvh_enqueue_task + __tracepoint_android_rvh_enqueue_task_fair + __tracepoint_android_rvh_find_lowest_rq + __tracepoint_android_rvh_irqs_disable + __tracepoint_android_rvh_irqs_enable + __tracepoint_android_rvh_post_init_entity_util_avg + __tracepoint_android_rvh_preempt_disable + __tracepoint_android_rvh_preempt_enable + __tracepoint_android_rvh_prepare_prio_fork + __tracepoint_android_rvh_remove_entity_load_avg + __tracepoint_android_rvh_rtmutex_prepare_setprio + __tracepoint_android_rvh_sched_newidle_balance + __tracepoint_android_rvh_select_task_rq_fair + __tracepoint_android_rvh_select_task_rq_rt + __tracepoint_android_rvh_set_cpus_allowed_by_task + __tracepoint_android_rvh_set_iowait + __tracepoint_android_rvh_setscheduler + __tracepoint_android_rvh_set_task_cpu + __tracepoint_android_rvh_set_user_nice __tracepoint_android_rvh_typec_tcpci_get_vbus + __tracepoint_android_rvh_uclamp_eff_get + __tracepoint_android_rvh_update_blocked_fair + __tracepoint_android_rvh_update_load_avg + __tracepoint_android_rvh_update_rt_rq_load_avg + __tracepoint_android_vh_arch_set_freq_scale + __tracepoint_android_vh_audio_usb_offload_connect + __tracepoint_android_vh_binder_restore_priority + __tracepoint_android_vh_binder_set_priority __tracepoint_android_vh_cpu_idle_enter __tracepoint_android_vh_cpu_idle_exit + __tracepoint_android_vh_dump_throttled_rt_tasks + __tracepoint_android_vh_dup_task_struct __tracepoint_android_vh_enable_thermal_genl_check __tracepoint_android_vh_ipi_stop __tracepoint_android_vh_scheduler_tick + __tracepoint_android_vh_setscheduler_uclamp __tracepoint_android_vh_sysrq_crash __tracepoint_android_vh_typec_store_partner_src_caps __tracepoint_android_vh_typec_tcpci_override_toggling __tracepoint_android_vh_typec_tcpm_get_timer __tracepoint_android_vh_typec_tcpm_log + __tracepoint_android_vh_typec_tcpm_modify_src_caps + __tracepoint_android_vh_uclamp_validate __tracepoint_android_vh_ufs_check_int_errors __tracepoint_android_vh_ufs_compl_command __tracepoint_android_vh_ufs_fill_prdt @@ -2042,7 +2303,9 @@ __tracepoint_android_vh_ufs_send_uic_command __tracepoint_android_vh_ufs_update_sdev __tracepoint_android_vh_ufs_update_sysfs + __tracepoint_android_vh_use_amu_fie __tracepoint_clock_set_rate + __tracepoint_cpu_frequency __tracepoint_device_pm_callback_end __tracepoint_device_pm_callback_start __tracepoint_gpu_mem_total @@ -2053,9 +2316,18 @@ __tracepoint_mmap_lock_acquire_returned __tracepoint_mmap_lock_released __tracepoint_mmap_lock_start_locking + __tracepoint_pelt_cfs_tp + __tracepoint_pelt_dl_tp + __tracepoint_pelt_irq_tp + __tracepoint_pelt_rt_tp + __tracepoint_pelt_se_tp tracepoint_probe_register tracepoint_probe_unregister + __tracepoint_sched_cpu_capacity_tp + __tracepoint_sched_overutilized_tp __tracepoint_sched_switch + __tracepoint_sched_util_est_cfs_tp + __tracepoint_sched_util_est_se_tp __tracepoint_suspend_resume __tracepoint_workqueue_execute_end __tracepoint_workqueue_execute_start @@ -2093,8 +2365,10 @@ uart_unregister_driver uart_update_timeout uart_write_wakeup + uclamp_eff_value __udelay udp4_hwcsum + ufshcd_auto_hibern8_update ufshcd_bkops_ctrl ufshcd_hold ufshcd_pltfrm_init @@ -2130,29 +2404,42 @@ unregister_virtio_driver up update_devfreq + ___update_load_avg + ___update_load_sum + update_rq_clock up_read up_write usb_add_function usb_add_hcd + usb_assign_descriptors usb_copy_descriptors __usb_create_hcd usb_disabled usb_enable_autosuspend + usb_ep_alloc_request usb_ep_autoconfig + usb_ep_disable + usb_ep_enable + usb_ep_free_request + usb_ep_queue + usb_free_all_descriptors usb_function_register usb_function_unregister usb_gadget_activate usb_gadget_deactivate usb_gadget_set_state + usb_gstrings_attach usb_hcd_is_primary_hcd usb_hcd_platform_shutdown usb_hub_find_child usb_interface_id + usb_os_desc_prepare_interf_dir usb_otg_state_string usb_put_function_instance usb_put_hcd usb_register_notify usb_remove_hcd + usb_role_string usb_role_switch_get_drvdata usb_role_switch_register usb_role_switch_unregister @@ -2247,6 +2534,7 @@ vmalloc_user vmap vmf_insert_pfn_prot + vm_iomap_memory vprintk vprintk_emit vring_del_virtqueue @@ -2281,12 +2569,16 @@ __xa_alloc xa_clear_mark xa_destroy + __xa_erase xa_erase xa_find xa_find_after xa_get_mark xa_load xa_set_mark + xas_find + xas_pause + __xa_store __xfrm_state_destroy xfrm_state_lookup_byspi xfrm_stateonly_find @@ -2294,7 +2586,18 @@ xhci_bus_resume xhci_bus_suspend xhci_gen_setup + xhci_get_endpoint_index xhci_init_driver xhci_resume xhci_run xhci_suspend + zs_compact + zs_create_pool + zs_destroy_pool + zs_free + zs_get_total_pages + zs_huge_class_size + zs_malloc + zs_map_object + zs_pool_stats + zs_unmap_object diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index a9f7ab030082..7ebb4f06a113 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -3381,11 +3381,13 @@ __traceiter_android_rvh_update_thermal_stats __traceiter_android_rvh_util_est_update __traceiter_android_rvh_wake_up_new_task + __traceiter_android_vh_alter_mutex_list_add __traceiter_android_vh_audio_usb_offload_connect __traceiter_android_vh_binder_restore_priority __traceiter_android_vh_binder_set_priority __traceiter_android_vh_binder_wakeup_ilocked __traceiter_android_vh_build_sched_domains + __traceiter_android_vh_bus_iommu_probe __traceiter_android_vh_check_hibernation_swap __traceiter_android_vh_check_uninterrupt_tasks __traceiter_android_vh_check_uninterrupt_tasks_done @@ -3527,11 +3529,13 @@ __tracepoint_android_rvh_update_thermal_stats __tracepoint_android_rvh_util_est_update __tracepoint_android_rvh_wake_up_new_task + __tracepoint_android_vh_alter_mutex_list_add __tracepoint_android_vh_audio_usb_offload_connect __tracepoint_android_vh_binder_restore_priority __tracepoint_android_vh_binder_set_priority __tracepoint_android_vh_binder_wakeup_ilocked __tracepoint_android_vh_build_sched_domains + __tracepoint_android_vh_bus_iommu_probe __tracepoint_android_vh_check_hibernation_swap __tracepoint_android_vh_check_uninterrupt_tasks __tracepoint_android_vh_check_uninterrupt_tasks_done diff --git a/android/abi_gki_aarch64_rockchip b/android/abi_gki_aarch64_rockchip new file mode 100644 index 000000000000..8fdda5ad35fb --- /dev/null +++ b/android/abi_gki_aarch64_rockchip @@ -0,0 +1,2805 @@ +[abi_symbol_list] +# commonly used symbols + add_timer + alloc_chrdev_region + alloc_iova_fast + __alloc_pages + __alloc_skb + alloc_workqueue + alt_cb_patch_nops + anon_inode_getfd + __arch_copy_from_user + __arch_copy_to_user + arm64_use_ng_mappings + __arm_smccc_smc + atomic_notifier_call_chain + atomic_notifier_chain_register + atomic_notifier_chain_unregister + _bcd2bin + bcmp + _bin2bcd + __bitmap_andnot + __bitmap_equal + bitmap_free + __bitmap_or + __bitmap_set + __bitmap_xor + bitmap_zalloc + blocking_notifier_call_chain + blocking_notifier_chain_register + blocking_notifier_chain_unregister + bpf_trace_run1 + bpf_trace_run2 + bpf_trace_run3 + bpf_trace_run4 + bpf_trace_run5 + bpf_trace_run6 + bpf_trace_run7 + cancel_delayed_work + cancel_delayed_work_sync + cancel_work_sync + capable + cdev_add + cdev_del + cdev_device_add + cdev_device_del + cdev_init + cec_allocate_adapter + cec_delete_adapter + cec_fill_conn_info_from_drm + cec_notifier_cec_adap_register + cec_notifier_cec_adap_unregister + cec_notifier_conn_register + cec_notifier_conn_unregister + cec_notifier_set_phys_addr + cec_notifier_set_phys_addr_from_edid + cec_queue_pin_hpd_event + cec_received_msg_ts + cec_register_adapter + cec_transmit_attempt_done_ts + cec_unregister_adapter + __check_object_size + __class_create + class_create_file_ns + class_destroy + class_for_each_device + __class_register + class_remove_file_ns + class_unregister + clk_bulk_disable + clk_bulk_enable + clk_bulk_prepare + clk_bulk_unprepare + clk_disable + clk_enable + clk_gate_ops + clk_get + __clk_get_name + clk_get_parent + clk_get_rate + clk_hw_get_flags + clk_hw_get_name + clk_hw_get_parent + clk_hw_get_rate + clk_is_match + __clk_mux_determine_rate + clk_notifier_register + clk_notifier_unregister + clk_prepare + clk_put + clk_register + clk_round_rate + clk_set_parent + clk_set_phase + clk_set_rate + clk_unprepare + clk_unregister + cma_alloc + cma_release + compat_ptr_ioctl + complete + completion_done + __const_udelay + consume_skb + __copy_overflow + cpufreq_cpu_get + __cpufreq_driver_target + cpufreq_generic_suspend + cpufreq_register_governor + cpufreq_register_notifier + cpufreq_unregister_governor + cpu_have_feature + cpu_hwcaps + cpu_latency_qos_add_request + cpu_latency_qos_update_request + cpu_number + __cpu_online_mask + __cpu_possible_mask + cpus_read_lock + cpus_read_unlock + crc16 + crc32_le + crypto_aead_decrypt + crypto_aead_encrypt + crypto_aead_setauthsize + crypto_aead_setkey + crypto_ahash_final + crypto_ahash_setkey + crypto_alloc_aead + crypto_alloc_ahash + crypto_alloc_shash + crypto_alloc_skcipher + crypto_cipher_encrypt_one + crypto_destroy_tfm + __crypto_memneq + crypto_register_aead + crypto_register_template + crypto_shash_update + crypto_skcipher_decrypt + crypto_skcipher_encrypt + crypto_skcipher_setkey + crypto_unregister_aead + crypto_unregister_template + __crypto_xor + csum_partial + _ctype + default_llseek + delayed_work_timer_fn + del_timer + del_timer_sync + destroy_workqueue + dev_addr_mod + dev_close + dev_driver_string + _dev_err + dev_err_probe + devfreq_add_governor + devfreq_recommended_opp + devfreq_register_opp_notifier + devfreq_remove_governor + devfreq_resume_device + devfreq_suspend_device + devfreq_unregister_opp_notifier + dev_fwnode + dev_get_regmap + dev_get_tstats64 + device_create + device_create_file + device_destroy + device_get_child_node_count + device_get_match_data + device_get_named_child_node + device_get_next_child_node + device_initialize + device_link_add + device_link_del + device_property_match_string + device_property_present + device_property_read_string + device_property_read_u32_array + device_property_read_u8_array + device_remove_file + device_set_wakeup_capable + device_set_wakeup_enable + device_unregister + device_wakeup_disable + device_wakeup_enable + _dev_info + __dev_kfree_skb_any + devm_add_action + devm_backlight_device_register + devm_clk_bulk_get + devm_clk_bulk_get_all + devm_clk_get + devm_clk_get_optional + devm_clk_hw_register + devm_clk_register + devm_devfreq_add_device + devm_devfreq_event_add_edev + devm_device_add_group + devm_extcon_dev_allocate + devm_extcon_dev_register + devm_free_irq + devm_fwnode_gpiod_get_index + devm_get_clk_from_child + devm_gpiochip_add_data_with_key + devm_gpiod_get + devm_gpiod_get_index + devm_gpiod_get_index_optional + devm_gpiod_get_optional + devm_gpio_request + devm_gpio_request_one + devm_hwrng_register + devm_iio_channel_get + devm_iio_device_alloc + __devm_iio_device_register + devm_input_allocate_device + devm_ioremap + devm_ioremap_resource + devm_kasprintf + devm_kfree + devm_kmalloc + devm_kmemdup + devm_kstrdup + devm_led_classdev_register_ext + devm_mfd_add_devices + devm_nvmem_register + devm_of_clk_add_hw_provider + devm_of_phy_get + __devm_of_phy_provider_register + devm_phy_create + devm_phy_get + devm_phy_optional_get + devm_pinctrl_get + devm_pinctrl_register + devm_pinctrl_register_and_init + devm_platform_get_and_ioremap_resource + devm_platform_ioremap_resource + devm_platform_ioremap_resource_byname + devm_power_supply_register + devm_pwm_get + devm_regmap_field_alloc + __devm_regmap_init + __devm_regmap_init_i2c + __devm_regmap_init_mmio_clk + devm_regulator_bulk_get + devm_regulator_get + devm_regulator_get_optional + devm_regulator_register + devm_remove_action + devm_request_threaded_irq + devm_reset_control_array_get + __devm_reset_control_get + devm_rtc_allocate_device + __devm_rtc_register_device + devm_snd_dmaengine_pcm_register + devm_snd_soc_register_card + devm_snd_soc_register_component + devm_usb_get_phy + _dev_notice + dev_open + dev_pm_opp_clear_config + dev_pm_opp_disable + dev_pm_opp_find_freq_ceil + dev_pm_opp_find_freq_floor + dev_pm_opp_get_freq + dev_pm_opp_get_opp_count + dev_pm_opp_get_opp_table + dev_pm_opp_get_supplies + dev_pm_opp_get_voltage + dev_pm_opp_of_get_sharing_cpus + dev_pm_opp_of_remove_table + dev_pm_opp_put + dev_pm_opp_put_opp_table + dev_pm_opp_set_config + dev_pm_opp_set_rate + _dev_printk + devres_add + __devres_alloc_node + devres_free + dev_set_name + _dev_warn + disable_irq + disable_irq_nosync + dma_alloc_attrs + dma_buf_attach + dma_buf_begin_cpu_access + dma_buf_detach + dma_buf_end_cpu_access + dma_buf_export + dma_buf_fd + dma_buf_get + dma_buf_map_attachment + dma_buf_mmap + dma_buf_put + dma_buf_unmap_attachment + dma_buf_vmap + dma_buf_vunmap + dma_contiguous_default_area + dma_fence_add_callback + dma_fence_context_alloc + dma_fence_get_status + dma_fence_init + dma_fence_release + dma_fence_signal + dma_free_attrs + dma_get_sgtable_attrs + dma_heap_add + dma_heap_get_name + dmam_alloc_attrs + dma_map_page_attrs + dma_map_resource + dma_map_sg_attrs + dma_map_sgtable + dmam_free_coherent + dma_mmap_attrs + dma_release_channel + dma_request_chan + dma_set_coherent_mask + dma_set_mask + dma_sync_sg_for_cpu + dma_sync_sg_for_device + dma_sync_single_for_cpu + dma_sync_single_for_device + dma_unmap_page_attrs + dma_unmap_resource + dma_unmap_sg_attrs + do_trace_netlink_extack + down + down_read + down_write + driver_unregister + drm_add_edid_modes + drm_add_modes_noedid + drm_atomic_get_connector_state + drm_atomic_get_crtc_state + drm_atomic_get_new_connector_for_encoder + 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_connector_destroy_state + drm_atomic_helper_connector_duplicate_state + drm_atomic_helper_connector_reset + drm_bridge_add + drm_bridge_attach + drm_bridge_detect + drm_bridge_get_modes + drm_bridge_hpd_notify + drm_bridge_remove + drm_compat_ioctl + drm_connector_attach_encoder + drm_connector_cleanup + drm_connector_has_possible_encoder + 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_unregister + drm_connector_update_edid_property + ___drm_dbg + drm_detect_hdmi_monitor + drm_detect_monitor_audio + drm_dev_alloc + __drm_dev_dbg + drm_dev_printk + drm_dev_put + drm_dev_register + drm_dev_unregister + drm_display_info_set_bus_formats + drm_display_mode_from_videomode + drm_display_mode_to_videomode + __drm_err + drm_gem_dumb_map_offset + drm_gem_get_pages + drm_gem_handle_create + drm_gem_mmap + drm_gem_object_free + drm_gem_object_init + drm_gem_object_lookup + drm_gem_object_release + drm_gem_prime_fd_to_handle + drm_gem_prime_handle_to_fd + drm_gem_prime_mmap + drm_gem_put_pages + drm_gem_vm_close + drm_gem_vm_open + drm_get_edid + drm_hdmi_avi_infoframe_from_display_mode + drm_hdmi_avi_infoframe_quant_range + drm_hdmi_vendor_infoframe_from_display_mode + drm_helper_hpd_irq_event + drm_helper_probe_single_connector_modes + drm_ioctl + drm_kms_helper_hotplug_event + drm_kms_helper_is_poll_worker + drm_match_cea_mode + drm_mode_copy + drm_mode_create + drm_mode_duplicate + drm_mode_is_420_also + drm_mode_is_420_only + drm_mode_object_put + drm_mode_probed_add + drm_modeset_acquire_fini + drm_modeset_acquire_init + drm_modeset_backoff + drm_modeset_drop_locks + drm_modeset_lock + drm_mode_set_name + drm_modeset_unlock + drm_mode_validate_driver + drm_mode_vrefresh + drm_object_attach_property + drm_of_find_panel_or_bridge + drm_open + drm_panel_add + drm_panel_disable + drm_panel_enable + drm_panel_get_modes + drm_panel_init + drm_panel_prepare + drm_panel_unprepare + drm_poll + drm_prime_gem_destroy + drm_prime_get_contiguous_size + drm_prime_pages_to_sg + drm_prime_sg_to_page_array + drm_printf + drm_property_create_enum + drm_property_replace_global_blob + drm_read + drm_release + dummy_irq_chip + enable_irq + eth_mac_addr + ethtool_op_get_link + ethtool_op_get_ts_info + eth_type_trans + eth_validate_addr + extcon_get_edev_by_phandle + extcon_get_state + extcon_register_notifier + extcon_set_property_capability + extcon_set_state + extcon_set_state_sync + extcon_unregister_notifier + fd_install + _find_first_bit + _find_first_zero_bit + _find_next_bit + _find_next_zero_bit + finish_wait + flush_delayed_work + flush_work + __flush_workqueue + __folio_put + fortify_panic + fput + free_iova_fast + free_irq + free_netdev + __free_pages + free_pages + freq_qos_add_request + freq_qos_remove_request + freq_qos_update_request + fwnode_device_is_available + fwnode_get_name + fwnode_graph_get_next_endpoint + fwnode_graph_get_port_parent + fwnode_graph_get_remote_endpoint + fwnode_graph_get_remote_port_parent + fwnode_handle_put + fwnode_property_present + fwnode_property_read_u32_array + gcd + generic_handle_domain_irq + generic_mii_ioctl + __genphy_config_aneg + genphy_read_status + genphy_resume + genphy_soft_reset + genphy_suspend + gen_pool_add_owner + gen_pool_alloc_algo_owner + gen_pool_create + gen_pool_destroy + gen_pool_free_owner + get_cpu_device + get_device + __get_free_pages + get_random_bytes + get_unused_fd_flags + get_user_pages_remote + get_zeroed_page + gic_nonsecure_priorities + gpiochip_add_pin_range + gpiochip_generic_free + gpiochip_generic_request + gpiochip_get_data + gpiod_cansleep + gpiod_direction_input + gpiod_direction_output + gpiod_direction_output_raw + gpiod_get_optional + gpiod_get_raw_value + gpiod_get_value + gpiod_get_value_cansleep + gpiod_set_consumer_name + gpiod_set_raw_value + gpiod_set_raw_value_cansleep + gpiod_set_value + gpiod_set_value_cansleep + gpiod_to_irq + gpio_free + gpio_request + gpio_to_desc + handle_nested_irq + handle_simple_irq + hdmi_audio_infoframe_init + hdmi_audio_infoframe_pack + hdmi_drm_infoframe_pack + hdmi_infoframe_pack + hdmi_vendor_infoframe_pack + hid_debug + hid_hw_close + hid_hw_open + hid_hw_output_report + hid_hw_raw_request + hid_hw_request + hid_hw_start + hid_hw_stop + hid_open_report + __hid_register_driver + hid_unregister_driver + hid_validate_values + hrtimer_cancel + hrtimer_forward + hrtimer_init + hrtimer_start_range_ns + i2c_adapter_type + i2c_add_adapter + i2c_add_numbered_adapter + i2c_del_adapter + i2c_del_driver + i2c_get_adapter + i2c_put_adapter + i2c_register_driver + i2c_smbus_read_byte + i2c_smbus_read_byte_data + i2c_smbus_read_i2c_block_data + i2c_smbus_read_word_data + i2c_smbus_write_byte_data + i2c_smbus_write_i2c_block_data + __i2c_smbus_xfer + i2c_smbus_xfer + i2c_transfer + i2c_transfer_buffer_flags + i2c_verify_client + idr_alloc + idr_destroy + idr_find + idr_for_each + idr_get_next + idr_preload + idr_remove + iio_buffer_init + iio_buffer_put + iio_device_attach_buffer + iio_push_to_buffers + iio_read_channel_processed + init_net + __init_rwsem + __init_swait_queue_head + init_timer_key + init_wait_entry + __init_waitqueue_head + input_allocate_device + input_event + input_ff_create_memless + input_free_device + input_mt_init_slots + input_mt_report_slot_state + input_register_device + input_set_abs_params + input_set_capability + input_unregister_device + iommu_attach_device + iommu_attach_group + iommu_detach_device + iommu_detach_group + iommu_get_domain_for_dev + iommu_group_get + iommu_group_put + iommu_map + iommu_map_sg + iommu_set_fault_handler + iommu_unmap + ioremap_prot + iounmap + __irq_apply_affinity_hint + irq_create_mapping_affinity + irq_dispose_mapping + __irq_domain_add + irq_domain_remove + irq_get_irq_data + irq_modify_status + irq_of_parse_and_map + __irq_resolve_mapping + irq_set_chained_handler_and_data + irq_set_chip + irq_set_chip_and_handler_name + irq_set_chip_data + irq_set_irq_type + irq_set_irq_wake + irq_to_desc + is_vmalloc_addr + jiffies + jiffies_to_msecs + kasan_flag_enabled + kasprintf + kernel_neon_begin + kernel_neon_end + __kfifo_alloc + __kfifo_free + __kfifo_in + __kfifo_out + kfree + kfree_sensitive + kfree_skb_reason + kimage_voffset + __kmalloc + kmalloc_caches + kmalloc_large + kmalloc_trace + kmem_cache_alloc + kmem_cache_create + kmem_cache_destroy + kmemdup + kobject_create_and_add + kobject_init_and_add + kobject_put + kstrdup + kstrdup_const + kstrtoint + kstrtoll + kstrtouint + kstrtouint_from_user + kstrtoull + kthread_create_on_node + kthread_flush_worker + kthread_queue_work + kthread_should_stop + kthread_stop + ktime_get + ktime_get_mono_fast_ns + ktime_get_real_ts64 + ktime_get_with_offset + kvfree + kvfree_call_rcu + kvmalloc_node + led_classdev_register_ext + led_classdev_unregister + led_set_brightness_nosleep + led_trigger_register + led_trigger_unregister + __list_add_valid + __list_del_entry_valid + __local_bh_enable_ip + log_post_read_mmio + log_post_write_mmio + log_read_mmio + log_write_mmio + mdiobus_alloc_size + mdiobus_free + mdiobus_read + mdiobus_unregister + mdiobus_write + media_create_pad_link + media_device_cleanup + media_device_init + __media_device_register + media_device_unregister + media_entity_pads_init + media_graph_walk_cleanup + media_graph_walk_init + media_graph_walk_next + media_graph_walk_start + media_pad_remote_pad_first + memcpy + __memcpy_fromio + __memcpy_toio + memdup_user + memmove + mem_section + memset + __memset_io + memstart_addr + mfd_add_devices + mfd_remove_devices + mii_check_media + mii_ethtool_gset + mii_nway_restart + mipi_dsi_attach + mipi_dsi_create_packet + mipi_dsi_detach + mipi_dsi_device_register_full + mipi_dsi_device_unregister + mipi_dsi_host_register + mipi_dsi_host_unregister + misc_deregister + misc_register + __mmap_lock_do_trace_acquire_returned + __mmap_lock_do_trace_released + __mmap_lock_do_trace_start_locking + mmc_cqe_request_done + mmc_of_parse + mmc_request_done + __mmdrop + mod_delayed_work_on + mod_timer + module_layout + module_put + __msecs_to_jiffies + msleep + msleep_interruptible + __mutex_init + mutex_is_locked + mutex_lock + mutex_lock_interruptible + mutex_trylock + mutex_unlock + napi_gro_receive + __netdev_alloc_skb + netdev_err + netdev_info + netdev_update_features + netdev_warn + netif_carrier_off + netif_carrier_on + netif_rx + netif_tx_wake_queue + netlink_unicast + net_ratelimit + nla_memcpy + __nla_parse + nla_put + nla_reserve + nonseekable_open + noop_llseek + nr_cpu_ids + ns_to_kernel_old_timeval + ns_to_timespec64 + nvmem_cell_get + nvmem_cell_put + nvmem_cell_read + of_address_to_resource + of_alias_get_id + of_clk_add_hw_provider + of_clk_add_provider + of_clk_del_provider + of_clk_get + of_clk_get_by_name + of_clk_get_parent_count + of_clk_hw_simple_get + of_clk_src_onecell_get + of_clk_src_simple_get + of_count_phandle_with_args + of_device_get_match_data + of_device_is_available + of_device_is_compatible + of_drm_find_bridge + of_drm_find_panel + of_find_compatible_node + of_find_device_by_node + of_find_i2c_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_drm_display_mode + of_get_i2c_adapter_by_node + of_get_named_gpio_flags + of_get_next_available_child + of_get_next_child + of_get_parent + of_get_property + of_get_regulator_init_data + of_graph_get_endpoint_by_regs + of_graph_get_next_endpoint + of_graph_get_remote_node + of_graph_get_remote_port_parent + of_graph_parse_endpoint + of_iomap + of_irq_get_byname + of_machine_is_compatible + of_match_device + of_match_node + of_node_name_eq + of_nvmem_cell_get + __of_parse_phandle_with_args + of_phy_simple_xlate + of_property_count_elems_of_size + of_property_match_string + of_property_read_string + of_property_read_string_helper + of_property_read_u32_index + of_property_read_u64 + of_property_read_u64_index + of_property_read_variable_u32_array + of_property_read_variable_u8_array + of_prop_next_string + of_regulator_match + of_reserved_mem_device_init_by_idx + __of_reset_control_get + of_usb_get_dr_mode_by_phy + of_usb_host_tpl_support + page_pinner_inited + __page_pinner_put_page + panic_notifier_list + param_get_int + param_ops_bool + param_ops_charp + param_ops_int + param_ops_string + param_ops_uint + pcie_capability_clear_and_set_word + pci_read_config_dword + pci_write_config_dword + __per_cpu_offset + perf_trace_buf_alloc + perf_trace_run_bpf_submit + phy_attached_info + phy_configure + phy_drivers_register + phy_drivers_unregister + phy_exit + phy_init + phy_mipi_dphy_config_validate + phy_power_off + phy_power_on + phy_set_mode_ext + pinconf_generic_dt_free_map + pinconf_generic_dt_node_to_map + pinctrl_dev_get_drvdata + pinctrl_enable + pinctrl_generic_add_group + pinctrl_generic_get_group + pinctrl_generic_get_group_count + pinctrl_generic_get_group_name + pinctrl_generic_get_group_pins + pinctrl_gpio_direction_input + pinctrl_gpio_direction_output + pinctrl_lookup_state + pinctrl_pm_select_default_state + pinctrl_pm_select_idle_state + pinctrl_pm_select_sleep_state + pinctrl_select_state + pinctrl_utils_free_map + pinmux_generic_add_function + pinmux_generic_get_function + pinmux_generic_get_function_count + pinmux_generic_get_function_groups + pinmux_generic_get_function_name + platform_device_put + platform_device_register_full + platform_device_unregister + __platform_driver_probe + __platform_driver_register + platform_driver_unregister + platform_get_ethdev_address + platform_get_irq + platform_get_irq_byname + platform_get_irq_optional + platform_get_resource + platform_get_resource_byname + pm_clk_create + pm_clk_destroy + pm_power_off + __pm_relax + pm_relax + __pm_runtime_disable + pm_runtime_enable + pm_runtime_forbid + pm_runtime_force_resume + pm_runtime_force_suspend + pm_runtime_get_if_active + __pm_runtime_idle + __pm_runtime_resume + pm_runtime_set_autosuspend_delay + __pm_runtime_set_status + __pm_runtime_suspend + __pm_runtime_use_autosuspend + __pm_stay_awake + pm_stay_awake + pm_wakeup_dev_event + pm_wakeup_ws_event + power_supply_am_i_supplied + power_supply_changed + power_supply_class + power_supply_get_battery_info + power_supply_get_by_name + power_supply_get_by_phandle + power_supply_get_drvdata + power_supply_get_property + power_supply_register + power_supply_reg_notifier + power_supply_unregister + preempt_schedule + preempt_schedule_notrace + prepare_to_wait_event + print_hex_dump + _printk + proc_create + proc_create_data + proc_dointvec + proc_mkdir + pskb_expand_head + __pskb_pull_tail + put_device + __put_task_struct + put_unused_fd + pwm_adjust_config + pwm_apply_state + queue_delayed_work_on + queue_work_on + ___ratelimit + rational_best_approximation + _raw_read_lock_irqsave + _raw_read_unlock_irqrestore + _raw_spin_lock + _raw_spin_lock_bh + _raw_spin_lock_irq + _raw_spin_lock_irqsave + _raw_spin_trylock + _raw_spin_unlock + _raw_spin_unlock_bh + _raw_spin_unlock_irq + _raw_spin_unlock_irqrestore + _raw_write_lock_irqsave + _raw_write_unlock_irqrestore + rb_erase + rb_insert_color + rb_next + __rcu_read_lock + __rcu_read_unlock + rdev_get_drvdata + rdev_get_id + refcount_warn_saturate + regcache_cache_only + regcache_mark_dirty + regcache_sync + register_chrdev_region + register_inetaddr_notifier + register_netdev + register_netdevice + register_netdevice_notifier + register_pm_notifier + register_reboot_notifier + register_restart_handler + regmap_bulk_read + regmap_bulk_write + regmap_field_read + regmap_field_update_bits_base + regmap_irq_get_domain + regmap_irq_get_virq + regmap_multi_reg_write + regmap_raw_read + regmap_raw_write + regmap_read + regmap_update_bits_base + regmap_write + regulator_bulk_disable + regulator_bulk_enable + regulator_disable + regulator_disable_regmap + regulator_enable + regulator_enable_regmap + regulator_get + regulator_get_optional + regulator_get_voltage + regulator_get_voltage_sel_regmap + regulator_is_enabled + regulator_is_enabled_regmap + regulator_list_voltage_linear + regulator_list_voltage_linear_range + regulator_map_voltage_linear + regulator_map_voltage_linear_range + regulator_put + regulator_register_notifier + regulator_set_ramp_delay_regmap + regulator_set_voltage + regulator_set_voltage_sel_regmap + regulator_set_voltage_time_sel + regulator_unregister + regulator_unregister_notifier + release_firmware + remap_pfn_range + remove_proc_entry + request_firmware + request_threaded_irq + reset_control_assert + reset_control_deassert + rfkill_alloc + rfkill_destroy + rfkill_register + rfkill_set_hw_state_reason + rfkill_unregister + round_jiffies_relative + rtc_class_open + rtc_read_time + rtc_time64_to_tm + rtc_tm_to_time64 + rtc_valid_tm + rtnl_is_locked + rtnl_lock + rtnl_unlock + scatterwalk_map_and_copy + sched_clock + sched_set_fifo + schedule + schedule_timeout + scnprintf + __sdhci_add_host + sdhci_cleanup_host + sdhci_enable_clk + sdhci_get_property + sdhci_pltfm_clk_get_max_clock + sdhci_pltfm_free + sdhci_pltfm_init + sdhci_reset + sdhci_resume_host + sdhci_set_bus_width + sdhci_set_clock + sdhci_setup_host + sdhci_suspend_host + seq_lseek + seq_printf + seq_putc + seq_puts + seq_read + set_page_dirty_lock + sg_alloc_table + sg_alloc_table_from_pages_segment + sg_free_table + sg_init_one + sg_init_table + sg_nents + sg_next + simple_attr_open + simple_attr_release + simple_read_from_buffer + simple_strtol + simple_strtoul + single_open + single_release + skb_add_rx_frag + skb_clone + skb_copy + skb_copy_bits + skb_copy_expand + skb_pull + skb_push + skb_put + skb_trim + skcipher_alloc_instance_simple + skcipher_register_instance + skcipher_walk_done + skcipher_walk_virt + snd_ctl_boolean_mono_info + snd_pcm_format_width + snd_pcm_stop_xrun + snd_soc_add_component_controls + snd_soc_add_dai_controls + snd_soc_card_jack_new_pins + snd_soc_component_read + snd_soc_component_set_jack + snd_soc_component_update_bits + snd_soc_component_write + snd_soc_daifmt_clock_provider_from_bitmap + snd_soc_daifmt_parse_clock_provider_raw + snd_soc_daifmt_parse_format + snd_soc_dai_set_sysclk + snd_soc_dapm_add_routes + snd_soc_dapm_disable_pin_unlocked + snd_soc_dapm_force_enable_pin_unlocked + snd_soc_dapm_get_enum_double + snd_soc_dapm_get_volsw + snd_soc_dapm_new_controls + snd_soc_dapm_put_enum_double + snd_soc_dapm_put_volsw + snd_soc_dapm_sync_unlocked + snd_soc_get_dai_name + snd_soc_get_enum_double + snd_soc_get_volsw + snd_soc_info_enum_double + snd_soc_info_volsw + snd_soc_jack_add_gpios + snd_soc_jack_report + snd_soc_of_parse_audio_routing + snd_soc_of_parse_card_name + snd_soc_params_to_frame_size + snd_soc_pm_ops + snd_soc_put_enum_double + snd_soc_put_volsw + snd_soc_unregister_component + snprintf + sort + __spi_register_driver + spi_setup + spi_sync + sprintf + sscanf + __stack_chk_fail + strcasecmp + strchr + strcmp + strcpy + strlcat + strlcpy + strlen + strncasecmp + strncmp + strncpy + strnlen + strrchr + strscpy + strsep + strstr + __sw_hweight16 + __sw_hweight32 + __sw_hweight64 + __sw_hweight8 + swiotlb_max_segment + sync_file_create + sync_file_get_fence + synchronize_irq + synchronize_net + synchronize_rcu + syscon_node_to_regmap + syscon_regmap_lookup_by_phandle + sysfs_create_file_ns + sysfs_create_group + sysfs_create_link + sysfs_remove_file_ns + sysfs_remove_group + sysfs_remove_link + sysfs_streq + system_freezable_wq + system_highpri_wq + system_long_wq + system_power_efficient_wq + system_state + system_wq + tasklet_init + tasklet_kill + __tasklet_schedule + tasklet_setup + tasklet_unlock_wait + __task_pid_nr_ns + tcpm_tcpc_reset + thermal_zone_get_zone_by_name + trace_event_buffer_commit + trace_event_buffer_reserve + trace_event_printf + trace_event_raw_init + trace_event_reg + trace_handle_return + __traceiter_mmap_lock_acquire_returned + __traceiter_mmap_lock_released + __traceiter_mmap_lock_start_locking + __tracepoint_mmap_lock_acquire_returned + __tracepoint_mmap_lock_released + __tracepoint_mmap_lock_start_locking + trace_print_array_seq + trace_raw_output_prep + __trace_trigger_soft_disabled + typec_mux_get_drvdata + typec_mux_register + typec_mux_unregister + typec_switch_get_drvdata + typec_switch_register + typec_switch_unregister + __udelay + unregister_chrdev_region + unregister_inetaddr_notifier + unregister_netdev + unregister_netdevice_notifier + unregister_netdevice_queue + unregister_reboot_notifier + unregister_sysctl_table + up + update_devfreq + up_read + up_write + usb_add_hcd + usb_alloc_urb + usb_autopm_get_interface + usb_autopm_put_interface + usb_calc_bus_time + usb_control_msg + usb_create_hcd + usb_debug_root + usb_deregister + usb_deregister_dev + usb_disabled + usb_free_urb + usb_hcd_check_unlink_urb + usb_hcd_giveback_urb + usb_hcd_link_urb_to_ep + usb_hcd_resume_root_hub + usb_hcd_unlink_urb_from_ep + usb_hid_driver + usbnet_change_mtu + usbnet_defer_kevent + usbnet_disconnect + usbnet_get_drvinfo + usbnet_get_endpoints + usbnet_get_link + usbnet_get_link_ksettings_mii + usbnet_get_msglevel + usbnet_link_change + usbnet_nway_reset + usbnet_open + usbnet_probe + usbnet_read_cmd + usbnet_read_cmd_nopm + usbnet_resume + usbnet_set_link_ksettings_mii + usbnet_set_msglevel + usbnet_skb_return + usbnet_start_xmit + usbnet_stop + usbnet_suspend + usbnet_tx_timeout + usbnet_write_cmd + usbnet_write_cmd_async + usbnet_write_cmd_nopm + usb_put_hcd + usb_register_dev + usb_register_driver + usb_remove_hcd + usb_set_interface + usb_submit_urb + __usecs_to_jiffies + usleep_range_state + v4l2_ctrl_find + v4l2_ctrl_g_ctrl + v4l2_ctrl_g_ctrl_int64 + v4l2_ctrl_handler_free + v4l2_ctrl_handler_init_class + __v4l2_ctrl_handler_setup + v4l2_ctrl_handler_setup + __v4l2_ctrl_modify_range + v4l2_ctrl_new_custom + v4l2_ctrl_new_int_menu + v4l2_ctrl_new_std + v4l2_ctrl_new_std_menu + v4l2_ctrl_new_std_menu_items + __v4l2_ctrl_s_ctrl + __v4l2_ctrl_s_ctrl_int64 + v4l2_ctrl_subdev_subscribe_event + v4l2_device_register + v4l2_device_register_subdev + __v4l2_device_register_subdev_nodes + v4l2_device_unregister + v4l2_device_unregister_subdev + v4l2_enum_dv_timings_cap + v4l2_event_queue + v4l2_event_subdev_unsubscribe + v4l2_event_subscribe + v4l2_event_unsubscribe + v4l2_fh_open + v4l2_i2c_subdev_init + v4l2_match_dv_timings + v4l2_pipeline_link_notify + v4l2_pipeline_pm_get + v4l2_pipeline_pm_put + v4l2_print_dv_timings + v4l2_querymenu + v4l2_src_change_event_subdev_subscribe + v4l2_subdev_call_wrappers + v4l2_subdev_init + v4l2_subdev_link_validate + v4l2_subdev_notify_event + v4l2_type_names + v4l2_valid_dv_timings + vb2_buffer_done + vb2_dma_contig_memops + vb2_fop_mmap + vb2_fop_poll + vb2_fop_release + vb2_ioctl_create_bufs + vb2_ioctl_dqbuf + vb2_ioctl_expbuf + vb2_ioctl_prepare_buf + vb2_ioctl_qbuf + vb2_ioctl_querybuf + vb2_ioctl_reqbufs + vb2_ioctl_streamoff + vb2_ioctl_streamon + vb2_ops_wait_finish + vb2_ops_wait_prepare + vb2_plane_cookie + vb2_plane_vaddr + vb2_queue_init + vb2_queue_release + vb2_vmalloc_memops + vfree + video_devdata + video_device_pipeline_start + video_device_pipeline_stop + video_device_release_empty + video_ioctl2 + __video_register_device + video_unregister_device + vmalloc + vmap + vm_get_page_prot + vm_map_pages + vsnprintf + vunmap + vzalloc + wait_for_completion + wait_for_completion_timeout + __wake_up + wake_up_process + wakeup_source_add + wakeup_source_remove + __warn_printk + work_busy + +# required by act8865-regulator.ko + regulator_set_pull_down_regmap + +# required by adc-keys.ko + iio_get_channel_type + input_set_poll_interval + input_setup_polling + +# required by aes-ce-ccm.ko + ce_aes_expandkey + skcipher_walk_aead_decrypt + skcipher_walk_aead_encrypt + +# required by analogix_dp.ko + drm_atomic_get_old_connector_for_encoder + +# required by aspm_ext.ko + pci_find_capability + pci_find_ext_capability + +# required by bcmdhd.ko + alloc_etherdev_mqs + cpu_bit_bitmap + down_interruptible + down_timeout + get_random_u32 + iwe_stream_add_event + iwe_stream_add_point + iwe_stream_add_value + __kfifo_init + kobject_uevent + kthread_complete_and_exit + mmc_set_data_timeout + mmc_sw_reset + mmc_wait_for_req + netdev_state_change + __netlink_kernel_create + netlink_kernel_release + nla_put_nohdr + __nlmsg_put + _raw_read_lock_bh + _raw_read_unlock_bh + sched_set_fifo_low + sched_set_normal + sdio_claim_host + sdio_disable_func + sdio_enable_func + sdio_f0_readb + sdio_f0_writeb + sdio_get_host_pm_caps + sdio_memcpy_fromio + sdio_memcpy_toio + sdio_readb + sdio_readl + sdio_readsb + sdio_readw + sdio_register_driver + sdio_release_host + sdio_set_block_size + sdio_set_host_pm_flags + sdio_unregister_driver + sdio_writeb + sdio_writel + sdio_writew + set_cpus_allowed_ptr + __skb_pad + sock_wfree + sprint_symbol + strcat + strspn + sys_tz + unregister_pm_notifier + vprintk + wireless_send_event + +# required by bifrost_kbase.ko + __arch_clear_user + __bitmap_weight + cache_line_size + clear_page + __ClearPageMovable + complete_all + devfreq_add_device + devfreq_cooling_em_register + devfreq_cooling_unregister + devfreq_remove_device + dev_pm_opp_find_freq_exact + dma_fence_default_wait + dma_fence_remove_callback + downgrade_write + down_read_trylock + dump_stack + find_get_pid + find_vma_intersection + __folio_lock + freezer_active + freezing_slow_path + generic_file_llseek + get_user_pages + get_user_pages_fast + hrtimer_active + iomem_resource + kobject_del + kstrndup + kstrtobool_from_user + ktime_get_raw + ktime_get_raw_ts64 + mas_empty_area_rev + memchr + of_dma_is_coherent + of_property_read_variable_u64_array + param_array_ops + param_ops_byte + pid_task + pin_user_pages + pin_user_pages_remote + put_pid + rb_first + rb_prev + rb_replace_node + __refrigerator + register_oom_notifier + register_shrinker + __release_region + remap_vmalloc_range + __request_region + seq_open + __seq_open_private + seq_release + seq_release_private + seq_write + set_freezable + __SetPageMovable + shmem_file_setup + simple_open + strcspn + _totalram_pages + __traceiter_gpu_mem_total + trace_output_call + __tracepoint_gpu_mem_total + trace_print_flags_seq + trace_print_symbols_seq + try_module_get + unlock_page + unmap_mapping_range + unpin_user_page + unregister_oom_notifier + unregister_shrinker + vmalloc_user + vmf_insert_pfn_prot + +# required by bq25890_charger.ko + devm_regmap_field_bulk_alloc + power_supply_get_property_from_supplier + +# required by cdc-wdm.ko + cdc_parse_cdc_header + usb_poison_urb + usb_unpoison_urb + +# required by cdc_mbim.ko + cdc_ncm_bind_common + cdc_ncm_change_mtu + cdc_ncm_fill_tx_frame + cdc_ncm_rx_verify_ndp16 + cdc_ncm_rx_verify_nth16 + cdc_ncm_select_altsetting + cdc_ncm_unbind + in6_dev_finish_destroy + __ipv6_addr_type + ipv6_stub + usb_match_id + __vlan_find_dev_deep_rcu + +# required by cfg80211.ko + bpf_trace_run10 + bpf_trace_run8 + __dev_change_net_namespace + __dev_get_by_index + dev_get_by_index + device_add + device_del + device_rename + genlmsg_multicast_allns + genlmsg_put + genl_register_family + genl_unregister_family + get_net_ns_by_fd + get_net_ns_by_pid + inet_csk_get_port + init_uts_ns + key_create_or_update + key_put + keyring_alloc + kobject_uevent_env + ktime_get_coarse_with_offset + memcmp + netlink_broadcast + netlink_register_notifier + netlink_unregister_notifier + net_ns_type_operations + nla_find + nla_put_64bit + __nla_validate + of_prop_next_u32 + __put_net + register_pernet_device + request_firmware_nowait + rfkill_blocked + rfkill_resume_polling + __sock_create + sock_release + unregister_pernet_device + verify_pkcs7_signature + wireless_nlevent_flush + +# required by clk-link.ko + pm_clk_add + pm_clk_resume + pm_clk_suspend + +# required by clk-out.ko + __clk_hw_register_gate + of_clk_parent_fill + +# required by clk-rk628.ko + devm_reset_controller_register + +# required by clk-rockchip-regmap.ko + clk_hw_get_num_parents + clk_hw_get_parent_by_index + divider_recalc_rate + divider_round_rate_parent + +# required by clk-rockchip.ko + clk_divider_ops + clk_divider_ro_ops + clk_fixed_factor_ops + clk_fractional_divider_general_approximation + clk_fractional_divider_ops + __clk_get_hw + clk_hw_register_composite + clk_hw_round_rate + clk_hw_unregister_composite + clk_mux_ops + clk_mux_ro_ops + clk_register_divider_table + clk_register_fixed_factor + clk_register_gate + clk_register_mux_table + match_string + reset_controller_register + +# required by clk-scmi.ko + clk_hw_set_rate_range + of_clk_hw_onecell_get + scmi_driver_register + scmi_driver_unregister + +# required by cm3218.ko + i2c_smbus_write_word_data + +# required by cma_heap.ko + cma_get_name + dma_heap_get_drvdata + +# required by cpufreq-dt.ko + cpufreq_enable_boost_support + cpufreq_freq_attr_scaling_available_freqs + cpufreq_freq_attr_scaling_boost_freqs + cpufreq_generic_frequency_table_verify + cpufreq_generic_get + cpufreq_register_driver + cpufreq_unregister_driver + dev_pm_opp_free_cpufreq_table + dev_pm_opp_get_max_transition_latency + dev_pm_opp_get_sharing_cpus + dev_pm_opp_get_suspend_opp_freq + dev_pm_opp_init_cpufreq_table + dev_pm_opp_of_cpumask_add_table + dev_pm_opp_of_cpumask_remove_table + dev_pm_opp_of_register_em + dev_pm_opp_set_sharing_cpus + policy_has_boost_freq + +# required by cpufreq_ondemand.ko + cpufreq_cpu_get_raw + cpufreq_dbs_governor_exit + cpufreq_dbs_governor_init + cpufreq_dbs_governor_limits + cpufreq_dbs_governor_start + cpufreq_dbs_governor_stop + cpufreq_table_index_unsorted + dbs_update + get_cpu_idle_time_us + gov_update_cpu_data + sampling_rate_store + +# required by cqhci.ko + devm_blk_crypto_profile_init + +# required by cryptodev.ko + crypto_alloc_akcipher + flush_dcache_page + krealloc + register_sysctl_table + sg_last + +# required by cw221x_battery.ko + power_supply_is_system_supplied + +# required by display-connector.ko + drm_atomic_get_new_bridge_state + drm_probe_ddc + +# required by dm9601.ko + mii_link_ok + +# required by drm_display_helper.ko + drm_atomic_get_new_private_obj_state + drm_atomic_get_old_private_obj_state + drm_atomic_get_private_obj_state + __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 + drm_display_mode_from_cea_vic + drm_edid_duplicate + drm_edid_get_monitor_name + drm_modeset_lock_single_interruptible + drm_object_property_set_value + __drm_printfn_debug + drm_sysfs_connector_status_event + hdmi_drm_infoframe_init + memchr_inv + request_firmware_direct + +# required by drm_dma_helper.ko + dma_alloc_pages + dma_free_pages + dma_mmap_pages + drm_atomic_helper_damage_iter_init + drm_atomic_helper_damage_iter_next + drm_format_info_block_height + drm_format_info_block_width + drm_gem_create_mmap_offset + drm_gem_fb_get_obj + drm_gem_private_object_init + +# required by dw-hdmi-hdcp.ko + kstrtobool + sha1_init + sha1_transform + +# required by dw-hdmi-qp.ko + drm_mode_equal + hdmi_avi_infoframe_pack_only + +# required by dw-hdmi.ko + drm_connector_attach_hdr_output_metadata_property + drm_connector_attach_max_bpc_property + drm_default_rgb_quant_range + +# required by dw-mipi-dsi.ko + drm_panel_bridge_remove + +# required by dw_mmc-rockchip.ko + clk_get_phase + mmc_send_tuning + +# required by dw_mmc.ko + device_property_read_string_array + mmc_add_host + mmc_alloc_host + mmc_can_gpio_cd + mmc_detect_change + mmc_free_host + mmc_gpio_get_cd + mmc_gpio_get_ro + mmc_regulator_get_supply + mmc_regulator_set_ocr + mmc_regulator_set_vqmmc + mmc_remove_host + sdio_signal_irq + sg_miter_next + sg_miter_start + sg_miter_stop + +# required by dw_wdt.ko + watchdog_init_timeout + watchdog_register_device + watchdog_set_restart_priority + watchdog_unregister_device + +# required by dwc2.ko + __bitmap_clear + bitmap_find_next_zero_area_off + kmem_cache_free + of_usb_update_otg_caps + phy_reset + usb_add_gadget_udc + usb_del_gadget_udc + usb_ep_set_maxpacket_limit + usb_gadget_giveback_request + usb_gadget_map_request + usb_gadget_set_state + usb_gadget_unmap_request + usb_get_dr_mode + usb_get_role_switch_default_mode + usb_hcd_map_urb_for_dma + usb_hcd_unmap_urb_for_dma + usb_hub_clear_tt_buffer + usb_phy_set_charger_current + usb_role_switch_get_drvdata + usb_role_switch_get_role + usb_role_switch_register + usb_role_switch_unregister + usb_speed_string + usb_wakeup_enabled_descendants + +# required by dwmac-rockchip.ko + csum_tcpudp_nofold + ip_send_check + of_get_phy_mode + +# required by fusb302.ko + extcon_get_extcon_dev + fwnode_create_software_node + kthread_create_worker + kthread_destroy_worker + tcpm_cc_change + tcpm_pd_hard_reset + tcpm_pd_receive + tcpm_pd_transmit_complete + tcpm_register_port + tcpm_unregister_port + tcpm_vbus_change + +# required by gc2145.ko + v4l2_ctrl_subdev_log_status + +# required by gpio-regulator.ko + gpiod_count + +# required by gpio-rockchip.ko + gpiochip_add_data_with_key + gpiochip_relres_irq + gpiochip_remove + gpiochip_reqres_irq + handle_edge_irq + handle_level_irq + __irq_alloc_domain_generic_chips + irq_gc_ack_set_bit + irq_gc_mask_clr_bit + irq_gc_mask_set_bit + irq_gc_set_wake + irq_generic_chip_ops + irq_get_domain_generic_chip + of_pinctrl_get + +# required by hid-alps.ko + input_alloc_absinfo + input_mt_sync_frame + +# required by hid-holtek-kbd.ko + usb_ifnum_to_if + +# required by hid-primax.ko + hid_report_raw_event + +# required by hid-thrustmaster.ko + usb_interrupt_msg + usb_kill_urb + +# required by i2c-dev.ko + bus_register_notifier + bus_unregister_notifier + device_for_each_child + i2c_bus_type + i2c_for_each_dev + sysfs_emit + +# required by i2c-gpio.ko + desc_to_gpio + i2c_bit_add_numbered_bus + +# required by i2c-hid.ko + hid_add_device + hid_allocate_device + hid_destroy_device + hid_driver_reset_resume + hid_driver_suspend + hid_input_report + hid_parse_report + +# required by i2c-mux.ko + __i2c_transfer + rt_mutex_lock + rt_mutex_trylock + rt_mutex_unlock + +# required by i2c-rk3x.ko + i2c_parse_fw_timings + unregister_restart_handler + +# required by industrialio-buffer-cb.ko + iio_channel_get_all + iio_channel_release_all + iio_update_buffers + +# required by industrialio-triggered-buffer.ko + iio_alloc_pollfunc + iio_dealloc_pollfunc + iio_device_id + +# required by io-domain.ko + _dev_crit + +# required by kalmia.ko + usb_bulk_msg + +# required by kfifo_buf.ko + __kfifo_from_user + __kfifo_to_user + +# required by leds-gpio.ko + led_init_default_state_get + +# required by leds-rgb13h.ko + led_classdev_flash_register_ext + led_classdev_flash_unregister + +# required by ledtrig-heartbeat.ko + avenrun + +# required by mac80211.ko + alloc_netdev_mqs + __alloc_percpu_gfp + arc4_crypt + arc4_setkey + call_rcu + crc32_be + crypto_shash_digest + crypto_shash_finup + crypto_shash_setkey + dev_alloc_name + dev_fetch_sw_netstats + __dev_queue_xmit + ether_setup + free_percpu + get_random_u16 + __hw_addr_init + __hw_addr_sync + __hw_addr_unsync + kernel_param_lock + kernel_param_unlock + kfree_skb_list_reason + ktime_get_seconds + netdev_set_default_ethtool_ops + netif_receive_skb + netif_receive_skb_list + netif_tx_stop_all_queues + ___pskb_trim + rcu_barrier + register_inet6addr_notifier + rhashtable_free_and_destroy + rhashtable_insert_slow + rhltable_init + __rht_bucket_nested + rht_bucket_nested + rht_bucket_nested_insert + round_jiffies + round_jiffies_up + skb_checksum_help + skb_clone_sk + skb_complete_wifi_ack + skb_dequeue + skb_ensure_writable + __skb_get_hash + __skb_gso_segment + skb_queue_head + skb_queue_purge + skb_queue_tail + unregister_inet6addr_notifier + unregister_netdevice_many + +# required by max96755f.ko + kstrtou8 + +# required by ohci-hcd.ko + dma_pool_alloc + dma_pool_create + dma_pool_destroy + dma_pool_free + gen_pool_dma_alloc_align + gen_pool_dma_zalloc_align + sb800_prefetch + schedule_timeout_uninterruptible + usb_amd_dev_put + usb_amd_quirk_pll_disable + usb_amd_quirk_pll_enable + usb_hc_died + usb_hcd_poll_rh_status + usb_hcds_loaded + usb_root_hub_lost_power + +# required by ohci-platform.ko + usb_hcd_platform_shutdown + +# required by optee-rng.ko + driver_register + +# required by optee.ko + alloc_pages_exact + __arm_smccc_hvc + bus_for_each_dev + device_register + free_pages_exact + mas_find + memremap + memunmap + pfn_is_map_memory + wait_for_completion_interruptible + +# required by panel-simple.ko + drm_bus_flags_from_videomode + drm_connector_set_panel_orientation + drm_panel_of_backlight + drm_panel_remove + mipi_dsi_compression_mode + mipi_dsi_dcs_get_display_brightness + mipi_dsi_dcs_set_display_brightness + mipi_dsi_dcs_write_buffer + mipi_dsi_driver_register_full + mipi_dsi_driver_unregister + mipi_dsi_generic_write + mipi_dsi_picture_parameter_set + of_drm_get_panel_orientation + of_find_i2c_adapter_by_node + of_get_display_timing + videomode_from_timing + +# required by pcie-dw-rockchip.ko + device_release_driver + dw_pcie_find_ext_capability + dw_pcie_host_init + dw_pcie_link_up + dw_pcie_read + dw_pcie_read_dbi + dw_pcie_setup_rc + dw_pcie_write + dw_pcie_write_dbi + generic_handle_irq + pci_disable_link_state + pci_set_power_state + +# required by pcierockchiphost.ko + devm_pci_alloc_host_bridge + devm_pci_remap_cfg_resource + jiffies_to_usecs + of_pci_get_max_link_speed + pci_host_probe + pci_remove_root_bus + pci_stop_root_bus + regulator_get_current_limit + +# required by pcs_xpcs.ko + __bitmap_and + mdiobus_modify_changed + phylink_mii_c22_pcs_decode_state + phylink_mii_c22_pcs_encode_advertisement + +# required by phy-rockchip-inno-usb2.ko + devm_extcon_register_notifier + extcon_sync + +# required by phy-rockchip-inno-usb3.ko + usb_add_phy + +# required by phy-rockchip-samsung-hdptx-hdmi.ko + of_platform_device_create + +# required by phy-rockchip-usbdp.ko + usb_get_maximum_speed + +# required by pinctrl-rk628.ko + irq_domain_xlate_twocell + pinctrl_add_gpio_range + pinctrl_find_gpio_range_from_pin + +# required by pinctrl-rk805.ko + device_set_node + +# required by pinctrl-rockchip.ko + devm_kasprintf_strarray + of_find_node_by_phandle + of_platform_depopulate + of_platform_populate + pinconf_generic_parse_dt_config + pinctrl_force_default + pinctrl_force_sleep + pin_get_name + +# required by pl330.ko + amba_driver_register + amba_driver_unregister + dma_async_device_register + dma_async_device_unregister + dma_async_tx_descriptor_init + dmaengine_unmap_put + dma_get_slave_channel + loops_per_jiffy + of_dma_controller_free + of_dma_controller_register + pm_runtime_irq_safe + +# required by pm_domains.ko + clk_bulk_put + of_genpd_add_provider_onecell + panic + param_get_bool + param_set_bool + pm_clk_add_clk + pm_genpd_add_subdomain + pm_genpd_init + pm_genpd_remove + pm_wq + +# required by pwm-regulator.ko + regulator_map_voltage_iterate + +# required by pwm-rockchip.ko + __ndelay + pwmchip_add + pwmchip_remove + +# required by pwm_bl.ko + backlight_device_register + backlight_device_unregister + pwm_free + pwm_request + +# required by pwrseq_simple.ko + bitmap_alloc + devm_gpiod_get_array + gpiod_set_array_value_cansleep + mmc_pwrseq_register + mmc_pwrseq_unregister + +# required by reboot-mode.ko + devres_release + kernel_kobj + kfree_const + +# required by rfkill-rk.ko + rfkill_init_sw_state + rfkill_set_sw_state + +# required by rga3.ko + dma_fence_wait_timeout + find_vma + idr_alloc_cyclic + kstrdup_quotable_cmdline + mmput + +# required by rk628.ko + irq_domain_xlate_onetwocell + irq_set_parent + +# required by rk628_dsi.ko + bus_find_device + device_match_name + platform_bus_type + +# required by rk805-pwrkey.ko + devm_request_any_context_irq + +# required by rk806-core.ko + devm_regmap_add_irq_chip + +# required by rk806-spi.ko + spi_write_then_read + +# required by rk808-regulator.ko + gpiod_is_active_low + +# required by rk808.ko + devm_register_sys_off_handler + platform_device_add + platform_device_alloc + register_syscore_ops + regmap_add_irq_chip + regmap_del_irq_chip + unregister_syscore_ops + +# required by rk860x-regulator.ko + regulator_suspend_enable + +# required by rk_crypto.ko + crypto_ahash_digest + crypto_ahash_finup + crypto_dequeue_request + crypto_enqueue_request + crypto_init_queue + crypto_register_ahash + crypto_register_akcipher + crypto_register_skcipher + crypto_req_done + crypto_unregister_ahash + crypto_unregister_akcipher + crypto_unregister_skcipher + des_expand_key + rsa_parse_priv_key + rsa_parse_pub_key + scatterwalk_ffwd + sg_copy_from_buffer + sg_copy_to_buffer + sg_nents_for_len + sg_pcopy_from_buffer + sg_pcopy_to_buffer + +# required by rk_fiq_debugger.ko + console_lock + console_unlock + __cpuhp_setup_state + cpu_pm_register_notifier + of_irq_parse_one + oops_in_progress + platform_device_register + +# required by rk_headset_irq_hook_adc.ko + iio_read_channel_raw + +# required by rk_ircut.ko + drain_workqueue + +# required by rk_vcodec.ko + devm_iounmap + disable_hardirq + __fdget + __kthread_init_worker + kthread_worker_fn + proc_create_single_data + proc_remove + reserve_iova + +# required by rknpu.ko + dev_pm_domain_attach_by_name + dev_pm_domain_detach + drm_gem_handle_delete + drm_gem_mmap_obj + drm_gem_prime_export + drm_gem_prime_import_dev + of_dma_configure_id + set_user_nice + vmf_insert_mixed + vm_insert_page + +# required by rockchip-cpufreq.ko + cpufreq_unregister_notifier + +# required by rockchip-hdmirx.ko + cec_s_phys_addr + cpu_latency_qos_remove_request + device_create_with_groups + of_reserved_mem_device_release + v4l2_ctrl_log_status + v4l2_ctrl_subscribe_event + v4l2_find_dv_timings_cap + v4l2_src_change_event_subscribe + vb2_fop_read + +# required by rockchip-rng.ko + devm_of_iomap + +# required by rockchip_bus.ko + cpu_topology + +# required by rockchip_dmc.ko + cpufreq_cpu_put + cpufreq_quick_get + devfreq_event_disable_edev + devfreq_event_enable_edev + devfreq_event_get_edev_by_phandle + devfreq_event_get_edev_count + devfreq_event_get_event + devfreq_monitor_resume + devfreq_monitor_start + devfreq_monitor_stop + devfreq_monitor_suspend + devfreq_update_interval + devm_devfreq_register_opp_notifier + dev_pm_opp_add + input_close_device + input_open_device + input_register_handle + input_register_handler + input_unregister_handle + +# required by rockchip_dmc_common.ko + down_write_trylock + +# required by rockchip_headset_core.ko + iio_channel_get + +# required by rockchip_iommu.ko + iommu_device_register + iommu_device_sysfs_add + iommu_device_sysfs_remove + iommu_group_alloc + iommu_group_ref_get + platform_irq_count + report_iommu_fault + +# required by rockchip_ipa.ko + of_get_compatible_child + +# required by rockchip_opp_select.ko + dev_pm_opp_of_add_table + regulator_get_linear_step + +# required by rockchip_pwm_remotectl.ko + __tasklet_hi_schedule + +# required by rockchip_saradc.ko + iio_get_time_ns + iio_trigger_notify_done + +# required by rockchip_system_monitor.ko + add_cpu + bitmap_parselist + compat_only_sysfs_link_entry_to_kobj + dev_pm_qos_add_request + dev_pm_qos_remove_request + dev_pm_qos_update_request + remove_cpu + thermal_zone_get_temp + +# required by rockchip_thermal.ko + devm_clk_put + devm_thermal_of_zone_register + thermal_zone_device_disable + thermal_zone_device_enable + thermal_zone_device_update + +# required by rockchipdrm.ko + adjust_managed_page_count + component_add + component_bind_all + component_compare_dev + component_del + component_master_add_with_match + component_master_del + component_match_add_release + component_unbind_all + devm_of_phy_get_by_index + driver_find_device + drm_aperture_remove_conflicting_framebuffers + drm_atomic_commit + drm_atomic_get_plane_state + drm_atomic_helper_check + drm_atomic_helper_check_plane_state + drm_atomic_helper_cleanup_planes + drm_atomic_helper_commit + drm_atomic_helper_commit_hw_done + drm_atomic_helper_commit_modeset_disables + drm_atomic_helper_commit_modeset_enables + drm_atomic_helper_commit_planes + __drm_atomic_helper_connector_destroy_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_disable_plane + drm_atomic_helper_duplicate_state + 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_swap_state + drm_atomic_helper_wait_for_vblanks + drm_atomic_set_crtc_for_connector + drm_atomic_set_crtc_for_plane + drm_atomic_set_fb_for_plane + drm_atomic_set_mode_for_crtc + drm_atomic_state_alloc + __drm_atomic_state_free + drm_bridge_chain_mode_set + drm_bridge_get_edid + drm_connector_list_update + drm_crtc_cleanup + drm_crtc_enable_color_mgmt + drm_crtc_from_index + drm_crtc_handle_vblank + drm_crtc_init_with_planes + drm_crtc_send_vblank_event + drm_crtc_vblank_get + drm_crtc_vblank_off + drm_crtc_vblank_on + drm_crtc_vblank_put + drm_do_get_edid + drm_encoder_cleanup + drm_encoder_init + drm_event_reserve_init_locked + drm_firmware_drivers_only + drm_flip_work_cleanup + drm_flip_work_commit + drm_flip_work_init + drm_flip_work_queue + drm_format_info + drm_format_info_min_pitch + drm_framebuffer_cleanup + drm_framebuffer_init + drm_gem_dmabuf_export + drm_gem_dmabuf_mmap + drm_gem_dmabuf_release + drm_gem_dmabuf_vmap + drm_gem_dmabuf_vunmap + drm_gem_fb_afbc_init + drm_gem_fb_create_handle + drm_gem_fb_init_with_funcs + drm_gem_map_attach + drm_gem_map_detach + drm_gem_map_dma_buf + drm_gem_unmap_dma_buf + drm_get_format_info + drm_helper_mode_fill_fb_struct + 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_reserve_node + drm_mm_takedown + drm_mode_config_cleanup + drm_mode_config_helper_resume + drm_mode_config_helper_suspend + drm_mode_config_reset + drm_mode_create_hdmi_colorspace_property + drm_mode_create_tv_properties + drm_mode_crtc_set_gamma_size + drm_mode_debug_printmodeline + drm_mode_is_420 + drm_mode_object_get + drm_mode_prune_invalid + drm_mode_set_crtcinfo + drm_modeset_lock_all + drm_modeset_unlock_all + drm_mode_sort + drm_mode_validate_size + drm_mode_validate_ycbcr420 + drm_of_crtc_port_mask + drm_of_encoder_active_endpoint + drm_plane_cleanup + drm_plane_create_alpha_property + drm_plane_create_blend_mode_property + drm_plane_create_rotation_property + drm_plane_create_zpos_property + __drm_printfn_seq_file + drm_property_blob_get + drm_property_blob_put + drm_property_create + drm_property_create_bitmask + drm_property_create_bool + drm_property_create_object + drm_property_create_range + drm_property_destroy + drm_property_lookup_blob + drm_property_replace_blob + __drm_puts_seq_file + drm_rect_calc_hscale + drm_self_refresh_helper_cleanup + drm_self_refresh_helper_init + drm_send_event_locked + drm_simple_encoder_init + drm_universal_plane_init + drm_vblank_init + drm_writeback_connector_init + drm_writeback_queue_job + drm_writeback_signal_completion + hdmi_drm_infoframe_pack_only + iommu_domain_alloc + iommu_domain_free + memblock_free + mipi_dsi_packet_format_is_short + of_clk_set_defaults + of_find_backlight_by_node + of_fwnode_ops + of_get_next_parent + of_graph_get_port_by_id + of_graph_get_remote_endpoint + of_graph_get_remote_port + phy_mipi_dphy_get_default_config + platform_find_device_by_driver + __platform_register_drivers + platform_unregister_drivers + system_unbound_wq + __vmalloc + +# required by rtc-rk808.ko + rtc_update_irq + +# required by sdhci-of-arasan.ko + sdhci_add_host + sdhci_cqe_disable + sdhci_cqe_enable + sdhci_cqe_irq + sdhci_dumpregs + sdhci_execute_tuning + sdhci_pltfm_unregister + sdhci_set_power_and_bus_voltage + sdhci_set_uhs_signaling + +# required by sdhci-of-dwcmshc.ko + devm_clk_bulk_get_optional + dma_get_required_mask + sdhci_adma_write_desc + sdhci_remove_host + sdhci_request + +# required by sg.ko + blk_execute_rq_nowait + blk_mq_free_request + blk_rq_map_user_io + blk_rq_unmap_user + cdev_alloc + class_interface_unregister + fasync_helper + get_sg_io_hdr + kill_fasync + __module_get + put_sg_io_hdr + _raw_write_lock_irq + _raw_write_unlock_irq + register_sysctl + scsi_alloc_request + scsi_autopm_get_device + scsi_autopm_put_device + scsi_block_when_processing_errors + scsi_cmd_allowed + scsi_command_size_tbl + scsi_device_get + scsi_device_put + scsi_ioctl + scsi_ioctl_block_when_processing_errors + scsi_normalize_sense + __scsi_print_sense + scsi_register_interface + sdev_prefix_printk + +# required by sha1-ce.ko + crypto_register_shash + crypto_sha1_finup + crypto_sha1_update + crypto_unregister_shash + fpsimd_context_busy + irq_stat + +# required by sii902x.ko + hdmi_avi_infoframe_pack + +# required by smsc.ko + devm_clk_get_optional_enabled + phy_error + phy_trigger_machine + +# required by smsc95xx.ko + __irq_domain_alloc_fwnode + irq_domain_free_fwnode + irq_domain_simple_ops + __mdiobus_register + net_selftest + net_selftest_get_count + net_selftest_get_strings + phy_connect_direct + phy_disconnect + phy_ethtool_get_link_ksettings + phy_ethtool_nway_reset + phy_ethtool_set_link_ksettings + phy_find_first + phy_get_pause + phy_init_hw + phy_mii_ioctl + phy_print_status + phy_start + phy_stop + usb_autopm_get_interface_no_resume + +# required by snd-soc-aw883xx.ko + snd_soc_register_component + +# required by snd-soc-es8316.ko + snd_pcm_hw_constraint_list + +# required by snd-soc-hdmi-codec.ko + 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_pcm_stop + +# required by snd-soc-rk817.ko + snd_soc_component_exit_regmap + snd_soc_component_init_regmap + +# required by snd-soc-rockchip-hdmi.ko + snd_soc_dapm_new_widgets + +# required by snd-soc-rockchip-multicodecs.ko + snd_soc_dapm_get_pin_switch + snd_soc_dapm_info_pin_switch + snd_soc_dapm_put_pin_switch + snd_soc_jack_add_zones + snd_soc_jack_get_type + +# required by snd-soc-rockchip-spdif.ko + snd_pcm_create_iec958_consumer_hw_params + +# required by snd-soc-rt5640.ko + regmap_register_patch + snd_soc_dapm_force_bias_level + +# required by snd-soc-simple-card-utils.ko + devm_kvasprintf + snd_pcm_hw_constraint_minmax + snd_soc_component_set_sysclk + snd_soc_dai_active + snd_soc_dai_set_tdm_slot + snd_soc_of_parse_audio_simple_widgets + snd_soc_of_parse_pin_switches + snd_soc_runtime_calc_hw + +# required by snd-soc-simple-card.ko + snd_soc_dai_link_set_capabilities + snd_soc_of_get_dai_name + snd_soc_of_parse_aux_devs + snd_soc_of_parse_node_prefix + snd_soc_of_parse_tdm_slot + +# required by spi-rockchip.ko + devm_spi_register_controller + __spi_alloc_controller + spi_controller_resume + spi_controller_suspend + +# required by spidev.ko + __register_chrdev + stream_open + __unregister_chrdev + +# required by stmmac-platform.ko + device_get_phy_mode + of_get_mac_address + of_phy_is_fixed_link + platform_get_irq_byname_optional + +# required by stmmac.ko + bpf_dispatcher_xdp_func + bpf_master_redirect_enabled_key + bpf_prog_put + bpf_stats_enabled_key + bpf_warn_invalid_xdp_action + devm_alloc_etherdev_mqs + dql_completed + dql_reset + ethtool_convert_legacy_u32_to_link_mode + ethtool_convert_link_mode_to_legacy_u32 + flow_block_cb_setup_simple + flow_rule_match_basic + flow_rule_match_ipv4_addrs + flow_rule_match_ports + flow_rule_match_vlan + fwnode_get_named_child_node + fwnode_get_phy_node + get_device_system_crosststamp + mdiobus_get_phy + mdio_device_create + mdio_device_free + __napi_alloc_skb + napi_complete_done + napi_disable + napi_enable + __napi_schedule + napi_schedule_prep + netdev_alert + netdev_pick_tx + netdev_rss_key_fill + netif_device_attach + netif_device_detach + netif_napi_add_weight + __netif_napi_del + netif_schedule_queue + netif_set_real_num_rx_queues + netif_set_real_num_tx_queues + __num_online_cpus + __of_mdiobus_register + page_pool_alloc_pages + page_pool_create + page_pool_destroy + page_pool_put_defragged_page + page_pool_release_page + phy_init_eee + phylink_connect_phy + phylink_create + phylink_destroy + phylink_disconnect_phy + phylink_ethtool_get_eee + phylink_ethtool_get_pauseparam + phylink_ethtool_get_wol + phylink_ethtool_ksettings_get + phylink_ethtool_ksettings_set + phylink_ethtool_nway_reset + phylink_ethtool_set_eee + phylink_ethtool_set_pauseparam + phylink_ethtool_set_wol + phylink_expects_phy + phylink_fwnode_phy_connect + phylink_generic_validate + phylink_get_eee_err + phylink_mii_ioctl + phylink_resume + phylink_speed_down + phylink_speed_up + phylink_start + phylink_stop + phylink_suspend + ptp_clock_event + ptp_clock_index + ptp_clock_register + ptp_clock_unregister + reset_control_reset + skb_tstamp_tx + __traceiter_xdp_exception + __tracepoint_xdp_exception + xdp_convert_zc_to_xdp_frame + xdp_do_flush + xdp_do_redirect + xdp_master_redirect + xdp_return_frame + xdp_return_frame_rx_napi + xdp_rxq_info_is_reg + __xdp_rxq_info_reg + xdp_rxq_info_reg_mem_model + xdp_rxq_info_unreg + xdp_rxq_info_unreg_mem_model + xdp_warn + xp_alloc + xp_dma_map + xp_dma_sync_for_cpu_slow + xp_dma_sync_for_device_slow + xp_dma_unmap + xp_free + xp_raw_get_dma + xp_set_rxq_info + xsk_clear_rx_need_wakeup + xsk_get_pool_from_qid + xsk_set_rx_need_wakeup + xsk_set_tx_need_wakeup + xsk_tx_completed + xsk_tx_peek_desc + xsk_tx_release + xsk_uses_need_wakeup + +# required by sw_sync.ko + dma_fence_free + dma_fence_signal_locked + __get_task_comm + +# required by system_heap.ko + dmabuf_page_pool_alloc + dmabuf_page_pool_create + dmabuf_page_pool_destroy + dmabuf_page_pool_free + dmabuf_page_pool_get_size + dma_heap_get_dev + __sg_page_iter_next + __sg_page_iter_start + +# required by tcpci_husb311.ko + tcpci_get_tcpm_port + tcpci_irq + tcpci_register_port + tcpci_unregister_port + +# required by tee.ko + add_uevent_var + bus_register + bus_unregister + class_find_device + crypto_shash_final + gen_pool_first_fit_align + gen_pool_virt_to_phys + get_kernel_pages + idr_replace + in_egroup_p + pin_user_pages_fast + unpin_user_pages + uuid_null + vmalloc_to_page + +# required by timer-rockchip.ko + clockevents_config_and_register + +# required by tps65132-regulator.ko + regulator_set_active_discharge_regmap + +# required by trancevibrator.ko + usb_get_dev + usb_put_dev + +# required by twofish_generic.ko + crypto_register_alg + crypto_unregister_alg + +# required by usblp.ko + add_wait_queue + default_wake_function + remove_wait_queue + stpcpy + usb_anchor_urb + usb_find_common_endpoints + usb_find_interface + usb_get_intf + usb_kill_anchored_urbs + usb_poison_anchored_urbs + usb_put_intf + usb_unanchor_urb + +# required by v4l2-async.ko + fwnode_handle_get + media_create_ancillary_link + +# required by v4l2-fwnode.ko + fwnode_graph_parse_endpoint + fwnode_property_get_reference_args + fwnode_property_read_string + fwnode_property_read_u64_array + +# required by video_rkcif.ko + media_entity_setup_link + +# required by video_rkisp.ko + param_ops_ullong + v4l2_ctrl_poll + +# required by videobuf2-cma-sg.ko + frame_vector_to_pages + split_page + vb2_common_vm_ops + vb2_create_framevec + vb2_destroy_framevec + vm_map_ram + vm_unmap_ram + +# required by vl6180.ko + iio_read_const_attr diff --git a/arch/arm/include/asm/syscall.h b/arch/arm/include/asm/syscall.h index dfeed440254a..fe4326d938c1 100644 --- a/arch/arm/include/asm/syscall.h +++ b/arch/arm/include/asm/syscall.h @@ -25,6 +25,9 @@ static inline int syscall_get_nr(struct task_struct *task, if (IS_ENABLED(CONFIG_AEABI) && !IS_ENABLED(CONFIG_OABI_COMPAT)) return task_thread_info(task)->abi_syscall; + if (task_thread_info(task)->abi_syscall == -1) + return -1; + return task_thread_info(task)->abi_syscall & __NR_SYSCALL_MASK; } diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 405a607b754f..b413b541c3c7 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S @@ -103,6 +103,7 @@ slow_work_pending: cmp r0, #0 beq no_work_pending movlt scno, #(__NR_restart_syscall - __NR_SYSCALL_BASE) + str scno, [tsk, #TI_ABI_SYSCALL] @ make sure tracers see update ldmia sp, {r0 - r6} @ have to reload r0 - r6 b local_restart @ ... and off we go ENDPROC(ret_fast_syscall) diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index bfe88c6e60d5..cef106913ab7 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c @@ -785,8 +785,9 @@ long arch_ptrace(struct task_struct *child, long request, break; case PTRACE_SET_SYSCALL: - task_thread_info(child)->abi_syscall = data & - __NR_SYSCALL_MASK; + if (data != -1) + data &= __NR_SYSCALL_MASK; + task_thread_info(child)->abi_syscall = data; ret = 0; break; diff --git a/arch/arm64/configs/crashdump_defconfig b/arch/arm64/configs/crashdump_defconfig new file mode 100644 index 000000000000..75866b00b403 --- /dev/null +++ b/arch/arm64/configs/crashdump_defconfig @@ -0,0 +1,81 @@ +# CONFIG_WERROR is not set +# CONFIG_LOCALVERSION_AUTO is not set +# CONFIG_SWAP is not set +# CONFIG_CROSS_MEMORY_ATTACH is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_PREEMPT=y +# CONFIG_CPU_ISOLATION is not set +CONFIG_LOG_BUF_SHIFT=15 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=10 +# CONFIG_UTS_NS is not set +# CONFIG_TIME_NS is not set +# CONFIG_PID_NS is not set +CONFIG_BLK_DEV_INITRD=y +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_RD_ZSTD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB_MERGE_DEFAULT is not set +# CONFIG_SLUB_CPU_PARTIAL is not set +CONFIG_ARM64_VA_BITS_48=y +CONFIG_NR_CPUS=2 +CONFIG_CRASH_DUMP=y +# CONFIG_RODATA_FULL_DEFAULT_ENABLED is not set +# CONFIG_ARM64_TAGGED_ADDR_ABI is not set +# CONFIG_ARM64_SVE is not set +# CONFIG_EFI is not set +# CONFIG_SUSPEND is not set +CONFIG_JUMP_LABEL=y +# CONFIG_SECCOMP is not set +# CONFIG_STACKPROTECTOR is not set +# CONFIG_VMAP_STACK is not set +# CONFIG_MQ_IOSCHED_DEADLINE is not set +# CONFIG_MQ_IOSCHED_KYBER is not set +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_BINFMT_SCRIPT is not set +# CONFIG_SPECULATIVE_PAGE_FAULT is not set +CONFIG_PCI=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCI_ENDPOINT=y +CONFIG_DEVTMPFS=y +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_ARM_SCMI_PROTOCOL=y +# CONFIG_ARM_SMCCC_SOC_ID is not set +# CONFIG_BLK_DEV is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=1 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_VIRTIO_CONSOLE=y +# CONFIG_HW_RANDOM is not set +# CONFIG_DEVMEM is not set +# CONFIG_HWMON is not set +# CONFIG_HID is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_VIRTIO_PCI=y +# CONFIG_VIRTIO_PCI_LEGACY is not set +# CONFIG_VHOST_MENU is not set +# CONFIG_ARM_ARCH_TIMER_EVTSTREAM is not set +# CONFIG_FSL_ERRATUM_A008585 is not set +# CONFIG_HISILICON_ERRATUM_161010101 is not set +# CONFIG_ARM64_ERRATUM_858921 is not set +# CONFIG_IOMMU_SUPPORT is not set +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +CONFIG_TMPFS=y +CONFIG_TMPFS_XATTR=y +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_XZ_DEC=y +# CONFIG_SYMBOLIC_ERRNAME is not set +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/arch/arm64/configs/gki_defconfig b/arch/arm64/configs/gki_defconfig index ceaf2f1fdeab..abf7b41cdc85 100644 --- a/arch/arm64/configs/gki_defconfig +++ b/arch/arm64/configs/gki_defconfig @@ -95,6 +95,7 @@ CONFIG_MODPROBE_PATH="/system/bin/modprobe" CONFIG_BLK_DEV_ZONED=y CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLK_CGROUP_IOCOST=y +CONFIG_BLK_CGROUP_IOPRIO=y CONFIG_BLK_INLINE_ENCRYPTION=y CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y CONFIG_IOSCHED_BFQ=y diff --git a/arch/arm64/configs/microdroid_defconfig b/arch/arm64/configs/microdroid_defconfig new file mode 100644 index 000000000000..3f8fb833040c --- /dev/null +++ b/arch/arm64/configs/microdroid_defconfig @@ -0,0 +1,216 @@ +CONFIG_AUDIT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_PSI=y +CONFIG_RCU_EXPERT=y +CONFIG_RCU_BOOST=y +CONFIG_RCU_NOCB_CPU=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +# CONFIG_UTS_NS is not set +# CONFIG_TIME_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_ZSTD is not set +CONFIG_BOOT_CONFIG=y +CONFIG_PROFILING=y +CONFIG_SCHED_MC=y +CONFIG_NR_CPUS=32 +CONFIG_PARAVIRT_TIME_ACCOUNTING=y +CONFIG_KEXEC_FILE=y +CONFIG_ARM64_SW_TTBR0_PAN=y +CONFIG_RANDOMIZE_BASE=y +# CONFIG_RANDOMIZE_MODULE_REGION_FULL is not set +CONFIG_CMDLINE="stack_depot_disable=on kasan.stacktrace=off cgroup_disable=pressure ioremap_guard panic=-1 bootconfig" +CONFIG_CMDLINE_EXTEND=y +# CONFIG_EFI is not set +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_WAKELOCKS_LIMIT=0 +# CONFIG_PM_WAKELOCKS_GC is not set +CONFIG_VIRTUALIZATION=y +CONFIG_JUMP_LABEL=y +CONFIG_SHADOW_CALL_STACK=y +CONFIG_CFI_CLANG=y +CONFIG_MODULES=y +CONFIG_BLK_DEV_ZONED=y +CONFIG_BLK_INLINE_ENCRYPTION=y +CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y +CONFIG_PARTITION_ADVANCED=y +# CONFIG_MSDOS_PARTITION is not set +CONFIG_IOSCHED_BFQ=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_BINFMT_MISC=y +# CONFIG_SLAB_MERGE_DEFAULT is not set +CONFIG_SLAB_FREELIST_RANDOM=y +CONFIG_SLAB_FREELIST_HARDENED=y +CONFIG_SHUFFLE_PAGE_ALLOCATOR=y +# CONFIG_COMPAT_BRK is not set +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_ANON_VMA_NAME=y +CONFIG_USERFAULTFD=y +CONFIG_LRU_GEN=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_INTERFACE=y +CONFIG_XFRM_MIGRATE=y +CONFIG_XFRM_STATISTICS=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_NET_IPIP=y +CONFIG_NET_IPGRE_DEMUX=y +CONFIG_NET_IPGRE=y +CONFIG_NET_IPVTI=y +CONFIG_INET_ESP=y +CONFIG_INET_UDP_DIAG=y +CONFIG_INET_DIAG_DESTROY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_IPV6_VTI=y +CONFIG_IPV6_GRE=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_VSOCKETS=y +CONFIG_VIRTIO_VSOCKETS=y +# CONFIG_WIRELESS is not set +CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIEAER=y +CONFIG_PCI_IOV=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCIE_DW_PLAT_EP=y +CONFIG_PCIE_KIRIN=y +CONFIG_PCI_ENDPOINT=y +CONFIG_FW_LOADER_USER_HELPER=y +# CONFIG_FW_CACHE is not set +CONFIG_ARM_SCMI_PROTOCOL=y +# CONFIG_ARM_SCMI_POWER_DOMAIN is not set +CONFIG_ZRAM=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=16 +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_VIRTIO_BLK=y +CONFIG_OPEN_DICE=y +CONFIG_VCPU_STALL_DETECTOR=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=y +CONFIG_DM_INIT=y +CONFIG_DM_UEVENT=y +CONFIG_DM_VERITY=y +CONFIG_DM_VERITY_FEC=y +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_CONSOLE=y +# CONFIG_SERIAL_8250_PCI is not set +CONFIG_SERIAL_8250_RUNTIME_UARTS=0 +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_NULL_TTY=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_CCTRNG=y +# CONFIG_DEVMEM is not set +# CONFIG_DEVPORT is not set +CONFIG_POWER_RESET_SYSCON=y +# CONFIG_HWMON is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_HID is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_EDAC=y +CONFIG_RTC_CLASS=y +# CONFIG_RTC_NVMEM is not set +CONFIG_RTC_DRV_PL030=y +CONFIG_RTC_DRV_PL031=y +CONFIG_DMABUF_HEAPS=y +CONFIG_DMABUF_SYSFS_STATS=y +CONFIG_UIO=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_STAGING=y +CONFIG_HWSPINLOCK=y +CONFIG_EXT4_FS=y +# CONFIG_EXT4_USE_FOR_EXT2 is not set +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_DNOTIFY is not set +CONFIG_FUSE_FS=y +CONFIG_TMPFS=y +CONFIG_EROFS_FS=y +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_UNICODE=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_HARDENED_USERCOPY=y +CONFIG_STATIC_USERMODEHELPER=y +CONFIG_STATIC_USERMODEHELPER_PATH="" +CONFIG_SECURITY_SELINUX=y +CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_ADIANTUM=y +CONFIG_CRYPTO_HCTR2=y +CONFIG_CRYPTO_CHACHA20POLY1305=y +CONFIG_CRYPTO_BLAKE2B=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_XCBC=y +CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_LZ4=y +CONFIG_CRYPTO_ZSTD=y +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_TRACE_MMIO_ACCESS=y +CONFIG_XZ_DEC=y +CONFIG_DMA_RESTRICTED_POOL=y +CONFIG_PRINTK_TIME=y +CONFIG_PRINTK_CALLER=y +CONFIG_DYNAMIC_DEBUG_CORE=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_INFO_DWARF5=y +CONFIG_DEBUG_INFO_REDUCED=y +CONFIG_DEBUG_INFO_COMPRESSED=y +CONFIG_HEADERS_INSTALL=y +# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_UBSAN=y +CONFIG_UBSAN_TRAP=y +CONFIG_UBSAN_LOCAL_BOUNDS=y +# CONFIG_UBSAN_SHIFT is not set +# CONFIG_UBSAN_BOOL is not set +# CONFIG_UBSAN_ENUM is not set +CONFIG_PAGE_OWNER=y +CONFIG_DEBUG_STACK_USAGE=y +CONFIG_KASAN=y +CONFIG_KASAN_HW_TAGS=y +CONFIG_PANIC_ON_OOPS=y +CONFIG_PANIC_TIMEOUT=-1 +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_WQ_WATCHDOG=y +CONFIG_SCHEDSTATS=y +# CONFIG_DEBUG_PREEMPT is not set +CONFIG_BUG_ON_DATA_CORRUPTION=y +CONFIG_HIST_TRIGGERS=y +CONFIG_PID_IN_CONTEXTIDR=y +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/arch/arm64/configs/rockchip_gki.fragment b/arch/arm64/configs/rockchip_gki.fragment new file mode 100644 index 000000000000..c31a4e8280f5 --- /dev/null +++ b/arch/arm64/configs/rockchip_gki.fragment @@ -0,0 +1,358 @@ +# CONFIG_MODULE_SIG_ALL is not set +CONFIG_PWRSEQ_SIMPLE=m +CONFIG_AP6XXX=m +CONFIG_ARCH_ROCKCHIP=y +CONFIG_ARM_ROCKCHIP_BUS_DEVFREQ=m +CONFIG_ARM_ROCKCHIP_CPUFREQ=m +CONFIG_ARM_ROCKCHIP_DMC_DEVFREQ=m +CONFIG_BACKLIGHT_PWM=m +CONFIG_BATTERY_CW2015=m +CONFIG_BATTERY_CW2017=m +CONFIG_BATTERY_CW221X=m +CONFIG_BATTERY_RK817=m +CONFIG_BATTERY_RK818=m +CONFIG_BMA2XX_ACC=m +CONFIG_CHARGER_BQ25700=m +CONFIG_CHARGER_BQ25890=m +CONFIG_CHARGER_RK817=m +CONFIG_CHARGER_RK818=m +CONFIG_CHARGER_SC89890=m +CONFIG_CHARGER_SGM41542=m +CONFIG_CHR_DEV_SG=m +CONFIG_COMMON_CLK_PWM=m +CONFIG_COMMON_CLK_RK808=m +CONFIG_COMMON_CLK_ROCKCHIP=m +CONFIG_COMMON_CLK_SCMI=m +CONFIG_COMPASS_AK8963=m +CONFIG_COMPASS_AK8975=m +CONFIG_COMPASS_DEVICE=m +CONFIG_CPUFREQ_DT=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_PX30=y +CONFIG_CPU_RK3399=y +CONFIG_CPU_RK3562=y +CONFIG_CPU_RK3568=y +CONFIG_CPU_RK3588=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=m +CONFIG_CRYPTO_DEV_ROCKCHIP=m +CONFIG_CRYPTO_DEV_ROCKCHIP_DEV=m +CONFIG_CRYPTO_SHA1_ARM64_CE=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_DEVFREQ_EVENT_ROCKCHIP_NOCP=m +CONFIG_DMABUF_HEAPS_CMA=m +CONFIG_DMABUF_HEAPS_SYSTEM=m +CONFIG_DRAGONRISE_FF=y +CONFIG_DRM_DISPLAY_CONNECTOR=m +CONFIG_DRM_DW_HDMI_CEC=m +CONFIG_DRM_DW_HDMI_I2S_AUDIO=m +CONFIG_DRM_MAXIM_MAX96745=m +CONFIG_DRM_MAXIM_MAX96755F=m +CONFIG_DRM_PANEL_SIMPLE=m +CONFIG_DRM_RK1000_TVE=m +CONFIG_DRM_RK630_TVE=m +CONFIG_DRM_ROCKCHIP=m +CONFIG_DRM_ROCKCHIP_RK618=m +CONFIG_DRM_ROCKCHIP_RK628=m +CONFIG_DRM_ROHM_BU18XL82=m +CONFIG_DRM_SII902X=m +CONFIG_DTC_SYMBOLS=y +# CONFIG_DWMAC_GENERIC is not set +# CONFIG_DWMAC_IPQ806X is not set +# CONFIG_DWMAC_QCOM_ETHQOS is not set +# CONFIG_DWMAC_SUN8I is not set +# CONFIG_DWMAC_SUNXI is not set +CONFIG_DW_WATCHDOG=m +CONFIG_FIQ_DEBUGGER=m +CONFIG_FIQ_DEBUGGER_CONSOLE=y +CONFIG_FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE=y +CONFIG_FIQ_DEBUGGER_NO_SLEEP=y +CONFIG_FIQ_DEBUGGER_TRUST_ZONE=y +CONFIG_GPIO_ROCKCHIP=m +CONFIG_GREENASIA_FF=y +CONFIG_GSENSOR_DEVICE=m +CONFIG_GS_DA223=m +CONFIG_GS_KXTJ9=m +CONFIG_GS_LIS3DH=m +CONFIG_GS_LSM303D=m +CONFIG_GS_MC3230=m +CONFIG_GS_MMA7660=m +CONFIG_GS_MMA8452=m +CONFIG_GS_MXC6655XA=m +CONFIG_GS_SC7660=m +CONFIG_GS_SC7A20=m +CONFIG_GS_SC7A30=m +CONFIG_GYROSCOPE_DEVICE=m +CONFIG_GYRO_EWTSA=m +CONFIG_GYRO_L3G20D=m +CONFIG_GYRO_L3G4200D=m +CONFIG_GYRO_LSM330=m +CONFIG_GYRO_MPU6500=m +CONFIG_GYRO_MPU6880=m +CONFIG_HALL_DEVICE=m +CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +CONFIG_HID_ACRUX_FF=y +CONFIG_HID_ALPS=m +CONFIG_HID_APPLEIR=m +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +CONFIG_HID_EMS_FF=m +CONFIG_HID_EZKEY=m +CONFIG_HID_GREENASIA=m +CONFIG_HID_GYRATION=m +CONFIG_HID_HOLTEK=m +CONFIG_HID_ICADE=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_LCPOWER=m +CONFIG_HID_LENOVO=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +CONFIG_HID_PETALYNX=m +CONFIG_HID_PRIMAX=m +CONFIG_HID_SAITEK=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_STEELSERIES=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_THINGM=m +CONFIG_HID_THRUSTMASTER=m +CONFIG_HID_TIVO=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_WALTOP=m +CONFIG_HID_ZEROPLUS=m +CONFIG_HID_ZYDACRON=m +CONFIG_HS_MH248=m +CONFIG_HW_RANDOM_ROCKCHIP=m +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_GPIO=m +CONFIG_I2C_HID_OF=m +CONFIG_I2C_RK3X=m +CONFIG_IEP=m +CONFIG_IIO_BUFFER_CB=m +CONFIG_INPUT_RK805_PWRKEY=m +CONFIG_KEYBOARD_ADC=m +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_RGB13H=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LIGHT_DEVICE=m +CONFIG_LSM330_ACC=m +CONFIG_LS_CM3217=m +CONFIG_LS_CM3218=m +CONFIG_LS_STK3410=m +CONFIG_LS_UCS14620=m +CONFIG_MALI_BIFROST=m +CONFIG_MALI_BIFROST_DEBUG=y +CONFIG_MALI_BIFROST_EXPERT=y +CONFIG_MALI_CSF_SUPPORT=y +CONFIG_MALI_PLATFORM_NAME="rk" +CONFIG_MALI_PWRSOFT_765=y +CONFIG_MFD_RK618=m +CONFIG_MFD_RK628=m +CONFIG_MFD_RK630_I2C=m +CONFIG_MFD_RK806_SPI=m +CONFIG_MFD_RK808=m +CONFIG_MMC_DW=m +CONFIG_MMC_DW_ROCKCHIP=m +CONFIG_MMC_SDHCI_OF_ARASAN=m +CONFIG_MMC_SDHCI_OF_DWCMSHC=m +CONFIG_MPU6500_ACC=m +CONFIG_MPU6880_ACC=m +CONFIG_NVMEM_ROCKCHIP_EFUSE=m +CONFIG_NVMEM_ROCKCHIP_OTP=m +CONFIG_OPTEE=m +CONFIG_PANTHERLORD_FF=y +CONFIG_PCIEASPM_EXT=m +CONFIG_PCIE_DW_ROCKCHIP=m +CONFIG_PCIE_ROCKCHIP_HOST=m +CONFIG_PHY_ROCKCHIP_CSI2_DPHY=m +CONFIG_PHY_ROCKCHIP_DP=m +CONFIG_PHY_ROCKCHIP_EMMC=m +CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=m +CONFIG_PHY_ROCKCHIP_INNO_HDMI=m +CONFIG_PHY_ROCKCHIP_INNO_USB2=m +CONFIG_PHY_ROCKCHIP_INNO_USB3=m +CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY=m +CONFIG_PHY_ROCKCHIP_NANENG_EDP=m +CONFIG_PHY_ROCKCHIP_PCIE=m +CONFIG_PHY_ROCKCHIP_SAMSUNG_DCPHY=m +CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX=m +CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX_HDMI=m +CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=m +CONFIG_PHY_ROCKCHIP_TYPEC=m +CONFIG_PHY_ROCKCHIP_USB=m +CONFIG_PHY_ROCKCHIP_USBDP=m +CONFIG_PINCTRL_RK805=m +CONFIG_PINCTRL_RK806=m +CONFIG_PINCTRL_ROCKCHIP=m +CONFIG_PL330_DMA=m +CONFIG_PROXIMITY_DEVICE=m +CONFIG_PS_STK3410=m +CONFIG_PS_UCS14620=m +CONFIG_PWM_ROCKCHIP=m +CONFIG_REGULATOR_ACT8865=m +CONFIG_REGULATOR_FAN53555=m +CONFIG_REGULATOR_GPIO=m +CONFIG_REGULATOR_LP8752=m +CONFIG_REGULATOR_MP8865=m +CONFIG_REGULATOR_PWM=m +CONFIG_REGULATOR_RK806=m +CONFIG_REGULATOR_RK808=m +CONFIG_REGULATOR_RK860X=m +CONFIG_REGULATOR_TPS65132=m +CONFIG_REGULATOR_WL2868C=m +CONFIG_REGULATOR_XZ3216=m +CONFIG_RFKILL_RK=m +CONFIG_RK_CONSOLE_THREAD=y +CONFIG_RK_HEADSET=m +CONFIG_ROCKCHIP_ANALOGIX_DP=y +CONFIG_ROCKCHIP_CDN_DP=y +CONFIG_ROCKCHIP_CPUINFO=m +CONFIG_ROCKCHIP_DEBUG=m +CONFIG_ROCKCHIP_DW_DP=y +CONFIG_ROCKCHIP_DW_HDCP2=m +CONFIG_ROCKCHIP_DW_HDMI=y +CONFIG_ROCKCHIP_DW_MIPI_DSI=y +CONFIG_ROCKCHIP_GRF=m +CONFIG_ROCKCHIP_INNO_HDMI=y +CONFIG_ROCKCHIP_IODOMAIN=m +CONFIG_ROCKCHIP_IOMMU=m +CONFIG_ROCKCHIP_IPA=m +CONFIG_ROCKCHIP_LVDS=y +CONFIG_ROCKCHIP_MPP_AV1DEC=y +CONFIG_ROCKCHIP_MPP_IEP2=y +CONFIG_ROCKCHIP_MPP_JPGDEC=y +CONFIG_ROCKCHIP_MPP_RKVDEC=y +CONFIG_ROCKCHIP_MPP_RKVDEC2=y +CONFIG_ROCKCHIP_MPP_RKVENC=y +CONFIG_ROCKCHIP_MPP_RKVENC2=y +CONFIG_ROCKCHIP_MPP_SERVICE=m +CONFIG_ROCKCHIP_MPP_VDPU1=y +CONFIG_ROCKCHIP_MPP_VDPU2=y +CONFIG_ROCKCHIP_MPP_VEPU1=y +CONFIG_ROCKCHIP_MPP_VEPU2=y +CONFIG_ROCKCHIP_MULTI_RGA=m +CONFIG_ROCKCHIP_OPP=m +CONFIG_ROCKCHIP_PHY=m +CONFIG_ROCKCHIP_PM_DOMAINS=m +CONFIG_ROCKCHIP_PVTM=m +CONFIG_ROCKCHIP_RAM_VENDOR_STORAGE=m +CONFIG_ROCKCHIP_REMOTECTL=m +CONFIG_ROCKCHIP_REMOTECTL_PWM=m +CONFIG_ROCKCHIP_RGB=y +CONFIG_ROCKCHIP_RKNPU=m +CONFIG_ROCKCHIP_SARADC=m +CONFIG_ROCKCHIP_SIP=m +CONFIG_ROCKCHIP_SUSPEND_MODE=m +CONFIG_ROCKCHIP_SYSTEM_MONITOR=m +CONFIG_ROCKCHIP_THERMAL=m +CONFIG_ROCKCHIP_TIMER=m +CONFIG_ROCKCHIP_VENDOR_STORAGE=m +CONFIG_ROCKCHIP_VENDOR_STORAGE_UPDATE_LOADER=y +CONFIG_RTC_DRV_HYM8563=m +CONFIG_RTC_DRV_RK808=m +CONFIG_SENSOR_DEVICE=m +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_SOC_AW883XX=m +CONFIG_SND_SOC_BT_SCO=m +CONFIG_SND_SOC_CX2072X=m +CONFIG_SND_SOC_DUMMY_CODEC=m +CONFIG_SND_SOC_ES7202=m +CONFIG_SND_SOC_ES7210=m +CONFIG_SND_SOC_ES7243E=m +CONFIG_SND_SOC_ES8311=m +CONFIG_SND_SOC_ES8316=m +CONFIG_SND_SOC_ES8323=m +CONFIG_SND_SOC_ES8326=m +CONFIG_SND_SOC_ES8396=m +CONFIG_SND_SOC_RK3328=m +CONFIG_SND_SOC_RK817=m +CONFIG_SND_SOC_RK_CODEC_DIGITAL=m +CONFIG_SND_SOC_RK_DSM=m +CONFIG_SND_SOC_ROCKCHIP=m +CONFIG_SND_SOC_ROCKCHIP_HDMI=m +CONFIG_SND_SOC_ROCKCHIP_I2S=m +CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=m +CONFIG_SND_SOC_ROCKCHIP_MULTICODECS=m +CONFIG_SND_SOC_ROCKCHIP_PDM=m +CONFIG_SND_SOC_ROCKCHIP_SAI=m +CONFIG_SND_SOC_ROCKCHIP_SPDIF=m +CONFIG_SND_SOC_ROCKCHIP_SPDIFRX=m +CONFIG_SND_SOC_RT5640=m +CONFIG_SND_SOC_SPDIF=m +CONFIG_SPI_ROCKCHIP=m +CONFIG_SPI_SPIDEV=m +CONFIG_STMMAC_ETH=m +CONFIG_SW_SYNC=m +CONFIG_SYSCON_REBOOT_MODE=m +CONFIG_TEE=m +CONFIG_TEST_POWER=m +CONFIG_TOUCHSCREEN_ELAN5515=m +CONFIG_TOUCHSCREEN_GSL3673=m +CONFIG_TOUCHSCREEN_GSLX680_PAD=m +CONFIG_TOUCHSCREEN_GT1X=m +CONFIG_TYPEC_FUSB302=m +CONFIG_TYPEC_HUSB311=m +CONFIG_UCS12CM0=m +CONFIG_USB_DWC2=m +CONFIG_USB_NET_CDC_MBIM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OHCI_HCD_PCI is not set +CONFIG_USB_OHCI_HCD_PLATFORM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_VIDEO_AW36518=m +CONFIG_VIDEO_AW8601=m +CONFIG_VIDEO_CN3927V=m +CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_FP5510=m +CONFIG_VIDEO_GC2145=m +CONFIG_VIDEO_GC2385=m +CONFIG_VIDEO_GC4C33=m +CONFIG_VIDEO_GC8034=m +CONFIG_VIDEO_IMX415=m +CONFIG_VIDEO_LT6911UXC=m +CONFIG_VIDEO_LT7911D=m +CONFIG_VIDEO_NVP6188=m +CONFIG_VIDEO_OV02B10=m +CONFIG_VIDEO_OV13850=m +CONFIG_VIDEO_OV13855=m +CONFIG_VIDEO_OV50C40=m +CONFIG_VIDEO_OV5695=m +CONFIG_VIDEO_OV8858=m +CONFIG_VIDEO_RK628_BT1120=m +CONFIG_VIDEO_RK628_CSI=m +CONFIG_VIDEO_RK_IRCUT=m +CONFIG_VIDEO_ROCKCHIP_CIF=m +CONFIG_VIDEO_ROCKCHIP_HDMIRX=m +CONFIG_VIDEO_ROCKCHIP_ISP=m +CONFIG_VIDEO_ROCKCHIP_ISPP=m +CONFIG_VIDEO_ROCKCHIP_RKISP1=m +CONFIG_VIDEO_S5K3L6XX=m +CONFIG_VIDEO_S5KJN1=m +CONFIG_VIDEO_SGM3784=m +CONFIG_VIDEO_THCV244=m +CONFIG_VL6180=m +CONFIG_WIFI_BUILD_MODULE=y +CONFIG_WL_ROCKCHIP=m +# CONFIG_USB_DUMMY_HCD is not set diff --git a/arch/arm64/include/asm/kvm_asm.h b/arch/arm64/include/asm/kvm_asm.h index 6755a0d9f3f0..60e834c85ea7 100644 --- a/arch/arm64/include/asm/kvm_asm.h +++ b/arch/arm64/include/asm/kvm_asm.h @@ -259,6 +259,8 @@ extern unsigned long kvm_nvhe_sym(kvm_arm_hyp_percpu_base)[]; DECLARE_KVM_NVHE_SYM(__per_cpu_start); DECLARE_KVM_NVHE_SYM(__per_cpu_end); +extern unsigned long kvm_nvhe_sym(kvm_arm_hyp_host_fp_state)[]; + DECLARE_KVM_HYP_SYM(__bp_harden_hyp_vecs); #define __bp_harden_hyp_vecs CHOOSE_HYP_SYM(__bp_harden_hyp_vecs) diff --git a/arch/arm64/include/asm/kvm_pkvm.h b/arch/arm64/include/asm/kvm_pkvm.h index a1459fbe2d46..3077c2514a6d 100644 --- a/arch/arm64/include/asm/kvm_pkvm.h +++ b/arch/arm64/include/asm/kvm_pkvm.h @@ -414,10 +414,4 @@ static inline size_t pkvm_host_fp_state_size(void) return sizeof(struct user_fpsimd_state); } -static inline unsigned long hyp_host_fp_pages(unsigned long nr_cpus) -{ - return PAGE_ALIGN(size_mul(nr_cpus, pkvm_host_fp_state_size())) >> - PAGE_SHIFT; -} - #endif /* __ARM64_KVM_PKVM_H__ */ diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c index c1d58bf4f76e..c9428ce23d80 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c @@ -1642,6 +1642,11 @@ static unsigned long nvhe_percpu_order(void) return size ? get_order(size) : 0; } +static inline size_t pkvm_host_fp_state_order(void) +{ + return get_order(pkvm_host_fp_state_size()); +} + /* A lookup table holding the hypervisor VA for each vector slot */ static void *hyp_spectre_vector_selector[BP_HARDEN_EL2_SLOTS]; @@ -2006,6 +2011,8 @@ static void teardown_hyp_mode(void) for_each_possible_cpu(cpu) { free_page(per_cpu(kvm_arm_hyp_stack_page, cpu)); free_pages(kvm_nvhe_sym(kvm_arm_hyp_percpu_base)[cpu], nvhe_percpu_order()); + free_pages(kvm_nvhe_sym(kvm_arm_hyp_host_fp_state)[cpu], + pkvm_host_fp_state_order()); } } @@ -2092,6 +2099,48 @@ static int kvm_hyp_init_protection(u32 hyp_va_bits) return 0; } +static int init_pkvm_host_fp_state(void) +{ + int cpu; + + if (!is_protected_kvm_enabled()) + return 0; + + /* Allocate pages for protected-mode host-fp state. */ + for_each_possible_cpu(cpu) { + struct page *page; + unsigned long addr; + + page = alloc_pages(GFP_KERNEL, pkvm_host_fp_state_order()); + if (!page) + return -ENOMEM; + + addr = (unsigned long)page_address(page); + kvm_nvhe_sym(kvm_arm_hyp_host_fp_state)[cpu] = addr; + } + + /* + * Don't map the pages in hyp since these are only used in protected + * mode, which will (re)create its own mapping when initialized. + */ + + return 0; +} + +/* + * Finalizes the initialization of hyp mode, once everything else is initialized + * and the initialziation process cannot fail. + */ +static void finalize_init_hyp_mode(void) +{ + int cpu; + + for_each_possible_cpu(cpu) { + kvm_nvhe_sym(kvm_arm_hyp_host_fp_state)[cpu] = + kern_hyp_va(kvm_nvhe_sym(kvm_arm_hyp_host_fp_state)[cpu]); + } +} + /** * Inits Hyp-mode on all online CPUs */ @@ -2259,6 +2308,10 @@ static int init_hyp_mode(void) cpu_prepare_hyp_mode(cpu); } + err = init_pkvm_host_fp_state(); + if (err) + goto out_err; + kvm_hyp_init_symbols(); /* TODO: Real .h interface */ @@ -2417,6 +2470,13 @@ int kvm_arch_init(void *opaque) kvm_info("Hyp mode initialized successfully\n"); } + /* + * This should be called after initialization is done and failure isn't + * possible anymore. + */ + if (!in_hyp_mode) + finalize_init_hyp_mode(); + return 0; out_hyp: diff --git a/arch/arm64/kvm/hyp/include/nvhe/pkvm.h b/arch/arm64/kvm/hyp/include/nvhe/pkvm.h index b11fd818fff9..943cf7fc7124 100644 --- a/arch/arm64/kvm/hyp/include/nvhe/pkvm.h +++ b/arch/arm64/kvm/hyp/include/nvhe/pkvm.h @@ -82,8 +82,6 @@ struct pkvm_hyp_vm { struct pkvm_hyp_vcpu *vcpus[]; }; -extern void *host_fp_state; - static inline struct pkvm_hyp_vm * pkvm_hyp_vcpu_to_hyp_vm(struct pkvm_hyp_vcpu *hyp_vcpu) { @@ -107,7 +105,6 @@ extern phys_addr_t pvmfw_base; extern phys_addr_t pvmfw_size; void pkvm_hyp_vm_table_init(void *tbl); -void pkvm_hyp_host_fp_init(void *host_fp); int __pkvm_init_vm(struct kvm *host_kvm, unsigned long vm_hva, unsigned long pgd_hva, unsigned long last_ran_hva); diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-main.c b/arch/arm64/kvm/hyp/nvhe/hyp-main.c index 48e20ad5ff38..995c3a840010 100644 --- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c +++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c @@ -1383,11 +1383,15 @@ static void handle_host_smc(struct kvm_cpu_context *host_ctxt) handled = kvm_host_ffa_handler(host_ctxt); if (!handled && smp_load_acquire(&default_host_smc_handler)) handled = default_host_smc_handler(host_ctxt); - if (!handled) - __kvm_hyp_host_forward_smc(host_ctxt); trace_host_smc(func_id, !handled); + if (!handled) { + trace_hyp_exit(); + __kvm_hyp_host_forward_smc(host_ctxt); + trace_hyp_enter(); + } + /* SMC was trapped, move ELR past the current PC. */ kvm_skip_host_instr(); } diff --git a/arch/arm64/kvm/hyp/nvhe/pkvm.c b/arch/arm64/kvm/hyp/nvhe/pkvm.c index bb25de654934..b3acb60a2d6c 100644 --- a/arch/arm64/kvm/hyp/nvhe/pkvm.c +++ b/arch/arm64/kvm/hyp/nvhe/pkvm.c @@ -41,17 +41,15 @@ static DEFINE_PER_CPU(struct pkvm_hyp_vcpu *, loaded_hyp_vcpu); * * Only valid when (fp_state == FP_STATE_GUEST_OWNED) in the hyp vCPU structure. */ -void *host_fp_state; +unsigned long __ro_after_init kvm_arm_hyp_host_fp_state[NR_CPUS]; static void *__get_host_fpsimd_bytes(void) { - void *state = host_fp_state + - size_mul(pkvm_host_fp_state_size(), hyp_smp_processor_id()); - - if (state < host_fp_state) - return NULL; - - return state; + /* + * The addresses in this array have been converted to hyp addresses + * in finalize_init_hyp_mode(). + */ + return (void *)kvm_arm_hyp_host_fp_state[hyp_smp_processor_id()]; } struct user_fpsimd_state *get_host_fpsimd_state(struct kvm_vcpu *vcpu) @@ -295,12 +293,6 @@ void pkvm_hyp_vm_table_init(void *tbl) vm_table = tbl; } -void pkvm_hyp_host_fp_init(void *host_fp) -{ - WARN_ON(host_fp_state); - host_fp_state = host_fp; -} - /* * Return the hyp vm structure corresponding to the handle. */ diff --git a/arch/arm64/kvm/hyp/nvhe/setup.c b/arch/arm64/kvm/hyp/nvhe/setup.c index c0f502c5edb2..ac3a0dc79083 100644 --- a/arch/arm64/kvm/hyp/nvhe/setup.c +++ b/arch/arm64/kvm/hyp/nvhe/setup.c @@ -34,7 +34,6 @@ static void *vm_table_base; static void *hyp_pgt_base; static void *host_s2_pgt_base; static void *ffa_proxy_pages; -static void *hyp_host_fp_base; static struct kvm_pgtable_mm_ops pkvm_pgtable_mm_ops; static struct hyp_pool hpool; @@ -69,10 +68,21 @@ static int divide_memory_pool(void *virt, unsigned long size) if (!ffa_proxy_pages) return -ENOMEM; - nr_pages = hyp_host_fp_pages(hyp_nr_cpus); - hyp_host_fp_base = hyp_early_alloc_contig(nr_pages); - if (!hyp_host_fp_base) - return -ENOMEM; + return 0; +} + +static int create_hyp_host_fp_mappings(void) +{ + void *start, *end; + int ret, i; + + for (i = 0; i < hyp_nr_cpus; i++) { + start = (void *)kern_hyp_va(kvm_arm_hyp_host_fp_state[i]); + end = start + PAGE_ALIGN(pkvm_host_fp_state_size()); + ret = pkvm_create_mappings(start, end, PAGE_HYP); + if (ret) + return ret; + } return 0; } @@ -164,6 +174,8 @@ static int recreate_hyp_mappings(phys_addr_t phys, unsigned long size, params->stack_hyp_va = hyp_addr + (2 * PAGE_SIZE); } + create_hyp_host_fp_mappings(); + /* * Map the host sections RO in the hypervisor, but transfer the * ownership from the host to the hypervisor itself to make sure they @@ -405,7 +417,6 @@ void __noreturn __pkvm_init_finalise(void) goto out; pkvm_hyp_vm_table_init(vm_table_base); - pkvm_hyp_host_fp_init(hyp_host_fp_base); out: /* * We tail-called to here from handle___pkvm_init() and will not return, diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index 6259a72812e9..8d4d1374012a 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -701,7 +701,7 @@ static int get_user_mapping_size(struct kvm *kvm, u64 addr) static bool stage2_force_pte_cb(u64 addr, u64 end, enum kvm_pgtable_prot prot) { - return true; + return false; } static bool stage2_pte_is_counted(kvm_pte_t pte, u32 level) diff --git a/arch/arm64/kvm/pkvm.c b/arch/arm64/kvm/pkvm.c index b601ff98e9f2..1cff760b8f23 100644 --- a/arch/arm64/kvm/pkvm.c +++ b/arch/arm64/kvm/pkvm.c @@ -173,7 +173,6 @@ void __init kvm_hyp_reserve(void) hyp_mem_pages += hyp_vm_table_pages(); hyp_mem_pages += hyp_vmemmap_pages(STRUCT_HYP_PAGE_SIZE); hyp_mem_pages += hyp_ffa_proxy_pages(); - hyp_mem_pages += hyp_host_fp_pages(num_possible_cpus()); /* * Try to allocate a PMD-aligned region to reduce TLB pressure once @@ -504,10 +503,6 @@ static int __init finalize_pkvm(void) if (pkvm_load_early_modules()) pkvm_firmware_rmem_clear(); - /* If no DMA protection. */ - if (!pkvm_iommu_finalized()) - pkvm_firmware_rmem_clear(); - /* * Exclude HYP sections from kmemleak so that they don't get peeked * at, which would end badly once inaccessible. @@ -516,6 +511,12 @@ static int __init finalize_pkvm(void) kmemleak_free_part(__hyp_data_start, __hyp_data_end - __hyp_data_start); kmemleak_free_part_phys(hyp_mem_base, hyp_mem_size); + flush_deferred_probe_now(); + + /* If no DMA protection. */ + if (!pkvm_iommu_finalized()) + pkvm_firmware_rmem_clear(); + ret = pkvm_drop_host_privileges(); if (ret) { pr_err("Failed to de-privilege the host kernel: %d\n", ret); diff --git a/arch/x86/configs/crashdump_defconfig b/arch/x86/configs/crashdump_defconfig new file mode 100644 index 000000000000..5177d6e4619b --- /dev/null +++ b/arch/x86/configs/crashdump_defconfig @@ -0,0 +1,87 @@ +# CONFIG_WERROR is not set +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_KERNEL_LZ4=y +# CONFIG_SWAP is not set +# CONFIG_CROSS_MEMORY_ATTACH is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_PREEMPT=y +CONFIG_LOG_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=12 +# CONFIG_UTS_NS is not set +# CONFIG_TIME_NS is not set +# CONFIG_PID_NS is not set +CONFIG_BLK_DEV_INITRD=y +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_RD_ZSTD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB_MERGE_DEFAULT is not set +# CONFIG_RETPOLINE is not set +# CONFIG_X86_EXTENDED_PLATFORM is not set +# CONFIG_SCHED_OMIT_FRAME_POINTER is not set +# CONFIG_X86_MCE is not set +# CONFIG_PERF_EVENTS_AMD_UNCORE is not set +# CONFIG_X86_IOPL_IOPERM is not set +# CONFIG_MICROCODE is not set +# CONFIG_X86_5LEVEL is not set +# CONFIG_MTRR_SANITIZER is not set +# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set +CONFIG_CRASH_DUMP=y +CONFIG_PHYSICAL_START=0x100000 +# CONFIG_RANDOMIZE_BASE is not set +CONFIG_LEGACY_VSYSCALL_NONE=y +# CONFIG_SUSPEND is not set +# CONFIG_ACPI is not set +# CONFIG_VIRTUALIZATION is not set +CONFIG_JUMP_LABEL=y +# CONFIG_SECCOMP is not set +# CONFIG_STACKPROTECTOR is not set +# CONFIG_VMAP_STACK is not set +# CONFIG_MQ_IOSCHED_DEADLINE is not set +# CONFIG_MQ_IOSCHED_KYBER is not set +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_BINFMT_SCRIPT is not set +# CONFIG_SPARSEMEM_VMEMMAP is not set +# CONFIG_COMPACTION is not set +CONFIG_PCI=y +CONFIG_PCI_ENDPOINT=y +CONFIG_DEVTMPFS=y +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +# CONFIG_DMIID is not set +# CONFIG_BLK_DEV is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO_I8042 is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=1 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_DEV_BUS=y +# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set +CONFIG_VIRTIO_CONSOLE=y +# CONFIG_HW_RANDOM is not set +# CONFIG_DEVMEM is not set +# CONFIG_HWMON is not set +# CONFIG_HID is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_VIRTIO_PCI=y +# CONFIG_VIRTIO_PCI_LEGACY is not set +# CONFIG_VHOST_MENU is not set +# CONFIG_X86_PLATFORM_DEVICES is not set +# CONFIG_IOMMU_SUPPORT is not set +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +CONFIG_TMPFS=y +# CONFIG_MISC_FILESYSTEMS is not set +# CONFIG_PAGE_TABLE_ISOLATION is not set +# CONFIG_SYMBOLIC_ERRNAME is not set +# CONFIG_X86_VERBOSE_BOOTUP is not set +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/arch/x86/configs/gki_defconfig b/arch/x86/configs/gki_defconfig index 6307a0128691..34a85587c4f4 100644 --- a/arch/x86/configs/gki_defconfig +++ b/arch/x86/configs/gki_defconfig @@ -90,6 +90,7 @@ CONFIG_MODULE_SIG_PROTECT=y CONFIG_BLK_DEV_ZONED=y CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLK_CGROUP_IOCOST=y +CONFIG_BLK_CGROUP_IOPRIO=y CONFIG_BLK_INLINE_ENCRYPTION=y CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y CONFIG_IOSCHED_BFQ=y diff --git a/arch/x86/configs/microdroid_defconfig b/arch/x86/configs/microdroid_defconfig new file mode 100644 index 000000000000..d2539f0adce9 --- /dev/null +++ b/arch/x86/configs/microdroid_defconfig @@ -0,0 +1,290 @@ +CONFIG_KERNEL_LZ4=y +CONFIG_AUDIT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_TASKSTATS=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_PSI=y +CONFIG_RCU_EXPERT=y +CONFIG_RCU_BOOST=y +CONFIG_RCU_NOCB_CPU=y +CONFIG_UCLAMP_TASK=y +CONFIG_UCLAMP_BUCKETS_COUNT=20 +CONFIG_CGROUPS=y +CONFIG_MEMCG=y +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_SCHED=y +CONFIG_UCLAMP_TASK_GROUP=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_CPUACCT=y +# CONFIG_UTS_NS is not set +# CONFIG_TIME_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +CONFIG_BOOT_CONFIG=y +CONFIG_PROFILING=y +CONFIG_SMP=y +CONFIG_X86_X2APIC=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +CONFIG_PARAVIRT_TIME_ACCOUNTING=y +CONFIG_NR_CPUS=32 +# CONFIG_X86_MCE is not set +CONFIG_EFI=y +CONFIG_KEXEC_FILE=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="stack_depot_disable=on cgroup_disable=pressure ioremap_guard panic=-1 bootconfig acpi=noirq" +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_WAKELOCKS_LIMIT=0 +# CONFIG_PM_WAKELOCKS_GC is not set +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_TIMES=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_JUMP_LABEL=y +CONFIG_MODULES=y +CONFIG_BLK_DEV_ZONED=y +CONFIG_BLK_CGROUP_IOCOST=y +CONFIG_BLK_INLINE_ENCRYPTION=y +CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y +CONFIG_PARTITION_ADVANCED=y +# CONFIG_MSDOS_PARTITION is not set +CONFIG_IOSCHED_BFQ=y +CONFIG_BFQ_GROUP_IOSCHED=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_BINFMT_MISC=y +# CONFIG_SLAB_MERGE_DEFAULT is not set +CONFIG_SLAB_FREELIST_RANDOM=y +CONFIG_SLAB_FREELIST_HARDENED=y +CONFIG_SHUFFLE_PAGE_ALLOCATOR=y +# CONFIG_COMPAT_BRK is not set +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_ANON_VMA_NAME=y +CONFIG_USERFAULTFD=y +CONFIG_LRU_GEN=y +CONFIG_DAMON=y +CONFIG_DAMON_PADDR=y +CONFIG_DAMON_RECLAIM=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_INTERFACE=y +CONFIG_XFRM_MIGRATE=y +CONFIG_XFRM_STATISTICS=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_NET_IPIP=y +CONFIG_NET_IPGRE_DEMUX=y +CONFIG_NET_IPGRE=y +CONFIG_NET_IPVTI=y +CONFIG_INET_ESP=y +CONFIG_INET_UDP_DIAG=y +CONFIG_INET_DIAG_DESTROY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_IPV6_VTI=y +CONFIG_IPV6_GRE=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_VSOCKETS=y +CONFIG_VIRTIO_VSOCKETS=y +CONFIG_CGROUP_NET_PRIO=y +# CONFIG_WIRELESS is not set +CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIEAER=y +CONFIG_PCI_MSI=y +CONFIG_PCI_IOV=y +CONFIG_PCIE_DW_PLAT_EP=y +CONFIG_PCI_ENDPOINT=y +CONFIG_FW_LOADER_USER_HELPER=y +# CONFIG_FW_CACHE is not set +CONFIG_OF=y +CONFIG_ZRAM=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=16 +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_VIRTIO_BLK=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=y +CONFIG_DM_INIT=y +CONFIG_DM_UEVENT=y +CONFIG_DM_VERITY=y +CONFIG_DM_VERITY_FEC=y +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_CONSOLE=y +# CONFIG_SERIAL_8250_PCI is not set +CONFIG_SERIAL_8250_RUNTIME_UARTS=0 +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_NULL_TTY=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_VIRTIO=y +# CONFIG_DEVMEM is not set +# CONFIG_DEVPORT is not set +CONFIG_HPET=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_GENERIC_PLATFORM=y +# CONFIG_HWMON is not set +CONFIG_THERMAL_NETLINK=y +CONFIG_THERMAL_STATISTICS=y +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=100 +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_CPU_THERMAL=y +CONFIG_THERMAL_EMULATION=y +# CONFIG_X86_PKG_TEMP_THERMAL is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +CONFIG_MFD_SYSCON=y +# CONFIG_HID is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_EDAC=y +CONFIG_RTC_CLASS=y +CONFIG_DMABUF_HEAPS=y +CONFIG_DMABUF_SYSFS_STATS=y +CONFIG_UIO=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_STAGING=y +CONFIG_LIBNVDIMM=y +CONFIG_EXT4_FS=y +# CONFIG_EXT4_USE_FOR_EXT2 is not set +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_DNOTIFY is not set +CONFIG_FUSE_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_EFIVAR_FS is not set +CONFIG_EROFS_FS=y +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=y +CONFIG_NLS_CODEPAGE_775=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_CODEPAGE_852=y +CONFIG_NLS_CODEPAGE_855=y +CONFIG_NLS_CODEPAGE_857=y +CONFIG_NLS_CODEPAGE_860=y +CONFIG_NLS_CODEPAGE_861=y +CONFIG_NLS_CODEPAGE_862=y +CONFIG_NLS_CODEPAGE_863=y +CONFIG_NLS_CODEPAGE_864=y +CONFIG_NLS_CODEPAGE_865=y +CONFIG_NLS_CODEPAGE_866=y +CONFIG_NLS_CODEPAGE_869=y +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_CODEPAGE_932=y +CONFIG_NLS_CODEPAGE_949=y +CONFIG_NLS_CODEPAGE_874=y +CONFIG_NLS_ISO8859_8=y +CONFIG_NLS_CODEPAGE_1250=y +CONFIG_NLS_CODEPAGE_1251=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=y +CONFIG_NLS_ISO8859_3=y +CONFIG_NLS_ISO8859_4=y +CONFIG_NLS_ISO8859_5=y +CONFIG_NLS_ISO8859_6=y +CONFIG_NLS_ISO8859_7=y +CONFIG_NLS_ISO8859_9=y +CONFIG_NLS_ISO8859_13=y +CONFIG_NLS_ISO8859_14=y +CONFIG_NLS_ISO8859_15=y +CONFIG_NLS_KOI8_R=y +CONFIG_NLS_KOI8_U=y +CONFIG_NLS_MAC_ROMAN=y +CONFIG_NLS_MAC_CELTIC=y +CONFIG_NLS_MAC_CENTEURO=y +CONFIG_NLS_MAC_CROATIAN=y +CONFIG_NLS_MAC_CYRILLIC=y +CONFIG_NLS_MAC_GAELIC=y +CONFIG_NLS_MAC_GREEK=y +CONFIG_NLS_MAC_ICELAND=y +CONFIG_NLS_MAC_INUIT=y +CONFIG_NLS_MAC_ROMANIAN=y +CONFIG_NLS_MAC_TURKISH=y +CONFIG_NLS_UTF8=y +CONFIG_UNICODE=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_HARDENED_USERCOPY=y +CONFIG_STATIC_USERMODEHELPER=y +CONFIG_STATIC_USERMODEHELPER_PATH="" +CONFIG_SECURITY_SELINUX=y +CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_ADIANTUM=y +CONFIG_CRYPTO_HCTR2=y +CONFIG_CRYPTO_CHACHA20POLY1305=y +CONFIG_CRYPTO_BLAKE2B=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_XCBC=y +CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_LZ4=y +CONFIG_CRYPTO_ZSTD=y +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_CRYPTO_AES_NI_INTEL=y +CONFIG_CRYPTO_POLYVAL_CLMUL_NI=y +CONFIG_CRYPTO_SHA256_SSSE3=y +CONFIG_CRYPTO_SHA512_SSSE3=y +CONFIG_CRC8=y +CONFIG_XZ_DEC=y +CONFIG_PRINTK_TIME=y +CONFIG_DYNAMIC_DEBUG_CORE=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_INFO_DWARF5=y +CONFIG_DEBUG_INFO_REDUCED=y +CONFIG_DEBUG_INFO_COMPRESSED=y +CONFIG_HEADERS_INSTALL=y +# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_UBSAN=y +CONFIG_UBSAN_TRAP=y +CONFIG_UBSAN_LOCAL_BOUNDS=y +# CONFIG_UBSAN_SHIFT is not set +# CONFIG_UBSAN_BOOL is not set +# CONFIG_UBSAN_ENUM is not set +CONFIG_PAGE_OWNER=y +CONFIG_DEBUG_STACK_USAGE=y +CONFIG_KFENCE=y +CONFIG_KFENCE_SAMPLE_INTERVAL=500 +CONFIG_KFENCE_NUM_OBJECTS=63 +CONFIG_PANIC_ON_OOPS=y +CONFIG_PANIC_TIMEOUT=-1 +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_WQ_WATCHDOG=y +CONFIG_SCHEDSTATS=y +CONFIG_BUG_ON_DATA_CORRUPTION=y +CONFIG_HIST_TRIGGERS=y +CONFIG_UNWINDER_FRAME_POINTER=y diff --git a/block/blk-ioprio.c b/block/blk-ioprio.c index 8bb6b8eba4ce..4eba569d4823 100644 --- a/block/blk-ioprio.c +++ b/block/blk-ioprio.c @@ -23,25 +23,28 @@ /** * enum prio_policy - I/O priority class policy. * @POLICY_NO_CHANGE: (default) do not modify the I/O priority class. - * @POLICY_NONE_TO_RT: modify IOPRIO_CLASS_NONE into IOPRIO_CLASS_RT. + * @POLICY_PROMOTE_TO_RT: modify no-IOPRIO_CLASS_RT to IOPRIO_CLASS_RT. * @POLICY_RESTRICT_TO_BE: modify IOPRIO_CLASS_NONE and IOPRIO_CLASS_RT into * IOPRIO_CLASS_BE. * @POLICY_ALL_TO_IDLE: change the I/O priority class into IOPRIO_CLASS_IDLE. + * @POLICY_NONE_TO_RT: an alias for POLICY_PROMOTE_TO_RT. * * See also . */ enum prio_policy { POLICY_NO_CHANGE = 0, - POLICY_NONE_TO_RT = 1, + POLICY_PROMOTE_TO_RT = 1, POLICY_RESTRICT_TO_BE = 2, POLICY_ALL_TO_IDLE = 3, + POLICY_NONE_TO_RT = 4, }; static const char *policy_name[] = { [POLICY_NO_CHANGE] = "no-change", - [POLICY_NONE_TO_RT] = "none-to-rt", + [POLICY_PROMOTE_TO_RT] = "promote-to-rt", [POLICY_RESTRICT_TO_BE] = "restrict-to-be", [POLICY_ALL_TO_IDLE] = "idle", + [POLICY_NONE_TO_RT] = "none-to-rt", }; static struct blkcg_policy ioprio_policy; @@ -189,6 +192,20 @@ void blkcg_set_ioprio(struct bio *bio) if (!blkcg || blkcg->prio_policy == POLICY_NO_CHANGE) return; + if (blkcg->prio_policy == POLICY_PROMOTE_TO_RT || + blkcg->prio_policy == POLICY_NONE_TO_RT) { + /* + * For RT threads, the default priority level is 4 because + * task_nice is 0. By promoting non-RT io-priority to RT-class + * and default level 4, those requests that are already + * RT-class but need a higher io-priority can use ioprio_set() + * to achieve this. + */ + if (IOPRIO_PRIO_CLASS(bio->bi_ioprio) != IOPRIO_CLASS_RT) + bio->bi_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 4); + return; + } + /* * Except for IOPRIO_CLASS_NONE, higher I/O priority numbers * correspond to a lower priority. Hence, the max_t() below selects diff --git a/build.config.crashdump b/build.config.crashdump new file mode 100644 index 000000000000..8a4214358308 --- /dev/null +++ b/build.config.crashdump @@ -0,0 +1 @@ +DEFCONFIG=crashdump_defconfig diff --git a/build.config.crashdump.aarch64 b/build.config.crashdump.aarch64 new file mode 100644 index 000000000000..20a8acc98912 --- /dev/null +++ b/build.config.crashdump.aarch64 @@ -0,0 +1,7 @@ +KERNEL_DIR=common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64 +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.crashdump + +# No modules +IN_KERNEL_MODULES= diff --git a/build.config.crashdump.x86_64 b/build.config.crashdump.x86_64 new file mode 100644 index 000000000000..18eed729a8c1 --- /dev/null +++ b/build.config.crashdump.x86_64 @@ -0,0 +1,7 @@ +KERNEL_DIR=common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.x86_64 +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.crashdump + +# No modules +IN_KERNEL_MODULES= diff --git a/build.config.microdroid b/build.config.microdroid new file mode 100644 index 000000000000..d31e0d5587f3 --- /dev/null +++ b/build.config.microdroid @@ -0,0 +1 @@ +DEFCONFIG=microdroid_defconfig diff --git a/build.config.microdroid.aarch64 b/build.config.microdroid.aarch64 new file mode 100644 index 000000000000..a8ffa55bc2ad --- /dev/null +++ b/build.config.microdroid.aarch64 @@ -0,0 +1,7 @@ +KERNEL_DIR=common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64 +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.microdroid + +# No modules +IN_KERNEL_MODULES= diff --git a/build.config.microdroid.x86_64 b/build.config.microdroid.x86_64 new file mode 100644 index 000000000000..10cd8b23a748 --- /dev/null +++ b/build.config.microdroid.x86_64 @@ -0,0 +1,7 @@ +KERNEL_DIR=common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.x86_64 +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.microdroid + +# No modules +IN_KERNEL_MODULES= diff --git a/build.config.rockchip b/build.config.rockchip new file mode 100644 index 000000000000..c3d089708674 --- /dev/null +++ b/build.config.rockchip @@ -0,0 +1,15 @@ +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64 + +BUILD_INITRAMFS=1 +LZ4_RAMDISK=1 +DEFCONFIG=rockchip_gki_defconfig +FRAGMENT_CONFIG=${KERNEL_DIR}/arch/arm64/configs/rockchip_gki.fragment +PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${FRAGMENT_CONFIG}" +POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}" + +DTC_INCLUDE=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/boot/dts/rockchip + +FILES="${FILES} +arch/arm64/boot/dts/rockchip/rk3588*.dtb +" diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 4f89346dd283..8b7448753183 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -1761,6 +1761,7 @@ static void binder_free_transaction(struct binder_transaction *t) { struct binder_proc *target_proc = t->to_proc; + trace_android_vh_free_oem_binder_struct(t); if (target_proc) { binder_inner_proc_lock(target_proc); target_proc->outstanding_txns--; @@ -2945,6 +2946,7 @@ static int binder_proc_transaction(struct binder_transaction *t, bool pending_async = false; struct binder_transaction *t_outdated = NULL; bool skip = false; + bool enqueue_task = true; BUG_ON(!node); binder_node_lock(node); @@ -2984,7 +2986,10 @@ static int binder_proc_transaction(struct binder_transaction *t, binder_transaction_priority(thread, t, node); binder_enqueue_thread_work_ilocked(thread, &t->work); } else if (!pending_async) { - binder_enqueue_work_ilocked(&t->work, &proc->todo); + trace_android_vh_binder_special_task(t, proc, thread, + &t->work, &proc->todo, !oneway, &enqueue_task); + if (enqueue_task) + binder_enqueue_work_ilocked(&t->work, &proc->todo); } else { if ((t->flags & TF_UPDATE_TXN) && proc->is_frozen) { t_outdated = binder_find_outdated_transaction_ilocked(t, @@ -2997,7 +3002,10 @@ static int binder_proc_transaction(struct binder_transaction *t, proc->outstanding_txns--; } } - binder_enqueue_work_ilocked(&t->work, &node->async_todo); + trace_android_vh_binder_special_task(t, proc, thread, + &t->work, &node->async_todo, !oneway, &enqueue_task); + if (enqueue_task) + binder_enqueue_work_ilocked(&t->work, &node->async_todo); } trace_android_vh_binder_proc_transaction_finish(proc, t, @@ -3474,6 +3482,7 @@ static void binder_transaction(struct binder_proc *proc, t->buffer->target_node = target_node; t->buffer->clear_on_free = !!(t->flags & TF_CLEAR_BUF); trace_binder_transaction_alloc_buf(t->buffer); + trace_android_vh_alloc_oem_binder_struct(tr, t, target_proc); if (binder_alloc_copy_user_to_buffer( &target_proc->alloc, @@ -3978,6 +3987,9 @@ binder_free_buf(struct binder_proc *proc, struct binder_thread *thread, struct binder_buffer *buffer, bool is_failure) { + bool enqueue_task = true; + + trace_android_vh_binder_free_buf(proc, thread, buffer); binder_inner_proc_lock(proc); if (buffer->transaction) { buffer->transaction->buffer = NULL; @@ -3997,8 +4009,10 @@ binder_free_buf(struct binder_proc *proc, if (!w) { buf_node->has_async_transaction = false; } else { - binder_enqueue_work_ilocked( - w, &proc->todo); + trace_android_vh_binder_special_task(NULL, proc, thread, w, + &proc->todo, false, &enqueue_task); + if (enqueue_task) + binder_enqueue_work_ilocked(w, &proc->todo); binder_wakeup_proc_ilocked(proc); } binder_node_inner_unlock(buf_node); @@ -4940,6 +4954,7 @@ skip: ptr += trsize; trace_binder_transaction_received(t); + trace_android_vh_binder_transaction_received(t, proc, thread, cmd); binder_stat_br(proc, thread, cmd); binder_debug(BINDER_DEBUG_TRANSACTION, "%d:%d %s %d %d:%d, cmd %u size %zd-%zd ptr %016llx-%016llx\n", diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 104e4eb48ff9..c7b6b1553b30 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -67,7 +67,7 @@ #include #include #include - +#include /* * Export tracepoints that act as a bare tracehook (ie: have no trace event * associated with them) to allow external modules to probe them. @@ -182,6 +182,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_mutex_lock_starttime); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_rtmutex_lock_starttime); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_rwsem_lock_starttime); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_pcpu_rwsem_starttime); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_percpu_rwsem_wq_add); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_module_core_rw_nx); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_module_init_rw_nx); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_module_permit_before_init); @@ -329,3 +330,17 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_check); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freeze_whether_wake); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_use_amu_fie); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scan_abort_check_wmarks); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_oem_binder_struct); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_transaction_received); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_oem_binder_struct); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_special_task); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_free_buf); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_compaction_exit); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_compaction_try_to_compact_pages_exit); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_alloc_pages_direct_reclaim_enter); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_alloc_pages_direct_reclaim_exit); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_alloc_pages_may_oom_exit); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_vmscan_kswapd_done); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_compaction_begin); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_compaction_end); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_bus_iommu_probe); diff --git a/drivers/base/dd.c b/drivers/base/dd.c index c463173f1fb1..1b7378843ceb 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -754,6 +754,29 @@ void wait_for_device_probe(void) } EXPORT_SYMBOL_GPL(wait_for_device_probe); +/** + * flush_deferred_probe_now + * + * This function should be used sparingly. It's meant for when we need to flush + * the deferred probe list at earlier initcall levels. Really meant only for KVM + * needs. This function should never be exported because it makes no sense for + * modules to call this. + */ +void flush_deferred_probe_now(void) +{ + /* + * Really shouldn't using this if deferred probe has already been + * enabled + */ + if (WARN_ON(driver_deferred_probe_enable)) + return; + + driver_deferred_probe_enable = true; + driver_deferred_probe_trigger(); + wait_for_device_probe(); + driver_deferred_probe_enable = false; +} + static int __driver_probe_device(struct device_driver *drv, struct device *dev) { int ret = 0; diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index b411201f75bf..b33fc322e092 100644 --- a/drivers/base/power/domain.c +++ b/drivers/base/power/domain.c @@ -2923,10 +2923,10 @@ static int genpd_parse_state(struct genpd_power_state *genpd_state, err = of_property_read_u32(state_node, "min-residency-us", &residency); if (!err) - genpd_state->residency_ns = 1000 * residency; + genpd_state->residency_ns = 1000LL * residency; - genpd_state->power_on_latency_ns = 1000 * exit_latency; - genpd_state->power_off_latency_ns = 1000 * entry_latency; + genpd_state->power_on_latency_ns = 1000LL * exit_latency; + genpd_state->power_off_latency_ns = 1000LL * entry_latency; genpd_state->fwnode = &state_node->fwnode; return 0; diff --git a/drivers/clk/clk-fractional-divider.c b/drivers/clk/clk-fractional-divider.c index 8efa5142ff8c..cae0ea9fff98 100644 --- a/drivers/clk/clk-fractional-divider.c +++ b/drivers/clk/clk-fractional-divider.c @@ -126,6 +126,7 @@ void clk_fractional_divider_general_approximation(struct clk_hw *hw, GENMASK(fd->mwidth - 1, 0), GENMASK(fd->nwidth - 1, 0), m, n); } +EXPORT_SYMBOL_GPL(clk_fractional_divider_general_approximation); static long clk_fd_round_rate(struct clk_hw *hw, unsigned long rate, unsigned long *parent_rate) diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index d7676008ff57..34674cc428e5 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -2055,10 +2055,6 @@ static struct protection_domain *protection_domain_alloc(unsigned int type) int mode = DEFAULT_PGTABLE_LEVEL; int ret; - domain = kzalloc(sizeof(*domain), GFP_KERNEL); - if (!domain) - return NULL; - /* * Force IOMMU v1 page table when iommu=pt and * when allocating domain for pass-through devices. @@ -2074,6 +2070,10 @@ static struct protection_domain *protection_domain_alloc(unsigned int type) return NULL; } + domain = kzalloc(sizeof(*domain), GFP_KERNEL); + if (!domain) + return NULL; + switch (pgtable) { case AMD_IOMMU_V1: ret = protection_domain_init_v1(domain, mode); diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c index c9bdec523454..89c2c55aa690 100644 --- a/drivers/iommu/dma-iommu.c +++ b/drivers/iommu/dma-iommu.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -392,6 +393,8 @@ void iommu_dma_get_resv_regions(struct device *dev, struct list_head *list) if (!is_of_node(dev_iommu_fwspec_get(dev)->iommu_fwnode)) iort_iommu_get_resv_regions(dev, list); + if (dev->of_node) + of_iommu_get_resv_regions(dev, list); } EXPORT_SYMBOL(iommu_dma_get_resv_regions); diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index fc7286d801db..eebba280512f 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -30,6 +30,7 @@ #include #include #include +#include #include "dma-iommu.h" @@ -223,7 +224,8 @@ int iommu_device_register(struct iommu_device *iommu, * already the de-facto behaviour, since any possible combination of * existing drivers would compete for at least the PCI or platform bus. */ - if (iommu_buses[0]->iommu_ops && iommu_buses[0]->iommu_ops != ops) + if (iommu_buses[0]->iommu_ops && iommu_buses[0]->iommu_ops != ops + && !trace_android_vh_bus_iommu_probe_enabled()) return -EBUSY; iommu->ops = ops; @@ -235,6 +237,11 @@ int iommu_device_register(struct iommu_device *iommu, spin_unlock(&iommu_device_lock); for (int i = 0; i < ARRAY_SIZE(iommu_buses) && !err; i++) { + bool skip = false; + + trace_android_vh_bus_iommu_probe(iommu, iommu_buses[i], &skip); + if (skip) + continue; iommu_buses[i]->iommu_ops = ops; err = bus_iommu_probe(iommu_buses[i]); } diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c index 5696314ae69e..da271c5596fb 100644 --- a/drivers/iommu/of_iommu.c +++ b/drivers/iommu/of_iommu.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -172,3 +173,98 @@ const struct iommu_ops *of_iommu_configure(struct device *dev, return ops; } + +static enum iommu_resv_type __maybe_unused +iommu_resv_region_get_type(struct device *dev, + struct resource *phys, + phys_addr_t start, size_t length) +{ + phys_addr_t end = start + length - 1; + + /* + * IOMMU regions without an associated physical region cannot be + * mapped and are simply reservations. + */ + if (phys->start >= phys->end) + return IOMMU_RESV_RESERVED; + + /* may be IOMMU_RESV_DIRECT_RELAXABLE for certain cases */ + if (start == phys->start && end == phys->end) + return IOMMU_RESV_DIRECT; + + dev_warn(dev, "treating non-direct mapping [%pr] -> [%pap-%pap] as reservation\n", &phys, + &start, &end); + return IOMMU_RESV_RESERVED; +} + +/** + * of_iommu_get_resv_regions - reserved region driver helper for device tree + * @dev: device for which to get reserved regions + * @list: reserved region list + * + * IOMMU drivers can use this to implement their .get_resv_regions() callback + * for memory regions attached to a device tree node. See the reserved-memory + * device tree bindings on how to use these: + * + * Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt + */ +void of_iommu_get_resv_regions(struct device *dev, struct list_head *list) +{ +#if IS_ENABLED(CONFIG_OF_ADDRESS) + struct of_phandle_iterator it; + int err; + + of_for_each_phandle(&it, err, dev->of_node, "memory-region", NULL, 0) { + const __be32 *maps, *end; + struct resource phys; + int size; + + memset(&phys, 0, sizeof(phys)); + + /* + * The "reg" property is optional and can be omitted by reserved-memory regions + * that represent reservations in the IOVA space, which are regions that should + * not be mapped. + */ + if (of_find_property(it.node, "reg", NULL)) { + err = of_address_to_resource(it.node, 0, &phys); + if (err < 0) { + dev_err(dev, "failed to parse memory region %pOF: %d\n", + it.node, err); + continue; + } + } + + maps = of_get_property(it.node, "iommu-addresses", &size); + if (!maps) + continue; + + end = maps + size / sizeof(__be32); + + while (maps < end) { + struct device_node *np; + u32 phandle; + + phandle = be32_to_cpup(maps++); + np = of_find_node_by_phandle(phandle); + + if (np == dev->of_node) { + int prot = IOMMU_READ | IOMMU_WRITE; + struct iommu_resv_region *region; + enum iommu_resv_type type; + phys_addr_t iova; + size_t length; + + maps = of_translate_dma_region(np, maps, &iova, &length); + type = iommu_resv_region_get_type(dev, &phys, iova, length); + + region = iommu_alloc_resv_region(iova, length, prot, type, + GFP_KERNEL); + if (region) + list_add_tail(®ion->list, list); + } + } + } +#endif +} +EXPORT_SYMBOL(of_iommu_get_resv_regions); diff --git a/drivers/memstick/host/r592.c b/drivers/memstick/host/r592.c index 1d35d147552d..42bfc46842b8 100644 --- a/drivers/memstick/host/r592.c +++ b/drivers/memstick/host/r592.c @@ -829,7 +829,7 @@ static void r592_remove(struct pci_dev *pdev) /* Stop the processing thread. That ensures that we won't take any more requests */ kthread_stop(dev->io_thread); - + del_timer_sync(&dev->detect_timer); r592_enable_device(dev, false); while (!error && dev->req) { diff --git a/drivers/misc/uid_sys_stats.c b/drivers/misc/uid_sys_stats.c index 842597bbeb89..095962102ac7 100644 --- a/drivers/misc/uid_sys_stats.c +++ b/drivers/misc/uid_sys_stats.c @@ -23,17 +23,20 @@ #include #include #include -#include #include #include #include #include - +#include #define UID_HASH_BITS 10 +#define UID_HASH_NUMS (1 << UID_HASH_BITS) DECLARE_HASHTABLE(hash_table, UID_HASH_BITS); +/* + * uid_lock[bkt] ensure consistency of hash_table[bkt] + */ +spinlock_t uid_lock[UID_HASH_NUMS]; -static DEFINE_RT_MUTEX(uid_lock); static struct proc_dir_entry *cpu_parent; static struct proc_dir_entry *io_parent; static struct proc_dir_entry *proc_parent; @@ -78,6 +81,32 @@ struct uid_entry { #endif }; +static inline int trylock_uid(uid_t uid) +{ + return spin_trylock( + &uid_lock[hash_min(uid, HASH_BITS(hash_table))]); +} + +static inline void lock_uid(uid_t uid) +{ + spin_lock(&uid_lock[hash_min(uid, HASH_BITS(hash_table))]); +} + +static inline void unlock_uid(uid_t uid) +{ + spin_unlock(&uid_lock[hash_min(uid, HASH_BITS(hash_table))]); +} + +static inline void lock_uid_by_bkt(u32 bkt) +{ + spin_lock(&uid_lock[bkt]); +} + +static inline void unlock_uid_by_bkt(u32 bkt) +{ + spin_unlock(&uid_lock[bkt]); +} + static u64 compute_write_bytes(struct task_io_accounting *ioac) { if (ioac->write_bytes <= ioac->cancelled_write_bytes) @@ -333,24 +362,29 @@ static int uid_cputime_show(struct seq_file *m, void *v) struct user_namespace *user_ns = current_user_ns(); u64 utime; u64 stime; - unsigned long bkt; + u32 bkt; uid_t uid; - rt_mutex_lock(&uid_lock); - - hash_for_each(hash_table, bkt, uid_entry, hash) { - uid_entry->active_stime = 0; - uid_entry->active_utime = 0; + for (bkt = 0, uid_entry = NULL; uid_entry == NULL && + bkt < HASH_SIZE(hash_table); bkt++) { + lock_uid_by_bkt(bkt); + hlist_for_each_entry(uid_entry, &hash_table[bkt], hash) { + uid_entry->active_stime = 0; + uid_entry->active_utime = 0; + } + unlock_uid_by_bkt(bkt); } rcu_read_lock(); do_each_thread(temp, task) { uid = from_kuid_munged(user_ns, task_uid(task)); + lock_uid(uid); + if (!uid_entry || uid_entry->uid != uid) uid_entry = find_or_register_uid(uid); if (!uid_entry) { rcu_read_unlock(); - rt_mutex_unlock(&uid_lock); + unlock_uid(uid); pr_err("%s: failed to find the uid_entry for uid %d\n", __func__, uid); return -ENOMEM; @@ -361,19 +395,24 @@ static int uid_cputime_show(struct seq_file *m, void *v) uid_entry->active_utime += utime; uid_entry->active_stime += stime; } + unlock_uid(uid); } while_each_thread(temp, task); rcu_read_unlock(); - hash_for_each(hash_table, bkt, uid_entry, hash) { - u64 total_utime = uid_entry->utime + - uid_entry->active_utime; - u64 total_stime = uid_entry->stime + - uid_entry->active_stime; - seq_printf(m, "%d: %llu %llu\n", uid_entry->uid, - ktime_to_us(total_utime), ktime_to_us(total_stime)); + for (bkt = 0, uid_entry = NULL; uid_entry == NULL && + bkt < HASH_SIZE(hash_table); bkt++) { + lock_uid_by_bkt(bkt); + hlist_for_each_entry(uid_entry, &hash_table[bkt], hash) { + u64 total_utime = uid_entry->utime + + uid_entry->active_utime; + u64 total_stime = uid_entry->stime + + uid_entry->active_stime; + seq_printf(m, "%d: %llu %llu\n", uid_entry->uid, + ktime_to_us(total_utime), ktime_to_us(total_stime)); + } + unlock_uid_by_bkt(bkt); } - rt_mutex_unlock(&uid_lock); return 0; } @@ -421,9 +460,8 @@ static ssize_t uid_remove_write(struct file *file, return -EINVAL; } - rt_mutex_lock(&uid_lock); - for (; uid_start <= uid_end; uid_start++) { + lock_uid(uid_start); hash_for_each_possible_safe(hash_table, uid_entry, tmp, hash, (uid_t)uid_start) { if (uid_start == uid_entry->uid) { @@ -432,9 +470,9 @@ static ssize_t uid_remove_write(struct file *file, kfree(uid_entry); } } + unlock_uid(uid_start); } - rt_mutex_unlock(&uid_lock); return count; } @@ -472,41 +510,59 @@ static void add_uid_io_stats(struct uid_entry *uid_entry, __add_uid_io_stats(uid_entry, &task->ioac, slot); } -static void update_io_stats_all_locked(void) +static void update_io_stats_all(void) { struct uid_entry *uid_entry = NULL; struct task_struct *task, *temp; struct user_namespace *user_ns = current_user_ns(); - unsigned long bkt; + u32 bkt; uid_t uid; - hash_for_each(hash_table, bkt, uid_entry, hash) { - memset(&uid_entry->io[UID_STATE_TOTAL_CURR], 0, - sizeof(struct io_stats)); - set_io_uid_tasks_zero(uid_entry); + for (bkt = 0, uid_entry = NULL; uid_entry == NULL && bkt < HASH_SIZE(hash_table); + bkt++) { + lock_uid_by_bkt(bkt); + hlist_for_each_entry(uid_entry, &hash_table[bkt], hash) { + memset(&uid_entry->io[UID_STATE_TOTAL_CURR], 0, + sizeof(struct io_stats)); + set_io_uid_tasks_zero(uid_entry); + } + unlock_uid_by_bkt(bkt); } rcu_read_lock(); do_each_thread(temp, task) { uid = from_kuid_munged(user_ns, task_uid(task)); + lock_uid(uid); if (!uid_entry || uid_entry->uid != uid) uid_entry = find_or_register_uid(uid); - if (!uid_entry) + if (!uid_entry) { + unlock_uid(uid); continue; + } add_uid_io_stats(uid_entry, task, UID_STATE_TOTAL_CURR); + unlock_uid(uid); } while_each_thread(temp, task); rcu_read_unlock(); - hash_for_each(hash_table, bkt, uid_entry, hash) { - compute_io_bucket_stats(&uid_entry->io[uid_entry->state], - &uid_entry->io[UID_STATE_TOTAL_CURR], - &uid_entry->io[UID_STATE_TOTAL_LAST], - &uid_entry->io[UID_STATE_DEAD_TASKS]); - compute_io_uid_tasks(uid_entry); + for (bkt = 0, uid_entry = NULL; uid_entry == NULL && bkt < HASH_SIZE(hash_table); + bkt++) { + lock_uid_by_bkt(bkt); + hlist_for_each_entry(uid_entry, &hash_table[bkt], hash) { + compute_io_bucket_stats(&uid_entry->io[uid_entry->state], + &uid_entry->io[UID_STATE_TOTAL_CURR], + &uid_entry->io[UID_STATE_TOTAL_LAST], + &uid_entry->io[UID_STATE_DEAD_TASKS]); + compute_io_uid_tasks(uid_entry); + } + unlock_uid_by_bkt(bkt); } } +#ifndef CONFIG_UID_SYS_STATS_DEBUG +static void update_io_stats_uid(struct uid_entry *uid_entry) +#else static void update_io_stats_uid_locked(struct uid_entry *uid_entry) +#endif { struct task_struct *task, *temp; struct user_namespace *user_ns = current_user_ns(); @@ -534,14 +590,15 @@ static void update_io_stats_uid_locked(struct uid_entry *uid_entry) static int uid_io_show(struct seq_file *m, void *v) { struct uid_entry *uid_entry; - unsigned long bkt; + u32 bkt; - rt_mutex_lock(&uid_lock); + update_io_stats_all(); + for (bkt = 0, uid_entry = NULL; uid_entry == NULL && bkt < HASH_SIZE(hash_table); + bkt++) { - update_io_stats_all_locked(); - - hash_for_each(hash_table, bkt, uid_entry, hash) { - seq_printf(m, "%d %llu %llu %llu %llu %llu %llu %llu %llu %llu %llu\n", + lock_uid_by_bkt(bkt); + hlist_for_each_entry(uid_entry, &hash_table[bkt], hash) { + seq_printf(m, "%d %llu %llu %llu %llu %llu %llu %llu %llu %llu %llu\n", uid_entry->uid, uid_entry->io[UID_STATE_FOREGROUND].rchar, uid_entry->io[UID_STATE_FOREGROUND].wchar, @@ -554,10 +611,11 @@ static int uid_io_show(struct seq_file *m, void *v) uid_entry->io[UID_STATE_FOREGROUND].fsync, uid_entry->io[UID_STATE_BACKGROUND].fsync); - show_io_uid_tasks(m, uid_entry); + show_io_uid_tasks(m, uid_entry); + } + unlock_uid_by_bkt(bkt); } - rt_mutex_unlock(&uid_lock); return 0; } @@ -585,6 +643,9 @@ static ssize_t uid_procstat_write(struct file *file, uid_t uid; int argc, state; char input[128]; +#ifndef CONFIG_UID_SYS_STATS_DEBUG + struct uid_entry uid_entry_tmp; +#endif if (count >= sizeof(input)) return -EINVAL; @@ -601,24 +662,51 @@ static ssize_t uid_procstat_write(struct file *file, if (state != UID_STATE_BACKGROUND && state != UID_STATE_FOREGROUND) return -EINVAL; - rt_mutex_lock(&uid_lock); - + lock_uid(uid); uid_entry = find_or_register_uid(uid); if (!uid_entry) { - rt_mutex_unlock(&uid_lock); + unlock_uid(uid); return -EINVAL; } if (uid_entry->state == state) { - rt_mutex_unlock(&uid_lock); + unlock_uid(uid); return count; } +#ifndef CONFIG_UID_SYS_STATS_DEBUG + /* + * Update_io_stats_uid_locked would take a long lock-time of uid_lock + * due to call do_each_thread to compute uid_entry->io, which would + * cause to lock competition sometime. + * + * Using uid_entry_tmp to get the result of Update_io_stats_uid, + * so that we can unlock_uid during update_io_stats_uid, in order + * to avoid the unnecessary lock-time of uid_lock. + */ + uid_entry_tmp.uid = uid_entry->uid; + memcpy(uid_entry_tmp.io, uid_entry->io, + sizeof(struct io_stats) * UID_STATE_SIZE); + unlock_uid(uid); + update_io_stats_uid(&uid_entry_tmp); + + lock_uid(uid); + hlist_for_each_entry(uid_entry, &hash_table[hash_min(uid, HASH_BITS(hash_table))], hash) { + if (uid_entry->uid == uid_entry_tmp.uid) { + memcpy(uid_entry->io, uid_entry_tmp.io, + sizeof(struct io_stats) * UID_STATE_SIZE); + uid_entry->state = state; + break; + } + } + unlock_uid(uid); +#else update_io_stats_uid_locked(uid_entry); uid_entry->state = state; - rt_mutex_unlock(&uid_lock); + unlock_uid(uid); +#endif return count; } @@ -649,10 +737,9 @@ static void update_stats_workfn(struct work_struct *work) struct task_entry *task_entry __maybe_unused; struct llist_node *node; - rt_mutex_lock(&uid_lock); - node = llist_del_all(&work_usw); llist_for_each_entry_safe(usw, t, node, node) { + lock_uid(usw->uid); uid_entry = find_uid_entry(usw->uid); if (!uid_entry) goto next; @@ -669,12 +756,13 @@ static void update_stats_workfn(struct work_struct *work) #endif __add_uid_io_stats(uid_entry, &usw->ioac, UID_STATE_DEAD_TASKS); next: + unlock_uid(usw->uid); #ifdef CONFIG_UID_SYS_STATS_DEBUG put_task_struct(usw->task); #endif kfree(usw); } - rt_mutex_unlock(&uid_lock); + } static DECLARE_WORK(update_stats_work, update_stats_workfn); @@ -690,7 +778,7 @@ static int process_notifier(struct notifier_block *self, return NOTIFY_OK; uid = from_kuid_munged(current_user_ns(), task_uid(task)); - if (!rt_mutex_trylock(&uid_lock)) { + if (!trylock_uid(uid)) { struct update_stats_work *usw; usw = kmalloc(sizeof(struct update_stats_work), GFP_KERNEL); @@ -724,7 +812,7 @@ static int process_notifier(struct notifier_block *self, add_uid_io_stats(uid_entry, task, UID_STATE_DEAD_TASKS); exit: - rt_mutex_unlock(&uid_lock); + unlock_uid(uid); return NOTIFY_OK; } @@ -732,9 +820,18 @@ static struct notifier_block process_notifier_block = { .notifier_call = process_notifier, }; +static void init_hash_table_and_lock(void) +{ + int i; + + hash_init(hash_table); + for (i = 0; i < UID_HASH_NUMS; i++) + spin_lock_init(&uid_lock[i]); +} + static int __init proc_uid_sys_stats_init(void) { - hash_init(hash_table); + init_hash_table_and_lock(); cpu_parent = proc_mkdir("uid_cputime", NULL); if (!cpu_parent) { diff --git a/drivers/of/address.c b/drivers/of/address.c index 67763e5b8c0e..4c0b169ef9bf 100644 --- a/drivers/of/address.c +++ b/drivers/of/address.c @@ -626,6 +626,47 @@ u64 of_translate_dma_address(struct device_node *dev, const __be32 *in_addr) } EXPORT_SYMBOL(of_translate_dma_address); +/** + * of_translate_dma_region - Translate device tree address and size tuple + * @dev: device tree node for which to translate + * @prop: pointer into array of cells + * @start: return value for the start of the DMA range + * @length: return value for the length of the DMA range + * + * Returns a pointer to the cell immediately following the translated DMA region. + */ +const __be32 *of_translate_dma_region(struct device_node *dev, const __be32 *prop, + phys_addr_t *start, size_t *length) +{ + struct device_node *parent; + u64 address, size; + int na, ns; + + parent = __of_get_dma_parent(dev); + if (!parent) + return NULL; + + na = of_bus_n_addr_cells(parent); + ns = of_bus_n_size_cells(parent); + + of_node_put(parent); + + address = of_translate_dma_address(dev, prop); + if (address == OF_BAD_ADDR) + return NULL; + + size = of_read_number(prop + na, ns); + + if (start) + *start = address; + + if (length) + *length = size; + + return prop + na + ns; +} +EXPORT_SYMBOL(of_translate_dma_region); + const __be32 *__of_get_address(struct device_node *dev, int index, int bar_no, u64 *size, unsigned int *flags) { diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c index 59a559366b61..c1fa20a4e342 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c @@ -2481,12 +2481,13 @@ static void gsm_error(struct gsm_mux *gsm) static void gsm_cleanup_mux(struct gsm_mux *gsm, bool disc) { int i; - struct gsm_dlci *dlci = gsm->dlci[0]; + struct gsm_dlci *dlci; struct gsm_msg *txq, *ntxq; gsm->dead = true; mutex_lock(&gsm->mutex); + dlci = gsm->dlci[0]; if (dlci) { if (disc && dlci->state != DLCI_CLOSED) { gsm_dlci_begin_close(dlci); diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 430ae3d2fc8a..138edfe2c83e 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -7856,6 +7856,20 @@ static int ufshcd_eh_host_reset_handler(struct scsi_cmnd *cmd) hba = shost_priv(cmd->device->host); + /* + * If runtime pm send SSU and got timeout, scsi_error_handler + * stuck at this function to wait for flush_work(&hba->eh_work). + * And ufshcd_err_handler(eh_work) stuck at wait for runtime pm active. + * Do ufshcd_link_recovery instead schedule eh_work can prevent + * dead lock to happen. + */ + if (hba->pm_op_in_progress) { + if (ufshcd_link_recovery(hba)) + err = FAILED; + + return err; + } + spin_lock_irqsave(hba->host->host_lock, flags); hba->force_reset = true; ufshcd_schedule_eh_work(hba); diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 58e7d1e4430f..a739403a9e45 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -3098,6 +3098,48 @@ done: return status; } +/* + * hub_port_stop_enumerate - stop USB enumeration or ignore port events + * @hub: target hub + * @port1: port num of the port + * @retries: port retries number of hub_port_init() + * + * Return: + * true: ignore port actions/events or give up connection attempts. + * false: keep original behavior. + * + * This function will be based on retries to check whether the port which is + * marked with early_stop attribute would stop enumeration or ignore events. + * + * Note: + * This function didn't change anything if early_stop is not set, and it will + * prevent all connection attempts when early_stop is set and the attempts of + * the port are more than 1. + */ +static bool hub_port_stop_enumerate(struct usb_hub *hub, int port1, int retries) +{ + struct usb_port *port_dev = hub->ports[port1 - 1]; + + if (port_dev->early_stop) { + if (port_dev->ignore_event) + return true; + + /* + * We want unsuccessful attempts to fail quickly. + * Since some devices may need one failure during + * port initialization, we allow two tries but no + * more. + */ + if (retries < 2) + return false; + + port_dev->ignore_event = 1; + } else + port_dev->ignore_event = 0; + + return port_dev->ignore_event; +} + /* Check if a port is power on */ int usb_port_is_power_on(struct usb_hub *hub, unsigned int portstatus) { @@ -4813,6 +4855,11 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, do_new_scheme = use_new_scheme(udev, retry_counter, port_dev); for (retries = 0; retries < GET_DESCRIPTOR_TRIES; (++retries, msleep(100))) { + if (hub_port_stop_enumerate(hub, port1, retries)) { + retval = -ENODEV; + break; + } + if (do_new_scheme) { struct usb_device_descriptor *buf; int r = 0; @@ -5263,6 +5310,11 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus, status = 0; for (i = 0; i < PORT_INIT_TRIES; i++) { + if (hub_port_stop_enumerate(hub, port1, i)) { + status = -ENODEV; + break; + } + usb_lock_port(port_dev); mutex_lock(hcd->address0_mutex); retry_locked = true; @@ -5631,6 +5683,10 @@ static void port_event(struct usb_hub *hub, int port1) if (!pm_runtime_active(&port_dev->dev)) return; + /* skip port actions if ignore_event and early_stop are true */ + if (port_dev->ignore_event && port_dev->early_stop) + return; + if (hub_handle_remote_wakeup(hub, port1, portstatus, portchange)) connect_change = 1; @@ -5954,6 +6010,10 @@ static int usb_reset_and_verify_device(struct usb_device *udev) mutex_lock(hcd->address0_mutex); for (i = 0; i < PORT_INIT_TRIES; ++i) { + if (hub_port_stop_enumerate(parent_hub, port1, i)) { + ret = -ENODEV; + break; + } /* ep0 maxpacket size may change; let the HCD know about it. * Other endpoints will be handled by re-enumeration. */ diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h index f244cc475e3e..37897afd1b64 100644 --- a/drivers/usb/core/hub.h +++ b/drivers/usb/core/hub.h @@ -92,6 +92,8 @@ struct usb_hub { * @is_superspeed cache super-speed status * @usb3_lpm_u1_permit: whether USB3 U1 LPM is permitted. * @usb3_lpm_u2_permit: whether USB3 U2 LPM is permitted. + * @early_stop: whether port initialization will be stopped earlier. + * @ignore_event: whether events of the port are ignored. */ struct usb_port { struct usb_device *child; @@ -107,6 +109,8 @@ struct usb_port { u32 over_current_count; u8 portnum; u32 quirks; + unsigned int early_stop:1; + unsigned int ignore_event:1; unsigned int is_superspeed:1; unsigned int usb3_lpm_u1_permit:1; unsigned int usb3_lpm_u2_permit:1; diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c index e458ed17c7a1..b2cad06885b5 100644 --- a/drivers/usb/core/port.c +++ b/drivers/usb/core/port.c @@ -17,6 +17,32 @@ static int usb_port_block_power_off; static const struct attribute_group *port_dev_group[]; +static ssize_t early_stop_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct usb_port *port_dev = to_usb_port(dev); + + return sysfs_emit(buf, "%s\n", port_dev->early_stop ? "yes" : "no"); +} + +static ssize_t early_stop_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + struct usb_port *port_dev = to_usb_port(dev); + bool value; + + if (kstrtobool(buf, &value)) + return -EINVAL; + + if (value) + port_dev->early_stop = 1; + else + port_dev->early_stop = 0; + + return count; +} +static DEVICE_ATTR_RW(early_stop); + static ssize_t disable_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -247,6 +273,7 @@ static struct attribute *port_dev_attrs[] = { &dev_attr_quirks.attr, &dev_attr_over_current_count.attr, &dev_attr_disable.attr, + &dev_attr_early_stop.attr, NULL, }; diff --git a/drivers/usb/gadget/function/u_serial.c b/drivers/usb/gadget/function/u_serial.c index db6fd0238d4b..8673b9a5ab53 100644 --- a/drivers/usb/gadget/function/u_serial.c +++ b/drivers/usb/gadget/function/u_serial.c @@ -538,16 +538,20 @@ static int gs_alloc_requests(struct usb_ep *ep, struct list_head *head, static int gs_start_io(struct gs_port *port) { struct list_head *head = &port->read_pool; - struct usb_ep *ep = port->port_usb->out; + struct usb_ep *ep; int status; unsigned started; + if (!port->port_usb || !port->port.tty) + return -EIO; + /* Allocate RX and TX I/O buffers. We can't easily do this much * earlier (with GFP_KERNEL) because the requests are coupled to * endpoints, as are the packet sizes we'll be using. Different * configurations may use different endpoints with a given port; * and high speed vs full speed changes packet sizes too. */ + ep = port->port_usb->out; status = gs_alloc_requests(ep, head, gs_read_complete, &port->read_allocated); if (status) @@ -1419,10 +1423,19 @@ EXPORT_SYMBOL_GPL(gserial_disconnect); void gserial_suspend(struct gserial *gser) { - struct gs_port *port = gser->ioport; + struct gs_port *port; unsigned long flags; - spin_lock_irqsave(&port->port_lock, flags); + spin_lock_irqsave(&serial_port_lock, flags); + port = gser->ioport; + + if (!port) { + spin_unlock_irqrestore(&serial_port_lock, flags); + return; + } + + spin_lock(&port->port_lock); + spin_unlock(&serial_port_lock); port->suspended = true; spin_unlock_irqrestore(&port->port_lock, flags); } diff --git a/drivers/usb/typec/bus.c b/drivers/usb/typec/bus.c index 31c2a3130cad..ef79217a903f 100644 --- a/drivers/usb/typec/bus.c +++ b/drivers/usb/typec/bus.c @@ -156,7 +156,20 @@ EXPORT_SYMBOL_GPL(typec_altmode_exit); */ void typec_altmode_attention(struct typec_altmode *adev, u32 vdo) { - struct typec_altmode *pdev = &to_altmode(adev)->partner->adev; + struct altmode *partner = to_altmode(adev)->partner; + struct typec_altmode *pdev; + + /* + * If partner is NULL then a NULL pointer error occurs when + * dereferencing pdev and its operations. The original upstream commit + * changes the return type so the tcpm can log when this occurs, but + * due to KMI restrictions we can only silently prevent the error for + * now. + */ + if (!partner) + return; + + pdev = &partner->adev; if (pdev->ops && pdev->ops->attention) pdev->ops->attention(pdev, vdo); diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c index 47a2c73df342..dc2dea3768fb 100644 --- a/drivers/usb/typec/ucsi/ucsi.c +++ b/drivers/usb/typec/ucsi/ucsi.c @@ -785,6 +785,7 @@ static void ucsi_handle_connector_change(struct work_struct *work) if (ret < 0) { dev_err(ucsi->dev, "%s: GET_CONNECTOR_STATUS failed (%d)\n", __func__, ret); + clear_bit(EVENT_PENDING, &con->ucsi->flags); goto out_unlock; } diff --git a/drivers/virt/gunyah/rsc_mgr.c b/drivers/virt/gunyah/rsc_mgr.c index dd6fe39f652d..170a2d37da68 100644 --- a/drivers/virt/gunyah/rsc_mgr.c +++ b/drivers/virt/gunyah/rsc_mgr.c @@ -567,10 +567,7 @@ static int gh_rm_send_request(struct gh_rm *rm, u32 message_id, hdr_template.seq = cpu_to_le16(connection->reply.seq); hdr_template.msg_id = cpu_to_le32(message_id); - ret = mutex_lock_interruptible(&rm->send_lock); - if (ret) - return ret; - + mutex_lock(&rm->send_lock); do { msg = kmem_cache_zalloc(rm->cache, GFP_KERNEL); if (!msg) { diff --git a/files_gki_aarch64.txt b/files_gki_aarch64.txt index f976684bc09b..3cfb977185b4 100644 --- a/files_gki_aarch64.txt +++ b/files_gki_aarch64.txt @@ -486,6 +486,7 @@ block/blk-flush.c block/blk-ia-ranges.c block/blk-ioc.c block/blk-iocost.c +block/blk-ioprio.c block/blk-ioprio.h block/blk-lib.c block/blk-map.c @@ -4235,6 +4236,7 @@ include/trace/hooks/binder.h include/trace/hooks/bl_hib.h include/trace/hooks/bug.h include/trace/hooks/cgroup.h +include/trace/hooks/compaction.h include/trace/hooks/cpufreq.h include/trace/hooks/cpuidle.h include/trace/hooks/cpuidle_psci.h diff --git a/fs/cifs/fs_context.c b/fs/cifs/fs_context.c index 89e810b27a4b..6bd713c6c869 100644 --- a/fs/cifs/fs_context.c +++ b/fs/cifs/fs_context.c @@ -1479,6 +1479,7 @@ static int smb3_fs_context_parse_param(struct fs_context *fc, cifs_parse_mount_err: kfree_sensitive(ctx->password); + ctx->password = NULL; return -EINVAL; } diff --git a/fs/erofs/data.c b/fs/erofs/data.c index a6cfb2ac1cd1..83532525282e 100644 --- a/fs/erofs/data.c +++ b/fs/erofs/data.c @@ -29,11 +29,15 @@ void erofs_put_metabuf(struct erofs_buf *buf) buf->page = NULL; } +/* + * Derive the block size from inode->i_blkbits to make compatible with + * anonymous inode in fscache mode. + */ void *erofs_bread(struct erofs_buf *buf, struct inode *inode, erofs_blk_t blkaddr, enum erofs_kmap_type type) { + erofs_off_t offset = (erofs_off_t)blkaddr << inode->i_blkbits; struct address_space *const mapping = inode->i_mapping; - erofs_off_t offset = blknr_to_addr(blkaddr); pgoff_t index = offset >> PAGE_SHIFT; struct page *page = buf->page; struct folio *folio; @@ -84,36 +88,32 @@ static int erofs_map_blocks_flatmode(struct inode *inode, erofs_blk_t nblocks, lastblk; u64 offset = map->m_la; struct erofs_inode *vi = EROFS_I(inode); + struct super_block *sb = inode->i_sb; bool tailendpacking = (vi->datalayout == EROFS_INODE_FLAT_INLINE); - nblocks = DIV_ROUND_UP(inode->i_size, EROFS_BLKSIZ); + nblocks = erofs_iblks(inode); lastblk = nblocks - tailendpacking; /* there is no hole in flatmode */ map->m_flags = EROFS_MAP_MAPPED; - if (offset < blknr_to_addr(lastblk)) { - map->m_pa = blknr_to_addr(vi->raw_blkaddr) + map->m_la; - map->m_plen = blknr_to_addr(lastblk) - offset; + if (offset < erofs_pos(sb, lastblk)) { + map->m_pa = erofs_pos(sb, vi->raw_blkaddr) + map->m_la; + map->m_plen = erofs_pos(sb, lastblk) - offset; } else if (tailendpacking) { - /* 2 - inode inline B: inode, [xattrs], inline last blk... */ - struct erofs_sb_info *sbi = EROFS_SB(inode->i_sb); - - map->m_pa = iloc(sbi, vi->nid) + vi->inode_isize + - vi->xattr_isize + erofs_blkoff(map->m_la); + map->m_pa = erofs_iloc(inode) + vi->inode_isize + + vi->xattr_isize + erofs_blkoff(sb, offset); map->m_plen = inode->i_size - offset; /* inline data should be located in the same meta block */ - if (erofs_blkoff(map->m_pa) + map->m_plen > EROFS_BLKSIZ) { - erofs_err(inode->i_sb, - "inline data cross block boundary @ nid %llu", + if (erofs_blkoff(sb, map->m_pa) + map->m_plen > sb->s_blocksize) { + erofs_err(sb, "inline data cross block boundary @ nid %llu", vi->nid); DBG_BUGON(1); return -EFSCORRUPTED; } map->m_flags |= EROFS_MAP_META; } else { - erofs_err(inode->i_sb, - "internal error @ nid: %llu (size %llu), m_la 0x%llx", + erofs_err(sb, "internal error @ nid: %llu (size %llu), m_la 0x%llx", vi->nid, inode->i_size, map->m_la); DBG_BUGON(1); return -EIO; @@ -154,32 +154,32 @@ int erofs_map_blocks(struct inode *inode, unit = EROFS_BLOCK_MAP_ENTRY_SIZE; /* block map */ chunknr = map->m_la >> vi->chunkbits; - pos = ALIGN(iloc(EROFS_SB(sb), vi->nid) + vi->inode_isize + + pos = ALIGN(erofs_iloc(inode) + vi->inode_isize + vi->xattr_isize, unit) + unit * chunknr; - kaddr = erofs_read_metabuf(&buf, sb, erofs_blknr(pos), EROFS_KMAP); + kaddr = erofs_read_metabuf(&buf, sb, erofs_blknr(sb, pos), EROFS_KMAP); if (IS_ERR(kaddr)) { err = PTR_ERR(kaddr); goto out; } map->m_la = chunknr << vi->chunkbits; map->m_plen = min_t(erofs_off_t, 1UL << vi->chunkbits, - roundup(inode->i_size - map->m_la, EROFS_BLKSIZ)); + round_up(inode->i_size - map->m_la, sb->s_blocksize)); /* handle block map */ if (!(vi->chunkformat & EROFS_CHUNK_FORMAT_INDEXES)) { - __le32 *blkaddr = kaddr + erofs_blkoff(pos); + __le32 *blkaddr = kaddr + erofs_blkoff(sb, pos); if (le32_to_cpu(*blkaddr) == EROFS_NULL_ADDR) { map->m_flags = 0; } else { - map->m_pa = blknr_to_addr(le32_to_cpu(*blkaddr)); + map->m_pa = erofs_pos(sb, le32_to_cpu(*blkaddr)); map->m_flags = EROFS_MAP_MAPPED; } goto out_unlock; } /* parse chunk indexes */ - idx = kaddr + erofs_blkoff(pos); + idx = kaddr + erofs_blkoff(sb, pos); switch (le32_to_cpu(idx->blkaddr)) { case EROFS_NULL_ADDR: map->m_flags = 0; @@ -187,7 +187,7 @@ int erofs_map_blocks(struct inode *inode, default: map->m_deviceid = le16_to_cpu(idx->device_id) & EROFS_SB(sb)->device_id_mask; - map->m_pa = blknr_to_addr(le32_to_cpu(idx->blkaddr)); + map->m_pa = erofs_pos(sb, le32_to_cpu(idx->blkaddr)); map->m_flags = EROFS_MAP_MAPPED; break; } @@ -231,8 +231,8 @@ int erofs_map_dev(struct super_block *sb, struct erofs_map_dev *map) if (!dif->mapped_blkaddr) continue; - startoff = blknr_to_addr(dif->mapped_blkaddr); - length = blknr_to_addr(dif->blocks); + startoff = erofs_pos(sb, dif->mapped_blkaddr); + length = erofs_pos(sb, dif->blocks); if (map->m_pa >= startoff && map->m_pa < startoff + length) { @@ -253,6 +253,7 @@ static int erofs_iomap_begin(struct inode *inode, loff_t offset, loff_t length, unsigned int flags, struct iomap *iomap, struct iomap *srcmap) { int ret; + struct super_block *sb = inode->i_sb; struct erofs_map_blocks map; struct erofs_map_dev mdev; @@ -267,7 +268,7 @@ static int erofs_iomap_begin(struct inode *inode, loff_t offset, loff_t length, .m_deviceid = map.m_deviceid, .m_pa = map.m_pa, }; - ret = erofs_map_dev(inode->i_sb, &mdev); + ret = erofs_map_dev(sb, &mdev); if (ret) return ret; @@ -293,11 +294,11 @@ static int erofs_iomap_begin(struct inode *inode, loff_t offset, loff_t length, struct erofs_buf buf = __EROFS_BUF_INITIALIZER; iomap->type = IOMAP_INLINE; - ptr = erofs_read_metabuf(&buf, inode->i_sb, - erofs_blknr(mdev.m_pa), EROFS_KMAP); + ptr = erofs_read_metabuf(&buf, sb, + erofs_blknr(sb, mdev.m_pa), EROFS_KMAP); if (IS_ERR(ptr)) return PTR_ERR(ptr); - iomap->inline_data = ptr + erofs_blkoff(mdev.m_pa); + iomap->inline_data = ptr + erofs_blkoff(sb, mdev.m_pa); iomap->private = buf.base; } else { iomap->type = IOMAP_MAPPED; diff --git a/fs/erofs/decompressor.c b/fs/erofs/decompressor.c index 51b7ac7166d9..7021e2cf6146 100644 --- a/fs/erofs/decompressor.c +++ b/fs/erofs/decompressor.c @@ -42,7 +42,7 @@ int z_erofs_load_lz4_config(struct super_block *sb, if (!sbi->lz4.max_pclusterblks) { sbi->lz4.max_pclusterblks = 1; /* reserved case */ } else if (sbi->lz4.max_pclusterblks > - Z_EROFS_PCLUSTER_MAX_SIZE / EROFS_BLKSIZ) { + erofs_blknr(sb, Z_EROFS_PCLUSTER_MAX_SIZE)) { erofs_err(sb, "too large lz4 pclusterblks %u", sbi->lz4.max_pclusterblks); return -EINVAL; @@ -221,13 +221,13 @@ static int z_erofs_lz4_decompress_mem(struct z_erofs_lz4_decompress_ctx *ctx, support_0padding = true; ret = z_erofs_fixup_insize(rq, headpage + rq->pageofs_in, min_t(unsigned int, rq->inputsize, - EROFS_BLKSIZ - rq->pageofs_in)); + rq->sb->s_blocksize - rq->pageofs_in)); if (ret) { kunmap_atomic(headpage); return ret; } may_inplace = !((rq->pageofs_in + rq->inputsize) & - (EROFS_BLKSIZ - 1)); + (rq->sb->s_blocksize - 1)); } inputmargin = rq->pageofs_in; diff --git a/fs/erofs/decompressor_lzma.c b/fs/erofs/decompressor_lzma.c index 5cd612a8f858..2fd49091c1bb 100644 --- a/fs/erofs/decompressor_lzma.c +++ b/fs/erofs/decompressor_lzma.c @@ -166,8 +166,8 @@ int z_erofs_lzma_decompress(struct z_erofs_decompress_req *rq, /* 1. get the exact LZMA compressed size */ kin = kmap(*rq->in); err = z_erofs_fixup_insize(rq, kin + rq->pageofs_in, - min_t(unsigned int, rq->inputsize, - EROFS_BLKSIZ - rq->pageofs_in)); + min_t(unsigned int, rq->inputsize, + rq->sb->s_blocksize - rq->pageofs_in)); if (err) { kunmap(*rq->in); return err; diff --git a/fs/erofs/dir.c b/fs/erofs/dir.c index ecf28f66b97d..966a88cc529e 100644 --- a/fs/erofs/dir.c +++ b/fs/erofs/dir.c @@ -67,9 +67,11 @@ static int erofs_readdir(struct file *f, struct dir_context *ctx) { struct inode *dir = file_inode(f); struct erofs_buf buf = __EROFS_BUF_INITIALIZER; + struct super_block *sb = dir->i_sb; + unsigned long bsz = sb->s_blocksize; const size_t dirsize = i_size_read(dir); - unsigned int i = ctx->pos / EROFS_BLKSIZ; - unsigned int ofs = ctx->pos % EROFS_BLKSIZ; + unsigned int i = erofs_blknr(sb, ctx->pos); + unsigned int ofs = erofs_blkoff(sb, ctx->pos); int err = 0; bool initial = true; @@ -79,32 +81,28 @@ static int erofs_readdir(struct file *f, struct dir_context *ctx) de = erofs_bread(&buf, dir, i, EROFS_KMAP); if (IS_ERR(de)) { - erofs_err(dir->i_sb, - "fail to readdir of logical block %u of nid %llu", + erofs_err(sb, "fail to readdir of logical block %u of nid %llu", i, EROFS_I(dir)->nid); err = PTR_ERR(de); break; } nameoff = le16_to_cpu(de->nameoff); - if (nameoff < sizeof(struct erofs_dirent) || - nameoff >= EROFS_BLKSIZ) { - erofs_err(dir->i_sb, - "invalid de[0].nameoff %u @ nid %llu", + if (nameoff < sizeof(struct erofs_dirent) || nameoff >= bsz) { + erofs_err(sb, "invalid de[0].nameoff %u @ nid %llu", nameoff, EROFS_I(dir)->nid); err = -EFSCORRUPTED; break; } - maxsize = min_t(unsigned int, - dirsize - ctx->pos + ofs, EROFS_BLKSIZ); + maxsize = min_t(unsigned int, dirsize - ctx->pos + ofs, bsz); /* search dirents at the arbitrary position */ if (initial) { initial = false; ofs = roundup(ofs, sizeof(struct erofs_dirent)); - ctx->pos = blknr_to_addr(i) + ofs; + ctx->pos = erofs_pos(sb, i) + ofs; if (ofs >= nameoff) goto skip_this; } @@ -114,7 +112,7 @@ static int erofs_readdir(struct file *f, struct dir_context *ctx) if (err) break; skip_this: - ctx->pos = blknr_to_addr(i) + maxsize; + ctx->pos = erofs_pos(sb, i) + maxsize; ++i; ofs = 0; } diff --git a/fs/erofs/erofs_fs.h b/fs/erofs/erofs_fs.h index dbcd24371002..44876a97cabd 100644 --- a/fs/erofs/erofs_fs.h +++ b/fs/erofs/erofs_fs.h @@ -53,7 +53,7 @@ struct erofs_super_block { __le32 magic; /* file system magic number */ __le32 checksum; /* crc32c(super_block) */ __le32 feature_compat; - __u8 blkszbits; /* support block_size == PAGE_SIZE only */ + __u8 blkszbits; /* filesystem block size in bit shift */ __u8 sb_extslots; /* superblock size = 128 + sb_extslots * 16 */ __le16 root_nid; /* nid of root directory */ @@ -75,7 +75,8 @@ struct erofs_super_block { } __packed u1; __le16 extra_devices; /* # of devices besides the primary device */ __le16 devt_slotoff; /* startoff = devt_slotoff * devt_slotsize */ - __u8 reserved[6]; + __u8 dirblkbits; /* directory block size in bit shift */ + __u8 reserved[5]; __le64 packed_nid; /* nid of the special packed inode */ __u8 reserved2[24]; }; diff --git a/fs/erofs/fscache.c b/fs/erofs/fscache.c index 076cf8a149ef..7ce60ad121f0 100644 --- a/fs/erofs/fscache.c +++ b/fs/erofs/fscache.c @@ -282,8 +282,8 @@ static int erofs_fscache_data_read(struct address_space *mapping, void *src; /* For tail packing layout, the offset may be non-zero. */ - offset = erofs_blkoff(map.m_pa); - blknr = erofs_blknr(map.m_pa); + offset = erofs_blkoff(sb, map.m_pa); + blknr = erofs_blknr(sb, map.m_pa); size = map.m_llen; src = erofs_read_metabuf(&buf, sb, blknr, EROFS_KMAP); @@ -333,8 +333,6 @@ static int erofs_fscache_read_folio(struct file *file, struct folio *folio) bool unlock; int ret; - DBG_BUGON(folio_size(folio) != EROFS_BLKSIZ); - ret = erofs_fscache_data_read(folio_mapping(folio), folio_pos(folio), folio_size(folio), &unlock); if (unlock) { @@ -530,6 +528,7 @@ struct erofs_fscache *erofs_fscache_acquire_cookie(struct super_block *sb, inode->i_size = OFFSET_MAX; inode->i_mapping->a_ops = &erofs_fscache_meta_aops; mapping_set_gfp_mask(inode->i_mapping, GFP_NOFS); + inode->i_blkbits = EROFS_SB(sb)->blkszbits; ctx->inode = inode; } diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c index ad2a82f2eb4c..db344ca0fcd3 100644 --- a/fs/erofs/inode.c +++ b/fs/erofs/inode.c @@ -14,7 +14,7 @@ static void *erofs_read_inode(struct erofs_buf *buf, struct super_block *sb = inode->i_sb; struct erofs_sb_info *sbi = EROFS_SB(sb); struct erofs_inode *vi = EROFS_I(inode); - const erofs_off_t inode_loc = iloc(sbi, vi->nid); + const erofs_off_t inode_loc = erofs_iloc(inode); erofs_blk_t blkaddr, nblks = 0; void *kaddr; @@ -23,8 +23,8 @@ static void *erofs_read_inode(struct erofs_buf *buf, unsigned int ifmt; int err; - blkaddr = erofs_blknr(inode_loc); - *ofs = erofs_blkoff(inode_loc); + blkaddr = erofs_blknr(sb, inode_loc); + *ofs = erofs_blkoff(sb, inode_loc); erofs_dbg("%s, reading inode nid %llu at %u of blkaddr %u", __func__, vi->nid, *ofs, blkaddr); @@ -58,11 +58,11 @@ static void *erofs_read_inode(struct erofs_buf *buf, case EROFS_INODE_LAYOUT_EXTENDED: vi->inode_isize = sizeof(struct erofs_inode_extended); /* check if the extended inode acrosses block boundary */ - if (*ofs + vi->inode_isize <= EROFS_BLKSIZ) { + if (*ofs + vi->inode_isize <= sb->s_blocksize) { *ofs += vi->inode_isize; die = (struct erofs_inode_extended *)dic; } else { - const unsigned int gotten = EROFS_BLKSIZ - *ofs; + const unsigned int gotten = sb->s_blocksize - *ofs; copied = kmalloc(vi->inode_isize, GFP_NOFS); if (!copied) { @@ -176,7 +176,7 @@ static void *erofs_read_inode(struct erofs_buf *buf, err = -EOPNOTSUPP; goto err_out; } - vi->chunkbits = LOG_BLOCK_SIZE + + vi->chunkbits = sb->s_blocksize_bits + (vi->chunkformat & EROFS_CHUNK_FORMAT_BLKBITS_MASK); } inode->i_mtime.tv_sec = inode->i_ctime.tv_sec; @@ -188,11 +188,12 @@ static void *erofs_read_inode(struct erofs_buf *buf, if (test_opt(&sbi->opt, DAX_ALWAYS) && S_ISREG(inode->i_mode) && vi->datalayout == EROFS_INODE_FLAT_PLAIN) inode->i_flags |= S_DAX; + if (!nblks) /* measure inode.i_blocks as generic filesystems */ - inode->i_blocks = roundup(inode->i_size, EROFS_BLKSIZ) >> 9; + inode->i_blocks = round_up(inode->i_size, sb->s_blocksize) >> 9; else - inode->i_blocks = nblks << LOG_SECTORS_PER_BLOCK; + inode->i_blocks = nblks << (sb->s_blocksize_bits - 9); return kaddr; bogusimode: @@ -210,11 +211,12 @@ static int erofs_fill_symlink(struct inode *inode, void *kaddr, unsigned int m_pofs) { struct erofs_inode *vi = EROFS_I(inode); + unsigned int bsz = i_blocksize(inode); char *lnk; /* if it cannot be handled with fast symlink scheme */ if (vi->datalayout != EROFS_INODE_FLAT_INLINE || - inode->i_size >= EROFS_BLKSIZ || inode->i_size < 0) { + inode->i_size >= bsz || inode->i_size < 0) { inode->i_op = &erofs_symlink_iops; return 0; } @@ -225,7 +227,7 @@ static int erofs_fill_symlink(struct inode *inode, void *kaddr, m_pofs += vi->xattr_isize; /* inline symlink data shouldn't cross block boundary */ - if (m_pofs + inode->i_size > EROFS_BLKSIZ) { + if (m_pofs + inode->i_size > bsz) { kfree(lnk); erofs_err(inode->i_sb, "inline data cross block boundary @ nid %llu", @@ -288,7 +290,8 @@ static int erofs_fill_inode(struct inode *inode) } if (erofs_inode_is_data_compressed(vi->datalayout)) { - if (!erofs_is_fscache_mode(inode->i_sb)) + if (!erofs_is_fscache_mode(inode->i_sb) && + inode->i_sb->s_blocksize_bits == PAGE_SHIFT) err = z_erofs_fill_inode(inode); else err = -EOPNOTSUPP; diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h index 340bd56a5755..1c03daf83a68 100644 --- a/fs/erofs/internal.h +++ b/fs/erofs/internal.h @@ -145,8 +145,8 @@ struct erofs_sb_info { #endif u16 device_id_mask; /* valid bits of device id to be used */ - /* inode slot unit size in bit shift */ - unsigned char islotbits; + unsigned char islotbits; /* inode slot unit size in bit shift */ + unsigned char blkszbits; /* filesystem block size in bit shift */ u32 sb_size; /* total superblock size */ u32 build_time_nsec; @@ -239,21 +239,6 @@ static inline int erofs_wait_on_workgroup_freezed(struct erofs_workgroup *grp) VAL != EROFS_LOCKED_MAGIC); } -/* we strictly follow PAGE_SIZE and no buffer head yet */ -#define LOG_BLOCK_SIZE PAGE_SHIFT - -#undef LOG_SECTORS_PER_BLOCK -#define LOG_SECTORS_PER_BLOCK (PAGE_SHIFT - 9) - -#undef SECTORS_PER_BLOCK -#define SECTORS_PER_BLOCK (1 << SECTORS_PER_BLOCK) - -#define EROFS_BLKSIZ (1 << LOG_BLOCK_SIZE) - -#if (EROFS_BLKSIZ % 4096 || !EROFS_BLKSIZ) -#error erofs cannot be used in this platform -#endif - enum erofs_kmap_type { EROFS_NO_KMAP, /* don't map the buffer */ EROFS_KMAP, /* use kmap() to map the buffer */ @@ -269,14 +254,10 @@ struct erofs_buf { #define ROOT_NID(sb) ((sb)->root_nid) -#define erofs_blknr(addr) ((addr) / EROFS_BLKSIZ) -#define erofs_blkoff(addr) ((addr) % EROFS_BLKSIZ) -#define blknr_to_addr(nr) ((erofs_off_t)(nr) * EROFS_BLKSIZ) - -static inline erofs_off_t iloc(struct erofs_sb_info *sbi, erofs_nid_t nid) -{ - return blknr_to_addr(sbi->meta_blkaddr) + (nid << sbi->islotbits); -} +#define erofs_blknr(sb, addr) ((addr) >> (sb)->s_blocksize_bits) +#define erofs_blkoff(sb, addr) ((addr) & ((sb)->s_blocksize - 1)) +#define erofs_pos(sb, blk) ((erofs_off_t)(blk) << (sb)->s_blocksize_bits) +#define erofs_iblks(i) (round_up((i)->i_size, i_blocksize(i)) >> (i)->i_blkbits) #define EROFS_FEATURE_FUNCS(name, compat, feature) \ static inline bool erofs_sb_has_##name(struct erofs_sb_info *sbi) \ @@ -342,13 +323,14 @@ struct erofs_inode { struct inode vfs_inode; }; -#define EROFS_I(ptr) \ - container_of(ptr, struct erofs_inode, vfs_inode) +#define EROFS_I(ptr) container_of(ptr, struct erofs_inode, vfs_inode) -static inline unsigned long erofs_inode_datablocks(struct inode *inode) +static inline erofs_off_t erofs_iloc(struct inode *inode) { - /* since i_size cannot be changed */ - return DIV_ROUND_UP(inode->i_size, EROFS_BLKSIZ); + struct erofs_sb_info *sbi = EROFS_I_SB(inode); + + return erofs_pos(inode->i_sb, sbi->meta_blkaddr) + + (EROFS_I(inode)->nid << sbi->islotbits); } static inline unsigned int erofs_bitrange(unsigned int value, unsigned int bit, diff --git a/fs/erofs/namei.c b/fs/erofs/namei.c index 0dc34721080c..cf56a8acafbb 100644 --- a/fs/erofs/namei.c +++ b/fs/erofs/namei.c @@ -5,7 +5,6 @@ * Copyright (C) 2022, Alibaba Cloud */ #include "xattr.h" - #include struct erofs_qstr { @@ -87,19 +86,14 @@ static struct erofs_dirent *find_target_dirent(struct erofs_qstr *name, return ERR_PTR(-ENOENT); } -static void *find_target_block_classic(struct erofs_buf *target, - struct inode *dir, - struct erofs_qstr *name, - int *_ndirents) +static void *erofs_find_target_block(struct erofs_buf *target, + struct inode *dir, struct erofs_qstr *name, int *_ndirents) { - unsigned int startprfx, endprfx; - int head, back; + unsigned int bsz = i_blocksize(dir); + int head = 0, back = erofs_iblks(dir) - 1; + unsigned int startprfx = 0, endprfx = 0; void *candidate = ERR_PTR(-ENOENT); - startprfx = endprfx = 0; - head = 0; - back = erofs_inode_datablocks(dir) - 1; - while (head <= back) { const int mid = head + (back - head) / 2; struct erofs_buf buf = __EROFS_BUF_INITIALIZER; @@ -107,8 +101,7 @@ static void *find_target_block_classic(struct erofs_buf *target, de = erofs_bread(&buf, dir, mid, EROFS_KMAP); if (!IS_ERR(de)) { - const int nameoff = nameoff_from_disk(de->nameoff, - EROFS_BLKSIZ); + const int nameoff = nameoff_from_disk(de->nameoff, bsz); const int ndirents = nameoff / sizeof(*de); int diff; unsigned int matched; @@ -128,11 +121,10 @@ static void *find_target_block_classic(struct erofs_buf *target, dname.name = (u8 *)de + nameoff; if (ndirents == 1) - dname.end = (u8 *)de + EROFS_BLKSIZ; + dname.end = (u8 *)de + bsz; else dname.end = (u8 *)de + - nameoff_from_disk(de[1].nameoff, - EROFS_BLKSIZ); + nameoff_from_disk(de[1].nameoff, bsz); /* string comparison without already matched prefix */ diff = erofs_dirnamecmp(name, &dname, &matched); @@ -180,13 +172,13 @@ int erofs_namei(struct inode *dir, const struct qstr *name, erofs_nid_t *nid, qn.end = name->name + name->len; ndirents = 0; - - de = find_target_block_classic(&buf, dir, &qn, &ndirents); + de = erofs_find_target_block(&buf, dir, &qn, &ndirents); if (IS_ERR(de)) return PTR_ERR(de); if (ndirents) - de = find_target_dirent(&qn, (u8 *)de, EROFS_BLKSIZ, ndirents); + de = find_target_dirent(&qn, (u8 *)de, i_blocksize(dir), + ndirents); if (!IS_ERR(de)) { *nid = le64_to_cpu(de->nid); diff --git a/fs/erofs/super.c b/fs/erofs/super.c index bd8bf8fc2f5d..b073b38c1c77 100644 --- a/fs/erofs/super.c +++ b/fs/erofs/super.c @@ -53,18 +53,21 @@ void _erofs_info(struct super_block *sb, const char *function, static int erofs_superblock_csum_verify(struct super_block *sb, void *sbdata) { + size_t len = 1 << EROFS_SB(sb)->blkszbits; struct erofs_super_block *dsb; u32 expected_crc, crc; - dsb = kmemdup(sbdata + EROFS_SUPER_OFFSET, - EROFS_BLKSIZ - EROFS_SUPER_OFFSET, GFP_KERNEL); + if (len > EROFS_SUPER_OFFSET) + len -= EROFS_SUPER_OFFSET; + + dsb = kmemdup(sbdata + EROFS_SUPER_OFFSET, len, GFP_KERNEL); if (!dsb) return -ENOMEM; expected_crc = le32_to_cpu(dsb->checksum); dsb->checksum = 0; /* to allow for x86 boot sectors and other oddities. */ - crc = crc32c(~0, dsb, EROFS_BLKSIZ - EROFS_SUPER_OFFSET); + crc = crc32c(~0, dsb, len); kfree(dsb); if (crc != expected_crc) { @@ -133,11 +136,11 @@ static void *erofs_read_metadata(struct super_block *sb, struct erofs_buf *buf, int len, i, cnt; *offset = round_up(*offset, 4); - ptr = erofs_read_metabuf(buf, sb, erofs_blknr(*offset), EROFS_KMAP); + ptr = erofs_read_metabuf(buf, sb, erofs_blknr(sb, *offset), EROFS_KMAP); if (IS_ERR(ptr)) return ptr; - len = le16_to_cpu(*(__le16 *)&ptr[erofs_blkoff(*offset)]); + len = le16_to_cpu(*(__le16 *)&ptr[erofs_blkoff(sb, *offset)]); if (!len) len = U16_MAX + 1; buffer = kmalloc(len, GFP_KERNEL); @@ -147,14 +150,15 @@ static void *erofs_read_metadata(struct super_block *sb, struct erofs_buf *buf, *lengthp = len; for (i = 0; i < len; i += cnt) { - cnt = min(EROFS_BLKSIZ - (int)erofs_blkoff(*offset), len - i); - ptr = erofs_read_metabuf(buf, sb, erofs_blknr(*offset), + cnt = min_t(int, sb->s_blocksize - erofs_blkoff(sb, *offset), + len - i); + ptr = erofs_read_metabuf(buf, sb, erofs_blknr(sb, *offset), EROFS_KMAP); if (IS_ERR(ptr)) { kfree(buffer); return ptr; } - memcpy(buffer + i, ptr + erofs_blkoff(*offset), cnt); + memcpy(buffer + i, ptr + erofs_blkoff(sb, *offset), cnt); *offset += cnt; } return buffer; @@ -229,10 +233,10 @@ static int erofs_init_device(struct erofs_buf *buf, struct super_block *sb, struct block_device *bdev; void *ptr; - ptr = erofs_read_metabuf(buf, sb, erofs_blknr(*pos), EROFS_KMAP); + ptr = erofs_read_metabuf(buf, sb, erofs_blknr(sb, *pos), EROFS_KMAP); if (IS_ERR(ptr)) return PTR_ERR(ptr); - dis = ptr + erofs_blkoff(*pos); + dis = ptr + erofs_blkoff(sb, *pos); if (!dif->path) { if (!dis->tag[0]) { @@ -330,7 +334,6 @@ static int erofs_read_superblock(struct super_block *sb) struct erofs_sb_info *sbi; struct erofs_buf buf = __EROFS_BUF_INITIALIZER; struct erofs_super_block *dsb; - unsigned int blkszbits; void *data; int ret; @@ -349,6 +352,16 @@ static int erofs_read_superblock(struct super_block *sb) goto out; } + sbi->blkszbits = dsb->blkszbits; + if (sbi->blkszbits < 9 || sbi->blkszbits > PAGE_SHIFT) { + erofs_err(sb, "blkszbits %u isn't supported", sbi->blkszbits); + goto out; + } + if (dsb->dirblkbits) { + erofs_err(sb, "dirblkbits %u isn't supported", dsb->dirblkbits); + goto out; + } + sbi->feature_compat = le32_to_cpu(dsb->feature_compat); if (erofs_sb_has_sb_chksum(sbi)) { ret = erofs_superblock_csum_verify(sb, data); @@ -357,19 +370,11 @@ static int erofs_read_superblock(struct super_block *sb) } ret = -EINVAL; - blkszbits = dsb->blkszbits; - /* 9(512 bytes) + LOG_SECTORS_PER_BLOCK == LOG_BLOCK_SIZE */ - if (blkszbits != LOG_BLOCK_SIZE) { - erofs_err(sb, "blkszbits %u isn't supported on this platform", - blkszbits); - goto out; - } - if (!check_layout_compatibility(sb, dsb)) goto out; sbi->sb_size = 128 + dsb->sb_extslots * EROFS_SB_EXTSLOT_SIZE; - if (sbi->sb_size > EROFS_BLKSIZ) { + if (sbi->sb_size > PAGE_SIZE - EROFS_SUPER_OFFSET) { erofs_err(sb, "invalid sb_extslots %u (more than a fs block)", sbi->sb_size); goto out; @@ -724,9 +729,10 @@ static int erofs_fc_fill_super(struct super_block *sb, struct fs_context *fc) sbi->domain_id = ctx->domain_id; ctx->domain_id = NULL; + sbi->blkszbits = PAGE_SHIFT; if (erofs_is_fscache_mode(sb)) { - sb->s_blocksize = EROFS_BLKSIZ; - sb->s_blocksize_bits = LOG_BLOCK_SIZE; + sb->s_blocksize = PAGE_SIZE; + sb->s_blocksize_bits = PAGE_SHIFT; err = erofs_fscache_register_fs(sb); if (err) @@ -736,8 +742,8 @@ static int erofs_fc_fill_super(struct super_block *sb, struct fs_context *fc) if (err) return err; } else { - if (!sb_set_blocksize(sb, EROFS_BLKSIZ)) { - erofs_err(sb, "failed to set erofs blksize"); + if (!sb_set_blocksize(sb, PAGE_SIZE)) { + errorfc(fc, "failed to set initial blksize"); return -EINVAL; } @@ -750,12 +756,24 @@ static int erofs_fc_fill_super(struct super_block *sb, struct fs_context *fc) if (err) return err; - if (test_opt(&sbi->opt, DAX_ALWAYS)) { - BUILD_BUG_ON(EROFS_BLKSIZ != PAGE_SIZE); + if (sb->s_blocksize_bits != sbi->blkszbits) { + if (erofs_is_fscache_mode(sb)) { + errorfc(fc, "unsupported blksize for fscache mode"); + return -EINVAL; + } + if (!sb_set_blocksize(sb, 1 << sbi->blkszbits)) { + errorfc(fc, "failed to set erofs blksize"); + return -EINVAL; + } + } + if (test_opt(&sbi->opt, DAX_ALWAYS)) { if (!sbi->dax_dev) { errorfc(fc, "DAX unsupported by block device. Turning off DAX."); clear_opt(&sbi->opt, DAX_ALWAYS); + } else if (sbi->blkszbits != PAGE_SHIFT) { + errorfc(fc, "unsupported blocksize for DAX"); + clear_opt(&sbi->opt, DAX_ALWAYS); } } @@ -1059,7 +1077,7 @@ static int erofs_statfs(struct dentry *dentry, struct kstatfs *buf) id = huge_encode_dev(sb->s_bdev->bd_dev); buf->f_type = sb->s_magic; - buf->f_bsize = EROFS_BLKSIZ; + buf->f_bsize = sb->s_blocksize; buf->f_blocks = sbi->total_blocks; buf->f_bfree = buf->f_bavail = 0; diff --git a/fs/erofs/xattr.c b/fs/erofs/xattr.c index 8106bcb5a38d..7c09ad1beb83 100644 --- a/fs/erofs/xattr.c +++ b/fs/erofs/xattr.c @@ -22,8 +22,7 @@ static int init_inode_xattrs(struct inode *inode) struct xattr_iter it; unsigned int i; struct erofs_xattr_ibody_header *ih; - struct super_block *sb; - struct erofs_sb_info *sbi; + struct super_block *sb = inode->i_sb; int ret = 0; /* the most case is that xattrs of this inode are initialized. */ @@ -52,15 +51,14 @@ static int init_inode_xattrs(struct inode *inode) * undefined right now (maybe use later with some new sb feature). */ if (vi->xattr_isize == sizeof(struct erofs_xattr_ibody_header)) { - erofs_err(inode->i_sb, + erofs_err(sb, "xattr_isize %d of nid %llu is not supported yet", vi->xattr_isize, vi->nid); ret = -EOPNOTSUPP; goto out_unlock; } else if (vi->xattr_isize < sizeof(struct erofs_xattr_ibody_header)) { if (vi->xattr_isize) { - erofs_err(inode->i_sb, - "bogus xattr ibody @ nid %llu", vi->nid); + erofs_err(sb, "bogus xattr ibody @ nid %llu", vi->nid); DBG_BUGON(1); ret = -EFSCORRUPTED; goto out_unlock; /* xattr ondisk layout error */ @@ -69,11 +67,9 @@ static int init_inode_xattrs(struct inode *inode) goto out_unlock; } - sb = inode->i_sb; - sbi = EROFS_SB(sb); it.buf = __EROFS_BUF_INITIALIZER; - it.blkaddr = erofs_blknr(iloc(sbi, vi->nid) + vi->inode_isize); - it.ofs = erofs_blkoff(iloc(sbi, vi->nid) + vi->inode_isize); + it.blkaddr = erofs_blknr(sb, erofs_iloc(inode) + vi->inode_isize); + it.ofs = erofs_blkoff(sb, erofs_iloc(inode) + vi->inode_isize); /* read in shared xattr array (non-atomic, see kmalloc below) */ it.kaddr = erofs_read_metabuf(&it.buf, sb, it.blkaddr, EROFS_KMAP); @@ -96,9 +92,9 @@ static int init_inode_xattrs(struct inode *inode) it.ofs += sizeof(struct erofs_xattr_ibody_header); for (i = 0; i < vi->xattr_shared_count; ++i) { - if (it.ofs >= EROFS_BLKSIZ) { + if (it.ofs >= sb->s_blocksize) { /* cannot be unaligned */ - DBG_BUGON(it.ofs != EROFS_BLKSIZ); + DBG_BUGON(it.ofs != sb->s_blocksize); it.kaddr = erofs_read_metabuf(&it.buf, sb, ++it.blkaddr, EROFS_KMAP); @@ -143,15 +139,15 @@ struct xattr_iter_handlers { static inline int xattr_iter_fixup(struct xattr_iter *it) { - if (it->ofs < EROFS_BLKSIZ) + if (it->ofs < it->sb->s_blocksize) return 0; - it->blkaddr += erofs_blknr(it->ofs); + it->blkaddr += erofs_blknr(it->sb, it->ofs); it->kaddr = erofs_read_metabuf(&it->buf, it->sb, it->blkaddr, EROFS_KMAP_ATOMIC); if (IS_ERR(it->kaddr)) return PTR_ERR(it->kaddr); - it->ofs = erofs_blkoff(it->ofs); + it->ofs = erofs_blkoff(it->sb, it->ofs); return 0; } @@ -159,7 +155,6 @@ static int inline_xattr_iter_begin(struct xattr_iter *it, struct inode *inode) { struct erofs_inode *const vi = EROFS_I(inode); - struct erofs_sb_info *const sbi = EROFS_SB(inode->i_sb); unsigned int xattr_header_sz, inline_xattr_ofs; xattr_header_sz = inlinexattr_header_size(inode); @@ -170,9 +165,8 @@ static int inline_xattr_iter_begin(struct xattr_iter *it, inline_xattr_ofs = vi->inode_isize + xattr_header_sz; - it->blkaddr = erofs_blknr(iloc(sbi, vi->nid) + inline_xattr_ofs); - it->ofs = erofs_blkoff(iloc(sbi, vi->nid) + inline_xattr_ofs); - + it->blkaddr = erofs_blknr(it->sb, erofs_iloc(inode) + inline_xattr_ofs); + it->ofs = erofs_blkoff(it->sb, erofs_iloc(inode) + inline_xattr_ofs); it->kaddr = erofs_read_metabuf(&it->buf, inode->i_sb, it->blkaddr, EROFS_KMAP_ATOMIC); if (IS_ERR(it->kaddr)) @@ -228,8 +222,8 @@ static int xattr_foreach(struct xattr_iter *it, processed = 0; while (processed < entry.e_name_len) { - if (it->ofs >= EROFS_BLKSIZ) { - DBG_BUGON(it->ofs > EROFS_BLKSIZ); + if (it->ofs >= it->sb->s_blocksize) { + DBG_BUGON(it->ofs > it->sb->s_blocksize); err = xattr_iter_fixup(it); if (err) @@ -237,7 +231,7 @@ static int xattr_foreach(struct xattr_iter *it, it->ofs = 0; } - slice = min_t(unsigned int, EROFS_BLKSIZ - it->ofs, + slice = min_t(unsigned int, it->sb->s_blocksize - it->ofs, entry.e_name_len - processed); /* handle name */ @@ -263,8 +257,8 @@ static int xattr_foreach(struct xattr_iter *it, } while (processed < value_sz) { - if (it->ofs >= EROFS_BLKSIZ) { - DBG_BUGON(it->ofs > EROFS_BLKSIZ); + if (it->ofs >= it->sb->s_blocksize) { + DBG_BUGON(it->ofs > it->sb->s_blocksize); err = xattr_iter_fixup(it); if (err) @@ -272,7 +266,7 @@ static int xattr_foreach(struct xattr_iter *it, it->ofs = 0; } - slice = min_t(unsigned int, EROFS_BLKSIZ - it->ofs, + slice = min_t(unsigned int, it->sb->s_blocksize - it->ofs, value_sz - processed); op->value(it, processed, it->kaddr + it->ofs, slice); it->ofs += slice; @@ -358,15 +352,14 @@ static int shared_getxattr(struct inode *inode, struct getxattr_iter *it) { struct erofs_inode *const vi = EROFS_I(inode); struct super_block *const sb = inode->i_sb; - struct erofs_sb_info *const sbi = EROFS_SB(sb); unsigned int i; int ret = -ENOATTR; for (i = 0; i < vi->xattr_shared_count; ++i) { erofs_blk_t blkaddr = - xattrblock_addr(sbi, vi->xattr_shared_xattrs[i]); + xattrblock_addr(sb, vi->xattr_shared_xattrs[i]); - it->it.ofs = xattrblock_offset(sbi, vi->xattr_shared_xattrs[i]); + it->it.ofs = xattrblock_offset(sb, vi->xattr_shared_xattrs[i]); it->it.kaddr = erofs_read_metabuf(&it->it.buf, sb, blkaddr, EROFS_KMAP_ATOMIC); if (IS_ERR(it->it.kaddr)) @@ -570,15 +563,14 @@ static int shared_listxattr(struct listxattr_iter *it) struct inode *const inode = d_inode(it->dentry); struct erofs_inode *const vi = EROFS_I(inode); struct super_block *const sb = inode->i_sb; - struct erofs_sb_info *const sbi = EROFS_SB(sb); unsigned int i; int ret = 0; for (i = 0; i < vi->xattr_shared_count; ++i) { erofs_blk_t blkaddr = - xattrblock_addr(sbi, vi->xattr_shared_xattrs[i]); + xattrblock_addr(sb, vi->xattr_shared_xattrs[i]); - it->it.ofs = xattrblock_offset(sbi, vi->xattr_shared_xattrs[i]); + it->it.ofs = xattrblock_offset(sb, vi->xattr_shared_xattrs[i]); it->it.kaddr = erofs_read_metabuf(&it->it.buf, sb, blkaddr, EROFS_KMAP_ATOMIC); if (IS_ERR(it->it.kaddr)) diff --git a/fs/erofs/xattr.h b/fs/erofs/xattr.h index 0a43c9ee9f8f..f7a21aaa9755 100644 --- a/fs/erofs/xattr.h +++ b/fs/erofs/xattr.h @@ -19,21 +19,21 @@ static inline unsigned int inlinexattr_header_size(struct inode *inode) sizeof(u32) * EROFS_I(inode)->xattr_shared_count; } -static inline erofs_blk_t xattrblock_addr(struct erofs_sb_info *sbi, +static inline erofs_blk_t xattrblock_addr(struct super_block *sb, unsigned int xattr_id) { #ifdef CONFIG_EROFS_FS_XATTR - return sbi->xattr_blkaddr + - xattr_id * sizeof(__u32) / EROFS_BLKSIZ; + return EROFS_SB(sb)->xattr_blkaddr + + xattr_id * sizeof(__u32) / sb->s_blocksize; #else return 0; #endif } -static inline unsigned int xattrblock_offset(struct erofs_sb_info *sbi, +static inline unsigned int xattrblock_offset(struct super_block *sb, unsigned int xattr_id) { - return (xattr_id * sizeof(__u32)) % EROFS_BLKSIZ; + return (xattr_id * sizeof(__u32)) % sb->s_blocksize; } #ifdef CONFIG_EROFS_FS_XATTR diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index a08299d80ca1..bfb10ba74aab 100644 --- a/fs/erofs/zdata.c +++ b/fs/erofs/zdata.c @@ -618,7 +618,7 @@ static int z_erofs_register_pcluster(struct z_erofs_decompress_frontend *fe) if (ztailpacking) { pcl->obj.index = 0; /* which indicates ztailpacking */ - pcl->pageofs_in = erofs_blkoff(map->m_pa); + pcl->pageofs_in = erofs_blkoff(fe->inode->i_sb, map->m_pa); pcl->tailpacking_size = map->m_plen; } else { pcl->obj.index = map->m_pa >> PAGE_SHIFT; @@ -747,6 +747,7 @@ static int z_erofs_read_fragment(struct inode *inode, erofs_off_t pos, struct page *page, unsigned int pageofs, unsigned int len) { + struct super_block *sb = inode->i_sb; struct inode *packed_inode = EROFS_I_SB(inode)->packed_inode; struct erofs_buf buf = __EROFS_BUF_INITIALIZER; u8 *src, *dst; @@ -758,16 +759,16 @@ static int z_erofs_read_fragment(struct inode *inode, erofs_off_t pos, pos += EROFS_I(inode)->z_fragmentoff; for (i = 0; i < len; i += cnt) { cnt = min_t(unsigned int, len - i, - EROFS_BLKSIZ - erofs_blkoff(pos)); + sb->s_blocksize - erofs_blkoff(sb, pos)); src = erofs_bread(&buf, packed_inode, - erofs_blknr(pos), EROFS_KMAP); + erofs_blknr(sb, pos), EROFS_KMAP); if (IS_ERR(src)) { erofs_put_metabuf(&buf); return PTR_ERR(src); } dst = kmap_local_page(page); - memcpy(dst + pageofs + i, src + erofs_blkoff(pos), cnt); + memcpy(dst + pageofs + i, src + erofs_blkoff(sb, pos), cnt); kunmap_local(dst); pos += cnt; } @@ -825,7 +826,8 @@ repeat: void *mp; mp = erofs_read_metabuf(&fe->map.buf, inode->i_sb, - erofs_blknr(map->m_pa), EROFS_NO_KMAP); + erofs_blknr(inode->i_sb, map->m_pa), + EROFS_NO_KMAP); if (IS_ERR(mp)) { err = PTR_ERR(mp); erofs_err(inode->i_sb, @@ -1555,11 +1557,11 @@ static void z_erofs_submit_queue(struct z_erofs_decompress_frontend *f, /* no device id here, thus it will always succeed */ mdev = (struct erofs_map_dev) { - .m_pa = blknr_to_addr(pcl->obj.index), + .m_pa = erofs_pos(sb, pcl->obj.index), }; (void)erofs_map_dev(sb, &mdev); - cur = erofs_blknr(mdev.m_pa); + cur = erofs_blknr(sb, mdev.m_pa); end = cur + pcl->pclusterpages; do { @@ -1593,7 +1595,7 @@ submit_bio_retry: last_bdev = mdev.m_bdev; bio->bi_iter.bi_sector = (sector_t)cur << - LOG_SECTORS_PER_BLOCK; + (sb->s_blocksize_bits - 9); bio->bi_private = bi_private; if (f->readahead) bio->bi_opf |= REQ_RAHEAD; diff --git a/fs/erofs/zmap.c b/fs/erofs/zmap.c index 3adab0d9cbe0..8973ccad707d 100644 --- a/fs/erofs/zmap.c +++ b/fs/erofs/zmap.c @@ -7,10 +7,6 @@ #include #include -static int z_erofs_do_map_blocks(struct inode *inode, - struct erofs_map_blocks *map, - int flags); - int z_erofs_fill_inode(struct inode *inode) { struct erofs_inode *const vi = EROFS_I(inode); @@ -22,133 +18,13 @@ int z_erofs_fill_inode(struct inode *inode) vi->z_advise = 0; vi->z_algorithmtype[0] = 0; vi->z_algorithmtype[1] = 0; - vi->z_logical_clusterbits = LOG_BLOCK_SIZE; + vi->z_logical_clusterbits = inode->i_sb->s_blocksize_bits; set_bit(EROFS_I_Z_INITED_BIT, &vi->flags); } inode->i_mapping->a_ops = &z_erofs_aops; return 0; } -static int z_erofs_fill_inode_lazy(struct inode *inode) -{ - struct erofs_inode *const vi = EROFS_I(inode); - struct super_block *const sb = inode->i_sb; - int err, headnr; - erofs_off_t pos; - struct erofs_buf buf = __EROFS_BUF_INITIALIZER; - void *kaddr; - struct z_erofs_map_header *h; - - if (test_bit(EROFS_I_Z_INITED_BIT, &vi->flags)) { - /* - * paired with smp_mb() at the end of the function to ensure - * fields will only be observed after the bit is set. - */ - smp_mb(); - return 0; - } - - if (wait_on_bit_lock(&vi->flags, EROFS_I_BL_Z_BIT, TASK_KILLABLE)) - return -ERESTARTSYS; - - err = 0; - if (test_bit(EROFS_I_Z_INITED_BIT, &vi->flags)) - goto out_unlock; - - pos = ALIGN(iloc(EROFS_SB(sb), vi->nid) + vi->inode_isize + - vi->xattr_isize, 8); - kaddr = erofs_read_metabuf(&buf, sb, erofs_blknr(pos), EROFS_KMAP); - if (IS_ERR(kaddr)) { - err = PTR_ERR(kaddr); - goto out_unlock; - } - - h = kaddr + erofs_blkoff(pos); - /* - * if the highest bit of the 8-byte map header is set, the whole file - * is stored in the packed inode. The rest bits keeps z_fragmentoff. - */ - if (h->h_clusterbits >> Z_EROFS_FRAGMENT_INODE_BIT) { - vi->z_advise = Z_EROFS_ADVISE_FRAGMENT_PCLUSTER; - vi->z_fragmentoff = le64_to_cpu(*(__le64 *)h) ^ (1ULL << 63); - vi->z_tailextent_headlcn = 0; - goto done; - } - vi->z_advise = le16_to_cpu(h->h_advise); - vi->z_algorithmtype[0] = h->h_algorithmtype & 15; - vi->z_algorithmtype[1] = h->h_algorithmtype >> 4; - - headnr = 0; - if (vi->z_algorithmtype[0] >= Z_EROFS_COMPRESSION_MAX || - vi->z_algorithmtype[++headnr] >= Z_EROFS_COMPRESSION_MAX) { - erofs_err(sb, "unknown HEAD%u format %u for nid %llu, please upgrade kernel", - headnr + 1, vi->z_algorithmtype[headnr], vi->nid); - err = -EOPNOTSUPP; - goto out_put_metabuf; - } - - vi->z_logical_clusterbits = LOG_BLOCK_SIZE + (h->h_clusterbits & 7); - if (!erofs_sb_has_big_pcluster(EROFS_SB(sb)) && - vi->z_advise & (Z_EROFS_ADVISE_BIG_PCLUSTER_1 | - Z_EROFS_ADVISE_BIG_PCLUSTER_2)) { - erofs_err(sb, "per-inode big pcluster without sb feature for nid %llu", - vi->nid); - err = -EFSCORRUPTED; - goto out_put_metabuf; - } - if (vi->datalayout == EROFS_INODE_FLAT_COMPRESSION && - !(vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_1) ^ - !(vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_2)) { - erofs_err(sb, "big pcluster head1/2 of compact indexes should be consistent for nid %llu", - vi->nid); - err = -EFSCORRUPTED; - goto out_put_metabuf; - } - - if (vi->z_advise & Z_EROFS_ADVISE_INLINE_PCLUSTER) { - struct erofs_map_blocks map = { - .buf = __EROFS_BUF_INITIALIZER - }; - - vi->z_idata_size = le16_to_cpu(h->h_idata_size); - err = z_erofs_do_map_blocks(inode, &map, - EROFS_GET_BLOCKS_FINDTAIL); - erofs_put_metabuf(&map.buf); - - if (!map.m_plen || - erofs_blkoff(map.m_pa) + map.m_plen > EROFS_BLKSIZ) { - erofs_err(sb, "invalid tail-packing pclustersize %llu", - map.m_plen); - err = -EFSCORRUPTED; - } - if (err < 0) - goto out_put_metabuf; - } - - if (vi->z_advise & Z_EROFS_ADVISE_FRAGMENT_PCLUSTER && - !(h->h_clusterbits >> Z_EROFS_FRAGMENT_INODE_BIT)) { - struct erofs_map_blocks map = { - .buf = __EROFS_BUF_INITIALIZER - }; - - vi->z_fragmentoff = le32_to_cpu(h->h_fragmentoff); - err = z_erofs_do_map_blocks(inode, &map, - EROFS_GET_BLOCKS_FINDTAIL); - erofs_put_metabuf(&map.buf); - if (err < 0) - goto out_put_metabuf; - } -done: - /* paired with smp_mb() at the beginning of the function */ - smp_mb(); - set_bit(EROFS_I_Z_INITED_BIT, &vi->flags); -out_put_metabuf: - erofs_put_metabuf(&buf); -out_unlock: - clear_and_wake_up_bit(EROFS_I_BL_Z_BIT, &vi->flags); - return err; -} - struct z_erofs_maprecorder { struct inode *inode; struct erofs_map_blocks *map; @@ -169,22 +45,21 @@ static int legacy_load_cluster_from_disk(struct z_erofs_maprecorder *m, { struct inode *const inode = m->inode; struct erofs_inode *const vi = EROFS_I(inode); - const erofs_off_t ibase = iloc(EROFS_I_SB(inode), vi->nid); const erofs_off_t pos = - Z_EROFS_VLE_LEGACY_INDEX_ALIGN(ibase + vi->inode_isize + - vi->xattr_isize) + + Z_EROFS_VLE_LEGACY_INDEX_ALIGN(erofs_iloc(inode) + + vi->inode_isize + vi->xattr_isize) + lcn * sizeof(struct z_erofs_vle_decompressed_index); struct z_erofs_vle_decompressed_index *di; unsigned int advise, type; m->kaddr = erofs_read_metabuf(&m->map->buf, inode->i_sb, - erofs_blknr(pos), EROFS_KMAP_ATOMIC); + erofs_blknr(inode->i_sb, pos), EROFS_KMAP_ATOMIC); if (IS_ERR(m->kaddr)) return PTR_ERR(m->kaddr); m->nextpackoff = pos + sizeof(struct z_erofs_vle_decompressed_index); m->lcn = lcn; - di = m->kaddr + erofs_blkoff(pos); + di = m->kaddr + erofs_blkoff(inode->i_sb, pos); advise = le16_to_cpu(di->di_advise); type = (advise >> Z_EROFS_VLE_DI_CLUSTER_TYPE_BIT) & @@ -285,7 +160,7 @@ static int unpack_compacted_index(struct z_erofs_maprecorder *m, (vcnt << amortizedshift); big_pcluster = vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_1; encodebits = ((vcnt << amortizedshift) - sizeof(__le32)) * 8 / vcnt; - eofs = erofs_blkoff(pos); + eofs = erofs_blkoff(m->inode->i_sb, pos); base = round_down(eofs, vcnt << amortizedshift); in = m->kaddr + base; @@ -375,10 +250,9 @@ static int compacted_load_cluster_from_disk(struct z_erofs_maprecorder *m, { struct inode *const inode = m->inode; struct erofs_inode *const vi = EROFS_I(inode); - const erofs_off_t ebase = ALIGN(iloc(EROFS_I_SB(inode), vi->nid) + - vi->inode_isize + vi->xattr_isize, 8) + - sizeof(struct z_erofs_map_header); - const unsigned int totalidx = DIV_ROUND_UP(inode->i_size, EROFS_BLKSIZ); + const erofs_off_t ebase = sizeof(struct z_erofs_map_header) + + ALIGN(erofs_iloc(inode) + vi->inode_isize + vi->xattr_isize, 8); + unsigned int totalidx = erofs_iblks(inode); unsigned int compacted_4b_initial, compacted_2b; unsigned int amortizedshift; erofs_off_t pos; @@ -416,7 +290,7 @@ static int compacted_load_cluster_from_disk(struct z_erofs_maprecorder *m, out: pos += lcn * (1 << amortizedshift); m->kaddr = erofs_read_metabuf(&m->map->buf, inode->i_sb, - erofs_blknr(pos), EROFS_KMAP_ATOMIC); + erofs_blknr(inode->i_sb, pos), EROFS_KMAP_ATOMIC); if (IS_ERR(m->kaddr)) return PTR_ERR(m->kaddr); return unpack_compacted_index(m, amortizedshift, pos, lookahead); @@ -486,6 +360,7 @@ static int z_erofs_extent_lookback(struct z_erofs_maprecorder *m, static int z_erofs_get_extent_compressedlen(struct z_erofs_maprecorder *m, unsigned int initial_lcn) { + struct super_block *sb = m->inode->i_sb; struct erofs_inode *const vi = EROFS_I(m->inode); struct erofs_map_blocks *const map = m->map; const unsigned int lclusterbits = vi->z_logical_clusterbits; @@ -532,7 +407,7 @@ static int z_erofs_get_extent_compressedlen(struct z_erofs_maprecorder *m, * if the 1st NONHEAD lcluster is actually PLAIN or HEAD type * rather than CBLKCNT, it's a 1 lcluster-sized pcluster. */ - m->compressedblks = 1 << (lclusterbits - LOG_BLOCK_SIZE); + m->compressedblks = 1 << (lclusterbits - sb->s_blocksize_bits); break; case Z_EROFS_VLE_CLUSTER_TYPE_NONHEAD: if (m->delta[0] != 1) @@ -548,7 +423,7 @@ static int z_erofs_get_extent_compressedlen(struct z_erofs_maprecorder *m, return -EFSCORRUPTED; } out: - map->m_plen = (u64)m->compressedblks << LOG_BLOCK_SIZE; + map->m_plen = erofs_pos(sb, m->compressedblks); return 0; err_bonus_cblkcnt: erofs_err(m->inode->i_sb, @@ -691,7 +566,7 @@ static int z_erofs_do_map_blocks(struct inode *inode, } else if (fragment && m.lcn == vi->z_tailextent_headlcn) { map->m_flags |= EROFS_MAP_FRAGMENT; } else { - map->m_pa = blknr_to_addr(m.pblk); + map->m_pa = erofs_pos(inode->i_sb, m.pblk); err = z_erofs_get_extent_compressedlen(&m, initial_lcn); if (err) goto unmap_out; @@ -718,7 +593,7 @@ static int z_erofs_do_map_blocks(struct inode *inode, if ((flags & EROFS_GET_BLOCKS_FIEMAP) || ((flags & EROFS_GET_BLOCKS_READMORE) && map->m_algorithmformat == Z_EROFS_COMPRESSION_LZMA && - map->m_llen >= EROFS_BLKSIZ)) { + map->m_llen >= i_blocksize(inode))) { err = z_erofs_get_extent_decompressedlen(&m); if (!err) map->m_flags |= EROFS_MAP_FULL_MAPPED; @@ -732,6 +607,125 @@ unmap_out: return err; } +static int z_erofs_fill_inode_lazy(struct inode *inode) +{ + struct erofs_inode *const vi = EROFS_I(inode); + struct super_block *const sb = inode->i_sb; + int err, headnr; + erofs_off_t pos; + struct erofs_buf buf = __EROFS_BUF_INITIALIZER; + void *kaddr; + struct z_erofs_map_header *h; + + if (test_bit(EROFS_I_Z_INITED_BIT, &vi->flags)) { + /* + * paired with smp_mb() at the end of the function to ensure + * fields will only be observed after the bit is set. + */ + smp_mb(); + return 0; + } + + if (wait_on_bit_lock(&vi->flags, EROFS_I_BL_Z_BIT, TASK_KILLABLE)) + return -ERESTARTSYS; + + err = 0; + if (test_bit(EROFS_I_Z_INITED_BIT, &vi->flags)) + goto out_unlock; + + pos = ALIGN(erofs_iloc(inode) + vi->inode_isize + vi->xattr_isize, 8); + kaddr = erofs_read_metabuf(&buf, sb, erofs_blknr(sb, pos), EROFS_KMAP); + if (IS_ERR(kaddr)) { + err = PTR_ERR(kaddr); + goto out_unlock; + } + + h = kaddr + erofs_blkoff(sb, pos); + /* + * if the highest bit of the 8-byte map header is set, the whole file + * is stored in the packed inode. The rest bits keeps z_fragmentoff. + */ + if (h->h_clusterbits >> Z_EROFS_FRAGMENT_INODE_BIT) { + vi->z_advise = Z_EROFS_ADVISE_FRAGMENT_PCLUSTER; + vi->z_fragmentoff = le64_to_cpu(*(__le64 *)h) ^ (1ULL << 63); + vi->z_tailextent_headlcn = 0; + goto done; + } + vi->z_advise = le16_to_cpu(h->h_advise); + vi->z_algorithmtype[0] = h->h_algorithmtype & 15; + vi->z_algorithmtype[1] = h->h_algorithmtype >> 4; + + headnr = 0; + if (vi->z_algorithmtype[0] >= Z_EROFS_COMPRESSION_MAX || + vi->z_algorithmtype[++headnr] >= Z_EROFS_COMPRESSION_MAX) { + erofs_err(sb, "unknown HEAD%u format %u for nid %llu, please upgrade kernel", + headnr + 1, vi->z_algorithmtype[headnr], vi->nid); + err = -EOPNOTSUPP; + goto out_put_metabuf; + } + + vi->z_logical_clusterbits = sb->s_blocksize_bits + (h->h_clusterbits & 7); + if (!erofs_sb_has_big_pcluster(EROFS_SB(sb)) && + vi->z_advise & (Z_EROFS_ADVISE_BIG_PCLUSTER_1 | + Z_EROFS_ADVISE_BIG_PCLUSTER_2)) { + erofs_err(sb, "per-inode big pcluster without sb feature for nid %llu", + vi->nid); + err = -EFSCORRUPTED; + goto out_put_metabuf; + } + if (vi->datalayout == EROFS_INODE_FLAT_COMPRESSION && + !(vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_1) ^ + !(vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_2)) { + erofs_err(sb, "big pcluster head1/2 of compact indexes should be consistent for nid %llu", + vi->nid); + err = -EFSCORRUPTED; + goto out_put_metabuf; + } + + if (vi->z_advise & Z_EROFS_ADVISE_INLINE_PCLUSTER) { + struct erofs_map_blocks map = { + .buf = __EROFS_BUF_INITIALIZER + }; + + vi->z_idata_size = le16_to_cpu(h->h_idata_size); + err = z_erofs_do_map_blocks(inode, &map, + EROFS_GET_BLOCKS_FINDTAIL); + erofs_put_metabuf(&map.buf); + + if (!map.m_plen || + erofs_blkoff(sb, map.m_pa) + map.m_plen > sb->s_blocksize) { + erofs_err(sb, "invalid tail-packing pclustersize %llu", + map.m_plen); + err = -EFSCORRUPTED; + } + if (err < 0) + goto out_put_metabuf; + } + + if (vi->z_advise & Z_EROFS_ADVISE_FRAGMENT_PCLUSTER && + !(h->h_clusterbits >> Z_EROFS_FRAGMENT_INODE_BIT)) { + struct erofs_map_blocks map = { + .buf = __EROFS_BUF_INITIALIZER + }; + + vi->z_fragmentoff = le32_to_cpu(h->h_fragmentoff); + err = z_erofs_do_map_blocks(inode, &map, + EROFS_GET_BLOCKS_FINDTAIL); + erofs_put_metabuf(&map.buf); + if (err < 0) + goto out_put_metabuf; + } +done: + /* paired with smp_mb() at the beginning of the function */ + smp_mb(); + set_bit(EROFS_I_Z_INITED_BIT, &vi->flags); +out_put_metabuf: + erofs_put_metabuf(&buf); +out_unlock: + clear_and_wake_up_bit(EROFS_I_BL_Z_BIT, &vi->flags); + return err; +} + int z_erofs_map_blocks_iter(struct inode *inode, struct erofs_map_blocks *map, int flags) { diff --git a/fs/xfs/xfs_buf_item_recover.c b/fs/xfs/xfs_buf_item_recover.c index ffa94102094d..43167f543afc 100644 --- a/fs/xfs/xfs_buf_item_recover.c +++ b/fs/xfs/xfs_buf_item_recover.c @@ -943,6 +943,16 @@ xlog_recover_buf_commit_pass2( if (lsn && lsn != -1 && XFS_LSN_CMP(lsn, current_lsn) >= 0) { trace_xfs_log_recover_buf_skip(log, buf_f); xlog_recover_validate_buf_type(mp, bp, buf_f, NULLCOMMITLSN); + + /* + * We're skipping replay of this buffer log item due to the log + * item LSN being behind the ondisk buffer. Verify the buffer + * contents since we aren't going to run the write verifier. + */ + if (bp->b_ops) { + bp->b_ops->verify_read(bp); + error = bp->b_error; + } goto out_release; } diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h index d2a71e25caab..b2d338904de2 100644 --- a/include/linux/device/driver.h +++ b/include/linux/device/driver.h @@ -134,6 +134,7 @@ extern struct device_driver *driver_find(const char *name, struct bus_type *bus); extern int driver_probe_done(void); extern void wait_for_device_probe(void); +extern void flush_deferred_probe_now(void); void __init wait_for_init_devices_probe(void); /* sysfs interface for exporting driver attributes */ diff --git a/include/linux/of_address.h b/include/linux/of_address.h index 45598dbec269..78d3fa9b4ff8 100644 --- a/include/linux/of_address.h +++ b/include/linux/of_address.h @@ -38,6 +38,8 @@ struct of_pci_range { /* Translate a DMA address from device space to CPU space */ extern u64 of_translate_dma_address(struct device_node *dev, const __be32 *in_addr); +extern const __be32 *of_translate_dma_region(struct device_node *dev, const __be32 *addr, + phys_addr_t *start, size_t *length); #ifdef CONFIG_OF_ADDRESS extern u64 of_translate_address(struct device_node *np, const __be32 *addr); diff --git a/include/linux/of_iommu.h b/include/linux/of_iommu.h index 55c1eb300a86..9a5e6b410dd2 100644 --- a/include/linux/of_iommu.h +++ b/include/linux/of_iommu.h @@ -12,6 +12,9 @@ extern const struct iommu_ops *of_iommu_configure(struct device *dev, struct device_node *master_np, const u32 *id); +extern void of_iommu_get_resv_regions(struct device *dev, + struct list_head *list); + #else static inline const struct iommu_ops *of_iommu_configure(struct device *dev, @@ -21,6 +24,11 @@ static inline const struct iommu_ops *of_iommu_configure(struct device *dev, return NULL; } +static inline void of_iommu_get_resv_regions(struct device *dev, + struct list_head *list) +{ +} + #endif /* CONFIG_OF_IOMMU */ #endif /* __OF_IOMMU_H */ diff --git a/include/trace/events/erofs.h b/include/trace/events/erofs.h index 4f4c44ea3a65..01d0b8927376 100644 --- a/include/trace/events/erofs.h +++ b/include/trace/events/erofs.h @@ -66,8 +66,8 @@ TRACE_EVENT(erofs_fill_inode, TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->nid = EROFS_I(inode)->nid; - __entry->blkaddr = erofs_blknr(iloc(EROFS_I_SB(inode), __entry->nid)); - __entry->ofs = erofs_blkoff(iloc(EROFS_I_SB(inode), __entry->nid)); + __entry->blkaddr = erofs_blknr(inode->i_sb, erofs_iloc(inode)); + __entry->ofs = erofs_blkoff(inode->i_sb, erofs_iloc(inode)); ), TP_printk("dev = (%d,%d), nid = %llu, blkaddr %u ofs %u", diff --git a/include/trace/hooks/binder.h b/include/trace/hooks/binder.h index 991e9b1271a1..216b5645db73 100644 --- a/include/trace/hooks/binder.h +++ b/include/trace/hooks/binder.h @@ -11,7 +11,11 @@ * mechanism for vendor modules to hook and extend functionality */ struct binder_transaction; +struct binder_transaction_data; struct task_struct; +struct binder_work; +struct binder_buffer; + DECLARE_HOOK(android_vh_binder_transaction_init, TP_PROTO(struct binder_transaction *t), TP_ARGS(t)); @@ -93,6 +97,26 @@ DECLARE_HOOK(android_vh_binder_new_ref, DECLARE_HOOK(android_vh_binder_del_ref, TP_PROTO(struct task_struct *proc, uint32_t ref_desc), TP_ARGS(proc, ref_desc)); +DECLARE_HOOK(android_vh_alloc_oem_binder_struct, + TP_PROTO(struct binder_transaction_data *tr, struct binder_transaction *t, + struct binder_proc *proc), + TP_ARGS(tr, t, proc)); +DECLARE_HOOK(android_vh_binder_transaction_received, + TP_PROTO(struct binder_transaction *t, struct binder_proc *proc, + struct binder_thread *thread, uint32_t cmd), + TP_ARGS(t, proc, thread, cmd)); +DECLARE_HOOK(android_vh_free_oem_binder_struct, + TP_PROTO(struct binder_transaction *t), + TP_ARGS(t)); +DECLARE_HOOK(android_vh_binder_special_task, + TP_PROTO(struct binder_transaction *t, struct binder_proc *proc, + struct binder_thread *thread, struct binder_work *w, + struct list_head *head, bool sync, bool *special_task), + TP_ARGS(t, proc, thread, w, head, sync, special_task)); +DECLARE_HOOK(android_vh_binder_free_buf, + TP_PROTO(struct binder_proc *proc, struct binder_thread *thread, + struct binder_buffer *buffer), + TP_ARGS(proc, thread, buffer)); #endif /* _TRACE_HOOK_BINDER_H */ /* This part must be outside protection */ diff --git a/include/trace/hooks/compaction.h b/include/trace/hooks/compaction.h new file mode 100644 index 000000000000..3286de01d58b --- /dev/null +++ b/include/trace/hooks/compaction.h @@ -0,0 +1,20 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM compaction + +#define TRACE_INCLUDE_PATH trace/hooks + +#if !defined(_TRACE_HOOK_COMPACTION_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_HOOK_COMPACTION_H + +#include + +DECLARE_HOOK(android_vh_compaction_exit, + TP_PROTO(int node_id, int order, const int highest_zoneidx), + TP_ARGS(node_id, order, highest_zoneidx)); +enum compact_result; +DECLARE_HOOK(android_vh_compaction_try_to_compact_pages_exit, + TP_PROTO(enum compact_result *compact_result), + TP_ARGS(compact_result)); +#endif /* _TRACE_HOOK_COMPACTION_H */ +/* This part must be outside protection */ +#include diff --git a/include/trace/hooks/dtask.h b/include/trace/hooks/dtask.h index 2d5b13dce01f..a63a2868e626 100644 --- a/include/trace/hooks/dtask.h +++ b/include/trace/hooks/dtask.h @@ -84,6 +84,9 @@ DECLARE_HOOK(android_vh_record_pcpu_rwsem_starttime, DECLARE_HOOK(android_vh_record_pcpu_rwsem_time_early, TP_PROTO(unsigned long settime_jiffies, struct percpu_rw_semaphore *sem), TP_ARGS(settime_jiffies, sem)); +DECLARE_HOOK(android_vh_percpu_rwsem_wq_add, + TP_PROTO(struct percpu_rw_semaphore *sem, bool reader), + TP_ARGS(sem, reader)); struct mutex_waiter; DECLARE_HOOK(android_vh_alter_mutex_list_add, diff --git a/include/trace/hooks/iommu.h b/include/trace/hooks/iommu.h index d36446f0dd40..604dbf00cf6a 100644 --- a/include/trace/hooks/iommu.h +++ b/include/trace/hooks/iommu.h @@ -15,6 +15,7 @@ DECLARE_RESTRICTED_HOOK(android_rvh_iommu_setup_dma_ops, struct iova_domain; struct iova; +struct iommu_device; DECLARE_RESTRICTED_HOOK(android_rvh_iommu_alloc_insert_iova, TP_PROTO(struct iova_domain *iovad, unsigned long size, @@ -40,6 +41,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_iommu_limit_align_shift, unsigned long *shift), TP_ARGS(iovad, size, shift), 1); +DECLARE_HOOK(android_vh_bus_iommu_probe, + TP_PROTO(struct iommu_device *iommu, struct bus_type *bus, bool *skip), + TP_ARGS(iommu, bus, skip)); + #endif /* _TRACE_HOOK_IOMMU_H */ /* This part must be outside protection */ diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index e49cc31ea70d..7018cc8240c3 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -12,6 +12,7 @@ struct shmem_inode_info; struct folio; struct page_vma_mapped_walk; +struct compact_control; DECLARE_RESTRICTED_HOOK(android_rvh_shmem_get_folio, TP_PROTO(struct shmem_inode_info *info, struct folio **folio), @@ -106,6 +107,12 @@ DECLARE_HOOK(android_vh_madvise_cold_pageout_skip, TP_PROTO(struct vm_area_struct *vma, struct page *page, bool pageout, bool *need_skip), TP_ARGS(vma, page, pageout, need_skip)); +DECLARE_HOOK(android_vh_mm_compaction_begin, + TP_PROTO(struct compact_control *cc, long *vendor_ret), + TP_ARGS(cc, vendor_ret)); +DECLARE_HOOK(android_vh_mm_compaction_end, + TP_PROTO(struct compact_control *cc, long vendor_ret), + TP_ARGS(cc, vendor_ret)); struct mem_cgroup; DECLARE_HOOK(android_vh_mem_cgroup_alloc, TP_PROTO(struct mem_cgroup *memcg), @@ -141,6 +148,16 @@ DECLARE_HOOK(android_vh_look_around, struct vm_area_struct *vma, int *referenced), TP_ARGS(pvmw, folio, vma, referenced)); +DECLARE_HOOK(android_vh_mm_alloc_pages_direct_reclaim_enter, + TP_PROTO(unsigned int order), + TP_ARGS(order)); +DECLARE_HOOK(android_vh_mm_alloc_pages_direct_reclaim_exit, + TP_PROTO(unsigned long did_some_progress, int retry_times), + TP_ARGS(did_some_progress, retry_times)); +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)); #endif /* _TRACE_HOOK_MM_H */ /* This part must be outside protection */ diff --git a/include/trace/hooks/vmscan.h b/include/trace/hooks/vmscan.h index 625d30d75757..f9effdd2d03e 100644 --- a/include/trace/hooks/vmscan.h +++ b/include/trace/hooks/vmscan.h @@ -49,6 +49,10 @@ DECLARE_HOOK(android_vh_tune_swappiness, DECLARE_HOOK(android_vh_scan_abort_check_wmarks, TP_PROTO(bool *check_wmarks), TP_ARGS(check_wmarks)); +DECLARE_HOOK(android_vh_vmscan_kswapd_done, + TP_PROTO(int node_id, unsigned int highest_zoneidx, unsigned int alloc_order, + unsigned int reclaim_order), + TP_ARGS(node_id, highest_zoneidx, alloc_order, reclaim_order)); #endif /* _TRACE_HOOK_VMSCAN_H */ /* This part must be outside protection */ #include diff --git a/kernel/locking/percpu-rwsem.c b/kernel/locking/percpu-rwsem.c index 8b64155ebb1f..549da829c954 100644 --- a/kernel/locking/percpu-rwsem.c +++ b/kernel/locking/percpu-rwsem.c @@ -181,6 +181,7 @@ static void percpu_rwsem_wait(struct percpu_rw_semaphore *sem, bool reader) if (wait) { wq_entry.flags |= WQ_FLAG_EXCLUSIVE | reader * WQ_FLAG_CUSTOM; __add_wait_queue_entry_tail(&sem->waiters, &wq_entry); + trace_android_vh_percpu_rwsem_wq_add(sem, reader); } spin_unlock_irq(&sem->waiters.lock); diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 9ae8f41e3372..f7d381b6c313 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2246,6 +2246,7 @@ static struct rq *find_lock_later_rq(struct task_struct *task, struct rq *rq) !cpumask_test_cpu(later_rq->cpu, &task->cpus_mask) || task_on_cpu(rq, task) || !dl_task(task) || + is_migration_disabled(task) || !task_on_rq_queued(task))) { double_unlock_balance(rq, later_rq); later_rq = NULL; diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index 0de7c8fdb3f7..d8f751beb7dc 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -2098,11 +2098,15 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq) * the mean time, task could have * migrated already or had its affinity changed. * Also make sure that it wasn't scheduled on its rq. + * It is possible the task was scheduled, set + * "migrate_disabled" and then got preempted, so we must + * check the task migration disable flag here too. */ if (unlikely(task_rq(task) != rq || !cpumask_test_cpu(lowest_rq->cpu, &task->cpus_mask) || task_on_cpu(rq, task) || !rt_task(task) || + is_migration_disabled(task) || !task_on_rq_queued(task))) { double_unlock_balance(rq, lowest_rq); diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 66e116d84c4e..e60c3e3f32ab 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3189,7 +3189,7 @@ static inline int mas_rebalance(struct ma_state *mas, * tries to combine the data in the same way. If one node contains the * entire range of the tree, then that node is used as a new root node. */ - mas_node_count(mas, 1 + empty_count * 3); + mas_node_count(mas, empty_count * 2 - 1); if (mas_is_err(mas)) return 0; @@ -5609,20 +5609,34 @@ static inline void mte_destroy_walk(struct maple_enode *enode, static void mas_wr_store_setup(struct ma_wr_state *wr_mas) { + if (mas_is_start(wr_mas->mas)) + return; + if (unlikely(mas_is_paused(wr_mas->mas))) - mas_reset(wr_mas->mas); + goto reset; - if (!mas_is_start(wr_mas->mas)) { - if (mas_is_none(wr_mas->mas)) { - mas_reset(wr_mas->mas); - } else { - wr_mas->r_max = wr_mas->mas->max; - wr_mas->type = mte_node_type(wr_mas->mas->node); - if (mas_is_span_wr(wr_mas)) - mas_reset(wr_mas->mas); - } - } + if (unlikely(mas_is_none(wr_mas->mas))) + goto reset; + /* + * A less strict version of mas_is_span_wr() where we allow spanning + * writes within this node. This is to stop partial walks in + * mas_prealloc() from being reset. + */ + if (wr_mas->mas->last > wr_mas->mas->max) + goto reset; + + if (wr_mas->entry) + return; + + if (mte_is_leaf(wr_mas->mas->node) && + wr_mas->mas->last == wr_mas->mas->max) + goto reset; + + return; + +reset: + mas_reset(wr_mas->mas); } /* Interface */ @@ -5749,25 +5763,25 @@ int mas_preallocate(struct ma_state *mas, void *entry, gfp_t gfp) mas_wr_end_piv(&wr_mas); node_size = mas_wr_node_size(&wr_mas); + /* Slot store can avoid using any nodes */ + if (node_size == wr_mas.node_end && wr_mas.offset_end - mas->offset == 1) + return 0; + if (node_size >= mt_slots[wr_mas.type]) { - /* Slot store is possible in some cases */ - if ((node_size == mt_slots[wr_mas.type]) && - (wr_mas.r_min == mas->index || wr_mas.r_max == mas->last)) - goto ask_now; /* Split, worst case for now. */ request = 1 + mas_mt_height(mas) * 2; goto ask_now; } - /* New root needs a singe node */ - if (unlikely(mte_is_root(mas->node))) - goto ask_now; + /* Appending does not need any nodes */ + if (node_size == wr_mas.node_end + 1 && mas->offset == wr_mas.node_end) + return 0; /* Potential spanning rebalance collapsing a node, use worst-case */ if (node_size - 1 <= mt_min_slots[wr_mas.type]) request = mas_mt_height(mas) * 2 - 1; - /* node store, slot store needs one node */ + /* node store needs one node */ ask_now: mas_node_count_gfp(mas, request, gfp); mas->mas_flags |= MA_STATE_PREALLOC; @@ -5880,7 +5894,7 @@ int mas_expected_entries(struct ma_state *mas, unsigned long nr_entries) /* Internal nodes */ nr_nodes += DIV_ROUND_UP(nr_nodes, nonleaf_cap); /* Add working room for split (2 nodes) + new parents */ - mas_node_count(mas, nr_nodes + 3); + mas_node_count_gfp(mas, nr_nodes + 3, GFP_KERNEL); /* Detect if allocations run out */ mas->mas_flags |= MA_STATE_PREALLOC; diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index f7364b9fee93..b4c3807a310d 100644 --- a/lib/test_maple_tree.c +++ b/lib/test_maple_tree.c @@ -9,6 +9,7 @@ #include #include +#include #define MTREE_ALLOC_MAX 0x2000000000000Ul #ifndef CONFIG_DEBUG_MAPLE_TREE @@ -1678,17 +1679,21 @@ static noinline void check_forking(struct maple_tree *mt) void *val; MA_STATE(mas, mt, 0, 0); MA_STATE(newmas, mt, 0, 0); + struct rw_semaphore newmt_lock; + + init_rwsem(&newmt_lock); for (i = 0; i <= nr_entries; i++) mtree_store_range(mt, i*10, i*10 + 5, xa_mk_value(i), GFP_KERNEL); mt_set_non_kernel(99999); - mt_init_flags(&newmt, MT_FLAGS_ALLOC_RANGE); + mt_init_flags(&newmt, MT_FLAGS_ALLOC_RANGE | MT_FLAGS_LOCK_EXTERN); + mt_set_external_lock(&newmt, &newmt_lock); newmas.tree = &newmt; mas_reset(&newmas); mas_reset(&mas); - mas_lock(&newmas); + down_write(&newmt_lock); mas.index = 0; mas.last = 0; if (mas_expected_entries(&newmas, nr_entries)) { @@ -1703,10 +1708,10 @@ static noinline void check_forking(struct maple_tree *mt) } rcu_read_unlock(); mas_destroy(&newmas); - mas_unlock(&newmas); mt_validate(&newmt); mt_set_non_kernel(0); - mtree_destroy(&newmt); + __mt_destroy(&newmt); + up_write(&newmt_lock); } static noinline void check_mas_store_gfp(struct maple_tree *mt) @@ -1750,6 +1755,10 @@ static noinline void bench_forking(struct maple_tree *mt) void *val; MA_STATE(mas, mt, 0, 0); MA_STATE(newmas, mt, 0, 0); + struct rw_semaphore newmt_lock; + + init_rwsem(&newmt_lock); + mt_set_external_lock(&newmt, &newmt_lock); for (i = 0; i <= nr_entries; i++) mtree_store_range(mt, i*10, i*10 + 5, @@ -1764,7 +1773,7 @@ static noinline void bench_forking(struct maple_tree *mt) mas.index = 0; mas.last = 0; rcu_read_lock(); - mas_lock(&newmas); + down_write(&newmt_lock); if (mas_expected_entries(&newmas, nr_entries)) { printk("OOM!"); BUG_ON(1); @@ -1775,11 +1784,11 @@ static noinline void bench_forking(struct maple_tree *mt) mas_store(&newmas, val); } mas_destroy(&newmas); - mas_unlock(&newmas); rcu_read_unlock(); mt_validate(&newmt); mt_set_non_kernel(0); - mtree_destroy(&newmt); + __mt_destroy(&newmt); + up_write(&newmt_lock); } } #endif @@ -2380,6 +2389,10 @@ static noinline void check_dup_gaps(struct maple_tree *mt, void *tmp; MA_STATE(mas, mt, 0, 0); MA_STATE(newmas, &newmt, 0, 0); + struct rw_semaphore newmt_lock; + + init_rwsem(&newmt_lock); + mt_set_external_lock(&newmt, &newmt_lock); if (!zero_start) i = 1; @@ -2389,9 +2402,9 @@ static noinline void check_dup_gaps(struct maple_tree *mt, mtree_store_range(mt, i*10, (i+1)*10 - gap, xa_mk_value(i), GFP_KERNEL); - mt_init_flags(&newmt, MT_FLAGS_ALLOC_RANGE); + mt_init_flags(&newmt, MT_FLAGS_ALLOC_RANGE | MT_FLAGS_LOCK_EXTERN); mt_set_non_kernel(99999); - mas_lock(&newmas); + down_write(&newmt_lock); ret = mas_expected_entries(&newmas, nr_entries); mt_set_non_kernel(0); MT_BUG_ON(mt, ret != 0); @@ -2404,9 +2417,9 @@ static noinline void check_dup_gaps(struct maple_tree *mt, } rcu_read_unlock(); mas_destroy(&newmas); - mas_unlock(&newmas); - mtree_destroy(&newmt); + __mt_destroy(&newmt); + up_write(&newmt_lock); } /* Duplicate many sizes of trees. Mainly to test expected entry values */ diff --git a/mm/compaction.c b/mm/compaction.c index 2d9bc2ebfadf..b9a67520d442 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -49,6 +49,9 @@ static inline void count_compact_events(enum vm_event_item item, long delta) #define CREATE_TRACE_POINTS #include +#undef CREATE_TRACE_POINTS +#include +#include #define block_start_pfn(pfn, order) round_down(pfn, 1UL << (order)) #define block_end_pfn(pfn, order) ALIGN((pfn) + 1, 1UL << (order)) @@ -2321,6 +2324,7 @@ compact_zone(struct compact_control *cc, struct capture_control *capc) const bool sync = cc->mode != MIGRATE_ASYNC; bool update_cached; unsigned int nr_succeeded = 0; + long vendor_ret; /* * These counters track activities during zone compaction. Initialize @@ -2391,6 +2395,7 @@ compact_zone(struct compact_control *cc, struct capture_control *capc) cc->zone->compact_cached_migrate_pfn[0] == cc->zone->compact_cached_migrate_pfn[1]; trace_mm_compaction_begin(cc, start_pfn, end_pfn, sync); + trace_android_vh_mm_compaction_begin(cc, &vendor_ret); /* lru_add_drain_all could be expensive with involving other CPUs */ lru_add_drain(); @@ -2516,6 +2521,7 @@ out: count_compact_events(COMPACTMIGRATE_SCANNED, cc->total_migrate_scanned); count_compact_events(COMPACTFREE_SCANNED, cc->total_free_scanned); + trace_android_vh_mm_compaction_end(cc, vendor_ret); trace_mm_compaction_end(cc, start_pfn, end_pfn, sync, ret); return ret; @@ -2655,7 +2661,7 @@ enum compact_result try_to_compact_pages(gfp_t gfp_mask, unsigned int order, || fatal_signal_pending(current)) break; } - + trace_android_vh_compaction_try_to_compact_pages_exit(&rc); return rc; } @@ -2902,6 +2908,7 @@ static void kcompactd_do_work(pg_data_t *pgdat) VM_BUG_ON(!list_empty(&cc.freepages)); VM_BUG_ON(!list_empty(&cc.migratepages)); } + trace_android_vh_compaction_exit(pgdat->node_id, cc.order, cc.highest_zoneidx); /* * Regardless of success, we are done until woken up next. But remember diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 5879b5d6b483..cb9289925915 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -78,6 +78,7 @@ struct cgroup_subsys memory_cgrp_subsys __read_mostly; EXPORT_SYMBOL(memory_cgrp_subsys); struct mem_cgroup *root_mem_cgroup __read_mostly; +EXPORT_SYMBOL_GPL(root_mem_cgroup); /* Active memory cgroup to use from an interrupt context */ DEFINE_PER_CPU(struct mem_cgroup *, int_active_memcg); @@ -827,6 +828,7 @@ void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, if (!mem_cgroup_disabled()) __mod_memcg_lruvec_state(lruvec, idx, val); } +EXPORT_SYMBOL_GPL(__mod_lruvec_state); void __mod_lruvec_page_state(struct page *page, enum node_stat_item idx, int val) @@ -1392,6 +1394,7 @@ void mem_cgroup_update_lru_size(struct lruvec *lruvec, enum lru_list lru, if (nr_pages > 0) *lru_size += nr_pages; } +EXPORT_SYMBOL_GPL(mem_cgroup_update_lru_size); /** * mem_cgroup_margin - calculate chargeable space of a memory cgroup diff --git a/mm/memory.c b/mm/memory.c index 0f780a8dfaef..78d5312c0078 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3500,6 +3500,12 @@ reuse: return wp_page_shared(vmf); } copy: + if ((vmf->flags & FAULT_FLAG_VMA_LOCK) && !vma->anon_vma) { + pte_unmap_unlock(vmf->pte, vmf->ptl); + vma_end_read(vmf->vma); + return VM_FAULT_RETRY; + } + /* * Ok, we need to copy. Oh, well.. */ diff --git a/mm/page_alloc.c b/mm/page_alloc.c index d5ca46562e88..501d69ac8b95 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -4503,6 +4503,7 @@ __alloc_pages_may_oom(gfp_t gfp_mask, unsigned int order, if (!mutex_trylock(&oom_lock)) { *did_some_progress = 1; schedule_timeout_uninterruptible(1); + trace_android_vh_mm_alloc_pages_may_oom_exit(&oc, *did_some_progress); return NULL; } @@ -4565,6 +4566,7 @@ __alloc_pages_may_oom(gfp_t gfp_mask, unsigned int order, } out: mutex_unlock(&oom_lock); + trace_android_vh_mm_alloc_pages_may_oom_exit(&oc, *did_some_progress); return page; } @@ -4868,10 +4870,12 @@ __alloc_pages_direct_reclaim(gfp_t gfp_mask, unsigned int order, unsigned int alloc_flags, const struct alloc_context *ac, unsigned long *did_some_progress) { + int retry_times = 0; struct page *page = NULL; unsigned long pflags; bool drained = false; + trace_android_vh_mm_alloc_pages_direct_reclaim_enter(order); psi_memstall_enter(&pflags); *did_some_progress = __perform_reclaim(gfp_mask, order, ac); if (unlikely(!(*did_some_progress))) @@ -4889,11 +4893,12 @@ retry: unreserve_highatomic_pageblock(ac, false); drain_all_pages(NULL); drained = true; + ++retry_times; goto retry; } out: psi_memstall_leave(&pflags); - + trace_android_vh_mm_alloc_pages_direct_reclaim_exit(*did_some_progress, retry_times); return page; } diff --git a/mm/rmap.c b/mm/rmap.c index d1603eb79818..707de1aa3ceb 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -936,6 +936,7 @@ int folio_referenced(struct folio *folio, int is_locked, return rwc.contended ? -1 : pra.referenced; } +EXPORT_SYMBOL_GPL(folio_referenced); static int page_vma_mkclean_one(struct page_vma_mapped_walk *pvmw) { diff --git a/mm/shmem.c b/mm/shmem.c index f5232a35f04d..90ffdfd35bc6 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -805,14 +805,16 @@ unsigned long shmem_partial_swap_usage(struct address_space *mapping, XA_STATE(xas, &mapping->i_pages, start); struct page *page; unsigned long swapped = 0; + unsigned long max = end - 1; rcu_read_lock(); - xas_for_each(&xas, page, end - 1) { + xas_for_each(&xas, page, max) { if (xas_retry(&xas, page)) continue; if (xa_is_value(page)) swapped++; - + if (xas.xa_index == max) + break; if (need_resched()) { xas_pause(&xas); cond_resched_rcu(); diff --git a/mm/vmscan.c b/mm/vmscan.c index d1b9313ef88f..001767ecf169 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -4702,10 +4702,11 @@ static void lru_gen_rotate_memcg(struct lruvec *lruvec, int op) { int seg; int old, new; + unsigned long flags; int bin = get_random_u32_below(MEMCG_NR_BINS); struct pglist_data *pgdat = lruvec_pgdat(lruvec); - spin_lock(&pgdat->memcg_lru.lock); + spin_lock_irqsave(&pgdat->memcg_lru.lock, flags); VM_WARN_ON_ONCE(hlist_nulls_unhashed(&lruvec->lrugen.list)); @@ -4740,7 +4741,7 @@ static void lru_gen_rotate_memcg(struct lruvec *lruvec, int op) if (!pgdat->memcg_lru.nr_memcgs[old] && old == get_memcg_gen(pgdat->memcg_lru.seq)) WRITE_ONCE(pgdat->memcg_lru.seq, pgdat->memcg_lru.seq + 1); - spin_unlock(&pgdat->memcg_lru.lock); + spin_unlock_irqrestore(&pgdat->memcg_lru.lock, flags); } void lru_gen_online_memcg(struct mem_cgroup *memcg) @@ -4753,7 +4754,7 @@ void lru_gen_online_memcg(struct mem_cgroup *memcg) struct pglist_data *pgdat = NODE_DATA(nid); struct lruvec *lruvec = get_lruvec(memcg, nid); - spin_lock(&pgdat->memcg_lru.lock); + spin_lock_irq(&pgdat->memcg_lru.lock); VM_WARN_ON_ONCE(!hlist_nulls_unhashed(&lruvec->lrugen.list)); @@ -4764,7 +4765,7 @@ void lru_gen_online_memcg(struct mem_cgroup *memcg) lruvec->lrugen.gen = gen; - spin_unlock(&pgdat->memcg_lru.lock); + spin_unlock_irq(&pgdat->memcg_lru.lock); } } @@ -4788,7 +4789,7 @@ void lru_gen_release_memcg(struct mem_cgroup *memcg) struct pglist_data *pgdat = NODE_DATA(nid); struct lruvec *lruvec = get_lruvec(memcg, nid); - spin_lock(&pgdat->memcg_lru.lock); + spin_lock_irq(&pgdat->memcg_lru.lock); VM_WARN_ON_ONCE(hlist_nulls_unhashed(&lruvec->lrugen.list)); @@ -4800,7 +4801,7 @@ void lru_gen_release_memcg(struct mem_cgroup *memcg) 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); - spin_unlock(&pgdat->memcg_lru.lock); + spin_unlock_irq(&pgdat->memcg_lru.lock); } } @@ -7788,6 +7789,8 @@ kswapd_try_sleep: alloc_order); reclaim_order = balance_pgdat(pgdat, alloc_order, highest_zoneidx); + trace_android_vh_vmscan_kswapd_done(pgdat->node_id, highest_zoneidx, + alloc_order, reclaim_order); if (reclaim_order < alloc_order) goto kswapd_try_sleep; } diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c index 06581223238c..f597fe0db9f8 100644 --- a/net/bluetooth/hci_sock.c +++ b/net/bluetooth/hci_sock.c @@ -1003,7 +1003,14 @@ static int hci_sock_ioctl(struct socket *sock, unsigned int cmd, if (hci_sock_gen_cookie(sk)) { struct sk_buff *skb; - if (capable(CAP_NET_ADMIN)) + /* Perform careful checks before setting the HCI_SOCK_TRUSTED + * flag. Make sure that not only the current task but also + * the socket opener has the required capability, since + * privileged programs can be tricked into making ioctl calls + * on HCI sockets, and the socket should not be marked as + * trusted simply because the ioctl caller is privileged. + */ + if (sk_capable(sk, CAP_NET_ADMIN)) hci_sock_set_flag(sk, HCI_SOCK_TRUSTED); /* Send event to monitor */ diff --git a/net/core/sock_map.c b/net/core/sock_map.c index d38267201892..7904811ff62d 100644 --- a/net/core/sock_map.c +++ b/net/core/sock_map.c @@ -414,8 +414,9 @@ static int __sock_map_delete(struct bpf_stab *stab, struct sock *sk_test, { struct sock *sk; int err = 0; + unsigned long flags; - raw_spin_lock_bh(&stab->lock); + raw_spin_lock_irqsave(&stab->lock, flags); sk = *psk; if (!sk_test || sk_test == sk) sk = xchg(psk, NULL); @@ -425,7 +426,7 @@ static int __sock_map_delete(struct bpf_stab *stab, struct sock *sk_test, else err = -EINVAL; - raw_spin_unlock_bh(&stab->lock); + raw_spin_unlock_irqrestore(&stab->lock, flags); return err; } @@ -923,11 +924,12 @@ static int sock_hash_delete_elem(struct bpf_map *map, void *key) struct bpf_shtab_bucket *bucket; struct bpf_shtab_elem *elem; int ret = -ENOENT; + unsigned long flags; hash = sock_hash_bucket_hash(key, key_size); bucket = sock_hash_select_bucket(htab, hash); - raw_spin_lock_bh(&bucket->lock); + raw_spin_lock_irqsave(&bucket->lock, flags); elem = sock_hash_lookup_elem_raw(&bucket->head, hash, key, key_size); if (elem) { hlist_del_rcu(&elem->node); @@ -935,7 +937,7 @@ static int sock_hash_delete_elem(struct bpf_map *map, void *key) sock_hash_free_elem(htab, elem); ret = 0; } - raw_spin_unlock_bh(&bucket->lock); + raw_spin_unlock_irqrestore(&bucket->lock, flags); return ret; } diff --git a/net/ipv4/route.c b/net/ipv4/route.c index cd1fa9f70f1a..619fd88d920a 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -1213,6 +1213,7 @@ EXPORT_INDIRECT_CALLABLE(ipv4_dst_check); static void ipv4_send_dest_unreach(struct sk_buff *skb) { + struct net_device *dev; struct ip_options opt; int res; @@ -1230,7 +1231,8 @@ static void ipv4_send_dest_unreach(struct sk_buff *skb) opt.optlen = ip_hdr(skb)->ihl * 4 - sizeof(struct iphdr); rcu_read_lock(); - res = __ip_options_compile(dev_net(skb->dev), &opt, skb, NULL); + dev = skb->dev ? skb->dev : skb_rtable(skb)->dst.dev; + res = __ip_options_compile(dev_net(dev), &opt, skb, NULL); rcu_read_unlock(); if (res) diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index d7ac35073c01..b3339741c32f 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -1322,7 +1322,7 @@ static int nft_flush_table(struct nft_ctx *ctx) if (!nft_is_active_next(ctx->net, chain)) continue; - if (nft_chain_is_bound(chain)) + if (nft_chain_binding(chain)) continue; ctx->chain = chain; @@ -1367,7 +1367,7 @@ static int nft_flush_table(struct nft_ctx *ctx) if (!nft_is_active_next(ctx->net, chain)) continue; - if (nft_chain_is_bound(chain)) + if (nft_chain_binding(chain)) continue; ctx->chain = chain; @@ -2684,6 +2684,9 @@ static int nf_tables_delchain(struct sk_buff *skb, const struct nfnl_info *info, return PTR_ERR(chain); } + if (nft_chain_binding(chain)) + return -EOPNOTSUPP; + if (info->nlh->nlmsg_flags & NLM_F_NONREC && chain->use > 0) return -EBUSY; @@ -3666,6 +3669,11 @@ static int nf_tables_newrule(struct sk_buff *skb, const struct nfnl_info *info, } if (info->nlh->nlmsg_flags & NLM_F_REPLACE) { + if (nft_chain_binding(chain)) { + err = -EOPNOTSUPP; + goto err_destroy_flow_rule; + } + err = nft_delrule(&ctx, old_rule); if (err < 0) goto err_destroy_flow_rule; @@ -3771,7 +3779,7 @@ static int nf_tables_delrule(struct sk_buff *skb, const struct nfnl_info *info, NL_SET_BAD_ATTR(extack, nla[NFTA_RULE_CHAIN]); return PTR_ERR(chain); } - if (nft_chain_is_bound(chain)) + if (nft_chain_binding(chain)) return -EOPNOTSUPP; } @@ -3801,7 +3809,7 @@ static int nf_tables_delrule(struct sk_buff *skb, const struct nfnl_info *info, list_for_each_entry(chain, &table->chains, list) { if (!nft_is_active_next(net, chain)) continue; - if (nft_chain_is_bound(chain)) + if (nft_chain_binding(chain)) continue; ctx.chain = chain; diff --git a/net/netfilter/nfnetlink_osf.c b/net/netfilter/nfnetlink_osf.c index ee6840bd5933..4cd0aae43a8b 100644 --- a/net/netfilter/nfnetlink_osf.c +++ b/net/netfilter/nfnetlink_osf.c @@ -315,6 +315,14 @@ static int nfnl_osf_add_callback(struct sk_buff *skb, f = nla_data(osf_attrs[OSF_ATTR_FINGER]); + if (f->opt_num > ARRAY_SIZE(f->opt)) + return -EINVAL; + + if (!memchr(f->genre, 0, MAXGENRELEN) || + !memchr(f->subtype, 0, MAXGENRELEN) || + !memchr(f->version, 0, MAXGENRELEN)) + return -EINVAL; + kf = kmalloc(sizeof(struct nf_osf_finger), GFP_KERNEL); if (!kf) return -ENOMEM; diff --git a/net/netfilter/nft_byteorder.c b/net/netfilter/nft_byteorder.c index f952a80275a8..2e2eb2cb17bc 100644 --- a/net/netfilter/nft_byteorder.c +++ b/net/netfilter/nft_byteorder.c @@ -30,11 +30,11 @@ void nft_byteorder_eval(const struct nft_expr *expr, const struct nft_byteorder *priv = nft_expr_priv(expr); u32 *src = ®s->data[priv->sreg]; u32 *dst = ®s->data[priv->dreg]; - union { u32 u32; u16 u16; } *s, *d; + u16 *s16, *d16; unsigned int i; - s = (void *)src; - d = (void *)dst; + s16 = (void *)src; + d16 = (void *)dst; switch (priv->size) { case 8: { @@ -62,11 +62,11 @@ void nft_byteorder_eval(const struct nft_expr *expr, switch (priv->op) { case NFT_BYTEORDER_NTOH: for (i = 0; i < priv->len / 4; i++) - d[i].u32 = ntohl((__force __be32)s[i].u32); + dst[i] = ntohl((__force __be32)src[i]); break; case NFT_BYTEORDER_HTON: for (i = 0; i < priv->len / 4; i++) - d[i].u32 = (__force __u32)htonl(s[i].u32); + dst[i] = (__force __u32)htonl(src[i]); break; } break; @@ -74,11 +74,11 @@ void nft_byteorder_eval(const struct nft_expr *expr, switch (priv->op) { case NFT_BYTEORDER_NTOH: for (i = 0; i < priv->len / 2; i++) - d[i].u16 = ntohs((__force __be16)s[i].u16); + d16[i] = ntohs((__force __be16)s16[i]); break; case NFT_BYTEORDER_HTON: for (i = 0; i < priv->len / 2; i++) - d[i].u16 = (__force __u16)htons(s[i].u16); + d16[i] = (__force __u16)htons(s16[i]); break; } break; diff --git a/net/netfilter/xt_sctp.c b/net/netfilter/xt_sctp.c index 680015ba7cb6..d4bf089c9e3f 100644 --- a/net/netfilter/xt_sctp.c +++ b/net/netfilter/xt_sctp.c @@ -150,6 +150,8 @@ static int sctp_mt_check(const struct xt_mtchk_param *par) { const struct xt_sctp_info *info = par->matchinfo; + if (info->flag_count > ARRAY_SIZE(info->flag_info)) + return -EINVAL; if (info->flags & ~XT_SCTP_VALID_FLAGS) return -EINVAL; if (info->invflags & ~XT_SCTP_VALID_FLAGS) diff --git a/net/netfilter/xt_u32.c b/net/netfilter/xt_u32.c index 177b40d08098..117d4615d668 100644 --- a/net/netfilter/xt_u32.c +++ b/net/netfilter/xt_u32.c @@ -96,11 +96,32 @@ static bool u32_mt(const struct sk_buff *skb, struct xt_action_param *par) return ret ^ data->invert; } +static int u32_mt_checkentry(const struct xt_mtchk_param *par) +{ + const struct xt_u32 *data = par->matchinfo; + const struct xt_u32_test *ct; + unsigned int i; + + if (data->ntests > ARRAY_SIZE(data->tests)) + return -EINVAL; + + for (i = 0; i < data->ntests; ++i) { + ct = &data->tests[i]; + + if (ct->nnums > ARRAY_SIZE(ct->location) || + ct->nvalues > ARRAY_SIZE(ct->value)) + return -EINVAL; + } + + return 0; +} + static struct xt_match xt_u32_mt_reg __read_mostly = { .name = "u32", .revision = 0, .family = NFPROTO_UNSPEC, .match = u32_mt, + .checkentry = u32_mt_checkentry, .matchsize = sizeof(struct xt_u32), .me = THIS_MODULE, }; diff --git a/net/sched/Kconfig b/net/sched/Kconfig index bcdd6e925343..24cf0bf7c80e 100644 --- a/net/sched/Kconfig +++ b/net/sched/Kconfig @@ -548,34 +548,6 @@ config CLS_U32_MARK help Say Y here to be able to use netfilter marks as u32 key. -config NET_CLS_RSVP - tristate "IPv4 Resource Reservation Protocol (RSVP)" - select NET_CLS - help - The Resource Reservation Protocol (RSVP) permits end systems to - request a minimum and maximum data flow rate for a connection; this - is important for real time data such as streaming sound or video. - - Say Y here if you want to be able to classify outgoing packets based - on their RSVP requests. - - To compile this code as a module, choose M here: the - module will be called cls_rsvp. - -config NET_CLS_RSVP6 - tristate "IPv6 Resource Reservation Protocol (RSVP6)" - select NET_CLS - help - The Resource Reservation Protocol (RSVP) permits end systems to - request a minimum and maximum data flow rate for a connection; this - is important for real time data such as streaming sound or video. - - Say Y here if you want to be able to classify outgoing packets based - on their RSVP requests and you are using the IPv6 protocol. - - To compile this code as a module, choose M here: the - module will be called cls_rsvp6. - config NET_CLS_FLOW tristate "Flow classifier" select NET_CLS diff --git a/net/sched/Makefile b/net/sched/Makefile index b7dbac5c519f..8a33a35fc50d 100644 --- a/net/sched/Makefile +++ b/net/sched/Makefile @@ -69,8 +69,6 @@ obj-$(CONFIG_NET_SCH_TAPRIO) += sch_taprio.o obj-$(CONFIG_NET_CLS_U32) += cls_u32.o obj-$(CONFIG_NET_CLS_ROUTE4) += cls_route.o obj-$(CONFIG_NET_CLS_FW) += cls_fw.o -obj-$(CONFIG_NET_CLS_RSVP) += cls_rsvp.o -obj-$(CONFIG_NET_CLS_RSVP6) += cls_rsvp6.o obj-$(CONFIG_NET_CLS_BASIC) += cls_basic.o obj-$(CONFIG_NET_CLS_FLOW) += cls_flow.o obj-$(CONFIG_NET_CLS_CGROUP) += cls_cgroup.o diff --git a/net/sched/cls_rsvp.c b/net/sched/cls_rsvp.c deleted file mode 100644 index de1c1d4da597..000000000000 --- a/net/sched/cls_rsvp.c +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -/* - * net/sched/cls_rsvp.c Special RSVP packet classifier for IPv4. - * - * Authors: Alexey Kuznetsov, - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define RSVP_DST_LEN 1 -#define RSVP_ID "rsvp" -#define RSVP_OPS cls_rsvp_ops - -#include "cls_rsvp.h" -MODULE_LICENSE("GPL"); diff --git a/net/sched/cls_rsvp.h b/net/sched/cls_rsvp.h deleted file mode 100644 index b00a7dbd0587..000000000000 --- a/net/sched/cls_rsvp.h +++ /dev/null @@ -1,764 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -/* - * net/sched/cls_rsvp.h Template file for RSVPv[46] classifiers. - * - * Authors: Alexey Kuznetsov, - */ - -/* - Comparing to general packet classification problem, - RSVP needs only several relatively simple rules: - - * (dst, protocol) are always specified, - so that we are able to hash them. - * src may be exact, or may be wildcard, so that - we can keep a hash table plus one wildcard entry. - * source port (or flow label) is important only if src is given. - - IMPLEMENTATION. - - We use a two level hash table: The top level is keyed by - destination address and protocol ID, every bucket contains a list - of "rsvp sessions", identified by destination address, protocol and - DPI(="Destination Port ID"): triple (key, mask, offset). - - Every bucket has a smaller hash table keyed by source address - (cf. RSVP flowspec) and one wildcard entry for wildcard reservations. - Every bucket is again a list of "RSVP flows", selected by - source address and SPI(="Source Port ID" here rather than - "security parameter index"): triple (key, mask, offset). - - - NOTE 1. All the packets with IPv6 extension headers (but AH and ESP) - and all fragmented packets go to the best-effort traffic class. - - - NOTE 2. Two "port id"'s seems to be redundant, rfc2207 requires - only one "Generalized Port Identifier". So that for classic - ah, esp (and udp,tcp) both *pi should coincide or one of them - should be wildcard. - - At first sight, this redundancy is just a waste of CPU - resources. But DPI and SPI add the possibility to assign different - priorities to GPIs. Look also at note 4 about tunnels below. - - - NOTE 3. One complication is the case of tunneled packets. - We implement it as following: if the first lookup - matches a special session with "tunnelhdr" value not zero, - flowid doesn't contain the true flow ID, but the tunnel ID (1...255). - In this case, we pull tunnelhdr bytes and restart lookup - with tunnel ID added to the list of keys. Simple and stupid 8)8) - It's enough for PIMREG and IPIP. - - - NOTE 4. Two GPIs make it possible to parse even GRE packets. - F.e. DPI can select ETH_P_IP (and necessary flags to make - tunnelhdr correct) in GRE protocol field and SPI matches - GRE key. Is it not nice? 8)8) - - - Well, as result, despite its simplicity, we get a pretty - powerful classification engine. */ - - -struct rsvp_head { - u32 tmap[256/32]; - u32 hgenerator; - u8 tgenerator; - struct rsvp_session __rcu *ht[256]; - struct rcu_head rcu; -}; - -struct rsvp_session { - struct rsvp_session __rcu *next; - __be32 dst[RSVP_DST_LEN]; - struct tc_rsvp_gpi dpi; - u8 protocol; - u8 tunnelid; - /* 16 (src,sport) hash slots, and one wildcard source slot */ - struct rsvp_filter __rcu *ht[16 + 1]; - struct rcu_head rcu; -}; - - -struct rsvp_filter { - struct rsvp_filter __rcu *next; - __be32 src[RSVP_DST_LEN]; - struct tc_rsvp_gpi spi; - u8 tunnelhdr; - - struct tcf_result res; - struct tcf_exts exts; - - u32 handle; - struct rsvp_session *sess; - struct rcu_work rwork; -}; - -static inline unsigned int hash_dst(__be32 *dst, u8 protocol, u8 tunnelid) -{ - unsigned int h = (__force __u32)dst[RSVP_DST_LEN - 1]; - - h ^= h>>16; - h ^= h>>8; - return (h ^ protocol ^ tunnelid) & 0xFF; -} - -static inline unsigned int hash_src(__be32 *src) -{ - unsigned int h = (__force __u32)src[RSVP_DST_LEN-1]; - - h ^= h>>16; - h ^= h>>8; - h ^= h>>4; - return h & 0xF; -} - -#define RSVP_APPLY_RESULT() \ -{ \ - int r = tcf_exts_exec(skb, &f->exts, res); \ - if (r < 0) \ - continue; \ - else if (r > 0) \ - return r; \ -} - -static int rsvp_classify(struct sk_buff *skb, const struct tcf_proto *tp, - struct tcf_result *res) -{ - struct rsvp_head *head = rcu_dereference_bh(tp->root); - struct rsvp_session *s; - struct rsvp_filter *f; - unsigned int h1, h2; - __be32 *dst, *src; - u8 protocol; - u8 tunnelid = 0; - u8 *xprt; -#if RSVP_DST_LEN == 4 - struct ipv6hdr *nhptr; - - if (!pskb_network_may_pull(skb, sizeof(*nhptr))) - return -1; - nhptr = ipv6_hdr(skb); -#else - struct iphdr *nhptr; - - if (!pskb_network_may_pull(skb, sizeof(*nhptr))) - return -1; - nhptr = ip_hdr(skb); -#endif -restart: - -#if RSVP_DST_LEN == 4 - src = &nhptr->saddr.s6_addr32[0]; - dst = &nhptr->daddr.s6_addr32[0]; - protocol = nhptr->nexthdr; - xprt = ((u8 *)nhptr) + sizeof(struct ipv6hdr); -#else - src = &nhptr->saddr; - dst = &nhptr->daddr; - protocol = nhptr->protocol; - xprt = ((u8 *)nhptr) + (nhptr->ihl<<2); - if (ip_is_fragment(nhptr)) - return -1; -#endif - - h1 = hash_dst(dst, protocol, tunnelid); - h2 = hash_src(src); - - for (s = rcu_dereference_bh(head->ht[h1]); s; - s = rcu_dereference_bh(s->next)) { - if (dst[RSVP_DST_LEN-1] == s->dst[RSVP_DST_LEN - 1] && - protocol == s->protocol && - !(s->dpi.mask & - (*(u32 *)(xprt + s->dpi.offset) ^ s->dpi.key)) && -#if RSVP_DST_LEN == 4 - dst[0] == s->dst[0] && - dst[1] == s->dst[1] && - dst[2] == s->dst[2] && -#endif - tunnelid == s->tunnelid) { - - for (f = rcu_dereference_bh(s->ht[h2]); f; - f = rcu_dereference_bh(f->next)) { - if (src[RSVP_DST_LEN-1] == f->src[RSVP_DST_LEN - 1] && - !(f->spi.mask & (*(u32 *)(xprt + f->spi.offset) ^ f->spi.key)) -#if RSVP_DST_LEN == 4 - && - src[0] == f->src[0] && - src[1] == f->src[1] && - src[2] == f->src[2] -#endif - ) { - *res = f->res; - RSVP_APPLY_RESULT(); - -matched: - if (f->tunnelhdr == 0) - return 0; - - tunnelid = f->res.classid; - nhptr = (void *)(xprt + f->tunnelhdr - sizeof(*nhptr)); - goto restart; - } - } - - /* And wildcard bucket... */ - for (f = rcu_dereference_bh(s->ht[16]); f; - f = rcu_dereference_bh(f->next)) { - *res = f->res; - RSVP_APPLY_RESULT(); - goto matched; - } - return -1; - } - } - return -1; -} - -static void rsvp_replace(struct tcf_proto *tp, struct rsvp_filter *n, u32 h) -{ - struct rsvp_head *head = rtnl_dereference(tp->root); - struct rsvp_session *s; - struct rsvp_filter __rcu **ins; - struct rsvp_filter *pins; - unsigned int h1 = h & 0xFF; - unsigned int h2 = (h >> 8) & 0xFF; - - for (s = rtnl_dereference(head->ht[h1]); s; - s = rtnl_dereference(s->next)) { - for (ins = &s->ht[h2], pins = rtnl_dereference(*ins); ; - ins = &pins->next, pins = rtnl_dereference(*ins)) { - if (pins->handle == h) { - RCU_INIT_POINTER(n->next, pins->next); - rcu_assign_pointer(*ins, n); - return; - } - } - } - - /* Something went wrong if we are trying to replace a non-existent - * node. Mind as well halt instead of silently failing. - */ - BUG_ON(1); -} - -static void *rsvp_get(struct tcf_proto *tp, u32 handle) -{ - struct rsvp_head *head = rtnl_dereference(tp->root); - struct rsvp_session *s; - struct rsvp_filter *f; - unsigned int h1 = handle & 0xFF; - unsigned int h2 = (handle >> 8) & 0xFF; - - if (h2 > 16) - return NULL; - - for (s = rtnl_dereference(head->ht[h1]); s; - s = rtnl_dereference(s->next)) { - for (f = rtnl_dereference(s->ht[h2]); f; - f = rtnl_dereference(f->next)) { - if (f->handle == handle) - return f; - } - } - return NULL; -} - -static int rsvp_init(struct tcf_proto *tp) -{ - struct rsvp_head *data; - - data = kzalloc(sizeof(struct rsvp_head), GFP_KERNEL); - if (data) { - rcu_assign_pointer(tp->root, data); - return 0; - } - return -ENOBUFS; -} - -static void __rsvp_delete_filter(struct rsvp_filter *f) -{ - tcf_exts_destroy(&f->exts); - tcf_exts_put_net(&f->exts); - kfree(f); -} - -static void rsvp_delete_filter_work(struct work_struct *work) -{ - struct rsvp_filter *f = container_of(to_rcu_work(work), - struct rsvp_filter, - rwork); - rtnl_lock(); - __rsvp_delete_filter(f); - rtnl_unlock(); -} - -static void rsvp_delete_filter(struct tcf_proto *tp, struct rsvp_filter *f) -{ - tcf_unbind_filter(tp, &f->res); - /* all classifiers are required to call tcf_exts_destroy() after rcu - * grace period, since converted-to-rcu actions are relying on that - * in cleanup() callback - */ - if (tcf_exts_get_net(&f->exts)) - tcf_queue_work(&f->rwork, rsvp_delete_filter_work); - else - __rsvp_delete_filter(f); -} - -static void rsvp_destroy(struct tcf_proto *tp, bool rtnl_held, - struct netlink_ext_ack *extack) -{ - struct rsvp_head *data = rtnl_dereference(tp->root); - int h1, h2; - - if (data == NULL) - return; - - for (h1 = 0; h1 < 256; h1++) { - struct rsvp_session *s; - - while ((s = rtnl_dereference(data->ht[h1])) != NULL) { - RCU_INIT_POINTER(data->ht[h1], s->next); - - for (h2 = 0; h2 <= 16; h2++) { - struct rsvp_filter *f; - - while ((f = rtnl_dereference(s->ht[h2])) != NULL) { - rcu_assign_pointer(s->ht[h2], f->next); - rsvp_delete_filter(tp, f); - } - } - kfree_rcu(s, rcu); - } - } - kfree_rcu(data, rcu); -} - -static int rsvp_delete(struct tcf_proto *tp, void *arg, bool *last, - bool rtnl_held, struct netlink_ext_ack *extack) -{ - struct rsvp_head *head = rtnl_dereference(tp->root); - struct rsvp_filter *nfp, *f = arg; - struct rsvp_filter __rcu **fp; - unsigned int h = f->handle; - struct rsvp_session __rcu **sp; - struct rsvp_session *nsp, *s = f->sess; - int i, h1; - - fp = &s->ht[(h >> 8) & 0xFF]; - for (nfp = rtnl_dereference(*fp); nfp; - fp = &nfp->next, nfp = rtnl_dereference(*fp)) { - if (nfp == f) { - RCU_INIT_POINTER(*fp, f->next); - rsvp_delete_filter(tp, f); - - /* Strip tree */ - - for (i = 0; i <= 16; i++) - if (s->ht[i]) - goto out; - - /* OK, session has no flows */ - sp = &head->ht[h & 0xFF]; - for (nsp = rtnl_dereference(*sp); nsp; - sp = &nsp->next, nsp = rtnl_dereference(*sp)) { - if (nsp == s) { - RCU_INIT_POINTER(*sp, s->next); - kfree_rcu(s, rcu); - goto out; - } - } - - break; - } - } - -out: - *last = true; - for (h1 = 0; h1 < 256; h1++) { - if (rcu_access_pointer(head->ht[h1])) { - *last = false; - break; - } - } - - return 0; -} - -static unsigned int gen_handle(struct tcf_proto *tp, unsigned salt) -{ - struct rsvp_head *data = rtnl_dereference(tp->root); - int i = 0xFFFF; - - while (i-- > 0) { - u32 h; - - if ((data->hgenerator += 0x10000) == 0) - data->hgenerator = 0x10000; - h = data->hgenerator|salt; - if (!rsvp_get(tp, h)) - return h; - } - return 0; -} - -static int tunnel_bts(struct rsvp_head *data) -{ - int n = data->tgenerator >> 5; - u32 b = 1 << (data->tgenerator & 0x1F); - - if (data->tmap[n] & b) - return 0; - data->tmap[n] |= b; - return 1; -} - -static void tunnel_recycle(struct rsvp_head *data) -{ - struct rsvp_session __rcu **sht = data->ht; - u32 tmap[256/32]; - int h1, h2; - - memset(tmap, 0, sizeof(tmap)); - - for (h1 = 0; h1 < 256; h1++) { - struct rsvp_session *s; - for (s = rtnl_dereference(sht[h1]); s; - s = rtnl_dereference(s->next)) { - for (h2 = 0; h2 <= 16; h2++) { - struct rsvp_filter *f; - - for (f = rtnl_dereference(s->ht[h2]); f; - f = rtnl_dereference(f->next)) { - if (f->tunnelhdr == 0) - continue; - data->tgenerator = f->res.classid; - tunnel_bts(data); - } - } - } - } - - memcpy(data->tmap, tmap, sizeof(tmap)); -} - -static u32 gen_tunnel(struct rsvp_head *data) -{ - int i, k; - - for (k = 0; k < 2; k++) { - for (i = 255; i > 0; i--) { - if (++data->tgenerator == 0) - data->tgenerator = 1; - if (tunnel_bts(data)) - return data->tgenerator; - } - tunnel_recycle(data); - } - return 0; -} - -static const struct nla_policy rsvp_policy[TCA_RSVP_MAX + 1] = { - [TCA_RSVP_CLASSID] = { .type = NLA_U32 }, - [TCA_RSVP_DST] = { .len = RSVP_DST_LEN * sizeof(u32) }, - [TCA_RSVP_SRC] = { .len = RSVP_DST_LEN * sizeof(u32) }, - [TCA_RSVP_PINFO] = { .len = sizeof(struct tc_rsvp_pinfo) }, -}; - -static int rsvp_change(struct net *net, struct sk_buff *in_skb, - struct tcf_proto *tp, unsigned long base, - u32 handle, struct nlattr **tca, - void **arg, u32 flags, - struct netlink_ext_ack *extack) -{ - struct rsvp_head *data = rtnl_dereference(tp->root); - struct rsvp_filter *f, *nfp; - struct rsvp_filter __rcu **fp; - struct rsvp_session *nsp, *s; - struct rsvp_session __rcu **sp; - struct tc_rsvp_pinfo *pinfo = NULL; - struct nlattr *opt = tca[TCA_OPTIONS]; - struct nlattr *tb[TCA_RSVP_MAX + 1]; - struct tcf_exts e; - unsigned int h1, h2; - __be32 *dst; - int err; - - if (opt == NULL) - return handle ? -EINVAL : 0; - - err = nla_parse_nested_deprecated(tb, TCA_RSVP_MAX, opt, rsvp_policy, - NULL); - if (err < 0) - return err; - - err = tcf_exts_init(&e, net, TCA_RSVP_ACT, TCA_RSVP_POLICE); - if (err < 0) - return err; - err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &e, flags, - extack); - if (err < 0) - goto errout2; - - f = *arg; - if (f) { - /* Node exists: adjust only classid */ - struct rsvp_filter *n; - - if (f->handle != handle && handle) - goto errout2; - - n = kmemdup(f, sizeof(*f), GFP_KERNEL); - if (!n) { - err = -ENOMEM; - goto errout2; - } - - err = tcf_exts_init(&n->exts, net, TCA_RSVP_ACT, - TCA_RSVP_POLICE); - if (err < 0) { - kfree(n); - goto errout2; - } - - if (tb[TCA_RSVP_CLASSID]) { - n->res.classid = nla_get_u32(tb[TCA_RSVP_CLASSID]); - tcf_bind_filter(tp, &n->res, base); - } - - tcf_exts_change(&n->exts, &e); - rsvp_replace(tp, n, handle); - return 0; - } - - /* Now more serious part... */ - err = -EINVAL; - if (handle) - goto errout2; - if (tb[TCA_RSVP_DST] == NULL) - goto errout2; - - err = -ENOBUFS; - f = kzalloc(sizeof(struct rsvp_filter), GFP_KERNEL); - if (f == NULL) - goto errout2; - - err = tcf_exts_init(&f->exts, net, TCA_RSVP_ACT, TCA_RSVP_POLICE); - if (err < 0) - goto errout; - h2 = 16; - if (tb[TCA_RSVP_SRC]) { - memcpy(f->src, nla_data(tb[TCA_RSVP_SRC]), sizeof(f->src)); - h2 = hash_src(f->src); - } - if (tb[TCA_RSVP_PINFO]) { - pinfo = nla_data(tb[TCA_RSVP_PINFO]); - f->spi = pinfo->spi; - f->tunnelhdr = pinfo->tunnelhdr; - } - if (tb[TCA_RSVP_CLASSID]) - f->res.classid = nla_get_u32(tb[TCA_RSVP_CLASSID]); - - dst = nla_data(tb[TCA_RSVP_DST]); - h1 = hash_dst(dst, pinfo ? pinfo->protocol : 0, pinfo ? pinfo->tunnelid : 0); - - err = -ENOMEM; - if ((f->handle = gen_handle(tp, h1 | (h2<<8))) == 0) - goto errout; - - if (f->tunnelhdr) { - err = -EINVAL; - if (f->res.classid > 255) - goto errout; - - err = -ENOMEM; - if (f->res.classid == 0 && - (f->res.classid = gen_tunnel(data)) == 0) - goto errout; - } - - for (sp = &data->ht[h1]; - (s = rtnl_dereference(*sp)) != NULL; - sp = &s->next) { - if (dst[RSVP_DST_LEN-1] == s->dst[RSVP_DST_LEN-1] && - pinfo && pinfo->protocol == s->protocol && - memcmp(&pinfo->dpi, &s->dpi, sizeof(s->dpi)) == 0 && -#if RSVP_DST_LEN == 4 - dst[0] == s->dst[0] && - dst[1] == s->dst[1] && - dst[2] == s->dst[2] && -#endif - pinfo->tunnelid == s->tunnelid) { - -insert: - /* OK, we found appropriate session */ - - fp = &s->ht[h2]; - - f->sess = s; - if (f->tunnelhdr == 0) - tcf_bind_filter(tp, &f->res, base); - - tcf_exts_change(&f->exts, &e); - - fp = &s->ht[h2]; - for (nfp = rtnl_dereference(*fp); nfp; - fp = &nfp->next, nfp = rtnl_dereference(*fp)) { - __u32 mask = nfp->spi.mask & f->spi.mask; - - if (mask != f->spi.mask) - break; - } - RCU_INIT_POINTER(f->next, nfp); - rcu_assign_pointer(*fp, f); - - *arg = f; - return 0; - } - } - - /* No session found. Create new one. */ - - err = -ENOBUFS; - s = kzalloc(sizeof(struct rsvp_session), GFP_KERNEL); - if (s == NULL) - goto errout; - memcpy(s->dst, dst, sizeof(s->dst)); - - if (pinfo) { - s->dpi = pinfo->dpi; - s->protocol = pinfo->protocol; - s->tunnelid = pinfo->tunnelid; - } - sp = &data->ht[h1]; - for (nsp = rtnl_dereference(*sp); nsp; - sp = &nsp->next, nsp = rtnl_dereference(*sp)) { - if ((nsp->dpi.mask & s->dpi.mask) != s->dpi.mask) - break; - } - RCU_INIT_POINTER(s->next, nsp); - rcu_assign_pointer(*sp, s); - - goto insert; - -errout: - tcf_exts_destroy(&f->exts); - kfree(f); -errout2: - tcf_exts_destroy(&e); - return err; -} - -static void rsvp_walk(struct tcf_proto *tp, struct tcf_walker *arg, - bool rtnl_held) -{ - struct rsvp_head *head = rtnl_dereference(tp->root); - unsigned int h, h1; - - if (arg->stop) - return; - - for (h = 0; h < 256; h++) { - struct rsvp_session *s; - - for (s = rtnl_dereference(head->ht[h]); s; - s = rtnl_dereference(s->next)) { - for (h1 = 0; h1 <= 16; h1++) { - struct rsvp_filter *f; - - for (f = rtnl_dereference(s->ht[h1]); f; - f = rtnl_dereference(f->next)) { - if (!tc_cls_stats_dump(tp, arg, f)) - return; - } - } - } - } -} - -static int rsvp_dump(struct net *net, struct tcf_proto *tp, void *fh, - struct sk_buff *skb, struct tcmsg *t, bool rtnl_held) -{ - struct rsvp_filter *f = fh; - struct rsvp_session *s; - struct nlattr *nest; - struct tc_rsvp_pinfo pinfo; - - if (f == NULL) - return skb->len; - s = f->sess; - - t->tcm_handle = f->handle; - - nest = nla_nest_start_noflag(skb, TCA_OPTIONS); - if (nest == NULL) - goto nla_put_failure; - - if (nla_put(skb, TCA_RSVP_DST, sizeof(s->dst), &s->dst)) - goto nla_put_failure; - pinfo.dpi = s->dpi; - pinfo.spi = f->spi; - pinfo.protocol = s->protocol; - pinfo.tunnelid = s->tunnelid; - pinfo.tunnelhdr = f->tunnelhdr; - pinfo.pad = 0; - if (nla_put(skb, TCA_RSVP_PINFO, sizeof(pinfo), &pinfo)) - goto nla_put_failure; - if (f->res.classid && - nla_put_u32(skb, TCA_RSVP_CLASSID, f->res.classid)) - goto nla_put_failure; - if (((f->handle >> 8) & 0xFF) != 16 && - nla_put(skb, TCA_RSVP_SRC, sizeof(f->src), f->src)) - goto nla_put_failure; - - if (tcf_exts_dump(skb, &f->exts) < 0) - goto nla_put_failure; - - nla_nest_end(skb, nest); - - if (tcf_exts_dump_stats(skb, &f->exts) < 0) - goto nla_put_failure; - return skb->len; - -nla_put_failure: - nla_nest_cancel(skb, nest); - return -1; -} - -static void rsvp_bind_class(void *fh, u32 classid, unsigned long cl, void *q, - unsigned long base) -{ - struct rsvp_filter *f = fh; - - tc_cls_bind_class(classid, cl, q, &f->res, base); -} - -static struct tcf_proto_ops RSVP_OPS __read_mostly = { - .kind = RSVP_ID, - .classify = rsvp_classify, - .init = rsvp_init, - .destroy = rsvp_destroy, - .get = rsvp_get, - .change = rsvp_change, - .delete = rsvp_delete, - .walk = rsvp_walk, - .dump = rsvp_dump, - .bind_class = rsvp_bind_class, - .owner = THIS_MODULE, -}; - -static int __init init_rsvp(void) -{ - return register_tcf_proto_ops(&RSVP_OPS); -} - -static void __exit exit_rsvp(void) -{ - unregister_tcf_proto_ops(&RSVP_OPS); -} - -module_init(init_rsvp) -module_exit(exit_rsvp) diff --git a/net/sched/cls_rsvp6.c b/net/sched/cls_rsvp6.c deleted file mode 100644 index 64078846000e..000000000000 --- a/net/sched/cls_rsvp6.c +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -/* - * net/sched/cls_rsvp6.c Special RSVP packet classifier for IPv6. - * - * Authors: Alexey Kuznetsov, - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define RSVP_DST_LEN 4 -#define RSVP_ID "rsvp6" -#define RSVP_OPS cls_rsvp6_ops - -#include "cls_rsvp.h" -MODULE_LICENSE("GPL"); diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c index 70b0c5873d32..61d52594ff6d 100644 --- a/net/sched/sch_hfsc.c +++ b/net/sched/sch_hfsc.c @@ -1012,6 +1012,10 @@ hfsc_change_class(struct Qdisc *sch, u32 classid, u32 parentid, if (parent == NULL) return -ENOENT; } + if (!(parent->cl_flags & HFSC_FSC) && parent != &q->root) { + NL_SET_ERR_MSG(extack, "Invalid parent - parent class must have FSC"); + return -EINVAL; + } if (classid == 0 || TC_H_MAJ(classid ^ sch->handle) != 0) return -EINVAL; diff --git a/net/sched/sch_plug.c b/net/sched/sch_plug.c index ea8c4a7174bb..35f49edf63db 100644 --- a/net/sched/sch_plug.c +++ b/net/sched/sch_plug.c @@ -207,7 +207,7 @@ static struct Qdisc_ops plug_qdisc_ops __read_mostly = { .priv_size = sizeof(struct plug_sched_data), .enqueue = plug_enqueue, .dequeue = plug_dequeue, - .peek = qdisc_peek_head, + .peek = qdisc_peek_dequeued, .init = plug_init, .change = plug_change, .reset = qdisc_reset_queue, diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c index d5610e145da2..2a824c2a8037 100644 --- a/net/sched/sch_qfq.c +++ b/net/sched/sch_qfq.c @@ -966,10 +966,13 @@ static void qfq_update_eligible(struct qfq_sched *q) } /* Dequeue head packet of the head class in the DRR queue of the aggregate. */ -static void agg_dequeue(struct qfq_aggregate *agg, - struct qfq_class *cl, unsigned int len) +static struct sk_buff *agg_dequeue(struct qfq_aggregate *agg, + struct qfq_class *cl, unsigned int len) { - qdisc_dequeue_peeked(cl->qdisc); + struct sk_buff *skb = qdisc_dequeue_peeked(cl->qdisc); + + if (!skb) + return NULL; cl->deficit -= (int) len; @@ -979,6 +982,8 @@ static void agg_dequeue(struct qfq_aggregate *agg, cl->deficit += agg->lmax; list_move_tail(&cl->alist, &agg->active); } + + return skb; } static inline struct sk_buff *qfq_peek_skb(struct qfq_aggregate *agg, @@ -1124,11 +1129,18 @@ static struct sk_buff *qfq_dequeue(struct Qdisc *sch) if (!skb) return NULL; - qdisc_qstats_backlog_dec(sch, skb); sch->q.qlen--; + + skb = agg_dequeue(in_serv_agg, cl, len); + + if (!skb) { + sch->q.qlen++; + return NULL; + } + + qdisc_qstats_backlog_dec(sch, skb); qdisc_bstats_update(sch, skb); - agg_dequeue(in_serv_agg, cl, len); /* If lmax is lowered, through qfq_change_class, for a class * owning pending packets with larger size than the new value * of lmax, then the following condition may hold. diff --git a/tools/include/linux/rwsem.h b/tools/include/linux/rwsem.h new file mode 100644 index 000000000000..83971b3cbfce --- /dev/null +++ b/tools/include/linux/rwsem.h @@ -0,0 +1,40 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +#ifndef _TOOLS__RWSEM_H +#define _TOOLS__RWSEM_H + +#include + +struct rw_semaphore { + pthread_rwlock_t lock; +}; + +static inline int init_rwsem(struct rw_semaphore *sem) +{ + return pthread_rwlock_init(&sem->lock, NULL); +} + +static inline int exit_rwsem(struct rw_semaphore *sem) +{ + return pthread_rwlock_destroy(&sem->lock); +} + +static inline int down_read(struct rw_semaphore *sem) +{ + return pthread_rwlock_rdlock(&sem->lock); +} + +static inline int up_read(struct rw_semaphore *sem) +{ + return pthread_rwlock_unlock(&sem->lock); +} + +static inline int down_write(struct rw_semaphore *sem) +{ + return pthread_rwlock_wrlock(&sem->lock); +} + +static inline int up_write(struct rw_semaphore *sem) +{ + return pthread_rwlock_unlock(&sem->lock); +} +#endif /* _TOOLS_RWSEM_H */ diff --git a/tools/testing/selftests/tc-testing/config b/tools/testing/selftests/tc-testing/config index 4638c63a339f..e36fc6824201 100644 --- a/tools/testing/selftests/tc-testing/config +++ b/tools/testing/selftests/tc-testing/config @@ -12,14 +12,11 @@ CONFIG_NET_SCHED=y # # Queueing/Scheduling # -CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_CAKE=m -CONFIG_NET_SCH_CBQ=m CONFIG_NET_SCH_CBS=m CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_CODEL=m CONFIG_NET_SCH_DRR=m -CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_FQ=m CONFIG_NET_SCH_FQ_CODEL=m @@ -57,8 +54,6 @@ CONFIG_NET_CLS_FLOW=m CONFIG_NET_CLS_FLOWER=m CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m