diff --git a/BUILD.bazel b/BUILD.bazel index 5dd2392a9e55..543faa478cdb 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -12,22 +12,29 @@ package( ], ) -_aarch64_additional_kmi_symbol_lists = [ - # keep sorted - "android/abi_gki_aarch64_db845c", - "android/abi_gki_aarch64_galaxy", - "android/abi_gki_aarch64_oplus", - "android/abi_gki_aarch64_pixel", - "android/abi_gki_aarch64_qcom", - "android/abi_gki_aarch64_virtual_device", -] +filegroup( + name = "aarch64_additional_kmi_symbol_lists", + srcs = [ + # keep sorted + "android/abi_gki_aarch64_db845c", + "android/abi_gki_aarch64_galaxy", + "android/abi_gki_aarch64_imx", + "android/abi_gki_aarch64_mtk", + "android/abi_gki_aarch64_oplus", + "android/abi_gki_aarch64_pixel", + "android/abi_gki_aarch64_qcom", + "android/abi_gki_aarch64_virtual_device", + "android/abi_gki_aarch64_xiaomi", + ], + visibility = ["//visibility:public"], +) define_common_kernels(target_configs = { "kernel_aarch64": { "kmi_symbol_list_strict_mode": True, "module_implicit_outs": COMMON_GKI_MODULES_LIST, "kmi_symbol_list": "android/abi_gki_aarch64", - "additional_kmi_symbol_lists": _aarch64_additional_kmi_symbol_lists, + "additional_kmi_symbol_lists": [":aarch64_additional_kmi_symbol_lists"], "protected_exports_list": "android/abi_gki_protected_exports_aarch64", "protected_modules_list": "android/gki_aarch64_protected_modules", }, @@ -39,7 +46,7 @@ define_common_kernels(target_configs = { "kmi_symbol_list_strict_mode": False, "module_implicit_outs": COMMON_GKI_MODULES_LIST, "kmi_symbol_list": "android/abi_gki_aarch64", - "additional_kmi_symbol_lists": _aarch64_additional_kmi_symbol_lists, + "additional_kmi_symbol_lists": [":aarch64_additional_kmi_symbol_lists"], "protected_exports_list": "android/abi_gki_protected_exports_aarch64", "protected_modules_list": "android/gki_aarch64_protected_modules", }, diff --git a/Documentation/ABI/testing/sysfs-driver-typec-displayport b/Documentation/ABI/testing/sysfs-driver-typec-displayport index 231471ad0d4b..256c87c5219a 100644 --- a/Documentation/ABI/testing/sysfs-driver-typec-displayport +++ b/Documentation/ABI/testing/sysfs-driver-typec-displayport @@ -47,3 +47,18 @@ Description: USB SuperSpeed protocol. From user perspective pin assignments C and E are equal, where all channels on the connector are used for carrying DisplayPort protocol (allowing higher resolutions). + +What: /sys/bus/typec/devices/.../displayport/hpd +Date: Dec 2022 +Contact: Badhri Jagan Sridharan +Description: + VESA DisplayPort Alt Mode on USB Type-C Standard defines how + HotPlugDetect(HPD) shall be supported on the USB-C connector when + operating in DisplayPort Alt Mode. This is a read only node which + reflects the current state of HPD. + + Valid values: + - 1: when HPD’s logical state is high (HPD_High) as defined + by VESA DisplayPort Alt Mode on USB Type-C Standard. + - 0 when HPD’s logical state is low (HPD_Low) as defined by + VESA DisplayPort Alt Mode on USB Type-C Standard. diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index ccc8b9a216ae..9c078d38842c 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -2544,6 +2544,19 @@ for all guests. Default is 1 (enabled) if in 64-bit or 32-bit PAE mode. + kvm-arm.force_nc + [KVM,ARM,ANDROID_ARM64_WORKAROUND_DMA_BEYOND_POC] + + Enable hypercalls to remap host pages as normal + non-cacheable at stage-2 and issue these hypercalls + when installing non-cacheable ptes at stage-1. This + is useful to work around coherency issues on systems + with DMA peripherals integrated beyond the Point of + Coherency (PoC). + + This option only applies when booting with + kvm-arm.mode=protected. + kvm-arm.mode= [KVM,ARM] Select one of KVM/arm64's modes of operation. diff --git a/Documentation/mm/multigen_lru.rst b/Documentation/mm/multigen_lru.rst index d8f721f98868..5f1f6ecbb79b 100644 --- a/Documentation/mm/multigen_lru.rst +++ b/Documentation/mm/multigen_lru.rst @@ -141,9 +141,85 @@ loop has detected outlying refaults from the tier this page is in. To this end, the feedback loop uses the first tier as the baseline, for the reason stated earlier. +Working set protection +---------------------- +Each generation is timestamped at birth. If ``lru_gen_min_ttl`` is +set, an ``lruvec`` is protected from the eviction when its oldest +generation was born within ``lru_gen_min_ttl`` milliseconds. In other +words, it prevents the working set of ``lru_gen_min_ttl`` milliseconds +from getting evicted. The OOM killer is triggered if this working set +cannot be kept in memory. + +This time-based approach has the following advantages: + +1. It is easier to configure because it is agnostic to applications + and memory sizes. +2. It is more reliable because it is directly wired to the OOM killer. + +Rmap/PT walk feedback +--------------------- +Searching the rmap for PTEs mapping each page on an LRU list (to test +and clear the accessed bit) can be expensive because pages from +different VMAs (PA space) are not cache friendly to the rmap (VA +space). For workloads mostly using mapped pages, searching the rmap +can incur the highest CPU cost in the reclaim path. + +``lru_gen_look_around()`` exploits spatial locality to reduce the +trips into the rmap. It scans the adjacent PTEs of a young PTE and +promotes hot pages. If the scan was done cacheline efficiently, it +adds the PMD entry pointing to the PTE table to the Bloom filter. This +forms a feedback loop between the eviction and the aging. + +Bloom Filters +------------- +Bloom filters are a space and memory efficient data structure for set +membership test, i.e., test if an element is not in the set or may be +in the set. + +In the eviction path, specifically, in ``lru_gen_look_around()``, if a +PMD has a sufficient number of hot pages, its address is placed in the +filter. In the aging path, set membership means that the PTE range +will be scanned for young pages. + +Note that Bloom filters are probabilistic on set membership. If a test +is false positive, the cost is an additional scan of a range of PTEs, +which may yield hot pages anyway. Parameters of the filter itself can +control the false positive rate in the limit. + +Memcg LRU +--------- +An memcg LRU is a per-node LRU of memcgs. It is also an LRU of LRUs, +since each node and memcg combination has an LRU of folios (see +``mem_cgroup_lruvec()``). Its goal is to improve the scalability of +global reclaim, which is critical to system-wide memory overcommit in +data centers. Note that memcg LRU only applies to global reclaim. + +The basic structure of an memcg LRU can be understood by an analogy to +the active/inactive LRU (of folios): + +1. It has the young and the old (generations), i.e., the counterparts + to the active and the inactive; +2. The increment of ``max_seq`` triggers promotion, i.e., the + counterpart to activation; +3. Other events trigger similar operations, e.g., offlining an memcg + triggers demotion, i.e., the counterpart to deactivation. + +In terms of global reclaim, it has two distinct features: + +1. Sharding, which allows each thread to start at a random memcg (in + the old generation) and improves parallelism; +2. Eventual fairness, which allows direct reclaim to bail out at will + and reduces latency without affecting fairness over some time. + +In terms of traversing memcgs during global reclaim, it improves the +best-case complexity from O(n) to O(1) and does not affect the +worst-case complexity O(n). Therefore, on average, it has a sublinear +complexity. + Summary ------- -The multi-gen LRU can be disassembled into the following parts: +The multi-gen LRU (of folios) can be disassembled into the following +parts: * Generations * Rmap walks diff --git a/Makefile b/Makefile index 15ccbf3ff4f9..2e864f996bba 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 1 -SUBLEVEL = 22 +SUBLEVEL = 23 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth diff --git a/android/ACK_SHA b/android/ACK_SHA index 3de7f4f3f5ea..8f90eff05b0c 100644 --- a/android/ACK_SHA +++ b/android/ACK_SHA @@ -1 +1 @@ -2420a46a3268b1c42f462da5f18642e7166dc062 +9464c5644c653b3172e359597ee9a9972e7577ee diff --git a/android/abi_gki_aarch64 b/android/abi_gki_aarch64 index 57914f291962..bdae95797c69 100644 --- a/android/abi_gki_aarch64 +++ b/android/abi_gki_aarch64 @@ -2,3 +2,4 @@ # commonly used symbols module_layout __put_task_struct + utf8_data_table diff --git a/android/abi_gki_aarch64.stg b/android/abi_gki_aarch64.stg index 309c761d3c09..e0fcf824d09f 100644 --- a/android/abi_gki_aarch64.stg +++ b/android/abi_gki_aarch64.stg @@ -125,6 +125,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x2b2a4cd4 } +pointer_reference { + id: 0x006b8dfd + kind: POINTER + pointee_type_id: 0x2beed169 +} pointer_reference { id: 0x006cda7e kind: POINTER @@ -455,6 +460,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x2c9812c2 } +pointer_reference { + id: 0x01ba2ceb + kind: POINTER + pointee_type_id: 0x2ca85530 +} pointer_reference { id: 0x01bc81b8 kind: POINTER @@ -590,6 +600,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x2235eb47 } +pointer_reference { + id: 0x022383b2 + kind: POINTER + pointee_type_id: 0x22cee855 +} pointer_reference { id: 0x02268d94 kind: POINTER @@ -745,6 +760,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x2170d06d } +pointer_reference { + id: 0x02dfb39a + kind: POINTER + pointee_type_id: 0x213e28f7 +} pointer_reference { id: 0x02e98c8d kind: POINTER @@ -765,6 +785,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x21931005 } +pointer_reference { + id: 0x02f9a1f8 + kind: POINTER + pointee_type_id: 0x21a6617d +} pointer_reference { id: 0x02fc8d1a kind: POINTER @@ -1000,6 +1025,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x25e6cd32 } +pointer_reference { + id: 0x03e9b5f9 + kind: POINTER + pointee_type_id: 0x25e63179 +} pointer_reference { id: 0x03ecaf94 kind: POINTER @@ -2040,6 +2070,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x34dbb6d7 } +pointer_reference { + id: 0x07ab7e35 + kind: POINTER + pointee_type_id: 0x34ed1e4a +} pointer_reference { id: 0x07b17cd6 kind: POINTER @@ -2125,6 +2160,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x0a26d4f5 } +pointer_reference { + id: 0x0819c1d1 + kind: POINTER + pointee_type_id: 0x0a27e1da +} pointer_reference { id: 0x08258287 kind: POINTER @@ -2145,6 +2185,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x0a9eebba } +pointer_reference { + id: 0x083bdf25 + kind: POINTER + pointee_type_id: 0x0aaf9a0a +} pointer_reference { id: 0x084ef4c8 kind: POINTER @@ -2165,6 +2210,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x0bdce3f9 } +pointer_reference { + id: 0x086a88e1 + kind: POINTER + pointee_type_id: 0x0beac51b +} pointer_reference { id: 0x086a94c1 kind: POINTER @@ -2245,6 +2295,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x08b52b5b } +pointer_reference { + id: 0x08c085d5 + kind: POINTER + pointee_type_id: 0x0942f1ca +} pointer_reference { id: 0x08dcfb76 kind: POINTER @@ -2265,6 +2320,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x09e514cb } +pointer_reference { + id: 0x08ea582b + kind: POINTER + pointee_type_id: 0x09e98633 +} pointer_reference { id: 0x08ee566e kind: POINTER @@ -2365,6 +2425,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x0f49179e } +pointer_reference { + id: 0x0942f1ca + kind: POINTER + pointee_type_id: 0x0f4b21b6 +} pointer_reference { id: 0x09451098 kind: POINTER @@ -2860,6 +2925,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x07f900d5 } +pointer_reference { + id: 0x0b70fc18 + kind: POINTER + pointee_type_id: 0x078316ff +} pointer_reference { id: 0x0b716c32 kind: POINTER @@ -3000,6 +3070,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x05ea30f1 } +pointer_reference { + id: 0x0beac51b + kind: POINTER + pointee_type_id: 0x05ebf2f3 +} pointer_reference { id: 0x0bf1a65b kind: POINTER @@ -3850,6 +3925,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x182284a8 } +pointer_reference { + id: 0x0c9ac346 + kind: POINTER + pointee_type_id: 0x182beb86 +} pointer_reference { id: 0x0c9af3aa kind: POINTER @@ -3860,6 +3940,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x18c46588 } +pointer_reference { + id: 0x0ca205d3 + kind: POINTER + pointee_type_id: 0x18c8f1d0 +} pointer_reference { id: 0x0ca27481 kind: POINTER @@ -3985,6 +4070,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x18b8b96a } +pointer_reference { + id: 0x0cbe24dc + kind: POINTER + pointee_type_id: 0x18b875ee +} pointer_reference { id: 0x0cbf60eb kind: POINTER @@ -4145,11 +4235,6 @@ pointer_reference { kind: POINTER pointee_type_id: 0x19f3aad4 } -pointer_reference { - id: 0x0ced561e - kind: POINTER - pointee_type_id: 0x19f5bee7 -} pointer_reference { id: 0x0ced5e19 kind: POINTER @@ -4240,11 +4325,6 @@ pointer_reference { kind: POINTER pointee_type_id: 0x1e5f9cbf } -pointer_reference { - id: 0x0d0836f6 - kind: POINTER - pointee_type_id: 0x1e603d44 -} pointer_reference { id: 0x0d08a1bb kind: POINTER @@ -5645,11 +5725,6 @@ pointer_reference { kind: POINTER pointee_type_id: 0x1283794a } -pointer_reference { - id: 0x0e350ba0 - kind: POINTER - pointee_type_id: 0x1294c81d -} pointer_reference { id: 0x0e361c9c kind: POINTER @@ -5950,6 +6025,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x13fa026e } +pointer_reference { + id: 0x0e708ec6 + kind: POINTER + pointee_type_id: 0x1382dd85 +} pointer_reference { id: 0x0e724a00 kind: POINTER @@ -6105,6 +6185,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x107162e7 } +pointer_reference { + id: 0x0e8de3e3 + kind: POINTER + pointee_type_id: 0x10776911 +} pointer_reference { id: 0x0e9068a5 kind: POINTER @@ -6715,6 +6800,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x166b6880 } +pointer_reference { + id: 0x0f0b2702 + kind: POINTER + pointee_type_id: 0x166c7a96 +} pointer_reference { id: 0x0f0c4873 kind: POINTER @@ -6995,6 +7085,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x176c2cc0 } +pointer_reference { + id: 0x0f4b7529 + kind: POINTER + pointee_type_id: 0x176d3238 +} pointer_reference { id: 0x0f4dcd61 kind: POINTER @@ -7160,6 +7255,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x17939939 } +pointer_reference { + id: 0x0f765b6d + kind: POINTER + pointee_type_id: 0x17998b28 +} pointer_reference { id: 0x0f77ab9d kind: POINTER @@ -8375,6 +8475,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x64b72bba } +pointer_reference { + id: 0x13c70029 + kind: POINTER + pointee_type_id: 0x655ce63a +} pointer_reference { id: 0x13d55fea kind: POINTER @@ -8785,6 +8890,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x737d9636 } +pointer_reference { + id: 0x1650be92 + kind: POINTER + pointee_type_id: 0x73021cd7 +} pointer_reference { id: 0x16598b41 kind: POINTER @@ -8830,6 +8940,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x706a01e7 } +pointer_reference { + id: 0x168d6de3 + kind: POINTER + pointee_type_id: 0x70755111 +} pointer_reference { id: 0x1692cf3f kind: POINTER @@ -8990,6 +9105,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x77ee532f } +pointer_reference { + id: 0x176d3238 + kind: POINTER + pointee_type_id: 0x77f42e7c +} pointer_reference { id: 0x176fc5b8 kind: POINTER @@ -9290,6 +9410,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x48893aca } +pointer_reference { + id: 0x18b875ee + kind: POINTER + pointee_type_id: 0x48a13124 +} pointer_reference { id: 0x18ba5a88 kind: POINTER @@ -9315,6 +9440,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x4910a95a } +pointer_reference { + id: 0x18d82e82 + kind: POINTER + pointee_type_id: 0x49205c94 +} pointer_reference { id: 0x18ded2d3 kind: POINTER @@ -9445,11 +9575,21 @@ pointer_reference { kind: POINTER pointee_type_id: 0x4fb5a2ed } +pointer_reference { + id: 0x197dca09 + kind: POINTER + pointee_type_id: 0x4fb7ceba +} pointer_reference { id: 0x198099dc kind: POINTER pointee_type_id: 0x4c4281ed } +pointer_reference { + id: 0x1992ce85 + kind: POINTER + pointee_type_id: 0x4c0bdc8a +} pointer_reference { id: 0x1997473c kind: POINTER @@ -9475,11 +9615,6 @@ pointer_reference { kind: POINTER pointee_type_id: 0x4cde7d15 } -pointer_reference { - id: 0x19b548a2 - kind: POINTER - pointee_type_id: 0x4c95c416 -} pointer_reference { id: 0x19c00e70 kind: POINTER @@ -9865,6 +10000,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x44e665d5 } +pointer_reference { + id: 0x1bab96d2 + kind: POINTER + pointee_type_id: 0x44eebdd5 +} pointer_reference { id: 0x1bb6a471 kind: POINTER @@ -10505,11 +10645,21 @@ pointer_reference { kind: POINTER pointee_type_id: 0x52a69869 } +pointer_reference { + id: 0x1e3c909a + kind: POINTER + pointee_type_id: 0x52b2a4f5 +} pointer_reference { id: 0x1e3d3b89 kind: POINTER pointee_type_id: 0x52b408ba } +pointer_reference { + id: 0x1e4bcad9 + kind: POINTER + pointee_type_id: 0x536fcdfa +} pointer_reference { id: 0x1e5f193e kind: POINTER @@ -10525,6 +10675,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x53cba54b } +pointer_reference { + id: 0x1e641f1b + kind: POINTER + pointee_type_id: 0x53d09af0 +} pointer_reference { id: 0x1e7a7830 kind: POINTER @@ -11100,6 +11255,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xae60496e } +pointer_reference { + id: 0x210bdbea + kind: POINTER + pointee_type_id: 0xae6f8936 +} pointer_reference { id: 0x210dc160 kind: POINTER @@ -11155,6 +11315,16 @@ pointer_reference { kind: POINTER pointee_type_id: 0xaea51fc6 } +pointer_reference { + id: 0x213e28f7 + kind: POINTER + pointee_type_id: 0xaeb84542 +} +pointer_reference { + id: 0x21450ae9 + kind: POINTER + pointee_type_id: 0xaf54cd38 +} pointer_reference { id: 0x2145f7aa kind: POINTER @@ -11205,6 +11375,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xafb7c58e } +pointer_reference { + id: 0x217f99ba + kind: POINTER + pointee_type_id: 0xafbe8077 +} pointer_reference { id: 0x219262d4 kind: POINTER @@ -11245,6 +11420,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xad67bb9f } +pointer_reference { + id: 0x21de2259 + kind: POINTER + pointee_type_id: 0xad386ff8 +} pointer_reference { id: 0x21df69d0 kind: POINTER @@ -11415,6 +11595,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xa0ac1862 } +pointer_reference { + id: 0x22c0624b + kind: POINTER + pointee_type_id: 0xa1416fb0 +} pointer_reference { id: 0x22c8bf71 kind: POINTER @@ -11425,6 +11610,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xa179a8c5 } +pointer_reference { + id: 0x22cee855 + kind: POINTER + pointee_type_id: 0xa17b47ca +} pointer_reference { id: 0x22d082e5 kind: POINTER @@ -11615,6 +11805,16 @@ pointer_reference { kind: POINTER pointee_type_id: 0xa57d1db8 } +pointer_reference { + id: 0x23d902f6 + kind: POINTER + pointee_type_id: 0xa524ed45 +} +pointer_reference { + id: 0x23d957b7 + kind: POINTER + pointee_type_id: 0xa525b840 +} pointer_reference { id: 0x23da1e1b kind: POINTER @@ -11955,11 +12155,6 @@ pointer_reference { kind: POINTER pointee_type_id: 0xbc9ef3fd } -pointer_reference { - id: 0x25b7bdd2 - kind: POINTER - pointee_type_id: 0xbc9e11d7 -} pointer_reference { id: 0x25c2b7b5 kind: POINTER @@ -11985,6 +12180,16 @@ pointer_reference { kind: POINTER pointee_type_id: 0xbdd1c219 } +pointer_reference { + id: 0x25e63179 + kind: POINTER + pointee_type_id: 0xbdd82378 +} +pointer_reference { + id: 0x25e982e5 + kind: POINTER + pointee_type_id: 0xbde6ed0a +} pointer_reference { id: 0x25f5cdb3 kind: POINTER @@ -12035,6 +12240,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xb30471a8 } +pointer_reference { + id: 0x26554526 + kind: POINTER + pointee_type_id: 0xb315f206 +} pointer_reference { id: 0x2658f937 kind: POINTER @@ -12340,11 +12550,6 @@ pointer_reference { kind: POINTER pointee_type_id: 0xb4a26738 } -pointer_reference { - id: 0x27c2c08e - kind: POINTER - pointee_type_id: 0xb54be4a7 -} pointer_reference { id: 0x27cf73eb kind: POINTER @@ -12885,6 +13090,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x83286178 } +pointer_reference { + id: 0x2a5ed1c1 + kind: POINTER + pointee_type_id: 0x833ba199 +} pointer_reference { id: 0x2a64866d kind: POINTER @@ -13035,6 +13245,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x86a0a463 } +pointer_reference { + id: 0x2b3a75d9 + kind: POINTER + pointee_type_id: 0x86a931f9 +} pointer_reference { id: 0x2b3a7da8 kind: POINTER @@ -18855,6 +19070,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x936c5d25 } +pointer_reference { + id: 0x2e4e1a59 + kind: POINTER + pointee_type_id: 0x93788ff8 +} pointer_reference { id: 0x2e4fd1e7 kind: POINTER @@ -19650,6 +19870,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x9171f4eb } +pointer_reference { + id: 0x2ecc6701 + kind: POINTER + pointee_type_id: 0x91717a9b +} pointer_reference { id: 0x2ecc93f3 kind: POINTER @@ -20390,6 +20615,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x962949a5 } +pointer_reference { + id: 0x2f1af790 + kind: POINTER + pointee_type_id: 0x962b38df +} pointer_reference { id: 0x2f1b138b kind: POINTER @@ -21470,6 +21700,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x9480cdfa } +pointer_reference { + id: 0x2fb1b820 + kind: POINTER + pointee_type_id: 0x9486061c +} pointer_reference { id: 0x2fb2b385 kind: POINTER @@ -21535,6 +21770,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x94b946cc } +pointer_reference { + id: 0x2fc06ea0 + kind: POINTER + pointee_type_id: 0x95415c1d +} pointer_reference { id: 0x2fc09bbf kind: POINTER @@ -21570,6 +21810,16 @@ pointer_reference { kind: POINTER pointee_type_id: 0x9550eada } +pointer_reference { + id: 0x2fc40583 + kind: POINTER + pointee_type_id: 0x9550f091 +} +pointer_reference { + id: 0x2fc4a4b7 + kind: POINTER + pointee_type_id: 0x95527441 +} pointer_reference { id: 0x2fc4c761 kind: POINTER @@ -21580,6 +21830,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x955347a9 } +pointer_reference { + id: 0x2fc57d27 + kind: POINTER + pointee_type_id: 0x95551200 +} pointer_reference { id: 0x2fc6747c kind: POINTER @@ -21720,6 +21975,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x95dcd734 } +pointer_reference { + id: 0x2fe9613c + kind: POINTER + pointee_type_id: 0x95e5626e +} pointer_reference { id: 0x2fe9a253 kind: POINTER @@ -21860,6 +22120,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0x95bed865 } +pointer_reference { + id: 0x2fffbd5a + kind: POINTER + pointee_type_id: 0x95be13f6 +} pointer_reference { id: 0x3000402d kind: POINTER @@ -23855,6 +24120,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xf8ebb6bc } +pointer_reference { + id: 0x34ab5728 + kind: POINTER + pointee_type_id: 0xf8edba3f +} pointer_reference { id: 0x34ae24a9 kind: POINTER @@ -23940,6 +24210,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xf9f20e3e } +pointer_reference { + id: 0x34ed1e4a + kind: POINTER + pointee_type_id: 0xf9f49fb7 +} pointer_reference { id: 0x34ed6c40 kind: POINTER @@ -24220,6 +24495,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xfc71cff8 } +pointer_reference { + id: 0x358ed535 + kind: POINTER + pointee_type_id: 0xfc7bb24b +} pointer_reference { id: 0x358ff5b7 kind: POINTER @@ -24650,6 +24930,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xf0128d16 } +pointer_reference { + id: 0x3694d3c2 + kind: POINTER + pointee_type_id: 0xf013a996 +} pointer_reference { id: 0x369662d6 kind: POINTER @@ -24800,6 +25085,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xf1329f23 } +pointer_reference { + id: 0x36e2aac5 + kind: POINTER + pointee_type_id: 0xf1ca4d88 +} pointer_reference { id: 0x36e4aebb kind: POINTER @@ -25450,6 +25740,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xca88c599 } +pointer_reference { + id: 0x38323bdd + kind: POINTER + pointee_type_id: 0xca8809e9 +} pointer_reference { id: 0x38342a1b kind: POINTER @@ -25605,6 +25900,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xcb948a18 } +pointer_reference { + id: 0x387626d3 + kind: POINTER + pointee_type_id: 0xcb987dd0 +} pointer_reference { id: 0x387bec7d kind: POINTER @@ -25625,6 +25925,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xc859be95 } +pointer_reference { + id: 0x38883fc7 + kind: POINTER + pointee_type_id: 0xc8601982 +} pointer_reference { id: 0x388a169b kind: POINTER @@ -25680,6 +25985,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xc8f6e9dd } +pointer_reference { + id: 0x38af3519 + kind: POINTER + pointee_type_id: 0xc8fc32f8 +} pointer_reference { id: 0x38b136d3 kind: POINTER @@ -26240,6 +26550,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xcd80c5db } +pointer_reference { + id: 0x39f4bcfa + kind: POINTER + pointee_type_id: 0xcd921577 +} pointer_reference { id: 0x3a056647 kind: POINTER @@ -26550,6 +26865,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xc654c4df } +pointer_reference { + id: 0x3b08eb03 + kind: POINTER + pointee_type_id: 0xc6634a90 +} pointer_reference { id: 0x3b0a5ea0 kind: POINTER @@ -27350,6 +27670,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xdf4d92db } +pointer_reference { + id: 0x3d4bf55f + kind: POINTER + pointee_type_id: 0xdf6f33e0 +} pointer_reference { id: 0x3d4c764a kind: POINTER @@ -27670,6 +27995,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xdd9f6a40 } +pointer_reference { + id: 0x3df9bbb6 + kind: POINTER + pointee_type_id: 0xdda60846 +} pointer_reference { id: 0x3e001c39 kind: POINTER @@ -27725,6 +28055,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xd2180b64 } +pointer_reference { + id: 0x3e17a54c + kind: POINTER + pointee_type_id: 0xd21e73ad +} pointer_reference { id: 0x3e190264 kind: POINTER @@ -28220,6 +28555,11 @@ pointer_reference { kind: POINTER pointee_type_id: 0xd797353d } +pointer_reference { + id: 0x3f774ccb + kind: POINTER + pointee_type_id: 0xd79dd5b3 +} pointer_reference { id: 0x3f796883 kind: POINTER @@ -28805,16 +29145,31 @@ typedef { name: "bpfptr_t" referred_type_id: 0xe61f67ea } +typedef { + id: 0x4fb7ceba + name: "bsg_job_fn" + referred_type_id: 0x9342d9ef +} typedef { id: 0xf67c2b7b name: "bsg_sg_io_fn" referred_type_id: 0x9ffa167c } +typedef { + id: 0x655ce63a + name: "bsg_timeout_fn" + referred_type_id: 0x7904adfb +} typedef { id: 0xfe711d43 name: "btf_dtor_kfunc_t" referred_type_id: 0x0f3dfb90 } +typedef { + id: 0x17998b28 + name: "busy_tag_iter_fn" + referred_type_id: 0xf9662ef4 +} typedef { id: 0x89ea5acf name: "byte_t" @@ -28985,6 +29340,11 @@ typedef { name: "filldir_t" referred_type_id: 0x36ef2158 } +typedef { + id: 0x73021cd7 + name: "filler_t" + referred_type_id: 0x9b3fbad6 +} typedef { id: 0x8fd1c081 name: "fl_owner_t" @@ -29115,6 +29475,11 @@ typedef { name: "io_wq_work_fn" referred_type_id: 0x12e01214 } +typedef { + id: 0x1e41b656 + name: "ioasid_t" + referred_type_id: 0x4585663f +} typedef { id: 0x47c11668 name: "iommu_dev_fault_handler_t" @@ -30320,6 +30685,11 @@ typedef { name: "wait_queue_head_t" referred_type_id: 0x76e1f83e } +typedef { + id: 0x0dfb7909 + name: "wchar_t" + referred_type_id: 0x914dbfdc +} typedef { id: 0xa2114faf name: "work_func_t" @@ -30740,6 +31110,11 @@ qualified { qualifier: CONST qualified_type_id: 0x539c11fe } +qualified { + id: 0xc8fc32f8 + qualifier: CONST + qualified_type_id: 0x53b77d6a +} qualified { id: 0xc93afee2 qualifier: CONST @@ -30795,6 +31170,11 @@ qualified { qualifier: CONST qualified_type_id: 0x5a4da184 } +qualified { + id: 0xca8809e9 + qualifier: CONST + qualified_type_id: 0x5a67912c +} qualified { id: 0xca904ef0 qualifier: CONST @@ -30885,6 +31265,11 @@ qualified { qualifier: CONST qualified_type_id: 0x5d8fb74a } +qualified { + id: 0xcb987dd0 + qualifier: CONST + qualified_type_id: 0x5e2641cb +} qualified { id: 0xcbaf5769 qualifier: CONST @@ -31215,6 +31600,11 @@ qualified { qualifier: CONST qualified_type_id: 0x38279b1b } +qualified { + id: 0xd21e73ad + qualifier: CONST + qualified_type_id: 0x383e783f +} qualified { id: 0xd224ef0f qualifier: CONST @@ -31805,6 +32195,11 @@ qualified { qualifier: CONST qualified_type_id: 0x063a1f8b } +qualified { + id: 0xdda60846 + qualifier: CONST + qualified_type_id: 0x06df9791 +} qualified { id: 0xddcf6bc2 qualifier: CONST @@ -31875,6 +32270,11 @@ qualified { qualifier: CONST qualified_type_id: 0x0ca316ec } +qualified { + id: 0xdf6f33e0 + qualifier: CONST + qualified_type_id: 0x0dfb7909 +} qualified { id: 0xdf8a1059 qualifier: CONST @@ -32710,6 +33110,11 @@ qualified { qualifier: CONST qualified_type_id: 0xb0510713 } +qualified { + id: 0xf013a996 + qualifier: CONST + qualified_type_id: 0xb00910d2 +} qualified { id: 0xf02f20a3 qualifier: CONST @@ -32780,6 +33185,11 @@ qualified { qualifier: CONST qualified_type_id: 0xb6fd4c56 } +qualified { + id: 0xf1ca4d88 + qualifier: CONST + qualified_type_id: 0xb76e80ab +} qualified { id: 0xf1ddb61f qualifier: CONST @@ -33674,11 +34084,6 @@ array { number_of_elements: 20 element_type_id: 0x18bd6530 } -array { - id: 0x1236f51c - number_of_elements: 3 - element_type_id: 0x03cc00a2 -} array { id: 0x12b100eb number_of_elements: 3 @@ -33979,11 +34384,6 @@ array { number_of_elements: 3 element_type_id: 0xe62ebf07 } -array { - id: 0x2b8da8d0 - number_of_elements: 3 - element_type_id: 0xe5217790 -} array { id: 0x2bc4f74a number_of_elements: 3 @@ -33999,16 +34399,16 @@ array { number_of_elements: 3 element_type_id: 0xf8e00636 } -array { - id: 0x2dc6725b - number_of_elements: 3 - element_type_id: 0xfc0e1dbd -} array { id: 0x2f4e696d number_of_elements: 128 element_type_id: 0x06835e9c } +array { + id: 0x2f6759fd + number_of_elements: 27 + element_type_id: 0x585c2d3c +} array { id: 0x2f9c1780 number_of_elements: 24 @@ -34184,6 +34584,11 @@ array { number_of_elements: 2 element_type_id: 0xb3e7bac9 } +array { + id: 0x407ae5fe + number_of_elements: 2 + element_type_id: 0xb34e9475 +} array { id: 0x409e2c67 number_of_elements: 2 @@ -34219,6 +34624,11 @@ array { number_of_elements: 16 element_type_id: 0x3829c378 } +array { + id: 0x42868434 + number_of_elements: 2 + element_type_id: 0xb8bf135c +} array { id: 0x439230ff number_of_elements: 2 @@ -34284,6 +34694,11 @@ array { number_of_elements: 16 element_type_id: 0x237169c8 } +array { + id: 0x44f91b0f + number_of_elements: 2 + element_type_id: 0xa1416fb0 +} array { id: 0x45a82e68 number_of_elements: 10 @@ -34324,6 +34739,11 @@ array { number_of_elements: 37 element_type_id: 0x92233392 } +array { + id: 0x49c80917 + number_of_elements: 2 + element_type_id: 0x958527d1 +} array { id: 0x4a095829 number_of_elements: 16 @@ -34474,6 +34894,11 @@ array { number_of_elements: 32 element_type_id: 0x117e2995 } +array { + id: 0x51090cbc + number_of_elements: 2 + element_type_id: 0xf681317f +} array { id: 0x514537f0 number_of_elements: 7 @@ -34774,11 +35199,6 @@ array { number_of_elements: 2 element_type_id: 0x205789b5 } -array { - id: 0x6524bdbf - number_of_elements: 2 - element_type_id: 0x2637f572 -} array { id: 0x65dffcdd number_of_elements: 256 @@ -34834,11 +35254,6 @@ array { number_of_elements: 256 element_type_id: 0x78f4e574 } -array { - id: 0x67d8dc75 - number_of_elements: 2 - element_type_id: 0x2dc6725b -} array { id: 0x67e28331 number_of_elements: 2 @@ -34849,11 +35264,6 @@ array { number_of_elements: 16 element_type_id: 0x901eaf6a } -array { - id: 0x6840c692 - number_of_elements: 91 - element_type_id: 0x33756485 -} array { id: 0x6860ad66 number_of_elements: 16 @@ -34989,11 +35399,6 @@ array { number_of_elements: 2 element_type_id: 0x0baa70a7 } -array { - id: 0x6e6a309c - number_of_elements: 2 - element_type_id: 0x0b0dc1ff -} array { id: 0x6e8341c8 number_of_elements: 2 @@ -35104,6 +35509,11 @@ array { number_of_elements: 2 element_type_id: 0x63264602 } +array { + id: 0x749f40ec + number_of_elements: 39 + element_type_id: 0xd79dd5b3 +} array { id: 0x75386dca number_of_elements: 256 @@ -35469,11 +35879,21 @@ array { number_of_elements: 4 element_type_id: 0x03913382 } +array { + id: 0x8cbe1332 + number_of_elements: 4 + element_type_id: 0x03cc00a2 +} array { id: 0x8d2872f9 number_of_elements: 4 element_type_id: 0x0595878c } +array { + id: 0x8d536703 + number_of_elements: 512 + element_type_id: 0xf313e71a +} array { id: 0x8d58bd1a number_of_elements: 6 @@ -35589,11 +36009,6 @@ array { number_of_elements: 6 element_type_id: 0xd41e888f } -array { - id: 0x95043c75 - number_of_elements: 4 - element_type_id: 0x6524bdbf -} array { id: 0x95171a6f number_of_elements: 2048 @@ -35609,11 +36024,6 @@ array { number_of_elements: 4 element_type_id: 0x6720d32f } -array { - id: 0x95bb2407 - number_of_elements: 4 - element_type_id: 0x67d8dc75 -} array { id: 0x964dc71a number_of_elements: 4 @@ -35629,11 +36039,6 @@ array { number_of_elements: 21 element_type_id: 0x006e8104 } -array { - id: 0x97d79f3d - number_of_elements: 4 - element_type_id: 0x6e6a309c -} array { id: 0x9819cf84 number_of_elements: 1 @@ -35674,6 +36079,21 @@ array { number_of_elements: 4 element_type_id: 0x5e8dc7f4 } +array { + id: 0x9c404df6 + number_of_elements: 6 + element_type_id: 0xf784797b +} +array { + id: 0x9c44ff2a + number_of_elements: 4 + element_type_id: 0x4027b0c0 +} +array { + id: 0x9c53aa65 + number_of_elements: 4 + element_type_id: 0x407ae5fe +} array { id: 0x9c59388e number_of_elements: 4 @@ -35689,6 +36109,11 @@ array { number_of_elements: 12 element_type_id: 0x42af4f5c } +array { + id: 0x9cecb217 + number_of_elements: 4 + element_type_id: 0x42868434 +} array { id: 0x9d2c4a95 number_of_elements: 4 @@ -35704,6 +36129,11 @@ array { number_of_elements: 4 element_type_id: 0x49a73111 } +array { + id: 0x9e3f115f + number_of_elements: 4 + element_type_id: 0x49c80917 +} array { id: 0x9e96e428 number_of_elements: 1 @@ -35759,11 +36189,21 @@ array { number_of_elements: 672 element_type_id: 0xb3e7bac9 } +array { + id: 0xa19e72f5 + number_of_elements: 512 + element_type_id: 0x4027b0c0 +} array { id: 0xa1dc2b4a number_of_elements: 1 element_type_id: 0x50573700 } +array { + id: 0xa3440799 + number_of_elements: 9 + element_type_id: 0x21de2259 +} array { id: 0xa43786af number_of_elements: 6 @@ -35794,6 +36234,11 @@ array { number_of_elements: 1 element_type_id: 0x42af4f5c } +array { + id: 0xa634ef38 + number_of_elements: 512 + element_type_id: 0x5e8dc7f4 +} array { id: 0xa675e9e1 number_of_elements: 6 @@ -35954,6 +36399,11 @@ array { number_of_elements: 4 element_type_id: 0xe276adef } +array { + id: 0xb5054efe + number_of_elements: 4 + element_type_id: 0xe5217790 +} array { id: 0xb522cc16 number_of_elements: 17 @@ -35999,11 +36449,6 @@ array { number_of_elements: 31 element_type_id: 0xedf277ba } -array { - id: 0xb7b313d7 - number_of_elements: 4 - element_type_id: 0xeff80337 -} array { id: 0xb7fefe6a number_of_elements: 4 @@ -36114,6 +36559,11 @@ array { number_of_elements: 1 element_type_id: 0x295c7202 } +array { + id: 0xc0330c41 + number_of_elements: 8 + element_type_id: 0x9036114e +} array { id: 0xc0606f8b element_type_id: 0x116785ed @@ -36440,6 +36890,11 @@ array { id: 0xd1341eff element_type_id: 0x5436403f } +array { + id: 0xd2022e7c + number_of_elements: 5 + element_type_id: 0xeff80337 +} array { id: 0xd2501053 number_of_elements: 14 @@ -36717,6 +37172,11 @@ array { id: 0xe68e6b4d element_type_id: 0x8adf96f5 } +array { + id: 0xe6d2b814 + number_of_elements: 8 + element_type_id: 0x0bb0c019 +} array { id: 0xe6d4143b number_of_elements: 8 @@ -36952,6 +37412,11 @@ array { id: 0xf6acc9b2 element_type_id: 0xca551d0a } +array { + id: 0xf72d9d6b + number_of_elements: 94 + element_type_id: 0x33756485 +} array { id: 0xf77e4d4d number_of_elements: 15 @@ -37070,6 +37535,11 @@ array { id: 0xff45131e element_type_id: 0xedf277ba } +array { + id: 0xff615fef + number_of_elements: 8 + element_type_id: 0x6d7f5ff6 +} array { id: 0xff7222f6 number_of_elements: 5 @@ -37290,6 +37760,10 @@ member { id: 0x26c9c4e4 type_id: 0x14096380 } +member { + id: 0x26da8cc1 + type_id: 0x14444314 +} member { id: 0x26e6f511 type_id: 0x14b5a454 @@ -37379,6 +37853,10 @@ member { type_id: 0x2aa8f2af offset: 4608 } +member { + id: 0x2a406106 + type_id: 0x262ff409 +} member { id: 0x2a426327 type_id: 0x2627fc8d @@ -38060,6 +38538,11 @@ member { type_id: 0x5c3ef0a3 offset: 384 } +member { + id: 0x34d349be + type_id: 0x5c637323 + offset: 576 +} member { id: 0x34dc7c7e type_id: 0x5c5fa7e4 @@ -38411,8 +38894,8 @@ member { offset: 64 } member { - id: 0x39e9bc27 - type_id: 0x6888a784 + id: 0x39e9b87f + type_id: 0x6888b6e5 offset: 128 } member { @@ -39556,10 +40039,10 @@ member { type_id: 0xc8b17aa7 } member { - id: 0x5cfa9db5 + id: 0x5cfa9ff9 name: "__lruvec" type_id: 0xce2040d6 - offset: 41728 + offset: 55040 } member { id: 0xf63f2604 @@ -40267,10 +40750,10 @@ member { offset: 1536 } member { - id: 0xcb455ab7 + id: 0xcb455c50 name: "_pad1_" type_id: 0xadc524dd - offset: 41472 + offset: 54784 } member { id: 0x1aacf678 @@ -40291,10 +40774,10 @@ member { offset: 13824 } member { - id: 0x1aacfea1 + id: 0x1aacff1c name: "_pad2_" type_id: 0xadc524dd - offset: 54272 + offset: 69632 } member { id: 0x1e2ef2aa @@ -40533,9 +41016,9 @@ member { offset: 1024 } member { - id: 0xf5446657 + id: 0xf521d76a name: "_zonerefs" - type_id: 0xb7b313d7 + type_id: 0xd2022e7c } member { id: 0x806bbf2b @@ -42037,6 +42520,12 @@ member { offset: 4032 bitsize: 2 } +member { + id: 0x7d99680b + name: "active_nodes" + type_id: 0x74d29cf1 + offset: 49184 +} member { id: 0x5adc2ffa name: "active_objs" @@ -42603,6 +43092,11 @@ member { type_id: 0xbdd18903 offset: 64 } +member { + id: 0x2493d07f + name: "addr" + type_id: 0xbe0f19dc +} member { id: 0x24a68b5d name: "addr" @@ -42676,6 +43170,11 @@ member { type_id: 0xc9082b19 offset: 448 } +member { + id: 0x24e4d74d + name: "addr" + type_id: 0xc9082b19 +} member { id: 0x24e4e5b0 name: "addr" @@ -43261,6 +43760,11 @@ member { type_id: 0x6d7f5ff6 offset: 43136 } +member { + id: 0x1ffcf224 + name: "ae" + type_id: 0x25802b70 +} member { id: 0x59bfd6c9 name: "aead" @@ -44141,6 +44645,13 @@ member { type_id: 0x6d7f5ff6 offset: 12912 } +member { + id: 0x2aaa0939 + name: "allow_unknown" + type_id: 0x4585663f + offset: 4705 + bitsize: 1 +} member { id: 0xd57865fa name: "allow_user_free" @@ -44179,6 +44690,11 @@ member { type_id: 0x36042134 offset: 704 } +member { + id: 0xcf92c78a + name: "allowed" + type_id: 0xc9082b19 +} member { id: 0x0a18e8bc name: "allowed_protocols" @@ -44570,6 +45086,12 @@ member { type_id: 0x92233392 offset: 1920 } +member { + id: 0x2d081c40 + name: "android_kabi_reserved1" + type_id: 0x92233392 + offset: 576 +} member { id: 0x4f08721f name: "android_kabi_reserved10" @@ -44636,6 +45158,12 @@ member { type_id: 0x92233392 offset: 1984 } +member { + id: 0x63760fdb + name: "android_kabi_reserved2" + type_id: 0x92233392 + offset: 640 +} member { id: 0x8b2afc87 name: "android_kabi_reserved20" @@ -44696,6 +45224,12 @@ member { type_id: 0x92233392 offset: 3712 } +member { + id: 0xac894b6b + name: "android_kabi_reserved3" + type_id: 0x92233392 + offset: 704 +} member { id: 0xac894ed4 name: "android_kabi_reserved3" @@ -44726,6 +45260,12 @@ member { type_id: 0x92233392 offset: 2112 } +member { + id: 0xe0f63ce5 + name: "android_kabi_reserved4" + type_id: 0x92233392 + offset: 768 +} member { id: 0x22369142 name: "android_kabi_reserved5" @@ -44756,6 +45296,30 @@ member { type_id: 0x92233392 offset: 2432 } +member { + id: 0x6fc674e0 + name: "android_netlink_getneigh" + type_id: 0x6d7f5ff6 + offset: 96 +} +member { + id: 0x6fcc260e + name: "android_netlink_getneigh" + type_id: 0x6720d32f + offset: 64 +} +member { + id: 0x395073a8 + name: "android_netlink_route" + type_id: 0x6720d32f + offset: 32 +} +member { + id: 0x395a2e99 + name: "android_netlink_route" + type_id: 0x6d7f5ff6 + offset: 88 +} member { id: 0xd666cb46 name: "android_oem_data1" @@ -45544,6 +46108,12 @@ member { type_id: 0x3ea9cea9 offset: 320 } +member { + id: 0x3423032e + name: "args" + type_id: 0x18bd6530 + offset: 64 +} member { id: 0x343f35e0 name: "args" @@ -46855,6 +47425,12 @@ member { type_id: 0xbbf3ac86 offset: 1728 } +member { + id: 0x8ccdaf26 + name: "attr" + type_id: 0xc9082b19 + offset: 32 +} member { id: 0x8cd8119b name: "attr" @@ -46955,6 +47531,12 @@ member { type_id: 0x079ced0e offset: 2496 } +member { + id: 0xa926c7e0 + name: "attribute" + type_id: 0x5d8155a5 + offset: 72 +} member { id: 0x031bf6f0 name: "attributes" @@ -47127,6 +47709,18 @@ member { type_id: 0x4585663f offset: 7552 } +member { + id: 0x242a71d3 + name: "auditallow" + type_id: 0xc9082b19 + offset: 32 +} +member { + id: 0x3a9cc23a + name: "auditdeny" + type_id: 0xc9082b19 + offset: 64 +} member { id: 0x56e37738 name: "audmode" @@ -47671,6 +48265,29 @@ member { type_id: 0x92233392 offset: 512 } +member { + id: 0x0a7701ba + name: "avc" + type_id: 0x38883fc7 + offset: 448 +} +member { + id: 0x4133d93e + name: "avc_cache" + type_id: 0x22e22107 + offset: 64 +} +member { + id: 0xac537364 + name: "avc_cache_threshold" + type_id: 0x4585663f +} +member { + id: 0xce3c6bac + name: "avd" + type_id: 0xb65e540b + offset: 96 +} member { id: 0x0f221806 name: "avg" @@ -47761,10 +48378,10 @@ member { offset: 960 } member { - id: 0x83570c23 + id: 0x83570183 name: "avg_refaulted" type_id: 0x4c8d526d - offset: 5056 + offset: 6592 } member { id: 0x9f9132df @@ -47791,10 +48408,10 @@ member { offset: 448 } member { - id: 0x78e6f66b + id: 0x78e6fa74 name: "avg_total" type_id: 0x4c8d526d - offset: 5568 + offset: 7104 } member { id: 0x027dc0a5 @@ -48904,10 +49521,10 @@ member { offset: 352 } member { - id: 0xa5be4c17 + id: 0xa5be4038 name: "batched" type_id: 0x6720d32f - offset: 1152 + offset: 1408 } member { id: 0x54126f47 @@ -49568,6 +50185,12 @@ member { type_id: 0x33756485 offset: 192 } +member { + id: 0x38340c3f + name: "begin" + type_id: 0x26554526 + offset: 64 +} member { id: 0x383c84d4 name: "begin" @@ -49591,6 +50214,11 @@ member { name: "begin_enable_verity" type_id: 0x2c7ea7c2 } +member { + id: 0x8b969425 + name: "behavior" + type_id: 0xc9082b19 +} member { id: 0xb4845c93 name: "behaviour" @@ -49892,12 +50520,24 @@ member { type_id: 0xe8034002 offset: 224 } +member { + id: 0x9d3b9f4b + name: "bidi_bio" + type_id: 0x15a30023 + offset: 704 +} member { id: 0x03541dc9 name: "bidi_cnt" type_id: 0x295c7202 offset: 24 } +member { + id: 0xe007a713 + name: "bidi_rq" + type_id: 0x1e820193 + offset: 640 +} member { id: 0x06322123 name: "bidirectional" @@ -50790,10 +51430,10 @@ member { offset: 6592 } member { - id: 0x48c48bb2 + id: 0x48c48f3c name: "blocking_domain" type_id: 0x2e94a1e1 - offset: 1280 + offset: 1408 } member { id: 0x4f0978ad @@ -50985,6 +51625,18 @@ member { type_id: 0x219459f2 offset: 14656 } +member { + id: 0xbfc5857a + name: "bool" + type_id: 0xc9082b19 + offset: 32 +} +member { + id: 0x9fd51a6e + name: "bool_val_to_struct" + type_id: 0x03e9b5f9 + offset: 3072 +} member { id: 0xa9b46c97 name: "boolean" @@ -51239,6 +51891,12 @@ member { type_id: 0xa8fff47c offset: 1792 } +member { + id: 0x41a916e7 + name: "bounds" + type_id: 0xc9082b19 + offset: 32 +} member { id: 0x69f88a42 name: "bp_addr" @@ -53961,6 +54619,12 @@ member { name: "cache" type_id: 0x3fe284cc } +member { + id: 0x3b4729d9 + name: "cache" + type_id: 0x39f4bcfa + offset: 640 +} member { id: 0x3b4c6380 name: "cache" @@ -54032,6 +54696,12 @@ member { type_id: 0x6d7f5ff6 offset: 4400 } +member { + id: 0x10ef1bf4 + name: "cache_free_slots" + type_id: 0xc9082b19 + offset: 448 +} member { id: 0xc1ced5ca name: "cache_id" @@ -54050,6 +54720,18 @@ member { type_id: 0xa7c362b0 offset: 2432 } +member { + id: 0x6847c1f3 + name: "cache_lock" + type_id: 0xf313e71a + offset: 640 +} +member { + id: 0xfb7d6571 + name: "cache_lru_list" + type_id: 0xd3c80119 + offset: 512 +} member { id: 0xc81cf99a name: "cache_nice_tries" @@ -54658,10 +55340,10 @@ member { bitsize: 1 } member { - id: 0x297d1ec9 + id: 0x297d1e7e name: "can_swap" type_id: 0x6d7f5ff6 - offset: 1184 + offset: 1440 } member { id: 0xd61d73b2 @@ -55428,6 +56110,12 @@ member { type_id: 0xd3c80119 offset: 7168 } +member { + id: 0x1133d766 + name: "cat" + type_id: 0x86a931f9 + offset: 64 +} member { id: 0xa971e10c name: "catch" @@ -57077,6 +57765,12 @@ member { type_id: 0x139300cd offset: 256 } +member { + id: 0x666c167f + name: "checkreqprot" + type_id: 0x6d7f5ff6 + offset: 8 +} member { id: 0x2a729a89 name: "checksum" @@ -57373,6 +58067,12 @@ member { type_id: 0x18bd6530 offset: 192 } +member { + id: 0xb681e609 + name: "chip_ready" + type_id: 0x4585663f + offset: 352 +} member { id: 0x951e95bc name: "chip_select" @@ -58023,6 +58723,12 @@ member { type_id: 0x0c12eb7b offset: 448 } +member { + id: 0x3ebbdd01 + name: "class_val_to_struct" + type_id: 0x0cbe24dc + offset: 2176 +} member { id: 0x742a7c0e name: "classes" @@ -59098,10 +59804,10 @@ member { offset: 5120 } member { - id: 0xd226c4c9 + id: 0xd226c8d1 name: "cma_pages" type_id: 0x33756485 - offset: 1152 + offset: 1216 } member { id: 0x3f8434ad @@ -59993,6 +60699,18 @@ member { type_id: 0xe62ebf07 offset: 256 } +member { + id: 0xe994f7e2 + name: "comdatum" + type_id: 0x1e3c909a + offset: 128 +} +member { + id: 0x7372cfc3 + name: "comkey" + type_id: 0x0483e6f8 + offset: 64 +} member { id: 0x09c989f6 name: "comm" @@ -60461,6 +61179,12 @@ member { type_id: 0x6d7f5ff6 offset: 1088 } +member { + id: 0xd79237c9 + name: "compat_filename_trans_count" + type_id: 0xc9082b19 + offset: 3008 +} member { id: 0x4a54423a name: "compat_ioctl" @@ -60986,6 +61710,18 @@ member { type_id: 0xb3e7bac9 offset: 200 } +member { + id: 0x75447ac6 + name: "cond_list" + type_id: 0x08ea582b + offset: 3328 +} +member { + id: 0x56da2358 + name: "cond_list_len" + type_id: 0xc9082b19 + offset: 3392 +} member { id: 0x9c734fbf name: "cond_suspend_depth" @@ -61803,6 +62539,12 @@ member { type_id: 0x2e71b7d0 offset: 7680 } +member { + id: 0xfd724d73 + name: "constraints" + type_id: 0x1bab96d2 + offset: 384 +} member { id: 0xfdfa65af name: "constraints" @@ -61965,6 +62707,12 @@ member { type_id: 0xb3e7bac9 offset: 8 } +member { + id: 0x41167d14 + name: "context" + type_id: 0xa1416fb0 + offset: 64 +} member { id: 0x41251b02 name: "context" @@ -62007,6 +62755,12 @@ member { type_id: 0x753f7205 offset: 32 } +member { + id: 0x41f3c646 + name: "context" + type_id: 0x44f91b0f + offset: 320 +} member { id: 0x6f74ad91 name: "context_mgr_node_lock" @@ -62020,6 +62774,12 @@ member { offset: 346 bitsize: 1 } +member { + id: 0x3ac44cab + name: "context_to_sid" + type_id: 0xa634ef38 + offset: 24896 +} member { id: 0x52eba014 name: "contiguous" @@ -62231,6 +62991,12 @@ member { type_id: 0x064d6086 offset: 3776 } +member { + id: 0xb5c7762e + name: "convert" + type_id: 0x1e4bcad9 + offset: 320 +} member { id: 0x3f2fb089 name: "convert_ctx_access" @@ -62973,6 +63739,12 @@ member { type_id: 0xc9082b19 offset: 64 } +member { + id: 0x65ec5744 + name: "count" + type_id: 0xc9082b19 + offset: 256 +} member { id: 0x65ec57ef name: "count" @@ -65479,6 +66251,11 @@ member { type_id: 0x31114896 offset: 320 } +member { + id: 0x0cc4772a + name: "cur_state" + type_id: 0x6720d32f +} member { id: 0x47642b4f name: "cur_task" @@ -66021,9 +66798,9 @@ member { offset: 640 } member { - id: 0xa053fb2c + id: 0xa070bd00 name: "d_canonical_path" - type_id: 0x0d0836f6 + type_id: 0x2e4e1a59 offset: 832 } member { @@ -67600,6 +68377,18 @@ member { type_id: 0x0483e6f8 offset: 1408 } +member { + id: 0x13afcd46 + name: "datum" + type_id: 0x4fda69a2 + offset: 64 +} +member { + id: 0x13f8aa4a + name: "datum" + type_id: 0x18bd6530 + offset: 64 +} member { id: 0x57d05f3f name: "dax_dev" @@ -67915,6 +68704,12 @@ member { name: "dctcp_enabled" type_id: 0xe8034002 } +member { + id: 0x0e831890 + name: "dd_data" + type_id: 0x18bd6530 + offset: 768 +} member { id: 0x10f05f62 name: "dd_key_false" @@ -68589,10 +69384,10 @@ member { offset: 64 } member { - id: 0xd2bea8f2 + id: 0xd2bea8af name: "def_domain_type" type_id: 0x2dd58efa - offset: 960 + offset: 768 } member { id: 0x56d299d6 @@ -68678,16 +69473,16 @@ member { offset: 8256 } member { - id: 0xe1eb99a3 + id: 0xe1eb91e4 name: "default_domain" type_id: 0x2e94a1e1 - offset: 1216 + offset: 1344 } member { - id: 0x91bbbf6c + id: 0x91bbb2d5 name: "default_domain_ops" type_id: 0x30092723 - offset: 1024 + offset: 896 } member { id: 0xb612a728 @@ -68731,6 +69526,18 @@ member { type_id: 0xe9da44e2 offset: 3264 } +member { + id: 0x7ad0edec + name: "default_range" + type_id: 0x384f7d7c + offset: 536 +} +member { + id: 0x7c01b61e + name: "default_role" + type_id: 0x384f7d7c + offset: 520 +} member { id: 0x37301021 name: "default_set" @@ -68754,12 +69561,24 @@ member { type_id: 0x3e10b518 offset: 896 } +member { + id: 0x98b80a03 + name: "default_type" + type_id: 0x384f7d7c + offset: 528 +} member { id: 0x98c5ce6d name: "default_type" type_id: 0x4585663f offset: 1216 } +member { + id: 0x932e00b0 + name: "default_user" + type_id: 0x384f7d7c + offset: 512 +} member { id: 0x126d860d name: "default_value" @@ -68942,10 +69761,10 @@ member { offset: 2568 } member { - id: 0x5cbd60f7 + id: 0x5cbd6610 name: "deferred_split_queue" type_id: 0x814f67d4 - offset: 41472 + offset: 54784 } member { id: 0x5cbd698c @@ -70653,6 +71472,12 @@ member { type_id: 0x23230326 offset: 1984 } +member { + id: 0xce1ac4d6 + name: "dev" + type_id: 0x23230326 + offset: 2176 +} member { id: 0xce1ac5a8 name: "dev" @@ -71228,6 +72053,11 @@ member { type_id: 0xd3c80119 offset: 8256 } +member { + id: 0x8606d3a0 + name: "dev_name" + type_id: 0x0483e6f8 +} member { id: 0x863c40f3 name: "dev_name" @@ -71656,6 +72486,12 @@ member { name: "device" type_id: 0x11c404ba } +member { + id: 0xea2f40e7 + name: "device" + type_id: 0x1d61e0cf + offset: 128 +} member { id: 0xea307154 name: "device" @@ -72397,6 +73233,12 @@ member { type_id: 0x2033e582 offset: 1280 } +member { + id: 0x5898f7bd + name: "dfltlevel" + type_id: 0xf681317f + offset: 576 +} member { id: 0x07451d80 name: "dfs_bitmap" @@ -74504,18 +75346,18 @@ member { type_id: 0x18a2fb63 offset: 64 } +member { + id: 0xa72fe3f6 + name: "domain" + type_id: 0x2e94a1e1 + offset: 1472 +} member { id: 0xa72fed64 name: "domain" type_id: 0x2e94a1e1 offset: 128 } -member { - id: 0xa72fee25 - name: "domain" - type_id: 0x2e94a1e1 - offset: 1344 -} member { id: 0xa7c87331 name: "domain" @@ -74605,6 +75447,12 @@ member { name: "domains" type_id: 0x0b343e69 } +member { + id: 0xd2c2119f + name: "dominates" + type_id: 0x86a931f9 + offset: 64 +} member { id: 0x1d0af001 name: "done" @@ -75399,6 +76247,12 @@ member { type_id: 0x2a52de6b offset: 1024 } +member { + id: 0xd467c584 + name: "driver" + type_id: 0x295c7202 + offset: 8 +} member { id: 0xd4751144 name: "driver" @@ -75618,6 +76472,12 @@ member { type_id: 0x391f15ea offset: 1536 } +member { + id: 0x6d79728e + name: "driver_data" + type_id: 0x33756485 + offset: 704 +} member { id: 0x6da5d6a0 name: "driver_data" @@ -75832,6 +76692,12 @@ member { type_id: 0x60f31502 offset: 7552 } +member { + id: 0x922207d0 + name: "drivers" + type_id: 0xc4d82b11 + offset: 32 +} member { id: 0x12f21026 name: "drivers_autoprobe" @@ -76162,6 +77028,30 @@ member { type_id: 0x74d29cf1 offset: 608 } +member { + id: 0xbf3c7083 + name: "dsp_load" + type_id: 0x2fe9613c + offset: 640 +} +member { + id: 0x7d8eb938 + name: "dsp_loaded" + type_id: 0x4585663f + offset: 8544 +} +member { + id: 0x7d8eb982 + name: "dsp_loaded" + type_id: 0x4585663f + offset: 320 +} +member { + id: 0x51fefdf1 + name: "dsp_status" + type_id: 0x2fc57d27 + offset: 576 +} member { id: 0x3913e589 name: "dsr" @@ -78353,10 +79243,10 @@ member { offset: 640 } member { - id: 0xe86f5472 + id: 0xe86f5ee1 name: "enable_nesting" type_id: 0x2f194b72 - offset: 704 + offset: 768 } member { id: 0xca494c13 @@ -78512,6 +79402,12 @@ member { type_id: 0x6d7f5ff6 offset: 1248 } +member { + id: 0x3a2d3543 + name: "enabled" + type_id: 0x6d7f5ff6 + offset: 9024 +} member { id: 0x3a2d355a name: "enabled" @@ -78554,12 +79450,6 @@ member { type_id: 0x6d7f5ff6 offset: 64 } -member { - id: 0x3a2d3aaa - name: "enabled" - type_id: 0x6d7f5ff6 - offset: 7488 -} member { id: 0x3a2d3c38 name: "enabled" @@ -78849,6 +79739,12 @@ member { type_id: 0x6d7f5ff6 offset: 16 } +member { + id: 0x8201e649 + name: "end" + type_id: 0x0eb62dc3 + offset: 512 +} member { id: 0x8217e2f8 name: "end" @@ -79061,10 +79957,10 @@ member { offset: 2368 } member { - id: 0x5a2828f5 + id: 0x5a282cb1 name: "enforce_cache_coherency" type_id: 0x37d06578 - offset: 640 + offset: 704 } member { id: 0xc774a29c @@ -79073,6 +79969,11 @@ member { offset: 26 bitsize: 1 } +member { + id: 0x0eb6d2c5 + name: "enforcing" + type_id: 0x6d7f5ff6 +} member { id: 0x4262cdb7 name: "enhanced_area_offset" @@ -79167,6 +80068,12 @@ member { type_id: 0x6720d32f offset: 67488 } +member { + id: 0x05e44400 + name: "enter" + type_id: 0x26554526 + offset: 256 +} member { id: 0x05ecb6a4 name: "enter" @@ -79248,6 +80155,11 @@ member { type_id: 0x74d29cf1 offset: 4160 } +member { + id: 0xbe09c685 + name: "entries" + type_id: 0x749f40ec +} member { id: 0xbe1a7a32 name: "entries" @@ -79334,6 +80246,11 @@ member { type_id: 0xc227cae4 offset: 64 } +member { + id: 0xbedcc7b7 + name: "entries" + type_id: 0xa19e72f5 +} member { id: 0x874cc7f4 name: "entries_bytes" @@ -79386,17 +80303,17 @@ member { type_id: 0x05b4d9be offset: 192 } +member { + id: 0x4d83d109 + name: "entry" + type_id: 0xd79dd5b3 + offset: 64 +} member { id: 0x4d87803c name: "entry" type_id: 0xd3c80119 } -member { - id: 0x4d8782cf - name: "entry" - type_id: 0xd3c80119 - offset: 1408 -} member { id: 0x4d8784dd name: "entry" @@ -79427,6 +80344,12 @@ member { type_id: 0xd3c80119 offset: 128 } +member { + id: 0x4d878adb + name: "entry" + type_id: 0xd3c80119 + offset: 1536 +} member { id: 0x4dae719d name: "entry" @@ -80240,11 +81163,6 @@ member { type_id: 0xb914bfab offset: 320 } -member { - id: 0x0a27a0a6 - name: "event" - type_id: 0x6840c692 -} member { id: 0x0a28c0b3 name: "event" @@ -80356,6 +81274,11 @@ member { type_id: 0xe62ebf07 offset: 64 } +member { + id: 0x0ab8cdfd + name: "event" + type_id: 0xf72d9d6b +} member { id: 0x0acdf01b name: "event" @@ -80822,10 +81745,10 @@ member { offset: 384 } member { - id: 0x9cd38c7d + id: 0x9cd3894a name: "evicted" type_id: 0xa4e7cb57 - offset: 6464 + offset: 8000 } member { id: 0x89066d93 @@ -80935,6 +81858,13 @@ member { offset: 324 bitsize: 1 } +member { + id: 0x1520e961 + name: "exclusive" + type_id: 0x4585663f + offset: 8576 + bitsize: 1 +} member { id: 0x15889228 name: "exclusive" @@ -81599,6 +82529,23 @@ member { type_id: 0x6d7f5ff6 offset: 504 } +member { + id: 0x713c7886 + name: "expr" + type_id: 0xdf3bd046 + offset: 64 +} +member { + id: 0x71e1baf7 + name: "expr" + type_id: 0x02f9a1f8 + offset: 64 +} +member { + id: 0xa0783f48 + name: "expr_type" + type_id: 0xc9082b19 +} member { id: 0x3ef98632 name: "exptime" @@ -82440,6 +83387,12 @@ member { type_id: 0x33756485 offset: 256 } +member { + id: 0x22c3bf72 + name: "false_list" + type_id: 0xdc39b636 + offset: 320 +} member { id: 0x9e3288ce name: "family" @@ -82667,6 +83620,12 @@ member { type_id: 0x33756485 offset: 5696 } +member { + id: 0x1e5ce302 + name: "fault_data" + type_id: 0x18bd6530 + offset: 512 +} member { id: 0xe9aff641 name: "fault_get" @@ -84566,6 +85525,18 @@ member { type_id: 0x3e10b518 offset: 768 } +member { + id: 0xe3a3c2c5 + name: "filename_trans" + type_id: 0x26a23d9b + offset: 2880 +} +member { + id: 0x0048fc1f + name: "filename_trans_ttypes" + type_id: 0x86a931f9 + offset: 2752 +} member { id: 0x3ff8b433 name: "filenames_encryption_mode" @@ -85096,6 +86067,12 @@ member { type_id: 0x6bf170af offset: 128 } +member { + id: 0x7a288181 + name: "finish" + type_id: 0x0eb62dc3 + offset: 384 +} member { id: 0x7a290a57 name: "finish" @@ -86000,12 +86977,6 @@ member { type_id: 0x3e09ba9c offset: 32 } -member { - id: 0x2d5bf025 - name: "flags" - type_id: 0x33756485 - offset: 51520 -} member { id: 0x2d5bf072 name: "flags" @@ -86053,6 +87024,12 @@ member { type_id: 0x33756485 offset: 3904 } +member { + id: 0x2d5bf4c7 + name: "flags" + type_id: 0x33756485 + offset: 66368 +} member { id: 0x2d5bf586 name: "flags" @@ -87357,10 +88334,10 @@ member { offset: 320 } member { - id: 0xba50d692 + id: 0xba50d077 name: "flush_iotlb_all" type_id: 0x0c5f67dd - offset: 384 + offset: 448 } member { id: 0x06641e28 @@ -87657,9 +88634,9 @@ member { type_id: 0x2170d06d } member { - id: 0x53ee1fea + id: 0x53e7f764 name: "folios" - type_id: 0x95043c75 + type_id: 0x9cecb217 offset: 448 } member { @@ -87855,10 +88832,10 @@ member { offset: 256 } member { - id: 0x056fd9e7 + id: 0x056fdf60 name: "force_scan" type_id: 0x6d7f5ff6 - offset: 1192 + offset: 1448 } member { id: 0x6ed63d49 @@ -88715,10 +89692,10 @@ member { type_id: 0x0c43d124 } member { - id: 0xfeae540e + id: 0xfeae5d12 name: "free" type_id: 0x0c5f67dd - offset: 832 + offset: 896 } member { id: 0xfeae6ede @@ -89506,6 +90483,12 @@ member { type_id: 0x6d7f5ff6 offset: 1832 } +member { + id: 0xb8c67f5c + name: "frozen" + type_id: 0x6d7f5ff6 + offset: 384 +} member { id: 0xb8cc2142 name: "frozen" @@ -89607,6 +90590,11 @@ member { type_id: 0x25e44921 offset: 1088 } +member { + id: 0x51d40905 + name: "fstype" + type_id: 0x0483e6f8 +} member { id: 0xae1bb7ee name: "fsuid" @@ -89909,6 +90897,11 @@ member { type_id: 0x12546c43 offset: 128 } +member { + id: 0x21202e0b + name: "func" + type_id: 0x2fffbd5a +} member { id: 0x212058ea name: "func" @@ -90769,10 +91762,10 @@ member { offset: 21184 } member { - id: 0xa9f411fa + id: 0xa9f41a7b name: "gen" type_id: 0x295c7202 - offset: 7496 + offset: 9032 } member { id: 0xa36a9456 @@ -90887,6 +91880,12 @@ member { type_id: 0x6d7f5ff6 offset: 2976 } +member { + id: 0x4a8a7a23 + name: "genfs" + type_id: 0x2ecc6701 + offset: 4096 +} member { id: 0xe46642f7 name: "genid" @@ -90954,10 +91953,10 @@ member { offset: 1984 } member { - id: 0x3a570591 + id: 0x3a570a9f name: "geometry" type_id: 0x3c416994 - offset: 320 + offset: 192 } member { id: 0x314650d1 @@ -94194,10 +95193,9 @@ member { type_id: 0xd92b1d75 } member { - id: 0xf9ca6694 + id: 0xf9ca6e5d name: "handler" type_id: 0x907538bd - offset: 192 } member { id: 0xf9ead752 @@ -94254,10 +95252,10 @@ member { offset: 64 } member { - id: 0xc4ad132d + id: 0xc4ad1767 name: "handler_token" type_id: 0x18bd6530 - offset: 256 + offset: 64 } member { id: 0xef0accef @@ -94691,6 +95689,12 @@ member { name: "hash" type_id: 0xd3c80119 } +member { + id: 0x63f7869f + name: "hash" + type_id: 0xc9082b19 + offset: 32 +} member { id: 0x63f78ba4 name: "hash" @@ -95651,6 +96655,12 @@ member { type_id: 0x295c7202 offset: 32 } +member { + id: 0xb57b63c2 + name: "head" + type_id: 0x21de2259 + offset: 64 +} member { id: 0xb5897100 name: "head" @@ -96271,6 +97281,18 @@ member { type_id: 0x295c7202 offset: 8 } +member { + id: 0x2467cbde + name: "high_pkey" + type_id: 0x914dbfdc + offset: 80 +} +member { + id: 0x22f0b41b + name: "high_port" + type_id: 0x914dbfdc + offset: 32 +} member { id: 0x214261e5 name: "high_power" @@ -96308,6 +97330,12 @@ member { type_id: 0x1f3c8679 offset: 8192 } +member { + id: 0x24b8b0fd + name: "highbit" + type_id: 0xc9082b19 + offset: 64 +} member { id: 0x90fb51f7 name: "highest_bit" @@ -97549,6 +98577,16 @@ member { type_id: 0x6d7f5ff6 offset: 16 } +member { + id: 0xf2863c10 + name: "htable" + type_id: 0x08c085d5 +} +member { + id: 0xf28957eb + name: "htable" + type_id: 0x07ab7e35 +} member { id: 0x4e6b5ac0 name: "htc_trig_based_pkt_ext" @@ -98827,6 +99865,11 @@ member { type_id: 0x05dc2a7b offset: 960 } +member { + id: 0xe352e743 + name: "ibendport" + type_id: 0x39ffc4a3 +} member { id: 0x92f5dc36 name: "ibi" @@ -98839,6 +99882,11 @@ member { type_id: 0xa7c362b0 offset: 448 } +member { + id: 0x6bb5d251 + name: "ibpkey" + type_id: 0x0e09b329 +} member { id: 0x94e48b1a name: "ibss" @@ -99194,12 +100242,6 @@ member { type_id: 0x6720d32f offset: 6080 } -member { - id: 0xcc48029e - name: "id" - type_id: 0x6720d32f - offset: 1152 -} member { id: 0xcc480580 name: "id" @@ -99248,6 +100290,12 @@ member { type_id: 0x6720d32f offset: 640 } +member { + id: 0xcc480a3f + name: "id" + type_id: 0x6720d32f + offset: 1280 +} member { id: 0xcc480a8f name: "id" @@ -99414,6 +100462,12 @@ member { name: "id" type_id: 0x43acdd98 } +member { + id: 0xcc6c8d77 + name: "id" + type_id: 0x43acdd98 + offset: 32 +} member { id: 0xcc6d01b7 name: "id" @@ -99442,6 +100496,12 @@ member { name: "id" type_id: 0x5b5397f8 } +member { + id: 0xcc75f0e2 + name: "id" + type_id: 0x5adf57ae + offset: 224 +} member { id: 0xcc8634a1 name: "id" @@ -100625,6 +101685,12 @@ member { type_id: 0x5d8155a5 offset: 320 } +member { + id: 0x817b9489 + name: "iface" + type_id: 0x6720d32f + offset: 1120 +} member { id: 0x81e47045 name: "iface" @@ -101070,6 +102136,12 @@ member { name: "image" type_id: 0x18bd6530 } +member { + id: 0x7717c666 + name: "image" + type_id: 0x1df06cce + offset: 576 +} member { id: 0x77e682c9 name: "image" @@ -102912,10 +103984,10 @@ member { offset: 352 } member { - id: 0xd568c61a + id: 0xd568c3b9 name: "initialized" type_id: 0x6720d32f - offset: 1408 + offset: 1472 } member { id: 0xd0dc328d @@ -104671,6 +105743,12 @@ member { type_id: 0x2f595b5a offset: 768 } +member { + id: 0x4d4b9f7f + name: "ioctl" + type_id: 0x2fc06ea0 + offset: 384 +} member { id: 0x4d4bbccf name: "ioctl" @@ -104689,6 +105767,12 @@ member { type_id: 0x74d29cf1 offset: 6528 } +member { + id: 0x7f374859 + name: "ioctl_compat" + type_id: 0x2fc06ea0 + offset: 448 +} member { id: 0x71d5bbe1 name: "ioctl_ops" @@ -104797,16 +105881,16 @@ member { offset: 320 } member { - id: 0x32791e8c + id: 0x32791b09 name: "iommu_data" type_id: 0x18bd6530 - offset: 960 + offset: 1088 } member { - id: 0x9849301c + id: 0x984939df name: "iommu_data_release" type_id: 0x0f3dfb90 - offset: 1024 + offset: 1152 } member { id: 0xb2de3315 @@ -104838,6 +105922,12 @@ member { type_id: 0x3eed77c0 offset: 1280 } +member { + id: 0x90810ddc + name: "iopf_handler" + type_id: 0x0ca205d3 + offset: 448 +} member { id: 0x3ff87014 name: "iopf_param" @@ -104947,16 +106037,16 @@ member { offset: 768 } member { - id: 0x9f65e18d + id: 0x9f65e3e7 name: "iotlb_sync" type_id: 0x0c55d62d - offset: 512 + offset: 576 } member { - id: 0xc1a6eb7e + id: 0xc1a6e711 name: "iotlb_sync_map" type_id: 0x0c6351ef - offset: 448 + offset: 512 } member { id: 0x61cf61d8 @@ -105015,10 +106105,10 @@ member { type_id: 0xedf277ba } member { - id: 0x78c9acb1 + id: 0x78c9a63b name: "iova_cookie" type_id: 0x1826c2b2 - offset: 512 + offset: 384 } member { id: 0xaac1924b @@ -105031,10 +106121,10 @@ member { type_id: 0xf313e71a } member { - id: 0x80f51b65 + id: 0x80f5146e name: "iova_to_phys" type_id: 0x08f34b70 - offset: 576 + offset: 640 } member { id: 0x80f69829 @@ -107148,6 +108238,12 @@ member { type_id: 0x6d7f5ff6 offset: 168 } +member { + id: 0xfa661c0d + name: "isids" + type_id: 0x2f6759fd + offset: 704 +} member { id: 0x8238342c name: "iso15693_dsfid" @@ -107370,10 +108466,10 @@ member { type_id: 0x0a33316a } member { - id: 0x2ba08730 + id: 0x2ba0874e name: "iter" type_id: 0xc24d58cd - offset: 16192 + offset: 18048 } member { id: 0x07a7ec69 @@ -107887,28 +108983,28 @@ member { offset: 232 } member { - id: 0x4d9c8dbd + id: 0x4d9c8008 name: "kcompactd" type_id: 0x1d19a9d5 - offset: 41216 + offset: 54144 } member { - id: 0x448359b4 + id: 0x44835dbf name: "kcompactd_highest_zoneidx" type_id: 0x0b0164a7 - offset: 40960 + offset: 53888 } member { - id: 0xc6101b04 + id: 0xc6101c24 name: "kcompactd_max_order" type_id: 0x6720d32f - offset: 40928 + offset: 53856 } member { - id: 0xda079379 + id: 0xda0793ce name: "kcompactd_wait" type_id: 0x03913382 - offset: 41024 + offset: 53952 } member { id: 0xdbfaccd7 @@ -108078,6 +109174,11 @@ member { type_id: 0x4585663f offset: 480 } +member { + id: 0x201b5dee + name: "key" + type_id: 0x4d57407e +} member { id: 0x201e2b22 name: "key" @@ -108109,6 +109210,11 @@ member { name: "key" type_id: 0x112f0014 } +member { + id: 0x204eb7cb + name: "key" + type_id: 0x18bd6530 +} member { id: 0x204ebe09 name: "key" @@ -109101,40 +110207,40 @@ member { offset: 832 } member { - id: 0xfe0f3c95 + id: 0xfe0f3c45 name: "kswapd" type_id: 0x1d19a9d5 - offset: 40768 + offset: 53696 } member { - id: 0x678d6a4e + id: 0x678d6b11 name: "kswapd_failures" type_id: 0x6720d32f - offset: 40896 + offset: 53824 } member { - id: 0x053ab8bf + id: 0x053ab64c name: "kswapd_highest_zoneidx" type_id: 0x0b0164a7 - offset: 40864 + offset: 53792 } member { - id: 0xff6f5c14 + id: 0xff6f5b56 name: "kswapd_lock" type_id: 0xa7c362b0 - offset: 40512 + offset: 53440 } member { - id: 0x34381214 + id: 0x343819a4 name: "kswapd_order" type_id: 0x6720d32f - offset: 40832 + offset: 53760 } member { - id: 0x912812a4 + id: 0x91281e96 name: "kswapd_wait" type_id: 0x03913382 - offset: 39232 + offset: 52160 } member { id: 0x1851434c @@ -110434,6 +111540,18 @@ member { type_id: 0x160238dd offset: 2432 } +member { + id: 0xac824246 + name: "latest_granting" + type_id: 0xc9082b19 + offset: 4992 +} +member { + id: 0x41995401 + name: "latest_notif" + type_id: 0xc9082b19 + offset: 49216 +} member { id: 0x8747c030 name: "launder_folio" @@ -111383,6 +112501,12 @@ member { type_id: 0xc9082b19 offset: 672 } +member { + id: 0xb8ccdaba + name: "len" + type_id: 0xc9082b19 + offset: 320 +} member { id: 0xb8e3f22b name: "len" @@ -111460,6 +112584,12 @@ member { type_id: 0xf435685e offset: 128 } +member { + id: 0xb8f1ea33 + name: "len" + type_id: 0xf435685e + offset: 4608 +} member { id: 0xecd18446 name: "len8_dlc" @@ -111584,6 +112714,12 @@ member { type_id: 0xe62ebf07 offset: 576 } +member { + id: 0xb5995149 + name: "length" + type_id: 0xf435685e + offset: 640 +} member { id: 0xb59953d1 name: "length" @@ -111766,6 +112902,11 @@ member { type_id: 0x6720d32f offset: 1664 } +member { + id: 0x86ebc61e + name: "level" + type_id: 0x51090cbc +} member { id: 0x86ff416c name: "level" @@ -112925,10 +114066,10 @@ member { offset: 256 } member { - id: 0x7c080060 + id: 0x7c080a44 name: "list" type_id: 0xdb2fb9a5 - offset: 7552 + offset: 9088 } member { id: 0x7c358f2e @@ -112985,6 +114126,18 @@ member { name: "list" type_id: 0x49a73111 } +member { + id: 0x7c9a825f + name: "list" + type_id: 0x49a73111 + offset: 704 +} +member { + id: 0x7c9a87a5 + name: "list" + type_id: 0x49a73111 + offset: 320 +} member { id: 0x7c9eb1a5 name: "list" @@ -113233,6 +114386,11 @@ member { type_id: 0x01c91228 offset: 64 } +member { + id: 0x839f19f1 + name: "llseek" + type_id: 0x18d82e82 +} member { id: 0xb57cc749 name: "lm_break" @@ -113899,6 +115057,12 @@ member { type_id: 0xf313e71a offset: 7072 } +member { + id: 0x2d1feee5 + name: "lock" + type_id: 0xf313e71a + offset: 416 +} member { id: 0x2d1fef3f name: "lock" @@ -115006,6 +116170,18 @@ member { type_id: 0x4585663f offset: 736 } +member { + id: 0xbc5b3492 + name: "low_pkey" + type_id: 0x914dbfdc + offset: 64 +} +member { + id: 0x3af6d631 + name: "low_port" + type_id: 0x914dbfdc + offset: 16 +} member { id: 0x468f2f3e name: "low_prio_bh" @@ -115132,9 +116308,9 @@ member { offset: 45416 } member { - id: 0x8bd8e3c1 + id: 0x8b466b27 name: "lowmem_reserve" - type_id: 0x2dc6725b + type_id: 0xb34e9475 offset: 384 } member { @@ -115296,12 +116472,24 @@ member { type_id: 0x074e13f5 offset: 7040 } +member { + id: 0xff719763 + name: "lru_hint" + type_id: 0x74d29cf1 + offset: 49152 +} member { id: 0x50d1f939 name: "lru_lock" type_id: 0xf313e71a offset: 640 } +member { + id: 0x7974d3dd + name: "lru_member" + type_id: 0xd3c80119 + offset: 128 +} member { id: 0x37a01e9c name: "lru_node" @@ -115309,10 +116497,10 @@ member { offset: 2496 } member { - id: 0xafeb8287 + id: 0xaf7502e7 name: "lru_zone_size" - type_id: 0x2b8da8d0 - offset: 15232 + type_id: 0xb5054efe + offset: 16768 } member { id: 0x9af97a5e @@ -115331,16 +116519,16 @@ member { type_id: 0xce2040d6 } member { - id: 0xd9ceffd4 + id: 0xd9cefb11 name: "lruvec_stats" type_id: 0xc634f4ac - offset: 9856 + offset: 11392 } member { - id: 0xa2a9e92c + id: 0xa2a9ea87 name: "lruvec_stats_percpu" type_id: 0x2ced2dfa - offset: 9792 + offset: 11328 } member { id: 0xb1654cb6 @@ -116061,10 +117249,10 @@ member { offset: 4352 } member { - id: 0xe083d44e + id: 0xe083d61b name: "managed_pages" type_id: 0xb02b353a - offset: 896 + offset: 960 } member { id: 0x4a203a8a @@ -116190,6 +117378,12 @@ member { type_id: 0xb9c7723b offset: 1216 } +member { + id: 0x8dbdb056 + name: "map" + type_id: 0x4bc42bec + offset: 4864 +} member { id: 0x8dc50032 name: "map" @@ -116213,10 +117407,10 @@ member { type_id: 0x39dda017 } member { - id: 0x8dd95964 + id: 0x8dd9586f name: "map" type_id: 0x2f2111b8 - offset: 128 + offset: 192 } member { id: 0x8dda0968 @@ -116612,10 +117806,10 @@ member { offset: 64 } member { - id: 0xa60fa22c + id: 0xa60faa4e name: "map_pages" type_id: 0x2f211810 - offset: 192 + offset: 256 } member { id: 0xa61995ce @@ -116812,6 +118006,11 @@ member { type_id: 0xe09ad666 offset: 8192 } +member { + id: 0x5dcf7d96 + name: "mapping" + type_id: 0x25e982e5 +} member { id: 0x5dedc95b name: "mapping" @@ -116854,6 +118053,12 @@ member { type_id: 0xd3c80119 offset: 7296 } +member { + id: 0xb0b6f056 + name: "maps" + type_id: 0xad7c0a89 + offset: 64 +} member { id: 0xbba253c6 name: "mapsize" @@ -117170,6 +118375,12 @@ member { type_id: 0xb94e10c7 offset: 704 } +member { + id: 0xa88d6ff6 + name: "mask" + type_id: 0xbe0f19dc + offset: 128 +} member { id: 0xa8a142d7 name: "mask" @@ -117239,6 +118450,12 @@ member { type_id: 0xc9082b19 offset: 320 } +member { + id: 0xa8fa68c4 + name: "mask" + type_id: 0xc9082b19 + offset: 128 +} member { id: 0xa8fa6c3d name: "mask" @@ -118778,6 +119995,18 @@ member { type_id: 0xb3e7bac9 offset: 4840 } +member { + id: 0xe612b3bd + name: "max_pasids" + type_id: 0xc9082b19 + offset: 576 +} +member { + id: 0xe612bd08 + name: "max_pasids" + type_id: 0xc9082b19 + offset: 320 +} member { id: 0xc86da341 name: "max_payld_sz" @@ -120998,18 +122227,18 @@ member { name: "membership" type_id: 0xee699492 } -member { - id: 0xc76cf048 - name: "memcg" - type_id: 0x1d5bae2a - offset: 16704 -} member { id: 0xc76cf7e3 name: "memcg" type_id: 0x1d5bae2a offset: 1216 } +member { + id: 0xc76cfbaa + name: "memcg" + type_id: 0x1d5bae2a + offset: 18560 +} member { id: 0xc76cfce5 name: "memcg" @@ -121059,10 +122288,10 @@ member { offset: 21312 } member { - id: 0x5b9e497b + id: 0x5b9e4c27 name: "memcg_lru" type_id: 0xe524f4fb - offset: 52800 + offset: 67904 } member { id: 0x14a5c902 @@ -122809,6 +124038,11 @@ member { type_id: 0x4585663f offset: 64 } +member { + id: 0x3219aca6 + name: "mls_enabled" + type_id: 0x6720d32f +} member { id: 0x3017b841 name: "mm" @@ -122904,16 +124138,16 @@ member { offset: 128 } member { - id: 0x0abfe2c6 + id: 0x0abfe44a name: "mm_state" type_id: 0xeb51a15e - offset: 8768 + offset: 10304 } member { - id: 0xa668ba25 + id: 0xa668b012 name: "mm_stats" type_id: 0xb8696763 - offset: 960 + offset: 1216 } member { id: 0x22548d82 @@ -122928,16 +124162,22 @@ member { offset: 64 } member { - id: 0xa8928c03 + id: 0xa89285f1 name: "mm_walk" type_id: 0x8588b58b - offset: 51584 + offset: 66432 } member { id: 0x87d4d5fe name: "mmap" type_id: 0x07ba491c } +member { + id: 0x87fca00b + name: "mmap" + type_id: 0x2fc4a4b7 + offset: 512 +} member { id: 0x87fd15d3 name: "mmap" @@ -126634,6 +127874,12 @@ member { type_id: 0x0121d57c offset: 64 } +member { + id: 0x0dda82b2 + name: "name" + type_id: 0x01ef5f77 + offset: 480 +} member { id: 0x0dda8bac name: "name" @@ -126646,12 +127892,6 @@ member { type_id: 0x01ef5f77 offset: 800 } -member { - id: 0x0ddfe2cd - name: "name" - type_id: 0x0483e6f8 - offset: 1088 -} member { id: 0x0ddfe679 name: "name" @@ -126694,6 +127934,12 @@ member { type_id: 0x0483e6f8 offset: 2432 } +member { + id: 0x0ddfed7f + name: "name" + type_id: 0x0483e6f8 + offset: 1216 +} member { id: 0x0ddfef10 name: "name" @@ -126783,6 +128029,12 @@ member { type_id: 0x3e10b518 offset: 640 } +member { + id: 0x0de57a95 + name: "name" + type_id: 0x3e10b518 + offset: 1280 +} member { id: 0x0de57b2f name: "name" @@ -126893,6 +128145,12 @@ member { type_id: 0x20fd6195 offset: 58176 } +member { + id: 0x0dffaa34 + name: "name" + type_id: 0x24cb52fe + offset: 32 +} member { id: 0xba9d0a41 name: "name_assign_type" @@ -126975,6 +128233,12 @@ member { type_id: 0x295c7202 offset: 1368 } +member { + id: 0x5542647f + name: "names" + type_id: 0x86a931f9 + offset: 128 +} member { id: 0x55fab336 name: "names" @@ -128194,6 +129458,12 @@ member { type_id: 0x4585663f offset: 7136 } +member { + id: 0xcf8ca44d + name: "negset" + type_id: 0x86a931f9 + offset: 128 +} member { id: 0x8bb2a09a name: "neigh_lookup" @@ -128218,6 +129488,18 @@ member { type_id: 0x6720d32f offset: 64 } +member { + id: 0x7cc2460f + name: "nel" + type_id: 0xc9082b19 + offset: 64 +} +member { + id: 0x7cc24b6d + name: "nel" + type_id: 0xc9082b19 + offset: 96 +} member { id: 0xc531a02f name: "nelem_hint" @@ -128627,6 +129909,12 @@ member { type_id: 0x21b2d2f4 offset: 256 } +member { + id: 0xa3831cac + name: "new_role" + type_id: 0xc9082b19 + offset: 32 +} member { id: 0x4fa1cefa name: "new_source_frs_current" @@ -128767,6 +130055,12 @@ member { type_id: 0x342a8622 offset: 192 } +member { + id: 0x11c7e403 + name: "next" + type_id: 0x34ed1e4a + offset: 128 +} member { id: 0x11c85643 name: "next" @@ -128818,6 +130112,11 @@ member { name: "next" type_id: 0x23947191 } +member { + id: 0x11d0d9dd + name: "next" + type_id: 0x23d902f6 +} member { id: 0x11d0f564 name: "next" @@ -128829,6 +130128,12 @@ member { type_id: 0x22669bc4 offset: 64 } +member { + id: 0x11d2d41a + name: "next" + type_id: 0x21de2259 + offset: 1536 +} member { id: 0x11d5cf20 name: "next" @@ -128855,6 +130160,12 @@ member { type_id: 0x2e8ad82b offset: 704 } +member { + id: 0x11ddc57a + name: "next" + type_id: 0x2ecc6701 + offset: 128 +} member { id: 0x11dde27a name: "next" @@ -128871,6 +130182,12 @@ member { type_id: 0x16749208 offset: 112 } +member { + id: 0x11e58953 + name: "next" + type_id: 0x168d6de3 + offset: 64 +} member { id: 0x11e65bc2 name: "next" @@ -128882,6 +130199,12 @@ member { type_id: 0x14b9453b offset: 1792 } +member { + id: 0x11e8a28b + name: "next" + type_id: 0x1bab96d2 + offset: 128 +} member { id: 0x11e8b29a name: "next" @@ -128945,6 +130268,12 @@ member { name: "next" type_id: 0x02c35f57 } +member { + id: 0x11f1feb9 + name: "next" + type_id: 0x02f9a1f8 + offset: 320 +} member { id: 0x11f20dd8 name: "next" @@ -129015,6 +130344,12 @@ member { name: "next" type_id: 0x09451098 } +member { + id: 0x11fa4bec + name: "next" + type_id: 0x0942f1ca + offset: 128 +} member { id: 0x11fb2249 name: "next" @@ -130334,6 +131669,11 @@ member { name: "node" type_id: 0x214d9bc0 } +member { + id: 0x0f56d7ac + name: "node" + type_id: 0x23d902f6 +} member { id: 0x0f5c4493 name: "node" @@ -130345,6 +131685,11 @@ member { name: "node" type_id: 0x1592957f } +member { + id: 0x0f6471e1 + name: "node" + type_id: 0x117f4f93 +} member { id: 0x0f71e4ec name: "node" @@ -130467,24 +131812,29 @@ member { type_id: 0x80bff031 offset: 7296 } +member { + id: 0x3599c2c8 + name: "node6" + type_id: 0x1162939f +} member { id: 0x34366eb8 name: "node_count" type_id: 0x5d8155a5 offset: 64 } -member { - id: 0xf67bc5c4 - name: "node_id" - type_id: 0x6720d32f - offset: 39168 -} member { id: 0xf67bca3c name: "node_id" type_id: 0x6720d32f offset: 3904 } +member { + id: 0xf67bcc6a + name: "node_id" + type_id: 0x6720d32f + offset: 52096 +} member { id: 0xdeaef990 name: "node_idx" @@ -130515,39 +131865,39 @@ member { offset: 192 } member { - id: 0x0cee4941 + id: 0x0cee492b name: "node_present_pages" type_id: 0x33756485 - offset: 39040 + offset: 51968 } member { - id: 0x74f989f8 + id: 0x74f980f4 name: "node_size_lock" type_id: 0xf313e71a - offset: 38944 + offset: 51872 } member { - id: 0x7a542517 + id: 0x7a54208c name: "node_spanned_pages" type_id: 0x33756485 - offset: 39104 + offset: 52032 } member { - id: 0x232160a0 + id: 0x23216bf8 name: "node_start_pfn" type_id: 0x33756485 - offset: 38976 + offset: 51904 } member { - id: 0xc0894f50 + id: 0xc08945c3 name: "node_zonelists" type_id: 0xa1dc2b4a - offset: 38400 + offset: 51200 } member { - id: 0x65334eda + id: 0x65adc63c name: "node_zones" - type_id: 0x1236f51c + type_id: 0x8cbe1332 } member { id: 0xd988c495 @@ -130573,6 +131923,16 @@ member { type_id: 0xfeb89bd6 offset: 520 } +member { + id: 0x62527a67 + name: "nodes" + type_id: 0x23d957b7 +} +member { + id: 0x627963b5 + name: "nodes" + type_id: 0x08c085d5 +} member { id: 0x629a39c3 name: "nodes" @@ -131241,6 +132601,12 @@ member { type_id: 0x4585663f offset: 128 } +member { + id: 0xb4f51360 + name: "nprim" + type_id: 0xc9082b19 + offset: 128 +} member { id: 0x1cabc60b name: "npwm" @@ -131692,10 +133058,10 @@ member { offset: 22912 } member { - id: 0xc63cfa37 + id: 0xc63cf6c9 name: "nr_isolate_pageblock" type_id: 0x33756485 - offset: 1280 + offset: 1344 } member { id: 0x4812d2a9 @@ -131829,16 +133195,16 @@ member { offset: 8192 } member { - id: 0xe3151f4d + id: 0xe31cf7c3 name: "nr_pages" - type_id: 0x97d79f3d + type_id: 0x9e3f115f offset: 192 } member { - id: 0xe3177237 + id: 0xe31e99af name: "nr_pages" - type_id: 0x95bb2407 - offset: 3520 + type_id: 0x9c53aa65 + offset: 4544 } member { id: 0xe376f573 @@ -131990,10 +133356,10 @@ member { offset: 576 } member { - id: 0x14baa11a + id: 0x14baa8ed name: "nr_reclaim_start" type_id: 0x33756485 - offset: 40448 + offset: 53376 } member { id: 0xddd1c1b9 @@ -132397,16 +133763,16 @@ member { type_id: 0x4585663f } member { - id: 0x916f6c35 + id: 0x916f6aa9 name: "nr_writeback_throttled" type_id: 0x74d29cf1 - offset: 40384 + offset: 53312 } member { - id: 0x429466a2 + id: 0x429467d6 name: "nr_zones" type_id: 0x6720d32f - offset: 38912 + offset: 51840 } member { id: 0x42b6c0d0 @@ -132627,6 +133993,12 @@ member { type_id: 0x33756485 offset: 192 } +member { + id: 0x51460e20 + name: "nslot" + type_id: 0xc9082b19 + offset: 96 +} member { id: 0xac7383e4 name: "nsproxy" @@ -133229,6 +134601,12 @@ member { type_id: 0x4585663f offset: 64 } +member { + id: 0xe0dce54c + name: "num_dsps" + type_id: 0x4585663f + offset: 288 +} member { id: 0x20cdc315 name: "num_elems" @@ -133768,6 +135146,12 @@ member { type_id: 0x74d29cf1 offset: 576 } +member { + id: 0xbe3e9d70 + name: "num_perms" + type_id: 0x4585663f + offset: 32 +} member { id: 0x20040d9e name: "num_planes" @@ -134764,6 +136148,12 @@ member { type_id: 0x6d7f5ff6 offset: 192 } +member { + id: 0x67879250 + name: "ocontexts" + type_id: 0xa3440799 + offset: 3520 +} member { id: 0xec90d9ed name: "ocr" @@ -135771,10 +137161,10 @@ member { offset: 10112 } member { - id: 0xe0a290ab + id: 0xe0a294e6 name: "on_tree" type_id: 0x6d7f5ff6 - offset: 16640 + offset: 18496 } member { id: 0xcd1e25eb @@ -135989,6 +137379,12 @@ member { offset: 320 bitsize: 8 } +member { + id: 0xf03ba7f6 + name: "op" + type_id: 0xc9082b19 + offset: 64 +} member { id: 0xf0697d2a name: "op" @@ -136220,6 +137616,12 @@ member { type_id: 0x2fc4c761 offset: 256 } +member { + id: 0xad9b4d09 + name: "open" + type_id: 0x2fc40583 + offset: 192 +} member { id: 0xad9b8e0f name: "open" @@ -136320,6 +137722,12 @@ member { type_id: 0xa7c362b0 offset: 2880 } +member { + id: 0x485159b3 + name: "open_mutex" + type_id: 0xa7c362b0 + offset: 8256 +} member { id: 0x48515a2b name: "open_mutex" @@ -136338,6 +137746,12 @@ member { type_id: 0x03913382 offset: 1472 } +member { + id: 0x60e6fc7c + name: "open_wait" + type_id: 0x03913382 + offset: 1856 +} member { id: 0x60e6ff81 name: "open_wait" @@ -136482,6 +137896,12 @@ member { name: "ops" type_id: 0xbf311330 } +member { + id: 0xaf67dd7d + name: "ops" + type_id: 0xecd302d8 + offset: 1152 +} member { id: 0xaf890e76 name: "ops" @@ -138178,12 +139598,6 @@ member { type_id: 0x18bd6530 offset: 960 } -member { - id: 0x4a85c151 - name: "owner" - type_id: 0x18bd6530 - offset: 1600 -} member { id: 0x4a85c59f name: "owner" @@ -138202,6 +139616,12 @@ member { type_id: 0x18bd6530 offset: 320 } +member { + id: 0x4a85cfcc + name: "owner" + type_id: 0x18bd6530 + offset: 1728 +} member { id: 0x4a8e4e2f name: "owner" @@ -138404,10 +139824,10 @@ member { offset: 608 } member { - id: 0x9241a235 + id: 0x9241abfe name: "owner_cnt" type_id: 0x4585663f - offset: 1536 + offset: 1664 } member { id: 0xfbf14767 @@ -138451,6 +139871,11 @@ member { type_id: 0xc6cbbd05 offset: 640 } +member { + id: 0xa6673206 + name: "p" + type_id: 0xd67c82d4 +} member { id: 0xa67023cc name: "p" @@ -139342,10 +140767,10 @@ member { offset: 128 } member { - id: 0x640df8b0 + id: 0x640df02b name: "page_response" type_id: 0x2df82d01 - offset: 896 + offset: 704 } member { id: 0x1758323c @@ -139586,16 +141011,16 @@ member { offset: 3008 } member { - id: 0xf0985884 + id: 0xf098512e name: "pageset_batch" type_id: 0x6720d32f - offset: 800 + offset: 864 } member { - id: 0x0604b681 + id: 0x0604bd95 name: "pageset_high" type_id: 0x6720d32f - offset: 768 + offset: 832 } member { id: 0xc3f2c304 @@ -139917,6 +141342,12 @@ member { type_id: 0x3cfe7778 offset: 192 } +member { + id: 0x720e051d + name: "parent" + type_id: 0x3f774ccb + offset: 256 +} member { id: 0x720e5144 name: "parent" @@ -140605,6 +142036,12 @@ member { type_id: 0xe62ebf07 offset: 64 } +member { + id: 0x0ff1fb1c + name: "pasid_array" + type_id: 0x80c20070 + offset: 704 +} member { id: 0x5597c8b2 name: "pasid_enabled" @@ -140929,6 +142366,11 @@ member { type_id: 0x6720d32f offset: 224 } +member { + id: 0xe2f15a6e + name: "payload_len" + type_id: 0x4585663f +} member { id: 0x9fa30dde name: "payload_length" @@ -142011,22 +143453,22 @@ member { offset: 2112 } member { - id: 0xd8353b34 + id: 0xd8353a89 name: "per_cpu_nodestats" type_id: 0x10a757c8 - offset: 54272 + offset: 69632 } member { - id: 0x35e57a15 + id: 0x35e57e51 name: "per_cpu_pageset" type_id: 0x1321a5b2 - offset: 640 + offset: 704 } member { - id: 0xf05013fc + id: 0xf050196f name: "per_cpu_zonestats" type_id: 0x2f5f8053 - offset: 704 + offset: 768 } member { id: 0xd61b14f9 @@ -142424,23 +143866,58 @@ member { type_id: 0x2d174c02 offset: 128 } +member { + id: 0xf0063172 + name: "permissions" + type_id: 0xc9082b19 +} +member { + id: 0xf05f0781 + name: "permissions" + type_id: 0x9036114e + offset: 192 +} +member { + id: 0xf05f0ba9 + name: "permissions" + type_id: 0x9036114e + offset: 64 +} member { id: 0xf0e1b1fd name: "permissions" type_id: 0x2e820213 offset: 896 } +member { + id: 0x616c799d + name: "permissive_map" + type_id: 0x86a931f9 + offset: 4480 +} member { id: 0xd079425e name: "permitted" type_id: 0xd9449876 } +member { + id: 0xdb129b64 + name: "perms" + type_id: 0x668e8237 + offset: 64 +} member { id: 0xdb5d43cb name: "perms" type_id: 0x295c7202 offset: 16 } +member { + id: 0xdbb0c417 + name: "perms" + type_id: 0xc4d82b11 + offset: 32 +} member { id: 0xc18525b9 name: "pernet" @@ -142539,10 +144016,10 @@ member { offset: 128 } member { - id: 0x1870e86e + id: 0x1870ebaa name: "pfmemalloc_wait" type_id: 0x03913382 - offset: 39424 + offset: 52352 } member { id: 0xeb463452 @@ -142627,10 +144104,10 @@ member { offset: 64 } member { - id: 0x2d2728a8 + id: 0x2d272330 name: "pgdat" type_id: 0x03038214 - offset: 9728 + offset: 11264 } member { id: 0xdd74def2 @@ -142691,10 +144168,10 @@ member { offset: 64 } member { - id: 0xa5569933 + id: 0xa5569cb6 name: "pgsize_bitmap" type_id: 0x33756485 - offset: 1088 + offset: 960 } member { id: 0xa5569d87 @@ -144835,6 +146312,12 @@ member { type_id: 0x33756485 offset: 512 } +member { + id: 0x60ddb117 + name: "policy" + type_id: 0x34ab5728 + offset: 512 +} member { id: 0x60e88f7d name: "policy" @@ -144906,6 +146389,36 @@ member { type_id: 0xd3c80119 offset: 2944 } +member { + id: 0x478ff8c9 + name: "policy_mutex" + type_id: 0xa7c362b0 + offset: 576 +} +member { + id: 0x0d6726b0 + name: "policycap" + type_id: 0xff615fef + offset: 24 +} +member { + id: 0x37828654 + name: "policycaps" + type_id: 0x86a931f9 + offset: 4352 +} +member { + id: 0xbb7445e4 + name: "policydb" + type_id: 0x9146342b + offset: 64 +} +member { + id: 0x23820e22 + name: "policyvers" + type_id: 0x4585663f + offset: 4672 +} member { id: 0x5e0d04df name: "poll" @@ -144936,6 +146449,12 @@ member { type_id: 0x01b63d17 offset: 320 } +member { + id: 0x5e152199 + name: "poll" + type_id: 0x006b8dfd + offset: 320 +} member { id: 0x5e15e341 name: "poll" @@ -145524,6 +147043,17 @@ member { type_id: 0x347303b4 offset: 64 } +member { + id: 0x48d2413e + name: "port" + type_id: 0x295c7202 + offset: 64 +} +member { + id: 0x48d446d8 + name: "port" + type_id: 0x2f5f7542 +} member { id: 0x48e10112 name: "port" @@ -147101,6 +148631,12 @@ member { name: "prepare" type_id: 0x2cf616a6 } +member { + id: 0x3d5750d1 + name: "prepare" + type_id: 0x2df0016c + offset: 128 +} member { id: 0x3d577c9c name: "prepare" @@ -147158,6 +148694,12 @@ member { type_id: 0x2ea6d809 offset: 832 } +member { + id: 0x25513c26 + name: "prepare_late" + type_id: 0x2df0016c + offset: 192 +} member { id: 0x751e0b52 name: "prepare_message" @@ -147261,16 +148803,16 @@ member { offset: 2576 } member { - id: 0x67e4f1be + id: 0x67e4f214 name: "present_early_pages" type_id: 0x33756485 - offset: 1088 + offset: 1152 } member { - id: 0xa43d0ee0 + id: 0xa43d0489 name: "present_pages" type_id: 0x33756485 - offset: 1024 + offset: 1088 } member { id: 0x22e059b7 @@ -147553,6 +149095,12 @@ member { name: "pri_to_cpu" type_id: 0x0772f61b } +member { + id: 0xacb061a5 + name: "primary" + type_id: 0x5d8155a5 + offset: 64 +} member { id: 0xacb061de name: "primary" @@ -148370,6 +149918,12 @@ member { type_id: 0x18bd6530 offset: 6208 } +member { + id: 0xf21ad0be + name: "private_data" + type_id: 0x18bd6530 + offset: 2048 +} member { id: 0xf21ad0fb name: "private_data" @@ -148484,6 +150038,12 @@ member { type_id: 0x0c0edcf8 offset: 1088 } +member { + id: 0x567ed7ab + name: "private_free" + type_id: 0x0c9ac346 + offset: 2112 +} member { id: 0x567f0e57 name: "private_free" @@ -148579,10 +150139,10 @@ member { type_id: 0x043ce534 } member { - id: 0xb8416c44 + id: 0xb8416178 name: "proactive_compact_trigger" type_id: 0x6d7f5ff6 - offset: 41280 + offset: 54208 } member { id: 0xb124af35 @@ -149137,6 +150697,12 @@ member { type_id: 0x184052fc offset: 320 } +member { + id: 0x055eb011 + name: "process_class" + type_id: 0x914dbfdc + offset: 4720 +} member { id: 0x44535944 name: "process_keyring" @@ -149167,6 +150733,12 @@ member { type_id: 0x6d7f5ff6 offset: 704 } +member { + id: 0x9e219cb6 + name: "process_trans_perms" + type_id: 0xc9082b19 + offset: 4736 +} member { id: 0xbe13f636 name: "processed" @@ -149878,10 +151450,10 @@ member { offset: 272 } member { - id: 0x271bc54a + id: 0x271bcf4c name: "protected" type_id: 0xaf023c73 - offset: 6080 + offset: 7616 } member { id: 0x7efa09f3 @@ -150068,6 +151640,11 @@ member { type_id: 0x295c7202 offset: 224 } +member { + id: 0xdcf61242 + name: "protocol" + type_id: 0x295c7202 +} member { id: 0xdcf61d25 name: "protocol" @@ -150552,6 +152129,16 @@ member { name: "ptr_const" type_id: 0x34e4504f } +member { + id: 0x1db8f0e1 + name: "ptr_inner" + type_id: 0x083bdf25 +} +member { + id: 0xc0d22edd + name: "ptr_leaf" + type_id: 0x01ba2ceb +} member { id: 0xf6e3ddc9 name: "ptr_type" @@ -152310,6 +153897,18 @@ member { name: "range" type_id: 0xb3e7bac9 } +member { + id: 0x0e5c14b2 + name: "range" + type_id: 0xe0987ef0 + offset: 128 +} +member { + id: 0x0e5c15b9 + name: "range" + type_id: 0xe0987ef0 + offset: 192 +} member { id: 0x0e6e7fb8 name: "range" @@ -152419,6 +154018,12 @@ member { type_id: 0x27a7c613 offset: 128 } +member { + id: 0x2f5e77ea + name: "range_tr" + type_id: 0x26a23d9b + offset: 4160 +} member { id: 0xce7c94d9 name: "range_tree" @@ -153667,6 +155272,11 @@ member { type_id: 0x33756485 offset: 320 } +member { + id: 0xe2ce8a90 + name: "rcu_member" + type_id: 0xe3222f5b +} member { id: 0x3040a702 name: "rcu_node_entry" @@ -154088,6 +155698,12 @@ member { type_id: 0x2ecc02be offset: 704 } +member { + id: 0x487c24fc + name: "read" + type_id: 0x217f99ba + offset: 64 +} member { id: 0x487dfa57 name: "read" @@ -154899,10 +156515,10 @@ member { offset: 17920 } member { - id: 0xcae14a8f + id: 0xcae142e2 name: "reclaim_wait" type_id: 0x8ca95ffa - offset: 39616 + offset: 52544 } member { id: 0x2f1a436f @@ -154957,6 +156573,12 @@ member { type_id: 0x0e6ab35b offset: 768 } +member { + id: 0x8a6bb60c + name: "recover" + type_id: 0x0eb62dc3 + offset: 576 +} member { id: 0x26de94f4 name: "recover_bus" @@ -155377,10 +156999,10 @@ member { offset: 672 } member { - id: 0x2ee40ee4 + id: 0x2ee403bd name: "refaulted" type_id: 0xa4e7cb57 - offset: 6976 + offset: 8512 } member { id: 0x8efe1e4f @@ -156663,6 +158285,13 @@ member { type_id: 0x6d7f5ff6 offset: 200 } +member { + id: 0xe91e5dbc + name: "reject_unknown" + type_id: 0x4585663f + offset: 4704 + bitsize: 1 +} member { id: 0x0613b106 name: "rejected" @@ -156947,6 +158576,12 @@ member { type_id: 0x2eca967d offset: 64 } +member { + id: 0xaeb73635 + name: "release" + type_id: 0x2fc40583 + offset: 256 +} member { id: 0xe8e1b50a name: "release_agent_path" @@ -157421,6 +159056,12 @@ member { type_id: 0x0e9068a5 offset: 256 } +member { + id: 0x0104be90 + name: "remove_dev_pasid" + type_id: 0x0e8de3e3 + offset: 832 +} member { id: 0xcf681777 name: "remove_from" @@ -157695,12 +159336,36 @@ member { name: "reply" type_id: 0x0c2e85de } +member { + id: 0x72f80ba2 + name: "reply" + type_id: 0x18bd6530 + offset: 192 +} member { id: 0xced5e1c9 name: "reply_error" type_id: 0x32ad011b offset: 1024 } +member { + id: 0xa8576a87 + name: "reply_len" + type_id: 0x4585663f + offset: 288 +} +member { + id: 0x8aca07a6 + name: "reply_payload" + type_id: 0x28d698a4 + offset: 448 +} +member { + id: 0xc08d4bff + name: "reply_payload_rcv_len" + type_id: 0x4585663f + offset: 608 +} member { id: 0x5c95b22b name: "report" @@ -158211,6 +159876,12 @@ member { type_id: 0x25520d15 offset: 256 } +member { + id: 0xb6e27ad1 + name: "request" + type_id: 0x18bd6530 + offset: 128 +} member { id: 0xb6f48f5c name: "request" @@ -158351,6 +160022,12 @@ member { offset: 83 bitsize: 1 } +member { + id: 0xc61d64c8 + name: "request_len" + type_id: 0x4585663f + offset: 256 +} member { id: 0xc6bec639 name: "request_len" @@ -158375,6 +160052,12 @@ member { type_id: 0xa7c362b0 offset: 2816 } +member { + id: 0x25b34691 + name: "request_payload" + type_id: 0x28d698a4 + offset: 320 +} member { id: 0x6b2fdfaf name: "request_pending" @@ -158842,6 +160525,12 @@ member { type_id: 0x5434eb98 offset: 96 } +member { + id: 0xd438fe7f + name: "reserved" + type_id: 0x5b5397f8 + offset: 384 +} member { id: 0xd43d43d1 name: "reserved" @@ -160155,6 +161844,12 @@ member { type_id: 0x6720d32f offset: 2304 } +member { + id: 0x0748dce9 + name: "result" + type_id: 0x6720d32f + offset: 576 +} member { id: 0x07c203de name: "result" @@ -160991,6 +162686,12 @@ member { name: "rhead" type_id: 0x80bff031 } +member { + id: 0xbc563875 + name: "rhead" + type_id: 0xe3222f5b + offset: 448 +} member { id: 0xe3226e74 name: "rhlist" @@ -161296,6 +162997,17 @@ member { type_id: 0xf57b706b offset: 256 } +member { + id: 0xc0218791 + name: "role" + type_id: 0xc9082b19 + offset: 32 +} +member { + id: 0xc0218aaa + name: "role" + type_id: 0xc9082b19 +} member { id: 0xc024bb1e name: "role" @@ -161319,6 +163031,12 @@ member { name: "role" type_id: 0x6e06e717 } +member { + id: 0xf14b14bf + name: "role_allow" + type_id: 0x168d6de3 + offset: 3456 +} member { id: 0x8230d84e name: "role_sw" @@ -161331,6 +163049,24 @@ member { type_id: 0x0cbe17fd offset: 448 } +member { + id: 0x3981996e + name: "role_tr" + type_id: 0x26a23d9b + offset: 2624 +} +member { + id: 0x9361a429 + name: "role_val_to_struct" + type_id: 0x02dfb39a + offset: 2240 +} +member { + id: 0x39f20f43 + name: "roles" + type_id: 0x86a931f9 + offset: 64 +} member { id: 0x39f4cfd4 name: "roles" @@ -161539,6 +163275,11 @@ member { type_id: 0x92233392 offset: 4800 } +member { + id: 0xb97636cd + name: "roots" + type_id: 0x9c44ff2a +} member { id: 0x38930b8b name: "rop" @@ -166131,6 +167872,11 @@ member { type_id: 0xc9082b19 offset: 32 } +member { + id: 0x788c9e45 + name: "sclass" + type_id: 0xc9082b19 +} member { id: 0xe473c8a3 name: "scm_io_uring" @@ -167018,10 +168764,10 @@ member { offset: 192 } member { - id: 0x69bd7ea5 + id: 0x69bd734e name: "seg" type_id: 0x295c7202 - offset: 7504 + offset: 9040 } member { id: 0x99f9908c @@ -167478,6 +169224,11 @@ member { name: "sens" type_id: 0xe8d14bc6 } +member { + id: 0xdd7d0bae + name: "sens" + type_id: 0xc9082b19 +} member { id: 0x4036d71d name: "sens_res" @@ -167878,6 +169629,12 @@ member { type_id: 0xf313e71a offset: 2592 } +member { + id: 0x792b5ed3 + name: "seqno" + type_id: 0xc9082b19 + offset: 96 +} member { id: 0x79707b8f name: "seqno" @@ -168189,6 +169946,12 @@ member { type_id: 0x4bf0729d offset: 6592 } +member { + id: 0x3d9ec2a7 + name: "set" + type_id: 0x4086b7da + offset: 64 +} member { id: 0x3d9ecaea name: "set" @@ -168201,6 +169964,11 @@ member { type_id: 0x7b06e63f offset: 3072 } +member { + id: 0x3db96022 + name: "set" + type_id: 0x6720d32f +} member { id: 0x3dca10e3 name: "set" @@ -168646,6 +170414,12 @@ member { type_id: 0x0c86f61b offset: 320 } +member { + id: 0xdfdf0c6c + name: "set_dev_pasid" + type_id: 0x2f1af790 + offset: 128 +} member { id: 0xfedeee7c name: "set_diag" @@ -169194,10 +170968,10 @@ member { offset: 448 } member { - id: 0x3f6d9579 + id: 0x3f6d9e6d name: "set_pgtable_quirks" type_id: 0x2f2a3e16 - offset: 768 + offset: 832 } member { id: 0xabec5550 @@ -170332,6 +172106,12 @@ member { name: "sg" type_id: 0x4717c167 } +member { + id: 0xb52b2515 + name: "sg_cnt" + type_id: 0x6720d32f + offset: 32 +} member { id: 0x621a81bc name: "sg_count" @@ -170368,6 +172148,12 @@ member { type_id: 0x4585663f offset: 384 } +member { + id: 0xbf2238b4 + name: "sg_list" + type_id: 0x11cffa09 + offset: 64 +} member { id: 0xe56b21c1 name: "sg_miter" @@ -171063,10 +172849,10 @@ member { offset: 192 } member { - id: 0x8f88ef88 + id: 0x8f88ee53 name: "shrinker_info" type_id: 0x0b57ce4e - offset: 16320 + offset: 18176 } member { id: 0x89a152e5 @@ -171355,11 +173141,27 @@ member { type_id: 0xd3c80119 offset: 64 } +member { + id: 0x086ca956 + name: "sid" + type_id: 0x5eeb4a25 + offset: 1472 +} member { id: 0x08a308f3 name: "sid" type_id: 0x914dbfdc } +member { + id: 0x08fb4d67 + name: "sid" + type_id: 0xc9082b19 +} +member { + id: 0x71a9d2d2 + name: "sidtab" + type_id: 0x0f0b2702 +} member { id: 0x6c4c56c1 name: "sifs_period" @@ -172057,6 +173859,12 @@ member { name: "size" type_id: 0x92233392 } +member { + id: 0xd9ef552c + name: "size" + type_id: 0x914dbfdc + offset: 64 +} member { id: 0xd9ef5cf6 name: "size" @@ -173680,12 +175488,23 @@ member { type_id: 0xd3c80119 offset: 512 } +member { + id: 0x4fe96ca2 + name: "slots" + type_id: 0xa634ef38 +} member { id: 0x595976c5 name: "slots_arch_lock" type_id: 0xa7c362b0 offset: 320 } +member { + id: 0xdd8a193d + name: "slots_lock" + type_id: 0x8d536703 + offset: 32768 +} member { id: 0xdda08f2f name: "slots_lock" @@ -174326,6 +176145,11 @@ member { type_id: 0x18bd6530 offset: 4736 } +member { + id: 0x7f0d6cd1 + name: "source_type" + type_id: 0x914dbfdc +} member { id: 0xf720feb9 name: "sources" @@ -174392,10 +176216,10 @@ member { offset: 192 } member { - id: 0xfb3e8cb0 + id: 0xfb3e84c0 name: "span_seqlock" type_id: 0x000ff4a8 - offset: 1344 + offset: 1408 } member { id: 0xaaa96e27 @@ -174404,10 +176228,10 @@ member { offset: 2304 } member { - id: 0x80fef2ae + id: 0x80fefd42 name: "spanned_pages" type_id: 0x33756485 - offset: 960 + offset: 1024 } member { id: 0x420573cb @@ -174466,12 +176290,23 @@ member { name: "special_vec" type_id: 0x348515c6 } +member { + id: 0x5f3a1a61 + name: "specified" + type_id: 0x295c7202 +} member { id: 0x5f7e39e7 name: "specified" type_id: 0x6d7f5ff6 offset: 256 } +member { + id: 0x5f82076d + name: "specified" + type_id: 0x914dbfdc + offset: 48 +} member { id: 0x5c1dbc47 name: "speculative" @@ -175653,6 +177488,11 @@ member { type_id: 0x3f0185ef offset: 256 } +member { + id: 0xb08e32fc + name: "ssid" + type_id: 0xc9082b19 +} member { id: 0xb0f70111 name: "ssid" @@ -176653,6 +178493,12 @@ member { name: "start_xmit" type_id: 0x2cff36be } +member { + id: 0xba5cc544 + name: "startbit" + type_id: 0xc9082b19 + offset: 448 +} member { id: 0x5367c52c name: "started" @@ -176922,6 +178768,12 @@ member { type_id: 0x63b95725 offset: 2208 } +member { + id: 0x7294d1e9 + name: "state" + type_id: 0x6720d32f + offset: 32 +} member { id: 0x7294d421 name: "state" @@ -178143,6 +179995,18 @@ member { offset: 620 bitsize: 1 } +member { + id: 0x8e288971 + name: "status_lock" + type_id: 0xa7c362b0 + offset: 192 +} +member { + id: 0xd41c6df7 + name: "status_page" + type_id: 0x06835e9c + offset: 128 +} member { id: 0x1c1b392d name: "status_reg_buf" @@ -178674,6 +180538,12 @@ member { name: "str" type_id: 0x38369fac } +member { + id: 0x3a3545b3 + name: "str" + type_id: 0x0483e6f8 + offset: 512 +} member { id: 0x3a7aac3a name: "str" @@ -178689,6 +180559,12 @@ member { name: "str" type_id: 0xba4dcbcc } +member { + id: 0x3afbe345 + name: "str" + type_id: 0xca2a51af + offset: 352 +} member { id: 0x9fc8c673 name: "str_len" @@ -179291,6 +181167,11 @@ member { type_id: 0x1d19a9d5 offset: 6336 } +member { + id: 0x592ba09a + name: "subnet_prefix" + type_id: 0x92233392 +} member { id: 0x312fa86b name: "subns" @@ -179461,6 +181342,11 @@ member { type_id: 0x13e7e035 offset: 128 } +member { + id: 0x11c73d13 + name: "subsystem" + type_id: 0x42201dce +} member { id: 0x5d8f77ce name: "subsystem_device" @@ -180224,6 +182110,12 @@ member { type_id: 0x6d7f5ff6 offset: 184 } +member { + id: 0xcc3d72ff + name: "suspend_again" + type_id: 0x35392f66 + offset: 448 +} member { id: 0x490ad16b name: "suspend_bias_off" @@ -180439,24 +182331,6 @@ member { type_id: 0xc9082b19 offset: 320 } -member { - id: 0x401c5d0d - name: "sva_bind" - type_id: 0x27c2c08e - offset: 704 -} -member { - id: 0xe6565c7c - name: "sva_get_pasid" - type_id: 0x19b548a2 - offset: 832 -} -member { - id: 0x85a18c64 - name: "sva_unbind" - type_id: 0x0ced561e - offset: 768 -} member { id: 0x90e561c8 name: "svalue" @@ -180831,6 +182705,12 @@ member { type_id: 0xe62ebf07 offset: 160 } +member { + id: 0x04a57576 + name: "sym_val_to_name" + type_id: 0xe6d2b814 + offset: 1664 +} member { id: 0x47f7d600 name: "symbol_duration" @@ -180913,6 +182793,12 @@ member { name: "symtab" type_id: 0x33446e12 } +member { + id: 0x56e2856b + name: "symtab" + type_id: 0xc0330c41 + offset: 128 +} member { id: 0xf28e07a8 name: "syn" @@ -182372,6 +184258,11 @@ member { name: "table" type_id: 0x28d027d4 } +member { + id: 0xb6cd92ad + name: "table" + type_id: 0x26a23d9b +} member { id: 0xb6d4bf02 name: "table" @@ -182792,6 +184683,12 @@ member { type_id: 0x33756485 offset: 512 } +member { + id: 0xb3add302 + name: "target" + type_id: 0x0f0b2702 + offset: 128 +} member { id: 0xb3bfc0e0 name: "target" @@ -182862,6 +184759,12 @@ member { type_id: 0x74d29cf1 offset: 6528 } +member { + id: 0x5d352698 + name: "target_class" + type_id: 0x914dbfdc + offset: 32 +} member { id: 0xa726b996 name: "target_comm" @@ -182990,6 +184893,12 @@ member { type_id: 0x6720d32f offset: 2624 } +member { + id: 0x5ada8db3 + name: "target_type" + type_id: 0x914dbfdc + offset: 16 +} member { id: 0xdadb91d4 name: "target_uid" @@ -183227,9 +185136,9 @@ member { offset: 64 } member { - id: 0xf991bbfd + id: 0xf991fe78 name: "task_work_cb" - type_id: 0x0e350ba0 + type_id: 0x0e708ec6 } member { id: 0x26db2fbf @@ -183477,6 +185386,12 @@ member { type_id: 0xe0b08da9 offset: 320 } +member { + id: 0x51579d7e + name: "tclass" + type_id: 0x914dbfdc + offset: 64 +} member { id: 0x51753743 name: "tclass" @@ -183931,6 +185846,18 @@ member { name: "te1" type_id: 0x217dc8c4 } +member { + id: 0xd7fbd304 + name: "te_avtab" + type_id: 0xcab227f8 + offset: 2432 +} +member { + id: 0x249ad332 + name: "te_cond_avtab" + type_id: 0xcab227f8 + offset: 3136 +} member { id: 0xc16e0c1e name: "teardown" @@ -185154,6 +187081,12 @@ member { type_id: 0x4585663f offset: 672 } +member { + id: 0x54860832 + name: "timeout" + type_id: 0x4585663f + offset: 96 +} member { id: 0x54860c42 name: "timeout" @@ -186525,10 +188458,10 @@ member { offset: 256 } member { - id: 0xb74e462b + id: 0xb74e408a name: "totalreserve_pages" type_id: 0x33756485 - offset: 41344 + offset: 54272 } member { id: 0x54a83197 @@ -187225,10 +189158,10 @@ member { type_id: 0x3205ba2f } member { - id: 0x22d40e84 + id: 0x22d40a98 name: "tree_node" type_id: 0x3205ba2f - offset: 16384 + offset: 18240 } member { id: 0xe43a5cb4 @@ -187524,6 +189457,12 @@ member { name: "trkid" type_id: 0x6720d32f } +member { + id: 0x028c1c9f + name: "true_list" + type_id: 0xdc39b636 + offset: 192 +} member { id: 0xfafe7459 name: "truesize" @@ -187808,6 +189747,12 @@ member { type_id: 0x914dbfdc offset: 96 } +member { + id: 0xd60cdd86 + name: "tsid" + type_id: 0xc9082b19 + offset: 32 +} member { id: 0xaa343f4c name: "tsize" @@ -190338,6 +192283,12 @@ member { type_id: 0xc9082b19 offset: 128 } +member { + id: 0x5c9fd9b4 + name: "type" + type_id: 0xc9082b19 + offset: 64 +} member { id: 0x5c9fdcc7 name: "type" @@ -190627,6 +192578,12 @@ member { offset: 27 bitsize: 2 } +member { + id: 0x737fb73e + name: "type_attr_map_array" + type_id: 0x2b3a75d9 + offset: 4288 +} member { id: 0xf0496fa3 name: "type_aux" @@ -190764,6 +192721,12 @@ member { type_id: 0xf313e71a offset: 352 } +member { + id: 0xe2794a8c + name: "type_names" + type_id: 0x2a5ed1c1 + offset: 256 +} member { id: 0x1ea46e33 name: "type_nb" @@ -190823,6 +192786,12 @@ member { type_id: 0x3db8d8c8 offset: 60096 } +member { + id: 0xe75ebaee + name: "type_val_to_struct" + type_id: 0x0f4b7529 + offset: 2368 +} member { id: 0xef96bf4c name: "type_warn_dw" @@ -190859,6 +192828,17 @@ member { type_id: 0x914dbfdc offset: 16 } +member { + id: 0xf4145411 + name: "types" + type_id: 0x86a931f9 +} +member { + id: 0xf4145cd8 + name: "types" + type_id: 0x86a931f9 + offset: 192 +} member { id: 0xf49ecb47 name: "types" @@ -190947,6 +192927,11 @@ member { type_id: 0x6d504440 offset: 128 } +member { + id: 0xec1659ba + name: "u" + type_id: 0x6905d706 +} member { id: 0xec1fd483 name: "u" @@ -190971,6 +192956,11 @@ member { type_id: 0x5574fba9 offset: 128 } +member { + id: 0xec2ac37d + name: "u" + type_id: 0x559f10ea +} member { id: 0xec2ecdca name: "u" @@ -192286,10 +194276,10 @@ member { offset: 128 } member { - id: 0xfeda6de6 + id: 0xfeda6a8a name: "unmap" type_id: 0x2d8abd6e - offset: 256 + offset: 320 } member { id: 0xfeec1f7d @@ -192335,10 +194325,10 @@ member { offset: 192 } member { - id: 0xd12a6f2d + id: 0xd12a6978 name: "unmap_pages" type_id: 0x2d8a4341 - offset: 320 + offset: 384 } member { id: 0x128b36d4 @@ -193271,10 +195261,10 @@ member { type_id: 0xe62ebf07 } member { - id: 0x46bd9b04 + id: 0x46bd927f name: "usage_in_excess" type_id: 0x33756485 - offset: 16576 + offset: 18432 } member { id: 0xdaf5a26c @@ -193968,6 +195958,12 @@ member { type_id: 0x33756485 offset: 256 } +member { + id: 0x8bd936f8 + name: "used" + type_id: 0x6720d32f + offset: 8512 +} member { id: 0x8bd93b07 name: "used" @@ -194140,6 +196136,11 @@ member { type_id: 0xc9082b19 offset: 64 } +member { + id: 0x04fb362d + name: "user" + type_id: 0xc9082b19 +} member { id: 0x04fb3686 name: "user" @@ -194330,6 +196331,12 @@ member { type_id: 0x2c2bf57a offset: 2496 } +member { + id: 0x5be84f8f + name: "user_val_to_struct" + type_id: 0x086a88e1 + offset: 2304 +} member { id: 0x3b4f65dc name: "user_waits" @@ -194458,6 +196465,12 @@ member { name: "users" type_id: 0x6720d32f } +member { + id: 0x85cad62f + name: "users" + type_id: 0x6720d32f + offset: 64 +} member { id: 0x85e876e9 name: "users" @@ -194822,6 +196835,12 @@ member { name: "v" type_id: 0x09f9643d } +member { + id: 0x28775171 + name: "v" + type_id: 0x48fb1ff5 + offset: 256 +} member { id: 0x28d9847a name: "v" @@ -195126,6 +197145,11 @@ member { type_id: 0x6d7f5ff6 offset: 64 } +member { + id: 0xe9de33a2 + name: "valid" + type_id: 0x26554526 +} member { id: 0xa6274b5a name: "valid_ioctls" @@ -195268,6 +197292,12 @@ member { type_id: 0x2c61a903 offset: 768 } +member { + id: 0xe6a3222b + name: "validatetrans" + type_id: 0x1bab96d2 + offset: 448 +} member { id: 0xe2a9ed02 name: "validation_type" @@ -195391,6 +197421,11 @@ member { type_id: 0xb3e7bac9 offset: 8 } +member { + id: 0xa0c154ef + name: "value" + type_id: 0xc9082b19 +} member { id: 0xa0c72311 name: "value" @@ -195418,6 +197453,11 @@ member { type_id: 0xe276adef offset: 64 } +member { + id: 0xa0ee727b + name: "value" + type_id: 0xe62ebf07 +} member { id: 0xdf220102 name: "value" @@ -197821,10 +199861,10 @@ member { type_id: 0x33756485 } member { - id: 0xca8e5cc0 + id: 0xca8e5735 name: "vm_stat" type_id: 0xfc37fa4b - offset: 54336 + offset: 69696 } member { id: 0xca969630 @@ -198905,6 +200945,12 @@ member { type_id: 0x0a747547 offset: 64 } +member { + id: 0x26f3b7c4 + name: "wake" + type_id: 0x0eb62dc3 + offset: 320 +} member { id: 0xcf212908 name: "wake_active" @@ -200794,6 +202840,12 @@ member { name: "write" type_id: 0x0e24c2f6 } +member { + id: 0x3421983a + name: "write" + type_id: 0x21450ae9 + offset: 128 +} member { id: 0x34294171 name: "write" @@ -202115,17 +204167,39 @@ member { type_id: 0x5d9a121f offset: 736 } +member { + id: 0x48bcaa45 + name: "xp" + type_id: 0x18ec8d59 +} member { id: 0xb802c69a name: "xp_net" type_id: 0xb335d16f } +member { + id: 0x6f74e856 + name: "xp_node" + type_id: 0x0819c1d1 + offset: 256 +} member { id: 0x7c0b3c9f name: "xpanstep" type_id: 0xe8034002 offset: 320 } +member { + id: 0x0989f76b + name: "xpd_head" + type_id: 0xd3c80119 + offset: 320 +} +member { + id: 0xa7075a62 + name: "xperms" + type_id: 0x1e641f1b +} member { id: 0x75da330f name: "xpn" @@ -202532,16 +204606,16 @@ member { offset: 64 } member { - id: 0xde15fda7 + id: 0xde15f2ac name: "zone_pgdat" type_id: 0x03038214 - offset: 576 + offset: 640 } member { - id: 0x22a286b3 + id: 0x22a28faf name: "zone_start_pfn" type_id: 0x33756485 - offset: 832 + offset: 896 } member { id: 0xb5d14adb @@ -203682,6 +205756,16 @@ struct_union { member_id: 0x569cedab } } +struct_union { + id: 0x0e09b329 + kind: STRUCT + definition { + bytesize: 16 + member_id: 0x592ba09a + member_id: 0xbc5b3492 + member_id: 0x2467cbde + } +} struct_union { id: 0x0e50ff6f kind: STRUCT @@ -204034,6 +206118,15 @@ struct_union { member_id: 0xaf6f4ac0 } } +struct_union { + id: 0x1162939f + kind: STRUCT + definition { + bytesize: 32 + member_id: 0x2493d07f + member_id: 0xa88d6ff6 + } +} struct_union { id: 0x11676430 kind: STRUCT @@ -204044,6 +206137,15 @@ struct_union { member_id: 0x20f663f9 } } +struct_union { + id: 0x117f4f93 + kind: STRUCT + definition { + bytesize: 8 + member_id: 0x24e4d74d + member_id: 0xa8fa6c3d + } +} struct_union { id: 0x1200e6db kind: STRUCT @@ -204361,6 +206463,15 @@ struct_union { member_id: 0xca4d11a9 } } +struct_union { + id: 0x14444314 + kind: STRUCT + definition { + bytesize: 16 + member_id: 0x3025d5eb + member_id: 0x85cad62f + } +} struct_union { id: 0x148546d4 kind: STRUCT @@ -205388,6 +207499,15 @@ struct_union { member_id: 0x97dfb679 } } +struct_union { + id: 0x262ff409 + kind: STRUCT + definition { + bytesize: 16 + member_id: 0xf9ca6e5d + member_id: 0xc4ad1767 + } +} struct_union { id: 0x266a8cae kind: STRUCT @@ -205905,6 +208025,16 @@ struct_union { member_id: 0x6ec6b7fe } } +struct_union { + id: 0x2f5f7542 + kind: STRUCT + definition { + bytesize: 6 + member_id: 0xdcf61242 + member_id: 0x3af6d631 + member_id: 0x22f0b41b + } +} struct_union { id: 0x2f802e03 kind: STRUCT @@ -206487,6 +208617,15 @@ struct_union { member_id: 0xb7357bee } } +struct_union { + id: 0x39ffc4a3 + kind: STRUCT + definition { + bytesize: 16 + member_id: 0x8606d3a0 + member_id: 0x48d2413e + } +} struct_union { id: 0x3a2e44f7 kind: STRUCT @@ -207200,6 +209339,15 @@ struct_union { member_id: 0x5f7a4496 } } +struct_union { + id: 0x48fb1ff5 + kind: UNION + definition { + bytesize: 4 + member_id: 0x788c9e45 + member_id: 0x8b969425 + } +} struct_union { id: 0x48ff9190 kind: UNION @@ -207909,6 +210057,19 @@ struct_union { member_id: 0x53d434cb } } +struct_union { + id: 0x559f10ea + kind: UNION + definition { + bytesize: 32 + member_id: 0x0ddfefbb + member_id: 0x48d446d8 + member_id: 0x0f6471e1 + member_id: 0x3599c2c8 + member_id: 0x6bb5d251 + member_id: 0xe352e743 + } +} struct_union { id: 0x55ba3ec3 kind: UNION @@ -208165,6 +210326,15 @@ struct_union { member_id: 0xc4d7b9f1 } } +struct_union { + id: 0x5c637323 + kind: UNION + definition { + bytesize: 16 + member_id: 0x2a406106 + member_id: 0x26da8cc1 + } +} struct_union { id: 0x5cac5fcc kind: UNION @@ -208952,11 +211122,11 @@ struct_union { } } struct_union { - id: 0x6888a784 + id: 0x6888b6e5 kind: UNION definition { bytesize: 8 - member_id: 0xf991bbfd + member_id: 0xf991fe78 member_id: 0x5852e92d } } @@ -208977,6 +211147,15 @@ struct_union { member_id: 0xffe56b33 } } +struct_union { + id: 0x6905d706 + kind: UNION + definition { + bytesize: 8 + member_id: 0xff5b2c47 + member_id: 0xa7075a62 + } +} struct_union { id: 0x69066ca6 kind: UNION @@ -211564,6 +213743,66 @@ struct_union { member_id: 0xc4fa59e8 } } +struct_union { + id: 0xb65e540b + kind: STRUCT + name: "av_decision" + definition { + bytesize: 20 + member_id: 0xcf92c78a + member_id: 0x242a71d3 + member_id: 0x3a9cc23a + member_id: 0x792b5ed3 + member_id: 0x2da185b7 + } +} +struct_union { + id: 0x22e22107 + kind: STRUCT + name: "avc_cache" + definition { + bytesize: 6160 + member_id: 0x4fe96ca2 + member_id: 0xdd8a193d + member_id: 0xff719763 + member_id: 0x7d99680b + member_id: 0x41995401 + } +} +struct_union { + id: 0x25802b70 + kind: STRUCT + name: "avc_entry" + definition { + bytesize: 40 + member_id: 0xb08e32fc + member_id: 0xd60cdd86 + member_id: 0x51579d7e + member_id: 0xce3c6bac + member_id: 0x6f74e856 + } +} +struct_union { + id: 0x53b77d6a + kind: STRUCT + name: "avc_node" + definition { + bytesize: 72 + member_id: 0x1ffcf224 + member_id: 0x7c9a87a5 + member_id: 0xbc563875 + } +} +struct_union { + id: 0x0a27e1da + kind: STRUCT + name: "avc_xperms_node" + definition { + bytesize: 56 + member_id: 0x48bcaa45 + member_id: 0x0989f76b + } +} struct_union { id: 0xeac6164c kind: STRUCT @@ -211574,6 +213813,61 @@ struct_union { member_id: 0xe9951d59 } } +struct_union { + id: 0xcab227f8 + kind: STRUCT + name: "avtab" + definition { + bytesize: 24 + member_id: 0xf2863c10 + member_id: 0x7cc2460f + member_id: 0x51460e20 + member_id: 0xa8fa68c4 + } +} +struct_union { + id: 0x4fda69a2 + kind: STRUCT + name: "avtab_datum" + definition { + bytesize: 8 + member_id: 0xec1659ba + } +} +struct_union { + id: 0x53d09af0 + kind: STRUCT + name: "avtab_extended_perms" + definition { + bytesize: 36 + member_id: 0x5f3a1a61 + member_id: 0xd467c584 + member_id: 0xdbb0c417 + } +} +struct_union { + id: 0x4d57407e + kind: STRUCT + name: "avtab_key" + definition { + bytesize: 8 + member_id: 0x7f0d6cd1 + member_id: 0x5ada8db3 + member_id: 0x5d352698 + member_id: 0x5f82076d + } +} +struct_union { + id: 0x0f4b21b6 + kind: STRUCT + name: "avtab_node" + definition { + bytesize: 24 + member_id: 0x201b5dee + member_id: 0x13afcd46 + member_id: 0x11fa4bec + } +} struct_union { id: 0x89935f7e kind: STRUCT @@ -213639,6 +215933,17 @@ struct_union { member_id: 0xa8a220fd } } +struct_union { + id: 0x28d698a4 + kind: STRUCT + name: "bsg_buffer" + definition { + bytesize: 16 + member_id: 0xe2f15a6e + member_id: 0xb52b2515 + member_id: 0xbf2238b4 + } +} struct_union { id: 0xa5dd7147 kind: STRUCT @@ -213654,6 +215959,28 @@ struct_union { member_id: 0xdc445987 } } +struct_union { + id: 0xc6634a90 + kind: STRUCT + name: "bsg_job" + definition { + bytesize: 104 + member_id: 0xce3bbab3 + member_id: 0x02ce5d67 + member_id: 0x54860832 + member_id: 0xb6e27ad1 + member_id: 0x72f80ba2 + member_id: 0xc61d64c8 + member_id: 0xa8576a87 + member_id: 0x25b34691 + member_id: 0x8aca07a6 + member_id: 0x0748dce9 + member_id: 0xc08d4bff + member_id: 0xe007a713 + member_id: 0x9d3b9f4b + member_id: 0x0e831890 + } +} struct_union { id: 0x737d9636 kind: STRUCT @@ -216382,6 +218709,24 @@ struct_union { member_id: 0xacd4aa03 } } +struct_union { + id: 0x48a13124 + kind: STRUCT + name: "class_datum" + definition { + bytesize: 72 + member_id: 0xa0c154ef + member_id: 0x7372cfc3 + member_id: 0xe994f7e2 + member_id: 0xf05f0781 + member_id: 0xfd724d73 + member_id: 0xe6a3222b + member_id: 0x932e00b0 + member_id: 0x7c01b61e + member_id: 0x98b80a03 + member_id: 0x7ad0edec + } +} struct_union { id: 0xfa6f578b kind: STRUCT @@ -216684,6 +219029,16 @@ struct_union { member_id: 0x348aae90 } } +struct_union { + id: 0x52b2a4f5 + kind: STRUCT + name: "common_datum" + definition { + bytesize: 32 + member_id: 0xa0c154ef + member_id: 0xf05f0ba9 + } +} struct_union { id: 0x32c940eb kind: STRUCT @@ -216859,6 +219214,58 @@ struct_union { member_id: 0xd168c688 } } +struct_union { + id: 0xdc39b636 + kind: STRUCT + name: "cond_av_list" + definition { + bytesize: 16 + member_id: 0x627963b5 + member_id: 0xb8ccd99c + } +} +struct_union { + id: 0xbdd82378 + kind: STRUCT + name: "cond_bool_datum" + definition { + bytesize: 8 + member_id: 0xa0ee727b + member_id: 0x7294d1e9 + } +} +struct_union { + id: 0xdf3bd046 + kind: STRUCT + name: "cond_expr" + definition { + bytesize: 16 + member_id: 0x62527a67 + member_id: 0xb8ccd99c + } +} +struct_union { + id: 0xa525b840 + kind: STRUCT + name: "cond_expr_node" + definition { + bytesize: 8 + member_id: 0xa0783f48 + member_id: 0xbfc5857a + } +} +struct_union { + id: 0x09e98633 + kind: STRUCT + name: "cond_node" + definition { + bytesize: 56 + member_id: 0x0cc4772a + member_id: 0x713c7886 + member_id: 0x028c1c9f + member_id: 0x22c3bf72 + } +} struct_union { id: 0xe145bd36 kind: STRUCT @@ -216986,6 +219393,45 @@ struct_union { member_id: 0x11f25516 } } +struct_union { + id: 0x21a6617d + kind: STRUCT + name: "constraint_expr" + definition { + bytesize: 48 + member_id: 0xa0783f48 + member_id: 0x8ccdaf26 + member_id: 0xf03ba7f6 + member_id: 0x5542647f + member_id: 0xe2794a8c + member_id: 0x11f1feb9 + } +} +struct_union { + id: 0x44eebdd5 + kind: STRUCT + name: "constraint_node" + definition { + bytesize: 24 + member_id: 0xf0063172 + member_id: 0x71e1baf7 + member_id: 0x11e8a28b + } +} +struct_union { + id: 0xa1416fb0 + kind: STRUCT + name: "context" + definition { + bytesize: 72 + member_id: 0x04fb362d + member_id: 0xc0218791 + member_id: 0x5c9fd9b4 + member_id: 0xb8ccd4fe + member_id: 0x0e5c14b2 + member_id: 0x3a3545b3 + } +} struct_union { id: 0xef60ad88 kind: STRUCT @@ -218109,7 +220555,7 @@ struct_union { member_id: 0xd4f1b234 member_id: 0xd6b41596 member_id: 0xa3ee3a2f - member_id: 0xa053fb2c + member_id: 0xa070bd00 } } struct_union { @@ -218216,13 +220662,14 @@ struct_union { kind: STRUCT name: "dev_iommu" definition { - bytesize: 72 + bytesize: 80 member_id: 0x2d4b3c00 member_id: 0x5a9c4097 member_id: 0x3ff87014 member_id: 0xc67a54fe member_id: 0xb2e283d0 member_id: 0x591193b9 + member_id: 0xe612b3bd } } struct_union { @@ -218497,6 +220944,16 @@ struct_union { member_id: 0xe2d495b2 } } +struct_union { + id: 0x5a67912c + kind: STRUCT + name: "dev_printk_info" + definition { + bytesize: 64 + member_id: 0x11c73d13 + member_id: 0xea2f40e7 + } +} struct_union { id: 0xb7e8bb7b kind: STRUCT @@ -221863,6 +224320,27 @@ struct_union { member_id: 0x9047fe65 } } +struct_union { + id: 0x86a931f9 + kind: STRUCT + name: "ebitmap" + definition { + bytesize: 16 + member_id: 0x0f56d7ac + member_id: 0x24b8b0fd + } +} +struct_union { + id: 0xa524ed45 + kind: STRUCT + name: "ebitmap_node" + definition { + bytesize: 64 + member_id: 0x11d0d9dd + member_id: 0xb0b6f056 + member_id: 0xba5cc544 + } +} struct_union { id: 0xed9e4341 kind: STRUCT @@ -222972,6 +225450,25 @@ struct_union { member_id: 0xff67f40b } } +struct_union { + id: 0x18ec8d59 + kind: STRUCT + name: "extended_perms" + definition { + bytesize: 36 + member_id: 0xb89498e9 + member_id: 0x922207d0 + } +} +struct_union { + id: 0xc4d82b11 + kind: STRUCT + name: "extended_perms_data" + definition { + bytesize: 32 + member_id: 0xa6673206 + } +} struct_union { id: 0xbdd1c219 kind: STRUCT @@ -224734,7 +227231,7 @@ struct_union { kind: STRUCT name: "fscrypt_operations" definition { - bytesize: 72 + bytesize: 104 member_id: 0x2d2d0138 member_id: 0xec1b817e member_id: 0xf77bde4b @@ -224744,6 +227241,10 @@ struct_union { member_id: 0xe911a8e8 member_id: 0x8e932e8e member_id: 0x2ca4b2ea + member_id: 0x2d081c40 + member_id: 0x63760fdb + member_id: 0xac894b6b + member_id: 0xe0f63ce5 } } struct_union { @@ -225137,6 +227638,17 @@ struct_union { member_id: 0x3bd41bef } } +struct_union { + id: 0x91717a9b + kind: STRUCT + name: "genfs" + definition { + bytesize: 24 + member_id: 0x51d40905 + member_id: 0xb57b63c2 + member_id: 0x11ddc57a + } +} struct_union { id: 0x79013954 kind: STRUCT @@ -225801,6 +228313,28 @@ struct_union { member_id: 0x85f3de85 } } +struct_union { + id: 0x26a23d9b + kind: STRUCT + name: "hashtab" + definition { + bytesize: 16 + member_id: 0xf28957eb + member_id: 0xd9b710b8 + member_id: 0x7cc24b6d + } +} +struct_union { + id: 0xf9f49fb7 + kind: STRUCT + name: "hashtab_node" + definition { + bytesize: 24 + member_id: 0x204eb7cb + member_id: 0x13f8aa4a + member_id: 0x11c7e403 + } +} struct_union { id: 0x6101d583 kind: STRUCT @@ -230704,7 +233238,7 @@ struct_union { bytesize: 64 member_id: 0xbf9f3e0b member_id: 0x1a29c57b - member_id: 0x39e9bc27 + member_id: 0x39e9b87f member_id: 0x2fa36869 member_id: 0x2da18f51 member_id: 0xafb272a1 @@ -230895,11 +233429,12 @@ struct_union { kind: STRUCT name: "iommu_device" definition { - bytesize: 40 + bytesize: 48 member_id: 0x7c00ef52 member_id: 0xafb5e416 member_id: 0x6e4d8897 member_id: 0xce3bba18 + member_id: 0xe612bd08 } } struct_union { @@ -230920,14 +233455,15 @@ struct_union { kind: STRUCT name: "iommu_domain" definition { - bytesize: 72 + bytesize: 88 member_id: 0x5c135018 member_id: 0xafbb0d65 member_id: 0xa5569d87 - member_id: 0xf9ca6694 - member_id: 0xc4ad132d - member_id: 0x3a570591 - member_id: 0x78c9acb1 + member_id: 0x3a570a9f + member_id: 0x78c9a63b + member_id: 0x90810ddc + member_id: 0x1e5ce302 + member_id: 0x34d349be } } struct_union { @@ -230946,21 +233482,22 @@ struct_union { kind: STRUCT name: "iommu_domain_ops" definition { - bytesize: 112 + bytesize: 120 member_id: 0xce6fa034 member_id: 0xa3103fbf - member_id: 0x8dd95964 - member_id: 0xa60fa22c - member_id: 0xfeda6de6 - member_id: 0xd12a6f2d - member_id: 0xba50d692 - member_id: 0xc1a6eb7e - member_id: 0x9f65e18d - member_id: 0x80f51b65 - member_id: 0x5a2828f5 - member_id: 0xe86f5472 - member_id: 0x3f6d9579 - member_id: 0xfeae540e + member_id: 0xdfdf0c6c + member_id: 0x8dd9586f + member_id: 0xa60faa4e + member_id: 0xfeda6a8a + member_id: 0xd12a6978 + member_id: 0xba50d077 + member_id: 0xc1a6e711 + member_id: 0x9f65e3e7 + member_id: 0x80f5146e + member_id: 0x5a282cb1 + member_id: 0xe86f5ee1 + member_id: 0x3f6d9e6d + member_id: 0xfeae5d12 } } struct_union { @@ -231053,21 +233590,22 @@ struct_union { kind: STRUCT name: "iommu_group" definition { - bytesize: 208 + bytesize: 224 member_id: 0x452b206c member_id: 0xeb0d4018 member_id: 0x33ed5daa - member_id: 0xad89813f - member_id: 0x32791e8c - member_id: 0x9849301c - member_id: 0x0ddfe2cd - member_id: 0xcc48029e - member_id: 0xe1eb99a3 - member_id: 0x48c48bb2 - member_id: 0xa72fee25 - member_id: 0x4d8782cf - member_id: 0x9241a235 - member_id: 0x4a85c151 + member_id: 0x0ff1fb1c + member_id: 0xad8980b8 + member_id: 0x32791b09 + member_id: 0x984939df + member_id: 0x0ddfed7f + member_id: 0xcc480a3f + member_id: 0xe1eb91e4 + member_id: 0x48c48f3c + member_id: 0xa72fe3f6 + member_id: 0x4d878adb + member_id: 0x9241abfe + member_id: 0x4a85cfcc } } struct_union { @@ -231088,7 +233626,7 @@ struct_union { kind: STRUCT name: "iommu_ops" definition { - bytesize: 152 + bytesize: 136 member_id: 0x3773a0c0 member_id: 0x73013631 member_id: 0xe5e1630d @@ -231100,14 +233638,12 @@ struct_union { member_id: 0xcea8232d member_id: 0xab76d4fd member_id: 0x0b7248bd - member_id: 0x401c5d0d - member_id: 0x85a18c64 - member_id: 0xe6565c7c - member_id: 0x640df8b0 - member_id: 0xd2bea8f2 - member_id: 0x91bbbf6c - member_id: 0xa5569933 - member_id: 0x4a965c8c + member_id: 0x640df02b + member_id: 0xd2bea8af + member_id: 0x0104be90 + member_id: 0x91bbb2d5 + member_id: 0xa5569cb6 + member_id: 0x4a96554f } } struct_union { @@ -231138,15 +233674,6 @@ struct_union { member_id: 0xfeac8375 } } -struct_union { - id: 0xbc9e11d7 - kind: STRUCT - name: "iommu_sva" - definition { - bytesize: 8 - member_id: 0xce3bbab3 - } -} struct_union { id: 0x5050c787 kind: STRUCT @@ -234758,21 +237285,21 @@ struct_union { kind: STRUCT name: "lru_gen_folio" definition { - bytesize: 960 + bytesize: 1152 member_id: 0x5ac83b71 member_id: 0x8ae2ad7a member_id: 0x5ae26986 - member_id: 0x53ee1fea - member_id: 0xe3177237 - member_id: 0x83570c23 - member_id: 0x78e6f66b - member_id: 0x271bc54a - member_id: 0x9cd38c7d - member_id: 0x2ee40ee4 - member_id: 0x3a2d3aaa - member_id: 0xa9f411fa - member_id: 0x69bd7ea5 - member_id: 0x7c080060 + member_id: 0x53e7f764 + member_id: 0xe31e99af + member_id: 0x83570183 + member_id: 0x78e6fa74 + member_id: 0x271bcf4c + member_id: 0x9cd3894a + member_id: 0x2ee403bd + member_id: 0x3a2d3543 + member_id: 0xa9f41a7b + member_id: 0x69bd734e + member_id: 0x7c080a44 } } struct_union { @@ -234817,15 +237344,15 @@ struct_union { kind: STRUCT name: "lru_gen_mm_walk" definition { - bytesize: 152 + bytesize: 184 member_id: 0x3b7b9448 member_id: 0x5ac83f90 member_id: 0x7b6ac82c - member_id: 0xe3151f4d - member_id: 0xa668ba25 - member_id: 0xa5be4c17 - member_id: 0x297d1ec9 - member_id: 0x056fd9e7 + member_id: 0xe31cf7c3 + member_id: 0xa668b012 + member_id: 0xa5be4038 + member_id: 0x297d1e7e + member_id: 0x056fdf60 } } struct_union { @@ -234833,7 +237360,7 @@ struct_union { kind: STRUCT name: "lruvec" definition { - bytesize: 1224 + bytesize: 1416 member_id: 0x56c4b4af member_id: 0x50d1f939 member_id: 0xcabb31d9 @@ -234842,8 +237369,8 @@ struct_union { member_id: 0x8efe1e4f member_id: 0x2d5bf625 member_id: 0x9af97a5e - member_id: 0x0abfe2c6 - member_id: 0x2d2728a8 + member_id: 0x0abfe44a + member_id: 0x2d272330 } } struct_union { @@ -235609,17 +238136,17 @@ struct_union { kind: STRUCT name: "mem_cgroup_per_node" definition { - bytesize: 2096 + bytesize: 2328 member_id: 0x3b8cac21 - member_id: 0xa2a9e92c - member_id: 0xd9ceffd4 - member_id: 0xafeb8287 - member_id: 0x2ba08730 - member_id: 0x8f88ef88 - member_id: 0x22d40e84 - member_id: 0x46bd9b04 - member_id: 0xe0a290ab - member_id: 0xc76cf048 + member_id: 0xa2a9ea87 + member_id: 0xd9cefb11 + member_id: 0xaf7502e7 + member_id: 0x2ba0874e + member_id: 0x8f88ee53 + member_id: 0x22d40a98 + member_id: 0x46bd927f + member_id: 0xe0a294e6 + member_id: 0xc76cfbaa } } struct_union { @@ -236116,6 +238643,25 @@ struct_union { member_id: 0x878f4f9a } } +struct_union { + id: 0xf681317f + kind: STRUCT + name: "mls_level" + definition { + bytesize: 24 + member_id: 0xdd7d0bae + member_id: 0x1133d766 + } +} +struct_union { + id: 0xe0987ef0 + kind: STRUCT + name: "mls_range" + definition { + bytesize: 48 + member_id: 0x86ebc61e + } +} struct_union { id: 0x51c04992 kind: STRUCT @@ -239674,6 +242220,19 @@ struct_union { member_id: 0x6fcf0a57 } } +struct_union { + id: 0xad386ff8 + kind: STRUCT + name: "ocontext" + definition { + bytesize: 200 + member_id: 0xec2ac37d + member_id: 0x28775171 + member_id: 0x41f3c646 + member_id: 0x086ca956 + member_id: 0x11d2d41a + } +} struct_union { id: 0x76b1559f kind: STRUCT @@ -241082,40 +243641,40 @@ struct_union { kind: STRUCT name: "pglist_data" definition { - bytesize: 7168 - member_id: 0x65334eda - member_id: 0xc0894f50 - member_id: 0x429466a2 - member_id: 0x74f989f8 - member_id: 0x232160a0 - member_id: 0x0cee4941 - member_id: 0x7a542517 - member_id: 0xf67bc5c4 - member_id: 0x912812a4 - member_id: 0x1870e86e - member_id: 0xcae14a8f - member_id: 0x916f6c35 - member_id: 0x14baa11a - member_id: 0xff6f5c14 - member_id: 0xfe0f3c95 - member_id: 0x34381214 - member_id: 0x053ab8bf - member_id: 0x678d6a4e - member_id: 0xc6101b04 - member_id: 0x448359b4 - member_id: 0xda079379 - member_id: 0x4d9c8dbd - member_id: 0xb8416c44 - member_id: 0xb74e462b - member_id: 0xcb455ab7 - member_id: 0x5cbd60f7 - member_id: 0x5cfa9db5 - member_id: 0x2d5bf025 - member_id: 0xa8928c03 - member_id: 0x5b9e497b - member_id: 0x1aacfea1 - member_id: 0xd8353b34 - member_id: 0xca8e5cc0 + bytesize: 9088 + member_id: 0x65adc63c + member_id: 0xc08945c3 + member_id: 0x429467d6 + member_id: 0x74f980f4 + member_id: 0x23216bf8 + member_id: 0x0cee492b + member_id: 0x7a54208c + member_id: 0xf67bcc6a + member_id: 0x91281e96 + member_id: 0x1870ebaa + member_id: 0xcae142e2 + member_id: 0x916f6aa9 + member_id: 0x14baa8ed + member_id: 0xff6f5b56 + member_id: 0xfe0f3c45 + member_id: 0x343819a4 + member_id: 0x053ab64c + member_id: 0x678d6b11 + member_id: 0xc6101c24 + member_id: 0x44835dbf + member_id: 0xda0793ce + member_id: 0x4d9c8008 + member_id: 0xb8416178 + member_id: 0xb74e408a + member_id: 0xcb455c50 + member_id: 0x5cbd6610 + member_id: 0x5cfa9ff9 + member_id: 0x2d5bf4c7 + member_id: 0xa89285f1 + member_id: 0x5b9e4c27 + member_id: 0x1aacff1c + member_id: 0xd8353a89 + member_id: 0xca8e5735 } } struct_union { @@ -241995,6 +244554,24 @@ struct_union { member_id: 0x3363027c } } +struct_union { + id: 0xb76e80ab + kind: STRUCT + name: "platform_suspend_ops" + definition { + bytesize: 80 + member_id: 0xe9de33a2 + member_id: 0x38340c3f + member_id: 0x3d5750d1 + member_id: 0x25513c26 + member_id: 0x05e44400 + member_id: 0x26f3b7c4 + member_id: 0x7a288181 + member_id: 0xcc3d72ff + member_id: 0x8201e649 + member_id: 0x8a6bb60c + } +} struct_union { id: 0xae1656c9 kind: STRUCT @@ -242209,6 +244786,45 @@ struct_union { member_id: 0x98b9a279 } } +struct_union { + id: 0x9146342b + kind: STRUCT + name: "policydb" + definition { + bytesize: 600 + member_id: 0x3219aca6 + member_id: 0x395073a8 + member_id: 0x6fcc260e + member_id: 0x56e2856b + member_id: 0x04a57576 + member_id: 0x3ebbdd01 + member_id: 0x9361a429 + member_id: 0x5be84f8f + member_id: 0xe75ebaee + member_id: 0xd7fbd304 + member_id: 0x3981996e + member_id: 0x0048fc1f + member_id: 0xe3a3c2c5 + member_id: 0xd79237c9 + member_id: 0x9fd51a6e + member_id: 0x249ad332 + member_id: 0x75447ac6 + member_id: 0x56da2358 + member_id: 0xf14b14bf + member_id: 0x67879250 + member_id: 0x4a8a7a23 + member_id: 0x2f5e77ea + member_id: 0x737fb73e + member_id: 0x37828654 + member_id: 0x616c799d + member_id: 0xb8f1ea33 + member_id: 0x23820e22 + member_id: 0xe91e5dbc + member_id: 0x2aaa0939 + member_id: 0x055eb011 + member_id: 0x9e219cb6 + } +} struct_union { id: 0x9122057b kind: STRUCT @@ -245354,6 +247970,29 @@ struct_union { member_id: 0x73780674 } } +struct_union { + id: 0x70755111 + kind: STRUCT + name: "role_allow" + definition { + bytesize: 16 + member_id: 0xc0218aaa + member_id: 0xa3831cac + member_id: 0x11e58953 + } +} +struct_union { + id: 0xaeb84542 + kind: STRUCT + name: "role_datum" + definition { + bytesize: 40 + member_id: 0xa0c154ef + member_id: 0x41a916e7 + member_id: 0xd2c2119f + member_id: 0xf4145cd8 + } +} struct_union { id: 0xcecb0ebd kind: STRUCT @@ -247432,6 +250071,68 @@ struct_union { member_id: 0xa2420c98 } } +struct_union { + id: 0xc8601982 + kind: STRUCT + name: "selinux_avc" + definition { + bytesize: 6168 + member_id: 0xac537364 + member_id: 0x4133d93e + } +} +struct_union { + id: 0x4bc42bec + kind: STRUCT + name: "selinux_map" + definition { + bytesize: 16 + member_id: 0x5dcf7d96 + member_id: 0xd9ef552c + } +} +struct_union { + id: 0xbde6ed0a + kind: STRUCT + name: "selinux_mapping" + definition { + bytesize: 136 + member_id: 0xa099117b + member_id: 0xbe3e9d70 + member_id: 0xdb129b64 + } +} +struct_union { + id: 0xf8edba3f + kind: STRUCT + name: "selinux_policy" + definition { + bytesize: 632 + member_id: 0x71a9d2d2 + member_id: 0xbb7445e4 + member_id: 0x8dbdb056 + member_id: 0xac824246 + } +} +struct_union { + id: 0x383e783f + kind: STRUCT + name: "selinux_state" + definition { + bytesize: 104 + member_id: 0x0eb6d2c5 + member_id: 0x666c167f + member_id: 0xd56295db + member_id: 0x0d6726b0 + member_id: 0x395a2e99 + member_id: 0x6fc674e0 + member_id: 0xd41c6df7 + member_id: 0x8e288971 + member_id: 0x0a7701ba + member_id: 0x60ddb117 + member_id: 0x478ff8c9 + } +} struct_union { id: 0x6e3b7d7f kind: STRUCT @@ -247938,6 +250639,99 @@ struct_union { member_id: 0x8df0341e } } +struct_union { + id: 0x166c7a96 + kind: STRUCT + name: "sidtab" + definition { + bytesize: 7208 + member_id: 0xb97636cd + member_id: 0x65ec5744 + member_id: 0xb5c7762e + member_id: 0xb8c67f5c + member_id: 0x2d1feee5 + member_id: 0x10ef1bf4 + member_id: 0xfb7d6571 + member_id: 0x6847c1f3 + member_id: 0xfa661c0d + member_id: 0x3ac44cab + } +} +struct_union { + id: 0x536fcdfa + kind: STRUCT + name: "sidtab_convert_params" + definition { + bytesize: 24 + member_id: 0x21202e0b + member_id: 0x3423032e + member_id: 0xb3add302 + } +} +struct_union { + id: 0xd79dd5b3 + kind: STRUCT + name: "sidtab_entry" + definition { + bytesize: 104 + member_id: 0x08fb4d67 + member_id: 0x63f7869f + member_id: 0x41167d14 + member_id: 0x3b4729d9 + member_id: 0x7c9a825f + } +} +struct_union { + id: 0x4027b0c0 + kind: UNION + name: "sidtab_entry_inner" + definition { + bytesize: 8 + member_id: 0x1db8f0e1 + member_id: 0xc0d22edd + } +} +struct_union { + id: 0x585c2d3c + kind: STRUCT + name: "sidtab_isid_entry" + definition { + bytesize: 112 + member_id: 0x3db96022 + member_id: 0x4d83d109 + } +} +struct_union { + id: 0x0aaf9a0a + kind: STRUCT + name: "sidtab_node_inner" + definition { + bytesize: 4096 + member_id: 0xbedcc7b7 + } +} +struct_union { + id: 0x2ca85530 + kind: STRUCT + name: "sidtab_node_leaf" + definition { + bytesize: 4056 + member_id: 0xbe09c685 + } +} +struct_union { + id: 0xcd921577 + kind: STRUCT + name: "sidtab_str_cache" + definition { + bytesize: 48 + member_id: 0xe2ce8a90 + member_id: 0x7974d3dd + member_id: 0x720e051d + member_id: 0xb8ccdaba + member_id: 0x3afbe345 + } +} struct_union { id: 0xff9dc6cd kind: STRUCT @@ -248854,6 +251648,75 @@ struct_union { member_id: 0x7c00e79b } } +struct_union { + id: 0xa17b47ca + kind: STRUCT + name: "snd_hwdep" + definition { + bytesize: 1080 + member_id: 0x6c9f8205 + member_id: 0x7c00ebb3 + member_id: 0xea5500df + member_id: 0xcc75f0e2 + member_id: 0x0dda82b2 + member_id: 0x817b9489 + member_id: 0xaf67dd7d + member_id: 0x60e6fc7c + member_id: 0xf21ad0be + member_id: 0x567ed7ab + member_id: 0xce1ac4d6 + member_id: 0x485159b3 + member_id: 0x8bd936f8 + member_id: 0x7d8eb938 + member_id: 0x1520e961 + } +} +struct_union { + id: 0xfc7bb24b + kind: STRUCT + name: "snd_hwdep_dsp_image" + definition { + bytesize: 96 + member_id: 0xad7c8dd9 + member_id: 0x0dffaa34 + member_id: 0x7717c666 + member_id: 0xb5995149 + member_id: 0x6d79728e + } +} +struct_union { + id: 0x4c0bdc8a + kind: STRUCT + name: "snd_hwdep_dsp_status" + definition { + bytesize: 64 + member_id: 0xa624b11c + member_id: 0xcc6c8d77 + member_id: 0xe0dce54c + member_id: 0x7d8eb982 + member_id: 0xb681e609 + member_id: 0xd438fe7f + } +} +struct_union { + id: 0xecd302d8 + kind: STRUCT + name: "snd_hwdep_ops" + definition { + bytesize: 88 + member_id: 0x839f19f1 + member_id: 0x487c24fc + member_id: 0x3421983a + member_id: 0xad9b4d09 + member_id: 0xaeb73635 + member_id: 0x5e152199 + member_id: 0x4d4b9f7f + member_id: 0x7f374859 + member_id: 0x87fca00b + member_id: 0x51fefdf1 + member_id: 0xbf3c7083 + } +} struct_union { id: 0x7c95d721 kind: STRUCT @@ -251791,6 +254654,16 @@ struct_union { member_id: 0xb862f266 } } +struct_union { + id: 0x9036114e + kind: STRUCT + name: "symtab" + definition { + bytesize: 24 + member_id: 0xb6cd92ad + member_id: 0xb4f51360 + } +} struct_union { id: 0xf5cf19c0 kind: STRUCT @@ -254206,6 +257079,29 @@ struct_union { kind: STRUCT name: "tuner_setup" } +struct_union { + id: 0x77f42e7c + kind: STRUCT + name: "type_datum" + definition { + bytesize: 12 + member_id: 0xa0c154ef + member_id: 0x41a916e7 + member_id: 0xacb061a5 + member_id: 0xa926c7e0 + } +} +struct_union { + id: 0x833ba199 + kind: STRUCT + name: "type_set" + definition { + bytesize: 40 + member_id: 0xf4145411 + member_id: 0xcf8ca44d + member_id: 0x2da18cde + } +} struct_union { id: 0xf1a685d1 kind: STRUCT @@ -254277,6 +257173,18 @@ struct_union { member_id: 0xf832711c } } +struct_union { + id: 0xb00910d2 + kind: STRUCT + name: "typec_mux_desc" + definition { + bytesize: 32 + member_id: 0x6e4d805e + member_id: 0x3d9ec2a7 + member_id: 0x0de5752a + member_id: 0x7020be32 + } +} struct_union { id: 0xe936a00b kind: STRUCT @@ -257255,6 +260163,19 @@ struct_union { member_id: 0x2d5bf612 } } +struct_union { + id: 0x05ebf2f3 + kind: STRUCT + name: "user_datum" + definition { + bytesize: 96 + member_id: 0xa0c154ef + member_id: 0x41a916e7 + member_id: 0x39f20f43 + member_id: 0x0e5c15b9 + member_id: 0x5898f7bd + } +} struct_union { id: 0xd19129ce kind: STRUCT @@ -260944,8 +263865,8 @@ struct_union { kind: STRUCT name: "vm_event_state" definition { - bytesize: 728 - member_id: 0x0a27a0a6 + bytesize: 752 + member_id: 0x0ab8cdfd } } struct_union { @@ -263195,22 +266116,22 @@ struct_union { member_id: 0x07981254 member_id: 0x9b453c32 member_id: 0x0a3ca227 - member_id: 0x8bd8e3c1 - member_id: 0xde15fda7 - member_id: 0x35e57a15 - member_id: 0xf05013fc - member_id: 0x0604b681 - member_id: 0xf0985884 - member_id: 0x22a286b3 - member_id: 0xe083d44e - member_id: 0x80fef2ae - member_id: 0xa43d0ee0 - member_id: 0x67e4f1be - member_id: 0xd226c4c9 - member_id: 0x0de57e2c - member_id: 0xc63cfa37 - member_id: 0xfb3e8cb0 - member_id: 0xd568c61a + member_id: 0x8b466b27 + member_id: 0xde15f2ac + member_id: 0x35e57e51 + member_id: 0xf050196f + member_id: 0x0604bd95 + member_id: 0xf098512e + member_id: 0x22a28faf + member_id: 0xe083d61b + member_id: 0x80fefd42 + member_id: 0xa43d0489 + member_id: 0x67e4f214 + member_id: 0xd226c8d1 + member_id: 0x0de57a95 + member_id: 0xc63cf6c9 + member_id: 0xfb3e84c0 + member_id: 0xd568c3b9 member_id: 0xcb45579f member_id: 0xfbc061e4 member_id: 0x2d5bf586 @@ -263236,8 +266157,8 @@ struct_union { kind: STRUCT name: "zonelist" definition { - bytesize: 64 - member_id: 0xf5446657 + bytesize: 80 + member_id: 0xf521d76a } } struct_union { @@ -271544,6 +274465,24 @@ enumeration { } } } +enumeration { + id: 0xa1ef211c + name: "iommu_page_response_code" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "IOMMU_PAGE_RESP_SUCCESS" + } + enumerator { + name: "IOMMU_PAGE_RESP_INVALID" + value: 1 + } + enumerator { + name: "IOMMU_PAGE_RESP_FAILURE" + value: 2 + } + } +} enumeration { id: 0xf0cb20f0 name: "iommu_resv_type" @@ -280824,6 +283763,24 @@ enumeration { } } } +enumeration { + id: 0xd0cce131 + name: "utf16_endian" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "UTF16_HOST_ENDIAN" + } + enumerator { + name: "UTF16_LITTLE_ENDIAN" + value: 1 + } + enumerator { + name: "UTF16_BIG_ENDIAN" + value: 2 + } + } +} enumeration { id: 0xa422cab0 name: "v4l2_async_match_type" @@ -281550,9 +284507,13 @@ enumeration { value: 2 } enumerator { - name: "__MAX_NR_ZONES" + name: "ZONE_DEVICE" value: 3 } + enumerator { + name: "__MAX_NR_ZONES" + value: 4 + } } } enumeration { @@ -281722,6 +284683,14 @@ function { return_type_id: 0xe276adef parameter_id: 0x3e10b518 } +function { + id: 0x032333c6 + return_type_id: 0x48b5725f + parameter_id: 0x4585663f + parameter_id: 0xb0c2eb21 + parameter_id: 0x6720d32f + parameter_id: 0x3e10b518 +} function { id: 0x033c2ce9 return_type_id: 0x48b5725f @@ -282054,6 +285023,12 @@ function { parameter_id: 0x0258f96e parameter_id: 0x39cc14ac } +function { + id: 0x0fe1d65c + return_type_id: 0x17dabdcd + parameter_id: 0x33baebd5 + parameter_id: 0x6720d32f +} function { id: 0x0fe6e820 return_type_id: 0x28136e4b @@ -282520,6 +285495,12 @@ function { parameter_id: 0x0258f96e parameter_id: 0x1fc34bc2 } +function { + id: 0x10776911 + return_type_id: 0x48b5725f + parameter_id: 0x0258f96e + parameter_id: 0x1e41b656 +} function { id: 0x107966af return_type_id: 0x48b5725f @@ -282671,6 +285652,12 @@ function { parameter_id: 0x0258f96e parameter_id: 0x334c07d5 } +function { + id: 0x10c3ba5a + return_type_id: 0x48b5725f + parameter_id: 0x0258f96e + parameter_id: 0x33756485 +} function { id: 0x10c48dc9 return_type_id: 0x48b5725f @@ -283449,6 +286436,15 @@ function { return_type_id: 0x48b5725f parameter_id: 0x054f691a } +function { + id: 0x11cf2aed + return_type_id: 0x48b5725f + parameter_id: 0x0687edf5 + parameter_id: 0x3e10b518 + parameter_id: 0x384f7d7c + parameter_id: 0x3e10b518 + parameter_id: 0xa52a0930 +} function { id: 0x11cfb4cd return_type_id: 0x48b5725f @@ -283826,6 +286822,13 @@ function { parameter_id: 0x0ae4a2c7 parameter_id: 0x120540d1 } +function { + id: 0x126ef68a + return_type_id: 0x48b5725f + parameter_id: 0x078316ff + parameter_id: 0xc9082b19 + parameter_id: 0xc9082b19 +} function { id: 0x12725ea0 return_type_id: 0x48b5725f @@ -283897,11 +286900,6 @@ function { return_type_id: 0x48b5725f parameter_id: 0x0858434c } -function { - id: 0x1294c81d - return_type_id: 0x48b5725f - parameter_id: 0x08326638 -} function { id: 0x129c1f38 return_type_id: 0x48b5725f @@ -284470,6 +287468,12 @@ function { parameter_id: 0x09427c40 parameter_id: 0x6d7f5ff6 } +function { + id: 0x1382dd85 + return_type_id: 0x48b5725f + parameter_id: 0x08326638 + parameter_id: 0x4585663f +} function { id: 0x1389ce9e return_type_id: 0x48b5725f @@ -284956,6 +287960,11 @@ function { parameter_id: 0x11b32828 parameter_id: 0x32a623d7 } +function { + id: 0x143ecb11 + return_type_id: 0x48b5725f + parameter_id: 0x129a6a0a +} function { id: 0x1440a366 return_type_id: 0xd5cc9c9a @@ -285385,6 +288394,12 @@ function { parameter_id: 0x1d44326e parameter_id: 0xc9082b19 } +function { + id: 0x14f27dac + return_type_id: 0x48b5725f + parameter_id: 0x17dabdcd + parameter_id: 0x6720d32f +} function { id: 0x14f49b99 return_type_id: 0x48b5725f @@ -285851,6 +288866,11 @@ function { parameter_id: 0x1479c6e7 parameter_id: 0x1d44326e } +function { + id: 0x15f8fb52 + return_type_id: 0x48b5725f + parameter_id: 0x1582ab06 +} function { id: 0x15fdba89 return_type_id: 0x48b5725f @@ -287138,6 +290158,11 @@ function { parameter_id: 0x2668e644 parameter_id: 0x4a500dc8 } +function { + id: 0x182beb86 + return_type_id: 0x48b5725f + parameter_id: 0x22cee855 +} function { id: 0x184069d1 return_type_id: 0x48b5725f @@ -287444,6 +290469,12 @@ function { return_type_id: 0x48b5725f parameter_id: 0x2170d06d } +function { + id: 0x18c8f1d0 + return_type_id: 0xa1ef211c + parameter_id: 0x16886f92 + parameter_id: 0x18bd6530 +} function { id: 0x18cc928e return_type_id: 0x48b5725f @@ -287475,6 +290506,11 @@ function { return_type_id: 0x48b5725f parameter_id: 0x21069feb } +function { + id: 0x18daa769 + return_type_id: 0x48b5725f + parameter_id: 0x210bdbea +} function { id: 0x18db21cb return_type_id: 0x48b5725f @@ -287900,11 +290936,6 @@ function { return_type_id: 0x48b5725f parameter_id: 0x25b73daa } -function { - id: 0x19f5bee7 - return_type_id: 0x48b5725f - parameter_id: 0x25b7bdd2 -} function { id: 0x19fe25be return_type_id: 0x48b5725f @@ -288537,6 +291568,11 @@ function { parameter_id: 0x2b8a97e8 parameter_id: 0x37fc9b61 } +function { + id: 0x1aa56a0d + return_type_id: 0x48b5725f + parameter_id: 0x28f4ee78 +} function { id: 0x1aaa80e6 return_type_id: 0x48b5725f @@ -289170,6 +292206,13 @@ function { return_type_id: 0x48b5725f parameter_id: 0x2c2f07d2 } +function { + id: 0x1b939af9 + return_type_id: 0x48b5725f + parameter_id: 0x2cc0f57b + parameter_id: 0x0f765b6d + parameter_id: 0x18bd6530 +} function { id: 0x1b96d351 return_type_id: 0x48b5725f @@ -290518,6 +293561,11 @@ function { parameter_id: 0x01222f7d parameter_id: 0x33756485 } +function { + id: 0x1d20fb22 + return_type_id: 0x48b5725f + parameter_id: 0x36e2aac5 +} function { id: 0x1d2130a6 return_type_id: 0x48b5725f @@ -291376,12 +294424,6 @@ function { return_type_id: 0x48b5725f parameter_id: 0x3b12c8e0 } -function { - id: 0x1e603d44 - return_type_id: 0x48b5725f - parameter_id: 0x3a8e2ac6 - parameter_id: 0x16f99983 -} function { id: 0x1e626071 return_type_id: 0x48b5725f @@ -292271,6 +295313,11 @@ function { return_type_id: 0x48b5725f parameter_id: 0x3f84ee3c } +function { + id: 0x1f7d7689 + return_type_id: 0x48b5725f + parameter_id: 0x3f949c69 +} function { id: 0x1f7d7d9e return_type_id: 0x48b5725f @@ -292432,6 +295479,12 @@ function { return_type_id: 0x48b5725f parameter_id: 0x3d435d11 } +function { + id: 0x1fc98171 + return_type_id: 0x48b5725f + parameter_id: 0x391f15ea + parameter_id: 0x4585663f +} function { id: 0x1fca95d0 return_type_id: 0x48b5725f @@ -292456,6 +295509,13 @@ function { parameter_id: 0x397d00ab parameter_id: 0x4585663f } +function { + id: 0x1fd78946 + return_type_id: 0x48b5725f + parameter_id: 0x3b08eb03 + parameter_id: 0x6720d32f + parameter_id: 0x4585663f +} function { id: 0x1fd9024d return_type_id: 0x48b5725f @@ -292890,6 +295950,13 @@ function { parameter_id: 0x0258f96e parameter_id: 0x3e10b518 } +function { + id: 0x2beed169 + return_type_id: 0xb94e10c7 + parameter_id: 0x22cee855 + parameter_id: 0x18ea6ae3 + parameter_id: 0x28ddd932 +} function { id: 0x2c0dbc38 return_type_id: 0xb94e10c7 @@ -292961,6 +296028,11 @@ function { return_type_id: 0x04537b8c parameter_id: 0x1fa7df7c } +function { + id: 0x2d456d1f + return_type_id: 0x37cc86e2 + parameter_id: 0x0cc78943 +} function { id: 0x2d5eecc4 return_type_id: 0x18456730 @@ -293039,6 +296111,11 @@ function { parameter_id: 0x3760766d parameter_id: 0x3c38843b } +function { + id: 0x2eb1a24e + return_type_id: 0x145f7b00 + parameter_id: 0x3ddc5dec +} function { id: 0x2f31eea6 return_type_id: 0xa8fff47c @@ -293106,6 +296183,11 @@ function { return_type_id: 0x27b71910 parameter_id: 0x1d44326e } +function { + id: 0x30dc6fbb + return_type_id: 0x17dabdcd + parameter_id: 0xc93e017b +} function { id: 0x30f59213 return_type_id: 0x33756485 @@ -294207,6 +297289,14 @@ function { parameter_id: 0x18bd6530 parameter_id: 0x3f54a013 } +function { + id: 0x49205c94 + return_type_id: 0x39470e64 + parameter_id: 0x22cee855 + parameter_id: 0x18ea6ae3 + parameter_id: 0x39470e64 + parameter_id: 0x6720d32f +} function { id: 0x4951a397 return_type_id: 0xc9082b19 @@ -294277,11 +297367,6 @@ function { parameter_id: 0x1e820193 parameter_id: 0x6d7f5ff6 } -function { - id: 0x4c95c416 - return_type_id: 0xc9082b19 - parameter_id: 0x25b7bdd2 -} function { id: 0x4cd21214 return_type_id: 0x3d435d11 @@ -294518,6 +297603,11 @@ function { parameter_id: 0x1dce0fdd parameter_id: 0x6d7f5ff6 } +function { + id: 0x5120d3a0 + return_type_id: 0x28f4ee78 + parameter_id: 0x6720d32f +} function { id: 0x513ab761 return_type_id: 0x92233392 @@ -294612,6 +297702,12 @@ function { parameter_id: 0x33756485 parameter_id: 0x33756485 } +function { + id: 0x53aca83f + return_type_id: 0x18bd6530 + parameter_id: 0x129a6a0a + parameter_id: 0x6720d32f +} function { id: 0x53d7cb1d return_type_id: 0x0930c6d9 @@ -294731,6 +297827,13 @@ function { return_type_id: 0x18bd6530 parameter_id: 0x0f78474f } +function { + id: 0x555557dd + return_type_id: 0x18bd6530 + parameter_id: 0x0b30ee00 + parameter_id: 0x4585663f + parameter_id: 0x6720d32f +} function { id: 0x558481fc return_type_id: 0x18bd6530 @@ -295647,6 +298750,15 @@ function { parameter_id: 0x2aae29b4 parameter_id: 0x2ac683aa } +function { + id: 0x62b8d7ec + return_type_id: 0x09427c40 + parameter_id: 0x0258f96e + parameter_id: 0x3e10b518 + parameter_id: 0x197dca09 + parameter_id: 0x13c70029 + parameter_id: 0x6720d32f +} function { id: 0x62c598e2 return_type_id: 0x054f691a @@ -295869,6 +298981,11 @@ function { parameter_id: 0x11b32828 parameter_id: 0xc9082b19 } +function { + id: 0x69e09f9b + return_type_id: 0x09427c40 + parameter_id: 0x2cc0f57b +} function { id: 0x6a0b7818 return_type_id: 0x054f691a @@ -295984,6 +299101,12 @@ function { parameter_id: 0x3e10b518 parameter_id: 0xa52a0930 } +function { + id: 0x6caf01af + return_type_id: 0x30dd91a5 + parameter_id: 0x0258f96e + parameter_id: 0x3694d3c2 +} function { id: 0x6cb3f0eb return_type_id: 0x014b8475 @@ -296192,6 +299315,14 @@ function { parameter_id: 0xf435685e parameter_id: 0x33756485 } +function { + id: 0x70203fbf + return_type_id: 0x1d19a9d5 + parameter_id: 0x2c7bd73f + parameter_id: 0x18bd6530 + parameter_id: 0x4585663f + parameter_id: 0x3e10b518 +} function { id: 0x7028bf98 return_type_id: 0x1d19a9d5 @@ -296734,6 +299865,11 @@ function { return_type_id: 0x11e6864c parameter_id: 0x11e6864c } +function { + id: 0x83254e2c + return_type_id: 0x3e10b518 + parameter_id: 0x4585663f +} function { id: 0x835e595c return_type_id: 0x2e0f9112 @@ -297004,6 +300140,15 @@ function { parameter_id: 0x6720d32f parameter_id: 0x6720d32f } +function { + id: 0x85da991d + return_type_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x38323bdd + parameter_id: 0x3e10b518 + parameter_id: 0xe5e56f65 +} function { id: 0x85e53152 return_type_id: 0x6720d32f @@ -297602,12 +300747,6 @@ function { parameter_id: 0x4585663f parameter_id: 0xf435685e } -function { - id: 0x90246b11 - return_type_id: 0x6720d32f - parameter_id: 0x35d510c3 - parameter_id: 0x347303b4 -} function { id: 0x90286f13 return_type_id: 0x6720d32f @@ -297622,6 +300761,12 @@ function { parameter_id: 0x4585663f parameter_id: 0x03ecaf94 } +function { + id: 0x902f9013 + return_type_id: 0x6720d32f + parameter_id: 0x30cfc1c2 + parameter_id: 0x6720d32f +} function { id: 0x903246db return_type_id: 0x6720d32f @@ -298914,6 +302059,14 @@ function { parameter_id: 0x6720d32f parameter_id: 0x914dbfdc } +function { + id: 0x9175015c + return_type_id: 0x6720d32f + parameter_id: 0x33f8b54b + parameter_id: 0x0483e6f8 + parameter_id: 0x6720d32f + parameter_id: 0x022383b2 +} function { id: 0x91761011 return_type_id: 0x6720d32f @@ -300208,6 +303361,12 @@ function { parameter_id: 0x7a8335ad parameter_id: 0x361d366b } +function { + id: 0x923e6d3f + return_type_id: 0x6720d32f + parameter_id: 0x31b96ec5 + parameter_id: 0xf435685e +} function { id: 0x923e8caa return_type_id: 0x6720d32f @@ -300391,6 +303550,11 @@ function { parameter_id: 0x3176a085 parameter_id: 0xeeed68e6 } +function { + id: 0x92697f90 + return_type_id: 0x6720d32f + parameter_id: 0x3fa672fd +} function { id: 0x9269f2bc return_type_id: 0x3e10b518 @@ -300747,6 +303911,12 @@ function { parameter_id: 0x3e10b518 parameter_id: 0x3185812b } +function { + id: 0x92c581e2 + return_type_id: 0x6720d32f + parameter_id: 0x3e10b518 + parameter_id: 0x3053e2de +} function { id: 0x92c58e2b return_type_id: 0x6720d32f @@ -301298,6 +304468,11 @@ function { return_type_id: 0x6720d32f parameter_id: 0x3b04bead } +function { + id: 0x9342d9ef + return_type_id: 0x6720d32f + parameter_id: 0x3b08eb03 +} function { id: 0x93445117 return_type_id: 0x6720d32f @@ -301403,6 +304578,21 @@ function { return_type_id: 0x6720d32f parameter_id: 0x3bb11c92 } +function { + id: 0x93788ff8 + return_type_id: 0x6720d32f + parameter_id: 0x3a8e2ac6 + parameter_id: 0x16f99983 +} +function { + id: 0x937ab4d8 + return_type_id: 0x6720d32f + parameter_id: 0x3d4bf55f + parameter_id: 0x6720d32f + parameter_id: 0xd0cce131 + parameter_id: 0x00c72527 + parameter_id: 0x6720d32f +} function { id: 0x937bb0c9 return_type_id: 0x6720d32f @@ -302224,6 +305414,12 @@ function { parameter_id: 0x0fec25a9 parameter_id: 0x6720d32f } +function { + id: 0x9486061c + return_type_id: 0x6720d32f + parameter_id: 0x26ee682a + parameter_id: 0x2f5fce77 +} function { id: 0x948ec07f return_type_id: 0x6720d32f @@ -302571,6 +305767,14 @@ function { parameter_id: 0x2060db23 parameter_id: 0x295c7202 } +function { + id: 0x95415c1d + return_type_id: 0x6720d32f + parameter_id: 0x22cee855 + parameter_id: 0x18ea6ae3 + parameter_id: 0x4585663f + parameter_id: 0x33756485 +} function { id: 0x954268bb return_type_id: 0x6720d32f @@ -302645,6 +305849,19 @@ function { parameter_id: 0x064d6086 parameter_id: 0x30474302 } +function { + id: 0x9550f091 + return_type_id: 0x6720d32f + parameter_id: 0x22cee855 + parameter_id: 0x18ea6ae3 +} +function { + id: 0x95527441 + return_type_id: 0x6720d32f + parameter_id: 0x22cee855 + parameter_id: 0x18ea6ae3 + parameter_id: 0x0a134144 +} function { id: 0x955347a9 return_type_id: 0x6720d32f @@ -302656,6 +305873,12 @@ function { return_type_id: 0x6720d32f parameter_id: 0x234c60dd } +function { + id: 0x95551200 + return_type_id: 0x6720d32f + parameter_id: 0x22cee855 + parameter_id: 0x1992ce85 +} function { id: 0x95587b1f return_type_id: 0x6720d32f @@ -302984,6 +306207,14 @@ function { parameter_id: 0x6720d32f parameter_id: 0x6720d32f } +function { + id: 0x95be13f6 + return_type_id: 0x6720d32f + parameter_id: 0x22c0624b + parameter_id: 0x22c0624b + parameter_id: 0x18bd6530 + parameter_id: 0xf1a6dfed +} function { id: 0x95bed865 return_type_id: 0x6720d32f @@ -303068,6 +306299,12 @@ function { return_type_id: 0x6720d32f parameter_id: 0x2170d06d } +function { + id: 0x95e5626e + return_type_id: 0x6720d32f + parameter_id: 0x22cee855 + parameter_id: 0x358ed535 +} function { id: 0x95e66878 return_type_id: 0x6720d32f @@ -303199,6 +306436,13 @@ function { parameter_id: 0x2efe8065 parameter_id: 0x0582a4cb } +function { + id: 0x962b38df + return_type_id: 0x6720d32f + parameter_id: 0x2e94a1e1 + parameter_id: 0x0258f96e + parameter_id: 0x1e41b656 +} function { id: 0x962ca8b2 return_type_id: 0x6720d32f @@ -303367,6 +306611,14 @@ function { parameter_id: 0x1d19a9d5 parameter_id: 0x3c63caea } +function { + id: 0x967da352 + return_type_id: 0x6720d32f + parameter_id: 0x2cc0f57b + parameter_id: 0x37429bf2 + parameter_id: 0x4585663f + parameter_id: 0x4585663f +} function { id: 0x967dadeb return_type_id: 0x6720d32f @@ -304082,6 +307334,13 @@ function { parameter_id: 0x2dde023d parameter_id: 0x6720d32f } +function { + id: 0x976cd0e7 + return_type_id: 0x6720d32f + parameter_id: 0x28f4ee78 + parameter_id: 0x3e10b518 + parameter_id: 0xa52a0930 +} function { id: 0x977041a6 return_type_id: 0x6720d32f @@ -305108,6 +308367,13 @@ function { return_type_id: 0x6720d32f parameter_id: 0x17fa285b } +function { + id: 0x987fb987 + return_type_id: 0x6720d32f + parameter_id: 0x17dabdcd + parameter_id: 0x0258f96e + parameter_id: 0x0258f96e +} function { id: 0x9882219f return_type_id: 0x6720d32f @@ -305441,6 +308707,12 @@ function { parameter_id: 0x17047654 parameter_id: 0x295c7202 } +function { + id: 0x98e6a470 + return_type_id: 0x6720d32f + parameter_id: 0x14b9453b + parameter_id: 0x1205844a +} function { id: 0x98e78094 return_type_id: 0x6720d32f @@ -306240,6 +309512,15 @@ function { return_type_id: 0x6720d32f parameter_id: 0x12c0ba43 } +function { + id: 0x99314acb + return_type_id: 0x6720d32f + parameter_id: 0x14b9453b + parameter_id: 0x6720d32f + parameter_id: 0x0258f96e + parameter_id: 0xf435685e + parameter_id: 0xf435685e +} function { id: 0x9932312d return_type_id: 0x6720d32f @@ -307301,6 +310582,14 @@ function { parameter_id: 0x3f0185ef parameter_id: 0xf435685e } +function { + id: 0x9a1334e6 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x6d7f5ff6 + parameter_id: 0x24373219 + parameter_id: 0x1f8dbf97 +} function { id: 0x9a1350a4 return_type_id: 0x6720d32f @@ -307569,6 +310858,14 @@ function { parameter_id: 0x6720d32f parameter_id: 0x31c0ce8c } +function { + id: 0x9a3f7770 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f + parameter_id: 0x35612b46 + parameter_id: 0x4585663f +} function { id: 0x9a3faf0d return_type_id: 0x6720d32f @@ -308777,6 +312074,20 @@ function { parameter_id: 0x18ea6ae3 parameter_id: 0x3ee42466 } +function { + id: 0x9b427bba + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x387626d3 + parameter_id: 0x30650ba6 +} +function { + id: 0x9b432d7a + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x38af3519 + parameter_id: 0x38af3519 +} function { id: 0x9b43bd7f return_type_id: 0x6720d32f @@ -308839,6 +312150,15 @@ function { parameter_id: 0x3c01aef6 parameter_id: 0x38d23361 } +function { + id: 0x9b478d6a + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x390ad61e + parameter_id: 0x33756485 + parameter_id: 0x33756485 + parameter_id: 0x33756485 +} function { id: 0x9b478eda return_type_id: 0x6720d32f @@ -308894,6 +312214,12 @@ function { parameter_id: 0x1a8d1bcb parameter_id: 0x1a080f6e } +function { + id: 0x9b4b913b + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x390ad61e +} function { id: 0x9b4bcb26 return_type_id: 0x6720d32f @@ -308905,6 +312231,12 @@ function { parameter_id: 0x1830dd64 parameter_id: 0x31c0ce8c } +function { + id: 0x9b4d06b7 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x38af3519 +} function { id: 0x9b4d6cf8 return_type_id: 0x6720d32f @@ -309059,12 +312391,24 @@ function { parameter_id: 0x13580d6c parameter_id: 0x13580d6c } +function { + id: 0x9b57e4f6 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x3e17a54c +} function { id: 0x9b57f8b7 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 parameter_id: 0x3e10b518 } +function { + id: 0x9b585c8d + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x3df9bbb6 +} function { id: 0x9b5888dd return_type_id: 0x6720d32f @@ -309482,6 +312826,15 @@ function { parameter_id: 0x16239d0c parameter_id: 0x1ca06989 } +function { + id: 0x9b7c44ce + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x38af3519 + parameter_id: 0xc9082b19 + parameter_id: 0xc9082b19 + parameter_id: 0x914dbfdc +} function { id: 0x9b7c6e74 return_type_id: 0x6720d32f @@ -309965,6 +313318,15 @@ function { parameter_id: 0x6720d32f parameter_id: 0x0b756bd6 } +function { + id: 0x9bb5868f + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x078316ff + parameter_id: 0x11cfee5a + parameter_id: 0x11cfee5a + parameter_id: 0x11cfee5a +} function { id: 0x9bb62df9 return_type_id: 0x6720d32f @@ -311116,6 +314478,12 @@ function { parameter_id: 0x054f691a parameter_id: 0x3399c453 } +function { + id: 0x9c1de0b0 + return_type_id: 0x6720d32f + parameter_id: 0x078316ff + parameter_id: 0x1f718836 +} function { id: 0x9c1fae0d return_type_id: 0x6720d32f @@ -312628,6 +315996,12 @@ function { parameter_id: 0x6720d32f parameter_id: 0x1e3484dc } +function { + id: 0x9d3b1e84 + return_type_id: 0x6720d32f + parameter_id: 0x0258f96e + parameter_id: 0x0b70fc18 +} function { id: 0x9d3b60fc return_type_id: 0x6720d32f @@ -316073,6 +319447,23 @@ function { return_type_id: 0x3e10b518 parameter_id: 0xc5caf5f9 } +function { + id: 0xa355db3b + return_type_id: 0x257d12af + parameter_id: 0x17dabdcd + parameter_id: 0xac0d3a85 + parameter_id: 0xac0d3a85 + parameter_id: 0x92233392 + parameter_id: 0x18bd6530 +} +function { + id: 0xa355dd14 + return_type_id: 0x257d12af + parameter_id: 0x17dabdcd + parameter_id: 0xac0d3a85 + parameter_id: 0xac0d3a85 + parameter_id: 0x92233392 +} function { id: 0xa3adbe6c return_type_id: 0x25b73daa @@ -316677,6 +320068,14 @@ function { return_type_id: 0x0258f96e parameter_id: 0x09a83f1c } +function { + id: 0xaf54cd38 + return_type_id: 0xfc0e1dbd + parameter_id: 0x22cee855 + parameter_id: 0x3e10b518 + parameter_id: 0xfc0e1dbd + parameter_id: 0x0379c823 +} function { id: 0xaf57be52 return_type_id: 0x2584a3b9 @@ -316690,6 +320089,14 @@ function { parameter_id: 0x015f6fbc parameter_id: 0x13580d6c } +function { + id: 0xafbe8077 + return_type_id: 0xfc0e1dbd + parameter_id: 0x22cee855 + parameter_id: 0x0483e6f8 + parameter_id: 0xfc0e1dbd + parameter_id: 0x0379c823 +} function { id: 0xafc2e9e9 return_type_id: 0x6720d32f @@ -316738,6 +320145,11 @@ function { parameter_id: 0x11281698 parameter_id: 0x38d23361 } +function { + id: 0xb315f206 + return_type_id: 0x6720d32f + parameter_id: 0xba5444a6 +} function { id: 0xb367c064 return_type_id: 0xe02e14d6 @@ -316777,13 +320189,6 @@ function { return_type_id: 0x11c404ba parameter_id: 0xada894ab } -function { - id: 0xb54be4a7 - return_type_id: 0x25b7bdd2 - parameter_id: 0x0258f96e - parameter_id: 0x1b36c7a2 - parameter_id: 0x18bd6530 -} function { id: 0xb649ac13 return_type_id: 0x067c4b9a @@ -316803,6 +320208,14 @@ function { parameter_id: 0x33756485 parameter_id: 0xf1a6dfed } +function { + id: 0xb8307855 + return_type_id: 0x06835e9c + parameter_id: 0x1582ab06 + parameter_id: 0x33756485 + parameter_id: 0x1650be92 + parameter_id: 0x18ea6ae3 +} function { id: 0xb87b745c return_type_id: 0x06835e9c @@ -317859,6 +321272,11 @@ function { parameter_id: 0x94ed3026 parameter_id: 0x0a193bb7 } +function { + id: 0xd673de47 + return_type_id: 0x02eb105a + parameter_id: 0x02eb105a +} function { id: 0xd68deb3e return_type_id: 0x0aee6b3c @@ -317882,6 +321300,10 @@ function { return_type_id: 0x1e820193 parameter_id: 0x2208f89a } +function { + id: 0xd6c91a51 + return_type_id: 0x02eb105a +} function { id: 0xd7754407 return_type_id: 0x276a1779 @@ -318502,6 +321924,13 @@ function { parameter_id: 0x38d23361 parameter_id: 0x3ea31487 } +function { + id: 0xf07462c6 + return_type_id: 0x26ee682a + parameter_id: 0x2f5fce77 + parameter_id: 0x2fb1b820 + parameter_id: 0x2fb1b820 +} function { id: 0xf0a03df0 return_type_id: 0x6d7f5ff6 @@ -318744,11 +322173,12 @@ function { parameter_id: 0x32941b2b } function { - id: 0xf203b182 + id: 0xf2022d01 return_type_id: 0x6d7f5ff6 parameter_id: 0x32a623d7 parameter_id: 0x054f691a parameter_id: 0x6d7f5ff6 + parameter_id: 0x6720d32f } function { id: 0xf20dd3f1 @@ -319385,6 +322815,13 @@ function { parameter_id: 0x1a61f607 parameter_id: 0x39a83127 } +function { + id: 0xf8fa1a38 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x1e820193 + parameter_id: 0x7be80061 + parameter_id: 0x4585663f +} function { id: 0xf904db60 return_type_id: 0x6d7f5ff6 @@ -319401,6 +322838,12 @@ function { parameter_id: 0x18019702 parameter_id: 0x6720d32f } +function { + id: 0xf9662ef4 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x1e820193 + parameter_id: 0x18bd6530 +} function { id: 0xf9d4ae0e return_type_id: 0x6d7f5ff6 @@ -319608,6 +323051,11 @@ function { parameter_id: 0x1e820193 parameter_id: 0x15a30023 } +function { + id: 0xfca015af + return_type_id: 0x6d7f5ff6 + parameter_id: 0x08113aaf +} function { id: 0xfcb3294d return_type_id: 0x6d7f5ff6 @@ -319934,7 +323382,7 @@ elf_symbol { name: "I_BDEV" is_defined: true symbol_type: FUNCTION - crc: 0xc79e45c3 + crc: 0xbf847796 type_id: 0x2dfa71ba full_name: "I_BDEV" } @@ -319943,7 +323391,7 @@ elf_symbol { name: "__ClearPageMovable" is_defined: true symbol_type: FUNCTION - crc: 0x4cf602fa + crc: 0xd312e35b type_id: 0x11388634 full_name: "__ClearPageMovable" } @@ -319952,7 +323400,7 @@ elf_symbol { name: "__SetPageMovable" is_defined: true symbol_type: FUNCTION - crc: 0x60f5778b + crc: 0x9c92af65 type_id: 0x11e189a0 full_name: "__SetPageMovable" } @@ -319970,7 +323418,7 @@ elf_symbol { name: "___pskb_trim" is_defined: true symbol_type: FUNCTION - crc: 0x1902587b + crc: 0x44aa5fa1 type_id: 0x9dc52cf1 full_name: "___pskb_trim" } @@ -319988,7 +323436,7 @@ elf_symbol { name: "__alloc_pages" is_defined: true symbol_type: FUNCTION - crc: 0x08dfd175 + crc: 0xebd12c5a type_id: 0x80fe241d full_name: "__alloc_pages" } @@ -320015,7 +323463,7 @@ elf_symbol { name: "__alloc_skb" is_defined: true symbol_type: FUNCTION - crc: 0x0170f6ac + crc: 0x0d590b1c type_id: 0x7a21af66 full_name: "__alloc_skb" } @@ -320059,7 +323507,7 @@ elf_symbol { name: "__auxiliary_driver_register" is_defined: true symbol_type: FUNCTION - crc: 0xb79f4c6e + crc: 0x9fb5cfca type_id: 0x9939118b full_name: "__auxiliary_driver_register" } @@ -320068,7 +323516,7 @@ elf_symbol { name: "__balance_callbacks" is_defined: true symbol_type: FUNCTION - crc: 0x7fd6e661 + crc: 0x6ea8ba01 type_id: 0x1b18f64e full_name: "__balance_callbacks" } @@ -320176,7 +323624,7 @@ elf_symbol { name: "__blk_alloc_disk" is_defined: true symbol_type: FUNCTION - crc: 0x499758cf + crc: 0x6be31596 type_id: 0x55afd20f full_name: "__blk_alloc_disk" } @@ -320185,16 +323633,25 @@ elf_symbol { name: "__blk_mq_alloc_disk" is_defined: true symbol_type: FUNCTION - crc: 0x10072d11 + crc: 0xb570d42a type_id: 0x475eeec2 full_name: "__blk_mq_alloc_disk" } +elf_symbol { + id: 0x01badff0 + name: "__blk_mq_end_request" + is_defined: true + symbol_type: FUNCTION + crc: 0xbbdd205e + type_id: 0x16d771f6 + full_name: "__blk_mq_end_request" +} elf_symbol { id: 0x5a6afeee name: "__blk_rq_map_sg" is_defined: true symbol_type: FUNCTION - crc: 0x15d619be + crc: 0x5d8183c8 type_id: 0x9fae3c48 full_name: "__blk_rq_map_sg" } @@ -320203,7 +323660,7 @@ elf_symbol { name: "__cfg80211_alloc_event_skb" is_defined: true symbol_type: FUNCTION - crc: 0x16c72753 + crc: 0x2ba718d3 type_id: 0x6c2e1f92 full_name: "__cfg80211_alloc_event_skb" } @@ -320212,7 +323669,7 @@ elf_symbol { name: "__cfg80211_alloc_reply_skb" is_defined: true symbol_type: FUNCTION - crc: 0xe021ac04 + crc: 0x437e8dba type_id: 0x6f4d03a8 full_name: "__cfg80211_alloc_reply_skb" } @@ -320221,7 +323678,7 @@ elf_symbol { name: "__cfg80211_radar_event" is_defined: true symbol_type: FUNCTION - crc: 0xea8920c0 + crc: 0xf2253866 type_id: 0x14459469 full_name: "__cfg80211_radar_event" } @@ -320230,7 +323687,7 @@ elf_symbol { name: "__cfg80211_send_event_skb" is_defined: true symbol_type: FUNCTION - crc: 0x490059e5 + crc: 0xf27d4cfc type_id: 0x120d10aa full_name: "__cfg80211_send_event_skb" } @@ -320248,7 +323705,7 @@ elf_symbol { name: "__class_create" is_defined: true symbol_type: FUNCTION - crc: 0x3a155f85 + crc: 0x6f06db1c type_id: 0x9e2a24ca full_name: "__class_create" } @@ -320257,7 +323714,7 @@ elf_symbol { name: "__class_register" is_defined: true symbol_type: FUNCTION - crc: 0x90ae69d8 + crc: 0x8469953b type_id: 0x977ee81f full_name: "__class_register" } @@ -320266,7 +323723,7 @@ elf_symbol { name: "__clk_determine_rate" is_defined: true symbol_type: FUNCTION - crc: 0x3311c5af + crc: 0x97ac982f type_id: 0x9fc8d916 full_name: "__clk_determine_rate" } @@ -320275,7 +323732,7 @@ elf_symbol { name: "__clk_get_hw" is_defined: true symbol_type: FUNCTION - crc: 0x0df0ebfa + crc: 0xdb27fc3e type_id: 0xd1121136 full_name: "__clk_get_hw" } @@ -320302,7 +323759,7 @@ elf_symbol { name: "__clk_mux_determine_rate" is_defined: true symbol_type: FUNCTION - crc: 0xee9f08dd + crc: 0x141d2340 type_id: 0x9fc8d916 full_name: "__clk_mux_determine_rate" } @@ -320311,7 +323768,7 @@ elf_symbol { name: "__clk_mux_determine_rate_closest" is_defined: true symbol_type: FUNCTION - crc: 0x5a19ba51 + crc: 0x991198bc type_id: 0x9fc8d916 full_name: "__clk_mux_determine_rate_closest" } @@ -320320,7 +323777,7 @@ elf_symbol { name: "__clocksource_register_scale" is_defined: true symbol_type: FUNCTION - crc: 0x935f4b95 + crc: 0x5e49750a type_id: 0x9b8e2bf2 full_name: "__clocksource_register_scale" } @@ -320392,7 +323849,7 @@ elf_symbol { name: "__cpufreq_driver_target" is_defined: true symbol_type: FUNCTION - crc: 0x0528f489 + crc: 0x0aae60cb type_id: 0x9ce01ea2 full_name: "__cpufreq_driver_target" } @@ -320464,7 +323921,7 @@ elf_symbol { name: "__dev_change_net_namespace" is_defined: true symbol_type: FUNCTION - crc: 0x131a6d87 + crc: 0x5883640d type_id: 0x9115faa6 full_name: "__dev_change_net_namespace" } @@ -320473,7 +323930,7 @@ elf_symbol { name: "__dev_get_by_index" is_defined: true symbol_type: FUNCTION - crc: 0x01a2a7b3 + crc: 0xe3f1c6f9 type_id: 0xfec79391 full_name: "__dev_get_by_index" } @@ -320482,7 +323939,7 @@ elf_symbol { name: "__dev_get_by_name" is_defined: true symbol_type: FUNCTION - crc: 0xde525a03 + crc: 0x93c02d91 type_id: 0xffa35209 full_name: "__dev_get_by_name" } @@ -320491,7 +323948,7 @@ elf_symbol { name: "__dev_kfree_skb_any" is_defined: true symbol_type: FUNCTION - crc: 0x22e830c6 + crc: 0x2b9a5d31 type_id: 0x1028d82e full_name: "__dev_kfree_skb_any" } @@ -320500,7 +323957,7 @@ elf_symbol { name: "__dev_kfree_skb_irq" is_defined: true symbol_type: FUNCTION - crc: 0x64347dcc + crc: 0x29e88092 type_id: 0x1028d82e full_name: "__dev_kfree_skb_irq" } @@ -320509,7 +323966,7 @@ elf_symbol { name: "__dev_queue_xmit" is_defined: true symbol_type: FUNCTION - crc: 0xd9b4e3a7 + crc: 0xc5304ef0 type_id: 0x9c19a1e6 full_name: "__dev_queue_xmit" } @@ -320518,7 +323975,7 @@ elf_symbol { name: "__devm_alloc_percpu" is_defined: true symbol_type: FUNCTION - crc: 0x7722bd57 + crc: 0x537066f5 type_id: 0x55ed5751 full_name: "__devm_alloc_percpu" } @@ -320527,7 +323984,7 @@ elf_symbol { name: "__devm_clk_hw_register_divider" is_defined: true symbol_type: FUNCTION - crc: 0x4a8fb4fc + crc: 0xafae2ee5 type_id: 0xde292a8a full_name: "__devm_clk_hw_register_divider" } @@ -320536,7 +323993,7 @@ elf_symbol { name: "__devm_clk_hw_register_mux" is_defined: true symbol_type: FUNCTION - crc: 0x27970269 + crc: 0x8ea0dd98 type_id: 0xde2977ad full_name: "__devm_clk_hw_register_mux" } @@ -320545,7 +324002,7 @@ elf_symbol { name: "__devm_drm_dev_alloc" is_defined: true symbol_type: FUNCTION - crc: 0xc2f73dce + crc: 0x3c19806b type_id: 0x56f10608 full_name: "__devm_drm_dev_alloc" } @@ -320554,7 +324011,7 @@ elf_symbol { name: "__devm_iio_device_register" is_defined: true symbol_type: FUNCTION - crc: 0x659aca72 + crc: 0xfe21d9c4 type_id: 0x9d763af9 full_name: "__devm_iio_device_register" } @@ -320563,7 +324020,7 @@ elf_symbol { name: "__devm_irq_alloc_descs" is_defined: true symbol_type: FUNCTION - crc: 0x25f7a591 + crc: 0xf05e2893 type_id: 0x9c9a309d full_name: "__devm_irq_alloc_descs" } @@ -320572,7 +324029,7 @@ elf_symbol { name: "__devm_of_phy_provider_register" is_defined: true symbol_type: FUNCTION - crc: 0x52745b80 + crc: 0xd37cf5d1 type_id: 0x7087761a full_name: "__devm_of_phy_provider_register" } @@ -320581,7 +324038,7 @@ elf_symbol { name: "__devm_regmap_init" is_defined: true symbol_type: FUNCTION - crc: 0xa6934810 + crc: 0x8382ffa8 type_id: 0x8ce75748 full_name: "__devm_regmap_init" } @@ -320590,7 +324047,7 @@ elf_symbol { name: "__devm_regmap_init_i2c" is_defined: true symbol_type: FUNCTION - crc: 0xd63cb8ee + crc: 0x515e3598 type_id: 0x80dd5700 full_name: "__devm_regmap_init_i2c" } @@ -320599,7 +324056,7 @@ elf_symbol { name: "__devm_regmap_init_mmio_clk" is_defined: true symbol_type: FUNCTION - crc: 0xcfbff9cd + crc: 0xe205331d type_id: 0x8cdd9b00 full_name: "__devm_regmap_init_mmio_clk" } @@ -320608,7 +324065,7 @@ elf_symbol { name: "__devm_regmap_init_spi" is_defined: true symbol_type: FUNCTION - crc: 0x105e4f12 + crc: 0x4c2e0d1b type_id: 0x88f4e163 full_name: "__devm_regmap_init_spi" } @@ -320617,7 +324074,7 @@ elf_symbol { name: "__devm_regmap_init_spmi_ext" is_defined: true symbol_type: FUNCTION - crc: 0x9c65ba36 + crc: 0x28d88b2b type_id: 0x8b7d8884 full_name: "__devm_regmap_init_spmi_ext" } @@ -320626,7 +324083,7 @@ elf_symbol { name: "__devm_request_region" is_defined: true symbol_type: FUNCTION - crc: 0x6a251844 + crc: 0x7cc46337 type_id: 0xc1be98ae full_name: "__devm_request_region" } @@ -320635,7 +324092,7 @@ elf_symbol { name: "__devm_reset_control_bulk_get" is_defined: true symbol_type: FUNCTION - crc: 0x2c10cc2c + crc: 0xfeaebafc type_id: 0x9c8307a8 full_name: "__devm_reset_control_bulk_get" } @@ -320644,7 +324101,7 @@ elf_symbol { name: "__devm_reset_control_get" is_defined: true symbol_type: FUNCTION - crc: 0x9593cffb + crc: 0xa40ebece type_id: 0x0fe6e820 full_name: "__devm_reset_control_get" } @@ -320653,7 +324110,7 @@ elf_symbol { name: "__devm_rtc_register_device" is_defined: true symbol_type: FUNCTION - crc: 0x9c4adbf2 + crc: 0x2f1efdad type_id: 0x9fda9d1b full_name: "__devm_rtc_register_device" } @@ -320662,7 +324119,7 @@ elf_symbol { name: "__devm_spi_alloc_controller" is_defined: true symbol_type: FUNCTION - crc: 0xe0d611eb + crc: 0x45d21caf type_id: 0x5179d95b full_name: "__devm_spi_alloc_controller" } @@ -320671,7 +324128,7 @@ elf_symbol { name: "__devres_alloc_node" is_defined: true symbol_type: FUNCTION - crc: 0xa4835356 + crc: 0x89084c04 type_id: 0x4058e56a full_name: "__devres_alloc_node" } @@ -320680,7 +324137,7 @@ elf_symbol { name: "__dma_request_channel" is_defined: true symbol_type: FUNCTION - crc: 0x52f7d3d7 + crc: 0xed0c7f18 type_id: 0x89ab6589 full_name: "__dma_request_channel" } @@ -320689,7 +324146,7 @@ elf_symbol { name: "__drm_atomic_helper_connector_destroy_state" is_defined: true symbol_type: FUNCTION - crc: 0xbb6435f0 + crc: 0x186fa286 type_id: 0x1bbbd739 full_name: "__drm_atomic_helper_connector_destroy_state" } @@ -320698,7 +324155,7 @@ elf_symbol { name: "__drm_atomic_helper_connector_duplicate_state" is_defined: true symbol_type: FUNCTION - crc: 0xda791de0 + crc: 0x8a3c579a type_id: 0x1c470062 full_name: "__drm_atomic_helper_connector_duplicate_state" } @@ -320707,7 +324164,7 @@ elf_symbol { name: "__drm_atomic_helper_connector_reset" is_defined: true symbol_type: FUNCTION - crc: 0x8cf4e6b1 + crc: 0xb40325af type_id: 0x1c470062 full_name: "__drm_atomic_helper_connector_reset" } @@ -320716,7 +324173,7 @@ elf_symbol { name: "__drm_atomic_helper_crtc_destroy_state" is_defined: true symbol_type: FUNCTION - crc: 0xe7a2678b + crc: 0x263a3c37 type_id: 0x1e2ec9be full_name: "__drm_atomic_helper_crtc_destroy_state" } @@ -320725,7 +324182,7 @@ elf_symbol { name: "__drm_atomic_helper_crtc_duplicate_state" is_defined: true symbol_type: FUNCTION - crc: 0xd7b54623 + crc: 0x7dcb6dc9 type_id: 0x1c25e791 full_name: "__drm_atomic_helper_crtc_duplicate_state" } @@ -320734,7 +324191,7 @@ elf_symbol { name: "__drm_atomic_helper_crtc_reset" is_defined: true symbol_type: FUNCTION - crc: 0x233bcd80 + crc: 0x27f59fdf type_id: 0x1c25e791 full_name: "__drm_atomic_helper_crtc_reset" } @@ -320743,7 +324200,7 @@ elf_symbol { name: "__drm_atomic_helper_plane_destroy_state" is_defined: true symbol_type: FUNCTION - crc: 0x4a331ecd + crc: 0x17626b3d type_id: 0x1b137798 full_name: "__drm_atomic_helper_plane_destroy_state" } @@ -320752,7 +324209,7 @@ elf_symbol { name: "__drm_atomic_helper_plane_duplicate_state" is_defined: true symbol_type: FUNCTION - crc: 0xb2c02629 + crc: 0x2ac60eaf type_id: 0x16ebcbfa full_name: "__drm_atomic_helper_plane_duplicate_state" } @@ -320761,7 +324218,7 @@ elf_symbol { name: "__drm_atomic_helper_plane_reset" is_defined: true symbol_type: FUNCTION - crc: 0xdda9f1e9 + crc: 0xf3662f79 type_id: 0x16ebcbfa full_name: "__drm_atomic_helper_plane_reset" } @@ -320770,7 +324227,7 @@ elf_symbol { name: "__drm_atomic_helper_private_obj_duplicate_state" is_defined: true symbol_type: FUNCTION - crc: 0x86109042 + crc: 0x9e9d7ddb type_id: 0x18ea2469 full_name: "__drm_atomic_helper_private_obj_duplicate_state" } @@ -320806,7 +324263,7 @@ elf_symbol { name: "__drm_dev_dbg" is_defined: true symbol_type: FUNCTION - crc: 0x25a99267 + crc: 0xd6fd8fa7 type_id: 0x17d8b994 full_name: "__drm_dev_dbg" } @@ -320824,7 +324281,7 @@ elf_symbol { name: "__drm_gem_destroy_shadow_plane_state" is_defined: true symbol_type: FUNCTION - crc: 0xfc94461b + crc: 0x3e3d6ccd type_id: 0x125f41c1 full_name: "__drm_gem_destroy_shadow_plane_state" } @@ -320833,7 +324290,7 @@ elf_symbol { name: "__drm_gem_duplicate_shadow_plane_state" is_defined: true symbol_type: FUNCTION - crc: 0x5cd8c6cd + crc: 0x3116249a type_id: 0x167f089f full_name: "__drm_gem_duplicate_shadow_plane_state" } @@ -320842,7 +324299,7 @@ elf_symbol { name: "__drm_gem_reset_shadow_plane" is_defined: true symbol_type: FUNCTION - crc: 0xd54b3b75 + crc: 0x71c07c03 type_id: 0x167f089f full_name: "__drm_gem_reset_shadow_plane" } @@ -320905,7 +324362,7 @@ elf_symbol { name: "__drmm_universal_plane_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x0657a416 + crc: 0x2f307b37 type_id: 0x5bba39c6 full_name: "__drmm_universal_plane_alloc" } @@ -320914,7 +324371,7 @@ elf_symbol { name: "__dynamic_dev_dbg" is_defined: true symbol_type: FUNCTION - crc: 0x90384ce7 + crc: 0x3fbe53bb type_id: 0x17cc14a2 full_name: "__dynamic_dev_dbg" } @@ -320932,7 +324389,7 @@ elf_symbol { name: "__ethtool_get_link_ksettings" is_defined: true symbol_type: FUNCTION - crc: 0x9f8c56b5 + crc: 0x2e42881b type_id: 0x914dbe16 full_name: "__ethtool_get_link_ksettings" } @@ -320959,7 +324416,7 @@ elf_symbol { name: "__folio_lock" is_defined: true symbol_type: FUNCTION - crc: 0x995eb686 + crc: 0x00dd4b2a type_id: 0x18c46588 full_name: "__folio_lock" } @@ -320968,7 +324425,7 @@ elf_symbol { name: "__folio_put" is_defined: true symbol_type: FUNCTION - crc: 0xebe36b14 + crc: 0x14cca1fc type_id: 0x18c46588 full_name: "__folio_put" } @@ -320977,7 +324434,7 @@ elf_symbol { name: "__free_pages" is_defined: true symbol_type: FUNCTION - crc: 0x22639974 + crc: 0xfb702a4e type_id: 0x102e93ac full_name: "__free_pages" } @@ -320986,7 +324443,7 @@ elf_symbol { name: "__genphy_config_aneg" is_defined: true symbol_type: FUNCTION - crc: 0x4332ea02 + crc: 0xc6123b16 type_id: 0x9068b671 full_name: "__genphy_config_aneg" } @@ -321013,7 +324470,7 @@ elf_symbol { name: "__get_task_comm" is_defined: true symbol_type: FUNCTION - crc: 0xabd04123 + crc: 0x8211d573 type_id: 0x3cc96bbe full_name: "__get_task_comm" } @@ -321022,7 +324479,7 @@ elf_symbol { name: "__get_task_ioprio" is_defined: true symbol_type: FUNCTION - crc: 0xe67f7614 + crc: 0xb23543ee type_id: 0x9ac6895a full_name: "__get_task_ioprio" } @@ -321031,7 +324488,7 @@ elf_symbol { name: "__hci_cmd_send" is_defined: true symbol_type: FUNCTION - crc: 0x57710cf5 + crc: 0x9ebdd384 type_id: 0x988786ac full_name: "__hci_cmd_send" } @@ -321040,7 +324497,7 @@ elf_symbol { name: "__hci_cmd_sync" is_defined: true symbol_type: FUNCTION - crc: 0x5c6057ca + crc: 0x58c33f6b type_id: 0x6d996ee0 full_name: "__hci_cmd_sync" } @@ -321049,7 +324506,7 @@ elf_symbol { name: "__hci_cmd_sync_ev" is_defined: true symbol_type: FUNCTION - crc: 0x2f9cf687 + crc: 0x9b2ad697 type_id: 0x6d9955d1 full_name: "__hci_cmd_sync_ev" } @@ -321058,7 +324515,7 @@ elf_symbol { name: "__hci_cmd_sync_sk" is_defined: true symbol_type: FUNCTION - crc: 0x6ffce0d6 + crc: 0xb6d3a298 type_id: 0x6d9955d6 full_name: "__hci_cmd_sync_sk" } @@ -321067,7 +324524,7 @@ elf_symbol { name: "__hci_cmd_sync_status" is_defined: true symbol_type: FUNCTION - crc: 0xb64f8dd6 + crc: 0x1797b7bd type_id: 0x9887b4ee full_name: "__hci_cmd_sync_status" } @@ -321076,7 +324533,7 @@ elf_symbol { name: "__hci_cmd_sync_status_sk" is_defined: true symbol_type: FUNCTION - crc: 0x11ce9ad9 + crc: 0x4a033915 type_id: 0x98878fd8 full_name: "__hci_cmd_sync_status_sk" } @@ -321094,7 +324551,7 @@ elf_symbol { name: "__hvc_resize" is_defined: true symbol_type: FUNCTION - crc: 0x7ec81574 + crc: 0xfae42272 type_id: 0x1eedbe86 full_name: "__hvc_resize" } @@ -321130,7 +324587,7 @@ elf_symbol { name: "__hwspin_lock_timeout" is_defined: true symbol_type: FUNCTION - crc: 0xffd83ab7 + crc: 0xd82853a0 type_id: 0x9e215925 full_name: "__hwspin_lock_timeout" } @@ -321139,7 +324596,7 @@ elf_symbol { name: "__hwspin_unlock" is_defined: true symbol_type: FUNCTION - crc: 0x2fd6c98c + crc: 0x715636e7 type_id: 0x13ab3f14 full_name: "__hwspin_unlock" } @@ -321148,7 +324605,7 @@ elf_symbol { name: "__i2c_smbus_xfer" is_defined: true symbol_type: FUNCTION - crc: 0x800abb8b + crc: 0xfdc72291 type_id: 0x8a03b82b full_name: "__i2c_smbus_xfer" } @@ -321157,7 +324614,7 @@ elf_symbol { name: "__i2c_transfer" is_defined: true symbol_type: FUNCTION - crc: 0x2a10f704 + crc: 0x09f79396 type_id: 0x9480cdfa full_name: "__i2c_transfer" } @@ -321166,7 +324623,7 @@ elf_symbol { name: "__ieee80211_schedule_txq" is_defined: true symbol_type: FUNCTION - crc: 0x8baf1c2c + crc: 0xa648a74a type_id: 0x1a9eb7e2 full_name: "__ieee80211_schedule_txq" } @@ -321175,7 +324632,7 @@ elf_symbol { name: "__inet6_lookup_established" is_defined: true symbol_type: FUNCTION - crc: 0xc61b2c5a + crc: 0xeb25583f type_id: 0x6f1e53de full_name: "__inet6_lookup_established" } @@ -321184,7 +324641,7 @@ elf_symbol { name: "__inet_lookup_established" is_defined: true symbol_type: FUNCTION - crc: 0xf12e4f77 + crc: 0x3ed1ad15 type_id: 0x6f2829be full_name: "__inet_lookup_established" } @@ -321239,7 +324696,7 @@ elf_symbol { name: "__ip_dev_find" is_defined: true symbol_type: FUNCTION - crc: 0x5b6cc4e5 + crc: 0xe71c2c3e type_id: 0xfcc995bd full_name: "__ip_dev_find" } @@ -321248,7 +324705,7 @@ elf_symbol { name: "__ip_select_ident" is_defined: true symbol_type: FUNCTION - crc: 0x0a6d88f4 + crc: 0x346cd14f type_id: 0x13a0751a full_name: "__ip_select_ident" } @@ -321266,7 +324723,7 @@ elf_symbol { name: "__irq_alloc_descs" is_defined: true symbol_type: FUNCTION - crc: 0x2881fa91 + crc: 0x97a30d26 type_id: 0x854e3dbc full_name: "__irq_alloc_descs" } @@ -321284,7 +324741,7 @@ elf_symbol { name: "__irq_domain_add" is_defined: true symbol_type: FUNCTION - crc: 0x39f3275f + crc: 0x31ea27ee type_id: 0x5f133b10 full_name: "__irq_domain_add" } @@ -321293,10 +324750,19 @@ elf_symbol { name: "__irq_resolve_mapping" is_defined: true symbol_type: FUNCTION - crc: 0x23f5e01d + crc: 0x33e57fed type_id: 0xc252de0a full_name: "__irq_resolve_mapping" } +elf_symbol { + id: 0xafc169af + name: "__irq_set_handler" + is_defined: true + symbol_type: FUNCTION + crc: 0x2f31193c + type_id: 0x032333c6 + full_name: "__irq_set_handler" +} elf_symbol { id: 0xcaf40f72 name: "__kfifo_alloc" @@ -321437,7 +324903,7 @@ elf_symbol { name: "__kthread_init_worker" is_defined: true symbol_type: FUNCTION - crc: 0x6bb00d80 + crc: 0xcbfeed52 type_id: 0x1d45187b full_name: "__kthread_init_worker" } @@ -321473,7 +324939,7 @@ elf_symbol { name: "__mdiobus_read" is_defined: true symbol_type: FUNCTION - crc: 0xd3d2210c + crc: 0x1a9a2bd1 type_id: 0x915b6659 full_name: "__mdiobus_read" } @@ -321482,7 +324948,7 @@ elf_symbol { name: "__mdiobus_write" is_defined: true symbol_type: FUNCTION - crc: 0x7d62c16b + crc: 0x89aaffb8 type_id: 0x9159236f full_name: "__mdiobus_write" } @@ -321491,7 +324957,7 @@ elf_symbol { name: "__media_device_register" is_defined: true symbol_type: FUNCTION - crc: 0x46d52c47 + crc: 0xff71af97 type_id: 0x98249b1d full_name: "__media_device_register" } @@ -321536,7 +325002,7 @@ elf_symbol { name: "__migrate_task" is_defined: true symbol_type: FUNCTION - crc: 0xde313ae0 + crc: 0xf6d64717 type_id: 0x81bed9bb full_name: "__migrate_task" } @@ -321545,7 +325011,7 @@ elf_symbol { name: "__mmap_lock_do_trace_acquire_returned" is_defined: true symbol_type: FUNCTION - crc: 0x44045c75 + crc: 0x7112a12d type_id: 0x17fb42d3 full_name: "__mmap_lock_do_trace_acquire_returned" } @@ -321554,7 +325020,7 @@ elf_symbol { name: "__mmap_lock_do_trace_released" is_defined: true symbol_type: FUNCTION - crc: 0x72276847 + crc: 0xc856066d type_id: 0x17e01d04 full_name: "__mmap_lock_do_trace_released" } @@ -321563,7 +325029,7 @@ elf_symbol { name: "__mmap_lock_do_trace_start_locking" is_defined: true symbol_type: FUNCTION - crc: 0x36eabe59 + crc: 0xc85afaa6 type_id: 0x17e01d04 full_name: "__mmap_lock_do_trace_start_locking" } @@ -321572,7 +325038,7 @@ elf_symbol { name: "__mmdrop" is_defined: true symbol_type: FUNCTION - crc: 0xdc09f861 + crc: 0x97d62b60 type_id: 0x1655e07b full_name: "__mmdrop" } @@ -321581,7 +325047,7 @@ elf_symbol { name: "__module_get" is_defined: true symbol_type: FUNCTION - crc: 0x90a22d6a + crc: 0x297e20ec type_id: 0x1251a683 full_name: "__module_get" } @@ -321590,7 +325056,7 @@ elf_symbol { name: "__module_put_and_kthread_exit" is_defined: true symbol_type: FUNCTION - crc: 0x8d33461e + crc: 0x9fe2ddfa type_id: 0x11a19ef5 full_name: "__module_put_and_kthread_exit" } @@ -321617,7 +325083,7 @@ elf_symbol { name: "__napi_alloc_skb" is_defined: true symbol_type: FUNCTION - crc: 0xcb736b77 + crc: 0x003de8d9 type_id: 0x6fb420ce full_name: "__napi_alloc_skb" } @@ -321626,7 +325092,7 @@ elf_symbol { name: "__napi_schedule" is_defined: true symbol_type: FUNCTION - crc: 0x9b78c656 + crc: 0x1c365f4b type_id: 0x16983453 full_name: "__napi_schedule" } @@ -321644,7 +325110,7 @@ elf_symbol { name: "__ndisc_fill_addr_option" is_defined: true symbol_type: FUNCTION - crc: 0x7899be99 + crc: 0xacf194b8 type_id: 0x1058ca17 full_name: "__ndisc_fill_addr_option" } @@ -321653,7 +325119,7 @@ elf_symbol { name: "__netdev_alloc_skb" is_defined: true symbol_type: FUNCTION - crc: 0x9f2b3271 + crc: 0x42c6f676 type_id: 0x651dcdfb full_name: "__netdev_alloc_skb" } @@ -321662,7 +325128,7 @@ elf_symbol { name: "__netif_napi_del" is_defined: true symbol_type: FUNCTION - crc: 0x81d7a76b + crc: 0xbd9dadd2 type_id: 0x16983453 full_name: "__netif_napi_del" } @@ -321671,7 +325137,7 @@ elf_symbol { name: "__netif_set_xps_queue" is_defined: true symbol_type: FUNCTION - crc: 0x454e7bfa + crc: 0x837843bf type_id: 0x91f45efa full_name: "__netif_set_xps_queue" } @@ -321680,7 +325146,7 @@ elf_symbol { name: "__netlink_dump_start" is_defined: true symbol_type: FUNCTION - crc: 0x2f197cda + crc: 0xc8bff8c8 type_id: 0x9acae612 full_name: "__netlink_dump_start" } @@ -321689,7 +325155,7 @@ elf_symbol { name: "__netlink_kernel_create" is_defined: true symbol_type: FUNCTION - crc: 0x56c563f3 + crc: 0xb8dfc687 type_id: 0x6ef28827 full_name: "__netlink_kernel_create" } @@ -321698,7 +325164,7 @@ elf_symbol { name: "__nfc_alloc_vendor_cmd_reply_skb" is_defined: true symbol_type: FUNCTION - crc: 0xf1e59b38 + crc: 0x84dfc656 type_id: 0x6b55cd91 full_name: "__nfc_alloc_vendor_cmd_reply_skb" } @@ -321725,7 +325191,7 @@ elf_symbol { name: "__nlmsg_put" is_defined: true symbol_type: FUNCTION - crc: 0x24a00787 + crc: 0x07fc4f42 type_id: 0x16d62662 full_name: "__nlmsg_put" } @@ -321743,7 +325209,7 @@ elf_symbol { name: "__of_get_address" is_defined: true symbol_type: FUNCTION - crc: 0xd6a2e278 + crc: 0xcb9478fe type_id: 0x2d73e0a2 full_name: "__of_get_address" } @@ -321752,7 +325218,7 @@ elf_symbol { name: "__of_parse_phandle_with_args" is_defined: true symbol_type: FUNCTION - crc: 0x33890110 + crc: 0xe337910b type_id: 0x91fd83bc full_name: "__of_parse_phandle_with_args" } @@ -321761,7 +325227,7 @@ elf_symbol { name: "__of_reset_control_get" is_defined: true symbol_type: FUNCTION - crc: 0x0deaf78a + crc: 0xad87980f type_id: 0x026c1696 full_name: "__of_reset_control_get" } @@ -321770,7 +325236,7 @@ elf_symbol { name: "__page_frag_cache_drain" is_defined: true symbol_type: FUNCTION - crc: 0x09f3a115 + crc: 0x549a601c type_id: 0x102e93ac full_name: "__page_frag_cache_drain" } @@ -321779,7 +325245,7 @@ elf_symbol { name: "__page_mapcount" is_defined: true symbol_type: FUNCTION - crc: 0x101b375c + crc: 0xaa42c329 type_id: 0x9c203488 full_name: "__page_mapcount" } @@ -321788,7 +325254,7 @@ elf_symbol { name: "__pagevec_release" is_defined: true symbol_type: FUNCTION - crc: 0x8d94c7ad + crc: 0xa6e85574 type_id: 0x11b81220 full_name: "__pagevec_release" } @@ -321797,7 +325263,7 @@ elf_symbol { name: "__pci_register_driver" is_defined: true symbol_type: FUNCTION - crc: 0xd3406dac + crc: 0xa86e8be5 type_id: 0x97374fe9 full_name: "__pci_register_driver" } @@ -321815,7 +325281,7 @@ elf_symbol { name: "__percpu_down_read" is_defined: true symbol_type: FUNCTION - crc: 0x0917e830 + crc: 0xa0777099 type_id: 0xfb7cfa37 full_name: "__percpu_down_read" } @@ -321824,7 +325290,7 @@ elf_symbol { name: "__percpu_init_rwsem" is_defined: true symbol_type: FUNCTION - crc: 0x1924e491 + crc: 0xb8693203 type_id: 0x99132caa full_name: "__percpu_init_rwsem" } @@ -321833,7 +325299,7 @@ elf_symbol { name: "__platform_driver_probe" is_defined: true symbol_type: FUNCTION - crc: 0x20f427e5 + crc: 0xf6511b78 type_id: 0x9bf6c118 full_name: "__platform_driver_probe" } @@ -321842,7 +325308,7 @@ elf_symbol { name: "__platform_driver_register" is_defined: true symbol_type: FUNCTION - crc: 0xb99de4a8 + crc: 0x7299958d type_id: 0x9b609a6d full_name: "__platform_driver_register" } @@ -321851,7 +325317,7 @@ elf_symbol { name: "__pm_relax" is_defined: true symbol_type: FUNCTION - crc: 0xaccf29a8 + crc: 0x64ad5706 type_id: 0x10229585 full_name: "__pm_relax" } @@ -321860,7 +325326,7 @@ elf_symbol { name: "__pm_runtime_disable" is_defined: true symbol_type: FUNCTION - crc: 0x32d5da03 + crc: 0xbed85651 type_id: 0x11bb92b7 full_name: "__pm_runtime_disable" } @@ -321869,7 +325335,7 @@ elf_symbol { name: "__pm_runtime_idle" is_defined: true symbol_type: FUNCTION - crc: 0x20e76d1d + crc: 0x1ee96327 type_id: 0x9c8a5e38 full_name: "__pm_runtime_idle" } @@ -321878,7 +325344,7 @@ elf_symbol { name: "__pm_runtime_resume" is_defined: true symbol_type: FUNCTION - crc: 0x99eca6ce + crc: 0x73f6b951 type_id: 0x9c8a5e38 full_name: "__pm_runtime_resume" } @@ -321887,7 +325353,7 @@ elf_symbol { name: "__pm_runtime_set_status" is_defined: true symbol_type: FUNCTION - crc: 0xf816c9ae + crc: 0xf291ad7b type_id: 0x9c00c8ec full_name: "__pm_runtime_set_status" } @@ -321896,7 +325362,7 @@ elf_symbol { name: "__pm_runtime_suspend" is_defined: true symbol_type: FUNCTION - crc: 0xaf8537d8 + crc: 0x192d59fb type_id: 0x9c8a5e38 full_name: "__pm_runtime_suspend" } @@ -321905,7 +325371,7 @@ elf_symbol { name: "__pm_runtime_use_autosuspend" is_defined: true symbol_type: FUNCTION - crc: 0x0a5767a1 + crc: 0xe4a730f3 type_id: 0x11bb92b7 full_name: "__pm_runtime_use_autosuspend" } @@ -321914,7 +325380,7 @@ elf_symbol { name: "__pm_stay_awake" is_defined: true symbol_type: FUNCTION - crc: 0xd8bc3240 + crc: 0x75df23c0 type_id: 0x10229585 full_name: "__pm_stay_awake" } @@ -321932,7 +325398,7 @@ elf_symbol { name: "__pskb_copy_fclone" is_defined: true symbol_type: FUNCTION - crc: 0x5c061deb + crc: 0x3fc3b56a type_id: 0x686cbc61 full_name: "__pskb_copy_fclone" } @@ -321941,7 +325407,7 @@ elf_symbol { name: "__pskb_pull_tail" is_defined: true symbol_type: FUNCTION - crc: 0x530dc30a + crc: 0xbea1604d type_id: 0x5659e8fb full_name: "__pskb_pull_tail" } @@ -321950,7 +325416,7 @@ elf_symbol { name: "__put_net" is_defined: true symbol_type: FUNCTION - crc: 0x81a5de4b + crc: 0xc1a002dd type_id: 0x13b0ccb3 full_name: "__put_net" } @@ -321959,7 +325425,7 @@ elf_symbol { name: "__put_task_struct" is_defined: true symbol_type: FUNCTION - crc: 0xbcb919d5 + crc: 0x3640a05a type_id: 0x17de3be6 full_name: "__put_task_struct" } @@ -322022,7 +325488,7 @@ elf_symbol { name: "__register_chrdev" is_defined: true symbol_type: FUNCTION - crc: 0x618ed1fc + crc: 0x04087de6 type_id: 0x8de63b97 full_name: "__register_chrdev" } @@ -322031,7 +325497,7 @@ elf_symbol { name: "__register_rpmsg_driver" is_defined: true symbol_type: FUNCTION - crc: 0x93d42de1 + crc: 0x2e02da83 type_id: 0x95ef0c06 full_name: "__register_rpmsg_driver" } @@ -322040,7 +325506,7 @@ elf_symbol { name: "__regmap_init" is_defined: true symbol_type: FUNCTION - crc: 0xffd8b507 + crc: 0xfaf0113e type_id: 0x8ce75748 full_name: "__regmap_init" } @@ -322085,7 +325551,7 @@ elf_symbol { name: "__reset_control_get" is_defined: true symbol_type: FUNCTION - crc: 0x470384dd + crc: 0x39c065e8 type_id: 0x0fe6e820 full_name: "__reset_control_get" } @@ -322103,16 +325569,25 @@ elf_symbol { name: "__rt_mutex_init" is_defined: true symbol_type: FUNCTION - crc: 0x53e5d079 + crc: 0xf9a226b9 type_id: 0x1dbb54c5 full_name: "__rt_mutex_init" } +elf_symbol { + id: 0xe68925b8 + name: "__scsi_add_device" + is_defined: true + symbol_type: FUNCTION + crc: 0xa95b5330 + type_id: 0xa355db3b + full_name: "__scsi_add_device" +} elf_symbol { id: 0x0166be18 name: "__scsi_iterate_devices" is_defined: true symbol_type: FUNCTION - crc: 0xcbe61a20 + crc: 0x8333dc7b type_id: 0xa1595676 full_name: "__scsi_iterate_devices" } @@ -322121,7 +325596,7 @@ elf_symbol { name: "__scsi_print_sense" is_defined: true symbol_type: FUNCTION - crc: 0x577f06fe + crc: 0xa0ce68fc type_id: 0x1df45ed2 full_name: "__scsi_print_sense" } @@ -322130,7 +325605,7 @@ elf_symbol { name: "__sdhci_add_host" is_defined: true symbol_type: FUNCTION - crc: 0x83b0d178 + crc: 0x35d4a561 type_id: 0x93dfa305 full_name: "__sdhci_add_host" } @@ -322139,7 +325614,7 @@ elf_symbol { name: "__sdhci_set_timeout" is_defined: true symbol_type: FUNCTION - crc: 0x833b4745 + crc: 0x729cb022 type_id: 0x1e7db2dc full_name: "__sdhci_set_timeout" } @@ -322148,7 +325623,7 @@ elf_symbol { name: "__seq_open_private" is_defined: true symbol_type: FUNCTION - crc: 0xeb38340d + crc: 0x508fc789 type_id: 0x5048b42f full_name: "__seq_open_private" } @@ -322157,7 +325632,7 @@ elf_symbol { name: "__serdev_device_driver_register" is_defined: true symbol_type: FUNCTION - crc: 0x0b26e7ef + crc: 0xa2c1051c type_id: 0x99fe57fe full_name: "__serdev_device_driver_register" } @@ -322166,7 +325641,7 @@ elf_symbol { name: "__serio_register_driver" is_defined: true symbol_type: FUNCTION - crc: 0xb3bdb875 + crc: 0xac9a2818 type_id: 0x9fef9fb7 full_name: "__serio_register_driver" } @@ -322175,7 +325650,7 @@ elf_symbol { name: "__serio_register_port" is_defined: true symbol_type: FUNCTION - crc: 0x26b0ed3e + crc: 0xdd8c39d2 type_id: 0x1009f18b full_name: "__serio_register_port" } @@ -322211,7 +325686,7 @@ elf_symbol { name: "__sk_receive_skb" is_defined: true symbol_type: FUNCTION - crc: 0xa8125504 + crc: 0x2c16bae4 type_id: 0x9adc176e full_name: "__sk_receive_skb" } @@ -322220,7 +325695,7 @@ elf_symbol { name: "__skb_checksum_complete" is_defined: true symbol_type: FUNCTION - crc: 0x3809097c + crc: 0x83efbef7 type_id: 0x1bdfb83f full_name: "__skb_checksum_complete" } @@ -322238,7 +325713,7 @@ elf_symbol { name: "__skb_flow_dissect" is_defined: true symbol_type: FUNCTION - crc: 0x539798c2 + crc: 0xfb8c362f type_id: 0xf1510018 full_name: "__skb_flow_dissect" } @@ -322247,7 +325722,7 @@ elf_symbol { name: "__skb_get_hash" is_defined: true symbol_type: FUNCTION - crc: 0xd45cb8df + crc: 0x2c0c6dba type_id: 0x11cb8bd5 full_name: "__skb_get_hash" } @@ -322256,7 +325731,7 @@ elf_symbol { name: "__skb_gso_segment" is_defined: true symbol_type: FUNCTION - crc: 0x94a30d74 + crc: 0x38ba43ef type_id: 0x6940ae3e full_name: "__skb_gso_segment" } @@ -322265,7 +325740,7 @@ elf_symbol { name: "__skb_pad" is_defined: true symbol_type: FUNCTION - crc: 0x7c61c48c + crc: 0x0a304f01 type_id: 0x9d54e5f2 full_name: "__skb_pad" } @@ -322274,7 +325749,7 @@ elf_symbol { name: "__sock_create" is_defined: true symbol_type: FUNCTION - crc: 0xfcf3daa3 + crc: 0xa359879e type_id: 0x9f2cabca full_name: "__sock_create" } @@ -322283,7 +325758,7 @@ elf_symbol { name: "__sock_queue_rcv_skb" is_defined: true symbol_type: FUNCTION - crc: 0xf1905eb4 + crc: 0x87200082 type_id: 0x9ac4d210 full_name: "__sock_queue_rcv_skb" } @@ -322292,7 +325767,7 @@ elf_symbol { name: "__sock_recv_cmsgs" is_defined: true symbol_type: FUNCTION - crc: 0xdb4a4fe0 + crc: 0x4b4c33d3 type_id: 0x1bdaff5e full_name: "__sock_recv_cmsgs" } @@ -322301,7 +325776,7 @@ elf_symbol { name: "__sock_recv_timestamp" is_defined: true symbol_type: FUNCTION - crc: 0x5a23e1aa + crc: 0x7f0769da type_id: 0x1bdaff5e full_name: "__sock_recv_timestamp" } @@ -322310,7 +325785,7 @@ elf_symbol { name: "__sock_recv_wifi_status" is_defined: true symbol_type: FUNCTION - crc: 0xb4d505eb + crc: 0x1cd2898e type_id: 0x1bdaff5e full_name: "__sock_recv_wifi_status" } @@ -322328,7 +325803,7 @@ elf_symbol { name: "__spi_alloc_controller" is_defined: true symbol_type: FUNCTION - crc: 0xb83f0a0c + crc: 0x9d83fea1 type_id: 0x5179d95b full_name: "__spi_alloc_controller" } @@ -322337,7 +325812,7 @@ elf_symbol { name: "__spi_register_driver" is_defined: true symbol_type: FUNCTION - crc: 0xe5d4da92 + crc: 0xdd3f597c type_id: 0x9f83d2d0 full_name: "__spi_register_driver" } @@ -322346,7 +325821,7 @@ elf_symbol { name: "__splice_from_pipe" is_defined: true symbol_type: FUNCTION - crc: 0xf929780f + crc: 0x2f7a58b3 type_id: 0x16c2ead1 full_name: "__splice_from_pipe" } @@ -322355,7 +325830,7 @@ elf_symbol { name: "__spmi_driver_register" is_defined: true symbol_type: FUNCTION - crc: 0x612110ba + crc: 0xc24f59f9 type_id: 0x97f5d38a full_name: "__spmi_driver_register" } @@ -322436,7 +325911,7 @@ elf_symbol { name: "__task_pid_nr_ns" is_defined: true symbol_type: FUNCTION - crc: 0x2e05e862 + crc: 0x968ba1d5 type_id: 0xd59c1ab2 full_name: "__task_pid_nr_ns" } @@ -322445,7 +325920,7 @@ elf_symbol { name: "__task_rq_lock" is_defined: true symbol_type: FUNCTION - crc: 0xac03c791 + crc: 0x0df7bbe1 type_id: 0x8d7ecefa full_name: "__task_rq_lock" } @@ -322490,7 +325965,7 @@ elf_symbol { name: "__trace_trigger_soft_disabled" is_defined: true symbol_type: FUNCTION - crc: 0x9733c5a5 + crc: 0x2227b141 type_id: 0xfe730297 full_name: "__trace_trigger_soft_disabled" } @@ -322499,7 +325974,7 @@ elf_symbol { name: "__traceiter_android_rvh_account_irq" is_defined: true symbol_type: FUNCTION - crc: 0xca9ba497 + crc: 0x16318fa8 type_id: 0x9bc2b791 full_name: "__traceiter_android_rvh_account_irq" } @@ -322508,7 +325983,7 @@ elf_symbol { name: "__traceiter_android_rvh_after_dequeue_task" is_defined: true symbol_type: FUNCTION - crc: 0x149a077f + crc: 0x743ba0f2 type_id: 0x9b116af7 full_name: "__traceiter_android_rvh_after_dequeue_task" } @@ -322517,7 +325992,7 @@ elf_symbol { name: "__traceiter_android_rvh_after_enqueue_task" is_defined: true symbol_type: FUNCTION - crc: 0xb2f7fc29 + crc: 0xa5979157 type_id: 0x9b116af7 full_name: "__traceiter_android_rvh_after_enqueue_task" } @@ -322553,7 +326028,7 @@ elf_symbol { name: "__traceiter_android_rvh_can_migrate_task" is_defined: true symbol_type: FUNCTION - crc: 0xc3164442 + crc: 0x7cdab5c4 type_id: 0x9bc25990 full_name: "__traceiter_android_rvh_can_migrate_task" } @@ -322562,7 +326037,7 @@ elf_symbol { name: "__traceiter_android_rvh_check_preempt_tick" is_defined: true symbol_type: FUNCTION - crc: 0x921f6821 + crc: 0xaf5a4aa9 type_id: 0x9bda0446 full_name: "__traceiter_android_rvh_check_preempt_tick" } @@ -322571,7 +326046,7 @@ elf_symbol { name: "__traceiter_android_rvh_check_preempt_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0xf38e29de + crc: 0xdb326f7e type_id: 0x9b10b4a6 full_name: "__traceiter_android_rvh_check_preempt_wakeup" } @@ -322580,10 +326055,19 @@ elf_symbol { name: "__traceiter_android_rvh_check_preempt_wakeup_ignore" is_defined: true symbol_type: FUNCTION - crc: 0xce82047b + crc: 0xae744996 type_id: 0x9bdfaf3f full_name: "__traceiter_android_rvh_check_preempt_wakeup_ignore" } +elf_symbol { + id: 0xfd6e4093 + name: "__traceiter_android_rvh_commit_creds" + is_defined: true + symbol_type: FUNCTION + crc: 0x8354f6b9 + type_id: 0x9b427bba + full_name: "__traceiter_android_rvh_commit_creds" +} elf_symbol { id: 0xf11256cf name: "__traceiter_android_rvh_cpu_cgroup_attach" @@ -322598,7 +326082,7 @@ elf_symbol { name: "__traceiter_android_rvh_cpu_cgroup_online" is_defined: true symbol_type: FUNCTION - crc: 0x201df6d4 + crc: 0x5224b91b type_id: 0x9b03e163 full_name: "__traceiter_android_rvh_cpu_cgroup_online" } @@ -322616,7 +326100,7 @@ elf_symbol { name: "__traceiter_android_rvh_dequeue_entity" is_defined: true symbol_type: FUNCTION - crc: 0xc07f152d + crc: 0x4d77132c type_id: 0x9b96d02c full_name: "__traceiter_android_rvh_dequeue_entity" } @@ -322625,7 +326109,7 @@ elf_symbol { name: "__traceiter_android_rvh_dequeue_task" is_defined: true symbol_type: FUNCTION - crc: 0x0ff7ba7f + crc: 0x1823dba7 type_id: 0x9b116af7 full_name: "__traceiter_android_rvh_dequeue_task" } @@ -322634,7 +326118,7 @@ elf_symbol { name: "__traceiter_android_rvh_dequeue_task_fair" is_defined: true symbol_type: FUNCTION - crc: 0xdd1dae48 + crc: 0xffb21181 type_id: 0x9b116af7 full_name: "__traceiter_android_rvh_dequeue_task_fair" } @@ -322670,7 +326154,7 @@ elf_symbol { name: "__traceiter_android_rvh_do_sched_yield" is_defined: true symbol_type: FUNCTION - crc: 0x067db651 + crc: 0xe94bf3b6 type_id: 0x9b17b01e full_name: "__traceiter_android_rvh_do_sched_yield" } @@ -322706,7 +326190,7 @@ elf_symbol { name: "__traceiter_android_rvh_enqueue_entity" is_defined: true symbol_type: FUNCTION - crc: 0x42d18c17 + crc: 0xeb1ae87a type_id: 0x9b96d02c full_name: "__traceiter_android_rvh_enqueue_entity" } @@ -322715,7 +326199,7 @@ elf_symbol { name: "__traceiter_android_rvh_enqueue_task" is_defined: true symbol_type: FUNCTION - crc: 0xa99a4129 + crc: 0xc98fea02 type_id: 0x9b116af7 full_name: "__traceiter_android_rvh_enqueue_task" } @@ -322724,7 +326208,7 @@ elf_symbol { name: "__traceiter_android_rvh_enqueue_task_fair" is_defined: true symbol_type: FUNCTION - crc: 0x837b4699 + crc: 0x47a3cef9 type_id: 0x9b116af7 full_name: "__traceiter_android_rvh_enqueue_task_fair" } @@ -322733,16 +326217,25 @@ elf_symbol { name: "__traceiter_android_rvh_entity_tick" is_defined: true symbol_type: FUNCTION - crc: 0x319906c7 + crc: 0x7f86bbfd type_id: 0x9b96d02c full_name: "__traceiter_android_rvh_entity_tick" } +elf_symbol { + id: 0x6740fa4e + name: "__traceiter_android_rvh_exit_creds" + is_defined: true + symbol_type: FUNCTION + crc: 0xa88ba6d8 + type_id: 0x9b427bba + full_name: "__traceiter_android_rvh_exit_creds" +} elf_symbol { id: 0xf94ce10d name: "__traceiter_android_rvh_find_busiest_group" is_defined: true symbol_type: FUNCTION - crc: 0x6a2dae68 + crc: 0x954b2dba type_id: 0x9b79ad21 full_name: "__traceiter_android_rvh_find_busiest_group" } @@ -322751,7 +326244,7 @@ elf_symbol { name: "__traceiter_android_rvh_find_busiest_queue" is_defined: true symbol_type: FUNCTION - crc: 0x4fc34750 + crc: 0x05b4bb43 type_id: 0x9a3e0766 full_name: "__traceiter_android_rvh_find_busiest_queue" } @@ -322760,7 +326253,7 @@ elf_symbol { name: "__traceiter_android_rvh_find_lowest_rq" is_defined: true symbol_type: FUNCTION - crc: 0x40fb9b41 + crc: 0x018e8b50 type_id: 0x9bd47a1d full_name: "__traceiter_android_rvh_find_lowest_rq" } @@ -322769,7 +326262,7 @@ elf_symbol { name: "__traceiter_android_rvh_finish_prio_fork" is_defined: true symbol_type: FUNCTION - crc: 0x5316dca5 + crc: 0x9e164737 type_id: 0x9bdbdcc4 full_name: "__traceiter_android_rvh_finish_prio_fork" } @@ -322778,7 +326271,7 @@ elf_symbol { name: "__traceiter_android_rvh_flush_task" is_defined: true symbol_type: FUNCTION - crc: 0x64dae013 + crc: 0x8a1101dc type_id: 0x9bdbdcc4 full_name: "__traceiter_android_rvh_flush_task" } @@ -322796,7 +326289,7 @@ elf_symbol { name: "__traceiter_android_rvh_gic_v3_set_affinity" is_defined: true symbol_type: FUNCTION - crc: 0x589fd894 + crc: 0x5a8ab556 type_id: 0x9b8eabb4 full_name: "__traceiter_android_rvh_gic_v3_set_affinity" } @@ -322814,7 +326307,7 @@ elf_symbol { name: "__traceiter_android_rvh_iommu_iovad_init_alloc_algo" is_defined: true symbol_type: FUNCTION - crc: 0x86b8d9b5 + crc: 0xcc75d28c type_id: 0x9ba938bd full_name: "__traceiter_android_rvh_iommu_iovad_init_alloc_algo" } @@ -322832,7 +326325,7 @@ elf_symbol { name: "__traceiter_android_rvh_iommu_setup_dma_ops" is_defined: true symbol_type: FUNCTION - crc: 0x2362d334 + crc: 0xb80f0df5 type_id: 0x9b8019c6 full_name: "__traceiter_android_rvh_iommu_setup_dma_ops" } @@ -322841,7 +326334,7 @@ elf_symbol { name: "__traceiter_android_rvh_is_cpu_allowed" is_defined: true symbol_type: FUNCTION - crc: 0x001f5841 + crc: 0xcba4b4d3 type_id: 0x9bc253cf full_name: "__traceiter_android_rvh_is_cpu_allowed" } @@ -322850,7 +326343,7 @@ elf_symbol { name: "__traceiter_android_rvh_migrate_queued_task" is_defined: true symbol_type: FUNCTION - crc: 0xd7d22f1a + crc: 0x1927e431 type_id: 0x9b18c50f full_name: "__traceiter_android_rvh_migrate_queued_task" } @@ -322859,10 +326352,19 @@ elf_symbol { name: "__traceiter_android_rvh_new_task_stats" is_defined: true symbol_type: FUNCTION - crc: 0xc2158886 + crc: 0xf92ef379 type_id: 0x9bdbdcc4 full_name: "__traceiter_android_rvh_new_task_stats" } +elf_symbol { + id: 0xb51338de + name: "__traceiter_android_rvh_override_creds" + is_defined: true + symbol_type: FUNCTION + crc: 0xbe78f805 + type_id: 0x9b427bba + full_name: "__traceiter_android_rvh_override_creds" +} elf_symbol { id: 0xc463ba81 name: "__traceiter_android_rvh_panic_unhandled" @@ -322877,7 +326379,7 @@ elf_symbol { name: "__traceiter_android_rvh_pick_next_entity" is_defined: true symbol_type: FUNCTION - crc: 0xe28082e6 + crc: 0x840b11bb type_id: 0x9b96f247 full_name: "__traceiter_android_rvh_pick_next_entity" } @@ -322886,7 +326388,7 @@ elf_symbol { name: "__traceiter_android_rvh_place_entity" is_defined: true symbol_type: FUNCTION - crc: 0x97845d34 + crc: 0xef203c94 type_id: 0x9b974729 full_name: "__traceiter_android_rvh_place_entity" } @@ -322895,7 +326397,7 @@ elf_symbol { name: "__traceiter_android_rvh_prepare_prio_fork" is_defined: true symbol_type: FUNCTION - crc: 0x1df191ea + crc: 0x7dd85cd5 type_id: 0x9bdbdcc4 full_name: "__traceiter_android_rvh_prepare_prio_fork" } @@ -322904,7 +326406,7 @@ elf_symbol { name: "__traceiter_android_rvh_replace_next_task_fair" is_defined: true symbol_type: FUNCTION - crc: 0xa98af13f + crc: 0x433e4a3d type_id: 0x9b14e220 full_name: "__traceiter_android_rvh_replace_next_task_fair" } @@ -322917,12 +326419,21 @@ elf_symbol { type_id: 0x9b46543b full_name: "__traceiter_android_rvh_report_bug" } +elf_symbol { + id: 0xde725472 + name: "__traceiter_android_rvh_revert_creds" + is_defined: true + symbol_type: FUNCTION + crc: 0x2aea9962 + type_id: 0x9b427bba + full_name: "__traceiter_android_rvh_revert_creds" +} elf_symbol { id: 0xd90a9a58 name: "__traceiter_android_rvh_rtmutex_prepare_setprio" is_defined: true symbol_type: FUNCTION - crc: 0x352f550a + crc: 0xc68a4dc6 type_id: 0x9bdc9aae full_name: "__traceiter_android_rvh_rtmutex_prepare_setprio" } @@ -322940,7 +326451,7 @@ elf_symbol { name: "__traceiter_android_rvh_sched_balance_rt" is_defined: true symbol_type: FUNCTION - crc: 0xc491ea69 + crc: 0x718ac833 type_id: 0x9b10bb14 full_name: "__traceiter_android_rvh_sched_balance_rt" } @@ -322976,7 +326487,7 @@ elf_symbol { name: "__traceiter_android_rvh_sched_fork" is_defined: true symbol_type: FUNCTION - crc: 0x7afa0fa2 + crc: 0xab0cd84e type_id: 0x9bdbdcc4 full_name: "__traceiter_android_rvh_sched_fork" } @@ -322985,7 +326496,7 @@ elf_symbol { name: "__traceiter_android_rvh_sched_fork_init" is_defined: true symbol_type: FUNCTION - crc: 0x565f86ed + crc: 0xd71b1cf0 type_id: 0x9bdbdcc4 full_name: "__traceiter_android_rvh_sched_fork_init" } @@ -322994,7 +326505,7 @@ elf_symbol { name: "__traceiter_android_rvh_sched_getaffinity" is_defined: true symbol_type: FUNCTION - crc: 0xddb01c03 + crc: 0x1fdbfc0d type_id: 0x9bd5e248 full_name: "__traceiter_android_rvh_sched_getaffinity" } @@ -323003,7 +326514,7 @@ elf_symbol { name: "__traceiter_android_rvh_sched_newidle_balance" is_defined: true symbol_type: FUNCTION - crc: 0xb5f0523f + crc: 0x4c037b9f type_id: 0x9b18e15a full_name: "__traceiter_android_rvh_sched_newidle_balance" } @@ -323012,7 +326523,7 @@ elf_symbol { name: "__traceiter_android_rvh_sched_nohz_balancer_kick" is_defined: true symbol_type: FUNCTION - crc: 0x89ab6cfb + crc: 0xca5d6993 type_id: 0x9b110126 full_name: "__traceiter_android_rvh_sched_nohz_balancer_kick" } @@ -323021,7 +326532,7 @@ elf_symbol { name: "__traceiter_android_rvh_sched_rebalance_domains" is_defined: true symbol_type: FUNCTION - crc: 0x73c71811 + crc: 0x87310e86 type_id: 0x9b13661d full_name: "__traceiter_android_rvh_sched_rebalance_domains" } @@ -323030,7 +326541,7 @@ elf_symbol { name: "__traceiter_android_rvh_sched_setaffinity" is_defined: true symbol_type: FUNCTION - crc: 0xe296f90d + crc: 0xd87ab7ac type_id: 0x9bd7d214 full_name: "__traceiter_android_rvh_sched_setaffinity" } @@ -323039,7 +326550,7 @@ elf_symbol { name: "__traceiter_android_rvh_schedule" is_defined: true symbol_type: FUNCTION - crc: 0x58784e04 + crc: 0x6d9a8aec type_id: 0x9bdc22a4 full_name: "__traceiter_android_rvh_schedule" } @@ -323057,7 +326568,7 @@ elf_symbol { name: "__traceiter_android_rvh_select_fallback_rq" is_defined: true symbol_type: FUNCTION - crc: 0x0d765f41 + crc: 0x1c2ca1b0 type_id: 0x9a343225 full_name: "__traceiter_android_rvh_select_fallback_rq" } @@ -323066,7 +326577,7 @@ elf_symbol { name: "__traceiter_android_rvh_select_task_rq_fair" is_defined: true symbol_type: FUNCTION - crc: 0x78e5d4db + crc: 0xbaa3f016 type_id: 0x9bc391f6 full_name: "__traceiter_android_rvh_select_task_rq_fair" } @@ -323075,10 +326586,55 @@ elf_symbol { name: "__traceiter_android_rvh_select_task_rq_rt" is_defined: true symbol_type: FUNCTION - crc: 0x6e84b664 + crc: 0xb70e0ac9 type_id: 0x9bc391f6 full_name: "__traceiter_android_rvh_select_task_rq_rt" } +elf_symbol { + id: 0x5d194c5c + name: "__traceiter_android_rvh_selinux_avc_insert" + is_defined: true + symbol_type: FUNCTION + crc: 0x7b36fc65 + type_id: 0x9b4d06b7 + full_name: "__traceiter_android_rvh_selinux_avc_insert" +} +elf_symbol { + id: 0x7765e85b + name: "__traceiter_android_rvh_selinux_avc_lookup" + is_defined: true + symbol_type: FUNCTION + crc: 0x11d93a3b + type_id: 0x9b7c44ce + full_name: "__traceiter_android_rvh_selinux_avc_lookup" +} +elf_symbol { + id: 0xb7214df9 + name: "__traceiter_android_rvh_selinux_avc_node_delete" + is_defined: true + symbol_type: FUNCTION + crc: 0x0e5e515c + type_id: 0x9b4d06b7 + full_name: "__traceiter_android_rvh_selinux_avc_node_delete" +} +elf_symbol { + id: 0x2720fa46 + name: "__traceiter_android_rvh_selinux_avc_node_replace" + is_defined: true + symbol_type: FUNCTION + crc: 0xfaf0424d + type_id: 0x9b432d7a + full_name: "__traceiter_android_rvh_selinux_avc_node_replace" +} +elf_symbol { + id: 0x9f6c2b96 + name: "__traceiter_android_rvh_selinux_is_initialized" + is_defined: true + symbol_type: FUNCTION + crc: 0x94da738b + type_id: 0x9b57e4f6 + full_name: "__traceiter_android_rvh_selinux_is_initialized" +} elf_symbol { id: 0x28eb5989 name: "__traceiter_android_rvh_set_balance_anon_file_reclaim" @@ -323093,16 +326649,52 @@ elf_symbol { name: "__traceiter_android_rvh_set_cpus_allowed_by_task" is_defined: true symbol_type: FUNCTION - crc: 0x2f2c34a3 + crc: 0xf121b131 type_id: 0x9b67b049 full_name: "__traceiter_android_rvh_set_cpus_allowed_by_task" } +elf_symbol { + id: 0xcac6b03d + name: "__traceiter_android_rvh_set_module_core_rw_nx" + is_defined: true + symbol_type: FUNCTION + crc: 0x4a555c81 + type_id: 0x9b585c8d + full_name: "__traceiter_android_rvh_set_module_core_rw_nx" +} +elf_symbol { + id: 0x4a5f5242 + name: "__traceiter_android_rvh_set_module_init_rw_nx" + is_defined: true + symbol_type: FUNCTION + crc: 0x03aa972b + type_id: 0x9b585c8d + full_name: "__traceiter_android_rvh_set_module_init_rw_nx" +} +elf_symbol { + id: 0x08cd7e9d + name: "__traceiter_android_rvh_set_module_permit_after_init" + is_defined: true + symbol_type: FUNCTION + crc: 0x8524fb30 + type_id: 0x9b585c8d + full_name: "__traceiter_android_rvh_set_module_permit_after_init" +} +elf_symbol { + id: 0x9e97904b + name: "__traceiter_android_rvh_set_module_permit_before_init" + is_defined: true + symbol_type: FUNCTION + crc: 0x90064ff2 + type_id: 0x9b585c8d + full_name: "__traceiter_android_rvh_set_module_permit_before_init" +} elf_symbol { id: 0xc6a28b4a name: "__traceiter_android_rvh_set_task_cpu" is_defined: true symbol_type: FUNCTION - crc: 0x9f3b6831 + crc: 0x25c50f42 type_id: 0x9bcabd9d full_name: "__traceiter_android_rvh_set_task_cpu" } @@ -323111,7 +326703,7 @@ elf_symbol { name: "__traceiter_android_rvh_set_user_nice" is_defined: true symbol_type: FUNCTION - crc: 0xb0711f86 + crc: 0xe89974ea type_id: 0x9bd6ff14 full_name: "__traceiter_android_rvh_set_user_nice" } @@ -323120,7 +326712,7 @@ elf_symbol { name: "__traceiter_android_rvh_setscheduler" is_defined: true symbol_type: FUNCTION - crc: 0xda9ddf2a + crc: 0xc63e28ae type_id: 0x9bdbdcc4 full_name: "__traceiter_android_rvh_setscheduler" } @@ -323129,7 +326721,7 @@ elf_symbol { name: "__traceiter_android_rvh_shmem_get_folio" is_defined: true symbol_type: FUNCTION - crc: 0xf0296395 + crc: 0xbe193504 type_id: 0x9b1c749d full_name: "__traceiter_android_rvh_shmem_get_folio" } @@ -323147,7 +326739,7 @@ elf_symbol { name: "__traceiter_android_rvh_tick_entry" is_defined: true symbol_type: FUNCTION - crc: 0x4652ca57 + crc: 0x193c935c type_id: 0x9b17b01e full_name: "__traceiter_android_rvh_tick_entry" } @@ -323156,7 +326748,7 @@ elf_symbol { name: "__traceiter_android_rvh_try_to_wake_up" is_defined: true symbol_type: FUNCTION - crc: 0x847dfab2 + crc: 0xf8e2bed6 type_id: 0x9bdbdcc4 full_name: "__traceiter_android_rvh_try_to_wake_up" } @@ -323165,7 +326757,7 @@ elf_symbol { name: "__traceiter_android_rvh_try_to_wake_up_success" is_defined: true symbol_type: FUNCTION - crc: 0xce1f18a9 + crc: 0x45a5e4b2 type_id: 0x9bdbdcc4 full_name: "__traceiter_android_rvh_try_to_wake_up_success" } @@ -323183,7 +326775,7 @@ elf_symbol { name: "__traceiter_android_rvh_uclamp_eff_get" is_defined: true symbol_type: FUNCTION - crc: 0xe6cadd3f + crc: 0xd4452397 type_id: 0x9bca85c1 full_name: "__traceiter_android_rvh_uclamp_eff_get" } @@ -323201,7 +326793,7 @@ elf_symbol { name: "__traceiter_android_rvh_update_misfit_status" is_defined: true symbol_type: FUNCTION - crc: 0x49372710 + crc: 0x839ee929 type_id: 0x9bd01b5c full_name: "__traceiter_android_rvh_update_misfit_status" } @@ -323219,7 +326811,7 @@ elf_symbol { name: "__traceiter_android_rvh_util_est_update" is_defined: true symbol_type: FUNCTION - crc: 0x0e6fdf6a + crc: 0x876d61eb type_id: 0x9b922d94 full_name: "__traceiter_android_rvh_util_est_update" } @@ -323228,7 +326820,7 @@ elf_symbol { name: "__traceiter_android_rvh_wake_up_new_task" is_defined: true symbol_type: FUNCTION - crc: 0x678405bb + crc: 0x6216a55e type_id: 0x9bdbdcc4 full_name: "__traceiter_android_rvh_wake_up_new_task" } @@ -323246,7 +326838,7 @@ elf_symbol { name: "__traceiter_android_vh_binder_restore_priority" is_defined: true symbol_type: FUNCTION - crc: 0xc918128a + crc: 0xc8131fc9 type_id: 0x9ba25f4a full_name: "__traceiter_android_vh_binder_restore_priority" } @@ -323255,16 +326847,34 @@ elf_symbol { name: "__traceiter_android_vh_binder_set_priority" is_defined: true symbol_type: FUNCTION - crc: 0x9e248a49 + crc: 0x9c3ef9bd type_id: 0x9ba25f4a full_name: "__traceiter_android_vh_binder_set_priority" } +elf_symbol { + id: 0x5cf60b10 + name: "__traceiter_android_vh_binder_transaction_init" + is_defined: true + symbol_type: FUNCTION + crc: 0xaeac497b + type_id: 0x9ba51920 + full_name: "__traceiter_android_vh_binder_transaction_init" +} +elf_symbol { + id: 0x61c82fb5 + name: "__traceiter_android_vh_binder_wait_for_work" + is_defined: true + symbol_type: FUNCTION + crc: 0x1c902cd9 + type_id: 0x9a1334e6 + full_name: "__traceiter_android_vh_binder_wait_for_work" +} elf_symbol { id: 0x53fba77d name: "__traceiter_android_vh_binder_wakeup_ilocked" is_defined: true symbol_type: FUNCTION - crc: 0x039c84e4 + crc: 0xef0f3c5f type_id: 0x9bc0fd25 full_name: "__traceiter_android_vh_binder_wakeup_ilocked" } @@ -323277,12 +326887,39 @@ elf_symbol { type_id: 0x9a1a471c full_name: "__traceiter_android_vh_build_sched_domains" } +elf_symbol { + id: 0x5012fcd8 + name: "__traceiter_android_vh_check_bpf_syscall" + is_defined: true + symbol_type: FUNCTION + crc: 0x3ac93501 + type_id: 0x9a3f7770 + full_name: "__traceiter_android_vh_check_bpf_syscall" +} +elf_symbol { + id: 0x67bab494 + name: "__traceiter_android_vh_check_file_open" + is_defined: true + symbol_type: FUNCTION + crc: 0x641bf8af + type_id: 0x9b4b913b + full_name: "__traceiter_android_vh_check_file_open" +} +elf_symbol { + id: 0x42428033 + name: "__traceiter_android_vh_check_mmap_file" + is_defined: true + symbol_type: FUNCTION + crc: 0x12bd80d1 + type_id: 0x9b478d6a + full_name: "__traceiter_android_vh_check_mmap_file" +} elf_symbol { id: 0x005c7625 name: "__traceiter_android_vh_check_uninterrupt_tasks" is_defined: true symbol_type: FUNCTION - crc: 0x6fcacbbe + crc: 0x03d19b88 type_id: 0x9bd746a2 full_name: "__traceiter_android_vh_check_uninterrupt_tasks" } @@ -323390,7 +327027,7 @@ elf_symbol { name: "__traceiter_android_vh_free_task" is_defined: true symbol_type: FUNCTION - crc: 0x484f3251 + crc: 0xc65dc862 type_id: 0x9bdbdcc4 full_name: "__traceiter_android_vh_free_task" } @@ -323444,7 +327081,7 @@ elf_symbol { name: "__traceiter_android_vh_ignore_dmabuf_vmap_bounds" is_defined: true symbol_type: FUNCTION - crc: 0x5cd8d0b9 + crc: 0xc487c868 type_id: 0x9ba8e976 full_name: "__traceiter_android_vh_ignore_dmabuf_vmap_bounds" } @@ -323462,7 +327099,7 @@ elf_symbol { name: "__traceiter_android_vh_is_fpsimd_save" is_defined: true symbol_type: FUNCTION - crc: 0x0f18414d + crc: 0x0e97ef12 type_id: 0x9bdc9aae full_name: "__traceiter_android_vh_is_fpsimd_save" } @@ -323579,7 +327216,7 @@ elf_symbol { name: "__traceiter_android_vh_sched_show_task" is_defined: true symbol_type: FUNCTION - crc: 0x39a90531 + crc: 0x7697e059 type_id: 0x9bdbdcc4 full_name: "__traceiter_android_vh_sched_show_task" } @@ -323588,7 +327225,7 @@ elf_symbol { name: "__traceiter_android_vh_scheduler_tick" is_defined: true symbol_type: FUNCTION - crc: 0x769a508e + crc: 0x6459a3b3 type_id: 0x9b17b01e full_name: "__traceiter_android_vh_scheduler_tick" } @@ -323597,7 +327234,7 @@ elf_symbol { name: "__traceiter_android_vh_setscheduler_uclamp" is_defined: true symbol_type: FUNCTION - crc: 0xbf7b733b + crc: 0x47dac808 type_id: 0x9bc302e5 full_name: "__traceiter_android_vh_setscheduler_uclamp" } @@ -323651,7 +327288,7 @@ elf_symbol { name: "__traceiter_android_vh_try_to_freeze_todo_unfrozen" is_defined: true symbol_type: FUNCTION - crc: 0xbe193612 + crc: 0xce0711c8 type_id: 0x9bdbdcc4 full_name: "__traceiter_android_vh_try_to_freeze_todo_unfrozen" } @@ -323664,6 +327301,15 @@ elf_symbol { type_id: 0x9baae9ef full_name: "__traceiter_android_vh_ufs_check_int_errors" } +elf_symbol { + id: 0x6a6dc806 + name: "__traceiter_android_vh_ufs_clock_scaling" + is_defined: true + symbol_type: FUNCTION + crc: 0xce9715cc + type_id: 0x9bb5868f + full_name: "__traceiter_android_vh_ufs_clock_scaling" +} elf_symbol { id: 0xa56348c9 name: "__traceiter_android_vh_ufs_compl_command" @@ -323759,7 +327405,7 @@ elf_symbol { name: "__traceiter_binder_transaction_received" is_defined: true symbol_type: FUNCTION - crc: 0xa9cdaa8f + crc: 0xe6050ae4 type_id: 0x9ba51920 full_name: "__traceiter_binder_transaction_received" } @@ -323786,7 +327432,7 @@ elf_symbol { name: "__traceiter_cpu_frequency_limits" is_defined: true symbol_type: FUNCTION - crc: 0xf9448162 + crc: 0x25819b44 type_id: 0x9ba9c2f7 full_name: "__traceiter_cpu_frequency_limits" } @@ -323804,7 +327450,7 @@ elf_symbol { name: "__traceiter_device_pm_callback_end" is_defined: true symbol_type: FUNCTION - crc: 0x3e3dbed4 + crc: 0x3766473d type_id: 0x9bbf11b2 full_name: "__traceiter_device_pm_callback_end" } @@ -323813,7 +327459,7 @@ elf_symbol { name: "__traceiter_device_pm_callback_start" is_defined: true symbol_type: FUNCTION - crc: 0x84d7ee59 + crc: 0x96e55d6a type_id: 0x9ba8c128 full_name: "__traceiter_device_pm_callback_start" } @@ -323876,7 +327522,7 @@ elf_symbol { name: "__traceiter_irq_handler_entry" is_defined: true symbol_type: FUNCTION - crc: 0xa3ee1ad8 + crc: 0x0dfea5a3 type_id: 0x9a3e338e full_name: "__traceiter_irq_handler_entry" } @@ -323885,7 +327531,7 @@ elf_symbol { name: "__traceiter_irq_handler_exit" is_defined: true symbol_type: FUNCTION - crc: 0x313243d4 + crc: 0xb6129caf type_id: 0x9a3faf0d full_name: "__traceiter_irq_handler_exit" } @@ -323894,7 +327540,7 @@ elf_symbol { name: "__traceiter_mmap_lock_acquire_returned" is_defined: true symbol_type: FUNCTION - crc: 0x22f9e050 + crc: 0x22d4ef6f type_id: 0x9bcd4bf2 full_name: "__traceiter_mmap_lock_acquire_returned" } @@ -323903,7 +327549,7 @@ elf_symbol { name: "__traceiter_mmap_lock_released" is_defined: true symbol_type: FUNCTION - crc: 0x60680d5c + crc: 0xcea0d9f9 type_id: 0x9bcd50ad full_name: "__traceiter_mmap_lock_released" } @@ -323912,7 +327558,7 @@ elf_symbol { name: "__traceiter_mmap_lock_start_locking" is_defined: true symbol_type: FUNCTION - crc: 0xdc77c070 + crc: 0x80aba9b3 type_id: 0x9bcd50ad full_name: "__traceiter_mmap_lock_start_locking" } @@ -323921,7 +327567,7 @@ elf_symbol { name: "__traceiter_sched_overutilized_tp" is_defined: true symbol_type: FUNCTION - crc: 0xfcd8b692 + crc: 0xa5b173ca type_id: 0x9b506e5c full_name: "__traceiter_sched_overutilized_tp" } @@ -323930,7 +327576,7 @@ elf_symbol { name: "__traceiter_sched_switch" is_defined: true symbol_type: FUNCTION - crc: 0xbd468d51 + crc: 0x093e6617 type_id: 0x9a1d6471 full_name: "__traceiter_sched_switch" } @@ -323957,7 +327603,7 @@ elf_symbol { name: "__traceiter_xdp_exception" is_defined: true symbol_type: FUNCTION - crc: 0xbc09c1ec + crc: 0xd3ecf343 type_id: 0x9b6e0d6b full_name: "__traceiter_xdp_exception" } @@ -324051,6 +327697,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_check_preempt_wakeup_ignore" } +elf_symbol { + id: 0xf63515c9 + name: "__tracepoint_android_rvh_commit_creds" + is_defined: true + symbol_type: OBJECT + crc: 0x3026d92c + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_commit_creds" +} elf_symbol { id: 0xf4fe0429 name: "__tracepoint_android_rvh_cpu_cgroup_attach" @@ -324204,6 +327859,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_entity_tick" } +elf_symbol { + id: 0xb71e231c + name: "__tracepoint_android_rvh_exit_creds" + is_defined: true + symbol_type: OBJECT + crc: 0xe5dee2f1 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_exit_creds" +} elf_symbol { id: 0xb05fc507 name: "__tracepoint_android_rvh_find_busiest_group" @@ -324330,6 +327994,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_new_task_stats" } +elf_symbol { + id: 0xdf21a7cc + name: "__tracepoint_android_rvh_override_creds" + is_defined: true + symbol_type: OBJECT + crc: 0xb1fb08b1 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_override_creds" +} elf_symbol { id: 0xeea6bf23 name: "__tracepoint_android_rvh_panic_unhandled" @@ -324384,6 +328057,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_report_bug" } +elf_symbol { + id: 0x3f328d3c + name: "__tracepoint_android_rvh_revert_creds" + is_defined: true + symbol_type: OBJECT + crc: 0x031591c5 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_revert_creds" +} elf_symbol { id: 0x69e37d02 name: "__tracepoint_android_rvh_rtmutex_prepare_setprio" @@ -324546,6 +328228,51 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_select_task_rq_rt" } +elf_symbol { + id: 0x33183ab6 + name: "__tracepoint_android_rvh_selinux_avc_insert" + is_defined: true + symbol_type: OBJECT + crc: 0x2891acea + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_selinux_avc_insert" +} +elf_symbol { + id: 0x76b00d41 + name: "__tracepoint_android_rvh_selinux_avc_lookup" + is_defined: true + symbol_type: OBJECT + crc: 0x95198ed9 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_selinux_avc_lookup" +} +elf_symbol { + id: 0x9d9301cb + name: "__tracepoint_android_rvh_selinux_avc_node_delete" + is_defined: true + symbol_type: OBJECT + crc: 0x080dcc20 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_selinux_avc_node_delete" +} +elf_symbol { + id: 0xef003404 + name: "__tracepoint_android_rvh_selinux_avc_node_replace" + is_defined: true + symbol_type: OBJECT + crc: 0xff9e1a23 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_selinux_avc_node_replace" +} +elf_symbol { + id: 0x78daed28 + name: "__tracepoint_android_rvh_selinux_is_initialized" + is_defined: true + symbol_type: OBJECT + crc: 0x5cee2186 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_selinux_is_initialized" +} elf_symbol { id: 0x6d8ed263 name: "__tracepoint_android_rvh_set_balance_anon_file_reclaim" @@ -324564,6 +328291,42 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_rvh_set_cpus_allowed_by_task" } +elf_symbol { + id: 0xda52fd4f + name: "__tracepoint_android_rvh_set_module_core_rw_nx" + is_defined: true + symbol_type: OBJECT + crc: 0xfcc936fc + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_set_module_core_rw_nx" +} +elf_symbol { + id: 0x86f03c84 + name: "__tracepoint_android_rvh_set_module_init_rw_nx" + is_defined: true + symbol_type: OBJECT + crc: 0x6f20e85f + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_set_module_init_rw_nx" +} +elf_symbol { + id: 0x498fea3f + name: "__tracepoint_android_rvh_set_module_permit_after_init" + is_defined: true + symbol_type: OBJECT + crc: 0x00253a61 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_set_module_permit_after_init" +} +elf_symbol { + id: 0xf79a8829 + name: "__tracepoint_android_rvh_set_module_permit_before_init" + is_defined: true + symbol_type: OBJECT + crc: 0xb03e867d + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_set_module_permit_before_init" +} elf_symbol { id: 0xc5049f7c name: "__tracepoint_android_rvh_set_task_cpu" @@ -324726,6 +328489,24 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_binder_set_priority" } +elf_symbol { + id: 0xa9d55136 + name: "__tracepoint_android_vh_binder_transaction_init" + is_defined: true + symbol_type: OBJECT + crc: 0x2e7c8a6c + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_binder_transaction_init" +} +elf_symbol { + id: 0x75b174bb + name: "__tracepoint_android_vh_binder_wait_for_work" + is_defined: true + symbol_type: OBJECT + crc: 0xbac548dc + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_binder_wait_for_work" +} elf_symbol { id: 0x506628ab name: "__tracepoint_android_vh_binder_wakeup_ilocked" @@ -324744,6 +328525,33 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_build_sched_domains" } +elf_symbol { + id: 0x678bb5ba + name: "__tracepoint_android_vh_check_bpf_syscall" + is_defined: true + symbol_type: OBJECT + crc: 0xcbe6df73 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_check_bpf_syscall" +} +elf_symbol { + id: 0xf1ec5ef2 + name: "__tracepoint_android_vh_check_file_open" + is_defined: true + symbol_type: OBJECT + crc: 0x572318b3 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_check_file_open" +} +elf_symbol { + id: 0x9620eac1 + name: "__tracepoint_android_vh_check_mmap_file" + is_defined: true + symbol_type: OBJECT + crc: 0xc12a5dbb + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_check_mmap_file" +} elf_symbol { id: 0x5cc4ca5b name: "__tracepoint_android_vh_check_uninterrupt_tasks" @@ -325131,6 +328939,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_ufs_check_int_errors" } +elf_symbol { + id: 0x08a49528 + name: "__tracepoint_android_vh_ufs_clock_scaling" + is_defined: true + symbol_type: OBJECT + crc: 0x7310f377 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_ufs_clock_scaling" +} elf_symbol { id: 0xa03a7d43 name: "__tracepoint_android_vh_ufs_compl_command" @@ -325433,7 +329250,7 @@ elf_symbol { name: "__tty_alloc_driver" is_defined: true symbol_type: FUNCTION - crc: 0x211bc707 + crc: 0x43f43d45 type_id: 0xbe241f2a full_name: "__tty_alloc_driver" } @@ -325442,7 +329259,7 @@ elf_symbol { name: "__tty_insert_flip_char" is_defined: true symbol_type: FUNCTION - crc: 0x2b2ff74a + crc: 0x4ecce87a type_id: 0x9a7ce1ce full_name: "__tty_insert_flip_char" } @@ -325460,7 +329277,7 @@ elf_symbol { name: "__udp4_lib_lookup" is_defined: true symbol_type: FUNCTION - crc: 0x08e2d14e + crc: 0x31bf16c1 type_id: 0x6cfb566e full_name: "__udp4_lib_lookup" } @@ -325469,7 +329286,7 @@ elf_symbol { name: "__udp6_lib_lookup" is_defined: true symbol_type: FUNCTION - crc: 0x47c69634 + crc: 0x02328680 type_id: 0x6f9cf068 full_name: "__udp6_lib_lookup" } @@ -325478,7 +329295,7 @@ elf_symbol { name: "__uio_register_device" is_defined: true symbol_type: FUNCTION - crc: 0x7fb6dded + crc: 0x8b005a53 type_id: 0x9f431aa6 full_name: "__uio_register_device" } @@ -325496,7 +329313,7 @@ elf_symbol { name: "__usb_create_hcd" is_defined: true symbol_type: FUNCTION - crc: 0x38ff606d + crc: 0x7997ba73 type_id: 0xab9a208d full_name: "__usb_create_hcd" } @@ -325514,7 +329331,7 @@ elf_symbol { name: "__v4l2_ctrl_modify_range" is_defined: true symbol_type: FUNCTION - crc: 0xa9a224fe + crc: 0xdcad37ae type_id: 0x90356b6c full_name: "__v4l2_ctrl_modify_range" } @@ -325523,7 +329340,7 @@ elf_symbol { name: "__v4l2_ctrl_s_ctrl" is_defined: true symbol_type: FUNCTION - crc: 0xeec9ec33 + crc: 0xaa870cf3 type_id: 0x93d4efe1 full_name: "__v4l2_ctrl_s_ctrl" } @@ -325532,7 +329349,7 @@ elf_symbol { name: "__v4l2_device_register_subdev_nodes" is_defined: true symbol_type: FUNCTION - crc: 0x815dc386 + crc: 0x459d3946 type_id: 0x9de6d8d5 full_name: "__v4l2_device_register_subdev_nodes" } @@ -325550,7 +329367,7 @@ elf_symbol { name: "__video_register_device" is_defined: true symbol_type: FUNCTION - crc: 0x927e2d9c + crc: 0xc4d63cd9 type_id: 0x9f0d3989 full_name: "__video_register_device" } @@ -325649,7 +329466,7 @@ elf_symbol { name: "__xdp_rxq_info_reg" is_defined: true symbol_type: FUNCTION - crc: 0xf04079a1 + crc: 0x78eb669a type_id: 0x954d9028 full_name: "__xdp_rxq_info_reg" } @@ -325658,7 +329475,7 @@ elf_symbol { name: "__xfrm_state_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x93a22f5d + crc: 0xb7585919 type_id: 0x10605221 full_name: "__xfrm_state_destroy" } @@ -325667,7 +329484,7 @@ elf_symbol { name: "_copy_from_iter" is_defined: true symbol_type: FUNCTION - crc: 0x0e900536 + crc: 0x8af4ada8 type_id: 0x92cb9949 full_name: "_copy_from_iter" } @@ -325676,7 +329493,7 @@ elf_symbol { name: "_copy_to_iter" is_defined: true symbol_type: FUNCTION - crc: 0x8dc1d9e3 + crc: 0x08adbfbf type_id: 0x9aa3057f full_name: "_copy_to_iter" } @@ -325694,7 +329511,7 @@ elf_symbol { name: "_dev_crit" is_defined: true symbol_type: FUNCTION - crc: 0xb57f7e78 + crc: 0x4b072ffe type_id: 0x1fa0c57a full_name: "_dev_crit" } @@ -325703,7 +329520,7 @@ elf_symbol { name: "_dev_emerg" is_defined: true symbol_type: FUNCTION - crc: 0x14a1c16d + crc: 0x442b445f type_id: 0x1fa0c57a full_name: "_dev_emerg" } @@ -325712,7 +329529,7 @@ elf_symbol { name: "_dev_err" is_defined: true symbol_type: FUNCTION - crc: 0xec94d72c + crc: 0x13936c82 type_id: 0x1fa0c57a full_name: "_dev_err" } @@ -325721,7 +329538,7 @@ elf_symbol { name: "_dev_info" is_defined: true symbol_type: FUNCTION - crc: 0x8153f1e8 + crc: 0x09514397 type_id: 0x1fa0c57a full_name: "_dev_info" } @@ -325730,7 +329547,7 @@ elf_symbol { name: "_dev_notice" is_defined: true symbol_type: FUNCTION - crc: 0x71d6a789 + crc: 0x83946607 type_id: 0x1fa0c57a full_name: "_dev_notice" } @@ -325739,7 +329556,7 @@ elf_symbol { name: "_dev_printk" is_defined: true symbol_type: FUNCTION - crc: 0x3d2631a5 + crc: 0x1a121426 type_id: 0x1feff59b full_name: "_dev_printk" } @@ -325748,7 +329565,7 @@ elf_symbol { name: "_dev_warn" is_defined: true symbol_type: FUNCTION - crc: 0x80878424 + crc: 0x065589d6 type_id: 0x1fa0c57a full_name: "_dev_warn" } @@ -325838,7 +329655,7 @@ elf_symbol { name: "_proc_mkdir" is_defined: true symbol_type: FUNCTION - crc: 0x9e868f44 + crc: 0x5c43b84b type_id: 0x394358ea full_name: "_proc_mkdir" } @@ -326108,7 +329925,7 @@ elf_symbol { name: "access_process_vm" is_defined: true symbol_type: FUNCTION - crc: 0xb427e7d1 + crc: 0x348a5d17 type_id: 0x9a0cfe73 full_name: "access_process_vm" } @@ -326117,7 +329934,7 @@ elf_symbol { name: "activate_task" is_defined: true symbol_type: FUNCTION - crc: 0x5952c989 + crc: 0x241ed727 type_id: 0x1b7558dd full_name: "activate_task" } @@ -326207,7 +330024,7 @@ elf_symbol { name: "addrconf_add_linklocal" is_defined: true symbol_type: FUNCTION - crc: 0xf8c8598f + crc: 0xde593e4c type_id: 0x1eaf1d5f full_name: "addrconf_add_linklocal" } @@ -326216,7 +330033,7 @@ elf_symbol { name: "addrconf_prefix_rcv_add_addr" is_defined: true symbol_type: FUNCTION - crc: 0xe067a430 + crc: 0x980d3c36 type_id: 0x9e6d2eab full_name: "addrconf_prefix_rcv_add_addr" } @@ -326225,7 +330042,7 @@ elf_symbol { name: "adjust_managed_page_count" is_defined: true symbol_type: FUNCTION - crc: 0x425b3588 + crc: 0x2672b00e type_id: 0x12c8be42 full_name: "adjust_managed_page_count" } @@ -326297,7 +330114,7 @@ elf_symbol { name: "alarmtimer_get_rtcdev" is_defined: true symbol_type: FUNCTION - crc: 0x81eadc3e + crc: 0x917214ac type_id: 0x7e8c435e full_name: "alarmtimer_get_rtcdev" } @@ -326315,7 +330132,7 @@ elf_symbol { name: "alloc_anon_inode" is_defined: true symbol_type: FUNCTION - crc: 0x80f9fd0f + crc: 0xa9e76f74 type_id: 0x12d6b73d full_name: "alloc_anon_inode" } @@ -326324,7 +330141,7 @@ elf_symbol { name: "alloc_can_err_skb" is_defined: true symbol_type: FUNCTION - crc: 0x31a9bce7 + crc: 0xeaeb5ffa type_id: 0x6408a046 full_name: "alloc_can_err_skb" } @@ -326333,7 +330150,7 @@ elf_symbol { name: "alloc_can_skb" is_defined: true symbol_type: FUNCTION - crc: 0x4c28bb10 + crc: 0x41395200 type_id: 0x6408a046 full_name: "alloc_can_skb" } @@ -326342,7 +330159,7 @@ elf_symbol { name: "alloc_candev_mqs" is_defined: true symbol_type: FUNCTION - crc: 0xa3817f47 + crc: 0x49b767ef type_id: 0xe4bddbe2 full_name: "alloc_candev_mqs" } @@ -326351,7 +330168,7 @@ elf_symbol { name: "alloc_canfd_skb" is_defined: true symbol_type: FUNCTION - crc: 0xaaffc6c7 + crc: 0x93504fcb type_id: 0x643d13df full_name: "alloc_canfd_skb" } @@ -326360,7 +330177,7 @@ elf_symbol { name: "alloc_canxl_skb" is_defined: true symbol_type: FUNCTION - crc: 0x51d37e4d + crc: 0x7528f665 type_id: 0x641b717f full_name: "alloc_canxl_skb" } @@ -326378,7 +330195,7 @@ elf_symbol { name: "alloc_etherdev_mqs" is_defined: true symbol_type: FUNCTION - crc: 0x77f6f88e + crc: 0x7c626f5b type_id: 0xe4bccdf7 full_name: "alloc_etherdev_mqs" } @@ -326387,7 +330204,7 @@ elf_symbol { name: "alloc_io_pgtable_ops" is_defined: true symbol_type: FUNCTION - crc: 0xb13e415a + crc: 0x9b97d5e4 type_id: 0xca4b711f full_name: "alloc_io_pgtable_ops" } @@ -326396,7 +330213,7 @@ elf_symbol { name: "alloc_netdev_mqs" is_defined: true symbol_type: FUNCTION - crc: 0x22dbe161 + crc: 0x18995b14 type_id: 0xe554bdb1 full_name: "alloc_netdev_mqs" } @@ -326414,7 +330231,7 @@ elf_symbol { name: "alloc_skb_with_frags" is_defined: true symbol_type: FUNCTION - crc: 0x6836bb72 + crc: 0x6638055b type_id: 0x64970caf full_name: "alloc_skb_with_frags" } @@ -326441,7 +330258,7 @@ elf_symbol { name: "amba_bustype" is_defined: true symbol_type: OBJECT - crc: 0x3f275746 + crc: 0xa6132564 type_id: 0x257935aa full_name: "amba_bustype" } @@ -326450,7 +330267,7 @@ elf_symbol { name: "amba_driver_register" is_defined: true symbol_type: FUNCTION - crc: 0x00a7810a + crc: 0x3ac52b3b type_id: 0x92a877e0 full_name: "amba_driver_register" } @@ -326459,7 +330276,7 @@ elf_symbol { name: "amba_driver_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xf9c9361f + crc: 0x8bd514f0 type_id: 0x1fb0c55c full_name: "amba_driver_unregister" } @@ -326468,7 +330285,7 @@ elf_symbol { name: "amba_release_regions" is_defined: true symbol_type: FUNCTION - crc: 0x64e4ebe4 + crc: 0xceef9c20 type_id: 0x1edfcb66 full_name: "amba_release_regions" } @@ -326477,7 +330294,7 @@ elf_symbol { name: "amba_request_regions" is_defined: true symbol_type: FUNCTION - crc: 0xee294ec0 + crc: 0x594eadaa type_id: 0x933f3b0e full_name: "amba_request_regions" } @@ -326495,7 +330312,7 @@ elf_symbol { name: "anon_inode_getfd" is_defined: true symbol_type: FUNCTION - crc: 0x442db15a + crc: 0x0de38eaa type_id: 0x92d83970 full_name: "anon_inode_getfd" } @@ -326504,7 +330321,7 @@ elf_symbol { name: "anon_inode_getfile" is_defined: true symbol_type: FUNCTION - crc: 0x52dd6343 + crc: 0x2825980e type_id: 0x4eca3251 full_name: "anon_inode_getfile" } @@ -326648,7 +330465,7 @@ elf_symbol { name: "auxiliary_driver_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x0d600d4b + crc: 0x7749875f type_id: 0x1402b86b full_name: "auxiliary_driver_unregister" } @@ -326666,7 +330483,7 @@ elf_symbol { name: "backlight_device_get_by_type" is_defined: true symbol_type: FUNCTION - crc: 0x6514f271 + crc: 0xe65d5bdb type_id: 0x5f2659b9 full_name: "backlight_device_get_by_type" } @@ -326675,7 +330492,7 @@ elf_symbol { name: "backlight_device_register" is_defined: true symbol_type: FUNCTION - crc: 0xcc78dbd8 + crc: 0x4ade60e7 type_id: 0x7330f867 full_name: "backlight_device_register" } @@ -326684,7 +330501,7 @@ elf_symbol { name: "backlight_device_set_brightness" is_defined: true symbol_type: FUNCTION - crc: 0xd2cbf805 + crc: 0x98bcfff8 type_id: 0x916a6d3b full_name: "backlight_device_set_brightness" } @@ -326693,16 +330510,25 @@ elf_symbol { name: "backlight_device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x215fa386 + crc: 0x8dd108f3 type_id: 0x1cbf0a15 full_name: "backlight_device_unregister" } +elf_symbol { + id: 0x4e505a21 + name: "balance_dirty_pages_ratelimited" + is_defined: true + symbol_type: FUNCTION + crc: 0x2464f51b + type_id: 0x15f8fb52 + full_name: "balance_dirty_pages_ratelimited" +} elf_symbol { id: 0xa3814535 name: "balance_push_callback" is_defined: true symbol_type: OBJECT - crc: 0x867f6afe + crc: 0xcf00c018 type_id: 0x3e2562ef full_name: "balance_push_callback" } @@ -326711,7 +330537,7 @@ elf_symbol { name: "balloon_mops" is_defined: true symbol_type: OBJECT - crc: 0x33b408fb + crc: 0x42dda6df type_id: 0xf34f7202 full_name: "balloon_mops" } @@ -326720,7 +330546,7 @@ elf_symbol { name: "balloon_page_alloc" is_defined: true symbol_type: FUNCTION - crc: 0xd4b58e35 + crc: 0x7cea7408 type_id: 0xbd98f080 full_name: "balloon_page_alloc" } @@ -326729,7 +330555,7 @@ elf_symbol { name: "balloon_page_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0x0f078e7d + crc: 0x01b19646 type_id: 0xbd9523d9 full_name: "balloon_page_dequeue" } @@ -326738,7 +330564,7 @@ elf_symbol { name: "balloon_page_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0x314862bb + crc: 0x57ef653f type_id: 0x108f8fb0 full_name: "balloon_page_enqueue" } @@ -326765,7 +330591,7 @@ elf_symbol { name: "bdev_end_io_acct" is_defined: true symbol_type: FUNCTION - crc: 0x303594c4 + crc: 0x0b1dcff4 type_id: 0x11b1f76e full_name: "bdev_end_io_acct" } @@ -326774,16 +330600,43 @@ elf_symbol { name: "bdev_start_io_acct" is_defined: true symbol_type: FUNCTION - crc: 0x732d9dd8 + crc: 0x12b5d5e2 type_id: 0x33937c96 full_name: "bdev_start_io_acct" } +elf_symbol { + id: 0x18c171b8 + name: "bdi_alloc" + is_defined: true + symbol_type: FUNCTION + crc: 0x5259c9b8 + type_id: 0x5120d3a0 + full_name: "bdi_alloc" +} +elf_symbol { + id: 0x8fb4b5f6 + name: "bdi_put" + is_defined: true + symbol_type: FUNCTION + crc: 0x72d46539 + type_id: 0x1aa56a0d + full_name: "bdi_put" +} +elf_symbol { + id: 0x6bb4e80d + name: "bdi_register" + is_defined: true + symbol_type: FUNCTION + crc: 0xa8d44e09 + type_id: 0x976cd0e7 + full_name: "bdi_register" +} elf_symbol { id: 0xcdba3a55 name: "bgpio_init" is_defined: true symbol_type: FUNCTION - crc: 0x6a0eeaa0 + crc: 0x719689cf type_id: 0x9bbcaaf0 full_name: "bgpio_init" } @@ -326801,7 +330654,7 @@ elf_symbol { name: "bio_add_page" is_defined: true symbol_type: FUNCTION - crc: 0x9f4117cc + crc: 0x4d631624 type_id: 0x98e25911 full_name: "bio_add_page" } @@ -326810,7 +330663,7 @@ elf_symbol { name: "bio_alloc_bioset" is_defined: true symbol_type: FUNCTION - crc: 0x53718746 + crc: 0x663c79cb type_id: 0x935a996a full_name: "bio_alloc_bioset" } @@ -326819,7 +330672,7 @@ elf_symbol { name: "bio_associate_blkg" is_defined: true symbol_type: FUNCTION - crc: 0xfd7acef7 + crc: 0xead58ab2 type_id: 0x15f0919b full_name: "bio_associate_blkg" } @@ -326828,7 +330681,7 @@ elf_symbol { name: "bio_chain" is_defined: true symbol_type: FUNCTION - crc: 0xdb153fac + crc: 0xd2df52cd type_id: 0x15a61d9b full_name: "bio_chain" } @@ -326837,7 +330690,7 @@ elf_symbol { name: "bio_clone_blkg_association" is_defined: true symbol_type: FUNCTION - crc: 0x247591db + crc: 0x0ed3ccca type_id: 0x15a61d9b full_name: "bio_clone_blkg_association" } @@ -326846,7 +330699,7 @@ elf_symbol { name: "bio_end_io_acct_remapped" is_defined: true symbol_type: FUNCTION - crc: 0xe51ab376 + crc: 0xf6d10806 type_id: 0x153e4f8f full_name: "bio_end_io_acct_remapped" } @@ -326855,7 +330708,7 @@ elf_symbol { name: "bio_endio" is_defined: true symbol_type: FUNCTION - crc: 0xbd31f306 + crc: 0x55183cf1 type_id: 0x15f0919b full_name: "bio_endio" } @@ -326864,7 +330717,7 @@ elf_symbol { name: "bio_put" is_defined: true symbol_type: FUNCTION - crc: 0x65475c2b + crc: 0xf1796b1e type_id: 0x15f0919b full_name: "bio_put" } @@ -326873,7 +330726,7 @@ elf_symbol { name: "bio_start_io_acct" is_defined: true symbol_type: FUNCTION - crc: 0x1d706edd + crc: 0x677880e7 type_id: 0x34c40d5b full_name: "bio_start_io_acct" } @@ -326990,7 +330843,7 @@ elf_symbol { name: "blk_execute_rq" is_defined: true symbol_type: FUNCTION - crc: 0x4619d2a7 + crc: 0x31a9d8b6 type_id: 0x4c603ab7 full_name: "blk_execute_rq" } @@ -326999,7 +330852,7 @@ elf_symbol { name: "blk_execute_rq_nowait" is_defined: true symbol_type: FUNCTION - crc: 0xb5bd5136 + crc: 0x2c5b01a4 type_id: 0x168d2c88 full_name: "blk_execute_rq_nowait" } @@ -327008,16 +330861,25 @@ elf_symbol { name: "blk_mq_alloc_request" is_defined: true symbol_type: FUNCTION - crc: 0x96cafc26 + crc: 0x26f09d41 type_id: 0xdde97c3b full_name: "blk_mq_alloc_request" } +elf_symbol { + id: 0x0d1fc920 + name: "blk_mq_alloc_sq_tag_set" + is_defined: true + symbol_type: FUNCTION + crc: 0x4b808fd5 + type_id: 0x967da352 + full_name: "blk_mq_alloc_sq_tag_set" +} elf_symbol { id: 0xd34c6466 name: "blk_mq_alloc_tag_set" is_defined: true symbol_type: FUNCTION - crc: 0x18e796e5 + crc: 0xf21e1118 type_id: 0x96b0de71 full_name: "blk_mq_alloc_tag_set" } @@ -327026,7 +330888,7 @@ elf_symbol { name: "blk_mq_complete_request" is_defined: true symbol_type: FUNCTION - crc: 0xe4718a72 + crc: 0xd19be712 type_id: 0x1738d1f7 full_name: "blk_mq_complete_request" } @@ -327035,7 +330897,7 @@ elf_symbol { name: "blk_mq_end_request" is_defined: true symbol_type: FUNCTION - crc: 0xc4dc3026 + crc: 0x062c3ec1 type_id: 0x16d771f6 full_name: "blk_mq_end_request" } @@ -327044,7 +330906,7 @@ elf_symbol { name: "blk_mq_end_request_batch" is_defined: true symbol_type: FUNCTION - crc: 0x45b6a272 + crc: 0xe00ae48c type_id: 0x19ae6079 full_name: "blk_mq_end_request_batch" } @@ -327053,7 +330915,7 @@ elf_symbol { name: "blk_mq_free_request" is_defined: true symbol_type: FUNCTION - crc: 0x53710b05 + crc: 0x6c46ab6c type_id: 0x1738d1f7 full_name: "blk_mq_free_request" } @@ -327062,10 +330924,28 @@ elf_symbol { name: "blk_mq_free_tag_set" is_defined: true symbol_type: FUNCTION - crc: 0x0f2aef61 + crc: 0x88d9d686 type_id: 0x1ba86ccd full_name: "blk_mq_free_tag_set" } +elf_symbol { + id: 0x5e553962 + name: "blk_mq_freeze_queue" + is_defined: true + symbol_type: FUNCTION + crc: 0x65e7a629 + type_id: 0x12c8ce83 + full_name: "blk_mq_freeze_queue" +} +elf_symbol { + id: 0x98c69e3e + name: "blk_mq_init_queue" + is_defined: true + symbol_type: FUNCTION + crc: 0x57e341d2 + type_id: 0x69e09f9b + full_name: "blk_mq_init_queue" +} elf_symbol { id: 0x16569be2 name: "blk_mq_map_queues" @@ -327080,7 +330960,7 @@ elf_symbol { name: "blk_mq_quiesce_queue" is_defined: true symbol_type: FUNCTION - crc: 0x2e504cc7 + crc: 0x1ed68e6e type_id: 0x12c8ce83 full_name: "blk_mq_quiesce_queue" } @@ -327089,7 +330969,7 @@ elf_symbol { name: "blk_mq_requeue_request" is_defined: true symbol_type: FUNCTION - crc: 0x7b9d1fd4 + crc: 0x6df17cd3 type_id: 0x168d2c88 full_name: "blk_mq_requeue_request" } @@ -327098,7 +330978,7 @@ elf_symbol { name: "blk_mq_rq_cpu" is_defined: true symbol_type: FUNCTION - crc: 0xf4a7208d + crc: 0xdd4b4288 type_id: 0xc97bfe9f full_name: "blk_mq_rq_cpu" } @@ -327107,7 +330987,7 @@ elf_symbol { name: "blk_mq_start_request" is_defined: true symbol_type: FUNCTION - crc: 0x1a81b55a + crc: 0xf5bfb98a type_id: 0x1738d1f7 full_name: "blk_mq_start_request" } @@ -327116,7 +330996,7 @@ elf_symbol { name: "blk_mq_start_stopped_hw_queues" is_defined: true symbol_type: FUNCTION - crc: 0xe5b08d47 + crc: 0x066c8ec1 type_id: 0x137d33fc full_name: "blk_mq_start_stopped_hw_queues" } @@ -327125,16 +331005,34 @@ elf_symbol { name: "blk_mq_stop_hw_queue" is_defined: true symbol_type: FUNCTION - crc: 0xe7b9c5c2 + crc: 0x60a934c8 type_id: 0x181a6fb5 full_name: "blk_mq_stop_hw_queue" } +elf_symbol { + id: 0x37d3a115 + name: "blk_mq_tagset_busy_iter" + is_defined: true + symbol_type: FUNCTION + crc: 0x72e6d74d + type_id: 0x1b939af9 + full_name: "blk_mq_tagset_busy_iter" +} +elf_symbol { + id: 0x95bdba0c + name: "blk_mq_unfreeze_queue" + is_defined: true + symbol_type: FUNCTION + crc: 0x9ea61c1d + type_id: 0x12c8ce83 + full_name: "blk_mq_unfreeze_queue" +} elf_symbol { id: 0x86bec7f5 name: "blk_mq_unquiesce_queue" is_defined: true symbol_type: FUNCTION - crc: 0xbece1ee3 + crc: 0x3f993b61 type_id: 0x12c8ce83 full_name: "blk_mq_unquiesce_queue" } @@ -327143,7 +331041,7 @@ elf_symbol { name: "blk_mq_virtio_map_queues" is_defined: true symbol_type: FUNCTION - crc: 0x8828fc4b + crc: 0xb4b51c57 type_id: 0x15ff0e04 full_name: "blk_mq_virtio_map_queues" } @@ -327152,7 +331050,7 @@ elf_symbol { name: "blk_queue_alignment_offset" is_defined: true symbol_type: FUNCTION - crc: 0x44dff3eb + crc: 0x3510f288 type_id: 0x13dedb1b full_name: "blk_queue_alignment_offset" } @@ -327161,7 +331059,7 @@ elf_symbol { name: "blk_queue_flag_clear" is_defined: true symbol_type: FUNCTION - crc: 0xcdf63630 + crc: 0x8310d3b8 type_id: 0x01dc01ed full_name: "blk_queue_flag_clear" } @@ -327170,7 +331068,7 @@ elf_symbol { name: "blk_queue_flag_set" is_defined: true symbol_type: FUNCTION - crc: 0x7035284a + crc: 0xa5d1bd00 type_id: 0x01dc01ed full_name: "blk_queue_flag_set" } @@ -327179,7 +331077,7 @@ elf_symbol { name: "blk_queue_io_min" is_defined: true symbol_type: FUNCTION - crc: 0x099d776d + crc: 0xc5f52ce8 type_id: 0x13dedb1b full_name: "blk_queue_io_min" } @@ -327188,7 +331086,7 @@ elf_symbol { name: "blk_queue_io_opt" is_defined: true symbol_type: FUNCTION - crc: 0x36e578c8 + crc: 0x08fc544e type_id: 0x13dedb1b full_name: "blk_queue_io_opt" } @@ -327197,7 +331095,7 @@ elf_symbol { name: "blk_queue_logical_block_size" is_defined: true symbol_type: FUNCTION - crc: 0x219dc295 + crc: 0xc7f84ad0 type_id: 0x13dedb1b full_name: "blk_queue_logical_block_size" } @@ -327206,7 +331104,7 @@ elf_symbol { name: "blk_queue_max_discard_sectors" is_defined: true symbol_type: FUNCTION - crc: 0xcb37170f + crc: 0xb86ae954 type_id: 0x13dedb1b full_name: "blk_queue_max_discard_sectors" } @@ -327215,7 +331113,7 @@ elf_symbol { name: "blk_queue_max_discard_segments" is_defined: true symbol_type: FUNCTION - crc: 0xca613455 + crc: 0x7601783b type_id: 0x11ec3686 full_name: "blk_queue_max_discard_segments" } @@ -327224,7 +331122,7 @@ elf_symbol { name: "blk_queue_max_hw_sectors" is_defined: true symbol_type: FUNCTION - crc: 0x43c88dda + crc: 0x4faada8c type_id: 0x13dedb1b full_name: "blk_queue_max_hw_sectors" } @@ -327233,7 +331131,7 @@ elf_symbol { name: "blk_queue_max_secure_erase_sectors" is_defined: true symbol_type: FUNCTION - crc: 0x0f97c88f + crc: 0x79ffd1ad type_id: 0x13dedb1b full_name: "blk_queue_max_secure_erase_sectors" } @@ -327242,7 +331140,7 @@ elf_symbol { name: "blk_queue_max_segment_size" is_defined: true symbol_type: FUNCTION - crc: 0x11114efc + crc: 0xfe8bca3f type_id: 0x13dedb1b full_name: "blk_queue_max_segment_size" } @@ -327251,7 +331149,7 @@ elf_symbol { name: "blk_queue_max_segments" is_defined: true symbol_type: FUNCTION - crc: 0x3c063204 + crc: 0xa82172ee type_id: 0x11ec3686 full_name: "blk_queue_max_segments" } @@ -327260,7 +331158,7 @@ elf_symbol { name: "blk_queue_max_write_zeroes_sectors" is_defined: true symbol_type: FUNCTION - crc: 0xf7a7fef0 + crc: 0x2b67c770 type_id: 0x13dedb1b full_name: "blk_queue_max_write_zeroes_sectors" } @@ -327269,16 +331167,34 @@ elf_symbol { name: "blk_queue_physical_block_size" is_defined: true symbol_type: FUNCTION - crc: 0x0cdd41fa + crc: 0x8594a82f type_id: 0x13dedb1b full_name: "blk_queue_physical_block_size" } +elf_symbol { + id: 0xcc0dd52b + name: "blk_queue_update_dma_alignment" + is_defined: true + symbol_type: FUNCTION + crc: 0x9256206a + type_id: 0x13544dcf + full_name: "blk_queue_update_dma_alignment" +} +elf_symbol { + id: 0xe7756398 + name: "blk_queue_update_dma_pad" + is_defined: true + symbol_type: FUNCTION + crc: 0x20a79a43 + type_id: 0x13dedb1b + full_name: "blk_queue_update_dma_pad" +} elf_symbol { id: 0x4c74830f name: "blk_queue_write_cache" is_defined: true symbol_type: FUNCTION - crc: 0x880f7515 + crc: 0xc85af394 type_id: 0x13666c2b full_name: "blk_queue_write_cache" } @@ -327287,7 +331203,7 @@ elf_symbol { name: "blk_rq_map_kern" is_defined: true symbol_type: FUNCTION - crc: 0xf00a2ba9 + crc: 0x0a4dcdc6 type_id: 0x9fad711c full_name: "blk_rq_map_kern" } @@ -327296,7 +331212,7 @@ elf_symbol { name: "blk_rq_map_user" is_defined: true symbol_type: FUNCTION - crc: 0xe2ba0b47 + crc: 0x868ccd8b type_id: 0x9faf0c45 full_name: "blk_rq_map_user" } @@ -327305,7 +331221,7 @@ elf_symbol { name: "blk_rq_map_user_io" is_defined: true symbol_type: FUNCTION - crc: 0x553a449f + crc: 0xe1fdcfe2 type_id: 0x9a77e52d full_name: "blk_rq_map_user_io" } @@ -327314,7 +331230,7 @@ elf_symbol { name: "blk_rq_map_user_iov" is_defined: true symbol_type: FUNCTION - crc: 0x8a3ab87e + crc: 0xa700079e type_id: 0x9faf8e70 full_name: "blk_rq_map_user_iov" } @@ -327323,7 +331239,7 @@ elf_symbol { name: "blk_rq_unmap_user" is_defined: true symbol_type: FUNCTION - crc: 0x6af7fd74 + crc: 0xef748f8a type_id: 0x98e82327 full_name: "blk_rq_unmap_user" } @@ -327336,12 +331252,21 @@ elf_symbol { type_id: 0x837ae337 full_name: "blk_status_to_errno" } +elf_symbol { + id: 0xf40ec9b3 + name: "blk_update_request" + is_defined: true + symbol_type: FUNCTION + crc: 0x06d2fa00 + type_id: 0xf8fa1a38 + full_name: "blk_update_request" +} elf_symbol { id: 0x0b067d4b name: "blkdev_get_by_dev" is_defined: true symbol_type: FUNCTION - crc: 0x8db989fa + crc: 0x3f05c65a type_id: 0x138bff3f full_name: "blkdev_get_by_dev" } @@ -327350,7 +331275,7 @@ elf_symbol { name: "blkdev_get_by_path" is_defined: true symbol_type: FUNCTION - crc: 0x515ece83 + crc: 0x4e5fa4e5 type_id: 0x26cc0900 full_name: "blkdev_get_by_path" } @@ -327359,7 +331284,7 @@ elf_symbol { name: "blkdev_issue_flush" is_defined: true symbol_type: FUNCTION - crc: 0xc10b5bac + crc: 0xd1a6dfa7 type_id: 0x9e8b6578 full_name: "blkdev_issue_flush" } @@ -327368,7 +331293,7 @@ elf_symbol { name: "blkdev_put" is_defined: true symbol_type: FUNCTION - crc: 0xa790db14 + crc: 0xd8b7b382 type_id: 0x11c6c94b full_name: "blkdev_put" } @@ -327422,7 +331347,7 @@ elf_symbol { name: "bpf_prog_add" is_defined: true symbol_type: FUNCTION - crc: 0xee903f30 + crc: 0x7e0f0b5f type_id: 0x1de47b51 full_name: "bpf_prog_add" } @@ -327431,7 +331356,7 @@ elf_symbol { name: "bpf_prog_put" is_defined: true symbol_type: FUNCTION - crc: 0x95573f40 + crc: 0xe9ecabf6 type_id: 0x1c78f81d full_name: "bpf_prog_put" } @@ -327440,7 +331365,7 @@ elf_symbol { name: "bpf_prog_sub" is_defined: true symbol_type: FUNCTION - crc: 0x27344f01 + crc: 0x45a452a0 type_id: 0x1de47b51 full_name: "bpf_prog_sub" } @@ -327458,7 +331383,7 @@ elf_symbol { name: "bpf_trace_run1" is_defined: true symbol_type: FUNCTION - crc: 0x88382d02 + crc: 0x382ac5af type_id: 0x1e3074d3 full_name: "bpf_trace_run1" } @@ -327467,7 +331392,7 @@ elf_symbol { name: "bpf_trace_run10" is_defined: true symbol_type: FUNCTION - crc: 0x935ca29f + crc: 0x5572fe1d type_id: 0x1e169275 full_name: "bpf_trace_run10" } @@ -327476,7 +331401,7 @@ elf_symbol { name: "bpf_trace_run11" is_defined: true symbol_type: FUNCTION - crc: 0xa2090f7a + crc: 0x0eee9b3a type_id: 0x1e169276 full_name: "bpf_trace_run11" } @@ -327485,7 +331410,7 @@ elf_symbol { name: "bpf_trace_run12" is_defined: true symbol_type: FUNCTION - crc: 0x5145b846 + crc: 0x462e0b32 type_id: 0x1e169277 full_name: "bpf_trace_run12" } @@ -327494,7 +331419,7 @@ elf_symbol { name: "bpf_trace_run2" is_defined: true symbol_type: FUNCTION - crc: 0x6806c773 + crc: 0xb68e452b type_id: 0x1e14fc1f full_name: "bpf_trace_run2" } @@ -327503,7 +331428,7 @@ elf_symbol { name: "bpf_trace_run3" is_defined: true symbol_type: FUNCTION - crc: 0x3864825c + crc: 0xcfea156c type_id: 0x1e16b493 full_name: "bpf_trace_run3" } @@ -327512,7 +331437,7 @@ elf_symbol { name: "bpf_trace_run4" is_defined: true symbol_type: FUNCTION - crc: 0x43c2950b + crc: 0x45341636 type_id: 0x1e16901b full_name: "bpf_trace_run4" } @@ -327521,7 +331446,7 @@ elf_symbol { name: "bpf_trace_run5" is_defined: true symbol_type: FUNCTION - crc: 0xf1004875 + crc: 0x193041a3 type_id: 0x1e169253 full_name: "bpf_trace_run5" } @@ -327530,7 +331455,7 @@ elf_symbol { name: "bpf_trace_run6" is_defined: true symbol_type: FUNCTION - crc: 0x74ec4e78 + crc: 0x8d90a2ad type_id: 0x1e169278 full_name: "bpf_trace_run6" } @@ -327539,7 +331464,7 @@ elf_symbol { name: "bpf_trace_run7" is_defined: true symbol_type: FUNCTION - crc: 0x593d4f2d + crc: 0xd76fe802 type_id: 0x1e169279 full_name: "bpf_trace_run7" } @@ -327548,7 +331473,7 @@ elf_symbol { name: "bpf_trace_run8" is_defined: true symbol_type: FUNCTION - crc: 0x83e62cf7 + crc: 0xdcac35fe type_id: 0x1e16927a full_name: "bpf_trace_run8" } @@ -327557,7 +331482,7 @@ elf_symbol { name: "bpf_trace_run9" is_defined: true symbol_type: FUNCTION - crc: 0x5dc6117d + crc: 0xe1c60078 type_id: 0x1e16927b full_name: "bpf_trace_run9" } @@ -327566,7 +331491,7 @@ elf_symbol { name: "bpf_warn_invalid_xdp_action" is_defined: true symbol_type: FUNCTION - crc: 0x86e112db + crc: 0x97b12d31 type_id: 0x1ccd91f4 full_name: "bpf_warn_invalid_xdp_action" } @@ -327579,12 +331504,39 @@ elf_symbol { type_id: 0x937d3d9a full_name: "bridge_tunnel_header" } +elf_symbol { + id: 0x53eb107b + name: "bsg_job_done" + is_defined: true + symbol_type: FUNCTION + crc: 0x8e9cfeb7 + type_id: 0x1fd78946 + full_name: "bsg_job_done" +} +elf_symbol { + id: 0x9f7a08f8 + name: "bsg_remove_queue" + is_defined: true + symbol_type: FUNCTION + crc: 0x948f40e7 + type_id: 0x12c8ce83 + full_name: "bsg_remove_queue" +} +elf_symbol { + id: 0xd5dbc767 + name: "bsg_setup_queue" + is_defined: true + symbol_type: FUNCTION + crc: 0xe4e20d2e + type_id: 0x62b8d7ec + full_name: "bsg_setup_queue" +} elf_symbol { id: 0x096781b3 name: "bt_accept_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0xfec2ba06 + crc: 0x28d50f4c type_id: 0x6b5469c2 full_name: "bt_accept_dequeue" } @@ -327593,7 +331545,7 @@ elf_symbol { name: "bt_accept_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0x207ed966 + crc: 0xf4363505 type_id: 0x17a71216 full_name: "bt_accept_enqueue" } @@ -327602,7 +331554,7 @@ elf_symbol { name: "bt_accept_unlink" is_defined: true symbol_type: FUNCTION - crc: 0xb62faf26 + crc: 0x2cb6d53c type_id: 0x17c95d08 full_name: "bt_accept_unlink" } @@ -327611,7 +331563,7 @@ elf_symbol { name: "bt_debugfs" is_defined: true symbol_type: OBJECT - crc: 0x08e3e278 + crc: 0xd8440631 type_id: 0x120540d1 full_name: "bt_debugfs" } @@ -327647,7 +331599,7 @@ elf_symbol { name: "bt_procfs_cleanup" is_defined: true symbol_type: FUNCTION - crc: 0x73007cdb + crc: 0xf40663a5 type_id: 0x13488e67 full_name: "bt_procfs_cleanup" } @@ -327656,7 +331608,7 @@ elf_symbol { name: "bt_procfs_init" is_defined: true symbol_type: FUNCTION - crc: 0x2829fab6 + crc: 0xc2e3e606 type_id: 0x9e559491 full_name: "bt_procfs_init" } @@ -327665,7 +331617,7 @@ elf_symbol { name: "bt_sock_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0xc9759816 + crc: 0x909e79a3 type_id: 0x9882219f full_name: "bt_sock_ioctl" } @@ -327674,7 +331626,7 @@ elf_symbol { name: "bt_sock_link" is_defined: true symbol_type: FUNCTION - crc: 0x354d919e + crc: 0x7a4aa6e3 type_id: 0x15f330e3 full_name: "bt_sock_link" } @@ -327683,7 +331635,7 @@ elf_symbol { name: "bt_sock_poll" is_defined: true symbol_type: FUNCTION - crc: 0x9413c8c9 + crc: 0xbd9ffbff type_id: 0x2545d8c8 full_name: "bt_sock_poll" } @@ -327692,7 +331644,7 @@ elf_symbol { name: "bt_sock_reclassify_lock" is_defined: true symbol_type: FUNCTION - crc: 0x20dbbea8 + crc: 0x5792650c type_id: 0x1655de44 full_name: "bt_sock_reclassify_lock" } @@ -327701,7 +331653,7 @@ elf_symbol { name: "bt_sock_recvmsg" is_defined: true symbol_type: FUNCTION - crc: 0x96d5abbc + crc: 0x9f447e80 type_id: 0x9917165a full_name: "bt_sock_recvmsg" } @@ -327710,7 +331662,7 @@ elf_symbol { name: "bt_sock_register" is_defined: true symbol_type: FUNCTION - crc: 0x6de91ef2 + crc: 0xbd96b5a3 type_id: 0x84acfa74 full_name: "bt_sock_register" } @@ -327719,7 +331671,7 @@ elf_symbol { name: "bt_sock_stream_recvmsg" is_defined: true symbol_type: FUNCTION - crc: 0x24fe60bf + crc: 0x2c063dc7 type_id: 0x9917165a full_name: "bt_sock_stream_recvmsg" } @@ -327728,7 +331680,7 @@ elf_symbol { name: "bt_sock_unlink" is_defined: true symbol_type: FUNCTION - crc: 0xaa4766b8 + crc: 0x8bcbbeb0 type_id: 0x15f330e3 full_name: "bt_sock_unlink" } @@ -327746,7 +331698,7 @@ elf_symbol { name: "bt_sock_wait_ready" is_defined: true symbol_type: FUNCTION - crc: 0x4adbf7e0 + crc: 0x3ade5039 type_id: 0x9bc7fa2c full_name: "bt_sock_wait_ready" } @@ -327755,7 +331707,7 @@ elf_symbol { name: "bt_sock_wait_state" is_defined: true symbol_type: FUNCTION - crc: 0xa2db33b4 + crc: 0x6633dfc2 type_id: 0x9b41b1a1 full_name: "bt_sock_wait_state" } @@ -327800,7 +331752,7 @@ elf_symbol { name: "btbcm_check_bdaddr" is_defined: true symbol_type: FUNCTION - crc: 0xf2fa6a51 + crc: 0x980d6cca type_id: 0x9af01625 full_name: "btbcm_check_bdaddr" } @@ -327809,7 +331761,7 @@ elf_symbol { name: "btbcm_finalize" is_defined: true symbol_type: FUNCTION - crc: 0x1309b985 + crc: 0x2e280358 type_id: 0x9aac764b full_name: "btbcm_finalize" } @@ -327818,7 +331770,7 @@ elf_symbol { name: "btbcm_initialize" is_defined: true symbol_type: FUNCTION - crc: 0x6e5f3e40 + crc: 0xa9039bd7 type_id: 0x9aac764b full_name: "btbcm_initialize" } @@ -327827,7 +331779,7 @@ elf_symbol { name: "btbcm_patchram" is_defined: true symbol_type: FUNCTION - crc: 0x986a53e5 + crc: 0x6d234446 type_id: 0x9a3c1260 full_name: "btbcm_patchram" } @@ -327836,7 +331788,7 @@ elf_symbol { name: "btbcm_read_pcm_int_params" is_defined: true symbol_type: FUNCTION - crc: 0xd5f74fcf + crc: 0x9b44b8dd type_id: 0x9a4917d6 full_name: "btbcm_read_pcm_int_params" } @@ -327845,7 +331797,7 @@ elf_symbol { name: "btbcm_set_bdaddr" is_defined: true symbol_type: FUNCTION - crc: 0x6694e921 + crc: 0x51e11a28 type_id: 0x9a2fc16a full_name: "btbcm_set_bdaddr" } @@ -327854,7 +331806,7 @@ elf_symbol { name: "btbcm_setup_apple" is_defined: true symbol_type: FUNCTION - crc: 0x5f97b8ba + crc: 0xa63cdd0d type_id: 0x9af01625 full_name: "btbcm_setup_apple" } @@ -327863,7 +331815,7 @@ elf_symbol { name: "btbcm_setup_patchram" is_defined: true symbol_type: FUNCTION - crc: 0x691b43f3 + crc: 0xb12d5973 type_id: 0x9af01625 full_name: "btbcm_setup_patchram" } @@ -327872,7 +331824,7 @@ elf_symbol { name: "btbcm_write_pcm_int_params" is_defined: true symbol_type: FUNCTION - crc: 0xc927e0b1 + crc: 0x380c3e7c type_id: 0x9a22976b full_name: "btbcm_write_pcm_int_params" } @@ -327881,7 +331833,7 @@ elf_symbol { name: "build_skb" is_defined: true symbol_type: FUNCTION - crc: 0xe058ac03 + crc: 0x54792eb8 type_id: 0x6fa775f5 full_name: "build_skb" } @@ -327890,7 +331842,7 @@ elf_symbol { name: "bus_find_device" is_defined: true symbol_type: FUNCTION - crc: 0x4f97c0be + crc: 0x4df57dbf type_id: 0xaddb3e9f full_name: "bus_find_device" } @@ -327899,7 +331851,7 @@ elf_symbol { name: "bus_for_each_dev" is_defined: true symbol_type: FUNCTION - crc: 0xade7e997 + crc: 0xf05074c6 type_id: 0x9d7c8594 full_name: "bus_for_each_dev" } @@ -327908,7 +331860,7 @@ elf_symbol { name: "bus_for_each_drv" is_defined: true symbol_type: FUNCTION - crc: 0x815d4cef + crc: 0x6632b984 type_id: 0x9dbc74e0 full_name: "bus_for_each_drv" } @@ -327917,7 +331869,7 @@ elf_symbol { name: "bus_register" is_defined: true symbol_type: FUNCTION - crc: 0xf7136d53 + crc: 0xfde1dd74 type_id: 0x9d737e1c full_name: "bus_register" } @@ -327926,7 +331878,7 @@ elf_symbol { name: "bus_register_notifier" is_defined: true symbol_type: FUNCTION - crc: 0x33ae5d1b + crc: 0xa1eee288 type_id: 0x9d1da48d full_name: "bus_register_notifier" } @@ -327935,7 +331887,7 @@ elf_symbol { name: "bus_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x8a37a25e + crc: 0xdeb061fb type_id: 0x106bcca0 full_name: "bus_unregister" } @@ -327944,7 +331896,7 @@ elf_symbol { name: "bus_unregister_notifier" is_defined: true symbol_type: FUNCTION - crc: 0xad0b1cca + crc: 0x603a908f type_id: 0x9d1da48d full_name: "bus_unregister_notifier" } @@ -327969,7 +331921,7 @@ elf_symbol { name: "call_netdevice_notifiers" is_defined: true symbol_type: FUNCTION - crc: 0x35f34a75 + crc: 0x4d40ce56 type_id: 0x91972281 full_name: "call_netdevice_notifiers" } @@ -328014,7 +331966,7 @@ elf_symbol { name: "can_bus_off" is_defined: true symbol_type: FUNCTION - crc: 0x7c0a1fa8 + crc: 0x479f9df4 type_id: 0x1c31d966 full_name: "can_bus_off" } @@ -328023,7 +331975,7 @@ elf_symbol { name: "can_change_mtu" is_defined: true symbol_type: FUNCTION - crc: 0xaaaa4d72 + crc: 0xbaeac14c type_id: 0x90b5e896 full_name: "can_change_mtu" } @@ -328032,7 +331984,7 @@ elf_symbol { name: "can_change_state" is_defined: true symbol_type: FUNCTION - crc: 0xb67f2712 + crc: 0xc4b6a230 type_id: 0x1c6ae2fd full_name: "can_change_state" } @@ -328041,7 +331993,7 @@ elf_symbol { name: "can_dropped_invalid_skb" is_defined: true symbol_type: FUNCTION - crc: 0xa7c9492b + crc: 0x39d379bb type_id: 0xf218ee55 full_name: "can_dropped_invalid_skb" } @@ -328050,7 +332002,7 @@ elf_symbol { name: "can_eth_ioctl_hwts" is_defined: true symbol_type: FUNCTION - crc: 0x697dc515 + crc: 0x98cc04e8 type_id: 0x91e86e2c full_name: "can_eth_ioctl_hwts" } @@ -328059,7 +332011,7 @@ elf_symbol { name: "can_ethtool_op_get_ts_info_hwts" is_defined: true symbol_type: FUNCTION - crc: 0xb3d898a1 + crc: 0x6b50e1f6 type_id: 0x916bd4e5 full_name: "can_ethtool_op_get_ts_info_hwts" } @@ -328086,7 +332038,7 @@ elf_symbol { name: "can_free_echo_skb" is_defined: true symbol_type: FUNCTION - crc: 0xd75feb18 + crc: 0x08935df2 type_id: 0x1d2130a6 full_name: "can_free_echo_skb" } @@ -328095,7 +332047,7 @@ elf_symbol { name: "can_get_echo_skb" is_defined: true symbol_type: FUNCTION - crc: 0xd4b46eec + crc: 0xc5f3e9e7 type_id: 0xc3621fce full_name: "can_get_echo_skb" } @@ -328113,7 +332065,7 @@ elf_symbol { name: "can_proto_register" is_defined: true symbol_type: FUNCTION - crc: 0x1e20bbfa + crc: 0x9a0674e2 type_id: 0x93fb658b full_name: "can_proto_register" } @@ -328122,7 +332074,7 @@ elf_symbol { name: "can_proto_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x065400eb + crc: 0x8c69163a type_id: 0x1ee3d737 full_name: "can_proto_unregister" } @@ -328131,7 +332083,7 @@ elf_symbol { name: "can_put_echo_skb" is_defined: true symbol_type: FUNCTION - crc: 0x7541dba8 + crc: 0x5d703a66 type_id: 0x9c09d6aa full_name: "can_put_echo_skb" } @@ -328140,7 +332092,7 @@ elf_symbol { name: "can_rx_offload_add_fifo" is_defined: true symbol_type: FUNCTION - crc: 0x93c3fd28 + crc: 0x09d6e2ca type_id: 0x91c43545 full_name: "can_rx_offload_add_fifo" } @@ -328149,7 +332101,7 @@ elf_symbol { name: "can_rx_offload_add_manual" is_defined: true symbol_type: FUNCTION - crc: 0x43a90232 + crc: 0x5cfd12a6 type_id: 0x91c43545 full_name: "can_rx_offload_add_manual" } @@ -328158,7 +332110,7 @@ elf_symbol { name: "can_rx_offload_add_timestamp" is_defined: true symbol_type: FUNCTION - crc: 0xd98556f8 + crc: 0xf6cf117f type_id: 0x91d5541c full_name: "can_rx_offload_add_timestamp" } @@ -328167,7 +332119,7 @@ elf_symbol { name: "can_rx_offload_del" is_defined: true symbol_type: FUNCTION - crc: 0x13418e61 + crc: 0xc9f45506 type_id: 0x1f5badff full_name: "can_rx_offload_del" } @@ -328176,7 +332128,7 @@ elf_symbol { name: "can_rx_offload_enable" is_defined: true symbol_type: FUNCTION - crc: 0xe85cea02 + crc: 0xdc574a43 type_id: 0x1f5badff full_name: "can_rx_offload_enable" } @@ -328185,7 +332137,7 @@ elf_symbol { name: "can_rx_offload_get_echo_skb" is_defined: true symbol_type: FUNCTION - crc: 0x28e18e73 + crc: 0x70fc440a type_id: 0xc03cbac0 full_name: "can_rx_offload_get_echo_skb" } @@ -328194,7 +332146,7 @@ elf_symbol { name: "can_rx_offload_irq_finish" is_defined: true symbol_type: FUNCTION - crc: 0xe3ee0f3c + crc: 0x0ef9e391 type_id: 0x1f5badff full_name: "can_rx_offload_irq_finish" } @@ -328203,7 +332155,7 @@ elf_symbol { name: "can_rx_offload_irq_offload_fifo" is_defined: true symbol_type: FUNCTION - crc: 0x693c9454 + crc: 0xe1500402 type_id: 0x92431f43 full_name: "can_rx_offload_irq_offload_fifo" } @@ -328212,7 +332164,7 @@ elf_symbol { name: "can_rx_offload_irq_offload_timestamp" is_defined: true symbol_type: FUNCTION - crc: 0xc77d3c7b + crc: 0xf528c5f3 type_id: 0x900b938d full_name: "can_rx_offload_irq_offload_timestamp" } @@ -328221,7 +332173,7 @@ elf_symbol { name: "can_rx_offload_queue_tail" is_defined: true symbol_type: FUNCTION - crc: 0xda383ce2 + crc: 0x904a523a type_id: 0x925622e7 full_name: "can_rx_offload_queue_tail" } @@ -328230,7 +332182,7 @@ elf_symbol { name: "can_rx_offload_queue_timestamp" is_defined: true symbol_type: FUNCTION - crc: 0x08964144 + crc: 0x589e5582 type_id: 0x926460ed full_name: "can_rx_offload_queue_timestamp" } @@ -328239,7 +332191,7 @@ elf_symbol { name: "can_rx_offload_threaded_irq_finish" is_defined: true symbol_type: FUNCTION - crc: 0xb98ef92c + crc: 0xefac8e06 type_id: 0x1f5badff full_name: "can_rx_offload_threaded_irq_finish" } @@ -328248,7 +332200,7 @@ elf_symbol { name: "can_rx_register" is_defined: true symbol_type: FUNCTION - crc: 0x11019184 + crc: 0xec8c7334 type_id: 0x9e789129 full_name: "can_rx_register" } @@ -328257,7 +332209,7 @@ elf_symbol { name: "can_rx_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x059379fd + crc: 0x447da206 type_id: 0x13602394 full_name: "can_rx_unregister" } @@ -328266,7 +332218,7 @@ elf_symbol { name: "can_send" is_defined: true symbol_type: FUNCTION - crc: 0x926d4c07 + crc: 0xcac54ad6 type_id: 0x9d4fba25 full_name: "can_send" } @@ -328275,7 +332227,7 @@ elf_symbol { name: "can_skb_get_frame_len" is_defined: true symbol_type: FUNCTION - crc: 0x8c5714b4 + crc: 0xc6ca2037 type_id: 0xc1439b43 full_name: "can_skb_get_frame_len" } @@ -328284,7 +332236,7 @@ elf_symbol { name: "can_sock_destruct" is_defined: true symbol_type: FUNCTION - crc: 0x3d261e74 + crc: 0xcf838efe type_id: 0x17c95d08 full_name: "can_sock_destruct" } @@ -328329,7 +332281,7 @@ elf_symbol { name: "cdc_parse_cdc_header" is_defined: true symbol_type: FUNCTION - crc: 0x94da2f43 + crc: 0x047c20a2 type_id: 0x99ed2791 full_name: "cdc_parse_cdc_header" } @@ -328338,7 +332290,7 @@ elf_symbol { name: "cdev_add" is_defined: true symbol_type: FUNCTION - crc: 0x29b0399f + crc: 0x80d8ec36 type_id: 0x996ed754 full_name: "cdev_add" } @@ -328347,7 +332299,7 @@ elf_symbol { name: "cdev_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x801e99fc + crc: 0xfd73e985 type_id: 0x6e128fdc full_name: "cdev_alloc" } @@ -328356,7 +332308,7 @@ elf_symbol { name: "cdev_del" is_defined: true symbol_type: FUNCTION - crc: 0x93088317 + crc: 0xb8010fc9 type_id: 0x17cb3906 full_name: "cdev_del" } @@ -328365,7 +332317,7 @@ elf_symbol { name: "cdev_device_add" is_defined: true symbol_type: FUNCTION - crc: 0x55e3bc5e + crc: 0xbd63e142 type_id: 0x9adae85f full_name: "cdev_device_add" } @@ -328374,7 +332326,7 @@ elf_symbol { name: "cdev_device_del" is_defined: true symbol_type: FUNCTION - crc: 0xc8752951 + crc: 0xf98141c7 type_id: 0x17c25ae3 full_name: "cdev_device_del" } @@ -328383,7 +332335,7 @@ elf_symbol { name: "cdev_init" is_defined: true symbol_type: FUNCTION - crc: 0xaa522bd5 + crc: 0x02a09c88 type_id: 0x17107dc5 full_name: "cdev_init" } @@ -328392,7 +332344,7 @@ elf_symbol { name: "cec_allocate_adapter" is_defined: true symbol_type: FUNCTION - crc: 0x02da5336 + crc: 0x685a1f3e type_id: 0x1d796e4e full_name: "cec_allocate_adapter" } @@ -328401,7 +332353,7 @@ elf_symbol { name: "cec_delete_adapter" is_defined: true symbol_type: FUNCTION - crc: 0x0f439fa3 + crc: 0x953c9320 type_id: 0x1e99dfd1 full_name: "cec_delete_adapter" } @@ -328410,7 +332362,7 @@ elf_symbol { name: "cec_received_msg_ts" is_defined: true symbol_type: FUNCTION - crc: 0x9147afac + crc: 0x0bb3cc19 type_id: 0x1ec3ec50 full_name: "cec_received_msg_ts" } @@ -328419,7 +332371,7 @@ elf_symbol { name: "cec_register_adapter" is_defined: true symbol_type: FUNCTION - crc: 0xfe39e07c + crc: 0xd9b5e86b type_id: 0x93880e88 full_name: "cec_register_adapter" } @@ -328428,7 +332380,7 @@ elf_symbol { name: "cec_s_log_addrs" is_defined: true symbol_type: FUNCTION - crc: 0xac3bedb9 + crc: 0xef7ce9e5 type_id: 0x93d6e983 full_name: "cec_s_log_addrs" } @@ -328437,7 +332389,7 @@ elf_symbol { name: "cec_s_phys_addr" is_defined: true symbol_type: FUNCTION - crc: 0x6157dda6 + crc: 0x383c2af2 type_id: 0x1cc7b6f9 full_name: "cec_s_phys_addr" } @@ -328446,7 +332398,7 @@ elf_symbol { name: "cec_transmit_attempt_done_ts" is_defined: true symbol_type: FUNCTION - crc: 0x3cfa2787 + crc: 0x4486c6c2 type_id: 0x1e38df18 full_name: "cec_transmit_attempt_done_ts" } @@ -328455,7 +332407,7 @@ elf_symbol { name: "cec_unregister_adapter" is_defined: true symbol_type: FUNCTION - crc: 0x01f31689 + crc: 0xfe3d8b28 type_id: 0x1e99dfd1 full_name: "cec_unregister_adapter" } @@ -328464,7 +332416,7 @@ elf_symbol { name: "cfg80211_any_usable_channels" is_defined: true symbol_type: FUNCTION - crc: 0xf9ec802e + crc: 0x48f5ea7c type_id: 0xfa370696 full_name: "cfg80211_any_usable_channels" } @@ -328473,7 +332425,7 @@ elf_symbol { name: "cfg80211_assoc_comeback" is_defined: true symbol_type: FUNCTION - crc: 0x8db9ec2e + crc: 0x0b5d99d8 type_id: 0x1cff9d7b full_name: "cfg80211_assoc_comeback" } @@ -328482,7 +332434,7 @@ elf_symbol { name: "cfg80211_assoc_failure" is_defined: true symbol_type: FUNCTION - crc: 0xa5f0c1dc + crc: 0x9c25c4bd type_id: 0x1c8a4c12 full_name: "cfg80211_assoc_failure" } @@ -328491,7 +332443,7 @@ elf_symbol { name: "cfg80211_auth_timeout" is_defined: true symbol_type: FUNCTION - crc: 0x6f946dff + crc: 0x8d04eaf6 type_id: 0x1ccddf71 full_name: "cfg80211_auth_timeout" } @@ -328500,7 +332452,7 @@ elf_symbol { name: "cfg80211_background_cac_abort" is_defined: true symbol_type: FUNCTION - crc: 0xc99c71bb + crc: 0xa4634410 type_id: 0x14f49b99 full_name: "cfg80211_background_cac_abort" } @@ -328509,7 +332461,7 @@ elf_symbol { name: "cfg80211_bss_color_notify" is_defined: true symbol_type: FUNCTION - crc: 0xa8ed3f76 + crc: 0x2d3f45ad type_id: 0x92d4668d full_name: "cfg80211_bss_color_notify" } @@ -328518,7 +332470,7 @@ elf_symbol { name: "cfg80211_bss_flush" is_defined: true symbol_type: FUNCTION - crc: 0xfbb794b0 + crc: 0x57eaac3c type_id: 0x14f49b99 full_name: "cfg80211_bss_flush" } @@ -328527,7 +332479,7 @@ elf_symbol { name: "cfg80211_bss_iter" is_defined: true symbol_type: FUNCTION - crc: 0x1d5eea4c + crc: 0x1e18ee89 type_id: 0x145e8a09 full_name: "cfg80211_bss_iter" } @@ -328536,7 +332488,7 @@ elf_symbol { name: "cfg80211_cac_event" is_defined: true symbol_type: FUNCTION - crc: 0xc9433e49 + crc: 0xf8f45dc7 type_id: 0x1ce728e2 full_name: "cfg80211_cac_event" } @@ -328554,7 +332506,7 @@ elf_symbol { name: "cfg80211_ch_switch_notify" is_defined: true symbol_type: FUNCTION - crc: 0xdcde54a6 + crc: 0xca9e4ffb type_id: 0x1c8b6bb5 full_name: "cfg80211_ch_switch_notify" } @@ -328563,7 +332515,7 @@ elf_symbol { name: "cfg80211_ch_switch_started_notify" is_defined: true symbol_type: FUNCTION - crc: 0x86eba6c4 + crc: 0x33a77517 type_id: 0x1c8992e8 full_name: "cfg80211_ch_switch_started_notify" } @@ -328590,7 +332542,7 @@ elf_symbol { name: "cfg80211_chandef_dfs_required" is_defined: true symbol_type: FUNCTION - crc: 0xbc0a04b6 + crc: 0x87923875 type_id: 0x99222c44 full_name: "cfg80211_chandef_dfs_required" } @@ -328599,7 +332551,7 @@ elf_symbol { name: "cfg80211_chandef_usable" is_defined: true symbol_type: FUNCTION - crc: 0xfc76ddf9 + crc: 0x19e90d2e type_id: 0xfa2c7799 full_name: "cfg80211_chandef_usable" } @@ -328617,7 +332569,7 @@ elf_symbol { name: "cfg80211_check_combinations" is_defined: true symbol_type: FUNCTION - crc: 0xa3954a68 + crc: 0xb554e7bf type_id: 0x99c1066c full_name: "cfg80211_check_combinations" } @@ -328626,7 +332578,7 @@ elf_symbol { name: "cfg80211_check_station_change" is_defined: true symbol_type: FUNCTION - crc: 0xb7d670f5 + crc: 0xd15b158f type_id: 0x99d81925 full_name: "cfg80211_check_station_change" } @@ -328635,7 +332587,7 @@ elf_symbol { name: "cfg80211_classify8021d" is_defined: true symbol_type: FUNCTION - crc: 0xdb88bdc0 + crc: 0x565b1d60 type_id: 0xcfbd8d04 full_name: "cfg80211_classify8021d" } @@ -328644,7 +332596,7 @@ elf_symbol { name: "cfg80211_conn_failed" is_defined: true symbol_type: FUNCTION - crc: 0x30ac70c2 + crc: 0xe4a8d7a3 type_id: 0x1cc4b68d full_name: "cfg80211_conn_failed" } @@ -328653,7 +332605,7 @@ elf_symbol { name: "cfg80211_connect_done" is_defined: true symbol_type: FUNCTION - crc: 0xfe80830b + crc: 0x5df35c2b type_id: 0x1cca119c full_name: "cfg80211_connect_done" } @@ -328662,7 +332614,7 @@ elf_symbol { name: "cfg80211_control_port_tx_status" is_defined: true symbol_type: FUNCTION - crc: 0x4e5b1485 + crc: 0xbfa1dad3 type_id: 0x1cad7c91 full_name: "cfg80211_control_port_tx_status" } @@ -328671,7 +332623,7 @@ elf_symbol { name: "cfg80211_cqm_beacon_loss_notify" is_defined: true symbol_type: FUNCTION - crc: 0x5930ce7a + crc: 0xb2bfd5fa type_id: 0x1ff74219 full_name: "cfg80211_cqm_beacon_loss_notify" } @@ -328680,7 +332632,7 @@ elf_symbol { name: "cfg80211_cqm_pktloss_notify" is_defined: true symbol_type: FUNCTION - crc: 0xbe23f8ac + crc: 0x2df51220 type_id: 0x1cfc5be0 full_name: "cfg80211_cqm_pktloss_notify" } @@ -328689,7 +332641,7 @@ elf_symbol { name: "cfg80211_cqm_rssi_notify" is_defined: true symbol_type: FUNCTION - crc: 0xf581f5d8 + crc: 0xa4b1fd9b type_id: 0x1f121f81 full_name: "cfg80211_cqm_rssi_notify" } @@ -328698,7 +332650,7 @@ elf_symbol { name: "cfg80211_cqm_txe_notify" is_defined: true symbol_type: FUNCTION - crc: 0xea881dd6 + crc: 0x557fd007 type_id: 0x1cfc88df full_name: "cfg80211_cqm_txe_notify" } @@ -328707,7 +332659,7 @@ elf_symbol { name: "cfg80211_crit_proto_stopped" is_defined: true symbol_type: FUNCTION - crc: 0xdf7b073c + crc: 0xffcb878e type_id: 0x1d2f630d full_name: "cfg80211_crit_proto_stopped" } @@ -328716,7 +332668,7 @@ elf_symbol { name: "cfg80211_del_sta_sinfo" is_defined: true symbol_type: FUNCTION - crc: 0xb9138fa2 + crc: 0xbf3636d6 type_id: 0x1cc3a558 full_name: "cfg80211_del_sta_sinfo" } @@ -328725,7 +332677,7 @@ elf_symbol { name: "cfg80211_disconnected" is_defined: true symbol_type: FUNCTION - crc: 0x20c06ab1 + crc: 0xc8dc982e type_id: 0x1e78e7b4 full_name: "cfg80211_disconnected" } @@ -328734,7 +332686,7 @@ elf_symbol { name: "cfg80211_external_auth_request" is_defined: true symbol_type: FUNCTION - crc: 0xd022e4a1 + crc: 0xc49791c2 type_id: 0x91aa6a7d full_name: "cfg80211_external_auth_request" } @@ -328770,7 +332722,7 @@ elf_symbol { name: "cfg80211_ft_event" is_defined: true symbol_type: FUNCTION - crc: 0x91df6f4a + crc: 0x91272556 type_id: 0x1ca15a24 full_name: "cfg80211_ft_event" } @@ -328779,7 +332731,7 @@ elf_symbol { name: "cfg80211_get_bss" is_defined: true symbol_type: FUNCTION - crc: 0x1b66cf78 + crc: 0xc87645d0 type_id: 0x1baf163d full_name: "cfg80211_get_bss" } @@ -328788,7 +332740,7 @@ elf_symbol { name: "cfg80211_get_drvinfo" is_defined: true symbol_type: FUNCTION - crc: 0x234fd1b3 + crc: 0x3bde4bd6 type_id: 0x1cc68e0f full_name: "cfg80211_get_drvinfo" } @@ -328806,7 +332758,7 @@ elf_symbol { name: "cfg80211_get_iftype_ext_capa" is_defined: true symbol_type: FUNCTION - crc: 0xde2c49a8 + crc: 0x75c7f8c0 type_id: 0x2e14200a full_name: "cfg80211_get_iftype_ext_capa" } @@ -328824,7 +332776,7 @@ elf_symbol { name: "cfg80211_get_station" is_defined: true symbol_type: FUNCTION - crc: 0x527777b2 + crc: 0x6ed05222 type_id: 0x91d8d17f full_name: "cfg80211_get_station" } @@ -328833,7 +332785,7 @@ elf_symbol { name: "cfg80211_gtk_rekey_notify" is_defined: true symbol_type: FUNCTION - crc: 0x90126098 + crc: 0x07209536 type_id: 0x1cc1d98b full_name: "cfg80211_gtk_rekey_notify" } @@ -328842,7 +332794,7 @@ elf_symbol { name: "cfg80211_ibss_joined" is_defined: true symbol_type: FUNCTION - crc: 0xe4402601 + crc: 0x40a2b6f1 type_id: 0x1cc4cffb full_name: "cfg80211_ibss_joined" } @@ -328851,7 +332803,7 @@ elf_symbol { name: "cfg80211_iftype_allowed" is_defined: true symbol_type: FUNCTION - crc: 0x40531f14 + crc: 0x3e95cdcc type_id: 0xfb59746c full_name: "cfg80211_iftype_allowed" } @@ -328860,7 +332812,7 @@ elf_symbol { name: "cfg80211_inform_bss_data" is_defined: true symbol_type: FUNCTION - crc: 0x603e851d + crc: 0xb4354674 type_id: 0x1b3d9c55 full_name: "cfg80211_inform_bss_data" } @@ -328869,7 +332821,7 @@ elf_symbol { name: "cfg80211_inform_bss_frame_data" is_defined: true symbol_type: FUNCTION - crc: 0x2fa43245 + crc: 0x9cc9602c type_id: 0x1b002424 full_name: "cfg80211_inform_bss_frame_data" } @@ -328887,7 +332839,7 @@ elf_symbol { name: "cfg80211_iter_combinations" is_defined: true symbol_type: FUNCTION - crc: 0x70e8a2ae + crc: 0xe1e1441a type_id: 0x99c209ea full_name: "cfg80211_iter_combinations" } @@ -328905,7 +332857,7 @@ elf_symbol { name: "cfg80211_mgmt_tx_status_ext" is_defined: true symbol_type: FUNCTION - crc: 0xaef68530 + crc: 0x64f1051e type_id: 0x1ecedd22 full_name: "cfg80211_mgmt_tx_status_ext" } @@ -328914,7 +332866,7 @@ elf_symbol { name: "cfg80211_michael_mic_failure" is_defined: true symbol_type: FUNCTION - crc: 0xea76a078 + crc: 0x4b7b5929 type_id: 0x1cca92e4 full_name: "cfg80211_michael_mic_failure" } @@ -328923,7 +332875,7 @@ elf_symbol { name: "cfg80211_nan_func_terminated" is_defined: true symbol_type: FUNCTION - crc: 0x80330a76 + crc: 0x35968b98 type_id: 0x1e5c4d09 full_name: "cfg80211_nan_func_terminated" } @@ -328932,7 +332884,7 @@ elf_symbol { name: "cfg80211_nan_match" is_defined: true symbol_type: FUNCTION - crc: 0xf41edd77 + crc: 0x6e408291 type_id: 0x1e0550f8 full_name: "cfg80211_nan_match" } @@ -328941,7 +332893,7 @@ elf_symbol { name: "cfg80211_new_sta" is_defined: true symbol_type: FUNCTION - crc: 0x73d8be45 + crc: 0x0e4580f0 type_id: 0x1cc3a558 full_name: "cfg80211_new_sta" } @@ -328950,7 +332902,7 @@ elf_symbol { name: "cfg80211_notify_new_peer_candidate" is_defined: true symbol_type: FUNCTION - crc: 0xb4ebfda4 + crc: 0xf087f425 type_id: 0x1cc2a06f full_name: "cfg80211_notify_new_peer_candidate" } @@ -328959,7 +332911,7 @@ elf_symbol { name: "cfg80211_pmksa_candidate_notify" is_defined: true symbol_type: FUNCTION - crc: 0xf936cdc5 + crc: 0x08e68cbf type_id: 0x1da313df full_name: "cfg80211_pmksa_candidate_notify" } @@ -328968,7 +332920,7 @@ elf_symbol { name: "cfg80211_pmsr_complete" is_defined: true symbol_type: FUNCTION - crc: 0x4754d2f3 + crc: 0x6a4ae891 type_id: 0x1eea48f4 full_name: "cfg80211_pmsr_complete" } @@ -328977,7 +332929,7 @@ elf_symbol { name: "cfg80211_pmsr_report" is_defined: true symbol_type: FUNCTION - crc: 0xb96a8fc3 + crc: 0x4509e509 type_id: 0x1ed9fcfc full_name: "cfg80211_pmsr_report" } @@ -328986,7 +332938,7 @@ elf_symbol { name: "cfg80211_port_authorized" is_defined: true symbol_type: FUNCTION - crc: 0x8ba3e8b9 + crc: 0x273d5abf type_id: 0x1cc28608 full_name: "cfg80211_port_authorized" } @@ -328995,7 +332947,7 @@ elf_symbol { name: "cfg80211_probe_status" is_defined: true symbol_type: FUNCTION - crc: 0xcf9d2843 + crc: 0xe4e235e5 type_id: 0x1ce8d6ce full_name: "cfg80211_probe_status" } @@ -329004,7 +332956,7 @@ elf_symbol { name: "cfg80211_put_bss" is_defined: true symbol_type: FUNCTION - crc: 0xbd225330 + crc: 0x53c83283 type_id: 0x141b54bc full_name: "cfg80211_put_bss" } @@ -329013,7 +332965,7 @@ elf_symbol { name: "cfg80211_ready_on_channel" is_defined: true symbol_type: FUNCTION - crc: 0xe1f2e472 + crc: 0xa74a300f type_id: 0x1caa88d1 full_name: "cfg80211_ready_on_channel" } @@ -329022,7 +332974,7 @@ elf_symbol { name: "cfg80211_ref_bss" is_defined: true symbol_type: FUNCTION - crc: 0x49e2498c + crc: 0x4767df95 type_id: 0x141b54bc full_name: "cfg80211_ref_bss" } @@ -329031,7 +332983,7 @@ elf_symbol { name: "cfg80211_reg_can_beacon" is_defined: true symbol_type: FUNCTION - crc: 0xa0137ac5 + crc: 0x0da2d095 type_id: 0xfa79a64e full_name: "cfg80211_reg_can_beacon" } @@ -329040,7 +332992,7 @@ elf_symbol { name: "cfg80211_reg_can_beacon_relax" is_defined: true symbol_type: FUNCTION - crc: 0x43dcab66 + crc: 0xa178611d type_id: 0xfa79a64e full_name: "cfg80211_reg_can_beacon_relax" } @@ -329049,7 +333001,7 @@ elf_symbol { name: "cfg80211_register_netdevice" is_defined: true symbol_type: FUNCTION - crc: 0xada56552 + crc: 0xfa41ed3d type_id: 0x91296bda full_name: "cfg80211_register_netdevice" } @@ -329058,7 +333010,7 @@ elf_symbol { name: "cfg80211_remain_on_channel_expired" is_defined: true symbol_type: FUNCTION - crc: 0xdc5b93c0 + crc: 0x6bd0bfe5 type_id: 0x1ca86436 full_name: "cfg80211_remain_on_channel_expired" } @@ -329067,7 +333019,7 @@ elf_symbol { name: "cfg80211_report_obss_beacon_khz" is_defined: true symbol_type: FUNCTION - crc: 0xd4c5e6c2 + crc: 0xd32a7770 type_id: 0x1434159f full_name: "cfg80211_report_obss_beacon_khz" } @@ -329076,7 +333028,7 @@ elf_symbol { name: "cfg80211_report_wowlan_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0xf32652c4 + crc: 0x0f84f0e9 type_id: 0x1e52b698 full_name: "cfg80211_report_wowlan_wakeup" } @@ -329085,7 +333037,7 @@ elf_symbol { name: "cfg80211_roamed" is_defined: true symbol_type: FUNCTION - crc: 0x99b35077 + crc: 0xaf1941ca type_id: 0x1c650f64 full_name: "cfg80211_roamed" } @@ -329094,7 +333046,7 @@ elf_symbol { name: "cfg80211_rx_assoc_resp" is_defined: true symbol_type: FUNCTION - crc: 0x2fe88432 + crc: 0x22e3f02d type_id: 0x1c9e93de full_name: "cfg80211_rx_assoc_resp" } @@ -329103,8 +333055,8 @@ elf_symbol { name: "cfg80211_rx_control_port" is_defined: true symbol_type: FUNCTION - crc: 0x19c30d56 - type_id: 0xf203b182 + crc: 0x70d8333f + type_id: 0xf2022d01 full_name: "cfg80211_rx_control_port" } elf_symbol { @@ -329112,7 +333064,7 @@ elf_symbol { name: "cfg80211_rx_mgmt_ext" is_defined: true symbol_type: FUNCTION - crc: 0x0bc90b2e + crc: 0xcff9a4a3 type_id: 0xf0d2c690 full_name: "cfg80211_rx_mgmt_ext" } @@ -329121,7 +333073,7 @@ elf_symbol { name: "cfg80211_rx_mlme_mgmt" is_defined: true symbol_type: FUNCTION - crc: 0x19f4197d + crc: 0xacd80680 type_id: 0x1cf0d22b full_name: "cfg80211_rx_mlme_mgmt" } @@ -329130,7 +333082,7 @@ elf_symbol { name: "cfg80211_rx_spurious_frame" is_defined: true symbol_type: FUNCTION - crc: 0xf403bb17 + crc: 0x87690cfc type_id: 0xf2cdbc51 full_name: "cfg80211_rx_spurious_frame" } @@ -329139,7 +333091,7 @@ elf_symbol { name: "cfg80211_rx_unexpected_4addr_frame" is_defined: true symbol_type: FUNCTION - crc: 0xd7f7a522 + crc: 0xe566c01f type_id: 0xf2cdbc51 full_name: "cfg80211_rx_unexpected_4addr_frame" } @@ -329148,7 +333100,7 @@ elf_symbol { name: "cfg80211_rx_unprot_mlme_mgmt" is_defined: true symbol_type: FUNCTION - crc: 0xf2e19acb + crc: 0x5c5cec8b type_id: 0x1cf0d22b full_name: "cfg80211_rx_unprot_mlme_mgmt" } @@ -329157,7 +333109,7 @@ elf_symbol { name: "cfg80211_scan_done" is_defined: true symbol_type: FUNCTION - crc: 0x208aef1c + crc: 0x61ad293e type_id: 0x187e0d59 full_name: "cfg80211_scan_done" } @@ -329166,7 +333118,7 @@ elf_symbol { name: "cfg80211_sched_scan_results" is_defined: true symbol_type: FUNCTION - crc: 0x2a8e6a00 + crc: 0xdd756f8d type_id: 0x16bc1757 full_name: "cfg80211_sched_scan_results" } @@ -329175,7 +333127,7 @@ elf_symbol { name: "cfg80211_sched_scan_stopped" is_defined: true symbol_type: FUNCTION - crc: 0x50bb92ef + crc: 0x82d72806 type_id: 0x16bc1757 full_name: "cfg80211_sched_scan_stopped" } @@ -329184,7 +333136,7 @@ elf_symbol { name: "cfg80211_sched_scan_stopped_locked" is_defined: true symbol_type: FUNCTION - crc: 0x362e6d76 + crc: 0x11137bdc type_id: 0x16bc1757 full_name: "cfg80211_sched_scan_stopped_locked" } @@ -329193,7 +333145,7 @@ elf_symbol { name: "cfg80211_send_layer2_update" is_defined: true symbol_type: FUNCTION - crc: 0x658281c2 + crc: 0xd332a6a4 type_id: 0x1ccddf71 full_name: "cfg80211_send_layer2_update" } @@ -329202,7 +333154,7 @@ elf_symbol { name: "cfg80211_shutdown_all_interfaces" is_defined: true symbol_type: FUNCTION - crc: 0xff6039db + crc: 0x5b61d2ba type_id: 0x14f49b99 full_name: "cfg80211_shutdown_all_interfaces" } @@ -329220,7 +333172,7 @@ elf_symbol { name: "cfg80211_sta_opmode_change_notify" is_defined: true symbol_type: FUNCTION - crc: 0x3c037cf5 + crc: 0x39700c3e type_id: 0x1cc12284 full_name: "cfg80211_sta_opmode_change_notify" } @@ -329229,7 +333181,7 @@ elf_symbol { name: "cfg80211_stop_iface" is_defined: true symbol_type: FUNCTION - crc: 0xb278763c + crc: 0x068f05e0 type_id: 0x142fe8b0 full_name: "cfg80211_stop_iface" } @@ -329238,7 +333190,7 @@ elf_symbol { name: "cfg80211_tdls_oper_request" is_defined: true symbol_type: FUNCTION - crc: 0x58c41b65 + crc: 0xc5e06860 type_id: 0x1cf91c9b full_name: "cfg80211_tdls_oper_request" } @@ -329247,7 +333199,7 @@ elf_symbol { name: "cfg80211_tx_mgmt_expired" is_defined: true symbol_type: FUNCTION - crc: 0x6f4bb960 + crc: 0x41f5166f type_id: 0x1ca86436 full_name: "cfg80211_tx_mgmt_expired" } @@ -329256,7 +333208,7 @@ elf_symbol { name: "cfg80211_tx_mlme_mgmt" is_defined: true symbol_type: FUNCTION - crc: 0x94f603ee + crc: 0xf0dfd0e5 type_id: 0x1cf167d6 full_name: "cfg80211_tx_mlme_mgmt" } @@ -329265,7 +333217,7 @@ elf_symbol { name: "cfg80211_unlink_bss" is_defined: true symbol_type: FUNCTION - crc: 0x032d8d46 + crc: 0x570654f1 type_id: 0x141b54bc full_name: "cfg80211_unlink_bss" } @@ -329274,7 +333226,7 @@ elf_symbol { name: "cfg80211_unregister_wdev" is_defined: true symbol_type: FUNCTION - crc: 0x1f210c7e + crc: 0x04117c15 type_id: 0x1ee9f872 full_name: "cfg80211_unregister_wdev" } @@ -329283,7 +333235,7 @@ elf_symbol { name: "cfg80211_update_owe_info_event" is_defined: true symbol_type: FUNCTION - crc: 0x14088e31 + crc: 0x653b051c type_id: 0x1c31b8e8 full_name: "cfg80211_update_owe_info_event" } @@ -329292,7 +333244,7 @@ elf_symbol { name: "cfg80211_vendor_cmd_get_sender" is_defined: true symbol_type: FUNCTION - crc: 0xbefc9327 + crc: 0xdfbc06df type_id: 0xcab7b4f1 full_name: "cfg80211_vendor_cmd_get_sender" } @@ -329301,7 +333253,7 @@ elf_symbol { name: "cfg80211_vendor_cmd_reply" is_defined: true symbol_type: FUNCTION - crc: 0x5a625c50 + crc: 0x3a9eaaaf type_id: 0x9cd33969 full_name: "cfg80211_vendor_cmd_reply" } @@ -329310,7 +333262,7 @@ elf_symbol { name: "cgroup_path_ns" is_defined: true symbol_type: FUNCTION - crc: 0x28288347 + crc: 0x39843b2a type_id: 0x9b87e6ee full_name: "cgroup_path_ns" } @@ -329319,7 +333271,7 @@ elf_symbol { name: "cgroup_taskset_first" is_defined: true symbol_type: FUNCTION - crc: 0x8f43beb3 + crc: 0xa6d31961 type_id: 0x751b5661 full_name: "cgroup_taskset_first" } @@ -329328,7 +333280,7 @@ elf_symbol { name: "cgroup_taskset_next" is_defined: true symbol_type: FUNCTION - crc: 0x46b4a188 + crc: 0x0fdaebf1 type_id: 0x751b5661 full_name: "cgroup_taskset_next" } @@ -329337,7 +333289,7 @@ elf_symbol { name: "check_move_unevictable_pages" is_defined: true symbol_type: FUNCTION - crc: 0xf1e9a2c9 + crc: 0x1fdbb254 type_id: 0x11b81220 full_name: "check_move_unevictable_pages" } @@ -329346,7 +333298,7 @@ elf_symbol { name: "check_preempt_curr" is_defined: true symbol_type: FUNCTION - crc: 0x77435c8e + crc: 0x93fd0c1b type_id: 0x1b7558dd full_name: "check_preempt_curr" } @@ -329364,7 +333316,7 @@ elf_symbol { name: "class_create_file_ns" is_defined: true symbol_type: FUNCTION - crc: 0x93508da4 + crc: 0x117d0962 type_id: 0x97df7018 full_name: "class_create_file_ns" } @@ -329373,7 +333325,7 @@ elf_symbol { name: "class_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x02ae840f + crc: 0x4d0f0d77 type_id: 0x1a0b4b72 full_name: "class_destroy" } @@ -329382,7 +333334,7 @@ elf_symbol { name: "class_dev_iter_exit" is_defined: true symbol_type: FUNCTION - crc: 0xfeb66574 + crc: 0x255d88e9 type_id: 0x1d9aaa82 full_name: "class_dev_iter_exit" } @@ -329391,7 +333343,7 @@ elf_symbol { name: "class_dev_iter_init" is_defined: true symbol_type: FUNCTION - crc: 0xa9bc07d4 + crc: 0xe246f3a2 type_id: 0x1d33c7e7 full_name: "class_dev_iter_init" } @@ -329400,7 +333352,7 @@ elf_symbol { name: "class_dev_iter_next" is_defined: true symbol_type: FUNCTION - crc: 0x482882af + crc: 0x99dcfc04 type_id: 0xa02dcb2f full_name: "class_dev_iter_next" } @@ -329409,7 +333361,7 @@ elf_symbol { name: "class_find_device" is_defined: true symbol_type: FUNCTION - crc: 0x139b4be5 + crc: 0x517579cf type_id: 0xa7bbb94d full_name: "class_find_device" } @@ -329418,7 +333370,7 @@ elf_symbol { name: "class_for_each_device" is_defined: true symbol_type: FUNCTION - crc: 0xf9b58a2f + crc: 0x7c5c84b6 type_id: 0x971c0246 full_name: "class_for_each_device" } @@ -329427,7 +333379,7 @@ elf_symbol { name: "class_interface_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x7a4c058b + crc: 0x2c75fc6f type_id: 0x106aedb0 full_name: "class_interface_unregister" } @@ -329436,7 +333388,7 @@ elf_symbol { name: "class_remove_file_ns" is_defined: true symbol_type: FUNCTION - crc: 0xe66b3d88 + crc: 0x406eb9a0 type_id: 0x1ac7c2a4 full_name: "class_remove_file_ns" } @@ -329445,7 +333397,7 @@ elf_symbol { name: "class_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x250cd79d + crc: 0xed1d3506 type_id: 0x1a0b4b72 full_name: "class_unregister" } @@ -329533,7 +333485,7 @@ elf_symbol { name: "clk_fixed_factor_ops" is_defined: true symbol_type: OBJECT - crc: 0xb5ab6cd3 + crc: 0x0e858924 type_id: 0xde3bc780 full_name: "clk_fixed_factor_ops" } @@ -329542,7 +333494,7 @@ elf_symbol { name: "clk_fixed_rate_ops" is_defined: true symbol_type: OBJECT - crc: 0xbb2603fc + crc: 0xc5c3be53 type_id: 0xde3bc780 full_name: "clk_fixed_rate_ops" } @@ -329551,7 +333503,7 @@ elf_symbol { name: "clk_get" is_defined: true symbol_type: FUNCTION - crc: 0xfc824fc0 + crc: 0xfa73284b type_id: 0xa671941e full_name: "clk_get" } @@ -329578,7 +333530,7 @@ elf_symbol { name: "clk_hw_get_clk" is_defined: true symbol_type: FUNCTION - crc: 0x4b86281c + crc: 0x2c6260b0 type_id: 0xa45e82f4 full_name: "clk_hw_get_clk" } @@ -329587,7 +333539,7 @@ elf_symbol { name: "clk_hw_get_flags" is_defined: true symbol_type: FUNCTION - crc: 0xcdd598af + crc: 0x3de735b2 type_id: 0x3ece9456 full_name: "clk_hw_get_flags" } @@ -329596,7 +333548,7 @@ elf_symbol { name: "clk_hw_get_name" is_defined: true symbol_type: FUNCTION - crc: 0x74947bec + crc: 0x1ad07fc4 type_id: 0x9d264ea6 full_name: "clk_hw_get_name" } @@ -329605,7 +333557,7 @@ elf_symbol { name: "clk_hw_get_num_parents" is_defined: true symbol_type: FUNCTION - crc: 0x7ea8d92a + crc: 0x26dc9e4a type_id: 0xc1b927fe full_name: "clk_hw_get_num_parents" } @@ -329614,7 +333566,7 @@ elf_symbol { name: "clk_hw_get_parent" is_defined: true symbol_type: FUNCTION - crc: 0xfe4de9b7 + crc: 0x239120a6 type_id: 0xd103f224 full_name: "clk_hw_get_parent" } @@ -329623,7 +333575,7 @@ elf_symbol { name: "clk_hw_get_parent_by_index" is_defined: true symbol_type: FUNCTION - crc: 0x663c782a + crc: 0xe1373136 type_id: 0xd015e7bc full_name: "clk_hw_get_parent_by_index" } @@ -329632,7 +333584,7 @@ elf_symbol { name: "clk_hw_get_rate" is_defined: true symbol_type: FUNCTION - crc: 0xf66e4d2f + crc: 0xe8127d92 type_id: 0x3ece9456 full_name: "clk_hw_get_rate" } @@ -329641,7 +333593,7 @@ elf_symbol { name: "clk_hw_get_rate_range" is_defined: true symbol_type: FUNCTION - crc: 0x0b78c15c + crc: 0xe96a3ff9 type_id: 0x1239dff8 full_name: "clk_hw_get_rate_range" } @@ -329650,7 +333602,7 @@ elf_symbol { name: "clk_hw_is_enabled" is_defined: true symbol_type: FUNCTION - crc: 0x7a5117c2 + crc: 0x043463cc type_id: 0xf1c60201 full_name: "clk_hw_is_enabled" } @@ -329659,7 +333611,7 @@ elf_symbol { name: "clk_hw_is_prepared" is_defined: true symbol_type: FUNCTION - crc: 0x66310a73 + crc: 0x0848b09d type_id: 0xf1c60201 full_name: "clk_hw_is_prepared" } @@ -329668,7 +333620,7 @@ elf_symbol { name: "clk_hw_register" is_defined: true symbol_type: FUNCTION - crc: 0xf080d318 + crc: 0xd3eeb080 type_id: 0x9d3d4fff full_name: "clk_hw_register" } @@ -329677,7 +333629,7 @@ elf_symbol { name: "clk_hw_round_rate" is_defined: true symbol_type: FUNCTION - crc: 0x1f9bd57c + crc: 0x8cd04c8f type_id: 0x33d83070 full_name: "clk_hw_round_rate" } @@ -329686,7 +333638,7 @@ elf_symbol { name: "clk_hw_set_rate_range" is_defined: true symbol_type: FUNCTION - crc: 0xe03fb5eb + crc: 0xcbf451d4 type_id: 0x12e071e9 full_name: "clk_hw_set_rate_range" } @@ -329695,7 +333647,7 @@ elf_symbol { name: "clk_hw_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x7c23c3e2 + crc: 0xc0555c89 type_id: 0x12217922 full_name: "clk_hw_unregister" } @@ -329749,7 +333701,7 @@ elf_symbol { name: "clk_register" is_defined: true symbol_type: FUNCTION - crc: 0xf9f4ff36 + crc: 0xd37ed33d type_id: 0xa6a24441 full_name: "clk_register" } @@ -329767,7 +333719,7 @@ elf_symbol { name: "clk_register_fixed_factor" is_defined: true symbol_type: FUNCTION - crc: 0x5ae19211 + crc: 0x3891a831 type_id: 0xa67ecd91 full_name: "clk_register_fixed_factor" } @@ -329776,7 +333728,7 @@ elf_symbol { name: "clk_register_fixed_rate" is_defined: true symbol_type: FUNCTION - crc: 0x546760d1 + crc: 0x06023e15 type_id: 0xa67ed13b full_name: "clk_register_fixed_rate" } @@ -329785,7 +333737,7 @@ elf_symbol { name: "clk_register_gate" is_defined: true symbol_type: FUNCTION - crc: 0x78058df1 + crc: 0x4220c92d type_id: 0xa67edb66 full_name: "clk_register_gate" } @@ -329830,7 +333782,7 @@ elf_symbol { name: "clk_sync_state" is_defined: true symbol_type: FUNCTION - crc: 0x52fe936c + crc: 0xc5013d0b type_id: 0x100e6fc8 full_name: "clk_sync_state" } @@ -329848,7 +333800,7 @@ elf_symbol { name: "clockevents_config_and_register" is_defined: true symbol_type: FUNCTION - crc: 0x4c29d5ab + crc: 0xea372050 type_id: 0x177cb160 full_name: "clockevents_config_and_register" } @@ -329866,7 +333818,7 @@ elf_symbol { name: "close_candev" is_defined: true symbol_type: FUNCTION - crc: 0x4b0a9840 + crc: 0x2d75aefe type_id: 0x1c31d966 full_name: "close_candev" } @@ -329884,7 +333836,7 @@ elf_symbol { name: "cma_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x60d9db3a + crc: 0x0b38b508 type_id: 0xb94d0c8b full_name: "cma_alloc" } @@ -329911,7 +333863,7 @@ elf_symbol { name: "cma_release" is_defined: true symbol_type: FUNCTION - crc: 0x811740de + crc: 0x8a6a7e38 type_id: 0xfa5a390c full_name: "cma_release" } @@ -329920,7 +333872,7 @@ elf_symbol { name: "compat_ptr_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0xe9f0cb19 + crc: 0x5f68f578 type_id: 0xa00069e0 full_name: "compat_ptr_ioctl" } @@ -329956,7 +333908,7 @@ elf_symbol { name: "component_add" is_defined: true symbol_type: FUNCTION - crc: 0x97a6c96f + crc: 0xff99bfe7 type_id: 0x9df11d57 full_name: "component_add" } @@ -329965,7 +333917,7 @@ elf_symbol { name: "component_bind_all" is_defined: true symbol_type: FUNCTION - crc: 0x62240bd2 + crc: 0xd76ba2cd type_id: 0x9d7428e0 full_name: "component_bind_all" } @@ -329974,7 +333926,7 @@ elf_symbol { name: "component_compare_of" is_defined: true symbol_type: FUNCTION - crc: 0xac50b19f + crc: 0xc23570ba type_id: 0x9d7428e0 full_name: "component_compare_of" } @@ -329983,7 +333935,7 @@ elf_symbol { name: "component_del" is_defined: true symbol_type: FUNCTION - crc: 0x93dd8454 + crc: 0x5ff29161 type_id: 0x10e9afeb full_name: "component_del" } @@ -329992,7 +333944,7 @@ elf_symbol { name: "component_master_add_with_match" is_defined: true symbol_type: FUNCTION - crc: 0xe4fc498c + crc: 0x5c612db7 type_id: 0x9ddcade1 full_name: "component_master_add_with_match" } @@ -330001,7 +333953,7 @@ elf_symbol { name: "component_master_del" is_defined: true symbol_type: FUNCTION - crc: 0x91dfff38 + crc: 0x92f2bacc type_id: 0x10c55248 full_name: "component_master_del" } @@ -330010,7 +333962,7 @@ elf_symbol { name: "component_match_add_release" is_defined: true symbol_type: FUNCTION - crc: 0x197e776e + crc: 0x48994860 type_id: 0x102208a7 full_name: "component_match_add_release" } @@ -330019,7 +333971,7 @@ elf_symbol { name: "component_unbind_all" is_defined: true symbol_type: FUNCTION - crc: 0x554f34ec + crc: 0x646f6c26 type_id: 0x106c9a5c full_name: "component_unbind_all" } @@ -330046,7 +333998,7 @@ elf_symbol { name: "config_ep_by_speed" is_defined: true symbol_type: FUNCTION - crc: 0xd53d7981 + crc: 0x52846931 type_id: 0x945ba723 full_name: "config_ep_by_speed" } @@ -330055,7 +334007,7 @@ elf_symbol { name: "config_group_init" is_defined: true symbol_type: FUNCTION - crc: 0xff02c30f + crc: 0xcea492f1 type_id: 0x1c280429 full_name: "config_group_init" } @@ -330064,7 +334016,7 @@ elf_symbol { name: "config_group_init_type_name" is_defined: true symbol_type: FUNCTION - crc: 0x9a82c897 + crc: 0x3087d77b type_id: 0x1cdeebe2 full_name: "config_group_init_type_name" } @@ -330073,7 +334025,7 @@ elf_symbol { name: "config_item_get" is_defined: true symbol_type: FUNCTION - crc: 0x9c3e8fa7 + crc: 0xb778e2f0 type_id: 0xfe8152e6 full_name: "config_item_get" } @@ -330082,7 +334034,7 @@ elf_symbol { name: "config_item_put" is_defined: true symbol_type: FUNCTION - crc: 0xa71bd322 + crc: 0x6dabe0ea type_id: 0x14545fb5 full_name: "config_item_put" } @@ -330091,7 +334043,7 @@ elf_symbol { name: "config_item_set_name" is_defined: true symbol_type: FUNCTION - crc: 0xcdaa42d5 + crc: 0xd513c353 type_id: 0x999de55f full_name: "config_item_set_name" } @@ -330100,7 +334052,7 @@ elf_symbol { name: "configfs_register_group" is_defined: true symbol_type: FUNCTION - crc: 0xaf0251d6 + crc: 0xe57cf5b3 type_id: 0x91fbb3ce full_name: "configfs_register_group" } @@ -330109,7 +334061,7 @@ elf_symbol { name: "configfs_register_subsystem" is_defined: true symbol_type: FUNCTION - crc: 0xfc2f38d4 + crc: 0x64f1e3f5 type_id: 0x9db97a4e full_name: "configfs_register_subsystem" } @@ -330118,7 +334070,7 @@ elf_symbol { name: "configfs_unregister_group" is_defined: true symbol_type: FUNCTION - crc: 0xacd011f0 + crc: 0xafe55d03 type_id: 0x1c280429 full_name: "configfs_unregister_group" } @@ -330127,7 +334079,7 @@ elf_symbol { name: "configfs_unregister_subsystem" is_defined: true symbol_type: FUNCTION - crc: 0xac3344d6 + crc: 0x7dfcdd85 type_id: 0x10a1c8f2 full_name: "configfs_unregister_subsystem" } @@ -330154,7 +334106,7 @@ elf_symbol { name: "console_stop" is_defined: true symbol_type: FUNCTION - crc: 0x4edfac18 + crc: 0x4de872cd type_id: 0x10cf8a7c full_name: "console_stop" } @@ -330172,7 +334124,7 @@ elf_symbol { name: "consume_skb" is_defined: true symbol_type: FUNCTION - crc: 0x77aea415 + crc: 0x5b272851 type_id: 0x11cb8bd5 full_name: "consume_skb" } @@ -330181,7 +334133,7 @@ elf_symbol { name: "contig_page_data" is_defined: true symbol_type: OBJECT - crc: 0xa15c051c + crc: 0xf7d207cc type_id: 0x264eeece full_name: "contig_page_data" } @@ -330316,7 +334268,7 @@ elf_symbol { name: "cpu_subsys" is_defined: true symbol_type: OBJECT - crc: 0x5e6e4869 + crc: 0xf21f4fb3 type_id: 0x257935aa full_name: "cpu_subsys" } @@ -330334,7 +334286,7 @@ elf_symbol { name: "cpufreq_cpu_get" is_defined: true symbol_type: FUNCTION - crc: 0xc3a9937a + crc: 0x01f4731f type_id: 0x906b787e full_name: "cpufreq_cpu_get" } @@ -330343,7 +334295,7 @@ elf_symbol { name: "cpufreq_cpu_get_raw" is_defined: true symbol_type: FUNCTION - crc: 0xabec9a93 + crc: 0x7489cd87 type_id: 0x906b787e full_name: "cpufreq_cpu_get_raw" } @@ -330352,7 +334304,7 @@ elf_symbol { name: "cpufreq_cpu_put" is_defined: true symbol_type: FUNCTION - crc: 0xf0eb6374 + crc: 0x0b5d1a70 type_id: 0x10ffd8df full_name: "cpufreq_cpu_put" } @@ -330361,7 +334313,7 @@ elf_symbol { name: "cpufreq_dbs_governor_exit" is_defined: true symbol_type: FUNCTION - crc: 0x3316636a + crc: 0x21ce7641 type_id: 0x10ffd8df full_name: "cpufreq_dbs_governor_exit" } @@ -330370,7 +334322,7 @@ elf_symbol { name: "cpufreq_dbs_governor_init" is_defined: true symbol_type: FUNCTION - crc: 0x02442bc7 + crc: 0x1d0834ef type_id: 0x9de76a63 full_name: "cpufreq_dbs_governor_init" } @@ -330379,7 +334331,7 @@ elf_symbol { name: "cpufreq_dbs_governor_limits" is_defined: true symbol_type: FUNCTION - crc: 0x7252d145 + crc: 0x610639ea type_id: 0x10ffd8df full_name: "cpufreq_dbs_governor_limits" } @@ -330388,7 +334340,7 @@ elf_symbol { name: "cpufreq_dbs_governor_start" is_defined: true symbol_type: FUNCTION - crc: 0x269c1553 + crc: 0x7195061c type_id: 0x9de76a63 full_name: "cpufreq_dbs_governor_start" } @@ -330397,7 +334349,7 @@ elf_symbol { name: "cpufreq_dbs_governor_stop" is_defined: true symbol_type: FUNCTION - crc: 0x73df4a0a + crc: 0x37ec70ab type_id: 0x10ffd8df full_name: "cpufreq_dbs_governor_stop" } @@ -330406,7 +334358,7 @@ elf_symbol { name: "cpufreq_disable_fast_switch" is_defined: true symbol_type: FUNCTION - crc: 0x7dbebbce + crc: 0xd6b304ab type_id: 0x10ffd8df full_name: "cpufreq_disable_fast_switch" } @@ -330415,7 +334367,7 @@ elf_symbol { name: "cpufreq_driver_fast_switch" is_defined: true symbol_type: FUNCTION - crc: 0xe27c4348 + crc: 0xde21829c type_id: 0xcfaae22f full_name: "cpufreq_driver_fast_switch" } @@ -330424,7 +334376,7 @@ elf_symbol { name: "cpufreq_driver_resolve_freq" is_defined: true symbol_type: FUNCTION - crc: 0x9fa04fd7 + crc: 0xeec4edb1 type_id: 0xcfaae22f full_name: "cpufreq_driver_resolve_freq" } @@ -330433,7 +334385,7 @@ elf_symbol { name: "cpufreq_driver_target" is_defined: true symbol_type: FUNCTION - crc: 0xbf3af2fb + crc: 0x50756a1e type_id: 0x9ce01ea2 full_name: "cpufreq_driver_target" } @@ -330451,7 +334403,7 @@ elf_symbol { name: "cpufreq_enable_fast_switch" is_defined: true symbol_type: FUNCTION - crc: 0x94100dba + crc: 0x5fd15948 type_id: 0x10ffd8df full_name: "cpufreq_enable_fast_switch" } @@ -330460,7 +334412,7 @@ elf_symbol { name: "cpufreq_freq_attr_scaling_available_freqs" is_defined: true symbol_type: OBJECT - crc: 0x7a4d3298 + crc: 0xdf7d2cad type_id: 0x533e9463 full_name: "cpufreq_freq_attr_scaling_available_freqs" } @@ -330469,7 +334421,7 @@ elf_symbol { name: "cpufreq_freq_attr_scaling_boost_freqs" is_defined: true symbol_type: OBJECT - crc: 0x3b763366 + crc: 0xfbf7936e type_id: 0x533e9463 full_name: "cpufreq_freq_attr_scaling_boost_freqs" } @@ -330478,7 +334430,7 @@ elf_symbol { name: "cpufreq_freq_transition_begin" is_defined: true symbol_type: FUNCTION - crc: 0x085fdeb1 + crc: 0x25c6de74 type_id: 0x10e0ceea full_name: "cpufreq_freq_transition_begin" } @@ -330487,7 +334439,7 @@ elf_symbol { name: "cpufreq_freq_transition_end" is_defined: true symbol_type: FUNCTION - crc: 0xc8b32e4e + crc: 0x07a20508 type_id: 0x10f906de full_name: "cpufreq_freq_transition_end" } @@ -330496,7 +334448,7 @@ elf_symbol { name: "cpufreq_frequency_table_get_index" is_defined: true symbol_type: FUNCTION - crc: 0x532c3801 + crc: 0x9ded2124 type_id: 0x9cf17ffb full_name: "cpufreq_frequency_table_get_index" } @@ -330514,7 +334466,7 @@ elf_symbol { name: "cpufreq_generic_attr" is_defined: true symbol_type: OBJECT - crc: 0x83c90737 + crc: 0xa13a76bf type_id: 0x6b3ea7cc full_name: "cpufreq_generic_attr" } @@ -330550,7 +334502,7 @@ elf_symbol { name: "cpufreq_get_policy" is_defined: true symbol_type: FUNCTION - crc: 0xc84f39ad + crc: 0x4a1d1957 type_id: 0x9cf17ffb full_name: "cpufreq_get_policy" } @@ -330559,7 +334511,7 @@ elf_symbol { name: "cpufreq_policy_transition_delay_us" is_defined: true symbol_type: FUNCTION - crc: 0x5837bfc8 + crc: 0xd0882387 type_id: 0xcebcf7b7 full_name: "cpufreq_policy_transition_delay_us" } @@ -330586,7 +334538,7 @@ elf_symbol { name: "cpufreq_register_driver" is_defined: true symbol_type: FUNCTION - crc: 0x31cd2bf7 + crc: 0x220df6e9 type_id: 0x927602ff full_name: "cpufreq_register_driver" } @@ -330595,7 +334547,7 @@ elf_symbol { name: "cpufreq_register_governor" is_defined: true symbol_type: FUNCTION - crc: 0xf7adf179 + crc: 0x467aa108 type_id: 0x9ce68106 full_name: "cpufreq_register_governor" } @@ -330613,7 +334565,7 @@ elf_symbol { name: "cpufreq_table_index_unsorted" is_defined: true symbol_type: FUNCTION - crc: 0x382816be + crc: 0x3dd1b754 type_id: 0x9ce01ea2 full_name: "cpufreq_table_index_unsorted" } @@ -330622,7 +334574,7 @@ elf_symbol { name: "cpufreq_unregister_driver" is_defined: true symbol_type: FUNCTION - crc: 0xeeecbc15 + crc: 0x1d8753ab type_id: 0x927602ff full_name: "cpufreq_unregister_driver" } @@ -330631,7 +334583,7 @@ elf_symbol { name: "cpufreq_unregister_governor" is_defined: true symbol_type: FUNCTION - crc: 0x3cbe9d4f + crc: 0x7bf5e5ef type_id: 0x11fe33ba full_name: "cpufreq_unregister_governor" } @@ -330658,7 +334610,7 @@ elf_symbol { name: "cpuidle_register_governor" is_defined: true symbol_type: FUNCTION - crc: 0x49c492c3 + crc: 0xaf669e31 type_id: 0x9fb9eee9 full_name: "cpuidle_register_governor" } @@ -330685,7 +334637,7 @@ elf_symbol { name: "cpupri_find_fitness" is_defined: true symbol_type: FUNCTION - crc: 0x36501fd6 + crc: 0xa6057445 type_id: 0x96c4b63c full_name: "cpupri_find_fitness" } @@ -330762,7 +334714,7 @@ elf_symbol { name: "create_function_device" is_defined: true symbol_type: FUNCTION - crc: 0xd970583c + crc: 0x25d60b67 type_id: 0xac0fc980 full_name: "create_function_device" } @@ -330771,7 +334723,7 @@ elf_symbol { name: "crypto_aead_decrypt" is_defined: true symbol_type: FUNCTION - crc: 0x8b5702a2 + crc: 0x3ee448f7 type_id: 0x910ea117 full_name: "crypto_aead_decrypt" } @@ -330780,7 +334732,7 @@ elf_symbol { name: "crypto_aead_encrypt" is_defined: true symbol_type: FUNCTION - crc: 0xfe74f0d7 + crc: 0x77b5a135 type_id: 0x910ea117 full_name: "crypto_aead_encrypt" } @@ -330789,7 +334741,7 @@ elf_symbol { name: "crypto_aead_setauthsize" is_defined: true symbol_type: FUNCTION - crc: 0x5bf4b4a3 + crc: 0x48570de7 type_id: 0x9a871ca2 full_name: "crypto_aead_setauthsize" } @@ -330798,7 +334750,7 @@ elf_symbol { name: "crypto_aead_setkey" is_defined: true symbol_type: FUNCTION - crc: 0x020c22b9 + crc: 0x60efb4d8 type_id: 0x9b7c6e74 full_name: "crypto_aead_setkey" } @@ -330807,7 +334759,7 @@ elf_symbol { name: "crypto_ahash_digest" is_defined: true symbol_type: FUNCTION - crc: 0x1cbf2961 + crc: 0x729ac4ab type_id: 0x911583bf full_name: "crypto_ahash_digest" } @@ -330816,7 +334768,7 @@ elf_symbol { name: "crypto_ahash_setkey" is_defined: true symbol_type: FUNCTION - crc: 0x85bf71fc + crc: 0x90be7626 type_id: 0x9ac8451b full_name: "crypto_ahash_setkey" } @@ -330825,7 +334777,7 @@ elf_symbol { name: "crypto_alloc_aead" is_defined: true symbol_type: FUNCTION - crc: 0xce9ac156 + crc: 0x0383b415 type_id: 0x244ac93e full_name: "crypto_alloc_aead" } @@ -330834,7 +334786,7 @@ elf_symbol { name: "crypto_alloc_ahash" is_defined: true symbol_type: FUNCTION - crc: 0x92db7428 + crc: 0x2a1540a0 type_id: 0xd40f21a4 full_name: "crypto_alloc_ahash" } @@ -330843,7 +334795,7 @@ elf_symbol { name: "crypto_alloc_base" is_defined: true symbol_type: FUNCTION - crc: 0x94adb007 + crc: 0xe92aec99 type_id: 0x85430584 full_name: "crypto_alloc_base" } @@ -330852,7 +334804,7 @@ elf_symbol { name: "crypto_alloc_kpp" is_defined: true symbol_type: FUNCTION - crc: 0x4960f155 + crc: 0x941a4ff2 type_id: 0xf66dfeca full_name: "crypto_alloc_kpp" } @@ -330861,7 +334813,7 @@ elf_symbol { name: "crypto_alloc_shash" is_defined: true symbol_type: FUNCTION - crc: 0x8bbe5ffc + crc: 0x1aa595c5 type_id: 0x0643b7f0 full_name: "crypto_alloc_shash" } @@ -330870,7 +334822,7 @@ elf_symbol { name: "crypto_alloc_skcipher" is_defined: true symbol_type: FUNCTION - crc: 0x1e2e8db8 + crc: 0xdaed970f type_id: 0x2d1647d4 full_name: "crypto_alloc_skcipher" } @@ -330879,7 +334831,7 @@ elf_symbol { name: "crypto_alloc_sync_skcipher" is_defined: true symbol_type: FUNCTION - crc: 0x904df5ca + crc: 0x5f6a8eb1 type_id: 0x329319f8 full_name: "crypto_alloc_sync_skcipher" } @@ -330888,7 +334840,7 @@ elf_symbol { name: "crypto_comp_compress" is_defined: true symbol_type: FUNCTION - crc: 0xf10be894 + crc: 0x51295e8e type_id: 0x9792aa8a full_name: "crypto_comp_compress" } @@ -330897,7 +334849,7 @@ elf_symbol { name: "crypto_comp_decompress" is_defined: true symbol_type: FUNCTION - crc: 0x682ac242 + crc: 0x7952328d type_id: 0x9792aa8a full_name: "crypto_comp_decompress" } @@ -330906,7 +334858,7 @@ elf_symbol { name: "crypto_default_rng" is_defined: true symbol_type: OBJECT - crc: 0x85b45987 + crc: 0x29e52164 type_id: 0x3c9ce28f full_name: "crypto_default_rng" } @@ -330915,7 +334867,7 @@ elf_symbol { name: "crypto_dequeue_request" is_defined: true symbol_type: FUNCTION - crc: 0xb0cf8503 + crc: 0x72671b0e type_id: 0x2d2c7d0b full_name: "crypto_dequeue_request" } @@ -330924,7 +334876,7 @@ elf_symbol { name: "crypto_destroy_tfm" is_defined: true symbol_type: FUNCTION - crc: 0xe886bc19 + crc: 0x967a0a62 type_id: 0x16d018ce full_name: "crypto_destroy_tfm" } @@ -330951,7 +334903,7 @@ elf_symbol { name: "crypto_enqueue_request" is_defined: true symbol_type: FUNCTION - crc: 0xd94d303b + crc: 0xf627d1b3 type_id: 0x9a78591e full_name: "crypto_enqueue_request" } @@ -331005,7 +334957,7 @@ elf_symbol { name: "crypto_register_aead" is_defined: true symbol_type: FUNCTION - crc: 0xeab06306 + crc: 0x8cce4d4f type_id: 0x950f0fae full_name: "crypto_register_aead" } @@ -331014,7 +334966,7 @@ elf_symbol { name: "crypto_register_ahash" is_defined: true symbol_type: FUNCTION - crc: 0x070e478c + crc: 0x66a0e599 type_id: 0x9ee20867 full_name: "crypto_register_ahash" } @@ -331023,7 +334975,7 @@ elf_symbol { name: "crypto_register_rng" is_defined: true symbol_type: FUNCTION - crc: 0x270ab777 + crc: 0x2d9a9612 type_id: 0x9cc9d859 full_name: "crypto_register_rng" } @@ -331032,7 +334984,7 @@ elf_symbol { name: "crypto_register_rngs" is_defined: true symbol_type: FUNCTION - crc: 0xdaaac9f1 + crc: 0x27c24ef4 type_id: 0x9d555b15 full_name: "crypto_register_rngs" } @@ -331041,7 +334993,7 @@ elf_symbol { name: "crypto_register_shash" is_defined: true symbol_type: FUNCTION - crc: 0xa1890d8a + crc: 0xd648b61a type_id: 0x9e955b54 full_name: "crypto_register_shash" } @@ -331050,7 +335002,7 @@ elf_symbol { name: "crypto_register_skcipher" is_defined: true symbol_type: FUNCTION - crc: 0xe5def380 + crc: 0x555b2f42 type_id: 0x928f1946 full_name: "crypto_register_skcipher" } @@ -331059,7 +335011,7 @@ elf_symbol { name: "crypto_req_done" is_defined: true symbol_type: FUNCTION - crc: 0xf2a2e0b0 + crc: 0x97062e3e type_id: 0x10100c3c full_name: "crypto_req_done" } @@ -331068,7 +335020,7 @@ elf_symbol { name: "crypto_shash_digest" is_defined: true symbol_type: FUNCTION - crc: 0xbd7e40c6 + crc: 0x3573756e type_id: 0x9fb1dc71 full_name: "crypto_shash_digest" } @@ -331077,7 +335029,7 @@ elf_symbol { name: "crypto_shash_final" is_defined: true symbol_type: FUNCTION - crc: 0xaab17947 + crc: 0x0727e706 type_id: 0x9f5fa4b7 full_name: "crypto_shash_final" } @@ -331086,7 +335038,7 @@ elf_symbol { name: "crypto_shash_finup" is_defined: true symbol_type: FUNCTION - crc: 0xb3e2be46 + crc: 0x7205c766 type_id: 0x9fb1dc71 full_name: "crypto_shash_finup" } @@ -331095,7 +335047,7 @@ elf_symbol { name: "crypto_shash_setkey" is_defined: true symbol_type: FUNCTION - crc: 0xbe4c0ac7 + crc: 0x4644d069 type_id: 0x98930e77 full_name: "crypto_shash_setkey" } @@ -331104,7 +335056,7 @@ elf_symbol { name: "crypto_shash_tfm_digest" is_defined: true symbol_type: FUNCTION - crc: 0x872a31ff + crc: 0xd350da00 type_id: 0x98930d6b full_name: "crypto_shash_tfm_digest" } @@ -331113,7 +335065,7 @@ elf_symbol { name: "crypto_shash_update" is_defined: true symbol_type: FUNCTION - crc: 0x9ee9531f + crc: 0xd7422c92 type_id: 0x9fb1df6d full_name: "crypto_shash_update" } @@ -331122,7 +335074,7 @@ elf_symbol { name: "crypto_skcipher_decrypt" is_defined: true symbol_type: FUNCTION - crc: 0x8d119d71 + crc: 0x399ebb72 type_id: 0x9a856ac3 full_name: "crypto_skcipher_decrypt" } @@ -331131,7 +335083,7 @@ elf_symbol { name: "crypto_skcipher_encrypt" is_defined: true symbol_type: FUNCTION - crc: 0xd18ab6a1 + crc: 0x11df6fc9 type_id: 0x9a856ac3 full_name: "crypto_skcipher_encrypt" } @@ -331140,7 +335092,7 @@ elf_symbol { name: "crypto_skcipher_setkey" is_defined: true symbol_type: FUNCTION - crc: 0x33779f39 + crc: 0x8fd48870 type_id: 0x9e7f936c full_name: "crypto_skcipher_setkey" } @@ -331149,7 +335101,7 @@ elf_symbol { name: "crypto_unregister_aead" is_defined: true symbol_type: FUNCTION - crc: 0x91270a2a + crc: 0xaa8ccf85 type_id: 0x1817bd12 full_name: "crypto_unregister_aead" } @@ -331158,7 +335110,7 @@ elf_symbol { name: "crypto_unregister_ahash" is_defined: true symbol_type: FUNCTION - crc: 0x6726504f + crc: 0xfe39f306 type_id: 0x13fabadb full_name: "crypto_unregister_ahash" } @@ -331167,7 +335119,7 @@ elf_symbol { name: "crypto_unregister_rng" is_defined: true symbol_type: FUNCTION - crc: 0x1b434b9e + crc: 0x6782ae36 type_id: 0x11d16ae5 full_name: "crypto_unregister_rng" } @@ -331176,7 +335128,7 @@ elf_symbol { name: "crypto_unregister_rngs" is_defined: true symbol_type: FUNCTION - crc: 0xc1dc8e76 + crc: 0x5020b2a1 type_id: 0x104de9a9 full_name: "crypto_unregister_rngs" } @@ -331185,7 +335137,7 @@ elf_symbol { name: "crypto_unregister_shash" is_defined: true symbol_type: FUNCTION - crc: 0x3d0f306a + crc: 0x5973ffde type_id: 0x138de9e8 full_name: "crypto_unregister_shash" } @@ -331194,7 +335146,7 @@ elf_symbol { name: "crypto_unregister_skcipher" is_defined: true symbol_type: FUNCTION - crc: 0x5953daac + crc: 0xbef119f3 type_id: 0x1f97abfa full_name: "crypto_unregister_skcipher" } @@ -331203,7 +335155,7 @@ elf_symbol { name: "css_next_child" is_defined: true symbol_type: FUNCTION - crc: 0x6c33646a + crc: 0x835fefe2 type_id: 0xc867c639 full_name: "css_next_child" } @@ -331239,7 +335191,7 @@ elf_symbol { name: "d_path" is_defined: true symbol_type: FUNCTION - crc: 0x6f758e89 + crc: 0x52ee7db6 type_id: 0x30964cd5 full_name: "d_path" } @@ -331248,7 +335200,7 @@ elf_symbol { name: "dapm_regulator_event" is_defined: true symbol_type: FUNCTION - crc: 0x79e54631 + crc: 0x7052b4c1 type_id: 0x9fb0a0b3 full_name: "dapm_regulator_event" } @@ -331257,7 +335209,7 @@ elf_symbol { name: "datagram_poll" is_defined: true symbol_type: FUNCTION - crc: 0x24f19347 + crc: 0x47ec6684 type_id: 0x2545d8c8 full_name: "datagram_poll" } @@ -331266,16 +335218,25 @@ elf_symbol { name: "dbs_update" is_defined: true symbol_type: FUNCTION - crc: 0x7d9518bf + crc: 0xa636f7a3 type_id: 0xcebcf7b7 full_name: "dbs_update" } +elf_symbol { + id: 0x02f83230 + name: "deactivate_locked_super" + is_defined: true + symbol_type: FUNCTION + crc: 0x681195bc + type_id: 0x1923cb99 + full_name: "deactivate_locked_super" +} elf_symbol { id: 0x36a5b3df name: "deactivate_task" is_defined: true symbol_type: FUNCTION - crc: 0x29019975 + crc: 0x8f5453fe type_id: 0x1b7558dd full_name: "deactivate_task" } @@ -331302,7 +335263,7 @@ elf_symbol { name: "debugfs_attr_read" is_defined: true symbol_type: FUNCTION - crc: 0x10d502fe + crc: 0xf3b32eee type_id: 0x12e4741f full_name: "debugfs_attr_read" } @@ -331311,7 +335272,7 @@ elf_symbol { name: "debugfs_attr_write" is_defined: true symbol_type: FUNCTION - crc: 0x8c866e3e + crc: 0x079852ad type_id: 0x120e3950 full_name: "debugfs_attr_write" } @@ -331320,7 +335281,7 @@ elf_symbol { name: "debugfs_create_atomic_t" is_defined: true symbol_type: FUNCTION - crc: 0xe19d018b + crc: 0x9e8d6e89 type_id: 0x1f51eecd full_name: "debugfs_create_atomic_t" } @@ -331329,7 +335290,7 @@ elf_symbol { name: "debugfs_create_blob" is_defined: true symbol_type: FUNCTION - crc: 0x76b29057 + crc: 0x5c96dda4 type_id: 0x83b828f4 full_name: "debugfs_create_blob" } @@ -331338,7 +335299,7 @@ elf_symbol { name: "debugfs_create_bool" is_defined: true symbol_type: FUNCTION - crc: 0x1ab142e0 + crc: 0x8333f720 type_id: 0x1f51f760 full_name: "debugfs_create_bool" } @@ -331347,7 +335308,7 @@ elf_symbol { name: "debugfs_create_devm_seqfile" is_defined: true symbol_type: FUNCTION - crc: 0x629fddbd + crc: 0x36e3f8cd type_id: 0x10f21a77 full_name: "debugfs_create_devm_seqfile" } @@ -331356,7 +335317,7 @@ elf_symbol { name: "debugfs_create_dir" is_defined: true symbol_type: FUNCTION - crc: 0x78d5d451 + crc: 0xb96fc681 type_id: 0x83bdcb7d full_name: "debugfs_create_dir" } @@ -331365,7 +335326,7 @@ elf_symbol { name: "debugfs_create_file" is_defined: true symbol_type: FUNCTION - crc: 0xb45c9ca4 + crc: 0xd7640ec9 type_id: 0x83b87db5 full_name: "debugfs_create_file" } @@ -331374,7 +335335,7 @@ elf_symbol { name: "debugfs_create_file_unsafe" is_defined: true symbol_type: FUNCTION - crc: 0x4890e827 + crc: 0x4a9dd9e0 type_id: 0x83b87db5 full_name: "debugfs_create_file_unsafe" } @@ -331383,7 +335344,7 @@ elf_symbol { name: "debugfs_create_size_t" is_defined: true symbol_type: FUNCTION - crc: 0x570ea0b4 + crc: 0x11b8208e type_id: 0x1f516e2a full_name: "debugfs_create_size_t" } @@ -331392,7 +335353,7 @@ elf_symbol { name: "debugfs_create_symlink" is_defined: true symbol_type: FUNCTION - crc: 0x50ac167a + crc: 0xd2391b3a type_id: 0x83b24f50 full_name: "debugfs_create_symlink" } @@ -331401,7 +335362,7 @@ elf_symbol { name: "debugfs_create_u16" is_defined: true symbol_type: FUNCTION - crc: 0xe0dfc9b6 + crc: 0xf5c799fb type_id: 0x1f510b52 full_name: "debugfs_create_u16" } @@ -331410,7 +335371,7 @@ elf_symbol { name: "debugfs_create_u32" is_defined: true symbol_type: FUNCTION - crc: 0xe69963e2 + crc: 0xb19e864a type_id: 0x1f515317 full_name: "debugfs_create_u32" } @@ -331419,7 +335380,7 @@ elf_symbol { name: "debugfs_create_u64" is_defined: true symbol_type: FUNCTION - crc: 0x138e5340 + crc: 0xf286dbb4 type_id: 0x1f51083c full_name: "debugfs_create_u64" } @@ -331428,7 +335389,7 @@ elf_symbol { name: "debugfs_create_u8" is_defined: true symbol_type: FUNCTION - crc: 0x6333a829 + crc: 0x4c21d9fd type_id: 0x1f51b343 full_name: "debugfs_create_u8" } @@ -331437,7 +335398,7 @@ elf_symbol { name: "debugfs_create_ulong" is_defined: true symbol_type: FUNCTION - crc: 0x7aa0c169 + crc: 0xfb450dae type_id: 0x1f51a96a full_name: "debugfs_create_ulong" } @@ -331446,7 +335407,7 @@ elf_symbol { name: "debugfs_create_x32" is_defined: true symbol_type: FUNCTION - crc: 0x8480fa1a + crc: 0x751aa116 type_id: 0x1f515317 full_name: "debugfs_create_x32" } @@ -331455,7 +335416,7 @@ elf_symbol { name: "debugfs_create_x64" is_defined: true symbol_type: FUNCTION - crc: 0x7197cab8 + crc: 0x3602fce8 type_id: 0x1f51083c full_name: "debugfs_create_x64" } @@ -331464,7 +335425,7 @@ elf_symbol { name: "debugfs_create_x8" is_defined: true symbol_type: FUNCTION - crc: 0x865e4cd0 + crc: 0xf47b2d30 type_id: 0x1f51b343 full_name: "debugfs_create_x8" } @@ -331473,7 +335434,7 @@ elf_symbol { name: "debugfs_file_get" is_defined: true symbol_type: FUNCTION - crc: 0x7817940f + crc: 0x00f7c4c3 type_id: 0x9901b31b full_name: "debugfs_file_get" } @@ -331482,7 +335443,7 @@ elf_symbol { name: "debugfs_file_put" is_defined: true symbol_type: FUNCTION - crc: 0x1b0dd317 + crc: 0x1cdc05de type_id: 0x141901a7 full_name: "debugfs_file_put" } @@ -331491,7 +335452,7 @@ elf_symbol { name: "debugfs_lookup" is_defined: true symbol_type: FUNCTION - crc: 0xeee9043a + crc: 0xde20f14c type_id: 0x83bdcb7d full_name: "debugfs_lookup" } @@ -331500,7 +335461,7 @@ elf_symbol { name: "debugfs_lookup_and_remove" is_defined: true symbol_type: FUNCTION - crc: 0x04b0b18c + crc: 0x7b3df00d type_id: 0x1f5469d6 full_name: "debugfs_lookup_and_remove" } @@ -331509,7 +335470,7 @@ elf_symbol { name: "debugfs_remove" is_defined: true symbol_type: FUNCTION - crc: 0x01737946 + crc: 0xb8a229ca type_id: 0x141901a7 full_name: "debugfs_remove" } @@ -331518,7 +335479,7 @@ elf_symbol { name: "debugfs_rename" is_defined: true symbol_type: FUNCTION - crc: 0x92e8c4f9 + crc: 0xfb7ad096 type_id: 0x88bccf1d full_name: "debugfs_rename" } @@ -331527,7 +335488,7 @@ elf_symbol { name: "dec_node_page_state" is_defined: true symbol_type: FUNCTION - crc: 0xf2be154b + crc: 0x87098173 type_id: 0x11899381 full_name: "dec_node_page_state" } @@ -331536,7 +335497,7 @@ elf_symbol { name: "dec_zone_page_state" is_defined: true symbol_type: FUNCTION - crc: 0x519a651c + crc: 0xab88f820 type_id: 0x125f5377 full_name: "dec_zone_page_state" } @@ -331545,7 +335506,7 @@ elf_symbol { name: "default_llseek" is_defined: true symbol_type: FUNCTION - crc: 0xb223fc7a + crc: 0x963382d7 type_id: 0x2d64ae3e full_name: "default_llseek" } @@ -331572,7 +335533,7 @@ elf_symbol { name: "del_gendisk" is_defined: true symbol_type: FUNCTION - crc: 0x5105f773 + crc: 0x3cc9bbff type_id: 0x18d41dd9 full_name: "del_gendisk" } @@ -331608,7 +335569,7 @@ elf_symbol { name: "desc_to_gpio" is_defined: true symbol_type: FUNCTION - crc: 0x7d62811c + crc: 0xc282ae7c type_id: 0x901afa25 full_name: "desc_to_gpio" } @@ -331626,7 +335587,7 @@ elf_symbol { name: "dev_add_pack" is_defined: true symbol_type: FUNCTION - crc: 0x2e9e05f3 + crc: 0x4d9b6862 type_id: 0x15cafbab full_name: "dev_add_pack" } @@ -331635,7 +335596,7 @@ elf_symbol { name: "dev_addr_mod" is_defined: true symbol_type: FUNCTION - crc: 0x6f63d439 + crc: 0xf723e20c type_id: 0x1d2a5bee full_name: "dev_addr_mod" } @@ -331644,7 +335605,7 @@ elf_symbol { name: "dev_alloc_name" is_defined: true symbol_type: FUNCTION - crc: 0x7ad23435 + crc: 0xc88f3c55 type_id: 0x91d1290e full_name: "dev_alloc_name" } @@ -331653,7 +335614,7 @@ elf_symbol { name: "dev_change_flags" is_defined: true symbol_type: FUNCTION - crc: 0xdc0c279f + crc: 0x631f95ad type_id: 0x903e8974 full_name: "dev_change_flags" } @@ -331662,7 +335623,7 @@ elf_symbol { name: "dev_close" is_defined: true symbol_type: FUNCTION - crc: 0x11f0788e + crc: 0x97514556 type_id: 0x1c31d966 full_name: "dev_close" } @@ -331680,7 +335641,7 @@ elf_symbol { name: "dev_coredumpm" is_defined: true symbol_type: FUNCTION - crc: 0x0b36943f + crc: 0x1d2a3dbc type_id: 0x10273360 full_name: "dev_coredumpm" } @@ -331689,7 +335650,7 @@ elf_symbol { name: "dev_coredumpv" is_defined: true symbol_type: FUNCTION - crc: 0xf3e06701 + crc: 0xc7068337 type_id: 0x1052519d full_name: "dev_coredumpv" } @@ -331698,7 +335659,7 @@ elf_symbol { name: "dev_driver_string" is_defined: true symbol_type: FUNCTION - crc: 0xb49fa315 + crc: 0xde1e8d26 type_id: 0x9dad8b1c full_name: "dev_driver_string" } @@ -331707,7 +335668,7 @@ elf_symbol { name: "dev_err_probe" is_defined: true symbol_type: FUNCTION - crc: 0x2f996cc2 + crc: 0xb9059422 type_id: 0x93f8ec59 full_name: "dev_err_probe" } @@ -331725,7 +335686,7 @@ elf_symbol { name: "dev_fwnode" is_defined: true symbol_type: FUNCTION - crc: 0x585dce5f + crc: 0x68cdbc67 type_id: 0x368f1732 full_name: "dev_fwnode" } @@ -331734,7 +335695,7 @@ elf_symbol { name: "dev_get_by_index" is_defined: true symbol_type: FUNCTION - crc: 0x46c2bdfd + crc: 0x53aa4b38 type_id: 0xfec79391 full_name: "dev_get_by_index" } @@ -331743,7 +335704,7 @@ elf_symbol { name: "dev_get_by_index_rcu" is_defined: true symbol_type: FUNCTION - crc: 0x81ae0c38 + crc: 0xb18d182a type_id: 0xfec79391 full_name: "dev_get_by_index_rcu" } @@ -331752,7 +335713,7 @@ elf_symbol { name: "dev_get_by_name" is_defined: true symbol_type: FUNCTION - crc: 0xc3ccc25f + crc: 0xba83112a type_id: 0xffa35209 full_name: "dev_get_by_name" } @@ -331761,7 +335722,7 @@ elf_symbol { name: "dev_get_by_name_rcu" is_defined: true symbol_type: FUNCTION - crc: 0xa7a07f8b + crc: 0x2ab63e1e type_id: 0xffa35209 full_name: "dev_get_by_name_rcu" } @@ -331770,7 +335731,7 @@ elf_symbol { name: "dev_get_flags" is_defined: true symbol_type: FUNCTION - crc: 0x257a0691 + crc: 0x3d0b2b0a type_id: 0xc23d0fef full_name: "dev_get_flags" } @@ -331779,7 +335740,7 @@ elf_symbol { name: "dev_get_regmap" is_defined: true symbol_type: FUNCTION - crc: 0x2ee001ce + crc: 0x4a332e28 type_id: 0x8cdb45af full_name: "dev_get_regmap" } @@ -331788,7 +335749,7 @@ elf_symbol { name: "dev_get_stats" is_defined: true symbol_type: FUNCTION - crc: 0x02bb910c + crc: 0x912982b9 type_id: 0x7370e0bf full_name: "dev_get_stats" } @@ -331797,7 +335758,7 @@ elf_symbol { name: "dev_getbyhwaddr_rcu" is_defined: true symbol_type: FUNCTION - crc: 0x7dd94250 + crc: 0xf6ad4f26 type_id: 0xfc706cf5 full_name: "dev_getbyhwaddr_rcu" } @@ -331806,7 +335767,7 @@ elf_symbol { name: "dev_getfirstbyhwtype" is_defined: true symbol_type: FUNCTION - crc: 0x65fecb2d + crc: 0x83907aae type_id: 0xfc7fe8d8 full_name: "dev_getfirstbyhwtype" } @@ -331815,7 +335776,7 @@ elf_symbol { name: "dev_load" is_defined: true symbol_type: FUNCTION - crc: 0x9fa0eeb7 + crc: 0x9567f9d8 type_id: 0x13488e67 full_name: "dev_load" } @@ -331824,7 +335785,7 @@ elf_symbol { name: "dev_mc_sync" is_defined: true symbol_type: FUNCTION - crc: 0xb9c68fc5 + crc: 0x91605cb9 type_id: 0x91e3f355 full_name: "dev_mc_sync" } @@ -331833,7 +335794,7 @@ elf_symbol { name: "dev_mc_sync_multiple" is_defined: true symbol_type: FUNCTION - crc: 0xa8c9c0e1 + crc: 0x9f242462 type_id: 0x91e3f355 full_name: "dev_mc_sync_multiple" } @@ -331842,7 +335803,7 @@ elf_symbol { name: "dev_mc_unsync" is_defined: true symbol_type: FUNCTION - crc: 0x7be4d97d + crc: 0x64c94305 type_id: 0x1cfb41e9 full_name: "dev_mc_unsync" } @@ -331851,7 +335812,7 @@ elf_symbol { name: "dev_nit_active" is_defined: true symbol_type: FUNCTION - crc: 0x5782f790 + crc: 0xfe098378 type_id: 0xf20dd3f1 full_name: "dev_nit_active" } @@ -331860,7 +335821,7 @@ elf_symbol { name: "dev_open" is_defined: true symbol_type: FUNCTION - crc: 0xe8ff2619 + crc: 0x524aba17 type_id: 0x913618b5 full_name: "dev_open" } @@ -331869,7 +335830,7 @@ elf_symbol { name: "dev_pm_clear_wake_irq" is_defined: true symbol_type: FUNCTION - crc: 0x7aff4b93 + crc: 0x2568dc18 type_id: 0x100e6fc8 full_name: "dev_pm_clear_wake_irq" } @@ -331878,7 +335839,7 @@ elf_symbol { name: "dev_pm_domain_attach" is_defined: true symbol_type: FUNCTION - crc: 0x0b72fcf1 + crc: 0xde1d5545 type_id: 0x9ca3200b full_name: "dev_pm_domain_attach" } @@ -331887,7 +335848,7 @@ elf_symbol { name: "dev_pm_domain_attach_by_name" is_defined: true symbol_type: FUNCTION - crc: 0x9a3b20c8 + crc: 0x2f4121b4 type_id: 0xad414cb1 full_name: "dev_pm_domain_attach_by_name" } @@ -331896,7 +335857,7 @@ elf_symbol { name: "dev_pm_domain_detach" is_defined: true symbol_type: FUNCTION - crc: 0x205fc374 + crc: 0x477842ff type_id: 0x11bb92b7 full_name: "dev_pm_domain_detach" } @@ -331905,7 +335866,7 @@ elf_symbol { name: "dev_pm_genpd_add_notifier" is_defined: true symbol_type: FUNCTION - crc: 0xbf376f6f + crc: 0x53ae4a84 type_id: 0x9d7807e5 full_name: "dev_pm_genpd_add_notifier" } @@ -331914,7 +335875,7 @@ elf_symbol { name: "dev_pm_genpd_remove_notifier" is_defined: true symbol_type: FUNCTION - crc: 0x78225734 + crc: 0xb72bf332 type_id: 0x9d16dd74 full_name: "dev_pm_genpd_remove_notifier" } @@ -331923,7 +335884,7 @@ elf_symbol { name: "dev_pm_genpd_set_next_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0xc320a7ac + crc: 0x0c7adc9d type_id: 0x10497fda full_name: "dev_pm_genpd_set_next_wakeup" } @@ -331932,7 +335893,7 @@ elf_symbol { name: "dev_pm_genpd_set_performance_state" is_defined: true symbol_type: FUNCTION - crc: 0x41f524e9 + crc: 0xe173bf1e type_id: 0x9c00c8ec full_name: "dev_pm_genpd_set_performance_state" } @@ -331941,7 +335902,7 @@ elf_symbol { name: "dev_pm_opp_add" is_defined: true symbol_type: FUNCTION - crc: 0x8e9f0e2d + crc: 0xad948efc type_id: 0x9dd7d5bf full_name: "dev_pm_opp_add" } @@ -331950,7 +335911,7 @@ elf_symbol { name: "dev_pm_opp_adjust_voltage" is_defined: true symbol_type: FUNCTION - crc: 0xc3046798 + crc: 0xb14830b6 type_id: 0x9dd714b7 full_name: "dev_pm_opp_adjust_voltage" } @@ -331968,7 +335929,7 @@ elf_symbol { name: "dev_pm_opp_disable" is_defined: true symbol_type: FUNCTION - crc: 0x8e6e9f9d + crc: 0x4c0a1cfc type_id: 0x9ddb08e6 full_name: "dev_pm_opp_disable" } @@ -331977,7 +335938,7 @@ elf_symbol { name: "dev_pm_opp_enable" is_defined: true symbol_type: FUNCTION - crc: 0x7e9297d2 + crc: 0x436e57ae type_id: 0x9ddb08e6 full_name: "dev_pm_opp_enable" } @@ -331986,7 +335947,7 @@ elf_symbol { name: "dev_pm_opp_find_freq_ceil" is_defined: true symbol_type: FUNCTION - crc: 0x16d5a7bb + crc: 0x40f6b37f type_id: 0x81de8179 full_name: "dev_pm_opp_find_freq_ceil" } @@ -331995,7 +335956,7 @@ elf_symbol { name: "dev_pm_opp_find_freq_exact" is_defined: true symbol_type: FUNCTION - crc: 0xfaf3b30b + crc: 0x3f5c8c39 type_id: 0x81113ebe full_name: "dev_pm_opp_find_freq_exact" } @@ -332004,7 +335965,7 @@ elf_symbol { name: "dev_pm_opp_find_freq_floor" is_defined: true symbol_type: FUNCTION - crc: 0x4e935d98 + crc: 0xd2cc7825 type_id: 0x81de8179 full_name: "dev_pm_opp_find_freq_floor" } @@ -332013,7 +335974,7 @@ elf_symbol { name: "dev_pm_opp_find_level_exact" is_defined: true symbol_type: FUNCTION - crc: 0xd93fa21b + crc: 0x49ef452e type_id: 0x80d1a163 full_name: "dev_pm_opp_find_level_exact" } @@ -332022,7 +335983,7 @@ elf_symbol { name: "dev_pm_opp_get_freq" is_defined: true symbol_type: FUNCTION - crc: 0x6911486c + crc: 0xe41d6fd0 type_id: 0x37d5564f full_name: "dev_pm_opp_get_freq" } @@ -332031,7 +335992,7 @@ elf_symbol { name: "dev_pm_opp_get_level" is_defined: true symbol_type: FUNCTION - crc: 0x778395e9 + crc: 0x23573418 type_id: 0xc8a2e5e7 full_name: "dev_pm_opp_get_level" } @@ -332040,7 +336001,7 @@ elf_symbol { name: "dev_pm_opp_get_of_node" is_defined: true symbol_type: FUNCTION - crc: 0xdf13bac0 + crc: 0x12cbe615 type_id: 0x708a45ca full_name: "dev_pm_opp_get_of_node" } @@ -332049,7 +336010,7 @@ elf_symbol { name: "dev_pm_opp_get_opp_count" is_defined: true symbol_type: FUNCTION - crc: 0xfcb48b9f + crc: 0x63783128 type_id: 0x9d16dd74 full_name: "dev_pm_opp_get_opp_count" } @@ -332058,7 +336019,7 @@ elf_symbol { name: "dev_pm_opp_get_voltage" is_defined: true symbol_type: FUNCTION - crc: 0xaaeea4c7 + crc: 0xd4ecd6f0 type_id: 0x37d5564f full_name: "dev_pm_opp_get_voltage" } @@ -332067,7 +336028,7 @@ elf_symbol { name: "dev_pm_opp_of_add_table" is_defined: true symbol_type: FUNCTION - crc: 0xde401a02 + crc: 0xa70584da type_id: 0x9d16dd74 full_name: "dev_pm_opp_of_add_table" } @@ -332085,7 +336046,7 @@ elf_symbol { name: "dev_pm_opp_of_find_icc_paths" is_defined: true symbol_type: FUNCTION - crc: 0xca05e794 + crc: 0x555e893b type_id: 0x9d899db1 full_name: "dev_pm_opp_of_find_icc_paths" } @@ -332094,7 +336055,7 @@ elf_symbol { name: "dev_pm_opp_of_get_opp_desc_node" is_defined: true symbol_type: FUNCTION - crc: 0x48573f22 + crc: 0x8cd63bf1 type_id: 0x7665e08d full_name: "dev_pm_opp_of_get_opp_desc_node" } @@ -332103,7 +336064,7 @@ elf_symbol { name: "dev_pm_opp_of_register_em" is_defined: true symbol_type: FUNCTION - crc: 0x251b4896 + crc: 0xfde37e32 type_id: 0x9df535bf full_name: "dev_pm_opp_of_register_em" } @@ -332112,7 +336073,7 @@ elf_symbol { name: "dev_pm_opp_of_remove_table" is_defined: true symbol_type: FUNCTION - crc: 0xe37bae07 + crc: 0x442456bf type_id: 0x100e6fc8 full_name: "dev_pm_opp_of_remove_table" } @@ -332121,16 +336082,25 @@ elf_symbol { name: "dev_pm_opp_put" is_defined: true symbol_type: FUNCTION - crc: 0x73794981 + crc: 0x4c96dad4 type_id: 0x16e1ca8f full_name: "dev_pm_opp_put" } +elf_symbol { + id: 0xe6f275cc + name: "dev_pm_opp_remove" + is_defined: true + symbol_type: FUNCTION + crc: 0x9e0a0167 + type_id: 0x10c3ba5a + full_name: "dev_pm_opp_remove" +} elf_symbol { id: 0x90259097 name: "dev_pm_opp_remove_all_dynamic" is_defined: true symbol_type: FUNCTION - crc: 0x7e20c461 + crc: 0x4ac91760 type_id: 0x100e6fc8 full_name: "dev_pm_opp_remove_all_dynamic" } @@ -332139,7 +336109,7 @@ elf_symbol { name: "dev_pm_opp_set_config" is_defined: true symbol_type: FUNCTION - crc: 0xd6394a06 + crc: 0x465aa9c6 type_id: 0x9d0fcb12 full_name: "dev_pm_opp_set_config" } @@ -332148,7 +336118,7 @@ elf_symbol { name: "dev_pm_opp_set_opp" is_defined: true symbol_type: FUNCTION - crc: 0x3bf48bdf + crc: 0x3ba5c6e5 type_id: 0x9d7144c5 full_name: "dev_pm_opp_set_opp" } @@ -332157,7 +336127,7 @@ elf_symbol { name: "dev_pm_opp_set_rate" is_defined: true symbol_type: FUNCTION - crc: 0x2f1b443c + crc: 0x6649a527 type_id: 0x9ddb08e6 full_name: "dev_pm_opp_set_rate" } @@ -332166,7 +336136,7 @@ elf_symbol { name: "dev_pm_opp_set_sharing_cpus" is_defined: true symbol_type: FUNCTION - crc: 0x145d97db + crc: 0xf841ed88 type_id: 0x9dd2e674 full_name: "dev_pm_opp_set_sharing_cpus" } @@ -332175,7 +336145,7 @@ elf_symbol { name: "dev_pm_qos_add_notifier" is_defined: true symbol_type: FUNCTION - crc: 0x2fcf6a54 + crc: 0xf4df6170 type_id: 0x9d75a454 full_name: "dev_pm_qos_add_notifier" } @@ -332184,7 +336154,7 @@ elf_symbol { name: "dev_pm_qos_add_request" is_defined: true symbol_type: FUNCTION - crc: 0x851343a0 + crc: 0x5abe0ec5 type_id: 0x9d40265c full_name: "dev_pm_qos_add_request" } @@ -332193,7 +336163,7 @@ elf_symbol { name: "dev_pm_qos_read_value" is_defined: true symbol_type: FUNCTION - crc: 0x58248d9d + crc: 0xb5f329ff type_id: 0x811e789b full_name: "dev_pm_qos_read_value" } @@ -332202,7 +336172,7 @@ elf_symbol { name: "dev_pm_qos_remove_notifier" is_defined: true symbol_type: FUNCTION - crc: 0x9deee1fe + crc: 0x685fe3c9 type_id: 0x9d75a454 full_name: "dev_pm_qos_remove_notifier" } @@ -332211,7 +336181,7 @@ elf_symbol { name: "dev_pm_qos_remove_request" is_defined: true symbol_type: FUNCTION - crc: 0x3351b339 + crc: 0x2ed6fd50 type_id: 0x98006d18 full_name: "dev_pm_qos_remove_request" } @@ -332220,7 +336190,7 @@ elf_symbol { name: "dev_pm_qos_update_request" is_defined: true symbol_type: FUNCTION - crc: 0x36e0cc0c + crc: 0xecb4c2e1 type_id: 0x9b50173a full_name: "dev_pm_qos_update_request" } @@ -332229,7 +336199,7 @@ elf_symbol { name: "dev_pm_set_wake_irq" is_defined: true symbol_type: FUNCTION - crc: 0x0ac5f039 + crc: 0x14b7c729 type_id: 0x9c8a5e38 full_name: "dev_pm_set_wake_irq" } @@ -332238,7 +336208,7 @@ elf_symbol { name: "dev_printk_emit" is_defined: true symbol_type: FUNCTION - crc: 0x31d734b4 + crc: 0x5d0c3ded type_id: 0x84bb5eaa full_name: "dev_printk_emit" } @@ -332247,7 +336217,7 @@ elf_symbol { name: "dev_remove_pack" is_defined: true symbol_type: FUNCTION - crc: 0x35298da1 + crc: 0xeb78e259 type_id: 0x15cafbab full_name: "dev_remove_pack" } @@ -332256,7 +336226,7 @@ elf_symbol { name: "dev_set_allmulti" is_defined: true symbol_type: FUNCTION - crc: 0x8d83f6ee + crc: 0xf6f92d3c type_id: 0x90b5e896 full_name: "dev_set_allmulti" } @@ -332265,7 +336235,7 @@ elf_symbol { name: "dev_set_mac_address" is_defined: true symbol_type: FUNCTION - crc: 0xd409efff + crc: 0x9077a63c type_id: 0x91fbd1f6 full_name: "dev_set_mac_address" } @@ -332274,7 +336244,7 @@ elf_symbol { name: "dev_set_mtu" is_defined: true symbol_type: FUNCTION - crc: 0x8c6db5b2 + crc: 0xb8b52529 type_id: 0x90b5e896 full_name: "dev_set_mtu" } @@ -332283,7 +336253,7 @@ elf_symbol { name: "dev_set_name" is_defined: true symbol_type: FUNCTION - crc: 0xfcf7de99 + crc: 0xaae08318 type_id: 0x9dc7d522 full_name: "dev_set_name" } @@ -332292,7 +336262,7 @@ elf_symbol { name: "dev_set_promiscuity" is_defined: true symbol_type: FUNCTION - crc: 0xc5ffba91 + crc: 0x2741f99c type_id: 0x90b5e896 full_name: "dev_set_promiscuity" } @@ -332301,7 +336271,7 @@ elf_symbol { name: "dev_set_threaded" is_defined: true symbol_type: FUNCTION - crc: 0x1145b5a1 + crc: 0xc989dbda type_id: 0x909c96a5 full_name: "dev_set_threaded" } @@ -332310,7 +336280,7 @@ elf_symbol { name: "dev_uc_add" is_defined: true symbol_type: FUNCTION - crc: 0x0f8a282f + crc: 0x05908be4 type_id: 0x91c85a84 full_name: "dev_uc_add" } @@ -332319,7 +336289,7 @@ elf_symbol { name: "dev_uc_del" is_defined: true symbol_type: FUNCTION - crc: 0x8ab38809 + crc: 0x590075b6 type_id: 0x91c85a84 full_name: "dev_uc_del" } @@ -332328,7 +336298,7 @@ elf_symbol { name: "dev_uc_sync" is_defined: true symbol_type: FUNCTION - crc: 0x51a9f74a + crc: 0x46cce0fe type_id: 0x91e3f355 full_name: "dev_uc_sync" } @@ -332337,7 +336307,7 @@ elf_symbol { name: "dev_uc_sync_multiple" is_defined: true symbol_type: FUNCTION - crc: 0xe97920b9 + crc: 0x2bbe1cc9 type_id: 0x91e3f355 full_name: "dev_uc_sync_multiple" } @@ -332346,7 +336316,7 @@ elf_symbol { name: "dev_uc_unsync" is_defined: true symbol_type: FUNCTION - crc: 0x99214c98 + crc: 0x1926b2cc type_id: 0x1cfb41e9 full_name: "dev_uc_unsync" } @@ -332355,7 +336325,7 @@ elf_symbol { name: "devfreq_add_device" is_defined: true symbol_type: FUNCTION - crc: 0x71425b78 + crc: 0x5c09aeb6 type_id: 0xda80c39b full_name: "devfreq_add_device" } @@ -332364,7 +336334,7 @@ elf_symbol { name: "devfreq_add_governor" is_defined: true symbol_type: FUNCTION - crc: 0x13fb5cf3 + crc: 0x4ae22bf2 type_id: 0x91cab466 full_name: "devfreq_add_governor" } @@ -332373,7 +336343,7 @@ elf_symbol { name: "devfreq_cooling_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x39ab9791 + crc: 0x79cce91b type_id: 0x11aaf502 full_name: "devfreq_cooling_unregister" } @@ -332382,7 +336352,7 @@ elf_symbol { name: "devfreq_get_devfreq_by_node" is_defined: true symbol_type: FUNCTION - crc: 0x8329e51b + crc: 0x771efe9d type_id: 0xd7754407 full_name: "devfreq_get_devfreq_by_node" } @@ -332391,7 +336361,7 @@ elf_symbol { name: "devfreq_monitor_resume" is_defined: true symbol_type: FUNCTION - crc: 0xbd556793 + crc: 0xf5067427 type_id: 0x1942d44d full_name: "devfreq_monitor_resume" } @@ -332400,7 +336370,7 @@ elf_symbol { name: "devfreq_monitor_start" is_defined: true symbol_type: FUNCTION - crc: 0x5245e3e2 + crc: 0x30922f64 type_id: 0x1942d44d full_name: "devfreq_monitor_start" } @@ -332409,7 +336379,7 @@ elf_symbol { name: "devfreq_monitor_stop" is_defined: true symbol_type: FUNCTION - crc: 0xa1be9926 + crc: 0x7299a376 type_id: 0x1942d44d full_name: "devfreq_monitor_stop" } @@ -332418,7 +336388,7 @@ elf_symbol { name: "devfreq_monitor_suspend" is_defined: true symbol_type: FUNCTION - crc: 0x114dfe05 + crc: 0x5166a20c type_id: 0x1942d44d full_name: "devfreq_monitor_suspend" } @@ -332427,7 +336397,7 @@ elf_symbol { name: "devfreq_recommended_opp" is_defined: true symbol_type: FUNCTION - crc: 0xad2e77a5 + crc: 0x1771d909 type_id: 0x81ecc373 full_name: "devfreq_recommended_opp" } @@ -332436,7 +336406,7 @@ elf_symbol { name: "devfreq_register_opp_notifier" is_defined: true symbol_type: FUNCTION - crc: 0x894b94a2 + crc: 0x38619e05 type_id: 0x9d8b7529 full_name: "devfreq_register_opp_notifier" } @@ -332445,7 +336415,7 @@ elf_symbol { name: "devfreq_remove_device" is_defined: true symbol_type: FUNCTION - crc: 0x62911791 + crc: 0x5199b58b type_id: 0x945a66f1 full_name: "devfreq_remove_device" } @@ -332454,7 +336424,7 @@ elf_symbol { name: "devfreq_remove_governor" is_defined: true symbol_type: FUNCTION - crc: 0xcb97ff4d + crc: 0x2b6a4f5a type_id: 0x91cab466 full_name: "devfreq_remove_governor" } @@ -332463,7 +336433,7 @@ elf_symbol { name: "devfreq_resume_device" is_defined: true symbol_type: FUNCTION - crc: 0x344a98f4 + crc: 0x39d2f3be type_id: 0x945a66f1 full_name: "devfreq_resume_device" } @@ -332472,7 +336442,7 @@ elf_symbol { name: "devfreq_suspend_device" is_defined: true symbol_type: FUNCTION - crc: 0x9e5e29a6 + crc: 0x272ffed0 type_id: 0x945a66f1 full_name: "devfreq_suspend_device" } @@ -332481,7 +336451,7 @@ elf_symbol { name: "devfreq_unregister_opp_notifier" is_defined: true symbol_type: FUNCTION - crc: 0x2da4cec0 + crc: 0x06ff9163 type_id: 0x9d8b7529 full_name: "devfreq_unregister_opp_notifier" } @@ -332490,7 +336460,7 @@ elf_symbol { name: "devfreq_update_interval" is_defined: true symbol_type: FUNCTION - crc: 0xd03ec382 + crc: 0x3340594f type_id: 0x192d11cd full_name: "devfreq_update_interval" } @@ -332499,7 +336469,7 @@ elf_symbol { name: "device_add" is_defined: true symbol_type: FUNCTION - crc: 0xc767301c + crc: 0xfa9b07a1 type_id: 0x9d16dd74 full_name: "device_add" } @@ -332508,7 +336478,7 @@ elf_symbol { name: "device_add_disk" is_defined: true symbol_type: FUNCTION - crc: 0x5100b40f + crc: 0x93594cd6 type_id: 0x9d93897e full_name: "device_add_disk" } @@ -332517,7 +336487,7 @@ elf_symbol { name: "device_add_groups" is_defined: true symbol_type: FUNCTION - crc: 0xf8a97210 + crc: 0x70c25587 type_id: 0x9d0fd195 full_name: "device_add_groups" } @@ -332526,7 +336496,7 @@ elf_symbol { name: "device_bind_driver" is_defined: true symbol_type: FUNCTION - crc: 0xfe3863f7 + crc: 0x3da1991a type_id: 0x9d16dd74 full_name: "device_bind_driver" } @@ -332535,7 +336505,7 @@ elf_symbol { name: "device_create" is_defined: true symbol_type: FUNCTION - crc: 0xd1ccaafa + crc: 0x3daaf004 type_id: 0xa78fe504 full_name: "device_create" } @@ -332544,7 +336514,7 @@ elf_symbol { name: "device_create_bin_file" is_defined: true symbol_type: FUNCTION - crc: 0xfc6af940 + crc: 0x38cd938f type_id: 0x9df7985b full_name: "device_create_bin_file" } @@ -332553,7 +336523,7 @@ elf_symbol { name: "device_create_file" is_defined: true symbol_type: FUNCTION - crc: 0x0e85db40 + crc: 0xfcf66574 type_id: 0x9de4ff9b full_name: "device_create_file" } @@ -332562,7 +336532,7 @@ elf_symbol { name: "device_create_managed_software_node" is_defined: true symbol_type: FUNCTION - crc: 0x3fd48659 + crc: 0x98b1dbe6 type_id: 0x9dc044d0 full_name: "device_create_managed_software_node" } @@ -332571,7 +336541,7 @@ elf_symbol { name: "device_create_with_groups" is_defined: true symbol_type: FUNCTION - crc: 0x346076d0 + crc: 0x09b180ba type_id: 0xa78fe955 full_name: "device_create_with_groups" } @@ -332580,7 +336550,7 @@ elf_symbol { name: "device_del" is_defined: true symbol_type: FUNCTION - crc: 0x04e76a32 + crc: 0x764f885c type_id: 0x100e6fc8 full_name: "device_del" } @@ -332589,7 +336559,7 @@ elf_symbol { name: "device_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x01cd3d1b + crc: 0x3d4adbb8 type_id: 0x19a776c5 full_name: "device_destroy" } @@ -332598,7 +336568,7 @@ elf_symbol { name: "device_find_child" is_defined: true symbol_type: FUNCTION - crc: 0x0705d106 + crc: 0xf39e6729 type_id: 0xadd088bd full_name: "device_find_child" } @@ -332607,7 +336577,7 @@ elf_symbol { name: "device_for_each_child" is_defined: true symbol_type: FUNCTION - crc: 0x9a1cb4ed + crc: 0xcf6ef1cb type_id: 0x9d7f5bac full_name: "device_for_each_child" } @@ -332616,7 +336586,7 @@ elf_symbol { name: "device_for_each_child_reverse" is_defined: true symbol_type: FUNCTION - crc: 0x84412de0 + crc: 0x93059459 type_id: 0x9d7f5bac full_name: "device_for_each_child_reverse" } @@ -332625,7 +336595,7 @@ elf_symbol { name: "device_get_child_node_count" is_defined: true symbol_type: FUNCTION - crc: 0x695e66b1 + crc: 0x317decd8 type_id: 0xce4d40a0 full_name: "device_get_child_node_count" } @@ -332634,7 +336604,7 @@ elf_symbol { name: "device_get_dma_attr" is_defined: true symbol_type: FUNCTION - crc: 0xeaafc9e4 + crc: 0xc4c1bdec type_id: 0x167dac02 full_name: "device_get_dma_attr" } @@ -332643,7 +336613,7 @@ elf_symbol { name: "device_get_mac_address" is_defined: true symbol_type: FUNCTION - crc: 0x25638443 + crc: 0x94938203 type_id: 0x9d04d2ef full_name: "device_get_mac_address" } @@ -332652,7 +336622,7 @@ elf_symbol { name: "device_get_match_data" is_defined: true symbol_type: FUNCTION - crc: 0x833685e7 + crc: 0x8cd9835c type_id: 0x5846e63a full_name: "device_get_match_data" } @@ -332661,7 +336631,7 @@ elf_symbol { name: "device_get_named_child_node" is_defined: true symbol_type: FUNCTION - crc: 0xfdd1207d + crc: 0x7f48329d type_id: 0x3908f702 full_name: "device_get_named_child_node" } @@ -332670,7 +336640,7 @@ elf_symbol { name: "device_get_next_child_node" is_defined: true symbol_type: FUNCTION - crc: 0x7ae1f8af + crc: 0x5761c92e type_id: 0x39e2f73b full_name: "device_get_next_child_node" } @@ -332679,7 +336649,7 @@ elf_symbol { name: "device_get_phy_mode" is_defined: true symbol_type: FUNCTION - crc: 0xbd825b80 + crc: 0x56703fbb type_id: 0x9d16dd74 full_name: "device_get_phy_mode" } @@ -332688,7 +336658,7 @@ elf_symbol { name: "device_initialize" is_defined: true symbol_type: FUNCTION - crc: 0x3f35e063 + crc: 0xcae5117c type_id: 0x100e6fc8 full_name: "device_initialize" } @@ -332697,7 +336667,7 @@ elf_symbol { name: "device_link_add" is_defined: true symbol_type: FUNCTION - crc: 0x0917614e + crc: 0xa3149068 type_id: 0x60262630 full_name: "device_link_add" } @@ -332706,7 +336676,7 @@ elf_symbol { name: "device_link_del" is_defined: true symbol_type: FUNCTION - crc: 0xca0450f6 + crc: 0xaf2f19eb type_id: 0x19ba6fc0 full_name: "device_link_del" } @@ -332715,7 +336685,7 @@ elf_symbol { name: "device_link_remove" is_defined: true symbol_type: FUNCTION - crc: 0xcbdba31d + crc: 0xf0133e6a type_id: 0x16be6b3a full_name: "device_link_remove" } @@ -332724,7 +336694,7 @@ elf_symbol { name: "device_match_fwnode" is_defined: true symbol_type: FUNCTION - crc: 0x900a9d24 + crc: 0x9f9fe3e0 type_id: 0x9df2a123 full_name: "device_match_fwnode" } @@ -332733,7 +336703,7 @@ elf_symbol { name: "device_match_name" is_defined: true symbol_type: FUNCTION - crc: 0x1938278f + crc: 0x7e0ea879 type_id: 0x9df2a123 full_name: "device_match_name" } @@ -332742,7 +336712,7 @@ elf_symbol { name: "device_match_of_node" is_defined: true symbol_type: FUNCTION - crc: 0x137f2dbb + crc: 0x39aabbf7 type_id: 0x9df2a123 full_name: "device_match_of_node" } @@ -332751,7 +336721,7 @@ elf_symbol { name: "device_move" is_defined: true symbol_type: FUNCTION - crc: 0xba6cd0db + crc: 0xcb5cbd71 type_id: 0x9d26cfef full_name: "device_move" } @@ -332760,7 +336730,7 @@ elf_symbol { name: "device_property_match_string" is_defined: true symbol_type: FUNCTION - crc: 0x150e91e9 + crc: 0x4af97d22 type_id: 0x9de11b8d full_name: "device_property_match_string" } @@ -332769,7 +336739,7 @@ elf_symbol { name: "device_property_present" is_defined: true symbol_type: FUNCTION - crc: 0x2ffca962 + crc: 0x24ccabe2 type_id: 0xfeca278b full_name: "device_property_present" } @@ -332778,7 +336748,7 @@ elf_symbol { name: "device_property_read_string" is_defined: true symbol_type: FUNCTION - crc: 0x6648e134 + crc: 0xafc71043 type_id: 0x9defdaa5 full_name: "device_property_read_string" } @@ -332787,7 +336757,7 @@ elf_symbol { name: "device_property_read_u16_array" is_defined: true symbol_type: FUNCTION - crc: 0xb140ebfc + crc: 0x8906cf00 type_id: 0x9de6ffa0 full_name: "device_property_read_u16_array" } @@ -332796,7 +336766,7 @@ elf_symbol { name: "device_property_read_u32_array" is_defined: true symbol_type: FUNCTION - crc: 0x37c2cdea + crc: 0x6404735a type_id: 0x9de37bf9 full_name: "device_property_read_u32_array" } @@ -332805,7 +336775,7 @@ elf_symbol { name: "device_property_read_u8_array" is_defined: true symbol_type: FUNCTION - crc: 0xacf6bd32 + crc: 0xb44ca875 type_id: 0x9ded7ebc full_name: "device_property_read_u8_array" } @@ -332814,7 +336784,7 @@ elf_symbol { name: "device_register" is_defined: true symbol_type: FUNCTION - crc: 0x168ab457 + crc: 0xac78bd05 type_id: 0x9d16dd74 full_name: "device_register" } @@ -332823,7 +336793,7 @@ elf_symbol { name: "device_release_driver" is_defined: true symbol_type: FUNCTION - crc: 0xeff6bc19 + crc: 0xf2752bc1 type_id: 0x100e6fc8 full_name: "device_release_driver" } @@ -332832,7 +336802,7 @@ elf_symbol { name: "device_remove_bin_file" is_defined: true symbol_type: FUNCTION - crc: 0x8133caa5 + crc: 0x6660c700 type_id: 0x10ef2ae7 full_name: "device_remove_bin_file" } @@ -332841,7 +336811,7 @@ elf_symbol { name: "device_remove_file" is_defined: true symbol_type: FUNCTION - crc: 0xc11775a2 + crc: 0xd4cd1e42 type_id: 0x10fc4d27 full_name: "device_remove_file" } @@ -332850,7 +336820,7 @@ elf_symbol { name: "device_remove_groups" is_defined: true symbol_type: FUNCTION - crc: 0xbccf3822 + crc: 0x12a514eb type_id: 0x10176329 full_name: "device_remove_groups" } @@ -332859,7 +336829,7 @@ elf_symbol { name: "device_rename" is_defined: true symbol_type: FUNCTION - crc: 0x3ef78020 + crc: 0x4b15ed40 type_id: 0x9dee9fa0 full_name: "device_rename" } @@ -332868,7 +336838,7 @@ elf_symbol { name: "device_set_wakeup_capable" is_defined: true symbol_type: FUNCTION - crc: 0xcb7816fb + crc: 0x3d24b546 type_id: 0x11bb92b7 full_name: "device_set_wakeup_capable" } @@ -332877,7 +336847,7 @@ elf_symbol { name: "device_set_wakeup_enable" is_defined: true symbol_type: FUNCTION - crc: 0x54a6d3a8 + crc: 0x2cea5120 type_id: 0x9ca3200b full_name: "device_set_wakeup_enable" } @@ -332886,7 +336856,7 @@ elf_symbol { name: "device_show_int" is_defined: true symbol_type: FUNCTION - crc: 0x5d92e788 + crc: 0x889bc1ef type_id: 0x145d7056 full_name: "device_show_int" } @@ -332895,7 +336865,7 @@ elf_symbol { name: "device_store_int" is_defined: true symbol_type: FUNCTION - crc: 0x6032c826 + crc: 0x713fd482 type_id: 0x14500457 full_name: "device_store_int" } @@ -332904,7 +336874,7 @@ elf_symbol { name: "device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x4aed683f + crc: 0x78ced1be type_id: 0x100e6fc8 full_name: "device_unregister" } @@ -332913,7 +336883,7 @@ elf_symbol { name: "device_wakeup_disable" is_defined: true symbol_type: FUNCTION - crc: 0xfebf438c + crc: 0xe20ec69a type_id: 0x9d16dd74 full_name: "device_wakeup_disable" } @@ -332922,7 +336892,7 @@ elf_symbol { name: "device_wakeup_enable" is_defined: true symbol_type: FUNCTION - crc: 0xbd8084de + crc: 0x61fb7646 type_id: 0x9d16dd74 full_name: "device_wakeup_enable" } @@ -332931,7 +336901,7 @@ elf_symbol { name: "devm_add_action" is_defined: true symbol_type: FUNCTION - crc: 0x0d48abf1 + crc: 0x392ee5ef type_id: 0x9d2c05c3 full_name: "devm_add_action" } @@ -332940,7 +336910,7 @@ elf_symbol { name: "devm_alloc_etherdev_mqs" is_defined: true symbol_type: FUNCTION - crc: 0xd29ec210 + crc: 0xe3079f61 type_id: 0xfd6947a6 full_name: "devm_alloc_etherdev_mqs" } @@ -332949,7 +336919,7 @@ elf_symbol { name: "devm_backlight_device_register" is_defined: true symbol_type: FUNCTION - crc: 0x7a59ee94 + crc: 0x5de4cd81 type_id: 0x7cd5f8d0 full_name: "devm_backlight_device_register" } @@ -332958,7 +336928,7 @@ elf_symbol { name: "devm_backlight_device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x9b8fc348 + crc: 0x3fed950c type_id: 0x10cc1a70 full_name: "devm_backlight_device_unregister" } @@ -332967,7 +336937,7 @@ elf_symbol { name: "devm_bitmap_zalloc" is_defined: true symbol_type: FUNCTION - crc: 0xeaa35f07 + crc: 0xa7a7857f type_id: 0xaa7f8be4 full_name: "devm_bitmap_zalloc" } @@ -332976,7 +336946,7 @@ elf_symbol { name: "devm_blk_crypto_profile_init" is_defined: true symbol_type: FUNCTION - crc: 0x11220649 + crc: 0xcfb77ab4 type_id: 0x9d25e982 full_name: "devm_blk_crypto_profile_init" } @@ -332985,7 +336955,7 @@ elf_symbol { name: "devm_clk_bulk_get" is_defined: true symbol_type: FUNCTION - crc: 0x33b72815 + crc: 0xd5f68a3d type_id: 0x9c84371e full_name: "devm_clk_bulk_get" } @@ -332994,7 +336964,7 @@ elf_symbol { name: "devm_clk_bulk_get_all" is_defined: true symbol_type: FUNCTION - crc: 0x351067fd + crc: 0xea75694b type_id: 0x9d053909 full_name: "devm_clk_bulk_get_all" } @@ -333003,7 +336973,7 @@ elf_symbol { name: "devm_clk_bulk_get_optional" is_defined: true symbol_type: FUNCTION - crc: 0x389366e4 + crc: 0x2a675af2 type_id: 0x9c84371e full_name: "devm_clk_bulk_get_optional" } @@ -333012,7 +336982,7 @@ elf_symbol { name: "devm_clk_get" is_defined: true symbol_type: FUNCTION - crc: 0x4baa6178 + crc: 0xb26b20be type_id: 0xa671941e full_name: "devm_clk_get" } @@ -333021,7 +336991,7 @@ elf_symbol { name: "devm_clk_get_optional" is_defined: true symbol_type: FUNCTION - crc: 0x1780fd80 + crc: 0x2b9ddc05 type_id: 0xa671941e full_name: "devm_clk_get_optional" } @@ -333030,7 +337000,7 @@ elf_symbol { name: "devm_clk_hw_register" is_defined: true symbol_type: FUNCTION - crc: 0x2afb323c + crc: 0xc8b744eb type_id: 0x9d3d4fff full_name: "devm_clk_hw_register" } @@ -333039,7 +337009,7 @@ elf_symbol { name: "devm_clk_hw_register_fixed_factor_parent_hw" is_defined: true symbol_type: FUNCTION - crc: 0x07ca09f5 + crc: 0x10b9d042 type_id: 0xde006855 full_name: "devm_clk_hw_register_fixed_factor_parent_hw" } @@ -333048,7 +337018,7 @@ elf_symbol { name: "devm_clk_put" is_defined: true symbol_type: FUNCTION - crc: 0xdf4778c7 + crc: 0x33b729a1 type_id: 0x10f95469 full_name: "devm_clk_put" } @@ -333057,7 +337027,7 @@ elf_symbol { name: "devm_clk_register" is_defined: true symbol_type: FUNCTION - crc: 0xc15d4f8e + crc: 0xa20caf9f type_id: 0xa6a24441 full_name: "devm_clk_register" } @@ -333066,7 +337036,7 @@ elf_symbol { name: "devm_devfreq_add_device" is_defined: true symbol_type: FUNCTION - crc: 0xc04f707c + crc: 0x7b37f89d type_id: 0xda80c39b full_name: "devm_devfreq_add_device" } @@ -333075,7 +337045,7 @@ elf_symbol { name: "devm_device_add_group" is_defined: true symbol_type: FUNCTION - crc: 0x12e9f0a7 + crc: 0x6b31cb63 type_id: 0x9ddbed6b full_name: "devm_device_add_group" } @@ -333084,7 +337054,7 @@ elf_symbol { name: "devm_device_add_groups" is_defined: true symbol_type: FUNCTION - crc: 0x9a1fe38a + crc: 0x1b4e10db type_id: 0x9d0fd195 full_name: "devm_device_add_groups" } @@ -333093,7 +337063,7 @@ elf_symbol { name: "devm_device_remove_group" is_defined: true symbol_type: FUNCTION - crc: 0x50822f54 + crc: 0xb276544a type_id: 0x10c35fd7 full_name: "devm_device_remove_group" } @@ -333102,7 +337072,7 @@ elf_symbol { name: "devm_drm_of_get_bridge" is_defined: true symbol_type: FUNCTION - crc: 0xba90a189 + crc: 0x1075adb2 type_id: 0x9a68883d full_name: "devm_drm_of_get_bridge" } @@ -333111,7 +337081,7 @@ elf_symbol { name: "devm_drm_panel_bridge_add_typed" is_defined: true symbol_type: FUNCTION - crc: 0xc4ced0c6 + crc: 0x6e3bae15 type_id: 0x9afbe5e1 full_name: "devm_drm_panel_bridge_add_typed" } @@ -333120,7 +337090,7 @@ elf_symbol { name: "devm_extcon_dev_allocate" is_defined: true symbol_type: FUNCTION - crc: 0x935ecd4c + crc: 0xa449610b type_id: 0x0f502b97 full_name: "devm_extcon_dev_allocate" } @@ -333129,7 +337099,7 @@ elf_symbol { name: "devm_extcon_dev_register" is_defined: true symbol_type: FUNCTION - crc: 0xbf8a744c + crc: 0xa0ce6044 type_id: 0x9d56f523 full_name: "devm_extcon_dev_register" } @@ -333138,7 +337108,7 @@ elf_symbol { name: "devm_extcon_dev_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x46139ecc + crc: 0x80fb8fd8 type_id: 0x104e479f full_name: "devm_extcon_dev_unregister" } @@ -333147,7 +337117,7 @@ elf_symbol { name: "devm_free_irq" is_defined: true symbol_type: FUNCTION - crc: 0xbfc15ab2 + crc: 0x5959b162 type_id: 0x111e5509 full_name: "devm_free_irq" } @@ -333156,7 +337126,7 @@ elf_symbol { name: "devm_fwnode_iio_channel_get_by_name" is_defined: true symbol_type: FUNCTION - crc: 0xafed7743 + crc: 0xb3c90316 type_id: 0xa96969e0 full_name: "devm_fwnode_iio_channel_get_by_name" } @@ -333165,7 +337135,7 @@ elf_symbol { name: "devm_fwnode_pwm_get" is_defined: true symbol_type: FUNCTION - crc: 0x96eb080d + crc: 0xc4645cdd type_id: 0x03884347 full_name: "devm_fwnode_pwm_get" } @@ -333174,7 +337144,7 @@ elf_symbol { name: "devm_gen_pool_create" is_defined: true symbol_type: FUNCTION - crc: 0x677b52d0 + crc: 0x26265a78 type_id: 0x5d7d36d4 full_name: "devm_gen_pool_create" } @@ -333183,7 +337153,7 @@ elf_symbol { name: "devm_get_clk_from_child" is_defined: true symbol_type: FUNCTION - crc: 0x24202664 + crc: 0x9bd2fe23 type_id: 0xa6579ee9 full_name: "devm_get_clk_from_child" } @@ -333192,7 +337162,7 @@ elf_symbol { name: "devm_gh_rm_register_platform_ops" is_defined: true symbol_type: FUNCTION - crc: 0xfb77a0f7 + crc: 0x5cd3947f type_id: 0x9def2541 full_name: "devm_gh_rm_register_platform_ops" } @@ -333201,7 +337171,7 @@ elf_symbol { name: "devm_gpio_request" is_defined: true symbol_type: FUNCTION - crc: 0xdf125404 + crc: 0xf4a616d4 type_id: 0x9c0f4cc1 full_name: "devm_gpio_request" } @@ -333210,7 +337180,7 @@ elf_symbol { name: "devm_gpio_request_one" is_defined: true symbol_type: FUNCTION - crc: 0x1441daca + crc: 0xb23fa28d type_id: 0x9c0cedf7 full_name: "devm_gpio_request_one" } @@ -333219,7 +337189,7 @@ elf_symbol { name: "devm_gpiochip_add_data_with_key" is_defined: true symbol_type: FUNCTION - crc: 0xc8e52744 + crc: 0x8ec7de63 type_id: 0x9d7300d0 full_name: "devm_gpiochip_add_data_with_key" } @@ -333228,7 +337198,7 @@ elf_symbol { name: "devm_gpiod_get" is_defined: true symbol_type: FUNCTION - crc: 0xeee9dfd6 + crc: 0x6ae36308 type_id: 0x5f272d07 full_name: "devm_gpiod_get" } @@ -333237,7 +337207,7 @@ elf_symbol { name: "devm_gpiod_get_array" is_defined: true symbol_type: FUNCTION - crc: 0x7caaf215 + crc: 0x964aaa2c type_id: 0x8dd5f3b8 full_name: "devm_gpiod_get_array" } @@ -333246,7 +337216,7 @@ elf_symbol { name: "devm_gpiod_get_index" is_defined: true symbol_type: FUNCTION - crc: 0x57413091 + crc: 0x93135285 type_id: 0x5f3cfa16 full_name: "devm_gpiod_get_index" } @@ -333255,7 +337225,7 @@ elf_symbol { name: "devm_gpiod_get_optional" is_defined: true symbol_type: FUNCTION - crc: 0x7ae2aa19 + crc: 0x062ffada type_id: 0x5f272d07 full_name: "devm_gpiod_get_optional" } @@ -333264,7 +337234,7 @@ elf_symbol { name: "devm_gpiod_put" is_defined: true symbol_type: FUNCTION - crc: 0x08c26c50 + crc: 0xe7d9f0a0 type_id: 0x109bed40 full_name: "devm_gpiod_put" } @@ -333273,7 +337243,7 @@ elf_symbol { name: "devm_gpiod_put_array" is_defined: true symbol_type: FUNCTION - crc: 0x7dbe5758 + crc: 0x24e4994c type_id: 0x10c7c629 full_name: "devm_gpiod_put_array" } @@ -333282,7 +337252,7 @@ elf_symbol { name: "devm_hwspin_lock_register" is_defined: true symbol_type: FUNCTION - crc: 0xa1653548 + crc: 0x2b2faa5c type_id: 0x9d27e8b1 full_name: "devm_hwspin_lock_register" } @@ -333291,7 +337261,7 @@ elf_symbol { name: "devm_i2c_new_dummy_device" is_defined: true symbol_type: FUNCTION - crc: 0x4ea04345 + crc: 0x687ce310 type_id: 0x8c93d036 full_name: "devm_i2c_new_dummy_device" } @@ -333300,7 +337270,7 @@ elf_symbol { name: "devm_iio_channel_get" is_defined: true symbol_type: FUNCTION - crc: 0xc74026af + crc: 0x3a35379e type_id: 0xa98cedf4 full_name: "devm_iio_channel_get" } @@ -333309,7 +337279,7 @@ elf_symbol { name: "devm_iio_device_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x2d946604 + crc: 0xb80337b3 type_id: 0x582c94c3 full_name: "devm_iio_device_alloc" } @@ -333318,7 +337288,7 @@ elf_symbol { name: "devm_input_allocate_device" is_defined: true symbol_type: FUNCTION - crc: 0x65f63f95 + crc: 0x43013949 type_id: 0x3db2a1a3 full_name: "devm_input_allocate_device" } @@ -333327,7 +337297,7 @@ elf_symbol { name: "devm_ioremap" is_defined: true symbol_type: FUNCTION - crc: 0x8a3f9896 + crc: 0x3f2c8658 type_id: 0x54704321 full_name: "devm_ioremap" } @@ -333336,7 +337306,7 @@ elf_symbol { name: "devm_ioremap_resource" is_defined: true symbol_type: FUNCTION - crc: 0x574a19ef + crc: 0x2306dc3e type_id: 0x56c70278 full_name: "devm_ioremap_resource" } @@ -333345,7 +337315,7 @@ elf_symbol { name: "devm_ioremap_wc" is_defined: true symbol_type: FUNCTION - crc: 0x268bd7f5 + crc: 0x379aa573 type_id: 0x54704321 full_name: "devm_ioremap_wc" } @@ -333354,7 +337324,7 @@ elf_symbol { name: "devm_iounmap" is_defined: true symbol_type: FUNCTION - crc: 0x1f3c6c52 + crc: 0xc8929342 type_id: 0x106c9a5c full_name: "devm_iounmap" } @@ -333363,7 +337333,7 @@ elf_symbol { name: "devm_kasprintf" is_defined: true symbol_type: FUNCTION - crc: 0xa2b80f0f + crc: 0x1aa5a8d2 type_id: 0x3d63b46a full_name: "devm_kasprintf" } @@ -333372,7 +337342,7 @@ elf_symbol { name: "devm_kfree" is_defined: true symbol_type: FUNCTION - crc: 0x57787e2c + crc: 0xe9f41113 type_id: 0x10ea139f full_name: "devm_kfree" } @@ -333381,7 +337351,7 @@ elf_symbol { name: "devm_kmalloc" is_defined: true symbol_type: FUNCTION - crc: 0x65dc48c5 + crc: 0xfc4dc700 type_id: 0x55ec33bc full_name: "devm_kmalloc" } @@ -333390,7 +337360,7 @@ elf_symbol { name: "devm_kmemdup" is_defined: true symbol_type: FUNCTION - crc: 0x5fc8b977 + crc: 0x23990332 type_id: 0x56da383c full_name: "devm_kmemdup" } @@ -333399,7 +337369,7 @@ elf_symbol { name: "devm_krealloc" is_defined: true symbol_type: FUNCTION - crc: 0xa90b4db0 + crc: 0xf39d95d8 type_id: 0x565cb1ff full_name: "devm_krealloc" } @@ -333408,7 +337378,7 @@ elf_symbol { name: "devm_kstrdup" is_defined: true symbol_type: FUNCTION - crc: 0xf0f1d1ab + crc: 0xaa2b0654 type_id: 0x3e6c14f3 full_name: "devm_kstrdup" } @@ -333417,7 +337387,7 @@ elf_symbol { name: "devm_kstrdup_const" is_defined: true symbol_type: FUNCTION - crc: 0x7d418e0c + crc: 0x1279544b type_id: 0x9216029b full_name: "devm_kstrdup_const" } @@ -333426,7 +337396,7 @@ elf_symbol { name: "devm_led_classdev_flash_register_ext" is_defined: true symbol_type: FUNCTION - crc: 0x0f8fd28b + crc: 0x09d201e1 type_id: 0x9de9e113 full_name: "devm_led_classdev_flash_register_ext" } @@ -333435,7 +337405,7 @@ elf_symbol { name: "devm_led_classdev_multicolor_register_ext" is_defined: true symbol_type: FUNCTION - crc: 0x6fb67d08 + crc: 0x3472ce29 type_id: 0x9de8f9f8 full_name: "devm_led_classdev_multicolor_register_ext" } @@ -333444,7 +337414,7 @@ elf_symbol { name: "devm_led_classdev_register_ext" is_defined: true symbol_type: FUNCTION - crc: 0x020f14ff + crc: 0xa1a01175 type_id: 0x9dd2d442 full_name: "devm_led_classdev_register_ext" } @@ -333453,7 +337423,7 @@ elf_symbol { name: "devm_mbox_controller_register" is_defined: true symbol_type: FUNCTION - crc: 0x2e425ff0 + crc: 0xa5ec5657 type_id: 0x9df52a21 full_name: "devm_mbox_controller_register" } @@ -333462,7 +337432,7 @@ elf_symbol { name: "devm_memremap" is_defined: true symbol_type: FUNCTION - crc: 0xba24bd7d + crc: 0xd4f85ebf type_id: 0x5468daf3 full_name: "devm_memremap" } @@ -333471,7 +337441,7 @@ elf_symbol { name: "devm_mfd_add_devices" is_defined: true symbol_type: FUNCTION - crc: 0x09534629 + crc: 0x1f3c5fdb type_id: 0x9c874975 full_name: "devm_mfd_add_devices" } @@ -333480,7 +337450,7 @@ elf_symbol { name: "devm_mipi_dsi_attach" is_defined: true symbol_type: FUNCTION - crc: 0x82918037 + crc: 0x516e3174 type_id: 0x9d3354d9 full_name: "devm_mipi_dsi_attach" } @@ -333489,7 +337459,7 @@ elf_symbol { name: "devm_mipi_dsi_device_register_full" is_defined: true symbol_type: FUNCTION - crc: 0xda13d8bd + crc: 0xf83af0f8 type_id: 0x7ad03bcc full_name: "devm_mipi_dsi_device_register_full" } @@ -333498,7 +337468,7 @@ elf_symbol { name: "devm_nvmem_cell_get" is_defined: true symbol_type: FUNCTION - crc: 0x4857cb37 + crc: 0x2449e8b7 type_id: 0xbbe36438 full_name: "devm_nvmem_cell_get" } @@ -333507,7 +337477,7 @@ elf_symbol { name: "devm_nvmem_device_get" is_defined: true symbol_type: FUNCTION - crc: 0xefef9426 + crc: 0xfb309853 type_id: 0x21a8c9ba full_name: "devm_nvmem_device_get" } @@ -333516,7 +337486,7 @@ elf_symbol { name: "devm_nvmem_register" is_defined: true symbol_type: FUNCTION - crc: 0xfdff1f55 + crc: 0xb919a0c6 type_id: 0x21a7fa19 full_name: "devm_nvmem_register" } @@ -333525,7 +337495,7 @@ elf_symbol { name: "devm_of_clk_add_hw_provider" is_defined: true symbol_type: FUNCTION - crc: 0xa81022db + crc: 0x44b3ae1c type_id: 0x9de78077 full_name: "devm_of_clk_add_hw_provider" } @@ -333534,7 +337504,7 @@ elf_symbol { name: "devm_of_icc_get" is_defined: true symbol_type: FUNCTION - crc: 0x073c5439 + crc: 0x421ca26e type_id: 0x2bcaa9c8 full_name: "devm_of_icc_get" } @@ -333543,7 +337513,7 @@ elf_symbol { name: "devm_of_iomap" is_defined: true symbol_type: FUNCTION - crc: 0x6b9a7dab + crc: 0x50fbfc1b type_id: 0x56c834b5 full_name: "devm_of_iomap" } @@ -333552,7 +337522,7 @@ elf_symbol { name: "devm_of_platform_populate" is_defined: true symbol_type: FUNCTION - crc: 0xfc4e2187 + crc: 0xa3d1f0b4 type_id: 0x9d16dd74 full_name: "devm_of_platform_populate" } @@ -333561,7 +337531,7 @@ elf_symbol { name: "devm_pci_alloc_host_bridge" is_defined: true symbol_type: FUNCTION - crc: 0x703398e6 + crc: 0xd8d3b305 type_id: 0x68eaecc0 full_name: "devm_pci_alloc_host_bridge" } @@ -333570,7 +337540,7 @@ elf_symbol { name: "devm_phy_create" is_defined: true symbol_type: FUNCTION - crc: 0x4cbc1f55 + crc: 0xc9c50fc4 type_id: 0x1173e8d7 full_name: "devm_phy_create" } @@ -333579,7 +337549,7 @@ elf_symbol { name: "devm_phy_get" is_defined: true symbol_type: FUNCTION - crc: 0x452dd4a2 + crc: 0x590b5731 type_id: 0x1154b37f full_name: "devm_phy_get" } @@ -333588,7 +337558,7 @@ elf_symbol { name: "devm_phy_package_join" is_defined: true symbol_type: FUNCTION - crc: 0x082f39f2 + crc: 0x5a624117 type_id: 0x9dc91f17 full_name: "devm_phy_package_join" } @@ -333597,7 +337567,7 @@ elf_symbol { name: "devm_phy_put" is_defined: true symbol_type: FUNCTION - crc: 0x379e05ba + crc: 0x4427d6ca type_id: 0x10219d88 full_name: "devm_phy_put" } @@ -333606,7 +337576,7 @@ elf_symbol { name: "devm_pinctrl_get" is_defined: true symbol_type: FUNCTION - crc: 0x07b9bd75 + crc: 0xf21b8228 type_id: 0x4df5d8bb full_name: "devm_pinctrl_get" } @@ -333615,7 +337585,7 @@ elf_symbol { name: "devm_pinctrl_put" is_defined: true symbol_type: FUNCTION - crc: 0xb726f914 + crc: 0xbe6bc105 type_id: 0x1ad9d0a2 full_name: "devm_pinctrl_put" } @@ -333624,7 +337594,7 @@ elf_symbol { name: "devm_pinctrl_register" is_defined: true symbol_type: FUNCTION - crc: 0xbcd1376a + crc: 0xe4205a0e type_id: 0xefd6219a full_name: "devm_pinctrl_register" } @@ -333633,7 +337603,7 @@ elf_symbol { name: "devm_pinctrl_register_and_init" is_defined: true symbol_type: FUNCTION - crc: 0x7254035b + crc: 0x9ba12b1d type_id: 0x9de18d63 full_name: "devm_pinctrl_register_and_init" } @@ -333642,7 +337612,7 @@ elf_symbol { name: "devm_platform_get_and_ioremap_resource" is_defined: true symbol_type: FUNCTION - crc: 0xe8bb4b05 + crc: 0x7f2ab1cc type_id: 0x584c42dc full_name: "devm_platform_get_and_ioremap_resource" } @@ -333651,7 +337621,7 @@ elf_symbol { name: "devm_platform_ioremap_resource" is_defined: true symbol_type: FUNCTION - crc: 0xbe958bea + crc: 0xddd6e60a type_id: 0x584d521c full_name: "devm_platform_ioremap_resource" } @@ -333660,7 +337630,7 @@ elf_symbol { name: "devm_platform_ioremap_resource_byname" is_defined: true symbol_type: FUNCTION - crc: 0x7fa6840b + crc: 0xaa166e5c type_id: 0x59a30550 full_name: "devm_platform_ioremap_resource_byname" } @@ -333669,7 +337639,7 @@ elf_symbol { name: "devm_pm_clk_create" is_defined: true symbol_type: FUNCTION - crc: 0x1d8f7f89 + crc: 0x64eeae27 type_id: 0x9d16dd74 full_name: "devm_pm_clk_create" } @@ -333678,7 +337648,7 @@ elf_symbol { name: "devm_pm_opp_of_add_table" is_defined: true symbol_type: FUNCTION - crc: 0x3d47d4fe + crc: 0xc3c06a52 type_id: 0x9d16dd74 full_name: "devm_pm_opp_of_add_table" } @@ -333687,7 +337657,7 @@ elf_symbol { name: "devm_pm_opp_set_config" is_defined: true symbol_type: FUNCTION - crc: 0x7d837a28 + crc: 0xf7770fa6 type_id: 0x9d0fcb12 full_name: "devm_pm_opp_set_config" } @@ -333696,7 +337666,7 @@ elf_symbol { name: "devm_pm_runtime_enable" is_defined: true symbol_type: FUNCTION - crc: 0x0d0e59d7 + crc: 0x1ec96f9d type_id: 0x9d16dd74 full_name: "devm_pm_runtime_enable" } @@ -333705,7 +337675,7 @@ elf_symbol { name: "devm_power_supply_register" is_defined: true symbol_type: FUNCTION - crc: 0xa382453a + crc: 0xb8ab1161 type_id: 0x3bb8868a full_name: "devm_power_supply_register" } @@ -333714,7 +337684,7 @@ elf_symbol { name: "devm_pwm_get" is_defined: true symbol_type: FUNCTION - crc: 0xcd93da45 + crc: 0xc20e0986 type_id: 0x036dc753 full_name: "devm_pwm_get" } @@ -333723,7 +337693,7 @@ elf_symbol { name: "devm_qcom_smem_state_get" is_defined: true symbol_type: FUNCTION - crc: 0xbe4f9f68 + crc: 0xddbfeee0 type_id: 0x4f30442f full_name: "devm_qcom_smem_state_get" } @@ -333732,7 +337702,7 @@ elf_symbol { name: "devm_regmap_add_irq_chip" is_defined: true symbol_type: FUNCTION - crc: 0xfcfedbd8 + crc: 0x5abc4469 type_id: 0x9d28302d full_name: "devm_regmap_add_irq_chip" } @@ -333741,7 +337711,7 @@ elf_symbol { name: "devm_regmap_del_irq_chip" is_defined: true symbol_type: FUNCTION - crc: 0x6e7ff752 + crc: 0x16254886 type_id: 0x119619d3 full_name: "devm_regmap_del_irq_chip" } @@ -333750,7 +337720,7 @@ elf_symbol { name: "devm_regmap_field_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x9d358b8c + crc: 0x11726b73 type_id: 0x9588384f full_name: "devm_regmap_field_alloc" } @@ -333759,7 +337729,7 @@ elf_symbol { name: "devm_regulator_bulk_get" is_defined: true symbol_type: FUNCTION - crc: 0x6a7a36a7 + crc: 0x17c81644 type_id: 0x9c874de2 full_name: "devm_regulator_bulk_get" } @@ -333768,7 +337738,7 @@ elf_symbol { name: "devm_regulator_bulk_get_const" is_defined: true symbol_type: FUNCTION - crc: 0xed23975f + crc: 0xade4dd95 type_id: 0x9c86c8d2 full_name: "devm_regulator_bulk_get_const" } @@ -333777,7 +337747,7 @@ elf_symbol { name: "devm_regulator_get" is_defined: true symbol_type: FUNCTION - crc: 0x1b2db9ae + crc: 0x27323615 type_id: 0x8556217d full_name: "devm_regulator_get" } @@ -333786,7 +337756,7 @@ elf_symbol { name: "devm_regulator_get_exclusive" is_defined: true symbol_type: FUNCTION - crc: 0x2a1ed99b + crc: 0x2fbc8a6a type_id: 0x8556217d full_name: "devm_regulator_get_exclusive" } @@ -333795,7 +337765,7 @@ elf_symbol { name: "devm_regulator_get_optional" is_defined: true symbol_type: FUNCTION - crc: 0xee073fb9 + crc: 0x4c03dd7e type_id: 0x8556217d full_name: "devm_regulator_get_optional" } @@ -333804,7 +337774,7 @@ elf_symbol { name: "devm_regulator_put" is_defined: true symbol_type: FUNCTION - crc: 0x8562bfdd + crc: 0x19225735 type_id: 0x10f3d61f full_name: "devm_regulator_put" } @@ -333813,7 +337783,7 @@ elf_symbol { name: "devm_regulator_register" is_defined: true symbol_type: FUNCTION - crc: 0xcf3125e8 + crc: 0x2beb3a54 type_id: 0xf5978397 full_name: "devm_regulator_register" } @@ -333822,7 +337792,7 @@ elf_symbol { name: "devm_regulator_register_notifier" is_defined: true symbol_type: FUNCTION - crc: 0xba44c8cb + crc: 0x0f820606 type_id: 0x9d85be32 full_name: "devm_regulator_register_notifier" } @@ -333831,7 +337801,7 @@ elf_symbol { name: "devm_request_any_context_irq" is_defined: true symbol_type: FUNCTION - crc: 0x8606c7f4 + crc: 0xe0137b15 type_id: 0x9c364018 full_name: "devm_request_any_context_irq" } @@ -333840,7 +337810,7 @@ elf_symbol { name: "devm_request_threaded_irq" is_defined: true symbol_type: FUNCTION - crc: 0xb391276b + crc: 0x86678ca3 type_id: 0x9c35eaa4 full_name: "devm_request_threaded_irq" } @@ -333849,7 +337819,7 @@ elf_symbol { name: "devm_reset_control_array_get" is_defined: true symbol_type: FUNCTION - crc: 0x12bfc655 + crc: 0xdaf3ecce type_id: 0x0ea86f7f full_name: "devm_reset_control_array_get" } @@ -333858,7 +337828,7 @@ elf_symbol { name: "devm_reset_controller_register" is_defined: true symbol_type: FUNCTION - crc: 0x8347e01b + crc: 0xa4fe4bc5 type_id: 0x9d9d4b64 full_name: "devm_reset_controller_register" } @@ -333867,7 +337837,7 @@ elf_symbol { name: "devm_rtc_allocate_device" is_defined: true symbol_type: FUNCTION - crc: 0x1ccde766 + crc: 0xb5b5caa5 type_id: 0x7e1a7d05 full_name: "devm_rtc_allocate_device" } @@ -333876,7 +337846,7 @@ elf_symbol { name: "devm_rtc_device_register" is_defined: true symbol_type: FUNCTION - crc: 0x89b2180d + crc: 0xfda4f3c9 type_id: 0x7eed3f17 full_name: "devm_rtc_device_register" } @@ -333885,7 +337855,7 @@ elf_symbol { name: "devm_snd_soc_register_card" is_defined: true symbol_type: FUNCTION - crc: 0xb5310761 + crc: 0xaccad645 type_id: 0x9d72aaf9 full_name: "devm_snd_soc_register_card" } @@ -333894,7 +337864,7 @@ elf_symbol { name: "devm_snd_soc_register_component" is_defined: true symbol_type: FUNCTION - crc: 0xf35997a0 + crc: 0x58ad037d type_id: 0x9dd808ae full_name: "devm_snd_soc_register_component" } @@ -333903,7 +337873,7 @@ elf_symbol { name: "devm_spi_register_controller" is_defined: true symbol_type: FUNCTION - crc: 0x443aa25e + crc: 0xd2e03022 type_id: 0x9d15ab3e full_name: "devm_spi_register_controller" } @@ -333912,7 +337882,7 @@ elf_symbol { name: "devm_thermal_of_cooling_device_register" is_defined: true symbol_type: FUNCTION - crc: 0x35f8774f + crc: 0xeb764e0b type_id: 0x48f6484c full_name: "devm_thermal_of_cooling_device_register" } @@ -333921,7 +337891,7 @@ elf_symbol { name: "devm_thermal_of_zone_register" is_defined: true symbol_type: FUNCTION - crc: 0x20e37f10 + crc: 0xb7774ea2 type_id: 0xfc59f36a full_name: "devm_thermal_of_zone_register" } @@ -333930,7 +337900,7 @@ elf_symbol { name: "devm_usb_get_phy_by_node" is_defined: true symbol_type: FUNCTION - crc: 0x4c95edbe + crc: 0x4bbe0882 type_id: 0x8f3f76d1 full_name: "devm_usb_get_phy_by_node" } @@ -333939,7 +337909,7 @@ elf_symbol { name: "devm_usb_get_phy_by_phandle" is_defined: true symbol_type: FUNCTION - crc: 0x39896f15 + crc: 0x02cca8d6 type_id: 0x8f1a42be full_name: "devm_usb_get_phy_by_phandle" } @@ -333948,7 +337918,7 @@ elf_symbol { name: "devm_watchdog_register_device" is_defined: true symbol_type: FUNCTION - crc: 0xeeb30464 + crc: 0x909ea61e type_id: 0x9d5d4010 full_name: "devm_watchdog_register_device" } @@ -333957,7 +337927,7 @@ elf_symbol { name: "devres_add" is_defined: true symbol_type: FUNCTION - crc: 0x700aae7d + crc: 0x9cad1c69 type_id: 0x106c9a5c full_name: "devres_add" } @@ -333966,7 +337936,7 @@ elf_symbol { name: "devres_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x7ce17ded + crc: 0x2712a50f type_id: 0x9c603af1 full_name: "devres_destroy" } @@ -333984,7 +337954,7 @@ elf_symbol { name: "devres_open_group" is_defined: true symbol_type: FUNCTION - crc: 0x38beb165 + crc: 0x32bef500 type_id: 0x565e1389 full_name: "devres_open_group" } @@ -333993,7 +337963,7 @@ elf_symbol { name: "devres_release" is_defined: true symbol_type: FUNCTION - crc: 0xb730d0ee + crc: 0x970c2abf type_id: 0x9c603af1 full_name: "devres_release" } @@ -334002,7 +337972,7 @@ elf_symbol { name: "devres_release_group" is_defined: true symbol_type: FUNCTION - crc: 0x713ff6d0 + crc: 0x7284b728 type_id: 0x9d7428e0 full_name: "devres_release_group" } @@ -334047,7 +338017,7 @@ elf_symbol { name: "divider_recalc_rate" is_defined: true symbol_type: FUNCTION - crc: 0xb20511dd + crc: 0x6fd0a36b type_id: 0x33c9b2ef full_name: "divider_recalc_rate" } @@ -334056,7 +338026,7 @@ elf_symbol { name: "divider_ro_round_rate_parent" is_defined: true symbol_type: FUNCTION - crc: 0x8ef125d8 + crc: 0xf75131ac type_id: 0xa5be4b9a full_name: "divider_ro_round_rate_parent" } @@ -334065,7 +338035,7 @@ elf_symbol { name: "divider_round_rate_parent" is_defined: true symbol_type: FUNCTION - crc: 0x10ba534c + crc: 0x183a65cf type_id: 0xa5be4b9b full_name: "divider_round_rate_parent" } @@ -334074,7 +338044,7 @@ elf_symbol { name: "dma_alloc_attrs" is_defined: true symbol_type: FUNCTION - crc: 0x06f50b59 + crc: 0xf8aabecc type_id: 0x55df36a2 full_name: "dma_alloc_attrs" } @@ -334083,7 +338053,7 @@ elf_symbol { name: "dma_alloc_pages" is_defined: true symbol_type: FUNCTION - crc: 0x98085744 + crc: 0xb88d2939 type_id: 0xbed1b7ef full_name: "dma_alloc_pages" } @@ -334092,7 +338062,7 @@ elf_symbol { name: "dma_async_device_register" is_defined: true symbol_type: FUNCTION - crc: 0x97eb84d2 + crc: 0xbb7a473d type_id: 0x96711162 full_name: "dma_async_device_register" } @@ -334101,7 +338071,7 @@ elf_symbol { name: "dma_async_device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x9479548e + crc: 0x9f4817bf type_id: 0x1b69a3de full_name: "dma_async_device_unregister" } @@ -334110,7 +338080,7 @@ elf_symbol { name: "dma_async_tx_descriptor_init" is_defined: true symbol_type: FUNCTION - crc: 0x09a8105a + crc: 0xc720204f type_id: 0x1bd38750 full_name: "dma_async_tx_descriptor_init" } @@ -334119,7 +338089,7 @@ elf_symbol { name: "dma_buf_attach" is_defined: true symbol_type: FUNCTION - crc: 0xc6684b31 + crc: 0xe5ae76e2 namespace: "DMA_BUF" type_id: 0x6b24e9ea full_name: "dma_buf_attach" @@ -334129,7 +338099,7 @@ elf_symbol { name: "dma_buf_begin_cpu_access" is_defined: true symbol_type: FUNCTION - crc: 0x595f066f + crc: 0xb21780d5 namespace: "DMA_BUF" type_id: 0x9e84fe49 full_name: "dma_buf_begin_cpu_access" @@ -334139,7 +338109,7 @@ elf_symbol { name: "dma_buf_begin_cpu_access_partial" is_defined: true symbol_type: FUNCTION - crc: 0x9d307a99 + crc: 0x7b66ff96 type_id: 0x9e948905 full_name: "dma_buf_begin_cpu_access_partial" } @@ -334148,7 +338118,7 @@ elf_symbol { name: "dma_buf_detach" is_defined: true symbol_type: FUNCTION - crc: 0xa5573323 + crc: 0x7233bda0 namespace: "DMA_BUF" type_id: 0x10df3ba9 full_name: "dma_buf_detach" @@ -334158,7 +338128,7 @@ elf_symbol { name: "dma_buf_end_cpu_access" is_defined: true symbol_type: FUNCTION - crc: 0x061aefe1 + crc: 0xf27606ec namespace: "DMA_BUF" type_id: 0x9e84fe49 full_name: "dma_buf_end_cpu_access" @@ -334168,7 +338138,7 @@ elf_symbol { name: "dma_buf_end_cpu_access_partial" is_defined: true symbol_type: FUNCTION - crc: 0x8c4600c2 + crc: 0x0c17f84d type_id: 0x9e948905 full_name: "dma_buf_end_cpu_access_partial" } @@ -334177,7 +338147,7 @@ elf_symbol { name: "dma_buf_export" is_defined: true symbol_type: FUNCTION - crc: 0x84054660 + crc: 0xcfc8a5ea namespace: "DMA_BUF" type_id: 0x448c535b full_name: "dma_buf_export" @@ -334187,7 +338157,7 @@ elf_symbol { name: "dma_buf_fd" is_defined: true symbol_type: FUNCTION - crc: 0x9a275f9d + crc: 0x79d5d514 namespace: "DMA_BUF" type_id: 0x9c2e6e8a full_name: "dma_buf_fd" @@ -334197,7 +338167,7 @@ elf_symbol { name: "dma_buf_get" is_defined: true symbol_type: FUNCTION - crc: 0xa4bc8794 + crc: 0xc5e71fbb namespace: "DMA_BUF" type_id: 0x53e428b3 full_name: "dma_buf_get" @@ -334207,7 +338177,7 @@ elf_symbol { name: "dma_buf_get_each" is_defined: true symbol_type: FUNCTION - crc: 0x378c2dce + crc: 0x90bad023 namespace: "MINIDUMP" type_id: 0x966430b0 full_name: "dma_buf_get_each" @@ -334217,7 +338187,7 @@ elf_symbol { name: "dma_buf_get_flags" is_defined: true symbol_type: FUNCTION - crc: 0x12118a9f + crc: 0x085ce005 type_id: 0x9dabd844 full_name: "dma_buf_get_flags" } @@ -334226,7 +338196,7 @@ elf_symbol { name: "dma_buf_map_attachment" is_defined: true symbol_type: FUNCTION - crc: 0x048b541f + crc: 0x2a8ee3b7 namespace: "DMA_BUF" type_id: 0x451c3ee7 full_name: "dma_buf_map_attachment" @@ -334236,7 +338206,7 @@ elf_symbol { name: "dma_buf_mmap" is_defined: true symbol_type: FUNCTION - crc: 0xd394058b + crc: 0x3eb9b805 namespace: "DMA_BUF" type_id: 0x9d967d9a full_name: "dma_buf_mmap" @@ -334246,7 +338216,7 @@ elf_symbol { name: "dma_buf_put" is_defined: true symbol_type: FUNCTION - crc: 0xb82fcf3d + crc: 0xd1d7ad4e namespace: "DMA_BUF" type_id: 0x10aa5f7a full_name: "dma_buf_put" @@ -334256,7 +338226,7 @@ elf_symbol { name: "dma_buf_unmap_attachment" is_defined: true symbol_type: FUNCTION - crc: 0xfa7109dd + crc: 0x293865c0 namespace: "DMA_BUF" type_id: 0x17ffed59 full_name: "dma_buf_unmap_attachment" @@ -334266,7 +338236,7 @@ elf_symbol { name: "dma_buf_vmap" is_defined: true symbol_type: FUNCTION - crc: 0x68ff563c + crc: 0x92cc2b1b namespace: "DMA_BUF" type_id: 0x9d4e84a4 full_name: "dma_buf_vmap" @@ -334276,7 +338246,7 @@ elf_symbol { name: "dma_buf_vunmap" is_defined: true symbol_type: FUNCTION - crc: 0x706f3236 + crc: 0xb5ef56cc namespace: "DMA_BUF" type_id: 0x10563618 full_name: "dma_buf_vunmap" @@ -334448,7 +338418,7 @@ elf_symbol { name: "dma_free_attrs" is_defined: true symbol_type: FUNCTION - crc: 0xc6d3b176 + crc: 0x9c1b5227 type_id: 0x13db1955 full_name: "dma_free_attrs" } @@ -334457,7 +338427,7 @@ elf_symbol { name: "dma_free_pages" is_defined: true symbol_type: FUNCTION - crc: 0x47f73a40 + crc: 0x40579c49 type_id: 0x13dca967 full_name: "dma_free_pages" } @@ -334466,7 +338436,7 @@ elf_symbol { name: "dma_get_sgtable_attrs" is_defined: true symbol_type: FUNCTION - crc: 0x9a5364fc + crc: 0x4c68083a type_id: 0x9d11df94 full_name: "dma_get_sgtable_attrs" } @@ -334475,7 +338445,7 @@ elf_symbol { name: "dma_get_slave_caps" is_defined: true symbol_type: FUNCTION - crc: 0x19926f88 + crc: 0x70d7d29a type_id: 0x930a9934 full_name: "dma_get_slave_caps" } @@ -334484,7 +338454,7 @@ elf_symbol { name: "dma_get_slave_channel" is_defined: true symbol_type: FUNCTION - crc: 0x3fea9eac + crc: 0x1e4de8bc type_id: 0x898bee8c full_name: "dma_get_slave_channel" } @@ -334493,7 +338463,7 @@ elf_symbol { name: "dma_heap_add" is_defined: true symbol_type: FUNCTION - crc: 0x9f3fbd05 + crc: 0x15f4e4f9 type_id: 0x2f858b61 full_name: "dma_heap_add" } @@ -334502,7 +338472,7 @@ elf_symbol { name: "dma_heap_buffer_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x13417dec + crc: 0x7826376c type_id: 0x4afe8e98 full_name: "dma_heap_buffer_alloc" } @@ -334511,7 +338481,7 @@ elf_symbol { name: "dma_heap_buffer_free" is_defined: true symbol_type: FUNCTION - crc: 0x8dbc4801 + crc: 0x4acd1504 type_id: 0x10aa5f7a full_name: "dma_heap_buffer_free" } @@ -334529,7 +338499,7 @@ elf_symbol { name: "dma_heap_get_dev" is_defined: true symbol_type: FUNCTION - crc: 0xc74ca308 + crc: 0x45f52931 type_id: 0xae3d0033 full_name: "dma_heap_get_dev" } @@ -334565,7 +338535,7 @@ elf_symbol { name: "dma_map_page_attrs" is_defined: true symbol_type: FUNCTION - crc: 0x2cb31845 + crc: 0xb0798a90 type_id: 0xbcaf23fe full_name: "dma_map_page_attrs" } @@ -334574,7 +338544,7 @@ elf_symbol { name: "dma_map_resource" is_defined: true symbol_type: FUNCTION - crc: 0x5bf7fb4f + crc: 0xd88e89b3 type_id: 0xbe42b117 full_name: "dma_map_resource" } @@ -334583,7 +338553,7 @@ elf_symbol { name: "dma_map_sg_attrs" is_defined: true symbol_type: FUNCTION - crc: 0x771beee8 + crc: 0x0b7cd43d type_id: 0xce108db2 full_name: "dma_map_sg_attrs" } @@ -334592,7 +338562,7 @@ elf_symbol { name: "dma_map_sgtable" is_defined: true symbol_type: FUNCTION - crc: 0x1fe752db + crc: 0x0be1ce81 type_id: 0x9d27e158 full_name: "dma_map_sgtable" } @@ -334601,7 +338571,7 @@ elf_symbol { name: "dma_mmap_attrs" is_defined: true symbol_type: FUNCTION - crc: 0xd808ea73 + crc: 0x5cc09149 type_id: 0x9d3b0250 full_name: "dma_mmap_attrs" } @@ -334610,7 +338580,7 @@ elf_symbol { name: "dma_mmap_pages" is_defined: true symbol_type: FUNCTION - crc: 0x606bf647 + crc: 0x486c1955 type_id: 0x9d038726 full_name: "dma_mmap_pages" } @@ -334628,7 +338598,7 @@ elf_symbol { name: "dma_pool_create" is_defined: true symbol_type: FUNCTION - crc: 0x9528d853 + crc: 0x8a6d63f0 type_id: 0x5f4c14dc full_name: "dma_pool_create" } @@ -334655,7 +338625,7 @@ elf_symbol { name: "dma_release_channel" is_defined: true symbol_type: FUNCTION - crc: 0xbfc6ad7e + crc: 0x94191160 type_id: 0x1e0e5d07 full_name: "dma_release_channel" } @@ -334664,7 +338634,7 @@ elf_symbol { name: "dma_request_chan" is_defined: true symbol_type: FUNCTION - crc: 0x85f914af + crc: 0x8e42e777 type_id: 0x87739e97 full_name: "dma_request_chan" } @@ -334673,7 +338643,7 @@ elf_symbol { name: "dma_resv_add_fence" is_defined: true symbol_type: FUNCTION - crc: 0xec146a15 + crc: 0xba4cb987 type_id: 0x194c85c5 full_name: "dma_resv_add_fence" } @@ -334682,7 +338652,7 @@ elf_symbol { name: "dma_resv_describe" is_defined: true symbol_type: FUNCTION - crc: 0xc8697138 + crc: 0x46e9c3ee type_id: 0x1950a0f3 full_name: "dma_resv_describe" } @@ -334691,7 +338661,7 @@ elf_symbol { name: "dma_resv_fini" is_defined: true symbol_type: FUNCTION - crc: 0xe43e2616 + crc: 0xf9922ee0 type_id: 0x19493769 full_name: "dma_resv_fini" } @@ -334700,7 +338670,7 @@ elf_symbol { name: "dma_resv_get_singleton" is_defined: true symbol_type: FUNCTION - crc: 0x46ac6b27 + crc: 0xcd40b12f type_id: 0x94cadd10 full_name: "dma_resv_get_singleton" } @@ -334709,7 +338679,7 @@ elf_symbol { name: "dma_resv_init" is_defined: true symbol_type: FUNCTION - crc: 0x8c4746fb + crc: 0x5d413b32 type_id: 0x19493769 full_name: "dma_resv_init" } @@ -334718,7 +338688,7 @@ elf_symbol { name: "dma_resv_iter_first" is_defined: true symbol_type: FUNCTION - crc: 0x3f2cf632 + crc: 0x5597567d type_id: 0xdc551b4d full_name: "dma_resv_iter_first" } @@ -334727,7 +338697,7 @@ elf_symbol { name: "dma_resv_iter_next" is_defined: true symbol_type: FUNCTION - crc: 0x2417412c + crc: 0x6f853328 type_id: 0xdc551b4d full_name: "dma_resv_iter_next" } @@ -334736,7 +338706,7 @@ elf_symbol { name: "dma_resv_reserve_fences" is_defined: true symbol_type: FUNCTION - crc: 0x2b5a87fd + crc: 0x1691227c type_id: 0x9547904d full_name: "dma_resv_reserve_fences" } @@ -334745,7 +338715,7 @@ elf_symbol { name: "dma_resv_test_signaled" is_defined: true symbol_type: FUNCTION - crc: 0x758ca0f5 + crc: 0x6b28c865 type_id: 0xf7ecf18c full_name: "dma_resv_test_signaled" } @@ -334754,7 +338724,7 @@ elf_symbol { name: "dma_resv_wait_timeout" is_defined: true symbol_type: FUNCTION - crc: 0x0e351ce5 + crc: 0x9aa4a02f type_id: 0xae730313 full_name: "dma_resv_wait_timeout" } @@ -334763,7 +338733,7 @@ elf_symbol { name: "dma_set_coherent_mask" is_defined: true symbol_type: FUNCTION - crc: 0x58b29a00 + crc: 0xca51481d type_id: 0x9f5e51ba full_name: "dma_set_coherent_mask" } @@ -334772,7 +338742,7 @@ elf_symbol { name: "dma_set_mask" is_defined: true symbol_type: FUNCTION - crc: 0x438ce97b + crc: 0xf5874848 type_id: 0x9f5e51ba full_name: "dma_set_mask" } @@ -334781,7 +338751,7 @@ elf_symbol { name: "dma_sync_sg_for_cpu" is_defined: true symbol_type: FUNCTION - crc: 0xcbf96325 + crc: 0x2c27bba5 type_id: 0x1053ae07 full_name: "dma_sync_sg_for_cpu" } @@ -334790,7 +338760,7 @@ elf_symbol { name: "dma_sync_sg_for_device" is_defined: true symbol_type: FUNCTION - crc: 0x53e08770 + crc: 0xe7e352e7 type_id: 0x1053ae07 full_name: "dma_sync_sg_for_device" } @@ -334799,7 +338769,7 @@ elf_symbol { name: "dma_sync_single_for_cpu" is_defined: true symbol_type: FUNCTION - crc: 0xd3ad94f1 + crc: 0xc2ed4295 type_id: 0x13b0ecd2 full_name: "dma_sync_single_for_cpu" } @@ -334808,7 +338778,7 @@ elf_symbol { name: "dma_sync_single_for_device" is_defined: true symbol_type: FUNCTION - crc: 0xc3bf657d + crc: 0x0a66940f type_id: 0x13b0ecd2 full_name: "dma_sync_single_for_device" } @@ -334817,7 +338787,7 @@ elf_symbol { name: "dma_unmap_page_attrs" is_defined: true symbol_type: FUNCTION - crc: 0x32d3eb6b + crc: 0x12822a92 type_id: 0x13b0e00f full_name: "dma_unmap_page_attrs" } @@ -334826,7 +338796,7 @@ elf_symbol { name: "dma_unmap_resource" is_defined: true symbol_type: FUNCTION - crc: 0x6d418731 + crc: 0x856678ab type_id: 0x13b0e00f full_name: "dma_unmap_resource" } @@ -334835,7 +338805,7 @@ elf_symbol { name: "dma_unmap_sg_attrs" is_defined: true symbol_type: FUNCTION - crc: 0x6fb16832 + crc: 0x16bd79ea type_id: 0x1053a2da full_name: "dma_unmap_sg_attrs" } @@ -334844,7 +338814,7 @@ elf_symbol { name: "dmabuf_page_pool_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x6040cd22 + crc: 0xf90b1cbb type_id: 0xba11bc6a full_name: "dmabuf_page_pool_alloc" } @@ -334871,7 +338841,7 @@ elf_symbol { name: "dmabuf_page_pool_free" is_defined: true symbol_type: FUNCTION - crc: 0xdf3957d3 + crc: 0x227c1ff5 type_id: 0x170b1003 full_name: "dmabuf_page_pool_free" } @@ -334889,7 +338859,7 @@ elf_symbol { name: "dmaengine_unmap_put" is_defined: true symbol_type: FUNCTION - crc: 0x12799708 + crc: 0xb084a74f type_id: 0x1664b4e1 full_name: "dmaengine_unmap_put" } @@ -334898,7 +338868,7 @@ elf_symbol { name: "dmam_alloc_attrs" is_defined: true symbol_type: FUNCTION - crc: 0xafe63380 + crc: 0x573c3420 type_id: 0x55df36a2 full_name: "dmam_alloc_attrs" } @@ -334907,7 +338877,7 @@ elf_symbol { name: "dmam_free_coherent" is_defined: true symbol_type: FUNCTION - crc: 0x4629c5f5 + crc: 0x32ae6873 type_id: 0x13db1588 full_name: "dmam_free_coherent" } @@ -334916,7 +338886,7 @@ elf_symbol { name: "do_SAK" is_defined: true symbol_type: FUNCTION - crc: 0x045bee26 + crc: 0x03025bb4 type_id: 0x1b27f18a full_name: "do_SAK" } @@ -334961,7 +338931,7 @@ elf_symbol { name: "double_rq_lock" is_defined: true symbol_type: FUNCTION - crc: 0x146df730 + crc: 0x5e45111a type_id: 0x1ba0fc33 full_name: "double_rq_lock" } @@ -335042,7 +339012,7 @@ elf_symbol { name: "dput" is_defined: true symbol_type: FUNCTION - crc: 0x00661446 + crc: 0x2771508a type_id: 0x141901a7 full_name: "dput" } @@ -335078,7 +339048,7 @@ elf_symbol { name: "driver_attach" is_defined: true symbol_type: FUNCTION - crc: 0xb7d310d7 + crc: 0xdb5feb74 type_id: 0x91190ace full_name: "driver_attach" } @@ -335087,7 +339057,7 @@ elf_symbol { name: "driver_find_device" is_defined: true symbol_type: FUNCTION - crc: 0xce43263e + crc: 0x494a749f type_id: 0xa1b14a4d full_name: "driver_find_device" } @@ -335096,7 +339066,7 @@ elf_symbol { name: "driver_register" is_defined: true symbol_type: FUNCTION - crc: 0x55a75c28 + crc: 0xfb8910fd type_id: 0x91190ace full_name: "driver_register" } @@ -335105,7 +339075,7 @@ elf_symbol { name: "driver_set_override" is_defined: true symbol_type: FUNCTION - crc: 0x7c731c3e + crc: 0x7e84be1f type_id: 0x9d0ed9df full_name: "driver_set_override" } @@ -335114,7 +339084,7 @@ elf_symbol { name: "driver_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xb4b87e21 + crc: 0xea3301b6 type_id: 0x1c01b872 full_name: "driver_unregister" } @@ -335123,7 +339093,7 @@ elf_symbol { name: "drm_add_edid_modes" is_defined: true symbol_type: FUNCTION - crc: 0xac079a9d + crc: 0x68c41307 type_id: 0x91016cca full_name: "drm_add_edid_modes" } @@ -335132,7 +339102,7 @@ elf_symbol { name: "drm_add_modes_noedid" is_defined: true symbol_type: FUNCTION - crc: 0x464dfd66 + crc: 0x4003fd2a type_id: 0x9068c1cc full_name: "drm_add_modes_noedid" } @@ -335141,7 +339111,7 @@ elf_symbol { name: "drm_aperture_remove_conflicting_pci_framebuffers" is_defined: true symbol_type: FUNCTION - crc: 0x833b1392 + crc: 0x32675280 type_id: 0x99361691 full_name: "drm_aperture_remove_conflicting_pci_framebuffers" } @@ -335150,7 +339120,7 @@ elf_symbol { name: "drm_atomic_add_affected_connectors" is_defined: true symbol_type: FUNCTION - crc: 0x82c50e5d + crc: 0x61e3d846 type_id: 0x950581be full_name: "drm_atomic_add_affected_connectors" } @@ -335159,7 +339129,7 @@ elf_symbol { name: "drm_atomic_add_affected_planes" is_defined: true symbol_type: FUNCTION - crc: 0x451b5b67 + crc: 0x681e563d type_id: 0x950581be full_name: "drm_atomic_add_affected_planes" } @@ -335168,7 +339138,7 @@ elf_symbol { name: "drm_atomic_commit" is_defined: true symbol_type: FUNCTION - crc: 0x792bae33 + crc: 0xc70763b1 type_id: 0x95c0ec46 full_name: "drm_atomic_commit" } @@ -335177,7 +339147,7 @@ elf_symbol { name: "drm_atomic_get_connector_state" is_defined: true symbol_type: FUNCTION - crc: 0x2bf0ef65 + crc: 0x4de818cd type_id: 0x6345a3c5 full_name: "drm_atomic_get_connector_state" } @@ -335186,7 +339156,7 @@ elf_symbol { name: "drm_atomic_get_crtc_state" is_defined: true symbol_type: FUNCTION - crc: 0x4d433280 + crc: 0x1b3cd241 type_id: 0xefaef687 full_name: "drm_atomic_get_crtc_state" } @@ -335195,7 +339165,7 @@ elf_symbol { name: "drm_atomic_get_new_bridge_state" is_defined: true symbol_type: FUNCTION - crc: 0x31cb0b45 + crc: 0x581d40b1 type_id: 0x289916da full_name: "drm_atomic_get_new_bridge_state" } @@ -335204,7 +339174,7 @@ elf_symbol { name: "drm_atomic_get_new_connector_for_encoder" is_defined: true symbol_type: FUNCTION - crc: 0x989360f7 + crc: 0xb0157729 type_id: 0xab344d2b full_name: "drm_atomic_get_new_connector_for_encoder" } @@ -335213,7 +339183,7 @@ elf_symbol { name: "drm_atomic_get_new_private_obj_state" is_defined: true symbol_type: FUNCTION - crc: 0x47ac09c7 + crc: 0xd476ff3d type_id: 0x8715e05e full_name: "drm_atomic_get_new_private_obj_state" } @@ -335222,7 +339192,7 @@ elf_symbol { name: "drm_atomic_get_old_connector_for_encoder" is_defined: true symbol_type: FUNCTION - crc: 0x9fbb87ab + crc: 0xb73d9075 type_id: 0xab344d2b full_name: "drm_atomic_get_old_connector_for_encoder" } @@ -335231,7 +339201,7 @@ elf_symbol { name: "drm_atomic_get_old_private_obj_state" is_defined: true symbol_type: FUNCTION - crc: 0x4084ee9b + crc: 0xd35e1861 type_id: 0x8715e05e full_name: "drm_atomic_get_old_private_obj_state" } @@ -335240,7 +339210,7 @@ elf_symbol { name: "drm_atomic_get_plane_state" is_defined: true symbol_type: FUNCTION - crc: 0x6b2db27c + crc: 0x24a66c1a type_id: 0x89544504 full_name: "drm_atomic_get_plane_state" } @@ -335249,7 +339219,7 @@ elf_symbol { name: "drm_atomic_get_private_obj_state" is_defined: true symbol_type: FUNCTION - crc: 0x0ff84732 + crc: 0x9a3aa829 type_id: 0x8715e05e full_name: "drm_atomic_get_private_obj_state" } @@ -335258,7 +339228,7 @@ elf_symbol { name: "drm_atomic_helper_bridge_destroy_state" is_defined: true symbol_type: FUNCTION - crc: 0xff5bcad8 + crc: 0x1030416a type_id: 0x1912c3c7 full_name: "drm_atomic_helper_bridge_destroy_state" } @@ -335267,7 +339237,7 @@ elf_symbol { name: "drm_atomic_helper_bridge_duplicate_state" is_defined: true symbol_type: FUNCTION - crc: 0x2e60592a + crc: 0x192ecd6a type_id: 0x29da83bb full_name: "drm_atomic_helper_bridge_duplicate_state" } @@ -335276,7 +339246,7 @@ elf_symbol { name: "drm_atomic_helper_bridge_reset" is_defined: true symbol_type: FUNCTION - crc: 0x51312d82 + crc: 0xf68c5b3f type_id: 0x29da83bb full_name: "drm_atomic_helper_bridge_reset" } @@ -335285,7 +339255,7 @@ elf_symbol { name: "drm_atomic_helper_check" is_defined: true symbol_type: FUNCTION - crc: 0x34e29f48 + crc: 0x87f75ec3 type_id: 0x93c5cc72 full_name: "drm_atomic_helper_check" } @@ -335294,7 +339264,7 @@ elf_symbol { name: "drm_atomic_helper_check_modeset" is_defined: true symbol_type: FUNCTION - crc: 0x4f919a0d + crc: 0x45d9b509 type_id: 0x93c5cc72 full_name: "drm_atomic_helper_check_modeset" } @@ -335303,7 +339273,7 @@ elf_symbol { name: "drm_atomic_helper_check_plane_state" is_defined: true symbol_type: FUNCTION - crc: 0xe0f1fe2c + crc: 0x64f7e62f type_id: 0x96d5902b full_name: "drm_atomic_helper_check_plane_state" } @@ -335312,7 +339282,7 @@ elf_symbol { name: "drm_atomic_helper_check_planes" is_defined: true symbol_type: FUNCTION - crc: 0x16882305 + crc: 0xef5daa75 type_id: 0x93c5cc72 full_name: "drm_atomic_helper_check_planes" } @@ -335321,7 +339291,7 @@ elf_symbol { name: "drm_atomic_helper_check_wb_encoder_state" is_defined: true symbol_type: FUNCTION - crc: 0x34122c69 + crc: 0x8668f57f type_id: 0x968fd49c full_name: "drm_atomic_helper_check_wb_encoder_state" } @@ -335330,7 +339300,7 @@ elf_symbol { name: "drm_atomic_helper_cleanup_planes" is_defined: true symbol_type: FUNCTION - crc: 0x9bb0faf2 + crc: 0xdf89a86a type_id: 0x1edd7ece full_name: "drm_atomic_helper_cleanup_planes" } @@ -335339,7 +339309,7 @@ elf_symbol { name: "drm_atomic_helper_commit" is_defined: true symbol_type: FUNCTION - crc: 0x7d158255 + crc: 0xfe9125ab type_id: 0x93de93a5 full_name: "drm_atomic_helper_commit" } @@ -335348,7 +339318,7 @@ elf_symbol { name: "drm_atomic_helper_commit_cleanup_done" is_defined: true symbol_type: FUNCTION - crc: 0x37289f1a + crc: 0x17a8af04 type_id: 0x18d85efa full_name: "drm_atomic_helper_commit_cleanup_done" } @@ -335357,7 +339327,7 @@ elf_symbol { name: "drm_atomic_helper_commit_duplicated_state" is_defined: true symbol_type: FUNCTION - crc: 0x3babb7fe + crc: 0xc2cbde19 type_id: 0x95cedbde full_name: "drm_atomic_helper_commit_duplicated_state" } @@ -335366,7 +339336,7 @@ elf_symbol { name: "drm_atomic_helper_commit_hw_done" is_defined: true symbol_type: FUNCTION - crc: 0xb49707f5 + crc: 0x7bb58713 type_id: 0x18d85efa full_name: "drm_atomic_helper_commit_hw_done" } @@ -335375,7 +339345,7 @@ elf_symbol { name: "drm_atomic_helper_commit_modeset_disables" is_defined: true symbol_type: FUNCTION - crc: 0x25c7b738 + crc: 0xa3d47218 type_id: 0x1edd7ece full_name: "drm_atomic_helper_commit_modeset_disables" } @@ -335384,7 +339354,7 @@ elf_symbol { name: "drm_atomic_helper_commit_modeset_enables" is_defined: true symbol_type: FUNCTION - crc: 0xdbb38cf8 + crc: 0x03f4c480 type_id: 0x1edd7ece full_name: "drm_atomic_helper_commit_modeset_enables" } @@ -335393,7 +339363,7 @@ elf_symbol { name: "drm_atomic_helper_commit_planes" is_defined: true symbol_type: FUNCTION - crc: 0x27c1be48 + crc: 0x544461ff type_id: 0x1eda71a1 full_name: "drm_atomic_helper_commit_planes" } @@ -335402,7 +339372,7 @@ elf_symbol { name: "drm_atomic_helper_commit_tail" is_defined: true symbol_type: FUNCTION - crc: 0xf8cb3690 + crc: 0x4e94bc32 type_id: 0x18d85efa full_name: "drm_atomic_helper_commit_tail" } @@ -335411,7 +339381,7 @@ elf_symbol { name: "drm_atomic_helper_connector_destroy_state" is_defined: true symbol_type: FUNCTION - crc: 0x91ebb016 + crc: 0x1c45e6bf type_id: 0x1c470062 full_name: "drm_atomic_helper_connector_destroy_state" } @@ -335420,7 +339390,7 @@ elf_symbol { name: "drm_atomic_helper_connector_duplicate_state" is_defined: true symbol_type: FUNCTION - crc: 0x129faa17 + crc: 0x9d895d4f type_id: 0x67ae13ae full_name: "drm_atomic_helper_connector_duplicate_state" } @@ -335429,7 +339399,7 @@ elf_symbol { name: "drm_atomic_helper_connector_reset" is_defined: true symbol_type: FUNCTION - crc: 0x0d1866f3 + crc: 0x4d04845f type_id: 0x1cf53808 full_name: "drm_atomic_helper_connector_reset" } @@ -335438,7 +339408,7 @@ elf_symbol { name: "drm_atomic_helper_crtc_destroy_state" is_defined: true symbol_type: FUNCTION - crc: 0x32b886f0 + crc: 0xa5b5b304 type_id: 0x1c25e791 full_name: "drm_atomic_helper_crtc_destroy_state" } @@ -335447,7 +339417,7 @@ elf_symbol { name: "drm_atomic_helper_crtc_duplicate_state" is_defined: true symbol_type: FUNCTION - crc: 0xf59adaf6 + crc: 0x500be66b type_id: 0xeb7d4b96 full_name: "drm_atomic_helper_crtc_duplicate_state" } @@ -335456,7 +339426,7 @@ elf_symbol { name: "drm_atomic_helper_crtc_reset" is_defined: true symbol_type: FUNCTION - crc: 0x98daf929 + crc: 0x6437915a type_id: 0x1cce8e13 full_name: "drm_atomic_helper_crtc_reset" } @@ -335465,7 +339435,7 @@ elf_symbol { name: "drm_atomic_helper_damage_iter_init" is_defined: true symbol_type: FUNCTION - crc: 0xa05f2238 + crc: 0xf5bd51b0 type_id: 0x1b28e71c full_name: "drm_atomic_helper_damage_iter_init" } @@ -335483,7 +339453,7 @@ elf_symbol { name: "drm_atomic_helper_damage_merged" is_defined: true symbol_type: FUNCTION - crc: 0xd905fe8a + crc: 0xbfbdb3f3 type_id: 0xf334abb2 full_name: "drm_atomic_helper_damage_merged" } @@ -335492,7 +339462,7 @@ elf_symbol { name: "drm_atomic_helper_dirtyfb" is_defined: true symbol_type: FUNCTION - crc: 0x19bc3d2a + crc: 0xebb9c10c type_id: 0x91a92948 full_name: "drm_atomic_helper_dirtyfb" } @@ -335501,7 +339471,7 @@ elf_symbol { name: "drm_atomic_helper_disable_plane" is_defined: true symbol_type: FUNCTION - crc: 0xd89fb316 + crc: 0x3279c6be type_id: 0x9b45fcbe full_name: "drm_atomic_helper_disable_plane" } @@ -335510,7 +339480,7 @@ elf_symbol { name: "drm_atomic_helper_duplicate_state" is_defined: true symbol_type: FUNCTION - crc: 0x87749960 + crc: 0xe4896184 type_id: 0x4f3d8d0a full_name: "drm_atomic_helper_duplicate_state" } @@ -335519,7 +339489,7 @@ elf_symbol { name: "drm_atomic_helper_fake_vblank" is_defined: true symbol_type: FUNCTION - crc: 0xa225f640 + crc: 0xa58b77cc type_id: 0x18d85efa full_name: "drm_atomic_helper_fake_vblank" } @@ -335528,7 +339498,7 @@ elf_symbol { name: "drm_atomic_helper_page_flip" is_defined: true symbol_type: FUNCTION - crc: 0x277196c7 + crc: 0x14264dc9 type_id: 0x9116124f full_name: "drm_atomic_helper_page_flip" } @@ -335537,7 +339507,7 @@ elf_symbol { name: "drm_atomic_helper_plane_destroy_state" is_defined: true symbol_type: FUNCTION - crc: 0xa2dfe678 + crc: 0xef7c0535 type_id: 0x16ebcbfa full_name: "drm_atomic_helper_plane_destroy_state" } @@ -335546,7 +339516,7 @@ elf_symbol { name: "drm_atomic_helper_plane_duplicate_state" is_defined: true symbol_type: FUNCTION - crc: 0xcede3f9d + crc: 0xee00c8f2 type_id: 0x87b3d0e4 full_name: "drm_atomic_helper_plane_duplicate_state" } @@ -335555,7 +339525,7 @@ elf_symbol { name: "drm_atomic_helper_plane_reset" is_defined: true symbol_type: FUNCTION - crc: 0xdf151980 + crc: 0x7d166e65 type_id: 0x1653799a full_name: "drm_atomic_helper_plane_reset" } @@ -335564,7 +339534,7 @@ elf_symbol { name: "drm_atomic_helper_prepare_planes" is_defined: true symbol_type: FUNCTION - crc: 0xf53a7869 + crc: 0x3e0dd4fd type_id: 0x93c5cc72 full_name: "drm_atomic_helper_prepare_planes" } @@ -335573,7 +339543,7 @@ elf_symbol { name: "drm_atomic_helper_set_config" is_defined: true symbol_type: FUNCTION - crc: 0x83997541 + crc: 0x6794e2f0 type_id: 0x9286b490 full_name: "drm_atomic_helper_set_config" } @@ -335582,7 +339552,7 @@ elf_symbol { name: "drm_atomic_helper_setup_commit" is_defined: true symbol_type: FUNCTION - crc: 0x5259ba8f + crc: 0x5752b357 type_id: 0x94751139 full_name: "drm_atomic_helper_setup_commit" } @@ -335591,7 +339561,7 @@ elf_symbol { name: "drm_atomic_helper_shutdown" is_defined: true symbol_type: FUNCTION - crc: 0x2fbaab0e + crc: 0xcd745e85 type_id: 0x1e597e38 full_name: "drm_atomic_helper_shutdown" } @@ -335600,7 +339570,7 @@ elf_symbol { name: "drm_atomic_helper_swap_state" is_defined: true symbol_type: FUNCTION - crc: 0x73362250 + crc: 0x8c3ed963 type_id: 0x94751139 full_name: "drm_atomic_helper_swap_state" } @@ -335609,7 +339579,7 @@ elf_symbol { name: "drm_atomic_helper_update_legacy_modeset_state" is_defined: true symbol_type: FUNCTION - crc: 0x9d660c15 + crc: 0xbfca502f type_id: 0x1edd7ece full_name: "drm_atomic_helper_update_legacy_modeset_state" } @@ -335618,7 +339588,7 @@ elf_symbol { name: "drm_atomic_helper_update_plane" is_defined: true symbol_type: FUNCTION - crc: 0x9091380f + crc: 0xf726b861 type_id: 0x9b8350bf full_name: "drm_atomic_helper_update_plane" } @@ -335627,7 +339597,7 @@ elf_symbol { name: "drm_atomic_helper_wait_for_dependencies" is_defined: true symbol_type: FUNCTION - crc: 0x9f8cf10e + crc: 0xd419eea9 type_id: 0x18d85efa full_name: "drm_atomic_helper_wait_for_dependencies" } @@ -335636,7 +339606,7 @@ elf_symbol { name: "drm_atomic_helper_wait_for_fences" is_defined: true symbol_type: FUNCTION - crc: 0xcfa84e72 + crc: 0xfe562a12 type_id: 0x93de93a5 full_name: "drm_atomic_helper_wait_for_fences" } @@ -335645,7 +339615,7 @@ elf_symbol { name: "drm_atomic_helper_wait_for_flip_done" is_defined: true symbol_type: FUNCTION - crc: 0xaaa570ce + crc: 0xa48d7bc4 type_id: 0x1edd7ece full_name: "drm_atomic_helper_wait_for_flip_done" } @@ -335654,7 +339624,7 @@ elf_symbol { name: "drm_atomic_helper_wait_for_vblanks" is_defined: true symbol_type: FUNCTION - crc: 0xbc9f0e97 + crc: 0xf23c671b type_id: 0x1edd7ece full_name: "drm_atomic_helper_wait_for_vblanks" } @@ -335663,7 +339633,7 @@ elf_symbol { name: "drm_atomic_nonblocking_commit" is_defined: true symbol_type: FUNCTION - crc: 0xca527fae + crc: 0xd8acd049 type_id: 0x95c0ec46 full_name: "drm_atomic_nonblocking_commit" } @@ -335672,7 +339642,7 @@ elf_symbol { name: "drm_atomic_normalize_zpos" is_defined: true symbol_type: FUNCTION - crc: 0xb7521771 + crc: 0x1e33ecb2 type_id: 0x93c5cc72 full_name: "drm_atomic_normalize_zpos" } @@ -335681,7 +339651,7 @@ elf_symbol { name: "drm_atomic_print_new_state" is_defined: true symbol_type: FUNCTION - crc: 0xff7ba46f + crc: 0x4b2c50b3 type_id: 0x1de9a6b4 full_name: "drm_atomic_print_new_state" } @@ -335690,7 +339660,7 @@ elf_symbol { name: "drm_atomic_private_obj_fini" is_defined: true symbol_type: FUNCTION - crc: 0x5d2c09b2 + crc: 0x553e4777 type_id: 0x18cc928e full_name: "drm_atomic_private_obj_fini" } @@ -335699,7 +339669,7 @@ elf_symbol { name: "drm_atomic_private_obj_init" is_defined: true symbol_type: FUNCTION - crc: 0x776a983e + crc: 0x1b034003 type_id: 0x1ede86f9 full_name: "drm_atomic_private_obj_init" } @@ -335708,7 +339678,7 @@ elf_symbol { name: "drm_atomic_set_crtc_for_connector" is_defined: true symbol_type: FUNCTION - crc: 0xfff437c9 + crc: 0xa3c29943 type_id: 0x9666087d full_name: "drm_atomic_set_crtc_for_connector" } @@ -335717,7 +339687,7 @@ elf_symbol { name: "drm_atomic_set_crtc_for_plane" is_defined: true symbol_type: FUNCTION - crc: 0x888ef4e4 + crc: 0xdde5a576 type_id: 0x96cea8dc full_name: "drm_atomic_set_crtc_for_plane" } @@ -335726,7 +339696,7 @@ elf_symbol { name: "drm_atomic_set_fb_for_plane" is_defined: true symbol_type: FUNCTION - crc: 0xc6ed2b72 + crc: 0x0c60e229 type_id: 0x1bd4554d full_name: "drm_atomic_set_fb_for_plane" } @@ -335735,7 +339705,7 @@ elf_symbol { name: "drm_atomic_set_mode_for_crtc" is_defined: true symbol_type: FUNCTION - crc: 0x69916eb0 + crc: 0xc848cacb type_id: 0x93e044d4 full_name: "drm_atomic_set_mode_for_crtc" } @@ -335744,7 +339714,7 @@ elf_symbol { name: "drm_atomic_set_mode_prop_for_crtc" is_defined: true symbol_type: FUNCTION - crc: 0x2b96d507 + crc: 0x25b63b89 type_id: 0x93e681f1 full_name: "drm_atomic_set_mode_prop_for_crtc" } @@ -335753,7 +339723,7 @@ elf_symbol { name: "drm_atomic_state_alloc" is_defined: true symbol_type: FUNCTION - crc: 0xa2058ab7 + crc: 0x75b3a332 type_id: 0x4f33ba92 full_name: "drm_atomic_state_alloc" } @@ -335762,7 +339732,7 @@ elf_symbol { name: "drm_atomic_state_clear" is_defined: true symbol_type: FUNCTION - crc: 0xc729f77d + crc: 0xce4e3dc3 type_id: 0x18d85efa full_name: "drm_atomic_state_clear" } @@ -335771,7 +339741,7 @@ elf_symbol { name: "drm_atomic_state_default_clear" is_defined: true symbol_type: FUNCTION - crc: 0xb03816ef + crc: 0xd89f39c2 type_id: 0x18d85efa full_name: "drm_atomic_state_default_clear" } @@ -335780,7 +339750,7 @@ elf_symbol { name: "drm_atomic_state_default_release" is_defined: true symbol_type: FUNCTION - crc: 0x9d099729 + crc: 0xebf1723d type_id: 0x18d85efa full_name: "drm_atomic_state_default_release" } @@ -335789,7 +339759,7 @@ elf_symbol { name: "drm_atomic_state_init" is_defined: true symbol_type: FUNCTION - crc: 0x071012c7 + crc: 0xd45224e2 type_id: 0x93c5cc72 full_name: "drm_atomic_state_init" } @@ -335798,7 +339768,7 @@ elf_symbol { name: "drm_bridge_add" is_defined: true symbol_type: FUNCTION - crc: 0xed824201 + crc: 0xf1e19ccb type_id: 0x19026802 full_name: "drm_bridge_add" } @@ -335807,7 +339777,7 @@ elf_symbol { name: "drm_bridge_attach" is_defined: true symbol_type: FUNCTION - crc: 0x6a5393e5 + crc: 0xb15bcb76 type_id: 0x96ac3609 full_name: "drm_bridge_attach" } @@ -335816,7 +339786,7 @@ elf_symbol { name: "drm_bridge_chain_disable" is_defined: true symbol_type: FUNCTION - crc: 0x09b67a89 + crc: 0xcb161f47 type_id: 0x19026802 full_name: "drm_bridge_chain_disable" } @@ -335825,7 +339795,7 @@ elf_symbol { name: "drm_bridge_chain_enable" is_defined: true symbol_type: FUNCTION - crc: 0x9be9f929 + crc: 0x461b248b type_id: 0x19026802 full_name: "drm_bridge_chain_enable" } @@ -335834,7 +339804,7 @@ elf_symbol { name: "drm_bridge_chain_mode_set" is_defined: true symbol_type: FUNCTION - crc: 0x91e8afa7 + crc: 0x8d9e74a0 type_id: 0x19d93429 full_name: "drm_bridge_chain_mode_set" } @@ -335843,7 +339813,7 @@ elf_symbol { name: "drm_bridge_chain_post_disable" is_defined: true symbol_type: FUNCTION - crc: 0xdba055de + crc: 0xd0bcb561 type_id: 0x19026802 full_name: "drm_bridge_chain_post_disable" } @@ -335852,7 +339822,7 @@ elf_symbol { name: "drm_bridge_chain_pre_enable" is_defined: true symbol_type: FUNCTION - crc: 0x41c52447 + crc: 0x0a7e9ae0 type_id: 0x19026802 full_name: "drm_bridge_chain_pre_enable" } @@ -335861,7 +339831,7 @@ elf_symbol { name: "drm_bridge_connector_enable_hpd" is_defined: true symbol_type: FUNCTION - crc: 0x82727e65 + crc: 0x04c764a7 type_id: 0x1cf53808 full_name: "drm_bridge_connector_enable_hpd" } @@ -335870,7 +339840,7 @@ elf_symbol { name: "drm_bridge_connector_init" is_defined: true symbol_type: FUNCTION - crc: 0xca378e10 + crc: 0xb8f02cb1 type_id: 0xadb56de9 full_name: "drm_bridge_connector_init" } @@ -335879,7 +339849,7 @@ elf_symbol { name: "drm_bridge_detect" is_defined: true symbol_type: FUNCTION - crc: 0x3d31b41e + crc: 0x7b4d227c type_id: 0xfcf090be full_name: "drm_bridge_detect" } @@ -335888,7 +339858,7 @@ elf_symbol { name: "drm_bridge_hpd_notify" is_defined: true symbol_type: FUNCTION - crc: 0xfcfc1e5d + crc: 0x0e0ad727 type_id: 0x182b2835 full_name: "drm_bridge_hpd_notify" } @@ -335897,7 +339867,7 @@ elf_symbol { name: "drm_bridge_remove" is_defined: true symbol_type: FUNCTION - crc: 0x352eab01 + crc: 0x50234663 type_id: 0x19026802 full_name: "drm_bridge_remove" } @@ -335906,7 +339876,7 @@ elf_symbol { name: "drm_calc_timestamping_constants" is_defined: true symbol_type: FUNCTION - crc: 0x8279f42e + crc: 0x648f5353 type_id: 0x1c18b1c5 full_name: "drm_calc_timestamping_constants" } @@ -335915,7 +339885,7 @@ elf_symbol { name: "drm_client_init" is_defined: true symbol_type: FUNCTION - crc: 0x82c6cd87 + crc: 0xbc17245a type_id: 0x937bb0c9 full_name: "drm_client_init" } @@ -335924,7 +339894,7 @@ elf_symbol { name: "drm_client_modeset_commit_locked" is_defined: true symbol_type: FUNCTION - crc: 0x53f4fb5a + crc: 0x4e81726c type_id: 0x9ed1826a full_name: "drm_client_modeset_commit_locked" } @@ -335933,7 +339903,7 @@ elf_symbol { name: "drm_client_register" is_defined: true symbol_type: FUNCTION - crc: 0x17cca3f4 + crc: 0x2cf3f75c type_id: 0x13c930d6 full_name: "drm_client_register" } @@ -335942,7 +339912,7 @@ elf_symbol { name: "drm_compat_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0x48d7fae0 + crc: 0x3fc546c0 type_id: 0xa00069e0 full_name: "drm_compat_ioctl" } @@ -335951,7 +339921,7 @@ elf_symbol { name: "drm_connector_attach_edid_property" is_defined: true symbol_type: FUNCTION - crc: 0xeba881fb + crc: 0x58aedd11 type_id: 0x1cf53808 full_name: "drm_connector_attach_edid_property" } @@ -335960,7 +339930,7 @@ elf_symbol { name: "drm_connector_attach_encoder" is_defined: true symbol_type: FUNCTION - crc: 0x7912b1eb + crc: 0x77a697b9 type_id: 0x91565a49 full_name: "drm_connector_attach_encoder" } @@ -335969,7 +339939,7 @@ elf_symbol { name: "drm_connector_cleanup" is_defined: true symbol_type: FUNCTION - crc: 0x3ec52614 + crc: 0xff5135c8 type_id: 0x1cf53808 full_name: "drm_connector_cleanup" } @@ -335978,7 +339948,7 @@ elf_symbol { name: "drm_connector_init" is_defined: true symbol_type: FUNCTION - crc: 0x572ea0ce + crc: 0x706b6ce6 type_id: 0x9388ac32 full_name: "drm_connector_init" } @@ -335987,7 +339957,7 @@ elf_symbol { name: "drm_connector_list_iter_begin" is_defined: true symbol_type: FUNCTION - crc: 0xb34d7b03 + crc: 0x573c78e9 type_id: 0x1eca2cda full_name: "drm_connector_list_iter_begin" } @@ -335996,7 +339966,7 @@ elf_symbol { name: "drm_connector_list_iter_end" is_defined: true symbol_type: FUNCTION - crc: 0x2a658c00 + crc: 0x6fe4e052 type_id: 0x19ad7fb1 full_name: "drm_connector_list_iter_end" } @@ -336005,7 +339975,7 @@ elf_symbol { name: "drm_connector_list_iter_next" is_defined: true symbol_type: FUNCTION - crc: 0x8d7b9907 + crc: 0x3ac405e7 type_id: 0xaafabc9d full_name: "drm_connector_list_iter_next" } @@ -336014,7 +339984,7 @@ elf_symbol { name: "drm_connector_list_update" is_defined: true symbol_type: FUNCTION - crc: 0x0c98169d + crc: 0xc80b2f81 type_id: 0x1cf53808 full_name: "drm_connector_list_update" } @@ -336023,7 +339993,7 @@ elf_symbol { name: "drm_connector_register" is_defined: true symbol_type: FUNCTION - crc: 0xa997c3bb + crc: 0x18a60d92 type_id: 0x91ed8ab4 full_name: "drm_connector_register" } @@ -336032,7 +340002,7 @@ elf_symbol { name: "drm_connector_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x75dbf08a + crc: 0x38813923 type_id: 0x1cf53808 full_name: "drm_connector_unregister" } @@ -336041,7 +340011,7 @@ elf_symbol { name: "drm_connector_update_edid_property" is_defined: true symbol_type: FUNCTION - crc: 0x0b63139f + crc: 0x029d3373 type_id: 0x912a7219 full_name: "drm_connector_update_edid_property" } @@ -336050,7 +340020,7 @@ elf_symbol { name: "drm_crtc_accurate_vblank_count" is_defined: true symbol_type: FUNCTION - crc: 0x2fa224db + crc: 0x1d5ca3fc type_id: 0x5b8d0ccb full_name: "drm_crtc_accurate_vblank_count" } @@ -336059,7 +340029,7 @@ elf_symbol { name: "drm_crtc_add_crc_entry" is_defined: true symbol_type: FUNCTION - crc: 0xba7f03ea + crc: 0x8a200d41 type_id: 0x9064f8c2 full_name: "drm_crtc_add_crc_entry" } @@ -336068,7 +340038,7 @@ elf_symbol { name: "drm_crtc_arm_vblank_event" is_defined: true symbol_type: FUNCTION - crc: 0xb900d04b + crc: 0xbe99ae3e type_id: 0x1cb94c1c full_name: "drm_crtc_arm_vblank_event" } @@ -336077,7 +340047,7 @@ elf_symbol { name: "drm_crtc_cleanup" is_defined: true symbol_type: FUNCTION - crc: 0x3705641f + crc: 0x4835a59a type_id: 0x1cce8e13 full_name: "drm_crtc_cleanup" } @@ -336086,7 +340056,7 @@ elf_symbol { name: "drm_crtc_commit_wait" is_defined: true symbol_type: FUNCTION - crc: 0xd540747d + crc: 0x88b64c49 type_id: 0x922e978f full_name: "drm_crtc_commit_wait" } @@ -336095,7 +340065,7 @@ elf_symbol { name: "drm_crtc_enable_color_mgmt" is_defined: true symbol_type: FUNCTION - crc: 0x9e5e9416 + crc: 0x3e6c1942 type_id: 0x1e67551a full_name: "drm_crtc_enable_color_mgmt" } @@ -336104,7 +340074,7 @@ elf_symbol { name: "drm_crtc_handle_vblank" is_defined: true symbol_type: FUNCTION - crc: 0xbca2b324 + crc: 0x1434c171 type_id: 0xf2f28484 full_name: "drm_crtc_handle_vblank" } @@ -336113,7 +340083,7 @@ elf_symbol { name: "drm_crtc_init_with_planes" is_defined: true symbol_type: FUNCTION - crc: 0xced28292 + crc: 0xfc397c87 type_id: 0x93820b25 full_name: "drm_crtc_init_with_planes" } @@ -336122,7 +340092,7 @@ elf_symbol { name: "drm_crtc_send_vblank_event" is_defined: true symbol_type: FUNCTION - crc: 0x2be0786b + crc: 0x8cbf15f2 type_id: 0x1cb94c1c full_name: "drm_crtc_send_vblank_event" } @@ -336131,7 +340101,7 @@ elf_symbol { name: "drm_crtc_set_max_vblank_count" is_defined: true symbol_type: FUNCTION - crc: 0x684f15de + crc: 0xaacf78fb type_id: 0x1feaaebf full_name: "drm_crtc_set_max_vblank_count" } @@ -336140,7 +340110,7 @@ elf_symbol { name: "drm_crtc_vblank_count_and_time" is_defined: true symbol_type: FUNCTION - crc: 0x5421cc34 + crc: 0x7014d5a3 type_id: 0x5bb68829 full_name: "drm_crtc_vblank_count_and_time" } @@ -336149,7 +340119,7 @@ elf_symbol { name: "drm_crtc_vblank_get" is_defined: true symbol_type: FUNCTION - crc: 0x0f9a8d0b + crc: 0x4a70c089 type_id: 0x91d63caf full_name: "drm_crtc_vblank_get" } @@ -336158,7 +340128,7 @@ elf_symbol { name: "drm_crtc_vblank_helper_get_vblank_timestamp" is_defined: true symbol_type: FUNCTION - crc: 0xa53b1e4a + crc: 0xae2dee6a type_id: 0xf2bde902 full_name: "drm_crtc_vblank_helper_get_vblank_timestamp" } @@ -336167,7 +340137,7 @@ elf_symbol { name: "drm_crtc_vblank_off" is_defined: true symbol_type: FUNCTION - crc: 0x5bd0e02e + crc: 0xde4acc7f type_id: 0x1cce8e13 full_name: "drm_crtc_vblank_off" } @@ -336176,7 +340146,7 @@ elf_symbol { name: "drm_crtc_vblank_on" is_defined: true symbol_type: FUNCTION - crc: 0xf478f4c9 + crc: 0x7c4567d6 type_id: 0x1cce8e13 full_name: "drm_crtc_vblank_on" } @@ -336185,7 +340155,7 @@ elf_symbol { name: "drm_crtc_vblank_put" is_defined: true symbol_type: FUNCTION - crc: 0x65cc2478 + crc: 0xacf94198 type_id: 0x1cce8e13 full_name: "drm_crtc_vblank_put" } @@ -336194,7 +340164,7 @@ elf_symbol { name: "drm_crtc_vblank_reset" is_defined: true symbol_type: FUNCTION - crc: 0x6b223d04 + crc: 0x99680f90 type_id: 0x1cce8e13 full_name: "drm_crtc_vblank_reset" } @@ -336203,7 +340173,7 @@ elf_symbol { name: "drm_crtc_wait_one_vblank" is_defined: true symbol_type: FUNCTION - crc: 0xc819c96a + crc: 0x1e9c15f2 type_id: 0x1cce8e13 full_name: "drm_crtc_wait_one_vblank" } @@ -336212,7 +340182,7 @@ elf_symbol { name: "drm_cvt_mode" is_defined: true symbol_type: FUNCTION - crc: 0x69422d3c + crc: 0xb2279981 type_id: 0xc6a0fca0 full_name: "drm_cvt_mode" } @@ -336221,7 +340191,7 @@ elf_symbol { name: "drm_debugfs_create_files" is_defined: true symbol_type: FUNCTION - crc: 0x963e0de0 + crc: 0x29d68108 type_id: 0x1f0d7714 full_name: "drm_debugfs_create_files" } @@ -336248,7 +340218,7 @@ elf_symbol { name: "drm_dev_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x2f4a4259 + crc: 0x94983e38 type_id: 0xdf6c95f8 full_name: "drm_dev_alloc" } @@ -336257,7 +340227,7 @@ elf_symbol { name: "drm_dev_enter" is_defined: true symbol_type: FUNCTION - crc: 0xe0b47564 + crc: 0xeead4e6c type_id: 0xf028149a full_name: "drm_dev_enter" } @@ -336275,7 +340245,7 @@ elf_symbol { name: "drm_dev_get" is_defined: true symbol_type: FUNCTION - crc: 0x3e2ab001 + crc: 0xd6704a25 type_id: 0x1e597e38 full_name: "drm_dev_get" } @@ -336284,7 +340254,7 @@ elf_symbol { name: "drm_dev_printk" is_defined: true symbol_type: FUNCTION - crc: 0xcc87b9e1 + crc: 0x561d4fc0 type_id: 0x1f849f7d full_name: "drm_dev_printk" } @@ -336293,7 +340263,7 @@ elf_symbol { name: "drm_dev_put" is_defined: true symbol_type: FUNCTION - crc: 0x3bd10fb5 + crc: 0x2d98ede2 type_id: 0x1e597e38 full_name: "drm_dev_put" } @@ -336302,7 +340272,7 @@ elf_symbol { name: "drm_dev_register" is_defined: true symbol_type: FUNCTION - crc: 0x01328393 + crc: 0x232ec06b type_id: 0x938c1916 full_name: "drm_dev_register" } @@ -336311,7 +340281,7 @@ elf_symbol { name: "drm_dev_unplug" is_defined: true symbol_type: FUNCTION - crc: 0x13e1bcb5 + crc: 0x1f9373da type_id: 0x1e597e38 full_name: "drm_dev_unplug" } @@ -336320,7 +340290,7 @@ elf_symbol { name: "drm_dev_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x49708b80 + crc: 0x8b7b5d24 type_id: 0x1e597e38 full_name: "drm_dev_unregister" } @@ -336329,7 +340299,7 @@ elf_symbol { name: "drm_display_mode_from_cea_vic" is_defined: true symbol_type: FUNCTION - crc: 0x1e025a13 + crc: 0x2cc16750 type_id: 0xc7814062 full_name: "drm_display_mode_from_cea_vic" } @@ -336347,7 +340317,7 @@ elf_symbol { name: "drm_do_get_edid" is_defined: true symbol_type: FUNCTION - crc: 0x142c552a + crc: 0x1eff8142 type_id: 0xc2503be7 full_name: "drm_do_get_edid" } @@ -336392,7 +340362,7 @@ elf_symbol { name: "drm_encoder_cleanup" is_defined: true symbol_type: FUNCTION - crc: 0x6f92d133 + crc: 0xe912a5b9 type_id: 0x1b255e4a full_name: "drm_encoder_cleanup" } @@ -336401,7 +340371,7 @@ elf_symbol { name: "drm_encoder_init" is_defined: true symbol_type: FUNCTION - crc: 0x20094c84 + crc: 0x798abe87 type_id: 0x93f7ef8a full_name: "drm_encoder_init" } @@ -336410,7 +340380,7 @@ elf_symbol { name: "drm_event_cancel_free" is_defined: true symbol_type: FUNCTION - crc: 0x3896b58b + crc: 0x5f8614e0 type_id: 0x1e4577e0 full_name: "drm_event_cancel_free" } @@ -336419,7 +340389,7 @@ elf_symbol { name: "drm_event_reserve_init" is_defined: true symbol_type: FUNCTION - crc: 0x5ba2b935 + crc: 0xd2f6e504 type_id: 0x930bf787 full_name: "drm_event_reserve_init" } @@ -336428,7 +340398,7 @@ elf_symbol { name: "drm_event_reserve_init_locked" is_defined: true symbol_type: FUNCTION - crc: 0xa5b171ad + crc: 0x15250b9c type_id: 0x930bf787 full_name: "drm_event_reserve_init_locked" } @@ -336509,7 +340479,7 @@ elf_symbol { name: "drm_framebuffer_init" is_defined: true symbol_type: FUNCTION - crc: 0x903c850f + crc: 0x9033b9ae type_id: 0x93898074 full_name: "drm_framebuffer_init" } @@ -336518,7 +340488,7 @@ elf_symbol { name: "drm_framebuffer_lookup" is_defined: true symbol_type: FUNCTION - crc: 0xe3b2cdcd + crc: 0x4b1ab3af type_id: 0xa807a3b8 full_name: "drm_framebuffer_lookup" } @@ -336527,7 +340497,7 @@ elf_symbol { name: "drm_framebuffer_remove" is_defined: true symbol_type: FUNCTION - crc: 0xed0e6a4a + crc: 0x628195d0 type_id: 0x1cea7cc2 full_name: "drm_framebuffer_remove" } @@ -336536,7 +340506,7 @@ elf_symbol { name: "drm_framebuffer_unregister_private" is_defined: true symbol_type: FUNCTION - crc: 0xf39f5da0 + crc: 0xf2441742 type_id: 0x1cea7cc2 full_name: "drm_framebuffer_unregister_private" } @@ -336545,7 +340515,7 @@ elf_symbol { name: "drm_gem_cleanup_shadow_fb" is_defined: true symbol_type: FUNCTION - crc: 0x80f00a67 + crc: 0xdee5cbce type_id: 0x16ebcbfa full_name: "drm_gem_cleanup_shadow_fb" } @@ -336554,7 +340524,7 @@ elf_symbol { name: "drm_gem_create_mmap_offset" is_defined: true symbol_type: FUNCTION - crc: 0xf3536f15 + crc: 0xdfc70563 type_id: 0x9398dfdf full_name: "drm_gem_create_mmap_offset" } @@ -336563,7 +340533,7 @@ elf_symbol { name: "drm_gem_dmabuf_mmap" is_defined: true symbol_type: FUNCTION - crc: 0xb5ddd4ef + crc: 0xb977ccf5 type_id: 0x9d9aa0c3 full_name: "drm_gem_dmabuf_mmap" } @@ -336572,7 +340542,7 @@ elf_symbol { name: "drm_gem_dmabuf_release" is_defined: true symbol_type: FUNCTION - crc: 0x23108d69 + crc: 0x8a57498e type_id: 0x10aa5f7a full_name: "drm_gem_dmabuf_release" } @@ -336581,7 +340551,7 @@ elf_symbol { name: "drm_gem_dmabuf_vmap" is_defined: true symbol_type: FUNCTION - crc: 0xf456dc3c + crc: 0x324082df type_id: 0x9d4e84a4 full_name: "drm_gem_dmabuf_vmap" } @@ -336590,7 +340560,7 @@ elf_symbol { name: "drm_gem_dmabuf_vunmap" is_defined: true symbol_type: FUNCTION - crc: 0x7f2f89f8 + crc: 0xf5adac85 type_id: 0x10563618 full_name: "drm_gem_dmabuf_vunmap" } @@ -336599,7 +340569,7 @@ elf_symbol { name: "drm_gem_fb_create" is_defined: true symbol_type: FUNCTION - crc: 0x20b653b2 + crc: 0x728c0236 type_id: 0xa80d1860 full_name: "drm_gem_fb_create" } @@ -336608,7 +340578,7 @@ elf_symbol { name: "drm_gem_fb_create_handle" is_defined: true symbol_type: FUNCTION - crc: 0x33850fbc + crc: 0x440f442d type_id: 0x91bfa9d8 full_name: "drm_gem_fb_create_handle" } @@ -336617,7 +340587,7 @@ elf_symbol { name: "drm_gem_fb_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x68fb2d45 + crc: 0x00cbad07 type_id: 0x1cea7cc2 full_name: "drm_gem_fb_destroy" } @@ -336626,7 +340596,7 @@ elf_symbol { name: "drm_gem_fb_get_obj" is_defined: true symbol_type: FUNCTION - crc: 0xdbb2be45 + crc: 0x27a6980a type_id: 0x0bfc976c full_name: "drm_gem_fb_get_obj" } @@ -336635,7 +340605,7 @@ elf_symbol { name: "drm_gem_fb_vmap" is_defined: true symbol_type: FUNCTION - crc: 0x92dbd7b7 + crc: 0x1efef681 type_id: 0x9101618a full_name: "drm_gem_fb_vmap" } @@ -336644,7 +340614,7 @@ elf_symbol { name: "drm_gem_fb_vunmap" is_defined: true symbol_type: FUNCTION - crc: 0x56a24ae0 + crc: 0x66872375 type_id: 0x1c1615a0 full_name: "drm_gem_fb_vunmap" } @@ -336653,7 +340623,7 @@ elf_symbol { name: "drm_gem_free_mmap_offset" is_defined: true symbol_type: FUNCTION - crc: 0xb4f4627d + crc: 0xb1b8beac type_id: 0x1e806d63 full_name: "drm_gem_free_mmap_offset" } @@ -336662,7 +340632,7 @@ elf_symbol { name: "drm_gem_get_pages" is_defined: true symbol_type: FUNCTION - crc: 0x4ef9bf98 + crc: 0xc00db7ac type_id: 0xe2823805 full_name: "drm_gem_get_pages" } @@ -336671,7 +340641,7 @@ elf_symbol { name: "drm_gem_handle_create" is_defined: true symbol_type: FUNCTION - crc: 0x98f5c1a3 + crc: 0xc56663a4 type_id: 0x99d6eb87 full_name: "drm_gem_handle_create" } @@ -336680,7 +340650,7 @@ elf_symbol { name: "drm_gem_lock_reservations" is_defined: true symbol_type: FUNCTION - crc: 0x55aba55c + crc: 0x7511c1a9 type_id: 0x9d356d81 full_name: "drm_gem_lock_reservations" } @@ -336698,7 +340668,7 @@ elf_symbol { name: "drm_gem_lru_move_tail" is_defined: true symbol_type: FUNCTION - crc: 0xb28a68cc + crc: 0x7f2a8695 type_id: 0x1dfacbed full_name: "drm_gem_lru_move_tail" } @@ -336707,7 +340677,7 @@ elf_symbol { name: "drm_gem_lru_scan" is_defined: true symbol_type: FUNCTION - crc: 0x9acfaf20 + crc: 0xfc41098d type_id: 0x3d3888de full_name: "drm_gem_lru_scan" } @@ -336716,7 +340686,7 @@ elf_symbol { name: "drm_gem_map_attach" is_defined: true symbol_type: FUNCTION - crc: 0x8583ad81 + crc: 0xc928acd5 type_id: 0x9dc78915 full_name: "drm_gem_map_attach" } @@ -336725,7 +340695,7 @@ elf_symbol { name: "drm_gem_map_detach" is_defined: true symbol_type: FUNCTION - crc: 0x3f4c5701 + crc: 0xd6e42921 type_id: 0x10df3ba9 full_name: "drm_gem_map_detach" } @@ -336734,7 +340704,7 @@ elf_symbol { name: "drm_gem_map_dma_buf" is_defined: true symbol_type: FUNCTION - crc: 0xee42c57e + crc: 0x3658bb33 type_id: 0x451c3ee7 full_name: "drm_gem_map_dma_buf" } @@ -336743,7 +340713,7 @@ elf_symbol { name: "drm_gem_mmap" is_defined: true symbol_type: FUNCTION - crc: 0x210d7252 + crc: 0x82738086 type_id: 0x9b923492 full_name: "drm_gem_mmap" } @@ -336752,7 +340722,7 @@ elf_symbol { name: "drm_gem_mmap_obj" is_defined: true symbol_type: FUNCTION - crc: 0x06f58669 + crc: 0x4a435e05 type_id: 0x93578e9d full_name: "drm_gem_mmap_obj" } @@ -336770,7 +340740,7 @@ elf_symbol { name: "drm_gem_object_init" is_defined: true symbol_type: FUNCTION - crc: 0xa17ad5ea + crc: 0xb9b10aea type_id: 0x939d4211 full_name: "drm_gem_object_init" } @@ -336779,7 +340749,7 @@ elf_symbol { name: "drm_gem_object_lookup" is_defined: true symbol_type: FUNCTION - crc: 0x81e45173 + crc: 0xf73b5f8a type_id: 0x010530e2 full_name: "drm_gem_object_lookup" } @@ -336788,7 +340758,7 @@ elf_symbol { name: "drm_gem_object_release" is_defined: true symbol_type: FUNCTION - crc: 0xe4d3aac2 + crc: 0x71c01153 type_id: 0x1e806d63 full_name: "drm_gem_object_release" } @@ -336797,7 +340767,7 @@ elf_symbol { name: "drm_gem_plane_helper_prepare_fb" is_defined: true symbol_type: FUNCTION - crc: 0x6f2d47eb + crc: 0xd6b86d8d type_id: 0x9bf37946 full_name: "drm_gem_plane_helper_prepare_fb" } @@ -336806,7 +340776,7 @@ elf_symbol { name: "drm_gem_prepare_shadow_fb" is_defined: true symbol_type: FUNCTION - crc: 0xf06cc10f + crc: 0x28da2ccb type_id: 0x9bf37946 full_name: "drm_gem_prepare_shadow_fb" } @@ -336815,7 +340785,7 @@ elf_symbol { name: "drm_gem_prime_fd_to_handle" is_defined: true symbol_type: FUNCTION - crc: 0xc9fc831a + crc: 0xc2dc5bd5 type_id: 0x9313a933 full_name: "drm_gem_prime_fd_to_handle" } @@ -336824,7 +340794,7 @@ elf_symbol { name: "drm_gem_prime_handle_to_fd" is_defined: true symbol_type: FUNCTION - crc: 0x48661b24 + crc: 0x95d75183 type_id: 0x930d2c35 full_name: "drm_gem_prime_handle_to_fd" } @@ -336833,7 +340803,7 @@ elf_symbol { name: "drm_gem_prime_import" is_defined: true symbol_type: FUNCTION - crc: 0xfbad123f + crc: 0xed4b6d70 type_id: 0x085aa0e0 full_name: "drm_gem_prime_import" } @@ -336842,7 +340812,7 @@ elf_symbol { name: "drm_gem_prime_import_dev" is_defined: true symbol_type: FUNCTION - crc: 0x75c08254 + crc: 0x498451c5 type_id: 0x085a36de full_name: "drm_gem_prime_import_dev" } @@ -336851,7 +340821,7 @@ elf_symbol { name: "drm_gem_prime_mmap" is_defined: true symbol_type: FUNCTION - crc: 0x8c3a5bc9 + crc: 0x2614b604 type_id: 0x93b092da full_name: "drm_gem_prime_mmap" } @@ -336860,7 +340830,7 @@ elf_symbol { name: "drm_gem_private_object_init" is_defined: true symbol_type: FUNCTION - crc: 0x7fdb4be0 + crc: 0x772be7bc type_id: 0x1e85f0ad full_name: "drm_gem_private_object_init" } @@ -336869,7 +340839,7 @@ elf_symbol { name: "drm_gem_put_pages" is_defined: true symbol_type: FUNCTION - crc: 0x6fe1cdf0 + crc: 0xd2515f60 type_id: 0x1eb644f1 full_name: "drm_gem_put_pages" } @@ -336878,7 +340848,7 @@ elf_symbol { name: "drm_gem_shmem_create" is_defined: true symbol_type: FUNCTION - crc: 0x41f31b29 + crc: 0x77e66e14 type_id: 0x3ab949d4 full_name: "drm_gem_shmem_create" } @@ -336887,7 +340857,7 @@ elf_symbol { name: "drm_gem_shmem_dumb_create" is_defined: true symbol_type: FUNCTION - crc: 0x998c3f55 + crc: 0x3de4dba8 type_id: 0x99de09ef full_name: "drm_gem_shmem_dumb_create" } @@ -336896,7 +340866,7 @@ elf_symbol { name: "drm_gem_shmem_free" is_defined: true symbol_type: FUNCTION - crc: 0xf0fa476c + crc: 0x1b0dec4f type_id: 0x1793895b full_name: "drm_gem_shmem_free" } @@ -336905,7 +340875,7 @@ elf_symbol { name: "drm_gem_shmem_get_pages_sgt" is_defined: true symbol_type: FUNCTION - crc: 0xf4035d75 + crc: 0xb13c5c6f type_id: 0x4677b893 full_name: "drm_gem_shmem_get_pages_sgt" } @@ -336914,7 +340884,7 @@ elf_symbol { name: "drm_gem_shmem_get_sg_table" is_defined: true symbol_type: FUNCTION - crc: 0x9d333a51 + crc: 0x9ba99c2d type_id: 0x4677b893 full_name: "drm_gem_shmem_get_sg_table" } @@ -336923,7 +340893,7 @@ elf_symbol { name: "drm_gem_shmem_mmap" is_defined: true symbol_type: FUNCTION - crc: 0x596711ec + crc: 0x5635d3c5 type_id: 0x9aa376e2 full_name: "drm_gem_shmem_mmap" } @@ -336932,7 +340902,7 @@ elf_symbol { name: "drm_gem_shmem_pin" is_defined: true symbol_type: FUNCTION - crc: 0x262f11ac + crc: 0xf9ab1ce8 type_id: 0x9a8b3be7 full_name: "drm_gem_shmem_pin" } @@ -336941,7 +340911,7 @@ elf_symbol { name: "drm_gem_shmem_prime_import_sg_table" is_defined: true symbol_type: FUNCTION - crc: 0x1e49ce75 + crc: 0xd79abf07 type_id: 0x082ccdd1 full_name: "drm_gem_shmem_prime_import_sg_table" } @@ -336950,7 +340920,7 @@ elf_symbol { name: "drm_gem_shmem_print_info" is_defined: true symbol_type: FUNCTION - crc: 0x227c82b5 + crc: 0xb5a4dd37 type_id: 0x1e2a3205 full_name: "drm_gem_shmem_print_info" } @@ -336959,7 +340929,7 @@ elf_symbol { name: "drm_gem_shmem_unpin" is_defined: true symbol_type: FUNCTION - crc: 0xb3b386cb + crc: 0x66e38b43 type_id: 0x1793895b full_name: "drm_gem_shmem_unpin" } @@ -336968,7 +340938,7 @@ elf_symbol { name: "drm_gem_shmem_vm_ops" is_defined: true symbol_type: OBJECT - crc: 0xf2d3150d + crc: 0x004e8389 type_id: 0xf5901b02 full_name: "drm_gem_shmem_vm_ops" } @@ -336977,7 +340947,7 @@ elf_symbol { name: "drm_gem_shmem_vmap" is_defined: true symbol_type: FUNCTION - crc: 0x673493d5 + crc: 0x4d659e88 type_id: 0x9a775285 full_name: "drm_gem_shmem_vmap" } @@ -336986,7 +340956,7 @@ elf_symbol { name: "drm_gem_shmem_vunmap" is_defined: true symbol_type: FUNCTION - crc: 0x14edd2cc + crc: 0xbc5d2180 type_id: 0x176fe039 full_name: "drm_gem_shmem_vunmap" } @@ -336995,7 +340965,7 @@ elf_symbol { name: "drm_gem_unlock_reservations" is_defined: true symbol_type: FUNCTION - crc: 0x50688873 + crc: 0xb9e3044a type_id: 0x102ddf3d full_name: "drm_gem_unlock_reservations" } @@ -337004,7 +340974,7 @@ elf_symbol { name: "drm_gem_unmap_dma_buf" is_defined: true symbol_type: FUNCTION - crc: 0x6b6f656c + crc: 0x5338438e type_id: 0x17ffed59 full_name: "drm_gem_unmap_dma_buf" } @@ -337013,7 +340983,7 @@ elf_symbol { name: "drm_gem_vm_close" is_defined: true symbol_type: FUNCTION - crc: 0xd091420c + crc: 0xec618009 type_id: 0x121c81c2 full_name: "drm_gem_vm_close" } @@ -337022,7 +340992,7 @@ elf_symbol { name: "drm_gem_vm_open" is_defined: true symbol_type: FUNCTION - crc: 0xb113f8fa + crc: 0xd96b54d2 type_id: 0x121c81c2 full_name: "drm_gem_vm_open" } @@ -337035,12 +341005,21 @@ elf_symbol { type_id: 0x80d014d1 full_name: "drm_get_connector_status_name" } +elf_symbol { + id: 0xe52ce78e + name: "drm_get_connector_type_name" + is_defined: true + symbol_type: FUNCTION + crc: 0xf406e46a + type_id: 0x83254e2c + full_name: "drm_get_connector_type_name" +} elf_symbol { id: 0xc64f37ff name: "drm_get_edid" is_defined: true symbol_type: FUNCTION - crc: 0xe9079560 + crc: 0x19759a37 type_id: 0xc21fedbe full_name: "drm_get_edid" } @@ -337058,7 +341037,7 @@ elf_symbol { name: "drm_handle_vblank" is_defined: true symbol_type: FUNCTION - crc: 0xe4f3132d + crc: 0xfa1601d0 type_id: 0xf1736137 full_name: "drm_handle_vblank" } @@ -337067,7 +341046,7 @@ elf_symbol { name: "drm_hdmi_avi_infoframe_from_display_mode" is_defined: true symbol_type: FUNCTION - crc: 0xf9f16133 + crc: 0x750133a5 type_id: 0x99c0ccec full_name: "drm_hdmi_avi_infoframe_from_display_mode" } @@ -337076,7 +341055,7 @@ elf_symbol { name: "drm_helper_hpd_irq_event" is_defined: true symbol_type: FUNCTION - crc: 0x6348f1a2 + crc: 0xf1be3e6d type_id: 0xf06574af full_name: "drm_helper_hpd_irq_event" } @@ -337085,7 +341064,7 @@ elf_symbol { name: "drm_helper_mode_fill_fb_struct" is_defined: true symbol_type: FUNCTION - crc: 0x489d3594 + crc: 0x3a149017 type_id: 0x1e93e85a full_name: "drm_helper_mode_fill_fb_struct" } @@ -337094,7 +341073,7 @@ elf_symbol { name: "drm_helper_move_panel_connectors_to_head" is_defined: true symbol_type: FUNCTION - crc: 0xb99f77df + crc: 0xd7a6c5ea type_id: 0x1e597e38 full_name: "drm_helper_move_panel_connectors_to_head" } @@ -337103,7 +341082,7 @@ elf_symbol { name: "drm_helper_probe_single_connector_modes" is_defined: true symbol_type: FUNCTION - crc: 0x2a98b904 + crc: 0x1a5a590f type_id: 0x919a7322 full_name: "drm_helper_probe_single_connector_modes" } @@ -337112,7 +341091,7 @@ elf_symbol { name: "drm_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0xb4084f35 + crc: 0x59f8ef9b type_id: 0xa00069e0 full_name: "drm_ioctl" } @@ -337121,7 +341100,7 @@ elf_symbol { name: "drm_is_current_master" is_defined: true symbol_type: FUNCTION - crc: 0x5c223422 + crc: 0x8646e606 type_id: 0xfa1de4ef full_name: "drm_is_current_master" } @@ -337130,7 +341109,7 @@ elf_symbol { name: "drm_kms_helper_hotplug_event" is_defined: true symbol_type: FUNCTION - crc: 0x34a1438c + crc: 0x2743be40 type_id: 0x1e597e38 full_name: "drm_kms_helper_hotplug_event" } @@ -337139,7 +341118,7 @@ elf_symbol { name: "drm_kms_helper_poll_disable" is_defined: true symbol_type: FUNCTION - crc: 0x769f2060 + crc: 0xacfff18d type_id: 0x1e597e38 full_name: "drm_kms_helper_poll_disable" } @@ -337148,7 +341127,7 @@ elf_symbol { name: "drm_kms_helper_poll_enable" is_defined: true symbol_type: FUNCTION - crc: 0xf1bc71bf + crc: 0x9e16db13 type_id: 0x1e597e38 full_name: "drm_kms_helper_poll_enable" } @@ -337157,7 +341136,7 @@ elf_symbol { name: "drm_kms_helper_poll_fini" is_defined: true symbol_type: FUNCTION - crc: 0xe0023b9e + crc: 0xef3ba9a1 type_id: 0x1e597e38 full_name: "drm_kms_helper_poll_fini" } @@ -337166,7 +341145,7 @@ elf_symbol { name: "drm_kms_helper_poll_init" is_defined: true symbol_type: FUNCTION - crc: 0x31bf5bce + crc: 0xea2f252b type_id: 0x1e597e38 full_name: "drm_kms_helper_poll_init" } @@ -337175,7 +341154,7 @@ elf_symbol { name: "drm_master_get" is_defined: true symbol_type: FUNCTION - crc: 0xc1bd62e3 + crc: 0xd46e5c17 type_id: 0xf6814266 full_name: "drm_master_get" } @@ -337184,7 +341163,7 @@ elf_symbol { name: "drm_master_put" is_defined: true symbol_type: FUNCTION - crc: 0x6e2cbd8a + crc: 0x7f07e08b type_id: 0x12493d73 full_name: "drm_master_put" } @@ -337238,7 +341217,7 @@ elf_symbol { name: "drm_mode_config_cleanup" is_defined: true symbol_type: FUNCTION - crc: 0xa6e88d7b + crc: 0x594a8e52 type_id: 0x1e597e38 full_name: "drm_mode_config_cleanup" } @@ -337247,7 +341226,7 @@ elf_symbol { name: "drm_mode_config_helper_resume" is_defined: true symbol_type: FUNCTION - crc: 0xeda8af5e + crc: 0x414402c7 type_id: 0x9341cc84 full_name: "drm_mode_config_helper_resume" } @@ -337256,7 +341235,7 @@ elf_symbol { name: "drm_mode_config_helper_suspend" is_defined: true symbol_type: FUNCTION - crc: 0xb8b92db5 + crc: 0xb4ade555 type_id: 0x9341cc84 full_name: "drm_mode_config_helper_suspend" } @@ -337265,7 +341244,7 @@ elf_symbol { name: "drm_mode_config_reset" is_defined: true symbol_type: FUNCTION - crc: 0x8c94518b + crc: 0x4abdeaa9 type_id: 0x1e597e38 full_name: "drm_mode_config_reset" } @@ -337283,7 +341262,7 @@ elf_symbol { name: "drm_mode_convert_umode" is_defined: true symbol_type: FUNCTION - crc: 0x8ca1296f + crc: 0xa4c0c5f3 type_id: 0x93e73189 full_name: "drm_mode_convert_umode" } @@ -337301,7 +341280,7 @@ elf_symbol { name: "drm_mode_create" is_defined: true symbol_type: FUNCTION - crc: 0xc2fafb81 + crc: 0xf0e21e2c type_id: 0xc72431aa full_name: "drm_mode_create" } @@ -337310,7 +341289,7 @@ elf_symbol { name: "drm_mode_create_dp_colorspace_property" is_defined: true symbol_type: FUNCTION - crc: 0xad81483b + crc: 0xe6314d99 type_id: 0x91ed8ab4 full_name: "drm_mode_create_dp_colorspace_property" } @@ -337319,7 +341298,7 @@ elf_symbol { name: "drm_mode_create_tile_group" is_defined: true symbol_type: FUNCTION - crc: 0x74ce80e7 + crc: 0x311bd732 type_id: 0x42ee3dd4 full_name: "drm_mode_create_tile_group" } @@ -337337,7 +341316,7 @@ elf_symbol { name: "drm_mode_destroy" is_defined: true symbol_type: FUNCTION - crc: 0xf34443c3 + crc: 0x2c57ad84 type_id: 0x1ef285a9 full_name: "drm_mode_destroy" } @@ -337346,7 +341325,7 @@ elf_symbol { name: "drm_mode_duplicate" is_defined: true symbol_type: FUNCTION - crc: 0xa1666849 + crc: 0x2998b70a type_id: 0xc7f20e7c full_name: "drm_mode_duplicate" } @@ -337391,7 +341370,7 @@ elf_symbol { name: "drm_mode_object_find" is_defined: true symbol_type: FUNCTION - crc: 0xb1f592da + crc: 0x5974f664 type_id: 0x6650c8f2 full_name: "drm_mode_object_find" } @@ -337400,7 +341379,7 @@ elf_symbol { name: "drm_mode_object_get" is_defined: true symbol_type: FUNCTION - crc: 0xa8db6a06 + crc: 0x1d0eea47 type_id: 0x1cab6a11 full_name: "drm_mode_object_get" } @@ -337409,7 +341388,7 @@ elf_symbol { name: "drm_mode_object_put" is_defined: true symbol_type: FUNCTION - crc: 0x618f8364 + crc: 0x45c70e34 type_id: 0x1cab6a11 full_name: "drm_mode_object_put" } @@ -337418,7 +341397,7 @@ elf_symbol { name: "drm_mode_probed_add" is_defined: true symbol_type: FUNCTION - crc: 0xff9e919e + crc: 0xa4421422 type_id: 0x1c5ec399 full_name: "drm_mode_probed_add" } @@ -337427,7 +341406,7 @@ elf_symbol { name: "drm_mode_prune_invalid" is_defined: true symbol_type: FUNCTION - crc: 0x6a7fe13b + crc: 0x5c544d0a type_id: 0x1ebba908 full_name: "drm_mode_prune_invalid" } @@ -337472,7 +341451,7 @@ elf_symbol { name: "drm_modeset_acquire_fini" is_defined: true symbol_type: FUNCTION - crc: 0x9fc4eb91 + crc: 0xa943861c type_id: 0x107b2810 full_name: "drm_modeset_acquire_fini" } @@ -337481,7 +341460,7 @@ elf_symbol { name: "drm_modeset_acquire_init" is_defined: true symbol_type: FUNCTION - crc: 0x38056f4c + crc: 0x17fde306 type_id: 0x100bdee9 full_name: "drm_modeset_acquire_init" } @@ -337490,7 +341469,7 @@ elf_symbol { name: "drm_modeset_backoff" is_defined: true symbol_type: FUNCTION - crc: 0x052c6e28 + crc: 0xfe75899d type_id: 0x9d639aac full_name: "drm_modeset_backoff" } @@ -337499,7 +341478,7 @@ elf_symbol { name: "drm_modeset_drop_locks" is_defined: true symbol_type: FUNCTION - crc: 0xec269e32 + crc: 0x9720a69b type_id: 0x107b2810 full_name: "drm_modeset_drop_locks" } @@ -337508,7 +341487,7 @@ elf_symbol { name: "drm_modeset_lock" is_defined: true symbol_type: FUNCTION - crc: 0x0f19e80e + crc: 0xaf3c5735 type_id: 0x97fa70fd full_name: "drm_modeset_lock" } @@ -337517,7 +341496,7 @@ elf_symbol { name: "drm_modeset_lock_all" is_defined: true symbol_type: FUNCTION - crc: 0xf7add6bc + crc: 0xd075d932 type_id: 0x1e597e38 full_name: "drm_modeset_lock_all" } @@ -337526,7 +341505,7 @@ elf_symbol { name: "drm_modeset_lock_all_ctx" is_defined: true symbol_type: FUNCTION - crc: 0xf489d2fc + crc: 0x2529faab type_id: 0x934ffb1c full_name: "drm_modeset_lock_all_ctx" } @@ -337535,7 +341514,7 @@ elf_symbol { name: "drm_modeset_lock_init" is_defined: true symbol_type: FUNCTION - crc: 0xc901870f + crc: 0xec98dd0f type_id: 0x1aecf5d9 full_name: "drm_modeset_lock_init" } @@ -337544,7 +341523,7 @@ elf_symbol { name: "drm_modeset_lock_single_interruptible" is_defined: true symbol_type: FUNCTION - crc: 0x61199e62 + crc: 0x935ee5a2 type_id: 0x97f44765 full_name: "drm_modeset_lock_single_interruptible" } @@ -337553,7 +341532,7 @@ elf_symbol { name: "drm_modeset_unlock" is_defined: true symbol_type: FUNCTION - crc: 0x4f2bcdc1 + crc: 0x1500c7df type_id: 0x1aecf5d9 full_name: "drm_modeset_unlock" } @@ -337562,7 +341541,7 @@ elf_symbol { name: "drm_modeset_unlock_all" is_defined: true symbol_type: FUNCTION - crc: 0x438204c3 + crc: 0xf41991ce type_id: 0x1e597e38 full_name: "drm_modeset_unlock_all" } @@ -337571,7 +341550,7 @@ elf_symbol { name: "drm_object_attach_property" is_defined: true symbol_type: FUNCTION - crc: 0xe60b637e + crc: 0x4173e75c type_id: 0x1c05d45f full_name: "drm_object_attach_property" } @@ -337580,7 +341559,7 @@ elf_symbol { name: "drm_object_property_set_value" is_defined: true symbol_type: FUNCTION - crc: 0x44fbbaa6 + crc: 0xd6db4d7f type_id: 0x911d66e3 full_name: "drm_object_property_set_value" } @@ -337589,7 +341568,7 @@ elf_symbol { name: "drm_of_component_match_add" is_defined: true symbol_type: FUNCTION - crc: 0x7bde524e + crc: 0x4a4bd165 type_id: 0x102ab9fb full_name: "drm_of_component_match_add" } @@ -337598,7 +341577,7 @@ elf_symbol { name: "drm_of_find_panel_or_bridge" is_defined: true symbol_type: FUNCTION - crc: 0x372ced81 + crc: 0x7e95f155 type_id: 0x908eb1a6 full_name: "drm_of_find_panel_or_bridge" } @@ -337607,7 +341586,7 @@ elf_symbol { name: "drm_of_get_data_lanes_count" is_defined: true symbol_type: FUNCTION - crc: 0x3ee140b1 + crc: 0x17c567bb type_id: 0x900cb4fc full_name: "drm_of_get_data_lanes_count" } @@ -337616,7 +341595,7 @@ elf_symbol { name: "drm_open" is_defined: true symbol_type: FUNCTION - crc: 0x96a30a31 + crc: 0x4bc660d1 type_id: 0x9b022eae full_name: "drm_open" } @@ -337625,7 +341604,7 @@ elf_symbol { name: "drm_panel_add" is_defined: true symbol_type: FUNCTION - crc: 0xb1dba1fc + crc: 0x33016190 type_id: 0x14800eb8 full_name: "drm_panel_add" } @@ -337634,7 +341613,7 @@ elf_symbol { name: "drm_panel_bridge_add_typed" is_defined: true symbol_type: FUNCTION - crc: 0x66d1c4c1 + crc: 0x5991f3a4 type_id: 0x9d2263c5 full_name: "drm_panel_bridge_add_typed" } @@ -337643,7 +341622,7 @@ elf_symbol { name: "drm_panel_bridge_connector" is_defined: true symbol_type: FUNCTION - crc: 0xc808a4be + crc: 0x8c0c11ce type_id: 0xaa55ab2e full_name: "drm_panel_bridge_connector" } @@ -337652,7 +341631,7 @@ elf_symbol { name: "drm_panel_bridge_remove" is_defined: true symbol_type: FUNCTION - crc: 0x252c0a25 + crc: 0xab3dd1c4 type_id: 0x19026802 full_name: "drm_panel_bridge_remove" } @@ -337661,7 +341640,7 @@ elf_symbol { name: "drm_panel_disable" is_defined: true symbol_type: FUNCTION - crc: 0xb2acf07b + crc: 0x75e8a8cf type_id: 0x9998bc04 full_name: "drm_panel_disable" } @@ -337670,7 +341649,7 @@ elf_symbol { name: "drm_panel_enable" is_defined: true symbol_type: FUNCTION - crc: 0xacd1cc4e + crc: 0x724c23d9 type_id: 0x9998bc04 full_name: "drm_panel_enable" } @@ -337679,7 +341658,7 @@ elf_symbol { name: "drm_panel_get_modes" is_defined: true symbol_type: FUNCTION - crc: 0x77dfcb65 + crc: 0x3eb886ac type_id: 0x995e6a9d full_name: "drm_panel_get_modes" } @@ -337688,7 +341667,7 @@ elf_symbol { name: "drm_panel_init" is_defined: true symbol_type: FUNCTION - crc: 0xb1d8dc02 + crc: 0x42884c4c type_id: 0x1486e519 full_name: "drm_panel_init" } @@ -337697,7 +341676,7 @@ elf_symbol { name: "drm_panel_prepare" is_defined: true symbol_type: FUNCTION - crc: 0xe82611bc + crc: 0xfd342e36 type_id: 0x9998bc04 full_name: "drm_panel_prepare" } @@ -337706,7 +341685,7 @@ elf_symbol { name: "drm_panel_remove" is_defined: true symbol_type: FUNCTION - crc: 0xef8e971b + crc: 0xb5cbccf8 type_id: 0x14800eb8 full_name: "drm_panel_remove" } @@ -337715,7 +341694,7 @@ elf_symbol { name: "drm_panel_unprepare" is_defined: true symbol_type: FUNCTION - crc: 0xd36095b8 + crc: 0xf0a2ba5c type_id: 0x9998bc04 full_name: "drm_panel_unprepare" } @@ -337724,7 +341703,7 @@ elf_symbol { name: "drm_plane_cleanup" is_defined: true symbol_type: FUNCTION - crc: 0x32a0a3c8 + crc: 0x9c9dca69 type_id: 0x1653799a full_name: "drm_plane_cleanup" } @@ -337733,7 +341712,7 @@ elf_symbol { name: "drm_plane_create_alpha_property" is_defined: true symbol_type: FUNCTION - crc: 0xbd5afd02 + crc: 0xaafbb181 type_id: 0x9b4bcb26 full_name: "drm_plane_create_alpha_property" } @@ -337742,7 +341721,7 @@ elf_symbol { name: "drm_plane_create_blend_mode_property" is_defined: true symbol_type: FUNCTION - crc: 0x7fc8e2ee + crc: 0xc92013d7 type_id: 0x9a5ddebe full_name: "drm_plane_create_blend_mode_property" } @@ -337751,7 +341730,7 @@ elf_symbol { name: "drm_plane_create_rotation_property" is_defined: true symbol_type: FUNCTION - crc: 0x7badd416 + crc: 0xaac28500 type_id: 0x9a4cbfe7 full_name: "drm_plane_create_rotation_property" } @@ -337760,7 +341739,7 @@ elf_symbol { name: "drm_plane_create_zpos_immutable_property" is_defined: true symbol_type: FUNCTION - crc: 0x2329d4a3 + crc: 0x9b7c5a6c type_id: 0x9a5ddebe full_name: "drm_plane_create_zpos_immutable_property" } @@ -337769,7 +341748,7 @@ elf_symbol { name: "drm_plane_create_zpos_property" is_defined: true symbol_type: FUNCTION - crc: 0xab2262d2 + crc: 0x6f86d94d type_id: 0x9a4da9f2 full_name: "drm_plane_create_zpos_property" } @@ -337778,7 +341757,7 @@ elf_symbol { name: "drm_plane_enable_fb_damage_clips" is_defined: true symbol_type: FUNCTION - crc: 0x5d2602c1 + crc: 0xaa4b22bf type_id: 0x1653799a full_name: "drm_plane_enable_fb_damage_clips" } @@ -337787,7 +341766,7 @@ elf_symbol { name: "drm_poll" is_defined: true symbol_type: FUNCTION - crc: 0x500e0c48 + crc: 0x17900f2f type_id: 0x25b50dfa full_name: "drm_poll" } @@ -337796,7 +341775,7 @@ elf_symbol { name: "drm_prime_gem_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x67523edd + crc: 0xa2ed8365 type_id: 0x1e82fda2 full_name: "drm_prime_gem_destroy" } @@ -337814,7 +341793,7 @@ elf_symbol { name: "drm_prime_pages_to_sg" is_defined: true symbol_type: FUNCTION - crc: 0x48ee87c3 + crc: 0x6671517e type_id: 0x4f80ed11 full_name: "drm_prime_pages_to_sg" } @@ -337823,7 +341802,7 @@ elf_symbol { name: "drm_prime_sg_to_page_array" is_defined: true symbol_type: FUNCTION - crc: 0x7d8e90e7 + crc: 0x994c2576 type_id: 0x9d9ce4b7 full_name: "drm_prime_sg_to_page_array" } @@ -337841,7 +341820,7 @@ elf_symbol { name: "drm_probe_ddc" is_defined: true symbol_type: FUNCTION - crc: 0x3f1cee34 + crc: 0xf6da12cd type_id: 0xf7820d73 full_name: "drm_probe_ddc" } @@ -337850,7 +341829,7 @@ elf_symbol { name: "drm_property_blob_get" is_defined: true symbol_type: FUNCTION - crc: 0x1e622820 + crc: 0x334476db type_id: 0x0c5304b6 full_name: "drm_property_blob_get" } @@ -337859,7 +341838,7 @@ elf_symbol { name: "drm_property_blob_put" is_defined: true symbol_type: FUNCTION - crc: 0xe66524a6 + crc: 0xd1ca9448 type_id: 0x1d97feab full_name: "drm_property_blob_put" } @@ -337868,7 +341847,7 @@ elf_symbol { name: "drm_property_create" is_defined: true symbol_type: FUNCTION - crc: 0x6a0d03a8 + crc: 0xa8a10d65 type_id: 0x9b73de6d full_name: "drm_property_create" } @@ -337877,7 +341856,7 @@ elf_symbol { name: "drm_property_create_bitmask" is_defined: true symbol_type: FUNCTION - crc: 0x79803856 + crc: 0x158c6422 type_id: 0x9b72aafd full_name: "drm_property_create_bitmask" } @@ -337886,7 +341865,7 @@ elf_symbol { name: "drm_property_create_blob" is_defined: true symbol_type: FUNCTION - crc: 0x66c8c441 + crc: 0x559910c4 type_id: 0x0c431641 full_name: "drm_property_create_blob" } @@ -337895,7 +341874,7 @@ elf_symbol { name: "drm_property_create_bool" is_defined: true symbol_type: FUNCTION - crc: 0x7e45a8ef + crc: 0x05b4c253 type_id: 0x9b7242ee full_name: "drm_property_create_bool" } @@ -337904,7 +341883,7 @@ elf_symbol { name: "drm_property_create_enum" is_defined: true symbol_type: FUNCTION - crc: 0x99132e3b + crc: 0x11b35dc6 type_id: 0x9b72aa8f full_name: "drm_property_create_enum" } @@ -337913,7 +341892,7 @@ elf_symbol { name: "drm_property_create_range" is_defined: true symbol_type: FUNCTION - crc: 0xdcb95906 + crc: 0x7989f93b type_id: 0x9b7237ea full_name: "drm_property_create_range" } @@ -337922,7 +341901,7 @@ elf_symbol { name: "drm_property_create_signed_range" is_defined: true symbol_type: FUNCTION - crc: 0xa63576db + crc: 0xc0a8b041 type_id: 0x9b738b6d full_name: "drm_property_create_signed_range" } @@ -337931,7 +341910,7 @@ elf_symbol { name: "drm_property_lookup_blob" is_defined: true symbol_type: FUNCTION - crc: 0xc5c02c75 + crc: 0x89e48696 type_id: 0x0fed72dc full_name: "drm_property_lookup_blob" } @@ -337940,7 +341919,7 @@ elf_symbol { name: "drm_property_replace_blob" is_defined: true symbol_type: FUNCTION - crc: 0x93322c82 + crc: 0xbbf9f2f6 type_id: 0xff934450 full_name: "drm_property_replace_blob" } @@ -337958,7 +341937,7 @@ elf_symbol { name: "drm_read" is_defined: true symbol_type: FUNCTION - crc: 0xa44c2254 + crc: 0x16567cee type_id: 0x12e4741f full_name: "drm_read" } @@ -338003,7 +341982,7 @@ elf_symbol { name: "drm_release" is_defined: true symbol_type: FUNCTION - crc: 0x757274a3 + crc: 0xf9b3e059 type_id: 0x9b022eae full_name: "drm_release" } @@ -338021,7 +342000,7 @@ elf_symbol { name: "drm_self_refresh_helper_alter_state" is_defined: true symbol_type: FUNCTION - crc: 0x1494190f + crc: 0x283c4bf2 type_id: 0x18d85efa full_name: "drm_self_refresh_helper_alter_state" } @@ -338030,7 +342009,7 @@ elf_symbol { name: "drm_send_event" is_defined: true symbol_type: FUNCTION - crc: 0x12795291 + crc: 0xdf4a9a1b type_id: 0x1e4577e0 full_name: "drm_send_event" } @@ -338039,7 +342018,7 @@ elf_symbol { name: "drm_send_event_locked" is_defined: true symbol_type: FUNCTION - crc: 0x00ae918b + crc: 0xbf60d042 type_id: 0x1e4577e0 full_name: "drm_send_event_locked" } @@ -338048,7 +342027,7 @@ elf_symbol { name: "drm_set_preferred_mode" is_defined: true symbol_type: FUNCTION - crc: 0x195017be + crc: 0x3c3f83a1 type_id: 0x1d707370 full_name: "drm_set_preferred_mode" } @@ -338057,7 +342036,7 @@ elf_symbol { name: "drm_simple_display_pipe_attach_bridge" is_defined: true symbol_type: FUNCTION - crc: 0x27b74075 + crc: 0x253867d8 type_id: 0x9e08dfbb full_name: "drm_simple_display_pipe_attach_bridge" } @@ -338066,7 +342045,7 @@ elf_symbol { name: "drm_simple_display_pipe_init" is_defined: true symbol_type: FUNCTION - crc: 0x31739099 + crc: 0x75ec7002 type_id: 0x937ca73d full_name: "drm_simple_display_pipe_init" } @@ -338075,7 +342054,7 @@ elf_symbol { name: "drm_simple_encoder_init" is_defined: true symbol_type: FUNCTION - crc: 0x00541d07 + crc: 0x10bc895a type_id: 0x93e3d44d full_name: "drm_simple_encoder_init" } @@ -338084,7 +342063,7 @@ elf_symbol { name: "drm_state_dump" is_defined: true symbol_type: FUNCTION - crc: 0xa8003c00 + crc: 0x24b2c6c5 type_id: 0x1ef499ec full_name: "drm_state_dump" } @@ -338093,7 +342072,7 @@ elf_symbol { name: "drm_syncobj_add_point" is_defined: true symbol_type: FUNCTION - crc: 0x051bb101 + crc: 0x50405a4a type_id: 0x15766e8a full_name: "drm_syncobj_add_point" } @@ -338102,7 +342081,7 @@ elf_symbol { name: "drm_syncobj_find" is_defined: true symbol_type: FUNCTION - crc: 0xc596b26e + crc: 0x73367cf2 type_id: 0xe211074d full_name: "drm_syncobj_find" } @@ -338111,7 +342090,7 @@ elf_symbol { name: "drm_syncobj_find_fence" is_defined: true symbol_type: FUNCTION - crc: 0x15069015 + crc: 0x65c561f0 type_id: 0x9a3bbebc full_name: "drm_syncobj_find_fence" } @@ -338129,7 +342108,7 @@ elf_symbol { name: "drm_syncobj_replace_fence" is_defined: true symbol_type: FUNCTION - crc: 0x5b881588 + crc: 0xf2a5ecbc type_id: 0x15401a81 full_name: "drm_syncobj_replace_fence" } @@ -338138,7 +342117,7 @@ elf_symbol { name: "drm_sysfs_connector_status_event" is_defined: true symbol_type: FUNCTION - crc: 0xbb5f3779 + crc: 0x06a62a8d type_id: 0x1c5ca425 full_name: "drm_sysfs_connector_status_event" } @@ -338147,7 +342126,7 @@ elf_symbol { name: "drm_universal_plane_init" is_defined: true symbol_type: FUNCTION - crc: 0x6c42f0ce + crc: 0x420ee734 type_id: 0x932a8871 full_name: "drm_universal_plane_init" } @@ -338156,7 +342135,7 @@ elf_symbol { name: "drm_vblank_init" is_defined: true symbol_type: FUNCTION - crc: 0xa2fe4d2e + crc: 0x9ef67b7f type_id: 0x9257d91c full_name: "drm_vblank_init" } @@ -338165,7 +342144,7 @@ elf_symbol { name: "drm_wait_one_vblank" is_defined: true symbol_type: FUNCTION - crc: 0x25a5f8fc + crc: 0xcde07bee type_id: 0x1f4f6ba0 full_name: "drm_wait_one_vblank" } @@ -338174,7 +342153,7 @@ elf_symbol { name: "drm_writeback_connector_init" is_defined: true symbol_type: FUNCTION - crc: 0x6ca7ee1e + crc: 0x4908cc97 type_id: 0x93f3386e full_name: "drm_writeback_connector_init" } @@ -338183,7 +342162,7 @@ elf_symbol { name: "drm_writeback_connector_init_with_encoder" is_defined: true symbol_type: FUNCTION - crc: 0xe55c8d00 + crc: 0x6a6c170b type_id: 0x93f6a75b full_name: "drm_writeback_connector_init_with_encoder" } @@ -338192,7 +342171,7 @@ elf_symbol { name: "drm_writeback_queue_job" is_defined: true symbol_type: FUNCTION - crc: 0xa5b7a442 + crc: 0xcb50c04c type_id: 0x1be9f38e full_name: "drm_writeback_queue_job" } @@ -338201,7 +342180,7 @@ elf_symbol { name: "drm_writeback_signal_completion" is_defined: true symbol_type: FUNCTION - crc: 0x5a5d679c + crc: 0x991cd501 type_id: 0x1ac748a8 full_name: "drm_writeback_signal_completion" } @@ -338210,7 +342189,7 @@ elf_symbol { name: "drmm_kfree" is_defined: true symbol_type: FUNCTION - crc: 0xae4d5e31 + crc: 0xaaf7e490 type_id: 0x1e3b8bac full_name: "drmm_kfree" } @@ -338219,7 +342198,7 @@ elf_symbol { name: "drmm_kmalloc" is_defined: true symbol_type: FUNCTION - crc: 0x063a173f + crc: 0x92deb592 type_id: 0x5bbb224c full_name: "drmm_kmalloc" } @@ -338228,7 +342207,7 @@ elf_symbol { name: "drmm_mode_config_init" is_defined: true symbol_type: FUNCTION - crc: 0x1e7eb91e + crc: 0x72dbe465 type_id: 0x9341cc84 full_name: "drmm_mode_config_init" } @@ -338246,7 +342225,7 @@ elf_symbol { name: "dst_cache_get" is_defined: true symbol_type: FUNCTION - crc: 0x5dfe63f5 + crc: 0x2d1a46f9 type_id: 0xaba1c9dd full_name: "dst_cache_get" } @@ -338264,7 +342243,7 @@ elf_symbol { name: "dst_cache_set_ip4" is_defined: true symbol_type: FUNCTION - crc: 0x185df261 + crc: 0x8898edca type_id: 0x1aa3070d full_name: "dst_cache_set_ip4" } @@ -338273,7 +342252,7 @@ elf_symbol { name: "dst_cache_set_ip6" is_defined: true symbol_type: FUNCTION - crc: 0x60da3282 + crc: 0x52722d82 type_id: 0x1a954b21 full_name: "dst_cache_set_ip6" } @@ -338282,7 +342261,7 @@ elf_symbol { name: "dst_release" is_defined: true symbol_type: FUNCTION - crc: 0x573babb5 + crc: 0xd79c2f81 type_id: 0x140e294e full_name: "dst_release" } @@ -338291,7 +342270,7 @@ elf_symbol { name: "dump_backtrace" is_defined: true symbol_type: FUNCTION - crc: 0x48f04e6a + crc: 0xbd608157 type_id: 0x10ab38c6 full_name: "dump_backtrace" } @@ -338309,7 +342288,7 @@ elf_symbol { name: "dw_handle_msi_irq" is_defined: true symbol_type: FUNCTION - crc: 0x5e15216e + crc: 0x3289bb0c type_id: 0x2ba2f0cc full_name: "dw_handle_msi_irq" } @@ -338318,7 +342297,7 @@ elf_symbol { name: "dw_pcie_host_init" is_defined: true symbol_type: FUNCTION - crc: 0x56882a23 + crc: 0x9b127893 type_id: 0x94e69702 full_name: "dw_pcie_host_init" } @@ -338336,7 +342315,7 @@ elf_symbol { name: "dw_pcie_setup_rc" is_defined: true symbol_type: FUNCTION - crc: 0xdbca68a7 + crc: 0xd15d098c type_id: 0x94e69702 full_name: "dw_pcie_setup_rc" } @@ -338354,7 +342333,7 @@ elf_symbol { name: "edac_device_add_device" is_defined: true symbol_type: FUNCTION - crc: 0x98482284 + crc: 0x4e6e72af type_id: 0x9f266269 full_name: "edac_device_add_device" } @@ -338363,7 +342342,7 @@ elf_symbol { name: "edac_device_alloc_ctl_info" is_defined: true symbol_type: FUNCTION - crc: 0x8ebd2860 + crc: 0xf307f9c3 type_id: 0xda32c714 full_name: "edac_device_alloc_ctl_info" } @@ -338381,7 +342360,7 @@ elf_symbol { name: "edac_device_del_device" is_defined: true symbol_type: FUNCTION - crc: 0x6e37e087 + crc: 0xfc2837cf type_id: 0xcbc6cc7a full_name: "edac_device_del_device" } @@ -338390,7 +342369,7 @@ elf_symbol { name: "edac_device_free_ctl_info" is_defined: true symbol_type: FUNCTION - crc: 0x4aa7cb05 + crc: 0xac020e89 type_id: 0x123ed0d5 full_name: "edac_device_free_ctl_info" } @@ -338399,7 +342378,7 @@ elf_symbol { name: "edac_device_handle_ce_count" is_defined: true symbol_type: FUNCTION - crc: 0x922b45de + crc: 0xe31fff47 type_id: 0x13309e7e full_name: "edac_device_handle_ce_count" } @@ -338408,7 +342387,7 @@ elf_symbol { name: "edac_device_handle_ue_count" is_defined: true symbol_type: FUNCTION - crc: 0x45c9c835 + crc: 0x0c40faa6 type_id: 0x13309e7e full_name: "edac_device_handle_ue_count" } @@ -338453,7 +342432,7 @@ elf_symbol { name: "eth_commit_mac_addr_change" is_defined: true symbol_type: FUNCTION - crc: 0xd1b31371 + crc: 0x9fec4050 type_id: 0x1c532cf2 full_name: "eth_commit_mac_addr_change" } @@ -338462,7 +342441,7 @@ elf_symbol { name: "eth_header_parse" is_defined: true symbol_type: FUNCTION - crc: 0x95d665eb + crc: 0x3c5e6d4e type_id: 0x926fc724 full_name: "eth_header_parse" } @@ -338471,7 +342450,7 @@ elf_symbol { name: "eth_mac_addr" is_defined: true symbol_type: FUNCTION - crc: 0x2bb9a375 + crc: 0xce7a37f6 type_id: 0x914b9e4e full_name: "eth_mac_addr" } @@ -338480,7 +342459,7 @@ elf_symbol { name: "eth_prepare_mac_addr_change" is_defined: true symbol_type: FUNCTION - crc: 0xa4afa8f7 + crc: 0x2e935fa0 type_id: 0x914b9e4e full_name: "eth_prepare_mac_addr_change" } @@ -338489,7 +342468,7 @@ elf_symbol { name: "eth_type_trans" is_defined: true symbol_type: FUNCTION - crc: 0xef67480b + crc: 0xdb415b67 type_id: 0xe323faf8 full_name: "eth_type_trans" } @@ -338498,7 +342477,7 @@ elf_symbol { name: "eth_validate_addr" is_defined: true symbol_type: FUNCTION - crc: 0x3b0568f6 + crc: 0x35f2ebd9 type_id: 0x91296bda full_name: "eth_validate_addr" } @@ -338507,7 +342486,7 @@ elf_symbol { name: "ether_setup" is_defined: true symbol_type: FUNCTION - crc: 0x17fcc93c + crc: 0x56f67b83 type_id: 0x1c31d966 full_name: "ether_setup" } @@ -338516,7 +342495,7 @@ elf_symbol { name: "ethnl_cable_test_fault_length" is_defined: true symbol_type: FUNCTION - crc: 0xe070d6e6 + crc: 0x2194d1cd type_id: 0x914a78cc full_name: "ethnl_cable_test_fault_length" } @@ -338525,7 +342504,7 @@ elf_symbol { name: "ethnl_cable_test_result" is_defined: true symbol_type: FUNCTION - crc: 0x88f5d1c3 + crc: 0x624b74b9 type_id: 0x91726dda full_name: "ethnl_cable_test_result" } @@ -338552,7 +342531,7 @@ elf_symbol { name: "ethtool_op_get_link" is_defined: true symbol_type: FUNCTION - crc: 0x86081e13 + crc: 0xbe3682f9 type_id: 0x4951a397 full_name: "ethtool_op_get_link" } @@ -338561,7 +342540,7 @@ elf_symbol { name: "ethtool_op_get_ts_info" is_defined: true symbol_type: FUNCTION - crc: 0xb1d6ac43 + crc: 0xa5cb63fa type_id: 0x916bd4e5 full_name: "ethtool_op_get_ts_info" } @@ -338579,7 +342558,7 @@ elf_symbol { name: "ethtool_virtdev_set_link_ksettings" is_defined: true symbol_type: FUNCTION - crc: 0x7e689a06 + crc: 0xf0a47d12 type_id: 0x91c2a80b full_name: "ethtool_virtdev_set_link_ksettings" } @@ -338588,7 +342567,7 @@ elf_symbol { name: "event_triggers_call" is_defined: true symbol_type: FUNCTION - crc: 0xbb6b17e6 + crc: 0x9cee86d9 type_id: 0xeaf38011 full_name: "event_triggers_call" } @@ -338606,7 +342585,7 @@ elf_symbol { name: "eventfd_ctx_fileget" is_defined: true symbol_type: FUNCTION - crc: 0x0d2e85e9 + crc: 0x409cf9fa type_id: 0x90e5f66b full_name: "eventfd_ctx_fileget" } @@ -338642,7 +342621,7 @@ elf_symbol { name: "extcon_get_edev_by_phandle" is_defined: true symbol_type: FUNCTION - crc: 0x256ae2df + crc: 0xec524184 type_id: 0x0e2b9889 full_name: "extcon_get_edev_by_phandle" } @@ -338651,7 +342630,7 @@ elf_symbol { name: "extcon_get_edev_name" is_defined: true symbol_type: FUNCTION - crc: 0x3c08bd0b + crc: 0x9e996513 type_id: 0x964692d8 full_name: "extcon_get_edev_name" } @@ -338660,7 +342639,7 @@ elf_symbol { name: "extcon_get_extcon_dev" is_defined: true symbol_type: FUNCTION - crc: 0xac59463b + crc: 0xbe4ca602 type_id: 0x00a508d8 full_name: "extcon_get_extcon_dev" } @@ -338669,7 +342648,7 @@ elf_symbol { name: "extcon_get_property" is_defined: true symbol_type: FUNCTION - crc: 0xb4a4eac4 + crc: 0x436d22b0 type_id: 0x98853e56 full_name: "extcon_get_property" } @@ -338678,7 +342657,7 @@ elf_symbol { name: "extcon_get_state" is_defined: true symbol_type: FUNCTION - crc: 0xae324c70 + crc: 0x9b2a2b3b type_id: 0x989473cc full_name: "extcon_get_state" } @@ -338687,7 +342666,7 @@ elf_symbol { name: "extcon_register_notifier" is_defined: true symbol_type: FUNCTION - crc: 0xffe91233 + crc: 0x93e49298 type_id: 0x98929e65 full_name: "extcon_register_notifier" } @@ -338696,7 +342675,7 @@ elf_symbol { name: "extcon_set_property" is_defined: true symbol_type: FUNCTION - crc: 0x7110f0d2 + crc: 0x039c41dd type_id: 0x98850898 full_name: "extcon_set_property" } @@ -338705,7 +342684,7 @@ elf_symbol { name: "extcon_set_property_capability" is_defined: true symbol_type: FUNCTION - crc: 0x04cc2586 + crc: 0x3d219f95 type_id: 0x98851295 full_name: "extcon_set_property_capability" } @@ -338714,7 +342693,7 @@ elf_symbol { name: "extcon_set_state" is_defined: true symbol_type: FUNCTION - crc: 0x300eeffc + crc: 0xc0e56b3e type_id: 0x988f2c1b full_name: "extcon_set_state" } @@ -338723,7 +342702,7 @@ elf_symbol { name: "extcon_set_state_sync" is_defined: true symbol_type: FUNCTION - crc: 0xdab93c20 + crc: 0xa2718eba type_id: 0x988f2c1b full_name: "extcon_set_state_sync" } @@ -338732,7 +342711,7 @@ elf_symbol { name: "extcon_unregister_notifier" is_defined: true symbol_type: FUNCTION - crc: 0x9c4d5211 + crc: 0x31c86985 type_id: 0x98929e65 full_name: "extcon_unregister_notifier" } @@ -338741,7 +342720,7 @@ elf_symbol { name: "fasync_helper" is_defined: true symbol_type: FUNCTION - crc: 0x0648f89a + crc: 0x5a87d7aa type_id: 0x8432b9df full_name: "fasync_helper" } @@ -338750,7 +342729,7 @@ elf_symbol { name: "fd_install" is_defined: true symbol_type: FUNCTION - crc: 0xa6738464 + crc: 0x3cd507b5 type_id: 0x019aa1b7 full_name: "fd_install" } @@ -338759,7 +342738,7 @@ elf_symbol { name: "fget" is_defined: true symbol_type: FUNCTION - crc: 0x09015258 + crc: 0x4aee7fb9 type_id: 0x50f3b181 full_name: "fget" } @@ -338768,7 +342747,7 @@ elf_symbol { name: "file_ra_state_init" is_defined: true symbol_type: FUNCTION - crc: 0x6c92a148 + crc: 0x2aca661a type_id: 0x14609640 full_name: "file_ra_state_init" } @@ -338777,7 +342756,7 @@ elf_symbol { name: "file_write_and_wait_range" is_defined: true symbol_type: FUNCTION - crc: 0x819014a9 + crc: 0x82f507b8 type_id: 0x9b2d0f7e full_name: "file_write_and_wait_range" } @@ -338786,7 +342765,7 @@ elf_symbol { name: "filp_close" is_defined: true symbol_type: FUNCTION - crc: 0xa9806cb9 + crc: 0x9a948336 type_id: 0x99853e95 full_name: "filp_close" } @@ -338795,7 +342774,7 @@ elf_symbol { name: "find_extend_vma" is_defined: true symbol_type: FUNCTION - crc: 0x254409af + crc: 0xe5afe819 type_id: 0x93eb75f8 full_name: "find_extend_vma" } @@ -338804,7 +342783,7 @@ elf_symbol { name: "find_get_pid" is_defined: true symbol_type: FUNCTION - crc: 0x7588a36c + crc: 0xf5e4d5df type_id: 0x3a251008 full_name: "find_get_pid" } @@ -338813,7 +342792,7 @@ elf_symbol { name: "find_pid_ns" is_defined: true symbol_type: FUNCTION - crc: 0xa867cf29 + crc: 0x426a6a15 type_id: 0x31ab6254 full_name: "find_pid_ns" } @@ -338822,7 +342801,7 @@ elf_symbol { name: "find_task_by_vpid" is_defined: true symbol_type: FUNCTION - crc: 0xe2239f08 + crc: 0x79e905f9 type_id: 0x69238486 full_name: "find_task_by_vpid" } @@ -338831,7 +342810,7 @@ elf_symbol { name: "find_vma" is_defined: true symbol_type: FUNCTION - crc: 0xe97bd498 + crc: 0x95a977e5 type_id: 0x93eb75f8 full_name: "find_vma" } @@ -338840,7 +342819,7 @@ elf_symbol { name: "find_vma_intersection" is_defined: true symbol_type: FUNCTION - crc: 0x85347461 + crc: 0xf69ede89 type_id: 0x93e7a8a1 full_name: "find_vma_intersection" } @@ -338849,7 +342828,7 @@ elf_symbol { name: "find_vpid" is_defined: true symbol_type: FUNCTION - crc: 0x5306656e + crc: 0x009e088a type_id: 0x318306ba full_name: "find_vpid" } @@ -338867,7 +342846,7 @@ elf_symbol { name: "firmware_request_nowarn" is_defined: true symbol_type: FUNCTION - crc: 0x06453cdc + crc: 0xeddf70ee type_id: 0x9cec28b8 full_name: "firmware_request_nowarn" } @@ -338876,7 +342855,7 @@ elf_symbol { name: "fixed_size_llseek" is_defined: true symbol_type: FUNCTION - crc: 0xd40d07ab + crc: 0x525cc7b2 type_id: 0x2d6430a1 full_name: "fixed_size_llseek" } @@ -338885,7 +342864,7 @@ elf_symbol { name: "flow_block_cb_setup_simple" is_defined: true symbol_type: FUNCTION - crc: 0x5e771b27 + crc: 0x2ee340bc type_id: 0x9c25419d full_name: "flow_block_cb_setup_simple" } @@ -338903,7 +342882,7 @@ elf_symbol { name: "flow_rule_match_basic" is_defined: true symbol_type: FUNCTION - crc: 0x794bc26e + crc: 0x8c7ad51c type_id: 0x1de80b22 full_name: "flow_rule_match_basic" } @@ -338912,7 +342891,7 @@ elf_symbol { name: "flow_rule_match_ipv4_addrs" is_defined: true symbol_type: FUNCTION - crc: 0xd5d0f109 + crc: 0x5138433c type_id: 0x1d3f8bd2 full_name: "flow_rule_match_ipv4_addrs" } @@ -338921,7 +342900,7 @@ elf_symbol { name: "flow_rule_match_ports" is_defined: true symbol_type: FUNCTION - crc: 0x9c584501 + crc: 0x217839b5 type_id: 0x1d4e9dab full_name: "flow_rule_match_ports" } @@ -338930,7 +342909,7 @@ elf_symbol { name: "flow_rule_match_vlan" is_defined: true symbol_type: FUNCTION - crc: 0xbf595a68 + crc: 0x3924de79 type_id: 0x1d4435ec full_name: "flow_rule_match_vlan" } @@ -338939,7 +342918,7 @@ elf_symbol { name: "flush_dcache_page" is_defined: true symbol_type: FUNCTION - crc: 0x54b716ab + crc: 0x88475283 type_id: 0x11388634 full_name: "flush_dcache_page" } @@ -338975,7 +342954,7 @@ elf_symbol { name: "folio_wait_bit" is_defined: true symbol_type: FUNCTION - crc: 0x86032749 + crc: 0xb20acc92 type_id: 0x1958e6c4 full_name: "folio_wait_bit" } @@ -339002,7 +342981,7 @@ elf_symbol { name: "fput" is_defined: true symbol_type: FUNCTION - crc: 0xce5acaec + crc: 0xb3a48649 type_id: 0x16a2cb2b full_name: "fput" } @@ -339011,7 +342990,7 @@ elf_symbol { name: "fqdir_exit" is_defined: true symbol_type: FUNCTION - crc: 0x0f6b4fee + crc: 0xabb2e541 type_id: 0x13c2822b full_name: "fqdir_exit" } @@ -339020,7 +342999,7 @@ elf_symbol { name: "fqdir_init" is_defined: true symbol_type: FUNCTION - crc: 0xfb77766a + crc: 0x867006cb type_id: 0x9ffb698d full_name: "fqdir_init" } @@ -339056,7 +343035,7 @@ elf_symbol { name: "free_candev" is_defined: true symbol_type: FUNCTION - crc: 0x12a37fbe + crc: 0x3e3138f5 type_id: 0x1c31d966 full_name: "free_candev" } @@ -339083,7 +343062,7 @@ elf_symbol { name: "free_netdev" is_defined: true symbol_type: FUNCTION - crc: 0x8abe8d73 + crc: 0xabb8a448 type_id: 0x1c31d966 full_name: "free_netdev" } @@ -339137,7 +343116,7 @@ elf_symbol { name: "freezing_slow_path" is_defined: true symbol_type: FUNCTION - crc: 0x194b1976 + crc: 0x5494d80d type_id: 0xf9e23171 full_name: "freezing_slow_path" } @@ -339191,7 +343170,7 @@ elf_symbol { name: "freq_reg_info" is_defined: true symbol_type: FUNCTION - crc: 0xb4e14a0d + crc: 0xab5d189e type_id: 0x69d8682e full_name: "freq_reg_info" } @@ -339200,7 +343179,7 @@ elf_symbol { name: "fs_bio_set" is_defined: true symbol_type: OBJECT - crc: 0x00071532 + crc: 0x44cb267f type_id: 0x200a0749 full_name: "fs_bio_set" } @@ -339209,7 +343188,7 @@ elf_symbol { name: "fsync_bdev" is_defined: true symbol_type: FUNCTION - crc: 0xb879b6cf + crc: 0x95a358ae type_id: 0x9e8b6578 full_name: "fsync_bdev" } @@ -339236,7 +343215,7 @@ elf_symbol { name: "fwnode_find_reference" is_defined: true symbol_type: FUNCTION - crc: 0x306e3610 + crc: 0x0f5c0d16 type_id: 0x360ab09d full_name: "fwnode_find_reference" } @@ -339245,7 +343224,7 @@ elf_symbol { name: "fwnode_get_name" is_defined: true symbol_type: FUNCTION - crc: 0x2c61caa5 + crc: 0x28446aff type_id: 0x9dc10f3e full_name: "fwnode_get_name" } @@ -339254,7 +343233,7 @@ elf_symbol { name: "fwnode_get_named_child_node" is_defined: true symbol_type: FUNCTION - crc: 0x96da07c0 + crc: 0x98ca9d07 type_id: 0x361bd1c4 full_name: "fwnode_get_named_child_node" } @@ -339263,7 +343242,7 @@ elf_symbol { name: "fwnode_get_next_child_node" is_defined: true symbol_type: FUNCTION - crc: 0xa21f14bb + crc: 0x9d2d2fbd type_id: 0x36f1d1fd full_name: "fwnode_get_next_child_node" } @@ -339272,7 +343251,7 @@ elf_symbol { name: "fwnode_gpiod_get_index" is_defined: true symbol_type: FUNCTION - crc: 0x8c05054c + crc: 0x0387defb type_id: 0x5e864c76 full_name: "fwnode_gpiod_get_index" } @@ -339281,7 +343260,7 @@ elf_symbol { name: "fwnode_handle_get" is_defined: true symbol_type: FUNCTION - crc: 0xdee20bf6 + crc: 0x4f7a2cf9 type_id: 0x3842a55f full_name: "fwnode_handle_get" } @@ -339290,7 +343269,7 @@ elf_symbol { name: "fwnode_handle_put" is_defined: true symbol_type: FUNCTION - crc: 0x2320324f + crc: 0x6945b4b6 type_id: 0x11bc7f41 full_name: "fwnode_handle_put" } @@ -339299,7 +343278,7 @@ elf_symbol { name: "fwnode_property_present" is_defined: true symbol_type: FUNCTION - crc: 0x78a6294d + crc: 0x58c37c5a type_id: 0xf1d9014d full_name: "fwnode_property_present" } @@ -339308,7 +343287,7 @@ elf_symbol { name: "fwnode_property_read_string" is_defined: true symbol_type: FUNCTION - crc: 0xfa365027 + crc: 0x16c675b5 type_id: 0x92fcfc63 full_name: "fwnode_property_read_string" } @@ -339317,7 +343296,7 @@ elf_symbol { name: "fwnode_property_read_u32_array" is_defined: true symbol_type: FUNCTION - crc: 0xc7174eca + crc: 0x70a2c8f8 type_id: 0x92f05d3f full_name: "fwnode_property_read_u32_array" } @@ -339326,7 +343305,7 @@ elf_symbol { name: "fwnode_property_read_u8_array" is_defined: true symbol_type: FUNCTION - crc: 0xc8efd96a + crc: 0x11bb9d1b type_id: 0x92fe587a full_name: "fwnode_property_read_u8_array" } @@ -339335,7 +343314,7 @@ elf_symbol { name: "fwnode_usb_role_switch_get" is_defined: true symbol_type: FUNCTION - crc: 0x55bb3d13 + crc: 0xcfaa2036 type_id: 0x84380e6d full_name: "fwnode_usb_role_switch_get" } @@ -339488,7 +343467,7 @@ elf_symbol { name: "generic_device_group" is_defined: true symbol_type: FUNCTION - crc: 0x9b02e67f + crc: 0x4b4238be type_id: 0x7e204efc full_name: "generic_device_group" } @@ -339497,7 +343476,7 @@ elf_symbol { name: "generic_file_llseek" is_defined: true symbol_type: FUNCTION - crc: 0x762c9227 + crc: 0xf817672e type_id: 0x2d64ae3e full_name: "generic_file_llseek" } @@ -339506,7 +343485,7 @@ elf_symbol { name: "generic_file_read_iter" is_defined: true symbol_type: FUNCTION - crc: 0x2e6332f7 + crc: 0xe4dece03 type_id: 0x16637235 full_name: "generic_file_read_iter" } @@ -339515,7 +343494,7 @@ elf_symbol { name: "generic_handle_domain_irq" is_defined: true symbol_type: FUNCTION - crc: 0x15dbc0e4 + crc: 0x236c8b61 type_id: 0x9abe486f full_name: "generic_handle_domain_irq" } @@ -339533,7 +343512,7 @@ elf_symbol { name: "generic_mii_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0x76c59eb1 + crc: 0xedcb02fa type_id: 0x99c885a2 full_name: "generic_mii_ioctl" } @@ -339542,16 +343521,25 @@ elf_symbol { name: "generic_perform_write" is_defined: true symbol_type: FUNCTION - crc: 0xcf7bdfeb + crc: 0xd04c90e5 type_id: 0x16637235 full_name: "generic_perform_write" } +elf_symbol { + id: 0x798f83da + name: "generic_shutdown_super" + is_defined: true + symbol_type: FUNCTION + crc: 0xf8a73589 + type_id: 0x1923cb99 + full_name: "generic_shutdown_super" +} elf_symbol { id: 0x542785af name: "generic_write_checks" is_defined: true symbol_type: FUNCTION - crc: 0x01c8295b + crc: 0xd1c146fc type_id: 0x16637235 full_name: "generic_write_checks" } @@ -339560,7 +343548,7 @@ elf_symbol { name: "geni_icc_disable" is_defined: true symbol_type: FUNCTION - crc: 0x0e9629c0 + crc: 0x83c074de type_id: 0x9a8dcf13 full_name: "geni_icc_disable" } @@ -339569,7 +343557,7 @@ elf_symbol { name: "geni_icc_enable" is_defined: true symbol_type: FUNCTION - crc: 0xec5b3367 + crc: 0xf6a0c717 type_id: 0x9a8dcf13 full_name: "geni_icc_enable" } @@ -339578,7 +343566,7 @@ elf_symbol { name: "geni_icc_get" is_defined: true symbol_type: FUNCTION - crc: 0xf20f6f65 + crc: 0x94242802 type_id: 0x9a758dc7 full_name: "geni_icc_get" } @@ -339587,7 +343575,7 @@ elf_symbol { name: "geni_icc_set_bw" is_defined: true symbol_type: FUNCTION - crc: 0xbaf154e1 + crc: 0xef036222 type_id: 0x9a8dcf13 full_name: "geni_icc_set_bw" } @@ -339596,7 +343584,7 @@ elf_symbol { name: "geni_se_clk_freq_match" is_defined: true symbol_type: FUNCTION - crc: 0xb66873dc + crc: 0xbca364c7 type_id: 0x9a46e4b3 full_name: "geni_se_clk_freq_match" } @@ -339605,7 +343593,7 @@ elf_symbol { name: "geni_se_config_packing" is_defined: true symbol_type: FUNCTION - crc: 0x27004503 + crc: 0xb66c3bfe type_id: 0x161199c0 full_name: "geni_se_config_packing" } @@ -339614,7 +343602,7 @@ elf_symbol { name: "geni_se_get_qup_hw_version" is_defined: true symbol_type: FUNCTION - crc: 0xf823aabd + crc: 0x8f65520b type_id: 0x42f5075e full_name: "geni_se_get_qup_hw_version" } @@ -339623,7 +343611,7 @@ elf_symbol { name: "geni_se_init" is_defined: true symbol_type: FUNCTION - crc: 0xecf91967 + crc: 0x85b53fff type_id: 0x14831f09 full_name: "geni_se_init" } @@ -339632,7 +343620,7 @@ elf_symbol { name: "geni_se_resources_off" is_defined: true symbol_type: FUNCTION - crc: 0x830d46a8 + crc: 0x10a2e9c1 type_id: 0x9a8dcf13 full_name: "geni_se_resources_off" } @@ -339641,7 +343629,7 @@ elf_symbol { name: "geni_se_resources_on" is_defined: true symbol_type: FUNCTION - crc: 0xea66d691 + crc: 0x7df02e52 type_id: 0x9a8dcf13 full_name: "geni_se_resources_on" } @@ -339650,7 +343638,7 @@ elf_symbol { name: "geni_se_rx_dma_prep" is_defined: true symbol_type: FUNCTION - crc: 0x5e54152b + crc: 0x83923657 type_id: 0x9ad2fdb3 full_name: "geni_se_rx_dma_prep" } @@ -339659,7 +343647,7 @@ elf_symbol { name: "geni_se_rx_dma_unprep" is_defined: true symbol_type: FUNCTION - crc: 0xdb60fcc9 + crc: 0xc508f850 type_id: 0x1428c8a6 full_name: "geni_se_rx_dma_unprep" } @@ -339668,7 +343656,7 @@ elf_symbol { name: "geni_se_select_mode" is_defined: true symbol_type: FUNCTION - crc: 0xbb24b5ae + crc: 0x73606cd0 type_id: 0x169ed235 full_name: "geni_se_select_mode" } @@ -339677,7 +343665,7 @@ elf_symbol { name: "geni_se_tx_dma_prep" is_defined: true symbol_type: FUNCTION - crc: 0xdfc4f720 + crc: 0xad66f083 type_id: 0x9ad2fdb3 full_name: "geni_se_tx_dma_prep" } @@ -339686,7 +343674,7 @@ elf_symbol { name: "geni_se_tx_dma_unprep" is_defined: true symbol_type: FUNCTION - crc: 0xf7c8b970 + crc: 0xb4d3caee type_id: 0x1428c8a6 full_name: "geni_se_tx_dma_unprep" } @@ -339695,7 +343683,7 @@ elf_symbol { name: "genl_notify" is_defined: true symbol_type: FUNCTION - crc: 0x80e6c462 + crc: 0x50423085 type_id: 0x1c9aeba3 full_name: "genl_notify" } @@ -339704,7 +343692,7 @@ elf_symbol { name: "genl_register_family" is_defined: true symbol_type: FUNCTION - crc: 0xf22da820 + crc: 0x372099d0 type_id: 0x92d3febd full_name: "genl_register_family" } @@ -339713,7 +343701,7 @@ elf_symbol { name: "genl_unregister_family" is_defined: true symbol_type: FUNCTION - crc: 0x51d41f47 + crc: 0xf4371d86 type_id: 0x91983762 full_name: "genl_unregister_family" } @@ -339722,7 +343710,7 @@ elf_symbol { name: "genlmsg_multicast_allns" is_defined: true symbol_type: FUNCTION - crc: 0x98d2f5d0 + crc: 0x9c5e1a99 type_id: 0x91be62b0 full_name: "genlmsg_multicast_allns" } @@ -339731,7 +343719,7 @@ elf_symbol { name: "genlmsg_put" is_defined: true symbol_type: FUNCTION - crc: 0x6919cbcf + crc: 0x51367111 type_id: 0x54d3d1f1 full_name: "genlmsg_put" } @@ -339740,7 +343728,7 @@ elf_symbol { name: "genphy_read_abilities" is_defined: true symbol_type: FUNCTION - crc: 0x9aba8e74 + crc: 0x5bc69ec5 type_id: 0x91dd4b0e full_name: "genphy_read_abilities" } @@ -339749,7 +343737,7 @@ elf_symbol { name: "genphy_read_lpa" is_defined: true symbol_type: FUNCTION - crc: 0x4ee7e370 + crc: 0xbd9b78a6 type_id: 0x91dd4b0e full_name: "genphy_read_lpa" } @@ -339758,7 +343746,7 @@ elf_symbol { name: "genphy_read_mmd_unsupported" is_defined: true symbol_type: FUNCTION - crc: 0xc3c63117 + crc: 0x9059fcc1 type_id: 0x90659b2d full_name: "genphy_read_mmd_unsupported" } @@ -339767,7 +343755,7 @@ elf_symbol { name: "genphy_read_status" is_defined: true symbol_type: FUNCTION - crc: 0x831c813e + crc: 0x91ffa553 type_id: 0x91dd4b0e full_name: "genphy_read_status" } @@ -339776,7 +343764,7 @@ elf_symbol { name: "genphy_restart_aneg" is_defined: true symbol_type: FUNCTION - crc: 0x17d78b4d + crc: 0x3ece52da type_id: 0x91dd4b0e full_name: "genphy_restart_aneg" } @@ -339785,7 +343773,7 @@ elf_symbol { name: "genphy_resume" is_defined: true symbol_type: FUNCTION - crc: 0x6953cc9f + crc: 0x0bf53dd7 type_id: 0x91dd4b0e full_name: "genphy_resume" } @@ -339794,7 +343782,7 @@ elf_symbol { name: "genphy_soft_reset" is_defined: true symbol_type: FUNCTION - crc: 0xc610d624 + crc: 0x42f4ca7e type_id: 0x91dd4b0e full_name: "genphy_soft_reset" } @@ -339803,7 +343791,7 @@ elf_symbol { name: "genphy_suspend" is_defined: true symbol_type: FUNCTION - crc: 0xe326a2e0 + crc: 0x1b52aecc type_id: 0x91dd4b0e full_name: "genphy_suspend" } @@ -339812,7 +343800,7 @@ elf_symbol { name: "genphy_update_link" is_defined: true symbol_type: FUNCTION - crc: 0xb214af76 + crc: 0xf75f02fd type_id: 0x91dd4b0e full_name: "genphy_update_link" } @@ -339821,7 +343809,7 @@ elf_symbol { name: "genphy_write_mmd_unsupported" is_defined: true symbol_type: FUNCTION - crc: 0xcb8c5ba6 + crc: 0xa780991a type_id: 0x9067de1b full_name: "genphy_write_mmd_unsupported" } @@ -339839,7 +343827,7 @@ elf_symbol { name: "get_cpu_device" is_defined: true symbol_type: FUNCTION - crc: 0x0ea1c372 + crc: 0xf02f2876 type_id: 0xbc4e69b1 full_name: "get_cpu_device" } @@ -339875,7 +343863,7 @@ elf_symbol { name: "get_device" is_defined: true symbol_type: FUNCTION - crc: 0xe066d2a5 + crc: 0x201a6bd8 type_id: 0xadb90e65 full_name: "get_device" } @@ -339884,7 +343872,7 @@ elf_symbol { name: "get_device_system_crosststamp" is_defined: true symbol_type: FUNCTION - crc: 0x005ae62e + crc: 0xf3e27363 type_id: 0x96a1bf82 full_name: "get_device_system_crosststamp" } @@ -339893,7 +343881,7 @@ elf_symbol { name: "get_each_object_track" is_defined: true symbol_type: FUNCTION - crc: 0x15211dc0 + crc: 0xe0416926 namespace: "MINIDUMP" type_id: 0x3a16a200 full_name: "get_each_object_track" @@ -339903,7 +343891,7 @@ elf_symbol { name: "get_governor_parent_kobj" is_defined: true symbol_type: FUNCTION - crc: 0x696ba930 + crc: 0xc08c3b54 type_id: 0x3e5176fa full_name: "get_governor_parent_kobj" } @@ -339912,7 +343900,7 @@ elf_symbol { name: "get_net_ns_by_fd" is_defined: true symbol_type: FUNCTION - crc: 0xd536b05c + crc: 0x8880ecd3 type_id: 0x5102ac9f full_name: "get_net_ns_by_fd" } @@ -339921,7 +343909,7 @@ elf_symbol { name: "get_net_ns_by_pid" is_defined: true symbol_type: FUNCTION - crc: 0x0eed58c0 + crc: 0xd08800c1 type_id: 0x5aa4ba2d full_name: "get_net_ns_by_pid" } @@ -339958,7 +343946,7 @@ elf_symbol { name: "get_pfnblock_flags_mask" is_defined: true symbol_type: FUNCTION - crc: 0x0c685765 + crc: 0xff170736 type_id: 0x3ec9e358 full_name: "get_pfnblock_flags_mask" } @@ -339967,7 +343955,7 @@ elf_symbol { name: "get_pid_task" is_defined: true symbol_type: FUNCTION - crc: 0xf448675c + crc: 0xb1c94690 type_id: 0x7f0f4bf3 full_name: "get_pid_task" } @@ -340030,7 +344018,7 @@ elf_symbol { name: "get_slabinfo" is_defined: true symbol_type: FUNCTION - crc: 0xdd8ce2dd + crc: 0xd8a7841d namespace: "MINIDUMP" type_id: 0x1bc52dc4 full_name: "get_slabinfo" @@ -340058,7 +344046,7 @@ elf_symbol { name: "get_task_mm" is_defined: true symbol_type: FUNCTION - crc: 0x7b2f6a03 + crc: 0xa457d6f0 type_id: 0xf152640a full_name: "get_task_mm" } @@ -340067,7 +344055,7 @@ elf_symbol { name: "get_task_pid" is_defined: true symbol_type: FUNCTION - crc: 0xaa449d87 + crc: 0x56e41e8d type_id: 0x2d5eecc4 full_name: "get_task_pid" } @@ -340076,7 +344064,7 @@ elf_symbol { name: "get_thermal_instance" is_defined: true symbol_type: FUNCTION - crc: 0xa78bd3c1 + crc: 0xf270a723 type_id: 0xb913af05 full_name: "get_thermal_instance" } @@ -340085,7 +344073,7 @@ elf_symbol { name: "get_unmapped_area" is_defined: true symbol_type: FUNCTION - crc: 0x8b510860 + crc: 0xc99f4eef type_id: 0x37579e28 full_name: "get_unmapped_area" } @@ -340112,7 +344100,7 @@ elf_symbol { name: "get_user_pages" is_defined: true symbol_type: FUNCTION - crc: 0x483b2f53 + crc: 0xe8584b18 type_id: 0xab21f8b5 full_name: "get_user_pages" } @@ -340121,7 +344109,7 @@ elf_symbol { name: "get_user_pages_fast" is_defined: true symbol_type: FUNCTION - crc: 0x43656b7e + crc: 0xc5fc8295 type_id: 0x90d074d8 full_name: "get_user_pages_fast" } @@ -340139,7 +344127,7 @@ elf_symbol { name: "get_wiphy_regdom" is_defined: true symbol_type: FUNCTION - crc: 0xde45d045 + crc: 0xf72d2c64 type_id: 0x749f3e5c full_name: "get_wiphy_regdom" } @@ -340211,7 +344199,7 @@ elf_symbol { name: "gov_attr_set_get" is_defined: true symbol_type: FUNCTION - crc: 0x3ae25ebb + crc: 0x34f7f2c8 type_id: 0x1951a486 full_name: "gov_attr_set_get" } @@ -340220,7 +344208,7 @@ elf_symbol { name: "gov_attr_set_init" is_defined: true symbol_type: FUNCTION - crc: 0x87d6b5a0 + crc: 0xbdeef538 type_id: 0x1951a486 full_name: "gov_attr_set_init" } @@ -340229,7 +344217,7 @@ elf_symbol { name: "gov_attr_set_put" is_defined: true symbol_type: FUNCTION - crc: 0xd7b585e8 + crc: 0xdbaf8148 type_id: 0xc7128bee full_name: "gov_attr_set_put" } @@ -340238,7 +344226,7 @@ elf_symbol { name: "gov_update_cpu_data" is_defined: true symbol_type: FUNCTION - crc: 0x977eac7f + crc: 0x1b59d620 type_id: 0x1e80bbd4 full_name: "gov_update_cpu_data" } @@ -340247,7 +344235,7 @@ elf_symbol { name: "governor_sysfs_ops" is_defined: true symbol_type: OBJECT - crc: 0x295d9ca1 + crc: 0x2d5a02dc type_id: 0xe7d52a38 full_name: "governor_sysfs_ops" } @@ -340278,6 +344266,15 @@ elf_symbol { type_id: 0x8c19f874 full_name: "gpio_request" } +elf_symbol { + id: 0xe9a558bf + name: "gpio_request_array" + is_defined: true + symbol_type: FUNCTION + crc: 0x9ba2bb2b + type_id: 0x923e6d3f + full_name: "gpio_request_array" +} elf_symbol { id: 0x260ae9d8 name: "gpio_request_one" @@ -340292,7 +344289,7 @@ elf_symbol { name: "gpio_to_desc" is_defined: true symbol_type: FUNCTION - crc: 0x108d93c1 + crc: 0x8c132b44 type_id: 0x4e221f3c full_name: "gpio_to_desc" } @@ -340301,7 +344298,7 @@ elf_symbol { name: "gpiochip_add_data_with_key" is_defined: true symbol_type: FUNCTION - crc: 0x6aee13c5 + crc: 0x787d90ee type_id: 0x9bdd396a full_name: "gpiochip_add_data_with_key" } @@ -340310,7 +344307,7 @@ elf_symbol { name: "gpiochip_add_pin_range" is_defined: true symbol_type: FUNCTION - crc: 0x8f06d4a4 + crc: 0xc60e9b39 type_id: 0x9b51540b full_name: "gpiochip_add_pin_range" } @@ -340319,7 +344316,7 @@ elf_symbol { name: "gpiochip_disable_irq" is_defined: true symbol_type: FUNCTION - crc: 0x1dba457d + crc: 0x7ef1e829 type_id: 0x17b7d7d6 full_name: "gpiochip_disable_irq" } @@ -340328,7 +344325,7 @@ elf_symbol { name: "gpiochip_enable_irq" is_defined: true symbol_type: FUNCTION - crc: 0x86d09760 + crc: 0x70e145e9 type_id: 0x17b7d7d6 full_name: "gpiochip_enable_irq" } @@ -340337,7 +344334,7 @@ elf_symbol { name: "gpiochip_find" is_defined: true symbol_type: FUNCTION - crc: 0x9cf94177 + crc: 0xca5eade0 type_id: 0x46082d09 full_name: "gpiochip_find" } @@ -340346,7 +344343,7 @@ elf_symbol { name: "gpiochip_generic_config" is_defined: true symbol_type: FUNCTION - crc: 0xff135cbc + crc: 0x9db34dd3 type_id: 0x9aa3b833 full_name: "gpiochip_generic_config" } @@ -340355,7 +344352,7 @@ elf_symbol { name: "gpiochip_generic_free" is_defined: true symbol_type: FUNCTION - crc: 0xe1de10af + crc: 0xa32c4672 type_id: 0x17b7d7d6 full_name: "gpiochip_generic_free" } @@ -340364,7 +344361,7 @@ elf_symbol { name: "gpiochip_generic_request" is_defined: true symbol_type: FUNCTION - crc: 0x9d03646a + crc: 0xa2b734bc type_id: 0x9aaf656a full_name: "gpiochip_generic_request" } @@ -340373,7 +344370,7 @@ elf_symbol { name: "gpiochip_get_data" is_defined: true symbol_type: FUNCTION - crc: 0xe3f09d7c + crc: 0x52c1e2bb type_id: 0x50af222c full_name: "gpiochip_get_data" } @@ -340382,7 +344379,7 @@ elf_symbol { name: "gpiochip_irq_relres" is_defined: true symbol_type: FUNCTION - crc: 0x3ed16ebd + crc: 0x2a5379ee type_id: 0x1247424a full_name: "gpiochip_irq_relres" } @@ -340391,7 +344388,7 @@ elf_symbol { name: "gpiochip_irq_reqres" is_defined: true symbol_type: FUNCTION - crc: 0xbbc269d1 + crc: 0x5c64cdbc type_id: 0x9f5ff0f6 full_name: "gpiochip_irq_reqres" } @@ -340400,7 +344397,7 @@ elf_symbol { name: "gpiochip_line_is_valid" is_defined: true symbol_type: FUNCTION - crc: 0x593073a5 + crc: 0xf0ea4345 type_id: 0xf1f03942 full_name: "gpiochip_line_is_valid" } @@ -340409,7 +344406,7 @@ elf_symbol { name: "gpiochip_lock_as_irq" is_defined: true symbol_type: FUNCTION - crc: 0x67271e60 + crc: 0x89f05da2 type_id: 0x9aaf656a full_name: "gpiochip_lock_as_irq" } @@ -340418,7 +344415,7 @@ elf_symbol { name: "gpiochip_populate_parent_fwspec_fourcell" is_defined: true symbol_type: FUNCTION - crc: 0x794ac220 + crc: 0x6367d914 type_id: 0x9b54e21c full_name: "gpiochip_populate_parent_fwspec_fourcell" } @@ -340427,7 +344424,7 @@ elf_symbol { name: "gpiochip_remove" is_defined: true symbol_type: FUNCTION - crc: 0x24e1a560 + crc: 0x94514ac0 type_id: 0x16a1c24e full_name: "gpiochip_remove" } @@ -340436,7 +344433,7 @@ elf_symbol { name: "gpiochip_unlock_as_irq" is_defined: true symbol_type: FUNCTION - crc: 0x8d96ce0c + crc: 0xed670826 type_id: 0x17b7d7d6 full_name: "gpiochip_unlock_as_irq" } @@ -340445,7 +344442,7 @@ elf_symbol { name: "gpiod_cansleep" is_defined: true symbol_type: FUNCTION - crc: 0xa8cf0e9c + crc: 0x0f4cca5e type_id: 0x901afa25 full_name: "gpiod_cansleep" } @@ -340454,7 +344451,7 @@ elf_symbol { name: "gpiod_count" is_defined: true symbol_type: FUNCTION - crc: 0x999d861e + crc: 0xa8681359 type_id: 0x9dee9fa0 full_name: "gpiod_count" } @@ -340463,7 +344460,7 @@ elf_symbol { name: "gpiod_direction_input" is_defined: true symbol_type: FUNCTION - crc: 0xa3a448bf + crc: 0xbfd5c891 type_id: 0x94d8cba3 full_name: "gpiod_direction_input" } @@ -340472,7 +344469,7 @@ elf_symbol { name: "gpiod_direction_output" is_defined: true symbol_type: FUNCTION - crc: 0x12323db6 + crc: 0xc1e93221 type_id: 0x954448ef full_name: "gpiod_direction_output" } @@ -340481,7 +344478,7 @@ elf_symbol { name: "gpiod_direction_output_raw" is_defined: true symbol_type: FUNCTION - crc: 0xde10d9fd + crc: 0xef7aec95 type_id: 0x954448ef full_name: "gpiod_direction_output_raw" } @@ -340490,7 +344487,7 @@ elf_symbol { name: "gpiod_get" is_defined: true symbol_type: FUNCTION - crc: 0x440bf718 + crc: 0x31c03f92 type_id: 0x5f272d07 full_name: "gpiod_get" } @@ -340499,7 +344496,7 @@ elf_symbol { name: "gpiod_get_optional" is_defined: true symbol_type: FUNCTION - crc: 0x0ccc8e96 + crc: 0xc3010fc6 type_id: 0x5f272d07 full_name: "gpiod_get_optional" } @@ -340508,7 +344505,7 @@ elf_symbol { name: "gpiod_get_raw_value" is_defined: true symbol_type: FUNCTION - crc: 0x91f32993 + crc: 0x30d807bd type_id: 0x901afa25 full_name: "gpiod_get_raw_value" } @@ -340517,7 +344514,7 @@ elf_symbol { name: "gpiod_get_raw_value_cansleep" is_defined: true symbol_type: FUNCTION - crc: 0x04a99c4b + crc: 0xd5275d75 type_id: 0x901afa25 full_name: "gpiod_get_raw_value_cansleep" } @@ -340526,7 +344523,7 @@ elf_symbol { name: "gpiod_get_value" is_defined: true symbol_type: FUNCTION - crc: 0x45c2d4be + crc: 0xba15c8de type_id: 0x901afa25 full_name: "gpiod_get_value" } @@ -340535,7 +344532,7 @@ elf_symbol { name: "gpiod_get_value_cansleep" is_defined: true symbol_type: FUNCTION - crc: 0x94c208fb + crc: 0x01ae7c7a type_id: 0x901afa25 full_name: "gpiod_get_value_cansleep" } @@ -340544,7 +344541,7 @@ elf_symbol { name: "gpiod_is_active_low" is_defined: true symbol_type: FUNCTION - crc: 0x2daa48e5 + crc: 0x0f3a6b0c type_id: 0x901afa25 full_name: "gpiod_is_active_low" } @@ -340553,7 +344550,7 @@ elf_symbol { name: "gpiod_put" is_defined: true symbol_type: FUNCTION - crc: 0x5fb332f2 + crc: 0x1127f9ca type_id: 0x19c0791f full_name: "gpiod_put" } @@ -340562,7 +344559,7 @@ elf_symbol { name: "gpiod_set_consumer_name" is_defined: true symbol_type: FUNCTION - crc: 0x415040fe + crc: 0x243c2a91 type_id: 0x94208977 full_name: "gpiod_set_consumer_name" } @@ -340571,7 +344568,7 @@ elf_symbol { name: "gpiod_set_debounce" is_defined: true symbol_type: FUNCTION - crc: 0x49e3bf87 + crc: 0x4810f07f type_id: 0x95cede3b full_name: "gpiod_set_debounce" } @@ -340580,7 +344577,7 @@ elf_symbol { name: "gpiod_set_raw_value" is_defined: true symbol_type: FUNCTION - crc: 0xe4611f99 + crc: 0x2bed46f4 type_id: 0x185cfa53 full_name: "gpiod_set_raw_value" } @@ -340589,7 +344586,7 @@ elf_symbol { name: "gpiod_set_raw_value_cansleep" is_defined: true symbol_type: FUNCTION - crc: 0xcda5ed3a + crc: 0x36d67d8d type_id: 0x185cfa53 full_name: "gpiod_set_raw_value_cansleep" } @@ -340598,7 +344595,7 @@ elf_symbol { name: "gpiod_set_value" is_defined: true symbol_type: FUNCTION - crc: 0x39ee594d + crc: 0xa9d75b9b type_id: 0x185cfa53 full_name: "gpiod_set_value" } @@ -340607,7 +344604,7 @@ elf_symbol { name: "gpiod_set_value_cansleep" is_defined: true symbol_type: FUNCTION - crc: 0xbb42a38f + crc: 0x0dd958cd type_id: 0x185cfa53 full_name: "gpiod_set_value_cansleep" } @@ -340616,7 +344613,7 @@ elf_symbol { name: "gpiod_to_chip" is_defined: true symbol_type: FUNCTION - crc: 0xd9f05e6b + crc: 0xeefa9fb0 type_id: 0x4d0cf62c full_name: "gpiod_to_chip" } @@ -340625,7 +344622,7 @@ elf_symbol { name: "gpiod_to_irq" is_defined: true symbol_type: FUNCTION - crc: 0x1df1f674 + crc: 0xe17b13e3 type_id: 0x901afa25 full_name: "gpiod_to_irq" } @@ -340634,7 +344631,7 @@ elf_symbol { name: "gre_add_protocol" is_defined: true symbol_type: FUNCTION - crc: 0xae863690 + crc: 0xce6d609a type_id: 0x92801eb4 full_name: "gre_add_protocol" } @@ -340643,7 +344640,7 @@ elf_symbol { name: "gre_del_protocol" is_defined: true symbol_type: FUNCTION - crc: 0x44445ba1 + crc: 0x7b7a31df type_id: 0x92801eb4 full_name: "gre_del_protocol" } @@ -340661,7 +344658,7 @@ elf_symbol { name: "gro_cells_init" is_defined: true symbol_type: FUNCTION - crc: 0xe40077a7 + crc: 0xa35ccadf type_id: 0x96fd9031 full_name: "gro_cells_init" } @@ -340670,7 +344667,7 @@ elf_symbol { name: "gro_cells_receive" is_defined: true symbol_type: FUNCTION - crc: 0x32d2c6ac + crc: 0xcf6284ef type_id: 0x9622351a full_name: "gro_cells_receive" } @@ -340706,7 +344703,7 @@ elf_symbol { name: "gserial_connect" is_defined: true symbol_type: FUNCTION - crc: 0x851bab15 + crc: 0x10c53ceb type_id: 0x96521268 full_name: "gserial_connect" } @@ -340715,7 +344712,7 @@ elf_symbol { name: "gserial_disconnect" is_defined: true symbol_type: FUNCTION - crc: 0x28b2a088 + crc: 0xde70de70 type_id: 0x1befd11c full_name: "gserial_disconnect" } @@ -340733,7 +344730,7 @@ elf_symbol { name: "gserial_resume" is_defined: true symbol_type: FUNCTION - crc: 0xe5369753 + crc: 0x8d419685 type_id: 0x1befd11c full_name: "gserial_resume" } @@ -340742,7 +344739,7 @@ elf_symbol { name: "gserial_suspend" is_defined: true symbol_type: FUNCTION - crc: 0x45343872 + crc: 0x850ccf65 type_id: 0x1befd11c full_name: "gserial_suspend" } @@ -340760,7 +344757,7 @@ elf_symbol { name: "h4_recv_buf" is_defined: true symbol_type: FUNCTION - crc: 0x230e4bf2 + crc: 0xc083d1ee type_id: 0x6ff47396 full_name: "h4_recv_buf" } @@ -340769,7 +344766,7 @@ elf_symbol { name: "handle_bad_irq" is_defined: true symbol_type: FUNCTION - crc: 0xac07b340 + crc: 0xa09e8b73 type_id: 0x1c4a186e full_name: "handle_bad_irq" } @@ -340778,7 +344775,7 @@ elf_symbol { name: "handle_edge_irq" is_defined: true symbol_type: FUNCTION - crc: 0x7a049007 + crc: 0xdd8e1b6c type_id: 0x1c4a186e full_name: "handle_edge_irq" } @@ -340787,7 +344784,7 @@ elf_symbol { name: "handle_fasteoi_ack_irq" is_defined: true symbol_type: FUNCTION - crc: 0xd8291644 + crc: 0x97792a4f type_id: 0x1c4a186e full_name: "handle_fasteoi_ack_irq" } @@ -340796,7 +344793,7 @@ elf_symbol { name: "handle_fasteoi_irq" is_defined: true symbol_type: FUNCTION - crc: 0xd08fde48 + crc: 0x5c8c0b02 type_id: 0x1c4a186e full_name: "handle_fasteoi_irq" } @@ -340805,7 +344802,7 @@ elf_symbol { name: "handle_level_irq" is_defined: true symbol_type: FUNCTION - crc: 0xfb5754a8 + crc: 0x305c79b8 type_id: 0x1c4a186e full_name: "handle_level_irq" } @@ -340823,7 +344820,7 @@ elf_symbol { name: "handle_simple_irq" is_defined: true symbol_type: FUNCTION - crc: 0x0d5fe187 + crc: 0x81cf0d6d type_id: 0x1c4a186e full_name: "handle_simple_irq" } @@ -340859,7 +344856,7 @@ elf_symbol { name: "hci_alloc_dev_priv" is_defined: true symbol_type: FUNCTION - crc: 0x0d0aaa06 + crc: 0x7327ebdc type_id: 0x9502ce9c full_name: "hci_alloc_dev_priv" } @@ -340868,7 +344865,7 @@ elf_symbol { name: "hci_cmd_sync" is_defined: true symbol_type: FUNCTION - crc: 0x63b51db0 + crc: 0x2ac839f8 type_id: 0x6d996ee0 full_name: "hci_cmd_sync" } @@ -340877,7 +344874,7 @@ elf_symbol { name: "hci_cmd_sync_cancel" is_defined: true symbol_type: FUNCTION - crc: 0xb8523da4 + crc: 0xee0f113d type_id: 0x167427d5 full_name: "hci_cmd_sync_cancel" } @@ -340886,7 +344883,7 @@ elf_symbol { name: "hci_cmd_sync_queue" is_defined: true symbol_type: FUNCTION - crc: 0xca4ae279 + crc: 0xfad88649 type_id: 0x9b91c1d8 full_name: "hci_cmd_sync_queue" } @@ -340895,7 +344892,7 @@ elf_symbol { name: "hci_conn_check_secure" is_defined: true symbol_type: FUNCTION - crc: 0x9e40f037 + crc: 0x90a90837 type_id: 0x958cf238 full_name: "hci_conn_check_secure" } @@ -340904,7 +344901,7 @@ elf_symbol { name: "hci_conn_security" is_defined: true symbol_type: FUNCTION - crc: 0x97a17512 + crc: 0xed172875 type_id: 0x95a1be2b full_name: "hci_conn_security" } @@ -340913,7 +344910,7 @@ elf_symbol { name: "hci_conn_switch_role" is_defined: true symbol_type: FUNCTION - crc: 0xf1303564 + crc: 0x3220f186 type_id: 0x958cf238 full_name: "hci_conn_switch_role" } @@ -340922,7 +344919,7 @@ elf_symbol { name: "hci_free_dev" is_defined: true symbol_type: FUNCTION - crc: 0xff221cd7 + crc: 0xaede44a2 type_id: 0x17e8a499 full_name: "hci_free_dev" } @@ -340931,7 +344928,7 @@ elf_symbol { name: "hci_get_route" is_defined: true symbol_type: FUNCTION - crc: 0x800a027e + crc: 0x9fe21ab5 type_id: 0x8493c696 full_name: "hci_get_route" } @@ -340940,7 +344937,7 @@ elf_symbol { name: "hci_mgmt_chan_register" is_defined: true symbol_type: FUNCTION - crc: 0x6cac926e + crc: 0x82d0be79 type_id: 0x9a299233 full_name: "hci_mgmt_chan_register" } @@ -340949,7 +344946,7 @@ elf_symbol { name: "hci_mgmt_chan_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xbb1e4a1c + crc: 0xb8e267d6 type_id: 0x1731208f full_name: "hci_mgmt_chan_unregister" } @@ -340958,7 +344955,7 @@ elf_symbol { name: "hci_recv_diag" is_defined: true symbol_type: FUNCTION - crc: 0x1a9bd2a9 + crc: 0x5766024c type_id: 0x9ae52b81 full_name: "hci_recv_diag" } @@ -340967,7 +344964,7 @@ elf_symbol { name: "hci_recv_frame" is_defined: true symbol_type: FUNCTION - crc: 0x62ec26fa + crc: 0x962a0e84 type_id: 0x9ae52b81 full_name: "hci_recv_frame" } @@ -340976,7 +344973,7 @@ elf_symbol { name: "hci_register_cb" is_defined: true symbol_type: FUNCTION - crc: 0xab84fbaf + crc: 0xbb8d2d96 type_id: 0x9684db0e full_name: "hci_register_cb" } @@ -340985,7 +344982,7 @@ elf_symbol { name: "hci_register_dev" is_defined: true symbol_type: FUNCTION - crc: 0x7f28213c + crc: 0x69a26227 type_id: 0x9af01625 full_name: "hci_register_dev" } @@ -340994,7 +344991,7 @@ elf_symbol { name: "hci_release_dev" is_defined: true symbol_type: FUNCTION - crc: 0x10a8d2e3 + crc: 0x832cf3f2 type_id: 0x17e8a499 full_name: "hci_release_dev" } @@ -341003,7 +345000,7 @@ elf_symbol { name: "hci_reset_dev" is_defined: true symbol_type: FUNCTION - crc: 0xdad113e1 + crc: 0xc28320d8 type_id: 0x9af01625 full_name: "hci_reset_dev" } @@ -341012,7 +345009,7 @@ elf_symbol { name: "hci_resume_dev" is_defined: true symbol_type: FUNCTION - crc: 0x6960b467 + crc: 0x35a616fc type_id: 0x9af01625 full_name: "hci_resume_dev" } @@ -341021,7 +345018,7 @@ elf_symbol { name: "hci_set_fw_info" is_defined: true symbol_type: FUNCTION - crc: 0x65c9d50a + crc: 0xed4b1567 type_id: 0x1739accf full_name: "hci_set_fw_info" } @@ -341030,7 +345027,7 @@ elf_symbol { name: "hci_set_hw_info" is_defined: true symbol_type: FUNCTION - crc: 0xc765a762 + crc: 0x2700f15c type_id: 0x1739accf full_name: "hci_set_hw_info" } @@ -341039,7 +345036,7 @@ elf_symbol { name: "hci_suspend_dev" is_defined: true symbol_type: FUNCTION - crc: 0xb45c1d82 + crc: 0xebd0090d type_id: 0x9af01625 full_name: "hci_suspend_dev" } @@ -341048,7 +345045,7 @@ elf_symbol { name: "hci_uart_register_device" is_defined: true symbol_type: FUNCTION - crc: 0x0601fcb2 + crc: 0x7deb0737 type_id: 0x959a93b5 full_name: "hci_uart_register_device" } @@ -341057,7 +345054,7 @@ elf_symbol { name: "hci_uart_tx_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0xbcbae563 + crc: 0x65709eb5 type_id: 0x9553fb18 full_name: "hci_uart_tx_wakeup" } @@ -341066,7 +345063,7 @@ elf_symbol { name: "hci_uart_unregister_device" is_defined: true symbol_type: FUNCTION - crc: 0x470a2e05 + crc: 0x875245f3 type_id: 0x184b49a4 full_name: "hci_uart_unregister_device" } @@ -341075,7 +345072,7 @@ elf_symbol { name: "hci_unregister_cb" is_defined: true symbol_type: FUNCTION - crc: 0x5ea74258 + crc: 0xdc3cbf23 type_id: 0x9684db0e full_name: "hci_unregister_cb" } @@ -341084,7 +345081,7 @@ elf_symbol { name: "hci_unregister_dev" is_defined: true symbol_type: FUNCTION - crc: 0x91b2f46a + crc: 0x16415c65 type_id: 0x17e8a499 full_name: "hci_unregister_dev" } @@ -341156,7 +345153,7 @@ elf_symbol { name: "hid_add_device" is_defined: true symbol_type: FUNCTION - crc: 0xb036ebc7 + crc: 0x0d275d4f type_id: 0x9ef9d283 full_name: "hid_add_device" } @@ -341165,7 +345162,7 @@ elf_symbol { name: "hid_allocate_device" is_defined: true symbol_type: FUNCTION - crc: 0x13704f6a + crc: 0x7c27c6df type_id: 0x98aacbd0 full_name: "hid_allocate_device" } @@ -341174,7 +345171,7 @@ elf_symbol { name: "hid_destroy_device" is_defined: true symbol_type: FUNCTION - crc: 0xcfb03e97 + crc: 0xe1ffb603 type_id: 0x13e1603f full_name: "hid_destroy_device" } @@ -341183,7 +345180,7 @@ elf_symbol { name: "hid_ignore" is_defined: true symbol_type: FUNCTION - crc: 0xd720796c + crc: 0x0504a687 type_id: 0xfddd6aa8 full_name: "hid_ignore" } @@ -341192,7 +345189,7 @@ elf_symbol { name: "hid_input_report" is_defined: true symbol_type: FUNCTION - crc: 0xf611d7dc + crc: 0x2fa91b86 type_id: 0x9d13a27c full_name: "hid_input_report" } @@ -341201,7 +345198,7 @@ elf_symbol { name: "hid_parse_report" is_defined: true symbol_type: FUNCTION - crc: 0xa4451351 + crc: 0x0bcd55de type_id: 0x9e711486 full_name: "hid_parse_report" } @@ -341210,7 +345207,7 @@ elf_symbol { name: "hidp_hid_driver" is_defined: true symbol_type: OBJECT - crc: 0x5d9905e2 + crc: 0xdea62991 type_id: 0x2def15e8 full_name: "hidp_hid_driver" } @@ -341282,7 +345279,7 @@ elf_symbol { name: "hrtimer_init_sleeper" is_defined: true symbol_type: FUNCTION - crc: 0x5f8bd1e3 + crc: 0xb3e45015 type_id: 0x14bcf198 full_name: "hrtimer_init_sleeper" } @@ -341291,7 +345288,7 @@ elf_symbol { name: "hrtimer_sleeper_start_expires" is_defined: true symbol_type: FUNCTION - crc: 0x33db19cc + crc: 0xb82d02ee type_id: 0x14a1954e full_name: "hrtimer_sleeper_start_expires" } @@ -341318,7 +345315,7 @@ elf_symbol { name: "hvc_alloc" is_defined: true symbol_type: FUNCTION - crc: 0xa7c0ea06 + crc: 0xd2f283f3 type_id: 0x055da682 full_name: "hvc_alloc" } @@ -341327,7 +345324,7 @@ elf_symbol { name: "hvc_instantiate" is_defined: true symbol_type: FUNCTION - crc: 0xc126f3cc + crc: 0x2b97c698 type_id: 0x9b1ff8be full_name: "hvc_instantiate" } @@ -341345,7 +345342,7 @@ elf_symbol { name: "hvc_poll" is_defined: true symbol_type: FUNCTION - crc: 0xb5231d1a + crc: 0x0d96a24c type_id: 0x929702b9 full_name: "hvc_poll" } @@ -341354,7 +345351,7 @@ elf_symbol { name: "hvc_remove" is_defined: true symbol_type: FUNCTION - crc: 0x1ab068e5 + crc: 0x94f811e5 type_id: 0x929702b9 full_name: "hvc_remove" } @@ -341381,7 +345378,7 @@ elf_symbol { name: "hwspin_lock_free" is_defined: true symbol_type: FUNCTION - crc: 0xfbc35829 + crc: 0x51b223d8 type_id: 0x9f2e9dbc full_name: "hwspin_lock_free" } @@ -341390,7 +345387,7 @@ elf_symbol { name: "hwspin_lock_request_specific" is_defined: true symbol_type: FUNCTION - crc: 0x7275985c + crc: 0x9ae5951c type_id: 0xd208e2cb full_name: "hwspin_lock_request_specific" } @@ -341399,7 +345396,7 @@ elf_symbol { name: "hypervisor_kobj" is_defined: true symbol_type: OBJECT - crc: 0x9a2eee45 + crc: 0xd2ced5db type_id: 0x23f09c34 full_name: "hypervisor_kobj" } @@ -341408,7 +345405,7 @@ elf_symbol { name: "i2c_adapter_type" is_defined: true symbol_type: OBJECT - crc: 0x01317b42 + crc: 0xb2c75df2 type_id: 0xf292150d full_name: "i2c_adapter_type" } @@ -341417,7 +345414,7 @@ elf_symbol { name: "i2c_add_adapter" is_defined: true symbol_type: FUNCTION - crc: 0x330dd9ad + crc: 0xb3027bdc type_id: 0x94a6b558 full_name: "i2c_add_adapter" } @@ -341426,7 +345423,7 @@ elf_symbol { name: "i2c_add_numbered_adapter" is_defined: true symbol_type: FUNCTION - crc: 0x54fb1263 + crc: 0x27780de8 type_id: 0x94a6b558 full_name: "i2c_add_numbered_adapter" } @@ -341435,7 +345432,7 @@ elf_symbol { name: "i2c_bit_add_numbered_bus" is_defined: true symbol_type: FUNCTION - crc: 0xa1c2e46a + crc: 0x6dcaba8a type_id: 0x94a6b558 full_name: "i2c_bit_add_numbered_bus" } @@ -341444,7 +345441,7 @@ elf_symbol { name: "i2c_bus_type" is_defined: true symbol_type: OBJECT - crc: 0xb1ac1e86 + crc: 0x9d93e0ea type_id: 0x257935aa full_name: "i2c_bus_type" } @@ -341453,7 +345450,7 @@ elf_symbol { name: "i2c_client_type" is_defined: true symbol_type: OBJECT - crc: 0xab510e6a + crc: 0x3b0d9092 type_id: 0xf292150d full_name: "i2c_client_type" } @@ -341462,7 +345459,7 @@ elf_symbol { name: "i2c_del_adapter" is_defined: true symbol_type: FUNCTION - crc: 0x414baa35 + crc: 0x62f9fe71 type_id: 0x19be07e4 full_name: "i2c_del_adapter" } @@ -341471,7 +345468,7 @@ elf_symbol { name: "i2c_del_driver" is_defined: true symbol_type: FUNCTION - crc: 0xa14564b9 + crc: 0xdbd9e8f8 type_id: 0x1c0343dd full_name: "i2c_del_driver" } @@ -341480,7 +345477,7 @@ elf_symbol { name: "i2c_for_each_dev" is_defined: true symbol_type: FUNCTION - crc: 0xeedb45f6 + crc: 0xcfa5aea3 type_id: 0x9b188ead full_name: "i2c_for_each_dev" } @@ -341489,7 +345486,7 @@ elf_symbol { name: "i2c_generic_scl_recovery" is_defined: true symbol_type: FUNCTION - crc: 0x6648dc5d + crc: 0xc91dadfe type_id: 0x94a6b558 full_name: "i2c_generic_scl_recovery" } @@ -341498,7 +345495,7 @@ elf_symbol { name: "i2c_get_adapter" is_defined: true symbol_type: FUNCTION - crc: 0xb82c3315 + crc: 0x4dc65005 type_id: 0x754e9079 full_name: "i2c_get_adapter" } @@ -341507,7 +345504,7 @@ elf_symbol { name: "i2c_get_device_id" is_defined: true symbol_type: FUNCTION - crc: 0x121e8bf5 + crc: 0x5998c55e type_id: 0x91c515b1 full_name: "i2c_get_device_id" } @@ -341525,7 +345522,7 @@ elf_symbol { name: "i2c_match_id" is_defined: true symbol_type: FUNCTION - crc: 0xe68a038f + crc: 0xd1791203 type_id: 0xbd7fe584 full_name: "i2c_match_id" } @@ -341534,7 +345531,7 @@ elf_symbol { name: "i2c_new_ancillary_device" is_defined: true symbol_type: FUNCTION - crc: 0x4d592dc4 + crc: 0xa50c2b62 type_id: 0x80f6512d full_name: "i2c_new_ancillary_device" } @@ -341543,7 +345540,7 @@ elf_symbol { name: "i2c_new_client_device" is_defined: true symbol_type: FUNCTION - crc: 0x2e1a6639 + crc: 0xad19550f type_id: 0x8546debe full_name: "i2c_new_client_device" } @@ -341552,7 +345549,7 @@ elf_symbol { name: "i2c_new_dummy_device" is_defined: true symbol_type: FUNCTION - crc: 0x81085b1c + crc: 0x2c10e113 type_id: 0x87d0b8ed full_name: "i2c_new_dummy_device" } @@ -341561,7 +345558,7 @@ elf_symbol { name: "i2c_new_scanned_device" is_defined: true symbol_type: FUNCTION - crc: 0xdb9de811 + crc: 0xd5793cb8 type_id: 0x85273440 full_name: "i2c_new_scanned_device" } @@ -341570,7 +345567,7 @@ elf_symbol { name: "i2c_parse_fw_timings" is_defined: true symbol_type: FUNCTION - crc: 0x7d989585 + crc: 0xdd1ff1dc type_id: 0x10b9d05d full_name: "i2c_parse_fw_timings" } @@ -341579,7 +345576,7 @@ elf_symbol { name: "i2c_put_adapter" is_defined: true symbol_type: FUNCTION - crc: 0x43f47b7f + crc: 0xeab42a07 type_id: 0x19be07e4 full_name: "i2c_put_adapter" } @@ -341597,7 +345594,7 @@ elf_symbol { name: "i2c_recover_bus" is_defined: true symbol_type: FUNCTION - crc: 0x9b6bd4dd + crc: 0x95b710e8 type_id: 0x94a6b558 full_name: "i2c_recover_bus" } @@ -341606,7 +345603,7 @@ elf_symbol { name: "i2c_register_driver" is_defined: true symbol_type: FUNCTION - crc: 0x79eac231 + crc: 0x25ad3886 type_id: 0x9f80a51b full_name: "i2c_register_driver" } @@ -341615,7 +345612,7 @@ elf_symbol { name: "i2c_smbus_read_byte" is_defined: true symbol_type: FUNCTION - crc: 0x61ac75f1 + crc: 0x30ec11cf type_id: 0x8db808c2 full_name: "i2c_smbus_read_byte" } @@ -341624,7 +345621,7 @@ elf_symbol { name: "i2c_smbus_read_byte_data" is_defined: true symbol_type: FUNCTION - crc: 0xc32afdab + crc: 0x68dfcdaa type_id: 0x8d1d790a full_name: "i2c_smbus_read_byte_data" } @@ -341633,7 +345630,7 @@ elf_symbol { name: "i2c_smbus_read_i2c_block_data" is_defined: true symbol_type: FUNCTION - crc: 0x54deb6c6 + crc: 0x136bf8bf type_id: 0x8d172d0a full_name: "i2c_smbus_read_i2c_block_data" } @@ -341642,7 +345639,7 @@ elf_symbol { name: "i2c_smbus_read_word_data" is_defined: true symbol_type: FUNCTION - crc: 0x028cede5 + crc: 0xad19a8d9 type_id: 0x8d1d790a full_name: "i2c_smbus_read_word_data" } @@ -341651,7 +345648,7 @@ elf_symbol { name: "i2c_smbus_write_byte" is_defined: true symbol_type: FUNCTION - crc: 0x17c74fb6 + crc: 0xb97a0de6 type_id: 0x8d1d790a full_name: "i2c_smbus_write_byte" } @@ -341660,7 +345657,7 @@ elf_symbol { name: "i2c_smbus_write_byte_data" is_defined: true symbol_type: FUNCTION - crc: 0x59912552 + crc: 0xd7c7d888 type_id: 0x8d172e16 full_name: "i2c_smbus_write_byte_data" } @@ -341669,7 +345666,7 @@ elf_symbol { name: "i2c_smbus_write_i2c_block_data" is_defined: true symbol_type: FUNCTION - crc: 0x0dee13c4 + crc: 0x2b3ab5f3 type_id: 0x8d17d210 full_name: "i2c_smbus_write_i2c_block_data" } @@ -341678,7 +345675,7 @@ elf_symbol { name: "i2c_smbus_write_word_data" is_defined: true symbol_type: FUNCTION - crc: 0x67fec27c + crc: 0xb48f8b58 type_id: 0x8d392a65 full_name: "i2c_smbus_write_word_data" } @@ -341687,7 +345684,7 @@ elf_symbol { name: "i2c_smbus_xfer" is_defined: true symbol_type: FUNCTION - crc: 0x40e41545 + crc: 0x86fd7b9b type_id: 0x8a03b82b full_name: "i2c_smbus_xfer" } @@ -341696,7 +345693,7 @@ elf_symbol { name: "i2c_transfer" is_defined: true symbol_type: FUNCTION - crc: 0x604dd20a + crc: 0x49313484 type_id: 0x9480cdfa full_name: "i2c_transfer" } @@ -341705,7 +345702,7 @@ elf_symbol { name: "i2c_transfer_buffer_flags" is_defined: true symbol_type: FUNCTION - crc: 0xbce9900c + crc: 0x09e73e8f type_id: 0x916314a3 full_name: "i2c_transfer_buffer_flags" } @@ -341714,7 +345711,7 @@ elf_symbol { name: "i2c_unregister_device" is_defined: true symbol_type: FUNCTION - crc: 0xc1da23a0 + crc: 0x887992b6 type_id: 0x1c01c960 full_name: "i2c_unregister_device" } @@ -341723,7 +345720,7 @@ elf_symbol { name: "i2c_verify_adapter" is_defined: true symbol_type: FUNCTION - crc: 0x1d3adfe9 + crc: 0xe10cea3f type_id: 0x6c109ae9 full_name: "i2c_verify_adapter" } @@ -341732,7 +345729,7 @@ elf_symbol { name: "i2c_verify_client" is_defined: true symbol_type: FUNCTION - crc: 0xd223b5f7 + crc: 0x49f73f16 type_id: 0x8c25e63e full_name: "i2c_verify_client" } @@ -341741,7 +345738,7 @@ elf_symbol { name: "i3c_device_do_priv_xfers" is_defined: true symbol_type: FUNCTION - crc: 0x1bd9a85a + crc: 0x014aef62 type_id: 0x91e7d0ce full_name: "i3c_device_do_priv_xfers" } @@ -341750,7 +345747,7 @@ elf_symbol { name: "i3c_driver_register_with_owner" is_defined: true symbol_type: FUNCTION - crc: 0xab844325 + crc: 0xf772f567 type_id: 0x952ae349 full_name: "i3c_driver_register_with_owner" } @@ -341759,7 +345756,7 @@ elf_symbol { name: "i3c_driver_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x6689c22a + crc: 0xf2583a5e type_id: 0x181ece84 full_name: "i3c_driver_unregister" } @@ -341768,7 +345765,7 @@ elf_symbol { name: "i3c_generic_ibi_alloc_pool" is_defined: true symbol_type: FUNCTION - crc: 0xb6e1b275 + crc: 0x846cc6a1 type_id: 0xea3d26bb full_name: "i3c_generic_ibi_alloc_pool" } @@ -341786,7 +345783,7 @@ elf_symbol { name: "i3c_generic_ibi_get_free_slot" is_defined: true symbol_type: FUNCTION - crc: 0xb7dc0bb9 + crc: 0x30cd539a type_id: 0x2b7baaf7 full_name: "i3c_generic_ibi_get_free_slot" } @@ -341795,7 +345792,7 @@ elf_symbol { name: "i3c_generic_ibi_recycle_slot" is_defined: true symbol_type: FUNCTION - crc: 0x46e53a54 + crc: 0x6e4cf464 type_id: 0x1b3b60ec full_name: "i3c_generic_ibi_recycle_slot" } @@ -341804,7 +345801,7 @@ elf_symbol { name: "i3c_master_add_i3c_dev_locked" is_defined: true symbol_type: FUNCTION - crc: 0xb45a1770 + crc: 0x4a1ba444 type_id: 0x9d9ed332 full_name: "i3c_master_add_i3c_dev_locked" } @@ -341813,7 +345810,7 @@ elf_symbol { name: "i3c_master_disec_locked" is_defined: true symbol_type: FUNCTION - crc: 0x611fce76 + crc: 0x5d86a754 type_id: 0x9d94842e full_name: "i3c_master_disec_locked" } @@ -341822,7 +345819,7 @@ elf_symbol { name: "i3c_master_do_daa" is_defined: true symbol_type: FUNCTION - crc: 0x718c6150 + crc: 0xdddec792 type_id: 0x9d3ba2fa full_name: "i3c_master_do_daa" } @@ -341831,7 +345828,7 @@ elf_symbol { name: "i3c_master_enec_locked" is_defined: true symbol_type: FUNCTION - crc: 0x2a9c4370 + crc: 0x8b52b94e type_id: 0x9d94842e full_name: "i3c_master_enec_locked" } @@ -341840,7 +345837,7 @@ elf_symbol { name: "i3c_master_entdaa_locked" is_defined: true symbol_type: FUNCTION - crc: 0xea3d6da2 + crc: 0x0558b496 type_id: 0x9d3ba2fa full_name: "i3c_master_entdaa_locked" } @@ -341849,7 +345846,7 @@ elf_symbol { name: "i3c_master_get_free_addr" is_defined: true symbol_type: FUNCTION - crc: 0xf645b481 + crc: 0x253aa52a type_id: 0x9d9ed332 full_name: "i3c_master_get_free_addr" } @@ -341858,7 +345855,7 @@ elf_symbol { name: "i3c_master_queue_ibi" is_defined: true symbol_type: FUNCTION - crc: 0x624d3cfc + crc: 0x7393f6e2 type_id: 0x13015378 full_name: "i3c_master_queue_ibi" } @@ -341867,7 +345864,7 @@ elf_symbol { name: "i3c_master_register" is_defined: true symbol_type: FUNCTION - crc: 0xa2971b02 + crc: 0xaaa327cf type_id: 0x9d3fcc61 full_name: "i3c_master_register" } @@ -341876,7 +345873,7 @@ elf_symbol { name: "i3c_master_set_info" is_defined: true symbol_type: FUNCTION - crc: 0x959c043a + crc: 0x45a5eae8 type_id: 0x9dd914f5 full_name: "i3c_master_set_info" } @@ -341885,7 +345882,7 @@ elf_symbol { name: "i3c_master_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xadcff979 + crc: 0x89616244 type_id: 0x9d3ba2fa full_name: "i3c_master_unregister" } @@ -341894,7 +345891,7 @@ elf_symbol { name: "icc_disable" is_defined: true symbol_type: FUNCTION - crc: 0x9d410da2 + crc: 0x1d2e9f74 type_id: 0x975db23f full_name: "icc_disable" } @@ -341903,7 +345900,7 @@ elf_symbol { name: "icc_enable" is_defined: true symbol_type: FUNCTION - crc: 0xf695f372 + crc: 0xa281bb24 type_id: 0x975db23f full_name: "icc_enable" } @@ -341912,7 +345909,7 @@ elf_symbol { name: "icc_get" is_defined: true symbol_type: FUNCTION - crc: 0x82ec331c + crc: 0x77a6d7bd type_id: 0x2ab7a064 full_name: "icc_get" } @@ -341921,7 +345918,7 @@ elf_symbol { name: "icc_link_create" is_defined: true symbol_type: FUNCTION - crc: 0xf8845c68 + crc: 0x3f9d5e5e type_id: 0x9f89d33b full_name: "icc_link_create" } @@ -341930,7 +345927,7 @@ elf_symbol { name: "icc_node_add" is_defined: true symbol_type: FUNCTION - crc: 0x7ba21d09 + crc: 0x68307575 type_id: 0x13c6ea20 full_name: "icc_node_add" } @@ -341939,7 +345936,7 @@ elf_symbol { name: "icc_node_create" is_defined: true symbol_type: FUNCTION - crc: 0x6aca356c + crc: 0x44ecf75f type_id: 0xa672c2e4 full_name: "icc_node_create" } @@ -341948,7 +345945,7 @@ elf_symbol { name: "icc_nodes_remove" is_defined: true symbol_type: FUNCTION - crc: 0x3ab0568a + crc: 0x72fc79de type_id: 0x91306d97 full_name: "icc_nodes_remove" } @@ -341957,7 +345954,7 @@ elf_symbol { name: "icc_provider_add" is_defined: true symbol_type: FUNCTION - crc: 0x7bdc499b + crc: 0x1a990875 type_id: 0x91306d97 full_name: "icc_provider_add" } @@ -341966,7 +345963,7 @@ elf_symbol { name: "icc_provider_del" is_defined: true symbol_type: FUNCTION - crc: 0xb33dec9a + crc: 0x2c6d8947 type_id: 0x1c28df2b full_name: "icc_provider_del" } @@ -341975,7 +345972,7 @@ elf_symbol { name: "icc_provider_deregister" is_defined: true symbol_type: FUNCTION - crc: 0x640e2e5a + crc: 0x127da7a6 type_id: 0x1c28df2b full_name: "icc_provider_deregister" } @@ -341984,7 +345981,7 @@ elf_symbol { name: "icc_provider_init" is_defined: true symbol_type: FUNCTION - crc: 0xdc029e57 + crc: 0xa368a591 type_id: 0x1c28df2b full_name: "icc_provider_init" } @@ -341993,7 +345990,7 @@ elf_symbol { name: "icc_provider_register" is_defined: true symbol_type: FUNCTION - crc: 0x886e40fd + crc: 0x11e12667 type_id: 0x91306d97 full_name: "icc_provider_register" } @@ -342002,7 +345999,7 @@ elf_symbol { name: "icc_put" is_defined: true symbol_type: FUNCTION - crc: 0xcb331a45 + crc: 0xdcfd5b41 type_id: 0x1a450083 full_name: "icc_put" } @@ -342011,7 +346008,7 @@ elf_symbol { name: "icc_set_bw" is_defined: true symbol_type: FUNCTION - crc: 0xf2d3e4c9 + crc: 0x8c743628 type_id: 0x944bd099 full_name: "icc_set_bw" } @@ -342020,7 +346017,7 @@ elf_symbol { name: "icc_set_tag" is_defined: true symbol_type: FUNCTION - crc: 0xf22774c2 + crc: 0x7eb6b996 type_id: 0x1961202f full_name: "icc_set_tag" } @@ -342029,7 +346026,7 @@ elf_symbol { name: "icc_std_aggregate" is_defined: true symbol_type: FUNCTION - crc: 0x7bed9709 + crc: 0xb83f94b0 type_id: 0x9d001826 full_name: "icc_std_aggregate" } @@ -342038,7 +346035,7 @@ elf_symbol { name: "icc_sync_state" is_defined: true symbol_type: FUNCTION - crc: 0x5538bc7b + crc: 0x6eea330f type_id: 0x100e6fc8 full_name: "icc_sync_state" } @@ -342173,7 +346170,7 @@ elf_symbol { name: "ieee80211_alloc_hw_nm" is_defined: true symbol_type: FUNCTION - crc: 0xedc67f04 + crc: 0x4e3d1baa type_id: 0xd9abb4fc full_name: "ieee80211_alloc_hw_nm" } @@ -342182,7 +346179,7 @@ elf_symbol { name: "ieee80211_amsdu_to_8023s" is_defined: true symbol_type: FUNCTION - crc: 0x0eef0645 + crc: 0x18ee8676 type_id: 0x11b81f43 full_name: "ieee80211_amsdu_to_8023s" } @@ -342191,7 +346188,7 @@ elf_symbol { name: "ieee80211_ap_probereq_get" is_defined: true symbol_type: FUNCTION - crc: 0x923755ac + crc: 0xac619946 type_id: 0x629ea942 full_name: "ieee80211_ap_probereq_get" } @@ -342218,7 +346215,7 @@ elf_symbol { name: "ieee80211_beacon_get_template" is_defined: true symbol_type: FUNCTION - crc: 0xcea76899 + crc: 0x74dbd23a type_id: 0x629d82aa full_name: "ieee80211_beacon_get_template" } @@ -342227,7 +346224,7 @@ elf_symbol { name: "ieee80211_beacon_get_tim" is_defined: true symbol_type: FUNCTION - crc: 0xd8ffe497 + crc: 0xa6c5861d type_id: 0x6295b3fb full_name: "ieee80211_beacon_get_tim" } @@ -342272,7 +346269,7 @@ elf_symbol { name: "ieee80211_calc_rx_airtime" is_defined: true symbol_type: FUNCTION - crc: 0x49523e78 + crc: 0x78d66767 type_id: 0x4f1bbf4c full_name: "ieee80211_calc_rx_airtime" } @@ -342281,7 +346278,7 @@ elf_symbol { name: "ieee80211_calc_tx_airtime" is_defined: true symbol_type: FUNCTION - crc: 0x5865fdfa + crc: 0x40057d2b type_id: 0x4f48f53e full_name: "ieee80211_calc_tx_airtime" } @@ -342371,7 +346368,7 @@ elf_symbol { name: "ieee80211_ctstoself_duration" is_defined: true symbol_type: FUNCTION - crc: 0xadfeba1e + crc: 0x08a1f91b type_id: 0xa571fd8b full_name: "ieee80211_ctstoself_duration" } @@ -342380,7 +346377,7 @@ elf_symbol { name: "ieee80211_ctstoself_get" is_defined: true symbol_type: FUNCTION - crc: 0x2961e3b0 + crc: 0xf98de9ca type_id: 0x1a9559aa full_name: "ieee80211_ctstoself_get" } @@ -342389,7 +346386,7 @@ elf_symbol { name: "ieee80211_data_to_8023_exthdr" is_defined: true symbol_type: FUNCTION - crc: 0x8a95b671 + crc: 0xa540059d type_id: 0x9c1a34cf full_name: "ieee80211_data_to_8023_exthdr" } @@ -342434,7 +346431,7 @@ elf_symbol { name: "ieee80211_find_sta_by_ifaddr" is_defined: true symbol_type: FUNCTION - crc: 0x89815cff + crc: 0x59b09490 type_id: 0x1c4164a5 full_name: "ieee80211_find_sta_by_ifaddr" } @@ -342443,7 +346440,7 @@ elf_symbol { name: "ieee80211_find_sta_by_link_addrs" is_defined: true symbol_type: FUNCTION - crc: 0xd426780c + crc: 0x049148ac type_id: 0x1c410b60 full_name: "ieee80211_find_sta_by_link_addrs" } @@ -342452,7 +346449,7 @@ elf_symbol { name: "ieee80211_free_hw" is_defined: true symbol_type: FUNCTION - crc: 0x548521c0 + crc: 0xb078c937 type_id: 0x1a33dbfe full_name: "ieee80211_free_hw" } @@ -342461,7 +346458,7 @@ elf_symbol { name: "ieee80211_free_txskb" is_defined: true symbol_type: FUNCTION - crc: 0xa911e16a + crc: 0xe620a6ca type_id: 0x1a26e65a full_name: "ieee80211_free_txskb" } @@ -342479,7 +346476,7 @@ elf_symbol { name: "ieee80211_generic_frame_duration" is_defined: true symbol_type: FUNCTION - crc: 0x5906e1ba + crc: 0xd5c065ef type_id: 0xa56777e3 full_name: "ieee80211_generic_frame_duration" } @@ -342497,7 +346494,7 @@ elf_symbol { name: "ieee80211_get_buffered_bc" is_defined: true symbol_type: FUNCTION - crc: 0x5a892a05 + crc: 0x59e45e48 type_id: 0x629ea942 full_name: "ieee80211_get_buffered_bc" } @@ -342506,7 +346503,7 @@ elf_symbol { name: "ieee80211_get_channel_khz" is_defined: true symbol_type: FUNCTION - crc: 0xef914c1e + crc: 0xcf436dc4 type_id: 0xd59a69cd full_name: "ieee80211_get_channel_khz" } @@ -342515,7 +346512,7 @@ elf_symbol { name: "ieee80211_get_fils_discovery_tmpl" is_defined: true symbol_type: FUNCTION - crc: 0x54710a08 + crc: 0x0d044f58 type_id: 0x629ea942 full_name: "ieee80211_get_fils_discovery_tmpl" } @@ -342524,7 +346521,7 @@ elf_symbol { name: "ieee80211_get_hdrlen_from_skb" is_defined: true symbol_type: FUNCTION - crc: 0xf54d1c43 + crc: 0xc0ee110c type_id: 0xc1439b43 full_name: "ieee80211_get_hdrlen_from_skb" } @@ -342551,7 +346548,7 @@ elf_symbol { name: "ieee80211_get_num_supported_channels" is_defined: true symbol_type: FUNCTION - crc: 0x659ffdde + crc: 0xed136e35 type_id: 0xcab7b4f1 full_name: "ieee80211_get_num_supported_channels" } @@ -342578,7 +346575,7 @@ elf_symbol { name: "ieee80211_get_tkip_p2k" is_defined: true symbol_type: FUNCTION - crc: 0x6a1e92a6 + crc: 0x5919a943 type_id: 0x1236c731 full_name: "ieee80211_get_tkip_p2k" } @@ -342596,7 +346593,7 @@ elf_symbol { name: "ieee80211_get_tx_rates" is_defined: true symbol_type: FUNCTION - crc: 0xf89a98e1 + crc: 0x60068d05 type_id: 0x1ad8a57d full_name: "ieee80211_get_tx_rates" } @@ -342605,7 +346602,7 @@ elf_symbol { name: "ieee80211_get_unsol_bcast_probe_resp_tmpl" is_defined: true symbol_type: FUNCTION - crc: 0x81ee52dc + crc: 0xac17ca0c type_id: 0x629ea942 full_name: "ieee80211_get_unsol_bcast_probe_resp_tmpl" } @@ -342668,7 +346665,7 @@ elf_symbol { name: "ieee80211_iter_chan_contexts_atomic" is_defined: true symbol_type: FUNCTION - crc: 0xd6b228be + crc: 0x90fde8f8 type_id: 0x1a053774 full_name: "ieee80211_iter_chan_contexts_atomic" } @@ -342677,7 +346674,7 @@ elf_symbol { name: "ieee80211_iter_keys" is_defined: true symbol_type: FUNCTION - crc: 0xa4a305e4 + crc: 0xf3af4931 type_id: 0x1a9bae75 full_name: "ieee80211_iter_keys" } @@ -342686,7 +346683,7 @@ elf_symbol { name: "ieee80211_iter_keys_rcu" is_defined: true symbol_type: FUNCTION - crc: 0x2f334ced + crc: 0xdd5eaa6b type_id: 0x1a9bae75 full_name: "ieee80211_iter_keys_rcu" } @@ -342695,7 +346692,7 @@ elf_symbol { name: "ieee80211_iterate_active_interfaces_atomic" is_defined: true symbol_type: FUNCTION - crc: 0x6d89212d + crc: 0xaf8e4124 type_id: 0x19145643 full_name: "ieee80211_iterate_active_interfaces_atomic" } @@ -342704,7 +346701,7 @@ elf_symbol { name: "ieee80211_iterate_active_interfaces_mtx" is_defined: true symbol_type: FUNCTION - crc: 0x89be4314 + crc: 0x962373a8 type_id: 0x19145643 full_name: "ieee80211_iterate_active_interfaces_mtx" } @@ -342713,7 +346710,7 @@ elf_symbol { name: "ieee80211_iterate_interfaces" is_defined: true symbol_type: FUNCTION - crc: 0xe7f21c61 + crc: 0xb17ae13f type_id: 0x19145643 full_name: "ieee80211_iterate_interfaces" } @@ -342722,7 +346719,7 @@ elf_symbol { name: "ieee80211_iterate_stations" is_defined: true symbol_type: FUNCTION - crc: 0xf788d7fb + crc: 0x093b4b92 type_id: 0x1a09f36f full_name: "ieee80211_iterate_stations" } @@ -342731,7 +346728,7 @@ elf_symbol { name: "ieee80211_iterate_stations_atomic" is_defined: true symbol_type: FUNCTION - crc: 0x03096f2b + crc: 0x5c36ca84 type_id: 0x1a09f36f full_name: "ieee80211_iterate_stations_atomic" } @@ -342803,7 +346800,7 @@ elf_symbol { name: "ieee80211_next_txq" is_defined: true symbol_type: FUNCTION - crc: 0x026a5495 + crc: 0x8d26a212 type_id: 0xa0c12e79 full_name: "ieee80211_next_txq" } @@ -342812,7 +346809,7 @@ elf_symbol { name: "ieee80211_nullfunc_get" is_defined: true symbol_type: FUNCTION - crc: 0x520db2a8 + crc: 0xee000396 type_id: 0x6286d48b full_name: "ieee80211_nullfunc_get" } @@ -342839,7 +346836,7 @@ elf_symbol { name: "ieee80211_probereq_get" is_defined: true symbol_type: FUNCTION - crc: 0x99b8c494 + crc: 0x28e01b6e type_id: 0x62c598e2 full_name: "ieee80211_probereq_get" } @@ -342848,7 +346845,7 @@ elf_symbol { name: "ieee80211_proberesp_get" is_defined: true symbol_type: FUNCTION - crc: 0xad251641 + crc: 0x80ad426b type_id: 0x629ea942 full_name: "ieee80211_proberesp_get" } @@ -342857,7 +346854,7 @@ elf_symbol { name: "ieee80211_pspoll_get" is_defined: true symbol_type: FUNCTION - crc: 0x76cd1502 + crc: 0xa340cbef type_id: 0x629ea942 full_name: "ieee80211_pspoll_get" } @@ -342866,7 +346863,7 @@ elf_symbol { name: "ieee80211_queue_delayed_work" is_defined: true symbol_type: FUNCTION - crc: 0x5e8f8bc4 + crc: 0x487f79df type_id: 0x1ae453dd full_name: "ieee80211_queue_delayed_work" } @@ -342875,7 +346872,7 @@ elf_symbol { name: "ieee80211_queue_stopped" is_defined: true symbol_type: FUNCTION - crc: 0x4e990732 + crc: 0x56322714 type_id: 0x96b7ea0e full_name: "ieee80211_queue_stopped" } @@ -342884,7 +346881,7 @@ elf_symbol { name: "ieee80211_queue_work" is_defined: true symbol_type: FUNCTION - crc: 0x85d31ab6 + crc: 0x93adfe4e type_id: 0x1a06a79e full_name: "ieee80211_queue_work" } @@ -342893,7 +346890,7 @@ elf_symbol { name: "ieee80211_radar_detected" is_defined: true symbol_type: FUNCTION - crc: 0xaf293f01 + crc: 0x81072c0e type_id: 0x1a33dbfe full_name: "ieee80211_radar_detected" } @@ -342920,7 +346917,7 @@ elf_symbol { name: "ieee80211_rate_control_register" is_defined: true symbol_type: FUNCTION - crc: 0xe944b043 + crc: 0x74ad016d type_id: 0x90f44640 full_name: "ieee80211_rate_control_register" } @@ -342929,7 +346926,7 @@ elf_symbol { name: "ieee80211_rate_control_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x1e7dca4e + crc: 0x2f8051f9 type_id: 0x1decf4fc full_name: "ieee80211_rate_control_unregister" } @@ -342938,7 +346935,7 @@ elf_symbol { name: "ieee80211_ready_on_channel" is_defined: true symbol_type: FUNCTION - crc: 0x4ea39f2b + crc: 0x053f1e45 type_id: 0x1a33dbfe full_name: "ieee80211_ready_on_channel" } @@ -342947,7 +346944,7 @@ elf_symbol { name: "ieee80211_register_hw" is_defined: true symbol_type: FUNCTION - crc: 0xeaf9429e + crc: 0x78df37b0 type_id: 0x972b6942 full_name: "ieee80211_register_hw" } @@ -342956,7 +346953,7 @@ elf_symbol { name: "ieee80211_remain_on_channel_expired" is_defined: true symbol_type: FUNCTION - crc: 0x3b199223 + crc: 0xd5918a87 type_id: 0x1a33dbfe full_name: "ieee80211_remain_on_channel_expired" } @@ -343010,7 +347007,7 @@ elf_symbol { name: "ieee80211_restart_hw" is_defined: true symbol_type: FUNCTION - crc: 0x3670fca3 + crc: 0xecd454c6 type_id: 0x1a33dbfe full_name: "ieee80211_restart_hw" } @@ -343028,7 +347025,7 @@ elf_symbol { name: "ieee80211_rts_duration" is_defined: true symbol_type: FUNCTION - crc: 0x3fd3f621 + crc: 0xf7635dd7 type_id: 0xa571fd8b full_name: "ieee80211_rts_duration" } @@ -343037,7 +347034,7 @@ elf_symbol { name: "ieee80211_rts_get" is_defined: true symbol_type: FUNCTION - crc: 0x09d5b86b + crc: 0xf90cb241 type_id: 0x1a95598b full_name: "ieee80211_rts_get" } @@ -343055,7 +347052,7 @@ elf_symbol { name: "ieee80211_rx_irqsafe" is_defined: true symbol_type: FUNCTION - crc: 0x64774544 + crc: 0x57821b3f type_id: 0x1a26e65a full_name: "ieee80211_rx_irqsafe" } @@ -343064,7 +347061,7 @@ elf_symbol { name: "ieee80211_rx_list" is_defined: true symbol_type: FUNCTION - crc: 0x5b7e8c9e + crc: 0xe5067ac1 type_id: 0x1ac25702 full_name: "ieee80211_rx_list" } @@ -343073,7 +347070,7 @@ elf_symbol { name: "ieee80211_rx_napi" is_defined: true symbol_type: FUNCTION - crc: 0xf9567ad6 + crc: 0x489bf815 type_id: 0x1ac2ce8c full_name: "ieee80211_rx_napi" } @@ -343091,7 +347088,7 @@ elf_symbol { name: "ieee80211_scan_completed" is_defined: true symbol_type: FUNCTION - crc: 0xa0483197 + crc: 0x55e6d122 type_id: 0x1a3baef3 full_name: "ieee80211_scan_completed" } @@ -343100,7 +347097,7 @@ elf_symbol { name: "ieee80211_sched_scan_results" is_defined: true symbol_type: FUNCTION - crc: 0x8dd7e171 + crc: 0x7dcfe5b8 type_id: 0x1a33dbfe full_name: "ieee80211_sched_scan_results" } @@ -343109,7 +347106,7 @@ elf_symbol { name: "ieee80211_sched_scan_stopped" is_defined: true symbol_type: FUNCTION - crc: 0xac60d917 + crc: 0x7e03368c type_id: 0x1a33dbfe full_name: "ieee80211_sched_scan_stopped" } @@ -343163,7 +347160,7 @@ elf_symbol { name: "ieee80211_sta_block_awake" is_defined: true symbol_type: FUNCTION - crc: 0xb02d437a + crc: 0xdb27581e type_id: 0x1ad8a287 full_name: "ieee80211_sta_block_awake" } @@ -343253,7 +347250,7 @@ elf_symbol { name: "ieee80211_stop_queue" is_defined: true symbol_type: FUNCTION - crc: 0xabce9569 + crc: 0xd41e71d9 type_id: 0x1baf58b2 full_name: "ieee80211_stop_queue" } @@ -343262,7 +347259,7 @@ elf_symbol { name: "ieee80211_stop_queues" is_defined: true symbol_type: FUNCTION - crc: 0xe68b6172 + crc: 0x4a1e12e8 type_id: 0x1a33dbfe full_name: "ieee80211_stop_queues" } @@ -343316,7 +347313,7 @@ elf_symbol { name: "ieee80211_tx_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0xbce0853f + crc: 0x696d5bd2 type_id: 0x62838087 full_name: "ieee80211_tx_dequeue" } @@ -343325,7 +347322,7 @@ elf_symbol { name: "ieee80211_tx_prepare_skb" is_defined: true symbol_type: FUNCTION - crc: 0x6ad4fb70 + crc: 0xda89a654 type_id: 0xf4a4055a full_name: "ieee80211_tx_prepare_skb" } @@ -343334,7 +347331,7 @@ elf_symbol { name: "ieee80211_tx_rate_update" is_defined: true symbol_type: FUNCTION - crc: 0x3248a3dd + crc: 0x88cec3c7 type_id: 0x1ac3d490 full_name: "ieee80211_tx_rate_update" } @@ -343343,7 +347340,7 @@ elf_symbol { name: "ieee80211_tx_status" is_defined: true symbol_type: FUNCTION - crc: 0xec2510b3 + crc: 0x0d8d0ae7 type_id: 0x1a26e65a full_name: "ieee80211_tx_status" } @@ -343352,7 +347349,7 @@ elf_symbol { name: "ieee80211_tx_status_8023" is_defined: true symbol_type: FUNCTION - crc: 0x8e26388f + crc: 0xf325c6fc type_id: 0x1a99922a full_name: "ieee80211_tx_status_8023" } @@ -343361,7 +347358,7 @@ elf_symbol { name: "ieee80211_tx_status_ext" is_defined: true symbol_type: FUNCTION - crc: 0x5b898ef5 + crc: 0xfdbcc967 type_id: 0x1af033e5 full_name: "ieee80211_tx_status_ext" } @@ -343370,7 +347367,7 @@ elf_symbol { name: "ieee80211_tx_status_irqsafe" is_defined: true symbol_type: FUNCTION - crc: 0x10fdbdff + crc: 0x6ca83abc type_id: 0x1a26e65a full_name: "ieee80211_tx_status_irqsafe" } @@ -343379,7 +347376,7 @@ elf_symbol { name: "ieee80211_txq_airtime_check" is_defined: true symbol_type: FUNCTION - crc: 0xee3b1f65 + crc: 0x8952bcdf type_id: 0xf4b9e2a2 full_name: "ieee80211_txq_airtime_check" } @@ -343397,7 +347394,7 @@ elf_symbol { name: "ieee80211_txq_may_transmit" is_defined: true symbol_type: FUNCTION - crc: 0x704854e1 + crc: 0x10d26c08 type_id: 0xf4b9e2a2 full_name: "ieee80211_txq_may_transmit" } @@ -343406,7 +347403,7 @@ elf_symbol { name: "ieee80211_txq_schedule_start" is_defined: true symbol_type: FUNCTION - crc: 0x970759d0 + crc: 0x791484f3 type_id: 0x1a96aa36 full_name: "ieee80211_txq_schedule_start" } @@ -343415,7 +347412,7 @@ elf_symbol { name: "ieee80211_unregister_hw" is_defined: true symbol_type: FUNCTION - crc: 0xebbd0b1d + crc: 0x41e6f25b type_id: 0x1a33dbfe full_name: "ieee80211_unregister_hw" } @@ -343451,7 +347448,7 @@ elf_symbol { name: "ieee80211_vif_to_wdev" is_defined: true symbol_type: FUNCTION - crc: 0x81fe3781 + crc: 0xbc9610a8 type_id: 0xabc9bd38 full_name: "ieee80211_vif_to_wdev" } @@ -343460,7 +347457,7 @@ elf_symbol { name: "ieee80211_wake_queue" is_defined: true symbol_type: FUNCTION - crc: 0x25e6df6b + crc: 0x42bb8a44 type_id: 0x1baf58b2 full_name: "ieee80211_wake_queue" } @@ -343469,7 +347466,7 @@ elf_symbol { name: "ieee80211_wake_queues" is_defined: true symbol_type: FUNCTION - crc: 0x498cffd4 + crc: 0x479bf841 type_id: 0x1a33dbfe full_name: "ieee80211_wake_queues" } @@ -343478,7 +347475,7 @@ elf_symbol { name: "ieee802154_alloc_hw" is_defined: true symbol_type: FUNCTION - crc: 0xb87ebb85 + crc: 0xa7109877 type_id: 0x53d7cb1d full_name: "ieee802154_alloc_hw" } @@ -343487,7 +347484,7 @@ elf_symbol { name: "ieee802154_configure_durations" is_defined: true symbol_type: FUNCTION - crc: 0xa9c94151 + crc: 0x8c3dccef type_id: 0x1af18e52 full_name: "ieee802154_configure_durations" } @@ -343496,7 +347493,7 @@ elf_symbol { name: "ieee802154_free_hw" is_defined: true symbol_type: FUNCTION - crc: 0x73949e33 + crc: 0x55ec05cd type_id: 0x12d46025 full_name: "ieee802154_free_hw" } @@ -343505,7 +347502,7 @@ elf_symbol { name: "ieee802154_hdr_peek" is_defined: true symbol_type: FUNCTION - crc: 0x9afb1943 + crc: 0xee59ed1c type_id: 0x92f9a820 full_name: "ieee802154_hdr_peek" } @@ -343514,7 +347511,7 @@ elf_symbol { name: "ieee802154_hdr_peek_addrs" is_defined: true symbol_type: FUNCTION - crc: 0x140fe88f + crc: 0xa447d881 type_id: 0x92f9a820 full_name: "ieee802154_hdr_peek_addrs" } @@ -343523,7 +347520,7 @@ elf_symbol { name: "ieee802154_hdr_pull" is_defined: true symbol_type: FUNCTION - crc: 0x5e7e42fa + crc: 0x0a48ece5 type_id: 0x9c3297de full_name: "ieee802154_hdr_pull" } @@ -343532,7 +347529,7 @@ elf_symbol { name: "ieee802154_hdr_push" is_defined: true symbol_type: FUNCTION - crc: 0xa00b69c4 + crc: 0xab78a47d type_id: 0x9c3297de full_name: "ieee802154_hdr_push" } @@ -343550,7 +347547,7 @@ elf_symbol { name: "ieee802154_register_hw" is_defined: true symbol_type: FUNCTION - crc: 0x72c1a5e1 + crc: 0x1fc02ab2 type_id: 0x9fccd299 full_name: "ieee802154_register_hw" } @@ -343559,7 +347556,7 @@ elf_symbol { name: "ieee802154_rx_irqsafe" is_defined: true symbol_type: FUNCTION - crc: 0x782f198d + crc: 0xa611b806 type_id: 0x12cb0a9d full_name: "ieee802154_rx_irqsafe" } @@ -343568,7 +347565,7 @@ elf_symbol { name: "ieee802154_stop_queue" is_defined: true symbol_type: FUNCTION - crc: 0x7f2a2ec5 + crc: 0x166fa7d5 type_id: 0x12d46025 full_name: "ieee802154_stop_queue" } @@ -343577,7 +347574,7 @@ elf_symbol { name: "ieee802154_unregister_hw" is_defined: true symbol_type: FUNCTION - crc: 0xeb611afd + crc: 0xfbc4ea6d type_id: 0x12d46025 full_name: "ieee802154_unregister_hw" } @@ -343586,7 +347583,7 @@ elf_symbol { name: "ieee802154_wake_queue" is_defined: true symbol_type: FUNCTION - crc: 0x1e51f90c + crc: 0x0647bd0b type_id: 0x12d46025 full_name: "ieee802154_wake_queue" } @@ -343595,7 +347592,7 @@ elf_symbol { name: "ieee802154_xmit_complete" is_defined: true symbol_type: FUNCTION - crc: 0x4a7935eb + crc: 0xe37731d2 type_id: 0x12da0256 full_name: "ieee802154_xmit_complete" } @@ -343604,7 +347601,7 @@ elf_symbol { name: "ieee802154_xmit_error" is_defined: true symbol_type: FUNCTION - crc: 0x99889d31 + crc: 0x27c6d684 type_id: 0x12d895b5 full_name: "ieee802154_xmit_error" } @@ -343613,7 +347610,7 @@ elf_symbol { name: "ieee802154_xmit_hw_error" is_defined: true symbol_type: FUNCTION - crc: 0x9b64aaf4 + crc: 0xc2ae5a7a type_id: 0x12c15d81 full_name: "ieee802154_xmit_hw_error" } @@ -343631,7 +347628,7 @@ elf_symbol { name: "iio_buffer_enabled" is_defined: true symbol_type: FUNCTION - crc: 0x688c449d + crc: 0x0e4f1d30 type_id: 0xf886bca4 full_name: "iio_buffer_enabled" } @@ -343640,7 +347637,7 @@ elf_symbol { name: "iio_buffer_init" is_defined: true symbol_type: FUNCTION - crc: 0xd96b7f46 + crc: 0x4b490ba7 type_id: 0x1b54f3ab full_name: "iio_buffer_init" } @@ -343649,7 +347646,7 @@ elf_symbol { name: "iio_buffer_put" is_defined: true symbol_type: FUNCTION - crc: 0x70f21d1f + crc: 0x6e85014b type_id: 0x1b54f3ab full_name: "iio_buffer_put" } @@ -343658,7 +347655,7 @@ elf_symbol { name: "iio_channel_get" is_defined: true symbol_type: FUNCTION - crc: 0xe8aa0c69 + crc: 0x56495984 type_id: 0xa98cedf4 full_name: "iio_channel_get" } @@ -343667,7 +347664,7 @@ elf_symbol { name: "iio_channel_release" is_defined: true symbol_type: FUNCTION - crc: 0xbcaf4903 + crc: 0x5175a701 type_id: 0x1ef16b9c full_name: "iio_channel_release" } @@ -343676,7 +347673,7 @@ elf_symbol { name: "iio_device_attach_buffer" is_defined: true symbol_type: FUNCTION - crc: 0x9d1b0383 + crc: 0x5108f42b type_id: 0x9b1eceac full_name: "iio_device_attach_buffer" } @@ -343685,7 +347682,7 @@ elf_symbol { name: "iio_device_claim_direct_mode" is_defined: true symbol_type: FUNCTION - crc: 0xc8a3bdbb + crc: 0x2b5443d0 type_id: 0x9ba2048f full_name: "iio_device_claim_direct_mode" } @@ -343694,7 +347691,7 @@ elf_symbol { name: "iio_device_release_direct_mode" is_defined: true symbol_type: FUNCTION - crc: 0x67aab79b + crc: 0x28452f79 type_id: 0x16bab633 full_name: "iio_device_release_direct_mode" } @@ -343703,7 +347700,7 @@ elf_symbol { name: "iio_device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x9aab88cd + crc: 0x4b830363 type_id: 0x16bab633 full_name: "iio_device_unregister" } @@ -343712,7 +347709,7 @@ elf_symbol { name: "iio_get_channel_type" is_defined: true symbol_type: FUNCTION - crc: 0x7d7fc415 + crc: 0x39c4eb6c type_id: 0x93b5b685 full_name: "iio_get_channel_type" } @@ -343721,7 +347718,7 @@ elf_symbol { name: "iio_push_event" is_defined: true symbol_type: FUNCTION - crc: 0x7be5eb05 + crc: 0x1083440a type_id: 0x99e10ba5 full_name: "iio_push_event" } @@ -343730,7 +347727,7 @@ elf_symbol { name: "iio_push_to_buffers" is_defined: true symbol_type: FUNCTION - crc: 0x44321390 + crc: 0xe9cea651 type_id: 0x9b4678d8 full_name: "iio_push_to_buffers" } @@ -343739,7 +347736,7 @@ elf_symbol { name: "iio_read_channel_processed" is_defined: true symbol_type: FUNCTION - crc: 0x213b1e81 + crc: 0xd7cf4eb2 type_id: 0x93a4b915 full_name: "iio_read_channel_processed" } @@ -343748,7 +347745,7 @@ elf_symbol { name: "iio_write_channel_raw" is_defined: true symbol_type: FUNCTION - crc: 0x26d10ffd + crc: 0x0895f437 type_id: 0x92755a6c full_name: "iio_write_channel_raw" } @@ -343757,7 +347754,7 @@ elf_symbol { name: "import_iovec" is_defined: true symbol_type: FUNCTION - crc: 0xdc488009 + crc: 0x5ff46f8e type_id: 0x0dd33a8c full_name: "import_iovec" } @@ -343811,7 +347808,7 @@ elf_symbol { name: "inc_node_page_state" is_defined: true symbol_type: FUNCTION - crc: 0x3f3ae2a0 + crc: 0xb435050e type_id: 0x11899381 full_name: "inc_node_page_state" } @@ -343820,7 +347817,7 @@ elf_symbol { name: "inc_zone_page_state" is_defined: true symbol_type: FUNCTION - crc: 0x2105d784 + crc: 0xc195eff1 type_id: 0x125f5377 full_name: "inc_zone_page_state" } @@ -343829,7 +347826,7 @@ elf_symbol { name: "inet6_csk_xmit" is_defined: true symbol_type: FUNCTION - crc: 0xe400148e + crc: 0x64e859b7 type_id: 0x9ac293c4 full_name: "inet6_csk_xmit" } @@ -343838,7 +347835,7 @@ elf_symbol { name: "inet6_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0xd00127e7 + crc: 0xa0676236 type_id: 0x9882219f full_name: "inet6_ioctl" } @@ -343847,7 +347844,7 @@ elf_symbol { name: "inet_csk_get_port" is_defined: true symbol_type: FUNCTION - crc: 0xad3d95c3 + crc: 0x5f2b5770 type_id: 0x99f517b1 full_name: "inet_csk_get_port" } @@ -343856,7 +347853,7 @@ elf_symbol { name: "inet_frag_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x4d954d05 + crc: 0x1bb5cd3d type_id: 0x1edcf3e9 full_name: "inet_frag_destroy" } @@ -343865,7 +347862,7 @@ elf_symbol { name: "inet_frag_find" is_defined: true symbol_type: FUNCTION - crc: 0x4395f240 + crc: 0xb3a86cfa type_id: 0x51a0e42b full_name: "inet_frag_find" } @@ -343874,7 +347871,7 @@ elf_symbol { name: "inet_frag_kill" is_defined: true symbol_type: FUNCTION - crc: 0x9fb00175 + crc: 0x38073729 type_id: 0x1edcf3e9 full_name: "inet_frag_kill" } @@ -343883,7 +347880,7 @@ elf_symbol { name: "inet_frag_queue_insert" is_defined: true symbol_type: FUNCTION - crc: 0x5947145a + crc: 0x4c207ded type_id: 0x93c92846 full_name: "inet_frag_queue_insert" } @@ -343892,7 +347889,7 @@ elf_symbol { name: "inet_frag_reasm_finish" is_defined: true symbol_type: FUNCTION - crc: 0xfd79dd08 + crc: 0x2c700f97 type_id: 0x1ece54e9 full_name: "inet_frag_reasm_finish" } @@ -343901,7 +347898,7 @@ elf_symbol { name: "inet_frag_reasm_prepare" is_defined: true symbol_type: FUNCTION - crc: 0x53e53047 + crc: 0xcdfe784d type_id: 0x58c67df5 full_name: "inet_frag_reasm_prepare" } @@ -343910,7 +347907,7 @@ elf_symbol { name: "inet_frags_fini" is_defined: true symbol_type: FUNCTION - crc: 0xbd55f728 + crc: 0x73c2913a type_id: 0x1039da16 full_name: "inet_frags_fini" } @@ -343919,7 +347916,7 @@ elf_symbol { name: "inet_frags_init" is_defined: true symbol_type: FUNCTION - crc: 0x23a3588d + crc: 0xc98f72d7 type_id: 0x9d2168aa full_name: "inet_frags_init" } @@ -343928,7 +347925,7 @@ elf_symbol { name: "inet_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0xaed2917a + crc: 0xf754ca55 type_id: 0x9882219f full_name: "inet_ioctl" } @@ -343937,7 +347934,7 @@ elf_symbol { name: "init_dummy_netdev" is_defined: true symbol_type: FUNCTION - crc: 0x1932a7cc + crc: 0x8eba1e6e type_id: 0x91296bda full_name: "init_dummy_netdev" } @@ -343955,7 +347952,7 @@ elf_symbol { name: "init_net" is_defined: true symbol_type: OBJECT - crc: 0x32c7b8d7 + crc: 0x5fd6d279 type_id: 0x18c93498 full_name: "init_net" } @@ -343973,7 +347970,7 @@ elf_symbol { name: "init_pid_ns" is_defined: true symbol_type: OBJECT - crc: 0xb4090ac3 + crc: 0x7ece8a31 type_id: 0x02240842 full_name: "init_pid_ns" } @@ -343982,7 +347979,7 @@ elf_symbol { name: "init_pseudo" is_defined: true symbol_type: FUNCTION - crc: 0x50fd6b4e + crc: 0xb15b0b84 type_id: 0x5d05d02e full_name: "init_pseudo" } @@ -344000,7 +347997,7 @@ elf_symbol { name: "init_task" is_defined: true symbol_type: OBJECT - crc: 0xb59d6868 + crc: 0x2fb3bd7a type_id: 0x5e2641cb full_name: "init_task" } @@ -344054,7 +348051,7 @@ elf_symbol { name: "input_alloc_absinfo" is_defined: true symbol_type: FUNCTION - crc: 0x700d8608 + crc: 0x64370f47 type_id: 0x1488e3e7 full_name: "input_alloc_absinfo" } @@ -344063,7 +348060,7 @@ elf_symbol { name: "input_allocate_device" is_defined: true symbol_type: FUNCTION - crc: 0x7b5b2b16 + crc: 0x160c56a3 type_id: 0x3d249ff8 full_name: "input_allocate_device" } @@ -344072,7 +348069,7 @@ elf_symbol { name: "input_close_device" is_defined: true symbol_type: FUNCTION - crc: 0x478b6d85 + crc: 0x1aff8695 type_id: 0x1ee8bea7 full_name: "input_close_device" } @@ -344081,7 +348078,7 @@ elf_symbol { name: "input_event" is_defined: true symbol_type: FUNCTION - crc: 0x79dbd20d + crc: 0x99ce92f4 type_id: 0x158e0ba5 full_name: "input_event" } @@ -344090,7 +348087,7 @@ elf_symbol { name: "input_ff_create" is_defined: true symbol_type: FUNCTION - crc: 0x10e1a812 + crc: 0x04491471 type_id: 0x988644c3 full_name: "input_ff_create" } @@ -344099,7 +348096,7 @@ elf_symbol { name: "input_ff_destroy" is_defined: true symbol_type: FUNCTION - crc: 0xd271dcac + crc: 0x96f23b6a type_id: 0x1488e3e7 full_name: "input_ff_destroy" } @@ -344108,7 +348105,7 @@ elf_symbol { name: "input_free_device" is_defined: true symbol_type: FUNCTION - crc: 0x6bd6462f + crc: 0xbe525312 type_id: 0x1488e3e7 full_name: "input_free_device" } @@ -344117,7 +348114,7 @@ elf_symbol { name: "input_mt_assign_slots" is_defined: true symbol_type: FUNCTION - crc: 0x53746b1d + crc: 0xc6e256ca type_id: 0x99d112d9 full_name: "input_mt_assign_slots" } @@ -344126,7 +348123,7 @@ elf_symbol { name: "input_mt_destroy_slots" is_defined: true symbol_type: FUNCTION - crc: 0x3c21a83e + crc: 0x21096766 type_id: 0x1488e3e7 full_name: "input_mt_destroy_slots" } @@ -344135,7 +348132,7 @@ elf_symbol { name: "input_mt_drop_unused" is_defined: true symbol_type: FUNCTION - crc: 0x932f47b9 + crc: 0x25fdaccf type_id: 0x1488e3e7 full_name: "input_mt_drop_unused" } @@ -344144,7 +348141,7 @@ elf_symbol { name: "input_mt_init_slots" is_defined: true symbol_type: FUNCTION - crc: 0x603d2482 + crc: 0xe0573f08 type_id: 0x9897259a full_name: "input_mt_init_slots" } @@ -344153,7 +348150,7 @@ elf_symbol { name: "input_mt_report_finger_count" is_defined: true symbol_type: FUNCTION - crc: 0x96c9f6fd + crc: 0xae5282ab type_id: 0x151460ab full_name: "input_mt_report_finger_count" } @@ -344162,7 +348159,7 @@ elf_symbol { name: "input_mt_report_pointer_emulation" is_defined: true symbol_type: FUNCTION - crc: 0x970e2f35 + crc: 0x3d08e47c type_id: 0x153d1e98 full_name: "input_mt_report_pointer_emulation" } @@ -344171,7 +348168,7 @@ elf_symbol { name: "input_mt_report_slot_state" is_defined: true symbol_type: FUNCTION - crc: 0x1a1072fd + crc: 0xf0c33b56 type_id: 0xfbb9a33f full_name: "input_mt_report_slot_state" } @@ -344180,7 +348177,7 @@ elf_symbol { name: "input_mt_sync_frame" is_defined: true symbol_type: FUNCTION - crc: 0xf9c8191b + crc: 0x7283fcde type_id: 0x1488e3e7 full_name: "input_mt_sync_frame" } @@ -344189,7 +348186,7 @@ elf_symbol { name: "input_open_device" is_defined: true symbol_type: FUNCTION - crc: 0xb2caf7dc + crc: 0x54a188c2 type_id: 0x93f00c1b full_name: "input_open_device" } @@ -344198,7 +348195,7 @@ elf_symbol { name: "input_register_device" is_defined: true symbol_type: FUNCTION - crc: 0x38a29327 + crc: 0x79146be0 type_id: 0x9990515b full_name: "input_register_device" } @@ -344207,7 +348204,7 @@ elf_symbol { name: "input_register_handle" is_defined: true symbol_type: FUNCTION - crc: 0x4fb4ad50 + crc: 0x48027ed8 type_id: 0x93f00c1b full_name: "input_register_handle" } @@ -344216,7 +348213,7 @@ elf_symbol { name: "input_register_handler" is_defined: true symbol_type: FUNCTION - crc: 0x8e5b8486 + crc: 0x84aa429a type_id: 0x9b6acfa5 full_name: "input_register_handler" } @@ -344225,7 +348222,7 @@ elf_symbol { name: "input_set_abs_params" is_defined: true symbol_type: FUNCTION - crc: 0x515a3f1a + crc: 0x2363edd8 type_id: 0x1586ba9c full_name: "input_set_abs_params" } @@ -344234,7 +348231,7 @@ elf_symbol { name: "input_set_capability" is_defined: true symbol_type: FUNCTION - crc: 0xce463a4f + crc: 0x4a23b8e0 type_id: 0x158f9726 full_name: "input_set_capability" } @@ -344243,7 +348240,7 @@ elf_symbol { name: "input_set_timestamp" is_defined: true symbol_type: FUNCTION - crc: 0x3aa4b37c + crc: 0x1f7d3b09 type_id: 0x14cff3f5 full_name: "input_set_timestamp" } @@ -344252,7 +348249,7 @@ elf_symbol { name: "input_unregister_device" is_defined: true symbol_type: FUNCTION - crc: 0xadb71eb0 + crc: 0xd3d37e28 type_id: 0x1488e3e7 full_name: "input_unregister_device" } @@ -344261,7 +348258,7 @@ elf_symbol { name: "input_unregister_handle" is_defined: true symbol_type: FUNCTION - crc: 0xd90fafeb + crc: 0xfaa84b92 type_id: 0x1ee8bea7 full_name: "input_unregister_handle" } @@ -344270,7 +348267,7 @@ elf_symbol { name: "input_unregister_handler" is_defined: true symbol_type: FUNCTION - crc: 0xe4950ea4 + crc: 0xfa00928b type_id: 0x16727d19 full_name: "input_unregister_handler" } @@ -344333,7 +348330,7 @@ elf_symbol { name: "invalidate_mapping_pages" is_defined: true symbol_type: FUNCTION - crc: 0x8932f9cc + crc: 0x3044ffc0 type_id: 0x340d6f59 full_name: "invalidate_mapping_pages" } @@ -344360,7 +348357,7 @@ elf_symbol { name: "iommu_alloc_resv_region" is_defined: true symbol_type: FUNCTION - crc: 0xbfbb55fc + crc: 0x29f31322 type_id: 0x221b39b7 full_name: "iommu_alloc_resv_region" } @@ -344369,7 +348366,7 @@ elf_symbol { name: "iommu_attach_device" is_defined: true symbol_type: FUNCTION - crc: 0x1bfd26a0 + crc: 0xf67a4529 type_id: 0x962ca8b2 full_name: "iommu_attach_device" } @@ -344378,7 +348375,7 @@ elf_symbol { name: "iommu_attach_group" is_defined: true symbol_type: FUNCTION - crc: 0x3260d7ec + crc: 0x96e10cc1 type_id: 0x96000700 full_name: "iommu_attach_group" } @@ -344387,7 +348384,7 @@ elf_symbol { name: "iommu_detach_device" is_defined: true symbol_type: FUNCTION - crc: 0x49160431 + crc: 0xc424656c type_id: 0x1b341a0e full_name: "iommu_detach_device" } @@ -344396,7 +348393,7 @@ elf_symbol { name: "iommu_device_register" is_defined: true symbol_type: FUNCTION - crc: 0xade6c023 + crc: 0x947a1f3d type_id: 0x92c1e3df full_name: "iommu_device_register" } @@ -344405,7 +348402,7 @@ elf_symbol { name: "iommu_device_sysfs_add" is_defined: true symbol_type: FUNCTION - crc: 0xd840b2c7 + crc: 0xfa388a97 type_id: 0x9232e21d full_name: "iommu_device_sysfs_add" } @@ -344414,7 +348411,7 @@ elf_symbol { name: "iommu_device_sysfs_remove" is_defined: true symbol_type: FUNCTION - crc: 0x504f6f82 + crc: 0x667513be type_id: 0x1f227282 full_name: "iommu_device_sysfs_remove" } @@ -344423,7 +348420,7 @@ elf_symbol { name: "iommu_device_unlink" is_defined: true symbol_type: FUNCTION - crc: 0x6211efcb + crc: 0xf72c2c06 type_id: 0x1f2b1167 full_name: "iommu_device_unlink" } @@ -344432,7 +348429,7 @@ elf_symbol { name: "iommu_device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x8d527c8b + crc: 0x047bc84e type_id: 0x1f227282 full_name: "iommu_device_unregister" } @@ -344441,7 +348438,7 @@ elf_symbol { name: "iommu_dma_get_resv_regions" is_defined: true symbol_type: FUNCTION - crc: 0x3075d342 + crc: 0x120606f4 type_id: 0x10f7e72f full_name: "iommu_dma_get_resv_regions" } @@ -344450,7 +348447,7 @@ elf_symbol { name: "iommu_domain_alloc" is_defined: true symbol_type: FUNCTION - crc: 0xe3d2c4a1 + crc: 0x4f81241b type_id: 0xe717ecff full_name: "iommu_domain_alloc" } @@ -344459,7 +348456,7 @@ elf_symbol { name: "iommu_domain_free" is_defined: true symbol_type: FUNCTION - crc: 0xc56cb036 + crc: 0xaf384f25 type_id: 0x1b3d79eb full_name: "iommu_domain_free" } @@ -344468,7 +348465,7 @@ elf_symbol { name: "iommu_fwspec_add_ids" is_defined: true symbol_type: FUNCTION - crc: 0xf4c0c08d + crc: 0x31a2fe60 type_id: 0x9dec5d8d full_name: "iommu_fwspec_add_ids" } @@ -344477,7 +348474,7 @@ elf_symbol { name: "iommu_fwspec_free" is_defined: true symbol_type: FUNCTION - crc: 0x833b5bf3 + crc: 0x1c6f3445 type_id: 0x100e6fc8 full_name: "iommu_fwspec_free" } @@ -344486,7 +348483,7 @@ elf_symbol { name: "iommu_get_domain_for_dev" is_defined: true symbol_type: FUNCTION - crc: 0x57377fca + crc: 0xc2ece0c0 type_id: 0xe7724f97 full_name: "iommu_get_domain_for_dev" } @@ -344495,7 +348492,7 @@ elf_symbol { name: "iommu_get_msi_cookie" is_defined: true symbol_type: FUNCTION - crc: 0x1417c5dc + crc: 0xb6390026 type_id: 0x95a57304 full_name: "iommu_get_msi_cookie" } @@ -344513,7 +348510,7 @@ elf_symbol { name: "iommu_group_for_each_dev" is_defined: true symbol_type: FUNCTION - crc: 0x0775abd8 + crc: 0xebeb846b type_id: 0x9fb5a087 full_name: "iommu_group_for_each_dev" } @@ -344522,7 +348519,7 @@ elf_symbol { name: "iommu_group_get" is_defined: true symbol_type: FUNCTION - crc: 0x38491b8b + crc: 0x39bee103 type_id: 0x7e204efc full_name: "iommu_group_get" } @@ -344576,7 +348573,7 @@ elf_symbol { name: "iommu_iova_to_phys" is_defined: true symbol_type: FUNCTION - crc: 0x58cedc62 + crc: 0x7ca7e42a type_id: 0x098dcb5d full_name: "iommu_iova_to_phys" } @@ -344585,7 +348582,7 @@ elf_symbol { name: "iommu_map" is_defined: true symbol_type: FUNCTION - crc: 0xb6f5e584 + crc: 0xba461b8d type_id: 0x96c4a3ba full_name: "iommu_map" } @@ -344594,7 +348591,7 @@ elf_symbol { name: "iommu_map_sg" is_defined: true symbol_type: FUNCTION - crc: 0xdd43d888 + crc: 0xcf901539 type_id: 0x1f9c6048 full_name: "iommu_map_sg" } @@ -344603,7 +348600,7 @@ elf_symbol { name: "iommu_present" is_defined: true symbol_type: FUNCTION - crc: 0xbfbf8ca2 + crc: 0x4c8925fc type_id: 0xfe57c637 full_name: "iommu_present" } @@ -344612,7 +348609,7 @@ elf_symbol { name: "iommu_put_resv_regions" is_defined: true symbol_type: FUNCTION - crc: 0x2f9329b6 + crc: 0x6a9c5c62 type_id: 0x10f7e72f full_name: "iommu_put_resv_regions" } @@ -344621,7 +348618,7 @@ elf_symbol { name: "iommu_register_device_fault_handler" is_defined: true symbol_type: FUNCTION - crc: 0xd721ad5f + crc: 0xca42704e type_id: 0x9c0ff674 full_name: "iommu_register_device_fault_handler" } @@ -344630,7 +348627,7 @@ elf_symbol { name: "iommu_report_device_fault" is_defined: true symbol_type: FUNCTION - crc: 0x73a8ac8c + crc: 0xed45718c type_id: 0x9da4bde5 full_name: "iommu_report_device_fault" } @@ -344639,7 +348636,7 @@ elf_symbol { name: "iommu_set_fault_handler" is_defined: true symbol_type: FUNCTION - crc: 0xcf2b9958 + crc: 0x021050d0 type_id: 0x197a8250 full_name: "iommu_set_fault_handler" } @@ -344648,7 +348645,7 @@ elf_symbol { name: "iommu_set_pgtable_quirks" is_defined: true symbol_type: FUNCTION - crc: 0x00fa2146 + crc: 0x68b2aba1 type_id: 0x96e81ec5 full_name: "iommu_set_pgtable_quirks" } @@ -344657,7 +348654,7 @@ elf_symbol { name: "iommu_unmap" is_defined: true symbol_type: FUNCTION - crc: 0x59d14494 + crc: 0x89f100bd type_id: 0x9c6a39e2 full_name: "iommu_unmap" } @@ -344666,7 +348663,7 @@ elf_symbol { name: "iommu_unregister_device_fault_handler" is_defined: true symbol_type: FUNCTION - crc: 0xd2c133f2 + crc: 0xfd7f2e6d type_id: 0x9d16dd74 full_name: "iommu_unregister_device_fault_handler" } @@ -344693,7 +348690,7 @@ elf_symbol { name: "iov_iter_init" is_defined: true symbol_type: FUNCTION - crc: 0x04e6456a + crc: 0x3ca2ebde type_id: 0x1a5debf2 full_name: "iov_iter_init" } @@ -344702,7 +348699,7 @@ elf_symbol { name: "iov_iter_kvec" is_defined: true symbol_type: FUNCTION - crc: 0xf0aaea75 + crc: 0xcc28bc22 type_id: 0x1a5c3241 full_name: "iov_iter_kvec" } @@ -344711,7 +348708,7 @@ elf_symbol { name: "iov_iter_revert" is_defined: true symbol_type: FUNCTION - crc: 0xe75c787d + crc: 0xd262691c type_id: 0x189472bc full_name: "iov_iter_revert" } @@ -344720,7 +348717,7 @@ elf_symbol { name: "ip6_dst_hoplimit" is_defined: true symbol_type: FUNCTION - crc: 0xed8cf37d + crc: 0x144bf665 type_id: 0x99169bf2 full_name: "ip6_dst_hoplimit" } @@ -344729,7 +348726,7 @@ elf_symbol { name: "ip6_local_out" is_defined: true symbol_type: FUNCTION - crc: 0x32927d3e + crc: 0xbbb60207 type_id: 0x9edc3d1c full_name: "ip6_local_out" } @@ -344738,7 +348735,7 @@ elf_symbol { name: "ip6_route_me_harder" is_defined: true symbol_type: FUNCTION - crc: 0xaa396f35 + crc: 0x80201e67 type_id: 0x9edc3d1c full_name: "ip6_route_me_harder" } @@ -344756,7 +348753,7 @@ elf_symbol { name: "ip_local_out" is_defined: true symbol_type: FUNCTION - crc: 0x568bb765 + crc: 0xe7a22357 type_id: 0x9edc3d1c full_name: "ip_local_out" } @@ -344765,7 +348762,7 @@ elf_symbol { name: "ip_mc_join_group" is_defined: true symbol_type: FUNCTION - crc: 0x8b80b344 + crc: 0x8c76b49e type_id: 0x9a03c4d6 full_name: "ip_mc_join_group" } @@ -344774,7 +348771,7 @@ elf_symbol { name: "ip_queue_xmit" is_defined: true symbol_type: FUNCTION - crc: 0xf17f9894 + crc: 0x3d4df9cf type_id: 0x9ac293c4 full_name: "ip_queue_xmit" } @@ -344783,7 +348780,7 @@ elf_symbol { name: "ip_route_me_harder" is_defined: true symbol_type: FUNCTION - crc: 0xb43b77cd + crc: 0x3df61971 type_id: 0x9edd2b09 full_name: "ip_route_me_harder" } @@ -344792,7 +348789,7 @@ elf_symbol { name: "ip_route_output_flow" is_defined: true symbol_type: FUNCTION - crc: 0x98e1891f + crc: 0xb88a85ac type_id: 0x7b5e948b full_name: "ip_route_output_flow" } @@ -344810,7 +348807,7 @@ elf_symbol { name: "ipi_desc_get" is_defined: true symbol_type: FUNCTION - crc: 0x5ec5f6d7 + crc: 0xae87bd22 type_id: 0xac8d9251 full_name: "ipi_desc_get" } @@ -344819,7 +348816,7 @@ elf_symbol { name: "iput" is_defined: true symbol_type: FUNCTION - crc: 0x7864261c + crc: 0x775c2773 type_id: 0x167935b9 full_name: "iput" } @@ -344828,7 +348825,7 @@ elf_symbol { name: "ipv6_dev_find" is_defined: true symbol_type: FUNCTION - crc: 0x94523783 + crc: 0xa4f88942 type_id: 0xffbaa126 full_name: "ipv6_dev_find" } @@ -344846,7 +348843,7 @@ elf_symbol { name: "ipv6_find_hdr" is_defined: true symbol_type: FUNCTION - crc: 0xb00dea8a + crc: 0x05ee6b13 type_id: 0x926eec8b full_name: "ipv6_find_hdr" } @@ -344855,7 +348852,7 @@ elf_symbol { name: "ipv6_skip_exthdr" is_defined: true symbol_type: FUNCTION - crc: 0x68a112f9 + crc: 0x2acbd51f type_id: 0x9384ebd6 full_name: "ipv6_skip_exthdr" } @@ -344864,7 +348861,7 @@ elf_symbol { name: "ipv6_stub" is_defined: true symbol_type: OBJECT - crc: 0x007491ed + crc: 0xfed5b98d type_id: 0x3d278a00 full_name: "ipv6_stub" } @@ -344882,7 +348879,7 @@ elf_symbol { name: "irq_chip_ack_parent" is_defined: true symbol_type: FUNCTION - crc: 0xf9d42b28 + crc: 0x5bf64ce5 type_id: 0x1247424a full_name: "irq_chip_ack_parent" } @@ -344891,7 +348888,7 @@ elf_symbol { name: "irq_chip_disable_parent" is_defined: true symbol_type: FUNCTION - crc: 0x6cde6edf + crc: 0xeef9392d type_id: 0x1247424a full_name: "irq_chip_disable_parent" } @@ -344900,7 +348897,7 @@ elf_symbol { name: "irq_chip_enable_parent" is_defined: true symbol_type: FUNCTION - crc: 0xdc65abfc + crc: 0x85a43857 type_id: 0x1247424a full_name: "irq_chip_enable_parent" } @@ -344909,7 +348906,7 @@ elf_symbol { name: "irq_chip_eoi_parent" is_defined: true symbol_type: FUNCTION - crc: 0xe481bd5c + crc: 0xb9705cf5 type_id: 0x1247424a full_name: "irq_chip_eoi_parent" } @@ -344918,7 +348915,7 @@ elf_symbol { name: "irq_chip_get_parent_state" is_defined: true symbol_type: FUNCTION - crc: 0xd0da2d61 + crc: 0xcaa93301 type_id: 0x9eedf034 full_name: "irq_chip_get_parent_state" } @@ -344927,7 +348924,7 @@ elf_symbol { name: "irq_chip_mask_parent" is_defined: true symbol_type: FUNCTION - crc: 0x654c5a0d + crc: 0xca81c021 type_id: 0x1247424a full_name: "irq_chip_mask_parent" } @@ -344936,7 +348933,7 @@ elf_symbol { name: "irq_chip_retrigger_hierarchy" is_defined: true symbol_type: FUNCTION - crc: 0x1b4e8d05 + crc: 0x792a752c type_id: 0x9f5ff0f6 full_name: "irq_chip_retrigger_hierarchy" } @@ -344945,7 +348942,7 @@ elf_symbol { name: "irq_chip_set_affinity_parent" is_defined: true symbol_type: FUNCTION - crc: 0x8707d6ee + crc: 0xfd4d2210 type_id: 0x9f809421 full_name: "irq_chip_set_affinity_parent" } @@ -344954,7 +348951,7 @@ elf_symbol { name: "irq_chip_set_parent_state" is_defined: true symbol_type: FUNCTION - crc: 0x7d51031e + crc: 0xe1040335 type_id: 0x9ef2dc18 full_name: "irq_chip_set_parent_state" } @@ -344963,7 +348960,7 @@ elf_symbol { name: "irq_chip_set_type_parent" is_defined: true symbol_type: FUNCTION - crc: 0x51c3a986 + crc: 0x01f78db8 type_id: 0x9e49e56e full_name: "irq_chip_set_type_parent" } @@ -344972,7 +348969,7 @@ elf_symbol { name: "irq_chip_set_vcpu_affinity_parent" is_defined: true symbol_type: FUNCTION - crc: 0xb3069d53 + crc: 0x674a1313 type_id: 0x9f3d0562 full_name: "irq_chip_set_vcpu_affinity_parent" } @@ -344981,7 +348978,7 @@ elf_symbol { name: "irq_chip_set_wake_parent" is_defined: true symbol_type: FUNCTION - crc: 0xc6c3fa40 + crc: 0xd37dc3b3 type_id: 0x9e49e56e full_name: "irq_chip_set_wake_parent" } @@ -344990,7 +348987,7 @@ elf_symbol { name: "irq_chip_unmask_parent" is_defined: true symbol_type: FUNCTION - crc: 0x7845e114 + crc: 0x742abd31 type_id: 0x1247424a full_name: "irq_chip_unmask_parent" } @@ -344999,7 +348996,7 @@ elf_symbol { name: "irq_create_fwspec_mapping" is_defined: true symbol_type: FUNCTION - crc: 0xfa942e66 + crc: 0x50abfd09 type_id: 0xce9279fb full_name: "irq_create_fwspec_mapping" } @@ -345008,7 +349005,7 @@ elf_symbol { name: "irq_create_mapping_affinity" is_defined: true symbol_type: FUNCTION - crc: 0x43f83700 + crc: 0xcc5d50e4 type_id: 0xc8743fe5 full_name: "irq_create_mapping_affinity" } @@ -345017,7 +349014,7 @@ elf_symbol { name: "irq_create_of_mapping" is_defined: true symbol_type: FUNCTION - crc: 0x70c02888 + crc: 0x17479774 type_id: 0xcdea9cab full_name: "irq_create_of_mapping" } @@ -345035,7 +349032,7 @@ elf_symbol { name: "irq_do_set_affinity" is_defined: true symbol_type: FUNCTION - crc: 0xd1a1dcea + crc: 0x570d1a19 type_id: 0x9f809421 full_name: "irq_do_set_affinity" } @@ -345044,7 +349041,7 @@ elf_symbol { name: "irq_domain_alloc_irqs_parent" is_defined: true symbol_type: FUNCTION - crc: 0x96201356 + crc: 0x96ab60f1 type_id: 0x9aaf4bc3 full_name: "irq_domain_alloc_irqs_parent" } @@ -345053,7 +349050,7 @@ elf_symbol { name: "irq_domain_create_hierarchy" is_defined: true symbol_type: FUNCTION - crc: 0xd2579cab + crc: 0xbd188c56 type_id: 0x5807e85a full_name: "irq_domain_create_hierarchy" } @@ -345062,7 +349059,7 @@ elf_symbol { name: "irq_domain_disconnect_hierarchy" is_defined: true symbol_type: FUNCTION - crc: 0x1731b8b7 + crc: 0xa487d2a2 type_id: 0x9abe486f full_name: "irq_domain_disconnect_hierarchy" } @@ -345071,7 +349068,7 @@ elf_symbol { name: "irq_domain_free_irqs_common" is_defined: true symbol_type: FUNCTION - crc: 0xdfb60d3c + crc: 0x5be09c0a type_id: 0x17b79b8a full_name: "irq_domain_free_irqs_common" } @@ -345080,7 +349077,7 @@ elf_symbol { name: "irq_domain_free_irqs_parent" is_defined: true symbol_type: FUNCTION - crc: 0x93073575 + crc: 0x83c88b2b type_id: 0x17b79b8a full_name: "irq_domain_free_irqs_parent" } @@ -345089,7 +349086,7 @@ elf_symbol { name: "irq_domain_get_irq_data" is_defined: true symbol_type: FUNCTION - crc: 0x737fe500 + crc: 0x56ae3033 type_id: 0xf6d4f929 full_name: "irq_domain_get_irq_data" } @@ -345098,7 +349095,7 @@ elf_symbol { name: "irq_domain_remove" is_defined: true symbol_type: FUNCTION - crc: 0x82536ad7 + crc: 0xeb247e66 type_id: 0x16b0ef4b full_name: "irq_domain_remove" } @@ -345107,7 +349104,7 @@ elf_symbol { name: "irq_domain_set_hwirq_and_chip" is_defined: true symbol_type: FUNCTION - crc: 0xecd7e8f8 + crc: 0x4138e6b9 type_id: 0x9ab63fbc full_name: "irq_domain_set_hwirq_and_chip" } @@ -345116,7 +349113,7 @@ elf_symbol { name: "irq_domain_set_info" is_defined: true symbol_type: FUNCTION - crc: 0xc8288e51 + crc: 0x4e9e68b7 type_id: 0x17ae8fc5 full_name: "irq_domain_set_info" } @@ -345125,7 +349122,7 @@ elf_symbol { name: "irq_domain_simple_ops" is_defined: true symbol_type: OBJECT - crc: 0x384c6493 + crc: 0x5ac5fe1c type_id: 0xea94bed9 full_name: "irq_domain_simple_ops" } @@ -345134,7 +349131,7 @@ elf_symbol { name: "irq_domain_translate_twocell" is_defined: true symbol_type: FUNCTION - crc: 0x3d4529e5 + crc: 0x08635be3 type_id: 0x9bad311a full_name: "irq_domain_translate_twocell" } @@ -345143,7 +349140,7 @@ elf_symbol { name: "irq_domain_update_bus_token" is_defined: true symbol_type: FUNCTION - crc: 0xccdf6682 + crc: 0x5efd03ff type_id: 0x14e196b0 full_name: "irq_domain_update_bus_token" } @@ -345152,7 +349149,7 @@ elf_symbol { name: "irq_domain_xlate_onecell" is_defined: true symbol_type: FUNCTION - crc: 0xd72b9945 + crc: 0x0ce05081 type_id: 0x9b74c720 full_name: "irq_domain_xlate_onecell" } @@ -345161,7 +349158,7 @@ elf_symbol { name: "irq_domain_xlate_twocell" is_defined: true symbol_type: FUNCTION - crc: 0xec2efd96 + crc: 0x67a44ba1 type_id: 0x9b74c63c full_name: "irq_domain_xlate_twocell" } @@ -345170,7 +349167,7 @@ elf_symbol { name: "irq_find_matching_fwspec" is_defined: true symbol_type: FUNCTION - crc: 0x025b8084 + crc: 0x5dfe2251 type_id: 0x5d304295 full_name: "irq_find_matching_fwspec" } @@ -345179,7 +349176,7 @@ elf_symbol { name: "irq_get_irq_data" is_defined: true symbol_type: FUNCTION - crc: 0x0f2aa9c0 + crc: 0xa63e27dd type_id: 0xe08b0be6 full_name: "irq_get_irq_data" } @@ -345206,7 +349203,7 @@ elf_symbol { name: "irq_of_parse_and_map" is_defined: true symbol_type: FUNCTION - crc: 0x73710a8e + crc: 0x19b2f605 type_id: 0xc25b3d5a full_name: "irq_of_parse_and_map" } @@ -345233,7 +349230,7 @@ elf_symbol { name: "irq_set_chained_handler_and_data" is_defined: true symbol_type: FUNCTION - crc: 0x4531cc2e + crc: 0xc86ccc02 type_id: 0x033c2ce9 full_name: "irq_set_chained_handler_and_data" } @@ -345242,7 +349239,7 @@ elf_symbol { name: "irq_set_chip_and_handler_name" is_defined: true symbol_type: FUNCTION - crc: 0xf19aeae8 + crc: 0x9dc32f27 type_id: 0x0108e41c full_name: "irq_set_chip_and_handler_name" } @@ -345255,6 +349252,15 @@ elf_symbol { type_id: 0x8c834f34 full_name: "irq_set_chip_data" } +elf_symbol { + id: 0x0bad9216 + name: "irq_set_handler_data" + is_defined: true + symbol_type: FUNCTION + crc: 0x3dcb88a0 + type_id: 0x8c834f34 + full_name: "irq_set_handler_data" +} elf_symbol { id: 0xb2b17b6f name: "irq_set_irq_type" @@ -345296,7 +349302,7 @@ elf_symbol { name: "irq_to_desc" is_defined: true symbol_type: FUNCTION - crc: 0xc195aa0f + crc: 0xec77bf49 type_id: 0xd597088b full_name: "irq_to_desc" } @@ -345305,7 +349311,7 @@ elf_symbol { name: "irq_work_queue" is_defined: true symbol_type: FUNCTION - crc: 0xc8191350 + crc: 0x59ec6842 type_id: 0xf795eafe full_name: "irq_work_queue" } @@ -345314,7 +349320,7 @@ elf_symbol { name: "irq_work_queue_on" is_defined: true symbol_type: FUNCTION - crc: 0x28729c72 + crc: 0x0ddfd5ec type_id: 0xf60969b2 full_name: "irq_work_queue_on" } @@ -345323,7 +349329,7 @@ elf_symbol { name: "irq_work_sync" is_defined: true symbol_type: FUNCTION - crc: 0xbe8a1ab9 + crc: 0x16a41102 type_id: 0x19a9e069 full_name: "irq_work_sync" } @@ -345332,7 +349338,7 @@ elf_symbol { name: "is_virtio_device" is_defined: true symbol_type: FUNCTION - crc: 0xdd643dc8 + crc: 0xc32c6db6 type_id: 0xfe32655f full_name: "is_virtio_device" } @@ -345350,7 +349356,7 @@ elf_symbol { name: "isolate_and_split_free_page" is_defined: true symbol_type: FUNCTION - crc: 0x62a6af1a + crc: 0x420e8ebe type_id: 0x30f59213 full_name: "isolate_and_split_free_page" } @@ -345359,7 +349365,7 @@ elf_symbol { name: "isolate_anon_lru_page" is_defined: true symbol_type: FUNCTION - crc: 0xcb2ed487 + crc: 0x7f6f3590 type_id: 0x9c203488 full_name: "isolate_anon_lru_page" } @@ -345368,7 +349374,7 @@ elf_symbol { name: "iterate_fd" is_defined: true symbol_type: FUNCTION - crc: 0xb6b61d57 + crc: 0xce4ec0ec type_id: 0x9659ea27 full_name: "iterate_fd" } @@ -345390,6 +349396,15 @@ elf_symbol { type_id: 0x73531faf full_name: "jiffies64_to_msecs" } +elf_symbol { + id: 0x075fdad1 + name: "jiffies_64" + is_defined: true + symbol_type: OBJECT + crc: 0x055e77e8 + type_id: 0x92233392 + full_name: "jiffies_64" +} elf_symbol { id: 0x6bcfa61d name: "jiffies_64_to_clock_t" @@ -345440,7 +349455,7 @@ elf_symbol { name: "kern_mount" is_defined: true symbol_type: FUNCTION - crc: 0xa6f5dcc6 + crc: 0x73ee300c type_id: 0x66e18f45 full_name: "kern_mount" } @@ -345449,7 +349464,7 @@ elf_symbol { name: "kern_unmount" is_defined: true symbol_type: FUNCTION - crc: 0xd8a0cdbd + crc: 0x7a4af64b type_id: 0x1bbb411c full_name: "kern_unmount" } @@ -345458,7 +349473,7 @@ elf_symbol { name: "kernel_accept" is_defined: true symbol_type: FUNCTION - crc: 0xee620dcc + crc: 0x45e75ba1 type_id: 0x99bb01a5 full_name: "kernel_accept" } @@ -345467,7 +349482,7 @@ elf_symbol { name: "kernel_bind" is_defined: true symbol_type: FUNCTION - crc: 0xa29b764c + crc: 0x140ceab7 type_id: 0x99526c70 full_name: "kernel_bind" } @@ -345476,7 +349491,7 @@ elf_symbol { name: "kernel_connect" is_defined: true symbol_type: FUNCTION - crc: 0xa5ef615c + crc: 0x220cb130 type_id: 0x9953f0f3 full_name: "kernel_connect" } @@ -345494,7 +349509,7 @@ elf_symbol { name: "kernel_getsockname" is_defined: true symbol_type: FUNCTION - crc: 0x465543a6 + crc: 0xc37b5832 type_id: 0x994ba444 full_name: "kernel_getsockname" } @@ -345503,7 +349518,7 @@ elf_symbol { name: "kernel_kobj" is_defined: true symbol_type: OBJECT - crc: 0x0f1a57df + crc: 0xc136c943 type_id: 0x23f09c34 full_name: "kernel_kobj" } @@ -345512,7 +349527,7 @@ elf_symbol { name: "kernel_listen" is_defined: true symbol_type: FUNCTION - crc: 0xd03f79f9 + crc: 0x5aed5ff1 type_id: 0x98046a12 full_name: "kernel_listen" } @@ -345521,7 +349536,7 @@ elf_symbol { name: "kernel_param_lock" is_defined: true symbol_type: FUNCTION - crc: 0x4aa85b57 + crc: 0x8cb9e70c type_id: 0x1251a683 full_name: "kernel_param_lock" } @@ -345530,7 +349545,7 @@ elf_symbol { name: "kernel_param_unlock" is_defined: true symbol_type: FUNCTION - crc: 0xa8889e54 + crc: 0x1406f0c5 type_id: 0x1251a683 full_name: "kernel_param_unlock" } @@ -345548,7 +349563,7 @@ elf_symbol { name: "kernel_recvmsg" is_defined: true symbol_type: FUNCTION - crc: 0x29028aa8 + crc: 0x1d23caed type_id: 0x992e9bfb full_name: "kernel_recvmsg" } @@ -345566,7 +349581,7 @@ elf_symbol { name: "kernel_sendmsg" is_defined: true symbol_type: FUNCTION - crc: 0xc236e92c + crc: 0xfcfbdb32 type_id: 0x992e9a67 full_name: "kernel_sendmsg" } @@ -345575,7 +349590,7 @@ elf_symbol { name: "kernel_sock_shutdown" is_defined: true symbol_type: FUNCTION - crc: 0x29e2cdd9 + crc: 0x16267a72 type_id: 0x9b768ae0 full_name: "kernel_sock_shutdown" } @@ -345584,7 +349599,7 @@ elf_symbol { name: "kernfs_find_and_get_ns" is_defined: true symbol_type: FUNCTION - crc: 0x61a5bc55 + crc: 0x429e0f98 type_id: 0x883b05d4 full_name: "kernfs_find_and_get_ns" } @@ -345593,7 +349608,7 @@ elf_symbol { name: "kernfs_notify" is_defined: true symbol_type: FUNCTION - crc: 0x9741b90f + crc: 0xe84c0787 type_id: 0x1e0c8305 full_name: "kernfs_notify" } @@ -345602,7 +349617,7 @@ elf_symbol { name: "kernfs_put" is_defined: true symbol_type: FUNCTION - crc: 0x62b2a526 + crc: 0xf400d723 type_id: 0x1e0c8305 full_name: "kernfs_put" } @@ -345629,7 +349644,7 @@ elf_symbol { name: "keyring_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x1ad88731 + crc: 0x38eb075a type_id: 0x8f04b264 full_name: "keyring_alloc" } @@ -345665,7 +349680,7 @@ elf_symbol { name: "kfree_skb_list_reason" is_defined: true symbol_type: FUNCTION - crc: 0xdc958e91 + crc: 0x71143310 type_id: 0x11a9e681 full_name: "kfree_skb_list_reason" } @@ -345674,7 +349689,7 @@ elf_symbol { name: "kfree_skb_partial" is_defined: true symbol_type: FUNCTION - crc: 0xdb63b3a0 + crc: 0x0557ab0b type_id: 0x107e76aa full_name: "kfree_skb_partial" } @@ -345683,7 +349698,7 @@ elf_symbol { name: "kfree_skb_reason" is_defined: true symbol_type: FUNCTION - crc: 0xb0ebc167 + crc: 0xee1700d4 type_id: 0x11a9e681 full_name: "kfree_skb_reason" } @@ -345701,7 +349716,7 @@ elf_symbol { name: "kill_anon_super" is_defined: true symbol_type: FUNCTION - crc: 0xc4be0758 + crc: 0x142fc544 type_id: 0x1923cb99 full_name: "kill_anon_super" } @@ -345710,7 +349725,7 @@ elf_symbol { name: "kill_fasync" is_defined: true symbol_type: FUNCTION - crc: 0x17f1c18e + crc: 0x2f9e10f8 type_id: 0x11e75010 full_name: "kill_fasync" } @@ -345737,7 +349752,7 @@ elf_symbol { name: "kmalloc_caches" is_defined: true symbol_type: OBJECT - crc: 0x440250f2 + crc: 0xab892a5a type_id: 0x273ad3f4 full_name: "kmalloc_caches" } @@ -345755,7 +349770,7 @@ elf_symbol { name: "kmalloc_node_trace" is_defined: true symbol_type: FUNCTION - crc: 0x981f9e13 + crc: 0x50f039b7 type_id: 0x5ef56662 full_name: "kmalloc_node_trace" } @@ -345764,7 +349779,7 @@ elf_symbol { name: "kmalloc_trace" is_defined: true symbol_type: FUNCTION - crc: 0x63e42c13 + crc: 0xab809e2a type_id: 0x5ed273d9 full_name: "kmalloc_trace" } @@ -345773,7 +349788,7 @@ elf_symbol { name: "kmem_cache_alloc" is_defined: true symbol_type: FUNCTION - crc: 0xf39f056b + crc: 0xec0da730 type_id: 0x5eef7e83 full_name: "kmem_cache_alloc" } @@ -345782,7 +349797,7 @@ elf_symbol { name: "kmem_cache_create" is_defined: true symbol_type: FUNCTION - crc: 0x941f10a7 + crc: 0x89e036a6 type_id: 0xc3c98ae7 full_name: "kmem_cache_create" } @@ -345791,7 +349806,7 @@ elf_symbol { name: "kmem_cache_create_usercopy" is_defined: true symbol_type: FUNCTION - crc: 0x028577c2 + crc: 0xe1597ff7 type_id: 0xc3c9995c full_name: "kmem_cache_create_usercopy" } @@ -345800,7 +349815,7 @@ elf_symbol { name: "kmem_cache_destroy" is_defined: true symbol_type: FUNCTION - crc: 0xca9b2718 + crc: 0x1bb93a45 type_id: 0x1b27059e full_name: "kmem_cache_destroy" } @@ -345809,7 +349824,7 @@ elf_symbol { name: "kmem_cache_free" is_defined: true symbol_type: FUNCTION - crc: 0x935923f3 + crc: 0x2ceb21c5 type_id: 0x1b45f00a full_name: "kmem_cache_free" } @@ -345971,7 +349986,7 @@ elf_symbol { name: "kobject_uevent" is_defined: true symbol_type: FUNCTION - crc: 0xe9a2c727 + crc: 0x81694899 type_id: 0x950b8829 full_name: "kobject_uevent" } @@ -345980,7 +349995,7 @@ elf_symbol { name: "kobject_uevent_env" is_defined: true symbol_type: FUNCTION - crc: 0xad937c7a + crc: 0xec7a202b type_id: 0x95096419 full_name: "kobject_uevent_env" } @@ -346034,7 +350049,7 @@ elf_symbol { name: "ksoftirqd" is_defined: true symbol_type: OBJECT - crc: 0x10fe4cd5 + crc: 0xee5e6e59 type_id: 0x1d19a9d5 full_name: "ksoftirqd" } @@ -346088,7 +350103,7 @@ elf_symbol { name: "kstrdup_quotable_cmdline" is_defined: true symbol_type: FUNCTION - crc: 0x6cf2e222 + crc: 0xd4436212 type_id: 0x3abef0c1 full_name: "kstrdup_quotable_cmdline" } @@ -346259,7 +350274,7 @@ elf_symbol { name: "kthread_bind" is_defined: true symbol_type: FUNCTION - crc: 0x70d5b386 + crc: 0x337f4961 type_id: 0x16c82e7e full_name: "kthread_bind" } @@ -346268,7 +350283,7 @@ elf_symbol { name: "kthread_bind_mask" is_defined: true symbol_type: FUNCTION - crc: 0xaea9dfe7 + crc: 0xbc855bfe type_id: 0x171a00e6 full_name: "kthread_bind_mask" } @@ -346277,7 +350292,7 @@ elf_symbol { name: "kthread_cancel_delayed_work_sync" is_defined: true symbol_type: FUNCTION - crc: 0xef4501fc + crc: 0x7dbd3a78 type_id: 0xfe6da83f full_name: "kthread_cancel_delayed_work_sync" } @@ -346286,7 +350301,7 @@ elf_symbol { name: "kthread_cancel_work_sync" is_defined: true symbol_type: FUNCTION - crc: 0x3afae87a + crc: 0x39968e95 type_id: 0xff8308a1 full_name: "kthread_cancel_work_sync" } @@ -346299,12 +350314,21 @@ elf_symbol { type_id: 0x1230d8bc full_name: "kthread_complete_and_exit" } +elf_symbol { + id: 0x4ed76f28 + name: "kthread_create_on_cpu" + is_defined: true + symbol_type: FUNCTION + crc: 0x10a0b150 + type_id: 0x70203fbf + full_name: "kthread_create_on_cpu" +} elf_symbol { id: 0x54d851dc name: "kthread_create_on_node" is_defined: true symbol_type: FUNCTION - crc: 0xce980d49 + crc: 0x66ddd5be type_id: 0x7028bf98 full_name: "kthread_create_on_node" } @@ -346313,7 +350337,7 @@ elf_symbol { name: "kthread_create_worker" is_defined: true symbol_type: FUNCTION - crc: 0x54a231b8 + crc: 0x3186583e type_id: 0x6c9e1249 full_name: "kthread_create_worker" } @@ -346331,7 +350355,7 @@ elf_symbol { name: "kthread_destroy_worker" is_defined: true symbol_type: FUNCTION - crc: 0x65cfdbc3 + crc: 0xc8924fb7 type_id: 0x1dbb8bb2 full_name: "kthread_destroy_worker" } @@ -346340,7 +350364,7 @@ elf_symbol { name: "kthread_flush_work" is_defined: true symbol_type: FUNCTION - crc: 0xe15d1b46 + crc: 0x25ac64bf type_id: 0x11bf0236 full_name: "kthread_flush_work" } @@ -346349,7 +350373,7 @@ elf_symbol { name: "kthread_flush_worker" is_defined: true symbol_type: FUNCTION - crc: 0x4031dcbf + crc: 0x59479305 type_id: 0x1dbb8bb2 full_name: "kthread_flush_worker" } @@ -346358,7 +350382,7 @@ elf_symbol { name: "kthread_mod_delayed_work" is_defined: true symbol_type: FUNCTION - crc: 0x43619053 + crc: 0x56f6af9a type_id: 0xf387c34f full_name: "kthread_mod_delayed_work" } @@ -346367,7 +350391,7 @@ elf_symbol { name: "kthread_park" is_defined: true symbol_type: FUNCTION - crc: 0xbee6eee0 + crc: 0xcba8fa6f type_id: 0x9ac6895a full_name: "kthread_park" } @@ -346385,7 +350409,7 @@ elf_symbol { name: "kthread_queue_delayed_work" is_defined: true symbol_type: FUNCTION - crc: 0x344696ba + crc: 0x76c0d09b type_id: 0xf387c34f full_name: "kthread_queue_delayed_work" } @@ -346394,7 +350418,7 @@ elf_symbol { name: "kthread_queue_work" is_defined: true symbol_type: FUNCTION - crc: 0x387ad46a + crc: 0x6fd978d4 type_id: 0xf395f41f full_name: "kthread_queue_work" } @@ -346421,7 +350445,7 @@ elf_symbol { name: "kthread_stop" is_defined: true symbol_type: FUNCTION - crc: 0x678172c7 + crc: 0x7a6e0186 type_id: 0x9ac6895a full_name: "kthread_stop" } @@ -346430,7 +350454,7 @@ elf_symbol { name: "kthread_unpark" is_defined: true symbol_type: FUNCTION - crc: 0xfbe5e767 + crc: 0x17fd0842 type_id: 0x17de3be6 full_name: "kthread_unpark" } @@ -346637,7 +350661,7 @@ elf_symbol { name: "l2cap_add_psm" is_defined: true symbol_type: FUNCTION - crc: 0xe8ff7855 + crc: 0x70dabfa8 type_id: 0x9dff38c4 full_name: "l2cap_add_psm" } @@ -346646,7 +350670,7 @@ elf_symbol { name: "l2cap_chan_close" is_defined: true symbol_type: FUNCTION - crc: 0x7ec090da + crc: 0xe2e1d243 type_id: 0x11d1a5c3 full_name: "l2cap_chan_close" } @@ -346655,7 +350679,7 @@ elf_symbol { name: "l2cap_chan_connect" is_defined: true symbol_type: FUNCTION - crc: 0x10ce9158 + crc: 0xbfa963ca type_id: 0x9f1e1154 full_name: "l2cap_chan_connect" } @@ -346664,7 +350688,7 @@ elf_symbol { name: "l2cap_chan_create" is_defined: true symbol_type: FUNCTION - crc: 0x8e182608 + crc: 0x2328bacb type_id: 0xedba1f63 full_name: "l2cap_chan_create" } @@ -346673,7 +350697,7 @@ elf_symbol { name: "l2cap_chan_del" is_defined: true symbol_type: FUNCTION - crc: 0x4a289021 + crc: 0xe35854d3 type_id: 0x11d1a5c3 full_name: "l2cap_chan_del" } @@ -346682,7 +350706,7 @@ elf_symbol { name: "l2cap_chan_list" is_defined: true symbol_type: FUNCTION - crc: 0xfd84112a + crc: 0x1a06a603 type_id: 0x1caf5700 full_name: "l2cap_chan_list" } @@ -346691,7 +350715,7 @@ elf_symbol { name: "l2cap_chan_put" is_defined: true symbol_type: FUNCTION - crc: 0xc412e4a8 + crc: 0x23b98219 type_id: 0x104d268f full_name: "l2cap_chan_put" } @@ -346700,7 +350724,7 @@ elf_symbol { name: "l2cap_chan_send" is_defined: true symbol_type: FUNCTION - crc: 0x257c6cc9 + crc: 0xfa41f711 type_id: 0x9ddbf7b4 full_name: "l2cap_chan_send" } @@ -346709,7 +350733,7 @@ elf_symbol { name: "l2cap_chan_set_defaults" is_defined: true symbol_type: FUNCTION - crc: 0x806409ca + crc: 0x1aead060 type_id: 0x104d268f full_name: "l2cap_chan_set_defaults" } @@ -346718,7 +350742,7 @@ elf_symbol { name: "l2cap_conn_get" is_defined: true symbol_type: FUNCTION - crc: 0x59a93b55 + crc: 0x3d7eeb29 type_id: 0xa6fe7077 full_name: "l2cap_conn_get" } @@ -346727,7 +350751,7 @@ elf_symbol { name: "l2cap_conn_put" is_defined: true symbol_type: FUNCTION - crc: 0x7560d80f + crc: 0x59a80fcd type_id: 0x1ef27e10 full_name: "l2cap_conn_put" } @@ -346736,7 +350760,7 @@ elf_symbol { name: "l2cap_is_socket" is_defined: true symbol_type: FUNCTION - crc: 0xe37bd9b6 + crc: 0x7bf5bc07 type_id: 0xfabc5175 full_name: "l2cap_is_socket" } @@ -346745,7 +350769,7 @@ elf_symbol { name: "l2cap_register_user" is_defined: true symbol_type: FUNCTION - crc: 0x8b54b187 + crc: 0xc9f78e9f type_id: 0x9390f5c5 full_name: "l2cap_register_user" } @@ -346754,7 +350778,7 @@ elf_symbol { name: "l2cap_unregister_user" is_defined: true symbol_type: FUNCTION - crc: 0x602d9369 + crc: 0x23efa2f1 type_id: 0x1e884779 full_name: "l2cap_unregister_user" } @@ -346763,7 +350787,7 @@ elf_symbol { name: "l2tp_recv_common" is_defined: true symbol_type: FUNCTION - crc: 0x15af790e + crc: 0xcb4dd938 type_id: 0x15503314 full_name: "l2tp_recv_common" } @@ -346772,7 +350796,7 @@ elf_symbol { name: "l2tp_session_create" is_defined: true symbol_type: FUNCTION - crc: 0xcf20d5f4 + crc: 0x6781e7a5 type_id: 0xf6e0960a full_name: "l2tp_session_create" } @@ -346781,7 +350805,7 @@ elf_symbol { name: "l2tp_session_dec_refcount" is_defined: true symbol_type: FUNCTION - crc: 0x8d0c1561 + crc: 0xd68d60f8 type_id: 0x154220a5 full_name: "l2tp_session_dec_refcount" } @@ -346790,7 +350814,7 @@ elf_symbol { name: "l2tp_session_delete" is_defined: true symbol_type: FUNCTION - crc: 0x9198d247 + crc: 0xb57626ff type_id: 0x154220a5 full_name: "l2tp_session_delete" } @@ -346799,7 +350823,7 @@ elf_symbol { name: "l2tp_session_get" is_defined: true symbol_type: FUNCTION - crc: 0xa64d173d + crc: 0x54a4b8a2 type_id: 0xe3a506be full_name: "l2tp_session_get" } @@ -346808,7 +350832,7 @@ elf_symbol { name: "l2tp_session_get_by_ifname" is_defined: true symbol_type: FUNCTION - crc: 0xc85c6bc9 + crc: 0xab268731 type_id: 0xe07964c6 full_name: "l2tp_session_get_by_ifname" } @@ -346817,7 +350841,7 @@ elf_symbol { name: "l2tp_session_get_nth" is_defined: true symbol_type: FUNCTION - crc: 0x34f67e2a + crc: 0x37867bf7 type_id: 0xe7f6577b full_name: "l2tp_session_get_nth" } @@ -346826,7 +350850,7 @@ elf_symbol { name: "l2tp_session_inc_refcount" is_defined: true symbol_type: FUNCTION - crc: 0x459e655c + crc: 0x58816a9d type_id: 0x154220a5 full_name: "l2tp_session_inc_refcount" } @@ -346835,7 +350859,7 @@ elf_symbol { name: "l2tp_session_register" is_defined: true symbol_type: FUNCTION - crc: 0x22946a2d + crc: 0x3212954a type_id: 0x98c44e7d full_name: "l2tp_session_register" } @@ -346844,7 +350868,7 @@ elf_symbol { name: "l2tp_session_set_header_len" is_defined: true symbol_type: FUNCTION - crc: 0x854a5b83 + crc: 0x571bffa6 type_id: 0x14dea3e9 full_name: "l2tp_session_set_header_len" } @@ -346853,7 +350877,7 @@ elf_symbol { name: "l2tp_sk_to_tunnel" is_defined: true symbol_type: FUNCTION - crc: 0xf2bacbcd + crc: 0x72b8789c type_id: 0x30b12c32 full_name: "l2tp_sk_to_tunnel" } @@ -346862,7 +350886,7 @@ elf_symbol { name: "l2tp_tunnel_create" is_defined: true symbol_type: FUNCTION - crc: 0xe1db4b54 + crc: 0xe84f04f9 type_id: 0x85e53152 full_name: "l2tp_tunnel_create" } @@ -346871,7 +350895,7 @@ elf_symbol { name: "l2tp_tunnel_dec_refcount" is_defined: true symbol_type: FUNCTION - crc: 0x056ff68e + crc: 0x450e79e1 type_id: 0x197597d7 full_name: "l2tp_tunnel_dec_refcount" } @@ -346880,7 +350904,7 @@ elf_symbol { name: "l2tp_tunnel_delete" is_defined: true symbol_type: FUNCTION - crc: 0x4d02b443 + crc: 0xd5b01827 type_id: 0x197597d7 full_name: "l2tp_tunnel_delete" } @@ -346889,7 +350913,7 @@ elf_symbol { name: "l2tp_tunnel_get" is_defined: true symbol_type: FUNCTION - crc: 0x4881c84d + crc: 0xfcfe49cd type_id: 0x3bc23464 full_name: "l2tp_tunnel_get" } @@ -346898,7 +350922,7 @@ elf_symbol { name: "l2tp_tunnel_get_nth" is_defined: true symbol_type: FUNCTION - crc: 0x5a0f840b + crc: 0x330a512b type_id: 0x397a9784 full_name: "l2tp_tunnel_get_nth" } @@ -346907,7 +350931,7 @@ elf_symbol { name: "l2tp_tunnel_get_session" is_defined: true symbol_type: FUNCTION - crc: 0xa5bae7f2 + crc: 0x0d99c4eb type_id: 0xe54ef49b full_name: "l2tp_tunnel_get_session" } @@ -346916,7 +350940,7 @@ elf_symbol { name: "l2tp_tunnel_inc_refcount" is_defined: true symbol_type: FUNCTION - crc: 0x8b0994e0 + crc: 0x35df3851 type_id: 0x197597d7 full_name: "l2tp_tunnel_inc_refcount" } @@ -346925,7 +350949,7 @@ elf_symbol { name: "l2tp_tunnel_register" is_defined: true symbol_type: FUNCTION - crc: 0x490a2056 + crc: 0x29e7e947 type_id: 0x945c71bc full_name: "l2tp_tunnel_register" } @@ -346934,7 +350958,7 @@ elf_symbol { name: "l2tp_udp_encap_recv" is_defined: true symbol_type: FUNCTION - crc: 0x9511f324 + crc: 0xb070a1dc type_id: 0x9ac4d210 full_name: "l2tp_udp_encap_recv" } @@ -346943,7 +350967,7 @@ elf_symbol { name: "l2tp_xmit_skb" is_defined: true symbol_type: FUNCTION - crc: 0x949ef997 + crc: 0xc7456d1f type_id: 0x984fafbd full_name: "l2tp_xmit_skb" } @@ -346952,7 +350976,7 @@ elf_symbol { name: "led_classdev_flash_register_ext" is_defined: true symbol_type: FUNCTION - crc: 0xe1e538c6 + crc: 0x6d5960e3 type_id: 0x9de9e113 full_name: "led_classdev_flash_register_ext" } @@ -346961,7 +350985,7 @@ elf_symbol { name: "led_classdev_flash_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xb940644f + crc: 0xccb00bba type_id: 0x1f99af43 full_name: "led_classdev_flash_unregister" } @@ -346970,7 +350994,7 @@ elf_symbol { name: "led_classdev_register_ext" is_defined: true symbol_type: FUNCTION - crc: 0xca67178b + crc: 0x1ef2e547 type_id: 0x9dd2d442 full_name: "led_classdev_register_ext" } @@ -346979,7 +351003,7 @@ elf_symbol { name: "led_classdev_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xd1008ccc + crc: 0x7eded8d2 type_id: 0x1c2afa5a full_name: "led_classdev_unregister" } @@ -346988,7 +351012,7 @@ elf_symbol { name: "led_mc_calc_color_components" is_defined: true symbol_type: FUNCTION - crc: 0x6626e8a0 + crc: 0x98045924 type_id: 0x927aedd4 full_name: "led_mc_calc_color_components" } @@ -346997,7 +351021,7 @@ elf_symbol { name: "led_trigger_event" is_defined: true symbol_type: FUNCTION - crc: 0x56d04340 + crc: 0x0facf8ff type_id: 0x13e8c6b3 full_name: "led_trigger_event" } @@ -347006,7 +351030,7 @@ elf_symbol { name: "led_trigger_register" is_defined: true symbol_type: FUNCTION - crc: 0x87413d6c + crc: 0x3dd67aa1 type_id: 0x9e1a0a92 full_name: "led_trigger_register" } @@ -347015,7 +351039,7 @@ elf_symbol { name: "led_trigger_register_simple" is_defined: true symbol_type: FUNCTION - crc: 0x10eccf2b + crc: 0xc4228e04 type_id: 0x1f385795 full_name: "led_trigger_register_simple" } @@ -347024,7 +351048,7 @@ elf_symbol { name: "led_trigger_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xf70aea68 + crc: 0x1cf5f1a4 type_id: 0x1302b82e full_name: "led_trigger_unregister" } @@ -347033,7 +351057,7 @@ elf_symbol { name: "led_trigger_unregister_simple" is_defined: true symbol_type: FUNCTION - crc: 0xd018c45a + crc: 0x0c9a69d5 type_id: 0x1302b82e full_name: "led_trigger_unregister_simple" } @@ -347042,7 +351066,7 @@ elf_symbol { name: "linkwatch_fire_event" is_defined: true symbol_type: FUNCTION - crc: 0xf269dbb4 + crc: 0x0beffc64 type_id: 0x1c31d966 full_name: "linkwatch_fire_event" } @@ -347078,10 +351102,19 @@ elf_symbol { name: "lock_sock_nested" is_defined: true symbol_type: FUNCTION - crc: 0x6bb76144 + crc: 0xd9ef931b type_id: 0x1655de44 full_name: "lock_sock_nested" } +elf_symbol { + id: 0x42eaca18 + name: "lockref_get" + is_defined: true + symbol_type: FUNCTION + crc: 0xd9b85ef6 + type_id: 0x18daa769 + full_name: "lockref_get" +} elf_symbol { id: 0x408fc274 name: "log_abnormal_wakeup_reason" @@ -347136,6 +351169,24 @@ elf_symbol { type_id: 0x34bfea0b full_name: "log_write_mmio" } +elf_symbol { + id: 0x06e891b4 + name: "logfc" + is_defined: true + symbol_type: FUNCTION + crc: 0xfacd972f + type_id: 0x11cf2aed + full_name: "logfc" +} +elf_symbol { + id: 0xad10cf0f + name: "lookup_bdev" + is_defined: true + symbol_type: FUNCTION + crc: 0x34c7cdbc + type_id: 0x92c581e2 + full_name: "lookup_bdev" +} elf_symbol { id: 0x493ce9fc name: "loops_per_jiffy" @@ -347150,7 +351201,7 @@ elf_symbol { name: "lowpan_header_compress" is_defined: true symbol_type: FUNCTION - crc: 0x5faa525f + crc: 0xf99512f9 type_id: 0x9c13fdc1 full_name: "lowpan_header_compress" } @@ -347159,7 +351210,7 @@ elf_symbol { name: "lowpan_header_decompress" is_defined: true symbol_type: FUNCTION - crc: 0x48d60fe2 + crc: 0x8a34bbf8 type_id: 0x9c13fdc1 full_name: "lowpan_header_decompress" } @@ -347168,7 +351219,7 @@ elf_symbol { name: "lowpan_nhc_add" is_defined: true symbol_type: FUNCTION - crc: 0x50fc0390 + crc: 0x011367db type_id: 0x9286d894 full_name: "lowpan_nhc_add" } @@ -347177,7 +351228,7 @@ elf_symbol { name: "lowpan_nhc_del" is_defined: true symbol_type: FUNCTION - crc: 0xc5a5d8e8 + crc: 0xe8bbf9dc type_id: 0x1f9e6a28 full_name: "lowpan_nhc_del" } @@ -347186,7 +351237,7 @@ elf_symbol { name: "lowpan_register_netdev" is_defined: true symbol_type: FUNCTION - crc: 0x7e8a3008 + crc: 0x7d40fb78 type_id: 0x92a49dbe full_name: "lowpan_register_netdev" } @@ -347195,7 +351246,7 @@ elf_symbol { name: "lowpan_register_netdevice" is_defined: true symbol_type: FUNCTION - crc: 0x63c8fae5 + crc: 0x7212fe48 type_id: 0x92a49dbe full_name: "lowpan_register_netdevice" } @@ -347204,7 +351255,7 @@ elf_symbol { name: "lowpan_unregister_netdev" is_defined: true symbol_type: FUNCTION - crc: 0x66411709 + crc: 0xd68aefdc type_id: 0x1c31d966 full_name: "lowpan_unregister_netdev" } @@ -347213,7 +351264,7 @@ elf_symbol { name: "lowpan_unregister_netdevice" is_defined: true symbol_type: FUNCTION - crc: 0xb17b8e86 + crc: 0xd7ee20db type_id: 0x1c31d966 full_name: "lowpan_unregister_netdevice" } @@ -347258,7 +351309,7 @@ elf_symbol { name: "mbox_bind_client" is_defined: true symbol_type: FUNCTION - crc: 0x560c1667 + crc: 0xd32c9abe type_id: 0x91761d4e full_name: "mbox_bind_client" } @@ -347267,7 +351318,7 @@ elf_symbol { name: "mbox_chan_received_data" is_defined: true symbol_type: FUNCTION - crc: 0x3c39f4ba + crc: 0x0ec60bf4 type_id: 0x1c5fa2cd full_name: "mbox_chan_received_data" } @@ -347276,7 +351327,7 @@ elf_symbol { name: "mbox_chan_txdone" is_defined: true symbol_type: FUNCTION - crc: 0x30fdffd0 + crc: 0x8c07b5c1 type_id: 0x1da1d415 full_name: "mbox_chan_txdone" } @@ -347285,7 +351336,7 @@ elf_symbol { name: "mbox_client_txdone" is_defined: true symbol_type: FUNCTION - crc: 0x51528932 + crc: 0x488e841f type_id: 0x1da1d415 full_name: "mbox_client_txdone" } @@ -347294,7 +351345,7 @@ elf_symbol { name: "mbox_controller_register" is_defined: true symbol_type: FUNCTION - crc: 0x4fd8c164 + crc: 0xe06d85be type_id: 0x93bf967f full_name: "mbox_controller_register" } @@ -347303,7 +351354,7 @@ elf_symbol { name: "mbox_controller_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x1bc080f4 + crc: 0x267b3c48 type_id: 0x1ea724c3 full_name: "mbox_controller_unregister" } @@ -347312,7 +351363,7 @@ elf_symbol { name: "mbox_free_channel" is_defined: true symbol_type: FUNCTION - crc: 0x551cd9f4 + crc: 0x120693d2 type_id: 0x1c3d5759 full_name: "mbox_free_channel" } @@ -347321,7 +351372,7 @@ elf_symbol { name: "mbox_request_channel" is_defined: true symbol_type: FUNCTION - crc: 0xf49bba4c + crc: 0x5890b8db type_id: 0xfc78122e full_name: "mbox_request_channel" } @@ -347330,7 +351381,7 @@ elf_symbol { name: "mbox_send_message" is_defined: true symbol_type: FUNCTION - crc: 0x07c4d500 + crc: 0x9dc779d4 type_id: 0x91471071 full_name: "mbox_send_message" } @@ -347339,7 +351390,7 @@ elf_symbol { name: "mdio_device_create" is_defined: true symbol_type: FUNCTION - crc: 0xe8075991 + crc: 0xc3f7be36 type_id: 0x611af1f3 full_name: "mdio_device_create" } @@ -347348,7 +351399,7 @@ elf_symbol { name: "mdio_device_free" is_defined: true symbol_type: FUNCTION - crc: 0x793b0a71 + crc: 0x87fa5619 type_id: 0x14c7dbf6 full_name: "mdio_device_free" } @@ -347357,7 +351408,7 @@ elf_symbol { name: "mdiobus_alloc_size" is_defined: true symbol_type: FUNCTION - crc: 0x83cc3221 + crc: 0x582ab7d8 type_id: 0x9384eeb1 full_name: "mdiobus_alloc_size" } @@ -347366,7 +351417,7 @@ elf_symbol { name: "mdiobus_free" is_defined: true symbol_type: FUNCTION - crc: 0xbf449d72 + crc: 0xd89e6f5d type_id: 0x1ded15a3 full_name: "mdiobus_free" } @@ -347375,7 +351426,7 @@ elf_symbol { name: "mdiobus_get_phy" is_defined: true symbol_type: FUNCTION - crc: 0xe01d7010 + crc: 0x4434e532 type_id: 0xbf379f2f full_name: "mdiobus_get_phy" } @@ -347384,7 +351435,7 @@ elf_symbol { name: "mdiobus_modify_changed" is_defined: true symbol_type: FUNCTION - crc: 0x3e5b719e + crc: 0x8db49cc1 type_id: 0x9159073c full_name: "mdiobus_modify_changed" } @@ -347393,7 +351444,7 @@ elf_symbol { name: "mdiobus_read" is_defined: true symbol_type: FUNCTION - crc: 0x928475dd + crc: 0x48b49a7a type_id: 0x915b6659 full_name: "mdiobus_read" } @@ -347402,7 +351453,7 @@ elf_symbol { name: "mdiobus_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xcd934a99 + crc: 0x082e019b type_id: 0x1ded15a3 full_name: "mdiobus_unregister" } @@ -347411,7 +351462,7 @@ elf_symbol { name: "mdiobus_write" is_defined: true symbol_type: FUNCTION - crc: 0x73328648 + crc: 0x0265eeb0 type_id: 0x9159236f full_name: "mdiobus_write" } @@ -347420,7 +351471,7 @@ elf_symbol { name: "media_device_cleanup" is_defined: true symbol_type: FUNCTION - crc: 0xc8cb4a57 + crc: 0x10b131a7 type_id: 0x1510b6d0 full_name: "media_device_cleanup" } @@ -347429,7 +351480,7 @@ elf_symbol { name: "media_device_init" is_defined: true symbol_type: FUNCTION - crc: 0xad16ac78 + crc: 0x7d8ed8ff type_id: 0x1510b6d0 full_name: "media_device_init" } @@ -347438,7 +351489,7 @@ elf_symbol { name: "media_device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x05f45e41 + crc: 0xf8a3b452 type_id: 0x1510b6d0 full_name: "media_device_unregister" } @@ -347447,7 +351498,7 @@ elf_symbol { name: "media_entity_pads_init" is_defined: true symbol_type: FUNCTION - crc: 0x46d4e509 + crc: 0x8880d966 type_id: 0x9867350b full_name: "media_entity_pads_init" } @@ -347570,7 +351621,7 @@ elf_symbol { name: "memory_cgrp_subsys" is_defined: true symbol_type: OBJECT - crc: 0xc97ba608 + crc: 0x122ed048 type_id: 0x00571446 full_name: "memory_cgrp_subsys" } @@ -347610,6 +351661,15 @@ elf_symbol { type_id: 0x5963dafe full_name: "mempool_alloc" } +elf_symbol { + id: 0x13e62490 + name: "mempool_alloc_pages" + is_defined: true + symbol_type: FUNCTION + crc: 0x766a0927 + type_id: 0x6a9df39e + full_name: "mempool_alloc_pages" +} elf_symbol { id: 0xa613caa5 name: "mempool_alloc_slab" @@ -347646,6 +351706,15 @@ elf_symbol { type_id: 0x167437d8 full_name: "mempool_free" } +elf_symbol { + id: 0x77eb61b0 + name: "mempool_free_pages" + is_defined: true + symbol_type: FUNCTION + crc: 0xd985dc99 + type_id: 0x16d5fd4b + full_name: "mempool_free_pages" +} elf_symbol { id: 0xfbb56638 name: "mempool_free_slab" @@ -347655,6 +351724,15 @@ elf_symbol { type_id: 0x16d5fd4b full_name: "mempool_free_slab" } +elf_symbol { + id: 0x9a28516c + name: "mempool_resize" + is_defined: true + symbol_type: FUNCTION + crc: 0x2aa0843e + type_id: 0x902f9013 + full_name: "mempool_resize" +} elf_symbol { id: 0x7ad45055 name: "memremap" @@ -347664,6 +351742,15 @@ elf_symbol { type_id: 0x7013e46e full_name: "memremap" } +elf_symbol { + id: 0x56171277 + name: "memremap_pages" + is_defined: true + symbol_type: FUNCTION + crc: 0x07ade9c1 + type_id: 0x53aca83f + full_name: "memremap_pages" +} elf_symbol { id: 0x67a278cb name: "memscan" @@ -347708,12 +351795,21 @@ elf_symbol { type_id: 0x16b708df full_name: "memunmap" } +elf_symbol { + id: 0xbc9af04b + name: "memunmap_pages" + is_defined: true + symbol_type: FUNCTION + crc: 0x3766f4ae + type_id: 0x143ecb11 + full_name: "memunmap_pages" +} elf_symbol { id: 0x78495fd8 name: "mfd_add_devices" is_defined: true symbol_type: FUNCTION - crc: 0x936f4d4b + crc: 0xf4f8553b type_id: 0x9c874975 full_name: "mfd_add_devices" } @@ -347722,7 +351818,7 @@ elf_symbol { name: "mfd_remove_devices" is_defined: true symbol_type: FUNCTION - crc: 0xf03a115e + crc: 0xcd4a1fc1 type_id: 0x100e6fc8 full_name: "mfd_remove_devices" } @@ -347731,7 +351827,7 @@ elf_symbol { name: "migrate_pages" is_defined: true symbol_type: FUNCTION - crc: 0xfccbe484 + crc: 0x0dbc4d1a type_id: 0x92405f04 full_name: "migrate_pages" } @@ -347740,7 +351836,7 @@ elf_symbol { name: "migrate_swap" is_defined: true symbol_type: FUNCTION - crc: 0x826a12ee + crc: 0x8fad6a54 type_id: 0x9aaabb4a full_name: "migrate_swap" } @@ -347749,7 +351845,7 @@ elf_symbol { name: "mii_check_media" is_defined: true symbol_type: FUNCTION - crc: 0xeb6ea489 + crc: 0xdeae0223 type_id: 0xcb5a4db0 full_name: "mii_check_media" } @@ -347758,7 +351854,7 @@ elf_symbol { name: "mii_ethtool_gset" is_defined: true symbol_type: FUNCTION - crc: 0x083bb492 + crc: 0xc2caeffb type_id: 0x142e3633 full_name: "mii_ethtool_gset" } @@ -347767,7 +351863,7 @@ elf_symbol { name: "mii_nway_restart" is_defined: true symbol_type: FUNCTION - crc: 0xa85b7b51 + crc: 0x641ab745 type_id: 0x9906a4a5 full_name: "mii_nway_restart" } @@ -347776,7 +351872,7 @@ elf_symbol { name: "mipi_dsi_attach" is_defined: true symbol_type: FUNCTION - crc: 0xc74c1078 + crc: 0xe80dfaab type_id: 0x9fd879f0 full_name: "mipi_dsi_attach" } @@ -347785,7 +351881,7 @@ elf_symbol { name: "mipi_dsi_compression_mode" is_defined: true symbol_type: FUNCTION - crc: 0x945e0490 + crc: 0xa05da82f type_id: 0x171c8621 full_name: "mipi_dsi_compression_mode" } @@ -347803,7 +351899,7 @@ elf_symbol { name: "mipi_dsi_dcs_read" is_defined: true symbol_type: FUNCTION - crc: 0xa1a4bf07 + crc: 0x37cdcce7 type_id: 0x1609f51a full_name: "mipi_dsi_dcs_read" } @@ -347812,7 +351908,7 @@ elf_symbol { name: "mipi_dsi_dcs_set_column_address" is_defined: true symbol_type: FUNCTION - crc: 0xd86df863 + crc: 0x70d628e6 type_id: 0x9db91c60 full_name: "mipi_dsi_dcs_set_column_address" } @@ -347821,7 +351917,7 @@ elf_symbol { name: "mipi_dsi_dcs_set_display_brightness" is_defined: true symbol_type: FUNCTION - crc: 0xcdc2260b + crc: 0xecc8204b type_id: 0x9d9d4f0f full_name: "mipi_dsi_dcs_set_display_brightness" } @@ -347830,7 +351926,7 @@ elf_symbol { name: "mipi_dsi_dcs_set_page_address" is_defined: true symbol_type: FUNCTION - crc: 0xeb331747 + crc: 0x2d24e98b type_id: 0x9db91c60 full_name: "mipi_dsi_dcs_set_page_address" } @@ -347839,7 +351935,7 @@ elf_symbol { name: "mipi_dsi_dcs_set_tear_off" is_defined: true symbol_type: FUNCTION - crc: 0x12630459 + crc: 0xa7583f89 type_id: 0x9fd879f0 full_name: "mipi_dsi_dcs_set_tear_off" } @@ -347848,7 +351944,7 @@ elf_symbol { name: "mipi_dsi_dcs_write_buffer" is_defined: true symbol_type: FUNCTION - crc: 0x37bb82ab + crc: 0x06618329 type_id: 0x16700a53 full_name: "mipi_dsi_dcs_write_buffer" } @@ -347857,7 +351953,7 @@ elf_symbol { name: "mipi_dsi_detach" is_defined: true symbol_type: FUNCTION - crc: 0x0de23d34 + crc: 0xfce23c5a type_id: 0x9fd879f0 full_name: "mipi_dsi_detach" } @@ -347866,7 +351962,7 @@ elf_symbol { name: "mipi_dsi_device_register_full" is_defined: true symbol_type: FUNCTION - crc: 0x6eba892a + crc: 0x06436a7e type_id: 0x71d88eaa full_name: "mipi_dsi_device_register_full" } @@ -347875,7 +351971,7 @@ elf_symbol { name: "mipi_dsi_driver_register_full" is_defined: true symbol_type: FUNCTION - crc: 0xb894cf79 + crc: 0x85d6ce5d type_id: 0x900f17ba full_name: "mipi_dsi_driver_register_full" } @@ -347884,7 +351980,7 @@ elf_symbol { name: "mipi_dsi_driver_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xa82bbf39 + crc: 0x5d6da9a4 type_id: 0x1d3b3a77 full_name: "mipi_dsi_driver_unregister" } @@ -347893,7 +351989,7 @@ elf_symbol { name: "mipi_dsi_generic_write" is_defined: true symbol_type: FUNCTION - crc: 0xbdcb117c + crc: 0x133bb832 type_id: 0x16700a53 full_name: "mipi_dsi_generic_write" } @@ -347902,7 +351998,7 @@ elf_symbol { name: "mipi_dsi_host_register" is_defined: true symbol_type: FUNCTION - crc: 0x6ec083dc + crc: 0xe2708477 type_id: 0x96691fcd full_name: "mipi_dsi_host_register" } @@ -347911,7 +352007,7 @@ elf_symbol { name: "mipi_dsi_host_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x9758e175 + crc: 0xc3cd42eb type_id: 0x1b71ad71 full_name: "mipi_dsi_host_unregister" } @@ -347929,7 +352025,7 @@ elf_symbol { name: "mipi_dsi_picture_parameter_set" is_defined: true symbol_type: FUNCTION - crc: 0x5f5a46ca + crc: 0xc06b4fcd type_id: 0x165fcf63 full_name: "mipi_dsi_picture_parameter_set" } @@ -347938,7 +352034,7 @@ elf_symbol { name: "misc_deregister" is_defined: true symbol_type: FUNCTION - crc: 0xc9bdd9ce + crc: 0xaf01617a type_id: 0x1b00783f full_name: "misc_deregister" } @@ -347947,7 +352043,7 @@ elf_symbol { name: "misc_register" is_defined: true symbol_type: FUNCTION - crc: 0x416a126d + crc: 0x709024a2 type_id: 0x9618ca83 full_name: "misc_register" } @@ -347956,7 +352052,7 @@ elf_symbol { name: "mmc_add_host" is_defined: true symbol_type: FUNCTION - crc: 0xaaea4b6e + crc: 0xa9c6671b type_id: 0x9006b123 full_name: "mmc_add_host" } @@ -347965,7 +352061,7 @@ elf_symbol { name: "mmc_alloc_host" is_defined: true symbol_type: FUNCTION - crc: 0xa18cd345 + crc: 0x8b176051 type_id: 0x83a3929f full_name: "mmc_alloc_host" } @@ -347974,7 +352070,7 @@ elf_symbol { name: "mmc_cqe_request_done" is_defined: true symbol_type: FUNCTION - crc: 0x8cd93925 + crc: 0x75415fb5 type_id: 0x1dbab156 full_name: "mmc_cqe_request_done" } @@ -347983,7 +352079,7 @@ elf_symbol { name: "mmc_free_host" is_defined: true symbol_type: FUNCTION - crc: 0xc51f8c5f + crc: 0xec76b7cd type_id: 0x1d1e039f full_name: "mmc_free_host" } @@ -347992,7 +352088,7 @@ elf_symbol { name: "mmc_gpio_get_cd" is_defined: true symbol_type: FUNCTION - crc: 0xd140f7b9 + crc: 0x380e9615 type_id: 0x9006b123 full_name: "mmc_gpio_get_cd" } @@ -348001,7 +352097,7 @@ elf_symbol { name: "mmc_gpio_get_ro" is_defined: true symbol_type: FUNCTION - crc: 0x2cef42da + crc: 0xf5428f0f type_id: 0x9006b123 full_name: "mmc_gpio_get_ro" } @@ -348010,7 +352106,7 @@ elf_symbol { name: "mmc_gpiod_request_cd" is_defined: true symbol_type: FUNCTION - crc: 0xa702f5d3 + crc: 0x903e3f94 type_id: 0x90ee3632 full_name: "mmc_gpiod_request_cd" } @@ -348019,7 +352115,7 @@ elf_symbol { name: "mmc_gpiod_request_ro" is_defined: true symbol_type: FUNCTION - crc: 0x3d843d3c + crc: 0x07e55b37 type_id: 0x90ee84bb full_name: "mmc_gpiod_request_ro" } @@ -348028,7 +352124,7 @@ elf_symbol { name: "mmc_of_parse" is_defined: true symbol_type: FUNCTION - crc: 0xaf7ebfc6 + crc: 0x3d65dcdc type_id: 0x9006b123 full_name: "mmc_of_parse" } @@ -348037,7 +352133,7 @@ elf_symbol { name: "mmc_regulator_get_supply" is_defined: true symbol_type: FUNCTION - crc: 0x01ad9e62 + crc: 0x3ada81f0 type_id: 0x9006b123 full_name: "mmc_regulator_get_supply" } @@ -348046,7 +352142,7 @@ elf_symbol { name: "mmc_regulator_set_ocr" is_defined: true symbol_type: FUNCTION - crc: 0xa92800e5 + crc: 0xfaa19f2d type_id: 0x903246db full_name: "mmc_regulator_set_ocr" } @@ -348055,7 +352151,7 @@ elf_symbol { name: "mmc_regulator_set_vqmmc" is_defined: true symbol_type: FUNCTION - crc: 0xbacd5c5c + crc: 0xba66dc65 type_id: 0x90db86bb full_name: "mmc_regulator_set_vqmmc" } @@ -348064,7 +352160,7 @@ elf_symbol { name: "mmc_remove_host" is_defined: true symbol_type: FUNCTION - crc: 0xe23c89f6 + crc: 0xcd32b4bc type_id: 0x1d1e039f full_name: "mmc_remove_host" } @@ -348073,7 +352169,7 @@ elf_symbol { name: "mmc_request_done" is_defined: true symbol_type: FUNCTION - crc: 0x35dc13c9 + crc: 0xb0d0262f type_id: 0x1dbab156 full_name: "mmc_request_done" } @@ -348082,7 +352178,7 @@ elf_symbol { name: "mmc_send_tuning" is_defined: true symbol_type: FUNCTION - crc: 0x7c51025e + crc: 0x46680fac type_id: 0x9326478c full_name: "mmc_send_tuning" } @@ -348091,7 +352187,7 @@ elf_symbol { name: "mmc_wait_for_cmd" is_defined: true symbol_type: FUNCTION - crc: 0xcb666507 + crc: 0xe3191a95 type_id: 0x90a5da72 full_name: "mmc_wait_for_cmd" } @@ -348100,7 +352196,7 @@ elf_symbol { name: "mmput" is_defined: true symbol_type: FUNCTION - crc: 0xc21a8788 + crc: 0x29b4326d type_id: 0x1655e07b full_name: "mmput" } @@ -348118,7 +352214,7 @@ elf_symbol { name: "mod_node_page_state" is_defined: true symbol_type: FUNCTION - crc: 0x66c6ac71 + crc: 0x6aba36c3 type_id: 0x10d6a724 full_name: "mod_node_page_state" } @@ -348136,7 +352232,7 @@ elf_symbol { name: "module_layout" is_defined: true symbol_type: FUNCTION - crc: 0x4a2460bd + crc: 0x75770634 type_id: 0x12d88613 full_name: "module_layout" } @@ -348145,7 +352241,7 @@ elf_symbol { name: "module_put" is_defined: true symbol_type: FUNCTION - crc: 0xfbbf3e42 + crc: 0x5f3cfcbc type_id: 0x1251a683 full_name: "module_put" } @@ -348154,7 +352250,7 @@ elf_symbol { name: "msi_first_desc" is_defined: true symbol_type: FUNCTION - crc: 0x787eb546 + crc: 0x3738a350 type_id: 0xbfc82229 full_name: "msi_first_desc" } @@ -348163,7 +352259,7 @@ elf_symbol { name: "msi_get_virq" is_defined: true symbol_type: FUNCTION - crc: 0xb543b968 + crc: 0x53badc29 type_id: 0xcf5b5538 full_name: "msi_get_virq" } @@ -348172,7 +352268,7 @@ elf_symbol { name: "msi_next_desc" is_defined: true symbol_type: FUNCTION - crc: 0xd0ccba1d + crc: 0x4928febe type_id: 0xbfc82229 full_name: "msi_next_desc" } @@ -348253,7 +352349,7 @@ elf_symbol { name: "n_tty_ioctl_helper" is_defined: true symbol_type: FUNCTION - crc: 0x229e9385 + crc: 0x02f7136f type_id: 0x97258bf7 full_name: "n_tty_ioctl_helper" } @@ -348271,7 +352367,7 @@ elf_symbol { name: "napi_complete_done" is_defined: true symbol_type: FUNCTION - crc: 0xba8bc004 + crc: 0x8ac52b77 type_id: 0xf938bd88 full_name: "napi_complete_done" } @@ -348280,7 +352376,7 @@ elf_symbol { name: "napi_consume_skb" is_defined: true symbol_type: FUNCTION - crc: 0x0e3f95bd + crc: 0x8b6baee4 type_id: 0x10570899 full_name: "napi_consume_skb" } @@ -348289,7 +352385,7 @@ elf_symbol { name: "napi_disable" is_defined: true symbol_type: FUNCTION - crc: 0x88514ec8 + crc: 0xa53e4291 type_id: 0x16983453 full_name: "napi_disable" } @@ -348298,7 +352394,7 @@ elf_symbol { name: "napi_enable" is_defined: true symbol_type: FUNCTION - crc: 0xe922f2e5 + crc: 0x796d26c3 type_id: 0x16983453 full_name: "napi_enable" } @@ -348307,7 +352403,7 @@ elf_symbol { name: "napi_gro_flush" is_defined: true symbol_type: FUNCTION - crc: 0x4696909e + crc: 0xe1163502 type_id: 0x172dc92c full_name: "napi_gro_flush" } @@ -348316,7 +352412,7 @@ elf_symbol { name: "napi_gro_receive" is_defined: true symbol_type: FUNCTION - crc: 0xb88ceeb1 + crc: 0x69f5470f type_id: 0x091a93fa full_name: "napi_gro_receive" } @@ -348325,7 +352421,7 @@ elf_symbol { name: "napi_schedule_prep" is_defined: true symbol_type: FUNCTION - crc: 0xd12f9378 + crc: 0x296b6adc type_id: 0xf8a43ec4 full_name: "napi_schedule_prep" } @@ -348334,7 +352430,7 @@ elf_symbol { name: "nd_tbl" is_defined: true symbol_type: OBJECT - crc: 0xd2d2472a + crc: 0x60233b32 type_id: 0x77670b3b full_name: "nd_tbl" } @@ -348343,7 +352439,7 @@ elf_symbol { name: "neigh_destroy" is_defined: true symbol_type: FUNCTION - crc: 0xf669a86a + crc: 0x7faadcb6 type_id: 0x1262fcf5 full_name: "neigh_destroy" } @@ -348352,7 +352448,7 @@ elf_symbol { name: "neigh_lookup" is_defined: true symbol_type: FUNCTION - crc: 0x7c8756b2 + crc: 0xe4508d13 type_id: 0x189b5d05 full_name: "neigh_lookup" } @@ -348361,7 +352457,7 @@ elf_symbol { name: "neigh_resolve_output" is_defined: true symbol_type: FUNCTION - crc: 0x1017aaf3 + crc: 0xa71b9180 type_id: 0x9f6f73ed full_name: "neigh_resolve_output" } @@ -348379,7 +352475,7 @@ elf_symbol { name: "net_ns_type_operations" is_defined: true symbol_type: OBJECT - crc: 0x83b6ff2d + crc: 0x625af877 type_id: 0xeabee0bd full_name: "net_ns_type_operations" } @@ -348397,7 +352493,7 @@ elf_symbol { name: "netdev_alert" is_defined: true symbol_type: FUNCTION - crc: 0x0b321d78 + crc: 0xcc9ae37f type_id: 0x1caf28d1 full_name: "netdev_alert" } @@ -348406,7 +352502,7 @@ elf_symbol { name: "netdev_change_features" is_defined: true symbol_type: FUNCTION - crc: 0x2c335694 + crc: 0x4d4fceb5 type_id: 0x1c31d966 full_name: "netdev_change_features" } @@ -348415,7 +352511,7 @@ elf_symbol { name: "netdev_core_stats_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x1a1af323 + crc: 0xee5ed1ae type_id: 0x9286ca40 full_name: "netdev_core_stats_alloc" } @@ -348424,7 +352520,7 @@ elf_symbol { name: "netdev_err" is_defined: true symbol_type: FUNCTION - crc: 0x1faf1368 + crc: 0xad6a0b7a type_id: 0x1caf28d1 full_name: "netdev_err" } @@ -348442,7 +352538,7 @@ elf_symbol { name: "netdev_info" is_defined: true symbol_type: FUNCTION - crc: 0xd9d8c114 + crc: 0x9f1b5ce0 type_id: 0x1caf28d1 full_name: "netdev_info" } @@ -348451,7 +352547,7 @@ elf_symbol { name: "netdev_lower_state_changed" is_defined: true symbol_type: FUNCTION - crc: 0xbb91729f + crc: 0x89441b95 type_id: 0x1c532cf2 full_name: "netdev_lower_state_changed" } @@ -348460,7 +352556,7 @@ elf_symbol { name: "netdev_master_upper_dev_link" is_defined: true symbol_type: FUNCTION - crc: 0x1d3cfc64 + crc: 0x9df1c3c2 type_id: 0x91e5bf0e full_name: "netdev_master_upper_dev_link" } @@ -348469,7 +352565,7 @@ elf_symbol { name: "netdev_name_in_use" is_defined: true symbol_type: FUNCTION - crc: 0xabb73ad9 + crc: 0x9539d1c6 type_id: 0xfd7484f0 full_name: "netdev_name_in_use" } @@ -348478,7 +352574,7 @@ elf_symbol { name: "netdev_notice" is_defined: true symbol_type: FUNCTION - crc: 0x17db4953 + crc: 0xc6ba8a1e type_id: 0x1caf28d1 full_name: "netdev_notice" } @@ -348487,7 +352583,7 @@ elf_symbol { name: "netdev_notify_peers" is_defined: true symbol_type: FUNCTION - crc: 0x969a363e + crc: 0x5fb23544 type_id: 0x1c31d966 full_name: "netdev_notify_peers" } @@ -348496,7 +352592,7 @@ elf_symbol { name: "netdev_pick_tx" is_defined: true symbol_type: FUNCTION - crc: 0xc2aabb8e + crc: 0x0c445706 type_id: 0x0d9b3569 full_name: "netdev_pick_tx" } @@ -348505,7 +352601,7 @@ elf_symbol { name: "netdev_printk" is_defined: true symbol_type: FUNCTION - crc: 0x3613c362 + crc: 0x2d509cee type_id: 0x1fdf0b41 full_name: "netdev_printk" } @@ -348523,7 +352619,7 @@ elf_symbol { name: "netdev_rx_handler_register" is_defined: true symbol_type: FUNCTION - crc: 0xbd142169 + crc: 0x4daa5ea4 type_id: 0x913b542f full_name: "netdev_rx_handler_register" } @@ -348532,7 +352628,7 @@ elf_symbol { name: "netdev_rx_handler_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x6c2a3af8 + crc: 0xbf5f7177 type_id: 0x1c31d966 full_name: "netdev_rx_handler_unregister" } @@ -348541,7 +352637,7 @@ elf_symbol { name: "netdev_set_default_ethtool_ops" is_defined: true symbol_type: FUNCTION - crc: 0x14154f5b + crc: 0xa3273c81 type_id: 0x1cd08481 full_name: "netdev_set_default_ethtool_ops" } @@ -348550,7 +352646,7 @@ elf_symbol { name: "netdev_state_change" is_defined: true symbol_type: FUNCTION - crc: 0x7c2fc067 + crc: 0x74010c50 type_id: 0x1c31d966 full_name: "netdev_state_change" } @@ -348559,7 +352655,7 @@ elf_symbol { name: "netdev_update_features" is_defined: true symbol_type: FUNCTION - crc: 0x2d7dd2eb + crc: 0xd8f66a4c type_id: 0x1c31d966 full_name: "netdev_update_features" } @@ -348568,7 +352664,7 @@ elf_symbol { name: "netdev_upper_dev_link" is_defined: true symbol_type: FUNCTION - crc: 0xb513933e + crc: 0x708019b9 type_id: 0x91e20463 full_name: "netdev_upper_dev_link" } @@ -348577,7 +352673,7 @@ elf_symbol { name: "netdev_upper_dev_unlink" is_defined: true symbol_type: FUNCTION - crc: 0x6ecf9efd + crc: 0x9e7c2dbb type_id: 0x1cfb41e9 full_name: "netdev_upper_dev_unlink" } @@ -348586,7 +352682,7 @@ elf_symbol { name: "netdev_warn" is_defined: true symbol_type: FUNCTION - crc: 0xd49bf836 + crc: 0x7fed5a95 type_id: 0x1caf28d1 full_name: "netdev_warn" } @@ -348595,7 +352691,7 @@ elf_symbol { name: "netif_carrier_off" is_defined: true symbol_type: FUNCTION - crc: 0xa131689a + crc: 0x30584d20 type_id: 0x1c31d966 full_name: "netif_carrier_off" } @@ -348604,7 +352700,7 @@ elf_symbol { name: "netif_carrier_on" is_defined: true symbol_type: FUNCTION - crc: 0x03b79f0c + crc: 0x863c339b type_id: 0x1c31d966 full_name: "netif_carrier_on" } @@ -348613,7 +352709,7 @@ elf_symbol { name: "netif_device_attach" is_defined: true symbol_type: FUNCTION - crc: 0xf2aaa03f + crc: 0xf1a0242b type_id: 0x1c31d966 full_name: "netif_device_attach" } @@ -348622,7 +352718,7 @@ elf_symbol { name: "netif_device_detach" is_defined: true symbol_type: FUNCTION - crc: 0x6507ac54 + crc: 0x040e6888 type_id: 0x1c31d966 full_name: "netif_device_detach" } @@ -348631,7 +352727,7 @@ elf_symbol { name: "netif_inherit_tso_max" is_defined: true symbol_type: FUNCTION - crc: 0x73f5ab16 + crc: 0x30b99d19 type_id: 0x1cffbe77 full_name: "netif_inherit_tso_max" } @@ -348640,7 +352736,7 @@ elf_symbol { name: "netif_napi_add_weight" is_defined: true symbol_type: FUNCTION - crc: 0x00492c48 + crc: 0xe71e30e2 type_id: 0x1c5b4677 full_name: "netif_napi_add_weight" } @@ -348649,7 +352745,7 @@ elf_symbol { name: "netif_receive_skb" is_defined: true symbol_type: FUNCTION - crc: 0xaba1015b + crc: 0xe34bad6a type_id: 0x9cd33969 full_name: "netif_receive_skb" } @@ -348667,7 +352763,7 @@ elf_symbol { name: "netif_rx" is_defined: true symbol_type: FUNCTION - crc: 0xe702d54b + crc: 0xe4ef3e44 type_id: 0x9cd33969 full_name: "netif_rx" } @@ -348676,7 +352772,7 @@ elf_symbol { name: "netif_schedule_queue" is_defined: true symbol_type: FUNCTION - crc: 0xd34a1ba5 + crc: 0x94c1e01e type_id: 0x1604193e full_name: "netif_schedule_queue" } @@ -348685,7 +352781,7 @@ elf_symbol { name: "netif_set_real_num_rx_queues" is_defined: true symbol_type: FUNCTION - crc: 0xad81795f + crc: 0x592b7f86 type_id: 0x903f7e42 full_name: "netif_set_real_num_rx_queues" } @@ -348694,7 +352790,7 @@ elf_symbol { name: "netif_set_real_num_tx_queues" is_defined: true symbol_type: FUNCTION - crc: 0xa8b9f025 + crc: 0x506e5148 type_id: 0x903f7e42 full_name: "netif_set_real_num_tx_queues" } @@ -348703,7 +352799,7 @@ elf_symbol { name: "netif_stacked_transfer_operstate" is_defined: true symbol_type: FUNCTION - crc: 0x0b10b168 + crc: 0x56f28aa5 type_id: 0x1cb4b808 full_name: "netif_stacked_transfer_operstate" } @@ -348712,7 +352808,7 @@ elf_symbol { name: "netif_tx_lock" is_defined: true symbol_type: FUNCTION - crc: 0x9ee6fdfd + crc: 0x083840a7 type_id: 0x1c31d966 full_name: "netif_tx_lock" } @@ -348721,7 +352817,7 @@ elf_symbol { name: "netif_tx_stop_all_queues" is_defined: true symbol_type: FUNCTION - crc: 0x19f3fb6c + crc: 0xc4f894b1 type_id: 0x1c31d966 full_name: "netif_tx_stop_all_queues" } @@ -348730,7 +352826,7 @@ elf_symbol { name: "netif_tx_unlock" is_defined: true symbol_type: FUNCTION - crc: 0x1b851f6d + crc: 0x71e16c61 type_id: 0x1c31d966 full_name: "netif_tx_unlock" } @@ -348739,7 +352835,7 @@ elf_symbol { name: "netif_tx_wake_queue" is_defined: true symbol_type: FUNCTION - crc: 0xfa0d886d + crc: 0x845ff355 type_id: 0x1604193e full_name: "netif_tx_wake_queue" } @@ -348748,7 +352844,7 @@ elf_symbol { name: "netlink_broadcast" is_defined: true symbol_type: FUNCTION - crc: 0xe926b27b + crc: 0xf4ee3b42 type_id: 0x9af58853 full_name: "netlink_broadcast" } @@ -348757,7 +352853,7 @@ elf_symbol { name: "netlink_capable" is_defined: true symbol_type: FUNCTION - crc: 0xdeabfe72 + crc: 0xf6c09918 type_id: 0xf0a03df0 full_name: "netlink_capable" } @@ -348766,7 +352862,7 @@ elf_symbol { name: "netlink_kernel_release" is_defined: true symbol_type: FUNCTION - crc: 0xeef0058d + crc: 0xbcab4079 type_id: 0x17c95d08 full_name: "netlink_kernel_release" } @@ -348775,7 +352871,7 @@ elf_symbol { name: "netlink_net_capable" is_defined: true symbol_type: FUNCTION - crc: 0x0c8da234 + crc: 0xe714da03 type_id: 0xf0a03df0 full_name: "netlink_net_capable" } @@ -348793,7 +352889,7 @@ elf_symbol { name: "netlink_unicast" is_defined: true symbol_type: FUNCTION - crc: 0x57da4c23 + crc: 0xfaea26d2 type_id: 0x9af70c99 full_name: "netlink_unicast" } @@ -348820,7 +352916,7 @@ elf_symbol { name: "nf_ct_attach" is_defined: true symbol_type: FUNCTION - crc: 0x0c05acda + crc: 0x42c4718c type_id: 0x1132058e full_name: "nf_ct_attach" } @@ -348829,7 +352925,7 @@ elf_symbol { name: "nf_ct_delete" is_defined: true symbol_type: FUNCTION - crc: 0x7a24a717 + crc: 0x118f5abd type_id: 0xf33b99db full_name: "nf_ct_delete" } @@ -348838,7 +352934,7 @@ elf_symbol { name: "nf_register_net_hooks" is_defined: true symbol_type: FUNCTION - crc: 0x20f8b3c8 + crc: 0x3d6d340b type_id: 0x9e768b87 full_name: "nf_register_net_hooks" } @@ -348847,7 +352943,7 @@ elf_symbol { name: "nf_unregister_net_hooks" is_defined: true symbol_type: FUNCTION - crc: 0x8ebcfd44 + crc: 0x0fef9c06 type_id: 0x136e393b full_name: "nf_unregister_net_hooks" } @@ -348856,7 +352952,7 @@ elf_symbol { name: "nfc_add_se" is_defined: true symbol_type: FUNCTION - crc: 0x4d421f0d + crc: 0xb074de23 type_id: 0x9fbd796f full_name: "nfc_add_se" } @@ -348865,7 +352961,7 @@ elf_symbol { name: "nfc_alloc_recv_skb" is_defined: true symbol_type: FUNCTION - crc: 0x39596e28 + crc: 0xb77b189d type_id: 0x7a39fbd1 full_name: "nfc_alloc_recv_skb" } @@ -348874,7 +352970,7 @@ elf_symbol { name: "nfc_allocate_device" is_defined: true symbol_type: FUNCTION - crc: 0xca357a66 + crc: 0x841c4a90 type_id: 0x5daa055b full_name: "nfc_allocate_device" } @@ -348883,7 +352979,7 @@ elf_symbol { name: "nfc_class" is_defined: true symbol_type: OBJECT - crc: 0x3f3b2a09 + crc: 0x21ab7893 type_id: 0x83714889 full_name: "nfc_class" } @@ -348892,7 +352988,7 @@ elf_symbol { name: "nfc_dep_link_is_up" is_defined: true symbol_type: FUNCTION - crc: 0x18697444 + crc: 0x18644a23 type_id: 0x9f93d86d full_name: "nfc_dep_link_is_up" } @@ -348901,7 +352997,7 @@ elf_symbol { name: "nfc_driver_failure" is_defined: true symbol_type: FUNCTION - crc: 0x9cd60ead + crc: 0x2e2d0ea1 type_id: 0x10393b5c full_name: "nfc_driver_failure" } @@ -348910,7 +353006,7 @@ elf_symbol { name: "nfc_find_se" is_defined: true symbol_type: FUNCTION - crc: 0x2a30f7e8 + crc: 0x7f57be7f type_id: 0xee085698 full_name: "nfc_find_se" } @@ -348919,7 +353015,7 @@ elf_symbol { name: "nfc_fw_download_done" is_defined: true symbol_type: FUNCTION - crc: 0xae321a72 + crc: 0xdb9790b5 type_id: 0x9c770a72 full_name: "nfc_fw_download_done" } @@ -348928,7 +353024,7 @@ elf_symbol { name: "nfc_get_local_general_bytes" is_defined: true symbol_type: FUNCTION - crc: 0x193f82d9 + crc: 0x4ca41825 type_id: 0x4bbafb54 full_name: "nfc_get_local_general_bytes" } @@ -348937,7 +353033,7 @@ elf_symbol { name: "nfc_proto_register" is_defined: true symbol_type: FUNCTION - crc: 0x7dc86066 + crc: 0xa625211e type_id: 0x9095ed8c full_name: "nfc_proto_register" } @@ -348946,7 +353042,7 @@ elf_symbol { name: "nfc_proto_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xec23ff84 + crc: 0x5cd6b145 type_id: 0x1d8d5f30 full_name: "nfc_proto_unregister" } @@ -348955,7 +353051,7 @@ elf_symbol { name: "nfc_register_device" is_defined: true symbol_type: FUNCTION - crc: 0x5f7e7557 + crc: 0x8fcc445f type_id: 0x9cbd0aac full_name: "nfc_register_device" } @@ -348964,7 +353060,7 @@ elf_symbol { name: "nfc_remove_se" is_defined: true symbol_type: FUNCTION - crc: 0x872e7c0b + crc: 0xdd7788ba type_id: 0x9f992a00 full_name: "nfc_remove_se" } @@ -348973,7 +353069,7 @@ elf_symbol { name: "nfc_se_connectivity" is_defined: true symbol_type: FUNCTION - crc: 0xcc382d4b + crc: 0x242f56fc type_id: 0x9c187b64 full_name: "nfc_se_connectivity" } @@ -348982,7 +353078,7 @@ elf_symbol { name: "nfc_se_transaction" is_defined: true symbol_type: FUNCTION - crc: 0xb2c065e3 + crc: 0xa09252b3 type_id: 0x9c1fae0d full_name: "nfc_se_transaction" } @@ -348991,7 +353087,7 @@ elf_symbol { name: "nfc_send_to_raw_sock" is_defined: true symbol_type: FUNCTION - crc: 0x7172e668 + crc: 0xcad1c6af type_id: 0x11ba77d9 full_name: "nfc_send_to_raw_sock" } @@ -349000,7 +353096,7 @@ elf_symbol { name: "nfc_set_remote_general_bytes" is_defined: true symbol_type: FUNCTION - crc: 0xc065caca + crc: 0xafb8a1a6 type_id: 0x9c4b5ba7 full_name: "nfc_set_remote_general_bytes" } @@ -349009,7 +353105,7 @@ elf_symbol { name: "nfc_target_lost" is_defined: true symbol_type: FUNCTION - crc: 0x47f7156d + crc: 0xca37033f type_id: 0x9f992a00 full_name: "nfc_target_lost" } @@ -349018,7 +353114,7 @@ elf_symbol { name: "nfc_targets_found" is_defined: true symbol_type: FUNCTION - crc: 0x31a182c6 + crc: 0x6ccd64f3 type_id: 0x9c908368 full_name: "nfc_targets_found" } @@ -349027,7 +353123,7 @@ elf_symbol { name: "nfc_tm_activated" is_defined: true symbol_type: FUNCTION - crc: 0x4e573d84 + crc: 0x7c75f372 type_id: 0x9f93bc17 full_name: "nfc_tm_activated" } @@ -349036,7 +353132,7 @@ elf_symbol { name: "nfc_tm_data_received" is_defined: true symbol_type: FUNCTION - crc: 0xcd75392f + crc: 0x08738dc3 type_id: 0x9ca83708 full_name: "nfc_tm_data_received" } @@ -349045,7 +353141,7 @@ elf_symbol { name: "nfc_tm_deactivated" is_defined: true symbol_type: FUNCTION - crc: 0x0d675a9a + crc: 0xd7f8782f type_id: 0x9cbd0aac full_name: "nfc_tm_deactivated" } @@ -349054,7 +353150,7 @@ elf_symbol { name: "nfc_unregister_device" is_defined: true symbol_type: FUNCTION - crc: 0x9c45977e + crc: 0x874ae1cf type_id: 0x11a5b810 full_name: "nfc_unregister_device" } @@ -349063,7 +353159,7 @@ elf_symbol { name: "nfc_vendor_cmd_reply" is_defined: true symbol_type: FUNCTION - crc: 0xd71ef041 + crc: 0x02d8c4d1 type_id: 0x9cd33969 full_name: "nfc_vendor_cmd_reply" } @@ -349144,7 +353240,7 @@ elf_symbol { name: "nonseekable_open" is_defined: true symbol_type: FUNCTION - crc: 0x3ea18428 + crc: 0xc70ec2a9 type_id: 0x9b022eae full_name: "nonseekable_open" } @@ -349153,7 +353249,7 @@ elf_symbol { name: "noop_llseek" is_defined: true symbol_type: FUNCTION - crc: 0x7b4e43e7 + crc: 0xf7ac99a4 type_id: 0x2d64ae3e full_name: "noop_llseek" } @@ -349243,7 +353339,7 @@ elf_symbol { name: "nvdimm_bus_register" is_defined: true symbol_type: FUNCTION - crc: 0x4157c93e + crc: 0x101d16bd type_id: 0x8c4206d5 full_name: "nvdimm_bus_register" } @@ -349252,7 +353348,7 @@ elf_symbol { name: "nvdimm_bus_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xdc6b28c4 + crc: 0xdf11fee9 type_id: 0x1be55e08 full_name: "nvdimm_bus_unregister" } @@ -349261,7 +353357,7 @@ elf_symbol { name: "nvdimm_pmem_region_create" is_defined: true symbol_type: FUNCTION - crc: 0xaa32d560 + crc: 0xc91e733c type_id: 0xe28e34fc full_name: "nvdimm_pmem_region_create" } @@ -349270,7 +353366,7 @@ elf_symbol { name: "nvmem_cell_get" is_defined: true symbol_type: FUNCTION - crc: 0xb1fb2cd0 + crc: 0x3171602b type_id: 0xbbe36438 full_name: "nvmem_cell_get" } @@ -349297,7 +353393,7 @@ elf_symbol { name: "nvmem_cell_read_u32" is_defined: true symbol_type: FUNCTION - crc: 0xa34c65db + crc: 0x41ce0cdb type_id: 0x9de0ab2c full_name: "nvmem_cell_read_u32" } @@ -349306,7 +353402,7 @@ elf_symbol { name: "nvmem_cell_read_variable_le_u32" is_defined: true symbol_type: FUNCTION - crc: 0x9a89ccd8 + crc: 0x87d4cd38 type_id: 0x9de0ab2c full_name: "nvmem_cell_read_variable_le_u32" } @@ -349346,12 +353442,30 @@ elf_symbol { type_id: 0x99bc47d8 full_name: "nvmem_device_write" } +elf_symbol { + id: 0x65d6ca81 + name: "nvmem_register" + is_defined: true + symbol_type: FUNCTION + crc: 0x5760ad62 + type_id: 0x2eb1a24e + full_name: "nvmem_register" +} +elf_symbol { + id: 0x27081fa8 + name: "nvmem_unregister" + is_defined: true + symbol_type: FUNCTION + crc: 0xcc39c03e + type_id: 0x158f8f53 + full_name: "nvmem_unregister" +} elf_symbol { id: 0x458a15db name: "of_address_to_resource" is_defined: true symbol_type: FUNCTION - crc: 0x4309136d + crc: 0xeddae735 type_id: 0x910e73b6 full_name: "of_address_to_resource" } @@ -349360,7 +353474,7 @@ elf_symbol { name: "of_alias_get_id" is_defined: true symbol_type: FUNCTION - crc: 0xf074deab + crc: 0x536078e6 type_id: 0x90646116 full_name: "of_alias_get_id" } @@ -349369,7 +353483,7 @@ elf_symbol { name: "of_can_transceiver" is_defined: true symbol_type: FUNCTION - crc: 0xa475bc6e + crc: 0xd4e9f9f5 type_id: 0x1c31d966 full_name: "of_can_transceiver" } @@ -349378,7 +353492,7 @@ elf_symbol { name: "of_clk_add_hw_provider" is_defined: true symbol_type: FUNCTION - crc: 0x36817037 + crc: 0xab160dcd type_id: 0x906d7ec1 full_name: "of_clk_add_hw_provider" } @@ -349387,7 +353501,7 @@ elf_symbol { name: "of_clk_add_provider" is_defined: true symbol_type: FUNCTION - crc: 0x4b97e19e + crc: 0x9e3eeb75 type_id: 0x90150082 full_name: "of_clk_add_provider" } @@ -349396,7 +353510,7 @@ elf_symbol { name: "of_clk_del_provider" is_defined: true symbol_type: FUNCTION - crc: 0xa5c36b11 + crc: 0x8483bca0 type_id: 0x1d84917e full_name: "of_clk_del_provider" } @@ -349405,7 +353519,7 @@ elf_symbol { name: "of_clk_get" is_defined: true symbol_type: FUNCTION - crc: 0x53bf4160 + crc: 0x2b911786 type_id: 0xaa9fab30 full_name: "of_clk_get" } @@ -349414,7 +353528,7 @@ elf_symbol { name: "of_clk_get_by_name" is_defined: true symbol_type: FUNCTION - crc: 0x0b48a593 + crc: 0x96709071 type_id: 0xabfb6aa8 full_name: "of_clk_get_by_name" } @@ -349423,7 +353537,7 @@ elf_symbol { name: "of_clk_get_from_provider" is_defined: true symbol_type: FUNCTION - crc: 0xfe3de1f7 + crc: 0x5317dfb2 type_id: 0xa52e0ac1 full_name: "of_clk_get_from_provider" } @@ -349432,7 +353546,7 @@ elf_symbol { name: "of_clk_get_parent_name" is_defined: true symbol_type: FUNCTION - crc: 0xa6dc5f76 + crc: 0x474b56d1 type_id: 0x9f53b7fd full_name: "of_clk_get_parent_name" } @@ -349441,7 +353555,7 @@ elf_symbol { name: "of_clk_hw_onecell_get" is_defined: true symbol_type: FUNCTION - crc: 0x46579219 + crc: 0x1cb5c356 type_id: 0xdd32bce5 full_name: "of_clk_hw_onecell_get" } @@ -349450,7 +353564,7 @@ elf_symbol { name: "of_clk_hw_simple_get" is_defined: true symbol_type: FUNCTION - crc: 0xfde5a46e + crc: 0x1a6bf090 type_id: 0xdd32bce5 full_name: "of_clk_hw_simple_get" } @@ -349459,7 +353573,7 @@ elf_symbol { name: "of_clk_set_defaults" is_defined: true symbol_type: FUNCTION - crc: 0xe5945c5f + crc: 0xf06371fe type_id: 0x9129debd full_name: "of_clk_set_defaults" } @@ -349468,7 +353582,7 @@ elf_symbol { name: "of_clk_src_onecell_get" is_defined: true symbol_type: FUNCTION - crc: 0xc9be425c + crc: 0x7f4c36d4 type_id: 0xa54cff55 full_name: "of_clk_src_onecell_get" } @@ -349477,7 +353591,7 @@ elf_symbol { name: "of_clk_src_simple_get" is_defined: true symbol_type: FUNCTION - crc: 0xb5ea2fe7 + crc: 0xf7ce3a1a type_id: 0xa54cff55 full_name: "of_clk_src_simple_get" } @@ -349486,7 +353600,7 @@ elf_symbol { name: "of_count_phandle_with_args" is_defined: true symbol_type: FUNCTION - crc: 0xa70c16c3 + crc: 0x2f1b3cd2 type_id: 0x91fc06c4 full_name: "of_count_phandle_with_args" } @@ -349495,7 +353609,7 @@ elf_symbol { name: "of_cpu_node_to_id" is_defined: true symbol_type: FUNCTION - crc: 0xa6eabcba + crc: 0x433c5c3c type_id: 0x909c23c2 full_name: "of_cpu_node_to_id" } @@ -349504,7 +353618,7 @@ elf_symbol { name: "of_css" is_defined: true symbol_type: FUNCTION - crc: 0xe2bd2c6f + crc: 0x377beb40 type_id: 0xcde52a7c full_name: "of_css" } @@ -349513,7 +353627,7 @@ elf_symbol { name: "of_devfreq_cooling_register" is_defined: true symbol_type: FUNCTION - crc: 0x54604134 + crc: 0x5e2d6d60 type_id: 0x45319f70 full_name: "of_devfreq_cooling_register" } @@ -349522,7 +353636,7 @@ elf_symbol { name: "of_device_get_match_data" is_defined: true symbol_type: FUNCTION - crc: 0x8fddb766 + crc: 0x5517c960 type_id: 0x5846e63a full_name: "of_device_get_match_data" } @@ -349531,7 +353645,7 @@ elf_symbol { name: "of_device_is_available" is_defined: true symbol_type: FUNCTION - crc: 0x6a3466fc + crc: 0x91918f88 type_id: 0xf22f7816 full_name: "of_device_is_available" } @@ -349540,7 +353654,7 @@ elf_symbol { name: "of_device_is_compatible" is_defined: true symbol_type: FUNCTION - crc: 0x11d73d9c + crc: 0xfe1b57ad type_id: 0x91f382e9 full_name: "of_device_is_compatible" } @@ -349549,7 +353663,7 @@ elf_symbol { name: "of_device_modalias" is_defined: true symbol_type: FUNCTION - crc: 0xa43e0c3f + crc: 0x2adcd72c type_id: 0x1440a366 full_name: "of_device_modalias" } @@ -349558,7 +353672,7 @@ elf_symbol { name: "of_device_request_module" is_defined: true symbol_type: FUNCTION - crc: 0x1c614825 + crc: 0xe01717ed type_id: 0x9d16dd74 full_name: "of_device_request_module" } @@ -349567,7 +353681,7 @@ elf_symbol { name: "of_device_uevent_modalias" is_defined: true symbol_type: FUNCTION - crc: 0x475cbfe9 + crc: 0x36195d1c type_id: 0x9dc2a5d0 full_name: "of_device_uevent_modalias" } @@ -349576,7 +353690,7 @@ elf_symbol { name: "of_dma_configure_id" is_defined: true symbol_type: FUNCTION - crc: 0x4aedb5b4 + crc: 0xd14b4f44 type_id: 0x9ddc8abe full_name: "of_dma_configure_id" } @@ -349585,7 +353699,7 @@ elf_symbol { name: "of_dma_controller_free" is_defined: true symbol_type: FUNCTION - crc: 0x4074559f + crc: 0xbe897873 type_id: 0x1d84917e full_name: "of_dma_controller_free" } @@ -349594,7 +353708,7 @@ elf_symbol { name: "of_dma_controller_register" is_defined: true symbol_type: FUNCTION - crc: 0x6f566764 + crc: 0xf2547170 type_id: 0x903479ff full_name: "of_dma_controller_register" } @@ -349603,7 +353717,7 @@ elf_symbol { name: "of_dma_is_coherent" is_defined: true symbol_type: FUNCTION - crc: 0x5d20963c + crc: 0x3bf3c07b type_id: 0xf3b89be9 full_name: "of_dma_is_coherent" } @@ -349612,7 +353726,7 @@ elf_symbol { name: "of_drm_find_bridge" is_defined: true symbol_type: FUNCTION - crc: 0x49c43b8c + crc: 0x6bbb5a72 type_id: 0x9702dcaf full_name: "of_drm_find_bridge" } @@ -349621,7 +353735,7 @@ elf_symbol { name: "of_drm_find_panel" is_defined: true symbol_type: FUNCTION - crc: 0xab487ab4 + crc: 0x2d4c71ed type_id: 0x29f0e61e full_name: "of_drm_find_panel" } @@ -349630,7 +353744,7 @@ elf_symbol { name: "of_find_backlight_by_node" is_defined: true symbol_type: FUNCTION - crc: 0xbcbf8c13 + crc: 0x2f612d92 type_id: 0x71a7be0e full_name: "of_find_backlight_by_node" } @@ -349639,7 +353753,7 @@ elf_symbol { name: "of_find_compatible_node" is_defined: true symbol_type: FUNCTION - crc: 0x0be12d6a + crc: 0xa5b636a8 type_id: 0x7b18d8c2 full_name: "of_find_compatible_node" } @@ -349648,7 +353762,7 @@ elf_symbol { name: "of_find_device_by_node" is_defined: true symbol_type: FUNCTION - crc: 0xbe2e618d + crc: 0xb3cb9033 type_id: 0xc44c8212 full_name: "of_find_device_by_node" } @@ -349657,7 +353771,7 @@ elf_symbol { name: "of_find_i2c_adapter_by_node" is_defined: true symbol_type: FUNCTION - crc: 0x3054c938 + crc: 0x20e69bf1 type_id: 0x619a645f full_name: "of_find_i2c_adapter_by_node" } @@ -349666,7 +353780,7 @@ elf_symbol { name: "of_find_i2c_device_by_node" is_defined: true symbol_type: FUNCTION - crc: 0xffa74ec8 + crc: 0xdd4464fe type_id: 0x81af1888 full_name: "of_find_i2c_device_by_node" } @@ -349675,7 +353789,7 @@ elf_symbol { name: "of_find_matching_node_and_match" is_defined: true symbol_type: FUNCTION - crc: 0xb40e4c86 + crc: 0x742cc539 type_id: 0x7b05d834 full_name: "of_find_matching_node_and_match" } @@ -349684,7 +353798,7 @@ elf_symbol { name: "of_find_mipi_dsi_host_by_node" is_defined: true symbol_type: FUNCTION - crc: 0x3ea32f44 + crc: 0xfaecee4e type_id: 0x2c313d32 full_name: "of_find_mipi_dsi_host_by_node" } @@ -349693,7 +353807,7 @@ elf_symbol { name: "of_find_node_by_name" is_defined: true symbol_type: FUNCTION - crc: 0xfbdc8f31 + crc: 0x5ee7a8f2 type_id: 0x7b175cef full_name: "of_find_node_by_name" } @@ -349702,7 +353816,7 @@ elf_symbol { name: "of_find_node_by_phandle" is_defined: true symbol_type: FUNCTION - crc: 0xf6537e17 + crc: 0x5adcde8d type_id: 0x71fff4bd full_name: "of_find_node_by_phandle" } @@ -349711,7 +353825,7 @@ elf_symbol { name: "of_find_node_by_type" is_defined: true symbol_type: FUNCTION - crc: 0x78b38ec8 + crc: 0xdd88a90b type_id: 0x7b175cef full_name: "of_find_node_by_type" } @@ -349720,7 +353834,7 @@ elf_symbol { name: "of_find_node_opts_by_path" is_defined: true symbol_type: FUNCTION - crc: 0x6eec1166 + crc: 0x5f7eb941 type_id: 0x7963a3c3 full_name: "of_find_node_opts_by_path" } @@ -349729,7 +353843,7 @@ elf_symbol { name: "of_find_node_with_property" is_defined: true symbol_type: FUNCTION - crc: 0x970b901d + crc: 0x8b0fef38 type_id: 0x7b175cef full_name: "of_find_node_with_property" } @@ -349738,7 +353852,7 @@ elf_symbol { name: "of_find_property" is_defined: true symbol_type: FUNCTION - crc: 0x086a88fe + crc: 0xf12b9b47 type_id: 0xd587d547 full_name: "of_find_property" } @@ -349747,7 +353861,7 @@ elf_symbol { name: "of_fwnode_ops" is_defined: true symbol_type: OBJECT - crc: 0x013c7fca + crc: 0x50bbc915 type_id: 0xe4207e6d full_name: "of_fwnode_ops" } @@ -349756,7 +353870,7 @@ elf_symbol { name: "of_genpd_add_provider_onecell" is_defined: true symbol_type: FUNCTION - crc: 0xc2ed8f21 + crc: 0x9b168415 type_id: 0x90ff140b full_name: "of_genpd_add_provider_onecell" } @@ -349765,7 +353879,7 @@ elf_symbol { name: "of_genpd_add_provider_simple" is_defined: true symbol_type: FUNCTION - crc: 0xff0f64bb + crc: 0x75aeeca2 type_id: 0x908663be full_name: "of_genpd_add_provider_simple" } @@ -349774,7 +353888,7 @@ elf_symbol { name: "of_genpd_del_provider" is_defined: true symbol_type: FUNCTION - crc: 0x402a4418 + crc: 0x03173eb1 type_id: 0x1d84917e full_name: "of_genpd_del_provider" } @@ -349783,7 +353897,7 @@ elf_symbol { name: "of_get_child_by_name" is_defined: true symbol_type: FUNCTION - crc: 0xcded08e6 + crc: 0xd1e977c3 type_id: 0x7a80bf10 full_name: "of_get_child_by_name" } @@ -349792,7 +353906,7 @@ elf_symbol { name: "of_get_compatible_child" is_defined: true symbol_type: FUNCTION - crc: 0x0cbe130b + crc: 0x9df2363c type_id: 0x7a80bf10 full_name: "of_get_compatible_child" } @@ -349801,7 +353915,7 @@ elf_symbol { name: "of_get_cpu_node" is_defined: true symbol_type: FUNCTION - crc: 0xdef98395 + crc: 0xe0ff0a79 type_id: 0x6f542f9d full_name: "of_get_cpu_node" } @@ -349810,7 +353924,7 @@ elf_symbol { name: "of_get_i2c_adapter_by_node" is_defined: true symbol_type: FUNCTION - crc: 0xc285916f + crc: 0xaaad02f5 type_id: 0x619a645f full_name: "of_get_i2c_adapter_by_node" } @@ -349819,7 +353933,7 @@ elf_symbol { name: "of_get_mac_address" is_defined: true symbol_type: FUNCTION - crc: 0x1044068c + crc: 0x65748686 type_id: 0x909f3f56 full_name: "of_get_mac_address" } @@ -349828,7 +353942,7 @@ elf_symbol { name: "of_get_named_gpio_flags" is_defined: true symbol_type: FUNCTION - crc: 0x00ee3d1d + crc: 0x22ce254f type_id: 0x91ea80a1 full_name: "of_get_named_gpio_flags" } @@ -349837,7 +353951,7 @@ elf_symbol { name: "of_get_next_available_child" is_defined: true symbol_type: FUNCTION - crc: 0x5b29bb54 + crc: 0x953bf619 type_id: 0x7aa931ca full_name: "of_get_next_available_child" } @@ -349846,7 +353960,7 @@ elf_symbol { name: "of_get_next_child" is_defined: true symbol_type: FUNCTION - crc: 0xa36bc453 + crc: 0x7868216c type_id: 0x7aa931ca full_name: "of_get_next_child" } @@ -349855,7 +353969,7 @@ elf_symbol { name: "of_get_next_parent" is_defined: true symbol_type: FUNCTION - crc: 0x34d266fd + crc: 0x9708c930 type_id: 0x7bef1e3b full_name: "of_get_next_parent" } @@ -349864,7 +353978,7 @@ elf_symbol { name: "of_get_parent" is_defined: true symbol_type: FUNCTION - crc: 0xef26b41f + crc: 0x0a50d0bd type_id: 0x7a78fdc4 full_name: "of_get_parent" } @@ -349873,7 +353987,7 @@ elf_symbol { name: "of_get_property" is_defined: true symbol_type: FUNCTION - crc: 0x9507ac45 + crc: 0x464630ed type_id: 0x5bd8cd40 full_name: "of_get_property" } @@ -349882,7 +353996,7 @@ elf_symbol { name: "of_get_regulator_init_data" is_defined: true symbol_type: FUNCTION - crc: 0x9fb9bab2 + crc: 0x852384a3 type_id: 0xecebfa40 full_name: "of_get_regulator_init_data" } @@ -349891,7 +354005,7 @@ elf_symbol { name: "of_get_required_opp_performance_state" is_defined: true symbol_type: FUNCTION - crc: 0x0076382f + crc: 0x5ce78d1a type_id: 0x9100a08e full_name: "of_get_required_opp_performance_state" } @@ -349900,7 +354014,7 @@ elf_symbol { name: "of_graph_get_endpoint_by_regs" is_defined: true symbol_type: FUNCTION - crc: 0x38b8c1ac + crc: 0xe90a415e type_id: 0x7bfdb6bc full_name: "of_graph_get_endpoint_by_regs" } @@ -349909,7 +354023,7 @@ elf_symbol { name: "of_graph_get_next_endpoint" is_defined: true symbol_type: FUNCTION - crc: 0x3a562bbb + crc: 0xec9936e9 type_id: 0x7aa931ca full_name: "of_graph_get_next_endpoint" } @@ -349918,7 +354032,7 @@ elf_symbol { name: "of_graph_get_port_parent" is_defined: true symbol_type: FUNCTION - crc: 0x6a88a88e + crc: 0xf5d7750e type_id: 0x7bef1e3b full_name: "of_graph_get_port_parent" } @@ -349927,7 +354041,7 @@ elf_symbol { name: "of_graph_get_remote_endpoint" is_defined: true symbol_type: FUNCTION - crc: 0xbad5feef + crc: 0x2c1eb63f type_id: 0x7a78fdc4 full_name: "of_graph_get_remote_endpoint" } @@ -349936,7 +354050,7 @@ elf_symbol { name: "of_graph_get_remote_node" is_defined: true symbol_type: FUNCTION - crc: 0x4158a61c + crc: 0x15c8d7d9 type_id: 0x796e9f62 full_name: "of_graph_get_remote_node" } @@ -349945,7 +354059,7 @@ elf_symbol { name: "of_graph_get_remote_port_parent" is_defined: true symbol_type: FUNCTION - crc: 0x2f6a626f + crc: 0x96f589fc type_id: 0x7a78fdc4 full_name: "of_graph_get_remote_port_parent" } @@ -349954,7 +354068,7 @@ elf_symbol { name: "of_graph_is_present" is_defined: true symbol_type: FUNCTION - crc: 0xa012f0c4 + crc: 0xc2cf4b40 type_id: 0xf22f7816 full_name: "of_graph_is_present" } @@ -349963,7 +354077,7 @@ elf_symbol { name: "of_graph_parse_endpoint" is_defined: true symbol_type: FUNCTION - crc: 0x8a3d39f0 + crc: 0x820c1bd8 type_id: 0x9104fd7b full_name: "of_graph_parse_endpoint" } @@ -349972,7 +354086,7 @@ elf_symbol { name: "of_hwspin_lock_get_id" is_defined: true symbol_type: FUNCTION - crc: 0xe83ccee5 + crc: 0x901d5fd6 type_id: 0x9100a08e full_name: "of_hwspin_lock_get_id" } @@ -349981,16 +354095,25 @@ elf_symbol { name: "of_icc_get" is_defined: true symbol_type: FUNCTION - crc: 0xa75a3df4 + crc: 0x88ce0f0a type_id: 0x2bcaa9c8 full_name: "of_icc_get" } +elf_symbol { + id: 0x08284f40 + name: "of_icc_get_from_provider" + is_defined: true + symbol_type: FUNCTION + crc: 0x7e90f50f + type_id: 0x2d456d1f + full_name: "of_icc_get_from_provider" +} elf_symbol { id: 0xbd1c7f26 name: "of_icc_xlate_onecell" is_defined: true symbol_type: FUNCTION - crc: 0xdbf6189d + crc: 0xe7177856 type_id: 0xbce9e1eb full_name: "of_icc_xlate_onecell" } @@ -349999,7 +354122,7 @@ elf_symbol { name: "of_iomap" is_defined: true symbol_type: FUNCTION - crc: 0xd8f382da + crc: 0x02909fcc type_id: 0x5a16f250 full_name: "of_iomap" } @@ -350008,7 +354131,7 @@ elf_symbol { name: "of_irq_find_parent" is_defined: true symbol_type: FUNCTION - crc: 0xdfeedaa9 + crc: 0x68aaedcc type_id: 0x7bef1e3b full_name: "of_irq_find_parent" } @@ -350017,7 +354140,7 @@ elf_symbol { name: "of_irq_get" is_defined: true symbol_type: FUNCTION - crc: 0xd3b2c38a + crc: 0xd0998ae5 type_id: 0x9100a08e full_name: "of_irq_get" } @@ -350026,7 +354149,7 @@ elf_symbol { name: "of_irq_get_byname" is_defined: true symbol_type: FUNCTION - crc: 0xeddc1474 + crc: 0xfcadacfc type_id: 0x90646116 full_name: "of_irq_get_byname" } @@ -350035,7 +354158,7 @@ elf_symbol { name: "of_irq_parse_one" is_defined: true symbol_type: FUNCTION - crc: 0x92135acc + crc: 0xd0816c48 type_id: 0x9103916c full_name: "of_irq_parse_one" } @@ -350044,7 +354167,7 @@ elf_symbol { name: "of_irq_to_resource" is_defined: true symbol_type: FUNCTION - crc: 0xdbb40773 + crc: 0xe9fda57b type_id: 0x910e73b6 full_name: "of_irq_to_resource" } @@ -350062,7 +354185,7 @@ elf_symbol { name: "of_match_device" is_defined: true symbol_type: FUNCTION - crc: 0x48402df9 + crc: 0x7f9df764 type_id: 0xd082596f full_name: "of_match_device" } @@ -350071,25 +354194,16 @@ elf_symbol { name: "of_match_node" is_defined: true symbol_type: FUNCTION - crc: 0xd6d1a607 + crc: 0x18ebaec9 type_id: 0xd0b47295 full_name: "of_match_node" } -elf_symbol { - id: 0x71e8db53 - name: "of_mdiobus_register" - is_defined: true - symbol_type: FUNCTION - crc: 0x051552f4 - type_id: 0x90246b11 - full_name: "of_mdiobus_register" -} elf_symbol { id: 0x23d1db24 name: "of_modalias_node" is_defined: true symbol_type: FUNCTION - crc: 0x60751d46 + crc: 0xd464c52a type_id: 0x9097e46d full_name: "of_modalias_node" } @@ -350098,7 +354212,7 @@ elf_symbol { name: "of_n_addr_cells" is_defined: true symbol_type: FUNCTION - crc: 0x19edf614 + crc: 0x9417e40f type_id: 0x909c23c2 full_name: "of_n_addr_cells" } @@ -350107,7 +354221,7 @@ elf_symbol { name: "of_n_size_cells" is_defined: true symbol_type: FUNCTION - crc: 0x2380b7dd + crc: 0x4c07e36e type_id: 0x909c23c2 full_name: "of_n_size_cells" } @@ -350116,7 +354230,7 @@ elf_symbol { name: "of_node_name_eq" is_defined: true symbol_type: FUNCTION - crc: 0x453fbe77 + crc: 0xc8cf955b type_id: 0xf2d73ac2 full_name: "of_node_name_eq" } @@ -350125,7 +354239,7 @@ elf_symbol { name: "of_nvmem_device_get" is_defined: true symbol_type: FUNCTION - crc: 0x19e12074 + crc: 0xa53b92e0 type_id: 0x2c22370c full_name: "of_nvmem_device_get" } @@ -350134,7 +354248,7 @@ elf_symbol { name: "of_phandle_iterator_init" is_defined: true symbol_type: FUNCTION - crc: 0x5a684a21 + crc: 0xb08b547f type_id: 0x94623262 full_name: "of_phandle_iterator_init" } @@ -350143,7 +354257,7 @@ elf_symbol { name: "of_phandle_iterator_next" is_defined: true symbol_type: FUNCTION - crc: 0x3a285ffc + crc: 0x547c9152 type_id: 0x94a5e5f4 full_name: "of_phandle_iterator_next" } @@ -350152,7 +354266,7 @@ elf_symbol { name: "of_phy_is_fixed_link" is_defined: true symbol_type: FUNCTION - crc: 0x75985e72 + crc: 0x419dc133 type_id: 0xf3b89be9 full_name: "of_phy_is_fixed_link" } @@ -350161,7 +354275,7 @@ elf_symbol { name: "of_phy_simple_xlate" is_defined: true symbol_type: FUNCTION - crc: 0x8a37e601 + crc: 0x9046fc17 type_id: 0x119fef8e full_name: "of_phy_simple_xlate" } @@ -350170,7 +354284,7 @@ elf_symbol { name: "of_platform_depopulate" is_defined: true symbol_type: FUNCTION - crc: 0xebd6113c + crc: 0x51843bab type_id: 0x100e6fc8 full_name: "of_platform_depopulate" } @@ -350179,7 +354293,7 @@ elf_symbol { name: "of_platform_device_create" is_defined: true symbol_type: FUNCTION - crc: 0x4f8b8db1 + crc: 0x9cfc5d5a type_id: 0xc4b456f8 full_name: "of_platform_device_create" } @@ -350188,7 +354302,7 @@ elf_symbol { name: "of_platform_device_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x0c51d114 + crc: 0x74e4301d type_id: 0x9d7428e0 full_name: "of_platform_device_destroy" } @@ -350197,7 +354311,7 @@ elf_symbol { name: "of_platform_populate" is_defined: true symbol_type: FUNCTION - crc: 0xf5072c65 + crc: 0xdacfed6c type_id: 0x90795841 full_name: "of_platform_populate" } @@ -350206,7 +354320,7 @@ elf_symbol { name: "of_pm_clk_add_clks" is_defined: true symbol_type: FUNCTION - crc: 0x44cf7d3e + crc: 0x97d10e5b type_id: 0x9d16dd74 full_name: "of_pm_clk_add_clks" } @@ -350215,7 +354329,7 @@ elf_symbol { name: "of_prop_next_string" is_defined: true symbol_type: FUNCTION - crc: 0xf1701fdc + crc: 0x84b306d9 type_id: 0x927dc411 full_name: "of_prop_next_string" } @@ -350224,7 +354338,7 @@ elf_symbol { name: "of_prop_next_u32" is_defined: true symbol_type: FUNCTION - crc: 0xee11fafd + crc: 0x834a0770 type_id: 0x21ebbce2 full_name: "of_prop_next_u32" } @@ -350233,7 +354347,7 @@ elf_symbol { name: "of_property_count_elems_of_size" is_defined: true symbol_type: FUNCTION - crc: 0x2d85982c + crc: 0xecc331d7 type_id: 0x91ea4add full_name: "of_property_count_elems_of_size" } @@ -350242,7 +354356,7 @@ elf_symbol { name: "of_property_match_string" is_defined: true symbol_type: FUNCTION - crc: 0x5c66a371 + crc: 0x913e5422 type_id: 0x91fc06c4 full_name: "of_property_match_string" } @@ -350251,7 +354365,7 @@ elf_symbol { name: "of_property_read_string" is_defined: true symbol_type: FUNCTION - crc: 0xfb7728d9 + crc: 0xfe566229 type_id: 0x91f2c7ec full_name: "of_property_read_string" } @@ -350260,7 +354374,7 @@ elf_symbol { name: "of_property_read_string_helper" is_defined: true symbol_type: FUNCTION - crc: 0x01e87026 + crc: 0x4a14b851 type_id: 0x91f10ef1 full_name: "of_property_read_string_helper" } @@ -350269,7 +354383,7 @@ elf_symbol { name: "of_property_read_u32_index" is_defined: true symbol_type: FUNCTION - crc: 0x4551c602 + crc: 0xc8ea4049 type_id: 0x91c123ab full_name: "of_property_read_u32_index" } @@ -350278,7 +354392,7 @@ elf_symbol { name: "of_property_read_u64" is_defined: true symbol_type: FUNCTION - crc: 0x3cdb64c7 + crc: 0xe82c5643 type_id: 0x91f804d4 full_name: "of_property_read_u64" } @@ -350287,7 +354401,7 @@ elf_symbol { name: "of_property_read_u64_index" is_defined: true symbol_type: FUNCTION - crc: 0x0357df98 + crc: 0xfca10b4f type_id: 0x91c17880 full_name: "of_property_read_u64_index" } @@ -350296,7 +354410,7 @@ elf_symbol { name: "of_property_read_variable_u16_array" is_defined: true symbol_type: FUNCTION - crc: 0x2e04c7dc + crc: 0x32d51260 type_id: 0x91fbdfe4 full_name: "of_property_read_variable_u16_array" } @@ -350305,7 +354419,7 @@ elf_symbol { name: "of_property_read_variable_u32_array" is_defined: true symbol_type: FUNCTION - crc: 0xb581ddae + crc: 0xf30a053e type_id: 0x91fe5bbd full_name: "of_property_read_variable_u32_array" } @@ -350314,7 +354428,7 @@ elf_symbol { name: "of_property_read_variable_u64_array" is_defined: true symbol_type: FUNCTION - crc: 0x98b9fecd + crc: 0x2224ea66 type_id: 0x91fbe90c full_name: "of_property_read_variable_u64_array" } @@ -350323,7 +354437,7 @@ elf_symbol { name: "of_property_read_variable_u8_array" is_defined: true symbol_type: FUNCTION - crc: 0x43b464a0 + crc: 0xf93cf98f type_id: 0x91f05ef8 full_name: "of_property_read_variable_u8_array" } @@ -350332,7 +354446,7 @@ elf_symbol { name: "of_reserved_mem_device_init_by_idx" is_defined: true symbol_type: FUNCTION - crc: 0x3a6cb0eb + crc: 0x10a5785b type_id: 0x9dded94e full_name: "of_reserved_mem_device_init_by_idx" } @@ -350341,7 +354455,7 @@ elf_symbol { name: "of_reserved_mem_device_release" is_defined: true symbol_type: FUNCTION - crc: 0x4b842cd8 + crc: 0x2a95f3fc type_id: 0x100e6fc8 full_name: "of_reserved_mem_device_release" } @@ -350350,7 +354464,7 @@ elf_symbol { name: "of_reserved_mem_lookup" is_defined: true symbol_type: FUNCTION - crc: 0x541b1357 + crc: 0x43f6af2d type_id: 0x3330b35a full_name: "of_reserved_mem_lookup" } @@ -350359,7 +354473,7 @@ elf_symbol { name: "of_root" is_defined: true symbol_type: OBJECT - crc: 0x56c7985e + crc: 0x8e6ec726 type_id: 0x347303b4 full_name: "of_root" } @@ -350368,7 +354482,7 @@ elf_symbol { name: "of_thermal_get_ntrips" is_defined: true symbol_type: FUNCTION - crc: 0x08082d51 + crc: 0x685c291e type_id: 0x9439b74e full_name: "of_thermal_get_ntrips" } @@ -350377,7 +354491,7 @@ elf_symbol { name: "of_thermal_get_trip_points" is_defined: true symbol_type: FUNCTION - crc: 0xdaae9450 + crc: 0x43d15a4e type_id: 0x954e493c full_name: "of_thermal_get_trip_points" } @@ -350386,7 +354500,7 @@ elf_symbol { name: "of_thermal_is_trip_valid" is_defined: true symbol_type: FUNCTION - crc: 0x33867145 + crc: 0x251959da type_id: 0xf6818c29 full_name: "of_thermal_is_trip_valid" } @@ -350395,7 +354509,7 @@ elf_symbol { name: "of_translate_address" is_defined: true symbol_type: FUNCTION - crc: 0xd6e0310d + crc: 0xd5610069 type_id: 0x5a09df06 full_name: "of_translate_address" } @@ -350404,7 +354518,7 @@ elf_symbol { name: "of_usb_host_tpl_support" is_defined: true symbol_type: FUNCTION - crc: 0x8ddee3a7 + crc: 0x117eb6fc type_id: 0xf3b89be9 full_name: "of_usb_host_tpl_support" } @@ -350440,7 +354554,7 @@ elf_symbol { name: "open_candev" is_defined: true symbol_type: FUNCTION - crc: 0x2f583bc9 + crc: 0xfd3c2706 type_id: 0x91296bda full_name: "open_candev" } @@ -350476,7 +354590,7 @@ elf_symbol { name: "page_endio" is_defined: true symbol_type: FUNCTION - crc: 0xbdc6ddf9 + crc: 0x59ef63b6 type_id: 0x1094b37f full_name: "page_endio" } @@ -350485,7 +354599,7 @@ elf_symbol { name: "page_ext_get" is_defined: true symbol_type: FUNCTION - crc: 0x7f199b48 + crc: 0x60c331fd namespace: "MINIDUMP" type_id: 0xb6d2e6f8 full_name: "page_ext_get" @@ -350533,7 +354647,7 @@ elf_symbol { name: "page_mapping" is_defined: true symbol_type: FUNCTION - crc: 0x3b9c5cdb + crc: 0x077e7978 type_id: 0x6a8ce717 full_name: "page_mapping" } @@ -350542,7 +354656,7 @@ elf_symbol { name: "page_pool_alloc_pages" is_defined: true symbol_type: FUNCTION - crc: 0xd4c70d89 + crc: 0x935988d7 type_id: 0xba8f5ef0 full_name: "page_pool_alloc_pages" } @@ -350551,7 +354665,7 @@ elf_symbol { name: "page_pool_create" is_defined: true symbol_type: FUNCTION - crc: 0xee6d3e6a + crc: 0x7f84d04b type_id: 0xf18d022a full_name: "page_pool_create" } @@ -350560,7 +354674,7 @@ elf_symbol { name: "page_pool_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x6da36eed + crc: 0xad776da4 type_id: 0x1449649c full_name: "page_pool_destroy" } @@ -350569,7 +354683,7 @@ elf_symbol { name: "page_pool_put_defragged_page" is_defined: true symbol_type: FUNCTION - crc: 0xa26cb189 + crc: 0x10b209f4 type_id: 0x1443bd42 full_name: "page_pool_put_defragged_page" } @@ -350578,7 +354692,7 @@ elf_symbol { name: "page_pool_release_page" is_defined: true symbol_type: FUNCTION - crc: 0xb422ae1f + crc: 0xd2b8ba01 type_id: 0x145369e6 full_name: "page_pool_release_page" } @@ -350587,7 +354701,7 @@ elf_symbol { name: "page_relinquish" is_defined: true symbol_type: FUNCTION - crc: 0x5ab65f00 + crc: 0xa0d5d94f type_id: 0x11388634 full_name: "page_relinquish" } @@ -350641,7 +354755,7 @@ elf_symbol { name: "param_array_ops" is_defined: true symbol_type: OBJECT - crc: 0x8d44605b + crc: 0x95389aa9 type_id: 0xd865d5b5 full_name: "param_array_ops" } @@ -350650,7 +354764,7 @@ elf_symbol { name: "param_get_int" is_defined: true symbol_type: FUNCTION - crc: 0x9104a302 + crc: 0xb7cd6b87 type_id: 0x9c660c95 full_name: "param_get_int" } @@ -350659,7 +354773,7 @@ elf_symbol { name: "param_get_string" is_defined: true symbol_type: FUNCTION - crc: 0xd53b1fa6 + crc: 0x8c5cbceb type_id: 0x9c660c95 full_name: "param_get_string" } @@ -350668,7 +354782,7 @@ elf_symbol { name: "param_get_uint" is_defined: true symbol_type: FUNCTION - crc: 0xc71f8b07 + crc: 0x1f214db2 type_id: 0x9c660c95 full_name: "param_get_uint" } @@ -350677,7 +354791,7 @@ elf_symbol { name: "param_get_ullong" is_defined: true symbol_type: FUNCTION - crc: 0x4bda20ca + crc: 0x09f673ec type_id: 0x9c660c95 full_name: "param_get_ullong" } @@ -350686,7 +354800,7 @@ elf_symbol { name: "param_ops_bool" is_defined: true symbol_type: OBJECT - crc: 0xa2e96cbe + crc: 0x6954e969 type_id: 0xd865d5b5 full_name: "param_ops_bool" } @@ -350695,7 +354809,7 @@ elf_symbol { name: "param_ops_byte" is_defined: true symbol_type: OBJECT - crc: 0x162a9325 + crc: 0xdd9716f2 type_id: 0xd865d5b5 full_name: "param_ops_byte" } @@ -350704,7 +354818,7 @@ elf_symbol { name: "param_ops_charp" is_defined: true symbol_type: OBJECT - crc: 0xf0b7130a + crc: 0xe8cbe9f8 type_id: 0xd865d5b5 full_name: "param_ops_charp" } @@ -350713,7 +354827,7 @@ elf_symbol { name: "param_ops_int" is_defined: true symbol_type: OBJECT - crc: 0x81e89732 + crc: 0x5ddecc82 type_id: 0xd865d5b5 full_name: "param_ops_int" } @@ -350722,7 +354836,7 @@ elf_symbol { name: "param_ops_long" is_defined: true symbol_type: OBJECT - crc: 0xffef6123 + crc: 0x3452e4f4 type_id: 0xd865d5b5 full_name: "param_ops_long" } @@ -350731,7 +354845,7 @@ elf_symbol { name: "param_ops_string" is_defined: true symbol_type: OBJECT - crc: 0x135ba512 + crc: 0x40f04ad8 type_id: 0xd865d5b5 full_name: "param_ops_string" } @@ -350740,7 +354854,7 @@ elf_symbol { name: "param_ops_uint" is_defined: true symbol_type: OBJECT - crc: 0xd69b8a9e + crc: 0x1d260f49 type_id: 0xd865d5b5 full_name: "param_ops_uint" } @@ -350749,7 +354863,7 @@ elf_symbol { name: "param_ops_ullong" is_defined: true symbol_type: OBJECT - crc: 0x65b566e1 + crc: 0x361e892b type_id: 0xd865d5b5 full_name: "param_ops_ullong" } @@ -350758,7 +354872,7 @@ elf_symbol { name: "param_ops_ulong" is_defined: true symbol_type: OBJECT - crc: 0x20d8fdfd + crc: 0x38a4070f type_id: 0xd865d5b5 full_name: "param_ops_ulong" } @@ -350767,7 +354881,7 @@ elf_symbol { name: "param_set_bool" is_defined: true symbol_type: FUNCTION - crc: 0x6d7c144d + crc: 0x76f258dc type_id: 0x92c2d86d full_name: "param_set_bool" } @@ -350776,7 +354890,7 @@ elf_symbol { name: "param_set_copystring" is_defined: true symbol_type: FUNCTION - crc: 0x759a497b + crc: 0x27e8190b type_id: 0x92c2d86d full_name: "param_set_copystring" } @@ -350785,7 +354899,7 @@ elf_symbol { name: "param_set_int" is_defined: true symbol_type: FUNCTION - crc: 0xf71ee84c + crc: 0xabbdef5d type_id: 0x92c2d86d full_name: "param_set_int" } @@ -350794,7 +354908,7 @@ elf_symbol { name: "param_set_uint" is_defined: true symbol_type: FUNCTION - crc: 0xdd40362a + crc: 0x9a481da6 type_id: 0x92c2d86d full_name: "param_set_uint" } @@ -350803,7 +354917,7 @@ elf_symbol { name: "passthru_features_check" is_defined: true symbol_type: FUNCTION - crc: 0x44165bc2 + crc: 0xe166add5 type_id: 0xa739c6fb full_name: "passthru_features_check" } @@ -350812,7 +354926,7 @@ elf_symbol { name: "pci_aer_clear_nonfatal_status" is_defined: true symbol_type: FUNCTION - crc: 0x41fe3554 + crc: 0x9bcbb6b0 type_id: 0x99f942bc full_name: "pci_aer_clear_nonfatal_status" } @@ -350821,7 +354935,7 @@ elf_symbol { name: "pci_alloc_irq_vectors_affinity" is_defined: true symbol_type: FUNCTION - crc: 0x4aabfe17 + crc: 0x733ac994 type_id: 0x98ff2dd7 full_name: "pci_alloc_irq_vectors_affinity" } @@ -350830,7 +354944,7 @@ elf_symbol { name: "pci_assign_resource" is_defined: true symbol_type: FUNCTION - crc: 0x3e286ac9 + crc: 0x9daa5d1b type_id: 0x9865c1f0 full_name: "pci_assign_resource" } @@ -350839,7 +354953,7 @@ elf_symbol { name: "pci_bus_type" is_defined: true symbol_type: OBJECT - crc: 0xca92011a + crc: 0x48f6d369 type_id: 0x257935aa full_name: "pci_bus_type" } @@ -350848,7 +354962,7 @@ elf_symbol { name: "pci_clear_master" is_defined: true symbol_type: FUNCTION - crc: 0xcad32e14 + crc: 0xf0a670c5 type_id: 0x14e1f000 full_name: "pci_clear_master" } @@ -350857,7 +354971,7 @@ elf_symbol { name: "pci_dev_get" is_defined: true symbol_type: FUNCTION - crc: 0xb8e27dc2 + crc: 0xaddb4c8b type_id: 0x832143d7 full_name: "pci_dev_get" } @@ -350875,7 +354989,7 @@ elf_symbol { name: "pci_dev_put" is_defined: true symbol_type: FUNCTION - crc: 0xe74cf46c + crc: 0x925fe0d1 type_id: 0x14e1f000 full_name: "pci_dev_put" } @@ -350884,7 +354998,7 @@ elf_symbol { name: "pci_device_group" is_defined: true symbol_type: FUNCTION - crc: 0xd46f7ce6 + crc: 0x9bb26050 type_id: 0x7e204efc full_name: "pci_device_group" } @@ -350893,7 +355007,7 @@ elf_symbol { name: "pci_device_is_present" is_defined: true symbol_type: FUNCTION - crc: 0x032934f9 + crc: 0x069c1bb6 type_id: 0xfaddfa97 full_name: "pci_device_is_present" } @@ -350902,7 +355016,7 @@ elf_symbol { name: "pci_disable_device" is_defined: true symbol_type: FUNCTION - crc: 0xe1c7049d + crc: 0x50d66b7f type_id: 0x14e1f000 full_name: "pci_disable_device" } @@ -350911,7 +355025,7 @@ elf_symbol { name: "pci_disable_link_state" is_defined: true symbol_type: FUNCTION - crc: 0x0f721350 + crc: 0xa95d2bb5 type_id: 0x9865c1f0 full_name: "pci_disable_link_state" } @@ -350920,7 +355034,7 @@ elf_symbol { name: "pci_disable_msi" is_defined: true symbol_type: FUNCTION - crc: 0x8f00e4ac + crc: 0x944fc86b type_id: 0x14e1f000 full_name: "pci_disable_msi" } @@ -350929,7 +355043,7 @@ elf_symbol { name: "pci_disable_sriov" is_defined: true symbol_type: FUNCTION - crc: 0x465013f4 + crc: 0xa9490e6b type_id: 0x14e1f000 full_name: "pci_disable_sriov" } @@ -350938,7 +355052,7 @@ elf_symbol { name: "pci_enable_device" is_defined: true symbol_type: FUNCTION - crc: 0x1b1e67a5 + crc: 0x86883061 type_id: 0x99f942bc full_name: "pci_enable_device" } @@ -350947,7 +355061,7 @@ elf_symbol { name: "pci_enable_msi" is_defined: true symbol_type: FUNCTION - crc: 0x7d77d42e + crc: 0x817f0438 type_id: 0x99f942bc full_name: "pci_enable_msi" } @@ -350956,7 +355070,7 @@ elf_symbol { name: "pci_enable_pcie_error_reporting" is_defined: true symbol_type: FUNCTION - crc: 0x34f98dff + crc: 0xf6d08172 type_id: 0x99f942bc full_name: "pci_enable_pcie_error_reporting" } @@ -350965,7 +355079,7 @@ elf_symbol { name: "pci_enable_sriov" is_defined: true symbol_type: FUNCTION - crc: 0x8ed36371 + crc: 0xb63bc761 type_id: 0x9865c1f0 full_name: "pci_enable_sriov" } @@ -350974,7 +355088,7 @@ elf_symbol { name: "pci_enable_wake" is_defined: true symbol_type: FUNCTION - crc: 0xaefdbd79 + crc: 0xca230da8 type_id: 0x999ac92f full_name: "pci_enable_wake" } @@ -350983,7 +355097,7 @@ elf_symbol { name: "pci_find_bus" is_defined: true symbol_type: FUNCTION - crc: 0xaf1ce34f + crc: 0x13241b67 type_id: 0xd88df0fd full_name: "pci_find_bus" } @@ -350992,7 +355106,7 @@ elf_symbol { name: "pci_find_capability" is_defined: true symbol_type: FUNCTION - crc: 0x09a6a8ad + crc: 0x1d0636ac type_id: 0x56af9ca8 full_name: "pci_find_capability" } @@ -351001,7 +355115,7 @@ elf_symbol { name: "pci_find_ext_capability" is_defined: true symbol_type: FUNCTION - crc: 0x21d38548 + crc: 0x6a934d94 type_id: 0x04ce0b6f full_name: "pci_find_ext_capability" } @@ -351010,7 +355124,7 @@ elf_symbol { name: "pci_find_next_capability" is_defined: true symbol_type: FUNCTION - crc: 0x945d9381 + crc: 0xf4f61334 type_id: 0x578fa618 full_name: "pci_find_next_capability" } @@ -351019,7 +355133,7 @@ elf_symbol { name: "pci_free_irq_vectors" is_defined: true symbol_type: FUNCTION - crc: 0x2bdb6adf + crc: 0x9e05d60d type_id: 0x14e1f000 full_name: "pci_free_irq_vectors" } @@ -351028,7 +355142,7 @@ elf_symbol { name: "pci_get_device" is_defined: true symbol_type: FUNCTION - crc: 0x192c06bc + crc: 0x9ba8d665 type_id: 0x972bd7f2 full_name: "pci_get_device" } @@ -351037,7 +355151,7 @@ elf_symbol { name: "pci_get_domain_bus_and_slot" is_defined: true symbol_type: FUNCTION - crc: 0x2d3ee588 + crc: 0xafba3551 type_id: 0x9f97a24e full_name: "pci_get_domain_bus_and_slot" } @@ -351046,7 +355160,7 @@ elf_symbol { name: "pci_get_slot" is_defined: true symbol_type: FUNCTION - crc: 0xa327e3d1 + crc: 0x0d63ba7e type_id: 0x8e8c9c93 full_name: "pci_get_slot" } @@ -351055,7 +355169,7 @@ elf_symbol { name: "pci_host_probe" is_defined: true symbol_type: FUNCTION - crc: 0xd4d11d33 + crc: 0x4669af7a type_id: 0x93acae9b full_name: "pci_host_probe" } @@ -351064,7 +355178,7 @@ elf_symbol { name: "pci_iomap" is_defined: true symbol_type: FUNCTION - crc: 0x00337f4a + crc: 0x54bf12ba type_id: 0x537f4e77 full_name: "pci_iomap" } @@ -351073,7 +355187,7 @@ elf_symbol { name: "pci_iomap_range" is_defined: true symbol_type: FUNCTION - crc: 0xe386507b + crc: 0x4014a4b0 type_id: 0x537f83a2 full_name: "pci_iomap_range" } @@ -351082,7 +355196,7 @@ elf_symbol { name: "pci_iounmap" is_defined: true symbol_type: FUNCTION - crc: 0x62db1411 + crc: 0xf748ecf7 type_id: 0x14830594 full_name: "pci_iounmap" } @@ -351091,7 +355205,7 @@ elf_symbol { name: "pci_irq_get_affinity" is_defined: true symbol_type: FUNCTION - crc: 0xfaab7da4 + crc: 0x752c5425 type_id: 0x5c7d047e full_name: "pci_irq_get_affinity" } @@ -351100,7 +355214,7 @@ elf_symbol { name: "pci_irq_vector" is_defined: true symbol_type: FUNCTION - crc: 0x9d7b3b0b + crc: 0x67ea0fd9 type_id: 0x98ef5724 full_name: "pci_irq_vector" } @@ -351109,7 +355223,7 @@ elf_symbol { name: "pci_load_and_free_saved_state" is_defined: true symbol_type: FUNCTION - crc: 0xadc33afe + crc: 0xb6a6ecfc type_id: 0x99dbf8a8 full_name: "pci_load_and_free_saved_state" } @@ -351118,7 +355232,7 @@ elf_symbol { name: "pci_load_saved_state" is_defined: true symbol_type: FUNCTION - crc: 0x84acd5ac + crc: 0x970e9f16 type_id: 0x99daa974 full_name: "pci_load_saved_state" } @@ -351127,7 +355241,7 @@ elf_symbol { name: "pci_match_id" is_defined: true symbol_type: FUNCTION - crc: 0xd72ed3a9 + crc: 0x5db953a9 type_id: 0xaddc5fdc full_name: "pci_match_id" } @@ -351136,7 +355250,7 @@ elf_symbol { name: "pci_msi_create_irq_domain" is_defined: true symbol_type: FUNCTION - crc: 0x213aeb59 + crc: 0x11a5c85d type_id: 0x5e4ba6ce full_name: "pci_msi_create_irq_domain" } @@ -351145,7 +355259,7 @@ elf_symbol { name: "pci_msi_mask_irq" is_defined: true symbol_type: FUNCTION - crc: 0xebcadbf9 + crc: 0xe4825aff type_id: 0x1247424a full_name: "pci_msi_mask_irq" } @@ -351154,7 +355268,7 @@ elf_symbol { name: "pci_msi_unmask_irq" is_defined: true symbol_type: FUNCTION - crc: 0xb2e62aac + crc: 0x7b4e1883 type_id: 0x1247424a full_name: "pci_msi_unmask_irq" } @@ -351163,7 +355277,7 @@ elf_symbol { name: "pci_read_config_byte" is_defined: true symbol_type: FUNCTION - crc: 0x680bf247 + crc: 0x6ea2a488 type_id: 0x92ce2ae7 full_name: "pci_read_config_byte" } @@ -351172,7 +355286,7 @@ elf_symbol { name: "pci_read_config_dword" is_defined: true symbol_type: FUNCTION - crc: 0xb26c6ae0 + crc: 0xb1b5f11c type_id: 0x92c02fa2 full_name: "pci_read_config_dword" } @@ -351181,7 +355295,7 @@ elf_symbol { name: "pci_read_config_word" is_defined: true symbol_type: FUNCTION - crc: 0x8ef233e8 + crc: 0x984e7ccc type_id: 0x92c5abfb full_name: "pci_read_config_word" } @@ -351190,7 +355304,7 @@ elf_symbol { name: "pci_release_region" is_defined: true symbol_type: FUNCTION - crc: 0x7bfd0762 + crc: 0x41ce7c6a type_id: 0x157d734c full_name: "pci_release_region" } @@ -351199,7 +355313,7 @@ elf_symbol { name: "pci_release_regions" is_defined: true symbol_type: FUNCTION - crc: 0xaaf9600b + crc: 0x6a66ba5a type_id: 0x14e1f000 full_name: "pci_release_regions" } @@ -351208,7 +355322,7 @@ elf_symbol { name: "pci_release_selected_regions" is_defined: true symbol_type: FUNCTION - crc: 0x7b511a10 + crc: 0xedd30e6a type_id: 0x157d734c full_name: "pci_release_selected_regions" } @@ -351217,7 +355331,7 @@ elf_symbol { name: "pci_request_region" is_defined: true symbol_type: FUNCTION - crc: 0xf75edb2c + crc: 0x88ef30a0 type_id: 0x986a45dd full_name: "pci_request_region" } @@ -351226,7 +355340,7 @@ elf_symbol { name: "pci_request_selected_regions" is_defined: true symbol_type: FUNCTION - crc: 0x8c7960a9 + crc: 0x1e7f1b6a type_id: 0x986a45dd full_name: "pci_request_selected_regions" } @@ -351235,7 +355349,7 @@ elf_symbol { name: "pci_rescan_bus" is_defined: true symbol_type: FUNCTION - crc: 0x26ace8b3 + crc: 0xe71621cc type_id: 0xc61915b4 full_name: "pci_rescan_bus" } @@ -351244,7 +355358,7 @@ elf_symbol { name: "pci_restore_msi_state" is_defined: true symbol_type: FUNCTION - crc: 0x5d23cef9 + crc: 0xbae0604d type_id: 0x14e1f000 full_name: "pci_restore_msi_state" } @@ -351253,7 +355367,7 @@ elf_symbol { name: "pci_restore_state" is_defined: true symbol_type: FUNCTION - crc: 0xedadf6d0 + crc: 0x8c3f1eb4 type_id: 0x14e1f000 full_name: "pci_restore_state" } @@ -351262,7 +355376,7 @@ elf_symbol { name: "pci_save_state" is_defined: true symbol_type: FUNCTION - crc: 0x912fff9e + crc: 0xd2d9e77a type_id: 0x99f942bc full_name: "pci_save_state" } @@ -351271,7 +355385,7 @@ elf_symbol { name: "pci_set_master" is_defined: true symbol_type: FUNCTION - crc: 0x559d8825 + crc: 0x01e4e483 type_id: 0x14e1f000 full_name: "pci_set_master" } @@ -351280,7 +355394,7 @@ elf_symbol { name: "pci_set_power_state" is_defined: true symbol_type: FUNCTION - crc: 0xca984595 + crc: 0xec978dfa type_id: 0x998196f8 full_name: "pci_set_power_state" } @@ -351289,7 +355403,7 @@ elf_symbol { name: "pci_store_saved_state" is_defined: true symbol_type: FUNCTION - crc: 0xfd858b3c + crc: 0x7e38a82e type_id: 0x551d3dad full_name: "pci_store_saved_state" } @@ -351298,7 +355412,7 @@ elf_symbol { name: "pci_unregister_driver" is_defined: true symbol_type: FUNCTION - crc: 0xa6fbc4b7 + crc: 0x74225c50 type_id: 0x1a0ce609 full_name: "pci_unregister_driver" } @@ -351307,7 +355421,7 @@ elf_symbol { name: "pci_vfs_assigned" is_defined: true symbol_type: FUNCTION - crc: 0xa5739034 + crc: 0xe9c1dce3 type_id: 0x99f942bc full_name: "pci_vfs_assigned" } @@ -351316,7 +355430,7 @@ elf_symbol { name: "pci_wake_from_d3" is_defined: true symbol_type: FUNCTION - crc: 0xc0c35fe6 + crc: 0x99758d4f type_id: 0x984cbfc3 full_name: "pci_wake_from_d3" } @@ -351325,7 +355439,7 @@ elf_symbol { name: "pci_walk_bus" is_defined: true symbol_type: FUNCTION - crc: 0x8b2058ee + crc: 0x05e07bd6 type_id: 0x18efced4 full_name: "pci_walk_bus" } @@ -351334,7 +355448,7 @@ elf_symbol { name: "pci_write_config_dword" is_defined: true symbol_type: FUNCTION - crc: 0x03627375 + crc: 0x8c15e6fc type_id: 0x92fc5924 full_name: "pci_write_config_dword" } @@ -351343,7 +355457,7 @@ elf_symbol { name: "pci_write_config_word" is_defined: true symbol_type: FUNCTION - crc: 0x2a3c0eaf + crc: 0x530300e5 type_id: 0x92ea4841 full_name: "pci_write_config_word" } @@ -351352,7 +355466,7 @@ elf_symbol { name: "pcie_capability_clear_and_set_word" is_defined: true symbol_type: FUNCTION - crc: 0xf6b53779 + crc: 0xdfc9b95d type_id: 0x9843d7a9 full_name: "pcie_capability_clear_and_set_word" } @@ -351361,7 +355475,7 @@ elf_symbol { name: "pcie_capability_read_word" is_defined: true symbol_type: FUNCTION - crc: 0x29255283 + crc: 0x28097628 type_id: 0x986e7125 full_name: "pcie_capability_read_word" } @@ -351370,7 +355484,7 @@ elf_symbol { name: "pcie_capability_write_word" is_defined: true symbol_type: FUNCTION - crc: 0x2cd5dff9 + crc: 0x0c6749a0 type_id: 0x9841929f full_name: "pcie_capability_write_word" } @@ -351397,7 +355511,7 @@ elf_symbol { name: "percpu_down_write" is_defined: true symbol_type: FUNCTION - crc: 0xec7fd84f + crc: 0x08013fd3 type_id: 0x14f50ddf full_name: "percpu_down_write" } @@ -351406,7 +355520,7 @@ elf_symbol { name: "percpu_free_rwsem" is_defined: true symbol_type: FUNCTION - crc: 0xc6671e0a + crc: 0x7fecee28 type_id: 0x14f50ddf full_name: "percpu_free_rwsem" } @@ -351415,7 +355529,7 @@ elf_symbol { name: "percpu_up_write" is_defined: true symbol_type: FUNCTION - crc: 0xb720a1c4 + crc: 0x89d6a96c type_id: 0x14f50ddf full_name: "percpu_up_write" } @@ -351424,7 +355538,7 @@ elf_symbol { name: "perf_aux_output_begin" is_defined: true symbol_type: FUNCTION - crc: 0xe206c4a5 + crc: 0x25c3661b type_id: 0x5448323c full_name: "perf_aux_output_begin" } @@ -351433,7 +355547,7 @@ elf_symbol { name: "perf_aux_output_end" is_defined: true symbol_type: FUNCTION - crc: 0x4321c0eb + crc: 0x02809cd8 type_id: 0x12fc3ff3 full_name: "perf_aux_output_end" } @@ -351442,7 +355556,7 @@ elf_symbol { name: "perf_aux_output_flag" is_defined: true symbol_type: FUNCTION - crc: 0x83f47bd8 + crc: 0xed193aef type_id: 0x107966af full_name: "perf_aux_output_flag" } @@ -351451,7 +355565,7 @@ elf_symbol { name: "perf_event_addr_filters_sync" is_defined: true symbol_type: FUNCTION - crc: 0x59573bf1 + crc: 0x93b3ad45 type_id: 0x17ebd264 full_name: "perf_event_addr_filters_sync" } @@ -351460,7 +355574,7 @@ elf_symbol { name: "perf_event_create_kernel_counter" is_defined: true symbol_type: FUNCTION - crc: 0xc2113692 + crc: 0xa1bcdd7b type_id: 0x86d5804d full_name: "perf_event_create_kernel_counter" } @@ -351469,7 +355583,7 @@ elf_symbol { name: "perf_event_disable" is_defined: true symbol_type: FUNCTION - crc: 0x3ccd02ed + crc: 0x38f8d815 type_id: 0x17ebd264 full_name: "perf_event_disable" } @@ -351478,7 +355592,7 @@ elf_symbol { name: "perf_event_enable" is_defined: true symbol_type: FUNCTION - crc: 0x3027d22d + crc: 0xa60542e8 type_id: 0x17ebd264 full_name: "perf_event_enable" } @@ -351487,7 +355601,7 @@ elf_symbol { name: "perf_event_pause" is_defined: true symbol_type: FUNCTION - crc: 0xc7c4f078 + crc: 0x2e5d3596 type_id: 0x511dadc3 full_name: "perf_event_pause" } @@ -351496,7 +355610,7 @@ elf_symbol { name: "perf_event_read_local" is_defined: true symbol_type: FUNCTION - crc: 0x45229466 + crc: 0xc90c81cb type_id: 0x9a403d53 full_name: "perf_event_read_local" } @@ -351505,7 +355619,7 @@ elf_symbol { name: "perf_event_read_value" is_defined: true symbol_type: FUNCTION - crc: 0xb2807e23 + crc: 0xd0936e3c type_id: 0x501bb554 full_name: "perf_event_read_value" } @@ -351514,7 +355628,7 @@ elf_symbol { name: "perf_event_release_kernel" is_defined: true symbol_type: FUNCTION - crc: 0x5e6814d5 + crc: 0xd39f6c0c type_id: 0x9af360d8 full_name: "perf_event_release_kernel" } @@ -351523,7 +355637,7 @@ elf_symbol { name: "perf_event_update_userpage" is_defined: true symbol_type: FUNCTION - crc: 0x5429ff13 + crc: 0x577ef66d type_id: 0x17ebd264 full_name: "perf_event_update_userpage" } @@ -351532,7 +355646,7 @@ elf_symbol { name: "perf_get_aux" is_defined: true symbol_type: FUNCTION - crc: 0x3aac357f + crc: 0x2c05327b type_id: 0x543f0a03 full_name: "perf_get_aux" } @@ -351541,7 +355655,7 @@ elf_symbol { name: "perf_pmu_migrate_context" is_defined: true symbol_type: FUNCTION - crc: 0x22ab48dd + crc: 0x77736dc2 type_id: 0x1fd9a8d3 full_name: "perf_pmu_migrate_context" } @@ -351550,7 +355664,7 @@ elf_symbol { name: "perf_pmu_register" is_defined: true symbol_type: FUNCTION - crc: 0x9ed0ace7 + crc: 0x5a3e20fa type_id: 0x93a5dbf7 full_name: "perf_pmu_register" } @@ -351559,7 +355673,7 @@ elf_symbol { name: "perf_pmu_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xdb0c039d + crc: 0x3ed84564 type_id: 0x1e5ce3ab full_name: "perf_pmu_unregister" } @@ -351577,7 +355691,7 @@ elf_symbol { name: "perf_trace_run_bpf_submit" is_defined: true symbol_type: FUNCTION - crc: 0x379a54a1 + crc: 0xe1d6bdc0 type_id: 0x1732fd5e full_name: "perf_trace_run_bpf_submit" } @@ -351595,7 +355709,7 @@ elf_symbol { name: "phy_attached_info" is_defined: true symbol_type: FUNCTION - crc: 0xa063773d + crc: 0x376e19a4 type_id: 0x1cc5f9b2 full_name: "phy_attached_info" } @@ -351604,7 +355718,7 @@ elf_symbol { name: "phy_calibrate" is_defined: true symbol_type: FUNCTION - crc: 0x8bb6460a + crc: 0xd0246c10 type_id: 0x9f7fc723 full_name: "phy_calibrate" } @@ -351613,7 +355727,7 @@ elf_symbol { name: "phy_configure" is_defined: true symbol_type: FUNCTION - crc: 0x9fba8e1c + crc: 0x07858e00 type_id: 0x9faf6f77 full_name: "phy_configure" } @@ -351622,7 +355736,7 @@ elf_symbol { name: "phy_drivers_register" is_defined: true symbol_type: FUNCTION - crc: 0x4b66d67a + crc: 0x8916959f type_id: 0x9c907da6 full_name: "phy_drivers_register" } @@ -351631,7 +355745,7 @@ elf_symbol { name: "phy_drivers_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x53d81140 + crc: 0x31c1fb7a type_id: 0x118a06ed full_name: "phy_drivers_unregister" } @@ -351640,7 +355754,7 @@ elf_symbol { name: "phy_error" is_defined: true symbol_type: FUNCTION - crc: 0xddd88ed1 + crc: 0x0720637a type_id: 0x1cc5f9b2 full_name: "phy_error" } @@ -351649,7 +355763,7 @@ elf_symbol { name: "phy_ethtool_get_wol" is_defined: true symbol_type: FUNCTION - crc: 0xdaf0ea6b + crc: 0x34436413 type_id: 0x1c416a95 full_name: "phy_ethtool_get_wol" } @@ -351658,7 +355772,7 @@ elf_symbol { name: "phy_ethtool_set_wol" is_defined: true symbol_type: FUNCTION - crc: 0x1a06b88c + crc: 0x2e20fa1f type_id: 0x9159d829 full_name: "phy_ethtool_set_wol" } @@ -351667,7 +355781,7 @@ elf_symbol { name: "phy_exit" is_defined: true symbol_type: FUNCTION - crc: 0x73f7c4ac + crc: 0xfb742612 type_id: 0x9f7fc723 full_name: "phy_exit" } @@ -351676,7 +355790,7 @@ elf_symbol { name: "phy_init" is_defined: true symbol_type: FUNCTION - crc: 0x3d5064e9 + crc: 0x7b15286a type_id: 0x9f7fc723 full_name: "phy_init" } @@ -351685,7 +355799,7 @@ elf_symbol { name: "phy_init_eee" is_defined: true symbol_type: FUNCTION - crc: 0xf21da6cf + crc: 0x16cffc25 type_id: 0x9068b671 full_name: "phy_init_eee" } @@ -351694,7 +355808,7 @@ elf_symbol { name: "phy_init_hw" is_defined: true symbol_type: FUNCTION - crc: 0xec0e18ca + crc: 0x3311b085 type_id: 0x91dd4b0e full_name: "phy_init_hw" } @@ -351703,7 +355817,7 @@ elf_symbol { name: "phy_mac_interrupt" is_defined: true symbol_type: FUNCTION - crc: 0xa1a874ab + crc: 0x3b664848 type_id: 0x1cc5f9b2 full_name: "phy_mac_interrupt" } @@ -351712,7 +355826,7 @@ elf_symbol { name: "phy_modify" is_defined: true symbol_type: FUNCTION - crc: 0x0967af99 + crc: 0xee66c880 type_id: 0x92df7dfb full_name: "phy_modify" } @@ -351721,7 +355835,7 @@ elf_symbol { name: "phy_modify_mmd" is_defined: true symbol_type: FUNCTION - crc: 0xe6b49e54 + crc: 0x3dd6277e type_id: 0x9071eb2d full_name: "phy_modify_mmd" } @@ -351730,7 +355844,7 @@ elf_symbol { name: "phy_power_off" is_defined: true symbol_type: FUNCTION - crc: 0x7e5c11d4 + crc: 0xf83e7dbb type_id: 0x9f7fc723 full_name: "phy_power_off" } @@ -351739,7 +355853,7 @@ elf_symbol { name: "phy_power_on" is_defined: true symbol_type: FUNCTION - crc: 0xa1926bab + crc: 0xf6026e2d type_id: 0x9f7fc723 full_name: "phy_power_on" } @@ -351748,7 +355862,7 @@ elf_symbol { name: "phy_read_mmd" is_defined: true symbol_type: FUNCTION - crc: 0x371662f5 + crc: 0xbc88d3b4 type_id: 0x90738a48 full_name: "phy_read_mmd" } @@ -351757,7 +355871,7 @@ elf_symbol { name: "phy_resolve_aneg_linkmode" is_defined: true symbol_type: FUNCTION - crc: 0x6219d28b + crc: 0x27b5a320 type_id: 0x1cc5f9b2 full_name: "phy_resolve_aneg_linkmode" } @@ -351766,7 +355880,7 @@ elf_symbol { name: "phy_set_mode_ext" is_defined: true symbol_type: FUNCTION - crc: 0x2b18ae94 + crc: 0xb834b02e type_id: 0x9ccae70d full_name: "phy_set_mode_ext" } @@ -351775,7 +355889,7 @@ elf_symbol { name: "phy_start_aneg" is_defined: true symbol_type: FUNCTION - crc: 0x7b9baf2d + crc: 0xef7c11fd type_id: 0x91dd4b0e full_name: "phy_start_aneg" } @@ -351784,7 +355898,7 @@ elf_symbol { name: "phy_trigger_machine" is_defined: true symbol_type: FUNCTION - crc: 0x3c3d1f33 + crc: 0xb0dd8ea1 type_id: 0x1cc5f9b2 full_name: "phy_trigger_machine" } @@ -351793,7 +355907,7 @@ elf_symbol { name: "phy_write_mmd" is_defined: true symbol_type: FUNCTION - crc: 0x5d5152d1 + crc: 0xb21500f5 type_id: 0x9071cf7e full_name: "phy_write_mmd" } @@ -351802,7 +355916,7 @@ elf_symbol { name: "phylink_connect_phy" is_defined: true symbol_type: FUNCTION - crc: 0x3673f10a + crc: 0xc71dcf6d type_id: 0x92ed801d full_name: "phylink_connect_phy" } @@ -351811,7 +355925,7 @@ elf_symbol { name: "phylink_create" is_defined: true symbol_type: FUNCTION - crc: 0xe06d6c1b + crc: 0xbdd32f47 type_id: 0xe2c8401b full_name: "phylink_create" } @@ -351919,7 +356033,7 @@ elf_symbol { name: "phylink_fwnode_phy_connect" is_defined: true symbol_type: FUNCTION - crc: 0xb008ba6a + crc: 0xf7e1de5f type_id: 0x92085a78 full_name: "phylink_fwnode_phy_connect" } @@ -351928,7 +356042,7 @@ elf_symbol { name: "phylink_generic_validate" is_defined: true symbol_type: FUNCTION - crc: 0x8d909b75 + crc: 0xda4f7c93 type_id: 0x1dc83ab4 full_name: "phylink_generic_validate" } @@ -351982,7 +356096,7 @@ elf_symbol { name: "phylink_of_phy_connect" is_defined: true symbol_type: FUNCTION - crc: 0x3d047a23 + crc: 0x5c801430 type_id: 0x92cbd49b full_name: "phylink_of_phy_connect" } @@ -352054,7 +356168,7 @@ elf_symbol { name: "pick_highest_pushable_task" is_defined: true symbol_type: FUNCTION - crc: 0xac896646 + crc: 0x5fea24c7 type_id: 0x7151826e full_name: "pick_highest_pushable_task" } @@ -352063,7 +356177,7 @@ elf_symbol { name: "pick_migrate_task" is_defined: true symbol_type: FUNCTION - crc: 0xd025dfdc + crc: 0xfe263581 type_id: 0x70cd0122 full_name: "pick_migrate_task" } @@ -352072,7 +356186,7 @@ elf_symbol { name: "pid_nr_ns" is_defined: true symbol_type: FUNCTION - crc: 0x4367d105 + crc: 0x203734c9 type_id: 0xd6b27f6b full_name: "pid_nr_ns" } @@ -352081,7 +356195,7 @@ elf_symbol { name: "pid_task" is_defined: true symbol_type: FUNCTION - crc: 0x584c78ea + crc: 0xc2c866b1 type_id: 0x7f0f4bf3 full_name: "pid_task" } @@ -352090,7 +356204,7 @@ elf_symbol { name: "pin_get_name" is_defined: true symbol_type: FUNCTION - crc: 0x99c4a091 + crc: 0x480c93df type_id: 0x95876807 full_name: "pin_get_name" } @@ -352099,7 +356213,7 @@ elf_symbol { name: "pin_user_pages" is_defined: true symbol_type: FUNCTION - crc: 0x45600e86 + crc: 0x7162ac2a type_id: 0xab21f8b5 full_name: "pin_user_pages" } @@ -352108,7 +356222,7 @@ elf_symbol { name: "pin_user_pages_fast" is_defined: true symbol_type: FUNCTION - crc: 0x9e35ea7d + crc: 0x51051409 type_id: 0x90d074d8 full_name: "pin_user_pages_fast" } @@ -352117,7 +356231,7 @@ elf_symbol { name: "pin_user_pages_remote" is_defined: true symbol_type: FUNCTION - crc: 0x7ca3932e + crc: 0xf35990aa type_id: 0xa12d9647 full_name: "pin_user_pages_remote" } @@ -352126,7 +356240,7 @@ elf_symbol { name: "pinconf_generic_dt_free_map" is_defined: true symbol_type: FUNCTION - crc: 0x64100bff + crc: 0x991b864a type_id: 0x168f342d full_name: "pinconf_generic_dt_free_map" } @@ -352135,7 +356249,7 @@ elf_symbol { name: "pinconf_generic_dt_node_to_map" is_defined: true symbol_type: FUNCTION - crc: 0x5c39cdfc + crc: 0xfe5a8d89 type_id: 0x9b85c911 full_name: "pinconf_generic_dt_node_to_map" } @@ -352144,7 +356258,7 @@ elf_symbol { name: "pinctrl_add_gpio_range" is_defined: true symbol_type: FUNCTION - crc: 0xbc34f894 + crc: 0x40863b3c type_id: 0x165d386a full_name: "pinctrl_add_gpio_range" } @@ -352153,7 +356267,7 @@ elf_symbol { name: "pinctrl_dev_get_drvdata" is_defined: true symbol_type: FUNCTION - crc: 0x80f2d635 + crc: 0x66199472 type_id: 0x5043dbcd full_name: "pinctrl_dev_get_drvdata" } @@ -352162,7 +356276,7 @@ elf_symbol { name: "pinctrl_enable" is_defined: true symbol_type: FUNCTION - crc: 0x0b0694ee + crc: 0x2ce3a528 type_id: 0x9b558913 full_name: "pinctrl_enable" } @@ -352171,7 +356285,7 @@ elf_symbol { name: "pinctrl_force_default" is_defined: true symbol_type: FUNCTION - crc: 0x854f0004 + crc: 0xdb98b6b5 type_id: 0x9b558913 full_name: "pinctrl_force_default" } @@ -352180,7 +356294,7 @@ elf_symbol { name: "pinctrl_force_sleep" is_defined: true symbol_type: FUNCTION - crc: 0x986ad899 + crc: 0x49504fa5 type_id: 0x9b558913 full_name: "pinctrl_force_sleep" } @@ -352189,7 +356303,7 @@ elf_symbol { name: "pinctrl_generic_add_group" is_defined: true symbol_type: FUNCTION - crc: 0x4176a5c2 + crc: 0xf4a4f079 type_id: 0x9ba88768 full_name: "pinctrl_generic_add_group" } @@ -352198,7 +356312,7 @@ elf_symbol { name: "pinctrl_generic_get_group_count" is_defined: true symbol_type: FUNCTION - crc: 0x3e506cec + crc: 0xcfb35d00 type_id: 0x9b558913 full_name: "pinctrl_generic_get_group_count" } @@ -352207,7 +356321,7 @@ elf_symbol { name: "pinctrl_generic_get_group_name" is_defined: true symbol_type: FUNCTION - crc: 0x0f521873 + crc: 0xb58c5645 type_id: 0x95876807 full_name: "pinctrl_generic_get_group_name" } @@ -352216,7 +356330,7 @@ elf_symbol { name: "pinctrl_generic_get_group_pins" is_defined: true symbol_type: FUNCTION - crc: 0x573bf30d + crc: 0x034eb0af type_id: 0x9a42cb81 full_name: "pinctrl_generic_get_group_pins" } @@ -352225,7 +356339,7 @@ elf_symbol { name: "pinctrl_generic_remove_group" is_defined: true symbol_type: FUNCTION - crc: 0xaae15b90 + crc: 0x0c7ade62 type_id: 0x9a439c8b full_name: "pinctrl_generic_remove_group" } @@ -352234,7 +356348,7 @@ elf_symbol { name: "pinctrl_get" is_defined: true symbol_type: FUNCTION - crc: 0xd03b3ea2 + crc: 0x17bb374e type_id: 0x4df5d8bb full_name: "pinctrl_get" } @@ -352243,7 +356357,7 @@ elf_symbol { name: "pinctrl_lookup_state" is_defined: true symbol_type: FUNCTION - crc: 0x709657ab + crc: 0xc3da7b72 type_id: 0x89d1e10c full_name: "pinctrl_lookup_state" } @@ -352252,7 +356366,7 @@ elf_symbol { name: "pinctrl_pm_select_default_state" is_defined: true symbol_type: FUNCTION - crc: 0x64e2ff0c + crc: 0x630b6ee3 type_id: 0x9d16dd74 full_name: "pinctrl_pm_select_default_state" } @@ -352261,7 +356375,7 @@ elf_symbol { name: "pinctrl_pm_select_idle_state" is_defined: true symbol_type: FUNCTION - crc: 0x3ef55718 + crc: 0x717c611d type_id: 0x9d16dd74 full_name: "pinctrl_pm_select_idle_state" } @@ -352270,7 +356384,7 @@ elf_symbol { name: "pinctrl_pm_select_sleep_state" is_defined: true symbol_type: FUNCTION - crc: 0x8f17a71a + crc: 0x98654726 type_id: 0x9d16dd74 full_name: "pinctrl_pm_select_sleep_state" } @@ -352279,7 +356393,7 @@ elf_symbol { name: "pinctrl_put" is_defined: true symbol_type: FUNCTION - crc: 0x6a0426bd + crc: 0x91c8a16a type_id: 0x1ad9d0a2 full_name: "pinctrl_put" } @@ -352288,7 +356402,7 @@ elf_symbol { name: "pinctrl_remove_gpio_range" is_defined: true symbol_type: FUNCTION - crc: 0xe7277cde + crc: 0x8dac6c83 type_id: 0x165d386a full_name: "pinctrl_remove_gpio_range" } @@ -352297,7 +356411,7 @@ elf_symbol { name: "pinctrl_select_default_state" is_defined: true symbol_type: FUNCTION - crc: 0xd60361a8 + crc: 0x3f9ee25a type_id: 0x9d16dd74 full_name: "pinctrl_select_default_state" } @@ -352306,7 +356420,7 @@ elf_symbol { name: "pinctrl_select_state" is_defined: true symbol_type: FUNCTION - crc: 0x5618fb99 + crc: 0xd3cb05f5 type_id: 0x97287db7 full_name: "pinctrl_select_state" } @@ -352315,7 +356429,7 @@ elf_symbol { name: "pinctrl_utils_free_map" is_defined: true symbol_type: FUNCTION - crc: 0x2b400643 + crc: 0x570b77e0 type_id: 0x168f342d full_name: "pinctrl_utils_free_map" } @@ -352324,7 +356438,7 @@ elf_symbol { name: "pipe_lock" is_defined: true symbol_type: FUNCTION - crc: 0xfffbe5c6 + crc: 0x2b14cdc1 type_id: 0x1256dc52 full_name: "pipe_lock" } @@ -352333,7 +356447,7 @@ elf_symbol { name: "pipe_unlock" is_defined: true symbol_type: FUNCTION - crc: 0x86a091c5 + crc: 0xe051efb6 type_id: 0x1256dc52 full_name: "pipe_unlock" } @@ -352342,7 +356456,7 @@ elf_symbol { name: "pktgen_xfrm_outer_mode_output" is_defined: true symbol_type: FUNCTION - crc: 0x735448ff + crc: 0x8050f09e type_id: 0x9cd82046 full_name: "pktgen_xfrm_outer_mode_output" } @@ -352351,7 +356465,7 @@ elf_symbol { name: "platform_bus" is_defined: true symbol_type: OBJECT - crc: 0x6e75b9c5 + crc: 0xe8a2c32e type_id: 0x23230326 full_name: "platform_bus" } @@ -352360,7 +356474,7 @@ elf_symbol { name: "platform_bus_type" is_defined: true symbol_type: OBJECT - crc: 0xa689b378 + crc: 0x3e70fb40 type_id: 0x257935aa full_name: "platform_bus_type" } @@ -352369,7 +356483,7 @@ elf_symbol { name: "platform_device_add" is_defined: true symbol_type: FUNCTION - crc: 0x69832282 + crc: 0xc3605e1c type_id: 0x924d155a full_name: "platform_device_add" } @@ -352378,7 +356492,7 @@ elf_symbol { name: "platform_device_add_data" is_defined: true symbol_type: FUNCTION - crc: 0xf20b6bbc + crc: 0x61095852 type_id: 0x92946457 full_name: "platform_device_add_data" } @@ -352387,7 +356501,7 @@ elf_symbol { name: "platform_device_add_resources" is_defined: true symbol_type: FUNCTION - crc: 0xabd7deae + crc: 0xce377c86 type_id: 0x929bf9d1 full_name: "platform_device_add_resources" } @@ -352396,7 +356510,7 @@ elf_symbol { name: "platform_device_alloc" is_defined: true symbol_type: FUNCTION - crc: 0xcb189fb9 + crc: 0x87e0c9b4 type_id: 0xc748ecf5 full_name: "platform_device_alloc" } @@ -352405,7 +356519,7 @@ elf_symbol { name: "platform_device_del" is_defined: true symbol_type: FUNCTION - crc: 0x7f0e3bc2 + crc: 0x567e4e64 type_id: 0x1f55a7e6 full_name: "platform_device_del" } @@ -352414,7 +356528,7 @@ elf_symbol { name: "platform_device_put" is_defined: true symbol_type: FUNCTION - crc: 0x1457cb11 + crc: 0xe0ffd186 type_id: 0x1f55a7e6 full_name: "platform_device_put" } @@ -352423,7 +356537,7 @@ elf_symbol { name: "platform_device_register" is_defined: true symbol_type: FUNCTION - crc: 0x21520079 + crc: 0xc1dc9879 type_id: 0x924d155a full_name: "platform_device_register" } @@ -352432,7 +356546,7 @@ elf_symbol { name: "platform_device_register_full" is_defined: true symbol_type: FUNCTION - crc: 0x9d8e3943 + crc: 0xb4e1cb8c type_id: 0xc5663ffe full_name: "platform_device_register_full" } @@ -352441,7 +356555,7 @@ elf_symbol { name: "platform_device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x2c24f041 + crc: 0x732a780c type_id: 0x1f55a7e6 full_name: "platform_device_unregister" } @@ -352450,7 +356564,7 @@ elf_symbol { name: "platform_driver_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x198cfe1d + crc: 0x138be4c4 type_id: 0x1654b7a0 full_name: "platform_driver_unregister" } @@ -352459,7 +356573,7 @@ elf_symbol { name: "platform_find_device_by_driver" is_defined: true symbol_type: FUNCTION - crc: 0x4163c267 + crc: 0xa7096e1e type_id: 0xad77a8f0 full_name: "platform_find_device_by_driver" } @@ -352468,7 +356582,7 @@ elf_symbol { name: "platform_get_irq" is_defined: true symbol_type: FUNCTION - crc: 0x92ea27ab + crc: 0x12a9c307 type_id: 0x935b00c2 full_name: "platform_get_irq" } @@ -352477,7 +356591,7 @@ elf_symbol { name: "platform_get_irq_byname" is_defined: true symbol_type: FUNCTION - crc: 0x62624ccb + crc: 0xc90c1257 type_id: 0x92b5578e full_name: "platform_get_irq_byname" } @@ -352486,7 +356600,7 @@ elf_symbol { name: "platform_get_irq_byname_optional" is_defined: true symbol_type: FUNCTION - crc: 0x2f386af3 + crc: 0x3b2198e1 type_id: 0x92b5578e full_name: "platform_get_irq_byname_optional" } @@ -352495,7 +356609,7 @@ elf_symbol { name: "platform_get_irq_optional" is_defined: true symbol_type: FUNCTION - crc: 0x81f621c4 + crc: 0x3fe974c2 type_id: 0x935b00c2 full_name: "platform_get_irq_optional" } @@ -352504,7 +356618,7 @@ elf_symbol { name: "platform_get_resource" is_defined: true symbol_type: FUNCTION - crc: 0xb2905df6 + crc: 0xff127e25 type_id: 0xcf28148d full_name: "platform_get_resource" } @@ -352513,7 +356627,7 @@ elf_symbol { name: "platform_get_resource_byname" is_defined: true symbol_type: FUNCTION - crc: 0x25d83c68 + crc: 0xb83c05fc type_id: 0xcf36f1f9 full_name: "platform_get_resource_byname" } @@ -352522,7 +356636,7 @@ elf_symbol { name: "platform_irq_count" is_defined: true symbol_type: FUNCTION - crc: 0x120cceb0 + crc: 0x2de25454 type_id: 0x924d155a full_name: "platform_irq_count" } @@ -352531,7 +356645,7 @@ elf_symbol { name: "platform_irqchip_probe" is_defined: true symbol_type: FUNCTION - crc: 0xed96f772 + crc: 0x911b3e3f type_id: 0x924d155a full_name: "platform_irqchip_probe" } @@ -352540,7 +356654,7 @@ elf_symbol { name: "platform_msi_domain_alloc_irqs" is_defined: true symbol_type: FUNCTION - crc: 0x7519aca2 + crc: 0xdd739b4a type_id: 0x9c3052e3 full_name: "platform_msi_domain_alloc_irqs" } @@ -352549,7 +356663,7 @@ elf_symbol { name: "platform_msi_domain_free_irqs" is_defined: true symbol_type: FUNCTION - crc: 0x8e23b214 + crc: 0xd01f0a41 type_id: 0x100e6fc8 full_name: "platform_msi_domain_free_irqs" } @@ -352558,7 +356672,7 @@ elf_symbol { name: "pm_clk_add" is_defined: true symbol_type: FUNCTION - crc: 0x342a7602 + crc: 0x60b2063c type_id: 0x9dee9fa0 full_name: "pm_clk_add" } @@ -352567,7 +356681,7 @@ elf_symbol { name: "pm_clk_create" is_defined: true symbol_type: FUNCTION - crc: 0x93008046 + crc: 0x55fe98ba type_id: 0x9d16dd74 full_name: "pm_clk_create" } @@ -352576,7 +356690,7 @@ elf_symbol { name: "pm_clk_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x807b218c + crc: 0x42c704a2 type_id: 0x100e6fc8 full_name: "pm_clk_destroy" } @@ -352585,7 +356699,7 @@ elf_symbol { name: "pm_clk_resume" is_defined: true symbol_type: FUNCTION - crc: 0xe7ecc530 + crc: 0x08697439 type_id: 0x9d16dd74 full_name: "pm_clk_resume" } @@ -352594,7 +356708,7 @@ elf_symbol { name: "pm_clk_suspend" is_defined: true symbol_type: FUNCTION - crc: 0xad778d7b + crc: 0x4c847e5d type_id: 0x9d16dd74 full_name: "pm_clk_suspend" } @@ -352603,7 +356717,7 @@ elf_symbol { name: "pm_generic_resume" is_defined: true symbol_type: FUNCTION - crc: 0xebe9de18 + crc: 0x33f61f96 type_id: 0x9d16dd74 full_name: "pm_generic_resume" } @@ -352612,7 +356726,7 @@ elf_symbol { name: "pm_generic_runtime_resume" is_defined: true symbol_type: FUNCTION - crc: 0x720e6d15 + crc: 0xdd14a895 type_id: 0x9d16dd74 full_name: "pm_generic_runtime_resume" } @@ -352621,7 +356735,7 @@ elf_symbol { name: "pm_generic_runtime_suspend" is_defined: true symbol_type: FUNCTION - crc: 0x84b65c8d + crc: 0xdc036b40 type_id: 0x9d16dd74 full_name: "pm_generic_runtime_suspend" } @@ -352630,7 +356744,7 @@ elf_symbol { name: "pm_generic_suspend" is_defined: true symbol_type: FUNCTION - crc: 0xfa9ec783 + crc: 0x45e4d84d type_id: 0x9d16dd74 full_name: "pm_generic_suspend" } @@ -352639,7 +356753,7 @@ elf_symbol { name: "pm_genpd_add_subdomain" is_defined: true symbol_type: FUNCTION - crc: 0x776eca91 + crc: 0x77104cd0 type_id: 0x9c3ea49d full_name: "pm_genpd_add_subdomain" } @@ -352648,7 +356762,7 @@ elf_symbol { name: "pm_genpd_init" is_defined: true symbol_type: FUNCTION - crc: 0xafdea1ec + crc: 0xf0e4d308 type_id: 0x9c571eea full_name: "pm_genpd_init" } @@ -352657,7 +356771,7 @@ elf_symbol { name: "pm_genpd_remove" is_defined: true symbol_type: FUNCTION - crc: 0xbff69db5 + crc: 0x3564eacd type_id: 0x9c24e4e1 full_name: "pm_genpd_remove" } @@ -352666,7 +356780,7 @@ elf_symbol { name: "pm_genpd_remove_subdomain" is_defined: true symbol_type: FUNCTION - crc: 0xdd4e78d9 + crc: 0x30addca2 type_id: 0x9c3ea49d full_name: "pm_genpd_remove_subdomain" } @@ -352693,7 +356807,7 @@ elf_symbol { name: "pm_relax" is_defined: true symbol_type: FUNCTION - crc: 0x41006684 + crc: 0x8b11e3ee type_id: 0x100e6fc8 full_name: "pm_relax" } @@ -352702,7 +356816,7 @@ elf_symbol { name: "pm_runtime_allow" is_defined: true symbol_type: FUNCTION - crc: 0x81af55cc + crc: 0x6cb987c3 type_id: 0x100e6fc8 full_name: "pm_runtime_allow" } @@ -352711,7 +356825,7 @@ elf_symbol { name: "pm_runtime_autosuspend_expiration" is_defined: true symbol_type: FUNCTION - crc: 0x6db9de0c + crc: 0x19c06102 type_id: 0x574ded10 full_name: "pm_runtime_autosuspend_expiration" } @@ -352720,7 +356834,7 @@ elf_symbol { name: "pm_runtime_barrier" is_defined: true symbol_type: FUNCTION - crc: 0xa80aef9e + crc: 0x10ca4dba type_id: 0x9d16dd74 full_name: "pm_runtime_barrier" } @@ -352729,7 +356843,7 @@ elf_symbol { name: "pm_runtime_enable" is_defined: true symbol_type: FUNCTION - crc: 0x8d315d88 + crc: 0x44aafb08 type_id: 0x100e6fc8 full_name: "pm_runtime_enable" } @@ -352738,7 +356852,7 @@ elf_symbol { name: "pm_runtime_forbid" is_defined: true symbol_type: FUNCTION - crc: 0xe0d77c36 + crc: 0x7f6fae1d type_id: 0x100e6fc8 full_name: "pm_runtime_forbid" } @@ -352747,7 +356861,7 @@ elf_symbol { name: "pm_runtime_force_resume" is_defined: true symbol_type: FUNCTION - crc: 0x866d1739 + crc: 0xc33f6bc7 type_id: 0x9d16dd74 full_name: "pm_runtime_force_resume" } @@ -352756,16 +356870,25 @@ elf_symbol { name: "pm_runtime_force_suspend" is_defined: true symbol_type: FUNCTION - crc: 0xd2e05095 + crc: 0x902fee31 type_id: 0x9d16dd74 full_name: "pm_runtime_force_suspend" } +elf_symbol { + id: 0x322949f1 + name: "pm_runtime_get_if_active" + is_defined: true + symbol_type: FUNCTION + crc: 0x8ca898f3 + type_id: 0x9ca3200b + full_name: "pm_runtime_get_if_active" +} elf_symbol { id: 0x878b97bb name: "pm_runtime_irq_safe" is_defined: true symbol_type: FUNCTION - crc: 0xd470ce7d + crc: 0xb6041974 type_id: 0x100e6fc8 full_name: "pm_runtime_irq_safe" } @@ -352774,7 +356897,7 @@ elf_symbol { name: "pm_runtime_no_callbacks" is_defined: true symbol_type: FUNCTION - crc: 0xbfa1541b + crc: 0x0ccf8b24 type_id: 0x100e6fc8 full_name: "pm_runtime_no_callbacks" } @@ -352783,7 +356906,7 @@ elf_symbol { name: "pm_runtime_set_autosuspend_delay" is_defined: true symbol_type: FUNCTION - crc: 0xa9f4c874 + crc: 0xde67eabe type_id: 0x1192ec84 full_name: "pm_runtime_set_autosuspend_delay" } @@ -352792,7 +356915,7 @@ elf_symbol { name: "pm_stay_awake" is_defined: true symbol_type: FUNCTION - crc: 0xfa39e463 + crc: 0xf136eed7 type_id: 0x100e6fc8 full_name: "pm_stay_awake" } @@ -352810,7 +356933,7 @@ elf_symbol { name: "pm_wakeup_dev_event" is_defined: true symbol_type: FUNCTION - crc: 0x86e74bff + crc: 0xb7eb77b7 type_id: 0x11032587 full_name: "pm_wakeup_dev_event" } @@ -352819,7 +356942,7 @@ elf_symbol { name: "pm_wakeup_ws_event" is_defined: true symbol_type: FUNCTION - crc: 0xc7a3a9d7 + crc: 0x9d6b33bc type_id: 0x112fdfca full_name: "pm_wakeup_ws_event" } @@ -352828,7 +356951,7 @@ elf_symbol { name: "policy_has_boost_freq" is_defined: true symbol_type: FUNCTION - crc: 0x0c65028d + crc: 0xe7a94ce7 type_id: 0xfec3d248 full_name: "policy_has_boost_freq" } @@ -352855,7 +356978,7 @@ elf_symbol { name: "power_supply_changed" is_defined: true symbol_type: FUNCTION - crc: 0xcd76e821 + crc: 0xa1cdb932 type_id: 0x169d12f4 full_name: "power_supply_changed" } @@ -352864,7 +356987,7 @@ elf_symbol { name: "power_supply_get_by_name" is_defined: true symbol_type: FUNCTION - crc: 0xf4029fcf + crc: 0x39e8a5f3 type_id: 0x347afa45 full_name: "power_supply_get_by_name" } @@ -352873,7 +356996,7 @@ elf_symbol { name: "power_supply_get_by_phandle_array" is_defined: true symbol_type: FUNCTION - crc: 0xf085d2e9 + crc: 0xdd57d3a2 type_id: 0x9064137a full_name: "power_supply_get_by_phandle_array" } @@ -352882,7 +357005,7 @@ elf_symbol { name: "power_supply_get_drvdata" is_defined: true symbol_type: FUNCTION - crc: 0x12d2bbb9 + crc: 0x6571e29e type_id: 0x5093f296 full_name: "power_supply_get_drvdata" } @@ -352891,7 +357014,7 @@ elf_symbol { name: "power_supply_get_property" is_defined: true symbol_type: FUNCTION - crc: 0x9f1cb8d5 + crc: 0x5bdabed6 type_id: 0x9ba3144f full_name: "power_supply_get_property" } @@ -352900,7 +357023,7 @@ elf_symbol { name: "power_supply_put" is_defined: true symbol_type: FUNCTION - crc: 0xd7cd7e60 + crc: 0xc08f8526 type_id: 0x169d12f4 full_name: "power_supply_put" } @@ -352918,7 +357041,7 @@ elf_symbol { name: "power_supply_register" is_defined: true symbol_type: FUNCTION - crc: 0x9bc5698d + crc: 0xc4ea6f85 type_id: 0x3bb8868a full_name: "power_supply_register" } @@ -352927,7 +357050,7 @@ elf_symbol { name: "power_supply_set_property" is_defined: true symbol_type: FUNCTION - crc: 0xc9c099e7 + crc: 0xaf596a19 type_id: 0x9bad5a77 full_name: "power_supply_set_property" } @@ -352945,7 +357068,7 @@ elf_symbol { name: "power_supply_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x8d94570b + crc: 0x9c79f5d8 type_id: 0x169d12f4 full_name: "power_supply_unregister" } @@ -352954,7 +357077,7 @@ elf_symbol { name: "ppp_channel_index" is_defined: true symbol_type: FUNCTION - crc: 0x4098ed54 + crc: 0x84192a02 type_id: 0x99a901c1 full_name: "ppp_channel_index" } @@ -352963,7 +357086,7 @@ elf_symbol { name: "ppp_dev_name" is_defined: true symbol_type: FUNCTION - crc: 0xd3371f48 + crc: 0x4a0b38cc type_id: 0x3a17e325 full_name: "ppp_dev_name" } @@ -352972,7 +357095,7 @@ elf_symbol { name: "ppp_input" is_defined: true symbol_type: FUNCTION - crc: 0x67c7ab0d + crc: 0xfe858466 type_id: 0x14a48ed9 full_name: "ppp_input" } @@ -352981,7 +357104,7 @@ elf_symbol { name: "ppp_input_error" is_defined: true symbol_type: FUNCTION - crc: 0x5dc4181f + crc: 0xd232b762 type_id: 0x152d3031 full_name: "ppp_input_error" } @@ -352990,7 +357113,7 @@ elf_symbol { name: "ppp_output_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0xd384ea68 + crc: 0xe332f2bf type_id: 0x14b1b37d full_name: "ppp_output_wakeup" } @@ -352999,7 +357122,7 @@ elf_symbol { name: "ppp_register_channel" is_defined: true symbol_type: FUNCTION - crc: 0x60279c2c + crc: 0x582fc1e5 type_id: 0x99a901c1 full_name: "ppp_register_channel" } @@ -353008,7 +357131,7 @@ elf_symbol { name: "ppp_register_compressor" is_defined: true symbol_type: FUNCTION - crc: 0xaa757b77 + crc: 0x1a7d2c15 type_id: 0x90dc3d3e full_name: "ppp_register_compressor" } @@ -353017,7 +357140,7 @@ elf_symbol { name: "ppp_register_net_channel" is_defined: true symbol_type: FUNCTION - crc: 0xd2f33fa1 + crc: 0x277d4ddd type_id: 0x9eeae021 full_name: "ppp_register_net_channel" } @@ -353026,7 +357149,7 @@ elf_symbol { name: "ppp_unit_number" is_defined: true symbol_type: FUNCTION - crc: 0xeed028a6 + crc: 0xedc6ab12 type_id: 0x99a901c1 full_name: "ppp_unit_number" } @@ -353035,7 +357158,7 @@ elf_symbol { name: "ppp_unregister_channel" is_defined: true symbol_type: FUNCTION - crc: 0xb292c1c5 + crc: 0xa6cfe213 type_id: 0x14b1b37d full_name: "ppp_unregister_channel" } @@ -353044,7 +357167,7 @@ elf_symbol { name: "ppp_unregister_compressor" is_defined: true symbol_type: FUNCTION - crc: 0x350dc5bd + crc: 0xd45b14a7 type_id: 0x1dc48f82 full_name: "ppp_unregister_compressor" } @@ -353053,7 +357176,7 @@ elf_symbol { name: "pppox_compat_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0xd80bd276 + crc: 0x20016f4f type_id: 0x9882219f full_name: "pppox_compat_ioctl" } @@ -353062,7 +357185,7 @@ elf_symbol { name: "pppox_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0x264d0536 + crc: 0x85d04d01 type_id: 0x9882219f full_name: "pppox_ioctl" } @@ -353071,7 +357194,7 @@ elf_symbol { name: "pppox_unbind_sock" is_defined: true symbol_type: FUNCTION - crc: 0xc4a15dc2 + crc: 0x3d0b7b54 type_id: 0x17c95d08 full_name: "pppox_unbind_sock" } @@ -353080,7 +357203,7 @@ elf_symbol { name: "pps_event" is_defined: true symbol_type: FUNCTION - crc: 0xa71e2515 + crc: 0x89a62261 type_id: 0x17306592 full_name: "pps_event" } @@ -353089,7 +357212,7 @@ elf_symbol { name: "pps_register_source" is_defined: true symbol_type: FUNCTION - crc: 0xfe5e7056 + crc: 0xb409f6d8 type_id: 0x9ffaa344 full_name: "pps_register_source" } @@ -353098,7 +357221,7 @@ elf_symbol { name: "pps_unregister_source" is_defined: true symbol_type: FUNCTION - crc: 0x8ddb1c80 + crc: 0xdf9fad92 type_id: 0x17f14839 full_name: "pps_unregister_source" } @@ -353152,7 +357275,7 @@ elf_symbol { name: "proc_create" is_defined: true symbol_type: FUNCTION - crc: 0x14811f8e + crc: 0xc61e2ee9 type_id: 0x3943c0fb full_name: "proc_create" } @@ -353161,7 +357284,7 @@ elf_symbol { name: "proc_create_data" is_defined: true symbol_type: FUNCTION - crc: 0x91173bf5 + crc: 0xeb9066a1 type_id: 0x3943c6d4 full_name: "proc_create_data" } @@ -353170,7 +357293,7 @@ elf_symbol { name: "proc_create_net_data" is_defined: true symbol_type: FUNCTION - crc: 0x19562452 + crc: 0xc7a9c1e3 type_id: 0x3943cd14 full_name: "proc_create_net_data" } @@ -353179,7 +357302,7 @@ elf_symbol { name: "proc_create_net_single" is_defined: true symbol_type: FUNCTION - crc: 0x77be016c + crc: 0x08e79f00 type_id: 0x39439154 full_name: "proc_create_net_single" } @@ -353188,7 +357311,7 @@ elf_symbol { name: "proc_create_seq_private" is_defined: true symbol_type: FUNCTION - crc: 0x3de02f6e + crc: 0x19f01fc4 type_id: 0x3943cd14 full_name: "proc_create_seq_private" } @@ -353197,7 +357320,7 @@ elf_symbol { name: "proc_create_single_data" is_defined: true symbol_type: FUNCTION - crc: 0x34dc2fda + crc: 0x588cae51 type_id: 0x39439154 full_name: "proc_create_single_data" } @@ -353260,7 +357383,7 @@ elf_symbol { name: "proc_mkdir" is_defined: true symbol_type: FUNCTION - crc: 0xd6fc5840 + crc: 0x415a9812 type_id: 0x396d7dc5 full_name: "proc_mkdir" } @@ -353269,7 +357392,7 @@ elf_symbol { name: "proc_mkdir_data" is_defined: true symbol_type: FUNCTION - crc: 0x52e3b234 + crc: 0x79025078 type_id: 0x394343b5 full_name: "proc_mkdir_data" } @@ -353278,7 +357401,7 @@ elf_symbol { name: "proc_remove" is_defined: true symbol_type: FUNCTION - crc: 0x45c68106 + crc: 0x9133a895 type_id: 0x1688452c full_name: "proc_remove" } @@ -353287,7 +357410,7 @@ elf_symbol { name: "proc_set_size" is_defined: true symbol_type: FUNCTION - crc: 0xe7e612b7 + crc: 0xf55e6830 type_id: 0x1616da34 full_name: "proc_set_size" } @@ -353296,7 +357419,7 @@ elf_symbol { name: "proc_set_user" is_defined: true symbol_type: FUNCTION - crc: 0x2f4b4b41 + crc: 0x3097e9d0 type_id: 0x15005e8a full_name: "proc_set_user" } @@ -353305,7 +357428,7 @@ elf_symbol { name: "proc_symlink" is_defined: true symbol_type: FUNCTION - crc: 0xe1fc4c31 + crc: 0x69e058e8 type_id: 0x3962f9e8 full_name: "proc_symlink" } @@ -353314,7 +357437,7 @@ elf_symbol { name: "proto_register" is_defined: true symbol_type: FUNCTION - crc: 0x75345899 + crc: 0x30f3c415 type_id: 0x92e29590 full_name: "proto_register" } @@ -353323,7 +357446,7 @@ elf_symbol { name: "proto_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x7beb9887 + crc: 0x15e5c9f6 type_id: 0x1e66a460 full_name: "proto_unregister" } @@ -353332,7 +357455,7 @@ elf_symbol { name: "ps2_begin_command" is_defined: true symbol_type: FUNCTION - crc: 0x2ff96fa1 + crc: 0x79b15e07 type_id: 0x148b1035 full_name: "ps2_begin_command" } @@ -353341,7 +357464,7 @@ elf_symbol { name: "ps2_cmd_aborted" is_defined: true symbol_type: FUNCTION - crc: 0xb7e8eede + crc: 0xba109d45 type_id: 0x148b1035 full_name: "ps2_cmd_aborted" } @@ -353350,7 +357473,7 @@ elf_symbol { name: "ps2_command" is_defined: true symbol_type: FUNCTION - crc: 0x0f16f7b2 + crc: 0x4df0939b type_id: 0x9981df44 full_name: "ps2_command" } @@ -353359,7 +357482,7 @@ elf_symbol { name: "ps2_drain" is_defined: true symbol_type: FUNCTION - crc: 0x952256b4 + crc: 0x96c34a52 type_id: 0x174aa4cd full_name: "ps2_drain" } @@ -353368,7 +357491,7 @@ elf_symbol { name: "ps2_end_command" is_defined: true symbol_type: FUNCTION - crc: 0x05f8433f + crc: 0x17b654fc type_id: 0x148b1035 full_name: "ps2_end_command" } @@ -353377,7 +357500,7 @@ elf_symbol { name: "ps2_handle_ack" is_defined: true symbol_type: FUNCTION - crc: 0xfd143c51 + crc: 0x053bb4ba type_id: 0xfa126b6a full_name: "ps2_handle_ack" } @@ -353386,7 +357509,7 @@ elf_symbol { name: "ps2_handle_response" is_defined: true symbol_type: FUNCTION - crc: 0x10b9f66b + crc: 0x1072ae3a type_id: 0xfa126b6a full_name: "ps2_handle_response" } @@ -353395,7 +357518,7 @@ elf_symbol { name: "ps2_init" is_defined: true symbol_type: FUNCTION - crc: 0x774a266b + crc: 0xdbde9ffe type_id: 0x1480c3c3 full_name: "ps2_init" } @@ -353404,7 +357527,7 @@ elf_symbol { name: "ps2_sendbyte" is_defined: true symbol_type: FUNCTION - crc: 0xace41fdb + crc: 0x265dd559 type_id: 0x9927b218 full_name: "ps2_sendbyte" } @@ -353413,7 +357536,7 @@ elf_symbol { name: "ps2_sliced_command" is_defined: true symbol_type: FUNCTION - crc: 0x9f495495 + crc: 0x854eafe6 type_id: 0x9936d341 full_name: "ps2_sliced_command" } @@ -353422,7 +357545,7 @@ elf_symbol { name: "pskb_expand_head" is_defined: true symbol_type: FUNCTION - crc: 0x526a2052 + crc: 0xad15001e type_id: 0x9d55b48a full_name: "pskb_expand_head" } @@ -353431,7 +357554,7 @@ elf_symbol { name: "pskb_put" is_defined: true symbol_type: FUNCTION - crc: 0xa012b577 + crc: 0x081f742d type_id: 0x57c99e27 full_name: "pskb_put" } @@ -353440,7 +357563,7 @@ elf_symbol { name: "pstore_register" is_defined: true symbol_type: FUNCTION - crc: 0x7bc6e548 + crc: 0x529c0829 type_id: 0x9f9d90bf full_name: "pstore_register" } @@ -353449,7 +357572,7 @@ elf_symbol { name: "pstore_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x7fe44ed0 + crc: 0xab1185af type_id: 0x12852203 full_name: "pstore_unregister" } @@ -353458,7 +357581,7 @@ elf_symbol { name: "ptp_classify_raw" is_defined: true symbol_type: FUNCTION - crc: 0x1143a77e + crc: 0xc6b853c7 type_id: 0xc1439b43 full_name: "ptp_classify_raw" } @@ -353467,7 +357590,7 @@ elf_symbol { name: "ptp_clock_event" is_defined: true symbol_type: FUNCTION - crc: 0xd0a948d5 + crc: 0x6d060b54 type_id: 0x1a780013 full_name: "ptp_clock_event" } @@ -353476,7 +357599,7 @@ elf_symbol { name: "ptp_clock_index" is_defined: true symbol_type: FUNCTION - crc: 0x84cdb5a8 + crc: 0xc7f02e89 type_id: 0x9768f895 full_name: "ptp_clock_index" } @@ -353485,7 +357608,7 @@ elf_symbol { name: "ptp_clock_register" is_defined: true symbol_type: FUNCTION - crc: 0x44d0edeb + crc: 0xb39f0f4f type_id: 0x2971f309 full_name: "ptp_clock_register" } @@ -353494,7 +357617,7 @@ elf_symbol { name: "ptp_clock_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xbca9046e + crc: 0x7b832c2b type_id: 0x9768f895 full_name: "ptp_clock_unregister" } @@ -353503,7 +357626,7 @@ elf_symbol { name: "ptp_parse_header" is_defined: true symbol_type: FUNCTION - crc: 0xe3fb111e + crc: 0x419211cb type_id: 0x9587d027 full_name: "ptp_parse_header" } @@ -353512,7 +357635,7 @@ elf_symbol { name: "put_cmsg" is_defined: true symbol_type: FUNCTION - crc: 0x3c69e06f + crc: 0xebb57054 type_id: 0x9732df25 full_name: "put_cmsg" } @@ -353521,7 +357644,7 @@ elf_symbol { name: "put_device" is_defined: true symbol_type: FUNCTION - crc: 0x2ac19f95 + crc: 0xe4b7ae21 type_id: 0x100e6fc8 full_name: "put_device" } @@ -353530,7 +357653,7 @@ elf_symbol { name: "put_disk" is_defined: true symbol_type: FUNCTION - crc: 0x7f536211 + crc: 0xde515882 type_id: 0x18d41dd9 full_name: "put_disk" } @@ -353548,7 +357671,7 @@ elf_symbol { name: "put_pid" is_defined: true symbol_type: FUNCTION - crc: 0x846933f3 + crc: 0xb21bf40b type_id: 0x1689085f full_name: "put_pid" } @@ -353602,7 +357725,7 @@ elf_symbol { name: "pwm_apply_state" is_defined: true symbol_type: FUNCTION - crc: 0x8966093f + crc: 0xda776fae type_id: 0x977feed8 full_name: "pwm_apply_state" } @@ -353611,7 +357734,7 @@ elf_symbol { name: "pwmchip_add" is_defined: true symbol_type: FUNCTION - crc: 0x14056ffd + crc: 0x8fdf094c type_id: 0x94a5b2cb full_name: "pwmchip_add" } @@ -353620,7 +357743,7 @@ elf_symbol { name: "pwmchip_remove" is_defined: true symbol_type: FUNCTION - crc: 0x51cb4423 + crc: 0x9ea8a261 type_id: 0x19bd0077 full_name: "pwmchip_remove" } @@ -353629,7 +357752,7 @@ elf_symbol { name: "qca_read_soc_version" is_defined: true symbol_type: FUNCTION - crc: 0xc3ec3729 + crc: 0x104c2555 type_id: 0x9a4d0c6c full_name: "qca_read_soc_version" } @@ -353638,7 +357761,7 @@ elf_symbol { name: "qca_send_pre_shutdown_cmd" is_defined: true symbol_type: FUNCTION - crc: 0x20a130e8 + crc: 0x6ebc1963 type_id: 0x9af01625 full_name: "qca_send_pre_shutdown_cmd" } @@ -353647,7 +357770,7 @@ elf_symbol { name: "qca_set_bdaddr" is_defined: true symbol_type: FUNCTION - crc: 0xc6cd684d + crc: 0x9461b372 type_id: 0x9a2fc16a full_name: "qca_set_bdaddr" } @@ -353656,7 +357779,7 @@ elf_symbol { name: "qca_set_bdaddr_rome" is_defined: true symbol_type: FUNCTION - crc: 0x27bd2b86 + crc: 0x0fb0e9d1 type_id: 0x9a2fc16a full_name: "qca_set_bdaddr_rome" } @@ -353665,7 +357788,7 @@ elf_symbol { name: "qca_uart_setup" is_defined: true symbol_type: FUNCTION - crc: 0x96f984f0 + crc: 0x235e818c type_id: 0x9bc09b7f full_name: "qca_uart_setup" } @@ -353674,7 +357797,7 @@ elf_symbol { name: "qcom_icc_xlate_extended" is_defined: true symbol_type: FUNCTION - crc: 0x60a34819 + crc: 0x1deed96f type_id: 0x2d27988b full_name: "qcom_icc_xlate_extended" } @@ -353683,7 +357806,7 @@ elf_symbol { name: "qcom_smem_state_get" is_defined: true symbol_type: FUNCTION - crc: 0xe7bfaa77 + crc: 0x9eb7e69c type_id: 0x4f30442f full_name: "qcom_smem_state_get" } @@ -353701,7 +357824,7 @@ elf_symbol { name: "qcom_smem_state_register" is_defined: true symbol_type: FUNCTION - crc: 0x7a2972ae + crc: 0x765115d3 type_id: 0x42b552b4 full_name: "qcom_smem_state_register" } @@ -353809,7 +357932,7 @@ elf_symbol { name: "rate_control_set_rates" is_defined: true symbol_type: FUNCTION - crc: 0x98c29b6f + crc: 0x0c4c64e0 type_id: 0x97d187d8 full_name: "rate_control_set_rates" } @@ -353854,7 +357977,7 @@ elf_symbol { name: "raw_spin_rq_lock_nested" is_defined: true symbol_type: FUNCTION - crc: 0x8df62ec8 + crc: 0x1180686a type_id: 0x1a847502 full_name: "raw_spin_rq_lock_nested" } @@ -353863,7 +357986,7 @@ elf_symbol { name: "raw_spin_rq_unlock" is_defined: true symbol_type: FUNCTION - crc: 0xcaba22d7 + crc: 0x08ed0a09 type_id: 0x1b18f64e full_name: "raw_spin_rq_unlock" } @@ -354133,7 +358256,7 @@ elf_symbol { name: "rcu_read_unlock_trace_special" is_defined: true symbol_type: FUNCTION - crc: 0x88cffd6d + crc: 0x1b869862 type_id: 0x17de3be6 full_name: "rcu_read_unlock_trace_special" } @@ -354142,7 +358265,7 @@ elf_symbol { name: "rcu_tasks_trace_qs_blkd" is_defined: true symbol_type: FUNCTION - crc: 0x87cd1eb0 + crc: 0x199c712b type_id: 0x17de3be6 full_name: "rcu_tasks_trace_qs_blkd" } @@ -354151,7 +358274,7 @@ elf_symbol { name: "rcu_trc_cmpxchg_need_qs" is_defined: true symbol_type: FUNCTION - crc: 0xa7b15591 + crc: 0x636f52b6 type_id: 0x54a3f2d6 full_name: "rcu_trc_cmpxchg_need_qs" } @@ -354178,7 +358301,7 @@ elf_symbol { name: "rcuwait_wake_up" is_defined: true symbol_type: FUNCTION - crc: 0xe7466c11 + crc: 0xf435f04e type_id: 0x929ea9e9 full_name: "rcuwait_wake_up" } @@ -354187,7 +358310,7 @@ elf_symbol { name: "rdev_get_drvdata" is_defined: true symbol_type: FUNCTION - crc: 0xa192fe40 + crc: 0x9d49d6ea type_id: 0x5548a022 full_name: "rdev_get_drvdata" } @@ -354196,10 +358319,19 @@ elf_symbol { name: "rdev_get_id" is_defined: true symbol_type: FUNCTION - crc: 0x73d59327 + crc: 0xfca33412 type_id: 0x9e5ef2fc full_name: "rdev_get_id" } +elf_symbol { + id: 0x5b227eda + name: "read_cache_page" + is_defined: true + symbol_type: FUNCTION + crc: 0x5c29f5e3 + type_id: 0xb8307855 + full_name: "read_cache_page" +} elf_symbol { id: 0x46082c90 name: "reboot_mode" @@ -354232,7 +358364,7 @@ elf_symbol { name: "reclaim_shmem_address_space" is_defined: true symbol_type: FUNCTION - crc: 0xbb981523 + crc: 0xcd9b5542 type_id: 0x98e049ee full_name: "reclaim_shmem_address_space" } @@ -354304,7 +358436,7 @@ elf_symbol { name: "regcache_cache_bypass" is_defined: true symbol_type: FUNCTION - crc: 0x24de8a5f + crc: 0xf2087a07 type_id: 0x1347a32b full_name: "regcache_cache_bypass" } @@ -354313,7 +358445,7 @@ elf_symbol { name: "regcache_cache_only" is_defined: true symbol_type: FUNCTION - crc: 0x92ee0bc3 + crc: 0xa4a4db38 type_id: 0x1347a32b full_name: "regcache_cache_only" } @@ -354322,7 +358454,7 @@ elf_symbol { name: "regcache_drop_region" is_defined: true symbol_type: FUNCTION - crc: 0x833f3623 + crc: 0xb1a5bb48 type_id: 0x9eed9829 full_name: "regcache_drop_region" } @@ -354331,7 +358463,7 @@ elf_symbol { name: "regcache_mark_dirty" is_defined: true symbol_type: FUNCTION - crc: 0x5a203e01 + crc: 0xe66bd861 type_id: 0x12f25e54 full_name: "regcache_mark_dirty" } @@ -354340,7 +358472,7 @@ elf_symbol { name: "regcache_sync" is_defined: true symbol_type: FUNCTION - crc: 0x6050773d + crc: 0x23732a00 type_id: 0x9feaece8 full_name: "regcache_sync" } @@ -354349,7 +358481,7 @@ elf_symbol { name: "regcache_sync_region" is_defined: true symbol_type: FUNCTION - crc: 0x9ebcbb61 + crc: 0x85389d58 type_id: 0x9eed9829 full_name: "regcache_sync_region" } @@ -354358,7 +358490,7 @@ elf_symbol { name: "register_candev" is_defined: true symbol_type: FUNCTION - crc: 0x48a9351f + crc: 0x667e9e06 type_id: 0x91296bda full_name: "register_candev" } @@ -354376,7 +358508,7 @@ elf_symbol { name: "register_console" is_defined: true symbol_type: FUNCTION - crc: 0xf3dbad80 + crc: 0xf41bf63d type_id: 0x10cf8a7c full_name: "register_console" } @@ -354466,7 +358598,7 @@ elf_symbol { name: "register_net_sysctl" is_defined: true symbol_type: FUNCTION - crc: 0x44bd5250 + crc: 0x24e4414a type_id: 0x0d4395f8 full_name: "register_net_sysctl" } @@ -354475,7 +358607,7 @@ elf_symbol { name: "register_netdev" is_defined: true symbol_type: FUNCTION - crc: 0x74247b85 + crc: 0x8f4e7c08 type_id: 0x91296bda full_name: "register_netdev" } @@ -354484,7 +358616,7 @@ elf_symbol { name: "register_netdevice" is_defined: true symbol_type: FUNCTION - crc: 0x7c484df8 + crc: 0xc09bb71d type_id: 0x91296bda full_name: "register_netdevice" } @@ -354520,7 +358652,7 @@ elf_symbol { name: "register_pernet_device" is_defined: true symbol_type: FUNCTION - crc: 0x50d4f571 + crc: 0x188ac0e2 type_id: 0x97969509 full_name: "register_pernet_device" } @@ -354529,7 +358661,7 @@ elf_symbol { name: "register_pernet_subsys" is_defined: true symbol_type: FUNCTION - crc: 0x7a35aa22 + crc: 0x5ce1b15e type_id: 0x97969509 full_name: "register_pernet_subsys" } @@ -354547,7 +358679,7 @@ elf_symbol { name: "register_pppox_proto" is_defined: true symbol_type: FUNCTION - crc: 0x89a9b118 + crc: 0x3130db74 type_id: 0x84a4d3f7 full_name: "register_pppox_proto" } @@ -354556,7 +358688,7 @@ elf_symbol { name: "register_qdisc" is_defined: true symbol_type: FUNCTION - crc: 0x34762a27 + crc: 0xffc59c64 type_id: 0x927a4e4f full_name: "register_qdisc" } @@ -354583,7 +358715,7 @@ elf_symbol { name: "register_shrinker" is_defined: true symbol_type: FUNCTION - crc: 0xa19592c4 + crc: 0x2cc9f802 type_id: 0x94bc9034 full_name: "register_shrinker" } @@ -354619,7 +358751,7 @@ elf_symbol { name: "register_tcf_proto_ops" is_defined: true symbol_type: FUNCTION - crc: 0x843df494 + crc: 0x1db9ba2d type_id: 0x9afc1632 full_name: "register_tcf_proto_ops" } @@ -354628,7 +358760,7 @@ elf_symbol { name: "register_virtio_device" is_defined: true symbol_type: FUNCTION - crc: 0x6b5cb2be + crc: 0xd742c718 type_id: 0x97cd6aa0 full_name: "register_virtio_device" } @@ -354637,7 +358769,7 @@ elf_symbol { name: "register_virtio_driver" is_defined: true symbol_type: FUNCTION - crc: 0x0024f60c + crc: 0x505a883a type_id: 0x99bc1448 full_name: "register_virtio_driver" } @@ -354655,7 +358787,7 @@ elf_symbol { name: "regmap_async_complete" is_defined: true symbol_type: FUNCTION - crc: 0xf5a6c8ac + crc: 0xdf70491c type_id: 0x9feaece8 full_name: "regmap_async_complete" } @@ -354664,7 +358796,7 @@ elf_symbol { name: "regmap_bulk_read" is_defined: true symbol_type: FUNCTION - crc: 0x227a0e55 + crc: 0xbab915f4 type_id: 0x9ef906fc full_name: "regmap_bulk_read" } @@ -354673,7 +358805,7 @@ elf_symbol { name: "regmap_bulk_write" is_defined: true symbol_type: FUNCTION - crc: 0x45536e75 + crc: 0xc2f6bda7 type_id: 0x9ef16e60 full_name: "regmap_bulk_write" } @@ -354682,7 +358814,7 @@ elf_symbol { name: "regmap_check_range_table" is_defined: true symbol_type: FUNCTION - crc: 0x5b758a29 + crc: 0x4c3376c6 type_id: 0xfdd651d2 full_name: "regmap_check_range_table" } @@ -354691,7 +358823,7 @@ elf_symbol { name: "regmap_exit" is_defined: true symbol_type: FUNCTION - crc: 0xd2a9d646 + crc: 0xd22f096d type_id: 0x12f25e54 full_name: "regmap_exit" } @@ -354700,7 +358832,7 @@ elf_symbol { name: "regmap_field_read" is_defined: true symbol_type: FUNCTION - crc: 0xd8700609 + crc: 0x8106983b type_id: 0x957964bc full_name: "regmap_field_read" } @@ -354709,7 +358841,7 @@ elf_symbol { name: "regmap_field_update_bits_base" is_defined: true symbol_type: FUNCTION - crc: 0xc587bf65 + crc: 0xaf5fdf7d type_id: 0x94118828 full_name: "regmap_field_update_bits_base" } @@ -354718,7 +358850,7 @@ elf_symbol { name: "regmap_get_device" is_defined: true symbol_type: FUNCTION - crc: 0xaf50960b + crc: 0x78083489 type_id: 0xaf453ff9 full_name: "regmap_get_device" } @@ -354727,7 +358859,7 @@ elf_symbol { name: "regmap_get_val_bytes" is_defined: true symbol_type: FUNCTION - crc: 0x3d9a0696 + crc: 0x34eff32e type_id: 0x9feaece8 full_name: "regmap_get_val_bytes" } @@ -354754,7 +358886,7 @@ elf_symbol { name: "regmap_mmio_detach_clk" is_defined: true symbol_type: FUNCTION - crc: 0x45d282ec + crc: 0xce545bb2 type_id: 0x12f25e54 full_name: "regmap_mmio_detach_clk" } @@ -354763,7 +358895,7 @@ elf_symbol { name: "regmap_multi_reg_write" is_defined: true symbol_type: FUNCTION - crc: 0xd63f0d5e + crc: 0xf7cb431f type_id: 0x9f0243b3 full_name: "regmap_multi_reg_write" } @@ -354772,7 +358904,7 @@ elf_symbol { name: "regmap_multi_reg_write_bypassed" is_defined: true symbol_type: FUNCTION - crc: 0xa2ece337 + crc: 0x95f7b09c type_id: 0x9f0243b3 full_name: "regmap_multi_reg_write_bypassed" } @@ -354781,7 +358913,7 @@ elf_symbol { name: "regmap_noinc_read" is_defined: true symbol_type: FUNCTION - crc: 0xc3e92f29 + crc: 0x270071bf type_id: 0x9ef906fc full_name: "regmap_noinc_read" } @@ -354790,7 +358922,7 @@ elf_symbol { name: "regmap_noinc_write" is_defined: true symbol_type: FUNCTION - crc: 0x5a0e7924 + crc: 0x45628274 type_id: 0x9ef16e60 full_name: "regmap_noinc_write" } @@ -354799,7 +358931,7 @@ elf_symbol { name: "regmap_raw_read" is_defined: true symbol_type: FUNCTION - crc: 0x9a8996d0 + crc: 0xf4849fc3 type_id: 0x9ef906fc full_name: "regmap_raw_read" } @@ -354808,7 +358940,7 @@ elf_symbol { name: "regmap_raw_write" is_defined: true symbol_type: FUNCTION - crc: 0xb91a73f6 + crc: 0x326342fc type_id: 0x9ef16e60 full_name: "regmap_raw_write" } @@ -354817,7 +358949,7 @@ elf_symbol { name: "regmap_raw_write_async" is_defined: true symbol_type: FUNCTION - crc: 0x4b3fb3d2 + crc: 0x75a328af type_id: 0x9ef16e60 full_name: "regmap_raw_write_async" } @@ -354826,7 +358958,7 @@ elf_symbol { name: "regmap_read" is_defined: true symbol_type: FUNCTION - crc: 0x0c3fd7f8 + crc: 0x536379cb type_id: 0x9efa0528 full_name: "regmap_read" } @@ -354835,7 +358967,7 @@ elf_symbol { name: "regmap_register_patch" is_defined: true symbol_type: FUNCTION - crc: 0xed3739c8 + crc: 0x91df1d3f type_id: 0x9f0243b3 full_name: "regmap_register_patch" } @@ -354844,7 +358976,7 @@ elf_symbol { name: "regmap_update_bits_base" is_defined: true symbol_type: FUNCTION - crc: 0x3d656053 + crc: 0x15daa492 type_id: 0x9eec8be1 full_name: "regmap_update_bits_base" } @@ -354853,7 +358985,7 @@ elf_symbol { name: "regmap_write" is_defined: true symbol_type: FUNCTION - crc: 0x1505ff84 + crc: 0xe0cbff0c type_id: 0x9eed9829 full_name: "regmap_write" } @@ -354862,7 +358994,7 @@ elf_symbol { name: "regulator_allow_bypass" is_defined: true symbol_type: FUNCTION - crc: 0xaffcccbb + crc: 0x4994fc6f type_id: 0x9c5e99dc full_name: "regulator_allow_bypass" } @@ -354871,7 +359003,7 @@ elf_symbol { name: "regulator_bulk_disable" is_defined: true symbol_type: FUNCTION - crc: 0xcd1c365c + crc: 0x88103dff type_id: 0x8499ea41 full_name: "regulator_bulk_disable" } @@ -354880,7 +359012,7 @@ elf_symbol { name: "regulator_bulk_enable" is_defined: true symbol_type: FUNCTION - crc: 0x8b705df8 + crc: 0xcb178295 type_id: 0x8499ea41 full_name: "regulator_bulk_enable" } @@ -354889,7 +359021,7 @@ elf_symbol { name: "regulator_bulk_get" is_defined: true symbol_type: FUNCTION - crc: 0xb57acb1d + crc: 0xda07892c type_id: 0x9c874de2 full_name: "regulator_bulk_get" } @@ -354898,7 +359030,7 @@ elf_symbol { name: "regulator_count_voltages" is_defined: true symbol_type: FUNCTION - crc: 0x52c6c982 + crc: 0xfd67bd74 type_id: 0x9deb64a3 full_name: "regulator_count_voltages" } @@ -354907,7 +359039,7 @@ elf_symbol { name: "regulator_disable" is_defined: true symbol_type: FUNCTION - crc: 0x2b93ab5f + crc: 0xd477e2cf type_id: 0x9deb64a3 full_name: "regulator_disable" } @@ -354916,7 +359048,7 @@ elf_symbol { name: "regulator_disable_regmap" is_defined: true symbol_type: FUNCTION - crc: 0xcba6d10a + crc: 0xc5e1911d type_id: 0x9e5ef2fc full_name: "regulator_disable_regmap" } @@ -354925,7 +359057,7 @@ elf_symbol { name: "regulator_enable" is_defined: true symbol_type: FUNCTION - crc: 0x5936685d + crc: 0xe1871ecb type_id: 0x9deb64a3 full_name: "regulator_enable" } @@ -354934,7 +359066,7 @@ elf_symbol { name: "regulator_enable_regmap" is_defined: true symbol_type: FUNCTION - crc: 0x506b299c + crc: 0x609e478e type_id: 0x9e5ef2fc full_name: "regulator_enable_regmap" } @@ -354943,7 +359075,7 @@ elf_symbol { name: "regulator_force_disable" is_defined: true symbol_type: FUNCTION - crc: 0x1ce6b67b + crc: 0x305d484e type_id: 0x9deb64a3 full_name: "regulator_force_disable" } @@ -354952,7 +359084,7 @@ elf_symbol { name: "regulator_get" is_defined: true symbol_type: FUNCTION - crc: 0x0648031f + crc: 0xe8294a04 type_id: 0x8556217d full_name: "regulator_get" } @@ -354961,7 +359093,7 @@ elf_symbol { name: "regulator_get_current_limit_regmap" is_defined: true symbol_type: FUNCTION - crc: 0x3ff35762 + crc: 0x0ea50fab type_id: 0x9e5ef2fc full_name: "regulator_get_current_limit_regmap" } @@ -354970,7 +359102,7 @@ elf_symbol { name: "regulator_get_linear_step" is_defined: true symbol_type: FUNCTION - crc: 0x3f9fef15 + crc: 0x449f2a98 type_id: 0xceb0f977 full_name: "regulator_get_linear_step" } @@ -354979,7 +359111,7 @@ elf_symbol { name: "regulator_get_mode" is_defined: true symbol_type: FUNCTION - crc: 0x57db765b + crc: 0x562321e7 type_id: 0xceb0f977 full_name: "regulator_get_mode" } @@ -354988,7 +359120,7 @@ elf_symbol { name: "regulator_get_optional" is_defined: true symbol_type: FUNCTION - crc: 0x90e8530f + crc: 0x89206bc6 type_id: 0x8556217d full_name: "regulator_get_optional" } @@ -354997,7 +359129,7 @@ elf_symbol { name: "regulator_get_voltage" is_defined: true symbol_type: FUNCTION - crc: 0xf75793a4 + crc: 0x6f587430 type_id: 0x9deb64a3 full_name: "regulator_get_voltage" } @@ -355006,7 +359138,7 @@ elf_symbol { name: "regulator_get_voltage_rdev" is_defined: true symbol_type: FUNCTION - crc: 0xce51a6b3 + crc: 0x18cddac9 type_id: 0x9e5ef2fc full_name: "regulator_get_voltage_rdev" } @@ -355015,7 +359147,7 @@ elf_symbol { name: "regulator_get_voltage_sel_regmap" is_defined: true symbol_type: FUNCTION - crc: 0x9bf0ea37 + crc: 0xc9101f69 type_id: 0x9e5ef2fc full_name: "regulator_get_voltage_sel_regmap" } @@ -355024,7 +359156,7 @@ elf_symbol { name: "regulator_is_enabled" is_defined: true symbol_type: FUNCTION - crc: 0xe5d7c197 + crc: 0x51115508 type_id: 0x9deb64a3 full_name: "regulator_is_enabled" } @@ -355033,7 +359165,7 @@ elf_symbol { name: "regulator_is_enabled_regmap" is_defined: true symbol_type: FUNCTION - crc: 0xb3527255 + crc: 0x38f7c433 type_id: 0x9e5ef2fc full_name: "regulator_is_enabled_regmap" } @@ -355042,7 +359174,7 @@ elf_symbol { name: "regulator_is_supported_voltage" is_defined: true symbol_type: FUNCTION - crc: 0x89758e45 + crc: 0x9352f96a type_id: 0x9c6e2fdb full_name: "regulator_is_supported_voltage" } @@ -355051,7 +359183,7 @@ elf_symbol { name: "regulator_list_voltage_linear" is_defined: true symbol_type: FUNCTION - crc: 0xc13ae68f + crc: 0x76aa7f22 type_id: 0x9f48e764 full_name: "regulator_list_voltage_linear" } @@ -355060,7 +359192,7 @@ elf_symbol { name: "regulator_list_voltage_linear_range" is_defined: true symbol_type: FUNCTION - crc: 0x4855060e + crc: 0x9affc06d type_id: 0x9f48e764 full_name: "regulator_list_voltage_linear_range" } @@ -355069,7 +359201,7 @@ elf_symbol { name: "regulator_map_voltage_linear" is_defined: true symbol_type: FUNCTION - crc: 0x10228d37 + crc: 0x76c964b5 type_id: 0x9fdbb984 full_name: "regulator_map_voltage_linear" } @@ -355078,7 +359210,7 @@ elf_symbol { name: "regulator_map_voltage_linear_range" is_defined: true symbol_type: FUNCTION - crc: 0xbcafd5dc + crc: 0x0aff9a6a type_id: 0x9fdbb984 full_name: "regulator_map_voltage_linear_range" } @@ -355087,7 +359219,7 @@ elf_symbol { name: "regulator_notifier_call_chain" is_defined: true symbol_type: FUNCTION - crc: 0x6b14e6cf + crc: 0x1eba775a type_id: 0x9e950837 full_name: "regulator_notifier_call_chain" } @@ -355096,7 +359228,7 @@ elf_symbol { name: "regulator_put" is_defined: true symbol_type: FUNCTION - crc: 0x950d28fd + crc: 0xab38e5ae type_id: 0x10f3d61f full_name: "regulator_put" } @@ -355105,7 +359237,7 @@ elf_symbol { name: "regulator_register_notifier" is_defined: true symbol_type: FUNCTION - crc: 0xc7c835d9 + crc: 0x9389295b type_id: 0x9d85be32 full_name: "regulator_register_notifier" } @@ -355114,7 +359246,7 @@ elf_symbol { name: "regulator_set_active_discharge_regmap" is_defined: true symbol_type: FUNCTION - crc: 0xecaa7b9f + crc: 0x7db331ad type_id: 0x9feb0f83 full_name: "regulator_set_active_discharge_regmap" } @@ -355123,7 +359255,7 @@ elf_symbol { name: "regulator_set_current_limit" is_defined: true symbol_type: FUNCTION - crc: 0x25209ba0 + crc: 0x0ed2b4e5 type_id: 0x9c6e2fdb full_name: "regulator_set_current_limit" } @@ -355132,7 +359264,7 @@ elf_symbol { name: "regulator_set_current_limit_regmap" is_defined: true symbol_type: FUNCTION - crc: 0x7bc66cb5 + crc: 0xdb2494cc type_id: 0x9fdbb984 full_name: "regulator_set_current_limit_regmap" } @@ -355141,7 +359273,7 @@ elf_symbol { name: "regulator_set_load" is_defined: true symbol_type: FUNCTION - crc: 0x2eed4cd2 + crc: 0x5c6b6803 type_id: 0x9c77e7ef full_name: "regulator_set_load" } @@ -355150,7 +359282,7 @@ elf_symbol { name: "regulator_set_mode" is_defined: true symbol_type: FUNCTION - crc: 0x267aa818 + crc: 0x78f249b6 type_id: 0x9cfd713b full_name: "regulator_set_mode" } @@ -355159,7 +359291,7 @@ elf_symbol { name: "regulator_set_pull_down_regmap" is_defined: true symbol_type: FUNCTION - crc: 0x70ecfdc9 + crc: 0x3a06eeb3 type_id: 0x9e5ef2fc full_name: "regulator_set_pull_down_regmap" } @@ -355168,7 +359300,7 @@ elf_symbol { name: "regulator_set_voltage" is_defined: true symbol_type: FUNCTION - crc: 0xc755c86d + crc: 0xa39ecb26 type_id: 0x9c6e2fdb full_name: "regulator_set_voltage" } @@ -355177,7 +359309,7 @@ elf_symbol { name: "regulator_set_voltage_sel_regmap" is_defined: true symbol_type: FUNCTION - crc: 0xfce5aa85 + crc: 0xa25b0eec type_id: 0x9f48e764 full_name: "regulator_set_voltage_sel_regmap" } @@ -355186,7 +359318,7 @@ elf_symbol { name: "regulator_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x329341a8 + crc: 0x84bbd071 type_id: 0x13464040 full_name: "regulator_unregister" } @@ -355195,7 +359327,7 @@ elf_symbol { name: "regulator_unregister_notifier" is_defined: true symbol_type: FUNCTION - crc: 0xe40267ae + crc: 0x63225b33 type_id: 0x9d85be32 full_name: "regulator_unregister_notifier" } @@ -355204,7 +359336,7 @@ elf_symbol { name: "regulatory_hint" is_defined: true symbol_type: FUNCTION - crc: 0xa2532ab0 + crc: 0x59c59b08 type_id: 0x99146bf1 full_name: "regulatory_hint" } @@ -355213,7 +359345,7 @@ elf_symbol { name: "regulatory_pre_cac_allowed" is_defined: true symbol_type: FUNCTION - crc: 0xd43d11c6 + crc: 0xb2135d00 type_id: 0xfac8910e full_name: "regulatory_pre_cac_allowed" } @@ -355222,7 +359354,7 @@ elf_symbol { name: "regulatory_set_wiphy_regd" is_defined: true symbol_type: FUNCTION - crc: 0xe9067341 + crc: 0xba6ec3a6 type_id: 0x99d60b9d full_name: "regulatory_set_wiphy_regd" } @@ -355231,7 +359363,7 @@ elf_symbol { name: "regulatory_set_wiphy_regd_sync" is_defined: true symbol_type: FUNCTION - crc: 0xa3c4e9b1 + crc: 0xa75172c2 type_id: 0x99d60b9d full_name: "regulatory_set_wiphy_regd_sync" } @@ -355249,7 +359381,7 @@ elf_symbol { name: "release_sock" is_defined: true symbol_type: FUNCTION - crc: 0x152d654c + crc: 0xa9615a47 type_id: 0x17c95d08 full_name: "release_sock" } @@ -355258,7 +359390,7 @@ elf_symbol { name: "remap_pfn_range" is_defined: true symbol_type: FUNCTION - crc: 0x33cbfa13 + crc: 0x517e9a81 type_id: 0x9fc5d15c full_name: "remap_pfn_range" } @@ -355267,7 +359399,7 @@ elf_symbol { name: "remap_vmalloc_range" is_defined: true symbol_type: FUNCTION - crc: 0x9f010174 + crc: 0xd1bcbc87 type_id: 0x9f6a1bb3 full_name: "remap_vmalloc_range" } @@ -355294,7 +359426,7 @@ elf_symbol { name: "remove_proc_entry" is_defined: true symbol_type: FUNCTION - crc: 0xc12e33cd + crc: 0xc7c0bd86 type_id: 0x1f7d7d9e full_name: "remove_proc_entry" } @@ -355303,7 +359435,7 @@ elf_symbol { name: "remove_proc_subtree" is_defined: true symbol_type: FUNCTION - crc: 0xf30cbfda + crc: 0x3d2049aa type_id: 0x9265cf22 full_name: "remove_proc_subtree" } @@ -355330,7 +359462,7 @@ elf_symbol { name: "report_iommu_fault" is_defined: true symbol_type: FUNCTION - crc: 0x0aadc44b + crc: 0x16b2fe87 type_id: 0x9621e968 full_name: "report_iommu_fault" } @@ -355348,7 +359480,7 @@ elf_symbol { name: "request_firmware" is_defined: true symbol_type: FUNCTION - crc: 0xec7da1c8 + crc: 0xd97808b1 type_id: 0x9cec28b8 full_name: "request_firmware" } @@ -355357,7 +359489,7 @@ elf_symbol { name: "request_firmware_direct" is_defined: true symbol_type: FUNCTION - crc: 0x94619e60 + crc: 0xb7a08f2b type_id: 0x9cec28b8 full_name: "request_firmware_direct" } @@ -355366,7 +359498,7 @@ elf_symbol { name: "request_firmware_into_buf" is_defined: true symbol_type: FUNCTION - crc: 0x15c7ec4b + crc: 0xb251c383 type_id: 0x9cec7740 full_name: "request_firmware_into_buf" } @@ -355375,7 +359507,7 @@ elf_symbol { name: "request_firmware_nowait" is_defined: true symbol_type: FUNCTION - crc: 0x336527ec + crc: 0xa26d57b0 type_id: 0x9ef35806 full_name: "request_firmware_nowait" } @@ -355393,7 +359525,7 @@ elf_symbol { name: "resched_curr" is_defined: true symbol_type: FUNCTION - crc: 0x8116ee57 + crc: 0x60146e57 type_id: 0x1b18f64e full_name: "resched_curr" } @@ -355501,7 +359633,7 @@ elf_symbol { name: "rfkill_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x57c20a14 + crc: 0x2825e4fa type_id: 0x0a9e8df2 full_name: "rfkill_alloc" } @@ -355744,7 +359876,7 @@ elf_symbol { name: "root_task_group" is_defined: true symbol_type: OBJECT - crc: 0x3b37b22d + crc: 0xb272f723 type_id: 0x84d533ac full_name: "root_task_group" } @@ -355780,7 +359912,7 @@ elf_symbol { name: "rpmsg_create_channel" is_defined: true symbol_type: FUNCTION - crc: 0x109472a8 + crc: 0x573e5d56 type_id: 0xa3adbe6c full_name: "rpmsg_create_channel" } @@ -355789,7 +359921,7 @@ elf_symbol { name: "rpmsg_create_ept" is_defined: true symbol_type: FUNCTION - crc: 0xdc5fda8b + crc: 0xa7cb130e type_id: 0x4cd21214 full_name: "rpmsg_create_ept" } @@ -355798,7 +359930,7 @@ elf_symbol { name: "rpmsg_poll" is_defined: true symbol_type: FUNCTION - crc: 0x5e18b7ac + crc: 0xa8d7fed6 type_id: 0x2c0dbc38 full_name: "rpmsg_poll" } @@ -355807,7 +359939,7 @@ elf_symbol { name: "rpmsg_register_device" is_defined: true symbol_type: FUNCTION - crc: 0x1e8afcaa + crc: 0x40b7be89 type_id: 0x94ed2c45 full_name: "rpmsg_register_device" } @@ -355816,7 +359948,7 @@ elf_symbol { name: "rpmsg_register_device_override" is_defined: true symbol_type: FUNCTION - crc: 0x27b6931f + crc: 0xe5807fcd type_id: 0x94156e91 full_name: "rpmsg_register_device_override" } @@ -355825,7 +359957,7 @@ elf_symbol { name: "rpmsg_release_channel" is_defined: true symbol_type: FUNCTION - crc: 0xbee106ef + crc: 0xaa0c3d84 type_id: 0x947a09b6 full_name: "rpmsg_release_channel" } @@ -355834,7 +359966,7 @@ elf_symbol { name: "rpmsg_send" is_defined: true symbol_type: FUNCTION - crc: 0x6a4c1f26 + crc: 0x3d18c854 type_id: 0x92ab09cb full_name: "rpmsg_send" } @@ -355843,7 +359975,7 @@ elf_symbol { name: "rpmsg_trysend" is_defined: true symbol_type: FUNCTION - crc: 0xcb7c9ca9 + crc: 0xdc0839f5 type_id: 0x92ab09cb full_name: "rpmsg_trysend" } @@ -355852,7 +359984,7 @@ elf_symbol { name: "rpmsg_unregister_device" is_defined: true symbol_type: FUNCTION - crc: 0x81b9ef19 + crc: 0x5b10c2e7 type_id: 0x9d81f887 full_name: "rpmsg_unregister_device" } @@ -355861,7 +359993,7 @@ elf_symbol { name: "rproc_add" is_defined: true symbol_type: FUNCTION - crc: 0xb810dbb2 + crc: 0x0d3285ea type_id: 0x97f16301 full_name: "rproc_add" } @@ -355870,7 +360002,7 @@ elf_symbol { name: "rproc_add_subdev" is_defined: true symbol_type: FUNCTION - crc: 0x57563f85 + crc: 0x922b7e9f type_id: 0x1a5a9df1 full_name: "rproc_add_subdev" } @@ -355879,7 +360011,7 @@ elf_symbol { name: "rproc_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x695349ae + crc: 0x7334ae58 type_id: 0xbd324cd3 full_name: "rproc_alloc" } @@ -355888,7 +360020,7 @@ elf_symbol { name: "rproc_boot" is_defined: true symbol_type: FUNCTION - crc: 0x042850fa + crc: 0x1152d951 type_id: 0x97f16301 full_name: "rproc_boot" } @@ -355897,7 +360029,7 @@ elf_symbol { name: "rproc_coredump" is_defined: true symbol_type: FUNCTION - crc: 0xb3545e9c + crc: 0xe693b7e6 type_id: 0x1ae9d1bd full_name: "rproc_coredump" } @@ -355906,7 +360038,7 @@ elf_symbol { name: "rproc_coredump_add_custom_segment" is_defined: true symbol_type: FUNCTION - crc: 0xa6fb75db + crc: 0x9d828bc6 type_id: 0x944ce0cc full_name: "rproc_coredump_add_custom_segment" } @@ -355915,7 +360047,7 @@ elf_symbol { name: "rproc_coredump_add_segment" is_defined: true symbol_type: FUNCTION - crc: 0xd0298da8 + crc: 0xa410867b type_id: 0x944cd608 full_name: "rproc_coredump_add_segment" } @@ -355924,7 +360056,7 @@ elf_symbol { name: "rproc_coredump_cleanup" is_defined: true symbol_type: FUNCTION - crc: 0xe2a740aa + crc: 0xcb8dbbd7 type_id: 0x1ae9d1bd full_name: "rproc_coredump_cleanup" } @@ -355933,7 +360065,7 @@ elf_symbol { name: "rproc_coredump_set_elf_info" is_defined: true symbol_type: FUNCTION - crc: 0xf443409f + crc: 0x9e913c1a type_id: 0x977041a6 full_name: "rproc_coredump_set_elf_info" } @@ -355942,7 +360074,7 @@ elf_symbol { name: "rproc_coredump_using_sections" is_defined: true symbol_type: FUNCTION - crc: 0xa679066b + crc: 0x11e609bb type_id: 0x1ae9d1bd full_name: "rproc_coredump_using_sections" } @@ -355951,7 +360083,7 @@ elf_symbol { name: "rproc_del" is_defined: true symbol_type: FUNCTION - crc: 0x45d005a4 + crc: 0x67702cdb type_id: 0x97f16301 full_name: "rproc_del" } @@ -355960,7 +360092,7 @@ elf_symbol { name: "rproc_elf_get_boot_addr" is_defined: true symbol_type: FUNCTION - crc: 0x34260d9e + crc: 0x3784bb4d type_id: 0x5d665720 full_name: "rproc_elf_get_boot_addr" } @@ -355969,7 +360101,7 @@ elf_symbol { name: "rproc_free" is_defined: true symbol_type: FUNCTION - crc: 0xe39c9cb9 + crc: 0xd9f4c37e type_id: 0x1ae9d1bd full_name: "rproc_free" } @@ -355978,7 +360110,7 @@ elf_symbol { name: "rproc_get_by_child" is_defined: true symbol_type: FUNCTION - crc: 0xaae87407 + crc: 0x2de9c1e7 type_id: 0xbdc4e083 full_name: "rproc_get_by_child" } @@ -355987,7 +360119,7 @@ elf_symbol { name: "rproc_get_by_phandle" is_defined: true symbol_type: FUNCTION - crc: 0x113b9d0f + crc: 0xf44eaee1 type_id: 0xba5ef4b3 full_name: "rproc_get_by_phandle" } @@ -355996,7 +360128,7 @@ elf_symbol { name: "rproc_put" is_defined: true symbol_type: FUNCTION - crc: 0xcef6a252 + crc: 0x8e8faf2f type_id: 0x1ae9d1bd full_name: "rproc_put" } @@ -356005,7 +360137,7 @@ elf_symbol { name: "rproc_remove_subdev" is_defined: true symbol_type: FUNCTION - crc: 0x092214cd + crc: 0xc01aec85 type_id: 0x1a5a9df1 full_name: "rproc_remove_subdev" } @@ -356014,7 +360146,7 @@ elf_symbol { name: "rproc_report_crash" is_defined: true symbol_type: FUNCTION - crc: 0xd0550915 + crc: 0x8d179671 type_id: 0x197c612f full_name: "rproc_report_crash" } @@ -356023,7 +360155,7 @@ elf_symbol { name: "rproc_set_firmware" is_defined: true symbol_type: FUNCTION - crc: 0xf9ecfa1b + crc: 0x89b3222c type_id: 0x970921d5 full_name: "rproc_set_firmware" } @@ -356032,7 +360164,7 @@ elf_symbol { name: "rproc_shutdown" is_defined: true symbol_type: FUNCTION - crc: 0x5c0e3ae6 + crc: 0x09f1fdb3 type_id: 0x97f16301 full_name: "rproc_shutdown" } @@ -356050,7 +360182,7 @@ elf_symbol { name: "rt_mutex_lock" is_defined: true symbol_type: FUNCTION - crc: 0xb26fc058 + crc: 0x5ff3cc6c type_id: 0x1d45c70c full_name: "rt_mutex_lock" } @@ -356059,7 +360191,7 @@ elf_symbol { name: "rt_mutex_trylock" is_defined: true symbol_type: FUNCTION - crc: 0x068c42f2 + crc: 0xb7cf5190 type_id: 0x905d75b0 full_name: "rt_mutex_trylock" } @@ -356068,7 +360200,7 @@ elf_symbol { name: "rt_mutex_unlock" is_defined: true symbol_type: FUNCTION - crc: 0x01fbe1b6 + crc: 0xada80c94 type_id: 0x1d45c70c full_name: "rt_mutex_unlock" } @@ -356077,7 +360209,7 @@ elf_symbol { name: "rtc_class_close" is_defined: true symbol_type: FUNCTION - crc: 0x6ef07ffa + crc: 0x1b53a9f7 type_id: 0x19a0c3db full_name: "rtc_class_close" } @@ -356086,7 +360218,7 @@ elf_symbol { name: "rtc_class_open" is_defined: true symbol_type: FUNCTION - crc: 0x68a5a300 + crc: 0x49280dd4 type_id: 0x71086e18 full_name: "rtc_class_open" } @@ -356095,7 +360227,7 @@ elf_symbol { name: "rtc_read_alarm" is_defined: true symbol_type: FUNCTION - crc: 0xafab8363 + crc: 0x851613ee type_id: 0x94d99adc full_name: "rtc_read_alarm" } @@ -356104,7 +360236,7 @@ elf_symbol { name: "rtc_read_time" is_defined: true symbol_type: FUNCTION - crc: 0x5cd22b12 + crc: 0x67a9ff3a type_id: 0x94662870 full_name: "rtc_read_time" } @@ -356113,7 +360245,7 @@ elf_symbol { name: "rtc_set_alarm" is_defined: true symbol_type: FUNCTION - crc: 0x71d8fbf8 + crc: 0x4df04d03 type_id: 0x94d99adc full_name: "rtc_set_alarm" } @@ -356140,7 +360272,7 @@ elf_symbol { name: "rtc_update_irq" is_defined: true symbol_type: FUNCTION - crc: 0x7c203353 + crc: 0x27aaad13 type_id: 0x1961cb10 full_name: "rtc_update_irq" } @@ -356167,7 +360299,7 @@ elf_symbol { name: "rtnl_link_register" is_defined: true symbol_type: FUNCTION - crc: 0x0950c4fd + crc: 0x205ef8fa type_id: 0x91cbd408 full_name: "rtnl_link_register" } @@ -356176,7 +360308,7 @@ elf_symbol { name: "rtnl_link_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x957fd10f + crc: 0x00d49db8 type_id: 0x1cd366b4 full_name: "rtnl_link_unregister" } @@ -356194,7 +360326,7 @@ elf_symbol { name: "rtnl_register_module" is_defined: true symbol_type: FUNCTION - crc: 0x17d92a4e + crc: 0x9d81f1c2 type_id: 0x9ece22e0 full_name: "rtnl_register_module" } @@ -356212,7 +360344,7 @@ elf_symbol { name: "rtnl_unicast" is_defined: true symbol_type: FUNCTION - crc: 0x6105bac0 + crc: 0x3b104393 type_id: 0x9cd3f2b1 full_name: "rtnl_unicast" } @@ -356248,7 +360380,7 @@ elf_symbol { name: "runqueues" is_defined: true symbol_type: OBJECT - crc: 0x1e9e2e48 + crc: 0xd1a8c6fe type_id: 0x924a9b47 full_name: "runqueues" } @@ -356257,7 +360389,7 @@ elf_symbol { name: "safe_candev_priv" is_defined: true symbol_type: FUNCTION - crc: 0xd6a554aa + crc: 0xf9c401e8 type_id: 0x8426e149 full_name: "safe_candev_priv" } @@ -356266,7 +360398,7 @@ elf_symbol { name: "sampling_rate_store" is_defined: true symbol_type: FUNCTION - crc: 0x1d611702 + crc: 0xfa48f533 type_id: 0x1d04d3fd full_name: "sampling_rate_store" } @@ -356275,7 +360407,7 @@ elf_symbol { name: "sb800_prefetch" is_defined: true symbol_type: FUNCTION - crc: 0x876f007c + crc: 0x2a670047 type_id: 0x1192ec84 full_name: "sb800_prefetch" } @@ -356329,7 +360461,7 @@ elf_symbol { name: "sched_set_fifo" is_defined: true symbol_type: FUNCTION - crc: 0x4c30aee2 + crc: 0x6969d6a4 type_id: 0x17de3be6 full_name: "sched_set_fifo" } @@ -356338,7 +360470,7 @@ elf_symbol { name: "sched_set_fifo_low" is_defined: true symbol_type: FUNCTION - crc: 0xfa98d613 + crc: 0x447101cb type_id: 0x17de3be6 full_name: "sched_set_fifo_low" } @@ -356347,7 +360479,7 @@ elf_symbol { name: "sched_set_normal" is_defined: true symbol_type: FUNCTION - crc: 0x88ba9acc + crc: 0x6011ff96 type_id: 0x1642b8aa full_name: "sched_set_normal" } @@ -356356,7 +360488,7 @@ elf_symbol { name: "sched_setattr" is_defined: true symbol_type: FUNCTION - crc: 0xdf5bf8a6 + crc: 0x7f74c141 type_id: 0x9a2476b0 full_name: "sched_setattr" } @@ -356365,7 +360497,7 @@ elf_symbol { name: "sched_setattr_nocheck" is_defined: true symbol_type: FUNCTION - crc: 0x12a54303 + crc: 0x22c72821 type_id: 0x9a2476b0 full_name: "sched_setattr_nocheck" } @@ -356374,7 +360506,7 @@ elf_symbol { name: "sched_setscheduler" is_defined: true symbol_type: FUNCTION - crc: 0xe409ac5a + crc: 0xc8cda025 type_id: 0x9b56b28e full_name: "sched_setscheduler" } @@ -356383,7 +360515,7 @@ elf_symbol { name: "sched_setscheduler_nocheck" is_defined: true symbol_type: FUNCTION - crc: 0xd7567be7 + crc: 0x6854c4d9 type_id: 0x9b56b28e full_name: "sched_setscheduler_nocheck" } @@ -356392,7 +360524,7 @@ elf_symbol { name: "sched_show_task" is_defined: true symbol_type: FUNCTION - crc: 0xbdceeec1 + crc: 0x7385eda2 type_id: 0x17de3be6 full_name: "sched_show_task" } @@ -356455,7 +360587,7 @@ elf_symbol { name: "scmi_driver_register" is_defined: true symbol_type: FUNCTION - crc: 0xf1ffad80 + crc: 0x8793c5bf type_id: 0x911879fc full_name: "scmi_driver_register" } @@ -356464,7 +360596,7 @@ elf_symbol { name: "scmi_driver_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x6047fbe8 + crc: 0x33a101e6 type_id: 0x1c23d01c full_name: "scmi_driver_unregister" } @@ -356473,7 +360605,7 @@ elf_symbol { name: "scmi_protocol_register" is_defined: true symbol_type: FUNCTION - crc: 0x8d4c065b + crc: 0x9f2b85dd type_id: 0x913b3774 full_name: "scmi_protocol_register" } @@ -356482,7 +360614,7 @@ elf_symbol { name: "scmi_protocol_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xb9357db4 + crc: 0x888996b4 type_id: 0x1c2385c8 full_name: "scmi_protocol_unregister" } @@ -356495,12 +360627,21 @@ elf_symbol { type_id: 0x9f7ddfb5 full_name: "scnprintf" } +elf_symbol { + id: 0xa0d4d843 + name: "scsi_add_host_with_dma" + is_defined: true + symbol_type: FUNCTION + crc: 0x192143f2 + type_id: 0x987fb987 + full_name: "scsi_add_host_with_dma" +} elf_symbol { id: 0x7a6a0afc name: "scsi_alloc_request" is_defined: true symbol_type: FUNCTION - crc: 0xf2f260e9 + crc: 0x9517da9a type_id: 0xdde97c3b full_name: "scsi_alloc_request" } @@ -356509,7 +360650,7 @@ elf_symbol { name: "scsi_autopm_get_device" is_defined: true symbol_type: FUNCTION - crc: 0x963363e7 + crc: 0xdac2e831 type_id: 0x94dfa784 full_name: "scsi_autopm_get_device" } @@ -356518,7 +360659,7 @@ elf_symbol { name: "scsi_autopm_put_device" is_defined: true symbol_type: FUNCTION - crc: 0x7ed9c5c3 + crc: 0x88b0ff76 type_id: 0x19c71538 full_name: "scsi_autopm_put_device" } @@ -356527,7 +360668,7 @@ elf_symbol { name: "scsi_block_requests" is_defined: true symbol_type: FUNCTION - crc: 0x32cd0e38 + crc: 0x36ced6b2 type_id: 0x156efee0 full_name: "scsi_block_requests" } @@ -356536,10 +360677,19 @@ elf_symbol { name: "scsi_block_when_processing_errors" is_defined: true symbol_type: FUNCTION - crc: 0xdc8a6a2e + crc: 0xf90825ef type_id: 0x94dfa784 full_name: "scsi_block_when_processing_errors" } +elf_symbol { + id: 0x278a6b59 + name: "scsi_change_queue_depth" + is_defined: true + symbol_type: FUNCTION + crc: 0x5b30110a + type_id: 0x954324c8 + full_name: "scsi_change_queue_depth" +} elf_symbol { id: 0xe4036f2e name: "scsi_cmd_allowed" @@ -356563,25 +360713,79 @@ elf_symbol { name: "scsi_device_get" is_defined: true symbol_type: FUNCTION - crc: 0xded598a2 + crc: 0xc2bd787e type_id: 0x94dfa784 full_name: "scsi_device_get" } +elf_symbol { + id: 0x14eb95fa + name: "scsi_device_lookup" + is_defined: true + symbol_type: FUNCTION + crc: 0x4cf8c42c + type_id: 0xa355dd14 + full_name: "scsi_device_lookup" +} elf_symbol { id: 0x474e9bcc name: "scsi_device_put" is_defined: true symbol_type: FUNCTION - crc: 0xa303cd9e + crc: 0x1376f5f1 type_id: 0x19c71538 full_name: "scsi_device_put" } +elf_symbol { + id: 0xf10245da + name: "scsi_dma_map" + is_defined: true + symbol_type: FUNCTION + crc: 0x4ee13eab + type_id: 0x9265c435 + full_name: "scsi_dma_map" +} +elf_symbol { + id: 0x18cbd7f9 + name: "scsi_dma_unmap" + is_defined: true + symbol_type: FUNCTION + crc: 0xf558f0c1 + type_id: 0x1f7d7689 + full_name: "scsi_dma_unmap" +} +elf_symbol { + id: 0x32b196e0 + name: "scsi_host_alloc" + is_defined: true + symbol_type: FUNCTION + crc: 0xba9edeee + type_id: 0x0fe1d65c + full_name: "scsi_host_alloc" +} +elf_symbol { + id: 0x022517f0 + name: "scsi_host_lookup" + is_defined: true + symbol_type: FUNCTION + crc: 0xad4abd92 + type_id: 0x30dc6fbb + full_name: "scsi_host_lookup" +} +elf_symbol { + id: 0x4d8a452e + name: "scsi_host_put" + is_defined: true + symbol_type: FUNCTION + crc: 0x7e02fb46 + type_id: 0x156efee0 + full_name: "scsi_host_put" +} elf_symbol { id: 0x7509c737 name: "scsi_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0x02eeccab + crc: 0x15f11115 type_id: 0x969313ca full_name: "scsi_ioctl" } @@ -356590,10 +360794,19 @@ elf_symbol { name: "scsi_ioctl_block_when_processing_errors" is_defined: true symbol_type: FUNCTION - crc: 0xecfb8bec + crc: 0xa284f3a6 type_id: 0x95587b1f full_name: "scsi_ioctl_block_when_processing_errors" } +elf_symbol { + id: 0xcecaa985 + name: "scsi_is_host_device" + is_defined: true + symbol_type: FUNCTION + crc: 0x6ec7f10b + type_id: 0x92697f90 + full_name: "scsi_is_host_device" +} elf_symbol { id: 0x36deacf7 name: "scsi_normalize_sense" @@ -356603,21 +360816,57 @@ elf_symbol { type_id: 0xf0fa540a full_name: "scsi_normalize_sense" } +elf_symbol { + id: 0xf0e07f22 + name: "scsi_print_command" + is_defined: true + symbol_type: FUNCTION + crc: 0x395acc05 + type_id: 0x1f7d7689 + full_name: "scsi_print_command" +} elf_symbol { id: 0x5286bfd6 name: "scsi_register_interface" is_defined: true symbol_type: FUNCTION - crc: 0x93b45655 + crc: 0xb7831769 type_id: 0x9d725f0c full_name: "scsi_register_interface" } +elf_symbol { + id: 0x8deacb1d + name: "scsi_remove_host" + is_defined: true + symbol_type: FUNCTION + crc: 0x33604e0c + type_id: 0x156efee0 + full_name: "scsi_remove_host" +} +elf_symbol { + id: 0x2e407415 + name: "scsi_report_bus_reset" + is_defined: true + symbol_type: FUNCTION + crc: 0xd7ad6bda + type_id: 0x14f27dac + full_name: "scsi_report_bus_reset" +} +elf_symbol { + id: 0xc9021692 + name: "scsi_scan_host" + is_defined: true + symbol_type: FUNCTION + crc: 0x036fd084 + type_id: 0x156efee0 + full_name: "scsi_scan_host" +} elf_symbol { id: 0x9c54c873 name: "scsi_unblock_requests" is_defined: true symbol_type: FUNCTION - crc: 0x50afbdcf + crc: 0x8960feee type_id: 0x156efee0 full_name: "scsi_unblock_requests" } @@ -356626,7 +360875,7 @@ elf_symbol { name: "sdev_prefix_printk" is_defined: true symbol_type: FUNCTION - crc: 0xdb450497 + crc: 0xf1ea9215 type_id: 0x1fca95d0 full_name: "sdev_prefix_printk" } @@ -356635,7 +360884,7 @@ elf_symbol { name: "sdhci_add_host" is_defined: true symbol_type: FUNCTION - crc: 0x76d15542 + crc: 0x0c0c74d2 type_id: 0x93dfa305 full_name: "sdhci_add_host" } @@ -356644,7 +360893,7 @@ elf_symbol { name: "sdhci_cleanup_host" is_defined: true symbol_type: FUNCTION - crc: 0x1be87c3e + crc: 0xdee4aa9d type_id: 0x1ec711b9 full_name: "sdhci_cleanup_host" } @@ -356653,7 +360902,7 @@ elf_symbol { name: "sdhci_cqe_disable" is_defined: true symbol_type: FUNCTION - crc: 0xac2b3147 + crc: 0x83293175 type_id: 0x1cabfee0 full_name: "sdhci_cqe_disable" } @@ -356662,7 +360911,7 @@ elf_symbol { name: "sdhci_cqe_enable" is_defined: true symbol_type: FUNCTION - crc: 0x72472af2 + crc: 0x1315dd27 type_id: 0x1d1e039f full_name: "sdhci_cqe_enable" } @@ -356671,7 +360920,7 @@ elf_symbol { name: "sdhci_cqe_irq" is_defined: true symbol_type: FUNCTION - crc: 0x506dbd3c + crc: 0xda95c5aa type_id: 0xf3dba0e1 full_name: "sdhci_cqe_irq" } @@ -356680,7 +360929,7 @@ elf_symbol { name: "sdhci_enable_clk" is_defined: true symbol_type: FUNCTION - crc: 0x25ae39ad + crc: 0xe122dbd6 type_id: 0x1c822746 full_name: "sdhci_enable_clk" } @@ -356689,7 +360938,7 @@ elf_symbol { name: "sdhci_get_property" is_defined: true symbol_type: FUNCTION - crc: 0x78e7da95 + crc: 0x88908872 type_id: 0x1f55a7e6 full_name: "sdhci_get_property" } @@ -356698,7 +360947,7 @@ elf_symbol { name: "sdhci_pltfm_free" is_defined: true symbol_type: FUNCTION - crc: 0x6ce783e6 + crc: 0x8995b46e type_id: 0x1f55a7e6 full_name: "sdhci_pltfm_free" } @@ -356707,7 +360956,7 @@ elf_symbol { name: "sdhci_pltfm_init" is_defined: true symbol_type: FUNCTION - crc: 0x91ad17a4 + crc: 0xcfc8bfba type_id: 0xb019e307 full_name: "sdhci_pltfm_init" } @@ -356716,7 +360965,7 @@ elf_symbol { name: "sdhci_remove_host" is_defined: true symbol_type: FUNCTION - crc: 0x17ef9914 + crc: 0x25786536 type_id: 0x1f5b92f5 full_name: "sdhci_remove_host" } @@ -356725,7 +360974,7 @@ elf_symbol { name: "sdhci_reset" is_defined: true symbol_type: FUNCTION - crc: 0x92309955 + crc: 0xe701cfbe type_id: 0x1e626071 full_name: "sdhci_reset" } @@ -356734,7 +360983,7 @@ elf_symbol { name: "sdhci_set_bus_width" is_defined: true symbol_type: FUNCTION - crc: 0x8b127f13 + crc: 0x6663876a type_id: 0x1f5b92f5 full_name: "sdhci_set_bus_width" } @@ -356743,7 +360992,7 @@ elf_symbol { name: "sdhci_set_power_noreg" is_defined: true symbol_type: FUNCTION - crc: 0xcfca5f5c + crc: 0xa35ca116 type_id: 0x1f835b6f full_name: "sdhci_set_power_noreg" } @@ -356752,7 +361001,7 @@ elf_symbol { name: "sdhci_setup_host" is_defined: true symbol_type: FUNCTION - crc: 0x1d0b263d + crc: 0x06abc1df type_id: 0x93dfa305 full_name: "sdhci_setup_host" } @@ -356761,7 +361010,7 @@ elf_symbol { name: "sdio_claim_host" is_defined: true symbol_type: FUNCTION - crc: 0x6561f184 + crc: 0x492931fb type_id: 0x1402e6d4 full_name: "sdio_claim_host" } @@ -356770,7 +361019,7 @@ elf_symbol { name: "sdio_claim_irq" is_defined: true symbol_type: FUNCTION - crc: 0xdb8ef29f + crc: 0x90b6ea7a type_id: 0x99b6bd9e full_name: "sdio_claim_irq" } @@ -356779,7 +361028,7 @@ elf_symbol { name: "sdio_disable_func" is_defined: true symbol_type: FUNCTION - crc: 0x9b7045c2 + crc: 0x8c860163 type_id: 0x991a5468 full_name: "sdio_disable_func" } @@ -356788,7 +361037,7 @@ elf_symbol { name: "sdio_enable_func" is_defined: true symbol_type: FUNCTION - crc: 0xc9865565 + crc: 0x127490d0 type_id: 0x991a5468 full_name: "sdio_enable_func" } @@ -356797,7 +361046,7 @@ elf_symbol { name: "sdio_memcpy_fromio" is_defined: true symbol_type: FUNCTION - crc: 0x9f2dab9f + crc: 0x3fffa14d type_id: 0x99685c26 full_name: "sdio_memcpy_fromio" } @@ -356806,7 +361055,7 @@ elf_symbol { name: "sdio_memcpy_toio" is_defined: true symbol_type: FUNCTION - crc: 0xe69042c0 + crc: 0x8fdd948f type_id: 0x980bf22a full_name: "sdio_memcpy_toio" } @@ -356815,7 +361064,7 @@ elf_symbol { name: "sdio_readb" is_defined: true symbol_type: FUNCTION - crc: 0x838fdb47 + crc: 0xda54cf9c type_id: 0x56c2caab full_name: "sdio_readb" } @@ -356824,7 +361073,7 @@ elf_symbol { name: "sdio_readsb" is_defined: true symbol_type: FUNCTION - crc: 0xc52b2e68 + crc: 0x3ca54db3 type_id: 0x99685c26 full_name: "sdio_readsb" } @@ -356833,7 +361082,7 @@ elf_symbol { name: "sdio_register_driver" is_defined: true symbol_type: FUNCTION - crc: 0xf51a8b1a + crc: 0x5c29c01c type_id: 0x92a01938 full_name: "sdio_register_driver" } @@ -356842,7 +361091,7 @@ elf_symbol { name: "sdio_release_host" is_defined: true symbol_type: FUNCTION - crc: 0x91ac4228 + crc: 0x502fcced type_id: 0x1402e6d4 full_name: "sdio_release_host" } @@ -356851,7 +361100,7 @@ elf_symbol { name: "sdio_release_irq" is_defined: true symbol_type: FUNCTION - crc: 0x5bf7f5e7 + crc: 0xb15a891c type_id: 0x991a5468 full_name: "sdio_release_irq" } @@ -356860,7 +361109,7 @@ elf_symbol { name: "sdio_set_block_size" is_defined: true symbol_type: FUNCTION - crc: 0x05bd3c2f + crc: 0xa6615ef6 type_id: 0x980c41f0 full_name: "sdio_set_block_size" } @@ -356869,7 +361118,7 @@ elf_symbol { name: "sdio_unregister_driver" is_defined: true symbol_type: FUNCTION - crc: 0xa31fd309 + crc: 0xeab5f029 type_id: 0x1fb8ab84 full_name: "sdio_unregister_driver" } @@ -356878,7 +361127,7 @@ elf_symbol { name: "sdio_writeb" is_defined: true symbol_type: FUNCTION - crc: 0x27df3c2e + crc: 0xeabb2351 type_id: 0x14b6bb25 full_name: "sdio_writeb" } @@ -356887,7 +361136,7 @@ elf_symbol { name: "sdio_writeb_readb" is_defined: true symbol_type: FUNCTION - crc: 0x75d82686 + crc: 0x8543bde2 type_id: 0x576454c1 full_name: "sdio_writeb_readb" } @@ -356896,7 +361145,7 @@ elf_symbol { name: "sdio_writesb" is_defined: true symbol_type: FUNCTION - crc: 0x3b32773a + crc: 0x2094a7e0 type_id: 0x980bf22a full_name: "sdio_writesb" } @@ -356932,7 +361181,7 @@ elf_symbol { name: "select_fallback_rq" is_defined: true symbol_type: FUNCTION - crc: 0xdddf746f + crc: 0xa200faf6 type_id: 0x843cb143 full_name: "select_fallback_rq" } @@ -356941,7 +361190,7 @@ elf_symbol { name: "send_sig" is_defined: true symbol_type: FUNCTION - crc: 0x9ea4539d + crc: 0x23cdafe1 type_id: 0x84257977 full_name: "send_sig" } @@ -356950,7 +361199,7 @@ elf_symbol { name: "send_sig_info" is_defined: true symbol_type: FUNCTION - crc: 0x6974d9f6 + crc: 0xe8be3904 type_id: 0x84af08b2 full_name: "send_sig_info" } @@ -356968,7 +361217,7 @@ elf_symbol { name: "seq_hex_dump" is_defined: true symbol_type: FUNCTION - crc: 0xc2e07945 + crc: 0x15c5f131 type_id: 0x11e1274d full_name: "seq_hex_dump" } @@ -356995,7 +361244,7 @@ elf_symbol { name: "seq_lseek" is_defined: true symbol_type: FUNCTION - crc: 0xca53775a + crc: 0x3b2d5b49 type_id: 0x2d64ae3e full_name: "seq_lseek" } @@ -357004,7 +361253,7 @@ elf_symbol { name: "seq_open" is_defined: true symbol_type: FUNCTION - crc: 0x04be10c4 + crc: 0xa720529a type_id: 0x9b472ec5 full_name: "seq_open" } @@ -357013,7 +361262,7 @@ elf_symbol { name: "seq_printf" is_defined: true symbol_type: FUNCTION - crc: 0x2df7a470 + crc: 0x4627856a type_id: 0x11d02068 full_name: "seq_printf" } @@ -357022,7 +361271,7 @@ elf_symbol { name: "seq_putc" is_defined: true symbol_type: FUNCTION - crc: 0x9e0c3493 + crc: 0x0756d1f4 type_id: 0x11e015cb full_name: "seq_putc" } @@ -357031,7 +361280,7 @@ elf_symbol { name: "seq_puts" is_defined: true symbol_type: FUNCTION - crc: 0x9800a3d0 + crc: 0x060085c2 type_id: 0x11f96aea full_name: "seq_puts" } @@ -357040,7 +361289,7 @@ elf_symbol { name: "seq_read" is_defined: true symbol_type: FUNCTION - crc: 0x33184e97 + crc: 0x46290ed0 type_id: 0x12e4741f full_name: "seq_read" } @@ -357049,7 +361298,7 @@ elf_symbol { name: "seq_release" is_defined: true symbol_type: FUNCTION - crc: 0x8d6fb7c8 + crc: 0x86dee284 type_id: 0x9b022eae full_name: "seq_release" } @@ -357058,7 +361307,7 @@ elf_symbol { name: "seq_release_private" is_defined: true symbol_type: FUNCTION - crc: 0x2401d299 + crc: 0x5415e068 type_id: 0x9b022eae full_name: "seq_release_private" } @@ -357067,7 +361316,7 @@ elf_symbol { name: "seq_vprintf" is_defined: true symbol_type: FUNCTION - crc: 0x7a0257c6 + crc: 0x7e4726e8 type_id: 0x11c013b1 full_name: "seq_vprintf" } @@ -357076,7 +361325,7 @@ elf_symbol { name: "seq_write" is_defined: true symbol_type: FUNCTION - crc: 0xd425ba5e + crc: 0x207bba1f type_id: 0x9cc0eb8f full_name: "seq_write" } @@ -357085,7 +361334,7 @@ elf_symbol { name: "serdev_device_close" is_defined: true symbol_type: FUNCTION - crc: 0xa0375181 + crc: 0x68328a0e type_id: 0x1e70c9ff full_name: "serdev_device_close" } @@ -357094,7 +361343,7 @@ elf_symbol { name: "serdev_device_get_tiocm" is_defined: true symbol_type: FUNCTION - crc: 0x02ca8ebc + crc: 0xf29cc52d type_id: 0x93687b43 full_name: "serdev_device_get_tiocm" } @@ -357103,7 +361352,7 @@ elf_symbol { name: "serdev_device_open" is_defined: true symbol_type: FUNCTION - crc: 0xabe9cea6 + crc: 0x6d728cc1 type_id: 0x93687b43 full_name: "serdev_device_open" } @@ -357112,7 +361361,7 @@ elf_symbol { name: "serdev_device_set_baudrate" is_defined: true symbol_type: FUNCTION - crc: 0x194ca3cf + crc: 0x3675b5a3 type_id: 0xc125f30f full_name: "serdev_device_set_baudrate" } @@ -357121,7 +361370,7 @@ elf_symbol { name: "serdev_device_set_flow_control" is_defined: true symbol_type: FUNCTION - crc: 0xadc1db54 + crc: 0x4a0005b8 type_id: 0x1fc53480 full_name: "serdev_device_set_flow_control" } @@ -357130,7 +361379,7 @@ elf_symbol { name: "serdev_device_set_tiocm" is_defined: true symbol_type: FUNCTION - crc: 0xc5aa3b49 + crc: 0x145727f5 type_id: 0x92ed303b full_name: "serdev_device_set_tiocm" } @@ -357139,7 +361388,7 @@ elf_symbol { name: "serdev_device_wait_until_sent" is_defined: true symbol_type: FUNCTION - crc: 0x438ba555 + crc: 0x3aa214a2 type_id: 0x1d80f189 full_name: "serdev_device_wait_until_sent" } @@ -357148,7 +361397,7 @@ elf_symbol { name: "serdev_device_write_buf" is_defined: true symbol_type: FUNCTION - crc: 0x00958be2 + crc: 0x0e56d21d type_id: 0x93b44747 full_name: "serdev_device_write_buf" } @@ -357157,7 +361406,7 @@ elf_symbol { name: "serdev_device_write_flush" is_defined: true symbol_type: FUNCTION - crc: 0x259209a4 + crc: 0xa85a775c type_id: 0x1e70c9ff full_name: "serdev_device_write_flush" } @@ -357166,7 +361415,7 @@ elf_symbol { name: "serio_close" is_defined: true symbol_type: FUNCTION - crc: 0x7068867f + crc: 0xbd8c915f type_id: 0x10256efa full_name: "serio_close" } @@ -357175,7 +361424,7 @@ elf_symbol { name: "serio_interrupt" is_defined: true symbol_type: FUNCTION - crc: 0xbc46f8ac + crc: 0x19129791 type_id: 0x231edf87 full_name: "serio_interrupt" } @@ -357184,7 +361433,7 @@ elf_symbol { name: "serio_open" is_defined: true symbol_type: FUNCTION - crc: 0xf29ca034 + crc: 0x041c8e3a type_id: 0x9d191a3a full_name: "serio_open" } @@ -357193,7 +361442,7 @@ elf_symbol { name: "serio_reconnect" is_defined: true symbol_type: FUNCTION - crc: 0x7f2259c9 + crc: 0xf7aa1316 type_id: 0x10256efa full_name: "serio_reconnect" } @@ -357202,7 +361451,7 @@ elf_symbol { name: "serio_rescan" is_defined: true symbol_type: FUNCTION - crc: 0xc105ef22 + crc: 0xdb0ce864 type_id: 0x10256efa full_name: "serio_rescan" } @@ -357211,7 +361460,7 @@ elf_symbol { name: "serio_unregister_child_port" is_defined: true symbol_type: FUNCTION - crc: 0x83735191 + crc: 0x1f2a374d type_id: 0x10256efa full_name: "serio_unregister_child_port" } @@ -357220,7 +361469,7 @@ elf_symbol { name: "serio_unregister_driver" is_defined: true symbol_type: FUNCTION - crc: 0xdf7cc535 + crc: 0x9768541d type_id: 0x12d43657 full_name: "serio_unregister_driver" } @@ -357229,7 +361478,7 @@ elf_symbol { name: "serio_unregister_port" is_defined: true symbol_type: FUNCTION - crc: 0x83d17df4 + crc: 0xbd06524d type_id: 0x10256efa full_name: "serio_unregister_port" } @@ -357238,7 +361487,7 @@ elf_symbol { name: "set_blocksize" is_defined: true symbol_type: FUNCTION - crc: 0x389bf754 + crc: 0x180257c1 type_id: 0x9f17e634 full_name: "set_blocksize" } @@ -357247,7 +361496,7 @@ elf_symbol { name: "set_capacity" is_defined: true symbol_type: FUNCTION - crc: 0x210404e7 + crc: 0x25d748de type_id: 0x1b96d351 full_name: "set_capacity" } @@ -357256,7 +361505,7 @@ elf_symbol { name: "set_capacity_and_notify" is_defined: true symbol_type: FUNCTION - crc: 0x3f22c915 + crc: 0x02e8d24c type_id: 0xf5aad9c6 full_name: "set_capacity_and_notify" } @@ -357265,7 +361514,7 @@ elf_symbol { name: "set_cpus_allowed_ptr" is_defined: true symbol_type: FUNCTION - crc: 0xf4fde54b + crc: 0xe3e8f2b4 type_id: 0x9a02b25a full_name: "set_cpus_allowed_ptr" } @@ -357283,7 +361532,7 @@ elf_symbol { name: "set_disk_ro" is_defined: true symbol_type: FUNCTION - crc: 0x433d8911 + crc: 0x878e8b8f type_id: 0x1961e0a6 full_name: "set_disk_ro" } @@ -357301,7 +361550,7 @@ elf_symbol { name: "set_next_entity" is_defined: true symbol_type: FUNCTION - crc: 0xa3066a78 + crc: 0xec2d9373 type_id: 0x130ef56d full_name: "set_next_entity" } @@ -357319,7 +361568,7 @@ elf_symbol { name: "set_page_dirty" is_defined: true symbol_type: FUNCTION - crc: 0x44a9aede + crc: 0x2c1a0a88 type_id: 0xff048ca3 full_name: "set_page_dirty" } @@ -357328,7 +361577,7 @@ elf_symbol { name: "set_page_dirty_lock" is_defined: true symbol_type: FUNCTION - crc: 0xd659a41b + crc: 0x0c488906 type_id: 0x9c203488 full_name: "set_page_dirty_lock" } @@ -357337,7 +361586,7 @@ elf_symbol { name: "set_task_cpu" is_defined: true symbol_type: FUNCTION - crc: 0xec3f0517 + crc: 0xe34309d4 type_id: 0x16c82e7e full_name: "set_task_cpu" } @@ -357346,7 +361595,7 @@ elf_symbol { name: "set_user_nice" is_defined: true symbol_type: FUNCTION - crc: 0x47084b68 + crc: 0xd8ee1b30 type_id: 0x142e0390 full_name: "set_user_nice" } @@ -357355,7 +361604,7 @@ elf_symbol { name: "setup_udp_tunnel_sock" is_defined: true symbol_type: FUNCTION - crc: 0x52e91b49 + crc: 0x3dd5dc86 type_id: 0x13f4af03 full_name: "setup_udp_tunnel_sock" } @@ -357382,7 +361631,7 @@ elf_symbol { name: "sg_alloc_table_from_pages_segment" is_defined: true symbol_type: FUNCTION - crc: 0x4d064ac9 + crc: 0x632d0133 type_id: 0x9d955638 full_name: "sg_alloc_table_from_pages_segment" } @@ -357445,7 +361694,7 @@ elf_symbol { name: "sg_miter_next" is_defined: true symbol_type: FUNCTION - crc: 0x05a32090 + crc: 0xcee4c78f type_id: 0xf226477c full_name: "sg_miter_next" } @@ -357454,7 +361703,7 @@ elf_symbol { name: "sg_miter_skip" is_defined: true symbol_type: FUNCTION - crc: 0x732aee37 + crc: 0xd173fd52 type_id: 0xf14b1ed8 full_name: "sg_miter_skip" } @@ -357463,7 +361712,7 @@ elf_symbol { name: "sg_miter_start" is_defined: true symbol_type: FUNCTION - crc: 0xa7fa433c + crc: 0xbefc0d59 type_id: 0x1c4d054f full_name: "sg_miter_start" } @@ -357472,7 +361721,7 @@ elf_symbol { name: "sg_miter_stop" is_defined: true symbol_type: FUNCTION - crc: 0x9fedf379 + crc: 0x3f84980e type_id: 0x1c1a4deb full_name: "sg_miter_stop" } @@ -357494,12 +361743,21 @@ elf_symbol { type_id: 0x84a9b4bc full_name: "sg_next" } +elf_symbol { + id: 0x12402fa7 + name: "sget_fc" + is_defined: true + symbol_type: FUNCTION + crc: 0xa16f3002 + type_id: 0xf07462c6 + full_name: "sget_fc" +} elf_symbol { id: 0x7f3b48aa name: "shmem_file_setup" is_defined: true symbol_type: FUNCTION - crc: 0xe9ef458b + crc: 0xdfbc06f6 type_id: 0x4e848709 full_name: "shmem_file_setup" } @@ -357508,7 +361766,7 @@ elf_symbol { name: "shmem_read_mapping_page_gfp" is_defined: true symbol_type: FUNCTION - crc: 0x50262ff8 + crc: 0x9d11927c type_id: 0xb809e664 full_name: "shmem_read_mapping_page_gfp" } @@ -357517,7 +361775,7 @@ elf_symbol { name: "shmem_truncate_range" is_defined: true symbol_type: FUNCTION - crc: 0x12d1e0f7 + crc: 0xee27617b type_id: 0x16ee4350 full_name: "shmem_truncate_range" } @@ -357590,7 +361848,7 @@ elf_symbol { name: "simple_attr_open" is_defined: true symbol_type: FUNCTION - crc: 0xac228fec + crc: 0x2cc7f78c type_id: 0x9b0987fe full_name: "simple_attr_open" } @@ -357599,7 +361857,7 @@ elf_symbol { name: "simple_attr_read" is_defined: true symbol_type: FUNCTION - crc: 0x997b89f0 + crc: 0xed0604d6 type_id: 0x12e4741f full_name: "simple_attr_read" } @@ -357608,7 +361866,7 @@ elf_symbol { name: "simple_attr_release" is_defined: true symbol_type: FUNCTION - crc: 0x92b88778 + crc: 0x9008c9ca type_id: 0x9b022eae full_name: "simple_attr_release" } @@ -357617,7 +361875,7 @@ elf_symbol { name: "simple_attr_write" is_defined: true symbol_type: FUNCTION - crc: 0x7ca27527 + crc: 0xbe1cb5d6 type_id: 0x120e3950 full_name: "simple_attr_write" } @@ -357626,7 +361884,7 @@ elf_symbol { name: "simple_open" is_defined: true symbol_type: FUNCTION - crc: 0xee04cc02 + crc: 0x96eaa195 type_id: 0x9b022eae full_name: "simple_open" } @@ -357689,7 +361947,7 @@ elf_symbol { name: "single_open" is_defined: true symbol_type: FUNCTION - crc: 0xb0c2620f + crc: 0x548d7ead type_id: 0x9b0a6d47 full_name: "single_open" } @@ -357698,7 +361956,7 @@ elf_symbol { name: "single_open_size" is_defined: true symbol_type: FUNCTION - crc: 0x8bf7dd1f + crc: 0xd6b11feb type_id: 0x9b09bd92 full_name: "single_open_size" } @@ -357707,7 +361965,7 @@ elf_symbol { name: "single_release" is_defined: true symbol_type: FUNCTION - crc: 0xd0f8a1b2 + crc: 0x79d39a7e type_id: 0x9b022eae full_name: "single_release" } @@ -357716,7 +361974,7 @@ elf_symbol { name: "sk_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x469d79fe + crc: 0x23d7851f type_id: 0x6ecc6402 full_name: "sk_alloc" } @@ -357725,7 +361983,7 @@ elf_symbol { name: "sk_common_release" is_defined: true symbol_type: FUNCTION - crc: 0xdbe82714 + crc: 0x90382914 type_id: 0x17c95d08 full_name: "sk_common_release" } @@ -357734,7 +361992,7 @@ elf_symbol { name: "sk_error_report" is_defined: true symbol_type: FUNCTION - crc: 0x681510a3 + crc: 0x0d7f22ae type_id: 0x17c95d08 full_name: "sk_error_report" } @@ -357743,7 +362001,7 @@ elf_symbol { name: "sk_filter_trim_cap" is_defined: true symbol_type: FUNCTION - crc: 0x709f0e3a + crc: 0x33441fc3 type_id: 0x9ad5b349 full_name: "sk_filter_trim_cap" } @@ -357752,7 +362010,7 @@ elf_symbol { name: "sk_free" is_defined: true symbol_type: FUNCTION - crc: 0xbdea0aa0 + crc: 0xf5999c5a type_id: 0x17c95d08 full_name: "sk_free" } @@ -357761,7 +362019,7 @@ elf_symbol { name: "sk_reset_timer" is_defined: true symbol_type: FUNCTION - crc: 0xc392e891 + crc: 0xc3fdf1e6 type_id: 0x173d585f full_name: "sk_reset_timer" } @@ -357770,7 +362028,7 @@ elf_symbol { name: "sk_setup_caps" is_defined: true symbol_type: FUNCTION - crc: 0x09aa781d + crc: 0xe3de67c9 type_id: 0x17803a85 full_name: "sk_setup_caps" } @@ -357779,7 +362037,7 @@ elf_symbol { name: "sk_stop_timer" is_defined: true symbol_type: FUNCTION - crc: 0x82960dfa + crc: 0xc083d08d type_id: 0x17318506 full_name: "sk_stop_timer" } @@ -357788,7 +362046,7 @@ elf_symbol { name: "skb_add_rx_frag" is_defined: true symbol_type: FUNCTION - crc: 0xb48b508e + crc: 0x30a619e9 type_id: 0x10572c13 full_name: "skb_add_rx_frag" } @@ -357797,7 +362055,7 @@ elf_symbol { name: "skb_append_pagefrags" is_defined: true symbol_type: FUNCTION - crc: 0x997f79b5 + crc: 0x2a7193b5 type_id: 0x9cd32cf2 full_name: "skb_append_pagefrags" } @@ -357806,7 +362064,7 @@ elf_symbol { name: "skb_checksum" is_defined: true symbol_type: FUNCTION - crc: 0xfe79a464 + crc: 0x5cb3de5e type_id: 0x345f1809 full_name: "skb_checksum" } @@ -357815,7 +362073,7 @@ elf_symbol { name: "skb_checksum_help" is_defined: true symbol_type: FUNCTION - crc: 0xc017ae77 + crc: 0x5ed43f4a type_id: 0x9cd33969 full_name: "skb_checksum_help" } @@ -357824,7 +362082,7 @@ elf_symbol { name: "skb_clone" is_defined: true symbol_type: FUNCTION - crc: 0x574bad40 + crc: 0xdb9c5692 type_id: 0x6a0b7818 full_name: "skb_clone" } @@ -357833,7 +362091,7 @@ elf_symbol { name: "skb_clone_sk" is_defined: true symbol_type: FUNCTION - crc: 0x497e4625 + crc: 0x1ad92ede type_id: 0x69cde367 full_name: "skb_clone_sk" } @@ -357842,7 +362100,7 @@ elf_symbol { name: "skb_coalesce_rx_frag" is_defined: true symbol_type: FUNCTION - crc: 0x1d12ac12 + crc: 0x73a6b73e type_id: 0x104fd6b8 full_name: "skb_coalesce_rx_frag" } @@ -357851,7 +362109,7 @@ elf_symbol { name: "skb_complete_tx_timestamp" is_defined: true symbol_type: FUNCTION - crc: 0x0bb1be4b + crc: 0x74e5e8c9 type_id: 0x11d3a4b4 full_name: "skb_complete_tx_timestamp" } @@ -357860,7 +362118,7 @@ elf_symbol { name: "skb_complete_wifi_ack" is_defined: true symbol_type: FUNCTION - crc: 0xb3d30ffe + crc: 0x1a64bea8 type_id: 0x107e76aa full_name: "skb_complete_wifi_ack" } @@ -357869,7 +362127,7 @@ elf_symbol { name: "skb_copy" is_defined: true symbol_type: FUNCTION - crc: 0x02a9f35c + crc: 0xbf0bba31 type_id: 0x64c047e6 full_name: "skb_copy" } @@ -357878,7 +362136,7 @@ elf_symbol { name: "skb_copy_bits" is_defined: true symbol_type: FUNCTION - crc: 0x54b9d3e6 + crc: 0x242e409b type_id: 0x93833601 full_name: "skb_copy_bits" } @@ -357887,7 +362145,7 @@ elf_symbol { name: "skb_copy_datagram_from_iter" is_defined: true symbol_type: FUNCTION - crc: 0x91eacaf8 + crc: 0x45ee8112 type_id: 0x9d45fa50 full_name: "skb_copy_datagram_from_iter" } @@ -357896,7 +362154,7 @@ elf_symbol { name: "skb_copy_datagram_iter" is_defined: true symbol_type: FUNCTION - crc: 0x54e5c36b + crc: 0x7c8e65a3 type_id: 0x938ec5ae full_name: "skb_copy_datagram_iter" } @@ -357905,7 +362163,7 @@ elf_symbol { name: "skb_copy_expand" is_defined: true symbol_type: FUNCTION - crc: 0xee358c9d + crc: 0x14a06d88 type_id: 0x6680517a full_name: "skb_copy_expand" } @@ -357914,7 +362172,7 @@ elf_symbol { name: "skb_cow_data" is_defined: true symbol_type: FUNCTION - crc: 0x5e6a4dac + crc: 0x0cd5e5fa type_id: 0x9d4d4add full_name: "skb_cow_data" } @@ -357923,7 +362181,7 @@ elf_symbol { name: "skb_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0x9c53eadb + crc: 0x98d4cb85 type_id: 0x6f42ce8a full_name: "skb_dequeue" } @@ -357932,7 +362190,7 @@ elf_symbol { name: "skb_dequeue_tail" is_defined: true symbol_type: FUNCTION - crc: 0xe2fadfe2 + crc: 0xfd41ae12 type_id: 0x6f42ce8a full_name: "skb_dequeue_tail" } @@ -357941,7 +362199,7 @@ elf_symbol { name: "skb_ensure_writable" is_defined: true symbol_type: FUNCTION - crc: 0xd5b60b90 + crc: 0xcbce7499 type_id: 0x9dc52cf1 full_name: "skb_ensure_writable" } @@ -357950,7 +362208,7 @@ elf_symbol { name: "skb_free_datagram" is_defined: true symbol_type: FUNCTION - crc: 0x9ed2499b + crc: 0x281b35a3 type_id: 0x17dc60ac full_name: "skb_free_datagram" } @@ -357959,7 +362217,7 @@ elf_symbol { name: "skb_page_frag_refill" is_defined: true symbol_type: FUNCTION - crc: 0xe568b761 + crc: 0x4d10d255 type_id: 0xef54849c full_name: "skb_page_frag_refill" } @@ -357968,7 +362226,7 @@ elf_symbol { name: "skb_partial_csum_set" is_defined: true symbol_type: FUNCTION - crc: 0x3c5f1b9e + crc: 0x5b5a99fe type_id: 0xfd96e4d2 full_name: "skb_partial_csum_set" } @@ -357977,7 +362235,7 @@ elf_symbol { name: "skb_pull" is_defined: true symbol_type: FUNCTION - crc: 0x90d13e6b + crc: 0xbb6f9ce2 type_id: 0x56d37e2f full_name: "skb_pull" } @@ -357986,7 +362244,7 @@ elf_symbol { name: "skb_pull_data" is_defined: true symbol_type: FUNCTION - crc: 0x0b760f16 + crc: 0xe46e42e9 type_id: 0x5415be16 full_name: "skb_pull_data" } @@ -357995,7 +362253,7 @@ elf_symbol { name: "skb_pull_rcsum" is_defined: true symbol_type: FUNCTION - crc: 0x4bbc5ccb + crc: 0x50a3af16 type_id: 0x56d37e2f full_name: "skb_pull_rcsum" } @@ -358004,7 +362262,7 @@ elf_symbol { name: "skb_push" is_defined: true symbol_type: FUNCTION - crc: 0x9f1a65ed + crc: 0x858a6893 type_id: 0x56d37e2f full_name: "skb_push" } @@ -358013,7 +362271,7 @@ elf_symbol { name: "skb_put" is_defined: true symbol_type: FUNCTION - crc: 0x67b3c2a5 + crc: 0xe7c13f62 type_id: 0x56d37e2f full_name: "skb_put" } @@ -358022,7 +362280,7 @@ elf_symbol { name: "skb_queue_head" is_defined: true symbol_type: FUNCTION - crc: 0xe64d68d4 + crc: 0xbc5793d1 type_id: 0x17519b9c full_name: "skb_queue_head" } @@ -358031,7 +362289,7 @@ elf_symbol { name: "skb_queue_purge" is_defined: true symbol_type: FUNCTION - crc: 0x3fe3a81b + crc: 0x36bad548 type_id: 0x1744a638 full_name: "skb_queue_purge" } @@ -358040,7 +362298,7 @@ elf_symbol { name: "skb_queue_tail" is_defined: true symbol_type: FUNCTION - crc: 0xa112646f + crc: 0x6ea79cf0 type_id: 0x17519b9c full_name: "skb_queue_tail" } @@ -358049,7 +362307,7 @@ elf_symbol { name: "skb_realloc_headroom" is_defined: true symbol_type: FUNCTION - crc: 0x6335568d + crc: 0x553962cc type_id: 0x68dbf6ff full_name: "skb_realloc_headroom" } @@ -358058,7 +362316,7 @@ elf_symbol { name: "skb_recv_datagram" is_defined: true symbol_type: FUNCTION - crc: 0xa324dc7c + crc: 0x89872822 type_id: 0x6eddf621 full_name: "skb_recv_datagram" } @@ -358067,7 +362325,7 @@ elf_symbol { name: "skb_scrub_packet" is_defined: true symbol_type: FUNCTION - crc: 0x54fe1823 + crc: 0x141e1c1b type_id: 0x107e76aa full_name: "skb_scrub_packet" } @@ -358076,7 +362334,7 @@ elf_symbol { name: "skb_set_owner_w" is_defined: true symbol_type: FUNCTION - crc: 0x5129598f + crc: 0xc9688b3b type_id: 0x11be9b1c full_name: "skb_set_owner_w" } @@ -358085,7 +362343,7 @@ elf_symbol { name: "skb_store_bits" is_defined: true symbol_type: FUNCTION - crc: 0x30f94e17 + crc: 0xa433251f type_id: 0x9d406163 full_name: "skb_store_bits" } @@ -358094,7 +362352,7 @@ elf_symbol { name: "skb_to_sgvec" is_defined: true symbol_type: FUNCTION - crc: 0x81b6b6ed + crc: 0x322b81a4 type_id: 0x9c8c5236 full_name: "skb_to_sgvec" } @@ -358103,7 +362361,7 @@ elf_symbol { name: "skb_trim" is_defined: true symbol_type: FUNCTION - crc: 0x532b8527 + crc: 0x61c0c312 type_id: 0x10dd9e4d full_name: "skb_trim" } @@ -358112,7 +362370,7 @@ elf_symbol { name: "skb_try_coalesce" is_defined: true symbol_type: FUNCTION - crc: 0x6d7340d3 + crc: 0xe5cecaed type_id: 0xffe6827d full_name: "skb_try_coalesce" } @@ -358121,7 +362379,7 @@ elf_symbol { name: "skb_tstamp_tx" is_defined: true symbol_type: FUNCTION - crc: 0x3ba93b76 + crc: 0xb012dade type_id: 0x11d3a4b4 full_name: "skb_tstamp_tx" } @@ -358130,7 +362388,7 @@ elf_symbol { name: "skb_unlink" is_defined: true symbol_type: FUNCTION - crc: 0xe1d01113 + crc: 0x8db64b5a type_id: 0x11b644af full_name: "skb_unlink" } @@ -358238,7 +362496,7 @@ elf_symbol { name: "snd_card_free" is_defined: true symbol_type: FUNCTION - crc: 0x14f61545 + crc: 0xe60b79be type_id: 0x917ece7d full_name: "snd_card_free" } @@ -358247,7 +362505,7 @@ elf_symbol { name: "snd_card_new" is_defined: true symbol_type: FUNCTION - crc: 0xb51e85cb + crc: 0x276614d1 type_id: 0x9c85ef5b full_name: "snd_card_new" } @@ -358256,7 +362514,7 @@ elf_symbol { name: "snd_card_register" is_defined: true symbol_type: FUNCTION - crc: 0x9db7ffd5 + crc: 0x74ca0927 type_id: 0x917ece7d full_name: "snd_card_register" } @@ -358265,7 +362523,7 @@ elf_symbol { name: "snd_compr_stop_error" is_defined: true symbol_type: FUNCTION - crc: 0xf9a22f64 + crc: 0x3cb8b46d type_id: 0x9b735e47 full_name: "snd_compr_stop_error" } @@ -358274,7 +362532,7 @@ elf_symbol { name: "snd_ctl_add" is_defined: true symbol_type: FUNCTION - crc: 0xbfe4044c + crc: 0x3de44f37 type_id: 0x91d0f233 full_name: "snd_ctl_add" } @@ -358283,7 +362541,7 @@ elf_symbol { name: "snd_ctl_boolean_mono_info" is_defined: true symbol_type: FUNCTION - crc: 0x14395850 + crc: 0xb36f21ef type_id: 0x9710bae0 full_name: "snd_ctl_boolean_mono_info" } @@ -358301,7 +362559,7 @@ elf_symbol { name: "snd_ctl_new1" is_defined: true symbol_type: FUNCTION - crc: 0x9661630a + crc: 0x556dd985 type_id: 0x22a7ae7f full_name: "snd_ctl_new1" } @@ -358310,16 +362568,25 @@ elf_symbol { name: "snd_ctl_notify" is_defined: true symbol_type: FUNCTION - crc: 0x4b1120d0 + crc: 0x3d62c852 type_id: 0x1d729530 full_name: "snd_ctl_notify" } +elf_symbol { + id: 0x20fc506b + name: "snd_ctl_remove" + is_defined: true + symbol_type: FUNCTION + crc: 0xc0881f79 + type_id: 0x91d0f233 + full_name: "snd_ctl_remove" +} elf_symbol { id: 0x74d92df1 name: "snd_dma_alloc_dir_pages" is_defined: true symbol_type: FUNCTION - crc: 0x0c3a0110 + crc: 0x745ac93f type_id: 0x84710953 full_name: "snd_dma_alloc_dir_pages" } @@ -358328,16 +362595,25 @@ elf_symbol { name: "snd_dma_free_pages" is_defined: true symbol_type: FUNCTION - crc: 0xcf108c4c + crc: 0x00dc1e8c type_id: 0x1c27266a full_name: "snd_dma_free_pages" } +elf_symbol { + id: 0xf8dd0a45 + name: "snd_hwdep_new" + is_defined: true + symbol_type: FUNCTION + crc: 0x5b6ec819 + type_id: 0x9175015c + full_name: "snd_hwdep_new" +} elf_symbol { id: 0x8a143ba0 name: "snd_info_create_card_entry" is_defined: true symbol_type: FUNCTION - crc: 0xc4da7ed3 + crc: 0x149b41f2 type_id: 0xc3dd5fea full_name: "snd_info_create_card_entry" } @@ -358346,7 +362622,7 @@ elf_symbol { name: "snd_info_create_module_entry" is_defined: true symbol_type: FUNCTION - crc: 0xfc20e42d + crc: 0xb906f64b type_id: 0xcdea85a8 full_name: "snd_info_create_module_entry" } @@ -358355,7 +362631,7 @@ elf_symbol { name: "snd_info_free_entry" is_defined: true symbol_type: FUNCTION - crc: 0xcb66a01d + crc: 0x72962c94 type_id: 0x1f50da89 full_name: "snd_info_free_entry" } @@ -358364,7 +362640,7 @@ elf_symbol { name: "snd_info_register" is_defined: true symbol_type: FUNCTION - crc: 0x14ff3998 + crc: 0x8be06a38 type_id: 0x92486835 full_name: "snd_info_register" } @@ -358382,7 +362658,7 @@ elf_symbol { name: "snd_jack_new" is_defined: true symbol_type: FUNCTION - crc: 0x744d7358 + crc: 0x7c497c01 type_id: 0x919f7f11 full_name: "snd_jack_new" } @@ -358391,7 +362667,7 @@ elf_symbol { name: "snd_jack_report" is_defined: true symbol_type: FUNCTION - crc: 0xf83a67fd + crc: 0xdf6e6f10 type_id: 0x13cd4ba2 full_name: "snd_jack_report" } @@ -358400,7 +362676,7 @@ elf_symbol { name: "snd_jack_set_key" is_defined: true symbol_type: FUNCTION - crc: 0xc86cf1dc + crc: 0xae5b26ea type_id: 0x9e441880 full_name: "snd_jack_set_key" } @@ -358409,7 +362685,7 @@ elf_symbol { name: "snd_pcm_add_chmap_ctls" is_defined: true symbol_type: FUNCTION - crc: 0x0a7cf1c6 + crc: 0xf99a864f type_id: 0x987349b3 full_name: "snd_pcm_add_chmap_ctls" } @@ -358427,7 +362703,7 @@ elf_symbol { name: "snd_pcm_fill_iec958_consumer" is_defined: true symbol_type: FUNCTION - crc: 0xc89eb502 + crc: 0xe3b66803 type_id: 0x9c8e6c6c full_name: "snd_pcm_fill_iec958_consumer" } @@ -358463,7 +362739,7 @@ elf_symbol { name: "snd_pcm_hw_constraint_eld" is_defined: true symbol_type: FUNCTION - crc: 0xdf9309b7 + crc: 0x207d65a4 type_id: 0x9cd28836 full_name: "snd_pcm_hw_constraint_eld" } @@ -358472,7 +362748,7 @@ elf_symbol { name: "snd_pcm_hw_constraint_integer" is_defined: true symbol_type: FUNCTION - crc: 0x0c02a58e + crc: 0xf920a642 type_id: 0x9d51e53b full_name: "snd_pcm_hw_constraint_integer" } @@ -358481,7 +362757,7 @@ elf_symbol { name: "snd_pcm_hw_constraint_list" is_defined: true symbol_type: FUNCTION - crc: 0x732d9580 + crc: 0xd1dc1052 type_id: 0x9db8bf34 full_name: "snd_pcm_hw_constraint_list" } @@ -358490,7 +362766,7 @@ elf_symbol { name: "snd_pcm_hw_constraint_mask64" is_defined: true symbol_type: FUNCTION - crc: 0xdd6bb3e2 + crc: 0xce4025d3 type_id: 0x9d569303 full_name: "snd_pcm_hw_constraint_mask64" } @@ -358499,7 +362775,7 @@ elf_symbol { name: "snd_pcm_hw_constraint_minmax" is_defined: true symbol_type: FUNCTION - crc: 0x4745a068 + crc: 0x75a6bc35 type_id: 0x9d419277 full_name: "snd_pcm_hw_constraint_minmax" } @@ -358508,7 +362784,7 @@ elf_symbol { name: "snd_pcm_hw_constraint_step" is_defined: true symbol_type: FUNCTION - crc: 0x70a08e68 + crc: 0x8ab9e128 type_id: 0x9db8bc66 full_name: "snd_pcm_hw_constraint_step" } @@ -358517,7 +362793,7 @@ elf_symbol { name: "snd_pcm_lib_free_pages" is_defined: true symbol_type: FUNCTION - crc: 0xb7705be6 + crc: 0xb9b5e762 type_id: 0x98aeb261 full_name: "snd_pcm_lib_free_pages" } @@ -358526,7 +362802,7 @@ elf_symbol { name: "snd_pcm_lib_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0xd0def212 + crc: 0xfe26c5ec type_id: 0x99be88a0 full_name: "snd_pcm_lib_ioctl" } @@ -358535,7 +362811,7 @@ elf_symbol { name: "snd_pcm_lib_malloc_pages" is_defined: true symbol_type: FUNCTION - crc: 0xed8f29ac + crc: 0x8adf56be type_id: 0x9b7e67c0 full_name: "snd_pcm_lib_malloc_pages" } @@ -358544,7 +362820,7 @@ elf_symbol { name: "snd_pcm_lib_preallocate_pages" is_defined: true symbol_type: FUNCTION - crc: 0x86e53b7b + crc: 0x2487c30f type_id: 0x1429f877 full_name: "snd_pcm_lib_preallocate_pages" } @@ -358553,7 +362829,7 @@ elf_symbol { name: "snd_pcm_new" is_defined: true symbol_type: FUNCTION - crc: 0xb10d4e58 + crc: 0x55e7886c type_id: 0x919ec1ed full_name: "snd_pcm_new" } @@ -358562,16 +362838,25 @@ elf_symbol { name: "snd_pcm_period_elapsed" is_defined: true symbol_type: FUNCTION - crc: 0x308c1078 + crc: 0x409cc5c3 type_id: 0x15b600dd full_name: "snd_pcm_period_elapsed" } +elf_symbol { + id: 0xba998ee2 + name: "snd_pcm_set_managed_buffer" + is_defined: true + symbol_type: FUNCTION + crc: 0x259da60c + type_id: 0x99314acb + full_name: "snd_pcm_set_managed_buffer" +} elf_symbol { id: 0x74420600 name: "snd_pcm_set_managed_buffer_all" is_defined: true symbol_type: FUNCTION - crc: 0xb6b3e59f + crc: 0x8af9137d type_id: 0x987c7e77 full_name: "snd_pcm_set_managed_buffer_all" } @@ -358580,16 +362865,34 @@ elf_symbol { name: "snd_pcm_set_ops" is_defined: true symbol_type: FUNCTION - crc: 0x890b86cc + crc: 0xe04e4cc4 type_id: 0x15694c5f full_name: "snd_pcm_set_ops" } +elf_symbol { + id: 0xb2f7eb17 + name: "snd_pcm_std_chmaps" + is_defined: true + symbol_type: OBJECT + crc: 0x04e1b99f + type_id: 0x9c404df6 + full_name: "snd_pcm_std_chmaps" +} +elf_symbol { + id: 0x8eb5b50d + name: "snd_pcm_stop" + is_defined: true + symbol_type: FUNCTION + crc: 0x804b2ea8 + type_id: 0x98e6a470 + full_name: "snd_pcm_stop" +} elf_symbol { id: 0x0af8ff72 name: "snd_soc_add_component_controls" is_defined: true symbol_type: FUNCTION - crc: 0x0440c900 + crc: 0xa1d90043 type_id: 0x9928799a full_name: "snd_soc_add_component_controls" } @@ -358598,7 +362901,7 @@ elf_symbol { name: "snd_soc_add_dai_controls" is_defined: true symbol_type: FUNCTION - crc: 0xbff17129 + crc: 0x4bd9e5b1 type_id: 0x9c32da8c full_name: "snd_soc_add_dai_controls" } @@ -358607,7 +362910,7 @@ elf_symbol { name: "snd_soc_bytes_tlv_callback" is_defined: true symbol_type: FUNCTION - crc: 0x4c480e84 + crc: 0x14372644 type_id: 0x96eeaa13 full_name: "snd_soc_bytes_tlv_callback" } @@ -358616,7 +362919,7 @@ elf_symbol { name: "snd_soc_card_get_kcontrol" is_defined: true symbol_type: FUNCTION - crc: 0x7ff7f54b + crc: 0xa51c27de type_id: 0x2a7bc89a full_name: "snd_soc_card_get_kcontrol" } @@ -358625,7 +362928,7 @@ elf_symbol { name: "snd_soc_card_jack_new" is_defined: true symbol_type: FUNCTION - crc: 0xeda4a0ce + crc: 0xc730c2af type_id: 0x9b26368a full_name: "snd_soc_card_jack_new" } @@ -358634,7 +362937,7 @@ elf_symbol { name: "snd_soc_card_jack_new_pins" is_defined: true symbol_type: FUNCTION - crc: 0x536b2aa7 + crc: 0x86c728f0 type_id: 0x9b263487 full_name: "snd_soc_card_jack_new_pins" } @@ -358643,7 +362946,7 @@ elf_symbol { name: "snd_soc_component_disable_pin" is_defined: true symbol_type: FUNCTION - crc: 0xea8558a3 + crc: 0x87271477 type_id: 0x99214080 full_name: "snd_soc_component_disable_pin" } @@ -358652,7 +362955,7 @@ elf_symbol { name: "snd_soc_component_exit_regmap" is_defined: true symbol_type: FUNCTION - crc: 0xe744d81d + crc: 0xbe692c21 type_id: 0x14c1b0e8 full_name: "snd_soc_component_exit_regmap" } @@ -358661,7 +362964,7 @@ elf_symbol { name: "snd_soc_component_force_enable_pin" is_defined: true symbol_type: FUNCTION - crc: 0x70af2a87 + crc: 0x12e686f6 type_id: 0x99214080 full_name: "snd_soc_component_force_enable_pin" } @@ -358670,7 +362973,7 @@ elf_symbol { name: "snd_soc_component_init_regmap" is_defined: true symbol_type: FUNCTION - crc: 0x94783aa6 + crc: 0xe6ebc613 type_id: 0x14e71014 full_name: "snd_soc_component_init_regmap" } @@ -358679,7 +362982,7 @@ elf_symbol { name: "snd_soc_component_read" is_defined: true symbol_type: FUNCTION - crc: 0xb3f09290 + crc: 0xf33ebea8 type_id: 0xcb948a18 full_name: "snd_soc_component_read" } @@ -358688,7 +362991,7 @@ elf_symbol { name: "snd_soc_component_read_field" is_defined: true symbol_type: FUNCTION - crc: 0xf3b91380 + crc: 0x8f0f1b8b type_id: 0xcb85eb41 full_name: "snd_soc_component_read_field" } @@ -358697,7 +363000,7 @@ elf_symbol { name: "snd_soc_component_set_jack" is_defined: true symbol_type: FUNCTION - crc: 0x7ef3bd87 + crc: 0xcdd9e47a type_id: 0x99f8b4f4 full_name: "snd_soc_component_set_jack" } @@ -358706,7 +363009,7 @@ elf_symbol { name: "snd_soc_component_set_pll" is_defined: true symbol_type: FUNCTION - crc: 0x5fe1bd6a + crc: 0x5abc3cba type_id: 0x985d4e58 full_name: "snd_soc_component_set_pll" } @@ -358715,7 +363018,7 @@ elf_symbol { name: "snd_soc_component_set_sysclk" is_defined: true symbol_type: FUNCTION - crc: 0x5733a163 + crc: 0x940810f0 type_id: 0x985d46f1 full_name: "snd_soc_component_set_sysclk" } @@ -358724,7 +363027,7 @@ elf_symbol { name: "snd_soc_component_update_bits" is_defined: true symbol_type: FUNCTION - crc: 0x5f81a4ea + crc: 0xc32e30bf type_id: 0x98df6080 full_name: "snd_soc_component_update_bits" } @@ -358733,7 +363036,7 @@ elf_symbol { name: "snd_soc_component_write" is_defined: true symbol_type: FUNCTION - crc: 0xec95b3f2 + crc: 0x792c0758 type_id: 0x98de7695 full_name: "snd_soc_component_write" } @@ -358742,7 +363045,7 @@ elf_symbol { name: "snd_soc_component_write_field" is_defined: true symbol_type: FUNCTION - crc: 0x0b32b9b7 + crc: 0xae644449 type_id: 0x98df6080 full_name: "snd_soc_component_write_field" } @@ -358751,7 +363054,7 @@ elf_symbol { name: "snd_soc_dai_get_channel_map" is_defined: true symbol_type: FUNCTION - crc: 0x8354e042 + crc: 0x03205b65 type_id: 0x9ca258ce full_name: "snd_soc_dai_get_channel_map" } @@ -358760,7 +363063,7 @@ elf_symbol { name: "snd_soc_dai_link_set_capabilities" is_defined: true symbol_type: FUNCTION - crc: 0x94d3d6a2 + crc: 0x95318384 type_id: 0x1899030d full_name: "snd_soc_dai_link_set_capabilities" } @@ -358769,7 +363072,7 @@ elf_symbol { name: "snd_soc_dai_set_channel_map" is_defined: true symbol_type: FUNCTION - crc: 0x0e88547b + crc: 0xb31b541c type_id: 0x9ddaf106 full_name: "snd_soc_dai_set_channel_map" } @@ -358778,7 +363081,7 @@ elf_symbol { name: "snd_soc_dai_set_fmt" is_defined: true symbol_type: FUNCTION - crc: 0x12d5c62b + crc: 0x65021da5 type_id: 0x9ddd1db7 full_name: "snd_soc_dai_set_fmt" } @@ -358787,7 +363090,7 @@ elf_symbol { name: "snd_soc_dai_set_pll" is_defined: true symbol_type: FUNCTION - crc: 0x770f18e3 + crc: 0xa585b473 type_id: 0x9d4f4423 full_name: "snd_soc_dai_set_pll" } @@ -358796,7 +363099,7 @@ elf_symbol { name: "snd_soc_dai_set_sysclk" is_defined: true symbol_type: FUNCTION - crc: 0xb30ccd05 + crc: 0xbbdd217a type_id: 0x9d4776b9 full_name: "snd_soc_dai_set_sysclk" } @@ -358805,7 +363108,7 @@ elf_symbol { name: "snd_soc_dai_set_tdm_slot" is_defined: true symbol_type: FUNCTION - crc: 0x76d43850 + crc: 0x12527b97 type_id: 0x9dcdf9a5 full_name: "snd_soc_dai_set_tdm_slot" } @@ -358823,7 +363126,7 @@ elf_symbol { name: "snd_soc_daifmt_parse_clock_provider_raw" is_defined: true symbol_type: FUNCTION - crc: 0x16949486 + crc: 0x64fd6e46 type_id: 0xc33e01cf full_name: "snd_soc_daifmt_parse_clock_provider_raw" } @@ -358832,7 +363135,7 @@ elf_symbol { name: "snd_soc_daifmt_parse_format" is_defined: true symbol_type: FUNCTION - crc: 0x6e76fb89 + crc: 0x336e58b6 type_id: 0xc33ffcc2 full_name: "snd_soc_daifmt_parse_format" } @@ -358841,7 +363144,7 @@ elf_symbol { name: "snd_soc_dapm_add_routes" is_defined: true symbol_type: FUNCTION - crc: 0x98537630 + crc: 0x77b4dc30 type_id: 0x9d6ad4e2 full_name: "snd_soc_dapm_add_routes" } @@ -358850,7 +363153,7 @@ elf_symbol { name: "snd_soc_dapm_disable_pin" is_defined: true symbol_type: FUNCTION - crc: 0x81998738 + crc: 0xd01eea67 type_id: 0x9d7d5431 full_name: "snd_soc_dapm_disable_pin" } @@ -358859,7 +363162,7 @@ elf_symbol { name: "snd_soc_dapm_force_enable_pin" is_defined: true symbol_type: FUNCTION - crc: 0x1ae734ad + crc: 0x4f335b46 type_id: 0x9d7d5431 full_name: "snd_soc_dapm_force_enable_pin" } @@ -358868,7 +363171,7 @@ elf_symbol { name: "snd_soc_dapm_get_enum_double" is_defined: true symbol_type: FUNCTION - crc: 0xf1999cf9 + crc: 0x736f392d type_id: 0x973a41ee full_name: "snd_soc_dapm_get_enum_double" } @@ -358877,7 +363180,7 @@ elf_symbol { name: "snd_soc_dapm_get_volsw" is_defined: true symbol_type: FUNCTION - crc: 0xa7b79752 + crc: 0x96c01ebc type_id: 0x973a41ee full_name: "snd_soc_dapm_get_volsw" } @@ -358886,7 +363189,7 @@ elf_symbol { name: "snd_soc_dapm_ignore_suspend" is_defined: true symbol_type: FUNCTION - crc: 0xdf5248f6 + crc: 0x307a08c5 type_id: 0x9d7d5431 full_name: "snd_soc_dapm_ignore_suspend" } @@ -358895,7 +363198,7 @@ elf_symbol { name: "snd_soc_dapm_kcontrol_dapm" is_defined: true symbol_type: FUNCTION - crc: 0x984b42d3 + crc: 0xe0226558 type_id: 0x146afcfb full_name: "snd_soc_dapm_kcontrol_dapm" } @@ -358904,7 +363207,7 @@ elf_symbol { name: "snd_soc_dapm_kcontrol_widget" is_defined: true symbol_type: FUNCTION - crc: 0x383fe755 + crc: 0xacfba1f8 type_id: 0xa21fd62f full_name: "snd_soc_dapm_kcontrol_widget" } @@ -358913,7 +363216,7 @@ elf_symbol { name: "snd_soc_dapm_mixer_update_power" is_defined: true symbol_type: FUNCTION - crc: 0x0d4b31b7 + crc: 0x4cfeb8f3 type_id: 0x9d32251c full_name: "snd_soc_dapm_mixer_update_power" } @@ -358922,7 +363225,7 @@ elf_symbol { name: "snd_soc_dapm_mux_update_power" is_defined: true symbol_type: FUNCTION - crc: 0xb16d1f75 + crc: 0x588fb299 type_id: 0x9d328b5e full_name: "snd_soc_dapm_mux_update_power" } @@ -358931,7 +363234,7 @@ elf_symbol { name: "snd_soc_dapm_new_controls" is_defined: true symbol_type: FUNCTION - crc: 0x57659481 + crc: 0xc4e037f1 type_id: 0x9d6a013c full_name: "snd_soc_dapm_new_controls" } @@ -358940,7 +363243,7 @@ elf_symbol { name: "snd_soc_dapm_new_widgets" is_defined: true symbol_type: FUNCTION - crc: 0xcde0b9e7 + crc: 0x8d36a863 type_id: 0x9bc79bf3 full_name: "snd_soc_dapm_new_widgets" } @@ -358949,7 +363252,7 @@ elf_symbol { name: "snd_soc_dapm_put_enum_double" is_defined: true symbol_type: FUNCTION - crc: 0x11ccb1bd + crc: 0xb6ce6411 type_id: 0x973a41ee full_name: "snd_soc_dapm_put_enum_double" } @@ -358958,7 +363261,7 @@ elf_symbol { name: "snd_soc_dapm_put_volsw" is_defined: true symbol_type: FUNCTION - crc: 0xa9a9af53 + crc: 0xbb3a58bd type_id: 0x973a41ee full_name: "snd_soc_dapm_put_volsw" } @@ -358967,7 +363270,7 @@ elf_symbol { name: "snd_soc_dapm_sync" is_defined: true symbol_type: FUNCTION - crc: 0x9882f85d + crc: 0x6633d5f3 type_id: 0x9d8516e5 full_name: "snd_soc_dapm_sync" } @@ -358976,7 +363279,7 @@ elf_symbol { name: "snd_soc_find_dai" is_defined: true symbol_type: FUNCTION - crc: 0x49e5b659 + crc: 0x71074bf6 type_id: 0x6eef99a2 full_name: "snd_soc_find_dai" } @@ -358985,7 +363288,7 @@ elf_symbol { name: "snd_soc_get_enum_double" is_defined: true symbol_type: FUNCTION - crc: 0x788b7fb5 + crc: 0xfce02c6c type_id: 0x973a41ee full_name: "snd_soc_get_enum_double" } @@ -358994,7 +363297,7 @@ elf_symbol { name: "snd_soc_get_pcm_runtime" is_defined: true symbol_type: FUNCTION - crc: 0x373209bf + crc: 0x9649edce type_id: 0x76907643 full_name: "snd_soc_get_pcm_runtime" } @@ -359003,7 +363306,7 @@ elf_symbol { name: "snd_soc_get_volsw" is_defined: true symbol_type: FUNCTION - crc: 0x2cb55e3a + crc: 0x1c968a9a type_id: 0x973a41ee full_name: "snd_soc_get_volsw" } @@ -359012,7 +363315,7 @@ elf_symbol { name: "snd_soc_get_volsw_range" is_defined: true symbol_type: FUNCTION - crc: 0xbc217c76 + crc: 0x37a95795 type_id: 0x973a41ee full_name: "snd_soc_get_volsw_range" } @@ -359021,7 +363324,7 @@ elf_symbol { name: "snd_soc_info_enum_double" is_defined: true symbol_type: FUNCTION - crc: 0x5ae65bbf + crc: 0xb69d9fb8 type_id: 0x9710bae0 full_name: "snd_soc_info_enum_double" } @@ -359030,7 +363333,7 @@ elf_symbol { name: "snd_soc_info_multi_ext" is_defined: true symbol_type: FUNCTION - crc: 0x542f74f3 + crc: 0x341eb9f2 type_id: 0x9710bae0 full_name: "snd_soc_info_multi_ext" } @@ -359039,7 +363342,7 @@ elf_symbol { name: "snd_soc_info_volsw" is_defined: true symbol_type: FUNCTION - crc: 0xdcd30aed + crc: 0x501e1968 type_id: 0x9710bae0 full_name: "snd_soc_info_volsw" } @@ -359048,7 +363351,7 @@ elf_symbol { name: "snd_soc_info_volsw_range" is_defined: true symbol_type: FUNCTION - crc: 0x91af2046 + crc: 0x9e55ea08 type_id: 0x9710bae0 full_name: "snd_soc_info_volsw_range" } @@ -359057,7 +363360,7 @@ elf_symbol { name: "snd_soc_info_volsw_sx" is_defined: true symbol_type: FUNCTION - crc: 0x9e1d89ed + crc: 0x2c057541 type_id: 0x9710bae0 full_name: "snd_soc_info_volsw_sx" } @@ -359066,7 +363369,7 @@ elf_symbol { name: "snd_soc_jack_report" is_defined: true symbol_type: FUNCTION - crc: 0x35af05b7 + crc: 0x480958c0 type_id: 0x13648576 full_name: "snd_soc_jack_report" } @@ -359075,7 +363378,7 @@ elf_symbol { name: "snd_soc_lookup_component" is_defined: true symbol_type: FUNCTION - crc: 0x65a78a76 + crc: 0x4ca384b8 type_id: 0x67d77552 full_name: "snd_soc_lookup_component" } @@ -359084,7 +363387,7 @@ elf_symbol { name: "snd_soc_new_compress" is_defined: true symbol_type: FUNCTION - crc: 0x96220365 + crc: 0x14233706 type_id: 0x9d475de3 full_name: "snd_soc_new_compress" } @@ -359093,7 +363396,7 @@ elf_symbol { name: "snd_soc_of_get_dai_link_codecs" is_defined: true symbol_type: FUNCTION - crc: 0x0790eebe + crc: 0x770a355c type_id: 0x9dcf1028 full_name: "snd_soc_of_get_dai_link_codecs" } @@ -359102,7 +363405,7 @@ elf_symbol { name: "snd_soc_of_get_dai_name" is_defined: true symbol_type: FUNCTION - crc: 0x0924cd3b + crc: 0x607c0569 type_id: 0x90887391 full_name: "snd_soc_of_get_dai_name" } @@ -359111,7 +363414,7 @@ elf_symbol { name: "snd_soc_of_parse_audio_routing" is_defined: true symbol_type: FUNCTION - crc: 0x5a4ea679 + crc: 0x1748e166 type_id: 0x9b3fd927 full_name: "snd_soc_of_parse_audio_routing" } @@ -359120,7 +363423,7 @@ elf_symbol { name: "snd_soc_of_parse_audio_simple_widgets" is_defined: true symbol_type: FUNCTION - crc: 0x6c4fb198 + crc: 0x1515f6cc type_id: 0x9b3fd927 full_name: "snd_soc_of_parse_audio_simple_widgets" } @@ -359129,7 +363432,7 @@ elf_symbol { name: "snd_soc_of_parse_aux_devs" is_defined: true symbol_type: FUNCTION - crc: 0x77d03260 + crc: 0x8b337599 type_id: 0x9b3fd927 full_name: "snd_soc_of_parse_aux_devs" } @@ -359138,7 +363441,7 @@ elf_symbol { name: "snd_soc_of_parse_card_name" is_defined: true symbol_type: FUNCTION - crc: 0x4b8ffbf3 + crc: 0xd71e37bd type_id: 0x9b3fd927 full_name: "snd_soc_of_parse_card_name" } @@ -359147,7 +363450,7 @@ elf_symbol { name: "snd_soc_of_parse_pin_switches" is_defined: true symbol_type: FUNCTION - crc: 0x975f8178 + crc: 0xd1697393 type_id: 0x9b3fd927 full_name: "snd_soc_of_parse_pin_switches" } @@ -359165,7 +363468,7 @@ elf_symbol { name: "snd_soc_pm_ops" is_defined: true symbol_type: OBJECT - crc: 0xae94504e + crc: 0xe3d01323 type_id: 0xc44f560e full_name: "snd_soc_pm_ops" } @@ -359174,7 +363477,7 @@ elf_symbol { name: "snd_soc_put_enum_double" is_defined: true symbol_type: FUNCTION - crc: 0x4db939ce + crc: 0x7b0ead44 type_id: 0x973a41ee full_name: "snd_soc_put_enum_double" } @@ -359183,7 +363486,7 @@ elf_symbol { name: "snd_soc_put_volsw" is_defined: true symbol_type: FUNCTION - crc: 0x7a618825 + crc: 0x7b84b6af type_id: 0x973a41ee full_name: "snd_soc_put_volsw" } @@ -359192,7 +363495,7 @@ elf_symbol { name: "snd_soc_put_volsw_range" is_defined: true symbol_type: FUNCTION - crc: 0x89133a0d + crc: 0xb047d6bd type_id: 0x973a41ee full_name: "snd_soc_put_volsw_range" } @@ -359201,7 +363504,7 @@ elf_symbol { name: "snd_soc_put_volsw_sx" is_defined: true symbol_type: FUNCTION - crc: 0xf5768cb9 + crc: 0x091ed573 type_id: 0x973a41ee full_name: "snd_soc_put_volsw_sx" } @@ -359210,7 +363513,7 @@ elf_symbol { name: "snd_soc_register_card" is_defined: true symbol_type: FUNCTION - crc: 0xf45ab29d + crc: 0xb7e130b9 type_id: 0x9bc79bf3 full_name: "snd_soc_register_card" } @@ -359219,7 +363522,7 @@ elf_symbol { name: "snd_soc_register_component" is_defined: true symbol_type: FUNCTION - crc: 0xd7974cbe + crc: 0xbd96c837 type_id: 0x9dd808ae full_name: "snd_soc_register_component" } @@ -359228,7 +363531,7 @@ elf_symbol { name: "snd_soc_rtdcom_lookup" is_defined: true symbol_type: FUNCTION - crc: 0x017c1f3b + crc: 0x71a7880e type_id: 0x661a7689 full_name: "snd_soc_rtdcom_lookup" } @@ -359237,7 +363540,7 @@ elf_symbol { name: "snd_soc_runtime_set_dai_fmt" is_defined: true symbol_type: FUNCTION - crc: 0xb81afb23 + crc: 0xff81fa3f type_id: 0x9dcdcb37 full_name: "snd_soc_runtime_set_dai_fmt" } @@ -359246,7 +363549,7 @@ elf_symbol { name: "snd_soc_set_runtime_hwparams" is_defined: true symbol_type: FUNCTION - crc: 0x33887db7 + crc: 0xc1ff62d1 type_id: 0x98508ee0 full_name: "snd_soc_set_runtime_hwparams" } @@ -359255,7 +363558,7 @@ elf_symbol { name: "snd_soc_tplg_component_load" is_defined: true symbol_type: FUNCTION - crc: 0x4285a078 + crc: 0x8dbb54ae type_id: 0x99516809 full_name: "snd_soc_tplg_component_load" } @@ -359264,7 +363567,7 @@ elf_symbol { name: "snd_soc_tplg_component_remove" is_defined: true symbol_type: FUNCTION - crc: 0x2bf29c5e + crc: 0x045afa95 type_id: 0x99d90254 full_name: "snd_soc_tplg_component_remove" } @@ -359273,7 +363576,7 @@ elf_symbol { name: "snd_soc_tplg_widget_bind_event" is_defined: true symbol_type: FUNCTION - crc: 0x4e14e968 + crc: 0xf8be4766 type_id: 0x9fee7b3a full_name: "snd_soc_tplg_widget_bind_event" } @@ -359282,7 +363585,7 @@ elf_symbol { name: "snd_soc_unregister_card" is_defined: true symbol_type: FUNCTION - crc: 0x5ad20215 + crc: 0xee3bf251 type_id: 0x16df294f full_name: "snd_soc_unregister_card" } @@ -359291,7 +363594,7 @@ elf_symbol { name: "snd_soc_unregister_component" is_defined: true symbol_type: FUNCTION - crc: 0xb22ace8c + crc: 0x15f8c225 type_id: 0x100e6fc8 full_name: "snd_soc_unregister_component" } @@ -359300,7 +363603,7 @@ elf_symbol { name: "snd_timer_interrupt" is_defined: true symbol_type: FUNCTION - crc: 0xe5057604 + crc: 0xa5b6f2bf type_id: 0x158152d0 full_name: "snd_timer_interrupt" } @@ -359309,7 +363612,7 @@ elf_symbol { name: "snd_usb_autoresume" is_defined: true symbol_type: FUNCTION - crc: 0x1644be2c + crc: 0xee8ea14d type_id: 0x9b1b4bcb full_name: "snd_usb_autoresume" } @@ -359318,7 +363621,7 @@ elf_symbol { name: "snd_usb_autosuspend" is_defined: true symbol_type: FUNCTION - crc: 0x5395c7d8 + crc: 0xe0ab2060 type_id: 0x1603f977 full_name: "snd_usb_autosuspend" } @@ -359327,7 +363630,7 @@ elf_symbol { name: "snd_usb_endpoint_close" is_defined: true symbol_type: FUNCTION - crc: 0x808d1236 + crc: 0xcc34d323 type_id: 0x169238cf full_name: "snd_usb_endpoint_close" } @@ -359336,7 +363639,7 @@ elf_symbol { name: "snd_usb_endpoint_open" is_defined: true symbol_type: FUNCTION - crc: 0x8dd8595c + crc: 0xf427436a type_id: 0x1fce8843 full_name: "snd_usb_endpoint_open" } @@ -359345,7 +363648,7 @@ elf_symbol { name: "snd_usb_endpoint_prepare" is_defined: true symbol_type: FUNCTION - crc: 0xc31318aa + crc: 0x3bd7254b type_id: 0x9b8a8a73 full_name: "snd_usb_endpoint_prepare" } @@ -359363,7 +363666,7 @@ elf_symbol { name: "soc_device_register" is_defined: true symbol_type: FUNCTION - crc: 0x8b50d3ee + crc: 0xcd39718c type_id: 0x1e394ee5 full_name: "soc_device_register" } @@ -359381,7 +363684,7 @@ elf_symbol { name: "sock_alloc_send_pskb" is_defined: true symbol_type: FUNCTION - crc: 0x25a76248 + crc: 0x74360494 type_id: 0x6f0fa4b8 full_name: "sock_alloc_send_pskb" } @@ -359390,7 +363693,7 @@ elf_symbol { name: "sock_cmsg_send" is_defined: true symbol_type: FUNCTION - crc: 0x3c7e9178 + crc: 0xfd21ed53 type_id: 0x9a66b93e full_name: "sock_cmsg_send" } @@ -359399,7 +363702,7 @@ elf_symbol { name: "sock_common_getsockopt" is_defined: true symbol_type: FUNCTION - crc: 0x2a5590aa + crc: 0xee25f1b6 type_id: 0x981db4ff full_name: "sock_common_getsockopt" } @@ -359408,7 +363711,7 @@ elf_symbol { name: "sock_common_recvmsg" is_defined: true symbol_type: FUNCTION - crc: 0x43c1bd58 + crc: 0x61aa8eb1 type_id: 0x9917165a full_name: "sock_common_recvmsg" } @@ -359417,7 +363720,7 @@ elf_symbol { name: "sock_common_setsockopt" is_defined: true symbol_type: FUNCTION - crc: 0x32a0725f + crc: 0xc5d7d2a1 type_id: 0x981e2b3a full_name: "sock_common_setsockopt" } @@ -359426,7 +363729,7 @@ elf_symbol { name: "sock_create_kern" is_defined: true symbol_type: FUNCTION - crc: 0x8a2e1bf4 + crc: 0x064919d5 type_id: 0x9f2caa56 full_name: "sock_create_kern" } @@ -359435,7 +363738,7 @@ elf_symbol { name: "sock_diag_register" is_defined: true symbol_type: FUNCTION - crc: 0xf4f64624 + crc: 0xd249a5dd type_id: 0x9041c735 full_name: "sock_diag_register" } @@ -359444,7 +363747,7 @@ elf_symbol { name: "sock_diag_save_cookie" is_defined: true symbol_type: FUNCTION - crc: 0x0d8b1ca6 + crc: 0xc5c7a2c6 type_id: 0x17053351 full_name: "sock_diag_save_cookie" } @@ -359453,7 +363756,7 @@ elf_symbol { name: "sock_diag_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x2c5ad3d1 + crc: 0x96255d63 type_id: 0x1d597589 full_name: "sock_diag_unregister" } @@ -359462,7 +363765,7 @@ elf_symbol { name: "sock_edemux" is_defined: true symbol_type: FUNCTION - crc: 0xda76c57e + crc: 0xf455ba57 type_id: 0x11cb8bd5 full_name: "sock_edemux" } @@ -359471,16 +363774,25 @@ elf_symbol { name: "sock_efree" is_defined: true symbol_type: FUNCTION - crc: 0x0f0ce3fe + crc: 0x818de504 type_id: 0x11cb8bd5 full_name: "sock_efree" } +elf_symbol { + id: 0x4ece0732 + name: "sock_gen_put" + is_defined: true + symbol_type: FUNCTION + crc: 0x11d7081e + type_id: 0x17c95d08 + full_name: "sock_gen_put" +} elf_symbol { id: 0x284bec0f name: "sock_gettstamp" is_defined: true symbol_type: FUNCTION - crc: 0x1a1de842 + crc: 0xf87dc0d5 type_id: 0x99e0f6e0 full_name: "sock_gettstamp" } @@ -359489,7 +363801,7 @@ elf_symbol { name: "sock_i_ino" is_defined: true symbol_type: FUNCTION - crc: 0xe0c47321 + crc: 0xa9867284 type_id: 0x36fdc1c8 full_name: "sock_i_ino" } @@ -359498,7 +363810,7 @@ elf_symbol { name: "sock_i_uid" is_defined: true symbol_type: FUNCTION - crc: 0xb7a988f5 + crc: 0x35480660 type_id: 0x7be897ce full_name: "sock_i_uid" } @@ -359507,7 +363819,7 @@ elf_symbol { name: "sock_init_data" is_defined: true symbol_type: FUNCTION - crc: 0xd76931ca + crc: 0xd9dcf93b type_id: 0x14f54b2b full_name: "sock_init_data" } @@ -359516,7 +363828,7 @@ elf_symbol { name: "sock_no_accept" is_defined: true symbol_type: FUNCTION - crc: 0x89de8d5f + crc: 0x995f20f3 type_id: 0x99c11430 full_name: "sock_no_accept" } @@ -359525,7 +363837,7 @@ elf_symbol { name: "sock_no_bind" is_defined: true symbol_type: FUNCTION - crc: 0xa7ac52e7 + crc: 0x62e4b4cd type_id: 0x99526c70 full_name: "sock_no_bind" } @@ -359534,7 +363846,7 @@ elf_symbol { name: "sock_no_connect" is_defined: true symbol_type: FUNCTION - crc: 0x6a52645c + crc: 0xea9cd234 type_id: 0x9953f0f3 full_name: "sock_no_connect" } @@ -359543,7 +363855,7 @@ elf_symbol { name: "sock_no_getname" is_defined: true symbol_type: FUNCTION - crc: 0x7d6c5efd + crc: 0x002c0a40 type_id: 0x99526c70 full_name: "sock_no_getname" } @@ -359552,7 +363864,7 @@ elf_symbol { name: "sock_no_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0x22bad17c + crc: 0xa8307a64 type_id: 0x9882219f full_name: "sock_no_ioctl" } @@ -359561,7 +363873,7 @@ elf_symbol { name: "sock_no_listen" is_defined: true symbol_type: FUNCTION - crc: 0xaa47231d + crc: 0x80a27235 type_id: 0x98046a12 full_name: "sock_no_listen" } @@ -359570,7 +363882,7 @@ elf_symbol { name: "sock_no_mmap" is_defined: true symbol_type: FUNCTION - crc: 0x35fd27a4 + crc: 0xc0df442f type_id: 0x9bf97de0 full_name: "sock_no_mmap" } @@ -359579,7 +363891,7 @@ elf_symbol { name: "sock_no_recvmsg" is_defined: true symbol_type: FUNCTION - crc: 0x3e7e90e0 + crc: 0xd5e0cb9f type_id: 0x9917165a full_name: "sock_no_recvmsg" } @@ -359588,7 +363900,7 @@ elf_symbol { name: "sock_no_sendmsg" is_defined: true symbol_type: FUNCTION - crc: 0x0cf60039 + crc: 0xd3eac5b3 type_id: 0x99168ad9 full_name: "sock_no_sendmsg" } @@ -359597,7 +363909,7 @@ elf_symbol { name: "sock_no_sendpage" is_defined: true symbol_type: FUNCTION - crc: 0x39c312e0 + crc: 0x28fa0b60 type_id: 0x10e9e7a3 full_name: "sock_no_sendpage" } @@ -359606,7 +363918,7 @@ elf_symbol { name: "sock_no_shutdown" is_defined: true symbol_type: FUNCTION - crc: 0x0af08df4 + crc: 0xe7818143 type_id: 0x98046a12 full_name: "sock_no_shutdown" } @@ -359615,7 +363927,7 @@ elf_symbol { name: "sock_no_socketpair" is_defined: true symbol_type: FUNCTION - crc: 0x48935ea6 + crc: 0x474004a9 type_id: 0x99d969f9 full_name: "sock_no_socketpair" } @@ -359624,7 +363936,7 @@ elf_symbol { name: "sock_queue_rcv_skb_reason" is_defined: true symbol_type: FUNCTION - crc: 0x988a854a + crc: 0xb4d479d9 type_id: 0x9ac7ffab full_name: "sock_queue_rcv_skb_reason" } @@ -359633,7 +363945,7 @@ elf_symbol { name: "sock_recv_errqueue" is_defined: true symbol_type: FUNCTION - crc: 0xa041453c + crc: 0x78af57f8 type_id: 0x9a7acc16 full_name: "sock_recv_errqueue" } @@ -359642,7 +363954,7 @@ elf_symbol { name: "sock_recvmsg" is_defined: true symbol_type: FUNCTION - crc: 0x5fb98922 + crc: 0xa8ea68ea type_id: 0x99324fb7 full_name: "sock_recvmsg" } @@ -359651,7 +363963,7 @@ elf_symbol { name: "sock_register" is_defined: true symbol_type: FUNCTION - crc: 0x1b8adf14 + crc: 0x67edcde8 type_id: 0x93c23a28 full_name: "sock_register" } @@ -359660,7 +363972,7 @@ elf_symbol { name: "sock_release" is_defined: true symbol_type: FUNCTION - crc: 0xca724064 + crc: 0xd14987f4 type_id: 0x14805be2 full_name: "sock_release" } @@ -359669,7 +363981,7 @@ elf_symbol { name: "sock_rfree" is_defined: true symbol_type: FUNCTION - crc: 0xfbfa5668 + crc: 0xa199162c type_id: 0x11cb8bd5 full_name: "sock_rfree" } @@ -359678,7 +363990,7 @@ elf_symbol { name: "sock_setsockopt" is_defined: true symbol_type: FUNCTION - crc: 0x47a74e72 + crc: 0x19fdd9f0 type_id: 0x981e2b3a full_name: "sock_setsockopt" } @@ -359696,7 +364008,7 @@ elf_symbol { name: "sock_wfree" is_defined: true symbol_type: FUNCTION - crc: 0x10810a59 + crc: 0x5006163a type_id: 0x11cb8bd5 full_name: "sock_wfree" } @@ -359705,7 +364017,7 @@ elf_symbol { name: "sock_wmalloc" is_defined: true symbol_type: FUNCTION - crc: 0x7f6b6f73 + crc: 0xc738ff9b type_id: 0x6f18ee87 full_name: "sock_wmalloc" } @@ -359714,7 +364026,7 @@ elf_symbol { name: "sockfd_lookup" is_defined: true symbol_type: FUNCTION - crc: 0xc078d40e + crc: 0x75dad1f8 type_id: 0x3d20d65e full_name: "sockfd_lookup" } @@ -359723,7 +364035,7 @@ elf_symbol { name: "softnet_data" is_defined: true symbol_type: OBJECT - crc: 0x317a55af + crc: 0x8bb56af0 type_id: 0x06066110 full_name: "softnet_data" } @@ -359741,7 +364053,7 @@ elf_symbol { name: "spi_async" is_defined: true symbol_type: FUNCTION - crc: 0xcdeea802 + crc: 0x06493591 type_id: 0x99b7b018 full_name: "spi_async" } @@ -359750,7 +364062,7 @@ elf_symbol { name: "spi_bus_lock" is_defined: true symbol_type: FUNCTION - crc: 0x4e0b1ab6 + crc: 0xa68033fb type_id: 0x9db78784 full_name: "spi_bus_lock" } @@ -359759,7 +364071,7 @@ elf_symbol { name: "spi_bus_type" is_defined: true symbol_type: OBJECT - crc: 0x9ded4900 + crc: 0xae2c630f type_id: 0x257935aa full_name: "spi_bus_type" } @@ -359768,7 +364080,7 @@ elf_symbol { name: "spi_bus_unlock" is_defined: true symbol_type: FUNCTION - crc: 0x9d743ffa + crc: 0x0f51849c type_id: 0x9db78784 full_name: "spi_bus_unlock" } @@ -359777,7 +364089,7 @@ elf_symbol { name: "spi_controller_resume" is_defined: true symbol_type: FUNCTION - crc: 0x21938def + crc: 0x8e608b2d type_id: 0x9db78784 full_name: "spi_controller_resume" } @@ -359786,7 +364098,7 @@ elf_symbol { name: "spi_controller_suspend" is_defined: true symbol_type: FUNCTION - crc: 0x5453a54a + crc: 0x24ebb2ef type_id: 0x9db78784 full_name: "spi_controller_suspend" } @@ -359804,7 +364116,7 @@ elf_symbol { name: "spi_finalize_current_message" is_defined: true symbol_type: FUNCTION - crc: 0x1a0ccc84 + crc: 0x7f01280d type_id: 0x10af3538 full_name: "spi_finalize_current_message" } @@ -359813,7 +364125,7 @@ elf_symbol { name: "spi_finalize_current_transfer" is_defined: true symbol_type: FUNCTION - crc: 0x61aece55 + crc: 0x6c2857c7 type_id: 0x10af3538 full_name: "spi_finalize_current_transfer" } @@ -359822,7 +364134,7 @@ elf_symbol { name: "spi_get_device_id" is_defined: true symbol_type: FUNCTION - crc: 0x42831f15 + crc: 0x7d750b1b type_id: 0xdb53d61f full_name: "spi_get_device_id" } @@ -359831,7 +364143,7 @@ elf_symbol { name: "spi_get_next_queued_message" is_defined: true symbol_type: FUNCTION - crc: 0x0149cf7b + crc: 0xc7b23092 type_id: 0xb91d7092 full_name: "spi_get_next_queued_message" } @@ -359840,7 +364152,7 @@ elf_symbol { name: "spi_register_controller" is_defined: true symbol_type: FUNCTION - crc: 0xd32d15f2 + crc: 0x52f8d87e type_id: 0x9db78784 full_name: "spi_register_controller" } @@ -359849,7 +364161,7 @@ elf_symbol { name: "spi_setup" is_defined: true symbol_type: FUNCTION - crc: 0x74241a27 + crc: 0x0c321c41 type_id: 0x9930cdbf full_name: "spi_setup" } @@ -359858,7 +364170,7 @@ elf_symbol { name: "spi_sync" is_defined: true symbol_type: FUNCTION - crc: 0xf5f7c229 + crc: 0xc7e1da33 type_id: 0x99b7b018 full_name: "spi_sync" } @@ -359867,7 +364179,7 @@ elf_symbol { name: "spi_sync_locked" is_defined: true symbol_type: FUNCTION - crc: 0xf3f951e0 + crc: 0x7fc70c76 type_id: 0x99b7b018 full_name: "spi_sync_locked" } @@ -359876,7 +364188,7 @@ elf_symbol { name: "spi_unregister_controller" is_defined: true symbol_type: FUNCTION - crc: 0xcbc7494f + crc: 0x0fe312a9 type_id: 0x10af3538 full_name: "spi_unregister_controller" } @@ -359885,7 +364197,7 @@ elf_symbol { name: "spi_write_then_read" is_defined: true symbol_type: FUNCTION - crc: 0xee0921ad + crc: 0x608f68e3 type_id: 0x99c5a325 full_name: "spi_write_then_read" } @@ -359894,7 +364206,7 @@ elf_symbol { name: "split_page" is_defined: true symbol_type: FUNCTION - crc: 0x504a7e3a + crc: 0x8f7bb9c5 type_id: 0x102e93ac full_name: "split_page" } @@ -359903,7 +364215,7 @@ elf_symbol { name: "spmi_controller_add" is_defined: true symbol_type: FUNCTION - crc: 0x8cb7e91f + crc: 0xae645d04 type_id: 0x98b9292d full_name: "spmi_controller_add" } @@ -359912,7 +364224,7 @@ elf_symbol { name: "spmi_controller_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x0ffbbd1b + crc: 0xd88eb3f3 type_id: 0x40073fc6 full_name: "spmi_controller_alloc" } @@ -359921,7 +364233,7 @@ elf_symbol { name: "spmi_controller_remove" is_defined: true symbol_type: FUNCTION - crc: 0xe868e187 + crc: 0x1ac4051d type_id: 0x15a19b91 full_name: "spmi_controller_remove" } @@ -359930,7 +364242,7 @@ elf_symbol { name: "spmi_device_from_of" is_defined: true symbol_type: FUNCTION - crc: 0xc950bab5 + crc: 0xa0ab0c35 type_id: 0x48da335f full_name: "spmi_device_from_of" } @@ -359939,7 +364251,7 @@ elf_symbol { name: "spmi_ext_register_read" is_defined: true symbol_type: FUNCTION - crc: 0xecd8ab74 + crc: 0x5c7b2a8f type_id: 0x9a1f348c full_name: "spmi_ext_register_read" } @@ -359948,7 +364260,7 @@ elf_symbol { name: "spmi_ext_register_readl" is_defined: true symbol_type: FUNCTION - crc: 0x6d3011eb + crc: 0x7ff8d8ca type_id: 0x98ff73bb full_name: "spmi_ext_register_readl" } @@ -359957,7 +364269,7 @@ elf_symbol { name: "spmi_ext_register_write" is_defined: true symbol_type: FUNCTION - crc: 0xd2b2a949 + crc: 0x5ba3adbb type_id: 0x9a10c524 full_name: "spmi_ext_register_write" } @@ -359966,7 +364278,7 @@ elf_symbol { name: "spmi_ext_register_writel" is_defined: true symbol_type: FUNCTION - crc: 0x7f5bc985 + crc: 0xd93d6872 type_id: 0x98f08213 full_name: "spmi_ext_register_writel" } @@ -359975,7 +364287,7 @@ elf_symbol { name: "spmi_register_read" is_defined: true symbol_type: FUNCTION - crc: 0x60d79853 + crc: 0x4db27841 type_id: 0x9a1ce459 full_name: "spmi_register_read" } @@ -359984,7 +364296,7 @@ elf_symbol { name: "spmi_register_write" is_defined: true symbol_type: FUNCTION - crc: 0x60b367b1 + crc: 0x334cd348 type_id: 0x9a16828c full_name: "spmi_register_write" } @@ -359993,7 +364305,7 @@ elf_symbol { name: "spmi_register_zero_write" is_defined: true symbol_type: FUNCTION - crc: 0x08ca8860 + crc: 0x054b02f8 type_id: 0x9a1cd590 full_name: "spmi_register_zero_write" } @@ -360137,7 +364449,7 @@ elf_symbol { name: "stack_trace_save_tsk" is_defined: true symbol_type: FUNCTION - crc: 0x2b4585d6 + crc: 0x442549be type_id: 0xc9945640 full_name: "stack_trace_save_tsk" } @@ -360297,7 +364609,7 @@ elf_symbol { name: "stream_open" is_defined: true symbol_type: FUNCTION - crc: 0x9ba2d126 + crc: 0xceeea78e type_id: 0x9b022eae full_name: "stream_open" } @@ -360500,7 +364812,7 @@ elf_symbol { name: "submit_bio" is_defined: true symbol_type: FUNCTION - crc: 0x2a7f81fb + crc: 0x5735e5d1 type_id: 0x15f0919b full_name: "submit_bio" } @@ -360509,16 +364821,25 @@ elf_symbol { name: "subsys_system_register" is_defined: true symbol_type: FUNCTION - crc: 0xb022d7b3 + crc: 0x48d3274e type_id: 0x9d6a72fd full_name: "subsys_system_register" } +elf_symbol { + id: 0x44e002a2 + name: "suspend_set_ops" + is_defined: true + symbol_type: FUNCTION + crc: 0x9ac11b74 + type_id: 0x1d20fb22 + full_name: "suspend_set_ops" +} elf_symbol { id: 0x1fe11014 name: "sync_blockdev" is_defined: true symbol_type: FUNCTION - crc: 0x82ac87da + crc: 0xb2de6104 type_id: 0x9e8b6578 full_name: "sync_blockdev" } @@ -360527,7 +364848,7 @@ elf_symbol { name: "sync_file_create" is_defined: true symbol_type: FUNCTION - crc: 0x6c5deb86 + crc: 0x76db215f type_id: 0x28bd3c4e full_name: "sync_file_create" } @@ -360617,7 +364938,7 @@ elf_symbol { name: "synth_event_create" is_defined: true symbol_type: FUNCTION - crc: 0xd5cce962 + crc: 0x98e65dc1 type_id: 0x924108e7 full_name: "synth_event_create" } @@ -360644,7 +364965,7 @@ elf_symbol { name: "syscon_node_to_regmap" is_defined: true symbol_type: FUNCTION - crc: 0xb646feac + crc: 0x350410a6 type_id: 0x81a9f9cd full_name: "syscon_node_to_regmap" } @@ -360653,7 +364974,7 @@ elf_symbol { name: "syscon_regmap_lookup_by_phandle" is_defined: true symbol_type: FUNCTION - crc: 0x0ae0b538 + crc: 0xc83688f8 type_id: 0x8151bb19 full_name: "syscon_regmap_lookup_by_phandle" } @@ -360680,7 +365001,7 @@ elf_symbol { name: "sysfs_add_file_to_group" is_defined: true symbol_type: FUNCTION - crc: 0xbff53266 + crc: 0x640053bc type_id: 0x958e52ea full_name: "sysfs_add_file_to_group" } @@ -360689,7 +365010,7 @@ elf_symbol { name: "sysfs_add_link_to_group" is_defined: true symbol_type: FUNCTION - crc: 0xdd6b22dc + crc: 0xe1ffe478 type_id: 0x958c8293 full_name: "sysfs_add_link_to_group" } @@ -360698,7 +365019,7 @@ elf_symbol { name: "sysfs_create_bin_file" is_defined: true symbol_type: FUNCTION - crc: 0xd9ae9182 + crc: 0xc25cbf1f type_id: 0x959d810d full_name: "sysfs_create_bin_file" } @@ -360707,7 +365028,7 @@ elf_symbol { name: "sysfs_create_file_ns" is_defined: true symbol_type: FUNCTION - crc: 0x36cc0cbb + crc: 0x76e82e6d type_id: 0x958f9102 full_name: "sysfs_create_file_ns" } @@ -360716,7 +365037,7 @@ elf_symbol { name: "sysfs_create_files" is_defined: true symbol_type: FUNCTION - crc: 0xb12c5b46 + crc: 0x3c3bd105 type_id: 0x95854407 full_name: "sysfs_create_files" } @@ -360725,7 +365046,7 @@ elf_symbol { name: "sysfs_create_group" is_defined: true symbol_type: FUNCTION - crc: 0x4918e088 + crc: 0x72598240 type_id: 0x95b1f43d full_name: "sysfs_create_group" } @@ -360734,7 +365055,7 @@ elf_symbol { name: "sysfs_create_groups" is_defined: true symbol_type: FUNCTION - crc: 0x2330aa08 + crc: 0x48f0c0d9 type_id: 0x9565c8c3 full_name: "sysfs_create_groups" } @@ -360743,7 +365064,7 @@ elf_symbol { name: "sysfs_create_link" is_defined: true symbol_type: FUNCTION - crc: 0x94a37314 + crc: 0x769b20d7 type_id: 0x95fc827f full_name: "sysfs_create_link" } @@ -360770,7 +365091,7 @@ elf_symbol { name: "sysfs_notify" is_defined: true symbol_type: FUNCTION - crc: 0x6f7649a5 + crc: 0x84ef64d8 type_id: 0x1893b067 full_name: "sysfs_notify" } @@ -360779,7 +365100,7 @@ elf_symbol { name: "sysfs_remove_bin_file" is_defined: true symbol_type: FUNCTION - crc: 0x0cc31cba + crc: 0xcf90633d type_id: 0x188533b1 full_name: "sysfs_remove_bin_file" } @@ -360788,7 +365109,7 @@ elf_symbol { name: "sysfs_remove_file_from_group" is_defined: true symbol_type: FUNCTION - crc: 0x0be9f8da + crc: 0x7374d840 type_id: 0x1896e056 full_name: "sysfs_remove_file_from_group" } @@ -360797,7 +365118,7 @@ elf_symbol { name: "sysfs_remove_file_ns" is_defined: true symbol_type: FUNCTION - crc: 0x68e7b0e7 + crc: 0x83ad7c15 type_id: 0x189723be full_name: "sysfs_remove_file_ns" } @@ -360806,7 +365127,7 @@ elf_symbol { name: "sysfs_remove_files" is_defined: true symbol_type: FUNCTION - crc: 0x99fb8e55 + crc: 0xe9565c3d type_id: 0x189df6bb full_name: "sysfs_remove_files" } @@ -360815,7 +365136,7 @@ elf_symbol { name: "sysfs_remove_group" is_defined: true symbol_type: FUNCTION - crc: 0x876386a3 + crc: 0x68db3637 type_id: 0x18a94681 full_name: "sysfs_remove_group" } @@ -360824,7 +365145,7 @@ elf_symbol { name: "sysfs_remove_groups" is_defined: true symbol_type: FUNCTION - crc: 0xe3586752 + crc: 0x9a5137a6 type_id: 0x187d7a7f full_name: "sysfs_remove_groups" } @@ -360833,7 +365154,7 @@ elf_symbol { name: "sysfs_remove_link" is_defined: true symbol_type: FUNCTION - crc: 0x98622a64 + crc: 0xd53be755 type_id: 0x189c344a full_name: "sysfs_remove_link" } @@ -360842,7 +365163,7 @@ elf_symbol { name: "sysfs_remove_link_from_group" is_defined: true symbol_type: FUNCTION - crc: 0xb0156c98 + crc: 0x87259a74 type_id: 0x1893b067 full_name: "sysfs_remove_link_from_group" } @@ -360860,7 +365181,7 @@ elf_symbol { name: "sysfs_update_group" is_defined: true symbol_type: FUNCTION - crc: 0xadc29258 + crc: 0xa6e459cc type_id: 0x95b1f43d full_name: "sysfs_update_group" } @@ -360959,7 +365280,7 @@ elf_symbol { name: "task_active_pid_ns" is_defined: true symbol_type: FUNCTION - crc: 0x3812d866 + crc: 0x5bdbfffa type_id: 0xac273de0 full_name: "task_active_pid_ns" } @@ -360968,7 +365289,7 @@ elf_symbol { name: "task_rq_lock" is_defined: true symbol_type: FUNCTION - crc: 0x14266e45 + crc: 0x94fa6ff7 type_id: 0x8d7ecefa full_name: "task_rq_lock" } @@ -361022,7 +365343,7 @@ elf_symbol { name: "tcf_action_exec" is_defined: true symbol_type: FUNCTION - crc: 0x19389234 + crc: 0x74ff07f3 type_id: 0x9cdfbc5a full_name: "tcf_action_exec" } @@ -361031,7 +365352,7 @@ elf_symbol { name: "tcf_exts_destroy" is_defined: true symbol_type: FUNCTION - crc: 0xa27c8667 + crc: 0x57ead950 type_id: 0x147c9fd8 full_name: "tcf_exts_destroy" } @@ -361040,7 +365361,7 @@ elf_symbol { name: "tcf_exts_dump" is_defined: true symbol_type: FUNCTION - crc: 0x6575d1ac + crc: 0xdd73ebe4 type_id: 0x9c9d758d full_name: "tcf_exts_dump" } @@ -361049,7 +365370,7 @@ elf_symbol { name: "tcf_exts_dump_stats" is_defined: true symbol_type: FUNCTION - crc: 0xf8cf3e10 + crc: 0x53aa23e0 type_id: 0x9c9d758d full_name: "tcf_exts_dump_stats" } @@ -361058,7 +365379,7 @@ elf_symbol { name: "tcf_exts_validate" is_defined: true symbol_type: FUNCTION - crc: 0x285658f9 + crc: 0x6a46bbb1 type_id: 0x9e8d7e1b full_name: "tcf_exts_validate" } @@ -361103,7 +365424,7 @@ elf_symbol { name: "tcpci_register_port" is_defined: true symbol_type: FUNCTION - crc: 0xe11cafbb + crc: 0xbb3fb56a type_id: 0x2601e7ac full_name: "tcpci_register_port" } @@ -361152,6 +365473,24 @@ elf_symbol { type_id: 0x10815f18 full_name: "tcpm_pd_transmit_complete" } +elf_symbol { + id: 0x4c16a6b4 + name: "tcpm_port_clean" + is_defined: true + symbol_type: FUNCTION + crc: 0xd680581d + type_id: 0x129c1f38 + full_name: "tcpm_port_clean" +} +elf_symbol { + id: 0xc8ad19b6 + name: "tcpm_port_is_toggling" + is_defined: true + symbol_type: FUNCTION + crc: 0xda86a83d + type_id: 0xfca015af + full_name: "tcpm_port_is_toggling" +} elf_symbol { id: 0xdebe76ba name: "tcpm_sink_frs" @@ -361184,7 +365523,7 @@ elf_symbol { name: "thermal_cdev_update" is_defined: true symbol_type: FUNCTION - crc: 0xb82c5db1 + crc: 0x401004cf type_id: 0x11aaf502 full_name: "thermal_cdev_update" } @@ -361193,7 +365532,7 @@ elf_symbol { name: "thermal_cooling_device_register" is_defined: true symbol_type: FUNCTION - crc: 0x327b96c7 + crc: 0xe2f3c2d0 type_id: 0x4759fa3a full_name: "thermal_cooling_device_register" } @@ -361202,7 +365541,7 @@ elf_symbol { name: "thermal_cooling_device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x52fbbb17 + crc: 0x9835bd10 type_id: 0x11aaf502 full_name: "thermal_cooling_device_unregister" } @@ -361211,7 +365550,7 @@ elf_symbol { name: "thermal_of_cooling_device_register" is_defined: true symbol_type: FUNCTION - crc: 0x3b1bf64c + crc: 0xc19544b6 type_id: 0x4552a7f2 full_name: "thermal_of_cooling_device_register" } @@ -361229,7 +365568,7 @@ elf_symbol { name: "thermal_zone_device_disable" is_defined: true symbol_type: FUNCTION - crc: 0xb109f298 + crc: 0x0b1bba36 type_id: 0x9439b74e full_name: "thermal_zone_device_disable" } @@ -361238,7 +365577,7 @@ elf_symbol { name: "thermal_zone_device_enable" is_defined: true symbol_type: FUNCTION - crc: 0xa31c9608 + crc: 0xc8d857d0 type_id: 0x9439b74e full_name: "thermal_zone_device_enable" } @@ -361247,7 +365586,7 @@ elf_symbol { name: "thermal_zone_device_register" is_defined: true symbol_type: FUNCTION - crc: 0x54c19c53 + crc: 0x6269731f type_id: 0xf354bbbc full_name: "thermal_zone_device_register" } @@ -361256,7 +365595,7 @@ elf_symbol { name: "thermal_zone_device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x3f8780fe + crc: 0xb02787f5 type_id: 0x192105f2 full_name: "thermal_zone_device_unregister" } @@ -361265,7 +365604,7 @@ elf_symbol { name: "thermal_zone_device_update" is_defined: true symbol_type: FUNCTION - crc: 0xe027e342 + crc: 0x294cde6b type_id: 0x18a3b8d2 full_name: "thermal_zone_device_update" } @@ -361274,7 +365613,7 @@ elf_symbol { name: "thermal_zone_get_temp" is_defined: true symbol_type: FUNCTION - crc: 0x9b345771 + crc: 0x0c75e9a7 type_id: 0x9474d77b full_name: "thermal_zone_get_temp" } @@ -361283,7 +365622,7 @@ elf_symbol { name: "thermal_zone_get_zone_by_name" is_defined: true symbol_type: FUNCTION - crc: 0xaded531a + crc: 0x95755b85 type_id: 0xf2d19814 full_name: "thermal_zone_get_zone_by_name" } @@ -361292,7 +365631,7 @@ elf_symbol { name: "thread_group_cputime_adjusted" is_defined: true symbol_type: FUNCTION - crc: 0x40d3fb74 + crc: 0xc6c95db4 type_id: 0x176dde0e full_name: "thread_group_cputime_adjusted" } @@ -361346,7 +365685,7 @@ elf_symbol { name: "timer_unstable_counter_workaround" is_defined: true symbol_type: OBJECT - crc: 0xbcf11d40 + crc: 0xcd4fc9c8 type_id: 0x35bad1e5 full_name: "timer_unstable_counter_workaround" } @@ -361364,7 +365703,7 @@ elf_symbol { name: "tipc_dump_done" is_defined: true symbol_type: FUNCTION - crc: 0xb48cb984 + crc: 0x76cd1534 type_id: 0x96b01a1d full_name: "tipc_dump_done" } @@ -361373,7 +365712,7 @@ elf_symbol { name: "tipc_dump_start" is_defined: true symbol_type: FUNCTION - crc: 0xad35809d + crc: 0x33a25fb7 type_id: 0x96b01a1d full_name: "tipc_dump_start" } @@ -361382,7 +365721,7 @@ elf_symbol { name: "tipc_nl_sk_walk" is_defined: true symbol_type: FUNCTION - crc: 0xcafe61fb + crc: 0x64420b0e type_id: 0x9c6b5433 full_name: "tipc_nl_sk_walk" } @@ -361391,7 +365730,7 @@ elf_symbol { name: "tipc_sk_fill_sock_diag" is_defined: true symbol_type: FUNCTION - crc: 0x845095f1 + crc: 0x5d4aa44c type_id: 0x9c6f59d4 full_name: "tipc_sk_fill_sock_diag" } @@ -361436,7 +365775,7 @@ elf_symbol { name: "trace_array_put" is_defined: true symbol_type: FUNCTION - crc: 0x90265c65 + crc: 0xbcda52c2 type_id: 0x1164fa41 full_name: "trace_array_put" } @@ -361454,7 +365793,7 @@ elf_symbol { name: "trace_event_buffer_commit" is_defined: true symbol_type: FUNCTION - crc: 0x8b0297d5 + crc: 0x26cb87e5 type_id: 0x1a405f2d full_name: "trace_event_buffer_commit" } @@ -361463,7 +365802,7 @@ elf_symbol { name: "trace_event_buffer_reserve" is_defined: true symbol_type: FUNCTION - crc: 0x4a199594 + crc: 0x5dd0a1d6 type_id: 0x5c4f178f full_name: "trace_event_buffer_reserve" } @@ -361472,7 +365811,7 @@ elf_symbol { name: "trace_event_ignore_this_pid" is_defined: true symbol_type: FUNCTION - crc: 0xe4f108e1 + crc: 0x9369067b type_id: 0xfe730297 full_name: "trace_event_ignore_this_pid" } @@ -361481,7 +365820,7 @@ elf_symbol { name: "trace_event_printf" is_defined: true symbol_type: FUNCTION - crc: 0x087b0757 + crc: 0x5873fbaa type_id: 0x1417fb73 full_name: "trace_event_printf" } @@ -361490,7 +365829,7 @@ elf_symbol { name: "trace_event_raw_init" is_defined: true symbol_type: FUNCTION - crc: 0x08df1ae7 + crc: 0x9f81585a type_id: 0x9427c0bf full_name: "trace_event_raw_init" } @@ -361499,7 +365838,7 @@ elf_symbol { name: "trace_event_reg" is_defined: true symbol_type: FUNCTION - crc: 0xc5ed681d + crc: 0x6f09ffe9 type_id: 0x959717f8 full_name: "trace_event_reg" } @@ -361508,7 +365847,7 @@ elf_symbol { name: "trace_get_event_file" is_defined: true symbol_type: FUNCTION - crc: 0x19f3b4d2 + crc: 0x40e137f6 type_id: 0xfcfa91ba full_name: "trace_get_event_file" } @@ -361526,7 +365865,7 @@ elf_symbol { name: "trace_output_call" is_defined: true symbol_type: FUNCTION - crc: 0xb04c906c + crc: 0xb7638470 type_id: 0x99cffa53 full_name: "trace_output_call" } @@ -361580,7 +365919,7 @@ elf_symbol { name: "trace_raw_output_prep" is_defined: true symbol_type: FUNCTION - crc: 0x3deaeb9f + crc: 0xe121bc73 type_id: 0x99666596 full_name: "trace_raw_output_prep" } @@ -361643,7 +365982,7 @@ elf_symbol { name: "try_module_get" is_defined: true symbol_type: FUNCTION - crc: 0xcf024f82 + crc: 0x8c94c0d5 type_id: 0xfc6dac14 full_name: "try_module_get" } @@ -361670,7 +366009,7 @@ elf_symbol { name: "tty_driver_flush_buffer" is_defined: true symbol_type: FUNCTION - crc: 0x9a0a1b3c + crc: 0x3eb09737 type_id: 0x1b27f18a full_name: "tty_driver_flush_buffer" } @@ -361679,7 +366018,7 @@ elf_symbol { name: "tty_driver_kref_put" is_defined: true symbol_type: FUNCTION - crc: 0x42dcc48c + crc: 0x29b840d6 type_id: 0x1ce1326b full_name: "tty_driver_kref_put" } @@ -361688,7 +366027,7 @@ elf_symbol { name: "tty_encode_baud_rate" is_defined: true symbol_type: FUNCTION - crc: 0x700fa0c6 + crc: 0x79dc88c3 type_id: 0x195942ac full_name: "tty_encode_baud_rate" } @@ -361697,7 +366036,7 @@ elf_symbol { name: "tty_flip_buffer_push" is_defined: true symbol_type: FUNCTION - crc: 0xbb060c94 + crc: 0xac466bae type_id: 0x161c45fb full_name: "tty_flip_buffer_push" } @@ -361715,7 +366054,7 @@ elf_symbol { name: "tty_hangup" is_defined: true symbol_type: FUNCTION - crc: 0x5ca8b724 + crc: 0x98174889 type_id: 0x1b27f18a full_name: "tty_hangup" } @@ -361724,7 +366063,7 @@ elf_symbol { name: "tty_insert_flip_string_fixed_flag" is_defined: true symbol_type: FUNCTION - crc: 0x7ef072ad + crc: 0x4224cfcf type_id: 0x9be80513 full_name: "tty_insert_flip_string_fixed_flag" } @@ -361733,7 +366072,7 @@ elf_symbol { name: "tty_kref_put" is_defined: true symbol_type: FUNCTION - crc: 0xae37e5ae + crc: 0x65458cda type_id: 0x1b27f18a full_name: "tty_kref_put" } @@ -361742,7 +366081,7 @@ elf_symbol { name: "tty_ldisc_deref" is_defined: true symbol_type: FUNCTION - crc: 0x04135344 + crc: 0x33d652e2 type_id: 0x16d5560c full_name: "tty_ldisc_deref" } @@ -361751,7 +366090,7 @@ elf_symbol { name: "tty_ldisc_flush" is_defined: true symbol_type: FUNCTION - crc: 0xd4ea9b24 + crc: 0xdab3dbd5 type_id: 0x1b27f18a full_name: "tty_ldisc_flush" } @@ -361760,7 +366099,7 @@ elf_symbol { name: "tty_ldisc_ref" is_defined: true symbol_type: FUNCTION - crc: 0x1572f37a + crc: 0x5fb8c6b5 type_id: 0x797c68f3 full_name: "tty_ldisc_ref" } @@ -361769,7 +366108,7 @@ elf_symbol { name: "tty_mode_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0xd09b7da8 + crc: 0x6519703c type_id: 0x97258bf7 full_name: "tty_mode_ioctl" } @@ -361778,7 +366117,7 @@ elf_symbol { name: "tty_port_close" is_defined: true symbol_type: FUNCTION - crc: 0x26f33798 + crc: 0x677779d3 type_id: 0x16a18560 full_name: "tty_port_close" } @@ -361787,7 +366126,7 @@ elf_symbol { name: "tty_port_destroy" is_defined: true symbol_type: FUNCTION - crc: 0xedb4ec4e + crc: 0x0914e615 type_id: 0x161c45fb full_name: "tty_port_destroy" } @@ -361796,7 +366135,7 @@ elf_symbol { name: "tty_port_hangup" is_defined: true symbol_type: FUNCTION - crc: 0xad4868e7 + crc: 0x2a9b29ff type_id: 0x161c45fb full_name: "tty_port_hangup" } @@ -361805,7 +366144,7 @@ elf_symbol { name: "tty_port_init" is_defined: true symbol_type: FUNCTION - crc: 0x2f165261 + crc: 0x7c556ea9 type_id: 0x161c45fb full_name: "tty_port_init" } @@ -361814,7 +366153,7 @@ elf_symbol { name: "tty_port_install" is_defined: true symbol_type: FUNCTION - crc: 0x697c147e + crc: 0xd0d52865 type_id: 0x9bc8ded8 full_name: "tty_port_install" } @@ -361823,7 +366162,7 @@ elf_symbol { name: "tty_port_open" is_defined: true symbol_type: FUNCTION - crc: 0x302cf97a + crc: 0xd476de0c type_id: 0x9bb937dc full_name: "tty_port_open" } @@ -361832,7 +366171,7 @@ elf_symbol { name: "tty_port_put" is_defined: true symbol_type: FUNCTION - crc: 0x69888a31 + crc: 0x8b334706 type_id: 0x161c45fb full_name: "tty_port_put" } @@ -361841,7 +366180,7 @@ elf_symbol { name: "tty_port_register_device" is_defined: true symbol_type: FUNCTION - crc: 0xdc5636be + crc: 0xec5db239 type_id: 0xab7dda53 full_name: "tty_port_register_device" } @@ -361850,7 +366189,7 @@ elf_symbol { name: "tty_port_tty_get" is_defined: true symbol_type: FUNCTION - crc: 0x75e487da + crc: 0x6826dfd6 type_id: 0xcc787cc3 full_name: "tty_port_tty_get" } @@ -361859,7 +366198,7 @@ elf_symbol { name: "tty_port_tty_hangup" is_defined: true symbol_type: FUNCTION - crc: 0x73ceb7c1 + crc: 0xa6417f00 type_id: 0x17a9b884 full_name: "tty_port_tty_hangup" } @@ -361868,7 +366207,7 @@ elf_symbol { name: "tty_port_tty_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0x7a7f1384 + crc: 0x1032a41e type_id: 0x161c45fb full_name: "tty_port_tty_wakeup" } @@ -361877,7 +366216,7 @@ elf_symbol { name: "tty_register_driver" is_defined: true symbol_type: FUNCTION - crc: 0x80f83b76 + crc: 0xdab81d6a type_id: 0x91f980d7 full_name: "tty_register_driver" } @@ -361886,7 +366225,7 @@ elf_symbol { name: "tty_register_ldisc" is_defined: true symbol_type: FUNCTION - crc: 0x43260165 + crc: 0x043f9949 type_id: 0x91b78ec8 full_name: "tty_register_ldisc" } @@ -361895,7 +366234,7 @@ elf_symbol { name: "tty_set_termios" is_defined: true symbol_type: FUNCTION - crc: 0xb7adeb47 + crc: 0x80a42a7e type_id: 0x96c908d1 full_name: "tty_set_termios" } @@ -361904,7 +366243,7 @@ elf_symbol { name: "tty_standard_install" is_defined: true symbol_type: FUNCTION - crc: 0x805a6be3 + crc: 0xbaa980b8 type_id: 0x91427ad6 full_name: "tty_standard_install" } @@ -361949,7 +366288,7 @@ elf_symbol { name: "tty_unregister_device" is_defined: true symbol_type: FUNCTION - crc: 0xe101b680 + crc: 0x7d3a21c7 type_id: 0x1df727f3 full_name: "tty_unregister_device" } @@ -361958,7 +366297,7 @@ elf_symbol { name: "tty_unregister_driver" is_defined: true symbol_type: FUNCTION - crc: 0x53b3d7bb + crc: 0x47a02b0d type_id: 0x1ce1326b full_name: "tty_unregister_driver" } @@ -361967,7 +366306,7 @@ elf_symbol { name: "tty_unregister_ldisc" is_defined: true symbol_type: FUNCTION - crc: 0x04a0c107 + crc: 0x303084a7 type_id: 0x1caf3c74 full_name: "tty_unregister_ldisc" } @@ -361976,7 +366315,7 @@ elf_symbol { name: "tty_unthrottle" is_defined: true symbol_type: FUNCTION - crc: 0xc0bafce2 + crc: 0x8b8852c9 type_id: 0x1b27f18a full_name: "tty_unthrottle" } @@ -361985,7 +366324,7 @@ elf_symbol { name: "tty_vhangup" is_defined: true symbol_type: FUNCTION - crc: 0x2a5aa4e4 + crc: 0xb64518c9 type_id: 0x1b27f18a full_name: "tty_vhangup" } @@ -361994,7 +366333,7 @@ elf_symbol { name: "tty_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0x0d9b6332 + crc: 0x75c364b8 type_id: 0x1b27f18a full_name: "tty_wakeup" } @@ -362021,7 +366360,7 @@ elf_symbol { name: "typec_get_drvdata" is_defined: true symbol_type: FUNCTION - crc: 0xa733caba + crc: 0x2652e1f3 type_id: 0x5b4eac6a full_name: "typec_get_drvdata" } @@ -362030,16 +366369,25 @@ elf_symbol { name: "typec_mux_get_drvdata" is_defined: true symbol_type: FUNCTION - crc: 0x854e37a8 + crc: 0xf69e7ce3 type_id: 0x5aa1d598 full_name: "typec_mux_get_drvdata" } +elf_symbol { + id: 0x29215b38 + name: "typec_mux_register" + is_defined: true + symbol_type: FUNCTION + crc: 0x29a3326a + type_id: 0x6caf01af + full_name: "typec_mux_register" +} elf_symbol { id: 0x22d09ebb name: "typec_register_partner" is_defined: true symbol_type: FUNCTION - crc: 0xc6f008fd + crc: 0x94ebb9b5 type_id: 0x2eae2692 full_name: "typec_register_partner" } @@ -362048,7 +366396,7 @@ elf_symbol { name: "typec_register_port" is_defined: true symbol_type: FUNCTION - crc: 0x3ef9b448 + crc: 0xc0a144c1 type_id: 0xc993ac0a full_name: "typec_register_port" } @@ -362057,7 +366405,7 @@ elf_symbol { name: "typec_set_data_role" is_defined: true symbol_type: FUNCTION - crc: 0xd535d956 + crc: 0xd596f32c type_id: 0x1e585388 full_name: "typec_set_data_role" } @@ -362066,7 +366414,7 @@ elf_symbol { name: "typec_set_orientation" is_defined: true symbol_type: FUNCTION - crc: 0xb04fa06c + crc: 0x18e9d855 type_id: 0x9365db7d full_name: "typec_set_orientation" } @@ -362075,7 +366423,7 @@ elf_symbol { name: "typec_set_pwr_opmode" is_defined: true symbol_type: FUNCTION - crc: 0x9746cd0a + crc: 0x72e146e7 type_id: 0x1c861e9d full_name: "typec_set_pwr_opmode" } @@ -362084,7 +366432,7 @@ elf_symbol { name: "typec_set_pwr_role" is_defined: true symbol_type: FUNCTION - crc: 0xc8e72e4f + crc: 0xad0b90b3 type_id: 0x1f45d394 full_name: "typec_set_pwr_role" } @@ -362093,7 +366441,7 @@ elf_symbol { name: "typec_switch_get_drvdata" is_defined: true symbol_type: FUNCTION - crc: 0x7ed95a00 + crc: 0x2bcf93d7 type_id: 0x57990287 full_name: "typec_switch_get_drvdata" } @@ -362102,7 +366450,7 @@ elf_symbol { name: "typec_switch_register" is_defined: true symbol_type: FUNCTION - crc: 0x490640e7 + crc: 0xa68fc5f4 type_id: 0x2d04a70f full_name: "typec_switch_register" } @@ -362111,7 +366459,7 @@ elf_symbol { name: "typec_switch_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x9b85f265 + crc: 0xa2d9fb1a type_id: 0x1197e2e5 full_name: "typec_switch_unregister" } @@ -362120,7 +366468,7 @@ elf_symbol { name: "typec_unregister_partner" is_defined: true symbol_type: FUNCTION - crc: 0xf67155d1 + crc: 0xa4f9efbd type_id: 0x148f719a full_name: "typec_unregister_partner" } @@ -362129,7 +366477,7 @@ elf_symbol { name: "typec_unregister_port" is_defined: true symbol_type: FUNCTION - crc: 0x65ba25e0 + crc: 0x78421c4f type_id: 0x1d404c08 full_name: "typec_unregister_port" } @@ -362138,7 +366486,7 @@ elf_symbol { name: "uart_add_one_port" is_defined: true symbol_type: FUNCTION - crc: 0x3ae044d9 + crc: 0x449c936c type_id: 0x9e5980cd full_name: "uart_add_one_port" } @@ -362147,7 +366495,7 @@ elf_symbol { name: "uart_console_device" is_defined: true symbol_type: FUNCTION - crc: 0x421ed218 + crc: 0x97ea9345 type_id: 0xaf7fbf57 full_name: "uart_console_device" } @@ -362156,7 +366504,7 @@ elf_symbol { name: "uart_console_write" is_defined: true symbol_type: FUNCTION - crc: 0xe7fe33c0 + crc: 0x263696ce type_id: 0x105cac82 full_name: "uart_console_write" } @@ -362165,7 +366513,7 @@ elf_symbol { name: "uart_get_baud_rate" is_defined: true symbol_type: FUNCTION - crc: 0x452608bc + crc: 0x24337dd5 type_id: 0xce0dc24b full_name: "uart_get_baud_rate" } @@ -362174,7 +366522,7 @@ elf_symbol { name: "uart_insert_char" is_defined: true symbol_type: FUNCTION - crc: 0x5211cb20 + crc: 0x7b50e838 type_id: 0x11b3c739 full_name: "uart_insert_char" } @@ -362192,7 +366540,7 @@ elf_symbol { name: "uart_register_driver" is_defined: true symbol_type: FUNCTION - crc: 0x4a53ff92 + crc: 0x5d285c3b type_id: 0x9e5b5e9c full_name: "uart_register_driver" } @@ -362201,7 +366549,7 @@ elf_symbol { name: "uart_remove_one_port" is_defined: true symbol_type: FUNCTION - crc: 0x32477220 + crc: 0x8e974721 type_id: 0x9e5980cd full_name: "uart_remove_one_port" } @@ -362210,7 +366558,7 @@ elf_symbol { name: "uart_resume_port" is_defined: true symbol_type: FUNCTION - crc: 0xbbfafe1f + crc: 0xe03098b8 type_id: 0x9e5980cd full_name: "uart_resume_port" } @@ -362219,7 +366567,7 @@ elf_symbol { name: "uart_set_options" is_defined: true symbol_type: FUNCTION - crc: 0x57f6034b + crc: 0xec3f428d type_id: 0x9db0376d full_name: "uart_set_options" } @@ -362228,7 +366576,7 @@ elf_symbol { name: "uart_suspend_port" is_defined: true symbol_type: FUNCTION - crc: 0x6e7ef26c + crc: 0x047d0f9a type_id: 0x9e5980cd full_name: "uart_suspend_port" } @@ -362237,7 +366585,7 @@ elf_symbol { name: "uart_try_toggle_sysrq" is_defined: true symbol_type: FUNCTION - crc: 0x520e1eef + crc: 0xe5b776ca type_id: 0xff9fab83 full_name: "uart_try_toggle_sysrq" } @@ -362246,7 +366594,7 @@ elf_symbol { name: "uart_unregister_driver" is_defined: true symbol_type: FUNCTION - crc: 0x04c9b59f + crc: 0xc3e105d9 type_id: 0x1343ec20 full_name: "uart_unregister_driver" } @@ -362255,7 +366603,7 @@ elf_symbol { name: "uart_update_timeout" is_defined: true symbol_type: FUNCTION - crc: 0x036a4d29 + crc: 0x411fb99d type_id: 0x11b2c04d full_name: "uart_update_timeout" } @@ -362264,7 +366612,7 @@ elf_symbol { name: "uart_write_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0x74ab73e8 + crc: 0xd893053d type_id: 0x10b5b48c full_name: "uart_write_wakeup" } @@ -362273,7 +366621,7 @@ elf_symbol { name: "uclamp_eff_value" is_defined: true symbol_type: FUNCTION - crc: 0x002bfb20 + crc: 0x1f9188f9 type_id: 0x37f8837e full_name: "uclamp_eff_value" } @@ -362282,7 +366630,7 @@ elf_symbol { name: "ucsi_connector_change" is_defined: true symbol_type: FUNCTION - crc: 0xa1e1578d + crc: 0x36508b50 type_id: 0x1bd0b1ab full_name: "ucsi_connector_change" } @@ -362291,7 +366639,7 @@ elf_symbol { name: "ucsi_create" is_defined: true symbol_type: FUNCTION - crc: 0xdf258e00 + crc: 0x427433ae type_id: 0x3dc04d04 full_name: "ucsi_create" } @@ -362300,7 +366648,7 @@ elf_symbol { name: "ucsi_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x5faef449 + crc: 0x743f588a type_id: 0x1b75c063 full_name: "ucsi_destroy" } @@ -362309,7 +366657,7 @@ elf_symbol { name: "ucsi_get_drvdata" is_defined: true symbol_type: FUNCTION - crc: 0x150de784 + crc: 0x0889d4ee type_id: 0x5d7b2001 full_name: "ucsi_get_drvdata" } @@ -362318,7 +366666,7 @@ elf_symbol { name: "ucsi_register" is_defined: true symbol_type: FUNCTION - crc: 0x7cbacd9f + crc: 0xb961317d type_id: 0x966d72df full_name: "ucsi_register" } @@ -362327,7 +366675,7 @@ elf_symbol { name: "ucsi_set_drvdata" is_defined: true symbol_type: FUNCTION - crc: 0x2bcca113 + crc: 0xbf166456 type_id: 0x1b1735f7 full_name: "ucsi_set_drvdata" } @@ -362336,7 +366684,7 @@ elf_symbol { name: "ucsi_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xbbe4cf35 + crc: 0x30cb2f06 type_id: 0x1b75c063 full_name: "ucsi_unregister" } @@ -362345,7 +366693,7 @@ elf_symbol { name: "udp4_hwcsum" is_defined: true symbol_type: FUNCTION - crc: 0xb1efbfbf + crc: 0xc241484a type_id: 0x127accc9 full_name: "udp4_hwcsum" } @@ -362354,7 +366702,7 @@ elf_symbol { name: "udp6_set_csum" is_defined: true symbol_type: FUNCTION - crc: 0x7482ceee + crc: 0xffb95465 type_id: 0x0bdc9e9d full_name: "udp6_set_csum" } @@ -362363,7 +366711,7 @@ elf_symbol { name: "udp_set_csum" is_defined: true symbol_type: FUNCTION - crc: 0x5f709390 + crc: 0x76c8c87e type_id: 0x0be9b673 full_name: "udp_set_csum" } @@ -362372,7 +366720,7 @@ elf_symbol { name: "udp_sock_create4" is_defined: true symbol_type: FUNCTION - crc: 0x1bd51c09 + crc: 0x6e9bb4f4 type_id: 0x9ea1fe03 full_name: "udp_sock_create4" } @@ -362381,7 +366729,7 @@ elf_symbol { name: "udp_sock_create6" is_defined: true symbol_type: FUNCTION - crc: 0x2adfa82f + crc: 0x4cdc64df type_id: 0x9ea1fe03 full_name: "udp_sock_create6" } @@ -362399,7 +366747,7 @@ elf_symbol { name: "udp_tunnel6_xmit_skb" is_defined: true symbol_type: FUNCTION - crc: 0x492693ef + crc: 0x5d79b5bd type_id: 0x99621666 full_name: "udp_tunnel6_xmit_skb" } @@ -362408,7 +366756,7 @@ elf_symbol { name: "udp_tunnel_sock_release" is_defined: true symbol_type: FUNCTION - crc: 0x1934b4fa + crc: 0x4a867945 type_id: 0x14805be2 full_name: "udp_tunnel_sock_release" } @@ -362417,16 +366765,25 @@ elf_symbol { name: "udp_tunnel_xmit_skb" is_defined: true symbol_type: FUNCTION - crc: 0x94df64ac + crc: 0x4585c469 type_id: 0x14a305ea full_name: "udp_tunnel_xmit_skb" } +elf_symbol { + id: 0x3fa12248 + name: "ufshcd_alloc_host" + is_defined: true + symbol_type: FUNCTION + crc: 0xd2206531 + type_id: 0x9d3b1e84 + full_name: "ufshcd_alloc_host" +} elf_symbol { id: 0x5ba31e17 name: "ufshcd_auto_hibern8_update" is_defined: true symbol_type: FUNCTION - crc: 0xacfd5948 + crc: 0xa45f7eb8 type_id: 0x125cb480 full_name: "ufshcd_auto_hibern8_update" } @@ -362435,16 +366792,34 @@ elf_symbol { name: "ufshcd_bkops_ctrl" is_defined: true symbol_type: FUNCTION - crc: 0xb57f564e + crc: 0x6842e059 type_id: 0x9fcafcaa full_name: "ufshcd_bkops_ctrl" } +elf_symbol { + id: 0xa45d6674 + name: "ufshcd_config_pwr_mode" + is_defined: true + symbol_type: FUNCTION + crc: 0x9de96168 + type_id: 0x9c1de0b0 + full_name: "ufshcd_config_pwr_mode" +} +elf_symbol { + id: 0xca76e0b2 + name: "ufshcd_dealloc_host" + is_defined: true + symbol_type: FUNCTION + crc: 0xe931a2f2 + type_id: 0x1178942c + full_name: "ufshcd_dealloc_host" +} elf_symbol { id: 0x60b0cfc9 name: "ufshcd_dme_configure_adapt" is_defined: true symbol_type: FUNCTION - crc: 0x7ef1836d + crc: 0x55ac794f type_id: 0x9de56de8 full_name: "ufshcd_dme_configure_adapt" } @@ -362453,7 +366828,7 @@ elf_symbol { name: "ufshcd_dme_get_attr" is_defined: true symbol_type: FUNCTION - crc: 0xc4fe663c + crc: 0x71e326ff type_id: 0x9f4a97c1 full_name: "ufshcd_dme_get_attr" } @@ -362462,7 +366837,7 @@ elf_symbol { name: "ufshcd_dme_set_attr" is_defined: true symbol_type: FUNCTION - crc: 0xe5059420 + crc: 0x778f5ada type_id: 0x9f4d7f57 full_name: "ufshcd_dme_set_attr" } @@ -362471,7 +366846,7 @@ elf_symbol { name: "ufshcd_dump_regs" is_defined: true symbol_type: FUNCTION - crc: 0x53c75184 + crc: 0xbc7eec2f type_id: 0x9f8d0629 full_name: "ufshcd_dump_regs" } @@ -362480,7 +366855,7 @@ elf_symbol { name: "ufshcd_fixup_dev_quirks" is_defined: true symbol_type: FUNCTION - crc: 0x8242f49b + crc: 0x8f76ffa9 type_id: 0x1183ff2d full_name: "ufshcd_fixup_dev_quirks" } @@ -362489,7 +366864,7 @@ elf_symbol { name: "ufshcd_get_local_unipro_ver" is_defined: true symbol_type: FUNCTION - crc: 0xd0e6fcd1 + crc: 0x8793e400 type_id: 0x4418eedd full_name: "ufshcd_get_local_unipro_ver" } @@ -362502,12 +366877,21 @@ elf_symbol { type_id: 0x93203902 full_name: "ufshcd_get_pwr_dev_param" } +elf_symbol { + id: 0x493c067d + name: "ufshcd_hba_enable" + is_defined: true + symbol_type: FUNCTION + crc: 0x41c1d0d7 + type_id: 0x9c602690 + full_name: "ufshcd_hba_enable" +} elf_symbol { id: 0xc3b81360 name: "ufshcd_hba_stop" is_defined: true symbol_type: FUNCTION - crc: 0x40a1e7f8 + crc: 0xf02a686a type_id: 0x1178942c full_name: "ufshcd_hba_stop" } @@ -362516,7 +366900,7 @@ elf_symbol { name: "ufshcd_hold" is_defined: true symbol_type: FUNCTION - crc: 0xdaf5c924 + crc: 0x41bad3fe type_id: 0x9dd5dbef full_name: "ufshcd_hold" } @@ -362529,12 +366913,21 @@ elf_symbol { type_id: 0x16bac6e1 full_name: "ufshcd_init_pwr_dev_param" } +elf_symbol { + id: 0xba7435fd + name: "ufshcd_make_hba_operational" + is_defined: true + symbol_type: FUNCTION + crc: 0x5d5c7243 + type_id: 0x9c602690 + full_name: "ufshcd_make_hba_operational" +} elf_symbol { id: 0xb59c5eaf name: "ufshcd_mcq_config_esi" is_defined: true symbol_type: FUNCTION - crc: 0x120e6711 + crc: 0x2322489c type_id: 0x11ebebf2 full_name: "ufshcd_mcq_config_esi" } @@ -362543,7 +366936,7 @@ elf_symbol { name: "ufshcd_mcq_enable_esi" is_defined: true symbol_type: FUNCTION - crc: 0x5426e88e + crc: 0x0a17d112 type_id: 0x1178942c full_name: "ufshcd_mcq_enable_esi" } @@ -362552,7 +366945,7 @@ elf_symbol { name: "ufshcd_mcq_poll_cqe_nolock" is_defined: true symbol_type: FUNCTION - crc: 0x932e61af + crc: 0x5a5be904 type_id: 0x30f8e5d3 full_name: "ufshcd_mcq_poll_cqe_nolock" } @@ -362561,7 +366954,7 @@ elf_symbol { name: "ufshcd_mcq_write_cqis" is_defined: true symbol_type: FUNCTION - crc: 0x28bcafc5 + crc: 0x7ebf6ea9 type_id: 0x12457cb4 full_name: "ufshcd_mcq_write_cqis" } @@ -362570,7 +366963,7 @@ elf_symbol { name: "ufshcd_pltfrm_init" is_defined: true symbol_type: FUNCTION - crc: 0x8d2304e8 + crc: 0x2fe1912d type_id: 0x928794d5 full_name: "ufshcd_pltfrm_init" } @@ -362579,7 +366972,7 @@ elf_symbol { name: "ufshcd_pltfrm_shutdown" is_defined: true symbol_type: FUNCTION - crc: 0x6225383c + crc: 0xa8ec88f0 type_id: 0x1f55a7e6 full_name: "ufshcd_pltfrm_shutdown" } @@ -362588,7 +366981,7 @@ elf_symbol { name: "ufshcd_query_attr" is_defined: true symbol_type: FUNCTION - crc: 0xfc2ebf80 + crc: 0x632c0527 type_id: 0x9ca39dee full_name: "ufshcd_query_attr" } @@ -362597,7 +366990,7 @@ elf_symbol { name: "ufshcd_query_attr_retry" is_defined: true symbol_type: FUNCTION - crc: 0x6ab1cd1c + crc: 0xa3d0dd46 type_id: 0x9ca39dee full_name: "ufshcd_query_attr_retry" } @@ -362606,7 +366999,7 @@ elf_symbol { name: "ufshcd_query_descriptor_retry" is_defined: true symbol_type: FUNCTION - crc: 0x8e16a71a + crc: 0x1dc53734 type_id: 0x9cb87b44 full_name: "ufshcd_query_descriptor_retry" } @@ -362615,7 +367008,7 @@ elf_symbol { name: "ufshcd_query_flag" is_defined: true symbol_type: FUNCTION - crc: 0xc1efce4f + crc: 0xc21c88a3 type_id: 0x9c8699ca full_name: "ufshcd_query_flag" } @@ -362624,7 +367017,7 @@ elf_symbol { name: "ufshcd_query_flag_retry" is_defined: true symbol_type: FUNCTION - crc: 0x99a60933 + crc: 0xc1a89d95 type_id: 0x9c8699ca full_name: "ufshcd_query_flag_retry" } @@ -362633,7 +367026,7 @@ elf_symbol { name: "ufshcd_read_desc_param" is_defined: true symbol_type: FUNCTION - crc: 0xd5cff2fb + crc: 0xdb74e1b5 type_id: 0x9fb1e92c full_name: "ufshcd_read_desc_param" } @@ -362642,7 +367035,7 @@ elf_symbol { name: "ufshcd_release" is_defined: true symbol_type: FUNCTION - crc: 0xa89c10a8 + crc: 0x0e7e131e type_id: 0x1178942c full_name: "ufshcd_release" } @@ -362651,7 +367044,7 @@ elf_symbol { name: "ufshcd_remove" is_defined: true symbol_type: FUNCTION - crc: 0xbf5df876 + crc: 0xb6b411ff type_id: 0x1178942c full_name: "ufshcd_remove" } @@ -362660,7 +367053,7 @@ elf_symbol { name: "ufshcd_resume_complete" is_defined: true symbol_type: FUNCTION - crc: 0x6e1baf2c + crc: 0xcb3a9f4e type_id: 0x100e6fc8 full_name: "ufshcd_resume_complete" } @@ -362669,7 +367062,7 @@ elf_symbol { name: "ufshcd_runtime_resume" is_defined: true symbol_type: FUNCTION - crc: 0x8bb0009b + crc: 0x18af817e type_id: 0x9d16dd74 full_name: "ufshcd_runtime_resume" } @@ -362678,7 +367071,7 @@ elf_symbol { name: "ufshcd_runtime_suspend" is_defined: true symbol_type: FUNCTION - crc: 0xb6d71810 + crc: 0xb1fa0afb type_id: 0x9d16dd74 full_name: "ufshcd_runtime_suspend" } @@ -362687,7 +367080,7 @@ elf_symbol { name: "ufshcd_shutdown" is_defined: true symbol_type: FUNCTION - crc: 0x444d1b1f + crc: 0x4683a3f4 type_id: 0x9c602690 full_name: "ufshcd_shutdown" } @@ -362696,7 +367089,7 @@ elf_symbol { name: "ufshcd_suspend_prepare" is_defined: true symbol_type: FUNCTION - crc: 0x0f48a229 + crc: 0x97c3f9d8 type_id: 0x9d16dd74 full_name: "ufshcd_suspend_prepare" } @@ -362705,7 +367098,7 @@ elf_symbol { name: "ufshcd_system_freeze" is_defined: true symbol_type: FUNCTION - crc: 0x245ac603 + crc: 0x74910651 type_id: 0x9d16dd74 full_name: "ufshcd_system_freeze" } @@ -362714,7 +367107,7 @@ elf_symbol { name: "ufshcd_system_restore" is_defined: true symbol_type: FUNCTION - crc: 0x1116dd31 + crc: 0x3cb6d593 type_id: 0x9d16dd74 full_name: "ufshcd_system_restore" } @@ -362723,7 +367116,7 @@ elf_symbol { name: "ufshcd_system_resume" is_defined: true symbol_type: FUNCTION - crc: 0x21d5a137 + crc: 0xedab0e72 type_id: 0x9d16dd74 full_name: "ufshcd_system_resume" } @@ -362732,7 +367125,7 @@ elf_symbol { name: "ufshcd_system_suspend" is_defined: true symbol_type: FUNCTION - crc: 0x691d9272 + crc: 0xb8b9425f type_id: 0x9d16dd74 full_name: "ufshcd_system_suspend" } @@ -362741,7 +367134,7 @@ elf_symbol { name: "ufshcd_system_thaw" is_defined: true symbol_type: FUNCTION - crc: 0x0144a0f0 + crc: 0x415eddbd type_id: 0x9d16dd74 full_name: "ufshcd_system_thaw" } @@ -362750,7 +367143,7 @@ elf_symbol { name: "ufshcd_uic_hibern8_enter" is_defined: true symbol_type: FUNCTION - crc: 0x43b49687 + crc: 0xe6d7dfca type_id: 0x9c602690 full_name: "ufshcd_uic_hibern8_enter" } @@ -362759,16 +367152,25 @@ elf_symbol { name: "ufshcd_uic_hibern8_exit" is_defined: true symbol_type: FUNCTION - crc: 0x0abf4c53 + crc: 0x788bd199 type_id: 0x9c602690 full_name: "ufshcd_uic_hibern8_exit" } +elf_symbol { + id: 0xb163f167 + name: "ufshcd_update_evt_hist" + is_defined: true + symbol_type: FUNCTION + crc: 0x020d39ae + type_id: 0x126ef68a + full_name: "ufshcd_update_evt_hist" +} elf_symbol { id: 0x439eff60 name: "uio_unregister_device" is_defined: true symbol_type: FUNCTION - crc: 0x9cb82265 + crc: 0x62cb2f79 type_id: 0x13f52df1 full_name: "uio_unregister_device" } @@ -362777,7 +367179,7 @@ elf_symbol { name: "unlock_page" is_defined: true symbol_type: FUNCTION - crc: 0xcc9f4f67 + crc: 0xeaa14f75 type_id: 0x11388634 full_name: "unlock_page" } @@ -362786,7 +367188,7 @@ elf_symbol { name: "unmap_mapping_range" is_defined: true symbol_type: FUNCTION - crc: 0x1600bf1b + crc: 0x5532f21b type_id: 0x156e1138 full_name: "unmap_mapping_range" } @@ -362795,7 +367197,7 @@ elf_symbol { name: "unpin_user_page" is_defined: true symbol_type: FUNCTION - crc: 0x40c4a487 + crc: 0xda99a435 type_id: 0x11388634 full_name: "unpin_user_page" } @@ -362804,7 +367206,7 @@ elf_symbol { name: "unpin_user_pages_dirty_lock" is_defined: true symbol_type: FUNCTION - crc: 0xd20d34c2 + crc: 0xea35d922 type_id: 0x1282e056 full_name: "unpin_user_pages_dirty_lock" } @@ -362822,7 +367224,7 @@ elf_symbol { name: "unregister_candev" is_defined: true symbol_type: FUNCTION - crc: 0x51dd52de + crc: 0x6f85fdeb type_id: 0x1c31d966 full_name: "unregister_candev" } @@ -362840,7 +367242,7 @@ elf_symbol { name: "unregister_console" is_defined: true symbol_type: FUNCTION - crc: 0x2b737cfc + crc: 0x51e15095 type_id: 0x9dd738c0 full_name: "unregister_console" } @@ -362921,7 +367323,7 @@ elf_symbol { name: "unregister_netdev" is_defined: true symbol_type: FUNCTION - crc: 0x8b24e8d6 + crc: 0xc108a04f type_id: 0x1c31d966 full_name: "unregister_netdev" } @@ -362948,7 +367350,7 @@ elf_symbol { name: "unregister_netdevice_queue" is_defined: true symbol_type: FUNCTION - crc: 0x6542f938 + crc: 0xd4598d55 type_id: 0x1cc85181 full_name: "unregister_netdevice_queue" } @@ -362975,7 +367377,7 @@ elf_symbol { name: "unregister_pernet_device" is_defined: true symbol_type: FUNCTION - crc: 0x541bda8b + crc: 0x6954c312 type_id: 0x1a8e27b5 full_name: "unregister_pernet_device" } @@ -362984,7 +367386,7 @@ elf_symbol { name: "unregister_pernet_subsys" is_defined: true symbol_type: FUNCTION - crc: 0x7efa85d8 + crc: 0x2d3fb2ae type_id: 0x1a8e27b5 full_name: "unregister_pernet_subsys" } @@ -363011,7 +367413,7 @@ elf_symbol { name: "unregister_qdisc" is_defined: true symbol_type: FUNCTION - crc: 0x34554723 + crc: 0x96ff72c2 type_id: 0x1f62fcf3 full_name: "unregister_qdisc" } @@ -363038,7 +367440,7 @@ elf_symbol { name: "unregister_rpmsg_driver" is_defined: true symbol_type: FUNCTION - crc: 0x5b736799 + crc: 0xd58f06e9 type_id: 0x18db21cb full_name: "unregister_rpmsg_driver" } @@ -363047,7 +367449,7 @@ elf_symbol { name: "unregister_shrinker" is_defined: true symbol_type: FUNCTION - crc: 0xc0e64805 + crc: 0xbe519bac type_id: 0x19752ade full_name: "unregister_shrinker" } @@ -363074,7 +367476,7 @@ elf_symbol { name: "unregister_tcf_proto_ops" is_defined: true symbol_type: FUNCTION - crc: 0x42121917 + crc: 0xb6e6f405 type_id: 0x17e4a48e full_name: "unregister_tcf_proto_ops" } @@ -363083,7 +367485,7 @@ elf_symbol { name: "unregister_virtio_device" is_defined: true symbol_type: FUNCTION - crc: 0xfe74bb70 + crc: 0x40018bd0 type_id: 0x1ad5d81c full_name: "unregister_virtio_device" } @@ -363092,7 +367494,7 @@ elf_symbol { name: "unregister_virtio_driver" is_defined: true symbol_type: FUNCTION - crc: 0xd3387715 + crc: 0x9a2f6a5d type_id: 0x14a4a6f4 full_name: "unregister_virtio_driver" } @@ -363137,7 +367539,7 @@ elf_symbol { name: "update_devfreq" is_defined: true symbol_type: FUNCTION - crc: 0x7550e25e + crc: 0x27d23915 type_id: 0x945a66f1 full_name: "update_devfreq" } @@ -363146,7 +367548,7 @@ elf_symbol { name: "update_rq_clock" is_defined: true symbol_type: FUNCTION - crc: 0x86e8aecd + crc: 0x472c6b5f type_id: 0x1b18f64e full_name: "update_rq_clock" } @@ -363155,7 +367557,7 @@ elf_symbol { name: "usb_add_function" is_defined: true symbol_type: FUNCTION - crc: 0xda55c136 + crc: 0xaa6223be type_id: 0x9ebe912b full_name: "usb_add_function" } @@ -363164,7 +367566,7 @@ elf_symbol { name: "usb_add_gadget_udc" is_defined: true symbol_type: FUNCTION - crc: 0x98e53e74 + crc: 0xd25057de type_id: 0x9d834998 full_name: "usb_add_gadget_udc" } @@ -363173,7 +367575,7 @@ elf_symbol { name: "usb_add_hcd" is_defined: true symbol_type: FUNCTION - crc: 0x9932f2d8 + crc: 0x72b67b42 type_id: 0x95c42336 full_name: "usb_add_hcd" } @@ -363182,7 +367584,7 @@ elf_symbol { name: "usb_add_phy_dev" is_defined: true symbol_type: FUNCTION - crc: 0xca3532b9 + crc: 0x621ff5bc type_id: 0x9cf04bdd full_name: "usb_add_phy_dev" } @@ -363191,7 +367593,7 @@ elf_symbol { name: "usb_alloc_coherent" is_defined: true symbol_type: FUNCTION - crc: 0xa3add748 + crc: 0xc145f1ce type_id: 0x5625fe7a full_name: "usb_alloc_coherent" } @@ -363200,7 +367602,7 @@ elf_symbol { name: "usb_alloc_urb" is_defined: true symbol_type: FUNCTION - crc: 0xfa56c15a + crc: 0x2cfe37c5 type_id: 0x7fc911b7 full_name: "usb_alloc_urb" } @@ -363254,7 +367656,7 @@ elf_symbol { name: "usb_anchor_urb" is_defined: true symbol_type: FUNCTION - crc: 0x28288311 + crc: 0x1605014f type_id: 0x100504e2 full_name: "usb_anchor_urb" } @@ -363263,7 +367665,7 @@ elf_symbol { name: "usb_assign_descriptors" is_defined: true symbol_type: FUNCTION - crc: 0xc76f21a3 + crc: 0x488e8387 type_id: 0x95b74be6 full_name: "usb_assign_descriptors" } @@ -363272,7 +367674,7 @@ elf_symbol { name: "usb_autopm_get_interface" is_defined: true symbol_type: FUNCTION - crc: 0xfe6c3ef5 + crc: 0x67cfaf23 type_id: 0x95c144d5 full_name: "usb_autopm_get_interface" } @@ -363281,7 +367683,7 @@ elf_symbol { name: "usb_autopm_get_interface_async" is_defined: true symbol_type: FUNCTION - crc: 0x342dd5bc + crc: 0x9ce66cd2 type_id: 0x95c144d5 full_name: "usb_autopm_get_interface_async" } @@ -363290,7 +367692,7 @@ elf_symbol { name: "usb_autopm_get_interface_no_resume" is_defined: true symbol_type: FUNCTION - crc: 0xb9d91b10 + crc: 0x602535cd type_id: 0x18d9f669 full_name: "usb_autopm_get_interface_no_resume" } @@ -363299,7 +367701,7 @@ elf_symbol { name: "usb_autopm_put_interface" is_defined: true symbol_type: FUNCTION - crc: 0xc37b944d + crc: 0xa8f0c046 type_id: 0x18d9f669 full_name: "usb_autopm_put_interface" } @@ -363308,7 +367710,7 @@ elf_symbol { name: "usb_autopm_put_interface_async" is_defined: true symbol_type: FUNCTION - crc: 0x195eda76 + crc: 0xed062b2d type_id: 0x18d9f669 full_name: "usb_autopm_put_interface_async" } @@ -363317,7 +367719,7 @@ elf_symbol { name: "usb_bulk_msg" is_defined: true symbol_type: FUNCTION - crc: 0x46b9b879 + crc: 0x486cdab8 type_id: 0x9fce79d4 full_name: "usb_bulk_msg" } @@ -363353,7 +367755,7 @@ elf_symbol { name: "usb_clear_halt" is_defined: true symbol_type: FUNCTION - crc: 0x304d6d5f + crc: 0x0519db08 type_id: 0x9f435990 full_name: "usb_clear_halt" } @@ -363362,7 +367764,7 @@ elf_symbol { name: "usb_composite_setup_continue" is_defined: true symbol_type: FUNCTION - crc: 0x30755317 + crc: 0x2ce6a405 type_id: 0x18d04dd3 full_name: "usb_composite_setup_continue" } @@ -363371,7 +367773,7 @@ elf_symbol { name: "usb_control_msg" is_defined: true symbol_type: FUNCTION - crc: 0xb588e418 + crc: 0xd8bfa4a6 type_id: 0x9fe7c091 full_name: "usb_control_msg" } @@ -363380,7 +367782,7 @@ elf_symbol { name: "usb_control_msg_recv" is_defined: true symbol_type: FUNCTION - crc: 0x9a060883 + crc: 0xfb6c1bd0 type_id: 0x9c3e4be2 full_name: "usb_control_msg_recv" } @@ -363389,7 +367791,7 @@ elf_symbol { name: "usb_control_msg_send" is_defined: true symbol_type: FUNCTION - crc: 0xdf7c9948 + crc: 0x5cd0dc43 type_id: 0x9c3e4bea full_name: "usb_control_msg_send" } @@ -363407,7 +367809,7 @@ elf_symbol { name: "usb_create_hcd" is_defined: true symbol_type: FUNCTION - crc: 0x8d2415a7 + crc: 0x098b2578 type_id: 0xab95c382 full_name: "usb_create_hcd" } @@ -363416,7 +367818,7 @@ elf_symbol { name: "usb_create_shared_hcd" is_defined: true symbol_type: FUNCTION - crc: 0xf702f78a + crc: 0xf52eafd4 type_id: 0xab955662 full_name: "usb_create_shared_hcd" } @@ -363425,7 +367827,7 @@ elf_symbol { name: "usb_debug_root" is_defined: true symbol_type: OBJECT - crc: 0x223440db + crc: 0x916efb94 type_id: 0x120540d1 full_name: "usb_debug_root" } @@ -363443,7 +367845,7 @@ elf_symbol { name: "usb_del_gadget_udc" is_defined: true symbol_type: FUNCTION - crc: 0x22408e27 + crc: 0x0ba79252 type_id: 0x19c11f53 full_name: "usb_del_gadget_udc" } @@ -363452,7 +367854,7 @@ elf_symbol { name: "usb_deregister" is_defined: true symbol_type: FUNCTION - crc: 0x6a9f1403 + crc: 0x64f83e0f type_id: 0x1fbef67f full_name: "usb_deregister" } @@ -363461,7 +367863,7 @@ elf_symbol { name: "usb_device_match_id" is_defined: true symbol_type: FUNCTION - crc: 0xc2c5a86e + crc: 0xaf393a6d type_id: 0x1c1deea6 full_name: "usb_device_match_id" } @@ -363479,7 +367881,7 @@ elf_symbol { name: "usb_driver_claim_interface" is_defined: true symbol_type: FUNCTION - crc: 0x620b0439 + crc: 0x8b92916c type_id: 0x922471e5 full_name: "usb_driver_claim_interface" } @@ -363488,7 +367890,7 @@ elf_symbol { name: "usb_driver_release_interface" is_defined: true symbol_type: FUNCTION - crc: 0xa8cba54d + crc: 0x01e4fc65 type_id: 0x1f3aec00 full_name: "usb_driver_release_interface" } @@ -363497,7 +367899,7 @@ elf_symbol { name: "usb_enable_autosuspend" is_defined: true symbol_type: FUNCTION - crc: 0x4fcc8f78 + crc: 0x11864a80 type_id: 0x13c76860 full_name: "usb_enable_autosuspend" } @@ -363515,7 +367917,7 @@ elf_symbol { name: "usb_ep_autoconfig" is_defined: true symbol_type: FUNCTION - crc: 0x319953fa + crc: 0xd0cc8d66 type_id: 0xa2868e3b full_name: "usb_ep_autoconfig" } @@ -363596,7 +367998,7 @@ elf_symbol { name: "usb_free_all_descriptors" is_defined: true symbol_type: FUNCTION - crc: 0x4fdf69a5 + crc: 0x58be2d78 type_id: 0x1880675b full_name: "usb_free_all_descriptors" } @@ -363605,7 +368007,7 @@ elf_symbol { name: "usb_free_coherent" is_defined: true symbol_type: FUNCTION - crc: 0xf09854e0 + crc: 0xe806b2a4 type_id: 0x10121220 full_name: "usb_free_coherent" } @@ -363614,7 +368016,7 @@ elf_symbol { name: "usb_free_urb" is_defined: true symbol_type: FUNCTION - crc: 0xc55c9f1f + crc: 0x29a9f90e type_id: 0x10d459f4 full_name: "usb_free_urb" } @@ -363623,7 +368025,7 @@ elf_symbol { name: "usb_function_register" is_defined: true symbol_type: FUNCTION - crc: 0x4d7b1327 + crc: 0x6f285292 type_id: 0x9f5327f4 full_name: "usb_function_register" } @@ -363632,7 +368034,7 @@ elf_symbol { name: "usb_function_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x884b1e75 + crc: 0xe51ebe2a type_id: 0x124b9548 full_name: "usb_function_unregister" } @@ -363641,7 +368043,7 @@ elf_symbol { name: "usb_gadget_activate" is_defined: true symbol_type: FUNCTION - crc: 0x80c6761b + crc: 0xea2edc71 type_id: 0x94d9adef full_name: "usb_gadget_activate" } @@ -363650,7 +368052,7 @@ elf_symbol { name: "usb_gadget_deactivate" is_defined: true symbol_type: FUNCTION - crc: 0xcffd594b + crc: 0x0ef3ded2 type_id: 0x94d9adef full_name: "usb_gadget_deactivate" } @@ -363668,7 +368070,7 @@ elf_symbol { name: "usb_gadget_set_state" is_defined: true symbol_type: FUNCTION - crc: 0x96dbc3b3 + crc: 0x5e970b2b type_id: 0x1b74fe1c full_name: "usb_gadget_set_state" } @@ -363677,7 +368079,7 @@ elf_symbol { name: "usb_gadget_udc_reset" is_defined: true symbol_type: FUNCTION - crc: 0x1559b59a + crc: 0x8a5b6d5a type_id: 0x1924a178 full_name: "usb_gadget_udc_reset" } @@ -363686,7 +368088,7 @@ elf_symbol { name: "usb_gadget_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0xb69e7ae0 + crc: 0xb168d1db type_id: 0x94d9adef full_name: "usb_gadget_wakeup" } @@ -363695,7 +368097,7 @@ elf_symbol { name: "usb_get_dev" is_defined: true symbol_type: FUNCTION - crc: 0xf7c9458d + crc: 0x8e9d9f63 type_id: 0x751f8257 full_name: "usb_get_dev" } @@ -363704,7 +368106,7 @@ elf_symbol { name: "usb_get_from_anchor" is_defined: true symbol_type: FUNCTION - crc: 0x7c67f391 + crc: 0xec59f2b9 type_id: 0x68d26f6c full_name: "usb_get_from_anchor" } @@ -363713,7 +368115,7 @@ elf_symbol { name: "usb_get_intf" is_defined: true symbol_type: FUNCTION - crc: 0xc8c49386 + crc: 0x6863f311 type_id: 0x4bcbea3e full_name: "usb_get_intf" } @@ -363722,7 +368124,7 @@ elf_symbol { name: "usb_gstrings_attach" is_defined: true symbol_type: FUNCTION - crc: 0xff52dc72 + crc: 0x3441cf96 type_id: 0x9b2c6ab8 full_name: "usb_gstrings_attach" } @@ -363731,7 +368133,7 @@ elf_symbol { name: "usb_hc_died" is_defined: true symbol_type: FUNCTION - crc: 0x944bc554 + crc: 0xf26ad529 type_id: 0x19c6594b full_name: "usb_hc_died" } @@ -363740,7 +368142,7 @@ elf_symbol { name: "usb_hcd_check_unlink_urb" is_defined: true symbol_type: FUNCTION - crc: 0x4190c1e9 + crc: 0xefc6aa03 type_id: 0x94c3e345 full_name: "usb_hcd_check_unlink_urb" } @@ -363749,7 +368151,7 @@ elf_symbol { name: "usb_hcd_giveback_urb" is_defined: true symbol_type: FUNCTION - crc: 0x303da67d + crc: 0x44badf36 type_id: 0x19db51f9 full_name: "usb_hcd_giveback_urb" } @@ -363758,7 +368160,7 @@ elf_symbol { name: "usb_hcd_is_primary_hcd" is_defined: true symbol_type: FUNCTION - crc: 0xe327090e + crc: 0xda4a8bf1 type_id: 0x94deebf7 full_name: "usb_hcd_is_primary_hcd" } @@ -363767,7 +368169,7 @@ elf_symbol { name: "usb_hcd_link_urb_to_ep" is_defined: true symbol_type: FUNCTION - crc: 0xf75c342b + crc: 0x25237ea5 type_id: 0x94da2b71 full_name: "usb_hcd_link_urb_to_ep" } @@ -363776,7 +368178,7 @@ elf_symbol { name: "usb_hcd_pci_pm_ops" is_defined: true symbol_type: OBJECT - crc: 0xcaa3c323 + crc: 0x84ce1a9d type_id: 0xc44f560e full_name: "usb_hcd_pci_pm_ops" } @@ -363785,7 +368187,7 @@ elf_symbol { name: "usb_hcd_pci_probe" is_defined: true symbol_type: FUNCTION - crc: 0x4fa5d4aa + crc: 0x77e42de8 type_id: 0x991753c2 full_name: "usb_hcd_pci_probe" } @@ -363794,7 +368196,7 @@ elf_symbol { name: "usb_hcd_pci_remove" is_defined: true symbol_type: FUNCTION - crc: 0x83d84d47 + crc: 0x090b072d type_id: 0x14e1f000 full_name: "usb_hcd_pci_remove" } @@ -363803,7 +368205,7 @@ elf_symbol { name: "usb_hcd_pci_shutdown" is_defined: true symbol_type: FUNCTION - crc: 0xf336c077 + crc: 0x8d72b828 type_id: 0x14e1f000 full_name: "usb_hcd_pci_shutdown" } @@ -363812,7 +368214,7 @@ elf_symbol { name: "usb_hcd_platform_shutdown" is_defined: true symbol_type: FUNCTION - crc: 0x166b8113 + crc: 0x7b617f80 type_id: 0x1f55a7e6 full_name: "usb_hcd_platform_shutdown" } @@ -363821,7 +368223,7 @@ elf_symbol { name: "usb_hcd_poll_rh_status" is_defined: true symbol_type: FUNCTION - crc: 0x054a288d + crc: 0xe5c2f3b6 type_id: 0x19c6594b full_name: "usb_hcd_poll_rh_status" } @@ -363830,7 +368232,7 @@ elf_symbol { name: "usb_hcd_resume_root_hub" is_defined: true symbol_type: FUNCTION - crc: 0x3d668915 + crc: 0xbf5d84bd type_id: 0x19c6594b full_name: "usb_hcd_resume_root_hub" } @@ -363839,7 +368241,7 @@ elf_symbol { name: "usb_hcd_unlink_urb_from_ep" is_defined: true symbol_type: FUNCTION - crc: 0x27173d6f + crc: 0x6fc6aeeb type_id: 0x19c299cd full_name: "usb_hcd_unlink_urb_from_ep" } @@ -363857,7 +368259,7 @@ elf_symbol { name: "usb_hub_find_child" is_defined: true symbol_type: FUNCTION - crc: 0x145974d9 + crc: 0xcdf14dfd type_id: 0x7483011b full_name: "usb_hub_find_child" } @@ -363866,7 +368268,7 @@ elf_symbol { name: "usb_ifnum_to_if" is_defined: true symbol_type: FUNCTION - crc: 0xceee74bd + crc: 0x7e4fa339 type_id: 0x4d878509 full_name: "usb_ifnum_to_if" } @@ -363875,7 +368277,7 @@ elf_symbol { name: "usb_init_urb" is_defined: true symbol_type: FUNCTION - crc: 0x36c85407 + crc: 0x0413a91c type_id: 0x10d459f4 full_name: "usb_init_urb" } @@ -363884,7 +368286,7 @@ elf_symbol { name: "usb_interface_id" is_defined: true symbol_type: FUNCTION - crc: 0xfdee6b3f + crc: 0x6e1d9441 type_id: 0x9ebe912b full_name: "usb_interface_id" } @@ -363902,7 +368304,7 @@ elf_symbol { name: "usb_kill_urb" is_defined: true symbol_type: FUNCTION - crc: 0x2df22aa1 + crc: 0x3fc87449 type_id: 0x10d459f4 full_name: "usb_kill_urb" } @@ -363911,7 +368313,7 @@ elf_symbol { name: "usb_match_id" is_defined: true symbol_type: FUNCTION - crc: 0x6c72d3a1 + crc: 0xdc1775fd type_id: 0x170370af full_name: "usb_match_id" } @@ -363920,7 +368322,7 @@ elf_symbol { name: "usb_match_one_id" is_defined: true symbol_type: FUNCTION - crc: 0x986f8c71 + crc: 0xaecfb75d type_id: 0x952154fc full_name: "usb_match_one_id" } @@ -363938,7 +368340,7 @@ elf_symbol { name: "usb_phy_set_charger_current" is_defined: true symbol_type: FUNCTION - crc: 0x95027579 + crc: 0x5611686e type_id: 0x10feecf9 full_name: "usb_phy_set_charger_current" } @@ -363947,7 +368349,7 @@ elf_symbol { name: "usb_poison_urb" is_defined: true symbol_type: FUNCTION - crc: 0xf3b0c1da + crc: 0xc6bdcaa4 type_id: 0x10d459f4 full_name: "usb_poison_urb" } @@ -363956,7 +368358,7 @@ elf_symbol { name: "usb_put_dev" is_defined: true symbol_type: FUNCTION - crc: 0xcb0a32e6 + crc: 0x59951f74 type_id: 0x13c76860 full_name: "usb_put_dev" } @@ -363965,7 +368367,7 @@ elf_symbol { name: "usb_put_function_instance" is_defined: true symbol_type: FUNCTION - crc: 0xb0b5a36f + crc: 0x59d67c57 type_id: 0x149eb739 full_name: "usb_put_function_instance" } @@ -363974,7 +368376,7 @@ elf_symbol { name: "usb_put_hcd" is_defined: true symbol_type: FUNCTION - crc: 0xe666ea33 + crc: 0x54fbdad3 type_id: 0x19c6594b full_name: "usb_put_hcd" } @@ -363983,7 +368385,7 @@ elf_symbol { name: "usb_put_intf" is_defined: true symbol_type: FUNCTION - crc: 0xd8a31e81 + crc: 0xb50e5781 type_id: 0x18d9f669 full_name: "usb_put_intf" } @@ -363992,7 +368394,7 @@ elf_symbol { name: "usb_queue_reset_device" is_defined: true symbol_type: FUNCTION - crc: 0xca5214cb + crc: 0x0662e923 type_id: 0x18d9f669 full_name: "usb_queue_reset_device" } @@ -364001,7 +368403,7 @@ elf_symbol { name: "usb_register_driver" is_defined: true symbol_type: FUNCTION - crc: 0x62cb069b + crc: 0xd7ff55df type_id: 0x92855f9f full_name: "usb_register_driver" } @@ -364019,7 +368421,7 @@ elf_symbol { name: "usb_remove_hcd" is_defined: true symbol_type: FUNCTION - crc: 0x92bff057 + crc: 0xf72e9c5a type_id: 0x19c6594b full_name: "usb_remove_hcd" } @@ -364028,7 +368430,7 @@ elf_symbol { name: "usb_remove_phy" is_defined: true symbol_type: FUNCTION - crc: 0xbb91c81f + crc: 0x7760daf8 type_id: 0x11e8f961 full_name: "usb_remove_phy" } @@ -364037,7 +368439,7 @@ elf_symbol { name: "usb_reset_device" is_defined: true symbol_type: FUNCTION - crc: 0xff4ff2c2 + crc: 0xf01a6693 type_id: 0x9edfdadc full_name: "usb_reset_device" } @@ -364046,7 +368448,7 @@ elf_symbol { name: "usb_role_switch_find_by_fwnode" is_defined: true symbol_type: FUNCTION - crc: 0xab1adeb6 + crc: 0xba52f3ae type_id: 0x8a993822 full_name: "usb_role_switch_find_by_fwnode" } @@ -364073,7 +368475,7 @@ elf_symbol { name: "usb_role_switch_register" is_defined: true symbol_type: FUNCTION - crc: 0x56675167 + crc: 0x0cd42adf type_id: 0x85551253 full_name: "usb_role_switch_register" } @@ -364100,7 +368502,7 @@ elf_symbol { name: "usb_root_hub_lost_power" is_defined: true symbol_type: FUNCTION - crc: 0xa071f1bc + crc: 0xf5957988 type_id: 0x13c76860 full_name: "usb_root_hub_lost_power" } @@ -364118,7 +368520,7 @@ elf_symbol { name: "usb_serial_claim_interface" is_defined: true symbol_type: FUNCTION - crc: 0x4fe3b1e6 + crc: 0x879f5103 type_id: 0x9aa5384e full_name: "usb_serial_claim_interface" } @@ -364127,7 +368529,7 @@ elf_symbol { name: "usb_serial_deregister_drivers" is_defined: true symbol_type: FUNCTION - crc: 0xcbbde7c5 + crc: 0xf912cb69 type_id: 0x1f2cb682 full_name: "usb_serial_deregister_drivers" } @@ -364136,7 +368538,7 @@ elf_symbol { name: "usb_serial_generic_chars_in_buffer" is_defined: true symbol_type: FUNCTION - crc: 0xe048e525 + crc: 0xcd0d3a3c type_id: 0xc564dee2 full_name: "usb_serial_generic_chars_in_buffer" } @@ -364145,7 +368547,7 @@ elf_symbol { name: "usb_serial_generic_close" is_defined: true symbol_type: FUNCTION - crc: 0x49b05611 + crc: 0xdaf533b6 type_id: 0x181d9d22 full_name: "usb_serial_generic_close" } @@ -364154,7 +368556,7 @@ elf_symbol { name: "usb_serial_generic_get_icount" is_defined: true symbol_type: FUNCTION - crc: 0x8d5748c6 + crc: 0x6cc92cba type_id: 0x962949a5 full_name: "usb_serial_generic_get_icount" } @@ -364163,7 +368565,7 @@ elf_symbol { name: "usb_serial_generic_open" is_defined: true symbol_type: FUNCTION - crc: 0xcd952601 + crc: 0x0863d0d9 type_id: 0x96b71ffd full_name: "usb_serial_generic_open" } @@ -364172,7 +368574,7 @@ elf_symbol { name: "usb_serial_generic_process_read_urb" is_defined: true symbol_type: FUNCTION - crc: 0xf32af36e + crc: 0xe3625ce1 type_id: 0x10d459f4 full_name: "usb_serial_generic_process_read_urb" } @@ -364181,7 +368583,7 @@ elf_symbol { name: "usb_serial_generic_read_bulk_callback" is_defined: true symbol_type: FUNCTION - crc: 0xdfe73174 + crc: 0xf73ecd5f type_id: 0x10d459f4 full_name: "usb_serial_generic_read_bulk_callback" } @@ -364190,7 +368592,7 @@ elf_symbol { name: "usb_serial_generic_resume" is_defined: true symbol_type: FUNCTION - crc: 0xdcfb6b14 + crc: 0xf698ce6f type_id: 0x9a212231 full_name: "usb_serial_generic_resume" } @@ -364199,7 +368601,7 @@ elf_symbol { name: "usb_serial_generic_submit_read_urbs" is_defined: true symbol_type: FUNCTION - crc: 0x5c29a600 + crc: 0x7d2440d4 type_id: 0x96c3b4e1 full_name: "usb_serial_generic_submit_read_urbs" } @@ -364208,7 +368610,7 @@ elf_symbol { name: "usb_serial_generic_throttle" is_defined: true symbol_type: FUNCTION - crc: 0x2664e8d9 + crc: 0xedd97406 type_id: 0x1b27f18a full_name: "usb_serial_generic_throttle" } @@ -364217,7 +368619,7 @@ elf_symbol { name: "usb_serial_generic_tiocmiwait" is_defined: true symbol_type: FUNCTION - crc: 0x04ed7f92 + crc: 0xb5ed95cd type_id: 0x96f296a4 full_name: "usb_serial_generic_tiocmiwait" } @@ -364226,7 +368628,7 @@ elf_symbol { name: "usb_serial_generic_unthrottle" is_defined: true symbol_type: FUNCTION - crc: 0x94ac630c + crc: 0x985989bf type_id: 0x1b27f18a full_name: "usb_serial_generic_unthrottle" } @@ -364235,7 +368637,7 @@ elf_symbol { name: "usb_serial_generic_wait_until_sent" is_defined: true symbol_type: FUNCTION - crc: 0xee9b6b5f + crc: 0x151af980 type_id: 0x18d7c9fc full_name: "usb_serial_generic_wait_until_sent" } @@ -364244,7 +368646,7 @@ elf_symbol { name: "usb_serial_generic_write" is_defined: true symbol_type: FUNCTION - crc: 0x59ace215 + crc: 0x9ed2bdf7 type_id: 0x96b8906b full_name: "usb_serial_generic_write" } @@ -364253,7 +368655,7 @@ elf_symbol { name: "usb_serial_generic_write_bulk_callback" is_defined: true symbol_type: FUNCTION - crc: 0x47b56bb0 + crc: 0x7744b51d type_id: 0x10d459f4 full_name: "usb_serial_generic_write_bulk_callback" } @@ -364262,7 +368664,7 @@ elf_symbol { name: "usb_serial_generic_write_start" is_defined: true symbol_type: FUNCTION - crc: 0x736730f9 + crc: 0x5cce3ee8 type_id: 0x96c3b4e1 full_name: "usb_serial_generic_write_start" } @@ -364271,7 +368673,7 @@ elf_symbol { name: "usb_serial_handle_dcd_change" is_defined: true symbol_type: FUNCTION - crc: 0x554dc5a3 + crc: 0xf83cc794 type_id: 0x18b7067a full_name: "usb_serial_handle_dcd_change" } @@ -364280,7 +368682,7 @@ elf_symbol { name: "usb_serial_port_softint" is_defined: true symbol_type: FUNCTION - crc: 0x5e04de91 + crc: 0xd9c3f028 type_id: 0x181d9d22 full_name: "usb_serial_port_softint" } @@ -364289,7 +368691,7 @@ elf_symbol { name: "usb_serial_register_drivers" is_defined: true symbol_type: FUNCTION - crc: 0x1418f605 + crc: 0xaa73f614 type_id: 0x92c247e8 full_name: "usb_serial_register_drivers" } @@ -364298,7 +368700,7 @@ elf_symbol { name: "usb_serial_resume" is_defined: true symbol_type: FUNCTION - crc: 0x0ceda740 + crc: 0xa27a3361 type_id: 0x95c144d5 full_name: "usb_serial_resume" } @@ -364307,7 +368709,7 @@ elf_symbol { name: "usb_serial_suspend" is_defined: true symbol_type: FUNCTION - crc: 0x54a77eed + crc: 0xa2e9e6f1 type_id: 0x96011ad3 full_name: "usb_serial_suspend" } @@ -364316,7 +368718,7 @@ elf_symbol { name: "usb_set_device_state" is_defined: true symbol_type: FUNCTION - crc: 0x5a98b74c + crc: 0x8a96b3a5 type_id: 0x1172892f full_name: "usb_set_device_state" } @@ -364325,7 +368727,7 @@ elf_symbol { name: "usb_set_interface" is_defined: true symbol_type: FUNCTION - crc: 0x649c6cc0 + crc: 0xc682614c type_id: 0x9f5a91a4 full_name: "usb_set_interface" } @@ -364352,7 +368754,7 @@ elf_symbol { name: "usb_store_new_id" is_defined: true symbol_type: FUNCTION - crc: 0x7ddba26f + crc: 0xbc2d3f58 type_id: 0x1fa33567 full_name: "usb_store_new_id" } @@ -364361,7 +368763,7 @@ elf_symbol { name: "usb_string_id" is_defined: true symbol_type: FUNCTION - crc: 0x837c374d + crc: 0x2aebac9a type_id: 0x95c8ff6f full_name: "usb_string_id" } @@ -364370,16 +368772,25 @@ elf_symbol { name: "usb_submit_urb" is_defined: true symbol_type: FUNCTION - crc: 0xd9a1bee1 + crc: 0xa5d9812c type_id: 0x9e0a7037 full_name: "usb_submit_urb" } +elf_symbol { + id: 0x5d6fb7c5 + name: "usb_udc_vbus_handler" + is_defined: true + symbol_type: FUNCTION + crc: 0xff906e8b + type_id: 0x1874e22c + full_name: "usb_udc_vbus_handler" +} elf_symbol { id: 0x4eea2829 name: "usb_unanchor_urb" is_defined: true symbol_type: FUNCTION - crc: 0x0b81c3da + crc: 0x9511a379 type_id: 0x10d459f4 full_name: "usb_unanchor_urb" } @@ -364388,7 +368799,7 @@ elf_symbol { name: "usb_unpoison_urb" is_defined: true symbol_type: FUNCTION - crc: 0x8ddd8f1c + crc: 0x1a8fb1a9 type_id: 0x10d459f4 full_name: "usb_unpoison_urb" } @@ -364406,7 +368817,7 @@ elf_symbol { name: "usbnet_get_endpoints" is_defined: true symbol_type: FUNCTION - crc: 0x32379fe3 + crc: 0x764df304 type_id: 0x9e768332 full_name: "usbnet_get_endpoints" } @@ -364415,7 +368826,7 @@ elf_symbol { name: "usbnet_link_change" is_defined: true symbol_type: FUNCTION - crc: 0x0b6db854 + crc: 0xd4fec867 type_id: 0x12448959 full_name: "usbnet_link_change" } @@ -364428,6 +368839,15 @@ elf_symbol { type_id: 0x1c99bc79 full_name: "usleep_range_state" } +elf_symbol { + id: 0x1473720a + name: "utf16s_to_utf8s" + is_defined: true + symbol_type: FUNCTION + crc: 0xabf32f29 + type_id: 0x937ab4d8 + full_name: "utf16s_to_utf8s" +} elf_symbol { id: 0xa459c02b name: "utf8_data_table" @@ -364451,7 +368871,7 @@ elf_symbol { name: "v4l2_compat_ioctl32" is_defined: true symbol_type: FUNCTION - crc: 0xd5c049aa + crc: 0x8bddb587 type_id: 0xa00069e0 full_name: "v4l2_compat_ioctl32" } @@ -364460,7 +368880,7 @@ elf_symbol { name: "v4l2_ctrl_find" is_defined: true symbol_type: FUNCTION - crc: 0x8c9eac02 + crc: 0x5aec55ab type_id: 0x1db066c6 full_name: "v4l2_ctrl_find" } @@ -364478,7 +368898,7 @@ elf_symbol { name: "v4l2_ctrl_handler_free" is_defined: true symbol_type: FUNCTION - crc: 0xc256c3df + crc: 0x2c70bb4d type_id: 0x10035ee9 full_name: "v4l2_ctrl_handler_free" } @@ -364487,7 +368907,7 @@ elf_symbol { name: "v4l2_ctrl_handler_init_class" is_defined: true symbol_type: FUNCTION - crc: 0xf368ca4c + crc: 0x7177b8b9 type_id: 0x9c0bd092 full_name: "v4l2_ctrl_handler_init_class" } @@ -364496,7 +368916,7 @@ elf_symbol { name: "v4l2_ctrl_handler_setup" is_defined: true symbol_type: FUNCTION - crc: 0x440c9251 + crc: 0xa5f3e19d type_id: 0x9d1bec55 full_name: "v4l2_ctrl_handler_setup" } @@ -364505,7 +368925,7 @@ elf_symbol { name: "v4l2_ctrl_log_status" is_defined: true symbol_type: FUNCTION - crc: 0x4751af64 + crc: 0x20f56171 type_id: 0x9bd88c03 full_name: "v4l2_ctrl_log_status" } @@ -364514,7 +368934,7 @@ elf_symbol { name: "v4l2_ctrl_new_custom" is_defined: true symbol_type: FUNCTION - crc: 0x8111cb50 + crc: 0x260d0ef9 type_id: 0x1e7e66b3 full_name: "v4l2_ctrl_new_custom" } @@ -364523,7 +368943,7 @@ elf_symbol { name: "v4l2_ctrl_new_std" is_defined: true symbol_type: FUNCTION - crc: 0x5132206f + crc: 0xcb256e3c type_id: 0x1e5a0d08 full_name: "v4l2_ctrl_new_std" } @@ -364532,7 +368952,7 @@ elf_symbol { name: "v4l2_ctrl_new_std_compound" is_defined: true symbol_type: FUNCTION - crc: 0xdd58c2a7 + crc: 0xe10e349e type_id: 0x1e5a69e0 full_name: "v4l2_ctrl_new_std_compound" } @@ -364541,7 +368961,7 @@ elf_symbol { name: "v4l2_ctrl_new_std_menu" is_defined: true symbol_type: FUNCTION - crc: 0x26d87f84 + crc: 0xa3bf6405 type_id: 0x1e5a3daa full_name: "v4l2_ctrl_new_std_menu" } @@ -364550,7 +368970,7 @@ elf_symbol { name: "v4l2_ctrl_request_complete" is_defined: true symbol_type: FUNCTION - crc: 0x8a2a0c33 + crc: 0xa5d737e7 type_id: 0x19c56221 full_name: "v4l2_ctrl_request_complete" } @@ -364559,7 +368979,7 @@ elf_symbol { name: "v4l2_ctrl_request_setup" is_defined: true symbol_type: FUNCTION - crc: 0xa1376629 + crc: 0x0ce7bf5d type_id: 0x94ddd09d full_name: "v4l2_ctrl_request_setup" } @@ -364568,7 +368988,7 @@ elf_symbol { name: "v4l2_ctrl_subscribe_event" is_defined: true symbol_type: FUNCTION - crc: 0x6024683c + crc: 0x938de029 type_id: 0x912c9057 full_name: "v4l2_ctrl_subscribe_event" } @@ -364577,7 +368997,7 @@ elf_symbol { name: "v4l2_device_register" is_defined: true symbol_type: FUNCTION - crc: 0xad2f63bd + crc: 0xff294429 type_id: 0x9d0be11c full_name: "v4l2_device_register" } @@ -364586,7 +369006,7 @@ elf_symbol { name: "v4l2_device_register_subdev" is_defined: true symbol_type: FUNCTION - crc: 0xf9b2920e + crc: 0xf8ce67d2 type_id: 0x9c543337 full_name: "v4l2_device_register_subdev" } @@ -364595,7 +369015,7 @@ elf_symbol { name: "v4l2_device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xfe253d0d + crc: 0x7f60003b type_id: 0x114b9716 full_name: "v4l2_device_unregister" } @@ -364604,7 +369024,7 @@ elf_symbol { name: "v4l2_device_unregister_subdev" is_defined: true symbol_type: FUNCTION - crc: 0x3c6cd7f5 + crc: 0x02fb98e4 type_id: 0x10e93841 full_name: "v4l2_device_unregister_subdev" } @@ -364613,7 +369033,7 @@ elf_symbol { name: "v4l2_event_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0xeafe54e8 + crc: 0x39dcdc3a type_id: 0x91db22a4 full_name: "v4l2_event_dequeue" } @@ -364622,7 +369042,7 @@ elf_symbol { name: "v4l2_event_pending" is_defined: true symbol_type: FUNCTION - crc: 0x163eeead + crc: 0x6c770302 type_id: 0x91e301dd full_name: "v4l2_event_pending" } @@ -364631,7 +369051,7 @@ elf_symbol { name: "v4l2_event_queue" is_defined: true symbol_type: FUNCTION - crc: 0x988e8a84 + crc: 0x8470195b type_id: 0x1014c641 full_name: "v4l2_event_queue" } @@ -364640,7 +369060,7 @@ elf_symbol { name: "v4l2_event_queue_fh" is_defined: true symbol_type: FUNCTION - crc: 0xa4224c64 + crc: 0xbde5382a type_id: 0x1c0f0880 full_name: "v4l2_event_queue_fh" } @@ -364649,7 +369069,7 @@ elf_symbol { name: "v4l2_event_subscribe" is_defined: true symbol_type: FUNCTION - crc: 0x86080891 + crc: 0xf8813382 type_id: 0x913d31b0 full_name: "v4l2_event_subscribe" } @@ -364658,7 +369078,7 @@ elf_symbol { name: "v4l2_event_unsubscribe" is_defined: true symbol_type: FUNCTION - crc: 0x259fe3c8 + crc: 0x150b051a type_id: 0x912c9057 full_name: "v4l2_event_unsubscribe" } @@ -364667,7 +369087,7 @@ elf_symbol { name: "v4l2_fh_add" is_defined: true symbol_type: FUNCTION - crc: 0x75fc7e2b + crc: 0x0e990335 type_id: 0x1cfbb361 full_name: "v4l2_fh_add" } @@ -364676,7 +369096,7 @@ elf_symbol { name: "v4l2_fh_del" is_defined: true symbol_type: FUNCTION - crc: 0x7c1910a8 + crc: 0x782dd1d5 type_id: 0x1cfbb361 full_name: "v4l2_fh_del" } @@ -364685,7 +369105,7 @@ elf_symbol { name: "v4l2_fh_exit" is_defined: true symbol_type: FUNCTION - crc: 0x650b1d81 + crc: 0xff48460e type_id: 0x1cfbb361 full_name: "v4l2_fh_exit" } @@ -364694,16 +369114,25 @@ elf_symbol { name: "v4l2_fh_init" is_defined: true symbol_type: FUNCTION - crc: 0xc64eca7a + crc: 0x45b202b2 type_id: 0x1cfc31a2 full_name: "v4l2_fh_init" } +elf_symbol { + id: 0x592a4678 + name: "v4l2_fh_is_singular" + is_defined: true + symbol_type: FUNCTION + crc: 0x4964f07a + type_id: 0x91e301dd + full_name: "v4l2_fh_is_singular" +} elf_symbol { id: 0xff77e1ca name: "v4l2_fh_open" is_defined: true symbol_type: FUNCTION - crc: 0xaea88679 + crc: 0xe289611b type_id: 0x9bba7997 full_name: "v4l2_fh_open" } @@ -364712,7 +369141,7 @@ elf_symbol { name: "v4l2_fh_release" is_defined: true symbol_type: FUNCTION - crc: 0xc1b5b4b0 + crc: 0xc567a1e5 type_id: 0x9bba7997 full_name: "v4l2_fh_release" } @@ -364721,7 +369150,7 @@ elf_symbol { name: "v4l2_i2c_subdev_init" is_defined: true symbol_type: FUNCTION - crc: 0x38904b02 + crc: 0x5dcd6876 type_id: 0x102f3bef full_name: "v4l2_i2c_subdev_init" } @@ -364730,7 +369159,7 @@ elf_symbol { name: "v4l2_m2m_buf_queue" is_defined: true symbol_type: FUNCTION - crc: 0x0a99c731 + crc: 0xc8c3ee3b type_id: 0x1253a5d6 full_name: "v4l2_m2m_buf_queue" } @@ -364739,7 +369168,7 @@ elf_symbol { name: "v4l2_m2m_buf_remove" is_defined: true symbol_type: FUNCTION - crc: 0xe5af3d2a + crc: 0x063fc6e5 type_id: 0x318cc368 full_name: "v4l2_m2m_buf_remove" } @@ -364748,7 +369177,7 @@ elf_symbol { name: "v4l2_m2m_buf_remove_by_buf" is_defined: true symbol_type: FUNCTION - crc: 0x9c16fb6c + crc: 0x143fae8c type_id: 0x127a8e67 full_name: "v4l2_m2m_buf_remove_by_buf" } @@ -364757,7 +369186,7 @@ elf_symbol { name: "v4l2_m2m_buf_remove_by_idx" is_defined: true symbol_type: FUNCTION - crc: 0xb14d9568 + crc: 0x751aac1f type_id: 0x309ad6f0 full_name: "v4l2_m2m_buf_remove_by_idx" } @@ -364766,7 +369195,7 @@ elf_symbol { name: "v4l2_m2m_ctx_init" is_defined: true symbol_type: FUNCTION - crc: 0x226eb9e7 + crc: 0xa9bcf5ab type_id: 0x3aa9b2fb full_name: "v4l2_m2m_ctx_init" } @@ -364775,7 +369204,7 @@ elf_symbol { name: "v4l2_m2m_ctx_release" is_defined: true symbol_type: FUNCTION - crc: 0x7a35cf5c + crc: 0x706a1692 type_id: 0x128e4140 full_name: "v4l2_m2m_ctx_release" } @@ -364784,7 +369213,7 @@ elf_symbol { name: "v4l2_m2m_fop_mmap" is_defined: true symbol_type: FUNCTION - crc: 0x9d509233 + crc: 0x11df779e type_id: 0x9b923492 full_name: "v4l2_m2m_fop_mmap" } @@ -364793,7 +369222,7 @@ elf_symbol { name: "v4l2_m2m_fop_poll" is_defined: true symbol_type: FUNCTION - crc: 0x66dccc11 + crc: 0x4d921f68 type_id: 0x25ad187d full_name: "v4l2_m2m_fop_poll" } @@ -364811,7 +369240,7 @@ elf_symbol { name: "v4l2_m2m_get_vq" is_defined: true symbol_type: FUNCTION - crc: 0x7c28833d + crc: 0xb6686774 type_id: 0xdbd3d7da full_name: "v4l2_m2m_get_vq" } @@ -364829,7 +369258,7 @@ elf_symbol { name: "v4l2_m2m_ioctl_create_bufs" is_defined: true symbol_type: FUNCTION - crc: 0xb5f3d6b5 + crc: 0x7a96e595 type_id: 0x9bd21a8b full_name: "v4l2_m2m_ioctl_create_bufs" } @@ -364838,7 +369267,7 @@ elf_symbol { name: "v4l2_m2m_ioctl_dqbuf" is_defined: true symbol_type: FUNCTION - crc: 0x41f0f5bc + crc: 0x20e09473 type_id: 0x9bdfa419 full_name: "v4l2_m2m_ioctl_dqbuf" } @@ -364847,7 +369276,7 @@ elf_symbol { name: "v4l2_m2m_ioctl_expbuf" is_defined: true symbol_type: FUNCTION - crc: 0x4f12ae8f + crc: 0x26a16db0 type_id: 0x9bd4409d full_name: "v4l2_m2m_ioctl_expbuf" } @@ -364856,7 +369285,7 @@ elf_symbol { name: "v4l2_m2m_ioctl_prepare_buf" is_defined: true symbol_type: FUNCTION - crc: 0xbf8734fa + crc: 0x2f15b520 type_id: 0x9bdfa419 full_name: "v4l2_m2m_ioctl_prepare_buf" } @@ -364865,7 +369294,7 @@ elf_symbol { name: "v4l2_m2m_ioctl_qbuf" is_defined: true symbol_type: FUNCTION - crc: 0xe0e13b92 + crc: 0xf90fa2dc type_id: 0x9bdfa419 full_name: "v4l2_m2m_ioctl_qbuf" } @@ -364874,7 +369303,7 @@ elf_symbol { name: "v4l2_m2m_ioctl_querybuf" is_defined: true symbol_type: FUNCTION - crc: 0x749aeef7 + crc: 0x3b8f7449 type_id: 0x9bdfa419 full_name: "v4l2_m2m_ioctl_querybuf" } @@ -364883,7 +369312,7 @@ elf_symbol { name: "v4l2_m2m_ioctl_reqbufs" is_defined: true symbol_type: FUNCTION - crc: 0xbb9d4d8d + crc: 0x5731e8e9 type_id: 0x9bde0e00 full_name: "v4l2_m2m_ioctl_reqbufs" } @@ -364892,7 +369321,7 @@ elf_symbol { name: "v4l2_m2m_ioctl_streamoff" is_defined: true symbol_type: FUNCTION - crc: 0x0e639bd1 + crc: 0xfe724174 type_id: 0x9bc4d75d full_name: "v4l2_m2m_ioctl_streamoff" } @@ -364901,7 +369330,7 @@ elf_symbol { name: "v4l2_m2m_ioctl_streamon" is_defined: true symbol_type: FUNCTION - crc: 0x053456b4 + crc: 0x8ac0c297 type_id: 0x9bc4d75d full_name: "v4l2_m2m_ioctl_streamon" } @@ -364910,7 +369339,7 @@ elf_symbol { name: "v4l2_m2m_ioctl_try_decoder_cmd" is_defined: true symbol_type: FUNCTION - crc: 0x7b97f8b4 + crc: 0x817efb10 type_id: 0x9bdd631f full_name: "v4l2_m2m_ioctl_try_decoder_cmd" } @@ -364919,7 +369348,7 @@ elf_symbol { name: "v4l2_m2m_ioctl_try_encoder_cmd" is_defined: true symbol_type: FUNCTION - crc: 0xb0d6bca9 + crc: 0xe95f49ea type_id: 0x9bd829a3 full_name: "v4l2_m2m_ioctl_try_encoder_cmd" } @@ -364928,7 +369357,7 @@ elf_symbol { name: "v4l2_m2m_job_finish" is_defined: true symbol_type: FUNCTION - crc: 0xcca472cb + crc: 0x596f8b9f type_id: 0x12eb3fc9 full_name: "v4l2_m2m_job_finish" } @@ -364937,7 +369366,7 @@ elf_symbol { name: "v4l2_m2m_next_buf" is_defined: true symbol_type: FUNCTION - crc: 0x06008c07 + crc: 0x4fac4c15 type_id: 0x318cc368 full_name: "v4l2_m2m_next_buf" } @@ -364946,7 +369375,7 @@ elf_symbol { name: "v4l2_m2m_qbuf" is_defined: true symbol_type: FUNCTION - crc: 0x227144b6 + crc: 0xf85fd7dd type_id: 0x9b9c3080 full_name: "v4l2_m2m_qbuf" } @@ -364955,7 +369384,7 @@ elf_symbol { name: "v4l2_m2m_register_media_controller" is_defined: true symbol_type: FUNCTION - crc: 0x0ee41284 + crc: 0xa6d829e5 type_id: 0x9fcca68f full_name: "v4l2_m2m_register_media_controller" } @@ -364973,7 +369402,7 @@ elf_symbol { name: "v4l2_m2m_request_queue" is_defined: true symbol_type: FUNCTION - crc: 0x9e926936 + crc: 0xae17600d type_id: 0x19ccd2d6 full_name: "v4l2_m2m_request_queue" } @@ -364991,7 +369420,7 @@ elf_symbol { name: "v4l2_s_ctrl" is_defined: true symbol_type: FUNCTION - crc: 0xbb7e24a6 + crc: 0xcb7e4be0 type_id: 0x91e7fef3 full_name: "v4l2_s_ctrl" } @@ -365000,7 +369429,7 @@ elf_symbol { name: "v4l2_src_change_event_subscribe" is_defined: true symbol_type: FUNCTION - crc: 0xcbac9835 + crc: 0x2811d418 type_id: 0x912c9057 full_name: "v4l2_src_change_event_subscribe" } @@ -365009,7 +369438,7 @@ elf_symbol { name: "v4l2_subdev_call_wrappers" is_defined: true symbol_type: OBJECT - crc: 0xe02a7fc2 + crc: 0x215479ae type_id: 0xd3e2f5cd full_name: "v4l2_subdev_call_wrappers" } @@ -365018,7 +369447,7 @@ elf_symbol { name: "v4l2_subdev_init" is_defined: true symbol_type: FUNCTION - crc: 0x9ac8b64b + crc: 0x67897a25 type_id: 0x10109a52 full_name: "v4l2_subdev_init" } @@ -365027,7 +369456,7 @@ elf_symbol { name: "vb2_buffer_done" is_defined: true symbol_type: FUNCTION - crc: 0x293b1f32 + crc: 0xdb415a06 type_id: 0x1b1de99f full_name: "vb2_buffer_done" } @@ -365036,7 +369465,7 @@ elf_symbol { name: "vb2_create_bufs" is_defined: true symbol_type: FUNCTION - crc: 0x2b64dfc4 + crc: 0xc7bf8350 type_id: 0x9b8acd5a full_name: "vb2_create_bufs" } @@ -365045,7 +369474,7 @@ elf_symbol { name: "vb2_dma_contig_memops" is_defined: true symbol_type: OBJECT - crc: 0xff34fc78 + crc: 0xcf6e1ba0 type_id: 0xe32fa2b6 full_name: "vb2_dma_contig_memops" } @@ -365054,7 +369483,7 @@ elf_symbol { name: "vb2_dma_sg_memops" is_defined: true symbol_type: OBJECT - crc: 0x229d4508 + crc: 0xb6994622 type_id: 0xe32fa2b6 full_name: "vb2_dma_sg_memops" } @@ -365063,7 +369492,7 @@ elf_symbol { name: "vb2_dqbuf" is_defined: true symbol_type: FUNCTION - crc: 0xf64523d2 + crc: 0xb0478ef6 type_id: 0x9b4a7bac full_name: "vb2_dqbuf" } @@ -365072,7 +369501,7 @@ elf_symbol { name: "vb2_fop_mmap" is_defined: true symbol_type: FUNCTION - crc: 0x4f4416be + crc: 0xd0938e55 type_id: 0x9b923492 full_name: "vb2_fop_mmap" } @@ -365081,7 +369510,7 @@ elf_symbol { name: "vb2_fop_poll" is_defined: true symbol_type: FUNCTION - crc: 0x95056152 + crc: 0x24e5b65f type_id: 0x25ad187d full_name: "vb2_fop_poll" } @@ -365090,7 +369519,7 @@ elf_symbol { name: "vb2_fop_read" is_defined: true symbol_type: FUNCTION - crc: 0xc36e1b28 + crc: 0x8277f423 type_id: 0x12e4741f full_name: "vb2_fop_read" } @@ -365099,7 +369528,7 @@ elf_symbol { name: "vb2_fop_release" is_defined: true symbol_type: FUNCTION - crc: 0x14c16d43 + crc: 0x54e5feb9 type_id: 0x9bba7997 full_name: "vb2_fop_release" } @@ -365108,7 +369537,7 @@ elf_symbol { name: "vb2_ioctl_create_bufs" is_defined: true symbol_type: FUNCTION - crc: 0x8333f81e + crc: 0xbb0fe23d type_id: 0x9bd21a8b full_name: "vb2_ioctl_create_bufs" } @@ -365117,7 +369546,7 @@ elf_symbol { name: "vb2_ioctl_dqbuf" is_defined: true symbol_type: FUNCTION - crc: 0xdd6e5a41 + crc: 0x27c634c2 type_id: 0x9bdfa419 full_name: "vb2_ioctl_dqbuf" } @@ -365126,7 +369555,7 @@ elf_symbol { name: "vb2_ioctl_expbuf" is_defined: true symbol_type: FUNCTION - crc: 0x48566af7 + crc: 0x11b95022 type_id: 0x9bd4409d full_name: "vb2_ioctl_expbuf" } @@ -365135,7 +369564,7 @@ elf_symbol { name: "vb2_ioctl_qbuf" is_defined: true symbol_type: FUNCTION - crc: 0x77486f56 + crc: 0xb26b0ad8 type_id: 0x9bdfa419 full_name: "vb2_ioctl_qbuf" } @@ -365144,7 +369573,7 @@ elf_symbol { name: "vb2_ioctl_querybuf" is_defined: true symbol_type: FUNCTION - crc: 0xf7ae108d + crc: 0x8319d97d type_id: 0x9bdfa419 full_name: "vb2_ioctl_querybuf" } @@ -365153,7 +369582,7 @@ elf_symbol { name: "vb2_ioctl_reqbufs" is_defined: true symbol_type: FUNCTION - crc: 0x07930bf2 + crc: 0xd35713f9 type_id: 0x9bde0e00 full_name: "vb2_ioctl_reqbufs" } @@ -365162,7 +369591,7 @@ elf_symbol { name: "vb2_ioctl_streamoff" is_defined: true symbol_type: FUNCTION - crc: 0xe282d0bd + crc: 0xe0afa0b7 type_id: 0x9bc4d75d full_name: "vb2_ioctl_streamoff" } @@ -365171,7 +369600,7 @@ elf_symbol { name: "vb2_ioctl_streamon" is_defined: true symbol_type: FUNCTION - crc: 0x878d1c75 + crc: 0x56d36905 type_id: 0x9bc4d75d full_name: "vb2_ioctl_streamon" } @@ -365180,7 +369609,7 @@ elf_symbol { name: "vb2_mmap" is_defined: true symbol_type: FUNCTION - crc: 0x560c397c + crc: 0x7a00b07d type_id: 0x9b0be8d8 full_name: "vb2_mmap" } @@ -365189,7 +369618,7 @@ elf_symbol { name: "vb2_ops_wait_finish" is_defined: true symbol_type: FUNCTION - crc: 0x80ddc6fa + crc: 0x325d10d4 type_id: 0x163b1761 full_name: "vb2_ops_wait_finish" } @@ -365198,7 +369627,7 @@ elf_symbol { name: "vb2_ops_wait_prepare" is_defined: true symbol_type: FUNCTION - crc: 0x07c72c24 + crc: 0x8b796bbc type_id: 0x163b1761 full_name: "vb2_ops_wait_prepare" } @@ -365207,7 +369636,7 @@ elf_symbol { name: "vb2_plane_cookie" is_defined: true symbol_type: FUNCTION - crc: 0x0aba22e4 + crc: 0x82997804 type_id: 0x5cabb760 full_name: "vb2_plane_cookie" } @@ -365216,7 +369645,7 @@ elf_symbol { name: "vb2_plane_vaddr" is_defined: true symbol_type: FUNCTION - crc: 0x56cd8695 + crc: 0xea3a73d4 type_id: 0x5cabb760 full_name: "vb2_plane_vaddr" } @@ -365225,7 +369654,7 @@ elf_symbol { name: "vb2_poll" is_defined: true symbol_type: FUNCTION - crc: 0x33930f3a + crc: 0x850773a3 type_id: 0x25fe2d8e full_name: "vb2_poll" } @@ -365234,7 +369663,7 @@ elf_symbol { name: "vb2_prepare_buf" is_defined: true symbol_type: FUNCTION - crc: 0x9a481c5f + crc: 0xdb21c9f9 type_id: 0x9b7c03b3 full_name: "vb2_prepare_buf" } @@ -365243,7 +369672,7 @@ elf_symbol { name: "vb2_qbuf" is_defined: true symbol_type: FUNCTION - crc: 0xd31d81c3 + crc: 0xccc02d31 type_id: 0x9b7c03b3 full_name: "vb2_qbuf" } @@ -365252,7 +369681,7 @@ elf_symbol { name: "vb2_querybuf" is_defined: true symbol_type: FUNCTION - crc: 0xe52ea878 + crc: 0xf1b22572 type_id: 0x9b51247b full_name: "vb2_querybuf" } @@ -365261,7 +369690,7 @@ elf_symbol { name: "vb2_queue_error" is_defined: true symbol_type: FUNCTION - crc: 0xc3ba407e + crc: 0xd116aa4d type_id: 0x163b1761 full_name: "vb2_queue_error" } @@ -365270,7 +369699,7 @@ elf_symbol { name: "vb2_queue_init" is_defined: true symbol_type: FUNCTION - crc: 0x6a9483c8 + crc: 0x707d3282 type_id: 0x9b23a5dd full_name: "vb2_queue_init" } @@ -365279,7 +369708,7 @@ elf_symbol { name: "vb2_queue_release" is_defined: true symbol_type: FUNCTION - crc: 0x46cfdc29 + crc: 0x4363680d type_id: 0x163b1761 full_name: "vb2_queue_release" } @@ -365288,7 +369717,7 @@ elf_symbol { name: "vb2_reqbufs" is_defined: true symbol_type: FUNCTION - crc: 0x79c96ba5 + crc: 0xb8ae574c type_id: 0x9b4b85e0 full_name: "vb2_reqbufs" } @@ -365297,7 +369726,7 @@ elf_symbol { name: "vb2_request_validate" is_defined: true symbol_type: FUNCTION - crc: 0x23510ce1 + crc: 0x893625d3 type_id: 0x94d4606a full_name: "vb2_request_validate" } @@ -365306,7 +369735,7 @@ elf_symbol { name: "vb2_streamoff" is_defined: true symbol_type: FUNCTION - crc: 0x069adf7e + crc: 0x7860b3a1 type_id: 0x9ae61038 full_name: "vb2_streamoff" } @@ -365315,7 +369744,7 @@ elf_symbol { name: "vb2_streamon" is_defined: true symbol_type: FUNCTION - crc: 0xb751fc24 + crc: 0xc7a6a0cd type_id: 0x9ae61038 full_name: "vb2_streamon" } @@ -365324,7 +369753,7 @@ elf_symbol { name: "vb2_vmalloc_memops" is_defined: true symbol_type: OBJECT - crc: 0x77246f4a + crc: 0xac0ba29f type_id: 0xe32fa2b6 full_name: "vb2_vmalloc_memops" } @@ -365333,7 +369762,7 @@ elf_symbol { name: "vb2_wait_for_all_buffers" is_defined: true symbol_type: FUNCTION - crc: 0xa1c27f5c + crc: 0xf57a9a7d type_id: 0x9b23a5dd full_name: "vb2_wait_for_all_buffers" } @@ -365342,7 +369771,7 @@ elf_symbol { name: "vchan_dma_desc_free_list" is_defined: true symbol_type: FUNCTION - crc: 0x75439f96 + crc: 0x4c208291 type_id: 0x1aebcc30 full_name: "vchan_dma_desc_free_list" } @@ -365351,7 +369780,7 @@ elf_symbol { name: "vchan_find_desc" is_defined: true symbol_type: FUNCTION - crc: 0xf1f5c877 + crc: 0x7063197b type_id: 0xca318720 full_name: "vchan_find_desc" } @@ -365360,7 +369789,7 @@ elf_symbol { name: "vchan_init" is_defined: true symbol_type: FUNCTION - crc: 0x95dfb029 + crc: 0x97ccb0b4 type_id: 0x1aad5bf3 full_name: "vchan_init" } @@ -365369,7 +369798,7 @@ elf_symbol { name: "vchan_tx_desc_free" is_defined: true symbol_type: FUNCTION - crc: 0x44214beb + crc: 0xaf354214 type_id: 0x96225525 full_name: "vchan_tx_desc_free" } @@ -365378,7 +369807,7 @@ elf_symbol { name: "vchan_tx_submit" is_defined: true symbol_type: FUNCTION - crc: 0xecc8f978 + crc: 0x215884b9 type_id: 0x533c8264 full_name: "vchan_tx_submit" } @@ -365405,7 +369834,7 @@ elf_symbol { name: "vfs_fsync_range" is_defined: true symbol_type: FUNCTION - crc: 0x6fe41bb4 + crc: 0x3ae775b6 type_id: 0x9b2c93fd full_name: "vfs_fsync_range" } @@ -365414,7 +369843,7 @@ elf_symbol { name: "vhost_add_used_and_signal" is_defined: true symbol_type: FUNCTION - crc: 0xe0b134e3 + crc: 0x54f68c6b type_id: 0x1eca4382 full_name: "vhost_add_used_and_signal" } @@ -365423,7 +369852,7 @@ elf_symbol { name: "vhost_dev_check_owner" is_defined: true symbol_type: FUNCTION - crc: 0xe517c080 + crc: 0xd0b1bd49 type_id: 0xa972e03e full_name: "vhost_dev_check_owner" } @@ -365432,7 +369861,7 @@ elf_symbol { name: "vhost_dev_cleanup" is_defined: true symbol_type: FUNCTION - crc: 0x011566fc + crc: 0xdcd8cac5 type_id: 0x1eca8a34 full_name: "vhost_dev_cleanup" } @@ -365441,7 +369870,7 @@ elf_symbol { name: "vhost_dev_init" is_defined: true symbol_type: FUNCTION - crc: 0xee3a20da + crc: 0x83169926 type_id: 0x1efc8b31 full_name: "vhost_dev_init" } @@ -365450,7 +369879,7 @@ elf_symbol { name: "vhost_dev_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0xd7d75fe2 + crc: 0x94d63d8b type_id: 0xa862daff full_name: "vhost_dev_ioctl" } @@ -365459,7 +369888,7 @@ elf_symbol { name: "vhost_dev_stop" is_defined: true symbol_type: FUNCTION - crc: 0x735f0508 + crc: 0x91dcbb03 type_id: 0x1eca8a34 full_name: "vhost_dev_stop" } @@ -365468,7 +369897,7 @@ elf_symbol { name: "vhost_disable_notify" is_defined: true symbol_type: FUNCTION - crc: 0x8af579a2 + crc: 0xefdd957e type_id: 0x1edabe58 full_name: "vhost_disable_notify" } @@ -365477,7 +369906,7 @@ elf_symbol { name: "vhost_enable_notify" is_defined: true symbol_type: FUNCTION - crc: 0x1832ce06 + crc: 0xfae4aab2 type_id: 0xf0e6b4cf full_name: "vhost_enable_notify" } @@ -365486,7 +369915,7 @@ elf_symbol { name: "vhost_get_vq_desc" is_defined: true symbol_type: FUNCTION - crc: 0xf8c4a180 + crc: 0x5bbf54f9 type_id: 0x9c8bc249 full_name: "vhost_get_vq_desc" } @@ -365495,7 +369924,7 @@ elf_symbol { name: "vhost_log_access_ok" is_defined: true symbol_type: FUNCTION - crc: 0x00349c24 + crc: 0x26531484 type_id: 0xf0f680a3 full_name: "vhost_log_access_ok" } @@ -365504,7 +369933,7 @@ elf_symbol { name: "vhost_vq_access_ok" is_defined: true symbol_type: FUNCTION - crc: 0x3ffae9e5 + crc: 0x0c32ec4b type_id: 0xffa71dc4 full_name: "vhost_vq_access_ok" } @@ -365513,7 +369942,7 @@ elf_symbol { name: "vhost_vq_init_access" is_defined: true symbol_type: FUNCTION - crc: 0xd852e595 + crc: 0x1c139b45 type_id: 0x9c83a5ef full_name: "vhost_vq_init_access" } @@ -365522,7 +369951,7 @@ elf_symbol { name: "vhost_vring_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0xf6377a08 + crc: 0xc00762bf type_id: 0xa862daff full_name: "vhost_vring_ioctl" } @@ -365531,7 +369960,7 @@ elf_symbol { name: "video_devdata" is_defined: true symbol_type: FUNCTION - crc: 0x0935c304 + crc: 0x8985d447 type_id: 0x969da51f full_name: "video_devdata" } @@ -365540,7 +369969,7 @@ elf_symbol { name: "video_device_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x8d44c81f + crc: 0x6fbd6e51 type_id: 0x90a73fa7 full_name: "video_device_alloc" } @@ -365549,7 +369978,7 @@ elf_symbol { name: "video_device_release" is_defined: true symbol_type: FUNCTION - crc: 0x0e858295 + crc: 0xe0664605 type_id: 0x10e07da0 full_name: "video_device_release" } @@ -365558,7 +369987,7 @@ elf_symbol { name: "video_device_release_empty" is_defined: true symbol_type: FUNCTION - crc: 0x9ed1c3a2 + crc: 0x386670a2 type_id: 0x10e07da0 full_name: "video_device_release_empty" } @@ -365567,7 +369996,7 @@ elf_symbol { name: "video_ioctl2" is_defined: true symbol_type: FUNCTION - crc: 0x8d7e766d + crc: 0x2371b1bb type_id: 0xa00069e0 full_name: "video_ioctl2" } @@ -365576,7 +370005,7 @@ elf_symbol { name: "video_unregister_device" is_defined: true symbol_type: FUNCTION - crc: 0x872ce566 + crc: 0x8bd850d9 type_id: 0x10e07da0 full_name: "video_unregister_device" } @@ -365585,7 +370014,7 @@ elf_symbol { name: "virtio_break_device" is_defined: true symbol_type: FUNCTION - crc: 0x0f3e9958 + crc: 0x11a57b65 type_id: 0x1ad5d81c full_name: "virtio_break_device" } @@ -365594,7 +370023,7 @@ elf_symbol { name: "virtio_check_driver_offered_feature" is_defined: true symbol_type: FUNCTION - crc: 0x47a107c8 + crc: 0x1c24ca2a type_id: 0x1cd13541 full_name: "virtio_check_driver_offered_feature" } @@ -365603,7 +370032,7 @@ elf_symbol { name: "virtio_config_changed" is_defined: true symbol_type: FUNCTION - crc: 0xa0cb54a4 + crc: 0x211751a8 type_id: 0x1ad5d81c full_name: "virtio_config_changed" } @@ -365612,7 +370041,7 @@ elf_symbol { name: "virtio_device_freeze" is_defined: true symbol_type: FUNCTION - crc: 0x35bd4c84 + crc: 0xe845f360 type_id: 0x97cd6aa0 full_name: "virtio_device_freeze" } @@ -365621,7 +370050,7 @@ elf_symbol { name: "virtio_device_restore" is_defined: true symbol_type: FUNCTION - crc: 0x00c92183 + crc: 0x29800e48 type_id: 0x97cd6aa0 full_name: "virtio_device_restore" } @@ -365630,7 +370059,7 @@ elf_symbol { name: "virtio_max_dma_size" is_defined: true symbol_type: FUNCTION - crc: 0x76adbb85 + crc: 0x5e3f026c type_id: 0x9d7240dd full_name: "virtio_max_dma_size" } @@ -365639,7 +370068,7 @@ elf_symbol { name: "virtio_reset_device" is_defined: true symbol_type: FUNCTION - crc: 0xdd750067 + crc: 0x98dd2327 type_id: 0x1ad5d81c full_name: "virtio_reset_device" } @@ -365648,7 +370077,7 @@ elf_symbol { name: "virtio_transport_connect" is_defined: true symbol_type: FUNCTION - crc: 0xf1f59395 + crc: 0xc994c122 type_id: 0x98da7358 full_name: "virtio_transport_connect" } @@ -365657,7 +370086,7 @@ elf_symbol { name: "virtio_transport_deliver_tap_pkt" is_defined: true symbol_type: FUNCTION - crc: 0xc297cb16 + crc: 0x109716ea type_id: 0x10367ad4 full_name: "virtio_transport_deliver_tap_pkt" } @@ -365666,7 +370095,7 @@ elf_symbol { name: "virtio_transport_destruct" is_defined: true symbol_type: FUNCTION - crc: 0xb5759082 + crc: 0x97ce2115 type_id: 0x15c2c1e4 full_name: "virtio_transport_destruct" } @@ -365684,7 +370113,7 @@ elf_symbol { name: "virtio_transport_dgram_bind" is_defined: true symbol_type: FUNCTION - crc: 0x0a93e41c + crc: 0xb6aae9d3 type_id: 0x98e450c7 full_name: "virtio_transport_dgram_bind" } @@ -365693,7 +370122,7 @@ elf_symbol { name: "virtio_transport_dgram_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0xa4f16f3f + crc: 0xa9dfb5c6 type_id: 0x98558c5c full_name: "virtio_transport_dgram_dequeue" } @@ -365702,7 +370131,7 @@ elf_symbol { name: "virtio_transport_dgram_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0x6a0a2b99 + crc: 0xd6eaca74 type_id: 0x98ecb6ff full_name: "virtio_transport_dgram_enqueue" } @@ -365711,7 +370140,7 @@ elf_symbol { name: "virtio_transport_do_socket_init" is_defined: true symbol_type: FUNCTION - crc: 0x47f76492 + crc: 0x00b2c10f type_id: 0x988fda5f full_name: "virtio_transport_do_socket_init" } @@ -365720,7 +370149,7 @@ elf_symbol { name: "virtio_transport_free_pkt" is_defined: true symbol_type: FUNCTION - crc: 0x16a22b22 + crc: 0x90055ad6 type_id: 0x10367ad4 full_name: "virtio_transport_free_pkt" } @@ -365729,7 +370158,7 @@ elf_symbol { name: "virtio_transport_notify_buffer_size" is_defined: true symbol_type: FUNCTION - crc: 0xfba109b9 + crc: 0x9fbef0e8 type_id: 0x157aa231 full_name: "virtio_transport_notify_buffer_size" } @@ -365738,7 +370167,7 @@ elf_symbol { name: "virtio_transport_notify_poll_in" is_defined: true symbol_type: FUNCTION - crc: 0xad755fbf + crc: 0x6546442b type_id: 0x9b0ed502 full_name: "virtio_transport_notify_poll_in" } @@ -365747,7 +370176,7 @@ elf_symbol { name: "virtio_transport_notify_poll_out" is_defined: true symbol_type: FUNCTION - crc: 0x38748ace + crc: 0x20373fbb type_id: 0x9b0ed502 full_name: "virtio_transport_notify_poll_out" } @@ -365756,7 +370185,7 @@ elf_symbol { name: "virtio_transport_notify_recv_init" is_defined: true symbol_type: FUNCTION - crc: 0xa377c391 + crc: 0xeaaa1b9f type_id: 0x9b0fcd09 full_name: "virtio_transport_notify_recv_init" } @@ -365765,7 +370194,7 @@ elf_symbol { name: "virtio_transport_notify_recv_post_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0x24335bdd + crc: 0x4e9f0935 type_id: 0x9b3e6548 full_name: "virtio_transport_notify_recv_post_dequeue" } @@ -365774,7 +370203,7 @@ elf_symbol { name: "virtio_transport_notify_recv_pre_block" is_defined: true symbol_type: FUNCTION - crc: 0x67c6c2a4 + crc: 0x84080654 type_id: 0x9b0fcd09 full_name: "virtio_transport_notify_recv_pre_block" } @@ -365783,7 +370212,7 @@ elf_symbol { name: "virtio_transport_notify_recv_pre_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0xb3bad76a + crc: 0x5570cbb3 type_id: 0x9b0fcd09 full_name: "virtio_transport_notify_recv_pre_dequeue" } @@ -365792,7 +370221,7 @@ elf_symbol { name: "virtio_transport_notify_send_init" is_defined: true symbol_type: FUNCTION - crc: 0x4dce2ebf + crc: 0x0ce2be9e type_id: 0x98573499 full_name: "virtio_transport_notify_send_init" } @@ -365801,7 +370230,7 @@ elf_symbol { name: "virtio_transport_notify_send_post_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0x6ca07205 + crc: 0x607d9f2d type_id: 0x9b859556 full_name: "virtio_transport_notify_send_post_enqueue" } @@ -365810,7 +370239,7 @@ elf_symbol { name: "virtio_transport_notify_send_pre_block" is_defined: true symbol_type: FUNCTION - crc: 0xdc6fb59a + crc: 0xa164e635 type_id: 0x98573499 full_name: "virtio_transport_notify_send_pre_block" } @@ -365819,7 +370248,7 @@ elf_symbol { name: "virtio_transport_notify_send_pre_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0x462b64ce + crc: 0x1f56b01c type_id: 0x98573499 full_name: "virtio_transport_notify_send_pre_enqueue" } @@ -365828,7 +370257,7 @@ elf_symbol { name: "virtio_transport_recv_pkt" is_defined: true symbol_type: FUNCTION - crc: 0xe1367d9a + crc: 0x818d8c91 type_id: 0x1966e93b full_name: "virtio_transport_recv_pkt" } @@ -365837,7 +370266,7 @@ elf_symbol { name: "virtio_transport_release" is_defined: true symbol_type: FUNCTION - crc: 0x2c281adc + crc: 0x60c6ae55 type_id: 0x15c2c1e4 full_name: "virtio_transport_release" } @@ -365846,7 +370275,7 @@ elf_symbol { name: "virtio_transport_seqpacket_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0x6cc08f60 + crc: 0x8e9cfc91 type_id: 0x1101d71f full_name: "virtio_transport_seqpacket_dequeue" } @@ -365855,7 +370284,7 @@ elf_symbol { name: "virtio_transport_seqpacket_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0xaa46275c + crc: 0x05bbc292 type_id: 0x985410df full_name: "virtio_transport_seqpacket_enqueue" } @@ -365864,7 +370293,7 @@ elf_symbol { name: "virtio_transport_seqpacket_has_data" is_defined: true symbol_type: FUNCTION - crc: 0x83a52077 + crc: 0x8e2388b5 type_id: 0x40a2bb15 full_name: "virtio_transport_seqpacket_has_data" } @@ -365873,7 +370302,7 @@ elf_symbol { name: "virtio_transport_shutdown" is_defined: true symbol_type: FUNCTION - crc: 0x2bfa6033 + crc: 0xd54a5b55 type_id: 0x9946f014 full_name: "virtio_transport_shutdown" } @@ -365891,7 +370320,7 @@ elf_symbol { name: "virtio_transport_stream_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0x3a87187d + crc: 0xed29d9b7 type_id: 0x11248ef2 full_name: "virtio_transport_stream_dequeue" } @@ -365900,7 +370329,7 @@ elf_symbol { name: "virtio_transport_stream_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0x61e4a850 + crc: 0xa41c7d27 type_id: 0x11251271 full_name: "virtio_transport_stream_enqueue" } @@ -365909,7 +370338,7 @@ elf_symbol { name: "virtio_transport_stream_has_data" is_defined: true symbol_type: FUNCTION - crc: 0xc37471d5 + crc: 0x0ade75a4 type_id: 0x835e595c full_name: "virtio_transport_stream_has_data" } @@ -365918,7 +370347,7 @@ elf_symbol { name: "virtio_transport_stream_has_space" is_defined: true symbol_type: FUNCTION - crc: 0x15567972 + crc: 0xee4aa2f8 type_id: 0x835e595c full_name: "virtio_transport_stream_has_space" } @@ -365927,7 +370356,7 @@ elf_symbol { name: "virtio_transport_stream_is_active" is_defined: true symbol_type: FUNCTION - crc: 0x7caa412f + crc: 0x1ce26f1c type_id: 0xfbfecb73 full_name: "virtio_transport_stream_is_active" } @@ -365936,7 +370365,7 @@ elf_symbol { name: "virtio_transport_stream_rcvhiwat" is_defined: true symbol_type: FUNCTION - crc: 0x1b42883a + crc: 0xd60ac5bf type_id: 0x5281433c full_name: "virtio_transport_stream_rcvhiwat" } @@ -365945,7 +370374,7 @@ elf_symbol { name: "virtqueue_add_inbuf" is_defined: true symbol_type: FUNCTION - crc: 0x7f9e59c3 + crc: 0xb042f842 type_id: 0x91a842e5 full_name: "virtqueue_add_inbuf" } @@ -365954,7 +370383,7 @@ elf_symbol { name: "virtqueue_add_inbuf_ctx" is_defined: true symbol_type: FUNCTION - crc: 0xc115c07d + crc: 0xde676cca type_id: 0x91a87b65 full_name: "virtqueue_add_inbuf_ctx" } @@ -365963,7 +370392,7 @@ elf_symbol { name: "virtqueue_add_outbuf" is_defined: true symbol_type: FUNCTION - crc: 0xa8141eeb + crc: 0x37d73ea3 type_id: 0x91a842e5 full_name: "virtqueue_add_outbuf" } @@ -365972,7 +370401,7 @@ elf_symbol { name: "virtqueue_add_sgs" is_defined: true symbol_type: FUNCTION - crc: 0xff19c89d + crc: 0x6c7c340b type_id: 0x91d5bf71 full_name: "virtqueue_add_sgs" } @@ -365981,7 +370410,7 @@ elf_symbol { name: "virtqueue_detach_unused_buf" is_defined: true symbol_type: FUNCTION - crc: 0x794f5276 + crc: 0xe7e3cfb6 type_id: 0x5ae81016 full_name: "virtqueue_detach_unused_buf" } @@ -365990,7 +370419,7 @@ elf_symbol { name: "virtqueue_disable_cb" is_defined: true symbol_type: FUNCTION - crc: 0xd4103a32 + crc: 0xdf03cddc type_id: 0x1ce6f074 full_name: "virtqueue_disable_cb" } @@ -365999,7 +370428,7 @@ elf_symbol { name: "virtqueue_disable_dma_api_for_buffers" is_defined: true symbol_type: FUNCTION - crc: 0xd57ee972 + crc: 0x6aa18b9d type_id: 0x1ce6f074 full_name: "virtqueue_disable_dma_api_for_buffers" } @@ -366008,7 +370437,7 @@ elf_symbol { name: "virtqueue_enable_cb" is_defined: true symbol_type: FUNCTION - crc: 0x2b0e84a1 + crc: 0xced72e05 type_id: 0xf2dafae3 full_name: "virtqueue_enable_cb" } @@ -366017,7 +370446,7 @@ elf_symbol { name: "virtqueue_enable_cb_delayed" is_defined: true symbol_type: FUNCTION - crc: 0x05f3b1ec + crc: 0x87efe278 type_id: 0xf2dafae3 full_name: "virtqueue_enable_cb_delayed" } @@ -366026,7 +370455,7 @@ elf_symbol { name: "virtqueue_enable_cb_prepare" is_defined: true symbol_type: FUNCTION - crc: 0x064d3b71 + crc: 0x8f8773fa type_id: 0xc2a5df1c full_name: "virtqueue_enable_cb_prepare" } @@ -366035,7 +370464,7 @@ elf_symbol { name: "virtqueue_get_avail_addr" is_defined: true symbol_type: FUNCTION - crc: 0xc17f7680 + crc: 0x6a623681 type_id: 0xb0635f1b full_name: "virtqueue_get_avail_addr" } @@ -366044,7 +370473,7 @@ elf_symbol { name: "virtqueue_get_buf" is_defined: true symbol_type: FUNCTION - crc: 0xc24c9a30 + crc: 0x1a49c89a type_id: 0x5a87d596 full_name: "virtqueue_get_buf" } @@ -366053,7 +370482,7 @@ elf_symbol { name: "virtqueue_get_buf_ctx" is_defined: true symbol_type: FUNCTION - crc: 0x700bfcee + crc: 0x0ae93203 type_id: 0x5a84fa4e full_name: "virtqueue_get_buf_ctx" } @@ -366062,7 +370491,7 @@ elf_symbol { name: "virtqueue_get_desc_addr" is_defined: true symbol_type: FUNCTION - crc: 0xddaa8569 + crc: 0xd3f0bdd0 type_id: 0xb0635f1b full_name: "virtqueue_get_desc_addr" } @@ -366071,7 +370500,7 @@ elf_symbol { name: "virtqueue_get_used_addr" is_defined: true symbol_type: FUNCTION - crc: 0x0e7c3da4 + crc: 0xd3bc8bb7 type_id: 0xb0635f1b full_name: "virtqueue_get_used_addr" } @@ -366080,7 +370509,7 @@ elf_symbol { name: "virtqueue_get_vring_size" is_defined: true symbol_type: FUNCTION - crc: 0x10c517d1 + crc: 0x6b649625 type_id: 0xc2a5df1c full_name: "virtqueue_get_vring_size" } @@ -366089,7 +370518,7 @@ elf_symbol { name: "virtqueue_is_broken" is_defined: true symbol_type: FUNCTION - crc: 0xeb6b4fa3 + crc: 0x1170817a type_id: 0xf2dafae3 full_name: "virtqueue_is_broken" } @@ -366098,7 +370527,7 @@ elf_symbol { name: "virtqueue_kick" is_defined: true symbol_type: FUNCTION - crc: 0xd2b38a03 + crc: 0xca06e399 type_id: 0xf2dafae3 full_name: "virtqueue_kick" } @@ -366107,7 +370536,7 @@ elf_symbol { name: "virtqueue_kick_prepare" is_defined: true symbol_type: FUNCTION - crc: 0x4d2ba891 + crc: 0xedc0d4df type_id: 0xf2dafae3 full_name: "virtqueue_kick_prepare" } @@ -366116,7 +370545,7 @@ elf_symbol { name: "virtqueue_notify" is_defined: true symbol_type: FUNCTION - crc: 0x17b45f14 + crc: 0x77e84a21 type_id: 0xf2dafae3 full_name: "virtqueue_notify" } @@ -366125,7 +370554,7 @@ elf_symbol { name: "virtqueue_poll" is_defined: true symbol_type: FUNCTION - crc: 0xb5b45acf + crc: 0x7bfa6c75 type_id: 0xf3ccef7b full_name: "virtqueue_poll" } @@ -366134,7 +370563,7 @@ elf_symbol { name: "virtqueue_resize" is_defined: true symbol_type: FUNCTION - crc: 0x6dcc25e7 + crc: 0xfce52f40 type_id: 0x92d90e2a full_name: "virtqueue_resize" } @@ -366143,7 +370572,7 @@ elf_symbol { name: "vlan_dev_vlan_id" is_defined: true symbol_type: FUNCTION - crc: 0x1bcb9b30 + crc: 0x35e645ca type_id: 0x0dcd58a4 full_name: "vlan_dev_vlan_id" } @@ -366152,7 +370581,7 @@ elf_symbol { name: "vlan_filter_drop_vids" is_defined: true symbol_type: FUNCTION - crc: 0xd3a05bf2 + crc: 0x2ca61965 type_id: 0x1e4fc33a full_name: "vlan_filter_drop_vids" } @@ -366161,7 +370590,7 @@ elf_symbol { name: "vlan_filter_push_vids" is_defined: true symbol_type: FUNCTION - crc: 0x223769c5 + crc: 0xa11c59f9 type_id: 0x93577186 full_name: "vlan_filter_push_vids" } @@ -366170,7 +370599,7 @@ elf_symbol { name: "vlan_ioctl_set" is_defined: true symbol_type: FUNCTION - crc: 0x8541e855 + crc: 0x143f5a13 type_id: 0x1bd0f743 full_name: "vlan_ioctl_set" } @@ -366179,7 +370608,7 @@ elf_symbol { name: "vlan_uses_dev" is_defined: true symbol_type: FUNCTION - crc: 0x71738ccd + crc: 0x3359732b type_id: 0xf2422a10 full_name: "vlan_uses_dev" } @@ -366188,7 +370617,7 @@ elf_symbol { name: "vlan_vid_add" is_defined: true symbol_type: FUNCTION - crc: 0xc47fbeec + crc: 0xf75e81de type_id: 0x90db2b2a full_name: "vlan_vid_add" } @@ -366197,7 +370626,7 @@ elf_symbol { name: "vlan_vid_del" is_defined: true symbol_type: FUNCTION - crc: 0x4539e014 + crc: 0x55b333a1 type_id: 0x1dc39996 full_name: "vlan_vid_del" } @@ -366206,7 +370635,7 @@ elf_symbol { name: "vlan_vids_add_by_dev" is_defined: true symbol_type: FUNCTION - crc: 0x64076dd1 + crc: 0x28db2ae7 type_id: 0x91e70ccb full_name: "vlan_vids_add_by_dev" } @@ -366215,7 +370644,7 @@ elf_symbol { name: "vlan_vids_del_by_dev" is_defined: true symbol_type: FUNCTION - crc: 0x857f4f3e + crc: 0xc9f99005 type_id: 0x1cffbe77 full_name: "vlan_vids_del_by_dev" } @@ -366224,7 +370653,7 @@ elf_symbol { name: "vm_event_states" is_defined: true symbol_type: OBJECT - crc: 0x049c0521 + crc: 0xc9153568 type_id: 0x3306692c full_name: "vm_event_states" } @@ -366242,7 +370671,7 @@ elf_symbol { name: "vm_insert_page" is_defined: true symbol_type: FUNCTION - crc: 0x0d1c7e4c + crc: 0x5523914d type_id: 0x9fc8463b full_name: "vm_insert_page" } @@ -366251,7 +370680,7 @@ elf_symbol { name: "vm_iomap_memory" is_defined: true symbol_type: FUNCTION - crc: 0xad14bdda + crc: 0x14b27e4d type_id: 0x9dffa803 full_name: "vm_iomap_memory" } @@ -366260,16 +370689,25 @@ elf_symbol { name: "vm_map_pages" is_defined: true symbol_type: FUNCTION - crc: 0xa818eebf + crc: 0x95fe611d type_id: 0x9f242d9f full_name: "vm_map_pages" } +elf_symbol { + id: 0xee1009c9 + name: "vm_map_ram" + is_defined: true + symbol_type: FUNCTION + crc: 0xc46fe4c6 + type_id: 0x555557dd + full_name: "vm_map_ram" +} elf_symbol { id: 0xdc09fb10 name: "vm_mmap" is_defined: true symbol_type: FUNCTION - crc: 0x632d020b + crc: 0x4002ed38 type_id: 0x37579ee5 full_name: "vm_mmap" } @@ -366291,6 +370729,15 @@ elf_symbol { type_id: 0xfc37fa4b full_name: "vm_node_stat" } +elf_symbol { + id: 0xef2c49d1 + name: "vm_unmap_ram" + is_defined: true + symbol_type: FUNCTION + crc: 0x03fd2571 + type_id: 0x1fc98171 + full_name: "vm_unmap_ram" +} elf_symbol { id: 0xca7f93d5 name: "vm_zone_stat" @@ -366323,7 +370770,7 @@ elf_symbol { name: "vmalloc_to_page" is_defined: true symbol_type: FUNCTION - crc: 0x1521a20e + crc: 0x55318077 type_id: 0xb3df35fa full_name: "vmalloc_to_page" } @@ -366350,7 +370797,7 @@ elf_symbol { name: "vmap" is_defined: true symbol_type: FUNCTION - crc: 0x768f7ade + crc: 0x4001f78c type_id: 0x55423178 full_name: "vmap" } @@ -366368,7 +370815,7 @@ elf_symbol { name: "vmf_insert_mixed" is_defined: true symbol_type: FUNCTION - crc: 0xc25b19a8 + crc: 0x943619bf type_id: 0xc057b7a9 full_name: "vmf_insert_mixed" } @@ -366377,7 +370824,7 @@ elf_symbol { name: "vmf_insert_pfn" is_defined: true symbol_type: FUNCTION - crc: 0x8a901ec5 + crc: 0xfddaf513 type_id: 0xc07911ea full_name: "vmf_insert_pfn" } @@ -366386,7 +370833,7 @@ elf_symbol { name: "vmf_insert_pfn_prot" is_defined: true symbol_type: FUNCTION - crc: 0x45c65159 + crc: 0x1429a191 type_id: 0xc07b6222 full_name: "vmf_insert_pfn_prot" } @@ -366399,12 +370846,21 @@ elf_symbol { type_id: 0x91935bd4 full_name: "vprintk" } +elf_symbol { + id: 0xd0fa04e7 + name: "vprintk_emit" + is_defined: true + symbol_type: FUNCTION + crc: 0xee8c02e9 + type_id: 0x85da991d + full_name: "vprintk_emit" +} elf_symbol { id: 0x5c9f3e0e name: "vring_create_virtqueue" is_defined: true symbol_type: FUNCTION - crc: 0x16c38988 + crc: 0xd4785470 type_id: 0x825faca7 full_name: "vring_create_virtqueue" } @@ -366413,7 +370869,7 @@ elf_symbol { name: "vring_del_virtqueue" is_defined: true symbol_type: FUNCTION - crc: 0xe3287d39 + crc: 0x3f7f3637 type_id: 0x1ce6f074 full_name: "vring_del_virtqueue" } @@ -366431,7 +370887,7 @@ elf_symbol { name: "vring_new_virtqueue" is_defined: true symbol_type: FUNCTION - crc: 0xaf3cb81a + crc: 0xc31ee7a6 type_id: 0x825facba full_name: "vring_new_virtqueue" } @@ -366440,7 +370896,7 @@ elf_symbol { name: "vring_transport_features" is_defined: true symbol_type: FUNCTION - crc: 0x39df75a7 + crc: 0xf30372cf type_id: 0x1ad5d81c full_name: "vring_transport_features" } @@ -366467,7 +370923,7 @@ elf_symbol { name: "vsock_core_register" is_defined: true symbol_type: FUNCTION - crc: 0x8ff1dd11 + crc: 0x34541e1f type_id: 0x931e2c91 full_name: "vsock_core_register" } @@ -366476,7 +370932,7 @@ elf_symbol { name: "vsock_core_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xdbad979d + crc: 0xfed95cb9 type_id: 0x1f9a1d61 full_name: "vsock_core_unregister" } @@ -366485,7 +370941,7 @@ elf_symbol { name: "vsock_for_each_connected_socket" is_defined: true symbol_type: FUNCTION - crc: 0xc925340c + crc: 0x091cd813 type_id: 0x139ca744 full_name: "vsock_for_each_connected_socket" } @@ -366588,6 +371044,15 @@ elf_symbol { type_id: 0x3039a998 full_name: "wait_for_completion_timeout" } +elf_symbol { + id: 0x9d727719 + name: "wait_for_device_probe" + is_defined: true + symbol_type: FUNCTION + crc: 0x4484a5a4 + type_id: 0x10985193 + full_name: "wait_for_device_probe" +} elf_symbol { id: 0xa4027847 name: "wait_woken" @@ -366620,7 +371085,7 @@ elf_symbol { name: "wake_up_process" is_defined: true symbol_type: FUNCTION - crc: 0x3730943a + crc: 0x6a3db7a5 type_id: 0x9ac6895a full_name: "wake_up_process" } @@ -366638,7 +371103,7 @@ elf_symbol { name: "wakeup_source_add" is_defined: true symbol_type: FUNCTION - crc: 0x48e95e30 + crc: 0x2a318742 type_id: 0x10229585 full_name: "wakeup_source_add" } @@ -366647,7 +371112,7 @@ elf_symbol { name: "wakeup_source_create" is_defined: true symbol_type: FUNCTION - crc: 0x82684b0b + crc: 0x30ca9432 type_id: 0xd94d3717 full_name: "wakeup_source_create" } @@ -366656,7 +371121,7 @@ elf_symbol { name: "wakeup_source_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x1a2ee073 + crc: 0x82da9f5b type_id: 0x10229585 full_name: "wakeup_source_destroy" } @@ -366665,7 +371130,7 @@ elf_symbol { name: "wakeup_source_register" is_defined: true symbol_type: FUNCTION - crc: 0x1373e6fe + crc: 0x378aac02 type_id: 0xd6a766de full_name: "wakeup_source_register" } @@ -366674,7 +371139,7 @@ elf_symbol { name: "wakeup_source_remove" is_defined: true symbol_type: FUNCTION - crc: 0xdd2ec6d3 + crc: 0xfca19a79 type_id: 0x10229585 full_name: "wakeup_source_remove" } @@ -366683,16 +371148,52 @@ elf_symbol { name: "wakeup_source_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x84ba1ea0 + crc: 0x8de0e675 type_id: 0x10229585 full_name: "wakeup_source_unregister" } +elf_symbol { + id: 0x735a53f2 + name: "wakeup_sources_read_lock" + is_defined: true + symbol_type: FUNCTION + crc: 0xc2692173 + type_id: 0x9d80e32f + full_name: "wakeup_sources_read_lock" +} +elf_symbol { + id: 0xaa56f7fa + name: "wakeup_sources_read_unlock" + is_defined: true + symbol_type: FUNCTION + crc: 0x24ad11db + type_id: 0x09506558 + full_name: "wakeup_sources_read_unlock" +} +elf_symbol { + id: 0x36d0e118 + name: "wakeup_sources_walk_next" + is_defined: true + symbol_type: FUNCTION + crc: 0xa51d3ee9 + type_id: 0xd673de47 + full_name: "wakeup_sources_walk_next" +} +elf_symbol { + id: 0x96e52cc0 + name: "wakeup_sources_walk_start" + is_defined: true + symbol_type: FUNCTION + crc: 0x189ae6e4 + type_id: 0xd6c91a51 + full_name: "wakeup_sources_walk_start" +} elf_symbol { id: 0xb3aa5e28 name: "watchdog_init_timeout" is_defined: true symbol_type: FUNCTION - crc: 0x1d275056 + crc: 0xcda38d8b type_id: 0x982fb6c1 full_name: "watchdog_init_timeout" } @@ -366701,7 +371202,7 @@ elf_symbol { name: "watchdog_register_device" is_defined: true symbol_type: FUNCTION - crc: 0x9bb13c53 + crc: 0x3d3cf11a type_id: 0x99393567 full_name: "watchdog_register_device" } @@ -366710,7 +371211,7 @@ elf_symbol { name: "watchdog_set_restart_priority" is_defined: true symbol_type: FUNCTION - crc: 0xbde3899f + crc: 0x4fe7d057 type_id: 0x15bd0497 full_name: "watchdog_set_restart_priority" } @@ -366719,7 +371220,7 @@ elf_symbol { name: "watchdog_unregister_device" is_defined: true symbol_type: FUNCTION - crc: 0x35b51267 + crc: 0x0cb437a5 type_id: 0x142187db full_name: "watchdog_unregister_device" } @@ -366728,7 +371229,7 @@ elf_symbol { name: "wdev_chandef" is_defined: true symbol_type: FUNCTION - crc: 0xedc2f57d + crc: 0x40d95b3d type_id: 0x99aa79c0 full_name: "wdev_chandef" } @@ -366737,7 +371238,7 @@ elf_symbol { name: "wdev_to_ieee80211_vif" is_defined: true symbol_type: FUNCTION - crc: 0xde77cb1a + crc: 0xe8197ebb type_id: 0xf0429094 full_name: "wdev_to_ieee80211_vif" } @@ -366746,7 +371247,7 @@ elf_symbol { name: "wiphy_apply_custom_regulatory" is_defined: true symbol_type: FUNCTION - crc: 0x08cb4510 + crc: 0x52ab5a58 type_id: 0x1406d205 full_name: "wiphy_apply_custom_regulatory" } @@ -366755,7 +371256,7 @@ elf_symbol { name: "wiphy_free" is_defined: true symbol_type: FUNCTION - crc: 0x4c23aeed + crc: 0x7e8cca42 type_id: 0x14f49b99 full_name: "wiphy_free" } @@ -366764,7 +371265,7 @@ elf_symbol { name: "wiphy_new_nm" is_defined: true symbol_type: FUNCTION - crc: 0x8dc0cfad + crc: 0x52c94d9d type_id: 0x97c6a99f full_name: "wiphy_new_nm" } @@ -366773,7 +371274,7 @@ elf_symbol { name: "wiphy_read_of_freq_limits" is_defined: true symbol_type: FUNCTION - crc: 0x0fc523ff + crc: 0xf1e8b22a type_id: 0x14f49b99 full_name: "wiphy_read_of_freq_limits" } @@ -366782,7 +371283,7 @@ elf_symbol { name: "wiphy_register" is_defined: true symbol_type: FUNCTION - crc: 0xbe2ab6de + crc: 0x1594b711 type_id: 0x99ec2925 full_name: "wiphy_register" } @@ -366791,7 +371292,7 @@ elf_symbol { name: "wiphy_rfkill_set_hw_state_reason" is_defined: true symbol_type: FUNCTION - crc: 0x21df93bd + crc: 0xd7c28436 type_id: 0x1557bbb6 full_name: "wiphy_rfkill_set_hw_state_reason" } @@ -366800,7 +371301,7 @@ elf_symbol { name: "wiphy_rfkill_start_polling" is_defined: true symbol_type: FUNCTION - crc: 0x60e146d5 + crc: 0x65fa79fc type_id: 0x14f49b99 full_name: "wiphy_rfkill_start_polling" } @@ -366809,7 +371310,7 @@ elf_symbol { name: "wiphy_to_ieee80211_hw" is_defined: true symbol_type: FUNCTION - crc: 0x6b7eca17 + crc: 0xbefeeb26 type_id: 0xe01bc55c full_name: "wiphy_to_ieee80211_hw" } @@ -366818,7 +371319,7 @@ elf_symbol { name: "wiphy_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x381194c2 + crc: 0xfd647fc1 type_id: 0x14f49b99 full_name: "wiphy_unregister" } @@ -366836,7 +371337,7 @@ elf_symbol { name: "wireless_send_event" is_defined: true symbol_type: FUNCTION - crc: 0x74dc50bf + crc: 0x5544394f type_id: 0x1d250ee3 full_name: "wireless_send_event" } @@ -366863,7 +371364,7 @@ elf_symbol { name: "wpan_phy_find" is_defined: true symbol_type: FUNCTION - crc: 0xaaf0adf3 + crc: 0x26e0f61b type_id: 0xaacf82f6 full_name: "wpan_phy_find" } @@ -366872,7 +371373,7 @@ elf_symbol { name: "wpan_phy_for_each" is_defined: true symbol_type: FUNCTION - crc: 0xb2a91403 + crc: 0xcf58eab2 type_id: 0x963ea445 full_name: "wpan_phy_for_each" } @@ -366881,7 +371382,7 @@ elf_symbol { name: "wpan_phy_free" is_defined: true symbol_type: FUNCTION - crc: 0xb26b695f + crc: 0x9c285c10 type_id: 0x1af18e52 full_name: "wpan_phy_free" } @@ -366890,7 +371391,7 @@ elf_symbol { name: "wpan_phy_new" is_defined: true symbol_type: FUNCTION - crc: 0x3d55c67a + crc: 0x9cd60095 type_id: 0xab2f6439 full_name: "wpan_phy_new" } @@ -366899,7 +371400,7 @@ elf_symbol { name: "wpan_phy_register" is_defined: true symbol_type: FUNCTION - crc: 0x1d8130c1 + crc: 0x7c6a8eb9 type_id: 0x97e93cee full_name: "wpan_phy_register" } @@ -366908,7 +371409,7 @@ elf_symbol { name: "wpan_phy_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xc43a1b13 + crc: 0x111b8050 type_id: 0x1af18e52 full_name: "wpan_phy_unregister" } @@ -366917,7 +371418,7 @@ elf_symbol { name: "ww_mutex_lock" is_defined: true symbol_type: FUNCTION - crc: 0x42c0533d + crc: 0xb00b0257 type_id: 0x99413a22 full_name: "ww_mutex_lock" } @@ -366926,7 +371427,7 @@ elf_symbol { name: "ww_mutex_lock_interruptible" is_defined: true symbol_type: FUNCTION - crc: 0x0b8ee5eb + crc: 0x97fa99b1 type_id: 0x99413a22 full_name: "ww_mutex_lock_interruptible" } @@ -366935,7 +371436,7 @@ elf_symbol { name: "ww_mutex_trylock" is_defined: true symbol_type: FUNCTION - crc: 0x0d31d299 + crc: 0x9e78f4f4 type_id: 0x99413a22 full_name: "ww_mutex_trylock" } @@ -366944,7 +371445,7 @@ elf_symbol { name: "ww_mutex_unlock" is_defined: true symbol_type: FUNCTION - crc: 0x4a544125 + crc: 0x6d609aa1 type_id: 0x14e943e8 full_name: "ww_mutex_unlock" } @@ -367007,7 +371508,7 @@ elf_symbol { name: "xdp_convert_zc_to_xdp_frame" is_defined: true symbol_type: FUNCTION - crc: 0xc0c642fe + crc: 0xbf26cdc1 type_id: 0x0a34c3a2 full_name: "xdp_convert_zc_to_xdp_frame" } @@ -367025,7 +371526,7 @@ elf_symbol { name: "xdp_do_redirect" is_defined: true symbol_type: FUNCTION - crc: 0xa6e4e98f + crc: 0x4783f587 type_id: 0x9115bc9b full_name: "xdp_do_redirect" } @@ -367034,7 +371535,7 @@ elf_symbol { name: "xdp_master_redirect" is_defined: true symbol_type: FUNCTION - crc: 0x6b26033e + crc: 0xe3762575 type_id: 0x46fb55eb full_name: "xdp_master_redirect" } @@ -367043,7 +371544,7 @@ elf_symbol { name: "xdp_return_frame" is_defined: true symbol_type: FUNCTION - crc: 0x5225bf61 + crc: 0xc0d7e1e7 type_id: 0x1e92214d full_name: "xdp_return_frame" } @@ -367052,7 +371553,7 @@ elf_symbol { name: "xdp_return_frame_rx_napi" is_defined: true symbol_type: FUNCTION - crc: 0x4b03480b + crc: 0x71fcb5b2 type_id: 0x1e92214d full_name: "xdp_return_frame_rx_napi" } @@ -367061,7 +371562,7 @@ elf_symbol { name: "xdp_rxq_info_is_reg" is_defined: true symbol_type: FUNCTION - crc: 0xe7c4744a + crc: 0x10209aa9 type_id: 0xf690d6d1 full_name: "xdp_rxq_info_is_reg" } @@ -367070,7 +371571,7 @@ elf_symbol { name: "xdp_rxq_info_reg_mem_model" is_defined: true symbol_type: FUNCTION - crc: 0x5c8f8995 + crc: 0x6880d902 type_id: 0x9448ad12 full_name: "xdp_rxq_info_reg_mem_model" } @@ -367079,7 +371580,7 @@ elf_symbol { name: "xdp_rxq_info_unreg" is_defined: true symbol_type: FUNCTION - crc: 0xc04de52a + crc: 0x48849d37 type_id: 0x18acdc46 full_name: "xdp_rxq_info_unreg" } @@ -367088,7 +371589,7 @@ elf_symbol { name: "xdp_rxq_info_unreg_mem_model" is_defined: true symbol_type: FUNCTION - crc: 0xd019a9a9 + crc: 0x8f8401d1 type_id: 0x18acdc46 full_name: "xdp_rxq_info_unreg_mem_model" } @@ -367106,7 +371607,7 @@ elf_symbol { name: "xfrm_lookup" is_defined: true symbol_type: FUNCTION - crc: 0xa015ef84 + crc: 0x79410d2f type_id: 0xa2843be3 full_name: "xfrm_lookup" } @@ -367115,7 +371616,7 @@ elf_symbol { name: "xfrm_state_lookup_byspi" is_defined: true symbol_type: FUNCTION - crc: 0xceb2eae1 + crc: 0x10e6b69e type_id: 0x624b0f22 full_name: "xfrm_state_lookup_byspi" } @@ -367124,7 +371625,7 @@ elf_symbol { name: "xfrm_stateonly_find" is_defined: true symbol_type: FUNCTION - crc: 0xc842b5ea + crc: 0xaf1b61a5 type_id: 0x62e6e159 full_name: "xfrm_stateonly_find" } @@ -367133,7 +371634,7 @@ elf_symbol { name: "xhci_alloc_command" is_defined: true symbol_type: FUNCTION - crc: 0xcb7d93e7 + crc: 0x325af7c9 type_id: 0xa8db3e38 full_name: "xhci_alloc_command" } @@ -367142,7 +371643,7 @@ elf_symbol { name: "xhci_alloc_erst" is_defined: true symbol_type: FUNCTION - crc: 0xd6a06f4b + crc: 0xa803fa1b type_id: 0x99afdc89 full_name: "xhci_alloc_erst" } @@ -367151,7 +371652,7 @@ elf_symbol { name: "xhci_free_command" is_defined: true symbol_type: FUNCTION - crc: 0xb0ebca96 + crc: 0x872a53d6 type_id: 0x1401698f full_name: "xhci_free_command" } @@ -367160,7 +371661,7 @@ elf_symbol { name: "xhci_gen_setup" is_defined: true symbol_type: FUNCTION - crc: 0x48bbe1ae + crc: 0x83535c96 type_id: 0x97b34018 full_name: "xhci_gen_setup" } @@ -367178,7 +371679,7 @@ elf_symbol { name: "xhci_init_driver" is_defined: true symbol_type: FUNCTION - crc: 0xd68f6882 + crc: 0x333aaa6c type_id: 0x14d9dc3c full_name: "xhci_init_driver" } @@ -367187,7 +371688,7 @@ elf_symbol { name: "xhci_queue_stop_endpoint" is_defined: true symbol_type: FUNCTION - crc: 0xdbcc16ee + crc: 0xda9f287e type_id: 0x99011cda full_name: "xhci_queue_stop_endpoint" } @@ -367196,7 +371697,7 @@ elf_symbol { name: "xhci_resume" is_defined: true symbol_type: FUNCTION - crc: 0xa2eca88c + crc: 0x46672c13 type_id: 0x98945a53 full_name: "xhci_resume" } @@ -367205,7 +371706,7 @@ elf_symbol { name: "xhci_ring_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x83fc5b72 + crc: 0xeda3317f type_id: 0xa9d11801 full_name: "xhci_ring_alloc" } @@ -367214,7 +371715,7 @@ elf_symbol { name: "xhci_ring_cmd_db" is_defined: true symbol_type: FUNCTION - crc: 0xa08e2eae + crc: 0x4a54c8f1 type_id: 0x14391590 full_name: "xhci_ring_cmd_db" } @@ -367223,7 +371724,7 @@ elf_symbol { name: "xhci_ring_free" is_defined: true symbol_type: FUNCTION - crc: 0xa4f482b9 + crc: 0xb3fcc326 type_id: 0x14bfdedb full_name: "xhci_ring_free" } @@ -367232,7 +371733,7 @@ elf_symbol { name: "xhci_run" is_defined: true symbol_type: FUNCTION - crc: 0x85a5625d + crc: 0x3aec9dec type_id: 0x94deebf7 full_name: "xhci_run" } @@ -367241,7 +371742,7 @@ elf_symbol { name: "xhci_suspend" is_defined: true symbol_type: FUNCTION - crc: 0xbee29978 + crc: 0x2437ba42 type_id: 0x98945a53 full_name: "xhci_suspend" } @@ -367259,7 +371760,7 @@ elf_symbol { name: "xp_alloc" is_defined: true symbol_type: FUNCTION - crc: 0xdcbbfb6c + crc: 0xb147b305 type_id: 0x13a974bf full_name: "xp_alloc" } @@ -367268,7 +371769,7 @@ elf_symbol { name: "xp_dma_map" is_defined: true symbol_type: FUNCTION - crc: 0x988dad49 + crc: 0x3d1df874 type_id: 0x9d04fab6 full_name: "xp_dma_map" } @@ -367277,7 +371778,7 @@ elf_symbol { name: "xp_dma_sync_for_cpu_slow" is_defined: true symbol_type: FUNCTION - crc: 0x2fc74237 + crc: 0xbee88f8e type_id: 0x1265fe38 full_name: "xp_dma_sync_for_cpu_slow" } @@ -367286,7 +371787,7 @@ elf_symbol { name: "xp_dma_sync_for_device_slow" is_defined: true symbol_type: FUNCTION - crc: 0x4ad1c7f3 + crc: 0x97cdef76 type_id: 0x13a45d3e full_name: "xp_dma_sync_for_device_slow" } @@ -367295,7 +371796,7 @@ elf_symbol { name: "xp_dma_unmap" is_defined: true symbol_type: FUNCTION - crc: 0xec7c323b + crc: 0x78bb002f type_id: 0x10d43da5 full_name: "xp_dma_unmap" } @@ -367304,7 +371805,7 @@ elf_symbol { name: "xp_free" is_defined: true symbol_type: FUNCTION - crc: 0xffcc82c0 + crc: 0xf5910058 type_id: 0x1265fe38 full_name: "xp_free" } @@ -367313,7 +371814,7 @@ elf_symbol { name: "xp_raw_get_dma" is_defined: true symbol_type: FUNCTION - crc: 0x639b7ee9 + crc: 0xa735fc53 type_id: 0xbed4cb96 full_name: "xp_raw_get_dma" } @@ -367322,7 +371823,7 @@ elf_symbol { name: "xp_set_rxq_info" is_defined: true symbol_type: FUNCTION - crc: 0x900e754f + crc: 0x6e176e6a type_id: 0x109aa0ea full_name: "xp_set_rxq_info" } @@ -367331,7 +371832,7 @@ elf_symbol { name: "xsk_clear_rx_need_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0x1d228326 + crc: 0x249998f2 type_id: 0x1019e837 full_name: "xsk_clear_rx_need_wakeup" } @@ -367340,7 +371841,7 @@ elf_symbol { name: "xsk_get_pool_from_qid" is_defined: true symbol_type: FUNCTION - crc: 0x0b91516e + crc: 0x65aae79b type_id: 0x9634d583 full_name: "xsk_get_pool_from_qid" } @@ -367349,7 +371850,7 @@ elf_symbol { name: "xsk_set_rx_need_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0x06a91e6c + crc: 0xdab52449 type_id: 0x1019e837 full_name: "xsk_set_rx_need_wakeup" } @@ -367358,7 +371859,7 @@ elf_symbol { name: "xsk_set_tx_need_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0x25c70fa1 + crc: 0xb10b54f5 type_id: 0x1019e837 full_name: "xsk_set_tx_need_wakeup" } @@ -367367,7 +371868,7 @@ elf_symbol { name: "xsk_tx_completed" is_defined: true symbol_type: FUNCTION - crc: 0x35cef5f1 + crc: 0xdd156fc7 type_id: 0x133dc89b full_name: "xsk_tx_completed" } @@ -367376,7 +371877,7 @@ elf_symbol { name: "xsk_tx_peek_desc" is_defined: true symbol_type: FUNCTION - crc: 0xb5266037 + crc: 0x7d07b1eb type_id: 0xfec52a83 full_name: "xsk_tx_peek_desc" } @@ -367385,7 +371886,7 @@ elf_symbol { name: "xsk_tx_release" is_defined: true symbol_type: FUNCTION - crc: 0x414459c5 + crc: 0x9a08ec45 type_id: 0x1019e837 full_name: "xsk_tx_release" } @@ -367394,7 +371895,7 @@ elf_symbol { name: "xsk_uses_need_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0x991c7b45 + crc: 0x40d37fe9 type_id: 0xfe25e2a0 full_name: "xsk_uses_need_wakeup" } @@ -367403,7 +371904,7 @@ elf_symbol { name: "zap_vma_ptes" is_defined: true symbol_type: FUNCTION - crc: 0xd3ac7e37 + crc: 0xc83b019a type_id: 0x12dd8909 full_name: "zap_vma_ptes" } @@ -367709,6 +372210,10 @@ symbols { key: "__blk_mq_alloc_disk" value: 0xb339c336 } + symbol { + key: "__blk_mq_end_request" + value: 0x01badff0 + } symbol { key: "__blk_rq_map_sg" value: 0x5a6afeee @@ -368201,6 +372706,10 @@ symbols { key: "__irq_resolve_mapping" value: 0xe064ac65 } + symbol { + key: "__irq_set_handler" + value: 0xafc169af + } symbol { key: "__kfifo_alloc" value: 0xcaf40f72 @@ -368561,6 +373070,10 @@ symbols { key: "__rt_mutex_init" value: 0x98379aaf } + symbol { + key: "__scsi_add_device" + value: 0xe68925b8 + } symbol { key: "__scsi_iterate_devices" value: 0x0166be18 @@ -368773,6 +373286,10 @@ symbols { key: "__traceiter_android_rvh_check_preempt_wakeup_ignore" value: 0x5e9397c4 } + symbol { + key: "__traceiter_android_rvh_commit_creds" + value: 0xfd6e4093 + } symbol { key: "__traceiter_android_rvh_cpu_cgroup_attach" value: 0xf11256cf @@ -368841,6 +373358,10 @@ symbols { key: "__traceiter_android_rvh_entity_tick" value: 0xebecb2ce } + symbol { + key: "__traceiter_android_rvh_exit_creds" + value: 0x6740fa4e + } symbol { key: "__traceiter_android_rvh_find_busiest_group" value: 0xf94ce10d @@ -368897,6 +373418,10 @@ symbols { key: "__traceiter_android_rvh_new_task_stats" value: 0x0d22882d } + symbol { + key: "__traceiter_android_rvh_override_creds" + value: 0xb51338de + } symbol { key: "__traceiter_android_rvh_panic_unhandled" value: 0xc463ba81 @@ -368921,6 +373446,10 @@ symbols { key: "__traceiter_android_rvh_report_bug" value: 0xaedef3a2 } + symbol { + key: "__traceiter_android_rvh_revert_creds" + value: 0xde725472 + } symbol { key: "__traceiter_android_rvh_rtmutex_prepare_setprio" value: 0xd90a9a58 @@ -368993,6 +373522,26 @@ symbols { key: "__traceiter_android_rvh_select_task_rq_rt" value: 0x4c24a4be } + symbol { + key: "__traceiter_android_rvh_selinux_avc_insert" + value: 0x5d194c5c + } + symbol { + key: "__traceiter_android_rvh_selinux_avc_lookup" + value: 0x7765e85b + } + symbol { + key: "__traceiter_android_rvh_selinux_avc_node_delete" + value: 0xb7214df9 + } + symbol { + key: "__traceiter_android_rvh_selinux_avc_node_replace" + value: 0x2720fa46 + } + symbol { + key: "__traceiter_android_rvh_selinux_is_initialized" + value: 0x9f6c2b96 + } symbol { key: "__traceiter_android_rvh_set_balance_anon_file_reclaim" value: 0x28eb5989 @@ -369001,6 +373550,22 @@ symbols { key: "__traceiter_android_rvh_set_cpus_allowed_by_task" value: 0xbe8d73f2 } + symbol { + key: "__traceiter_android_rvh_set_module_core_rw_nx" + value: 0xcac6b03d + } + symbol { + key: "__traceiter_android_rvh_set_module_init_rw_nx" + value: 0x4a5f5242 + } + symbol { + key: "__traceiter_android_rvh_set_module_permit_after_init" + value: 0x08cd7e9d + } + symbol { + key: "__traceiter_android_rvh_set_module_permit_before_init" + value: 0x9e97904b + } symbol { key: "__traceiter_android_rvh_set_task_cpu" value: 0xc6a28b4a @@ -369073,6 +373638,14 @@ symbols { key: "__traceiter_android_vh_binder_set_priority" value: 0x2a9c6616 } + symbol { + key: "__traceiter_android_vh_binder_transaction_init" + value: 0x5cf60b10 + } + symbol { + key: "__traceiter_android_vh_binder_wait_for_work" + value: 0x61c82fb5 + } symbol { key: "__traceiter_android_vh_binder_wakeup_ilocked" value: 0x53fba77d @@ -369081,6 +373654,18 @@ symbols { key: "__traceiter_android_vh_build_sched_domains" value: 0xe479b209 } + symbol { + key: "__traceiter_android_vh_check_bpf_syscall" + value: 0x5012fcd8 + } + symbol { + key: "__traceiter_android_vh_check_file_open" + value: 0x67bab494 + } + symbol { + key: "__traceiter_android_vh_check_mmap_file" + value: 0x42428033 + } symbol { key: "__traceiter_android_vh_check_uninterrupt_tasks" value: 0x005c7625 @@ -369253,6 +373838,10 @@ symbols { key: "__traceiter_android_vh_ufs_check_int_errors" value: 0xe31bb308 } + symbol { + key: "__traceiter_android_vh_ufs_clock_scaling" + value: 0x6a6dc806 + } symbol { key: "__traceiter_android_vh_ufs_compl_command" value: 0xa56348c9 @@ -369425,6 +374014,10 @@ symbols { key: "__tracepoint_android_rvh_check_preempt_wakeup_ignore" value: 0x070d1e2a } + symbol { + key: "__tracepoint_android_rvh_commit_creds" + value: 0xf63515c9 + } symbol { key: "__tracepoint_android_rvh_cpu_cgroup_attach" value: 0xf4fe0429 @@ -369493,6 +374086,10 @@ symbols { key: "__tracepoint_android_rvh_entity_tick" value: 0x4a5c5988 } + symbol { + key: "__tracepoint_android_rvh_exit_creds" + value: 0xb71e231c + } symbol { key: "__tracepoint_android_rvh_find_busiest_group" value: 0xb05fc507 @@ -369549,6 +374146,10 @@ symbols { key: "__tracepoint_android_rvh_new_task_stats" value: 0x62726c6f } + symbol { + key: "__tracepoint_android_rvh_override_creds" + value: 0xdf21a7cc + } symbol { key: "__tracepoint_android_rvh_panic_unhandled" value: 0xeea6bf23 @@ -369573,6 +374174,10 @@ symbols { key: "__tracepoint_android_rvh_report_bug" value: 0x1a849f34 } + symbol { + key: "__tracepoint_android_rvh_revert_creds" + value: 0x3f328d3c + } symbol { key: "__tracepoint_android_rvh_rtmutex_prepare_setprio" value: 0x69e37d02 @@ -369645,6 +374250,26 @@ symbols { key: "__tracepoint_android_rvh_select_task_rq_rt" value: 0xec4d6758 } + symbol { + key: "__tracepoint_android_rvh_selinux_avc_insert" + value: 0x33183ab6 + } + symbol { + key: "__tracepoint_android_rvh_selinux_avc_lookup" + value: 0x76b00d41 + } + symbol { + key: "__tracepoint_android_rvh_selinux_avc_node_delete" + value: 0x9d9301cb + } + symbol { + key: "__tracepoint_android_rvh_selinux_avc_node_replace" + value: 0xef003404 + } + symbol { + key: "__tracepoint_android_rvh_selinux_is_initialized" + value: 0x78daed28 + } symbol { key: "__tracepoint_android_rvh_set_balance_anon_file_reclaim" value: 0x6d8ed263 @@ -369653,6 +374278,22 @@ symbols { key: "__tracepoint_android_rvh_set_cpus_allowed_by_task" value: 0x4bc6b114 } + symbol { + key: "__tracepoint_android_rvh_set_module_core_rw_nx" + value: 0xda52fd4f + } + symbol { + key: "__tracepoint_android_rvh_set_module_init_rw_nx" + value: 0x86f03c84 + } + symbol { + key: "__tracepoint_android_rvh_set_module_permit_after_init" + value: 0x498fea3f + } + symbol { + key: "__tracepoint_android_rvh_set_module_permit_before_init" + value: 0xf79a8829 + } symbol { key: "__tracepoint_android_rvh_set_task_cpu" value: 0xc5049f7c @@ -369725,6 +374366,14 @@ symbols { key: "__tracepoint_android_vh_binder_set_priority" value: 0x2e04cb9c } + symbol { + key: "__tracepoint_android_vh_binder_transaction_init" + value: 0xa9d55136 + } + symbol { + key: "__tracepoint_android_vh_binder_wait_for_work" + value: 0x75b174bb + } symbol { key: "__tracepoint_android_vh_binder_wakeup_ilocked" value: 0x506628ab @@ -369733,6 +374382,18 @@ symbols { key: "__tracepoint_android_vh_build_sched_domains" value: 0x0d3c7607 } + symbol { + key: "__tracepoint_android_vh_check_bpf_syscall" + value: 0x678bb5ba + } + symbol { + key: "__tracepoint_android_vh_check_file_open" + value: 0xf1ec5ef2 + } + symbol { + key: "__tracepoint_android_vh_check_mmap_file" + value: 0x9620eac1 + } symbol { key: "__tracepoint_android_vh_check_uninterrupt_tasks" value: 0x5cc4ca5b @@ -369905,6 +374566,10 @@ symbols { key: "__tracepoint_android_vh_ufs_check_int_errors" value: 0x609a86da } + symbol { + key: "__tracepoint_android_vh_ufs_clock_scaling" + value: 0x08a49528 + } symbol { key: "__tracepoint_android_vh_ufs_compl_command" value: 0xa03a7d43 @@ -370601,6 +375266,10 @@ symbols { key: "backlight_device_unregister" value: 0x8814eddf } + symbol { + key: "balance_dirty_pages_ratelimited" + value: 0x4e505a21 + } symbol { key: "balance_push_callback" value: 0xa3814535 @@ -370637,6 +375306,18 @@ symbols { key: "bdev_start_io_acct" value: 0xf701e854 } + symbol { + key: "bdi_alloc" + value: 0x18c171b8 + } + symbol { + key: "bdi_put" + value: 0x8fb4b5f6 + } + symbol { + key: "bdi_register" + value: 0x6bb4e80d + } symbol { key: "bgpio_init" value: 0xcdba3a55 @@ -370741,6 +375422,10 @@ symbols { key: "blk_mq_alloc_request" value: 0xaea1564a } + symbol { + key: "blk_mq_alloc_sq_tag_set" + value: 0x0d1fc920 + } symbol { key: "blk_mq_alloc_tag_set" value: 0xd34c6466 @@ -370765,6 +375450,14 @@ symbols { key: "blk_mq_free_tag_set" value: 0x70bd48bd } + symbol { + key: "blk_mq_freeze_queue" + value: 0x5e553962 + } + symbol { + key: "blk_mq_init_queue" + value: 0x98c69e3e + } symbol { key: "blk_mq_map_queues" value: 0x16569be2 @@ -370793,6 +375486,14 @@ symbols { key: "blk_mq_stop_hw_queue" value: 0x310e729f } + symbol { + key: "blk_mq_tagset_busy_iter" + value: 0x37d3a115 + } + symbol { + key: "blk_mq_unfreeze_queue" + value: 0x95bdba0c + } symbol { key: "blk_mq_unquiesce_queue" value: 0x86bec7f5 @@ -370857,6 +375558,14 @@ symbols { key: "blk_queue_physical_block_size" value: 0xea321133 } + symbol { + key: "blk_queue_update_dma_alignment" + value: 0xcc0dd52b + } + symbol { + key: "blk_queue_update_dma_pad" + value: 0xe7756398 + } symbol { key: "blk_queue_write_cache" value: 0x4c74830f @@ -370885,6 +375594,10 @@ symbols { key: "blk_status_to_errno" value: 0xe6192860 } + symbol { + key: "blk_update_request" + value: 0xf40ec9b3 + } symbol { key: "blkdev_get_by_dev" value: 0x0b067d4b @@ -370993,6 +375706,18 @@ symbols { key: "bridge_tunnel_header" value: 0x02852d6e } + symbol { + key: "bsg_job_done" + value: 0x53eb107b + } + symbol { + key: "bsg_remove_queue" + value: 0x9f7a08f8 + } + symbol { + key: "bsg_setup_queue" + value: 0xd5dbc767 + } symbol { key: "bt_accept_dequeue" value: 0x096781b3 @@ -372637,6 +377362,10 @@ symbols { key: "dbs_update" value: 0xf1e399f5 } + symbol { + key: "deactivate_locked_super" + value: 0x02f83230 + } symbol { key: "deactivate_task" value: 0x36a5b3df @@ -373017,6 +377746,10 @@ symbols { key: "dev_pm_opp_put" value: 0x52c8a093 } + symbol { + key: "dev_pm_opp_remove" + value: 0xe6f275cc + } symbol { key: "dev_pm_opp_remove_all_dynamic" value: 0x90259097 @@ -375193,6 +379926,10 @@ symbols { key: "drm_get_connector_status_name" value: 0xabd8ab71 } + symbol { + key: "drm_get_connector_type_name" + value: 0xe52ce78e + } symbol { key: "drm_get_edid" value: 0xc64f37ff @@ -376309,6 +381046,10 @@ symbols { key: "generic_perform_write" value: 0x7f639ef1 } + symbol { + key: "generic_shutdown_super" + value: 0x798f83da + } symbol { key: "generic_write_checks" value: 0x542785af @@ -376633,6 +381374,10 @@ symbols { key: "gpio_request" value: 0x09fe5bd6 } + symbol { + key: "gpio_request_array" + value: 0xe9a558bf + } symbol { key: "gpio_request_one" value: 0x260ae9d8 @@ -378845,6 +383590,10 @@ symbols { key: "irq_set_chip_data" value: 0x7c906e0d } + symbol { + key: "irq_set_handler_data" + value: 0x0bad9216 + } symbol { key: "irq_set_irq_type" value: 0xb2b17b6f @@ -378905,6 +383654,10 @@ symbols { key: "jiffies64_to_msecs" value: 0x6e47d2cf } + symbol { + key: "jiffies_64" + value: 0x075fdad1 + } symbol { key: "jiffies_64_to_clock_t" value: 0x6bcfa61d @@ -379309,6 +384062,10 @@ symbols { key: "kthread_complete_and_exit" value: 0xd20ecdb9 } + symbol { + key: "kthread_create_on_cpu" + value: 0x4ed76f28 + } symbol { key: "kthread_create_on_node" value: 0x54d851dc @@ -379657,6 +384414,10 @@ symbols { key: "lock_sock_nested" value: 0xaaab26df } + symbol { + key: "lockref_get" + value: 0x42eaca18 + } symbol { key: "log_abnormal_wakeup_reason" value: 0x408fc274 @@ -379681,6 +384442,14 @@ symbols { key: "log_write_mmio" value: 0x02bffe2a } + symbol { + key: "logfc" + value: 0x06e891b4 + } + symbol { + key: "lookup_bdev" + value: 0xad10cf0f + } symbol { key: "loops_per_jiffy" value: 0x493ce9fc @@ -379893,6 +384662,10 @@ symbols { key: "mempool_alloc" value: 0xfd2dc160 } + symbol { + key: "mempool_alloc_pages" + value: 0x13e62490 + } symbol { key: "mempool_alloc_slab" value: 0xa613caa5 @@ -379909,14 +384682,26 @@ symbols { key: "mempool_free" value: 0xfa3d486a } + symbol { + key: "mempool_free_pages" + value: 0x77eb61b0 + } symbol { key: "mempool_free_slab" value: 0xfbb56638 } + symbol { + key: "mempool_resize" + value: 0x9a28516c + } symbol { key: "memremap" value: 0x7ad45055 } + symbol { + key: "memremap_pages" + value: 0x56171277 + } symbol { key: "memscan" value: 0x67a278cb @@ -379937,6 +384722,10 @@ symbols { key: "memunmap" value: 0xaa1ecb0d } + symbol { + key: "memunmap_pages" + value: 0xbc9af04b + } symbol { key: "mfd_add_devices" value: 0x78495fd8 @@ -380665,6 +385454,14 @@ symbols { key: "nvmem_device_write" value: 0x28ba8e50 } + symbol { + key: "nvmem_register" + value: 0x65d6ca81 + } + symbol { + key: "nvmem_unregister" + value: 0x27081fa8 + } symbol { key: "of_address_to_resource" value: 0x458a15db @@ -380949,6 +385746,10 @@ symbols { key: "of_icc_get" value: 0x453bec03 } + symbol { + key: "of_icc_get_from_provider" + value: 0x08284f40 + } symbol { key: "of_icc_xlate_onecell" value: 0xbd1c7f26 @@ -380989,10 +385790,6 @@ symbols { key: "of_match_node" value: 0x3965b143 } - symbol { - key: "of_mdiobus_register" - value: 0x71e8db53 - } symbol { key: "of_modalias_node" value: 0x23d1db24 @@ -382181,6 +386978,10 @@ symbols { key: "pm_runtime_force_suspend" value: 0x80df38ea } + symbol { + key: "pm_runtime_get_if_active" + value: 0x322949f1 + } symbol { key: "pm_runtime_irq_safe" value: 0x878b97bb @@ -382821,6 +387622,10 @@ symbols { key: "rdev_get_id" value: 0x85c7decb } + symbol { + key: "read_cache_page" + value: 0x5b227eda + } symbol { key: "reboot_mode" value: 0x46082c90 @@ -383841,6 +388646,10 @@ symbols { key: "scnprintf" value: 0xa2bcc818 } + symbol { + key: "scsi_add_host_with_dma" + value: 0xa0d4d843 + } symbol { key: "scsi_alloc_request" value: 0x7a6a0afc @@ -383861,6 +388670,10 @@ symbols { key: "scsi_block_when_processing_errors" value: 0xd3148537 } + symbol { + key: "scsi_change_queue_depth" + value: 0x278a6b59 + } symbol { key: "scsi_cmd_allowed" value: 0xe4036f2e @@ -383873,10 +388686,34 @@ symbols { key: "scsi_device_get" value: 0x76dea2aa } + symbol { + key: "scsi_device_lookup" + value: 0x14eb95fa + } symbol { key: "scsi_device_put" value: 0x474e9bcc } + symbol { + key: "scsi_dma_map" + value: 0xf10245da + } + symbol { + key: "scsi_dma_unmap" + value: 0x18cbd7f9 + } + symbol { + key: "scsi_host_alloc" + value: 0x32b196e0 + } + symbol { + key: "scsi_host_lookup" + value: 0x022517f0 + } + symbol { + key: "scsi_host_put" + value: 0x4d8a452e + } symbol { key: "scsi_ioctl" value: 0x7509c737 @@ -383885,14 +388722,34 @@ symbols { key: "scsi_ioctl_block_when_processing_errors" value: 0xd8a616ba } + symbol { + key: "scsi_is_host_device" + value: 0xcecaa985 + } symbol { key: "scsi_normalize_sense" value: 0x36deacf7 } + symbol { + key: "scsi_print_command" + value: 0xf0e07f22 + } symbol { key: "scsi_register_interface" value: 0x5286bfd6 } + symbol { + key: "scsi_remove_host" + value: 0x8deacb1d + } + symbol { + key: "scsi_report_bus_reset" + value: 0x2e407415 + } + symbol { + key: "scsi_scan_host" + value: 0xc9021692 + } symbol { key: "scsi_unblock_requests" value: 0x9c54c873 @@ -384285,6 +389142,10 @@ symbols { key: "sg_next" value: 0x55c5bdf3 } + symbol { + key: "sget_fc" + value: 0x12402fa7 + } symbol { key: "shmem_file_setup" value: 0x7f3b48aa @@ -384649,6 +389510,10 @@ symbols { key: "snd_ctl_notify" value: 0x6b08a95c } + symbol { + key: "snd_ctl_remove" + value: 0x20fc506b + } symbol { key: "snd_dma_alloc_dir_pages" value: 0x74d92df1 @@ -384657,6 +389522,10 @@ symbols { key: "snd_dma_free_pages" value: 0xafa6f89a } + symbol { + key: "snd_hwdep_new" + value: 0xf8dd0a45 + } symbol { key: "snd_info_create_card_entry" value: 0x8a143ba0 @@ -384761,6 +389630,10 @@ symbols { key: "snd_pcm_period_elapsed" value: 0xf21d6619 } + symbol { + key: "snd_pcm_set_managed_buffer" + value: 0xba998ee2 + } symbol { key: "snd_pcm_set_managed_buffer_all" value: 0x74420600 @@ -384769,6 +389642,14 @@ symbols { key: "snd_pcm_set_ops" value: 0x92edca7e } + symbol { + key: "snd_pcm_std_chmaps" + value: 0xb2f7eb17 + } + symbol { + key: "snd_pcm_stop" + value: 0x8eb5b50d + } symbol { key: "snd_soc_add_component_controls" value: 0x0af8ff72 @@ -385165,6 +390046,10 @@ symbols { key: "sock_efree" value: 0x83497546 } + symbol { + key: "sock_gen_put" + value: 0x4ece0732 + } symbol { key: "sock_gettstamp" value: 0x284bec0f @@ -385629,6 +390514,10 @@ symbols { key: "subsys_system_register" value: 0xfb52ace2 } + symbol { + key: "suspend_set_ops" + value: 0x44e002a2 + } symbol { key: "sync_blockdev" value: 0x1fe11014 @@ -385913,6 +390802,14 @@ symbols { key: "tcpm_pd_transmit_complete" value: 0xbabc4102 } + symbol { + key: "tcpm_port_clean" + value: 0x4c16a6b4 + } + symbol { + key: "tcpm_port_is_toggling" + value: 0xc8ad19b6 + } symbol { key: "tcpm_sink_frs" value: 0xdebe76ba @@ -386305,6 +391202,10 @@ symbols { key: "typec_mux_get_drvdata" value: 0x8fafe0a6 } + symbol { + key: "typec_mux_register" + value: 0x29215b38 + } symbol { key: "typec_register_partner" value: 0x22d09ebb @@ -386477,6 +391378,10 @@ symbols { key: "udp_tunnel_xmit_skb" value: 0x674efb6f } + symbol { + key: "ufshcd_alloc_host" + value: 0x3fa12248 + } symbol { key: "ufshcd_auto_hibern8_update" value: 0x5ba31e17 @@ -386485,6 +391390,14 @@ symbols { key: "ufshcd_bkops_ctrl" value: 0x3b41d1e4 } + symbol { + key: "ufshcd_config_pwr_mode" + value: 0xa45d6674 + } + symbol { + key: "ufshcd_dealloc_host" + value: 0xca76e0b2 + } symbol { key: "ufshcd_dme_configure_adapt" value: 0x60b0cfc9 @@ -386513,6 +391426,10 @@ symbols { key: "ufshcd_get_pwr_dev_param" value: 0x7f35e3d5 } + symbol { + key: "ufshcd_hba_enable" + value: 0x493c067d + } symbol { key: "ufshcd_hba_stop" value: 0xc3b81360 @@ -386525,6 +391442,10 @@ symbols { key: "ufshcd_init_pwr_dev_param" value: 0x1c4ece11 } + symbol { + key: "ufshcd_make_hba_operational" + value: 0xba7435fd + } symbol { key: "ufshcd_mcq_config_esi" value: 0xb59c5eaf @@ -386629,6 +391550,10 @@ symbols { key: "ufshcd_uic_hibern8_exit" value: 0xc9fa7338 } + symbol { + key: "ufshcd_update_evt_hist" + value: 0xb163f167 + } symbol { key: "uio_unregister_device" value: 0x439eff60 @@ -387345,6 +392270,10 @@ symbols { key: "usb_submit_urb" value: 0x6fe64b22 } + symbol { + key: "usb_udc_vbus_handler" + value: 0x5d6fb7c5 + } symbol { key: "usb_unanchor_urb" value: 0x4eea2829 @@ -387369,6 +392298,10 @@ symbols { key: "usleep_range_state" value: 0xb5437ef4 } + symbol { + key: "utf16s_to_utf8s" + value: 0x1473720a + } symbol { key: "utf8_data_table" value: 0xa459c02b @@ -387489,6 +392422,10 @@ symbols { key: "v4l2_fh_init" value: 0x9499bc08 } + symbol { + key: "v4l2_fh_is_singular" + value: 0x592a4678 + } symbol { key: "v4l2_fh_open" value: 0xff77e1ca @@ -388185,6 +393122,10 @@ symbols { key: "vm_map_pages" value: 0x1c065008 } + symbol { + key: "vm_map_ram" + value: 0xee1009c9 + } symbol { key: "vm_mmap" value: 0xdc09fb10 @@ -388197,6 +393138,10 @@ symbols { key: "vm_node_stat" value: 0xaf85c216 } + symbol { + key: "vm_unmap_ram" + value: 0xef2c49d1 + } symbol { key: "vm_zone_stat" value: 0xca7f93d5 @@ -388245,6 +393190,10 @@ symbols { key: "vprintk" value: 0x61b986b8 } + symbol { + key: "vprintk_emit" + value: 0xd0fa04e7 + } symbol { key: "vring_create_virtqueue" value: 0x5c9f3e0e @@ -388329,6 +393278,10 @@ symbols { key: "wait_for_completion_timeout" value: 0x60488ecf } + symbol { + key: "wait_for_device_probe" + value: 0x9d727719 + } symbol { key: "wait_woken" value: 0xa4027847 @@ -388373,6 +393326,22 @@ symbols { key: "wakeup_source_unregister" value: 0xfff68651 } + symbol { + key: "wakeup_sources_read_lock" + value: 0x735a53f2 + } + symbol { + key: "wakeup_sources_read_unlock" + value: 0xaa56f7fa + } + symbol { + key: "wakeup_sources_walk_next" + value: 0x36d0e118 + } + symbol { + key: "wakeup_sources_walk_start" + value: 0x96e52cc0 + } symbol { key: "watchdog_init_timeout" value: 0xb3aa5e28 diff --git a/android/abi_gki_aarch64_imx b/android/abi_gki_aarch64_imx new file mode 100644 index 000000000000..02f1f52692df --- /dev/null +++ b/android/abi_gki_aarch64_imx @@ -0,0 +1,944 @@ +[abi_symbol_list] + add_timer + add_uevent_var + add_wait_queue + alloc_candev_mqs + alloc_can_err_skb + alloc_canfd_skb + alloc_can_skb + alloc_chrdev_region + alloc_etherdev_mqs + alloc_io_pgtable_ops + alloc_netdev_mqs + backlight_device_register + backlight_device_unregister + bcmp + bus_unregister + bus_unregister_notifier + cache_line_size + can_bus_off + cancel_delayed_work + cancel_delayed_work_sync + cancel_work_sync + can_change_mtu + can_change_state + can_dropped_invalid_skb + can_fd_dlc2len + can_fd_len2dlc + can_put_echo_skb + can_rx_offload_add_fifo + can_rx_offload_add_timestamp + can_rx_offload_del + can_rx_offload_enable + can_rx_offload_get_echo_skb + can_rx_offload_irq_finish + can_rx_offload_irq_offload_fifo + can_rx_offload_irq_offload_timestamp + can_rx_offload_queue_timestamp + capable + cdev_add + cdev_del + cfg80211_ch_switch_notify + cfg80211_classify8021d + cfg80211_connect_done + cfg80211_cqm_rssi_notify + cfg80211_del_sta_sinfo + cfg80211_disconnected + cfg80211_find_elem_match + cfg80211_ft_event + cfg80211_get_bss + cfg80211_inform_bss_data + cfg80211_mgmt_tx_status_ext + cfg80211_michael_mic_failure + cfg80211_new_sta + cfg80211_pmksa_candidate_notify + cfg80211_put_bss + __cfg80211_radar_event + cfg80211_ready_on_channel + cfg80211_register_netdevice + cfg80211_remain_on_channel_expired + cfg80211_report_wowlan_wakeup + cfg80211_roamed + clk_get + __clk_get_hw + __clk_get_name + clk_get_parent + clk_get_rate + clk_hw_get_name + clk_hw_get_parent + clk_hw_get_parent_by_index + clk_hw_get_rate + clk_hw_is_enabled + clk_hw_register + clk_hw_unregister + clk_is_match + clk_notifier_register + _dev_crit + dev_driver_string + _dev_err + dev_err_probe + dev_fwnode + dev_get_regmap + device_add + device_create + device_create_file + device_del + device_destroy + device_for_each_child + device_get_child_node_count + device_get_dma_attr + device_get_match_data + device_get_next_child_node + device_initialize + device_link_add + device_link_del + device_link_remove + device_match_fwnode + device_match_of_node + device_property_match_string + device_property_present + device_property_read_string + device_property_read_u16_array + device_property_read_u32_array + device_register + 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_blk_crypto_profile_init + devm_clk_bulk_get + devm_clk_bulk_get_all + devm_clk_bulk_get_optional + devm_clk_get + devm_clk_get_optional + devm_clk_put + devm_clk_register + devm_device_add_group + __devm_drm_dev_alloc + devm_drm_of_get_bridge + devm_drm_panel_bridge_add_typed + devm_free_irq + devm_fwnode_pwm_get + devm_get_clk_from_child + devm_gpiochip_add_data_with_key + devm_gpiod_get + devm_gpiod_get_array + devm_gpiod_get_index + devm_gpiod_get_optional + devm_gpio_request + devm_gpio_request_one + devm_i2c_new_dummy_device + devm_iio_device_alloc + __devm_iio_device_register + devm_input_allocate_device + devm_ioremap + 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_led_classdev_register_ext + devm_mbox_controller_register + devm_mfd_add_devices + devm_mipi_dsi_attach + drm_bridge_attach + drm_bridge_chain_enable + drm_bridge_connector_enable_hpd + drm_bridge_connector_init + drm_bridge_hpd_notify + drm_bridge_remove + drm_compat_ioctl + drm_crtc_accurate_vblank_count + drm_crtc_add_crc_entry + drm_crtc_arm_vblank_event + drm_crtc_cleanup + __drm_crtc_commit_free + drm_crtc_commit_wait + drm_crtc_handle_vblank + drm_crtc_init_with_planes + drm_crtc_send_vblank_event + drm_crtc_vblank_get + drm_crtc_vblank_helper_get_vblank_timestamp + drm_crtc_vblank_off + drm_crtc_vblank_on + drm_crtc_vblank_put + drm_crtc_wait_one_vblank + ___drm_dbg + __drm_debug + 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_do_get_edid + drm_edid_duplicate + drm_edid_get_monitor_name + drm_encoder_cleanup + drm_encoder_init + __drm_err + drm_firmware_drivers_only + drm_format_info_block_height + drm_format_info_block_width + drm_gem_create_mmap_offset + drm_gem_fb_create + drm_gem_fb_get_obj + 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_plane_helper_prepare_fb + drm_gem_prime_fd_to_handle + drm_gem_prime_handle_to_fd + drm_gem_prime_import + drm_gem_prime_mmap + drm_gem_private_object_init + drm_gem_vm_close + drm_gem_vm_open + drm_get_connector_status_name + drm_get_edid + drm_get_format_info + drm_helper_hpd_irq_event + 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_config_helper_resume + drm_mode_config_helper_suspend + drm_mode_config_reset + drm_mode_copy + drm_mode_create + drm_mode_debug_printmodeline + drm_mode_destroy + drm_mode_duplicate + drm_mode_equal + 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_modeset_lock_single_interruptible + drm_mode_set_name + drm_modeset_unlock + drm_mode_vrefresh + drm_object_attach_property + drm_object_property_set_value + drm_open + drm_panel_add + drm_panel_disable + drm_panel_enable + drm_panel_get_modes + drm_panel_init + drm_panel_prepare + drm_panel_remove + drm_panel_unprepare + drm_plane_cleanup + drm_plane_create_alpha_property + drm_plane_create_blend_mode_property + drm_plane_create_rotation_property + drm_plane_create_zpos_immutable_property + drm_plane_create_zpos_property + drm_poll + drm_prime_gem_destroy + drm_prime_get_contiguous_size + drm_printf + __drm_printfn_debug + drm_property_create_enum + drm_property_create_range + drm_read + drm_rect_intersect + drm_release + drm_simple_encoder_init + drm_sysfs_connector_status_event + drm_universal_plane_init + drm_vblank_init + dump_stack + enable_irq + enable_percpu_irq + ether_setup + ethnl_cable_test_fault_length + ethnl_cable_test_result + ethtool_op_get_link + ethtool_op_get_ts_info + eth_type_trans + eth_validate_addr + extcon_get_edev_by_phandle + extcon_get_state + extcon_set_state_sync + fd_install + fget + _find_first_bit + _find_next_and_bit + _find_next_bit + _find_next_zero_bit + find_vma + find_vpid + finish_wait + fixed_size_llseek + flush_work + __flush_workqueue + fortify_panic + fput + free_candev + free_io_pgtable_ops + free_irq + free_netdev + __free_pages + free_pages_exact + free_percpu + free_percpu_irq + gcd + generic_device_group + generic_handle_domain_irq + generic_handle_irq + gen_pool_add_owner + gen_pool_alloc_algo_owner + gen_pool_create + gen_pool_destroy + gen_pool_free_owner + gen_pool_virt_to_phys + get_cpu_device + get_device + get_random_bytes + get_random_u32 + get_random_u8 + get_unused_fd_flags + gic_nonsecure_priorities + gpiochip_disable_irq + gpiochip_enable_irq + gpiochip_generic_config + gpiochip_generic_free + gpiochip_generic_request + gpiochip_get_data + gpiochip_irq_relres + gpiochip_irq_reqres + gpiochip_lock_as_irq + gpiochip_unlock_as_irq + gpiod_cansleep + gpiod_count + gpiod_direction_input + gpiod_direction_output + gpiod_direction_output_raw + gpiod_get_optional + gpiod_get_raw_value + gpiod_get_raw_value_cansleep + 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_edge_irq + handle_level_irq + handle_nested_irq + handle_simple_irq + handle_sysrq + hrtimer_cancel + hrtimer_init + hrtimer_start_range_ns + hrtimer_try_to_cancel + i2c_adapter_type + i2c_add_adapter + i2c_add_numbered_adapter + i2c_bus_type + i2c_del_adapter + i2c_del_driver + i2c_for_each_dev + i2c_generic_scl_recovery + i2c_get_adapter + i2c_get_dma_safe_msg_buf + i2c_match_id + i2c_new_ancillary_device + i2c_new_dummy_device + i2c_put_adapter + i2c_put_dma_safe_msg_buf + i2c_recover_bus + i2c_register_driver + i2c_smbus_read_byte + i2c_smbus_read_byte_data + i2c_smbus_read_i2c_block_data + i2c_smbus_write_byte + i2c_smbus_write_byte_data + i2c_smbus_xfer + i2c_transfer + i2c_transfer_buffer_flags + i2c_unregister_device + i2c_verify_client + i3c_device_do_priv_xfers + i3c_driver_register_with_owner + i3c_driver_unregister + ida_alloc_range + ida_destroy + ida_free + idr_alloc + idr_destroy + idr_find + idr_for_each + idr_get_next + idr_preload + idr_remove + ieee80211_bss_get_elem + ieee80211_channel_to_freq_khz + ieee80211_freq_khz_to_channel + ieee80211_get_channel_khz + ieee80211_hdrlen + iio_buffer_enabled + iio_buffer_init + iio_buffer_put + iio_device_attach_buffer + iio_device_claim_direct_mode + iio_device_release_direct_mode + iio_device_unregister + iio_push_event + iio_push_to_buffers + import_iovec + in4_pton + init_dummy_netdev + init_net + __init_swait_queue_head + init_timer_key + init_wait_entry + __init_waitqueue_head + input_alloc_absinfo + input_allocate_device + input_event + input_free_device + input_mt_init_slots + input_mt_report_slot_state + input_mt_sync_frame + input_register_device + input_set_abs_params + input_set_capability + input_unregister_device + int_sqrt + iomem_resource + iommu_alloc_resv_region + iommu_device_register + iommu_device_sysfs_add + iommu_device_sysfs_remove + iommu_device_unregister + iommu_dma_get_resv_regions + iommu_fwspec_add_ids + iommu_fwspec_free + iommu_get_domain_for_dev + iommu_group_ref_get + iommu_iova_to_phys + ioremap_prot + iounmap + __iowrite32_copy + __irq_alloc_descs + irq_chip_ack_parent + irq_create_mapping_affinity + irq_create_of_mapping + irq_dispose_mapping + __irq_domain_add + irq_domain_get_irq_data + irq_domain_remove + irq_domain_set_info + irq_domain_simple_ops + irq_domain_update_bus_token + irq_domain_xlate_onecell + irq_domain_xlate_twocell + irq_get_irq_data + irq_modify_status + irq_of_parse_and_map + __irq_resolve_mapping + irq_set_affinity + irq_set_chained_handler_and_data + irq_set_chip_and_handler_name + irq_set_chip_data + irq_set_irq_wake + irq_to_desc + jiffies + jiffies_to_msecs + jiffies_to_usecs + kasan_flag_enabled + kasprintf + __kfifo_alloc + __kfifo_free + __kfifo_from_user + __kfifo_in + __kfifo_init + __kfifo_out + __kfifo_to_user + kfree + kfree_skb_reason + kimage_voffset + __kmalloc + kmalloc_caches + kmalloc_large + kmalloc_trace + kmem_cache_alloc + kmem_cache_create + kmem_cache_destroy + kmem_cache_free + kmemdup + kobject_create_and_add + kobject_put + kobject_uevent_env + krealloc + kstrdup + kstrdup_const + kstrtoint + kstrtoint_from_user + kstrtoll + kstrtou16 + kstrtouint + kstrtoull + kthread_bind + kthread_create_on_node + kthread_should_stop + kthread_stop + ktime_get + ktime_get_mono_fast_ns + ktime_get_raw_ts64 + ktime_get_real_ts64 + ktime_get_ts64 + ktime_get_with_offset + kvfree + kvfree_call_rcu + kvmalloc_node + __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 + match_string + mbox_chan_received_data + mbox_chan_txdone + mbox_free_channel + mbox_send_message + __mdiobus_read + mdiobus_read + mdiobus_unregister + __mdiobus_write + mdiobus_write + memchr_inv + memcmp + memcpy + __memcpy_fromio + __memcpy_toio + memdup_user + memmove + memory_read_from_buffer + memparse + memremap + mem_section + memset + __memset_io + memstart_addr + memunmap + mfd_add_devices + mfd_remove_devices + misc_deregister + misc_register + mmc_cqe_request_done + mmc_gpio_get_cd + mmc_gpio_get_ro + mmc_send_tuning + mod_delayed_work_on + mod_timer + __module_get + 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_complete_done + napi_disable + napi_enable + napi_gro_receive + __napi_schedule + napi_schedule_prep + __ndelay + __netdev_alloc_skb + netdev_err + netdev_info + netdev_pick_tx + netdev_printk + netdev_warn + netif_carrier_off + netif_carrier_on + netif_device_attach + netif_device_detach + netif_napi_add_weight + __netif_napi_del + netif_receive_skb + netif_rx + netif_tx_lock + netif_tx_stop_all_queues + netif_tx_unlock + netif_tx_wake_queue + netlink_broadcast + __netlink_kernel_create + netlink_kernel_release + net_ratelimit + __nla_parse + nla_put + noop_llseek + nr_cpu_ids + nsecs_to_jiffies + ns_to_timespec64 + __num_online_cpus + of_address_to_resource + of_alias_get_id + of_can_transceiver + of_clk_add_hw_provider + page_pool_destroy + page_pool_put_defragged_page + panic + panic_notifier_list + param_array_ops + param_ops_bool + param_ops_byte + param_ops_charp + param_ops_int + param_ops_uint + param_ops_ullong + param_ops_ulong + pci_bus_type + pci_device_group + pci_disable_device + pci_enable_device + pci_enable_msi + pci_enable_wake + pci_iomap + pci_iounmap + pci_read_config_dword + __pci_register_driver + pci_release_region + pci_request_region + pci_restore_state + pci_save_state + pci_set_master + pci_set_power_state + pci_unregister_driver + pci_write_config_dword + __per_cpu_offset + perf_pmu_migrate_context + perf_pmu_register + perf_pmu_unregister + perf_trace_buf_alloc + perf_trace_run_bpf_submit + pfn_is_map_memory + pid_task + pinctrl_dev_get_drvdata + pinctrl_enable + pinctrl_force_default + pinctrl_force_sleep + pinctrl_lookup_state + pinctrl_pm_select_default_state + pinctrl_pm_select_idle_state + pinctrl_pm_select_sleep_state + pinctrl_select_default_state + pinctrl_select_state + pin_get_name + pin_user_pages + platform_device_add + platform_device_add_data + platform_device_add_resources + platform_device_alloc + platform_device_put + platform_device_register + platform_device_register_full + platform_device_unregister + __platform_driver_probe + __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 + platform_irqchip_probe + platform_irq_count + pm_genpd_init + pm_genpd_remove + __pm_relax + pm_relax + pm_runtime_allow + __pm_runtime_disable + pm_runtime_enable + pm_runtime_forbid + pm_runtime_force_resume + pm_runtime_force_suspend + __pm_runtime_idle + pm_runtime_no_callbacks + __pm_runtime_resume + pm_runtime_set_autosuspend_delay + __pm_runtime_set_status + __pm_runtime_suspend + __pm_runtime_use_autosuspend + __pm_stay_awake + pm_system_wakeup + pm_wakeup_dev_event + pm_wakeup_ws_event + policy_has_boost_freq + power_supply_get_property + power_supply_put + power_supply_register + power_supply_reg_notifier + power_supply_set_property + power_supply_unregister + power_supply_unreg_notifier + preempt_schedule + preempt_schedule_notrace + prepare_to_wait_event + print_hex_dump + _printk + proc_create_data + proc_create_seq_private + proc_create_single_data + proc_mkdir + pskb_expand_head + ptp_classify_raw + ptp_clock_event + ptp_clock_index + ptp_clock_register + ptp_clock_unregister + ptp_parse_header + put_device + __put_task_struct + put_unused_fd + pwm_apply_state + queue_delayed_work_on + queue_work_on + radix_tree_insert + ___ratelimit + rational_best_approximation + raw_notifier_call_chain + _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 + rb_erase + rb_insert_color + __rcu_read_lock + __rcu_read_unlock + rdev_get_drvdata + rdev_get_id + refcount_warn_saturate + regcache_cache_bypass + regcache_cache_only + regcache_mark_dirty + regcache_sync + regcache_sync_region + register_candev + __register_chrdev + register_chrdev_region + register_inet6addr_notifier + register_inetaddr_notifier + register_netdev + register_netdevice + register_pm_notifier + register_reboot_notifier + __register_rpmsg_driver + register_syscore_ops + register_virtio_device + register_virtio_driver + regmap_bulk_read + regmap_bulk_write + regmap_field_read + regmap_field_update_bits_base + regmap_get_device + regmap_irq_get_virq + regmap_raw_write + regmap_read + regmap_register_patch + regmap_update_bits_base + regmap_write + regulator_bulk_disable + regulator_bulk_enable + regulator_bulk_get + regulator_disable + regulator_disable_regmap + regulator_enable + regulator_enable_regmap + 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_set_current_limit + regulator_set_voltage + regulatory_hint + regulatory_set_wiphy_regd_sync + release_firmware + __release_region + remap_pfn_range + remove_cpu + remove_proc_entry + remove_wait_queue + report_iommu_fault + request_firmware + request_firmware_direct + request_firmware_nowait + __request_module + __request_percpu_irq + __request_region + request_threaded_irq + reset_control_assert + reset_control_deassert + reset_control_put + reset_control_reset + rpmsg_create_channel + rpmsg_create_ept + rpmsg_register_device + rpmsg_register_device_override + rpmsg_release_channel + rpmsg_send + rpmsg_unregister_device + rproc_add + rproc_alloc + rproc_coredump_add_segment + rproc_del + rproc_free + rproc_report_crash + rps_needed + rtc_time64_to_tm + rtc_tm_to_time64 + rtc_update_irq + rtnl_is_locked + rtnl_lock + rtnl_unlock + sched_clock + schedule + schedule_hrtimeout + schedule_timeout + schedule_timeout_uninterruptible + scmi_driver_register + scmi_driver_unregister + scnprintf + sdhci_add_host + sdhci_cqe_disable + sdhci_cqe_enable + sdhci_cqe_irq + sdhci_pltfm_free + sdhci_pltfm_init + sdhci_remove_host + sdhci_reset + sdio_claim_host + sdio_claim_irq + sdio_disable_func + sdio_enable_func + sdio_readb + sdio_readsb + sdio_register_driver + sdio_release_host + sdio_release_irq + sdio_set_block_size + sdio_unregister_driver + sdio_writeb + sdio_writesb + seq_lseek + seq_open + __seq_open_private + seq_printf + seq_puts + seq_read + seq_release + seq_release_private + seq_vprintf + seq_write + set_freezable + set_user_nice + sg_alloc_table + sg_alloc_table_from_pages_segment + sg_free_table + sg_init_one + sg_init_table + sg_next + __sg_page_iter_next + virtqueue_detach_unused_buf + virtqueue_disable_cb + virtqueue_enable_cb + virtqueue_get_buf + virtqueue_get_vring_size + virtqueue_kick + virtqueue_kick_prepare + virtqueue_notify + vmalloc + vmalloc_to_page + vmap + vm_get_page_prot + vm_iomap_memory + vm_mmap + vm_munmap + vm_zone_stat + vprintk + vring_del_virtqueue + vring_interrupt + vring_new_virtqueue + vsnprintf + vunmap + vzalloc + wait_for_completion + wait_for_completion_interruptible + wait_for_completion_interruptible_timeout + wait_for_completion_timeout + wait_woken + __wake_up + wake_up_process + wakeup_source_add + wakeup_source_register + wakeup_source_remove + wakeup_source_unregister + __warn_printk + watchdog_init_timeout + watchdog_set_restart_priority + wiphy_apply_custom_regulatory + wiphy_free + wiphy_new_nm + wiphy_register + wiphy_unregister + wireless_send_event + woken_wake_function + xdp_convert_zc_to_xdp_frame + xdp_do_flush + xdp_do_redirect + xdp_master_redirect + xdp_rxq_info_is_reg + __xdp_rxq_info_reg + xdp_rxq_info_reg_mem_model + xdp_rxq_info_unreg + xdp_warn diff --git a/android/abi_gki_aarch64_mtk b/android/abi_gki_aarch64_mtk new file mode 100644 index 000000000000..6d4656fdc6c9 --- /dev/null +++ b/android/abi_gki_aarch64_mtk @@ -0,0 +1,2368 @@ +[abi_symbol_list] + access_process_vm + activate_task + addrconf_add_linklocal + addrconf_prefix_rcv_add_addr + add_timer + add_uevent_var + add_wait_queue + add_wait_queue_exclusive + adjust_managed_page_count + aes_encrypt + aes_expandkey + alarm_cancel + alarm_init + alarm_start + alarm_start_relative + alarm_try_to_cancel + alloc_chrdev_region + alloc_etherdev_mqs + alloc_io_pgtable_ops + alloc_netdev_mqs + __alloc_pages + alloc_pages_exact + __alloc_percpu + __alloc_percpu_gfp + __alloc_skb + alloc_workqueue + all_vm_events + alt_cb_patch_nops + anon_inode_getfd + anon_inode_getfile + __arch_clear_user + __arch_copy_from_user + __arch_copy_to_user + arch_freq_scale + arch_timer_read_counter + arm64_use_ng_mappings + async_schedule_node + atomic_notifier_call_chain + atomic_notifier_chain_register + atomic_notifier_chain_unregister + autoremove_wake_function + available_idle_cpu + balance_push_callback + bcmp + bdev_end_io_acct + bdev_start_io_acct + bin2hex + bio_endio + bio_end_io_acct_remapped + bio_start_io_acct + __bitmap_and + __bitmap_andnot + __bitmap_clear + __bitmap_complement + __bitmap_equal + bitmap_find_next_zero_area_off + bitmap_free + bitmap_from_arr32 + __bitmap_intersects + __bitmap_or + bitmap_print_to_pagebuf + bitmap_release_region + __bitmap_set + __bitmap_subset + __bitmap_weight + __bitmap_xor + bitmap_zalloc + bit_wait + bit_wait_timeout + __blk_alloc_disk + blk_queue_flag_clear + blk_queue_flag_set + blk_queue_io_min + blk_queue_io_opt + blk_queue_logical_block_size + blk_queue_max_discard_sectors + blk_queue_max_write_zeroes_sectors + blk_queue_physical_block_size + blocking_notifier_call_chain + blocking_notifier_chain_register + blocking_notifier_chain_unregister + bpf_trace_run10 + bpf_trace_run12 + bpf_trace_run1 + bpf_trace_run2 + bpf_trace_run3 + bpf_trace_run4 + bpf_trace_run5 + bpf_trace_run6 + bpf_trace_run7 + bpf_trace_run8 + bpf_trace_run9 + build_skb + bus_find_device + bus_for_each_dev + bus_register + bus_unregister + cache_line_size + call_netdevice_notifiers + call_rcu + cancel_delayed_work + cancel_delayed_work_sync + cancel_work_sync + capable + cdc_parse_cdc_header + cdev_add + cdev_alloc + cdev_del + cdev_device_add + cdev_device_del + cdev_init + cgroup_taskset_first + cgroup_taskset_next + __check_object_size + check_preempt_curr + __class_create + class_destroy + class_dev_iter_exit + class_dev_iter_init + class_dev_iter_next + class_find_device + class_for_each_device + __class_register + class_unregister + clear_page + __ClearPageMovable + clk_bulk_disable + clk_bulk_enable + clk_bulk_prepare + clk_bulk_unprepare + clk_disable + clk_enable + clk_get + __clk_get_hw + __clk_get_name + clk_get_parent + clk_get_rate + clk_hw_get_name + clk_hw_get_num_parents + clk_hw_get_parent + clk_hw_get_parent_by_index + clk_hw_get_rate + clk_hw_is_enabled + clk_hw_is_prepared + clk_hw_round_rate + __clk_is_enabled + clk_is_match + clk_notifier_register + clk_prepare + clk_put + clk_register + clk_register_fixed_factor + clk_register_fixed_rate + clk_set_parent + clk_set_rate + clk_unprepare + clockevents_config_and_register + clocks_calc_mult_shift + cma_alloc + cma_release + compat_ptr_ioctl + complete + complete_all + completion_done + component_add + component_bind_all + component_del + component_master_add_with_match + component_master_del + component_match_add_release + component_unbind_all + config_ep_by_speed + config_group_init_type_name + console_suspend_enabled + __const_udelay + consume_skb + contig_page_data + _copy_from_iter + copy_from_kernel_nofault + __copy_overflow + _copy_to_iter + __cpu_active_mask + cpu_all_bits + cpu_bit_bitmap + cpufreq_cpu_get + cpufreq_cpu_put + cpufreq_disable_fast_switch + cpufreq_driver_fast_switch + cpufreq_driver_resolve_freq + __cpufreq_driver_target + cpufreq_enable_fast_switch + cpufreq_generic_attr + cpufreq_generic_frequency_table_verify + cpufreq_get_policy + cpufreq_policy_transition_delay_us + cpufreq_quick_get + cpufreq_register_driver + cpufreq_register_governor + cpufreq_table_index_unsorted + cpufreq_unregister_driver + cpufreq_unregister_governor + __cpuhp_remove_state + __cpuhp_setup_state + __cpuhp_state_add_instance + __cpuhp_state_remove_instance + cpu_hwcaps + cpu_latency_qos_add_request + cpu_latency_qos_remove_request + cpu_latency_qos_update_request + cpumask_any_and_distribute + 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 + cpu_subsys + cpu_topology + crc16 + crc32_be + crc32_le + crc8 + crc8_populate_msb + crc_ccitt + crypto_aead_decrypt + crypto_aead_encrypt + crypto_aead_setauthsize + crypto_aead_setkey + crypto_alloc_aead + crypto_alloc_base + crypto_alloc_kpp + crypto_alloc_shash + crypto_alloc_skcipher + crypto_alloc_sync_skcipher + crypto_comp_compress + crypto_comp_decompress + crypto_default_rng + crypto_destroy_tfm + crypto_ecdh_encode_key + crypto_ecdh_key_len + crypto_get_default_rng + crypto_has_ahash + crypto_has_alg + __crypto_memneq + crypto_put_default_rng + crypto_shash_digest + crypto_shash_final + crypto_shash_finup + crypto_shash_setkey + crypto_shash_tfm_digest + crypto_shash_update + crypto_skcipher_decrypt + crypto_skcipher_encrypt + crypto_skcipher_setkey + __crypto_xor + css_next_child + csum_partial + _ctype + datagram_poll + deactivate_task + debugfs_attr_read + debugfs_attr_write + debugfs_create_blob + debugfs_create_bool + debugfs_create_devm_seqfile + debugfs_create_dir + debugfs_create_file + debugfs_create_symlink + debugfs_create_u16 + debugfs_create_u32 + debugfs_create_u64 + debugfs_create_u8 + debugfs_create_x32 + debugfs_lookup + debugfs_remove + debugfs_rename + dec_zone_page_state + default_llseek + default_wake_function + delayed_work_timer_fn + del_gendisk + del_timer + del_timer_sync + desc_to_gpio + destroy_workqueue + dev_add_pack + dev_addr_mod + dev_alloc_name + dev_change_flags + __dev_change_net_namespace + dev_close + dev_close_many + dev_coredumpv + dev_driver_string + _dev_err + dev_err_probe + dev_fetch_sw_netstats + devfreq_add_device + devfreq_add_governor + devfreq_cooling_unregister + devfreq_monitor_resume + devfreq_monitor_start + devfreq_monitor_stop + devfreq_monitor_suspend + devfreq_recommended_opp + devfreq_register_opp_notifier + devfreq_remove_device + devfreq_remove_governor + devfreq_resume_device + devfreq_suspend_device + devfreq_unregister_opp_notifier + devfreq_update_interval + dev_fwnode + dev_getbyhwaddr_rcu + __dev_get_by_index + dev_get_by_index + dev_get_by_index_rcu + __dev_get_by_name + dev_get_by_name + dev_getfirstbyhwtype + dev_get_flags + dev_get_regmap + dev_get_stats + device_add + device_add_disk + device_create + device_create_bin_file + device_create_file + device_create_managed_software_node + device_create_with_groups + device_del + device_destroy + device_find_child + device_for_each_child + device_get_child_node_count + device_get_match_data + device_get_next_child_node + device_initialize + device_link_add + device_link_remove + device_match_fwnode + device_match_name + device_move + device_property_present + device_property_read_string + device_property_read_u32_array + device_property_read_u8_array + device_register + device_release_driver + device_remove_bin_file + device_remove_file + device_rename + device_set_wakeup_capable + device_unregister + device_wakeup_disable + device_wakeup_enable + _dev_info + __dev_kfree_skb_any + __dev_kfree_skb_irq + dev_load + devm_add_action + __devm_alloc_percpu + devm_backlight_device_register + devm_bitmap_zalloc + devm_blk_crypto_profile_init + devm_clk_bulk_get + devm_clk_bulk_get_all + devm_clk_bulk_get_optional + devm_clk_get + devm_clk_get_optional + devm_clk_put + devm_clk_register + dev_mc_sync + dev_mc_unsync + devm_free_irq + devm_fwnode_pwm_get + devm_gpiochip_add_data_with_key + devm_gpiod_get + devm_gpiod_get_index + devm_gpiod_get_optional + devm_gpiod_put + devm_gpio_request + devm_gpio_request_one + devm_i2c_new_dummy_device + devm_iio_channel_get + devm_iio_device_alloc + __devm_iio_device_register + devm_input_allocate_device + devm_ioremap + devm_ioremap_resource + devm_ioremap_wc + devm_iounmap + devm_kasprintf + devm_kfree + devm_kmalloc + devm_kstrdup + devm_led_classdev_register_ext + devm_mbox_controller_register + devm_memremap + devm_mfd_add_devices + devm_nvmem_cell_get + devm_nvmem_device_get + devm_nvmem_register + devm_of_icc_get + __devm_of_phy_provider_register + devm_of_platform_populate + devm_pci_alloc_host_bridge + devm_phy_create + devm_phy_get + devm_pinctrl_get + devm_pinctrl_put + 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_regmap_add_irq_chip + devm_regmap_field_alloc + __devm_regmap_init + __devm_regmap_init_i2c + __devm_regmap_init_mmio_clk + __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_regulator_register_notifier + devm_request_threaded_irq + __devm_reset_control_get + devm_reset_controller_register + devm_rtc_allocate_device + __devm_rtc_register_device + devm_snd_soc_register_card + devm_snd_soc_register_component + devm_spi_register_controller + devm_watchdog_register_device + dev_nit_active + _dev_notice + dev_pm_clear_wake_irq + dev_pm_domain_attach_by_name + dev_pm_domain_detach + dev_pm_genpd_add_notifier + dev_pm_genpd_set_performance_state + dev_pm_opp_add + dev_pm_opp_clear_config + dev_pm_opp_find_freq_ceil + dev_pm_opp_find_freq_exact + dev_pm_opp_find_freq_floor + dev_pm_opp_get_freq + dev_pm_opp_get_level + dev_pm_opp_get_opp_count + dev_pm_opp_get_voltage + dev_pm_opp_of_add_table + dev_pm_opp_of_remove_table + dev_pm_opp_put + dev_pm_opp_remove_all_dynamic + dev_pm_opp_set_config + dev_pm_qos_update_request + _dev_printk + __dev_queue_xmit + dev_remove_pack + devres_add + __devres_alloc_node + devres_free + devres_release + dev_set_allmulti + dev_set_mac_address + dev_set_mtu + dev_set_name + dev_set_promiscuity + dev_uc_add + dev_uc_del + dev_uc_sync + dev_uc_unsync + _dev_warn + disable_irq + disable_irq_nosync + disable_percpu_irq + dma_alloc_attrs + dma_alloc_pages + dma_async_device_register + dma_async_device_unregister + dma_async_tx_descriptor_init + 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_fence_add_callback + dma_fence_array_create + dma_fence_array_ops + dma_fence_context_alloc + dma_fence_default_wait + dma_fence_free + dma_fence_get_status + dma_fence_init + dma_fence_release + dma_fence_remove_callback + dma_fence_signal + dma_fence_signal_locked + dma_fence_signal_timestamp_locked + dma_fence_wait_timeout + dma_free_attrs + dma_free_pages + dma_get_sgtable_attrs + 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 + dma_heap_put + dmam_alloc_attrs + dma_map_page_attrs + dma_map_resource + dma_map_sg_attrs + dma_map_sgtable + dmam_free_coherent + dma_mmap_attrs + dma_mmap_pages + dma_pool_alloc + dma_pool_create + dma_pool_destroy + dma_pool_free + dma_resv_add_fence + dma_resv_reserve_fences + 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 + double_rq_lock + do_wait_intr_irq + down + downgrade_write + down_interruptible + down_read + down_read_trylock + down_timeout + down_trylock + down_write + drain_workqueue + driver_attach + driver_find_device + driver_register + driver_unregister + drm_add_edid_modes + drm_add_modes_noedid + drm_atomic_add_affected_connectors + drm_atomic_get_connector_state + drm_atomic_get_crtc_state + drm_atomic_get_new_private_obj_state + drm_atomic_get_private_obj_state + drm_atomic_helper_check + drm_atomic_helper_check_plane_state + drm_atomic_helper_cleanup_planes + 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_damage_iter_init + drm_atomic_helper_damage_iter_next + drm_atomic_helper_disable_plane + drm_atomic_helper_page_flip + __drm_atomic_helper_plane_destroy_state + __drm_atomic_helper_plane_duplicate_state + drm_atomic_helper_prepare_planes + __drm_atomic_helper_private_obj_duplicate_state + drm_atomic_helper_set_config + drm_atomic_helper_shutdown + drm_atomic_helper_swap_state + drm_atomic_helper_update_plane + drm_atomic_helper_wait_for_vblanks + drm_atomic_private_obj_fini + drm_atomic_private_obj_init + drm_atomic_state_clear + drm_atomic_state_default_release + __drm_atomic_state_free + drm_atomic_state_init + drm_bridge_attach + drm_calc_timestamping_constants + drm_compat_ioctl + drm_connector_attach_encoder + drm_connector_cleanup + drm_connector_init + 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_commit_wait + 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_crtc_wait_one_vblank + ___drm_dbg + __drm_debug + drm_detect_monitor_audio + drm_dev_alloc + __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_edid_duplicate + drm_edid_get_monitor_name + drm_encoder_cleanup + drm_encoder_init + __drm_err + drm_format_info + drm_format_info_block_height + drm_format_info_block_width + drm_framebuffer_init + drm_framebuffer_lookup + drm_framebuffer_remove + drm_gem_create_mmap_offset + drm_gem_fb_get_obj + drm_gem_handle_create + drm_gem_mmap + drm_gem_mmap_obj + 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_import + drm_gem_private_object_init + drm_gem_vm_close + drm_gem_vm_open + drm_get_edid + drm_helper_hpd_irq_event + drm_helper_mode_fill_fb_struct + drm_helper_probe_single_connector_modes + drm_ioctl + drm_is_current_master + drm_kms_helper_hotplug_event + drm_kms_helper_poll_disable + drm_kms_helper_poll_enable + drm_kms_helper_poll_fini + drmm_mode_config_init + drm_mode_config_cleanup + drm_mode_config_reset + drm_mode_copy + drm_mode_duplicate + drm_mode_equal + drm_mode_object_find + drm_mode_object_put + drm_mode_probed_add + drm_mode_set_crtcinfo + drm_modeset_lock + drm_modeset_lock_single_interruptible + drm_mode_set_name + drm_modeset_unlock + drm_mode_vrefresh + drm_object_attach_property + drm_object_property_set_value + drm_open + drm_panel_add + drm_panel_disable + drm_panel_enable + drm_panel_get_modes + drm_panel_init + drm_panel_prepare + drm_panel_remove + drm_panel_unprepare + drm_plane_cleanup + drm_plane_create_alpha_property + drm_plane_create_blend_mode_property + drm_poll + drm_prime_gem_destroy + drm_prime_get_contiguous_size + drm_printf + __drm_printfn_debug + drm_property_blob_put + drm_property_create_blob + drm_property_create_range + drm_property_lookup_blob + drm_read + drm_release + drm_universal_plane_init + drm_vblank_init + drm_writeback_connector_init + drm_writeback_queue_job + drm_writeback_signal_completion + dst_cache_destroy + dst_cache_get + dst_cache_init + dst_cache_set_ip4 + dst_cache_set_ip6 + dst_release + dump_stack + em_cpu_get + enable_irq + enable_percpu_irq + ether_setup + eth_mac_addr + __ethtool_get_link_ksettings + ethtool_op_get_link + ethtool_op_get_ts_info + eth_type_trans + eth_validate_addr + eventfd_ctx_fdget + eventfd_ctx_fileget + eventfd_ctx_put + eventfd_ctx_remove_wait_queue + eventfd_signal + extcon_get_edev_by_phandle + extcon_get_state + extcon_set_state_sync + __fdget + fd_install + fget + _find_first_bit + _find_first_zero_bit + find_get_pid + _find_last_bit + _find_next_and_bit + _find_next_bit + _find_next_zero_bit + find_pid_ns + find_task_by_vpid + find_vma_intersection + find_vpid + finish_wait + firmware_request_nowarn + flush_dcache_page + flush_delayed_work + flush_work + __flush_workqueue + __folio_put + folio_wait_bit + for_each_kernel_tracepoint + fortify_panic + fput + fqdir_exit + fqdir_init + free_io_pgtable_ops + free_irq + free_netdev + __free_pages + free_pages + free_pages_exact + free_percpu + free_percpu_irq + freezer_active + freezing_slow_path + freq_qos_add_notifier + freq_qos_add_request + freq_qos_remove_notifier + freq_qos_remove_request + freq_qos_update_request + gcd + generic_device_group + generic_file_llseek + generic_handle_domain_irq + generic_handle_irq + genlmsg_multicast_allns + genlmsg_put + genl_register_family + genl_unregister_family + gen_pool_add_owner + gen_pool_alloc_algo_owner + gen_pool_avail + gen_pool_best_fit + gen_pool_create + gen_pool_destroy + gen_pool_dma_alloc_align + gen_pool_dma_zalloc_align + gen_pool_first_fit_align + gen_pool_free_owner + gen_pool_has_addr + gen_pool_set_algo + gen_pool_size + gen_pool_virt_to_phys + get_cpu_device + get_cpu_idle_time + get_cpu_idle_time_us + get_cpu_iowait_time_us + get_device + __get_free_pages + get_governor_parent_kobj + get_net_ns_by_fd + get_net_ns_by_pid + get_pid_task + get_random_bytes + get_random_u16 + get_random_u32 + __get_random_u32_below + __get_task_comm + get_task_mm + get_unused_fd_flags + get_user_ifreq + get_user_pages + get_user_pages_fast + get_vaddr_frames + get_zeroed_page + gic_nonsecure_priorities + gov_attr_set_get + gov_attr_set_init + gov_attr_set_put + governor_sysfs_ops + gpiochip_add_data_with_key + gpiochip_generic_free + gpiochip_generic_request + gpiochip_get_data + gpiochip_lock_as_irq + gpiochip_remove + gpiochip_unlock_as_irq + gpiod_direction_input + gpiod_direction_output + gpiod_direction_output_raw + gpiod_get_raw_value + gpiod_get_value + gpiod_get_value_cansleep + gpiod_set_debounce + gpiod_set_raw_value + gpiod_set_value + gpiod_set_value_cansleep + gpiod_to_irq + gpio_free + gpio_request + gpio_request_one + gpio_to_desc + gre_add_protocol + gre_del_protocol + handle_edge_irq + handle_fasteoi_irq + handle_level_irq + handle_nested_irq + handle_simple_irq + handle_sysrq + have_governor_per_policy + hex_dump_to_buffer + hex_to_bin + hid_add_device + hid_allocate_device + hid_destroy_device + hid_ignore + hid_input_report + hid_parse_report + housekeeping_cpumask + housekeeping_overridden + housekeeping_test_cpu + hrtimer_active + hrtimer_cancel + hrtimer_forward + hrtimer_init + hrtimer_start_range_ns + hrtimer_try_to_cancel + __hw_addr_init + __hw_addr_sync + __hw_addr_unsync + i2c_add_adapter + i2c_del_adapter + i2c_del_driver + i2c_get_dma_safe_msg_buf + i2c_put_dma_safe_msg_buf + i2c_register_driver + 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_write_word_data + i2c_transfer + i2c_transfer_buffer_flags + i2c_unregister_device + i2c_verify_client + I_BDEV + icc_link_create + icc_node_add + icc_node_create + icc_provider_add + icc_provider_del + icc_put + icc_set_bw + icc_sync_state + ida_alloc_range + ida_destroy + ida_free + idr_alloc + idr_destroy + idr_find + idr_for_each + idr_get_next + idr_remove + idr_replace + iio_buffer_init + iio_buffer_put + iio_channel_get + iio_channel_release + iio_device_attach_buffer + iio_device_unregister + iio_get_channel_type + iio_push_to_buffers + iio_read_channel_processed + in6addr_any + inc_zone_page_state + in_egroup_p + inet6_csk_xmit + inet_csk_get_port + inet_frag_destroy + inet_frag_find + inet_frag_kill + inet_frag_queue_insert + inet_frag_reasm_finish + inet_frag_reasm_prepare + inet_frags_fini + inet_frags_init + init_dummy_netdev + init_net + __init_rwsem + init_srcu_struct + __init_swait_queue_head + init_task + init_timer_key + init_user_ns + init_uts_ns + init_wait_entry + __init_waitqueue_head + input_allocate_device + input_close_device + input_event + input_free_device + input_mt_destroy_slots + input_mt_init_slots + input_mt_report_slot_state + input_mt_sync_frame + input_open_device + input_register_device + input_register_handle + input_register_handler + input_set_abs_params + input_set_capability + input_set_timestamp + input_unregister_device + input_unregister_handle + iomem_resource + iommu_alloc_resv_region + iommu_device_register + iommu_device_sysfs_add + iommu_device_sysfs_remove + iommu_device_unregister + iommu_dma_get_resv_regions + iommu_fwspec_add_ids + iommu_fwspec_free + iommu_get_domain_for_dev + iommu_group_alloc + iommu_group_ref_get + iommu_iova_to_phys + iommu_map + iommu_map_sg + iommu_present + iommu_put_resv_regions + iommu_register_device_fault_handler + iommu_report_device_fault + iommu_unmap + ioremap_prot + iounmap + iov_iter_init + iov_iter_kvec + iov_iter_revert + ip6_dst_hoplimit + __ip_dev_find + ipi_desc_get + ip_local_out + ip_mc_join_group + ip_queue_xmit + ip_route_output_flow + __ip_select_ident + ip_send_check + __ipv6_addr_type + ipv6_dev_find + ipv6_skip_exthdr + ipv6_stub + __irq_apply_affinity_hint + irq_chip_ack_parent + irq_chip_mask_parent + irq_chip_unmask_parent + irq_create_mapping_affinity + irq_create_of_mapping + irq_dispose_mapping + __irq_domain_add + irq_domain_free_irqs_common + irq_domain_get_irq_data + irq_domain_remove + irq_domain_set_info + irq_domain_simple_ops + irq_get_irqchip_state + irq_get_irq_data + irq_modify_status + irq_of_parse_and_map + __irq_resolve_mapping + irq_set_affinity + irq_set_chained_handler_and_data + irq_set_chip_and_handler_name + irq_set_chip_data + irq_set_irqchip_state + irq_set_irq_type + irq_set_irq_wake + irq_set_parent + irq_to_desc + irq_work_queue + irq_work_sync + is_vmalloc_addr + jiffies_64_to_clock_t + jiffies + jiffies_to_msecs + jiffies_to_usecs + kasan_flag_enabled + kasprintf + kernel_accept + kernel_bind + kernel_connect + kernel_cpustat + kernel_kobj + kernel_listen + kernel_param_lock + kernel_param_unlock + kernel_power_off + kernel_restart + kernel_sendmsg + kernel_sock_shutdown + key_create_or_update + key_put + keyring_alloc + __kfifo_alloc + __kfifo_free + __kfifo_from_user + __kfifo_in + __kfifo_init + __kfifo_out + __kfifo_to_user + kfree + kfree_const + kfree_sensitive + kfree_skb_list_reason + kfree_skb_partial + kfree_skb_reason + kimage_vaddr + kimage_voffset + __kmalloc + kmalloc_caches + kmalloc_large + kmalloc_node_trace + __kmalloc_node_track_caller + kmalloc_trace + kmem_cache_alloc + kmem_cache_create + kmem_cache_create_usercopy + kmem_cache_destroy + kmem_cache_free + kmemdup + kobject_add + kobject_create_and_add + kobject_del + kobject_get + kobject_init + kobject_init_and_add + kobject_put + kobject_uevent + kobject_uevent_env + krealloc + kstrdup + kstrdup_const + kstrndup + kstrtobool + kstrtobool_from_user + kstrtoint + kstrtoint_from_user + kstrtol_from_user + kstrtoll + kstrtou16 + kstrtou16_from_user + kstrtou8 + kstrtouint + kstrtouint_from_user + kstrtoul_from_user + kstrtoull + kstrtoull_from_user + kthread_bind + kthread_bind_mask + kthread_cancel_delayed_work_sync + kthread_cancel_work_sync + kthread_create_on_node + kthread_create_worker + kthread_delayed_work_timer_fn + kthread_destroy_worker + kthread_flush_work + kthread_flush_worker + __kthread_init_worker + kthread_queue_delayed_work + kthread_queue_work + kthread_should_stop + kthread_stop + kthread_worker_fn + ktime_get + ktime_get_coarse_with_offset + ktime_get_mono_fast_ns + ktime_get_raw + ktime_get_raw_ts64 + ktime_get_real_ts64 + ktime_get_seconds + ktime_get_ts64 + ktime_get_with_offset + kvasprintf_const + kvfree + kvfree_call_rcu + kvmalloc_node + linkwatch_fire_event + __list_add_valid + __list_del_entry_valid + list_sort + __local_bh_enable_ip + lock_sock_nested + log_post_read_mmio + log_post_write_mmio + log_read_mmio + log_threaded_irq_wakeup_reason + log_write_mmio + loops_per_jiffy + mas_empty_area_rev + mas_find + mbox_chan_received_data + mbox_client_txdone + mbox_controller_register + mbox_controller_unregister + mbox_free_channel + mbox_request_channel + mbox_send_message + memblock_end_of_DRAM + memchr + memchr_inv + memcmp + memcpy + __memcpy_fromio + __memcpy_toio + memdup_user + memmove + memory_read_from_buffer + memparse + memremap + memscan + mem_section + memset64 + memset + __memset_io + memstart_addr + memunmap + migrate_swap + __migrate_task + misc_deregister + misc_register + __mmap_lock_do_trace_acquire_returned + __mmap_lock_do_trace_released + __mmap_lock_do_trace_start_locking + __mmdrop + mmput + mod_delayed_work_on + mod_node_page_state + mod_timer + __module_get + module_layout + module_put + __module_put_and_kthread_exit + __msecs_to_jiffies + msi_get_virq + msleep + msleep_interruptible + mtree_load + __mutex_init + mutex_is_locked + mutex_lock + mutex_trylock + mutex_unlock + napi_complete_done + napi_disable + napi_enable + napi_gro_flush + napi_gro_receive + __napi_schedule + napi_schedule_prep + __ndisc_fill_addr_option + nd_tbl + neigh_destroy + neigh_lookup + __netdev_alloc_skb + netdev_err + netdev_info + netdev_name_in_use + netdev_printk + netdev_set_default_ethtool_ops + netdev_update_features + netdev_upper_dev_link + netdev_upper_dev_unlink + netdev_warn + netif_carrier_off + netif_carrier_on + netif_device_attach + netif_device_detach + netif_inherit_tso_max + netif_napi_add_weight + __netif_napi_del + netif_receive_skb + netif_receive_skb_list + netif_rx + netif_stacked_transfer_operstate + netif_tx_stop_all_queues + netif_tx_wake_queue + netlink_broadcast + netlink_capable + __netlink_dump_start + __netlink_kernel_create + netlink_kernel_release + netlink_net_capable + netlink_register_notifier + netlink_unicast + netlink_unregister_notifier + net_namespace_list + net_ns_type_operations + net_ratelimit + nf_conntrack_destroy + nf_register_net_hooks + nf_unregister_net_hooks + nla_find + nla_memcpy + __nla_parse + nla_put_64bit + nla_put + nla_put_nohdr + nla_reserve + nla_strscpy + __nla_validate + __nlmsg_put + nonseekable_open + noop_llseek + nr_cpu_ids + nr_ipi_get + nr_irqs + nr_swap_pages + ns_capable + nsecs_to_jiffies + ns_to_kernel_old_timeval + ns_to_timespec64 + n_tty_ioctl_helper + __num_online_cpus + nvmem_cell_get + nvmem_cell_put + nvmem_cell_read + nvmem_cell_read_u32 + nvmem_cell_read_variable_le_u32 + nvmem_cell_write + nvmem_device_put + nvmem_device_read + of_address_to_resource + of_alias_get_id + of_clk_add_provider + of_clk_del_provider + of_clk_get + of_clk_get_by_name + of_clk_get_from_provider + of_clk_src_onecell_get + of_clk_src_simple_get + of_count_phandle_with_args + of_cpu_node_to_id + of_device_get_match_data + of_device_is_available + of_device_is_compatible + of_dma_configure_id + of_dma_controller_free + of_dma_controller_register + of_dma_is_coherent + of_drm_find_bridge + of_drm_find_panel + of_find_backlight_by_node + of_find_compatible_node + of_find_device_by_node + of_find_matching_node_and_match + of_find_node_by_name + of_find_node_by_phandle + of_find_node_opts_by_path + of_find_node_with_property + of_find_property + of_fwnode_ops + of_genpd_add_provider_onecell + __of_get_address + of_get_child_by_name + of_get_cpu_node + of_get_named_gpio_flags + of_get_next_available_child + of_get_next_child + of_get_next_parent + of_get_parent + of_get_property + of_get_regulator_init_data + of_graph_get_next_endpoint + of_graph_get_remote_node + of_graph_get_remote_port_parent + of_icc_get + of_icc_xlate_onecell + of_iomap + of_irq_find_parent + of_irq_get + of_irq_get_byname + of_irq_parse_one + of_machine_is_compatible + of_match_device + of_match_node + of_n_addr_cells + of_n_size_cells + __of_parse_phandle_with_args + of_phandle_iterator_init + of_phandle_iterator_next + of_phy_simple_xlate + of_platform_depopulate + of_platform_device_create + of_platform_populate + 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_u16_array + of_property_read_variable_u32_array + of_property_read_variable_u64_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_lookup + of_root + of_thermal_get_trip_points + of_translate_address + on_each_cpu_cond_mask + oops_in_progress + out_of_line_wait_on_bit + out_of_line_wait_on_bit_timeout + overflowuid + page_endio + page_pool_alloc_pages + page_pool_create + page_pool_destroy + page_pool_put_defragged_page + panic + panic_notifier_list + pci_alloc_irq_vectors_affinity + pci_bus_type + pci_device_group + pci_disable_device + pci_find_ext_capability + pci_free_irq_vectors + pci_host_probe + pci_irq_vector + pci_msi_create_irq_domain + pci_msi_mask_irq + pci_msi_unmask_irq + pci_read_config_dword + pci_read_config_word + __pci_register_driver + pci_set_master + pci_unregister_driver + pci_write_config_dword + pci_write_config_word + __percpu_down_read + percpu_down_write + percpu_free_rwsem + __percpu_init_rwsem + __per_cpu_offset + percpu_up_write + perf_event_create_kernel_counter + perf_event_disable + perf_event_enable + perf_event_release_kernel + perf_event_update_userpage + perf_pmu_migrate_context + perf_pmu_register + perf_pmu_unregister + perf_trace_buf_alloc + perf_trace_run_bpf_submit + pfn_is_map_memory + phy_exit + phy_init + phy_power_off + phy_power_on + phy_set_mode_ext + pick_migrate_task + pid_task + pinctrl_dev_get_drvdata + pinctrl_enable + pinctrl_lookup_state + pinctrl_pm_select_default_state + pinctrl_pm_select_sleep_state + pinctrl_put + pinctrl_select_state + pin_user_pages + pin_user_pages_fast + pin_user_pages_remote + platform_bus_type + platform_device_add + platform_device_add_data + platform_device_add_resources + platform_device_alloc + platform_device_del + platform_device_put + platform_device_register + platform_device_register_full + platform_device_unregister + __platform_driver_probe + __platform_driver_register + platform_driver_unregister + platform_find_device_by_driver + platform_get_irq + platform_get_irq_byname + platform_get_irq_byname_optional + platform_get_irq_optional + platform_get_resource + platform_get_resource_byname + platform_msi_domain_alloc_irqs + platform_msi_domain_free_irqs + pm_genpd_add_subdomain + pm_genpd_init + pm_genpd_remove + pm_get_active_wakeup_sources + __pm_relax + pm_relax + pm_runtime_allow + __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_stay_awake + pm_stay_awake + pm_system_wakeup + pm_wakeup_dev_event + pm_wakeup_ws_event + power_supply_changed + power_supply_get_by_name + power_supply_get_drvdata + power_supply_get_property + power_supply_put + power_supply_register + power_supply_reg_notifier + power_supply_set_property + power_supply_unreg_notifier + preempt_schedule + preempt_schedule_notrace + prepare_to_wait_event + print_hex_dump + _printk + _printk_deferred + proc_create + proc_create_data + proc_create_net_data + proc_create_net_single + proc_create_seq_private + proc_create_single_data + proc_dointvec_jiffies + proc_dointvec_minmax + proc_doulongvec_minmax + _proc_mkdir + proc_mkdir + proc_mkdir_data + proc_remove + proc_set_user + proto_register + proto_unregister + __pskb_copy_fclone + pskb_expand_head + __pskb_pull_tail + pskb_put + ___pskb_trim + pstore_register + pstore_unregister + put_cmsg + put_device + put_disk + __put_net + put_pid + __put_task_struct + put_unused_fd + put_user_ifreq + put_vaddr_frames + pwm_apply_state + pwmchip_add + pwmchip_remove + queue_delayed_work_on + queue_work_on + radix_tree_delete + radix_tree_insert + radix_tree_lookup + radix_tree_tagged + ___ratelimit + raw_notifier_call_chain + raw_notifier_chain_register + raw_notifier_chain_unregister + _raw_read_lock + _raw_read_lock_bh + _raw_read_lock_irqsave + _raw_read_unlock + _raw_read_unlock_bh + _raw_read_unlock_irqrestore + _raw_spin_lock + _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_trylock_bh + _raw_spin_unlock + _raw_spin_unlock_bh + _raw_spin_unlock_irq + _raw_spin_unlock_irqrestore + _raw_write_lock + _raw_write_lock_bh + _raw_write_lock_irqsave + _raw_write_unlock + _raw_write_unlock_bh + _raw_write_unlock_irqrestore + rb_erase + __rb_erase_color + rb_first + rb_first_postorder + __rb_insert_augmented + rb_insert_color + rb_next + rb_next_postorder + rb_prev + rb_replace_node + rcu_barrier + __rcu_read_lock + __rcu_read_unlock + rcuwait_wake_up + refcount_dec_if_one + refcount_warn_saturate + __refrigerator + regcache_cache_only + regcache_mark_dirty + regcache_sync + __register_blkdev + __register_chrdev + register_chrdev_region + register_die_notifier + register_inet6addr_notifier + register_inetaddr_notifier + register_kprobe + register_module_notifier + register_netdev + register_netdevice + register_netdevice_notifier + register_net_sysctl + register_oom_notifier + register_pernet_device + register_pernet_subsys + register_pm_notifier + register_reboot_notifier + __register_rpmsg_driver + register_shrinker + register_syscore_ops + register_sysctl_table + register_virtio_device + register_virtio_driver + regmap_bulk_read + regmap_bulk_write + regmap_field_read + regmap_field_update_bits_base + regmap_raw_read + regmap_raw_write + regmap_read + regmap_update_bits_base + regmap_write + regulator_bulk_disable + regulator_bulk_enable + regulator_count_voltages + regulator_disable + regulator_disable_regmap + regulator_enable + regulator_enable_regmap + regulator_get + regulator_get_current_limit_regmap + regulator_get_mode + 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_range + regulator_notifier_call_chain + regulator_put + regulator_set_active_discharge_regmap + regulator_set_current_limit + regulator_set_current_limit_regmap + regulator_set_load + regulator_set_mode + regulator_set_voltage + regulator_set_voltage_sel_regmap + release_firmware + __release_region + release_sock + remap_pfn_range + remap_vmalloc_range + remove_proc_entry + remove_proc_subtree + remove_wait_queue + request_firmware + request_firmware_nowait + __request_module + __request_percpu_irq + __request_region + request_threaded_irq + resched_curr + reset_control_assert + reset_control_deassert + reset_control_reset + rhashtable_destroy + rhashtable_free_and_destroy + rhashtable_init + rhashtable_insert_slow + rhashtable_walk_enter + rhashtable_walk_exit + rhashtable_walk_next + rhashtable_walk_start_check + rhashtable_walk_stop + rhltable_init + __rht_bucket_nested + rht_bucket_nested + rht_bucket_nested_insert + root_task_group + round_jiffies + round_jiffies_relative + round_jiffies_up + rproc_add + rproc_add_subdev + rproc_alloc + rproc_boot + rproc_del + rproc_free + rproc_get_by_phandle + rproc_put + rproc_remove_subdev + rproc_report_crash + rproc_shutdown + rps_needed + rtc_time64_to_tm + rtc_tm_to_time64 + rtc_update_irq + rtc_valid_tm + rtnl_is_locked + rtnl_link_register + rtnl_link_unregister + rtnl_lock + rtnl_register_module + rtnl_unlock + rtnl_unregister + rtnl_unregister_all + runqueues + sched_clock + sched_feat_keys + sched_setattr + sched_setattr_nocheck + sched_set_fifo + sched_set_fifo_low + sched_set_normal + sched_setscheduler + sched_setscheduler_nocheck + sched_show_task + sched_uclamp_used + schedule + schedule_timeout + schedule_timeout_interruptible + schedule_timeout_uninterruptible + scmi_driver_register + scmi_driver_unregister + scmi_protocol_register + scnprintf + scsi_autopm_get_device + scsi_autopm_put_device + scsi_device_get + scsi_device_put + sdio_claim_host + sdio_claim_irq + sdio_disable_func + sdio_enable_func + sdio_readb + sdio_readsb + sdio_register_driver + sdio_release_host + sdio_release_irq + sdio_set_block_size + sdio_unregister_driver + sdio_writeb + sdio_writesb + security_sk_classify_flow + security_sk_clone + security_sock_graft + select_fallback_rq + send_sig + seq_hex_dump + seq_hlist_next + seq_hlist_start_head + seq_lseek + seq_open + seq_printf + seq_putc + seq_puts + seq_read + seq_release + seq_release_private + seq_write + serdev_device_close + __serdev_device_driver_register + serdev_device_get_tiocm + serdev_device_open + serdev_device_set_baudrate + serdev_device_set_flow_control + serdev_device_set_tiocm + serdev_device_wait_until_sent + serdev_device_write_buf + serdev_device_write_flush + set_capacity + set_capacity_and_notify + set_cpus_allowed_ptr + set_normalized_timespec64 + set_page_dirty_lock + __SetPageMovable + set_task_cpu + setup_udp_tunnel_sock + set_user_nice + sg_alloc_table + sg_alloc_table_from_pages_segment + sg_copy_from_buffer + sg_copy_to_buffer + sg_free_table + sg_init_one + sg_init_table + sg_miter_next + sg_miter_start + sg_miter_stop + sg_nents + sg_next + __sg_page_iter_next + __sg_page_iter_start + shmem_file_setup + si_mem_available + si_meminfo + 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_open_size + single_release + sk_alloc + skb_add_rx_frag + skb_checksum_help + skb_clone + skb_clone_sk + skb_complete_wifi_ack + skb_copy + skb_copy_bits + skb_copy_datagram_iter + skb_copy_expand + skb_cow_data + skb_dequeue + skb_ensure_writable + skb_free_datagram + __skb_get_hash + __skb_gso_segment + skb_pull + skb_pull_data + skb_pull_rcsum + skb_push + skb_put + skb_queue_head + skb_queue_purge + skb_queue_tail + skb_realloc_headroom + skb_recv_datagram + skb_scrub_packet + skb_set_owner_w + skb_to_sgvec + skb_trim + skb_try_coalesce + skb_tstamp_tx + skb_unlink + sk_common_release + sk_error_report + sk_filter_trim_cap + sk_free + __sk_receive_skb + sk_reset_timer + sk_setup_caps + sk_stop_timer + smp_call_function + smp_call_function_single + smp_call_function_single_async + snd_ctl_boolean_mono_info + snd_jack_set_key + snd_pcm_format_physical_width + snd_pcm_format_width + snd_pcm_hw_constraint_integer + snd_pcm_hw_constraint_minmax + snd_pcm_hw_constraint_step + snd_pcm_lib_free_pages + snd_pcm_lib_malloc_pages + snd_pcm_period_elapsed + snd_pcm_set_ops + snd_soc_add_component_controls + snd_soc_bytes_tlv_callback + snd_soc_card_jack_new + snd_soc_component_exit_regmap + snd_soc_component_init_regmap + snd_soc_component_read + snd_soc_component_set_jack + snd_soc_component_update_bits + snd_soc_component_write + snd_soc_dai_set_sysclk + snd_soc_dapm_add_routes + snd_soc_dapm_disable_pin + snd_soc_dapm_get_enum_double + snd_soc_dapm_get_volsw + snd_soc_dapm_new_controls + snd_soc_dapm_new_widgets + snd_soc_dapm_put_enum_double + snd_soc_dapm_put_volsw + snd_soc_dapm_sync + snd_soc_get_volsw + snd_soc_info_enum_double + snd_soc_info_volsw + snd_soc_jack_report + snd_soc_new_compress + snd_soc_of_get_dai_link_codecs + snd_soc_put_volsw + snd_soc_register_component + snd_soc_rtdcom_lookup + snd_soc_set_runtime_hwparams + snd_soc_unregister_component + snprintf + soc_device_register + soc_device_unregister + sock_alloc_send_pskb + sock_cmsg_send + sock_common_getsockopt + sock_common_recvmsg + sock_common_setsockopt + __sock_create + sock_create_kern + sock_diag_register + sock_diag_save_cookie + sock_diag_unregister + sock_efree + sockfd_lookup + sock_gettstamp + sock_i_ino + sock_init_data + sock_i_uid + sock_no_accept + sock_no_bind + sock_no_connect + sock_no_getname + sock_no_ioctl + sock_no_listen + sock_no_mmap + sock_no_recvmsg + sock_no_sendmsg + sock_no_sendpage + sock_no_shutdown + sock_no_socketpair + __sock_queue_rcv_skb + sock_queue_rcv_skb_reason + __sock_recv_cmsgs + sock_recv_errqueue + sock_recvmsg + __sock_recv_timestamp + __sock_recv_wifi_status + sock_register + sock_release + sock_rfree + __sock_tx_timestamp + sock_unregister + sock_wmalloc + sort + __spi_alloc_controller + spi_bus_type + spi_controller_resume + spi_controller_suspend + spi_finalize_current_transfer + __spi_register_driver + spi_setup + spi_sync + spmi_controller_add + spmi_controller_alloc + spmi_controller_remove + __spmi_driver_register + sprintf + sprint_symbol + srcu_init_notifier_head + srcu_notifier_call_chain + srcu_notifier_chain_register + srcu_notifier_chain_unregister + __srcu_read_lock + __srcu_read_unlock + sscanf + __stack_chk_fail + stack_trace_print + stack_trace_save + static_key_slow_dec + static_key_slow_inc + stop_one_cpu + stop_one_cpu_nowait + stpcpy + strcasecmp + strchr + strcmp + strcpy + strcspn + stream_open + strim + strlcat + strlcpy + strlen + strncasecmp + strncat + strncmp + strncpy + strncpy_from_user + strnlen + strnstr + strpbrk + strrchr + strscpy + strscpy_pad + strsep + strspn + strstr + suspend_set_ops + __sw_hweight16 + __sw_hweight32 + __sw_hweight64 + __sw_hweight8 + sync_blockdev + sync_file_create + sync_file_get_fence + synchronize_irq + synchronize_net + synchronize_rcu + synchronize_srcu + syscon_node_to_regmap + sysctl_vals + sysfs_create_bin_file + sysfs_create_file_ns + sysfs_create_group + sysfs_create_link + sysfs_emit + sysfs_notify + sysfs_remove_bin_file + sysfs_remove_file_ns + sysfs_remove_group + sysfs_remove_link + sysfs_streq + sysrq_mask + system_freezable_power_efficient_wq + system_freezable_wq + system_highpri_wq + system_long_wq + system_power_efficient_wq + system_unbound_wq + system_wq + sys_tz + task_active_pid_ns + __tasklet_hi_schedule + tasklet_init + tasklet_kill + __tasklet_schedule + tasklet_setup + tasklet_unlock_wait + tasklist_lock + __task_pid_nr_ns + __task_rq_lock + thermal_cooling_device_unregister + thermal_of_cooling_device_register + thermal_pressure + thermal_zone_device_update + thermal_zone_get_temp + thermal_zone_get_zone_by_name + timecounter_init + timecounter_read + timer_unstable_counter_workaround + topology_clear_scale_freq_source + topology_update_thermal_pressure + _totalram_pages + __trace_bprintk + trace_event_buffer_commit + trace_event_buffer_reserve + trace_event_printf + trace_event_raw_init + trace_event_reg + trace_handle_return + __traceiter_android_rvh_commit_creds + __traceiter_android_rvh_exit_creds + __traceiter_android_rvh_override_creds + __traceiter_android_rvh_revert_creds + __traceiter_android_rvh_selinux_avc_insert + __traceiter_android_rvh_selinux_avc_node_delete + __traceiter_android_rvh_selinux_avc_node_replace + __traceiter_android_rvh_selinux_avc_lookup + __traceiter_android_rvh_selinux_is_initialized + __traceiter_android_rvh_set_module_permit_before_init + __traceiter_android_rvh_set_module_permit_after_init + __traceiter_android_rvh_set_module_core_rw_nx + __traceiter_android_rvh_set_module_init_rw_nx + __traceiter_android_vh_check_mmap_file + __traceiter_android_vh_check_file_open + __traceiter_android_vh_check_bpf_syscall + __traceiter_android_vh_ufs_clock_scaling + __traceiter_gpu_mem_total + __traceiter_mmap_lock_acquire_returned + __traceiter_mmap_lock_released + __traceiter_mmap_lock_start_locking + trace_output_call + __tracepoint_android_rvh_commit_creds + __tracepoint_android_rvh_exit_creds + __tracepoint_android_rvh_override_creds + __tracepoint_android_rvh_revert_creds + __tracepoint_android_rvh_selinux_avc_insert + __tracepoint_android_rvh_selinux_avc_node_delete + __tracepoint_android_rvh_selinux_avc_node_replace + __tracepoint_android_rvh_selinux_avc_lookup + __tracepoint_android_rvh_selinux_is_initialized + __tracepoint_android_rvh_set_module_permit_before_init + __tracepoint_android_rvh_set_module_permit_after_init + __tracepoint_android_rvh_set_module_core_rw_nx + __tracepoint_android_rvh_set_module_init_rw_nx + __tracepoint_android_vh_check_mmap_file + __tracepoint_android_vh_check_file_open + __tracepoint_android_vh_check_bpf_syscall + __tracepoint_android_vh_ufs_clock_scaling + __tracepoint_gpu_mem_total + __tracepoint_mmap_lock_acquire_returned + __tracepoint_mmap_lock_released + __tracepoint_mmap_lock_start_locking + tracepoint_probe_register + tracepoint_probe_unregister + trace_print_array_seq + trace_print_flags_seq + trace_print_symbols_seq + __trace_puts + trace_raw_output_prep + trace_seq_printf + trace_seq_putc + __trace_trigger_soft_disabled + tracing_off + try_module_get + try_wait_for_completion + __tty_alloc_driver + tty_driver_flush_buffer + tty_driver_kref_put + tty_encode_baud_rate + tty_flip_buffer_push + tty_get_char_size + tty_hangup + __tty_insert_flip_char + tty_insert_flip_string_fixed_flag + tty_kref_put + tty_ldisc_deref + tty_ldisc_flush + tty_ldisc_ref + tty_mode_ioctl + tty_port_close + tty_port_destroy + tty_port_hangup + tty_port_init + tty_port_install + tty_port_open + tty_port_put + tty_port_register_device + tty_port_tty_get + tty_port_tty_hangup + tty_port_tty_wakeup + tty_register_driver + tty_register_ldisc + tty_set_termios + tty_standard_install + tty_std_termios + tty_termios_baud_rate + tty_termios_copy_hw + tty_termios_encode_baud_rate + tty_unregister_device + tty_unregister_driver + tty_unregister_ldisc + tty_unthrottle + tty_vhangup + tty_wakeup + uclamp_eff_value + __udelay + udp6_set_csum + udp_set_csum + udp_sock_create4 + udp_sock_create6 + udp_tunnel6_xmit_skb + udp_tunnel_sock_release + udp_tunnel_xmit_skb + unlock_page + unmap_mapping_range + unpin_user_page + unregister_blkdev + __unregister_chrdev + unregister_chrdev_region + unregister_die_notifier + unregister_inet6addr_notifier + unregister_inetaddr_notifier + unregister_netdev + unregister_netdevice_many + unregister_netdevice_notifier + unregister_netdevice_queue + unregister_net_sysctl_table + unregister_oom_notifier + unregister_pernet_device + unregister_pernet_subsys + unregister_pm_notifier + unregister_reboot_notifier + unregister_rpmsg_driver + unregister_shrinker + unregister_sysctl_table + unregister_virtio_device + unregister_virtio_driver + up + update_devfreq + update_rq_clock + up_read + up_write + usb_add_function + usb_add_gadget_udc + usb_add_hcd + usb_alloc_coherent + usb_alloc_urb + usb_anchor_urb + usb_assign_descriptors + usb_autopm_get_interface + usb_autopm_get_interface_async + usb_autopm_get_interface_no_resume + usb_autopm_put_interface + usb_autopm_put_interface_async + usb_clear_halt + usb_control_msg + usb_control_msg_recv + usb_copy_descriptors + usb_create_hcd + usb_create_shared_hcd + usb_debug_root + usb_del_gadget_udc + usb_deregister + usb_disabled + usb_driver_claim_interface + usb_driver_release_interface + usb_ep_alloc_request + usb_ep_autoconfig + usb_ep_dequeue + usb_ep_disable + usb_ep_enable + usb_ep_free_request + usb_ep_queue + usb_ep_set_halt + usb_ep_set_maxpacket_limit + usb_find_common_endpoints + usb_free_all_descriptors + usb_free_coherent + usb_free_urb + usb_function_register + usb_function_unregister + usb_gstrings_attach + usb_ifnum_to_if + usb_interface_id + usb_kill_urb + usb_match_id + usb_match_one_id + usb_poison_urb + usb_put_dev + usb_put_function_instance + usb_put_hcd + usb_put_intf + usb_register_driver + usb_remove_hcd + usb_root_hub_lost_power + usb_show_dynids + usb_speed_string + usb_store_new_id + usb_string_id + usb_submit_urb + usb_unpoison_urb + __usecs_to_jiffies + usleep_range_state + v4l2_compat_ioctl32 + v4l2_device_register + v4l2_device_register_subdev + __v4l2_device_register_subdev_nodes + v4l2_device_unregister + v4l2_device_unregister_subdev + v4l2_fh_add + v4l2_fh_del + v4l2_fh_exit + v4l2_fh_init + v4l2_fh_is_singular + v4l2_fh_open + v4l2_i2c_subdev_init + v4l2_m2m_buf_queue + v4l2_m2m_buf_remove + v4l2_m2m_ctx_init + v4l2_m2m_ctx_release + v4l2_m2m_fop_mmap + v4l2_m2m_fop_poll + v4l2_m2m_get_curr_priv + v4l2_m2m_get_vq + v4l2_m2m_init + v4l2_m2m_ioctl_create_bufs + v4l2_m2m_ioctl_dqbuf + v4l2_m2m_ioctl_expbuf + v4l2_m2m_ioctl_prepare_buf + v4l2_m2m_ioctl_qbuf + v4l2_m2m_ioctl_querybuf + v4l2_m2m_ioctl_reqbufs + v4l2_m2m_ioctl_streamoff + v4l2_m2m_ioctl_streamon + v4l2_m2m_job_finish + v4l2_m2m_next_buf + v4l2_m2m_qbuf + v4l2_m2m_register_media_controller + v4l2_m2m_release + v4l2_m2m_request_queue + v4l2_m2m_unregister_media_controller + v4l2_src_change_event_subscribe + v4l2_subdev_call_wrappers + v4l2_subdev_init + vchan_dma_desc_free_list + vchan_init + vchan_tx_desc_free + vchan_tx_submit + verify_pkcs7_signature + vfree + video_devdata + video_device_alloc + video_device_release + video_device_release_empty + video_ioctl2 + __video_register_device + video_unregister_device + virtqueue_add_inbuf + virtqueue_add_outbuf + virtqueue_detach_unused_buf + virtqueue_get_buf + virtqueue_get_vring_size + virtqueue_kick_prepare + virtqueue_notify + vlan_dev_vlan_id + vlan_filter_drop_vids + vlan_filter_push_vids + vlan_ioctl_set + vlan_uses_dev + vlan_vid_add + vlan_vid_del + vmalloc + vmalloc_to_page + vmalloc_to_pfn + vmalloc_user + vmap + vm_event_states + vmf_insert_pfn_prot + vm_get_page_prot + vm_map_ram + vm_node_stat + vm_unmap_ram + vm_zone_stat + vprintk + vring_del_virtqueue + vring_interrupt + vring_new_virtqueue + vscnprintf + vsnprintf + vsprintf + vunmap + vzalloc + wait_for_completion + wait_for_completion_interruptible + wait_for_completion_interruptible_timeout + wait_for_completion_killable + wait_for_completion_killable_timeout + wait_for_completion_timeout + wait_woken + __wake_up + wake_up_bit + __wake_up_locked + wake_up_process + wakeup_source_add + wakeup_source_create + wakeup_source_destroy + wakeup_source_register + wakeup_source_remove + wakeup_source_unregister + __wake_up_sync_key + __warn_printk + watchdog_init_timeout + watchdog_set_restart_priority + wireless_nlevent_flush + wireless_send_event + woken_wake_function + work_busy + ww_mutex_lock + ww_mutex_trylock + ww_mutex_unlock + __xa_alloc + xa_erase + zlib_deflate + zlib_deflateEnd + zlib_deflateInit2 + zlib_deflateReset + zlib_deflate_workspacesize + zlib_inflate + zlib_inflateIncomp + zlib_inflateInit2 + zlib_inflateReset + zlib_inflate_workspacesize diff --git a/android/abi_gki_aarch64_pixel b/android/abi_gki_aarch64_pixel index 92f4f0be2ee2..23f1b9ff41e3 100644 --- a/android/abi_gki_aarch64_pixel +++ b/android/abi_gki_aarch64_pixel @@ -990,6 +990,7 @@ kthread_bind_mask kthread_cancel_delayed_work_sync kthread_complete_and_exit + kthread_create_on_cpu kthread_create_on_node kthread_create_worker kthread_delayed_work_timer_fn @@ -1304,6 +1305,7 @@ pm_runtime_forbid pm_runtime_force_resume pm_runtime_force_suspend + pm_runtime_get_if_active __pm_runtime_idle pm_runtime_irq_safe __pm_runtime_resume @@ -1682,6 +1684,7 @@ strspn strstr subsys_system_register + suspend_set_ops __sw_hweight32 __sw_hweight64 sync_blockdev @@ -1727,6 +1730,8 @@ tcpm_pd_hard_reset tcpm_pd_receive tcpm_pd_transmit_complete + tcpm_port_clean + tcpm_port_is_toggling tcpm_sink_frs tcpm_sourcing_vbus tcpm_vbus_change @@ -1801,6 +1806,8 @@ tty_insert_flip_string_fixed_flag tty_kref_put tty_port_tty_get + typec_mux_get_drvdata + typec_mux_register typec_switch_get_drvdata typec_switch_register typec_switch_unregister @@ -1881,6 +1888,7 @@ usb_role_switch_unregister usb_speed_string usb_string_id + usb_udc_vbus_handler usb_unregister_notify __usecs_to_jiffies usleep_range_state @@ -1967,6 +1975,7 @@ vmap vmf_insert_pfn_prot vprintk + vprintk_emit vring_del_virtqueue vring_interrupt vring_new_virtqueue diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index ae5ac1ad746b..38f7c9b23eed 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -1843,6 +1843,8 @@ irq_set_chained_handler_and_data irq_set_chip_and_handler_name irq_set_chip_data + __irq_set_handler + irq_set_handler_data irq_set_irqchip_state irq_set_irq_type irq_set_irq_wake @@ -2105,6 +2107,7 @@ mempool_free mempool_free_slab memremap + memremap_pages memscan mem_section memset64 @@ -2112,6 +2115,7 @@ __memset_io memstart_addr memunmap + memunmap_pages migrate_pages migrate_swap __migrate_task @@ -2336,6 +2340,7 @@ of_graph_parse_endpoint of_hwspin_lock_get_id of_icc_get + of_icc_get_from_provider of_icc_xlate_onecell of_iomap of_irq_find_parent @@ -2345,7 +2350,6 @@ of_machine_is_compatible of_match_device of_match_node - of_mdiobus_register of_modalias_node of_n_addr_cells of_node_name_eq @@ -3169,6 +3173,8 @@ smp_call_function smp_call_function_single smp_call_function_single_async + snd_ctl_remove + snd_hwdep_new snd_info_create_card_entry snd_info_create_module_entry snd_info_free_entry @@ -3177,6 +3183,9 @@ snd_jack_set_key snd_pcm_format_width _snd_pcm_hw_params_any + snd_pcm_set_managed_buffer + snd_pcm_std_chmaps + snd_pcm_stop snd_soc_add_component_controls snd_soc_card_get_kcontrol snd_soc_card_jack_new @@ -3241,6 +3250,7 @@ sock_edemux sock_efree sockfd_lookup + sock_gen_put sock_gettstamp sock_i_ino sock_init_data @@ -3406,6 +3416,7 @@ tasklist_lock __task_pid_nr_ns __task_rq_lock + task_rq_lock tcp_hashinfo thermal_cdev_update thermal_cooling_device_register @@ -3977,6 +3988,7 @@ v4l2_fh_del v4l2_fh_exit v4l2_fh_init + v4l2_fh_is_singular v4l2_fh_open v4l2_fh_release v4l2_m2m_ctx_init @@ -4079,9 +4091,11 @@ vm_insert_page vm_iomap_memory vm_map_pages + vm_map_ram vm_mmap vm_munmap vm_node_stat + vm_unmap_ram vm_zone_stat vprintk vring_create_virtqueue diff --git a/android/abi_gki_aarch64_xiaomi b/android/abi_gki_aarch64_xiaomi new file mode 100644 index 000000000000..1bacdc22f885 --- /dev/null +++ b/android/abi_gki_aarch64_xiaomi @@ -0,0 +1,131 @@ +[abi_symbol_list] + proc_mkdir_data + proc_create_seq_private + i2c_smbus_read_byte_data + i2c_smbus_write_byte_data + blk_execute_rq + blk_rq_map_kern + scsi_device_lookup + scsi_host_lookup + scsi_host_put + ufshcd_read_desc_param + utf16s_to_utf8s + async_schedule_node + blk_mq_alloc_tag_set + blk_mq_init_queue + blk_mq_tagset_busy_iter + bsg_job_done + bsg_remove_queue + bsg_setup_queue + dev_pm_opp_remove + scsi_add_host_with_dma + scsi_block_requests + scsi_dma_unmap + scsi_is_host_device + scsi_remove_host + scsi_report_bus_reset + scsi_scan_host + scsi_unblock_requests + scsi_change_queue_depth + scsi_print_command + scsi_dma_map + scsi_host_alloc + scsi_normalize_sense + sg_copy_from_buffer + sg_copy_to_buffer + ufshcd_alloc_host + ufshcd_config_pwr_mode + ufshcd_dealloc_host + ufshcd_hba_enable + ufshcd_make_hba_operational + ufshcd_query_attr_retry + ufshcd_query_flag_retry + ufshcd_update_evt_hist + wait_for_completion_io_timeout + __scsi_add_device + blk_mq_free_tag_set + blk_queue_update_dma_alignment + blk_queue_update_dma_pad + mempool_resize + mempool_alloc_pages + mempool_free_pages + regmap_raw_write_async + snd_soc_bytes_tlv_callback + regmap_async_complete + snd_compr_stop_error + snd_soc_component_disable_pin + snd_soc_component_force_enable_pin + snd_pcm_format_physical_width + snd_pcm_hw_constraint_list + regmap_multi_reg_write_bypassed + snd_ctl_boolean_mono_info + snd_soc_put_volsw_range + snd_soc_get_volsw_range + snd_soc_info_volsw_range + regmap_raw_write + regcache_drop_region + regmap_raw_read + regmap_multi_reg_write + regulator_bulk_enable + __blk_mq_end_request + balance_dirty_pages_ratelimited + bdi_alloc + bdi_put + bdi_register + blk_mq_freeze_queue + blk_mq_quiesce_queue + blk_mq_start_request + blk_mq_unfreeze_queue + blk_mq_unquiesce_queue + blk_queue_write_cache + blk_update_request + blkdev_get_by_dev + blkdev_get_by_path + blkdev_put + deactivate_locked_super + fixed_size_llseek + generic_shutdown_super + kmsg_dump_get_buffer + kmsg_dump_register + kmsg_dump_rewind + kmsg_dump_unregister + ktime_get_coarse_real_ts64 + lockref_get + logfc + lookup_bdev + name_to_dev_t + nvmem_register + nvmem_unregister + proc_create_single_data + read_cache_page + set_disk_ro + set_page_dirty + sget_fc + simple_strtoul + sync_blockdev + wait_for_device_probe + blk_mq_alloc_sq_tag_set + __traceiter_android_vh_binder_wait_for_work + __tracepoint_android_vh_binder_wait_for_work + __traceiter_android_vh_free_task + __tracepoint_android_vh_free_task + jiffies_64 + __traceiter_android_rvh_after_enqueue_task + __traceiter_android_rvh_after_dequeue_task + __tracepoint_android_rvh_after_enqueue_task + __tracepoint_android_rvh_after_dequeue_task + __traceiter_android_rvh_check_preempt_tick + __traceiter_android_rvh_dequeue_entity + __traceiter_android_rvh_enqueue_entity + __tracepoint_android_rvh_check_preempt_tick + __tracepoint_android_rvh_dequeue_entity + __tracepoint_android_rvh_enqueue_entity + console_printk + __traceiter_android_vh_binder_transaction_init + __tracepoint_android_vh_binder_transaction_init + drm_get_connector_type_name + gpio_request_array + wakeup_sources_read_lock + wakeup_sources_read_unlock + wakeup_sources_walk_start + wakeup_sources_walk_next diff --git a/android/abi_gki_protected_exports_aarch64 b/android/abi_gki_protected_exports_aarch64 index cc1bef8b6c0f..9fb9385e392c 100644 --- a/android/abi_gki_protected_exports_aarch64 +++ b/android/abi_gki_protected_exports_aarch64 @@ -1,14 +1,9 @@ -__cfg80211_alloc_event_skb -__cfg80211_alloc_reply_skb -__cfg80211_radar_event -__cfg80211_send_event_skb __hci_cmd_send __hci_cmd_sync __hci_cmd_sync_ev __hci_cmd_sync_sk __hci_cmd_sync_status __hci_cmd_sync_status_sk -__ieee80211_schedule_txq __nfc_alloc_vendor_cmd_reply_skb alloc_can_err_skb alloc_can_skb @@ -18,7 +13,6 @@ alloc_canxl_skb arc4_crypt arc4_setkey baswap -bridge_tunnel_header bt_accept_dequeue bt_accept_enqueue bt_accept_unlink @@ -83,105 +77,8 @@ can_rx_unregister can_send can_skb_get_frame_len can_sock_destruct -cfg80211_any_usable_channels -cfg80211_assoc_comeback -cfg80211_assoc_failure -cfg80211_auth_timeout -cfg80211_background_cac_abort -cfg80211_bss_color_notify -cfg80211_bss_flush -cfg80211_bss_iter -cfg80211_cac_event -cfg80211_calculate_bitrate -cfg80211_ch_switch_notify -cfg80211_ch_switch_started_notify -cfg80211_chandef_compatible -cfg80211_chandef_create -cfg80211_chandef_dfs_required -cfg80211_chandef_usable -cfg80211_chandef_valid -cfg80211_check_combinations -cfg80211_check_station_change -cfg80211_classify8021d -cfg80211_conn_failed -cfg80211_connect_done -cfg80211_control_port_tx_status -cfg80211_cqm_beacon_loss_notify -cfg80211_cqm_pktloss_notify -cfg80211_cqm_rssi_notify -cfg80211_cqm_txe_notify -cfg80211_crit_proto_stopped -cfg80211_del_sta_sinfo -cfg80211_disconnected -cfg80211_external_auth_request -cfg80211_find_elem_match -cfg80211_find_vendor_elem -cfg80211_free_nan_func -cfg80211_ft_event -cfg80211_get_bss -cfg80211_get_drvinfo -cfg80211_get_ies_channel_number -cfg80211_get_iftype_ext_capa -cfg80211_get_p2p_attr -cfg80211_get_station -cfg80211_gtk_rekey_notify -cfg80211_ibss_joined -cfg80211_iftype_allowed -cfg80211_inform_bss_data -cfg80211_inform_bss_frame_data -cfg80211_is_element_inherited -cfg80211_iter_combinations -cfg80211_merge_profile -cfg80211_mgmt_tx_status_ext -cfg80211_michael_mic_failure -cfg80211_nan_func_terminated -cfg80211_nan_match -cfg80211_new_sta -cfg80211_notify_new_peer_candidate -cfg80211_pmksa_candidate_notify -cfg80211_pmsr_complete -cfg80211_pmsr_report -cfg80211_port_authorized -cfg80211_probe_status -cfg80211_put_bss -cfg80211_ready_on_channel -cfg80211_ref_bss -cfg80211_reg_can_beacon -cfg80211_reg_can_beacon_relax -cfg80211_register_netdevice -cfg80211_remain_on_channel_expired -cfg80211_report_obss_beacon_khz -cfg80211_report_wowlan_wakeup -cfg80211_roamed -cfg80211_rx_assoc_resp -cfg80211_rx_control_port -cfg80211_rx_mgmt_ext -cfg80211_rx_mlme_mgmt -cfg80211_rx_spurious_frame -cfg80211_rx_unexpected_4addr_frame -cfg80211_rx_unprot_mlme_mgmt -cfg80211_scan_done -cfg80211_sched_scan_results -cfg80211_sched_scan_stopped -cfg80211_sched_scan_stopped_locked -cfg80211_send_layer2_update -cfg80211_shutdown_all_interfaces -cfg80211_sinfo_alloc_tid_stats -cfg80211_sta_opmode_change_notify -cfg80211_stop_iface -cfg80211_tdls_oper_request -cfg80211_tx_mgmt_expired -cfg80211_tx_mlme_mgmt -cfg80211_unlink_bss -cfg80211_unregister_wdev -cfg80211_update_owe_info_event -cfg80211_valid_disable_subchannel_bitmap -cfg80211_vendor_cmd_get_sender -cfg80211_vendor_cmd_reply close_candev free_candev -freq_reg_info -get_wiphy_regdom h4_recv_buf hci_alloc_dev_priv hci_cmd_sync @@ -210,151 +107,6 @@ hci_uart_unregister_device hci_unregister_cb hci_unregister_dev hidp_hid_driver -ieee80211_alloc_hw_nm -ieee80211_amsdu_to_8023s -ieee80211_ap_probereq_get -ieee80211_ave_rssi -ieee80211_beacon_cntdwn_is_complete -ieee80211_beacon_get_template -ieee80211_beacon_get_tim -ieee80211_beacon_loss -ieee80211_beacon_set_cntdwn -ieee80211_beacon_update_cntdwn -ieee80211_bss_get_elem -ieee80211_calc_rx_airtime -ieee80211_calc_tx_airtime -ieee80211_chandef_to_operating_class -ieee80211_channel_switch_disconnect -ieee80211_channel_to_freq_khz -ieee80211_chswitch_done -ieee80211_color_change_finish -ieee80211_connection_loss -ieee80211_cqm_beacon_loss_notify -ieee80211_cqm_rssi_notify -ieee80211_csa_finish -ieee80211_ctstoself_duration -ieee80211_ctstoself_get -ieee80211_data_to_8023_exthdr -ieee80211_disable_rssi_reports -ieee80211_disconnect -ieee80211_enable_rssi_reports -ieee80211_find_sta -ieee80211_find_sta_by_ifaddr -ieee80211_find_sta_by_link_addrs -ieee80211_free_hw -ieee80211_free_txskb -ieee80211_freq_khz_to_channel -ieee80211_generic_frame_duration -ieee80211_get_bssid -ieee80211_get_buffered_bc -ieee80211_get_channel_khz -ieee80211_get_fils_discovery_tmpl -ieee80211_get_hdrlen_from_skb -ieee80211_get_key_rx_seq -ieee80211_get_mesh_hdrlen -ieee80211_get_num_supported_channels -ieee80211_get_response_rate -ieee80211_get_tkip_p1k_iv -ieee80211_get_tkip_p2k -ieee80211_get_tkip_rx_p1k -ieee80211_get_tx_rates -ieee80211_get_unsol_bcast_probe_resp_tmpl -ieee80211_get_vht_max_nss -ieee80211_gtk_rekey_add -ieee80211_gtk_rekey_notify -ieee80211_hdrlen -ieee80211_hw_restart_disconnect -ieee80211_ie_split_ric -ieee80211_iter_chan_contexts_atomic -ieee80211_iter_keys -ieee80211_iter_keys_rcu -ieee80211_iterate_active_interfaces_atomic -ieee80211_iterate_active_interfaces_mtx -ieee80211_iterate_interfaces -ieee80211_iterate_stations -ieee80211_iterate_stations_atomic -ieee80211_key_mic_failure -ieee80211_key_replay -ieee80211_manage_rx_ba_offl -ieee80211_mandatory_rates -ieee80211_mark_rx_ba_filtered_frames -ieee80211_nan_func_match -ieee80211_nan_func_terminated -ieee80211_next_txq -ieee80211_nullfunc_get -ieee80211_operating_class_to_band -ieee80211_parse_p2p_noa -ieee80211_probereq_get -ieee80211_proberesp_get -ieee80211_pspoll_get -ieee80211_queue_delayed_work -ieee80211_queue_stopped -ieee80211_queue_work -ieee80211_radar_detected -ieee80211_radiotap_iterator_init -ieee80211_radiotap_iterator_next -ieee80211_rate_control_register -ieee80211_rate_control_unregister -ieee80211_ready_on_channel -ieee80211_register_hw -ieee80211_remain_on_channel_expired -ieee80211_remove_key -ieee80211_report_low_ack -ieee80211_report_wowlan_wakeup -ieee80211_request_smps -ieee80211_reserve_tid -ieee80211_restart_hw -ieee80211_resume_disconnect -ieee80211_rts_duration -ieee80211_rts_get -ieee80211_rx_ba_timer_expired -ieee80211_rx_irqsafe -ieee80211_rx_list -ieee80211_rx_napi -ieee80211_s1g_channel_width -ieee80211_scan_completed -ieee80211_sched_scan_results -ieee80211_sched_scan_stopped -ieee80211_send_bar -ieee80211_send_eosp_nullfunc -ieee80211_set_active_links -ieee80211_set_active_links_async -ieee80211_set_key_rx_seq -ieee80211_sta_block_awake -ieee80211_sta_eosp -ieee80211_sta_ps_transition -ieee80211_sta_pspoll -ieee80211_sta_recalc_aggregates -ieee80211_sta_register_airtime -ieee80211_sta_set_buffered -ieee80211_sta_uapsd_trigger -ieee80211_start_tx_ba_cb_irqsafe -ieee80211_start_tx_ba_session -ieee80211_stop_queue -ieee80211_stop_queues -ieee80211_stop_rx_ba_session -ieee80211_stop_tx_ba_cb_irqsafe -ieee80211_stop_tx_ba_session -ieee80211_tdls_oper_request -ieee80211_tkip_add_iv -ieee80211_tx_dequeue -ieee80211_tx_prepare_skb -ieee80211_tx_rate_update -ieee80211_tx_status -ieee80211_tx_status_8023 -ieee80211_tx_status_ext -ieee80211_tx_status_irqsafe -ieee80211_txq_airtime_check -ieee80211_txq_get_depth -ieee80211_txq_may_transmit -ieee80211_txq_schedule_start -ieee80211_unregister_hw -ieee80211_unreserve_tid -ieee80211_update_mu_groups -ieee80211_update_p2p_noa -ieee80211_vif_to_wdev -ieee80211_wake_queue -ieee80211_wake_queues ieee802154_alloc_hw ieee802154_configure_durations ieee802154_free_hw @@ -371,7 +123,6 @@ ieee802154_wake_queue ieee802154_xmit_complete ieee802154_xmit_error ieee802154_xmit_hw_error -ieeee80211_obss_color_collision_notify l2cap_add_psm l2cap_chan_close l2cap_chan_connect @@ -460,16 +211,8 @@ qca_send_pre_shutdown_cmd qca_set_bdaddr qca_set_bdaddr_rome qca_uart_setup -rate_control_set_rates -reg_initiator_name -reg_query_regdb_wmm register_candev register_pppox_proto -regulatory_hint -regulatory_pre_cac_allowed -regulatory_set_wiphy_regd -regulatory_set_wiphy_regd_sync -rfc1042_header rfkill_alloc rfkill_blocked rfkill_destroy @@ -520,17 +263,6 @@ usb_serial_port_softint usb_serial_register_drivers usb_serial_resume usb_serial_suspend -wdev_chandef -wdev_to_ieee80211_vif -wiphy_apply_custom_regulatory -wiphy_free -wiphy_new_nm -wiphy_read_of_freq_limits -wiphy_register -wiphy_rfkill_set_hw_state_reason -wiphy_rfkill_start_polling -wiphy_to_ieee80211_hw -wiphy_unregister wpan_phy_find wpan_phy_for_each wpan_phy_free diff --git a/android/gki_aarch64_protected_modules b/android/gki_aarch64_protected_modules index fa169fc3f527..aaa5647ef51d 100644 --- a/android/gki_aarch64_protected_modules +++ b/android/gki_aarch64_protected_modules @@ -37,11 +37,9 @@ net/ieee802154/ieee802154.ko net/ieee802154/ieee802154_socket.ko net/l2tp/l2tp_core.ko net/l2tp/l2tp_ppp.ko -net/mac80211/mac80211.ko net/mac802154/mac802154.ko net/nfc/nfc.ko net/rfkill/rfkill.ko net/tipc/diag.ko net/tipc/tipc.ko -net/wireless/cfg80211.ko diff --git a/arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts b/arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts index fcc890e3ad73..f11feb98fde3 100644 --- a/arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts +++ b/arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts @@ -244,7 +244,7 @@ }; }; - iio-hwmon-battery { + iio-hwmon { compatible = "iio-hwmon"; io-channels = <&adc1 7>; }; diff --git a/arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts b/arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts index 4879da4cdbd2..77a3a27b04e2 100644 --- a/arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts +++ b/arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts @@ -220,7 +220,7 @@ }; }; - iio-hwmon-battery { + iio-hwmon { compatible = "iio-hwmon"; io-channels = <&adc1 7>; }; diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index ebe9e9168994..ea96fb5abba5 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -1136,6 +1136,23 @@ config SOCIONEXT_SYNQUACER_PREITS If unsure, say Y. +config ANDROID_ARM64_WORKAROUND_DMA_BEYOND_POC + bool "Remove cacheable aliases of non-cacheable DMA buffers at stage-2" + default y + depends on KVM + help + Some SoCs integrate non-coherent DMA-capable peripherals beyond + the Point of Coherency (PoC), resulting in loss of coherency + with non-cacheable mappings on the CPU in the presence of a + cacheable alias. + + This workaround provides a mechanism (controlled by the kernel + command-line) to remap pages as non-cacheable in pKVM's stage-2 + mapping for the host, thereby removing any cacheable aliases + that may be present in the stage-1 mapping. + + If unsure, say Y. + endmenu # "ARM errata workarounds via the alternatives framework" choice diff --git a/arch/arm64/configs/gki_defconfig b/arch/arm64/configs/gki_defconfig index ef569c29c944..08bc95ecc558 100644 --- a/arch/arm64/configs/gki_defconfig +++ b/arch/arm64/configs/gki_defconfig @@ -77,6 +77,7 @@ CONFIG_ARM_SCPI_CPUFREQ=y CONFIG_ARM_SCMI_CPUFREQ=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=y +CONFIG_PKVM_MODULE_PATH="/lib/modules/" CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y CONFIG_SHADOW_CALL_STACK=y @@ -111,6 +112,7 @@ CONFIG_CMA=y CONFIG_CMA_DEBUGFS=y CONFIG_CMA_AREAS=16 # CONFIG_ZONE_DMA is not set +CONFIG_ZONE_DEVICE=y CONFIG_ANON_VMA_NAME=y CONFIG_USERFAULTFD=y CONFIG_LRU_GEN=y @@ -477,6 +479,7 @@ CONFIG_USB_HIDDEV=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_OTG=y CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PCI_RENESAS=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_HCD_PLATFORM=y diff --git a/arch/arm64/include/asm/android_erratum_pgtable.h b/arch/arm64/include/asm/android_erratum_pgtable.h new file mode 100644 index 000000000000..57b7fbfa440f --- /dev/null +++ b/arch/arm64/include/asm/android_erratum_pgtable.h @@ -0,0 +1,53 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (C) 2023 - Google LLC + * Author: Will Deacon + */ +#ifndef _ASM_ARM64_ANDROID_ERRATUM_PGTABLE_H +#define _ASM_ARM64_ANDROID_ERRATUM_PGTABLE_H + +#ifndef __ASM_PGTABLE_H +#error "Please don't include this header directly." +#endif + +#ifdef CONFIG_ANDROID_ARM64_WORKAROUND_DMA_BEYOND_POC +extern void pkvm_host_set_stage2_memattr(phys_addr_t addr, bool force_nc); +extern __init int pkvm_register_early_nc_mappings(void); + +DECLARE_STATIC_KEY_FALSE(pkvm_force_nc); +static inline bool prot_needs_stage2_update(pgprot_t prot) +{ + pteval_t val = pgprot_val(prot); + + if (!static_branch_unlikely(&pkvm_force_nc)) + return 0; + + return (val & PTE_ATTRINDX_MASK) == PTE_ATTRINDX(MT_NORMAL_NC); +} + +static inline void arm64_update_cacheable_aliases(pte_t *ptep, pte_t pte) +{ + pte_t old_pte = READ_ONCE(*ptep); + bool force_nc; + + if (!static_branch_unlikely(&pkvm_force_nc)) + return; + + if (pte_valid(old_pte) == pte_valid(pte)) + return; + + if (!pte_valid(pte)) { + force_nc = false; + pte = old_pte; + } else { + force_nc = true; + } + + if ((pte_val(pte) & PTE_ATTRINDX_MASK) == PTE_ATTRINDX(MT_NORMAL_NC)) + pkvm_host_set_stage2_memattr(__pte_to_phys(pte), force_nc); +} +#else +static inline void arm64_update_cacheable_aliases(pte_t *ptep, pte_t pte) { } +static inline bool prot_needs_stage2_update(pgprot_t prot) { return false; } +#endif /* CONFIG_ANDROID_ARM64_WORKAROUND_DMA_BEYOND_POC */ +#endif /* _ASM_ARM64_ANDROID_ERRATUM_PGTABLE_H */ diff --git a/arch/arm64/include/asm/kvm_asm.h b/arch/arm64/include/asm/kvm_asm.h index f4a0b50bf0e1..6679bdcc7478 100644 --- a/arch/arm64/include/asm/kvm_asm.h +++ b/arch/arm64/include/asm/kvm_asm.h @@ -103,6 +103,9 @@ enum __kvm_host_smccc_func { __KVM_HOST_SMCCC_FUNC___pkvm_rb_swap_reader_page, __KVM_HOST_SMCCC_FUNC___pkvm_rb_update_footers, __KVM_HOST_SMCCC_FUNC___pkvm_enable_event, +#ifdef CONFIG_ANDROID_ARM64_WORKAROUND_DMA_BEYOND_POC + __KVM_HOST_SMCCC_FUNC___pkvm_host_set_stage2_memattr, +#endif /* * Start of the dynamically registered hypercalls. Start a bit diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h index 5d0f1f7b7600..812373cff4ee 100644 --- a/arch/arm64/include/asm/pgtable.h +++ b/arch/arm64/include/asm/pgtable.h @@ -320,6 +320,8 @@ static inline void __check_racy_pte_update(struct mm_struct *mm, pte_t *ptep, __func__, pte_val(old_pte), pte_val(pte)); } +#include + static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr, pte_t *ptep, pte_t pte) { @@ -348,6 +350,7 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr, __check_racy_pte_update(mm, ptep, pte); + arm64_update_cacheable_aliases(ptep, pte); set_pte(ptep, pte); } @@ -531,6 +534,7 @@ static inline pmd_t pmd_mkdevmap(pmd_t pmd) static inline void set_pmd_at(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t pmd) { + WARN_ON(prot_needs_stage2_update(__pgprot(pmd_val(pmd)))); page_table_check_pmd_set(mm, addr, pmdp, pmd); return __set_pte_at(mm, addr, (pte_t *)pmdp, pmd_pte(pmd)); } @@ -538,6 +542,7 @@ static inline void set_pmd_at(struct mm_struct *mm, unsigned long addr, static inline void set_pud_at(struct mm_struct *mm, unsigned long addr, pud_t *pudp, pud_t pud) { + WARN_ON(prot_needs_stage2_update(__pgprot(pud_val(pud)))); page_table_check_pud_set(mm, addr, pudp, pud); return __set_pte_at(mm, addr, (pte_t *)pudp, pud_pte(pud)); } @@ -933,7 +938,10 @@ static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma, static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long address, pte_t *ptep) { - pte_t pte = __pte(xchg_relaxed(&pte_val(*ptep), 0)); + pte_t pte; + + arm64_update_cacheable_aliases(ptep, __pte(0)); + pte = __pte(xchg_relaxed(&pte_val(*ptep), 0)); page_table_check_pte_clear(mm, address, pte); diff --git a/arch/arm64/include/asm/vmalloc.h b/arch/arm64/include/asm/vmalloc.h index 38fafffe699f..964744b625ae 100644 --- a/arch/arm64/include/asm/vmalloc.h +++ b/arch/arm64/include/asm/vmalloc.h @@ -9,6 +9,9 @@ #define arch_vmap_pud_supported arch_vmap_pud_supported static inline bool arch_vmap_pud_supported(pgprot_t prot) { + if (prot_needs_stage2_update(prot)) + return false; + /* * SW table walks can't handle removal of intermediate entries. */ @@ -19,6 +22,9 @@ static inline bool arch_vmap_pud_supported(pgprot_t prot) #define arch_vmap_pmd_supported arch_vmap_pmd_supported static inline bool arch_vmap_pmd_supported(pgprot_t prot) { + if (prot_needs_stage2_update(prot)) + return false; + /* See arch_vmap_pud_supported() */ return !IS_ENABLED(CONFIG_PTDUMP_DEBUGFS); } diff --git a/arch/arm64/kernel/efi-header.S b/arch/arm64/kernel/efi-header.S index 28d8a5dca5f1..d731b4655df8 100644 --- a/arch/arm64/kernel/efi-header.S +++ b/arch/arm64/kernel/efi-header.S @@ -66,7 +66,7 @@ .long .Lefi_header_end - .L_head // SizeOfHeaders .long 0 // CheckSum .short IMAGE_SUBSYSTEM_EFI_APPLICATION // Subsystem - .short 0 // DllCharacteristics + .short IMAGE_DLL_CHARACTERISTICS_NX_COMPAT // DllCharacteristics .quad 0 // SizeOfStackReserve .quad 0 // SizeOfStackCommit .quad 0 // SizeOfHeapReserve diff --git a/arch/arm64/kernel/image-vars.h b/arch/arm64/kernel/image-vars.h index 1f778c342019..1e57ebccac9d 100644 --- a/arch/arm64/kernel/image-vars.h +++ b/arch/arm64/kernel/image-vars.h @@ -121,6 +121,10 @@ KVM_NVHE_ALIAS(__hyp_event_ids_end); /* pKVM static key */ KVM_NVHE_ALIAS(kvm_protected_mode_initialized); +#ifdef CONFIG_ANDROID_ARM64_WORKAROUND_DMA_BEYOND_POC +KVM_NVHE_ALIAS(pkvm_force_nc); +#endif + #endif /* CONFIG_KVM */ #endif /* __ARM64_KERNEL_IMAGE_VARS_H */ diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig index 815cc118c675..a3853eb6dc20 100644 --- a/arch/arm64/kvm/Kconfig +++ b/arch/arm64/kvm/Kconfig @@ -69,4 +69,11 @@ config PROTECTED_NVHE_STACKTRACE If unsure, or not using protected nVHE (pKVM), say N. +config PKVM_MODULE_PATH + string "Path to pKVM modules" + default "" + help + Directory where the pKVM modules are found. If empty, the modules + will be searched into the default path /lib/modules/. + endif # VIRTUALIZATION diff --git a/arch/arm64/kvm/Makefile b/arch/arm64/kvm/Makefile index 848172679a2d..d215f3d259d0 100644 --- a/arch/arm64/kvm/Makefile +++ b/arch/arm64/kvm/Makefile @@ -23,6 +23,7 @@ kvm-y += arm.o mmu.o mmio.o psci.o hypercalls.o pvtime.o \ vgic/vgic-its.o vgic/vgic-debug.o kvm-$(CONFIG_HW_PERF_EVENTS) += pmu-emul.o pmu.o +kvm-$(CONFIG_ANDROID_ARM64_WORKAROUND_DMA_BEYOND_POC) += android_erratum_pgtable.o kvm-$(CONFIG_TRACING) += hyp_events.o hyp_trace.o diff --git a/arch/arm64/kvm/android_erratum_pgtable.c b/arch/arm64/kvm/android_erratum_pgtable.c new file mode 100644 index 000000000000..301f24e9d811 --- /dev/null +++ b/arch/arm64/kvm/android_erratum_pgtable.c @@ -0,0 +1,108 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2023 - Google LLC + * Author: Will Deacon + */ +#include +#include + +#include +#include +#include + +DEFINE_STATIC_KEY_FALSE(pkvm_force_nc); +static int __init early_pkvm_force_nc_cfg(char *arg) +{ + static_branch_enable(&pkvm_force_nc); + return 0; +} +early_param("kvm-arm.force_nc", early_pkvm_force_nc_cfg); + +/* + * Update the stage-2 memory attributes (cacheability) for a page, usually + * in response to mapping or unmapping a normal non-cacheable region at stage-1. + * + * If 'force_nc' is set, the stage-2 entry is immediately made non-cacheable + * (and cleaned+invalidated to the PoC) otherwise the entry is unmapped and the + * cacheability determined based on the stage-1 attribute of the next access + * (with no cache maintenance being performed). + */ +struct pkvm_host_nc_region { + phys_addr_t start; + phys_addr_t end; +}; + +#define PKVM_HOST_MAX_EARLY_NC_REGIONS 8 +static struct pkvm_host_nc_region +pkvm_host_early_nc_regions[PKVM_HOST_MAX_EARLY_NC_REGIONS]; + +static void pkvm_host_track_early_nc_mapping(phys_addr_t addr) +{ + static int idx /*= 0*/; + struct pkvm_host_nc_region *reg = &pkvm_host_early_nc_regions[idx]; + + if (reg->start == reg->end) { + reg->start = addr; + } else if (reg->end != addr) { + if (WARN_ON(idx == PKVM_HOST_MAX_EARLY_NC_REGIONS - 1)) + return; + + reg = &pkvm_host_early_nc_regions[++idx]; + reg->start = addr; + } + + reg->end = addr + PAGE_SIZE; +} + +void pkvm_host_set_stage2_memattr(phys_addr_t addr, bool force_nc) +{ + int err; + + if (kvm_get_mode() != KVM_MODE_PROTECTED) + return; + + /* + * Non-memory regions or carveouts marked as "no-map" are handled + * entirely by their corresponding driver, which should avoid the + * creation of a cacheable alias in the first place. + */ + if (!memblock_is_map_memory(addr)) + return; + + if (!is_pkvm_initialized()) { + if (!WARN_ON_ONCE(!force_nc)) + pkvm_host_track_early_nc_mapping(addr); + return; + } + + err = kvm_call_hyp_nvhe(__pkvm_host_set_stage2_memattr, addr, force_nc); + WARN_ON(err && err != -EAGAIN); +} +EXPORT_SYMBOL_GPL(pkvm_host_set_stage2_memattr); + +int __init pkvm_register_early_nc_mappings(void) +{ + int i; + + if (!is_pkvm_initialized()) + return 0; + + for (i = 0; i < PKVM_HOST_MAX_EARLY_NC_REGIONS; ++i) { + struct pkvm_host_nc_region *reg = &pkvm_host_early_nc_regions[i]; + + if (reg->start == reg->end) + return 0; + + while (reg->start != reg->end) { + int err; + + err = kvm_call_hyp_nvhe(__pkvm_host_set_stage2_memattr, reg->start, true); + if (err) + return err; + + reg->start += PAGE_SIZE; + } + } + + return 0; +} diff --git a/arch/arm64/kvm/hyp/include/nvhe/mm.h b/arch/arm64/kvm/hyp/include/nvhe/mm.h index ed2e8ab8d236..92278f8b2ab9 100644 --- a/arch/arm64/kvm/hyp/include/nvhe/mm.h +++ b/arch/arm64/kvm/hyp/include/nvhe/mm.h @@ -16,6 +16,7 @@ extern const struct pkvm_module_ops module_ops; int hyp_create_pcpu_fixmap(void); void *hyp_fixmap_map(phys_addr_t phys); +void *hyp_fixmap_map_nc(phys_addr_t phys); void hyp_fixmap_unmap(void); void hyp_poison_page(phys_addr_t phys); diff --git a/arch/arm64/kvm/hyp/include/nvhe/pkvm.h b/arch/arm64/kvm/hyp/include/nvhe/pkvm.h index c56db3d918ab..9eba06503704 100644 --- a/arch/arm64/kvm/hyp/include/nvhe/pkvm.h +++ b/arch/arm64/kvm/hyp/include/nvhe/pkvm.h @@ -152,6 +152,12 @@ static inline bool pkvm_ipa_range_has_pvmfw(struct pkvm_hyp_vm *vm, return ipa_end > pkvm->pvmfw_load_addr && ipa_start < pvmfw_load_end; } +static inline void pkvm_set_max_sve_vq(void) +{ + sve_cond_update_zcr_vq(sve_vq_from_vl(kvm_host_sve_max_vl) - 1, + SYS_ZCR_EL2); +} + int pkvm_load_pvmfw_pages(struct pkvm_hyp_vm *vm, u64 ipa, phys_addr_t phys, u64 size); void pkvm_poison_pvmfw_pages(void); diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-main.c b/arch/arm64/kvm/hyp/nvhe/hyp-main.c index 4fce0949b0f4..8e291ac1a053 100644 --- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c +++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c @@ -688,10 +688,9 @@ static void fpsimd_host_restore(void) if (system_supports_sve()) { struct kvm_host_sve_state *sve_state = get_host_sve_state(vcpu); - u64 vq_len = sve_vq_from_vl(kvm_host_sve_max_vl) - 1; write_sysreg_el1(sve_state->zcr_el1, SYS_ZCR); - sve_cond_update_zcr_vq(vq_len, SYS_ZCR_EL2); + pkvm_set_max_sve_vq(); __sve_restore_state(sve_state->sve_regs + sve_ffr_offset(kvm_host_sve_max_vl), &sve_state->fpsr); @@ -1264,6 +1263,17 @@ static void handle___pkvm_enable_event(struct kvm_cpu_context *host_ctxt) cpu_reg(host_ctxt, 1) = __pkvm_enable_event(id, enable); } +#ifdef CONFIG_ANDROID_ARM64_WORKAROUND_DMA_BEYOND_POC +extern int __pkvm_host_set_stage2_memattr(phys_addr_t phys, bool force_nc); +static void handle___pkvm_host_set_stage2_memattr(struct kvm_cpu_context *host_ctxt) +{ + DECLARE_REG(phys_addr_t, phys, host_ctxt, 1); + DECLARE_REG(bool, force_nc, host_ctxt, 2); + + cpu_reg(host_ctxt, 1) = __pkvm_host_set_stage2_memattr(phys, force_nc); +} +#endif + typedef void (*hcall_t)(struct kvm_cpu_context *); #define HANDLE_FUNC(x) [__KVM_HOST_SMCCC_FUNC_##x] = (hcall_t)handle_##x @@ -1316,6 +1326,9 @@ static const hcall_t host_hcall[] = { HANDLE_FUNC(__pkvm_rb_swap_reader_page), HANDLE_FUNC(__pkvm_rb_update_footers), HANDLE_FUNC(__pkvm_enable_event), +#ifdef CONFIG_ANDROID_ARM64_WORKAROUND_DMA_BEYOND_POC + HANDLE_FUNC(__pkvm_host_set_stage2_memattr), +#endif }; unsigned long pkvm_priv_hcall_limit __ro_after_init = __KVM_HOST_SMCCC_FUNC___pkvm_prot_finalize; @@ -1328,7 +1341,7 @@ int reset_pkvm_priv_hcall_limit(void) return -EACCES; addr = hyp_fixmap_map(__hyp_pa(&pkvm_priv_hcall_limit)); - *addr = KVM_HOST_SMCCC_FUNC(__pkvm_prot_finalize); + *addr = __KVM_HOST_SMCCC_FUNC___pkvm_prot_finalize; hyp_fixmap_unmap(); return 0; diff --git a/arch/arm64/kvm/hyp/nvhe/iommu.c b/arch/arm64/kvm/hyp/nvhe/iommu.c index f9431dca570e..6c90b32491f0 100644 --- a/arch/arm64/kvm/hyp/nvhe/iommu.c +++ b/arch/arm64/kvm/hyp/nvhe/iommu.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #define DRV_ID(drv_addr) ((unsigned long)drv_addr) @@ -469,6 +470,8 @@ int __pkvm_iommu_finalize(int err) if (!ret && err) pkvm_handle_system_misconfiguration(NO_DMA_ISOLATION); + __pkvm_close_late_module_registration(); + return ret; } diff --git a/arch/arm64/kvm/hyp/nvhe/mem_protect.c b/arch/arm64/kvm/hyp/nvhe/mem_protect.c index 4590e3d9d8dd..ddd14eb489bc 100644 --- a/arch/arm64/kvm/hyp/nvhe/mem_protect.c +++ b/arch/arm64/kvm/hyp/nvhe/mem_protect.c @@ -539,23 +539,10 @@ static inline bool range_included(struct kvm_mem_range *child, return parent->start <= child->start && child->end <= parent->end; } -static int host_stage2_adjust_range(u64 addr, struct kvm_mem_range *range) +static int host_stage2_adjust_range(u64 addr, struct kvm_mem_range *range, + u32 level) { struct kvm_mem_range cur; - kvm_pte_t pte; - u32 level; - int ret; - - hyp_assert_lock_held(&host_mmu.lock); - ret = kvm_pgtable_get_leaf(&host_mmu.pgt, addr, &pte, &level); - if (ret) - return ret; - - if (kvm_pte_valid(pte)) - return -EAGAIN; - - if (pte) - return -EPERM; do { u64 granule = kvm_granule_size(level); @@ -641,15 +628,141 @@ static bool host_stage2_pte_is_counted(kvm_pte_t pte, u32 level) return (pte & KVM_HOST_S2_DEFAULT_MASK) != KVM_HOST_S2_DEFAULT_MMIO_PTE; } -static int host_stage2_idmap(u64 addr) +#define DEFERRED_MEMATTR_NOTE (1ULL << 24) +#ifdef CONFIG_ANDROID_ARM64_WORKAROUND_DMA_BEYOND_POC +static enum pkvm_page_state host_get_page_state(kvm_pte_t pte, u64 addr); + +int __pkvm_host_set_stage2_memattr(phys_addr_t phys, bool force_nc) +{ + kvm_pte_t pte; + int ret = 0; + + if (!static_branch_unlikely(&pkvm_force_nc)) + return -ENOENT; + + phys = ALIGN_DOWN(phys, PAGE_SIZE); + hyp_spin_lock(&host_mmu.lock); + + ret = kvm_pgtable_get_leaf(&host_mmu.pgt, phys, &pte, NULL); + if (ret) + goto unlock; + + if (!addr_is_memory(phys)) { + ret = -EIO; + goto unlock; + } + + if (!kvm_pte_valid(pte) && pte) { + switch (pte) { + case DEFERRED_MEMATTR_NOTE: + break; + default: + ret = -EPERM; + } + } else if (host_get_page_state(pte, phys) != PKVM_PAGE_OWNED) { + ret = -EPERM; + } + + if (ret) + goto unlock; + + if (force_nc) { + ret = host_stage2_idmap_locked(phys, PAGE_SIZE, + PKVM_HOST_MEM_PROT | + KVM_PGTABLE_PROT_NC, + false); + if (ret) + goto unlock; + + kvm_flush_dcache_to_poc(hyp_fixmap_map_nc(phys), PAGE_SIZE); + hyp_fixmap_unmap(); + } else { + ret = kvm_pgtable_stage2_annotate(&host_mmu.pgt, phys, + PAGE_SIZE, &host_s2_pool, + DEFERRED_MEMATTR_NOTE); + } +unlock: + hyp_spin_unlock(&host_mmu.lock); + return ret; +} + +static int handle_memattr_annotation(struct kvm_vcpu_fault_info *fault, + u64 addr, enum kvm_pgtable_prot *prot, + struct kvm_mem_range *range) +{ + u64 par, oldpar; + + /* If the S1 MMU is disabled, treat the access as cacheable */ + if (unlikely(!(read_sysreg(sctlr_el1) & SCTLR_ELx_M))) + return 0; + + /* If we took a fault on a PTW, then treat it as cacheable */ + if (fault->esr_el2 & ESR_ELx_S1PTW) + return 0; + + oldpar = read_sysreg_par(); + + if (!__kvm_at("s1e1r", fault->far_el2)) + par = read_sysreg_par(); + else + par = SYS_PAR_EL1_F; + + write_sysreg(oldpar, par_el1); + + if (unlikely(par & SYS_PAR_EL1_F)) + return -EAGAIN; + + if ((par >> 56) == MAIR_ATTR_NORMAL_NC) { + range->start = ALIGN_DOWN(addr, PAGE_SIZE); + range->end = range->start + PAGE_SIZE; + *prot |= KVM_PGTABLE_PROT_NC; + } + + return 0; +} +#else +static int handle_memattr_annotation(struct kvm_vcpu_fault_info *fault, + u64 addr, enum kvm_pgtable_prot *prot, + struct kvm_mem_range *range) +{ + return -EPERM; +} +#endif + +static int host_stage2_idmap(struct kvm_vcpu_fault_info *fault, u64 addr) { struct kvm_mem_range range; bool is_memory = !!find_mem_range(addr, &range); enum kvm_pgtable_prot prot = default_host_prot(is_memory); + kvm_pte_t pte; + u32 level; int ret; hyp_assert_lock_held(&host_mmu.lock); + ret = kvm_pgtable_get_leaf(&host_mmu.pgt, addr, &pte, &level); + if (ret) + return ret; + + if (kvm_pte_valid(pte)) + return -EAGAIN; + + if (pte) { + if (!is_memory) + return -EPERM; + + switch (pte) { + case DEFERRED_MEMATTR_NOTE: + ret = handle_memattr_annotation(fault, addr, &prot, + &range); + if (ret) + return ret; + break; + default: + return -EPERM; + } + } + /* * Adjust against IOMMU devices first. host_stage2_adjust_range() should * be called last for proper alignment. @@ -661,7 +774,7 @@ static int host_stage2_idmap(u64 addr) return ret; } - ret = host_stage2_adjust_range(addr, &range); + ret = host_stage2_adjust_range(addr, &range, level); if (ret) return ret; @@ -750,6 +863,7 @@ void handle_host_mem_abort(struct kvm_cpu_context *host_ctxt) esr = read_sysreg_el2(SYS_ESR); BUG_ON(!__get_fault_info(esr, &fault)); + fault.esr_el2 = esr; addr = (fault.hpfar_el2 & HPFAR_MASK) << 8; addr |= fault.far_el2 & FAR_MASK; @@ -763,7 +877,7 @@ void handle_host_mem_abort(struct kvm_cpu_context *host_ctxt) /* If not handled, attempt to map the page. */ if (ret == -EPERM) - ret = host_stage2_idmap(addr); + ret = host_stage2_idmap(&fault, addr); host_unlock_component(); diff --git a/arch/arm64/kvm/hyp/nvhe/mm.c b/arch/arm64/kvm/hyp/nvhe/mm.c index 672676c20e9c..4d07d5e874e0 100644 --- a/arch/arm64/kvm/hyp/nvhe/mm.c +++ b/arch/arm64/kvm/hyp/nvhe/mm.c @@ -309,12 +309,29 @@ void *hyp_fixmap_map(phys_addr_t phys) return (void *)slot->addr + offset_in_page(phys); } +#define KVM_PTE_LEAF_ATTR_LO_S1_ATTRIDX GENMASK(4, 2) +void *hyp_fixmap_map_nc(phys_addr_t phys) +{ + struct hyp_fixmap_slot *slot = this_cpu_ptr(&fixmap_slots); + kvm_pte_t pte, *ptep = slot->ptep; + + pte = *ptep; + pte &= ~kvm_phys_to_pte(KVM_PHYS_INVALID); + pte |= kvm_phys_to_pte(phys) | KVM_PTE_VALID | + FIELD_PREP(KVM_PTE_LEAF_ATTR_LO_S1_ATTRIDX, MT_NORMAL_NC); + WRITE_ONCE(*ptep, pte); + dsb(ishst); + + return (void *)slot->addr; +} + static void fixmap_clear_slot(struct hyp_fixmap_slot *slot) { kvm_pte_t *ptep = slot->ptep; u64 addr = slot->addr; - WRITE_ONCE(*ptep, *ptep & ~KVM_PTE_VALID); + /* Zap the memory type too. MT_NORMAL is 0 so the fixmap is cacheable by default */ + WRITE_ONCE(*ptep, *ptep & ~(KVM_PTE_VALID | KVM_PTE_LEAF_ATTR_LO_S1_ATTRIDX)); /* * Irritatingly, the architecture requires that we use inner-shareable diff --git a/arch/arm64/kvm/hyp/nvhe/switch.c b/arch/arm64/kvm/hyp/nvhe/switch.c index c98dcd1b05d6..553fa769ea35 100644 --- a/arch/arm64/kvm/hyp/nvhe/switch.c +++ b/arch/arm64/kvm/hyp/nvhe/switch.c @@ -199,10 +199,9 @@ static void kvm_hyp_handle_fpsimd_host(struct kvm_vcpu *vcpu) */ if (unlikely(is_protected_kvm_enabled() && system_supports_sve())) { struct kvm_host_sve_state *sve_state = get_host_sve_state(vcpu); - u64 vq_len = sve_vq_from_vl(kvm_host_sve_max_vl) - 1; sve_state->zcr_el1 = read_sysreg_el1(SYS_ZCR); - sve_cond_update_zcr_vq(vq_len, SYS_ZCR_EL2); + pkvm_set_max_sve_vq(); __sve_save_state(sve_state->sve_regs + sve_ffr_offset(kvm_host_sve_max_vl), &sve_state->fpsr); diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index 863f152c4cd5..6259a72812e9 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -668,14 +668,33 @@ static int get_user_mapping_size(struct kvm *kvm, u64 addr) CONFIG_PGTABLE_LEVELS), .mm_ops = &kvm_user_mm_ops, }; + unsigned long flags; kvm_pte_t pte = 0; /* Keep GCC quiet... */ u32 level = ~0; int ret; + /* + * Disable IRQs so that we hazard against a concurrent + * teardown of the userspace page tables (which relies on + * IPI-ing threads). + */ + local_irq_save(flags); ret = kvm_pgtable_get_leaf(&pgt, addr, &pte, &level); - VM_BUG_ON(ret); - VM_BUG_ON(level >= KVM_PGTABLE_MAX_LEVELS); - VM_BUG_ON(!(pte & PTE_VALID)); + local_irq_restore(flags); + + if (ret) + return ret; + + /* + * Not seeing an error, but not updating level? Something went + * deeply wrong... + */ + if (WARN_ON(level >= KVM_PGTABLE_MAX_LEVELS)) + return -EFAULT; + + /* Oops, the userspace PTs are gone... Replay the fault */ + if (!kvm_pte_valid(pte)) + return -EAGAIN; return BIT(ARM64_HW_PGTABLE_LEVEL_SHIFT(level)); } @@ -1167,7 +1186,7 @@ static bool fault_supports_stage2_huge_mapping(struct kvm_memory_slot *memslot, * * Returns the size of the mapping. */ -static unsigned long +static long transparent_hugepage_adjust(struct kvm *kvm, struct kvm_memory_slot *memslot, unsigned long hva, kvm_pfn_t *pfnp, phys_addr_t *ipap) @@ -1179,8 +1198,15 @@ transparent_hugepage_adjust(struct kvm *kvm, struct kvm_memory_slot *memslot, * sure that the HVA and IPA are sufficiently aligned and that the * block map is contained within the memslot. */ - if (fault_supports_stage2_huge_mapping(memslot, hva, PMD_SIZE) && - get_user_mapping_size(kvm, hva) >= PMD_SIZE) { + if (fault_supports_stage2_huge_mapping(memslot, hva, PMD_SIZE)) { + int sz = get_user_mapping_size(kvm, hva); + + if (sz < 0) + return sz; + + if (sz < PMD_SIZE) + return PAGE_SIZE; + /* * The address we faulted on is backed by a transparent huge * page. However, because we map the compound huge page and @@ -1411,7 +1437,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, bool logging_active = memslot_is_logging(memslot); bool use_read_lock = false; unsigned long fault_level = kvm_vcpu_trap_get_fault_level(vcpu); - unsigned long vma_pagesize, fault_granule; + long vma_pagesize, fault_granule; enum kvm_pgtable_prot prot = KVM_PGTABLE_PROT_R; struct kvm_pgtable *pgt; @@ -1568,6 +1594,11 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, vma_pagesize = transparent_hugepage_adjust(kvm, memslot, hva, &pfn, &fault_ipa); + + if (vma_pagesize < 0) { + ret = vma_pagesize; + goto out_unlock; + } } if (fault_status != FSC_PERM && !device && kvm_has_mte(kvm)) { diff --git a/arch/arm64/kvm/pkvm.c b/arch/arm64/kvm/pkvm.c index ec613347f116..a51725ab1861 100644 --- a/arch/arm64/kvm/pkvm.c +++ b/arch/arm64/kvm/pkvm.c @@ -514,6 +514,11 @@ static int __init finalize_pkvm(void) pkvm_firmware_rmem_clear(); } +#ifdef CONFIG_ANDROID_ARM64_WORKAROUND_DMA_BEYOND_POC + if (!ret) + ret = pkvm_register_early_nc_mappings(); +#endif + return ret; } device_initcall_sync(finalize_pkvm); @@ -601,7 +606,6 @@ early_param("kvm-arm.protected_modules", early_pkvm_modules_cfg); static void free_modprobe_argv(struct subprocess_info *info) { - kfree(info->argv[3]); kfree(info->argv); } @@ -611,7 +615,8 @@ static void free_modprobe_argv(struct subprocess_info *info) * security is enforced by making sure this can be called only when pKVM is * enabled, not yet completely initialized. */ -static int __init pkvm_request_early_module(char *module_name) +static int __init __pkvm_request_early_module(char *module_name, + char *module_path) { char *modprobe_path = CONFIG_MODPROBE_PATH; struct subprocess_info *info; @@ -622,6 +627,7 @@ static int __init pkvm_request_early_module(char *module_name) NULL }; char **argv; + int idx = 0; if (!is_protected_kvm_enabled()) return -EACCES; @@ -629,41 +635,56 @@ static int __init pkvm_request_early_module(char *module_name) if (static_branch_likely(&kvm_protected_mode_initialized)) return -EACCES; - argv = kmalloc(sizeof(char *[5]), GFP_KERNEL); + argv = kmalloc(sizeof(char *) * 7, GFP_KERNEL); if (!argv) return -ENOMEM; - module_name = kstrdup(module_name, GFP_KERNEL); - if (!module_name) - goto free_argv; - - argv[0] = modprobe_path; - argv[1] = "-q"; - argv[2] = "--"; - argv[3] = module_name; - argv[4] = NULL; + argv[idx++] = modprobe_path; + argv[idx++] = "-q"; + if (*module_path != '\0') { + argv[idx++] = "-d"; + argv[idx++] = module_path; + } + argv[idx++] = "--"; + argv[idx++] = module_name; + argv[idx++] = NULL; info = call_usermodehelper_setup(modprobe_path, argv, envp, GFP_KERNEL, NULL, free_modprobe_argv, NULL); if (!info) - goto free_module_name; + goto err; /* Even with CONFIG_STATIC_USERMODEHELPER we really want this path */ info->path = modprobe_path; return call_usermodehelper_exec(info, UMH_WAIT_PROC | UMH_KILLABLE); - -free_module_name: - kfree(module_name); -free_argv: +err: kfree(argv); return -ENOMEM; } +static int __init pkvm_request_early_module(char *module_name, char *module_path) +{ + int err = __pkvm_request_early_module(module_name, module_path); + + if (!err) + return 0; + + /* Already tried the default path */ + if (*module_path == '\0') + return err; + + pr_info("loading %s from %s failed, fallback to the default path\n", + module_name, module_path); + + return __pkvm_request_early_module(module_name, ""); +} + int __init pkvm_load_early_modules(void) { char *token, *buf = early_pkvm_modules; + char *module_path = CONFIG_PKVM_MODULE_PATH; int err; while (true) { @@ -673,7 +694,7 @@ int __init pkvm_load_early_modules(void) break; if (*token) { - err = pkvm_request_early_module(token); + err = pkvm_request_early_module(token, module_path); if (err) { pr_err("Failed to load pkvm module %s: %d\n", token, err); @@ -773,6 +794,7 @@ int __pkvm_load_el2_module(struct module *this, unsigned long *token) { &mod->data, KVM_PGTABLE_PROT_R | KVM_PGTABLE_PROT_W }, }; void *start, *end, *hyp_va; + struct arm_smccc_res res; kvm_nvhe_reloc_t *endrel; int ret, i, secs_first; size_t offset, size; @@ -802,12 +824,14 @@ int __pkvm_load_el2_module(struct module *this, unsigned long *token) end = secs_map[ARRAY_SIZE(secs_map) - 1].sec->end; size = end - start; - hyp_va = (void *)kvm_call_hyp_nvhe(__pkvm_alloc_module_va, size >> PAGE_SHIFT); - if (!hyp_va) { + arm_smccc_1_1_hvc(KVM_HOST_SMCCC_FUNC(__pkvm_alloc_module_va), + size >> PAGE_SHIFT, &res); + if (res.a0 != SMCCC_RET_SUCCESS || !res.a1) { kvm_err("Failed to allocate hypervisor VA space for EL2 module\n"); module_put(this); - return -ENOMEM; + return res.a0 == SMCCC_RET_SUCCESS ? -ENOMEM : -EPERM; } + hyp_va = (void *)res.a1; /* * The token can be used for other calls related to this module. diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c index daad344eb446..da50604779c2 100644 --- a/arch/arm64/kvm/sys_regs.c +++ b/arch/arm64/kvm/sys_regs.c @@ -735,6 +735,22 @@ static bool pmu_counter_idx_valid(struct kvm_vcpu *vcpu, u64 idx) return true; } +static int get_pmu_evcntr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r, + u64 *val) +{ + u64 idx; + + if (r->CRn == 9 && r->CRm == 13 && r->Op2 == 0) + /* PMCCNTR_EL0 */ + idx = ARMV8_PMU_CYCLE_IDX; + else + /* PMEVCNTRn_EL0 */ + idx = ((r->CRm & 3) << 3) | (r->Op2 & 7); + + *val = kvm_pmu_get_counter_value(vcpu, idx); + return 0; +} + static bool access_pmu_evcntr(struct kvm_vcpu *vcpu, struct sys_reg_params *p, const struct sys_reg_desc *r) @@ -951,7 +967,7 @@ static bool access_pmuserenr(struct kvm_vcpu *vcpu, struct sys_reg_params *p, /* Macro to expand the PMEVCNTRn_EL0 register */ #define PMU_PMEVCNTR_EL0(n) \ { PMU_SYS_REG(SYS_PMEVCNTRn_EL0(n)), \ - .reset = reset_pmevcntr, \ + .reset = reset_pmevcntr, .get_user = get_pmu_evcntr, \ .access = access_pmu_evcntr, .reg = (PMEVCNTR0_EL0 + n), } /* Macro to expand the PMEVTYPERn_EL0 register */ @@ -1600,7 +1616,8 @@ static const struct sys_reg_desc sys_reg_descs[] = { { PMU_SYS_REG(SYS_PMCEID1_EL0), .access = access_pmceid, .reset = NULL }, { PMU_SYS_REG(SYS_PMCCNTR_EL0), - .access = access_pmu_evcntr, .reset = reset_unknown, .reg = PMCCNTR_EL0 }, + .access = access_pmu_evcntr, .reset = reset_unknown, + .reg = PMCCNTR_EL0, .get_user = get_pmu_evcntr}, { PMU_SYS_REG(SYS_PMXEVTYPER_EL0), .access = access_pmu_evtyper, .reset = NULL }, { PMU_SYS_REG(SYS_PMXEVCNTR_EL0), diff --git a/arch/mips/bmips/dma.c b/arch/mips/bmips/dma.c index 33788668cbdb..3779e7855bd7 100644 --- a/arch/mips/bmips/dma.c +++ b/arch/mips/bmips/dma.c @@ -5,6 +5,8 @@ #include #include +bool bmips_rac_flush_disable; + void arch_sync_dma_for_cpu_all(void) { void __iomem *cbr = BMIPS_GET_CBR(); @@ -15,6 +17,9 @@ void arch_sync_dma_for_cpu_all(void) boot_cpu_type() != CPU_BMIPS4380) return; + if (unlikely(bmips_rac_flush_disable)) + return; + /* Flush stale data out of the readahead cache */ cfg = __raw_readl(cbr + BMIPS_RAC_CONFIG); __raw_writel(cfg | 0x100, cbr + BMIPS_RAC_CONFIG); diff --git a/arch/mips/bmips/setup.c b/arch/mips/bmips/setup.c index e95b3f78e7cd..549a6392a3d2 100644 --- a/arch/mips/bmips/setup.c +++ b/arch/mips/bmips/setup.c @@ -35,6 +35,8 @@ #define REG_BCM6328_OTP ((void __iomem *)CKSEG1ADDR(0x1000062c)) #define BCM6328_TP1_DISABLED BIT(9) +extern bool bmips_rac_flush_disable; + static const unsigned long kbase = VMLINUX_LOAD_ADDRESS & 0xfff00000; struct bmips_quirk { @@ -104,6 +106,12 @@ static void bcm6358_quirks(void) * disable SMP for now */ bmips_smp_enabled = 0; + + /* + * RAC flush causes kernel panics on BCM6358 when booting from TP1 + * because the bootloader is not initializing it properly. + */ + bmips_rac_flush_disable = !!(read_c0_brcm_cmt_local() & (1 << 31)); } static void bcm6368_quirks(void) diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush.h b/arch/powerpc/include/asm/book3s/64/tlbflush.h index 67655cd60545..985bd8e69bdc 100644 --- a/arch/powerpc/include/asm/book3s/64/tlbflush.h +++ b/arch/powerpc/include/asm/book3s/64/tlbflush.h @@ -163,6 +163,11 @@ static inline void flush_tlb_fix_spurious_fault(struct vm_area_struct *vma, */ } +static inline bool __pte_protnone(unsigned long pte) +{ + return (pte & (pgprot_val(PAGE_NONE) | _PAGE_RWX)) == pgprot_val(PAGE_NONE); +} + static inline bool __pte_flags_need_flush(unsigned long oldval, unsigned long newval) { @@ -179,8 +184,8 @@ static inline bool __pte_flags_need_flush(unsigned long oldval, /* * We do not expect kernel mappings or non-PTEs or not-present PTEs. */ - VM_WARN_ON_ONCE(oldval & _PAGE_PRIVILEGED); - VM_WARN_ON_ONCE(newval & _PAGE_PRIVILEGED); + VM_WARN_ON_ONCE(!__pte_protnone(oldval) && oldval & _PAGE_PRIVILEGED); + VM_WARN_ON_ONCE(!__pte_protnone(newval) && newval & _PAGE_PRIVILEGED); VM_WARN_ON_ONCE(!(oldval & _PAGE_PTE)); VM_WARN_ON_ONCE(!(newval & _PAGE_PTE)); VM_WARN_ON_ONCE(!(oldval & _PAGE_PRESENT)); diff --git a/arch/powerpc/kernel/ptrace/ptrace-view.c b/arch/powerpc/kernel/ptrace/ptrace-view.c index 076d867412c7..31876db8e996 100644 --- a/arch/powerpc/kernel/ptrace/ptrace-view.c +++ b/arch/powerpc/kernel/ptrace/ptrace-view.c @@ -290,6 +290,9 @@ static int gpr_set(struct task_struct *target, const struct user_regset *regset, static int ppr_get(struct task_struct *target, const struct user_regset *regset, struct membuf to) { + if (!target->thread.regs) + return -EINVAL; + return membuf_write(&to, &target->thread.regs->ppr, sizeof(u64)); } @@ -297,6 +300,9 @@ static int ppr_set(struct task_struct *target, const struct user_regset *regset, unsigned int pos, unsigned int count, const void *kbuf, const void __user *ubuf) { + if (!target->thread.regs) + return -EINVAL; + return user_regset_copyin(&pos, &count, &kbuf, &ubuf, &target->thread.regs->ppr, 0, sizeof(u64)); } diff --git a/arch/powerpc/platforms/pseries/vas.c b/arch/powerpc/platforms/pseries/vas.c index 4ad6e510d405..94c023bb13e0 100644 --- a/arch/powerpc/platforms/pseries/vas.c +++ b/arch/powerpc/platforms/pseries/vas.c @@ -857,6 +857,13 @@ int pseries_vas_dlpar_cpu(void) { int new_nr_creds, rc; + /* + * NX-GZIP is not enabled. Nothing to do for DLPAR event + */ + if (!copypaste_feat) + return 0; + + rc = h_query_vas_capabilities(H_QUERY_VAS_CAPABILITIES, vascaps[VAS_GZIP_DEF_FEAT_TYPE].feat, (u64)virt_to_phys(&hv_cop_caps)); @@ -1013,6 +1020,7 @@ static int __init pseries_vas_init(void) * Linux supports user space COPY/PASTE only with Radix */ if (!radix_enabled()) { + copypaste_feat = false; pr_err("API is supported only with radix page tables\n"); return -ENOTSUPP; } diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index ae11d5647f9d..06b9b2f60b9f 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -278,7 +278,7 @@ config ARCH_RV64I select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL select HAVE_FUNCTION_GRAPH_TRACER - select HAVE_FUNCTION_TRACER if !XIP_KERNEL + select HAVE_FUNCTION_TRACER if !XIP_KERNEL && !PREEMPTION select SWIOTLB if MMU endchoice diff --git a/arch/riscv/kvm/vcpu_timer.c b/arch/riscv/kvm/vcpu_timer.c index ad34519c8a13..3ac2ff6a65da 100644 --- a/arch/riscv/kvm/vcpu_timer.c +++ b/arch/riscv/kvm/vcpu_timer.c @@ -147,10 +147,8 @@ static void kvm_riscv_vcpu_timer_blocking(struct kvm_vcpu *vcpu) return; delta_ns = kvm_riscv_delta_cycles2ns(t->next_cycles, gt, t); - if (delta_ns) { - hrtimer_start(&t->hrt, ktime_set(0, delta_ns), HRTIMER_MODE_REL); - t->next_set = true; - } + hrtimer_start(&t->hrt, ktime_set(0, delta_ns), HRTIMER_MODE_REL); + t->next_set = true; } static void kvm_riscv_vcpu_timer_unblocking(struct kvm_vcpu *vcpu) diff --git a/arch/s390/Makefile b/arch/s390/Makefile index b3235ab0ace8..ed646c583e4f 100644 --- a/arch/s390/Makefile +++ b/arch/s390/Makefile @@ -162,7 +162,7 @@ vdso_prepare: prepare0 ifdef CONFIG_EXPOLINE_EXTERN modules_prepare: expoline_prepare -expoline_prepare: +expoline_prepare: scripts $(Q)$(MAKE) $(build)=arch/s390/lib/expoline arch/s390/lib/expoline/expoline.o endif endif diff --git a/arch/s390/lib/uaccess.c b/arch/s390/lib/uaccess.c index 720036fb1924..d44214072779 100644 --- a/arch/s390/lib/uaccess.c +++ b/arch/s390/lib/uaccess.c @@ -172,7 +172,7 @@ unsigned long __clear_user(void __user *to, unsigned long size) "4: slgr %0,%0\n" "5:\n" EX_TABLE(0b,2b) EX_TABLE(6b,2b) EX_TABLE(3b,5b) EX_TABLE(7b,5b) - : "+a" (size), "+a" (to), "+a" (tmp1), "=a" (tmp2) + : "+&a" (size), "+&a" (to), "+a" (tmp1), "=&a" (tmp2) : "a" (empty_zero_page), [spec] "d" (spec.val) : "cc", "memory", "0"); return size; diff --git a/arch/x86/configs/gki_defconfig b/arch/x86/configs/gki_defconfig index 61fd094192b0..fe453a1b482f 100644 --- a/arch/x86/configs/gki_defconfig +++ b/arch/x86/configs/gki_defconfig @@ -109,6 +109,7 @@ CONFIG_CMA=y CONFIG_CMA_DEBUGFS=y CONFIG_CMA_AREAS=16 # CONFIG_ZONE_DMA is not set +CONFIG_ZONE_DEVICE=y CONFIG_ANON_VMA_NAME=y CONFIG_USERFAULTFD=y CONFIG_LRU_GEN=y @@ -445,6 +446,7 @@ CONFIG_HID_WIIMOTE=y CONFIG_USB_HIDDEV=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PCI_RENESAS=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_HCD_PLATFORM=y @@ -466,6 +468,7 @@ CONFIG_USB_CONFIGFS_MASS_STORAGE=y CONFIG_USB_CONFIGFS_F_FS=y CONFIG_USB_CONFIGFS_F_ACC=y CONFIG_USB_CONFIGFS_F_AUDIO_SRC=y +CONFIG_USB_CONFIGFS_F_UAC2=y CONFIG_USB_CONFIGFS_F_MIDI=y CONFIG_USB_CONFIGFS_F_HID=y CONFIG_USB_CONFIGFS_F_UVC=y diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile index 3c5b52fbe4a7..a9ec8c9f5c5d 100644 --- a/arch/x86/xen/Makefile +++ b/arch/x86/xen/Makefile @@ -45,6 +45,6 @@ obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o obj-$(CONFIG_XEN_DEBUG_FS) += debugfs.o -obj-$(CONFIG_XEN_PV_DOM0) += vga.o +obj-$(CONFIG_XEN_DOM0) += vga.o obj-$(CONFIG_XEN_EFI) += efi.o diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c index 8944726255c9..333539bdbdaa 100644 --- a/arch/x86/xen/enlighten_pv.c +++ b/arch/x86/xen/enlighten_pv.c @@ -1389,7 +1389,8 @@ asmlinkage __visible void __init xen_start_kernel(struct start_info *si) x86_platform.set_legacy_features = xen_dom0_set_legacy_features; - xen_init_vga(info, xen_start_info->console.dom0.info_size); + xen_init_vga(info, xen_start_info->console.dom0.info_size, + &boot_params.screen_info); xen_start_info->console.domU.mfn = 0; xen_start_info->console.domU.evtchn = 0; diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c index bcae606bbc5c..ada3868c02c2 100644 --- a/arch/x86/xen/enlighten_pvh.c +++ b/arch/x86/xen/enlighten_pvh.c @@ -43,6 +43,19 @@ void __init xen_pvh_init(struct boot_params *boot_params) x86_init.oem.banner = xen_banner; xen_efi_init(boot_params); + + if (xen_initial_domain()) { + struct xen_platform_op op = { + .cmd = XENPF_get_dom0_console, + }; + int ret = HYPERVISOR_platform_op(&op); + + if (ret > 0) + xen_init_vga(&op.u.dom0_console, + min(ret * sizeof(char), + sizeof(op.u.dom0_console)), + &boot_params->screen_info); + } } void __init mem_map_via_hcall(struct boot_params *boot_params_p) diff --git a/arch/x86/xen/vga.c b/arch/x86/xen/vga.c index 14ea32e734d5..d97adab8420f 100644 --- a/arch/x86/xen/vga.c +++ b/arch/x86/xen/vga.c @@ -9,10 +9,9 @@ #include "xen-ops.h" -void __init xen_init_vga(const struct dom0_vga_console_info *info, size_t size) +void __init xen_init_vga(const struct dom0_vga_console_info *info, size_t size, + struct screen_info *screen_info) { - struct screen_info *screen_info = &boot_params.screen_info; - /* This is drawn from a dump from vgacon:startup in * standard Linux. */ screen_info->orig_video_mode = 3; diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h index 9a8bb972193d..a10903785a33 100644 --- a/arch/x86/xen/xen-ops.h +++ b/arch/x86/xen/xen-ops.h @@ -108,11 +108,12 @@ static inline void xen_uninit_lock_cpu(int cpu) struct dom0_vga_console_info; -#ifdef CONFIG_XEN_PV_DOM0 -void __init xen_init_vga(const struct dom0_vga_console_info *, size_t size); +#ifdef CONFIG_XEN_DOM0 +void __init xen_init_vga(const struct dom0_vga_console_info *, size_t size, + struct screen_info *); #else static inline void __init xen_init_vga(const struct dom0_vga_console_info *info, - size_t size) + size_t size, struct screen_info *si) { } #endif diff --git a/arch/xtensa/kernel/traps.c b/arch/xtensa/kernel/traps.c index 0c25e035ff10..9e9ade20a7ce 100644 --- a/arch/xtensa/kernel/traps.c +++ b/arch/xtensa/kernel/traps.c @@ -541,7 +541,7 @@ static size_t kstack_depth_to_print = CONFIG_PRINT_STACK_DEPTH; void show_stack(struct task_struct *task, unsigned long *sp, const char *loglvl) { - size_t len; + size_t len, off = 0; if (!sp) sp = stack_pointer(task); @@ -550,9 +550,17 @@ void show_stack(struct task_struct *task, unsigned long *sp, const char *loglvl) kstack_depth_to_print * STACK_DUMP_ENTRY_SIZE); printk("%sStack:\n", loglvl); - print_hex_dump(loglvl, " ", DUMP_PREFIX_NONE, - STACK_DUMP_LINE_SIZE, STACK_DUMP_ENTRY_SIZE, - sp, len, false); + while (off < len) { + u8 line[STACK_DUMP_LINE_SIZE]; + size_t line_len = len - off > STACK_DUMP_LINE_SIZE ? + STACK_DUMP_LINE_SIZE : len - off; + + __memcpy(line, (u8 *)sp + off, line_len); + print_hex_dump(loglvl, " ", DUMP_PREFIX_NONE, + STACK_DUMP_LINE_SIZE, STACK_DUMP_ENTRY_SIZE, + line, line_len, false); + off += STACK_DUMP_LINE_SIZE; + } show_trace(task, sp, loglvl); } diff --git a/build.config.common b/build.config.common index 5a67ace77df1..25be880559a9 100644 --- a/build.config.common +++ b/build.config.common @@ -1,6 +1,6 @@ . ${ROOT_DIR}/${KERNEL_DIR}/build.config.constants -KMI_GENERATION=3 +KMI_GENERATION=4 LLVM=1 DEPMOD=depmod diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index d466c8195314..3b6146b1e25c 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -456,85 +456,67 @@ out_free: Notification Handling -------------------------------------------------------------------------- */ -/* - * acpi_bus_notify - * --------------- - * Callback for all 'system-level' device notifications (values 0x00-0x7F). +/** + * acpi_bus_notify - Global system-level (0x00-0x7F) notifications handler + * @handle: Target ACPI object. + * @type: Notification type. + * @data: Ignored. + * + * This only handles notifications related to device hotplug. */ static void acpi_bus_notify(acpi_handle handle, u32 type, void *data) { struct acpi_device *adev; - u32 ost_code = ACPI_OST_SC_NON_SPECIFIC_FAILURE; - bool hotplug_event = false; switch (type) { case ACPI_NOTIFY_BUS_CHECK: acpi_handle_debug(handle, "ACPI_NOTIFY_BUS_CHECK event\n"); - hotplug_event = true; break; case ACPI_NOTIFY_DEVICE_CHECK: acpi_handle_debug(handle, "ACPI_NOTIFY_DEVICE_CHECK event\n"); - hotplug_event = true; break; case ACPI_NOTIFY_DEVICE_WAKE: acpi_handle_debug(handle, "ACPI_NOTIFY_DEVICE_WAKE event\n"); - break; + return; case ACPI_NOTIFY_EJECT_REQUEST: acpi_handle_debug(handle, "ACPI_NOTIFY_EJECT_REQUEST event\n"); - hotplug_event = true; break; case ACPI_NOTIFY_DEVICE_CHECK_LIGHT: acpi_handle_debug(handle, "ACPI_NOTIFY_DEVICE_CHECK_LIGHT event\n"); /* TBD: Exactly what does 'light' mean? */ - break; + return; case ACPI_NOTIFY_FREQUENCY_MISMATCH: acpi_handle_err(handle, "Device cannot be configured due " "to a frequency mismatch\n"); - break; + return; case ACPI_NOTIFY_BUS_MODE_MISMATCH: acpi_handle_err(handle, "Device cannot be configured due " "to a bus mode mismatch\n"); - break; + return; case ACPI_NOTIFY_POWER_FAULT: acpi_handle_err(handle, "Device has suffered a power fault\n"); - break; + return; default: acpi_handle_debug(handle, "Unknown event type 0x%x\n", type); - break; - } - - adev = acpi_get_acpi_dev(handle); - if (!adev) - goto err; - - if (adev->dev.driver) { - struct acpi_driver *driver = to_acpi_driver(adev->dev.driver); - - if (driver && driver->ops.notify && - (driver->flags & ACPI_DRIVER_ALL_NOTIFY_EVENTS)) - driver->ops.notify(adev, type); - } - - if (!hotplug_event) { - acpi_put_acpi_dev(adev); return; } - if (ACPI_SUCCESS(acpi_hotplug_schedule(adev, type))) + adev = acpi_get_acpi_dev(handle); + + if (adev && ACPI_SUCCESS(acpi_hotplug_schedule(adev, type))) return; acpi_put_acpi_dev(adev); - err: - acpi_evaluate_ost(handle, type, ost_code, NULL); + acpi_evaluate_ost(handle, type, ACPI_OST_SC_NON_SPECIFIC_FAILURE, NULL); } static void acpi_notify_device(acpi_handle handle, u32 event, void *data) @@ -559,42 +541,51 @@ static u32 acpi_device_fixed_event(void *data) return ACPI_INTERRUPT_HANDLED; } -static int acpi_device_install_notify_handler(struct acpi_device *device) +static int acpi_device_install_notify_handler(struct acpi_device *device, + struct acpi_driver *acpi_drv) { acpi_status status; - if (device->device_type == ACPI_BUS_TYPE_POWER_BUTTON) + if (device->device_type == ACPI_BUS_TYPE_POWER_BUTTON) { status = acpi_install_fixed_event_handler(ACPI_EVENT_POWER_BUTTON, acpi_device_fixed_event, device); - else if (device->device_type == ACPI_BUS_TYPE_SLEEP_BUTTON) + } else if (device->device_type == ACPI_BUS_TYPE_SLEEP_BUTTON) { status = acpi_install_fixed_event_handler(ACPI_EVENT_SLEEP_BUTTON, acpi_device_fixed_event, device); - else - status = acpi_install_notify_handler(device->handle, - ACPI_DEVICE_NOTIFY, + } else { + u32 type = acpi_drv->flags & ACPI_DRIVER_ALL_NOTIFY_EVENTS ? + ACPI_ALL_NOTIFY : ACPI_DEVICE_NOTIFY; + + status = acpi_install_notify_handler(device->handle, type, acpi_notify_device, device); + } if (ACPI_FAILURE(status)) return -EINVAL; return 0; } -static void acpi_device_remove_notify_handler(struct acpi_device *device) +static void acpi_device_remove_notify_handler(struct acpi_device *device, + struct acpi_driver *acpi_drv) { - if (device->device_type == ACPI_BUS_TYPE_POWER_BUTTON) + if (device->device_type == ACPI_BUS_TYPE_POWER_BUTTON) { acpi_remove_fixed_event_handler(ACPI_EVENT_POWER_BUTTON, acpi_device_fixed_event); - else if (device->device_type == ACPI_BUS_TYPE_SLEEP_BUTTON) + } else if (device->device_type == ACPI_BUS_TYPE_SLEEP_BUTTON) { acpi_remove_fixed_event_handler(ACPI_EVENT_SLEEP_BUTTON, acpi_device_fixed_event); - else - acpi_remove_notify_handler(device->handle, ACPI_DEVICE_NOTIFY, + } else { + u32 type = acpi_drv->flags & ACPI_DRIVER_ALL_NOTIFY_EVENTS ? + ACPI_ALL_NOTIFY : ACPI_DEVICE_NOTIFY; + + acpi_remove_notify_handler(device->handle, type, acpi_notify_device); + } } /* Handle events targeting \_SB device (at present only graceful shutdown) */ @@ -1036,7 +1027,7 @@ static int acpi_device_probe(struct device *dev) acpi_drv->name, acpi_dev->pnp.bus_id); if (acpi_drv->ops.notify) { - ret = acpi_device_install_notify_handler(acpi_dev); + ret = acpi_device_install_notify_handler(acpi_dev, acpi_drv); if (ret) { if (acpi_drv->ops.remove) acpi_drv->ops.remove(acpi_dev); @@ -1059,7 +1050,7 @@ static void acpi_device_remove(struct device *dev) struct acpi_driver *acpi_drv = to_acpi_driver(dev->driver); if (acpi_drv->ops.notify) - acpi_device_remove_notify_handler(acpi_dev); + acpi_device_remove_notify_handler(acpi_dev, acpi_drv); if (acpi_drv->ops.remove) acpi_drv->ops.remove(acpi_dev); diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c index 7f0ed845cd6a..f06b3d355671 100644 --- a/drivers/acpi/video_detect.c +++ b/drivers/acpi/video_detect.c @@ -714,6 +714,13 @@ static const struct dmi_system_id video_detect_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "Dell G15 5515"), }, }, + { + .callback = video_detect_force_native, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 15 3535"), + }, + }, /* * Desktops which falsely report a backlight and which our heuristics diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 66e0acb9f15b..3ce018a5950e 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -36,6 +36,8 @@ #include #include #include +#include +#include #include #include #include @@ -55,6 +57,7 @@ #include #include #include +#include /* * Export tracepoints that act as a bare tracehook (ie: have no trace event @@ -110,6 +113,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_send_uic_command); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_send_tm_command); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_check_int_errors); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_update_sdev); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_clock_scaling); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cgroup_attach); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_iommu_setup_dma_ops); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_iommu_alloc_insert_iova); @@ -129,6 +133,14 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_insert); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_node_delete); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_node_replace); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_lookup); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_commit_creds); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_exit_creds); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_override_creds); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_revert_creds); +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); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_module_permit_after_init); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_is_initialized); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_shmem_get_folio); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_mmap_file); @@ -168,3 +180,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_disable_thermal_cooling_stats); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gic_resume); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_audio_usb_offload_connect); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_audio_usb_offload_disconnect); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_typec_tcpci_override_toggling); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_typec_tcpci_get_vbus); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_typec_store_partner_src_caps); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_typec_tcpm_get_timer); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_typec_tcpm_modify_src_caps); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_typec_tcpm_log); diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 793ae876918c..426d0b42685a 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -1010,9 +1010,6 @@ static int loop_configure(struct loop_device *lo, fmode_t mode, /* This is safe, since we have a reference from open(). */ __module_get(THIS_MODULE); - /* suppress uevents while reconfiguring the device */ - dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 1); - /* * If we don't hold exclusive handle for the device, upgrade to it * here to avoid changing device under exclusive owner. @@ -1067,6 +1064,9 @@ static int loop_configure(struct loop_device *lo, fmode_t mode, } } + /* suppress uevents while reconfiguring the device */ + dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 1); + disk_force_media_change(lo->lo_disk, DISK_EVENT_MEDIA_CHANGE); set_disk_ro(lo->lo_disk, (lo->lo_flags & LO_FLAGS_READ_ONLY) != 0); @@ -1109,17 +1109,17 @@ static int loop_configure(struct loop_device *lo, fmode_t mode, if (partscan) clear_bit(GD_SUPPRESS_PART_SCAN, &lo->lo_disk->state); + /* enable and uncork uevent now that we are done */ + dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0); + loop_global_unlock(lo, is_loop); if (partscan) loop_reread_partitions(lo); + if (!(mode & FMODE_EXCL)) bd_abort_claiming(bdev, loop_configure); - error = 0; -done: - /* enable and uncork uevent now that we are done */ - dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0); - return error; + return 0; out_unlock: loop_global_unlock(lo, is_loop); @@ -1130,7 +1130,7 @@ out_putf: fput(file); /* This is safe: open() is still holding a reference. */ module_put(THIS_MODULE); - goto done; + return error; } static void __loop_clr_fd(struct loop_device *lo, bool release) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 4aec9be0ab77..22a790d51284 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -656,7 +656,8 @@ static void __ublk_fail_req(struct ublk_queue *ubq, struct ublk_io *io, } } -static void ubq_complete_io_cmd(struct ublk_io *io, int res) +static void ubq_complete_io_cmd(struct ublk_io *io, int res, + unsigned issue_flags) { /* mark this cmd owned by ublksrv */ io->flags |= UBLK_IO_FLAG_OWNED_BY_SRV; @@ -668,7 +669,7 @@ static void ubq_complete_io_cmd(struct ublk_io *io, int res) io->flags &= ~UBLK_IO_FLAG_ACTIVE; /* tell ublksrv one io request is coming */ - io_uring_cmd_done(io->cmd, res, 0); + io_uring_cmd_done(io->cmd, res, 0, issue_flags); } #define UBLK_REQUEUE_DELAY_MS 3 @@ -685,7 +686,8 @@ static inline void __ublk_abort_rq(struct ublk_queue *ubq, mod_delayed_work(system_wq, &ubq->dev->monitor_work, 0); } -static inline void __ublk_rq_task_work(struct request *req) +static inline void __ublk_rq_task_work(struct request *req, + unsigned issue_flags) { struct ublk_queue *ubq = req->mq_hctx->driver_data; int tag = req->tag; @@ -723,7 +725,7 @@ static inline void __ublk_rq_task_work(struct request *req) pr_devel("%s: need get data. op %d, qid %d tag %d io_flags %x\n", __func__, io->cmd->cmd_op, ubq->q_id, req->tag, io->flags); - ubq_complete_io_cmd(io, UBLK_IO_RES_NEED_GET_DATA); + ubq_complete_io_cmd(io, UBLK_IO_RES_NEED_GET_DATA, issue_flags); return; } /* @@ -761,17 +763,18 @@ static inline void __ublk_rq_task_work(struct request *req) mapped_bytes >> 9; } - ubq_complete_io_cmd(io, UBLK_IO_RES_OK); + ubq_complete_io_cmd(io, UBLK_IO_RES_OK, issue_flags); } -static inline void ublk_forward_io_cmds(struct ublk_queue *ubq) +static inline void ublk_forward_io_cmds(struct ublk_queue *ubq, + unsigned issue_flags) { struct llist_node *io_cmds = llist_del_all(&ubq->io_cmds); struct ublk_rq_data *data, *tmp; io_cmds = llist_reverse_order(io_cmds); llist_for_each_entry_safe(data, tmp, io_cmds, node) - __ublk_rq_task_work(blk_mq_rq_from_pdu(data)); + __ublk_rq_task_work(blk_mq_rq_from_pdu(data), issue_flags); } static inline void ublk_abort_io_cmds(struct ublk_queue *ubq) @@ -783,12 +786,12 @@ static inline void ublk_abort_io_cmds(struct ublk_queue *ubq) __ublk_abort_rq(ubq, blk_mq_rq_from_pdu(data)); } -static void ublk_rq_task_work_cb(struct io_uring_cmd *cmd) +static void ublk_rq_task_work_cb(struct io_uring_cmd *cmd, unsigned issue_flags) { struct ublk_uring_cmd_pdu *pdu = ublk_get_uring_cmd_pdu(cmd); struct ublk_queue *ubq = pdu->ubq; - ublk_forward_io_cmds(ubq); + ublk_forward_io_cmds(ubq, issue_flags); } static void ublk_rq_task_work_fn(struct callback_head *work) @@ -797,8 +800,9 @@ static void ublk_rq_task_work_fn(struct callback_head *work) struct ublk_rq_data, work); struct request *req = blk_mq_rq_from_pdu(data); struct ublk_queue *ubq = req->mq_hctx->driver_data; + unsigned issue_flags = IO_URING_F_UNLOCKED; - ublk_forward_io_cmds(ubq); + ublk_forward_io_cmds(ubq, issue_flags); } static void ublk_queue_cmd(struct ublk_queue *ubq, struct request *rq) @@ -1052,7 +1056,8 @@ static void ublk_cancel_queue(struct ublk_queue *ubq) struct ublk_io *io = &ubq->ios[i]; if (io->flags & UBLK_IO_FLAG_ACTIVE) - io_uring_cmd_done(io->cmd, UBLK_IO_RES_ABORT, 0); + io_uring_cmd_done(io->cmd, UBLK_IO_RES_ABORT, 0, + IO_URING_F_UNLOCKED); } /* all io commands are canceled */ @@ -1295,7 +1300,7 @@ static int ublk_ch_uring_cmd(struct io_uring_cmd *cmd, unsigned int issue_flags) return -EIOCBQUEUED; out: - io_uring_cmd_done(cmd, ret, 0); + io_uring_cmd_done(cmd, ret, 0, issue_flags); pr_devel("%s: complete: cmd op %d, tag %d ret %x io_flags %x\n", __func__, cmd_op, tag, ret, io->flags); return -EIOCBQUEUED; @@ -2053,7 +2058,7 @@ static int ublk_ctrl_uring_cmd(struct io_uring_cmd *cmd, break; } out: - io_uring_cmd_done(cmd, ret, 0); + io_uring_cmd_done(cmd, ret, 0, issue_flags); pr_devel("%s: cmd done ret %d cmd_op %x, dev id %d qid %d\n", __func__, ret, cmd->cmd_op, header->dev_id, header->queue_id); return -EIOCBQUEUED; diff --git a/drivers/dma/idxd/cdev.c b/drivers/dma/idxd/cdev.c index a9b96b18772f..e13e92609943 100644 --- a/drivers/dma/idxd/cdev.c +++ b/drivers/dma/idxd/cdev.c @@ -6,7 +6,6 @@ #include #include #include -#include #include #include #include @@ -100,7 +99,7 @@ static int idxd_cdev_open(struct inode *inode, struct file *filp) filp->private_data = ctx; if (device_user_pasid_enabled(idxd)) { - sva = iommu_sva_bind_device(dev, current->mm, NULL); + sva = iommu_sva_bind_device(dev, current->mm); if (IS_ERR(sva)) { rc = PTR_ERR(sva); dev_err(dev, "pasid allocation failed: %d\n", rc); diff --git a/drivers/dma/idxd/init.c b/drivers/dma/idxd/init.c index e0f49545d89f..e63b0c674d88 100644 --- a/drivers/dma/idxd/init.c +++ b/drivers/dma/idxd/init.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -502,29 +501,7 @@ static struct idxd_device *idxd_alloc(struct pci_dev *pdev, struct idxd_driver_d static int idxd_enable_system_pasid(struct idxd_device *idxd) { - int flags; - unsigned int pasid; - struct iommu_sva *sva; - - flags = SVM_FLAG_SUPERVISOR_MODE; - - sva = iommu_sva_bind_device(&idxd->pdev->dev, NULL, &flags); - if (IS_ERR(sva)) { - dev_warn(&idxd->pdev->dev, - "iommu sva bind failed: %ld\n", PTR_ERR(sva)); - return PTR_ERR(sva); - } - - pasid = iommu_sva_get_pasid(sva); - if (pasid == IOMMU_PASID_INVALID) { - iommu_sva_unbind_device(sva); - return -ENODEV; - } - - idxd->sva = sva; - idxd->pasid = pasid; - dev_dbg(&idxd->pdev->dev, "system pasid: %u\n", pasid); - return 0; + return -EOPNOTSUPP; } static void idxd_disable_system_pasid(struct idxd_device *idxd) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c index 435d81d6ffd9..a78e80f9f65c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c @@ -981,7 +981,12 @@ static bool amdgpu_atcs_pci_probe_handle(struct pci_dev *pdev) */ bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev) { - if (adev->flags & AMD_IS_APU) + if ((adev->flags & AMD_IS_APU) && + adev->gfx.imu.funcs) /* Not need to do mode2 reset for IMU enabled APUs */ + return false; + + if ((adev->flags & AMD_IS_APU) && + amdgpu_acpi_is_s3_active(adev)) return false; if (amdgpu_sriov_vf(adev)) diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c index f79b8e964140..e191d38f3da6 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c @@ -1298,14 +1298,14 @@ static int kfd_ioctl_map_memory_to_gpu(struct file *filep, args->n_success = i+1; } - mutex_unlock(&p->mutex); - err = amdgpu_amdkfd_gpuvm_sync_memory(dev->adev, (struct kgd_mem *) mem, true); if (err) { pr_debug("Sync memory failed, wait interrupted by user signal\n"); goto sync_memory_failed; } + mutex_unlock(&p->mutex); + /* Flush TLBs after waiting for the page table updates to complete */ for (i = 0; i < args->n_devices; i++) { peer_pdd = kfd_process_device_data_by_id(p, devices_arr[i]); @@ -1321,9 +1321,9 @@ get_process_device_data_failed: bind_process_to_device_failed: get_mem_obj_from_handle_failed: map_memory_to_gpu_failed: +sync_memory_failed: mutex_unlock(&p->mutex); copy_from_user_failed: -sync_memory_failed: kfree(devices_arr); return err; @@ -1337,6 +1337,7 @@ static int kfd_ioctl_unmap_memory_from_gpu(struct file *filep, void *mem; long err = 0; uint32_t *devices_arr = NULL, i; + bool flush_tlb; if (!args->n_devices) { pr_debug("Device IDs array empty\n"); @@ -1389,16 +1390,19 @@ static int kfd_ioctl_unmap_memory_from_gpu(struct file *filep, } args->n_success = i+1; } - mutex_unlock(&p->mutex); - if (kfd_flush_tlb_after_unmap(pdd->dev)) { + flush_tlb = kfd_flush_tlb_after_unmap(pdd->dev); + if (flush_tlb) { err = amdgpu_amdkfd_gpuvm_sync_memory(pdd->dev->adev, (struct kgd_mem *) mem, true); if (err) { pr_debug("Sync memory failed, wait interrupted by user signal\n"); goto sync_memory_failed; } + } + mutex_unlock(&p->mutex); + if (flush_tlb) { /* Flush TLBs after waiting for the page table updates to complete */ for (i = 0; i < args->n_devices; i++) { peer_pdd = kfd_process_device_data_by_id(p, devices_arr[i]); @@ -1414,9 +1418,9 @@ static int kfd_ioctl_unmap_memory_from_gpu(struct file *filep, bind_process_to_device_failed: get_mem_obj_from_handle_failed: unmap_memory_from_gpu_failed: +sync_memory_failed: mutex_unlock(&p->mutex); copy_from_user_failed: -sync_memory_failed: kfree(devices_arr); return err; } diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c index 22b077ac9a19..88bf6221d4be 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c @@ -295,7 +295,7 @@ static unsigned long svm_migrate_unsuccessful_pages(struct migrate_vma *migrate) static int svm_migrate_copy_to_vram(struct amdgpu_device *adev, struct svm_range *prange, struct migrate_vma *migrate, struct dma_fence **mfence, - dma_addr_t *scratch) + dma_addr_t *scratch, uint64_t ttm_res_offset) { uint64_t npages = migrate->npages; struct device *dev = adev->dev; @@ -305,19 +305,13 @@ svm_migrate_copy_to_vram(struct amdgpu_device *adev, struct svm_range *prange, uint64_t i, j; int r; - pr_debug("svms 0x%p [0x%lx 0x%lx]\n", prange->svms, prange->start, - prange->last); + pr_debug("svms 0x%p [0x%lx 0x%lx 0x%llx]\n", prange->svms, prange->start, + prange->last, ttm_res_offset); src = scratch; dst = (uint64_t *)(scratch + npages); - r = svm_range_vram_node_new(adev, prange, true); - if (r) { - dev_dbg(adev->dev, "fail %d to alloc vram\n", r); - goto out; - } - - amdgpu_res_first(prange->ttm_res, prange->offset << PAGE_SHIFT, + amdgpu_res_first(prange->ttm_res, ttm_res_offset, npages << PAGE_SHIFT, &cursor); for (i = j = 0; i < npages; i++) { struct page *spage; @@ -397,14 +391,14 @@ out_free_vram_pages: migrate->dst[i + 3] = 0; } #endif -out: + return r; } static long svm_migrate_vma_to_vram(struct amdgpu_device *adev, struct svm_range *prange, struct vm_area_struct *vma, uint64_t start, - uint64_t end, uint32_t trigger) + uint64_t end, uint32_t trigger, uint64_t ttm_res_offset) { struct kfd_process *p = container_of(prange->svms, struct kfd_process, svms); uint64_t npages = (end - start) >> PAGE_SHIFT; @@ -457,7 +451,7 @@ svm_migrate_vma_to_vram(struct amdgpu_device *adev, struct svm_range *prange, else pr_debug("0x%lx pages migrated\n", cpages); - r = svm_migrate_copy_to_vram(adev, prange, &migrate, &mfence, scratch); + r = svm_migrate_copy_to_vram(adev, prange, &migrate, &mfence, scratch, ttm_res_offset); migrate_vma_pages(&migrate); pr_debug("successful/cpages/npages 0x%lx/0x%lx/0x%lx\n", @@ -505,6 +499,7 @@ svm_migrate_ram_to_vram(struct svm_range *prange, uint32_t best_loc, unsigned long addr, start, end; struct vm_area_struct *vma; struct amdgpu_device *adev; + uint64_t ttm_res_offset; unsigned long cpages = 0; long r = 0; @@ -526,6 +521,13 @@ svm_migrate_ram_to_vram(struct svm_range *prange, uint32_t best_loc, start = prange->start << PAGE_SHIFT; end = (prange->last + 1) << PAGE_SHIFT; + r = svm_range_vram_node_new(adev, prange, true); + if (r) { + dev_dbg(adev->dev, "fail %ld to alloc vram\n", r); + return r; + } + ttm_res_offset = prange->offset << PAGE_SHIFT; + for (addr = start; addr < end;) { unsigned long next; @@ -534,18 +536,21 @@ svm_migrate_ram_to_vram(struct svm_range *prange, uint32_t best_loc, break; next = min(vma->vm_end, end); - r = svm_migrate_vma_to_vram(adev, prange, vma, addr, next, trigger); + r = svm_migrate_vma_to_vram(adev, prange, vma, addr, next, trigger, ttm_res_offset); if (r < 0) { pr_debug("failed %ld to migrate\n", r); break; } else { cpages += r; } + ttm_res_offset += next - addr; addr = next; } if (cpages) prange->actual_loc = best_loc; + else + svm_range_vram_node_free(prange); return r < 0 ? r : 0; } diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_module.c b/drivers/gpu/drm/amd/amdkfd/kfd_module.c index 09b966dc3768..aee2212e52f6 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_module.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_module.c @@ -77,6 +77,7 @@ err_ioctl: static void kfd_exit(void) { + kfd_cleanup_processes(); kfd_debugfs_fini(); kfd_process_destroy_wq(); kfd_procfs_shutdown(); diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h index bf610e3b683b..6d6588b9beed 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h @@ -928,6 +928,7 @@ bool kfd_dev_is_large_bar(struct kfd_dev *dev); int kfd_process_create_wq(void); void kfd_process_destroy_wq(void); +void kfd_cleanup_processes(void); struct kfd_process *kfd_create_process(struct file *filep); struct kfd_process *kfd_get_process(const struct task_struct *task); struct kfd_process *kfd_lookup_process_by_pasid(u32 pasid); diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c index dd351105c1bc..7f68d51541e8 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c @@ -1167,6 +1167,17 @@ static void kfd_process_free_notifier(struct mmu_notifier *mn) kfd_unref_process(container_of(mn, struct kfd_process, mmu_notifier)); } +static void kfd_process_notifier_release_internal(struct kfd_process *p) +{ + cancel_delayed_work_sync(&p->eviction_work); + cancel_delayed_work_sync(&p->restore_work); + + /* Indicate to other users that MM is no longer valid */ + p->mm = NULL; + + mmu_notifier_put(&p->mmu_notifier); +} + static void kfd_process_notifier_release(struct mmu_notifier *mn, struct mm_struct *mm) { @@ -1181,17 +1192,22 @@ static void kfd_process_notifier_release(struct mmu_notifier *mn, return; mutex_lock(&kfd_processes_mutex); + /* + * Do early return if table is empty. + * + * This could potentially happen if this function is called concurrently + * by mmu_notifier and by kfd_cleanup_pocesses. + * + */ + if (hash_empty(kfd_processes_table)) { + mutex_unlock(&kfd_processes_mutex); + return; + } hash_del_rcu(&p->kfd_processes); mutex_unlock(&kfd_processes_mutex); synchronize_srcu(&kfd_processes_srcu); - cancel_delayed_work_sync(&p->eviction_work); - cancel_delayed_work_sync(&p->restore_work); - - /* Indicate to other users that MM is no longer valid */ - p->mm = NULL; - - mmu_notifier_put(&p->mmu_notifier); + kfd_process_notifier_release_internal(p); } static const struct mmu_notifier_ops kfd_process_mmu_notifier_ops = { @@ -1200,6 +1216,43 @@ static const struct mmu_notifier_ops kfd_process_mmu_notifier_ops = { .free_notifier = kfd_process_free_notifier, }; +/* + * This code handles the case when driver is being unloaded before all + * mm_struct are released. We need to safely free the kfd_process and + * avoid race conditions with mmu_notifier that might try to free them. + * + */ +void kfd_cleanup_processes(void) +{ + struct kfd_process *p; + struct hlist_node *p_temp; + unsigned int temp; + HLIST_HEAD(cleanup_list); + + /* + * Move all remaining kfd_process from the process table to a + * temp list for processing. Once done, callback from mmu_notifier + * release will not see the kfd_process in the table and do early return, + * avoiding double free issues. + */ + mutex_lock(&kfd_processes_mutex); + hash_for_each_safe(kfd_processes_table, temp, p_temp, p, kfd_processes) { + hash_del_rcu(&p->kfd_processes); + synchronize_srcu(&kfd_processes_srcu); + hlist_add_head(&p->kfd_processes, &cleanup_list); + } + mutex_unlock(&kfd_processes_mutex); + + hlist_for_each_entry_safe(p, p_temp, &cleanup_list, kfd_processes) + kfd_process_notifier_release_internal(p); + + /* + * Ensures that all outstanding free_notifier get called, triggering + * the release of the kfd_process struct. + */ + mmu_notifier_synchronize(); +} + static int kfd_process_init_cwsr_apu(struct kfd_process *p, struct file *filep) { unsigned long offset; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c index 5137476ec18e..4236539d9f93 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c @@ -218,8 +218,8 @@ static int init_user_queue(struct process_queue_manager *pqm, return 0; cleanup: - if (dev->shared_resources.enable_mes) - uninit_queue(*q); + uninit_queue(*q); + *q = NULL; return retval; } diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c index 8561e9b017a2..df74bc88e460 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c @@ -208,6 +208,21 @@ bool needs_dsc_aux_workaround(struct dc_link *link) return false; } +bool is_synaptics_cascaded_panamera(struct dc_link *link, struct drm_dp_mst_port *port) +{ + u8 branch_vendor_data[4] = { 0 }; // Vendor data 0x50C ~ 0x50F + + if (drm_dp_dpcd_read(port->mgr->aux, DP_BRANCH_VENDOR_SPECIFIC_START, &branch_vendor_data, 4) == 4) { + if (link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_90CC24 && + IS_SYNAPTICS_CASCADED_PANAMERA(link->dpcd_caps.branch_dev_name, branch_vendor_data)) { + DRM_INFO("Synaptics Cascaded MST hub\n"); + return true; + } + } + + return false; +} + static bool validate_dsc_caps_on_connector(struct amdgpu_dm_connector *aconnector) { struct dc_sink *dc_sink = aconnector->dc_sink; @@ -231,6 +246,10 @@ static bool validate_dsc_caps_on_connector(struct amdgpu_dm_connector *aconnecto needs_dsc_aux_workaround(aconnector->dc_link)) aconnector->dsc_aux = &aconnector->mst_port->dm_dp_aux.aux; + /* synaptics cascaded MST hub case */ + if (!aconnector->dsc_aux && is_synaptics_cascaded_panamera(aconnector->dc_link, port)) + aconnector->dsc_aux = port->mgr->aux; + if (!aconnector->dsc_aux) return false; @@ -627,12 +646,25 @@ struct dsc_mst_fairness_params { struct amdgpu_dm_connector *aconnector; }; -static int kbps_to_peak_pbn(int kbps) +static uint16_t get_fec_overhead_multiplier(struct dc_link *dc_link) +{ + u8 link_coding_cap; + uint16_t fec_overhead_multiplier_x1000 = PBN_FEC_OVERHEAD_MULTIPLIER_8B_10B; + + link_coding_cap = dc_link_dp_mst_decide_link_encoding_format(dc_link); + if (link_coding_cap == DP_128b_132b_ENCODING) + fec_overhead_multiplier_x1000 = PBN_FEC_OVERHEAD_MULTIPLIER_128B_132B; + + return fec_overhead_multiplier_x1000; +} + +static int kbps_to_peak_pbn(int kbps, uint16_t fec_overhead_multiplier_x1000) { u64 peak_kbps = kbps; peak_kbps *= 1006; - peak_kbps = div_u64(peak_kbps, 1000); + peak_kbps *= fec_overhead_multiplier_x1000; + peak_kbps = div_u64(peak_kbps, 1000 * 1000); return (int) DIV64_U64_ROUND_UP(peak_kbps * 64, (54 * 8 * 1000)); } @@ -719,11 +751,12 @@ static int increase_dsc_bpp(struct drm_atomic_state *state, int link_timeslots_used; int fair_pbn_alloc; int ret = 0; + uint16_t fec_overhead_multiplier_x1000 = get_fec_overhead_multiplier(dc_link); for (i = 0; i < count; i++) { if (vars[i + k].dsc_enabled) { initial_slack[i] = - kbps_to_peak_pbn(params[i].bw_range.max_kbps) - vars[i + k].pbn; + kbps_to_peak_pbn(params[i].bw_range.max_kbps, fec_overhead_multiplier_x1000) - vars[i + k].pbn; bpp_increased[i] = false; remaining_to_increase += 1; } else { @@ -819,6 +852,7 @@ static int try_disable_dsc(struct drm_atomic_state *state, int next_index; int remaining_to_try = 0; int ret; + uint16_t fec_overhead_multiplier_x1000 = get_fec_overhead_multiplier(dc_link); for (i = 0; i < count; i++) { if (vars[i + k].dsc_enabled @@ -848,7 +882,7 @@ static int try_disable_dsc(struct drm_atomic_state *state, if (next_index == -1) break; - vars[next_index].pbn = kbps_to_peak_pbn(params[next_index].bw_range.stream_kbps); + vars[next_index].pbn = kbps_to_peak_pbn(params[next_index].bw_range.stream_kbps, fec_overhead_multiplier_x1000); ret = drm_dp_atomic_find_time_slots(state, params[next_index].port->mgr, params[next_index].port, @@ -861,7 +895,7 @@ static int try_disable_dsc(struct drm_atomic_state *state, vars[next_index].dsc_enabled = false; vars[next_index].bpp_x16 = 0; } else { - vars[next_index].pbn = kbps_to_peak_pbn(params[next_index].bw_range.max_kbps); + vars[next_index].pbn = kbps_to_peak_pbn(params[next_index].bw_range.max_kbps, fec_overhead_multiplier_x1000); ret = drm_dp_atomic_find_time_slots(state, params[next_index].port->mgr, params[next_index].port, @@ -890,6 +924,7 @@ static int compute_mst_dsc_configs_for_link(struct drm_atomic_state *state, int count = 0; int i, k, ret; bool debugfs_overwrite = false; + uint16_t fec_overhead_multiplier_x1000 = get_fec_overhead_multiplier(dc_link); memset(params, 0, sizeof(params)); @@ -951,7 +986,7 @@ static int compute_mst_dsc_configs_for_link(struct drm_atomic_state *state, /* Try no compression */ for (i = 0; i < count; i++) { vars[i + k].aconnector = params[i].aconnector; - vars[i + k].pbn = kbps_to_peak_pbn(params[i].bw_range.stream_kbps); + vars[i + k].pbn = kbps_to_peak_pbn(params[i].bw_range.stream_kbps, fec_overhead_multiplier_x1000); vars[i + k].dsc_enabled = false; vars[i + k].bpp_x16 = 0; ret = drm_dp_atomic_find_time_slots(state, params[i].port->mgr, params[i].port, @@ -970,7 +1005,7 @@ static int compute_mst_dsc_configs_for_link(struct drm_atomic_state *state, /* Try max compression */ for (i = 0; i < count; i++) { if (params[i].compression_possible && params[i].clock_force_enable != DSC_CLK_FORCE_DISABLE) { - vars[i + k].pbn = kbps_to_peak_pbn(params[i].bw_range.min_kbps); + vars[i + k].pbn = kbps_to_peak_pbn(params[i].bw_range.min_kbps, fec_overhead_multiplier_x1000); vars[i + k].dsc_enabled = true; vars[i + k].bpp_x16 = params[i].bw_range.min_target_bpp_x16; ret = drm_dp_atomic_find_time_slots(state, params[i].port->mgr, @@ -978,7 +1013,7 @@ static int compute_mst_dsc_configs_for_link(struct drm_atomic_state *state, if (ret < 0) return ret; } else { - vars[i + k].pbn = kbps_to_peak_pbn(params[i].bw_range.stream_kbps); + vars[i + k].pbn = kbps_to_peak_pbn(params[i].bw_range.stream_kbps, fec_overhead_multiplier_x1000); vars[i + k].dsc_enabled = false; vars[i + k].bpp_x16 = 0; ret = drm_dp_atomic_find_time_slots(state, params[i].port->mgr, diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h index 97fd70df531b..1e4ede1e57ab 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h @@ -34,6 +34,21 @@ #define SYNAPTICS_RC_OFFSET 0x4BC #define SYNAPTICS_RC_DATA 0x4C0 +#define DP_BRANCH_VENDOR_SPECIFIC_START 0x50C + +/** + * Panamera MST Hub detection + * Offset DPCD 050Eh == 0x5A indicates cascaded MST hub case + * Check from beginning of branch device vendor specific field (050Ch) + */ +#define IS_SYNAPTICS_PANAMERA(branchDevName) (((int)branchDevName[4] & 0xF0) == 0x50 ? 1 : 0) +#define BRANCH_HW_REVISION_PANAMERA_A2 0x10 +#define SYNAPTICS_CASCADED_HUB_ID 0x5A +#define IS_SYNAPTICS_CASCADED_PANAMERA(devName, data) ((IS_SYNAPTICS_PANAMERA(devName) && ((int)data[2] == SYNAPTICS_CASCADED_HUB_ID)) ? 1 : 0) + +#define PBN_FEC_OVERHEAD_MULTIPLIER_8B_10B 1031 +#define PBN_FEC_OVERHEAD_MULTIPLIER_128B_132B 1000 + struct amdgpu_display_manager; struct amdgpu_dm_connector; diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c index 3fa2da149639..fc594ea5bbc1 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c @@ -91,7 +91,15 @@ static void *etnaviv_gem_prime_vmap_impl(struct etnaviv_gem_object *etnaviv_obj) static int etnaviv_gem_prime_mmap_obj(struct etnaviv_gem_object *etnaviv_obj, struct vm_area_struct *vma) { - return dma_buf_mmap(etnaviv_obj->base.dma_buf, vma, 0); + int ret; + + ret = dma_buf_mmap(etnaviv_obj->base.dma_buf, vma, 0); + if (!ret) { + /* Drop the reference acquired by drm_gem_mmap_obj(). */ + drm_gem_object_put(&etnaviv_obj->base); + } + + return ret; } static const struct etnaviv_gem_ops etnaviv_gem_prime_ops = { diff --git a/drivers/gpu/drm/i915/display/intel_color.c b/drivers/gpu/drm/i915/display/intel_color.c index 6bda4274eae9..c85757f55112 100644 --- a/drivers/gpu/drm/i915/display/intel_color.c +++ b/drivers/gpu/drm/i915/display/intel_color.c @@ -499,6 +499,22 @@ static void icl_color_commit_noarm(const struct intel_crtc_state *crtc_state) icl_load_csc_matrix(crtc_state); } +static void skl_color_commit_noarm(const struct intel_crtc_state *crtc_state) +{ + /* + * Possibly related to display WA #1184, SKL CSC loses the latched + * CSC coeff/offset register values if the CSC registers are disarmed + * between DC5 exit and PSR exit. This will cause the plane(s) to + * output all black (until CSC_MODE is rearmed and properly latched). + * Once PSR exit (and proper register latching) has occurred the + * danger is over. Thus when PSR is enabled the CSC coeff/offset + * register programming will be peformed from skl_color_commit_arm() + * which is called after PSR exit. + */ + if (!crtc_state->has_psr) + ilk_load_csc_matrix(crtc_state); +} + static void ilk_color_commit_noarm(const struct intel_crtc_state *crtc_state) { ilk_load_csc_matrix(crtc_state); @@ -541,6 +557,9 @@ static void skl_color_commit_arm(const struct intel_crtc_state *crtc_state) enum pipe pipe = crtc->pipe; u32 val = 0; + if (crtc_state->has_psr) + ilk_load_csc_matrix(crtc_state); + /* * We don't (yet) allow userspace to control the pipe background color, * so force it to black, but apply pipe gamma and CSC appropriately @@ -2171,7 +2190,7 @@ static const struct intel_color_funcs icl_color_funcs = { static const struct intel_color_funcs glk_color_funcs = { .color_check = glk_color_check, - .color_commit_noarm = ilk_color_commit_noarm, + .color_commit_noarm = skl_color_commit_noarm, .color_commit_arm = skl_color_commit_arm, .load_luts = glk_load_luts, .read_luts = glk_read_luts, @@ -2179,7 +2198,7 @@ static const struct intel_color_funcs glk_color_funcs = { static const struct intel_color_funcs skl_color_funcs = { .color_check = ivb_color_check, - .color_commit_noarm = ilk_color_commit_noarm, + .color_commit_noarm = skl_color_commit_noarm, .color_commit_arm = skl_color_commit_arm, .load_luts = bdw_load_luts, .read_luts = NULL, diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index e0d36edd1e3f..3f3982ae9974 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -7124,6 +7124,8 @@ static void intel_update_crtc(struct intel_atomic_state *state, intel_fbc_update(state, crtc); + drm_WARN_ON(&i915->drm, !intel_display_power_is_enabled(i915, POWER_DOMAIN_DC_OFF)); + if (!modeset && (new_crtc_state->uapi.color_mgmt_changed || new_crtc_state->update_pipe)) @@ -7500,8 +7502,28 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state) drm_atomic_helper_wait_for_dependencies(&state->base); drm_dp_mst_atomic_wait_for_dependencies(&state->base); - if (state->modeset) - wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_MODESET); + /* + * During full modesets we write a lot of registers, wait + * for PLLs, etc. Doing that while DC states are enabled + * is not a good idea. + * + * During fastsets and other updates we also need to + * disable DC states due to the following scenario: + * 1. DC5 exit and PSR exit happen + * 2. Some or all _noarm() registers are written + * 3. Due to some long delay PSR is re-entered + * 4. DC5 entry -> DMC saves the already written new + * _noarm() registers and the old not yet written + * _arm() registers + * 5. DC5 exit -> DMC restores a mixture of old and + * new register values and arms the update + * 6. PSR exit -> hardware latches a mixture of old and + * new register values -> corrupted frame, or worse + * 7. New _arm() registers are finally written + * 8. Hardware finally latches a complete set of new + * register values, and subsequent frames will be OK again + */ + wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_DC_OFF); intel_atomic_prepare_plane_clear_colors(state); @@ -7640,8 +7662,8 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state) * the culprit. */ intel_uncore_arm_unclaimed_mmio_detection(&dev_priv->uncore); - intel_display_power_put(dev_priv, POWER_DOMAIN_MODESET, wakeref); } + intel_display_power_put(dev_priv, POWER_DOMAIN_DC_OFF, wakeref); intel_runtime_pm_put(&dev_priv->runtime_pm, state->wakeref); /* diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c index ac587647e1f5..a3893aff3861 100644 --- a/drivers/gpu/drm/i915/display/intel_dpt.c +++ b/drivers/gpu/drm/i915/display/intel_dpt.c @@ -300,6 +300,7 @@ intel_dpt_create(struct intel_framebuffer *fb) vm->pte_encode = gen8_ggtt_pte_encode; dpt->obj = dpt_obj; + dpt->obj->is_dpt = true; return &dpt->vm; } @@ -308,5 +309,6 @@ void intel_dpt_destroy(struct i915_address_space *vm) { struct i915_dpt *dpt = i915_vm_to_dpt(vm); + dpt->obj->is_dpt = false; i915_vm_put(&dpt->vm); } diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c index e5af955b5600..8d6dac32c896 100644 --- a/drivers/gpu/drm/i915/display/intel_tc.c +++ b/drivers/gpu/drm/i915/display/intel_tc.c @@ -440,9 +440,9 @@ static bool icl_tc_phy_is_owned(struct intel_digital_port *dig_port) PORT_TX_DFLEXDPCSSS(dig_port->tc_phy_fia)); if (val == 0xffffffff) { drm_dbg_kms(&i915->drm, - "Port %s: PHY in TCCOLD, assume safe mode\n", + "Port %s: PHY in TCCOLD, assume not owned\n", dig_port->tc_port_name); - return true; + return false; } return val & DP_PHY_MODE_STATUS_NOT_SAFE(dig_port->tc_phy_fia_idx); diff --git a/drivers/gpu/drm/i915/gem/i915_gem_lmem.c b/drivers/gpu/drm/i915/gem/i915_gem_lmem.c index 8949fb0a944f..3198b64ad7db 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_lmem.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_lmem.c @@ -127,7 +127,8 @@ i915_gem_object_create_lmem_from_data(struct drm_i915_private *i915, memcpy(map, data, size); - i915_gem_object_unpin_map(obj); + i915_gem_object_flush_map(obj); + __i915_gem_object_release_map(obj); return obj; } diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h index 1723af9b0f6a..ea951e2f55b1 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h @@ -319,7 +319,7 @@ i915_gem_object_never_mmap(const struct drm_i915_gem_object *obj) static inline bool i915_gem_object_is_framebuffer(const struct drm_i915_gem_object *obj) { - return READ_ONCE(obj->frontbuffer); + return READ_ONCE(obj->frontbuffer) || obj->is_dpt; } static inline unsigned int diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h index ab4c2f90a564..1d0d8ee9d707 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h @@ -491,6 +491,9 @@ struct drm_i915_gem_object { */ unsigned int cache_dirty:1; + /* @is_dpt: Object houses a display page table (DPT) */ + unsigned int is_dpt:1; + /** * @read_domains: Read memory domains. * diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c index 41c93a18d5cb..32a3c42ec45b 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c @@ -356,7 +356,7 @@ static const struct dpu_caps sc8180x_dpu_caps = { static const struct dpu_caps sm8250_dpu_caps = { .max_mixer_width = DEFAULT_DPU_OUTPUT_LINE_WIDTH, .max_mixer_blendstages = 0xb, - .qseed_type = DPU_SSPP_SCALER_QSEED3LITE, + .qseed_type = DPU_SSPP_SCALER_QSEED4, .smart_dma_rev = DPU_SSPP_SMART_DMA_V2, /* TODO: v2.5 */ .ubwc_version = DPU_HW_UBWC_VER_40, .has_src_split = true, @@ -855,22 +855,22 @@ static const struct dpu_sspp_cfg sc7180_sspp[] = { }; static const struct dpu_sspp_sub_blks sm8250_vig_sblk_0 = - _VIG_SBLK("0", 5, DPU_SSPP_SCALER_QSEED3LITE); + _VIG_SBLK("0", 5, DPU_SSPP_SCALER_QSEED4); static const struct dpu_sspp_sub_blks sm8250_vig_sblk_1 = - _VIG_SBLK("1", 6, DPU_SSPP_SCALER_QSEED3LITE); + _VIG_SBLK("1", 6, DPU_SSPP_SCALER_QSEED4); static const struct dpu_sspp_sub_blks sm8250_vig_sblk_2 = - _VIG_SBLK("2", 7, DPU_SSPP_SCALER_QSEED3LITE); + _VIG_SBLK("2", 7, DPU_SSPP_SCALER_QSEED4); static const struct dpu_sspp_sub_blks sm8250_vig_sblk_3 = - _VIG_SBLK("3", 8, DPU_SSPP_SCALER_QSEED3LITE); + _VIG_SBLK("3", 8, DPU_SSPP_SCALER_QSEED4); static const struct dpu_sspp_cfg sm8250_sspp[] = { - SSPP_BLK("sspp_0", SSPP_VIG0, 0x4000, VIG_SM8250_MASK, + SSPP_BLK("sspp_0", SSPP_VIG0, 0x4000, VIG_SC7180_MASK, sm8250_vig_sblk_0, 0, SSPP_TYPE_VIG, DPU_CLK_CTRL_VIG0), - SSPP_BLK("sspp_1", SSPP_VIG1, 0x6000, VIG_SM8250_MASK, + SSPP_BLK("sspp_1", SSPP_VIG1, 0x6000, VIG_SC7180_MASK, sm8250_vig_sblk_1, 4, SSPP_TYPE_VIG, DPU_CLK_CTRL_VIG1), - SSPP_BLK("sspp_2", SSPP_VIG2, 0x8000, VIG_SM8250_MASK, + SSPP_BLK("sspp_2", SSPP_VIG2, 0x8000, VIG_SC7180_MASK, sm8250_vig_sblk_2, 8, SSPP_TYPE_VIG, DPU_CLK_CTRL_VIG2), - SSPP_BLK("sspp_3", SSPP_VIG3, 0xa000, VIG_SM8250_MASK, + SSPP_BLK("sspp_3", SSPP_VIG3, 0xa000, VIG_SC7180_MASK, sm8250_vig_sblk_3, 12, SSPP_TYPE_VIG, DPU_CLK_CTRL_VIG3), SSPP_BLK("sspp_8", SSPP_DMA0, 0x24000, DMA_SDM845_MASK, sdm845_dma_sblk_0, 1, SSPP_TYPE_DMA, DPU_CLK_CTRL_DMA0), @@ -1180,6 +1180,13 @@ static const struct dpu_pingpong_cfg sm8150_pp[] = { -1), }; +static const struct dpu_pingpong_cfg sc7280_pp[] = { + PP_BLK("pingpong_0", PINGPONG_0, 0x69000, 0, sc7280_pp_sblk, -1, -1), + PP_BLK("pingpong_1", PINGPONG_1, 0x6a000, 0, sc7280_pp_sblk, -1, -1), + PP_BLK("pingpong_2", PINGPONG_2, 0x6b000, 0, sc7280_pp_sblk, -1, -1), + PP_BLK("pingpong_3", PINGPONG_3, 0x6c000, 0, sc7280_pp_sblk, -1, -1), +}; + static struct dpu_pingpong_cfg qcm2290_pp[] = { PP_BLK("pingpong_0", PINGPONG_0, 0x70000, 0, sdm845_pp_sblk, DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 8), @@ -1203,13 +1210,6 @@ static const struct dpu_merge_3d_cfg sm8150_merge_3d[] = { MERGE_3D_BLK("merge_3d_2", MERGE_3D_2, 0x83200), }; -static const struct dpu_pingpong_cfg sc7280_pp[] = { - PP_BLK("pingpong_0", PINGPONG_0, 0x59000, 0, sc7280_pp_sblk, -1, -1), - PP_BLK("pingpong_1", PINGPONG_1, 0x6a000, 0, sc7280_pp_sblk, -1, -1), - PP_BLK("pingpong_2", PINGPONG_2, 0x6b000, 0, sc7280_pp_sblk, -1, -1), - PP_BLK("pingpong_3", PINGPONG_3, 0x6c000, 0, sc7280_pp_sblk, -1, -1), -}; - /************************************************************* * DSC sub blocks config *************************************************************/ diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c index 8fce98bb77ff..09dd0ed3b566 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #define SE_I2C_TX_TRANS_LEN 0x26c diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index f060ac7376e6..cfeb24d40d37 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c @@ -168,7 +168,13 @@ static __cpuidle int intel_idle_irq(struct cpuidle_device *dev, raw_local_irq_enable(); ret = __intel_idle(dev, drv, index); - raw_local_irq_disable(); + + /* + * The lockdep hardirqs state may be changed to 'on' with timer + * tick interrupt followed by __do_softirq(). Use local_irq_disable() + * to keep the hardirqs state correct. + */ + local_irq_disable(); return ret; } diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c index 2959d80f7fdb..cd36cf716542 100644 --- a/drivers/input/joystick/xpad.c +++ b/drivers/input/joystick/xpad.c @@ -779,9 +779,6 @@ static void xpad_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *d input_report_key(dev, BTN_C, data[8]); input_report_key(dev, BTN_Z, data[9]); - /* Profile button has a value of 0-3, so it is reported as an axis */ - if (xpad->mapping & MAP_PROFILE_BUTTON) - input_report_abs(dev, ABS_PROFILE, data[34]); input_sync(dev); } @@ -1059,6 +1056,10 @@ static void xpadone_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char (__u16) le16_to_cpup((__le16 *)(data + 8))); } + /* Profile button has a value of 0-3, so it is reported as an axis */ + if (xpad->mapping & MAP_PROFILE_BUTTON) + input_report_abs(dev, ABS_PROFILE, data[34]); + /* paddle handling */ /* based on SDL's SDL_hidapi_xboxone.c */ if (xpad->mapping & MAP_PADDLES) { diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c index 4a6b33bbe7ea..dd08ce97e7c9 100644 --- a/drivers/input/mouse/alps.c +++ b/drivers/input/mouse/alps.c @@ -852,8 +852,8 @@ static void alps_process_packet_v6(struct psmouse *psmouse) x = y = z = 0; /* Divide 4 since trackpoint's speed is too fast */ - input_report_rel(dev2, REL_X, (char)x / 4); - input_report_rel(dev2, REL_Y, -((char)y / 4)); + input_report_rel(dev2, REL_X, (s8)x / 4); + input_report_rel(dev2, REL_Y, -((s8)y / 4)); psmouse_report_standard_buttons(dev2, packet[3]); @@ -1104,8 +1104,8 @@ static void alps_process_trackstick_packet_v7(struct psmouse *psmouse) ((packet[3] & 0x20) << 1); z = (packet[5] & 0x3f) | ((packet[3] & 0x80) >> 1); - input_report_rel(dev2, REL_X, (char)x); - input_report_rel(dev2, REL_Y, -((char)y)); + input_report_rel(dev2, REL_X, (s8)x); + input_report_rel(dev2, REL_Y, -((s8)y)); input_report_abs(dev2, ABS_PRESSURE, z); psmouse_report_standard_buttons(dev2, packet[1]); @@ -2294,20 +2294,20 @@ static int alps_get_v3_v7_resolution(struct psmouse *psmouse, int reg_pitch) if (reg < 0) return reg; - x_pitch = (char)(reg << 4) >> 4; /* sign extend lower 4 bits */ + x_pitch = (s8)(reg << 4) >> 4; /* sign extend lower 4 bits */ x_pitch = 50 + 2 * x_pitch; /* In 0.1 mm units */ - y_pitch = (char)reg >> 4; /* sign extend upper 4 bits */ + y_pitch = (s8)reg >> 4; /* sign extend upper 4 bits */ y_pitch = 36 + 2 * y_pitch; /* In 0.1 mm units */ reg = alps_command_mode_read_reg(psmouse, reg_pitch + 1); if (reg < 0) return reg; - x_electrode = (char)(reg << 4) >> 4; /* sign extend lower 4 bits */ + x_electrode = (s8)(reg << 4) >> 4; /* sign extend lower 4 bits */ x_electrode = 17 + x_electrode; - y_electrode = (char)reg >> 4; /* sign extend upper 4 bits */ + y_electrode = (s8)reg >> 4; /* sign extend upper 4 bits */ y_electrode = 13 + y_electrode; x_phys = x_pitch * (x_electrode - 1); /* In 0.1 mm units */ diff --git a/drivers/input/mouse/focaltech.c b/drivers/input/mouse/focaltech.c index 6fd5fff0cbff..c74b99077d16 100644 --- a/drivers/input/mouse/focaltech.c +++ b/drivers/input/mouse/focaltech.c @@ -202,8 +202,8 @@ static void focaltech_process_rel_packet(struct psmouse *psmouse, state->pressed = packet[0] >> 7; finger1 = ((packet[0] >> 4) & 0x7) - 1; if (finger1 < FOC_MAX_FINGERS) { - state->fingers[finger1].x += (char)packet[1]; - state->fingers[finger1].y += (char)packet[2]; + state->fingers[finger1].x += (s8)packet[1]; + state->fingers[finger1].y += (s8)packet[2]; } else { psmouse_err(psmouse, "First finger in rel packet invalid: %d\n", finger1); @@ -218,8 +218,8 @@ static void focaltech_process_rel_packet(struct psmouse *psmouse, */ finger2 = ((packet[3] >> 4) & 0x7) - 1; if (finger2 < FOC_MAX_FINGERS) { - state->fingers[finger2].x += (char)packet[4]; - state->fingers[finger2].y += (char)packet[5]; + state->fingers[finger2].x += (s8)packet[4]; + state->fingers[finger2].y += (s8)packet[5]; } } diff --git a/drivers/input/serio/i8042-acpipnpio.h b/drivers/input/serio/i8042-acpipnpio.h index efc61736099b..028e45bd050b 100644 --- a/drivers/input/serio/i8042-acpipnpio.h +++ b/drivers/input/serio/i8042-acpipnpio.h @@ -610,6 +610,14 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = { }, .driver_data = (void *)(SERIO_QUIRK_NOMUX) }, + { + /* Fujitsu Lifebook A574/H */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), + DMI_MATCH(DMI_PRODUCT_NAME, "FMVA0501PZ"), + }, + .driver_data = (void *)(SERIO_QUIRK_NOMUX) + }, { /* Gigabyte M912 */ .matches = { @@ -1116,6 +1124,20 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = { .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) }, + { + /* + * Setting SERIO_QUIRK_NOMUX or SERIO_QUIRK_RESET_ALWAYS makes + * the keyboard very laggy for ~5 seconds after boot and + * sometimes also after resume. + * However both are required for the keyboard to not fail + * completely sometimes after boot or resume. + */ + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "N150CU"), + }, + .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | + SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) + }, { .matches = { DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"), @@ -1123,6 +1145,20 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = { .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) }, + { + /* + * Setting SERIO_QUIRK_NOMUX or SERIO_QUIRK_RESET_ALWAYS makes + * the keyboard very laggy for ~5 seconds after boot and + * sometimes also after resume. + * However both are required for the keyboard to not fail + * completely sometimes after boot or resume. + */ + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "NHxxRZQ"), + }, + .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | + SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) + }, { .matches = { DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"), diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c index c281e49826c2..25e575183dd1 100644 --- a/drivers/input/touchscreen/goodix.c +++ b/drivers/input/touchscreen/goodix.c @@ -124,10 +124,18 @@ static const unsigned long goodix_irq_flags[] = { static const struct dmi_system_id nine_bytes_report[] = { #if defined(CONFIG_DMI) && defined(CONFIG_X86) { - .ident = "Lenovo YogaBook", - /* YB1-X91L/F and YB1-X90L/F */ + /* Lenovo Yoga Book X90F / X90L */ .matches = { - DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X9") + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Intel Corporation"), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"), + DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "YETI-11"), + } + }, + { + /* Lenovo Yoga Book X91F / X91L */ + .matches = { + /* Non exact match to match F + L versions */ + DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X91"), } }, #endif diff --git a/drivers/iommu/Makefile b/drivers/iommu/Makefile index 673593cb0842..2d7e32db0be8 100644 --- a/drivers/iommu/Makefile +++ b/drivers/iommu/Makefile @@ -29,7 +29,7 @@ obj-$(CONFIG_FSL_PAMU) += fsl_pamu.o fsl_pamu_domain.o obj-$(CONFIG_S390_IOMMU) += s390-iommu.o obj-$(CONFIG_HYPERV_IOMMU) += hyperv-iommu.o obj-$(CONFIG_VIRTIO_IOMMU) += virtio-iommu.o -obj-$(CONFIG_IOMMU_SVA) += iommu-sva-lib.o io-pgfault.o +obj-$(CONFIG_IOMMU_SVA) += iommu-sva.o io-pgfault.o obj-$(CONFIG_SPRD_IOMMU) += sprd-iommu.o obj-$(CONFIG_QCOM_IOMMU_UTIL) += qcom_iommu_util.o qcom_iommu_util-y += qcom-iommu-util.o diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c index 5968a568aae2..a5a63b1c947e 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c @@ -10,7 +10,7 @@ #include #include "arm-smmu-v3.h" -#include "../../iommu-sva-lib.h" +#include "../../iommu-sva.h" #include "../../io-pgtable-arm.h" struct arm_smmu_mmu_notifier { @@ -344,11 +344,6 @@ __arm_smmu_sva_bind(struct device *dev, struct mm_struct *mm) if (!bond) return ERR_PTR(-ENOMEM); - /* Allocate a PASID for this mm if necessary */ - ret = iommu_sva_alloc_pasid(mm, 1, (1U << master->ssid_bits) - 1); - if (ret) - goto err_free_bond; - bond->mm = mm; bond->sva.dev = dev; refcount_set(&bond->refs, 1); @@ -367,42 +362,6 @@ err_free_bond: return ERR_PTR(ret); } -struct iommu_sva * -arm_smmu_sva_bind(struct device *dev, struct mm_struct *mm, void *drvdata) -{ - struct iommu_sva *handle; - struct iommu_domain *domain = iommu_get_domain_for_dev(dev); - struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); - - if (smmu_domain->stage != ARM_SMMU_DOMAIN_S1) - return ERR_PTR(-EINVAL); - - mutex_lock(&sva_lock); - handle = __arm_smmu_sva_bind(dev, mm); - mutex_unlock(&sva_lock); - return handle; -} - -void arm_smmu_sva_unbind(struct iommu_sva *handle) -{ - struct arm_smmu_bond *bond = sva_to_bond(handle); - - mutex_lock(&sva_lock); - if (refcount_dec_and_test(&bond->refs)) { - list_del(&bond->list); - arm_smmu_mmu_notifier_put(bond->smmu_mn); - kfree(bond); - } - mutex_unlock(&sva_lock); -} - -u32 arm_smmu_sva_get_pasid(struct iommu_sva *handle) -{ - struct arm_smmu_bond *bond = sva_to_bond(handle); - - return bond->mm->pasid; -} - bool arm_smmu_sva_supported(struct arm_smmu_device *smmu) { unsigned long reg, fld; @@ -550,3 +509,64 @@ void arm_smmu_sva_notifier_synchronize(void) */ mmu_notifier_synchronize(); } + +void arm_smmu_sva_remove_dev_pasid(struct iommu_domain *domain, + struct device *dev, ioasid_t id) +{ + struct mm_struct *mm = domain->mm; + struct arm_smmu_bond *bond = NULL, *t; + struct arm_smmu_master *master = dev_iommu_priv_get(dev); + + mutex_lock(&sva_lock); + list_for_each_entry(t, &master->bonds, list) { + if (t->mm == mm) { + bond = t; + break; + } + } + + if (!WARN_ON(!bond) && refcount_dec_and_test(&bond->refs)) { + list_del(&bond->list); + arm_smmu_mmu_notifier_put(bond->smmu_mn); + kfree(bond); + } + mutex_unlock(&sva_lock); +} + +static int arm_smmu_sva_set_dev_pasid(struct iommu_domain *domain, + struct device *dev, ioasid_t id) +{ + int ret = 0; + struct iommu_sva *handle; + struct mm_struct *mm = domain->mm; + + mutex_lock(&sva_lock); + handle = __arm_smmu_sva_bind(dev, mm); + if (IS_ERR(handle)) + ret = PTR_ERR(handle); + mutex_unlock(&sva_lock); + + return ret; +} + +static void arm_smmu_sva_domain_free(struct iommu_domain *domain) +{ + kfree(domain); +} + +static const struct iommu_domain_ops arm_smmu_sva_domain_ops = { + .set_dev_pasid = arm_smmu_sva_set_dev_pasid, + .free = arm_smmu_sva_domain_free +}; + +struct iommu_domain *arm_smmu_sva_domain_alloc(void) +{ + struct iommu_domain *domain; + + domain = kzalloc(sizeof(*domain), GFP_KERNEL); + if (!domain) + return NULL; + domain->ops = &arm_smmu_sva_domain_ops; + + return domain; +} diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c index d4d8bfee9feb..6e4a5a5946df 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -29,7 +29,7 @@ #include "arm-smmu-v3.h" #include "../../dma-iommu.h" -#include "../../iommu-sva-lib.h" +#include "../../iommu-sva.h" static bool disable_bypass = true; module_param(disable_bypass, bool, 0444); @@ -2009,6 +2009,9 @@ static struct iommu_domain *arm_smmu_domain_alloc(unsigned type) { struct arm_smmu_domain *smmu_domain; + if (type == IOMMU_DOMAIN_SVA) + return arm_smmu_sva_domain_alloc(); + if (type != IOMMU_DOMAIN_UNMANAGED && type != IOMMU_DOMAIN_DMA && type != IOMMU_DOMAIN_DMA_FQ && @@ -2838,6 +2841,17 @@ static int arm_smmu_def_domain_type(struct device *dev) return 0; } +static void arm_smmu_remove_dev_pasid(struct device *dev, ioasid_t pasid) +{ + struct iommu_domain *domain; + + domain = iommu_get_domain_for_dev_pasid(dev, pasid, IOMMU_DOMAIN_SVA); + if (WARN_ON(IS_ERR(domain)) || !domain) + return; + + arm_smmu_sva_remove_dev_pasid(domain, dev, pasid); +} + static struct iommu_ops arm_smmu_ops = { .capable = arm_smmu_capable, .domain_alloc = arm_smmu_domain_alloc, @@ -2846,11 +2860,9 @@ static struct iommu_ops arm_smmu_ops = { .device_group = arm_smmu_device_group, .of_xlate = arm_smmu_of_xlate, .get_resv_regions = arm_smmu_get_resv_regions, + .remove_dev_pasid = arm_smmu_remove_dev_pasid, .dev_enable_feat = arm_smmu_dev_enable_feature, .dev_disable_feat = arm_smmu_dev_disable_feature, - .sva_bind = arm_smmu_sva_bind, - .sva_unbind = arm_smmu_sva_unbind, - .sva_get_pasid = arm_smmu_sva_get_pasid, .page_response = arm_smmu_page_response, .def_domain_type = arm_smmu_def_domain_type, .pgsize_bitmap = -1UL, /* Restricted during device attach */ @@ -3543,6 +3555,7 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu) /* SID/SSID sizes */ smmu->ssid_bits = FIELD_GET(IDR1_SSIDSIZE, reg); smmu->sid_bits = FIELD_GET(IDR1_SIDSIZE, reg); + smmu->iommu.max_pasids = 1UL << smmu->ssid_bits; /* * If the SMMU supports fewer bits than would fill a single L2 stream diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h index cd48590ada30..8d772ea8a583 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h @@ -754,11 +754,10 @@ bool arm_smmu_master_sva_enabled(struct arm_smmu_master *master); int arm_smmu_master_enable_sva(struct arm_smmu_master *master); int arm_smmu_master_disable_sva(struct arm_smmu_master *master); bool arm_smmu_master_iopf_supported(struct arm_smmu_master *master); -struct iommu_sva *arm_smmu_sva_bind(struct device *dev, struct mm_struct *mm, - void *drvdata); -void arm_smmu_sva_unbind(struct iommu_sva *handle); -u32 arm_smmu_sva_get_pasid(struct iommu_sva *handle); void arm_smmu_sva_notifier_synchronize(void); +struct iommu_domain *arm_smmu_sva_domain_alloc(void); +void arm_smmu_sva_remove_dev_pasid(struct iommu_domain *domain, + struct device *dev, ioasid_t id); #else /* CONFIG_ARM_SMMU_V3_SVA */ static inline bool arm_smmu_sva_supported(struct arm_smmu_device *smmu) { @@ -790,19 +789,17 @@ static inline bool arm_smmu_master_iopf_supported(struct arm_smmu_master *master return false; } -static inline struct iommu_sva * -arm_smmu_sva_bind(struct device *dev, struct mm_struct *mm, void *drvdata) -{ - return ERR_PTR(-ENODEV); -} - -static inline void arm_smmu_sva_unbind(struct iommu_sva *handle) {} - -static inline u32 arm_smmu_sva_get_pasid(struct iommu_sva *handle) -{ - return IOMMU_PASID_INVALID; -} - static inline void arm_smmu_sva_notifier_synchronize(void) {} + +static inline struct iommu_domain *arm_smmu_sva_domain_alloc(void) +{ + return NULL; +} + +static inline void arm_smmu_sva_remove_dev_pasid(struct iommu_domain *domain, + struct device *dev, + ioasid_t id) +{ +} #endif /* CONFIG_ARM_SMMU_V3_SVA */ #endif /* _ARM_SMMU_V3_H */ diff --git a/drivers/iommu/intel/dmar.c b/drivers/iommu/intel/dmar.c index bc94059a5b87..c80c524ad32d 100644 --- a/drivers/iommu/intel/dmar.c +++ b/drivers/iommu/intel/dmar.c @@ -1057,7 +1057,8 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd) } err = -EINVAL; - if (cap_sagaw(iommu->cap) == 0) { + if (!cap_sagaw(iommu->cap) && + (!ecap_smts(iommu->ecap) || ecap_slts(iommu->ecap))) { pr_info("%s: No supported address widths. Not attempting DMA translation.\n", iommu->name); drhd->ignored = 1; @@ -1105,6 +1106,13 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd) raw_spin_lock_init(&iommu->register_lock); + /* + * A value of N in PSS field of eCap register indicates hardware + * supports PASID field of N+1 bits. + */ + if (pasid_supported(iommu)) + iommu->iommu.max_pasids = 2UL << ecap_pss(iommu->ecap); + /* * This is only for hotplug; at boot time intel_iommu_enabled won't * be set yet. When intel_iommu_init() runs, it registers the units diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c index d4b5d20bd6dd..ca2c2b51b4eb 100644 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c @@ -27,7 +27,7 @@ #include "iommu.h" #include "../dma-iommu.h" #include "../irq_remapping.h" -#include "../iommu-sva-lib.h" +#include "../iommu-sva.h" #include "pasid.h" #include "cap_audit.h" @@ -4189,6 +4189,8 @@ static struct iommu_domain *intel_iommu_domain_alloc(unsigned type) return domain; case IOMMU_DOMAIN_IDENTITY: return &si_domain->domain; + case IOMMU_DOMAIN_SVA: + return intel_svm_domain_alloc(); default: return NULL; } @@ -4746,6 +4748,28 @@ static void intel_iommu_iotlb_sync_map(struct iommu_domain *domain, __mapping_notify_one(info->iommu, dmar_domain, pfn, pages); } +static void intel_iommu_remove_dev_pasid(struct device *dev, ioasid_t pasid) +{ + struct intel_iommu *iommu = device_to_iommu(dev, NULL, NULL); + struct iommu_domain *domain; + + /* Domain type specific cleanup: */ + domain = iommu_get_domain_for_dev_pasid(dev, pasid, 0); + if (domain) { + switch (domain->type) { + case IOMMU_DOMAIN_SVA: + intel_svm_remove_dev_pasid(dev, pasid); + break; + default: + /* should never reach here */ + WARN_ON(1); + break; + } + } + + intel_pasid_tear_down_entry(iommu, dev, pasid, false); +} + const struct iommu_ops intel_iommu_ops = { .capable = intel_iommu_capable, .domain_alloc = intel_iommu_domain_alloc, @@ -4758,11 +4782,9 @@ const struct iommu_ops intel_iommu_ops = { .dev_disable_feat = intel_iommu_dev_disable_feat, .is_attach_deferred = intel_iommu_is_attach_deferred, .def_domain_type = device_def_domain_type, + .remove_dev_pasid = intel_iommu_remove_dev_pasid, .pgsize_bitmap = SZ_4K, #ifdef CONFIG_INTEL_IOMMU_SVM - .sva_bind = intel_svm_bind, - .sva_unbind = intel_svm_unbind, - .sva_get_pasid = intel_svm_get_pasid, .page_response = intel_svm_page_response, #endif .default_domain_ops = &(const struct iommu_domain_ops) { diff --git a/drivers/iommu/intel/iommu.h b/drivers/iommu/intel/iommu.h index db9df7c3790c..20f4dd7f3bd2 100644 --- a/drivers/iommu/intel/iommu.h +++ b/drivers/iommu/intel/iommu.h @@ -480,8 +480,6 @@ enum { #define VTD_FLAG_IRQ_REMAP_PRE_ENABLED (1 << 1) #define VTD_FLAG_SVM_CAPABLE (1 << 2) -extern int intel_iommu_sm; - #define sm_supported(iommu) (intel_iommu_sm && ecap_smts((iommu)->ecap)) #define pasid_supported(iommu) (sm_supported(iommu) && \ ecap_pasid((iommu)->ecap)) @@ -754,12 +752,10 @@ struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devfn); extern void intel_svm_check(struct intel_iommu *iommu); extern int intel_svm_enable_prq(struct intel_iommu *iommu); extern int intel_svm_finish_prq(struct intel_iommu *iommu); -struct iommu_sva *intel_svm_bind(struct device *dev, struct mm_struct *mm, - void *drvdata); -void intel_svm_unbind(struct iommu_sva *handle); -u32 intel_svm_get_pasid(struct iommu_sva *handle); int intel_svm_page_response(struct device *dev, struct iommu_fault_event *evt, struct iommu_page_response *msg); +struct iommu_domain *intel_svm_domain_alloc(void); +void intel_svm_remove_dev_pasid(struct device *dev, ioasid_t pasid); struct intel_svm_dev { struct list_head list; @@ -784,6 +780,14 @@ struct intel_svm { }; #else static inline void intel_svm_check(struct intel_iommu *iommu) {} +static inline struct iommu_domain *intel_svm_domain_alloc(void) +{ + return NULL; +} + +static inline void intel_svm_remove_dev_pasid(struct device *dev, ioasid_t pasid) +{ +} #endif #ifdef CONFIG_INTEL_IOMMU_DEBUGFS @@ -799,6 +803,7 @@ struct context_entry *iommu_context_addr(struct intel_iommu *iommu, u8 bus, extern const struct iommu_ops intel_iommu_ops; #ifdef CONFIG_INTEL_IOMMU +extern int intel_iommu_sm; extern int iommu_calculate_agaw(struct intel_iommu *iommu); extern int iommu_calculate_max_sagaw(struct intel_iommu *iommu); extern int dmar_disabled; @@ -814,6 +819,7 @@ static inline int iommu_calculate_max_sagaw(struct intel_iommu *iommu) } #define dmar_disabled (1) #define intel_iommu_enabled (0) +#define intel_iommu_sm (0) #endif static inline const char *decode_prq_descriptor(char *str, size_t size, diff --git a/drivers/iommu/intel/svm.c b/drivers/iommu/intel/svm.c index 03b25358946c..c76b66263467 100644 --- a/drivers/iommu/intel/svm.c +++ b/drivers/iommu/intel/svm.c @@ -24,7 +24,7 @@ #include "iommu.h" #include "pasid.h" #include "perf.h" -#include "../iommu-sva-lib.h" +#include "../iommu-sva.h" #include "trace.h" static irqreturn_t prq_event_thread(int irq, void *d); @@ -299,19 +299,9 @@ out: return 0; } -static int intel_svm_alloc_pasid(struct device *dev, struct mm_struct *mm, - unsigned int flags) -{ - ioasid_t max_pasid = dev_is_pci(dev) ? - pci_max_pasids(to_pci_dev(dev)) : intel_pasid_max_id; - - return iommu_sva_alloc_pasid(mm, PASID_MIN, max_pasid - 1); -} - static struct iommu_sva *intel_svm_bind_mm(struct intel_iommu *iommu, struct device *dev, - struct mm_struct *mm, - unsigned int flags) + struct mm_struct *mm) { struct device_domain_info *info = dev_iommu_priv_get(dev); struct intel_svm_dev *sdev; @@ -327,22 +317,18 @@ static struct iommu_sva *intel_svm_bind_mm(struct intel_iommu *iommu, svm->pasid = mm->pasid; svm->mm = mm; - svm->flags = flags; INIT_LIST_HEAD_RCU(&svm->devs); - if (!(flags & SVM_FLAG_SUPERVISOR_MODE)) { - svm->notifier.ops = &intel_mmuops; - ret = mmu_notifier_register(&svm->notifier, mm); - if (ret) { - kfree(svm); - return ERR_PTR(ret); - } + svm->notifier.ops = &intel_mmuops; + ret = mmu_notifier_register(&svm->notifier, mm); + if (ret) { + kfree(svm); + return ERR_PTR(ret); } ret = pasid_private_add(svm->pasid, svm); if (ret) { - if (svm->notifier.ops) - mmu_notifier_unregister(&svm->notifier, mm); + mmu_notifier_unregister(&svm->notifier, mm); kfree(svm); return ERR_PTR(ret); } @@ -377,9 +363,7 @@ static struct iommu_sva *intel_svm_bind_mm(struct intel_iommu *iommu, } /* Setup the pasid table: */ - sflags = (flags & SVM_FLAG_SUPERVISOR_MODE) ? - PASID_FLAG_SUPERVISOR_MODE : 0; - sflags |= cpu_feature_enabled(X86_FEATURE_LA57) ? PASID_FLAG_FL5LP : 0; + sflags = cpu_feature_enabled(X86_FEATURE_LA57) ? PASID_FLAG_FL5LP : 0; ret = intel_pasid_setup_first_level(iommu, dev, mm->pgd, mm->pasid, FLPT_DEFAULT_DID, sflags); if (ret) @@ -393,8 +377,7 @@ free_sdev: kfree(sdev); free_svm: if (list_empty(&svm->devs)) { - if (svm->notifier.ops) - mmu_notifier_unregister(&svm->notifier, mm); + mmu_notifier_unregister(&svm->notifier, mm); pasid_private_remove(mm->pasid); kfree(svm); } @@ -787,67 +770,6 @@ prq_advance: return IRQ_RETVAL(handled); } -struct iommu_sva *intel_svm_bind(struct device *dev, struct mm_struct *mm, void *drvdata) -{ - struct intel_iommu *iommu = device_to_iommu(dev, NULL, NULL); - unsigned int flags = 0; - struct iommu_sva *sva; - int ret; - - if (drvdata) - flags = *(unsigned int *)drvdata; - - if (flags & SVM_FLAG_SUPERVISOR_MODE) { - if (!ecap_srs(iommu->ecap)) { - dev_err(dev, "%s: Supervisor PASID not supported\n", - iommu->name); - return ERR_PTR(-EOPNOTSUPP); - } - - if (mm) { - dev_err(dev, "%s: Supervisor PASID with user provided mm\n", - iommu->name); - return ERR_PTR(-EINVAL); - } - - mm = &init_mm; - } - - mutex_lock(&pasid_mutex); - ret = intel_svm_alloc_pasid(dev, mm, flags); - if (ret) { - mutex_unlock(&pasid_mutex); - return ERR_PTR(ret); - } - - sva = intel_svm_bind_mm(iommu, dev, mm, flags); - mutex_unlock(&pasid_mutex); - - return sva; -} - -void intel_svm_unbind(struct iommu_sva *sva) -{ - struct intel_svm_dev *sdev = to_intel_svm_dev(sva); - - mutex_lock(&pasid_mutex); - intel_svm_unbind_mm(sdev->dev, sdev->pasid); - mutex_unlock(&pasid_mutex); -} - -u32 intel_svm_get_pasid(struct iommu_sva *sva) -{ - struct intel_svm_dev *sdev; - u32 pasid; - - mutex_lock(&pasid_mutex); - sdev = to_intel_svm_dev(sva); - pasid = sdev->pasid; - mutex_unlock(&pasid_mutex); - - return pasid; -} - int intel_svm_page_response(struct device *dev, struct iommu_fault_event *evt, struct iommu_page_response *msg) @@ -918,3 +840,50 @@ int intel_svm_page_response(struct device *dev, out: return ret; } + +void intel_svm_remove_dev_pasid(struct device *dev, ioasid_t pasid) +{ + mutex_lock(&pasid_mutex); + intel_svm_unbind_mm(dev, pasid); + mutex_unlock(&pasid_mutex); +} + +static int intel_svm_set_dev_pasid(struct iommu_domain *domain, + struct device *dev, ioasid_t pasid) +{ + struct device_domain_info *info = dev_iommu_priv_get(dev); + struct intel_iommu *iommu = info->iommu; + struct mm_struct *mm = domain->mm; + struct iommu_sva *sva; + int ret = 0; + + mutex_lock(&pasid_mutex); + sva = intel_svm_bind_mm(iommu, dev, mm); + if (IS_ERR(sva)) + ret = PTR_ERR(sva); + mutex_unlock(&pasid_mutex); + + return ret; +} + +static void intel_svm_domain_free(struct iommu_domain *domain) +{ + kfree(to_dmar_domain(domain)); +} + +static const struct iommu_domain_ops intel_svm_domain_ops = { + .set_dev_pasid = intel_svm_set_dev_pasid, + .free = intel_svm_domain_free +}; + +struct iommu_domain *intel_svm_domain_alloc(void) +{ + struct dmar_domain *domain; + + domain = kzalloc(sizeof(*domain), GFP_KERNEL); + if (!domain) + return NULL; + domain->domain.ops = &intel_svm_domain_ops; + + return &domain->domain; +} diff --git a/drivers/iommu/io-pgfault.c b/drivers/iommu/io-pgfault.c index 1df8c1dcae77..e5b8b9110c13 100644 --- a/drivers/iommu/io-pgfault.c +++ b/drivers/iommu/io-pgfault.c @@ -11,7 +11,7 @@ #include #include -#include "iommu-sva-lib.h" +#include "iommu-sva.h" /** * struct iopf_queue - IO Page Fault queue @@ -69,69 +69,18 @@ static int iopf_complete_group(struct device *dev, struct iopf_fault *iopf, return iommu_page_response(dev, &resp); } -static enum iommu_page_response_code -iopf_handle_single(struct iopf_fault *iopf) -{ - vm_fault_t ret; - struct mm_struct *mm; - struct vm_area_struct *vma; - unsigned int access_flags = 0; - unsigned int fault_flags = FAULT_FLAG_REMOTE; - struct iommu_fault_page_request *prm = &iopf->fault.prm; - enum iommu_page_response_code status = IOMMU_PAGE_RESP_INVALID; - - if (!(prm->flags & IOMMU_FAULT_PAGE_REQUEST_PASID_VALID)) - return status; - - mm = iommu_sva_find(prm->pasid); - if (IS_ERR_OR_NULL(mm)) - return status; - - mmap_read_lock(mm); - - vma = find_extend_vma(mm, prm->addr); - if (!vma) - /* Unmapped area */ - goto out_put_mm; - - if (prm->perm & IOMMU_FAULT_PERM_READ) - access_flags |= VM_READ; - - if (prm->perm & IOMMU_FAULT_PERM_WRITE) { - access_flags |= VM_WRITE; - fault_flags |= FAULT_FLAG_WRITE; - } - - if (prm->perm & IOMMU_FAULT_PERM_EXEC) { - access_flags |= VM_EXEC; - fault_flags |= FAULT_FLAG_INSTRUCTION; - } - - if (!(prm->perm & IOMMU_FAULT_PERM_PRIV)) - fault_flags |= FAULT_FLAG_USER; - - if (access_flags & ~vma->vm_flags) - /* Access fault */ - goto out_put_mm; - - ret = handle_mm_fault(vma, prm->addr, fault_flags, NULL); - status = ret & VM_FAULT_ERROR ? IOMMU_PAGE_RESP_INVALID : - IOMMU_PAGE_RESP_SUCCESS; - -out_put_mm: - mmap_read_unlock(mm); - mmput(mm); - - return status; -} - -static void iopf_handle_group(struct work_struct *work) +static void iopf_handler(struct work_struct *work) { struct iopf_group *group; + struct iommu_domain *domain; struct iopf_fault *iopf, *next; enum iommu_page_response_code status = IOMMU_PAGE_RESP_SUCCESS; group = container_of(work, struct iopf_group, work); + domain = iommu_get_domain_for_dev_pasid(group->dev, + group->last_fault.fault.prm.pasid, 0); + if (!domain || !domain->iopf_handler) + status = IOMMU_PAGE_RESP_INVALID; list_for_each_entry_safe(iopf, next, &group->faults, list) { /* @@ -139,7 +88,8 @@ static void iopf_handle_group(struct work_struct *work) * faults in the group if there is an error. */ if (status == IOMMU_PAGE_RESP_SUCCESS) - status = iopf_handle_single(iopf); + status = domain->iopf_handler(&iopf->fault, + domain->fault_data); if (!(iopf->fault.prm.flags & IOMMU_FAULT_PAGE_REQUEST_LAST_PAGE)) @@ -181,6 +131,13 @@ static void iopf_handle_group(struct work_struct *work) * request completes, outstanding faults will have been dealt with by the time * the PASID is freed. * + * Any valid page fault will be eventually routed to an iommu domain and the + * page fault handler installed there will get called. The users of this + * handling framework should guarantee that the iommu domain could only be + * freed after the device has stopped generating page faults (or the iommu + * hardware has been set to block the page faults) and the pending page faults + * have been flushed. + * * Return: 0 on success and <0 on error. */ int iommu_queue_iopf(struct iommu_fault *fault, void *cookie) @@ -235,7 +192,7 @@ int iommu_queue_iopf(struct iommu_fault *fault, void *cookie) group->last_fault.fault = *fault; INIT_LIST_HEAD(&group->faults); list_add(&group->last_fault.list, &group->faults); - INIT_WORK(&group->work, iopf_handle_group); + INIT_WORK(&group->work, iopf_handler); /* See if we have partial faults for this group */ list_for_each_entry_safe(iopf, next, &iopf_param->partial, list) { diff --git a/drivers/iommu/iommu-sva-lib.c b/drivers/iommu/iommu-sva-lib.c deleted file mode 100644 index 106506143896..000000000000 --- a/drivers/iommu/iommu-sva-lib.c +++ /dev/null @@ -1,71 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * Helpers for IOMMU drivers implementing SVA - */ -#include -#include - -#include "iommu-sva-lib.h" - -static DEFINE_MUTEX(iommu_sva_lock); -static DECLARE_IOASID_SET(iommu_sva_pasid); - -/** - * iommu_sva_alloc_pasid - Allocate a PASID for the mm - * @mm: the mm - * @min: minimum PASID value (inclusive) - * @max: maximum PASID value (inclusive) - * - * Try to allocate a PASID for this mm, or take a reference to the existing one - * provided it fits within the [@min, @max] range. On success the PASID is - * available in mm->pasid and will be available for the lifetime of the mm. - * - * Returns 0 on success and < 0 on error. - */ -int iommu_sva_alloc_pasid(struct mm_struct *mm, ioasid_t min, ioasid_t max) -{ - int ret = 0; - ioasid_t pasid; - - if (min == INVALID_IOASID || max == INVALID_IOASID || - min == 0 || max < min) - return -EINVAL; - - mutex_lock(&iommu_sva_lock); - /* Is a PASID already associated with this mm? */ - if (pasid_valid(mm->pasid)) { - if (mm->pasid < min || mm->pasid >= max) - ret = -EOVERFLOW; - goto out; - } - - pasid = ioasid_alloc(&iommu_sva_pasid, min, max, mm); - if (!pasid_valid(pasid)) - ret = -ENOMEM; - else - mm_pasid_set(mm, pasid); -out: - mutex_unlock(&iommu_sva_lock); - return ret; -} -EXPORT_SYMBOL_GPL(iommu_sva_alloc_pasid); - -/* ioasid_find getter() requires a void * argument */ -static bool __mmget_not_zero(void *mm) -{ - return mmget_not_zero(mm); -} - -/** - * iommu_sva_find() - Find mm associated to the given PASID - * @pasid: Process Address Space ID assigned to the mm - * - * On success a reference to the mm is taken, and must be released with mmput(). - * - * Returns the mm corresponding to this PASID, or an error if not found. - */ -struct mm_struct *iommu_sva_find(ioasid_t pasid) -{ - return ioasid_find(&iommu_sva_pasid, pasid, __mmget_not_zero); -} -EXPORT_SYMBOL_GPL(iommu_sva_find); diff --git a/drivers/iommu/iommu-sva.c b/drivers/iommu/iommu-sva.c new file mode 100644 index 000000000000..24bf9b2b58aa --- /dev/null +++ b/drivers/iommu/iommu-sva.c @@ -0,0 +1,240 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Helpers for IOMMU drivers implementing SVA + */ +#include +#include +#include + +#include "iommu-sva.h" + +static DEFINE_MUTEX(iommu_sva_lock); +static DECLARE_IOASID_SET(iommu_sva_pasid); + +/** + * iommu_sva_alloc_pasid - Allocate a PASID for the mm + * @mm: the mm + * @min: minimum PASID value (inclusive) + * @max: maximum PASID value (inclusive) + * + * Try to allocate a PASID for this mm, or take a reference to the existing one + * provided it fits within the [@min, @max] range. On success the PASID is + * available in mm->pasid and will be available for the lifetime of the mm. + * + * Returns 0 on success and < 0 on error. + */ +int iommu_sva_alloc_pasid(struct mm_struct *mm, ioasid_t min, ioasid_t max) +{ + int ret = 0; + ioasid_t pasid; + + if (min == INVALID_IOASID || max == INVALID_IOASID || + min == 0 || max < min) + return -EINVAL; + + mutex_lock(&iommu_sva_lock); + /* Is a PASID already associated with this mm? */ + if (pasid_valid(mm->pasid)) { + if (mm->pasid < min || mm->pasid >= max) + ret = -EOVERFLOW; + goto out; + } + + pasid = ioasid_alloc(&iommu_sva_pasid, min, max, mm); + if (!pasid_valid(pasid)) + ret = -ENOMEM; + else + mm_pasid_set(mm, pasid); +out: + mutex_unlock(&iommu_sva_lock); + return ret; +} +EXPORT_SYMBOL_GPL(iommu_sva_alloc_pasid); + +/* ioasid_find getter() requires a void * argument */ +static bool __mmget_not_zero(void *mm) +{ + return mmget_not_zero(mm); +} + +/** + * iommu_sva_find() - Find mm associated to the given PASID + * @pasid: Process Address Space ID assigned to the mm + * + * On success a reference to the mm is taken, and must be released with mmput(). + * + * Returns the mm corresponding to this PASID, or an error if not found. + */ +struct mm_struct *iommu_sva_find(ioasid_t pasid) +{ + return ioasid_find(&iommu_sva_pasid, pasid, __mmget_not_zero); +} +EXPORT_SYMBOL_GPL(iommu_sva_find); + +/** + * iommu_sva_bind_device() - Bind a process address space to a device + * @dev: the device + * @mm: the mm to bind, caller must hold a reference to mm_users + * + * Create a bond between device and address space, allowing the device to + * access the mm using the PASID returned by iommu_sva_get_pasid(). If a + * bond already exists between @device and @mm, an additional internal + * reference is taken. Caller must call iommu_sva_unbind_device() + * to release each reference. + * + * iommu_dev_enable_feature(dev, IOMMU_DEV_FEAT_SVA) must be called first, to + * initialize the required SVA features. + * + * On error, returns an ERR_PTR value. + */ +struct iommu_sva *iommu_sva_bind_device(struct device *dev, struct mm_struct *mm) +{ + struct iommu_domain *domain; + struct iommu_sva *handle; + ioasid_t max_pasids; + int ret; + + max_pasids = dev->iommu->max_pasids; + if (!max_pasids) + return ERR_PTR(-EOPNOTSUPP); + + /* Allocate mm->pasid if necessary. */ + ret = iommu_sva_alloc_pasid(mm, 1, max_pasids - 1); + if (ret) + return ERR_PTR(ret); + + handle = kzalloc(sizeof(*handle), GFP_KERNEL); + if (!handle) + return ERR_PTR(-ENOMEM); + + mutex_lock(&iommu_sva_lock); + /* Search for an existing domain. */ + domain = iommu_get_domain_for_dev_pasid(dev, mm->pasid, + IOMMU_DOMAIN_SVA); + if (IS_ERR(domain)) { + ret = PTR_ERR(domain); + goto out_unlock; + } + + if (domain) { + domain->users++; + goto out; + } + + /* Allocate a new domain and set it on device pasid. */ + domain = iommu_sva_domain_alloc(dev, mm); + if (!domain) { + ret = -ENOMEM; + goto out_unlock; + } + + ret = iommu_attach_device_pasid(domain, dev, mm->pasid); + if (ret) + goto out_free_domain; + domain->users = 1; +out: + mutex_unlock(&iommu_sva_lock); + handle->dev = dev; + handle->domain = domain; + + return handle; + +out_free_domain: + iommu_domain_free(domain); +out_unlock: + mutex_unlock(&iommu_sva_lock); + kfree(handle); + + return ERR_PTR(ret); +} +EXPORT_SYMBOL_GPL(iommu_sva_bind_device); + +/** + * iommu_sva_unbind_device() - Remove a bond created with iommu_sva_bind_device + * @handle: the handle returned by iommu_sva_bind_device() + * + * Put reference to a bond between device and address space. The device should + * not be issuing any more transaction for this PASID. All outstanding page + * requests for this PASID must have been flushed to the IOMMU. + */ +void iommu_sva_unbind_device(struct iommu_sva *handle) +{ + struct iommu_domain *domain = handle->domain; + ioasid_t pasid = domain->mm->pasid; + struct device *dev = handle->dev; + + mutex_lock(&iommu_sva_lock); + if (--domain->users == 0) { + iommu_detach_device_pasid(domain, dev, pasid); + iommu_domain_free(domain); + } + mutex_unlock(&iommu_sva_lock); + kfree(handle); +} +EXPORT_SYMBOL_GPL(iommu_sva_unbind_device); + +u32 iommu_sva_get_pasid(struct iommu_sva *handle) +{ + struct iommu_domain *domain = handle->domain; + + return domain->mm->pasid; +} +EXPORT_SYMBOL_GPL(iommu_sva_get_pasid); + +/* + * I/O page fault handler for SVA + */ +enum iommu_page_response_code +iommu_sva_handle_iopf(struct iommu_fault *fault, void *data) +{ + vm_fault_t ret; + struct vm_area_struct *vma; + struct mm_struct *mm = data; + unsigned int access_flags = 0; + unsigned int fault_flags = FAULT_FLAG_REMOTE; + struct iommu_fault_page_request *prm = &fault->prm; + enum iommu_page_response_code status = IOMMU_PAGE_RESP_INVALID; + + if (!(prm->flags & IOMMU_FAULT_PAGE_REQUEST_PASID_VALID)) + return status; + + if (!mmget_not_zero(mm)) + return status; + + mmap_read_lock(mm); + + vma = find_extend_vma(mm, prm->addr); + if (!vma) + /* Unmapped area */ + goto out_put_mm; + + if (prm->perm & IOMMU_FAULT_PERM_READ) + access_flags |= VM_READ; + + if (prm->perm & IOMMU_FAULT_PERM_WRITE) { + access_flags |= VM_WRITE; + fault_flags |= FAULT_FLAG_WRITE; + } + + if (prm->perm & IOMMU_FAULT_PERM_EXEC) { + access_flags |= VM_EXEC; + fault_flags |= FAULT_FLAG_INSTRUCTION; + } + + if (!(prm->perm & IOMMU_FAULT_PERM_PRIV)) + fault_flags |= FAULT_FLAG_USER; + + if (access_flags & ~vma->vm_flags) + /* Access fault */ + goto out_put_mm; + + ret = handle_mm_fault(vma, prm->addr, fault_flags, NULL); + status = ret & VM_FAULT_ERROR ? IOMMU_PAGE_RESP_INVALID : + IOMMU_PAGE_RESP_SUCCESS; + +out_put_mm: + mmap_read_unlock(mm); + mmput(mm); + + return status; +} diff --git a/drivers/iommu/iommu-sva-lib.h b/drivers/iommu/iommu-sva.h similarity index 83% rename from drivers/iommu/iommu-sva-lib.h rename to drivers/iommu/iommu-sva.h index 8909ea1094e3..7215a761b962 100644 --- a/drivers/iommu/iommu-sva-lib.h +++ b/drivers/iommu/iommu-sva.h @@ -2,8 +2,8 @@ /* * SVA library for IOMMU drivers */ -#ifndef _IOMMU_SVA_LIB_H -#define _IOMMU_SVA_LIB_H +#ifndef _IOMMU_SVA_H +#define _IOMMU_SVA_H #include #include @@ -26,6 +26,8 @@ int iopf_queue_flush_dev(struct device *dev); struct iopf_queue *iopf_queue_alloc(const char *name); void iopf_queue_free(struct iopf_queue *queue); int iopf_queue_discard_partial(struct iopf_queue *queue); +enum iommu_page_response_code +iommu_sva_handle_iopf(struct iommu_fault *fault, void *data); #else /* CONFIG_IOMMU_SVA */ static inline int iommu_queue_iopf(struct iommu_fault *fault, void *cookie) @@ -63,5 +65,11 @@ static inline int iopf_queue_discard_partial(struct iopf_queue *queue) { return -ENODEV; } + +static inline enum iommu_page_response_code +iommu_sva_handle_iopf(struct iommu_fault *fault, void *data) +{ + return IOMMU_PAGE_RESP_INVALID; +} #endif /* CONFIG_IOMMU_SVA */ -#endif /* _IOMMU_SVA_LIB_H */ +#endif /* _IOMMU_SVA_H */ diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index bfb2f163c691..fc7286d801db 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -28,9 +29,12 @@ #include #include #include +#include #include "dma-iommu.h" +#include "iommu-sva.h" + static struct kset *iommu_group_kset; static DEFINE_IDA(iommu_group_ida); @@ -42,6 +46,7 @@ struct iommu_group { struct kobject kobj; struct kobject *devices_kobj; struct list_head devices; + struct xarray pasid_array; struct mutex mutex; void *iommu_data; void (*iommu_data_release)(void *iommu_data); @@ -278,6 +283,24 @@ static void dev_iommu_free(struct device *dev) kfree(param); } +static u32 dev_iommu_get_max_pasids(struct device *dev) +{ + u32 max_pasids = 0, bits = 0; + int ret; + + if (dev_is_pci(dev)) { + ret = pci_max_pasids(to_pci_dev(dev)); + if (ret > 0) + max_pasids = ret; + } else { + ret = device_property_read_u32(dev, "pasid-num-bits", &bits); + if (!ret) + max_pasids = 1UL << bits; + } + + return min_t(u32, max_pasids, dev->iommu->iommu_dev->max_pasids); +} + static int __iommu_probe_device(struct device *dev, struct list_head *group_list) { const struct iommu_ops *ops = dev->bus->iommu_ops; @@ -313,6 +336,7 @@ static int __iommu_probe_device(struct device *dev, struct list_head *group_list } dev->iommu->iommu_dev = iommu_dev; + dev->iommu->max_pasids = dev_iommu_get_max_pasids(dev); group = iommu_group_get_for_dev(dev); if (IS_ERR(group)) { @@ -719,6 +743,7 @@ struct iommu_group *iommu_group_alloc(void) mutex_init(&group->mutex); INIT_LIST_HEAD(&group->devices); INIT_LIST_HEAD(&group->entry); + xa_init(&group->pasid_array); ret = ida_alloc(&iommu_group_ida, GFP_KERNEL); if (ret < 0) { @@ -1932,6 +1957,8 @@ EXPORT_SYMBOL_GPL(iommu_domain_alloc); void iommu_domain_free(struct iommu_domain *domain) { + if (domain->type == IOMMU_DOMAIN_SVA) + mmdrop(domain->mm); iommu_put_dma_cookie(domain); domain->ops->free(domain); } @@ -2760,98 +2787,6 @@ int iommu_dev_disable_feature(struct device *dev, enum iommu_dev_features feat) } EXPORT_SYMBOL_GPL(iommu_dev_disable_feature); -/** - * iommu_sva_bind_device() - Bind a process address space to a device - * @dev: the device - * @mm: the mm to bind, caller must hold a reference to it - * @drvdata: opaque data pointer to pass to bind callback - * - * Create a bond between device and address space, allowing the device to access - * the mm using the returned PASID. If a bond already exists between @device and - * @mm, it is returned and an additional reference is taken. Caller must call - * iommu_sva_unbind_device() to release each reference. - * - * iommu_dev_enable_feature(dev, IOMMU_DEV_FEAT_SVA) must be called first, to - * initialize the required SVA features. - * - * On error, returns an ERR_PTR value. - */ -struct iommu_sva * -iommu_sva_bind_device(struct device *dev, struct mm_struct *mm, void *drvdata) -{ - struct iommu_group *group; - struct iommu_sva *handle = ERR_PTR(-EINVAL); - const struct iommu_ops *ops = dev_iommu_ops(dev); - - if (!ops->sva_bind) - return ERR_PTR(-ENODEV); - - group = iommu_group_get(dev); - if (!group) - return ERR_PTR(-ENODEV); - - /* Ensure device count and domain don't change while we're binding */ - mutex_lock(&group->mutex); - - /* - * To keep things simple, SVA currently doesn't support IOMMU groups - * with more than one device. Existing SVA-capable systems are not - * affected by the problems that required IOMMU groups (lack of ACS - * isolation, device ID aliasing and other hardware issues). - */ - if (iommu_group_device_count(group) != 1) - goto out_unlock; - - handle = ops->sva_bind(dev, mm, drvdata); - -out_unlock: - mutex_unlock(&group->mutex); - iommu_group_put(group); - - return handle; -} -EXPORT_SYMBOL_GPL(iommu_sva_bind_device); - -/** - * iommu_sva_unbind_device() - Remove a bond created with iommu_sva_bind_device - * @handle: the handle returned by iommu_sva_bind_device() - * - * Put reference to a bond between device and address space. The device should - * not be issuing any more transaction for this PASID. All outstanding page - * requests for this PASID must have been flushed to the IOMMU. - */ -void iommu_sva_unbind_device(struct iommu_sva *handle) -{ - struct iommu_group *group; - struct device *dev = handle->dev; - const struct iommu_ops *ops = dev_iommu_ops(dev); - - if (!ops->sva_unbind) - return; - - group = iommu_group_get(dev); - if (!group) - return; - - mutex_lock(&group->mutex); - ops->sva_unbind(handle); - mutex_unlock(&group->mutex); - - iommu_group_put(group); -} -EXPORT_SYMBOL_GPL(iommu_sva_unbind_device); - -u32 iommu_sva_get_pasid(struct iommu_sva *handle) -{ - const struct iommu_ops *ops = dev_iommu_ops(handle->dev); - - if (!ops->sva_get_pasid) - return IOMMU_PASID_INVALID; - - return ops->sva_get_pasid(handle); -} -EXPORT_SYMBOL_GPL(iommu_sva_get_pasid); - /* * Changes the default domain of an iommu group that has *only* one device * @@ -3121,7 +3056,8 @@ int iommu_device_use_default_domain(struct device *dev) mutex_lock(&group->mutex); if (group->owner_cnt) { - if (group->owner || !iommu_is_default_domain(group)) { + if (group->owner || !iommu_is_default_domain(group) || + !xa_empty(&group->pasid_array)) { ret = -EBUSY; goto unlock_out; } @@ -3152,7 +3088,7 @@ void iommu_device_unuse_default_domain(struct device *dev) return; mutex_lock(&group->mutex); - if (!WARN_ON(!group->owner_cnt)) + if (!WARN_ON(!group->owner_cnt || !xa_empty(&group->pasid_array))) group->owner_cnt--; mutex_unlock(&group->mutex); @@ -3200,7 +3136,8 @@ int iommu_group_claim_dma_owner(struct iommu_group *group, void *owner) ret = -EPERM; goto unlock_out; } else { - if (group->domain && group->domain != group->default_domain) { + if ((group->domain && group->domain != group->default_domain) || + !xa_empty(&group->pasid_array)) { ret = -EBUSY; goto unlock_out; } @@ -3234,7 +3171,8 @@ void iommu_group_release_dma_owner(struct iommu_group *group) int ret; mutex_lock(&group->mutex); - if (WARN_ON(!group->owner_cnt || !group->owner)) + if (WARN_ON(!group->owner_cnt || !group->owner || + !xa_empty(&group->pasid_array))) goto unlock_out; group->owner_cnt = 0; @@ -3265,3 +3203,150 @@ bool iommu_group_dma_owner_claimed(struct iommu_group *group) return user; } EXPORT_SYMBOL_GPL(iommu_group_dma_owner_claimed); + +static int __iommu_set_group_pasid(struct iommu_domain *domain, + struct iommu_group *group, ioasid_t pasid) +{ + struct group_device *device; + int ret = 0; + + list_for_each_entry(device, &group->devices, list) { + ret = domain->ops->set_dev_pasid(domain, device->dev, pasid); + if (ret) + break; + } + + return ret; +} + +static void __iommu_remove_group_pasid(struct iommu_group *group, + ioasid_t pasid) +{ + struct group_device *device; + const struct iommu_ops *ops; + + list_for_each_entry(device, &group->devices, list) { + ops = dev_iommu_ops(device->dev); + ops->remove_dev_pasid(device->dev, pasid); + } +} + +/* + * iommu_attach_device_pasid() - Attach a domain to pasid of device + * @domain: the iommu domain. + * @dev: the attached device. + * @pasid: the pasid of the device. + * + * Return: 0 on success, or an error. + */ +int iommu_attach_device_pasid(struct iommu_domain *domain, + struct device *dev, ioasid_t pasid) +{ + struct iommu_group *group; + void *curr; + int ret; + + if (!domain->ops->set_dev_pasid) + return -EOPNOTSUPP; + + group = iommu_group_get(dev); + if (!group) + return -ENODEV; + + mutex_lock(&group->mutex); + curr = xa_cmpxchg(&group->pasid_array, pasid, NULL, domain, GFP_KERNEL); + if (curr) { + ret = xa_err(curr) ? : -EBUSY; + goto out_unlock; + } + + ret = __iommu_set_group_pasid(domain, group, pasid); + if (ret) { + __iommu_remove_group_pasid(group, pasid); + xa_erase(&group->pasid_array, pasid); + } +out_unlock: + mutex_unlock(&group->mutex); + iommu_group_put(group); + + return ret; +} +EXPORT_SYMBOL_GPL(iommu_attach_device_pasid); + +/* + * iommu_detach_device_pasid() - Detach the domain from pasid of device + * @domain: the iommu domain. + * @dev: the attached device. + * @pasid: the pasid of the device. + * + * The @domain must have been attached to @pasid of the @dev with + * iommu_attach_device_pasid(). + */ +void iommu_detach_device_pasid(struct iommu_domain *domain, struct device *dev, + ioasid_t pasid) +{ + struct iommu_group *group = iommu_group_get(dev); + + mutex_lock(&group->mutex); + __iommu_remove_group_pasid(group, pasid); + WARN_ON(xa_erase(&group->pasid_array, pasid) != domain); + mutex_unlock(&group->mutex); + + iommu_group_put(group); +} +EXPORT_SYMBOL_GPL(iommu_detach_device_pasid); + +/* + * iommu_get_domain_for_dev_pasid() - Retrieve domain for @pasid of @dev + * @dev: the queried device + * @pasid: the pasid of the device + * @type: matched domain type, 0 for any match + * + * This is a variant of iommu_get_domain_for_dev(). It returns the existing + * domain attached to pasid of a device. Callers must hold a lock around this + * function, and both iommu_attach/detach_dev_pasid() whenever a domain of + * type is being manipulated. This API does not internally resolve races with + * attach/detach. + * + * Return: attached domain on success, NULL otherwise. + */ +struct iommu_domain *iommu_get_domain_for_dev_pasid(struct device *dev, + ioasid_t pasid, + unsigned int type) +{ + struct iommu_domain *domain; + struct iommu_group *group; + + group = iommu_group_get(dev); + if (!group) + return NULL; + + xa_lock(&group->pasid_array); + domain = xa_load(&group->pasid_array, pasid); + if (type && domain && domain->type != type) + domain = ERR_PTR(-EBUSY); + xa_unlock(&group->pasid_array); + iommu_group_put(group); + + return domain; +} +EXPORT_SYMBOL_GPL(iommu_get_domain_for_dev_pasid); + +struct iommu_domain *iommu_sva_domain_alloc(struct device *dev, + struct mm_struct *mm) +{ + const struct iommu_ops *ops = dev_iommu_ops(dev); + struct iommu_domain *domain; + + domain = ops->domain_alloc(IOMMU_DOMAIN_SVA); + if (!domain) + return NULL; + + domain->type = IOMMU_DOMAIN_SVA; + mmgrab(mm); + domain->mm = mm; + domain->iopf_handler = iommu_sva_handle_iopf; + domain->fault_data = mm; + + return domain; +} diff --git a/drivers/mailbox/gunyah-msgq.c b/drivers/mailbox/gunyah-msgq.c index 1989298653f9..d16c523901ac 100644 --- a/drivers/mailbox/gunyah-msgq.c +++ b/drivers/mailbox/gunyah-msgq.c @@ -139,9 +139,6 @@ int gh_msgq_init(struct device *parent, struct gh_msgq *msgq, struct mbox_client (rx_ghrsc && rx_ghrsc->type != GH_RESOURCE_TYPE_MSGQ_RX)) return -EINVAL; - if (!gh_api_has_feature(GH_FEATURE_MSGQUEUE)) - return -EOPNOTSUPP; - msgq->tx_ghrsc = tx_ghrsc; msgq->rx_ghrsc = rx_ghrsc; diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 89bf28ed874c..38d8aa21ef7a 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -1522,6 +1522,8 @@ static int __send_duplicate_bios(struct clone_info *ci, struct dm_target *ti, ret = 1; break; default: + if (len) + setup_split_accounting(ci, *len); /* dm_accept_partial_bio() is not supported with shared tio->len_ptr */ alloc_multiple_bios(&blist, ci, ti, num_bios); while ((clone = bio_list_pop(&blist))) { diff --git a/drivers/md/md.c b/drivers/md/md.c index 0368b3c51c7f..d5c362b1602b 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -3152,6 +3152,9 @@ slot_store(struct md_rdev *rdev, const char *buf, size_t len) err = kstrtouint(buf, 10, (unsigned int *)&slot); if (err < 0) return err; + if (slot < 0) + /* overflow */ + return -ENOSPC; } if (rdev->mddev->pers && slot == -1) { /* Setting 'slot' on an active array requires also diff --git a/drivers/misc/uacce/uacce.c b/drivers/misc/uacce/uacce.c index b70a013139c7..905eff1f840e 100644 --- a/drivers/misc/uacce/uacce.c +++ b/drivers/misc/uacce/uacce.c @@ -108,7 +108,7 @@ static int uacce_bind_queue(struct uacce_device *uacce, struct uacce_queue *q) if (!(uacce->flags & UACCE_DEV_SVA)) return 0; - handle = iommu_sva_bind_device(uacce->parent, current->mm, NULL); + handle = iommu_sva_bind_device(uacce->parent, current->mm); if (IS_ERR(handle)) return PTR_ERR(handle); diff --git a/drivers/mtd/nand/ecc-mxic.c b/drivers/mtd/nand/ecc-mxic.c index 8afdca731b87..6b487ffe2f2d 100644 --- a/drivers/mtd/nand/ecc-mxic.c +++ b/drivers/mtd/nand/ecc-mxic.c @@ -429,6 +429,7 @@ static int mxic_ecc_data_xfer_wait_for_completion(struct mxic_ecc_engine *mxic) mxic_ecc_enable_int(mxic); ret = wait_for_completion_timeout(&mxic->complete, msecs_to_jiffies(1000)); + ret = ret ? 0 : -ETIMEDOUT; mxic_ecc_disable_int(mxic); } else { ret = readl_poll_timeout(mxic->regs + INTRPT_STS, val, diff --git a/drivers/mtd/nand/raw/meson_nand.c b/drivers/mtd/nand/raw/meson_nand.c index 5ee01231ac4c..a28574c00900 100644 --- a/drivers/mtd/nand/raw/meson_nand.c +++ b/drivers/mtd/nand/raw/meson_nand.c @@ -176,6 +176,7 @@ struct meson_nfc { dma_addr_t daddr; dma_addr_t iaddr; + u32 info_bytes; unsigned long assigned_cs; }; @@ -503,6 +504,7 @@ static int meson_nfc_dma_buffer_setup(struct nand_chip *nand, void *databuf, nfc->daddr, datalen, dir); return ret; } + nfc->info_bytes = infolen; cmd = GENCMDIADDRL(NFC_CMD_AIL, nfc->iaddr); writel(cmd, nfc->reg_base + NFC_REG_CMD); @@ -520,8 +522,10 @@ static void meson_nfc_dma_buffer_release(struct nand_chip *nand, struct meson_nfc *nfc = nand_get_controller_data(nand); dma_unmap_single(nfc->dev, nfc->daddr, datalen, dir); - if (infolen) + if (infolen) { dma_unmap_single(nfc->dev, nfc->iaddr, infolen, dir); + nfc->info_bytes = 0; + } } static int meson_nfc_read_buf(struct nand_chip *nand, u8 *buf, int len) @@ -710,6 +714,8 @@ static void meson_nfc_check_ecc_pages_valid(struct meson_nfc *nfc, usleep_range(10, 15); /* info is updated by nfc dma engine*/ smp_rmb(); + dma_sync_single_for_cpu(nfc->dev, nfc->iaddr, nfc->info_bytes, + DMA_FROM_DEVICE); ret = *info & ECC_COMPLETE; } while (!ret); } @@ -991,7 +997,7 @@ static const struct mtd_ooblayout_ops meson_ooblayout_ops = { static int meson_nfc_clk_init(struct meson_nfc *nfc) { - struct clk_parent_data nfc_divider_parent_data[1]; + struct clk_parent_data nfc_divider_parent_data[1] = {0}; struct clk_init_data init = {0}; int ret; diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index bd3b133e7085..22250ae222b5 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -907,15 +907,14 @@ int ksz8_fdb_dump(struct ksz_device *dev, int port, u16 entries = 0; u8 timestamp = 0; u8 fid; - u8 member; - struct alu_struct alu; + u8 src_port; + u8 mac[ETH_ALEN]; do { - alu.is_static = false; - ret = ksz8_r_dyn_mac_table(dev, i, alu.mac, &fid, &member, + ret = ksz8_r_dyn_mac_table(dev, i, mac, &fid, &src_port, ×tamp, &entries); - if (!ret && (member & BIT(port))) { - ret = cb(alu.mac, alu.fid, alu.is_static, data); + if (!ret && port == src_port) { + ret = cb(mac, fid, false, data); if (ret) break; } diff --git a/drivers/net/dsa/microchip/ksz8863_smi.c b/drivers/net/dsa/microchip/ksz8863_smi.c index ddb40838181e..ed77ac222895 100644 --- a/drivers/net/dsa/microchip/ksz8863_smi.c +++ b/drivers/net/dsa/microchip/ksz8863_smi.c @@ -82,22 +82,16 @@ static const struct regmap_bus regmap_smi[] = { { .read = ksz8863_mdio_read, .write = ksz8863_mdio_write, - .max_raw_read = 1, - .max_raw_write = 1, }, { .read = ksz8863_mdio_read, .write = ksz8863_mdio_write, .val_format_endian_default = REGMAP_ENDIAN_BIG, - .max_raw_read = 2, - .max_raw_write = 2, }, { .read = ksz8863_mdio_read, .write = ksz8863_mdio_write, .val_format_endian_default = REGMAP_ENDIAN_BIG, - .max_raw_read = 4, - .max_raw_write = 4, } }; @@ -108,7 +102,6 @@ static const struct regmap_config ksz8863_regmap_config[] = { .pad_bits = 24, .val_bits = 8, .cache_type = REGCACHE_NONE, - .use_single_read = 1, .lock = ksz_regmap_lock, .unlock = ksz_regmap_unlock, }, @@ -118,7 +111,6 @@ static const struct regmap_config ksz8863_regmap_config[] = { .pad_bits = 24, .val_bits = 16, .cache_type = REGCACHE_NONE, - .use_single_read = 1, .lock = ksz_regmap_lock, .unlock = ksz_regmap_unlock, }, @@ -128,7 +120,6 @@ static const struct regmap_config ksz8863_regmap_config[] = { .pad_bits = 24, .val_bits = 32, .cache_type = REGCACHE_NONE, - .use_single_read = 1, .lock = ksz_regmap_lock, .unlock = ksz_regmap_unlock, } diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index 07f6776bba12..3d59298eaa5c 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -357,13 +357,13 @@ static const u32 ksz8863_masks[] = { [VLAN_TABLE_VALID] = BIT(19), [STATIC_MAC_TABLE_VALID] = BIT(19), [STATIC_MAC_TABLE_USE_FID] = BIT(21), - [STATIC_MAC_TABLE_FID] = GENMASK(29, 26), + [STATIC_MAC_TABLE_FID] = GENMASK(25, 22), [STATIC_MAC_TABLE_OVERRIDE] = BIT(20), [STATIC_MAC_TABLE_FWD_PORTS] = GENMASK(18, 16), - [DYNAMIC_MAC_TABLE_ENTRIES_H] = GENMASK(5, 0), - [DYNAMIC_MAC_TABLE_MAC_EMPTY] = BIT(7), + [DYNAMIC_MAC_TABLE_ENTRIES_H] = GENMASK(1, 0), + [DYNAMIC_MAC_TABLE_MAC_EMPTY] = BIT(2), [DYNAMIC_MAC_TABLE_NOT_READY] = BIT(7), - [DYNAMIC_MAC_TABLE_ENTRIES] = GENMASK(31, 28), + [DYNAMIC_MAC_TABLE_ENTRIES] = GENMASK(31, 24), [DYNAMIC_MAC_TABLE_FID] = GENMASK(19, 16), [DYNAMIC_MAC_TABLE_SRC_PORT] = GENMASK(21, 20), [DYNAMIC_MAC_TABLE_TIMESTAMP] = GENMASK(23, 22), @@ -373,10 +373,10 @@ static u8 ksz8863_shifts[] = { [VLAN_TABLE_MEMBERSHIP_S] = 16, [STATIC_MAC_FWD_PORTS] = 16, [STATIC_MAC_FID] = 22, - [DYNAMIC_MAC_ENTRIES_H] = 3, + [DYNAMIC_MAC_ENTRIES_H] = 8, [DYNAMIC_MAC_ENTRIES] = 24, [DYNAMIC_MAC_FID] = 16, - [DYNAMIC_MAC_TIMESTAMP] = 24, + [DYNAMIC_MAC_TIMESTAMP] = 22, [DYNAMIC_MAC_SRC_PORT] = 20, }; diff --git a/drivers/net/dsa/mv88e6xxx/Makefile b/drivers/net/dsa/mv88e6xxx/Makefile index c8eca2b6f959..49bf358b9c4f 100644 --- a/drivers/net/dsa/mv88e6xxx/Makefile +++ b/drivers/net/dsa/mv88e6xxx/Makefile @@ -15,3 +15,7 @@ mv88e6xxx-objs += port_hidden.o mv88e6xxx-$(CONFIG_NET_DSA_MV88E6XXX_PTP) += ptp.o mv88e6xxx-objs += serdes.o mv88e6xxx-objs += smi.o +mv88e6xxx-objs += trace.o + +# for tracing framework to find trace.h +CFLAGS_trace.o := -I$(src) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index 3a6db36574ad..8cf27e2654fc 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -3354,9 +3354,14 @@ static int mv88e6xxx_setup_port(struct mv88e6xxx_chip *chip, int port) * If this is the upstream port for this switch, enable * forwarding of unknown unicasts and multicasts. */ - reg = MV88E6XXX_PORT_CTL0_IGMP_MLD_SNOOP | - MV88E6185_PORT_CTL0_USE_TAG | MV88E6185_PORT_CTL0_USE_IP | + reg = MV88E6185_PORT_CTL0_USE_TAG | MV88E6185_PORT_CTL0_USE_IP | MV88E6XXX_PORT_CTL0_STATE_FORWARDING; + /* Forward any IPv4 IGMP or IPv6 MLD frames received + * by a USER port to the CPU port to allow snooping. + */ + if (dsa_is_user_port(ds, port)) + reg |= MV88E6XXX_PORT_CTL0_IGMP_MLD_SNOOP; + err = mv88e6xxx_port_write(chip, port, MV88E6XXX_PORT_CTL0, reg); if (err) return err; diff --git a/drivers/net/dsa/mv88e6xxx/global1_atu.c b/drivers/net/dsa/mv88e6xxx/global1_atu.c index 40bd67a5c8e9..7c513a03789c 100644 --- a/drivers/net/dsa/mv88e6xxx/global1_atu.c +++ b/drivers/net/dsa/mv88e6xxx/global1_atu.c @@ -12,6 +12,7 @@ #include "chip.h" #include "global1.h" +#include "trace.h" /* Offset 0x01: ATU FID Register */ @@ -114,6 +115,19 @@ static int mv88e6xxx_g1_atu_op_wait(struct mv88e6xxx_chip *chip) return mv88e6xxx_g1_wait_bit(chip, MV88E6XXX_G1_ATU_OP, bit, 0); } +static int mv88e6xxx_g1_read_atu_violation(struct mv88e6xxx_chip *chip) +{ + int err; + + err = mv88e6xxx_g1_write(chip, MV88E6XXX_G1_ATU_OP, + MV88E6XXX_G1_ATU_OP_BUSY | + MV88E6XXX_G1_ATU_OP_GET_CLR_VIOLATION); + if (err) + return err; + + return mv88e6xxx_g1_atu_op_wait(chip); +} + static int mv88e6xxx_g1_atu_op(struct mv88e6xxx_chip *chip, u16 fid, u16 op) { u16 val; @@ -159,6 +173,41 @@ int mv88e6xxx_g1_atu_get_next(struct mv88e6xxx_chip *chip, u16 fid) return mv88e6xxx_g1_atu_op(chip, fid, MV88E6XXX_G1_ATU_OP_GET_NEXT_DB); } +static int mv88e6xxx_g1_atu_fid_read(struct mv88e6xxx_chip *chip, u16 *fid) +{ + u16 val = 0, upper = 0, op = 0; + int err = -EOPNOTSUPP; + + if (mv88e6xxx_num_databases(chip) > 256) { + err = mv88e6xxx_g1_read(chip, MV88E6352_G1_ATU_FID, &val); + val &= 0xfff; + if (err) + return err; + } else { + err = mv88e6xxx_g1_read(chip, MV88E6XXX_G1_ATU_OP, &op); + if (err) + return err; + if (mv88e6xxx_num_databases(chip) > 64) { + /* ATU DBNum[7:4] are located in ATU Control 15:12 */ + err = mv88e6xxx_g1_read(chip, MV88E6XXX_G1_ATU_CTL, + &upper); + if (err) + return err; + + upper = (upper >> 8) & 0x00f0; + } else if (mv88e6xxx_num_databases(chip) > 16) { + /* ATU DBNum[5:4] are located in ATU Operation 9:8 */ + upper = (op >> 4) & 0x30; + } + + /* ATU DBNum[3:0] are located in ATU Operation 3:0 */ + val = (op & 0xf) | upper; + } + *fid = val; + + return err; +} + /* Offset 0x0C: ATU Data Register */ static int mv88e6xxx_g1_atu_data_read(struct mv88e6xxx_chip *chip, @@ -353,14 +402,12 @@ static irqreturn_t mv88e6xxx_g1_atu_prob_irq_thread_fn(int irq, void *dev_id) { struct mv88e6xxx_chip *chip = dev_id; struct mv88e6xxx_atu_entry entry; - int spid; - int err; - u16 val; + int err, spid; + u16 val, fid; mv88e6xxx_reg_lock(chip); - err = mv88e6xxx_g1_atu_op(chip, 0, - MV88E6XXX_G1_ATU_OP_GET_CLR_VIOLATION); + err = mv88e6xxx_g1_read_atu_violation(chip); if (err) goto out; @@ -368,6 +415,10 @@ static irqreturn_t mv88e6xxx_g1_atu_prob_irq_thread_fn(int irq, void *dev_id) if (err) goto out; + err = mv88e6xxx_g1_atu_fid_read(chip, &fid); + if (err) + goto out; + err = mv88e6xxx_g1_atu_data_read(chip, &entry); if (err) goto out; @@ -385,23 +436,23 @@ static irqreturn_t mv88e6xxx_g1_atu_prob_irq_thread_fn(int irq, void *dev_id) } if (val & MV88E6XXX_G1_ATU_OP_MEMBER_VIOLATION) { - dev_err_ratelimited(chip->dev, - "ATU member violation for %pM portvec %x spid %d\n", - entry.mac, entry.portvec, spid); + trace_mv88e6xxx_atu_member_violation(chip->dev, spid, + entry.portvec, entry.mac, + fid); chip->ports[spid].atu_member_violation++; } if (val & MV88E6XXX_G1_ATU_OP_MISS_VIOLATION) { - dev_err_ratelimited(chip->dev, - "ATU miss violation for %pM portvec %x spid %d\n", - entry.mac, entry.portvec, spid); + trace_mv88e6xxx_atu_miss_violation(chip->dev, spid, + entry.portvec, entry.mac, + fid); chip->ports[spid].atu_miss_violation++; } if (val & MV88E6XXX_G1_ATU_OP_FULL_VIOLATION) { - dev_err_ratelimited(chip->dev, - "ATU full violation for %pM portvec %x spid %d\n", - entry.mac, entry.portvec, spid); + trace_mv88e6xxx_atu_full_violation(chip->dev, spid, + entry.portvec, entry.mac, + fid); chip->ports[spid].atu_full_violation++; } mv88e6xxx_reg_unlock(chip); diff --git a/drivers/net/dsa/mv88e6xxx/global1_vtu.c b/drivers/net/dsa/mv88e6xxx/global1_vtu.c index 38e18f5811bf..bcfb4a812055 100644 --- a/drivers/net/dsa/mv88e6xxx/global1_vtu.c +++ b/drivers/net/dsa/mv88e6xxx/global1_vtu.c @@ -13,6 +13,7 @@ #include "chip.h" #include "global1.h" +#include "trace.h" /* Offset 0x02: VTU FID Register */ @@ -628,14 +629,12 @@ static irqreturn_t mv88e6xxx_g1_vtu_prob_irq_thread_fn(int irq, void *dev_id) spid = val & MV88E6XXX_G1_VTU_OP_SPID_MASK; if (val & MV88E6XXX_G1_VTU_OP_MEMBER_VIOLATION) { - dev_err_ratelimited(chip->dev, "VTU member violation for vid %d, source port %d\n", - vid, spid); + trace_mv88e6xxx_vtu_member_violation(chip->dev, spid, vid); chip->ports[spid].vtu_member_violation++; } if (val & MV88E6XXX_G1_VTU_OP_MISS_VIOLATION) { - dev_dbg_ratelimited(chip->dev, "VTU miss violation for vid %d, source port %d\n", - vid, spid); + trace_mv88e6xxx_vtu_miss_violation(chip->dev, spid, vid); chip->ports[spid].vtu_miss_violation++; } diff --git a/drivers/net/dsa/mv88e6xxx/trace.c b/drivers/net/dsa/mv88e6xxx/trace.c new file mode 100644 index 000000000000..7833cb50ca5d --- /dev/null +++ b/drivers/net/dsa/mv88e6xxx/trace.c @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* Copyright 2022 NXP + */ + +#define CREATE_TRACE_POINTS +#include "trace.h" diff --git a/drivers/net/dsa/mv88e6xxx/trace.h b/drivers/net/dsa/mv88e6xxx/trace.h new file mode 100644 index 000000000000..f59ca04768e7 --- /dev/null +++ b/drivers/net/dsa/mv88e6xxx/trace.h @@ -0,0 +1,96 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* Copyright 2022 NXP + */ + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM mv88e6xxx + +#if !defined(_MV88E6XXX_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) +#define _MV88E6XXX_TRACE_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(mv88e6xxx_atu_violation, + + TP_PROTO(const struct device *dev, int spid, u16 portvec, + const unsigned char *addr, u16 fid), + + TP_ARGS(dev, spid, portvec, addr, fid), + + TP_STRUCT__entry( + __string(name, dev_name(dev)) + __field(int, spid) + __field(u16, portvec) + __array(unsigned char, addr, ETH_ALEN) + __field(u16, fid) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __entry->spid = spid; + __entry->portvec = portvec; + memcpy(__entry->addr, addr, ETH_ALEN); + __entry->fid = fid; + ), + + TP_printk("dev %s spid %d portvec 0x%x addr %pM fid %u", + __get_str(name), __entry->spid, __entry->portvec, + __entry->addr, __entry->fid) +); + +DEFINE_EVENT(mv88e6xxx_atu_violation, mv88e6xxx_atu_member_violation, + TP_PROTO(const struct device *dev, int spid, u16 portvec, + const unsigned char *addr, u16 fid), + TP_ARGS(dev, spid, portvec, addr, fid)); + +DEFINE_EVENT(mv88e6xxx_atu_violation, mv88e6xxx_atu_miss_violation, + TP_PROTO(const struct device *dev, int spid, u16 portvec, + const unsigned char *addr, u16 fid), + TP_ARGS(dev, spid, portvec, addr, fid)); + +DEFINE_EVENT(mv88e6xxx_atu_violation, mv88e6xxx_atu_full_violation, + TP_PROTO(const struct device *dev, int spid, u16 portvec, + const unsigned char *addr, u16 fid), + TP_ARGS(dev, spid, portvec, addr, fid)); + +DECLARE_EVENT_CLASS(mv88e6xxx_vtu_violation, + + TP_PROTO(const struct device *dev, int spid, u16 vid), + + TP_ARGS(dev, spid, vid), + + TP_STRUCT__entry( + __string(name, dev_name(dev)) + __field(int, spid) + __field(u16, vid) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __entry->spid = spid; + __entry->vid = vid; + ), + + TP_printk("dev %s spid %d vid %u", + __get_str(name), __entry->spid, __entry->vid) +); + +DEFINE_EVENT(mv88e6xxx_vtu_violation, mv88e6xxx_vtu_member_violation, + TP_PROTO(const struct device *dev, int spid, u16 vid), + TP_ARGS(dev, spid, vid)); + +DEFINE_EVENT(mv88e6xxx_vtu_violation, mv88e6xxx_vtu_miss_violation, + TP_PROTO(const struct device *dev, int spid, u16 vid), + TP_ARGS(dev, spid, vid)); + +#endif /* _MV88E6XXX_TRACE_H */ + +/* We don't want to use include/trace/events */ +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH . +#undef TRACE_INCLUDE_FILE +#define TRACE_INCLUDE_FILE trace +/* This part must be outside protection */ +#include diff --git a/drivers/net/dsa/realtek/realtek-mdio.c b/drivers/net/dsa/realtek/realtek-mdio.c index 3e54fac5f902..5a8fe707ca25 100644 --- a/drivers/net/dsa/realtek/realtek-mdio.c +++ b/drivers/net/dsa/realtek/realtek-mdio.c @@ -21,6 +21,7 @@ #include #include +#include #include #include "realtek.h" @@ -152,7 +153,9 @@ static int realtek_mdio_probe(struct mdio_device *mdiodev) if (!var) return -EINVAL; - priv = devm_kzalloc(&mdiodev->dev, sizeof(*priv), GFP_KERNEL); + priv = devm_kzalloc(&mdiodev->dev, + size_add(sizeof(*priv), var->chip_data_sz), + GFP_KERNEL); if (!priv) return -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 251b102d2792..c6e36603bd2d 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -175,12 +175,12 @@ static const struct pci_device_id bnxt_pci_tbl[] = { { PCI_VDEVICE(BROADCOM, 0x1750), .driver_data = BCM57508 }, { PCI_VDEVICE(BROADCOM, 0x1751), .driver_data = BCM57504 }, { PCI_VDEVICE(BROADCOM, 0x1752), .driver_data = BCM57502 }, - { PCI_VDEVICE(BROADCOM, 0x1800), .driver_data = BCM57508_NPAR }, + { PCI_VDEVICE(BROADCOM, 0x1800), .driver_data = BCM57502_NPAR }, { PCI_VDEVICE(BROADCOM, 0x1801), .driver_data = BCM57504_NPAR }, - { PCI_VDEVICE(BROADCOM, 0x1802), .driver_data = BCM57502_NPAR }, - { PCI_VDEVICE(BROADCOM, 0x1803), .driver_data = BCM57508_NPAR }, + { PCI_VDEVICE(BROADCOM, 0x1802), .driver_data = BCM57508_NPAR }, + { PCI_VDEVICE(BROADCOM, 0x1803), .driver_data = BCM57502_NPAR }, { PCI_VDEVICE(BROADCOM, 0x1804), .driver_data = BCM57504_NPAR }, - { PCI_VDEVICE(BROADCOM, 0x1805), .driver_data = BCM57502_NPAR }, + { PCI_VDEVICE(BROADCOM, 0x1805), .driver_data = BCM57508_NPAR }, { PCI_VDEVICE(BROADCOM, 0xd802), .driver_data = BCM58802 }, { PCI_VDEVICE(BROADCOM, 0xd804), .driver_data = BCM58804 }, #ifdef CONFIG_BNXT_SRIOV diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h index 02741d499bf4..1d2588c92977 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h @@ -1225,6 +1225,7 @@ struct bnxt_link_info { #define BNXT_LINK_SPEED_40GB PORT_PHY_QCFG_RESP_LINK_SPEED_40GB #define BNXT_LINK_SPEED_50GB PORT_PHY_QCFG_RESP_LINK_SPEED_50GB #define BNXT_LINK_SPEED_100GB PORT_PHY_QCFG_RESP_LINK_SPEED_100GB +#define BNXT_LINK_SPEED_200GB PORT_PHY_QCFG_RESP_LINK_SPEED_200GB u16 support_speeds; u16 support_pam4_speeds; u16 auto_link_speeds; /* fw adv setting */ diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c index 703fc163235f..01b973bc509f 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c @@ -1712,6 +1712,8 @@ u32 bnxt_fw_to_ethtool_speed(u16 fw_link_speed) return SPEED_50000; case BNXT_LINK_SPEED_100GB: return SPEED_100000; + case BNXT_LINK_SPEED_200GB: + return SPEED_200000; default: return SPEED_UNKNOWN; } @@ -3634,6 +3636,7 @@ static void bnxt_self_test(struct net_device *dev, struct ethtool_test *etest, bnxt_ulp_stop(bp); rc = bnxt_close_nic(bp, true, false); if (rc) { + etest->flags |= ETH_TEST_FL_FAILED; bnxt_ulp_start(bp, rc); return; } diff --git a/drivers/net/ethernet/intel/i40e/i40e_diag.c b/drivers/net/ethernet/intel/i40e/i40e_diag.c index ef4d3762bf37..ca229b0efeb6 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_diag.c +++ b/drivers/net/ethernet/intel/i40e/i40e_diag.c @@ -44,7 +44,7 @@ static i40e_status i40e_diag_reg_pattern_test(struct i40e_hw *hw, return 0; } -struct i40e_diag_reg_test_info i40e_reg_list[] = { +const struct i40e_diag_reg_test_info i40e_reg_list[] = { /* offset mask elements stride */ {I40E_QTX_CTL(0), 0x0000FFBF, 1, I40E_QTX_CTL(1) - I40E_QTX_CTL(0)}, @@ -78,27 +78,28 @@ i40e_status i40e_diag_reg_test(struct i40e_hw *hw) { i40e_status ret_code = 0; u32 reg, mask; + u32 elements; u32 i, j; for (i = 0; i40e_reg_list[i].offset != 0 && !ret_code; i++) { + elements = i40e_reg_list[i].elements; /* set actual reg range for dynamically allocated resources */ if (i40e_reg_list[i].offset == I40E_QTX_CTL(0) && hw->func_caps.num_tx_qp != 0) - i40e_reg_list[i].elements = hw->func_caps.num_tx_qp; + elements = hw->func_caps.num_tx_qp; if ((i40e_reg_list[i].offset == I40E_PFINT_ITRN(0, 0) || i40e_reg_list[i].offset == I40E_PFINT_ITRN(1, 0) || i40e_reg_list[i].offset == I40E_PFINT_ITRN(2, 0) || i40e_reg_list[i].offset == I40E_QINT_TQCTL(0) || i40e_reg_list[i].offset == I40E_QINT_RQCTL(0)) && hw->func_caps.num_msix_vectors != 0) - i40e_reg_list[i].elements = - hw->func_caps.num_msix_vectors - 1; + elements = hw->func_caps.num_msix_vectors - 1; /* test register access */ mask = i40e_reg_list[i].mask; - for (j = 0; j < i40e_reg_list[i].elements && !ret_code; j++) { + for (j = 0; j < elements && !ret_code; j++) { reg = i40e_reg_list[i].offset + (j * i40e_reg_list[i].stride); ret_code = i40e_diag_reg_pattern_test(hw, reg, mask); diff --git a/drivers/net/ethernet/intel/i40e/i40e_diag.h b/drivers/net/ethernet/intel/i40e/i40e_diag.h index c3340f320a18..1db7c6d57231 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_diag.h +++ b/drivers/net/ethernet/intel/i40e/i40e_diag.h @@ -20,7 +20,7 @@ struct i40e_diag_reg_test_info { u32 stride; /* bytes between each element */ }; -extern struct i40e_diag_reg_test_info i40e_reg_list[]; +extern const struct i40e_diag_reg_test_info i40e_reg_list[]; i40e_status i40e_diag_reg_test(struct i40e_hw *hw); i40e_status i40e_diag_eeprom_test(struct i40e_hw *hw); diff --git a/drivers/net/ethernet/intel/ice/ice_sched.c b/drivers/net/ethernet/intel/ice/ice_sched.c index 118595763bba..2c62c1763ee0 100644 --- a/drivers/net/ethernet/intel/ice/ice_sched.c +++ b/drivers/net/ethernet/intel/ice/ice_sched.c @@ -2756,7 +2756,7 @@ static int ice_sched_assoc_vsi_to_agg(struct ice_port_info *pi, u32 agg_id, u16 vsi_handle, unsigned long *tc_bitmap) { - struct ice_sched_agg_vsi_info *agg_vsi_info, *old_agg_vsi_info = NULL; + struct ice_sched_agg_vsi_info *agg_vsi_info, *iter, *old_agg_vsi_info = NULL; struct ice_sched_agg_info *agg_info, *old_agg_info; struct ice_hw *hw = pi->hw; int status = 0; @@ -2774,11 +2774,13 @@ ice_sched_assoc_vsi_to_agg(struct ice_port_info *pi, u32 agg_id, if (old_agg_info && old_agg_info != agg_info) { struct ice_sched_agg_vsi_info *vtmp; - list_for_each_entry_safe(old_agg_vsi_info, vtmp, + list_for_each_entry_safe(iter, vtmp, &old_agg_info->agg_vsi_list, list_entry) - if (old_agg_vsi_info->vsi_handle == vsi_handle) + if (iter->vsi_handle == vsi_handle) { + old_agg_vsi_info = iter; break; + } } /* check if entry already exist */ diff --git a/drivers/net/ethernet/intel/ice/ice_switch.c b/drivers/net/ethernet/intel/ice/ice_switch.c index 61f844d22512..46b36851af46 100644 --- a/drivers/net/ethernet/intel/ice/ice_switch.c +++ b/drivers/net/ethernet/intel/ice/ice_switch.c @@ -1780,18 +1780,36 @@ ice_update_vsi(struct ice_hw *hw, u16 vsi_handle, struct ice_vsi_ctx *vsi_ctx, int ice_cfg_rdma_fltr(struct ice_hw *hw, u16 vsi_handle, bool enable) { - struct ice_vsi_ctx *ctx; + struct ice_vsi_ctx *ctx, *cached_ctx; + int status; - ctx = ice_get_vsi_ctx(hw, vsi_handle); + cached_ctx = ice_get_vsi_ctx(hw, vsi_handle); + if (!cached_ctx) + return -ENOENT; + + ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); if (!ctx) - return -EIO; + return -ENOMEM; + + ctx->info.q_opt_rss = cached_ctx->info.q_opt_rss; + ctx->info.q_opt_tc = cached_ctx->info.q_opt_tc; + ctx->info.q_opt_flags = cached_ctx->info.q_opt_flags; + + ctx->info.valid_sections = cpu_to_le16(ICE_AQ_VSI_PROP_Q_OPT_VALID); if (enable) ctx->info.q_opt_flags |= ICE_AQ_VSI_Q_OPT_PE_FLTR_EN; else ctx->info.q_opt_flags &= ~ICE_AQ_VSI_Q_OPT_PE_FLTR_EN; - return ice_update_vsi(hw, vsi_handle, ctx, NULL); + status = ice_update_vsi(hw, vsi_handle, ctx, NULL); + if (!status) { + cached_ctx->info.q_opt_flags = ctx->info.q_opt_flags; + cached_ctx->info.valid_sections |= ctx->info.valid_sections; + } + + kfree(ctx); + return status; } /** diff --git a/drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c b/drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c index c6a58343d81d..a2645ff3100e 100644 --- a/drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c +++ b/drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c @@ -541,6 +541,72 @@ static void ice_vc_fdir_rem_prof_all(struct ice_vf *vf) } } +/** + * ice_vc_fdir_has_prof_conflict + * @vf: pointer to the VF structure + * @conf: FDIR configuration for each filter + * + * Check if @conf has conflicting profile with existing profiles + * + * Return: true on success, and false on error. + */ +static bool +ice_vc_fdir_has_prof_conflict(struct ice_vf *vf, + struct virtchnl_fdir_fltr_conf *conf) +{ + struct ice_fdir_fltr *desc; + + list_for_each_entry(desc, &vf->fdir.fdir_rule_list, fltr_node) { + struct virtchnl_fdir_fltr_conf *existing_conf; + enum ice_fltr_ptype flow_type_a, flow_type_b; + struct ice_fdir_fltr *a, *b; + + existing_conf = to_fltr_conf_from_desc(desc); + a = &existing_conf->input; + b = &conf->input; + flow_type_a = a->flow_type; + flow_type_b = b->flow_type; + + /* No need to compare two rules with different tunnel types or + * with the same protocol type. + */ + if (existing_conf->ttype != conf->ttype || + flow_type_a == flow_type_b) + continue; + + switch (flow_type_a) { + case ICE_FLTR_PTYPE_NONF_IPV4_UDP: + case ICE_FLTR_PTYPE_NONF_IPV4_TCP: + case ICE_FLTR_PTYPE_NONF_IPV4_SCTP: + if (flow_type_b == ICE_FLTR_PTYPE_NONF_IPV4_OTHER) + return true; + break; + case ICE_FLTR_PTYPE_NONF_IPV4_OTHER: + if (flow_type_b == ICE_FLTR_PTYPE_NONF_IPV4_UDP || + flow_type_b == ICE_FLTR_PTYPE_NONF_IPV4_TCP || + flow_type_b == ICE_FLTR_PTYPE_NONF_IPV4_SCTP) + return true; + break; + case ICE_FLTR_PTYPE_NONF_IPV6_UDP: + case ICE_FLTR_PTYPE_NONF_IPV6_TCP: + case ICE_FLTR_PTYPE_NONF_IPV6_SCTP: + if (flow_type_b == ICE_FLTR_PTYPE_NONF_IPV6_OTHER) + return true; + break; + case ICE_FLTR_PTYPE_NONF_IPV6_OTHER: + if (flow_type_b == ICE_FLTR_PTYPE_NONF_IPV6_UDP || + flow_type_b == ICE_FLTR_PTYPE_NONF_IPV6_TCP || + flow_type_b == ICE_FLTR_PTYPE_NONF_IPV6_SCTP) + return true; + break; + default: + break; + } + } + + return false; +} + /** * ice_vc_fdir_write_flow_prof * @vf: pointer to the VF structure @@ -677,6 +743,13 @@ ice_vc_fdir_config_input_set(struct ice_vf *vf, struct virtchnl_fdir_add *fltr, enum ice_fltr_ptype flow; int ret; + ret = ice_vc_fdir_has_prof_conflict(vf, conf); + if (ret) { + dev_dbg(dev, "Found flow profile conflict for VF %d\n", + vf->vf_id); + return ret; + } + flow = input->flow_type; ret = ice_vc_fdir_alloc_prof(vf, flow); if (ret) { diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c index 41d935d1aaf6..40aeaa7bd739 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c @@ -62,35 +62,38 @@ static const struct mvpp2_cls_flow cls_flows[MVPP2_N_PRS_FLOWS] = { MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4, MVPP2_FL_IP4_TCP_FRAG_UNTAG, MVPP22_CLS_HEK_IP4_2T, MVPP2_PRS_RI_VLAN_NONE | MVPP2_PRS_RI_L3_IP4 | - MVPP2_PRS_RI_L4_TCP, + MVPP2_PRS_RI_IP_FRAG_TRUE | MVPP2_PRS_RI_L4_TCP, MVPP2_PRS_IP_MASK | MVPP2_PRS_RI_VLAN_MASK), MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4, MVPP2_FL_IP4_TCP_FRAG_UNTAG, MVPP22_CLS_HEK_IP4_2T, MVPP2_PRS_RI_VLAN_NONE | MVPP2_PRS_RI_L3_IP4_OPT | - MVPP2_PRS_RI_L4_TCP, + MVPP2_PRS_RI_IP_FRAG_TRUE | MVPP2_PRS_RI_L4_TCP, MVPP2_PRS_IP_MASK | MVPP2_PRS_RI_VLAN_MASK), MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4, MVPP2_FL_IP4_TCP_FRAG_UNTAG, MVPP22_CLS_HEK_IP4_2T, MVPP2_PRS_RI_VLAN_NONE | MVPP2_PRS_RI_L3_IP4_OTHER | - MVPP2_PRS_RI_L4_TCP, + MVPP2_PRS_RI_IP_FRAG_TRUE | MVPP2_PRS_RI_L4_TCP, MVPP2_PRS_IP_MASK | MVPP2_PRS_RI_VLAN_MASK), /* TCP over IPv4 flows, fragmented, with vlan tag */ MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4, MVPP2_FL_IP4_TCP_FRAG_TAG, MVPP22_CLS_HEK_IP4_2T | MVPP22_CLS_HEK_TAGGED, - MVPP2_PRS_RI_L3_IP4 | MVPP2_PRS_RI_L4_TCP, + MVPP2_PRS_RI_L3_IP4 | MVPP2_PRS_RI_IP_FRAG_TRUE | + MVPP2_PRS_RI_L4_TCP, MVPP2_PRS_IP_MASK), MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4, MVPP2_FL_IP4_TCP_FRAG_TAG, MVPP22_CLS_HEK_IP4_2T | MVPP22_CLS_HEK_TAGGED, - MVPP2_PRS_RI_L3_IP4_OPT | MVPP2_PRS_RI_L4_TCP, + MVPP2_PRS_RI_L3_IP4_OPT | MVPP2_PRS_RI_IP_FRAG_TRUE | + MVPP2_PRS_RI_L4_TCP, MVPP2_PRS_IP_MASK), MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4, MVPP2_FL_IP4_TCP_FRAG_TAG, MVPP22_CLS_HEK_IP4_2T | MVPP22_CLS_HEK_TAGGED, - MVPP2_PRS_RI_L3_IP4_OTHER | MVPP2_PRS_RI_L4_TCP, + MVPP2_PRS_RI_L3_IP4_OTHER | MVPP2_PRS_RI_IP_FRAG_TRUE | + MVPP2_PRS_RI_L4_TCP, MVPP2_PRS_IP_MASK), /* UDP over IPv4 flows, Not fragmented, no vlan tag */ @@ -132,35 +135,38 @@ static const struct mvpp2_cls_flow cls_flows[MVPP2_N_PRS_FLOWS] = { MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4, MVPP2_FL_IP4_UDP_FRAG_UNTAG, MVPP22_CLS_HEK_IP4_2T, MVPP2_PRS_RI_VLAN_NONE | MVPP2_PRS_RI_L3_IP4 | - MVPP2_PRS_RI_L4_UDP, + MVPP2_PRS_RI_IP_FRAG_TRUE | MVPP2_PRS_RI_L4_UDP, MVPP2_PRS_IP_MASK | MVPP2_PRS_RI_VLAN_MASK), MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4, MVPP2_FL_IP4_UDP_FRAG_UNTAG, MVPP22_CLS_HEK_IP4_2T, MVPP2_PRS_RI_VLAN_NONE | MVPP2_PRS_RI_L3_IP4_OPT | - MVPP2_PRS_RI_L4_UDP, + MVPP2_PRS_RI_IP_FRAG_TRUE | MVPP2_PRS_RI_L4_UDP, MVPP2_PRS_IP_MASK | MVPP2_PRS_RI_VLAN_MASK), MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4, MVPP2_FL_IP4_UDP_FRAG_UNTAG, MVPP22_CLS_HEK_IP4_2T, MVPP2_PRS_RI_VLAN_NONE | MVPP2_PRS_RI_L3_IP4_OTHER | - MVPP2_PRS_RI_L4_UDP, + MVPP2_PRS_RI_IP_FRAG_TRUE | MVPP2_PRS_RI_L4_UDP, MVPP2_PRS_IP_MASK | MVPP2_PRS_RI_VLAN_MASK), /* UDP over IPv4 flows, fragmented, with vlan tag */ MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4, MVPP2_FL_IP4_UDP_FRAG_TAG, MVPP22_CLS_HEK_IP4_2T | MVPP22_CLS_HEK_TAGGED, - MVPP2_PRS_RI_L3_IP4 | MVPP2_PRS_RI_L4_UDP, + MVPP2_PRS_RI_L3_IP4 | MVPP2_PRS_RI_IP_FRAG_TRUE | + MVPP2_PRS_RI_L4_UDP, MVPP2_PRS_IP_MASK), MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4, MVPP2_FL_IP4_UDP_FRAG_TAG, MVPP22_CLS_HEK_IP4_2T | MVPP22_CLS_HEK_TAGGED, - MVPP2_PRS_RI_L3_IP4_OPT | MVPP2_PRS_RI_L4_UDP, + MVPP2_PRS_RI_L3_IP4_OPT | MVPP2_PRS_RI_IP_FRAG_TRUE | + MVPP2_PRS_RI_L4_UDP, MVPP2_PRS_IP_MASK), MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4, MVPP2_FL_IP4_UDP_FRAG_TAG, MVPP22_CLS_HEK_IP4_2T | MVPP22_CLS_HEK_TAGGED, - MVPP2_PRS_RI_L3_IP4_OTHER | MVPP2_PRS_RI_L4_UDP, + MVPP2_PRS_RI_L3_IP4_OTHER | MVPP2_PRS_RI_IP_FRAG_TRUE | + MVPP2_PRS_RI_L4_UDP, MVPP2_PRS_IP_MASK), /* TCP over IPv6 flows, not fragmented, no vlan tag */ diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c index 75ba57bd1d46..9af22f497a40 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c @@ -1539,8 +1539,8 @@ static int mvpp2_prs_vlan_init(struct platform_device *pdev, struct mvpp2 *priv) if (!priv->prs_double_vlans) return -ENOMEM; - /* Double VLAN: 0x8100, 0x88A8 */ - err = mvpp2_prs_double_vlan_add(priv, ETH_P_8021Q, ETH_P_8021AD, + /* Double VLAN: 0x88A8, 0x8100 */ + err = mvpp2_prs_double_vlan_add(priv, ETH_P_8021AD, ETH_P_8021Q, MVPP2_PRS_PORT_MASK); if (err) return err; @@ -1607,59 +1607,45 @@ static int mvpp2_prs_vlan_init(struct platform_device *pdev, struct mvpp2 *priv) static int mvpp2_prs_pppoe_init(struct mvpp2 *priv) { struct mvpp2_prs_entry pe; - int tid; + int tid, ihl; - /* IPv4 over PPPoE with options */ - tid = mvpp2_prs_tcam_first_free(priv, MVPP2_PE_FIRST_FREE_TID, - MVPP2_PE_LAST_FREE_TID); - if (tid < 0) - return tid; + /* IPv4 over PPPoE with header length >= 5 */ + for (ihl = MVPP2_PRS_IPV4_IHL_MIN; ihl <= MVPP2_PRS_IPV4_IHL_MAX; ihl++) { + tid = mvpp2_prs_tcam_first_free(priv, MVPP2_PE_FIRST_FREE_TID, + MVPP2_PE_LAST_FREE_TID); + if (tid < 0) + return tid; - memset(&pe, 0, sizeof(pe)); - mvpp2_prs_tcam_lu_set(&pe, MVPP2_PRS_LU_PPPOE); - pe.index = tid; + memset(&pe, 0, sizeof(pe)); + mvpp2_prs_tcam_lu_set(&pe, MVPP2_PRS_LU_PPPOE); + pe.index = tid; - mvpp2_prs_match_etype(&pe, 0, PPP_IP); + mvpp2_prs_match_etype(&pe, 0, PPP_IP); + mvpp2_prs_tcam_data_byte_set(&pe, MVPP2_ETH_TYPE_LEN, + MVPP2_PRS_IPV4_HEAD | ihl, + MVPP2_PRS_IPV4_HEAD_MASK | + MVPP2_PRS_IPV4_IHL_MASK); - mvpp2_prs_sram_next_lu_set(&pe, MVPP2_PRS_LU_IP4); - mvpp2_prs_sram_ri_update(&pe, MVPP2_PRS_RI_L3_IP4_OPT, - MVPP2_PRS_RI_L3_PROTO_MASK); - /* goto ipv4 dest-address (skip eth_type + IP-header-size - 4) */ - mvpp2_prs_sram_shift_set(&pe, MVPP2_ETH_TYPE_LEN + - sizeof(struct iphdr) - 4, - MVPP2_PRS_SRAM_OP_SEL_SHIFT_ADD); - /* Set L3 offset */ - mvpp2_prs_sram_offset_set(&pe, MVPP2_PRS_SRAM_UDF_TYPE_L3, - MVPP2_ETH_TYPE_LEN, - MVPP2_PRS_SRAM_OP_SEL_UDF_ADD); + mvpp2_prs_sram_next_lu_set(&pe, MVPP2_PRS_LU_IP4); + mvpp2_prs_sram_ri_update(&pe, MVPP2_PRS_RI_L3_IP4, + MVPP2_PRS_RI_L3_PROTO_MASK); + /* goto ipv4 dst-address (skip eth_type + IP-header-size - 4) */ + mvpp2_prs_sram_shift_set(&pe, MVPP2_ETH_TYPE_LEN + + sizeof(struct iphdr) - 4, + MVPP2_PRS_SRAM_OP_SEL_SHIFT_ADD); + /* Set L3 offset */ + mvpp2_prs_sram_offset_set(&pe, MVPP2_PRS_SRAM_UDF_TYPE_L3, + MVPP2_ETH_TYPE_LEN, + MVPP2_PRS_SRAM_OP_SEL_UDF_ADD); + /* Set L4 offset */ + mvpp2_prs_sram_offset_set(&pe, MVPP2_PRS_SRAM_UDF_TYPE_L4, + MVPP2_ETH_TYPE_LEN + (ihl * 4), + MVPP2_PRS_SRAM_OP_SEL_UDF_ADD); - /* Update shadow table and hw entry */ - mvpp2_prs_shadow_set(priv, pe.index, MVPP2_PRS_LU_PPPOE); - mvpp2_prs_hw_write(priv, &pe); - - /* IPv4 over PPPoE without options */ - tid = mvpp2_prs_tcam_first_free(priv, MVPP2_PE_FIRST_FREE_TID, - MVPP2_PE_LAST_FREE_TID); - if (tid < 0) - return tid; - - pe.index = tid; - - mvpp2_prs_tcam_data_byte_set(&pe, MVPP2_ETH_TYPE_LEN, - MVPP2_PRS_IPV4_HEAD | - MVPP2_PRS_IPV4_IHL_MIN, - MVPP2_PRS_IPV4_HEAD_MASK | - MVPP2_PRS_IPV4_IHL_MASK); - - /* Clear ri before updating */ - pe.sram[MVPP2_PRS_SRAM_RI_WORD] = 0x0; - pe.sram[MVPP2_PRS_SRAM_RI_CTRL_WORD] = 0x0; - mvpp2_prs_sram_ri_update(&pe, MVPP2_PRS_RI_L3_IP4, - MVPP2_PRS_RI_L3_PROTO_MASK); - - /* Update shadow table and hw entry */ - mvpp2_prs_shadow_set(priv, pe.index, MVPP2_PRS_LU_PPPOE); - mvpp2_prs_hw_write(priv, &pe); + /* Update shadow table and hw entry */ + mvpp2_prs_shadow_set(priv, pe.index, MVPP2_PRS_LU_PPPOE); + mvpp2_prs_hw_write(priv, &pe); + } /* IPv6 over PPPoE */ tid = mvpp2_prs_tcam_first_free(priv, MVPP2_PE_FIRST_FREE_TID, diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.c b/drivers/net/ethernet/mediatek/mtk_ppe.c index 34ea8af48c3d..d6eed204574a 100644 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c @@ -438,6 +438,7 @@ __mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry) hwe->ib1 &= ~MTK_FOE_IB1_STATE; hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID); dma_wmb(); + mtk_ppe_cache_clear(ppe); } entry->hash = 0xffff; diff --git a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c index 28bbd1df3e30..6a72687d5b83 100644 --- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c @@ -570,6 +570,7 @@ mtk_eth_setup_tc_block(struct net_device *dev, struct flow_block_offload *f) if (IS_ERR(block_cb)) return PTR_ERR(block_cb); + flow_block_cb_incref(block_cb); flow_block_cb_add(block_cb, f); list_add_tail(&block_cb->driver_list, &block_cb_list); return 0; @@ -578,7 +579,7 @@ mtk_eth_setup_tc_block(struct net_device *dev, struct flow_block_offload *f) if (!block_cb) return -ENOENT; - if (flow_block_cb_decref(block_cb)) { + if (!flow_block_cb_decref(block_cb)) { flow_block_cb_remove(block_cb, f); list_del(&block_cb->driver_list); } diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 3b5c5064cfaf..5e01de4c3203 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -4104,13 +4104,17 @@ static bool mlx5e_xsk_validate_mtu(struct net_device *netdev, struct xsk_buff_pool *xsk_pool = mlx5e_xsk_get_pool(&chs->params, chs->params.xsk, ix); struct mlx5e_xsk_param xsk; + int max_xdp_mtu; if (!xsk_pool) continue; mlx5e_build_xsk_param(xsk_pool, &xsk); + max_xdp_mtu = mlx5e_xdp_max_mtu(new_params, &xsk); - if (!mlx5e_validate_xsk_param(new_params, &xsk, mdev)) { + /* Validate XSK params and XDP MTU in advance */ + if (!mlx5e_validate_xsk_param(new_params, &xsk, mdev) || + new_params->sw_mtu > max_xdp_mtu) { u32 hr = mlx5e_get_linear_rq_headroom(new_params, &xsk); int max_mtu_frame, max_mtu_page, max_mtu; @@ -4120,9 +4124,9 @@ static bool mlx5e_xsk_validate_mtu(struct net_device *netdev, */ max_mtu_frame = MLX5E_HW2SW_MTU(new_params, xsk.chunk_size - hr); max_mtu_page = MLX5E_HW2SW_MTU(new_params, SKB_MAX_HEAD(0)); - max_mtu = min(max_mtu_frame, max_mtu_page); + max_mtu = min3(max_mtu_frame, max_mtu_page, max_xdp_mtu); - netdev_err(netdev, "MTU %d is too big for an XSK running on channel %u. Try MTU <= %d\n", + netdev_err(netdev, "MTU %d is too big for an XSK running on channel %u or its redirection XDP program. Try MTU <= %d\n", new_params->sw_mtu, ix, max_mtu); return false; } diff --git a/drivers/net/ethernet/mscc/ocelot_stats.c b/drivers/net/ethernet/mscc/ocelot_stats.c index dbd20b125cea..0066219bb0e8 100644 --- a/drivers/net/ethernet/mscc/ocelot_stats.c +++ b/drivers/net/ethernet/mscc/ocelot_stats.c @@ -392,7 +392,8 @@ static int ocelot_prepare_stats_regions(struct ocelot *ocelot) if (!ocelot->stats_layout[i].reg) continue; - if (region && ocelot->stats_layout[i].reg == last + 4) { + if (region && ocelot->map[SYS][ocelot->stats_layout[i].reg & REG_MASK] == + ocelot->map[SYS][last & REG_MASK] + 4) { region->count++; } else { region = devm_kzalloc(ocelot->dev, sizeof(*region), diff --git a/drivers/net/ethernet/realtek/r8169_phy_config.c b/drivers/net/ethernet/realtek/r8169_phy_config.c index 930496cd34ed..b50f16786c24 100644 --- a/drivers/net/ethernet/realtek/r8169_phy_config.c +++ b/drivers/net/ethernet/realtek/r8169_phy_config.c @@ -826,6 +826,9 @@ static void rtl8168h_2_hw_phy_config(struct rtl8169_private *tp, /* disable phy pfm mode */ phy_modify_paged(phydev, 0x0a44, 0x11, BIT(7), 0); + /* disable 10m pll off */ + phy_modify_paged(phydev, 0x0a43, 0x10, BIT(0), 0); + rtl8168g_disable_aldps(phydev); rtl8168g_config_eee_phy(phydev); } diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c index 7022fb2005a2..d30459dbfe8f 100644 --- a/drivers/net/ethernet/sfc/ef10.c +++ b/drivers/net/ethernet/sfc/ef10.c @@ -1304,7 +1304,8 @@ static void efx_ef10_fini_nic(struct efx_nic *efx) static int efx_ef10_init_nic(struct efx_nic *efx) { struct efx_ef10_nic_data *nic_data = efx->nic_data; - netdev_features_t hw_enc_features = 0; + struct net_device *net_dev = efx->net_dev; + netdev_features_t tun_feats, tso_feats; int rc; if (nic_data->must_check_datapath_caps) { @@ -1349,20 +1350,30 @@ static int efx_ef10_init_nic(struct efx_nic *efx) nic_data->must_restore_piobufs = false; } - /* add encapsulated checksum offload features */ + /* encap features might change during reset if fw variant changed */ if (efx_has_cap(efx, VXLAN_NVGRE) && !efx_ef10_is_vf(efx)) - hw_enc_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; - /* add encapsulated TSO features */ + net_dev->hw_enc_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; + else + net_dev->hw_enc_features &= ~(NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM); + + tun_feats = NETIF_F_GSO_UDP_TUNNEL | NETIF_F_GSO_GRE | + NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_GSO_GRE_CSUM; + tso_feats = NETIF_F_TSO | NETIF_F_TSO6; + if (efx_has_cap(efx, TX_TSO_V2_ENCAP)) { - netdev_features_t encap_tso_features; - - encap_tso_features = NETIF_F_GSO_UDP_TUNNEL | NETIF_F_GSO_GRE | - NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_GSO_GRE_CSUM; - - hw_enc_features |= encap_tso_features | NETIF_F_TSO; - efx->net_dev->features |= encap_tso_features; + /* If this is first nic_init, or if it is a reset and a new fw + * variant has added new features, enable them by default. + * If the features are not new, maintain their current value. + */ + if (!(net_dev->hw_features & tun_feats)) + net_dev->features |= tun_feats; + net_dev->hw_enc_features |= tun_feats | tso_feats; + net_dev->hw_features |= tun_feats; + } else { + net_dev->hw_enc_features &= ~(tun_feats | tso_feats); + net_dev->hw_features &= ~tun_feats; + net_dev->features &= ~tun_feats; } - efx->net_dev->hw_enc_features = hw_enc_features; /* don't fail init if RSS setup doesn't work */ rc = efx->type->rx_push_rss_config(efx, false, @@ -4021,7 +4032,10 @@ static unsigned int efx_ef10_recycle_ring_size(const struct efx_nic *efx) NETIF_F_HW_VLAN_CTAG_FILTER | \ NETIF_F_IPV6_CSUM | \ NETIF_F_RXHASH | \ - NETIF_F_NTUPLE) + NETIF_F_NTUPLE | \ + NETIF_F_SG | \ + NETIF_F_RXCSUM | \ + NETIF_F_RXALL) const struct efx_nic_type efx_hunt_a0_vf_nic_type = { .is_vf = true, diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c index 3a86f1213a05..6a1bff54bc6c 100644 --- a/drivers/net/ethernet/sfc/efx.c +++ b/drivers/net/ethernet/sfc/efx.c @@ -1001,21 +1001,18 @@ static int efx_pci_probe_post_io(struct efx_nic *efx) } /* Determine netdevice features */ - net_dev->features |= (efx->type->offload_features | NETIF_F_SG | - NETIF_F_TSO | NETIF_F_RXCSUM | NETIF_F_RXALL); - if (efx->type->offload_features & (NETIF_F_IPV6_CSUM | NETIF_F_HW_CSUM)) { - net_dev->features |= NETIF_F_TSO6; - if (efx_has_cap(efx, TX_TSO_V2_ENCAP)) - net_dev->hw_enc_features |= NETIF_F_TSO6; - } - /* Check whether device supports TSO */ - if (!efx->type->tso_versions || !efx->type->tso_versions(efx)) - net_dev->features &= ~NETIF_F_ALL_TSO; + net_dev->features |= efx->type->offload_features; + + /* Add TSO features */ + if (efx->type->tso_versions && efx->type->tso_versions(efx)) + net_dev->features |= NETIF_F_TSO | NETIF_F_TSO6; + /* Mask for features that also apply to VLAN devices */ net_dev->vlan_features |= (NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_ALL_TSO | NETIF_F_RXCSUM); + /* Determine user configurable features */ net_dev->hw_features |= net_dev->features & ~efx->fixed_features; /* Disable receiving frames with bad FCS, by default. */ diff --git a/drivers/net/ethernet/smsc/smsc911x.c b/drivers/net/ethernet/smsc/smsc911x.c index a2e511912e6a..a690d139e177 100644 --- a/drivers/net/ethernet/smsc/smsc911x.c +++ b/drivers/net/ethernet/smsc/smsc911x.c @@ -1037,8 +1037,6 @@ static int smsc911x_mii_probe(struct net_device *dev) return ret; } - /* Indicate that the MAC is responsible for managing PHY PM */ - phydev->mac_managed_pm = true; phy_attached_info(phydev); phy_set_max_speed(phydev, SPEED_100); @@ -1066,6 +1064,7 @@ static int smsc911x_mii_init(struct platform_device *pdev, struct net_device *dev) { struct smsc911x_data *pdata = netdev_priv(dev); + struct phy_device *phydev; int err = -ENXIO; pdata->mii_bus = mdiobus_alloc(); @@ -1108,6 +1107,10 @@ static int smsc911x_mii_init(struct platform_device *pdev, goto err_out_free_bus_2; } + phydev = phy_find_first(pdata->mii_bus); + if (phydev) + phydev->mac_managed_pm = true; + return 0; err_out_free_bus_2: diff --git a/drivers/net/ethernet/stmicro/stmmac/common.h b/drivers/net/ethernet/stmicro/stmmac/common.h index ec9c130276d8..54bb072aeb2d 100644 --- a/drivers/net/ethernet/stmicro/stmmac/common.h +++ b/drivers/net/ethernet/stmicro/stmmac/common.h @@ -532,7 +532,6 @@ struct mac_device_info { unsigned int xlgmac; unsigned int num_vlan; u32 vlan_filter[32]; - unsigned int promisc; bool vlan_fail_q_en; u8 vlan_fail_q; }; diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c index e5cfde1cbd5c..188a00065f66 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c @@ -481,12 +481,6 @@ static int dwmac4_add_hw_vlan_rx_fltr(struct net_device *dev, if (vid > 4095) return -EINVAL; - if (hw->promisc) { - netdev_err(dev, - "Adding VLAN in promisc mode not supported\n"); - return -EPERM; - } - /* Single Rx VLAN Filter */ if (hw->num_vlan == 1) { /* For single VLAN filter, VID 0 means VLAN promiscuous */ @@ -536,12 +530,6 @@ static int dwmac4_del_hw_vlan_rx_fltr(struct net_device *dev, { int i, ret = 0; - if (hw->promisc) { - netdev_err(dev, - "Deleting VLAN in promisc mode not supported\n"); - return -EPERM; - } - /* Single Rx VLAN Filter */ if (hw->num_vlan == 1) { if ((hw->vlan_filter[0] & GMAC_VLAN_TAG_VID) == vid) { @@ -566,39 +554,6 @@ static int dwmac4_del_hw_vlan_rx_fltr(struct net_device *dev, return ret; } -static void dwmac4_vlan_promisc_enable(struct net_device *dev, - struct mac_device_info *hw) -{ - void __iomem *ioaddr = hw->pcsr; - u32 value; - u32 hash; - u32 val; - int i; - - /* Single Rx VLAN Filter */ - if (hw->num_vlan == 1) { - dwmac4_write_single_vlan(dev, 0); - return; - } - - /* Extended Rx VLAN Filter Enable */ - for (i = 0; i < hw->num_vlan; i++) { - if (hw->vlan_filter[i] & GMAC_VLAN_TAG_DATA_VEN) { - val = hw->vlan_filter[i] & ~GMAC_VLAN_TAG_DATA_VEN; - dwmac4_write_vlan_filter(dev, hw, i, val); - } - } - - hash = readl(ioaddr + GMAC_VLAN_HASH_TABLE); - if (hash & GMAC_VLAN_VLHT) { - value = readl(ioaddr + GMAC_VLAN_TAG); - if (value & GMAC_VLAN_VTHM) { - value &= ~GMAC_VLAN_VTHM; - writel(value, ioaddr + GMAC_VLAN_TAG); - } - } -} - static void dwmac4_restore_hw_vlan_rx_fltr(struct net_device *dev, struct mac_device_info *hw) { @@ -718,22 +673,12 @@ static void dwmac4_set_filter(struct mac_device_info *hw, } /* VLAN filtering */ - if (dev->features & NETIF_F_HW_VLAN_CTAG_FILTER) + if (dev->flags & IFF_PROMISC && !hw->vlan_fail_q_en) + value &= ~GMAC_PACKET_FILTER_VTFE; + else if (dev->features & NETIF_F_HW_VLAN_CTAG_FILTER) value |= GMAC_PACKET_FILTER_VTFE; writel(value, ioaddr + GMAC_PACKET_FILTER); - - if (dev->flags & IFF_PROMISC && !hw->vlan_fail_q_en) { - if (!hw->promisc) { - hw->promisc = 1; - dwmac4_vlan_promisc_enable(dev, hw); - } - } else { - if (hw->promisc) { - hw->promisc = 0; - dwmac4_restore_hw_vlan_rx_fltr(dev, hw); - } - } } static void dwmac4_flow_ctrl(struct mac_device_info *hw, unsigned int duplex, diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c b/drivers/net/ethernet/ti/am65-cpsw-nuss.c index 00911e936052..8ff1c84a23ce 100644 --- a/drivers/net/ethernet/ti/am65-cpsw-nuss.c +++ b/drivers/net/ethernet/ti/am65-cpsw-nuss.c @@ -2817,6 +2817,7 @@ static int am65_cpsw_nuss_probe(struct platform_device *pdev) err_free_phylink: am65_cpsw_nuss_phylink_cleanup(common); + am65_cpts_release(common->cpts); err_of_clear: of_platform_device_destroy(common->mdio_dev, NULL); err_pm_clear: @@ -2845,6 +2846,7 @@ static int am65_cpsw_nuss_remove(struct platform_device *pdev) */ am65_cpsw_nuss_cleanup_ndev(common); am65_cpsw_nuss_phylink_cleanup(common); + am65_cpts_release(common->cpts); of_platform_device_destroy(common->mdio_dev, NULL); diff --git a/drivers/net/ethernet/ti/am65-cpts.c b/drivers/net/ethernet/ti/am65-cpts.c index e2f0fb286143..9948ac14e68d 100644 --- a/drivers/net/ethernet/ti/am65-cpts.c +++ b/drivers/net/ethernet/ti/am65-cpts.c @@ -918,14 +918,13 @@ static int am65_cpts_of_parse(struct am65_cpts *cpts, struct device_node *node) return cpts_of_mux_clk_setup(cpts, node); } -static void am65_cpts_release(void *data) +void am65_cpts_release(struct am65_cpts *cpts) { - struct am65_cpts *cpts = data; - ptp_clock_unregister(cpts->ptp_clock); am65_cpts_disable(cpts); clk_disable_unprepare(cpts->refclk); } +EXPORT_SYMBOL_GPL(am65_cpts_release); struct am65_cpts *am65_cpts_create(struct device *dev, void __iomem *regs, struct device_node *node) @@ -1003,18 +1002,12 @@ struct am65_cpts *am65_cpts_create(struct device *dev, void __iomem *regs, } cpts->phc_index = ptp_clock_index(cpts->ptp_clock); - ret = devm_add_action_or_reset(dev, am65_cpts_release, cpts); - if (ret) { - dev_err(dev, "failed to add ptpclk reset action %d", ret); - return ERR_PTR(ret); - } - ret = devm_request_threaded_irq(dev, cpts->irq, NULL, am65_cpts_interrupt, IRQF_ONESHOT, dev_name(dev), cpts); if (ret < 0) { dev_err(cpts->dev, "error attaching irq %d\n", ret); - return ERR_PTR(ret); + goto reset_ptpclk; } dev_info(dev, "CPTS ver 0x%08x, freq:%u, add_val:%u\n", @@ -1023,6 +1016,8 @@ struct am65_cpts *am65_cpts_create(struct device *dev, void __iomem *regs, return cpts; +reset_ptpclk: + am65_cpts_release(cpts); refclk_disable: clk_disable_unprepare(cpts->refclk); return ERR_PTR(ret); diff --git a/drivers/net/ethernet/ti/am65-cpts.h b/drivers/net/ethernet/ti/am65-cpts.h index cf9fbc28fd03..c0ae0117e573 100644 --- a/drivers/net/ethernet/ti/am65-cpts.h +++ b/drivers/net/ethernet/ti/am65-cpts.h @@ -18,6 +18,7 @@ struct am65_cpts_estf_cfg { }; #if IS_ENABLED(CONFIG_TI_K3_AM65_CPTS) +void am65_cpts_release(struct am65_cpts *cpts); struct am65_cpts *am65_cpts_create(struct device *dev, void __iomem *regs, struct device_node *node); int am65_cpts_phc_index(struct am65_cpts *cpts); @@ -29,6 +30,10 @@ int am65_cpts_estf_enable(struct am65_cpts *cpts, int idx, struct am65_cpts_estf_cfg *cfg); void am65_cpts_estf_disable(struct am65_cpts *cpts, int idx); #else +static inline void am65_cpts_release(struct am65_cpts *cpts) +{ +} + static inline struct am65_cpts *am65_cpts_create(struct device *dev, void __iomem *regs, struct device_node *node) diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c index 0b0c6c0764fe..d0b5129439ed 100644 --- a/drivers/net/ieee802154/ca8210.c +++ b/drivers/net/ieee802154/ca8210.c @@ -1902,10 +1902,9 @@ static int ca8210_skb_tx( struct ca8210_priv *priv ) { - int status; struct ieee802154_hdr header = { }; struct secspec secspec; - unsigned int mac_len; + int mac_len, status; dev_dbg(&priv->spi->dev, "%s called\n", __func__); diff --git a/drivers/net/ipa/gsi_trans.c b/drivers/net/ipa/gsi_trans.c index 26b7f683a3e1..fa6863c265eb 100644 --- a/drivers/net/ipa/gsi_trans.c +++ b/drivers/net/ipa/gsi_trans.c @@ -153,7 +153,7 @@ int gsi_trans_pool_init_dma(struct device *dev, struct gsi_trans_pool *pool, * gsi_trans_pool_exit_dma() can assume the total allocated * size is exactly (count * size). */ - total_size = get_order(total_size) << PAGE_SHIFT; + total_size = PAGE_SIZE << get_order(total_size); virt = dma_alloc_coherent(dev, total_size, &addr, GFP_KERNEL); if (!virt) diff --git a/drivers/net/mdio/of_mdio.c b/drivers/net/mdio/of_mdio.c index 510822d6d0d9..1e46e39f5f46 100644 --- a/drivers/net/mdio/of_mdio.c +++ b/drivers/net/mdio/of_mdio.c @@ -139,21 +139,23 @@ bool of_mdiobus_child_is_phy(struct device_node *child) EXPORT_SYMBOL(of_mdiobus_child_is_phy); /** - * of_mdiobus_register - Register mii_bus and create PHYs from the device tree + * __of_mdiobus_register - Register mii_bus and create PHYs from the device tree * @mdio: pointer to mii_bus structure * @np: pointer to device_node of MDIO bus. + * @owner: module owning the @mdio object. * * This function registers the mii_bus structure and registers a phy_device * for each child node of @np. */ -int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) +int __of_mdiobus_register(struct mii_bus *mdio, struct device_node *np, + struct module *owner) { struct device_node *child; bool scanphys = false; int addr, rc; if (!np) - return mdiobus_register(mdio); + return __mdiobus_register(mdio, owner); /* Do not continue if the node is disabled */ if (!of_device_is_available(np)) @@ -172,7 +174,7 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) of_property_read_u32(np, "reset-post-delay-us", &mdio->reset_post_delay_us); /* Register the MDIO bus */ - rc = mdiobus_register(mdio); + rc = __mdiobus_register(mdio, owner); if (rc) return rc; @@ -236,7 +238,7 @@ unregister: mdiobus_unregister(mdio); return rc; } -EXPORT_SYMBOL(of_mdiobus_register); +EXPORT_SYMBOL(__of_mdiobus_register); /** * of_mdio_find_device - Given a device tree node, find the mdio_device diff --git a/drivers/net/net_failover.c b/drivers/net/net_failover.c index 7a28e082436e..d0c916a53d7c 100644 --- a/drivers/net/net_failover.c +++ b/drivers/net/net_failover.c @@ -130,14 +130,10 @@ static u16 net_failover_select_queue(struct net_device *dev, txq = ops->ndo_select_queue(primary_dev, skb, sb_dev); else txq = netdev_pick_tx(primary_dev, skb, NULL); - - qdisc_skb_cb(skb)->slave_dev_queue_mapping = skb->queue_mapping; - - return txq; + } else { + txq = skb_rx_queue_recorded(skb) ? skb_get_rx_queue(skb) : 0; } - txq = skb_rx_queue_recorded(skb) ? skb_get_rx_queue(skb) : 0; - /* Save the original txq to restore before passing to the driver */ qdisc_skb_cb(skb)->slave_dev_queue_mapping = skb->queue_mapping; diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c index b4ff9c5073a3..9ab5eff502b7 100644 --- a/drivers/net/phy/dp83869.c +++ b/drivers/net/phy/dp83869.c @@ -588,15 +588,13 @@ static int dp83869_of_init(struct phy_device *phydev) &dp83869_internal_delay[0], delay_size, true); if (dp83869->rx_int_delay < 0) - dp83869->rx_int_delay = - dp83869_internal_delay[DP83869_CLK_DELAY_DEF]; + dp83869->rx_int_delay = DP83869_CLK_DELAY_DEF; dp83869->tx_int_delay = phy_get_internal_delay(phydev, dev, &dp83869_internal_delay[0], delay_size, false); if (dp83869->tx_int_delay < 0) - dp83869->tx_int_delay = - dp83869_internal_delay[DP83869_CLK_DELAY_DEF]; + dp83869->tx_int_delay = DP83869_CLK_DELAY_DEF; return ret; } diff --git a/drivers/net/phy/mdio_devres.c b/drivers/net/phy/mdio_devres.c index b560e99695df..69b829e6ab35 100644 --- a/drivers/net/phy/mdio_devres.c +++ b/drivers/net/phy/mdio_devres.c @@ -98,13 +98,14 @@ EXPORT_SYMBOL(__devm_mdiobus_register); #if IS_ENABLED(CONFIG_OF_MDIO) /** - * devm_of_mdiobus_register - Resource managed variant of of_mdiobus_register() + * __devm_of_mdiobus_register - Resource managed variant of of_mdiobus_register() * @dev: Device to register mii_bus for * @mdio: MII bus structure to register * @np: Device node to parse + * @owner: Owning module */ -int devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio, - struct device_node *np) +int __devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio, + struct device_node *np, struct module *owner) { struct mdiobus_devres *dr; int ret; @@ -117,7 +118,7 @@ int devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio, if (!dr) return -ENOMEM; - ret = of_mdiobus_register(mdio, np); + ret = __of_mdiobus_register(mdio, np, owner); if (ret) { devres_free(dr); return ret; @@ -127,7 +128,7 @@ int devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio, devres_add(dev, dr); return 0; } -EXPORT_SYMBOL(devm_of_mdiobus_register); +EXPORT_SYMBOL(__devm_of_mdiobus_register); #endif /* CONFIG_OF_MDIO */ MODULE_LICENSE("GPL"); diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index 682987040ea8..da488cbb0542 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c @@ -1688,7 +1688,9 @@ not_lro: if (unlikely(rcd->ts)) __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), rcd->tci); - if (adapter->netdev->features & NETIF_F_LRO) + /* Use GRO callback if UPT is enabled */ + if ((adapter->netdev->features & NETIF_F_LRO) && + !rq->shared->updateRxProd) netif_receive_skb(skb); else napi_gro_receive(&rq->napi, skb); diff --git a/drivers/net/xen-netback/common.h b/drivers/net/xen-netback/common.h index 3dbfc8a6924e..1fcbd83f7ff2 100644 --- a/drivers/net/xen-netback/common.h +++ b/drivers/net/xen-netback/common.h @@ -166,7 +166,7 @@ struct xenvif_queue { /* Per-queue data for xenvif */ struct pending_tx_info pending_tx_info[MAX_PENDING_REQS]; grant_handle_t grant_tx_handle[MAX_PENDING_REQS]; - struct gnttab_copy tx_copy_ops[MAX_PENDING_REQS]; + struct gnttab_copy tx_copy_ops[2 * MAX_PENDING_REQS]; struct gnttab_map_grant_ref tx_map_ops[MAX_PENDING_REQS]; struct gnttab_unmap_grant_ref tx_unmap_ops[MAX_PENDING_REQS]; /* passed to gnttab_[un]map_refs with pages under (un)mapping */ diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c index bf627af723bf..5c266062c08f 100644 --- a/drivers/net/xen-netback/netback.c +++ b/drivers/net/xen-netback/netback.c @@ -334,6 +334,7 @@ static int xenvif_count_requests(struct xenvif_queue *queue, struct xenvif_tx_cb { u16 copy_pending_idx[XEN_NETBK_LEGACY_SLOTS_MAX + 1]; u8 copy_count; + u32 split_mask; }; #define XENVIF_TX_CB(skb) ((struct xenvif_tx_cb *)(skb)->cb) @@ -361,6 +362,8 @@ static inline struct sk_buff *xenvif_alloc_skb(unsigned int size) struct sk_buff *skb = alloc_skb(size + NET_SKB_PAD + NET_IP_ALIGN, GFP_ATOMIC | __GFP_NOWARN); + + BUILD_BUG_ON(sizeof(*XENVIF_TX_CB(skb)) > sizeof(skb->cb)); if (unlikely(skb == NULL)) return NULL; @@ -396,11 +399,13 @@ static void xenvif_get_requests(struct xenvif_queue *queue, nr_slots = shinfo->nr_frags + 1; copy_count(skb) = 0; + XENVIF_TX_CB(skb)->split_mask = 0; /* Create copy ops for exactly data_len bytes into the skb head. */ __skb_put(skb, data_len); while (data_len > 0) { int amount = data_len > txp->size ? txp->size : data_len; + bool split = false; cop->source.u.ref = txp->gref; cop->source.domid = queue->vif->domid; @@ -413,6 +418,13 @@ static void xenvif_get_requests(struct xenvif_queue *queue, cop->dest.u.gmfn = virt_to_gfn(skb->data + skb_headlen(skb) - data_len); + /* Don't cross local page boundary! */ + if (cop->dest.offset + amount > XEN_PAGE_SIZE) { + amount = XEN_PAGE_SIZE - cop->dest.offset; + XENVIF_TX_CB(skb)->split_mask |= 1U << copy_count(skb); + split = true; + } + cop->len = amount; cop->flags = GNTCOPY_source_gref; @@ -420,7 +432,8 @@ static void xenvif_get_requests(struct xenvif_queue *queue, pending_idx = queue->pending_ring[index]; callback_param(queue, pending_idx).ctx = NULL; copy_pending_idx(skb, copy_count(skb)) = pending_idx; - copy_count(skb)++; + if (!split) + copy_count(skb)++; cop++; data_len -= amount; @@ -441,7 +454,8 @@ static void xenvif_get_requests(struct xenvif_queue *queue, nr_slots--; } else { /* The copy op partially covered the tx_request. - * The remainder will be mapped. + * The remainder will be mapped or copied in the next + * iteration. */ txp->offset += amount; txp->size -= amount; @@ -539,6 +553,13 @@ static int xenvif_tx_check_gop(struct xenvif_queue *queue, pending_idx = copy_pending_idx(skb, i); newerr = (*gopp_copy)->status; + + /* Split copies need to be handled together. */ + if (XENVIF_TX_CB(skb)->split_mask & (1U << i)) { + (*gopp_copy)++; + if (!newerr) + newerr = (*gopp_copy)->status; + } if (likely(!newerr)) { /* The first frag might still have this slot mapped */ if (i < copy_count(skb) - 1 || !sharedslot) diff --git a/drivers/nvme/host/ioctl.c b/drivers/nvme/host/ioctl.c index 81f5550b670d..8224675f8de2 100644 --- a/drivers/nvme/host/ioctl.c +++ b/drivers/nvme/host/ioctl.c @@ -387,7 +387,8 @@ static inline struct nvme_uring_cmd_pdu *nvme_uring_cmd_pdu( return (struct nvme_uring_cmd_pdu *)&ioucmd->pdu; } -static void nvme_uring_task_meta_cb(struct io_uring_cmd *ioucmd) +static void nvme_uring_task_meta_cb(struct io_uring_cmd *ioucmd, + unsigned issue_flags) { struct nvme_uring_cmd_pdu *pdu = nvme_uring_cmd_pdu(ioucmd); struct request *req = pdu->req; @@ -408,17 +409,18 @@ static void nvme_uring_task_meta_cb(struct io_uring_cmd *ioucmd) blk_rq_unmap_user(req->bio); blk_mq_free_request(req); - io_uring_cmd_done(ioucmd, status, result); + io_uring_cmd_done(ioucmd, status, result, issue_flags); } -static void nvme_uring_task_cb(struct io_uring_cmd *ioucmd) +static void nvme_uring_task_cb(struct io_uring_cmd *ioucmd, + unsigned issue_flags) { struct nvme_uring_cmd_pdu *pdu = nvme_uring_cmd_pdu(ioucmd); if (pdu->bio) blk_rq_unmap_user(pdu->bio); - io_uring_cmd_done(ioucmd, pdu->nvme_status, pdu->u.result); + io_uring_cmd_done(ioucmd, pdu->nvme_status, pdu->u.result, issue_flags); } static enum rq_end_io_ret nvme_uring_cmd_end_io(struct request *req, @@ -440,7 +442,7 @@ static enum rq_end_io_ret nvme_uring_cmd_end_io(struct request *req, * Otherwise, move the completion to task work. */ if (cookie != NULL && blk_rq_is_poll(req)) - nvme_uring_task_cb(ioucmd); + nvme_uring_task_cb(ioucmd, IO_URING_F_UNLOCKED); else io_uring_cmd_complete_in_task(ioucmd, nvme_uring_task_cb); @@ -462,7 +464,7 @@ static enum rq_end_io_ret nvme_uring_cmd_end_io_meta(struct request *req, * Otherwise, move the completion to task work. */ if (cookie != NULL && blk_rq_is_poll(req)) - nvme_uring_task_meta_cb(ioucmd); + nvme_uring_task_meta_cb(ioucmd, IO_URING_F_UNLOCKED); else io_uring_cmd_complete_in_task(ioucmd, nvme_uring_task_meta_cb); diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 3afff2f750b1..064ffef52a65 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -3548,6 +3548,8 @@ static const struct pci_device_id nvme_id_table[] = { .driver_data = NVME_QUIRK_BOGUS_NID, }, { PCI_DEVICE(0x1d97, 0x2263), /* Lexar NM610 */ .driver_data = NVME_QUIRK_BOGUS_NID, }, + { PCI_DEVICE(0x1d97, 0x1d97), /* Lexar NM620 */ + .driver_data = NVME_QUIRK_BOGUS_NID, }, { PCI_DEVICE(0x1d97, 0x2269), /* Lexar NM760 */ .driver_data = NVME_QUIRK_BOGUS_NID, }, { PCI_DEVICE(PCI_VENDOR_ID_AMAZON, 0x0061), diff --git a/drivers/pci/ats.c b/drivers/pci/ats.c index c967ad6e2626..f9cc2e10b676 100644 --- a/drivers/pci/ats.c +++ b/drivers/pci/ats.c @@ -382,6 +382,9 @@ int pci_enable_pasid(struct pci_dev *pdev, int features) if (!pasid) return -EINVAL; + if (!pci_acs_path_enabled(pdev, NULL, PCI_ACS_RR | PCI_ACS_UF)) + return -EINVAL; + pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported); supported &= PCI_PASID_CAP_EXEC | PCI_PASID_CAP_PRIV; diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c index 9e4d96e5a3f5..575834cae3b9 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -645,11 +645,6 @@ void dw_pcie_setup(struct dw_pcie *pci) dw_pcie_writel_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL, val); } - val = dw_pcie_readl_dbi(pci, PCIE_PORT_LINK_CONTROL); - val &= ~PORT_LINK_FAST_LINK_MODE; - val |= PORT_LINK_DLL_LINK_EN; - dw_pcie_writel_dbi(pci, PCIE_PORT_LINK_CONTROL, val); - if (of_property_read_bool(np, "snps,enable-cdm-check")) { val = dw_pcie_readl_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS); val |= PCIE_PL_CHK_REG_CHK_REG_CONTINUOUS | @@ -657,6 +652,11 @@ void dw_pcie_setup(struct dw_pcie *pci) dw_pcie_writel_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS, val); } + val = dw_pcie_readl_dbi(pci, PCIE_PORT_LINK_CONTROL); + val &= ~PORT_LINK_FAST_LINK_MODE; + val |= PORT_LINK_DLL_LINK_EN; + dw_pcie_writel_dbi(pci, PCIE_PORT_LINK_CONTROL, val); + of_property_read_u32(np, "num-lanes", &pci->num_lanes); if (!pci->num_lanes) { dev_dbg(pci->dev, "Using h/w default number of lanes\n"); diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c index 32c3edaf9038..5e7b82a2b13d 100644 --- a/drivers/pinctrl/pinctrl-amd.c +++ b/drivers/pinctrl/pinctrl-amd.c @@ -865,32 +865,34 @@ static const struct pinconf_ops amd_pinconf_ops = { .pin_config_group_set = amd_pinconf_group_set, }; -static void amd_gpio_irq_init(struct amd_gpio *gpio_dev) +static void amd_gpio_irq_init_pin(struct amd_gpio *gpio_dev, int pin) { - struct pinctrl_desc *desc = gpio_dev->pctrl->desc; + const struct pin_desc *pd; unsigned long flags; u32 pin_reg, mask; - int i; mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3) | BIT(INTERRUPT_MASK_OFF) | BIT(INTERRUPT_ENABLE_OFF) | BIT(WAKE_CNTRL_OFF_S4); - for (i = 0; i < desc->npins; i++) { - int pin = desc->pins[i].number; - const struct pin_desc *pd = pin_desc_get(gpio_dev->pctrl, pin); + pd = pin_desc_get(gpio_dev->pctrl, pin); + if (!pd) + return; - if (!pd) - continue; + raw_spin_lock_irqsave(&gpio_dev->lock, flags); + pin_reg = readl(gpio_dev->base + pin * 4); + pin_reg &= ~mask; + writel(pin_reg, gpio_dev->base + pin * 4); + raw_spin_unlock_irqrestore(&gpio_dev->lock, flags); +} - raw_spin_lock_irqsave(&gpio_dev->lock, flags); +static void amd_gpio_irq_init(struct amd_gpio *gpio_dev) +{ + struct pinctrl_desc *desc = gpio_dev->pctrl->desc; + int i; - pin_reg = readl(gpio_dev->base + i * 4); - pin_reg &= ~mask; - writel(pin_reg, gpio_dev->base + i * 4); - - raw_spin_unlock_irqrestore(&gpio_dev->lock, flags); - } + for (i = 0; i < desc->npins; i++) + amd_gpio_irq_init_pin(gpio_dev, i); } #ifdef CONFIG_PM_SLEEP @@ -943,8 +945,10 @@ static int amd_gpio_resume(struct device *dev) for (i = 0; i < desc->npins; i++) { int pin = desc->pins[i].number; - if (!amd_gpio_should_save(gpio_dev, pin)) + if (!amd_gpio_should_save(gpio_dev, pin)) { + amd_gpio_irq_init_pin(gpio_dev, pin); continue; + } raw_spin_lock_irqsave(&gpio_dev->lock, flags); gpio_dev->saved_regs[i] |= readl(gpio_dev->base + pin * 4) & PIN_IRQ_PENDING; diff --git a/drivers/pinctrl/pinctrl-at91-pio4.c b/drivers/pinctrl/pinctrl-at91-pio4.c index 7f193f2b1566..0b7cc6f063e0 100644 --- a/drivers/pinctrl/pinctrl-at91-pio4.c +++ b/drivers/pinctrl/pinctrl-at91-pio4.c @@ -1176,7 +1176,6 @@ static int atmel_pinctrl_probe(struct platform_device *pdev) dev_err(dev, "can't add the irq domain\n"); return -ENODEV; } - atmel_pioctrl->irq_domain->name = "atmel gpio"; for (i = 0; i < atmel_pioctrl->npins; i++) { int irq = irq_create_mapping(atmel_pioctrl->irq_domain, i); diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c index 3d5995cbcb78..c1d58939dd89 100644 --- a/drivers/pinctrl/pinctrl-ocelot.c +++ b/drivers/pinctrl/pinctrl-ocelot.c @@ -1202,7 +1202,7 @@ static int ocelot_pinmux_set_mux(struct pinctrl_dev *pctldev, regmap_update_bits(info->map, REG_ALT(0, info, pin->pin), BIT(p), f << p); regmap_update_bits(info->map, REG_ALT(1, info, pin->pin), - BIT(p), f << (p - 1)); + BIT(p), (f >> 1) << p); return 0; } diff --git a/drivers/platform/surface/aggregator/bus.c b/drivers/platform/surface/aggregator/bus.c index de539938896e..b501a79f2a08 100644 --- a/drivers/platform/surface/aggregator/bus.c +++ b/drivers/platform/surface/aggregator/bus.c @@ -485,8 +485,10 @@ int __ssam_register_clients(struct device *parent, struct ssam_controller *ctrl, * device, so ignore it and continue with the next one. */ status = ssam_add_client_device(parent, ctrl, child); - if (status && status != -ENODEV) + if (status && status != -ENODEV) { + fwnode_handle_put(child); goto err; + } } return 0; diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c index 4e28c55f0ea5..bd38c7dcae34 100644 --- a/drivers/platform/x86/ideapad-laptop.c +++ b/drivers/platform/x86/ideapad-laptop.c @@ -1164,7 +1164,6 @@ static const struct key_entry ideapad_keymap[] = { { KE_KEY, 65, { KEY_PROG4 } }, { KE_KEY, 66, { KEY_TOUCHPAD_OFF } }, { KE_KEY, 67, { KEY_TOUCHPAD_ON } }, - { KE_KEY, 68, { KEY_TOUCHPAD_TOGGLE } }, { KE_KEY, 128, { KEY_ESC } }, /* @@ -1520,18 +1519,16 @@ static void ideapad_sync_touchpad_state(struct ideapad_private *priv, bool send_ if (priv->features.ctrl_ps2_aux_port) i8042_command(¶m, value ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE); - if (send_events) { - /* - * On older models the EC controls the touchpad and toggles it - * on/off itself, in this case we report KEY_TOUCHPAD_ON/_OFF. - * If the EC did not toggle, report KEY_TOUCHPAD_TOGGLE. - */ - if (value != priv->r_touchpad_val) { - ideapad_input_report(priv, value ? 67 : 66); - sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad"); - } else { - ideapad_input_report(priv, 68); - } + /* + * On older models the EC controls the touchpad and toggles it on/off + * itself, in this case we report KEY_TOUCHPAD_ON/_OFF. Some models do + * an acpi-notify with VPC bit 5 set on resume, so this function get + * called with send_events=true on every resume. Therefor if the EC did + * not toggle, do nothing to avoid sending spurious KEY_TOUCHPAD_TOGGLE. + */ + if (send_events && value != priv->r_touchpad_val) { + ideapad_input_report(priv, value ? 67 : 66); + sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad"); } priv->r_touchpad_val = value; diff --git a/drivers/platform/x86/intel/pmc/core.c b/drivers/platform/x86/intel/pmc/core.c index 17ec5825d13d..be0fb9401202 100644 --- a/drivers/platform/x86/intel/pmc/core.c +++ b/drivers/platform/x86/intel/pmc/core.c @@ -958,7 +958,18 @@ static inline void pmc_core_reg_write(struct pmc_dev *pmcdev, int reg_offset, static inline u64 pmc_core_adjust_slp_s0_step(struct pmc_dev *pmcdev, u32 value) { - return (u64)value * pmcdev->map->slp_s0_res_counter_step; + /* + * ADL PCH does not have the SLP_S0 counter and LPM Residency counters are + * used as a workaround which uses 30.5 usec tick. All other client + * programs have the legacy SLP_S0 residency counter that is using the 122 + * usec tick. + */ + const int lpm_adj_x2 = pmcdev->map->lpm_res_counter_step_x2; + + if (pmcdev->map == &adl_reg_map) + return (u64)value * GET_X2_COUNTER((u64)lpm_adj_x2); + else + return (u64)value * pmcdev->map->slp_s0_res_counter_step; } static int set_etr3(struct pmc_dev *pmcdev) diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/think-lmi.c index a01a92769c1a..74af3e593b2c 100644 --- a/drivers/platform/x86/think-lmi.c +++ b/drivers/platform/x86/think-lmi.c @@ -941,12 +941,23 @@ static ssize_t possible_values_show(struct kobject *kobj, struct kobj_attribute { struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); - if (!tlmi_priv.can_get_bios_selections) - return -EOPNOTSUPP; - return sysfs_emit(buf, "%s\n", setting->possible_values); } +static ssize_t type_show(struct kobject *kobj, struct kobj_attribute *attr, + char *buf) +{ + struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); + + if (setting->possible_values) { + /* Figure out what setting type is as BIOS does not return this */ + if (strchr(setting->possible_values, ';')) + return sysfs_emit(buf, "enumeration\n"); + } + /* Anything else is going to be a string */ + return sysfs_emit(buf, "string\n"); +} + static ssize_t current_value_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) @@ -1036,14 +1047,30 @@ static struct kobj_attribute attr_possible_values = __ATTR_RO(possible_values); static struct kobj_attribute attr_current_val = __ATTR_RW_MODE(current_value, 0600); +static struct kobj_attribute attr_type = __ATTR_RO(type); + +static umode_t attr_is_visible(struct kobject *kobj, + struct attribute *attr, int n) +{ + struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); + + /* We don't want to display possible_values attributes if not available */ + if ((attr == &attr_possible_values.attr) && (!setting->possible_values)) + return 0; + + return attr->mode; +} + static struct attribute *tlmi_attrs[] = { &attr_displ_name.attr, &attr_current_val.attr, &attr_possible_values.attr, + &attr_type.attr, NULL }; static const struct attribute_group tlmi_attr_group = { + .is_visible = attr_is_visible, .attrs = tlmi_attrs, }; @@ -1423,7 +1450,34 @@ static int tlmi_analyze(void) if (ret || !setting->possible_values) pr_info("Error retrieving possible values for %d : %s\n", i, setting->display_name); + } else { + /* + * Older Thinkstations don't support the bios_selections API. + * Instead they store this as a [Optional:Option1,Option2] section of the + * name string. + * Try and pull that out if it's available. + */ + char *item, *optstart, *optend; + + if (!tlmi_setting(setting->index, &item, LENOVO_BIOS_SETTING_GUID)) { + optstart = strstr(item, "[Optional:"); + if (optstart) { + optstart += strlen("[Optional:"); + optend = strstr(optstart, "]"); + if (optend) + setting->possible_values = + kstrndup(optstart, optend - optstart, + GFP_KERNEL); + } + } } + /* + * firmware-attributes requires that possible_values are separated by ';' but + * Lenovo FW uses ','. Replace appropriately. + */ + if (setting->possible_values) + strreplace(setting->possible_values, ',', ';'); + kobject_init(&setting->kobj, &tlmi_attr_setting_ktype); tlmi_priv.setting[i] = setting; kfree(item); diff --git a/drivers/ptp/ptp_qoriq.c b/drivers/ptp/ptp_qoriq.c index 08f4cf0ad9e3..8fa9772acf79 100644 --- a/drivers/ptp/ptp_qoriq.c +++ b/drivers/ptp/ptp_qoriq.c @@ -601,7 +601,7 @@ static int ptp_qoriq_probe(struct platform_device *dev) return 0; no_clock: - iounmap(ptp_qoriq->base); + iounmap(base); no_ioremap: release_resource(ptp_qoriq->rsrc); no_resource: diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c index 24e8e399ea7d..a3cbd4a85ba7 100644 --- a/drivers/regulator/fixed.c +++ b/drivers/regulator/fixed.c @@ -237,7 +237,7 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev) drvdata->enable_clock = devm_clk_get(dev, NULL); if (IS_ERR(drvdata->enable_clock)) { dev_err(dev, "Can't get enable-clock from devicetree\n"); - return -ENOENT; + return PTR_ERR(drvdata->enable_clock); } } else if (drvtype && drvtype->has_performance_state) { drvdata->desc.ops = &fixed_voltage_domain_ops; diff --git a/drivers/s390/crypto/vfio_ap_drv.c b/drivers/s390/crypto/vfio_ap_drv.c index f43cfeabd2cc..0afceb63ac43 100644 --- a/drivers/s390/crypto/vfio_ap_drv.c +++ b/drivers/s390/crypto/vfio_ap_drv.c @@ -54,8 +54,9 @@ static struct ap_driver vfio_ap_drv = { static void vfio_ap_matrix_dev_release(struct device *dev) { - struct ap_matrix_dev *matrix_dev = dev_get_drvdata(dev); + struct ap_matrix_dev *matrix_dev; + matrix_dev = container_of(dev, struct ap_matrix_dev, device); kfree(matrix_dev); } diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index 6650f8c8e9b0..af22ffa8f6a2 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -4768,7 +4768,7 @@ int megasas_task_abort_fusion(struct scsi_cmnd *scmd) devhandle = megasas_get_tm_devhandle(scmd->device); if (devhandle == (u16)ULONG_MAX) { - ret = SUCCESS; + ret = FAILED; sdev_printk(KERN_INFO, scmd->device, "task abort issued for invalid devhandle\n"); mutex_unlock(&instance->reset_mutex); @@ -4838,7 +4838,7 @@ int megasas_reset_target_fusion(struct scsi_cmnd *scmd) devhandle = megasas_get_tm_devhandle(scmd->device); if (devhandle == (u16)ULONG_MAX) { - ret = SUCCESS; + ret = FAILED; sdev_printk(KERN_INFO, scmd->device, "target reset issued for invalid devhandle\n"); mutex_unlock(&instance->reset_mutex); diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c index 2ee9ea57554d..14ae0a9c5d3d 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.c +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c @@ -6616,11 +6616,6 @@ _base_allocate_memory_pools(struct MPT3SAS_ADAPTER *ioc) else if (rc == -EAGAIN) goto try_32bit_dma; total_sz += sense_sz; - ioc_info(ioc, - "sense pool(0x%p)- dma(0x%llx): depth(%d)," - "element_size(%d), pool_size(%d kB)\n", - ioc->sense, (unsigned long long)ioc->sense_dma, ioc->scsiio_depth, - SCSI_SENSE_BUFFERSIZE, sz / 1024); /* reply pool, 4 byte align */ sz = ioc->reply_free_queue_depth * ioc->reply_sz; rc = _base_allocate_reply_pool(ioc, sz); diff --git a/drivers/soc/qcom/qcom-geni-se.c b/drivers/soc/qcom/qcom-geni-se.c index a0ceeede450f..e442df34bf51 100644 --- a/drivers/soc/qcom/qcom-geni-se.c +++ b/drivers/soc/qcom/qcom-geni-se.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include /** * DOC: Overview diff --git a/drivers/spi/spi-geni-qcom.c b/drivers/spi/spi-geni-qcom.c index 4e83cc5b445d..e05e40a49294 100644 --- a/drivers/spi/spi-geni-qcom.c +++ b/drivers/spi/spi-geni-qcom.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/staging/greybus/tools/.gitignore b/drivers/staging/greybus/tools/.gitignore deleted file mode 100644 index 1fd364aba774..000000000000 --- a/drivers/staging/greybus/tools/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only -loopback_test diff --git a/drivers/staging/greybus/tools/Android.mk b/drivers/staging/greybus/tools/Android.mk deleted file mode 100644 index fdadbf611757..000000000000 --- a/drivers/staging/greybus/tools/Android.mk +++ /dev/null @@ -1,10 +0,0 @@ -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_SRC_FILES:= loopback_test.c -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := gb_loopback_test - -include $(BUILD_EXECUTABLE) - diff --git a/drivers/staging/greybus/tools/Makefile b/drivers/staging/greybus/tools/Makefile deleted file mode 100644 index a3bbd73171f2..000000000000 --- a/drivers/staging/greybus/tools/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -ifeq ($(strip $(V)), 1) - Q = -else - Q = @ -endif - -CFLAGS += -std=gnu99 -Wall -Wextra -g \ - -D_GNU_SOURCE \ - -Wno-unused-parameter \ - -Wmaybe-uninitialized \ - -Wredundant-decls \ - -Wcast-align \ - -Wsign-compare \ - -Wno-missing-field-initializers \ - -Wno-shift-negative-value - -CC := $(CROSS_COMPILE)gcc - -TOOLS = loopback_test - -all: $(TOOLS) - -%.o: %.c ../greybus_protocols.h - @echo ' TARGET_CC $@' - $(Q)$(CC) $(CFLAGS) -c $< -o $@ - -loopback_%: loopback_%.o - @echo ' TARGET_LD $@' - $(Q)$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ - -clean:: - rm -f *.o $(TOOLS) diff --git a/drivers/staging/greybus/tools/README.loopback b/drivers/staging/greybus/tools/README.loopback deleted file mode 100644 index 070a510cbe7c..000000000000 --- a/drivers/staging/greybus/tools/README.loopback +++ /dev/null @@ -1,198 +0,0 @@ - - - 1 - LOOPBACK DRIVER - -The driver implements the main logic of the loopback test and provides -sysfs files to configure the test and retrieve the results. -A user could run a test without the need of the test application given -that he understands the sysfs interface of the loopback driver. - -The loopback kernel driver needs to be loaded and at least one module -with the loopback feature enabled must be present for the sysfs files to be -created and for the loopback test application to be able to run. - -To load the module: -# modprobe gb-loopback - - -When the module is probed, New files are available on the sysfs -directory of the detected loopback device. -(typically under "/sys/bus/graybus/devices"). - -Here is a short summary of the sysfs interface files that should be visible: - -* Loopback Configuration Files: - async - Use asynchronous operations. - iteration_max - Number of tests iterations to perform. - size - payload size of the transfer. - timeout - The number of microseconds to give an individual - asynchronous request before timing out. - us_wait - Time to wait between 2 messages - type - By writing the test type to this file, the test starts. - Valid tests are: - 0 stop the test - 2 - ping - 3 - transfer - 4 - sink - -* Loopback feedback files: - error - number of errors that have occurred. - iteration_count - Number of iterations performed. - requests_completed - Number of requests successfully completed. - requests_timedout - Number of requests that have timed out. - timeout_max - Max allowed timeout - timeout_min - Min allowed timeout. - -* Loopback result files: - apbridge_unipro_latency_avg - apbridge_unipro_latency_max - apbridge_unipro_latency_min - gpbridge_firmware_latency_avg - gpbridge_firmware_latency_max - gpbridge_firmware_latency_min - requests_per_second_avg - requests_per_second_max - requests_per_second_min - latency_avg - latency_max - latency_min - throughput_avg - throughput_max - throughput_min - - - - 2 - LOOPBACK TEST APPLICATION - -The loopback test application manages and formats the results provided by -the loopback kernel module. The purpose of this application -is to: - - Start and manage multiple loopback device tests concurrently. - - Calculate the aggregate results for multiple devices. - - Gather and format test results (csv or human readable). - -The best way to get up to date usage information for the application is -usually to pass the "-h" parameter. -Here is the summary of the available options: - - Mandatory arguments - -t must be one of the test names - sink, transfer or ping - -i iteration count - the number of iterations to run the test over - Optional arguments - -S sysfs location - location for greybus 'endo' entries default /sys/bus/greybus/devices/ - -D debugfs location - location for loopback debugfs entries default /sys/kernel/debug/gb_loopback/ - -s size of data packet to send during test - defaults to zero - -m mask - a bit mask of connections to include example: -m 8 = 4th connection -m 9 = 1st and 4th connection etc - default is zero which means broadcast to all connections - -v verbose output - -d debug output - -r raw data output - when specified the full list of latency values are included in the output CSV - -p porcelain - when specified printout is in a user-friendly non-CSV format. This option suppresses writing to CSV file - -a aggregate - show aggregation of all enabled devies - -l list found loopback devices and exit. - -x Async - Enable async transfers. - -o Timeout - Timeout in microseconds for async operations. - - - - 3 - REAL WORLD EXAMPLE USAGES - - 3.1 - Using the driver sysfs files to run a test on a single device: - -* Run a 1000 transfers of a 100 byte packet. Each transfer is started only -after the previous one finished successfully: - echo 0 > /sys/bus/greybus/devices/1-2.17/type - echo 0 > /sys/bus/greybus/devices/1-2.17/async - echo 2000 > /sys/bus/greybus/devices/1-2.17/us_wait - echo 100 > /sys/bus/greybus/devices/1-2.17/size - echo 1000 > /sys/bus/greybus/devices/1-2.17/iteration_max - echo 0 > /sys/bus/greybus/devices/1-2.17/mask - echo 200000 > /sys/bus/greybus/devices/1-2.17/timeout - echo 3 > /sys/bus/greybus/devices/1-2.17/type - -* Run a 1000 transfers of a 100 byte packet. Transfers are started without -waiting for the previous one to finish: - echo 0 > /sys/bus/greybus/devices/1-2.17/type - echo 3 > /sys/bus/greybus/devices/1-2.17/async - echo 0 > /sys/bus/greybus/devices/1-2.17/us_wait - echo 100 > /sys/bus/greybus/devices/1-2.17/size - echo 1000 > /sys/bus/greybus/devices/1-2.17/iteration_max - echo 0 > /sys/bus/greybus/devices/1-2.17/mask - echo 200000 > /sys/bus/greybus/devices/1-2.17/timeout - echo 3 > /sys/bus/greybus/devices/1-2.17/type - -* Read the results from sysfs: - cat /sys/bus/greybus/devices/1-2.17/requests_per_second_min - cat /sys/bus/greybus/devices/1-2.17/requests_per_second_max - cat /sys/bus/greybus/devices/1-2.17/requests_per_second_avg - - cat /sys/bus/greybus/devices/1-2.17/latency_min - cat /sys/bus/greybus/devices/1-2.17/latency_max - cat /sys/bus/greybus/devices/1-2.17/latency_avg - - cat /sys/bus/greybus/devices/1-2.17/apbridge_unipro_latency_min - cat /sys/bus/greybus/devices/1-2.17/apbridge_unipro_latency_max - cat /sys/bus/greybus/devices/1-2.17/apbridge_unipro_latency_avg - - cat /sys/bus/greybus/devices/1-2.17/gpbridge_firmware_latency_min - cat /sys/bus/greybus/devices/1-2.17/gpbridge_firmware_latency_max - cat /sys/bus/greybus/devices/1-2.17/gpbridge_firmware_latency_avg - - cat /sys/bus/greybus/devices/1-2.17/error - cat /sys/bus/greybus/devices/1-2.17/requests_completed - cat /sys/bus/greybus/devices/1-2.17/requests_timedout - - -3.2 - using the test application: - -* Run a transfer test 10 iterations of size 100 bytes on all available devices - #/loopback_test -t transfer -i 10 -s 100 - 1970-1-1 0:10:7,transfer,1-4.17,100,10,0,443,509,471.700012,66,1963,2256,2124.600098,293,102776,118088,109318.898438,15312,1620,1998,1894.099976,378,56,57,56.799999,1 - 1970-1-1 0:10:7,transfer,1-5.17,100,10,0,399,542,463.399994,143,1845,2505,2175.800049,660,92568,125744,107393.296875,33176,1469,2305,1806.500000,836,56,57,56.799999,1 - - -* Show the aggregate results of both devices. ("-a") - #/loopback_test -t transfer -i 10 -s 100 -a - 1970-1-1 0:10:35,transfer,1-4.17,100,10,0,448,580,494.100006,132,1722,2230,2039.400024,508,103936,134560,114515.703125,30624,1513,1980,1806.900024,467,56,57,57.299999,1 - 1970-1-1 0:10:35,transfer,1-5.17,100,10,0,383,558,478.600006,175,1791,2606,2115.199951,815,88856,129456,110919.703125,40600,1457,2246,1773.599976,789,56,57,57.099998,1 - 1970-1-1 0:10:35,transfer,aggregate,100,10,0,383,580,486.000000,197,1722,2606,2077.000000,884,88856,134560,112717.000000,45704,1457,2246,1789.000000,789,56,57,57.000000,1 - -* Example usage of the mask option to select which devices will - run the test (1st, 2nd, or both devices): - # /loopback_test -t transfer -i 10 -s 100 -m 1 - 1970-1-1 0:11:56,transfer,1-4.17,100,10,0,514,558,544.900024,44,1791,1943,1836.599976,152,119248,129456,126301.296875,10208,1600,1001609,101613.601562,1000009,56,57,56.900002,1 - # /loopback_test -t transfer -i 10 -s 100 -m 2 - 1970-1-1 0:12:0,transfer,1-5.17,100,10,0,468,554,539.000000,86,1804,2134,1859.500000,330,108576,128528,124932.500000,19952,1606,1626,1619.300049,20,56,57,57.400002,1 - # /loopback_test -t transfer -i 10 -s 100 -m 3 - 1970-1-1 0:12:3,transfer,1-4.17,100,10,0,432,510,469.399994,78,1959,2313,2135.800049,354,100224,118320,108785.296875,18096,1610,2024,1893.500000,414,56,57,57.200001,1 - 1970-1-1 0:12:3,transfer,1-5.17,100,10,0,404,542,468.799988,138,1843,2472,2152.500000,629,93728,125744,108646.101562,32016,1504,2247,1853.099976,743,56,57,57.099998,1 - -* Show output in human readable format ("-p") - # /loopback_test -t transfer -i 10 -s 100 -m 3 -p - - 1970-1-1 0:12:37 - test: transfer - path: 1-4.17 - size: 100 - iterations: 10 - errors: 0 - async: Disabled - requests per-sec: min=390, max=547, average=469.299988, jitter=157 - ap-throughput B/s: min=90480 max=126904 average=108762.101562 jitter=36424 - ap-latency usec: min=1826 max=2560 average=2146.000000 jitter=734 - apbridge-latency usec: min=1620 max=1982 average=1882.099976 jitter=362 - gpbridge-latency usec: min=56 max=57 average=57.099998 jitter=1 - - - 1970-1-1 0:12:37 - test: transfer - path: 1-5.17 - size: 100 - iterations: 10 - errors: 0 - async: Disabled - requests per-sec: min=397, max=538, average=461.700012, jitter=141 - ap-throughput B/s: min=92104 max=124816 average=106998.898438 jitter=32712 - ap-latency usec: min=1856 max=2514 average=2185.699951 jitter=658 - apbridge-latency usec: min=1460 max=2296 average=1828.599976 jitter=836 - gpbridge-latency usec: min=56 max=57 average=57.099998 jitter=1 diff --git a/drivers/staging/greybus/tools/lbtest b/drivers/staging/greybus/tools/lbtest deleted file mode 100755 index 47c481239e98..000000000000 --- a/drivers/staging/greybus/tools/lbtest +++ /dev/null @@ -1,169 +0,0 @@ -#!/usr/bin/env python -# SPDX-License-Identifier: BSD-3-Clause - -# Copyright (c) 2015 Google, Inc. -# Copyright (c) 2015 Linaro, Ltd. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# 1. Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# 3. Neither the name of the copyright holder nor the names of its -# contributors may be used to endorse or promote products derived from this -# software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -from __future__ import print_function -import csv -import datetime -import sys -import time - -dict = {'ping': '2', 'transfer': '3', 'sink': '4'} -verbose = 1 - -def abort(): - sys.exit(1) - -def usage(): - print('Usage: looptest TEST SIZE ITERATIONS PATH\n\n' - ' Run TEST for a number of ITERATIONS with operation data SIZE bytes\n' - ' TEST may be \'ping\' \'transfer\' or \'sink\'\n' - ' SIZE indicates the size of transfer <= greybus max payload bytes\n' - ' ITERATIONS indicates the number of times to execute TEST at SIZE bytes\n' - ' Note if ITERATIONS is set to zero then this utility will\n' - ' initiate an infinite (non terminating) test and exit\n' - ' without logging any metrics data\n' - ' PATH indicates the sysfs path for the loopback greybus entries e.g.\n' - ' /sys/bus/greybus/devices/endo0:1:1:1:1/\n' - 'Examples:\n' - ' looptest transfer 128 10000\n' - ' looptest ping 0 128\n' - ' looptest sink 2030 32768\n' - .format(sys.argv[0]), file=sys.stderr) - - abort() - -def read_sysfs_int(path): - try: - f = open(path, "r"); - val = f.read(); - f.close() - return int(val) - except IOError as e: - print("I/O error({0}): {1}".format(e.errno, e.strerror)) - print("Invalid path %s" % path) - -def write_sysfs_val(path, val): - try: - f = open(path, "r+") - f.write(val) - f.close() - except IOError as e: - print("I/O error({0}): {1}".format(e.errno, e.strerror)) - print("Invalid path %s" % path) - -def log_csv(test_name, size, iteration_max, sys_pfx): - # file name will test_name_size_iteration_max.csv - # every time the same test with the same parameters is run we will then - # append to the same CSV with datestamp - representing each test dataset - fname = test_name + '_' + size + '_' + str(iteration_max) + '.csv' - - try: - # gather data set - date = str(datetime.datetime.now()) - error = read_sysfs_int(sys_pfx + 'error') - request_min = read_sysfs_int(sys_pfx + 'requests_per_second_min') - request_max = read_sysfs_int(sys_pfx + 'requests_per_second_max') - request_avg = read_sysfs_int(sys_pfx + 'requests_per_second_avg') - latency_min = read_sysfs_int(sys_pfx + 'latency_min') - latency_max = read_sysfs_int(sys_pfx + 'latency_max') - latency_avg = read_sysfs_int(sys_pfx + 'latency_avg') - throughput_min = read_sysfs_int(sys_pfx + 'throughput_min') - throughput_max = read_sysfs_int(sys_pfx + 'throughput_max') - throughput_avg = read_sysfs_int(sys_pfx + 'throughput_avg') - - # derive jitter - request_jitter = request_max - request_min - latency_jitter = latency_max - latency_min - throughput_jitter = throughput_max - throughput_min - - # append data set to file - with open(fname, 'a') as csvf: - row = csv.writer(csvf, delimiter=",", quotechar="'", - quoting=csv.QUOTE_MINIMAL) - row.writerow([date, test_name, size, iteration_max, error, - request_min, request_max, request_avg, request_jitter, - latency_min, latency_max, latency_avg, latency_jitter, - throughput_min, throughput_max, throughput_avg, throughput_jitter]) - except IOError as e: - print("I/O error({0}): {1}".format(e.errno, e.strerror)) - -def loopback_run(test_name, size, iteration_max, sys_pfx): - test_id = dict[test_name] - try: - # Terminate any currently running test - write_sysfs_val(sys_pfx + 'type', '0') - # Set parameter for no wait between messages - write_sysfs_val(sys_pfx + 'ms_wait', '0') - # Set operation size - write_sysfs_val(sys_pfx + 'size', size) - # Set iterations - write_sysfs_val(sys_pfx + 'iteration_max', str(iteration_max)) - # Initiate by setting loopback operation type - write_sysfs_val(sys_pfx + 'type', test_id) - time.sleep(1) - - if iteration_max == 0: - print ("Infinite test initiated CSV won't be logged\n") - return - - previous = 0 - err = 0 - while True: - # get current count bail out if it hasn't changed - iteration_count = read_sysfs_int(sys_pfx + 'iteration_count') - if previous == iteration_count: - err = 1 - break - elif iteration_count == iteration_max: - break - previous = iteration_count - if verbose: - print('%02d%% complete %d of %d ' % - (100 * iteration_count / iteration_max, - iteration_count, iteration_max)) - time.sleep(1) - if err: - print ('\nError executing test\n') - else: - log_csv(test_name, size, iteration_max, sys_pfx) - except ValueError as ve: - print("Error: %s " % format(e.strerror), file=sys.stderr) - abort() - -def main(): - if len(sys.argv) < 5: - usage() - - if sys.argv[1] in dict.keys(): - loopback_run(sys.argv[1], sys.argv[2], int(sys.argv[3]), sys.argv[4]) - else: - usage() -if __name__ == '__main__': - main() diff --git a/drivers/staging/greybus/tools/loopback_test.c b/drivers/staging/greybus/tools/loopback_test.c deleted file mode 100644 index 4c42e393cd3d..000000000000 --- a/drivers/staging/greybus/tools/loopback_test.c +++ /dev/null @@ -1,992 +0,0 @@ -// SPDX-License-Identifier: BSD-3-Clause -/* - * Loopback test application - * - * Copyright 2015 Google Inc. - * Copyright 2015 Linaro Ltd. - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define MAX_NUM_DEVICES 10 -#define MAX_SYSFS_PREFIX 0x80 -#define MAX_SYSFS_PATH 0x200 -#define CSV_MAX_LINE 0x1000 -#define SYSFS_MAX_INT 0x20 -#define MAX_STR_LEN 255 -#define DEFAULT_ASYNC_TIMEOUT 200000 - -struct dict { - char *name; - int type; -}; - -static struct dict dict[] = { - {"ping", 2}, - {"transfer", 3}, - {"sink", 4}, - {NULL,} /* list termination */ -}; - -struct loopback_results { - float latency_avg; - uint32_t latency_max; - uint32_t latency_min; - uint32_t latency_jitter; - - float request_avg; - uint32_t request_max; - uint32_t request_min; - uint32_t request_jitter; - - float throughput_avg; - uint32_t throughput_max; - uint32_t throughput_min; - uint32_t throughput_jitter; - - float apbridge_unipro_latency_avg; - uint32_t apbridge_unipro_latency_max; - uint32_t apbridge_unipro_latency_min; - uint32_t apbridge_unipro_latency_jitter; - - float gbphy_firmware_latency_avg; - uint32_t gbphy_firmware_latency_max; - uint32_t gbphy_firmware_latency_min; - uint32_t gbphy_firmware_latency_jitter; - - uint32_t error; -}; - -struct loopback_device { - char name[MAX_STR_LEN]; - char sysfs_entry[MAX_SYSFS_PATH]; - char debugfs_entry[MAX_SYSFS_PATH]; - struct loopback_results results; -}; - -struct loopback_test { - int verbose; - int debug; - int raw_data_dump; - int porcelain; - int mask; - int size; - int iteration_max; - int aggregate_output; - int test_id; - int device_count; - int list_devices; - int use_async; - int async_timeout; - int async_outstanding_operations; - int us_wait; - int file_output; - int stop_all; - int poll_count; - char test_name[MAX_STR_LEN]; - char sysfs_prefix[MAX_SYSFS_PREFIX]; - char debugfs_prefix[MAX_SYSFS_PREFIX]; - struct timespec poll_timeout; - struct loopback_device devices[MAX_NUM_DEVICES]; - struct loopback_results aggregate_results; - struct pollfd fds[MAX_NUM_DEVICES]; -}; - -struct loopback_test t; - -/* Helper macros to calculate the aggregate results for all devices */ -static inline int device_enabled(struct loopback_test *t, int dev_idx); - -#define GET_MAX(field) \ -static int get_##field##_aggregate(struct loopback_test *t) \ -{ \ - uint32_t max = 0; \ - int i; \ - for (i = 0; i < t->device_count; i++) { \ - if (!device_enabled(t, i)) \ - continue; \ - if (t->devices[i].results.field > max) \ - max = t->devices[i].results.field; \ - } \ - return max; \ -} \ - -#define GET_MIN(field) \ -static int get_##field##_aggregate(struct loopback_test *t) \ -{ \ - uint32_t min = ~0; \ - int i; \ - for (i = 0; i < t->device_count; i++) { \ - if (!device_enabled(t, i)) \ - continue; \ - if (t->devices[i].results.field < min) \ - min = t->devices[i].results.field; \ - } \ - return min; \ -} \ - -#define GET_AVG(field) \ -static int get_##field##_aggregate(struct loopback_test *t) \ -{ \ - uint32_t val = 0; \ - uint32_t count = 0; \ - int i; \ - for (i = 0; i < t->device_count; i++) { \ - if (!device_enabled(t, i)) \ - continue; \ - count++; \ - val += t->devices[i].results.field; \ - } \ - if (count) \ - val /= count; \ - return val; \ -} \ - -GET_MAX(throughput_max); -GET_MAX(request_max); -GET_MAX(latency_max); -GET_MAX(apbridge_unipro_latency_max); -GET_MAX(gbphy_firmware_latency_max); -GET_MIN(throughput_min); -GET_MIN(request_min); -GET_MIN(latency_min); -GET_MIN(apbridge_unipro_latency_min); -GET_MIN(gbphy_firmware_latency_min); -GET_AVG(throughput_avg); -GET_AVG(request_avg); -GET_AVG(latency_avg); -GET_AVG(apbridge_unipro_latency_avg); -GET_AVG(gbphy_firmware_latency_avg); - -void abort(void) -{ - _exit(1); -} - -void usage(void) -{ - fprintf(stderr, "Usage: loopback_test TEST [SIZE] ITERATIONS [SYSPATH] [DBGPATH]\n\n" - " Run TEST for a number of ITERATIONS with operation data SIZE bytes\n" - " TEST may be \'ping\' \'transfer\' or \'sink\'\n" - " SIZE indicates the size of transfer <= greybus max payload bytes\n" - " ITERATIONS indicates the number of times to execute TEST at SIZE bytes\n" - " Note if ITERATIONS is set to zero then this utility will\n" - " initiate an infinite (non terminating) test and exit\n" - " without logging any metrics data\n" - " SYSPATH indicates the sysfs path for the loopback greybus entries e.g.\n" - " /sys/bus/greybus/devices\n" - " DBGPATH indicates the debugfs path for the loopback greybus entries e.g.\n" - " /sys/kernel/debug/gb_loopback/\n" - " Mandatory arguments\n" - " -t must be one of the test names - sink, transfer or ping\n" - " -i iteration count - the number of iterations to run the test over\n" - " Optional arguments\n" - " -S sysfs location - location for greybus 'endo' entries default /sys/bus/greybus/devices/\n" - " -D debugfs location - location for loopback debugfs entries default /sys/kernel/debug/gb_loopback/\n" - " -s size of data packet to send during test - defaults to zero\n" - " -m mask - a bit mask of connections to include example: -m 8 = 4th connection -m 9 = 1st and 4th connection etc\n" - " default is zero which means broadcast to all connections\n" - " -v verbose output\n" - " -d debug output\n" - " -r raw data output - when specified the full list of latency values are included in the output CSV\n" - " -p porcelain - when specified printout is in a user-friendly non-CSV format. This option suppresses writing to CSV file\n" - " -a aggregate - show aggregation of all enabled devices\n" - " -l list found loopback devices and exit\n" - " -x Async - Enable async transfers\n" - " -o Async Timeout - Timeout in uSec for async operations\n" - " -O Poll loop time out in seconds(max time a test is expected to last, default: 30sec)\n" - " -c Max number of outstanding operations for async operations\n" - " -w Wait in uSec between operations\n" - " -z Enable output to a CSV file (incompatible with -p)\n" - " -f When starting new loopback test, stop currently running tests on all devices\n" - "Examples:\n" - " Send 10000 transfers with a packet size of 128 bytes to all active connections\n" - " loopback_test -t transfer -s 128 -i 10000 -S /sys/bus/greybus/devices/ -D /sys/kernel/debug/gb_loopback/\n" - " loopback_test -t transfer -s 128 -i 10000 -m 0\n" - " Send 10000 transfers with a packet size of 128 bytes to connection 1 and 4\n" - " loopback_test -t transfer -s 128 -i 10000 -m 9\n" - " loopback_test -t ping -s 0 128 -i -S /sys/bus/greybus/devices/ -D /sys/kernel/debug/gb_loopback/\n" - " loopback_test -t sink -s 2030 -i 32768 -S /sys/bus/greybus/devices/ -D /sys/kernel/debug/gb_loopback/\n"); - abort(); -} - -static inline int device_enabled(struct loopback_test *t, int dev_idx) -{ - if (!t->mask || (t->mask & (1 << dev_idx))) - return 1; - - return 0; -} - -static void show_loopback_devices(struct loopback_test *t) -{ - int i; - - if (t->device_count == 0) { - printf("No loopback devices.\n"); - return; - } - - for (i = 0; i < t->device_count; i++) - printf("device[%d] = %s\n", i, t->devices[i].name); - -} - -int open_sysfs(const char *sys_pfx, const char *node, int flags) -{ - int fd; - char path[MAX_SYSFS_PATH]; - - snprintf(path, sizeof(path), "%s%s", sys_pfx, node); - fd = open(path, flags); - if (fd < 0) { - fprintf(stderr, "unable to open %s\n", path); - abort(); - } - return fd; -} - -int read_sysfs_int_fd(int fd, const char *sys_pfx, const char *node) -{ - char buf[SYSFS_MAX_INT]; - - if (read(fd, buf, sizeof(buf)) < 0) { - fprintf(stderr, "unable to read from %s%s %s\n", sys_pfx, node, - strerror(errno)); - close(fd); - abort(); - } - return atoi(buf); -} - -float read_sysfs_float_fd(int fd, const char *sys_pfx, const char *node) -{ - char buf[SYSFS_MAX_INT]; - - if (read(fd, buf, sizeof(buf)) < 0) { - - fprintf(stderr, "unable to read from %s%s %s\n", sys_pfx, node, - strerror(errno)); - close(fd); - abort(); - } - return atof(buf); -} - -int read_sysfs_int(const char *sys_pfx, const char *node) -{ - int fd, val; - - fd = open_sysfs(sys_pfx, node, O_RDONLY); - val = read_sysfs_int_fd(fd, sys_pfx, node); - close(fd); - return val; -} - -float read_sysfs_float(const char *sys_pfx, const char *node) -{ - int fd; - float val; - - fd = open_sysfs(sys_pfx, node, O_RDONLY); - val = read_sysfs_float_fd(fd, sys_pfx, node); - close(fd); - return val; -} - -void write_sysfs_val(const char *sys_pfx, const char *node, int val) -{ - int fd, len; - char buf[SYSFS_MAX_INT]; - - fd = open_sysfs(sys_pfx, node, O_RDWR); - len = snprintf(buf, sizeof(buf), "%d", val); - if (write(fd, buf, len) < 0) { - fprintf(stderr, "unable to write to %s%s %s\n", sys_pfx, node, - strerror(errno)); - close(fd); - abort(); - } - close(fd); -} - -static int get_results(struct loopback_test *t) -{ - struct loopback_device *d; - struct loopback_results *r; - int i; - - for (i = 0; i < t->device_count; i++) { - if (!device_enabled(t, i)) - continue; - - d = &t->devices[i]; - r = &d->results; - - r->error = read_sysfs_int(d->sysfs_entry, "error"); - r->request_min = read_sysfs_int(d->sysfs_entry, "requests_per_second_min"); - r->request_max = read_sysfs_int(d->sysfs_entry, "requests_per_second_max"); - r->request_avg = read_sysfs_float(d->sysfs_entry, "requests_per_second_avg"); - - r->latency_min = read_sysfs_int(d->sysfs_entry, "latency_min"); - r->latency_max = read_sysfs_int(d->sysfs_entry, "latency_max"); - r->latency_avg = read_sysfs_float(d->sysfs_entry, "latency_avg"); - - r->throughput_min = read_sysfs_int(d->sysfs_entry, "throughput_min"); - r->throughput_max = read_sysfs_int(d->sysfs_entry, "throughput_max"); - r->throughput_avg = read_sysfs_float(d->sysfs_entry, "throughput_avg"); - - r->apbridge_unipro_latency_min = - read_sysfs_int(d->sysfs_entry, "apbridge_unipro_latency_min"); - r->apbridge_unipro_latency_max = - read_sysfs_int(d->sysfs_entry, "apbridge_unipro_latency_max"); - r->apbridge_unipro_latency_avg = - read_sysfs_float(d->sysfs_entry, "apbridge_unipro_latency_avg"); - - r->gbphy_firmware_latency_min = - read_sysfs_int(d->sysfs_entry, "gbphy_firmware_latency_min"); - r->gbphy_firmware_latency_max = - read_sysfs_int(d->sysfs_entry, "gbphy_firmware_latency_max"); - r->gbphy_firmware_latency_avg = - read_sysfs_float(d->sysfs_entry, "gbphy_firmware_latency_avg"); - - r->request_jitter = r->request_max - r->request_min; - r->latency_jitter = r->latency_max - r->latency_min; - r->throughput_jitter = r->throughput_max - r->throughput_min; - r->apbridge_unipro_latency_jitter = - r->apbridge_unipro_latency_max - r->apbridge_unipro_latency_min; - r->gbphy_firmware_latency_jitter = - r->gbphy_firmware_latency_max - r->gbphy_firmware_latency_min; - - } - - /*calculate the aggregate results of all enabled devices */ - if (t->aggregate_output) { - r = &t->aggregate_results; - - r->request_min = get_request_min_aggregate(t); - r->request_max = get_request_max_aggregate(t); - r->request_avg = get_request_avg_aggregate(t); - - r->latency_min = get_latency_min_aggregate(t); - r->latency_max = get_latency_max_aggregate(t); - r->latency_avg = get_latency_avg_aggregate(t); - - r->throughput_min = get_throughput_min_aggregate(t); - r->throughput_max = get_throughput_max_aggregate(t); - r->throughput_avg = get_throughput_avg_aggregate(t); - - r->apbridge_unipro_latency_min = - get_apbridge_unipro_latency_min_aggregate(t); - r->apbridge_unipro_latency_max = - get_apbridge_unipro_latency_max_aggregate(t); - r->apbridge_unipro_latency_avg = - get_apbridge_unipro_latency_avg_aggregate(t); - - r->gbphy_firmware_latency_min = - get_gbphy_firmware_latency_min_aggregate(t); - r->gbphy_firmware_latency_max = - get_gbphy_firmware_latency_max_aggregate(t); - r->gbphy_firmware_latency_avg = - get_gbphy_firmware_latency_avg_aggregate(t); - - r->request_jitter = r->request_max - r->request_min; - r->latency_jitter = r->latency_max - r->latency_min; - r->throughput_jitter = r->throughput_max - r->throughput_min; - r->apbridge_unipro_latency_jitter = - r->apbridge_unipro_latency_max - r->apbridge_unipro_latency_min; - r->gbphy_firmware_latency_jitter = - r->gbphy_firmware_latency_max - r->gbphy_firmware_latency_min; - - } - - return 0; -} - -int format_output(struct loopback_test *t, - struct loopback_results *r, - const char *dev_name, - char *buf, int buf_len, - struct tm *tm) -{ - int len = 0; - - memset(buf, 0x00, buf_len); - len = snprintf(buf, buf_len, "%u-%u-%u %u:%u:%u", - tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); - - if (t->porcelain) { - len += snprintf(&buf[len], buf_len - len, - "\n test:\t\t\t%s\n path:\t\t\t%s\n size:\t\t\t%u\n iterations:\t\t%u\n errors:\t\t%u\n async:\t\t\t%s\n", - t->test_name, - dev_name, - t->size, - t->iteration_max, - r->error, - t->use_async ? "Enabled" : "Disabled"); - - len += snprintf(&buf[len], buf_len - len, - " requests per-sec:\tmin=%u, max=%u, average=%f, jitter=%u\n", - r->request_min, - r->request_max, - r->request_avg, - r->request_jitter); - - len += snprintf(&buf[len], buf_len - len, - " ap-throughput B/s:\tmin=%u max=%u average=%f jitter=%u\n", - r->throughput_min, - r->throughput_max, - r->throughput_avg, - r->throughput_jitter); - len += snprintf(&buf[len], buf_len - len, - " ap-latency usec:\tmin=%u max=%u average=%f jitter=%u\n", - r->latency_min, - r->latency_max, - r->latency_avg, - r->latency_jitter); - len += snprintf(&buf[len], buf_len - len, - " apbridge-latency usec:\tmin=%u max=%u average=%f jitter=%u\n", - r->apbridge_unipro_latency_min, - r->apbridge_unipro_latency_max, - r->apbridge_unipro_latency_avg, - r->apbridge_unipro_latency_jitter); - - len += snprintf(&buf[len], buf_len - len, - " gbphy-latency usec:\tmin=%u max=%u average=%f jitter=%u\n", - r->gbphy_firmware_latency_min, - r->gbphy_firmware_latency_max, - r->gbphy_firmware_latency_avg, - r->gbphy_firmware_latency_jitter); - - } else { - len += snprintf(&buf[len], buf_len - len, ",%s,%s,%u,%u,%u", - t->test_name, dev_name, t->size, t->iteration_max, - r->error); - - len += snprintf(&buf[len], buf_len - len, ",%u,%u,%f,%u", - r->request_min, - r->request_max, - r->request_avg, - r->request_jitter); - - len += snprintf(&buf[len], buf_len - len, ",%u,%u,%f,%u", - r->latency_min, - r->latency_max, - r->latency_avg, - r->latency_jitter); - - len += snprintf(&buf[len], buf_len - len, ",%u,%u,%f,%u", - r->throughput_min, - r->throughput_max, - r->throughput_avg, - r->throughput_jitter); - - len += snprintf(&buf[len], buf_len - len, ",%u,%u,%f,%u", - r->apbridge_unipro_latency_min, - r->apbridge_unipro_latency_max, - r->apbridge_unipro_latency_avg, - r->apbridge_unipro_latency_jitter); - - len += snprintf(&buf[len], buf_len - len, ",%u,%u,%f,%u", - r->gbphy_firmware_latency_min, - r->gbphy_firmware_latency_max, - r->gbphy_firmware_latency_avg, - r->gbphy_firmware_latency_jitter); - } - - printf("\n%s\n", buf); - - return len; -} - -static int log_results(struct loopback_test *t) -{ - int fd, i, len, ret; - struct tm tm; - time_t local_time; - char file_name[MAX_SYSFS_PATH]; - char data[CSV_MAX_LINE]; - - local_time = time(NULL); - tm = *localtime(&local_time); - - /* - * file name will test_name_size_iteration_max.csv - * every time the same test with the same parameters is run we will then - * append to the same CSV with datestamp - representing each test - * dataset. - */ - if (t->file_output && !t->porcelain) { - snprintf(file_name, sizeof(file_name), "%s_%d_%d.csv", - t->test_name, t->size, t->iteration_max); - - fd = open(file_name, O_WRONLY | O_CREAT | O_APPEND, 0644); - if (fd < 0) { - fprintf(stderr, "unable to open %s for appending\n", file_name); - abort(); - } - - } - for (i = 0; i < t->device_count; i++) { - if (!device_enabled(t, i)) - continue; - - len = format_output(t, &t->devices[i].results, - t->devices[i].name, - data, sizeof(data), &tm); - if (t->file_output && !t->porcelain) { - ret = write(fd, data, len); - if (ret == -1) - fprintf(stderr, "unable to write %d bytes to csv.\n", len); - } - - } - - - if (t->aggregate_output) { - len = format_output(t, &t->aggregate_results, "aggregate", - data, sizeof(data), &tm); - if (t->file_output && !t->porcelain) { - ret = write(fd, data, len); - if (ret == -1) - fprintf(stderr, "unable to write %d bytes to csv.\n", len); - } - } - - if (t->file_output && !t->porcelain) - close(fd); - - return 0; -} - -int is_loopback_device(const char *path, const char *node) -{ - char file[MAX_SYSFS_PATH]; - - snprintf(file, MAX_SYSFS_PATH, "%s%s/iteration_count", path, node); - if (access(file, F_OK) == 0) - return 1; - return 0; -} - -int find_loopback_devices(struct loopback_test *t) -{ - struct dirent **namelist; - int i, n, ret; - unsigned int dev_id; - struct loopback_device *d; - - n = scandir(t->sysfs_prefix, &namelist, NULL, alphasort); - if (n < 0) { - perror("scandir"); - ret = -ENODEV; - goto baddir; - } - - /* Don't include '.' and '..' */ - if (n <= 2) { - ret = -ENOMEM; - goto done; - } - - for (i = 0; i < n; i++) { - ret = sscanf(namelist[i]->d_name, "gb_loopback%u", &dev_id); - if (ret != 1) - continue; - - if (!is_loopback_device(t->sysfs_prefix, namelist[i]->d_name)) - continue; - - if (t->device_count == MAX_NUM_DEVICES) { - fprintf(stderr, "max number of devices reached!\n"); - break; - } - - d = &t->devices[t->device_count++]; - snprintf(d->name, MAX_STR_LEN, "gb_loopback%u", dev_id); - - snprintf(d->sysfs_entry, MAX_SYSFS_PATH, "%s%s/", - t->sysfs_prefix, d->name); - - snprintf(d->debugfs_entry, MAX_SYSFS_PATH, "%sraw_latency_%s", - t->debugfs_prefix, d->name); - - if (t->debug) - printf("add %s %s\n", d->sysfs_entry, d->debugfs_entry); - } - - ret = 0; -done: - for (i = 0; i < n; i++) - free(namelist[i]); - free(namelist); -baddir: - return ret; -} - -static int open_poll_files(struct loopback_test *t) -{ - struct loopback_device *dev; - char buf[MAX_SYSFS_PATH + MAX_STR_LEN]; - char dummy; - int fds_idx = 0; - int i; - - for (i = 0; i < t->device_count; i++) { - dev = &t->devices[i]; - - if (!device_enabled(t, i)) - continue; - - snprintf(buf, sizeof(buf), "%s%s", dev->sysfs_entry, "iteration_count"); - t->fds[fds_idx].fd = open(buf, O_RDONLY); - if (t->fds[fds_idx].fd < 0) { - fprintf(stderr, "Error opening poll file!\n"); - goto err; - } - read(t->fds[fds_idx].fd, &dummy, 1); - t->fds[fds_idx].events = POLLERR | POLLPRI; - t->fds[fds_idx].revents = 0; - fds_idx++; - } - - t->poll_count = fds_idx; - - return 0; - -err: - for (i = 0; i < fds_idx; i++) - close(t->fds[i].fd); - - return -1; -} - -static int close_poll_files(struct loopback_test *t) -{ - int i; - for (i = 0; i < t->poll_count; i++) - close(t->fds[i].fd); - - return 0; -} -static int is_complete(struct loopback_test *t) -{ - int iteration_count; - int i; - - for (i = 0; i < t->device_count; i++) { - if (!device_enabled(t, i)) - continue; - - iteration_count = read_sysfs_int(t->devices[i].sysfs_entry, - "iteration_count"); - - /* at least one device did not finish yet */ - if (iteration_count != t->iteration_max) - return 0; - } - - return 1; -} - -static void stop_tests(struct loopback_test *t) -{ - int i; - - for (i = 0; i < t->device_count; i++) { - if (!device_enabled(t, i)) - continue; - write_sysfs_val(t->devices[i].sysfs_entry, "type", 0); - } -} - -static void handler(int sig) { /* do nothing */ } - -static int wait_for_complete(struct loopback_test *t) -{ - int number_of_events = 0; - char dummy; - int ret; - int i; - struct timespec *ts = NULL; - struct sigaction sa; - sigset_t mask_old, mask; - - sigemptyset(&mask); - sigemptyset(&mask_old); - sigaddset(&mask, SIGINT); - sigprocmask(SIG_BLOCK, &mask, &mask_old); - - sa.sa_handler = handler; - sa.sa_flags = 0; - sigemptyset(&sa.sa_mask); - if (sigaction(SIGINT, &sa, NULL) == -1) { - fprintf(stderr, "sigaction error\n"); - return -1; - } - - if (t->poll_timeout.tv_sec != 0) - ts = &t->poll_timeout; - - while (1) { - - ret = ppoll(t->fds, t->poll_count, ts, &mask_old); - if (ret <= 0) { - stop_tests(t); - fprintf(stderr, "Poll exit with errno %d\n", errno); - return -1; - } - - for (i = 0; i < t->poll_count; i++) { - if (t->fds[i].revents & POLLPRI) { - /* Dummy read to clear the event */ - read(t->fds[i].fd, &dummy, 1); - number_of_events++; - } - } - - if (number_of_events == t->poll_count) - break; - } - - if (!is_complete(t)) { - fprintf(stderr, "Iteration count did not finish!\n"); - return -1; - } - - return 0; -} - -static void prepare_devices(struct loopback_test *t) -{ - int i; - - /* - * Cancel any running tests on enabled devices. If - * stop_all option is given, stop test on all devices. - */ - for (i = 0; i < t->device_count; i++) - if (t->stop_all || device_enabled(t, i)) - write_sysfs_val(t->devices[i].sysfs_entry, "type", 0); - - - for (i = 0; i < t->device_count; i++) { - if (!device_enabled(t, i)) - continue; - - write_sysfs_val(t->devices[i].sysfs_entry, "us_wait", - t->us_wait); - - /* Set operation size */ - write_sysfs_val(t->devices[i].sysfs_entry, "size", t->size); - - /* Set iterations */ - write_sysfs_val(t->devices[i].sysfs_entry, "iteration_max", - t->iteration_max); - - if (t->use_async) { - write_sysfs_val(t->devices[i].sysfs_entry, "async", 1); - write_sysfs_val(t->devices[i].sysfs_entry, - "timeout", t->async_timeout); - write_sysfs_val(t->devices[i].sysfs_entry, - "outstanding_operations_max", - t->async_outstanding_operations); - } else { - write_sysfs_val(t->devices[i].sysfs_entry, "async", 0); - } - } -} - -static int start(struct loopback_test *t) -{ - int i; - - /* the test starts by writing test_id to the type file. */ - for (i = 0; i < t->device_count; i++) { - if (!device_enabled(t, i)) - continue; - - write_sysfs_val(t->devices[i].sysfs_entry, "type", t->test_id); - } - - return 0; -} - - -void loopback_run(struct loopback_test *t) -{ - int i; - int ret; - - for (i = 0; dict[i].name != NULL; i++) { - if (strstr(dict[i].name, t->test_name)) - t->test_id = dict[i].type; - } - if (!t->test_id) { - fprintf(stderr, "invalid test %s\n", t->test_name); - usage(); - return; - } - - prepare_devices(t); - - ret = open_poll_files(t); - if (ret) - goto err; - - start(t); - - ret = wait_for_complete(t); - close_poll_files(t); - if (ret) - goto err; - - - get_results(t); - - log_results(t); - - return; - -err: - printf("Error running test\n"); - return; -} - -static int sanity_check(struct loopback_test *t) -{ - int i; - - if (t->device_count == 0) { - fprintf(stderr, "No loopback devices found\n"); - return -1; - } - - for (i = 0; i < MAX_NUM_DEVICES; i++) { - if (!device_enabled(t, i)) - continue; - - if (t->mask && !strcmp(t->devices[i].name, "")) { - fprintf(stderr, "Bad device mask %x\n", (1 << i)); - return -1; - } - - } - - - return 0; -} - -int main(int argc, char *argv[]) -{ - int o, ret; - char *sysfs_prefix = "/sys/class/gb_loopback/"; - char *debugfs_prefix = "/sys/kernel/debug/gb_loopback/"; - - memset(&t, 0, sizeof(t)); - - while ((o = getopt(argc, argv, - "t:s:i:S:D:m:v::d::r::p::a::l::x::o:O:c:w:z::f::")) != -1) { - switch (o) { - case 't': - snprintf(t.test_name, MAX_STR_LEN, "%s", optarg); - break; - case 's': - t.size = atoi(optarg); - break; - case 'i': - t.iteration_max = atoi(optarg); - break; - case 'S': - snprintf(t.sysfs_prefix, MAX_SYSFS_PREFIX, "%s", optarg); - break; - case 'D': - snprintf(t.debugfs_prefix, MAX_SYSFS_PREFIX, "%s", optarg); - break; - case 'm': - t.mask = atol(optarg); - break; - case 'v': - t.verbose = 1; - break; - case 'd': - t.debug = 1; - break; - case 'r': - t.raw_data_dump = 1; - break; - case 'p': - t.porcelain = 1; - break; - case 'a': - t.aggregate_output = 1; - break; - case 'l': - t.list_devices = 1; - break; - case 'x': - t.use_async = 1; - break; - case 'o': - t.async_timeout = atoi(optarg); - break; - case 'O': - t.poll_timeout.tv_sec = atoi(optarg); - break; - case 'c': - t.async_outstanding_operations = atoi(optarg); - break; - case 'w': - t.us_wait = atoi(optarg); - break; - case 'z': - t.file_output = 1; - break; - case 'f': - t.stop_all = 1; - break; - default: - usage(); - return -EINVAL; - } - } - - if (!strcmp(t.sysfs_prefix, "")) - snprintf(t.sysfs_prefix, MAX_SYSFS_PREFIX, "%s", sysfs_prefix); - - if (!strcmp(t.debugfs_prefix, "")) - snprintf(t.debugfs_prefix, MAX_SYSFS_PREFIX, "%s", debugfs_prefix); - - ret = find_loopback_devices(&t); - if (ret) - return ret; - ret = sanity_check(&t); - if (ret) - return ret; - - if (t.list_devices) { - show_loopback_devices(&t); - return 0; - } - - if (t.test_name[0] == '\0' || t.iteration_max == 0) - usage(); - - if (t.async_timeout == 0) - t.async_timeout = DEFAULT_ASYNC_TIMEOUT; - - loopback_run(&t); - - return 0; -} diff --git a/drivers/thunderbolt/quirks.c b/drivers/thunderbolt/quirks.c index ae28a03fa890..1157b8869bcc 100644 --- a/drivers/thunderbolt/quirks.c +++ b/drivers/thunderbolt/quirks.c @@ -26,6 +26,19 @@ static void quirk_clx_disable(struct tb_switch *sw) tb_sw_dbg(sw, "disabling CL states\n"); } +static void quirk_usb3_maximum_bandwidth(struct tb_switch *sw) +{ + struct tb_port *port; + + tb_switch_for_each_port(sw, port) { + if (!tb_port_is_usb3_down(port)) + continue; + port->max_bw = 16376; + tb_port_dbg(port, "USB3 maximum bandwidth limited to %u Mb/s\n", + port->max_bw); + } +} + struct tb_quirk { u16 hw_vendor_id; u16 hw_device_id; @@ -43,6 +56,24 @@ static const struct tb_quirk tb_quirks[] = { * DP buffers. */ { 0x8087, 0x0b26, 0x0000, 0x0000, quirk_dp_credit_allocation }, + /* + * Limit the maximum USB3 bandwidth for the following Intel USB4 + * host routers due to a hardware issue. + */ + { 0x8087, PCI_DEVICE_ID_INTEL_ADL_NHI0, 0x0000, 0x0000, + quirk_usb3_maximum_bandwidth }, + { 0x8087, PCI_DEVICE_ID_INTEL_ADL_NHI1, 0x0000, 0x0000, + quirk_usb3_maximum_bandwidth }, + { 0x8087, PCI_DEVICE_ID_INTEL_RPL_NHI0, 0x0000, 0x0000, + quirk_usb3_maximum_bandwidth }, + { 0x8087, PCI_DEVICE_ID_INTEL_RPL_NHI1, 0x0000, 0x0000, + quirk_usb3_maximum_bandwidth }, + { 0x8087, PCI_DEVICE_ID_INTEL_MTL_M_NHI0, 0x0000, 0x0000, + quirk_usb3_maximum_bandwidth }, + { 0x8087, PCI_DEVICE_ID_INTEL_MTL_P_NHI0, 0x0000, 0x0000, + quirk_usb3_maximum_bandwidth }, + { 0x8087, PCI_DEVICE_ID_INTEL_MTL_P_NHI1, 0x0000, 0x0000, + quirk_usb3_maximum_bandwidth }, /* * CLx is not supported on AMD USB4 Yellow Carp and Pink Sardine platforms. */ diff --git a/drivers/thunderbolt/tb.h b/drivers/thunderbolt/tb.h index e11d973a8f9b..f034723b1b40 100644 --- a/drivers/thunderbolt/tb.h +++ b/drivers/thunderbolt/tb.h @@ -252,6 +252,8 @@ struct tb_switch { * @ctl_credits: Buffers reserved for control path * @dma_credits: Number of credits allocated for DMA tunneling for all * DMA paths through this port. + * @max_bw: Maximum possible bandwidth through this adapter if set to + * non-zero. * * In USB4 terminology this structure represents an adapter (protocol or * lane adapter). @@ -277,6 +279,7 @@ struct tb_port { unsigned int total_credits; unsigned int ctl_credits; unsigned int dma_credits; + unsigned int max_bw; }; /** diff --git a/drivers/thunderbolt/usb4.c b/drivers/thunderbolt/usb4.c index cf8d4f769579..3c821f5e4481 100644 --- a/drivers/thunderbolt/usb4.c +++ b/drivers/thunderbolt/usb4.c @@ -1865,6 +1865,15 @@ int usb4_port_retimer_nvm_read(struct tb_port *port, u8 index, usb4_port_retimer_nvm_read_block, &info); } +static inline unsigned int +usb4_usb3_port_max_bandwidth(const struct tb_port *port, unsigned int bw) +{ + /* Take the possible bandwidth limitation into account */ + if (port->max_bw) + return min(bw, port->max_bw); + return bw; +} + /** * usb4_usb3_port_max_link_rate() - Maximum support USB3 link rate * @port: USB3 adapter port @@ -1886,7 +1895,9 @@ int usb4_usb3_port_max_link_rate(struct tb_port *port) return ret; lr = (val & ADP_USB3_CS_4_MSLR_MASK) >> ADP_USB3_CS_4_MSLR_SHIFT; - return lr == ADP_USB3_CS_4_MSLR_20G ? 20000 : 10000; + ret = lr == ADP_USB3_CS_4_MSLR_20G ? 20000 : 10000; + + return usb4_usb3_port_max_bandwidth(port, ret); } /** @@ -1913,7 +1924,9 @@ int usb4_usb3_port_actual_link_rate(struct tb_port *port) return 0; lr = val & ADP_USB3_CS_4_ALR_MASK; - return lr == ADP_USB3_CS_4_ALR_20G ? 20000 : 10000; + ret = lr == ADP_USB3_CS_4_ALR_20G ? 20000 : 10000; + + return usb4_usb3_port_max_bandwidth(port, ret); } static int usb4_usb3_port_cm_request(struct tb_port *port, bool request) diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c index c51883f34ac2..cd98c04de033 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -582,7 +582,7 @@ static void lpuart_flush_buffer(struct uart_port *port) sport->dma_tx_nents, DMA_TO_DEVICE); sport->dma_tx_in_progress = false; } - dmaengine_terminate_all(chan); + dmaengine_terminate_async(chan); } if (lpuart_is_32(sport)) { @@ -1333,7 +1333,8 @@ static void lpuart_dma_rx_free(struct uart_port *port) struct lpuart_port, port); struct dma_chan *chan = sport->dma_rx_chan; - dmaengine_terminate_all(chan); + dmaengine_terminate_sync(chan); + del_timer_sync(&sport->lpuart_timer); dma_unmap_sg(chan->device->dev, &sport->rx_sgl, 1, DMA_FROM_DEVICE); kfree(sport->rx_ring.buf); sport->rx_ring.tail = 0; @@ -1757,7 +1758,6 @@ static int lpuart32_startup(struct uart_port *port) static void lpuart_dma_shutdown(struct lpuart_port *sport) { if (sport->lpuart_dma_rx_use) { - del_timer_sync(&sport->lpuart_timer); lpuart_dma_rx_free(&sport->port); sport->lpuart_dma_rx_use = false; } @@ -1766,7 +1766,7 @@ static void lpuart_dma_shutdown(struct lpuart_port *sport) if (wait_event_interruptible_timeout(sport->dma_wait, !sport->dma_tx_in_progress, msecs_to_jiffies(300)) <= 0) { sport->dma_tx_in_progress = false; - dmaengine_terminate_all(sport->dma_tx_chan); + dmaengine_terminate_sync(sport->dma_tx_chan); } sport->lpuart_dma_tx_use = false; } @@ -1917,10 +1917,8 @@ lpuart_set_termios(struct uart_port *port, struct ktermios *termios, * Since timer function acqures sport->port.lock, need to stop before * acquring same lock because otherwise del_timer_sync() can deadlock. */ - if (old && sport->lpuart_dma_rx_use) { - del_timer_sync(&sport->lpuart_timer); + if (old && sport->lpuart_dma_rx_use) lpuart_dma_rx_free(&sport->port); - } spin_lock_irqsave(&sport->port.lock, flags); @@ -2154,10 +2152,8 @@ lpuart32_set_termios(struct uart_port *port, struct ktermios *termios, * Since timer function acqures sport->port.lock, need to stop before * acquring same lock because otherwise del_timer_sync() can deadlock. */ - if (old && sport->lpuart_dma_rx_use) { - del_timer_sync(&sport->lpuart_timer); + if (old && sport->lpuart_dma_rx_use) lpuart_dma_rx_free(&sport->port); - } spin_lock_irqsave(&sport->port.lock, flags); @@ -2850,7 +2846,6 @@ static int __maybe_unused lpuart_suspend(struct device *dev) * Rx DMA path before suspend and start Rx DMA path on resume. */ if (irq_wake) { - del_timer_sync(&sport->lpuart_timer); lpuart_dma_rx_free(&sport->port); } @@ -2867,7 +2862,7 @@ static int __maybe_unused lpuart_suspend(struct device *dev) if (sport->lpuart_dma_tx_use) { sport->dma_tx_in_progress = false; - dmaengine_terminate_all(sport->dma_tx_chan); + dmaengine_terminate_sync(sport->dma_tx_chan); } if (sport->port.suspended && !irq_wake) diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c index 7905935b9f1b..0292ee03d594 100644 --- a/drivers/tty/serial/qcom_geni_serial.c +++ b/drivers/tty/serial/qcom_geni_serial.c @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 8ea1da64a263..458d076d7672 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -1415,13 +1415,8 @@ static int ufshcd_devfreq_target(struct device *dev, struct list_head *clk_list = &hba->clk_list_head; struct ufs_clk_info *clki; unsigned long irq_flags; - - /* - * Skip devfreq if UFS initialization is not finished. - * Otherwise ufs could be in a inconsistent state. - */ - if (!smp_load_acquire(&hba->logical_unit_scan_finished)) - return 0; + bool force_out = false; + bool force_scaling = false; if (!ufshcd_is_clkscaling_supported(hba)) return -EINVAL; @@ -1447,8 +1442,11 @@ static int ufshcd_devfreq_target(struct device *dev, scale_up = *freq == clki->max_freq; if (!scale_up) *freq = clki->min_freq; + + trace_android_vh_ufs_clock_scaling(hba, &force_out, &force_scaling, &scale_up); + /* Update the frequency */ - if (!ufshcd_is_devfreq_scaling_required(hba, scale_up)) { + if (force_out || (!force_scaling && !ufshcd_is_devfreq_scaling_required(hba, scale_up))) { spin_unlock_irqrestore(hba->host->host_lock, irq_flags); ret = 0; goto out; /* no state change required */ @@ -1507,7 +1505,7 @@ start_window: scaling->window_start_t = curr_t; scaling->tot_busy_t = 0; - if (hba->outstanding_reqs) { + if (scaling->active_reqs) { scaling->busy_start_t = curr_t; scaling->is_busy_started = true; } else { @@ -2125,7 +2123,7 @@ static void ufshcd_clk_scaling_update_busy(struct ufs_hba *hba) spin_lock_irqsave(hba->host->host_lock, flags); hba->clk_scaling.active_reqs--; - if (!hba->outstanding_reqs && scaling->is_busy_started) { + if (!scaling->active_reqs && scaling->is_busy_started) { scaling->tot_busy_t += ktime_to_us(ktime_sub(ktime_get(), scaling->busy_start_t)); scaling->busy_start_t = 0; @@ -8435,6 +8433,22 @@ static int ufshcd_add_lus(struct ufs_hba *hba) if (ret) goto out; + /* Initialize devfreq after UFS device is detected */ + if (ufshcd_is_clkscaling_supported(hba)) { + memcpy(&hba->clk_scaling.saved_pwr_info.info, + &hba->pwr_info, + sizeof(struct ufs_pa_layer_attr)); + hba->clk_scaling.saved_pwr_info.is_valid = true; + hba->clk_scaling.is_allowed = true; + + ret = ufshcd_devfreq_init(hba); + if (ret) + goto out; + + hba->clk_scaling.is_enabled = true; + ufshcd_init_clk_scaling_sysfs(hba); + } + ufs_bsg_probe(hba); ufshpb_init(hba); scsi_scan_host(hba->host); @@ -8675,12 +8689,6 @@ out: if (ret) { pm_runtime_put_sync(hba->dev); ufshcd_hba_exit(hba); - } else { - /* - * Make sure that when reader code sees UFS initialization has finished, - * all initialization steps have really been executed. - */ - smp_store_release(&hba->logical_unit_scan_finished, true); } } @@ -10321,22 +10329,6 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq) */ ufshcd_set_ufs_dev_active(hba); - /* Initialize devfreq */ - if (ufshcd_is_clkscaling_supported(hba)) { - memcpy(&hba->clk_scaling.saved_pwr_info.info, - &hba->pwr_info, - sizeof(struct ufs_pa_layer_attr)); - hba->clk_scaling.saved_pwr_info.is_valid = true; - hba->clk_scaling.is_allowed = true; - - err = ufshcd_devfreq_init(hba); - if (err) - goto rpm_put_sync; - - hba->clk_scaling.is_enabled = true; - ufshcd_init_clk_scaling_sysfs(hba); - } - async_schedule(ufshcd_async_scan, hba); ufs_sysfs_add_nodes(dev); trace_android_vh_ufs_update_sysfs(hba); @@ -10344,8 +10336,6 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq) device_enable_async_suspend(dev); return 0; -rpm_put_sync: - pm_runtime_put_sync(dev); free_tmf_queue: blk_mq_destroy_queue(hba->tmf_queue); blk_put_queue(hba->tmf_queue); diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c index 8a34d5a01d60..a673916e0a6f 100644 --- a/drivers/ufs/host/ufs-qcom.c +++ b/drivers/ufs/host/ufs-qcom.c @@ -801,6 +801,7 @@ static int ufs_qcom_phy_power_on(struct ufs_hba *hba) } host->is_phy_pwr_on = true; } + mutex_unlock(&host->phy_mutex); return ret; @@ -2119,9 +2120,6 @@ static int ufs_qcom_pwr_change_notify(struct ufs_hba *hba, goto out; } - /* Use the agreed gear */ - host->hs_gear = dev_req_params->gear_tx; - /* enable the device ref clock before changing to HS mode */ if (!ufshcd_is_hs_mode(&hba->pwr_info) && ufshcd_is_hs_mode(dev_req_params)) @@ -3471,12 +3469,6 @@ static int ufs_qcom_init(struct ufs_hba *hba) dev_warn(dev, "%s: failed to configure the testbus %d\n", __func__, err); - /* - * Power up the PHY using the minimum supported gear (UFS_HS_G2). - * Switching to max gear will be performed during reinit if supported. - */ - host->hs_gear = UFS_HS_G2; - ufs_qcom_init_sysfs(hba); ut->tcd = devm_thermal_of_cooling_device_register(dev, @@ -3509,6 +3501,7 @@ static int ufs_qcom_init(struct ufs_hba *hba) ufs_qcom_register_minidump((uintptr_t)hba->host, sizeof(struct Scsi_Host), "UFS_SHOST", 0); } + return 0; out_disable_vccq_parent: @@ -4380,13 +4373,6 @@ static void ufs_qcom_fixup_dev_quirks(struct ufs_hba *hba) ufshcd_fixup_dev_quirks(hba, ufs_qcom_dev_fixups); } -static void ufs_qcom_reinit_notify(struct ufs_hba *hba) -{ - struct ufs_qcom_host *host = ufshcd_get_variant(hba); - - phy_power_off(host->generic_phy); -} - /* Resources */ static const struct ufshcd_res_info ufs_res_info[RES_MAX] = { {.name = "ufs_mem",}, @@ -4637,7 +4623,6 @@ static const struct ufs_hba_variant_ops ufs_hba_qcom_vops = { .setup_xfer_req = ufs_qcom_qos, .program_key = ufs_qcom_ice_program_key, .fixup_dev_quirks = ufs_qcom_fixup_dev_quirks, - .reinit_notify = ufs_qcom_reinit_notify, .mcq_config_resource = ufs_qcom_mcq_config_resource, .get_hba_mac = ufs_qcom_get_hba_mac, .op_runtime_config = ufs_qcom_op_runtime_config, diff --git a/drivers/ufs/host/ufs-qcom.h b/drivers/ufs/host/ufs-qcom.h index dc15b1e7f0d3..80806687be78 100644 --- a/drivers/ufs/host/ufs-qcom.h +++ b/drivers/ufs/host/ufs-qcom.h @@ -153,10 +153,6 @@ enum { #define TMRLUT_HW_CGC_EN BIT(6) #define OCSC_HW_CGC_EN BIT(7) -/* bit definitions for REG_UFS_PARAM0 */ -#define MAX_HS_GEAR_MASK GENMASK(6, 4) -#define UFS_QCOM_MAX_GEAR(x) FIELD_GET(MAX_HS_GEAR_MASK, (x)) - /* bit definition for UFS_UFS_TEST_BUS_CTRL_n */ #define TEST_BUS_SUB_SEL_MASK GENMASK(4, 0) /* All XXX_SEL fields are 5 bits wide */ @@ -611,8 +607,6 @@ struct ufs_qcom_host { struct list_head regs_list_head; bool ber_th_exceeded; - u32 hs_gear; - int esi_base; bool esi_enabled; }; diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c index 5ea8dbaa203a..275ca4aa9739 100644 --- a/drivers/usb/gadget/configfs.c +++ b/drivers/usb/gadget/configfs.c @@ -16,7 +16,7 @@ #include #ifdef CONFIG_USB_CONFIGFS_F_ACC -extern int acc_ctrlrequest(struct usb_composite_dev *cdev, +extern int acc_ctrlrequest_composite(struct usb_composite_dev *cdev, const struct usb_ctrlrequest *ctrl); void acc_disconnect(void); #endif @@ -1560,7 +1560,7 @@ static int android_setup(struct usb_gadget *gadget, #ifdef CONFIG_USB_CONFIGFS_F_ACC if (value < 0) - value = acc_ctrlrequest(cdev, c); + value = acc_ctrlrequest_composite(cdev, c); #endif if (value < 0) diff --git a/drivers/usb/gadget/function/f_accessory.c b/drivers/usb/gadget/function/f_accessory.c index c228088a4485..ce7814c22057 100644 --- a/drivers/usb/gadget/function/f_accessory.c +++ b/drivers/usb/gadget/function/f_accessory.c @@ -1086,6 +1086,26 @@ err: } EXPORT_SYMBOL_GPL(acc_ctrlrequest); +int acc_ctrlrequest_composite(struct usb_composite_dev *cdev, + const struct usb_ctrlrequest *ctrl) +{ + u16 w_length = le16_to_cpu(ctrl->wLength); + + if (w_length > USB_COMP_EP0_BUFSIZ) { + if (ctrl->bRequestType & USB_DIR_IN) { + /* Cast away the const, we are going to overwrite on purpose. */ + __le16 *temp = (__le16 *)&ctrl->wLength; + + *temp = cpu_to_le16(USB_COMP_EP0_BUFSIZ); + w_length = USB_COMP_EP0_BUFSIZ; + } else { + return -EINVAL; + } + } + return acc_ctrlrequest(cdev, ctrl); +} +EXPORT_SYMBOL_GPL(acc_ctrlrequest_composite); + static int __acc_function_bind(struct usb_configuration *c, struct usb_function *f, bool configfs) diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/altmodes/displayport.c index 3a42313d0d66..61e97a94ae9c 100644 --- a/drivers/usb/typec/altmodes/displayport.c +++ b/drivers/usb/typec/altmodes/displayport.c @@ -146,6 +146,7 @@ static int dp_altmode_status_update(struct dp_altmode *dp) if (dp->hpd != hpd) { drm_connector_oob_hotplug_event(dp->connector_fwnode); dp->hpd = hpd; + sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); } } @@ -514,9 +515,18 @@ static ssize_t pin_assignment_show(struct device *dev, } static DEVICE_ATTR_RW(pin_assignment); +static ssize_t hpd_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + struct dp_altmode *dp = dev_get_drvdata(dev); + + return sysfs_emit(buf, "%d\n", dp->hpd); +} +static DEVICE_ATTR_RO(hpd); + static struct attribute *dp_altmode_attrs[] = { &dev_attr_configuration.attr, &dev_attr_pin_assignment.attr, + &dev_attr_hpd.attr, NULL }; diff --git a/drivers/usb/typec/tcpm/tcpci.c b/drivers/usb/typec/tcpm/tcpci.c index 28daef821974..1d983ea2c35d 100644 --- a/drivers/usb/typec/tcpm/tcpci.c +++ b/drivers/usb/typec/tcpm/tcpci.c @@ -16,6 +16,7 @@ #include #include #include +#include #define PD_RETRY_COUNT_DEFAULT 3 #define PD_RETRY_COUNT_3_0_OR_HIGHER 2 @@ -179,8 +180,11 @@ static int tcpci_start_toggling(struct tcpc_dev *tcpc, /* Handle vendor drp toggling */ if (tcpci->data->start_drp_toggling) { + int override_toggling = 0; + trace_android_vh_typec_tcpci_override_toggling(tcpci, tcpci->data, + &override_toggling); ret = tcpci->data->start_drp_toggling(tcpci, tcpci->data, cc); - if (ret < 0) + if (ret < 0 || override_toggling) return ret; } @@ -457,7 +461,11 @@ static int tcpci_get_vbus(struct tcpc_dev *tcpc) { struct tcpci *tcpci = tcpc_to_tcpci(tcpc); unsigned int reg; - int ret; + int ret, vbus, bypass = 0; + + trace_android_rvh_typec_tcpci_get_vbus(tcpci, tcpci->data, &vbus, &bypass); + if (bypass) + return vbus; ret = regmap_read(tcpci->regmap, TCPC_POWER_STATUS, ®); if (ret < 0) diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c index 6784c266aa21..6af7c21aeaac 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -31,6 +31,7 @@ #include #include +#include #include #define FOREACH_STATE(S) \ @@ -606,6 +607,7 @@ static void _tcpm_log(struct tcpm_port *port, const char *fmt, va_list args) char tmpbuffer[LOG_BUFFER_ENTRY_SIZE]; u64 ts_nsec = local_clock(); unsigned long rem_nsec; + bool bypass_log = false; mutex_lock(&port->logbuffer_lock); if (!port->logbuffer[port->logbuffer_head]) { @@ -618,6 +620,9 @@ static void _tcpm_log(struct tcpm_port *port, const char *fmt, va_list args) } vsnprintf(tmpbuffer, sizeof(tmpbuffer), fmt, args); + trace_android_vh_typec_tcpm_log(tmpbuffer, &bypass_log); + if (bypass_log) + goto abort; if (tcpm_log_full(port)) { port->logbuffer_head = max(port->logbuffer_head - 1, 0); @@ -2456,7 +2461,8 @@ static void tcpm_pd_data_request(struct tcpm_port *port, port->nr_source_caps); tcpm_register_source_caps(port); - + trace_android_vh_typec_store_partner_src_caps(&port->nr_source_caps, + &port->source_caps); /* * Adjust revision in subsequent message headers, as required, * to comply with 6.2.1.1.5 of the USB PD 3.0 spec. We don't @@ -3921,8 +3927,9 @@ static void run_state_machine(struct tcpm_port *port) { int ret; enum typec_pwr_opmode opmode; - unsigned int msecs; + unsigned int msecs, timer_val_msecs; enum tcpm_state upcoming_state; + const char *state_name; if (port->tcpc->check_contaminant && port->state != CHECK_CONTAMINANT) port->potential_contaminant = ((port->enter_state == SRC_ATTACH_WAIT && @@ -3955,17 +3962,20 @@ static void run_state_machine(struct tcpm_port *port) tcpm_set_state(port, SNK_UNATTACHED, PD_T_DRP_SNK); break; case SRC_ATTACH_WAIT: + timer_val_msecs = PD_T_CC_DEBOUNCE; + trace_android_vh_typec_tcpm_get_timer(tcpm_states[SRC_ATTACH_WAIT], + CC_DEBOUNCE, &timer_val_msecs); if (tcpm_port_is_debug(port)) tcpm_set_state(port, DEBUG_ACC_ATTACHED, - PD_T_CC_DEBOUNCE); + timer_val_msecs); else if (tcpm_port_is_audio(port)) tcpm_set_state(port, AUDIO_ACC_ATTACHED, - PD_T_CC_DEBOUNCE); + timer_val_msecs); else if (tcpm_port_is_source(port) && port->vbus_vsafe0v) tcpm_set_state(port, tcpm_try_snk(port) ? SNK_TRY : SRC_ATTACHED, - PD_T_CC_DEBOUNCE); + timer_val_msecs); break; case SNK_TRY: @@ -4016,7 +4026,10 @@ static void run_state_machine(struct tcpm_port *port) } break; case SRC_TRYWAIT_DEBOUNCE: - tcpm_set_state(port, SRC_ATTACHED, PD_T_CC_DEBOUNCE); + timer_val_msecs = PD_T_CC_DEBOUNCE; + trace_android_vh_typec_tcpm_get_timer(tcpm_states[SRC_TRYWAIT_DEBOUNCE], + CC_DEBOUNCE, &timer_val_msecs); + tcpm_set_state(port, SRC_ATTACHED, timer_val_msecs); break; case SRC_TRYWAIT_UNATTACHED: tcpm_set_state(port, SNK_UNATTACHED, 0); @@ -4196,15 +4209,18 @@ static void run_state_machine(struct tcpm_port *port) tcpm_set_state(port, SRC_UNATTACHED, PD_T_DRP_SRC); break; case SNK_ATTACH_WAIT: + timer_val_msecs = PD_T_CC_DEBOUNCE; + trace_android_vh_typec_tcpm_get_timer(tcpm_states[SNK_ATTACH_WAIT], + CC_DEBOUNCE, &timer_val_msecs); if ((port->cc1 == TYPEC_CC_OPEN && port->cc2 != TYPEC_CC_OPEN) || (port->cc1 != TYPEC_CC_OPEN && port->cc2 == TYPEC_CC_OPEN)) tcpm_set_state(port, SNK_DEBOUNCED, - PD_T_CC_DEBOUNCE); + timer_val_msecs); else if (tcpm_port_is_disconnected(port)) tcpm_set_state(port, SNK_UNATTACHED, - PD_T_PD_DEBOUNCE); + timer_val_msecs); break; case SNK_DEBOUNCED: if (tcpm_port_is_disconnected(port)) @@ -4240,8 +4256,11 @@ static void run_state_machine(struct tcpm_port *port) tcpm_set_state(port, SRC_ATTACHED, PD_T_PD_DEBOUNCE); break; case SNK_TRYWAIT: + timer_val_msecs = PD_T_CC_DEBOUNCE; + trace_android_vh_typec_tcpm_get_timer(tcpm_states[SNK_TRYWAIT], + CC_DEBOUNCE, &timer_val_msecs); tcpm_set_cc(port, TYPEC_CC_RD); - tcpm_set_state(port, SNK_TRYWAIT_VBUS, PD_T_CC_DEBOUNCE); + tcpm_set_state(port, SNK_TRYWAIT_VBUS, timer_val_msecs); break; case SNK_TRYWAIT_VBUS: /* @@ -4281,7 +4300,10 @@ static void run_state_machine(struct tcpm_port *port) /* SRC -> SNK POWER/FAST_ROLE_SWAP finished */ tcpm_ams_finish(port); - tcpm_set_state(port, SNK_DISCOVERY, 0); + timer_val_msecs = 0; + trace_android_vh_typec_tcpm_get_timer(tcpm_states[SNK_STARTUP], + SINK_DISCOVERY_BC12, &timer_val_msecs); + tcpm_set_state(port, SNK_DISCOVERY, timer_val_msecs); break; case SNK_DISCOVERY: if (port->vbus_present) { @@ -4307,8 +4329,10 @@ static void run_state_machine(struct tcpm_port *port) PD_T_DB_DETECT : PD_T_NO_RESPONSE); break; case SNK_DISCOVERY_DEBOUNCE: - tcpm_set_state(port, SNK_DISCOVERY_DEBOUNCE_DONE, - PD_T_CC_DEBOUNCE); + timer_val_msecs = PD_T_CC_DEBOUNCE; + trace_android_vh_typec_tcpm_get_timer(tcpm_states[SNK_DISCOVERY_DEBOUNCE], + CC_DEBOUNCE, &timer_val_msecs); + tcpm_set_state(port, SNK_DISCOVERY_DEBOUNCE_DONE, timer_val_msecs); break; case SNK_DISCOVERY_DEBOUNCE_DONE: if (!tcpm_port_is_disconnected(port) && @@ -4326,6 +4350,9 @@ static void run_state_machine(struct tcpm_port *port) tcpm_set_state(port, SNK_READY, 0); break; } + timer_val_msecs = PD_T_SINK_WAIT_CAP; + trace_android_vh_typec_tcpm_get_timer(tcpm_states[SNK_WAIT_CAPABILITIES], + SINK_WAIT_CAP, &timer_val_msecs); /* * If VBUS has never been low, and we time out waiting * for source cap, try a soft reset first, in case we @@ -4335,10 +4362,10 @@ static void run_state_machine(struct tcpm_port *port) if (port->vbus_never_low) { port->vbus_never_low = false; tcpm_set_state(port, SNK_SOFT_RESET, - PD_T_SINK_WAIT_CAP); + timer_val_msecs); } else { tcpm_set_state(port, hard_reset_state(port), - PD_T_SINK_WAIT_CAP); + timer_val_msecs); } break; case SNK_NEGOTIATE_CAPABILITIES: @@ -4464,7 +4491,10 @@ static void run_state_machine(struct tcpm_port *port) tcpm_set_state(port, ACC_UNATTACHED, 0); break; case AUDIO_ACC_DEBOUNCE: - tcpm_set_state(port, ACC_UNATTACHED, PD_T_CC_DEBOUNCE); + timer_val_msecs = PD_T_CC_DEBOUNCE; + trace_android_vh_typec_tcpm_get_timer(tcpm_states[AUDIO_ACC_DEBOUNCE], + CC_DEBOUNCE, &timer_val_msecs); + tcpm_set_state(port, ACC_UNATTACHED, timer_val_msecs); break; /* Hard_Reset states */ @@ -4659,7 +4689,10 @@ static void run_state_machine(struct tcpm_port *port) tcpm_set_state(port, ERROR_RECOVERY, 0); break; case FR_SWAP_SNK_SRC_TRANSITION_TO_OFF: - tcpm_set_state(port, ERROR_RECOVERY, PD_T_PS_SOURCE_OFF); + timer_val_msecs = PD_T_PS_SOURCE_OFF; + state_name = tcpm_states[FR_SWAP_SNK_SRC_TRANSITION_TO_OFF]; + trace_android_vh_typec_tcpm_get_timer(state_name, SOURCE_OFF, &timer_val_msecs); + tcpm_set_state(port, ERROR_RECOVERY, timer_val_msecs); break; case FR_SWAP_SNK_SRC_NEW_SINK_READY: if (port->vbus_source) @@ -4711,10 +4744,13 @@ static void run_state_machine(struct tcpm_port *port) PD_T_SRCSWAPSTDBY); break; case PR_SWAP_SRC_SNK_SOURCE_OFF: + timer_val_msecs = PD_T_CC_DEBOUNCE; + trace_android_vh_typec_tcpm_get_timer(tcpm_states[PR_SWAP_SRC_SNK_SOURCE_OFF], + CC_DEBOUNCE, &timer_val_msecs); tcpm_set_cc(port, TYPEC_CC_RD); /* allow CC debounce */ tcpm_set_state(port, PR_SWAP_SRC_SNK_SOURCE_OFF_CC_DEBOUNCED, - PD_T_CC_DEBOUNCE); + timer_val_msecs); break; case PR_SWAP_SRC_SNK_SOURCE_OFF_CC_DEBOUNCED: /* @@ -4741,6 +4777,9 @@ static void run_state_machine(struct tcpm_port *port) /* will be source, remove existing capabilities */ usb_power_delivery_unregister_capabilities(port->partner_source_caps); port->partner_source_caps = NULL; + timer_val_msecs = PD_T_PS_SOURCE_OFF; + trace_android_vh_typec_tcpm_get_timer(tcpm_states[PR_SWAP_SNK_SRC_SINK_OFF], + SOURCE_OFF, &timer_val_msecs); /* * Prevent vbus discharge circuit from turning on during PR_SWAP * as this is not a disconnect. @@ -4748,8 +4787,7 @@ static void run_state_machine(struct tcpm_port *port) tcpm_set_auto_vbus_discharge_threshold(port, TYPEC_PWR_MODE_USB, port->pps_data.active, 0); tcpm_set_charge(port, false); - tcpm_set_state(port, hard_reset_state(port), - PD_T_PS_SOURCE_OFF); + tcpm_set_state(port, hard_reset_state(port), timer_val_msecs); break; case PR_SWAP_SNK_SRC_SOURCE_ON: tcpm_enable_auto_vbus_discharge(port, true); @@ -4879,9 +4917,12 @@ static void run_state_machine(struct tcpm_port *port) PD_T_ERROR_RECOVERY); break; case PORT_RESET_WAIT_OFF: + timer_val_msecs = PD_T_PS_SOURCE_OFF; + trace_android_vh_typec_tcpm_get_timer(tcpm_states[PORT_RESET_WAIT_OFF], + SOURCE_OFF, &timer_val_msecs); tcpm_set_state(port, tcpm_default_state(port), - port->vbus_present ? PD_T_PS_SOURCE_OFF : 0); + port->vbus_present ? timer_val_msecs : 0); break; /* AMS intermediate state */ @@ -5346,6 +5387,8 @@ static void _tcpm_pd_vbus_off(struct tcpm_port *port) static void _tcpm_pd_vbus_vsafe0v(struct tcpm_port *port) { + unsigned int timer_val_msecs; + tcpm_log_force(port, "VBUS VSAFE0V"); port->vbus_vsafe0v = true; switch (port->state) { @@ -5357,9 +5400,12 @@ static void _tcpm_pd_vbus_vsafe0v(struct tcpm_port *port) tcpm_set_state(port, SRC_HARD_RESET_VBUS_ON, PD_T_SRC_RECOVER); break; case SRC_ATTACH_WAIT: + timer_val_msecs = PD_T_CC_DEBOUNCE; + trace_android_vh_typec_tcpm_get_timer(tcpm_states[SRC_ATTACH_WAIT], + CC_DEBOUNCE, &timer_val_msecs); if (tcpm_port_is_source(port)) tcpm_set_state(port, tcpm_try_snk(port) ? SNK_TRY : SRC_ATTACHED, - PD_T_CC_DEBOUNCE); + timer_val_msecs); break; case SRC_STARTUP: case SRC_SEND_CAPABILITIES: @@ -5445,9 +5491,38 @@ static void tcpm_pd_event_handler(struct kthread_work *work) } if (events & TCPM_CC_EVENT) { enum typec_cc_status cc1, cc2; + bool modified = false; if (port->tcpc->get_cc(port->tcpc, &cc1, &cc2) == 0) _tcpm_cc_change(port, cc1, cc2); + + trace_android_vh_typec_tcpm_modify_src_caps(&port->nr_src_pdo, + &port->src_pdo, &modified); + if (modified) { + int ret; + + switch (port->state) { + case SRC_UNATTACHED: + case SRC_ATTACH_WAIT: + case SRC_TRYWAIT: + tcpm_set_cc(port, tcpm_rp_cc(port)); + break; + case SRC_SEND_CAPABILITIES: + case SRC_SEND_CAPABILITIES_TIMEOUT: + case SRC_NEGOTIATE_CAPABILITIES: + case SRC_READY: + case SRC_WAIT_NEW_CAPABILITIES: + port->caps_count = 0; + port->upcoming_state = SRC_SEND_CAPABILITIES; + ret = tcpm_ams_start(port, POWER_NEGOTIATION); + if (ret == -EAGAIN) + port->upcoming_state = INVALID_STATE; + break; + default: + break; + } + } + } if (events & TCPM_FRS_EVENT) { if (port->state == SNK_READY) { diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c index 8cbbb002fefe..086b50968983 100644 --- a/drivers/usb/typec/ucsi/ucsi.c +++ b/drivers/usb/typec/ucsi/ucsi.c @@ -1039,9 +1039,8 @@ static struct fwnode_handle *ucsi_find_fwnode(struct ucsi_connector *con) return NULL; } -static int ucsi_register_port(struct ucsi *ucsi, int index) +static int ucsi_register_port(struct ucsi *ucsi, struct ucsi_connector *con) { - struct ucsi_connector *con = &ucsi->connector[index]; struct typec_capability *cap = &con->typec_cap; enum typec_accessory *accessory = cap->accessory; enum usb_role u_role = USB_ROLE_NONE; @@ -1062,7 +1061,6 @@ static int ucsi_register_port(struct ucsi *ucsi, int index) init_completion(&con->complete); mutex_init(&con->lock); INIT_LIST_HEAD(&con->partner_tasks); - con->num = index + 1; con->ucsi = ucsi; cap->fwnode = ucsi_find_fwnode(con); @@ -1204,7 +1202,7 @@ out_unlock: */ static int ucsi_init(struct ucsi *ucsi) { - struct ucsi_connector *con; + struct ucsi_connector *con, *connector; u64 command, ntfy; int ret; int i; @@ -1235,16 +1233,16 @@ static int ucsi_init(struct ucsi *ucsi) } /* Allocate the connectors. Released in ucsi_unregister() */ - ucsi->connector = kcalloc(ucsi->cap.num_connectors + 1, - sizeof(*ucsi->connector), GFP_KERNEL); - if (!ucsi->connector) { + connector = kcalloc(ucsi->cap.num_connectors + 1, sizeof(*connector), GFP_KERNEL); + if (!connector) { ret = -ENOMEM; goto err_reset; } /* Register all connectors */ for (i = 0; i < ucsi->cap.num_connectors; i++) { - ret = ucsi_register_port(ucsi, i); + connector[i].num = i + 1; + ret = ucsi_register_port(ucsi, &connector[i]); if (ret) goto err_unregister; } @@ -1256,11 +1254,12 @@ static int ucsi_init(struct ucsi *ucsi) if (ret < 0) goto err_unregister; + ucsi->connector = connector; ucsi->ntfy = ntfy; return 0; err_unregister: - for (con = ucsi->connector; con->port; con++) { + for (con = connector; con->port; con++) { ucsi_unregister_partner(con); ucsi_unregister_altmodes(con, UCSI_RECIPIENT_CON); ucsi_unregister_port_psy(con); @@ -1269,10 +1268,7 @@ err_unregister: typec_unregister_port(con->port); con->port = NULL; } - - kfree(ucsi->connector); - ucsi->connector = NULL; - + kfree(connector); err_reset: memset(&ucsi->cap, 0, sizeof(ucsi->cap)); ucsi_reset_ppm(ucsi); diff --git a/drivers/video/fbdev/au1200fb.c b/drivers/video/fbdev/au1200fb.c index 81c315454428..b6b22fa4a8a0 100644 --- a/drivers/video/fbdev/au1200fb.c +++ b/drivers/video/fbdev/au1200fb.c @@ -1040,6 +1040,9 @@ static int au1200fb_fb_check_var(struct fb_var_screeninfo *var, u32 pixclock; int screen_size, plane; + if (!var->pixclock) + return -EINVAL; + plane = fbdev->plane; /* Make sure that the mode respect all LCD controller and diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/geode/lxfb_core.c index 9d26592dbfce..41fda498406c 100644 --- a/drivers/video/fbdev/geode/lxfb_core.c +++ b/drivers/video/fbdev/geode/lxfb_core.c @@ -235,6 +235,9 @@ static void get_modedb(struct fb_videomode **modedb, unsigned int *size) static int lxfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) { + if (!var->pixclock) + return -EINVAL; + if (var->xres > 1920 || var->yres > 1440) return -EINVAL; diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c index d4a2891a9a7a..a93dd531d00d 100644 --- a/drivers/video/fbdev/intelfb/intelfbdrv.c +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c @@ -1219,6 +1219,9 @@ static int intelfb_check_var(struct fb_var_screeninfo *var, dinfo = GET_DINFO(info); + if (!var->pixclock) + return -EINVAL; + /* update the pitch */ if (intelfbhw_validate_mode(dinfo, var) != 0) return -EINVAL; diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c index a6c3bc222246..1b8904824ad8 100644 --- a/drivers/video/fbdev/nvidia/nvidia.c +++ b/drivers/video/fbdev/nvidia/nvidia.c @@ -764,6 +764,8 @@ static int nvidiafb_check_var(struct fb_var_screeninfo *var, int pitch, err = 0; NVTRACE_ENTER(); + if (!var->pixclock) + return -EINVAL; var->transp.offset = 0; var->transp.length = 0; diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c index 251dbd282f5e..84d5daef9766 100644 --- a/drivers/video/fbdev/tgafb.c +++ b/drivers/video/fbdev/tgafb.c @@ -173,6 +173,9 @@ tgafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) { struct tga_par *par = (struct tga_par *)info->par; + if (!var->pixclock) + return -EINVAL; + if (par->tga_type == TGA_TYPE_8PLANE) { if (var->bits_per_pixel != 8) return -EINVAL; diff --git a/drivers/virt/gunyah/Makefile b/drivers/virt/gunyah/Makefile index 207e278fb38f..e7d1507ce3f3 100644 --- a/drivers/virt/gunyah/Makefile +++ b/drivers/virt/gunyah/Makefile @@ -15,7 +15,6 @@ gunyah_loader-$(CONFIG_GH_PROXY_SCHED) += gh_proxy_sched.o CFLAGS_gh_secure_vm_virtio_backend.o = -DDYNAMIC_DEBUG_MODULE obj-$(CONFIG_GH_PANIC_NOTIFIER) += gh_panic_notifier.o -obj-$(CONFIG_GUNYAH) += gunyah.o obj-$(CONFIG_GUNYAH_PLATFORM_HOOKS) += gunyah_platform_hooks.o gunyah_rsc_mgr-y += rsc_mgr.o rsc_mgr_rpc.o vm_mgr.o vm_mgr_mm.o diff --git a/drivers/virt/gunyah/gunyah.c b/drivers/virt/gunyah/gunyah.c deleted file mode 100644 index 4b7e6f3edaff..000000000000 --- a/drivers/virt/gunyah/gunyah.c +++ /dev/null @@ -1,57 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. - */ - -#define pr_fmt(fmt) "gunyah: " fmt - -#include -#include -#include -#include - -static struct gh_hypercall_hyp_identify_resp gh_api; - -u16 gh_api_version(void) -{ - return FIELD_GET(GH_API_INFO_API_VERSION_MASK, gh_api.api_info); -} -EXPORT_SYMBOL_GPL(gh_api_version); - -bool gh_api_has_feature(enum gh_api_feature feature) -{ - switch (feature) { - case GH_FEATURE_DOORBELL: - case GH_FEATURE_MSGQUEUE: - case GH_FEATURE_VCPU: - case GH_FEATURE_MEMEXTENT: - return !!(gh_api.flags[0] & BIT_ULL(feature)); - default: - return false; - } -} -EXPORT_SYMBOL_GPL(gh_api_has_feature); - -static int __init gh_init(void) -{ - if (!arch_is_gh_guest()) - return -ENODEV; - - gh_hypercall_hyp_identify(&gh_api); - - pr_info("Running under Gunyah hypervisor %llx/v%u\n", - FIELD_GET(GH_API_INFO_VARIANT_MASK, gh_api.api_info), - gh_api_version()); - - /* We might move this out to individual drivers if there's ever an API version bump */ - if (gh_api_version() != GH_API_V1) { - pr_info("Unsupported Gunyah version: %u\n", gh_api_version()); - return -ENODEV; - } - - return 0; -} -arch_initcall(gh_init); - -MODULE_LICENSE("GPL"); -MODULE_DESCRIPTION("Gunyah Hypervisor Driver"); diff --git a/drivers/virt/gunyah/gunyah_vcpu.c b/drivers/virt/gunyah/gunyah_vcpu.c index 870e471a11df..f8925b77851a 100644 --- a/drivers/virt/gunyah/gunyah_vcpu.c +++ b/drivers/virt/gunyah/gunyah_vcpu.c @@ -370,9 +370,6 @@ static long gh_vcpu_bind(struct gh_vm_function_instance *f) int fd; long r; - if (!gh_api_has_feature(GH_FEATURE_VCPU)) - return -EOPNOTSUPP; - if (f->arg_size != sizeof(*arg)) return -EINVAL; diff --git a/drivers/virt/gunyah/rsc_mgr.c b/drivers/virt/gunyah/rsc_mgr.c index cddf249faf79..ae84af21bc3c 100644 --- a/drivers/virt/gunyah/rsc_mgr.c +++ b/drivers/virt/gunyah/rsc_mgr.c @@ -798,6 +798,28 @@ static int gh_msgq_platform_probe_direction(struct platform_device *pdev, bool t return 0; } +static int gh_identify(void) +{ + struct gh_hypercall_hyp_identify_resp gh_api; + + if (!arch_is_gh_guest()) + return -ENODEV; + + gh_hypercall_hyp_identify(&gh_api); + + pr_info("Running under Gunyah hypervisor %llx/v%u\n", + FIELD_GET(GH_API_INFO_VARIANT_MASK, gh_api.api_info), + gh_api_version(&gh_api)); + + /* We might move this out to individual drivers if there's ever an API version bump */ + if (gh_api_version(&gh_api) != GH_API_V1) { + pr_info("Unsupported Gunyah version: %u\n", gh_api_version(&gh_api)); + return -ENODEV; + } + + return 0; +} + static int gh_rm_drv_probe(struct platform_device *pdev) { struct irq_domain *parent_irq_domain; @@ -806,6 +828,10 @@ static int gh_rm_drv_probe(struct platform_device *pdev) struct gh_rm *rm; int ret; + ret = gh_identify(); + if (ret) + return ret; + rm = devm_kzalloc(&pdev->dev, sizeof(*rm), GFP_KERNEL); if (!rm) return -ENOMEM; diff --git a/drivers/virt/gunyah/vm_mgr.c b/drivers/virt/gunyah/vm_mgr.c index f4c14872aa4d..a6f2d5ee68e2 100644 --- a/drivers/virt/gunyah/vm_mgr.c +++ b/drivers/virt/gunyah/vm_mgr.c @@ -684,9 +684,6 @@ static long gh_vm_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) case GH_VM_SET_USER_MEM_REGION: { struct gh_userspace_memory_region region; - if (!gh_api_has_feature(GH_FEATURE_MEMEXTENT)) - return -EOPNOTSUPP; - if (copy_from_user(®ion, argp, sizeof(region))) return -EFAULT; diff --git a/fs/btrfs/block-group.c b/fs/btrfs/block-group.c index 4b69945755e4..f33ddd5922b8 100644 --- a/fs/btrfs/block-group.c +++ b/fs/btrfs/block-group.c @@ -3259,13 +3259,15 @@ int btrfs_update_block_group(struct btrfs_trans_handle *trans, spin_unlock(&info->delalloc_root_lock); while (total) { - bool reclaim; + struct btrfs_space_info *space_info; + bool reclaim = false; cache = btrfs_lookup_block_group(info, bytenr); if (!cache) { ret = -ENOENT; break; } + space_info = cache->space_info; factor = btrfs_bg_type_to_factor(cache->flags); /* @@ -3280,7 +3282,7 @@ int btrfs_update_block_group(struct btrfs_trans_handle *trans, byte_in_group = bytenr - cache->start; WARN_ON(byte_in_group > cache->length); - spin_lock(&cache->space_info->lock); + spin_lock(&space_info->lock); spin_lock(&cache->lock); if (btrfs_test_opt(info, SPACE_CACHE) && @@ -3293,23 +3295,23 @@ int btrfs_update_block_group(struct btrfs_trans_handle *trans, old_val += num_bytes; cache->used = old_val; cache->reserved -= num_bytes; - cache->space_info->bytes_reserved -= num_bytes; - cache->space_info->bytes_used += num_bytes; - cache->space_info->disk_used += num_bytes * factor; + space_info->bytes_reserved -= num_bytes; + space_info->bytes_used += num_bytes; + space_info->disk_used += num_bytes * factor; spin_unlock(&cache->lock); - spin_unlock(&cache->space_info->lock); + spin_unlock(&space_info->lock); } else { old_val -= num_bytes; cache->used = old_val; cache->pinned += num_bytes; - btrfs_space_info_update_bytes_pinned(info, - cache->space_info, num_bytes); - cache->space_info->bytes_used -= num_bytes; - cache->space_info->disk_used -= num_bytes * factor; + btrfs_space_info_update_bytes_pinned(info, space_info, + num_bytes); + space_info->bytes_used -= num_bytes; + space_info->disk_used -= num_bytes * factor; reclaim = should_reclaim_block_group(cache, num_bytes); spin_unlock(&cache->lock); - spin_unlock(&cache->space_info->lock); + spin_unlock(&space_info->lock); set_extent_dirty(&trans->transaction->pinned_extents, bytenr, bytenr + num_bytes - 1, diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index a3febabacec0..3bcef0c4d6fc 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h @@ -590,11 +590,8 @@ enum { /* Indicate we have to finish a zone to do next allocation. */ BTRFS_FS_NEED_ZONE_FINISH, - /* - * Indicate metadata over-commit is disabled. This is set when active - * zone tracking is needed. - */ - BTRFS_FS_NO_OVERCOMMIT, + /* This is set when active zone tracking is needed. */ + BTRFS_FS_ACTIVE_ZONE_TRACKING, #if BITS_PER_LONG == 32 /* Indicate if we have error/warn message printed on 32bit systems */ diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c index f4023651dd68..6a8f2bd350f4 100644 --- a/fs/btrfs/free-space-cache.c +++ b/fs/btrfs/free-space-cache.c @@ -2684,8 +2684,13 @@ static int __btrfs_add_free_space_zoned(struct btrfs_block_group *block_group, bg_reclaim_threshold = READ_ONCE(sinfo->bg_reclaim_threshold); spin_lock(&ctl->tree_lock); + /* Count initial region as zone_unusable until it gets activated. */ if (!used) to_free = size; + else if (initial && + test_bit(BTRFS_FS_ACTIVE_ZONE_TRACKING, &block_group->fs_info->flags) && + (block_group->flags & (BTRFS_BLOCK_GROUP_METADATA | BTRFS_BLOCK_GROUP_SYSTEM))) + to_free = 0; else if (initial) to_free = block_group->zone_capacity; else if (offset >= block_group->alloc_offset) @@ -2713,7 +2718,8 @@ static int __btrfs_add_free_space_zoned(struct btrfs_block_group *block_group, reclaimable_unusable = block_group->zone_unusable - (block_group->length - block_group->zone_capacity); /* All the region is now unusable. Mark it as unused and reclaim */ - if (block_group->zone_unusable == block_group->length) { + if (block_group->zone_unusable == block_group->length && + block_group->alloc_offset) { btrfs_mark_bg_unused(block_group); } else if (bg_reclaim_threshold && reclaimable_unusable >= diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index c05f16a35bca..fe2fb81da46b 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -4621,7 +4621,9 @@ static long btrfs_ioctl_qgroup_assign(struct file *file, void __user *arg) } /* update qgroup status and info */ + mutex_lock(&fs_info->qgroup_ioctl_lock); err = btrfs_run_qgroups(trans); + mutex_unlock(&fs_info->qgroup_ioctl_lock); if (err < 0) btrfs_handle_fs_error(fs_info, err, "failed to update qgroup status and info"); diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index 5ac65384c947..f8b054898885 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c @@ -2812,13 +2812,22 @@ cleanup: } /* - * called from commit_transaction. Writes all changed qgroups to disk. + * Writes all changed qgroups to disk. + * Called by the transaction commit path and the qgroup assign ioctl. */ int btrfs_run_qgroups(struct btrfs_trans_handle *trans) { struct btrfs_fs_info *fs_info = trans->fs_info; int ret = 0; + /* + * In case we are called from the qgroup assign ioctl, assert that we + * are holding the qgroup_ioctl_lock, otherwise we can race with a quota + * disable operation (ioctl) and access a freed quota root. + */ + if (trans->transaction->state != TRANS_STATE_COMMIT_DOING) + lockdep_assert_held(&fs_info->qgroup_ioctl_lock); + if (!fs_info->quota_root) return ret; diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c index 65c010159fb5..c7642c00a65d 100644 --- a/fs/btrfs/space-info.c +++ b/fs/btrfs/space-info.c @@ -404,7 +404,7 @@ int btrfs_can_overcommit(struct btrfs_fs_info *fs_info, return 0; used = btrfs_space_info_used(space_info, true); - if (test_bit(BTRFS_FS_NO_OVERCOMMIT, &fs_info->flags) && + if (test_bit(BTRFS_FS_ACTIVE_ZONE_TRACKING, &fs_info->flags) && (space_info->flags & BTRFS_BLOCK_GROUP_METADATA)) avail = 0; else diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index d1f1da6820fb..682b463a7633 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c @@ -2009,7 +2009,20 @@ static void cleanup_transaction(struct btrfs_trans_handle *trans, int err) if (current->journal_info == trans) current->journal_info = NULL; - btrfs_scrub_cancel(fs_info); + + /* + * If relocation is running, we can't cancel scrub because that will + * result in a deadlock. Before relocating a block group, relocation + * pauses scrub, then starts and commits a transaction before unpausing + * scrub. If the transaction commit is being done by the relocation + * task or triggered by another task and the relocation task is waiting + * for the commit, and we end up here due to an error in the commit + * path, then calling btrfs_scrub_cancel() will deadlock, as we are + * asking for scrub to stop while having it asked to be paused higher + * above in relocation code. + */ + if (!test_bit(BTRFS_FS_RELOC_RUNNING, &fs_info->flags)) + btrfs_scrub_cancel(fs_info); kmem_cache_free(btrfs_trans_handle_cachep, trans); } diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index f02b8cbd6ec4..67b2aa552d22 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -1379,8 +1379,17 @@ struct btrfs_device *btrfs_scan_one_device(const char *path, fmode_t flags, * So, we need to add a special mount option to scan for * later supers, using BTRFS_SUPER_MIRROR_MAX instead */ - flags |= FMODE_EXCL; + /* + * Avoid using flag |= FMODE_EXCL here, as the systemd-udev may + * initiate the device scan which may race with the user's mount + * or mkfs command, resulting in failure. + * Since the device scan is solely for reading purposes, there is + * no need for FMODE_EXCL. Additionally, the devices are read again + * during the mount process. It is ok to get some inconsistent + * values temporarily, as the device paths of the fsid are the only + * required information for assembling the volume. + */ bdev = blkdev_get_by_path(path, flags, holder); if (IS_ERR(bdev)) return ERR_CAST(bdev); @@ -3286,8 +3295,15 @@ int btrfs_relocate_chunk(struct btrfs_fs_info *fs_info, u64 chunk_offset) btrfs_scrub_pause(fs_info); ret = btrfs_relocate_block_group(fs_info, chunk_offset); btrfs_scrub_continue(fs_info); - if (ret) + if (ret) { + /* + * If we had a transaction abort, stop all running scrubs. + * See transaction.c:cleanup_transaction() why we do it here. + */ + if (BTRFS_FS_ERROR(fs_info)) + btrfs_scrub_cancel(fs_info); return ret; + } block_group = btrfs_lookup_block_group(fs_info, chunk_offset); if (!block_group) diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c index 1b72004136ef..e97c5a1ac95d 100644 --- a/fs/btrfs/zoned.c +++ b/fs/btrfs/zoned.c @@ -538,8 +538,7 @@ int btrfs_get_dev_zone_info(struct btrfs_device *device, bool populate_cache) } atomic_set(&zone_info->active_zones_left, max_active_zones - nactive); - /* Overcommit does not work well with active zone tacking. */ - set_bit(BTRFS_FS_NO_OVERCOMMIT, &fs_info->flags); + set_bit(BTRFS_FS_ACTIVE_ZONE_TRACKING, &fs_info->flags); } /* Validate superblock log */ @@ -1576,9 +1575,19 @@ void btrfs_calc_zone_unusable(struct btrfs_block_group *cache) return; WARN_ON(cache->bytes_super != 0); - unusable = (cache->alloc_offset - cache->used) + - (cache->length - cache->zone_capacity); - free = cache->zone_capacity - cache->alloc_offset; + + /* Check for block groups never get activated */ + if (test_bit(BTRFS_FS_ACTIVE_ZONE_TRACKING, &cache->fs_info->flags) && + cache->flags & (BTRFS_BLOCK_GROUP_METADATA | BTRFS_BLOCK_GROUP_SYSTEM) && + !test_bit(BLOCK_GROUP_FLAG_ZONE_IS_ACTIVE, &cache->runtime_flags) && + cache->alloc_offset == 0) { + unusable = cache->length; + free = 0; + } else { + unusable = (cache->alloc_offset - cache->used) + + (cache->length - cache->zone_capacity); + free = cache->zone_capacity - cache->alloc_offset; + } /* We only need ->free_space in ALLOC_SEQ block groups */ cache->cached = BTRFS_CACHE_FINISHED; @@ -1915,7 +1924,11 @@ bool btrfs_zone_activate(struct btrfs_block_group *block_group) /* Successfully activated all the zones */ set_bit(BLOCK_GROUP_FLAG_ZONE_IS_ACTIVE, &block_group->runtime_flags); - space_info->active_total_bytes += block_group->length; + WARN_ON(block_group->alloc_offset != 0); + if (block_group->zone_unusable == block_group->length) { + block_group->zone_unusable = block_group->length - block_group->zone_capacity; + space_info->bytes_zone_unusable -= block_group->zone_capacity; + } spin_unlock(&block_group->lock); btrfs_try_granting_tickets(fs_info, space_info); spin_unlock(&space_info->lock); @@ -2278,7 +2291,7 @@ int btrfs_zone_finish_one_bg(struct btrfs_fs_info *fs_info) u64 avail; spin_lock(&block_group->lock); - if (block_group->reserved || + if (block_group->reserved || block_group->alloc_offset == 0 || (block_group->flags & BTRFS_BLOCK_GROUP_SYSTEM)) { spin_unlock(&block_group->lock); continue; diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h index 388b745a978e..b6c38896fb2d 100644 --- a/fs/cifs/cifsfs.h +++ b/fs/cifs/cifsfs.h @@ -118,7 +118,10 @@ extern const struct dentry_operations cifs_ci_dentry_ops; #ifdef CONFIG_CIFS_DFS_UPCALL extern struct vfsmount *cifs_dfs_d_automount(struct path *path); #else -#define cifs_dfs_d_automount NULL +static inline struct vfsmount *cifs_dfs_d_automount(struct path *path) +{ + return ERR_PTR(-EREMOTE); +} #endif /* Functions related to symlinks */ diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h index bc4475f6c082..98513f5af3f9 100644 --- a/fs/cifs/cifsproto.h +++ b/fs/cifs/cifsproto.h @@ -691,5 +691,6 @@ static inline int cifs_create_options(struct cifs_sb_info *cifs_sb, int options) struct super_block *cifs_get_tcon_super(struct cifs_tcon *tcon); void cifs_put_tcon_super(struct super_block *sb); +int cifs_wait_for_server_reconnect(struct TCP_Server_Info *server, bool retry); #endif /* _CIFSPROTO_H */ diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c index 6c6a7fc47f3e..c90d4ec9292c 100644 --- a/fs/cifs/cifssmb.c +++ b/fs/cifs/cifssmb.c @@ -70,7 +70,6 @@ cifs_reconnect_tcon(struct cifs_tcon *tcon, int smb_command) struct cifs_ses *ses; struct TCP_Server_Info *server; struct nls_table *nls_codepage; - int retries; /* * SMBs NegProt, SessSetup, uLogoff do not have tcon yet so check for @@ -98,45 +97,9 @@ cifs_reconnect_tcon(struct cifs_tcon *tcon, int smb_command) } spin_unlock(&tcon->tc_lock); - retries = server->nr_targets; - - /* - * Give demultiplex thread up to 10 seconds to each target available for - * reconnect -- should be greater than cifs socket timeout which is 7 - * seconds. - */ - while (server->tcpStatus == CifsNeedReconnect) { - rc = wait_event_interruptible_timeout(server->response_q, - (server->tcpStatus != CifsNeedReconnect), - 10 * HZ); - if (rc < 0) { - cifs_dbg(FYI, "%s: aborting reconnect due to a received signal by the process\n", - __func__); - return -ERESTARTSYS; - } - - /* are we still trying to reconnect? */ - spin_lock(&server->srv_lock); - if (server->tcpStatus != CifsNeedReconnect) { - spin_unlock(&server->srv_lock); - break; - } - spin_unlock(&server->srv_lock); - - if (retries && --retries) - continue; - - /* - * on "soft" mounts we wait once. Hard mounts keep - * retrying until process is killed or server comes - * back on-line - */ - if (!tcon->retry) { - cifs_dbg(FYI, "gave up waiting on reconnect in smb_init\n"); - return -EHOSTDOWN; - } - retries = server->nr_targets; - } + rc = cifs_wait_for_server_reconnect(server, tcon->retry); + if (rc) + return rc; spin_lock(&ses->chan_lock); if (!cifs_chan_needs_reconnect(ses, server) && !tcon->need_reconnect) { @@ -4356,8 +4319,13 @@ CIFSGetDFSRefer(const unsigned int xid, struct cifs_ses *ses, return -ENODEV; getDFSRetry: - rc = smb_init(SMB_COM_TRANSACTION2, 15, ses->tcon_ipc, (void **) &pSMB, - (void **) &pSMBr); + /* + * Use smb_init_no_reconnect() instead of smb_init() as + * CIFSGetDFSRefer() may be called from cifs_reconnect_tcon() and thus + * causing an infinite recursion. + */ + rc = smb_init_no_reconnect(SMB_COM_TRANSACTION2, 15, ses->tcon_ipc, + (void **)&pSMB, (void **)&pSMBr); if (rc) return rc; diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 7aecb1646b6f..077c88c49dfd 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -261,31 +261,42 @@ cifs_mark_tcp_ses_conns_for_reconnect(struct TCP_Server_Info *server, cifs_chan_update_iface(ses, server); spin_lock(&ses->chan_lock); - if (!mark_smb_session && cifs_chan_needs_reconnect(ses, server)) - goto next_session; + if (!mark_smb_session && cifs_chan_needs_reconnect(ses, server)) { + spin_unlock(&ses->chan_lock); + continue; + } if (mark_smb_session) CIFS_SET_ALL_CHANS_NEED_RECONNECT(ses); else cifs_chan_set_need_reconnect(ses, server); - /* If all channels need reconnect, then tcon needs reconnect */ - if (!mark_smb_session && !CIFS_ALL_CHANS_NEED_RECONNECT(ses)) - goto next_session; + cifs_dbg(FYI, "%s: channel connect bitmap: 0x%lx\n", + __func__, ses->chans_need_reconnect); + /* If all channels need reconnect, then tcon needs reconnect */ + if (!mark_smb_session && !CIFS_ALL_CHANS_NEED_RECONNECT(ses)) { + spin_unlock(&ses->chan_lock); + continue; + } + spin_unlock(&ses->chan_lock); + + spin_lock(&ses->ses_lock); ses->ses_status = SES_NEED_RECON; + spin_unlock(&ses->ses_lock); list_for_each_entry(tcon, &ses->tcon_list, tcon_list) { tcon->need_reconnect = true; + spin_lock(&tcon->tc_lock); tcon->status = TID_NEED_RECON; + spin_unlock(&tcon->tc_lock); } if (ses->tcon_ipc) { ses->tcon_ipc->need_reconnect = true; + spin_lock(&ses->tcon_ipc->tc_lock); ses->tcon_ipc->status = TID_NEED_RECON; + spin_unlock(&ses->tcon_ipc->tc_lock); } - -next_session: - spin_unlock(&ses->chan_lock); } spin_unlock(&cifs_tcp_ses_lock); } @@ -4050,11 +4061,19 @@ cifs_negotiate_protocol(const unsigned int xid, struct cifs_ses *ses, /* only send once per connect */ spin_lock(&server->srv_lock); - if (!server->ops->need_neg(server) || + if (server->tcpStatus != CifsGood && + server->tcpStatus != CifsNew && server->tcpStatus != CifsNeedNegotiate) { + spin_unlock(&server->srv_lock); + return -EHOSTDOWN; + } + + if (!server->ops->need_neg(server) && + server->tcpStatus == CifsGood) { spin_unlock(&server->srv_lock); return 0; } + server->tcpStatus = CifsInNegotiate; spin_unlock(&server->srv_lock); @@ -4082,39 +4101,48 @@ cifs_setup_session(const unsigned int xid, struct cifs_ses *ses, struct nls_table *nls_info) { int rc = -ENOSYS; - struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&server->dstaddr; - struct sockaddr_in *addr = (struct sockaddr_in *)&server->dstaddr; + struct TCP_Server_Info *pserver = CIFS_SERVER_IS_CHAN(server) ? server->primary_server : server; + struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&pserver->dstaddr; + struct sockaddr_in *addr = (struct sockaddr_in *)&pserver->dstaddr; bool is_binding = false; spin_lock(&ses->ses_lock); - if (server->dstaddr.ss_family == AF_INET6) - scnprintf(ses->ip_addr, sizeof(ses->ip_addr), "%pI6", &addr6->sin6_addr); - else - scnprintf(ses->ip_addr, sizeof(ses->ip_addr), "%pI4", &addr->sin_addr); + cifs_dbg(FYI, "%s: channel connect bitmap: 0x%lx\n", + __func__, ses->chans_need_reconnect); if (ses->ses_status != SES_GOOD && ses->ses_status != SES_NEW && ses->ses_status != SES_NEED_RECON) { spin_unlock(&ses->ses_lock); - return 0; + return -EHOSTDOWN; } /* only send once per connect */ spin_lock(&ses->chan_lock); - if (CIFS_ALL_CHANS_GOOD(ses) || - cifs_chan_in_reconnect(ses, server)) { + if (CIFS_ALL_CHANS_GOOD(ses)) { + if (ses->ses_status == SES_NEED_RECON) + ses->ses_status = SES_GOOD; spin_unlock(&ses->chan_lock); spin_unlock(&ses->ses_lock); return 0; } - is_binding = !CIFS_ALL_CHANS_NEED_RECONNECT(ses); + cifs_chan_set_in_reconnect(ses, server); + is_binding = !CIFS_ALL_CHANS_NEED_RECONNECT(ses); spin_unlock(&ses->chan_lock); if (!is_binding) ses->ses_status = SES_IN_SETUP; spin_unlock(&ses->ses_lock); + /* update ses ip_addr only for primary chan */ + if (server == pserver) { + if (server->dstaddr.ss_family == AF_INET6) + scnprintf(ses->ip_addr, sizeof(ses->ip_addr), "%pI6", &addr6->sin6_addr); + else + scnprintf(ses->ip_addr, sizeof(ses->ip_addr), "%pI4", &addr->sin_addr); + } + if (!is_binding) { ses->capabilities = server->capabilities; if (!linuxExtEnabled) diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c index 4e54736a0699..832856aef4b7 100644 --- a/fs/cifs/misc.c +++ b/fs/cifs/misc.c @@ -1382,3 +1382,47 @@ int cifs_inval_name_dfs_link_error(const unsigned int xid, return 0; } #endif + +int cifs_wait_for_server_reconnect(struct TCP_Server_Info *server, bool retry) +{ + int timeout = 10; + int rc; + + spin_lock(&server->srv_lock); + if (server->tcpStatus != CifsNeedReconnect) { + spin_unlock(&server->srv_lock); + return 0; + } + timeout *= server->nr_targets; + spin_unlock(&server->srv_lock); + + /* + * Give demultiplex thread up to 10 seconds to each target available for + * reconnect -- should be greater than cifs socket timeout which is 7 + * seconds. + * + * On "soft" mounts we wait once. Hard mounts keep retrying until + * process is killed or server comes back on-line. + */ + do { + rc = wait_event_interruptible_timeout(server->response_q, + (server->tcpStatus != CifsNeedReconnect), + timeout * HZ); + if (rc < 0) { + cifs_dbg(FYI, "%s: aborting reconnect due to received signal\n", + __func__); + return -ERESTARTSYS; + } + + /* are we still trying to reconnect? */ + spin_lock(&server->srv_lock); + if (server->tcpStatus != CifsNeedReconnect) { + spin_unlock(&server->srv_lock); + return 0; + } + spin_unlock(&server->srv_lock); + } while (retry); + + cifs_dbg(FYI, "%s: gave up waiting on reconnect\n", __func__); + return -EHOSTDOWN; +} diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c index 6e6e44d8b4c7..b37379b62cc7 100644 --- a/fs/cifs/smb2pdu.c +++ b/fs/cifs/smb2pdu.c @@ -139,72 +139,12 @@ out: return; } -static int wait_for_server_reconnect(struct TCP_Server_Info *server, - __le16 smb2_command, bool retry) -{ - int timeout = 10; - int rc; - - spin_lock(&server->srv_lock); - if (server->tcpStatus != CifsNeedReconnect) { - spin_unlock(&server->srv_lock); - return 0; - } - timeout *= server->nr_targets; - spin_unlock(&server->srv_lock); - - /* - * Return to caller for TREE_DISCONNECT and LOGOFF and CLOSE - * here since they are implicitly done when session drops. - */ - switch (smb2_command) { - /* - * BB Should we keep oplock break and add flush to exceptions? - */ - case SMB2_TREE_DISCONNECT: - case SMB2_CANCEL: - case SMB2_CLOSE: - case SMB2_OPLOCK_BREAK: - return -EAGAIN; - } - - /* - * Give demultiplex thread up to 10 seconds to each target available for - * reconnect -- should be greater than cifs socket timeout which is 7 - * seconds. - * - * On "soft" mounts we wait once. Hard mounts keep retrying until - * process is killed or server comes back on-line. - */ - do { - rc = wait_event_interruptible_timeout(server->response_q, - (server->tcpStatus != CifsNeedReconnect), - timeout * HZ); - if (rc < 0) { - cifs_dbg(FYI, "%s: aborting reconnect due to received signal\n", - __func__); - return -ERESTARTSYS; - } - - /* are we still trying to reconnect? */ - spin_lock(&server->srv_lock); - if (server->tcpStatus != CifsNeedReconnect) { - spin_unlock(&server->srv_lock); - return 0; - } - spin_unlock(&server->srv_lock); - } while (retry); - - cifs_dbg(FYI, "%s: gave up waiting on reconnect\n", __func__); - return -EHOSTDOWN; -} - static int smb2_reconnect(__le16 smb2_command, struct cifs_tcon *tcon, struct TCP_Server_Info *server) { int rc = 0; - struct nls_table *nls_codepage; + struct nls_table *nls_codepage = NULL; struct cifs_ses *ses; /* @@ -239,7 +179,28 @@ smb2_reconnect(__le16 smb2_command, struct cifs_tcon *tcon, (!tcon->ses->server) || !server) return -EIO; - rc = wait_for_server_reconnect(server, smb2_command, tcon->retry); + spin_lock(&server->srv_lock); + if (server->tcpStatus == CifsNeedReconnect) { + /* + * Return to caller for TREE_DISCONNECT and LOGOFF and CLOSE + * here since they are implicitly done when session drops. + */ + switch (smb2_command) { + /* + * BB Should we keep oplock break and add flush to exceptions? + */ + case SMB2_TREE_DISCONNECT: + case SMB2_CANCEL: + case SMB2_CLOSE: + case SMB2_OPLOCK_BREAK: + spin_unlock(&server->srv_lock); + return -EAGAIN; + } + } + spin_unlock(&server->srv_lock); + +again: + rc = cifs_wait_for_server_reconnect(server, tcon->retry); if (rc) return rc; @@ -255,8 +216,7 @@ smb2_reconnect(__le16 smb2_command, struct cifs_tcon *tcon, tcon->ses->chans_need_reconnect, tcon->need_reconnect); - nls_codepage = load_nls_default(); - + mutex_lock(&ses->session_mutex); /* * Recheck after acquire mutex. If another thread is negotiating * and the server never sends an answer the socket will be closed @@ -265,28 +225,38 @@ smb2_reconnect(__le16 smb2_command, struct cifs_tcon *tcon, spin_lock(&server->srv_lock); if (server->tcpStatus == CifsNeedReconnect) { spin_unlock(&server->srv_lock); + mutex_unlock(&ses->session_mutex); + + if (tcon->retry) + goto again; + rc = -EHOSTDOWN; goto out; } spin_unlock(&server->srv_lock); + nls_codepage = load_nls_default(); + /* * need to prevent multiple threads trying to simultaneously * reconnect the same SMB session */ + spin_lock(&ses->ses_lock); spin_lock(&ses->chan_lock); - if (!cifs_chan_needs_reconnect(ses, server)) { + if (!cifs_chan_needs_reconnect(ses, server) && + ses->ses_status == SES_GOOD) { spin_unlock(&ses->chan_lock); - + spin_unlock(&ses->ses_lock); /* this means that we only need to tree connect */ if (tcon->need_reconnect) goto skip_sess_setup; + mutex_unlock(&ses->session_mutex); goto out; } spin_unlock(&ses->chan_lock); + spin_unlock(&ses->ses_lock); - mutex_lock(&ses->session_mutex); rc = cifs_negotiate_protocol(0, ses, server); if (!rc) { rc = cifs_setup_session(0, ses, server, nls_codepage); @@ -302,10 +272,8 @@ smb2_reconnect(__le16 smb2_command, struct cifs_tcon *tcon, mutex_unlock(&ses->session_mutex); goto out; } - mutex_unlock(&ses->session_mutex); skip_sess_setup: - mutex_lock(&ses->session_mutex); if (!tcon->need_reconnect) { mutex_unlock(&ses->session_mutex); goto out; @@ -320,7 +288,7 @@ skip_sess_setup: cifs_dbg(FYI, "reconnect tcon rc = %d\n", rc); if (rc) { /* If sess reconnected but tcon didn't, something strange ... */ - pr_warn_once("reconnect tcon failed rc = %d\n", rc); + cifs_dbg(VFS, "reconnect tcon failed rc = %d\n", rc); goto out; } @@ -1292,9 +1260,9 @@ SMB2_sess_alloc_buffer(struct SMB2_sess_data *sess_data) if (rc) return rc; - spin_lock(&ses->chan_lock); - is_binding = !CIFS_ALL_CHANS_NEED_RECONNECT(ses); - spin_unlock(&ses->chan_lock); + spin_lock(&ses->ses_lock); + is_binding = (ses->ses_status == SES_GOOD); + spin_unlock(&ses->ses_lock); if (is_binding) { req->hdr.SessionId = cpu_to_le64(ses->Suid); @@ -1452,9 +1420,9 @@ SMB2_auth_kerberos(struct SMB2_sess_data *sess_data) goto out_put_spnego_key; } - spin_lock(&ses->chan_lock); - is_binding = !CIFS_ALL_CHANS_NEED_RECONNECT(ses); - spin_unlock(&ses->chan_lock); + spin_lock(&ses->ses_lock); + is_binding = (ses->ses_status == SES_GOOD); + spin_unlock(&ses->ses_lock); /* keep session key if binding */ if (!is_binding) { @@ -1578,9 +1546,9 @@ SMB2_sess_auth_rawntlmssp_negotiate(struct SMB2_sess_data *sess_data) cifs_dbg(FYI, "rawntlmssp session setup challenge phase\n"); - spin_lock(&ses->chan_lock); - is_binding = !CIFS_ALL_CHANS_NEED_RECONNECT(ses); - spin_unlock(&ses->chan_lock); + spin_lock(&ses->ses_lock); + is_binding = (ses->ses_status == SES_GOOD); + spin_unlock(&ses->ses_lock); /* keep existing ses id and flags if binding */ if (!is_binding) { @@ -1646,9 +1614,9 @@ SMB2_sess_auth_rawntlmssp_authenticate(struct SMB2_sess_data *sess_data) rsp = (struct smb2_sess_setup_rsp *)sess_data->iov[0].iov_base; - spin_lock(&ses->chan_lock); - is_binding = !CIFS_ALL_CHANS_NEED_RECONNECT(ses); - spin_unlock(&ses->chan_lock); + spin_lock(&ses->ses_lock); + is_binding = (ses->ses_status == SES_GOOD); + spin_unlock(&ses->ses_lock); /* keep existing ses id and flags if binding */ if (!is_binding) { diff --git a/fs/cifs/smb2transport.c b/fs/cifs/smb2transport.c index d827b7547ffa..790acf65a092 100644 --- a/fs/cifs/smb2transport.c +++ b/fs/cifs/smb2transport.c @@ -81,6 +81,7 @@ int smb2_get_sign_key(__u64 ses_id, struct TCP_Server_Info *server, u8 *key) struct cifs_ses *ses = NULL; int i; int rc = 0; + bool is_binding = false; spin_lock(&cifs_tcp_ses_lock); @@ -97,9 +98,12 @@ int smb2_get_sign_key(__u64 ses_id, struct TCP_Server_Info *server, u8 *key) goto out; found: + spin_lock(&ses->ses_lock); spin_lock(&ses->chan_lock); - if (cifs_chan_needs_reconnect(ses, server) && - !CIFS_ALL_CHANS_NEED_RECONNECT(ses)) { + + is_binding = (cifs_chan_needs_reconnect(ses, server) && + ses->ses_status == SES_GOOD); + if (is_binding) { /* * If we are in the process of binding a new channel * to an existing session, use the master connection @@ -107,6 +111,7 @@ found: */ memcpy(key, ses->smb3signingkey, SMB3_SIGN_KEY_SIZE); spin_unlock(&ses->chan_lock); + spin_unlock(&ses->ses_lock); goto out; } @@ -119,10 +124,12 @@ found: if (chan->server == server) { memcpy(key, chan->signkey, SMB3_SIGN_KEY_SIZE); spin_unlock(&ses->chan_lock); + spin_unlock(&ses->ses_lock); goto out; } } spin_unlock(&ses->chan_lock); + spin_unlock(&ses->ses_lock); cifs_dbg(VFS, "%s: Could not find channel signing key for session 0x%llx\n", @@ -392,11 +399,15 @@ generate_smb3signingkey(struct cifs_ses *ses, bool is_binding = false; int chan_index = 0; + spin_lock(&ses->ses_lock); spin_lock(&ses->chan_lock); - is_binding = !CIFS_ALL_CHANS_NEED_RECONNECT(ses); + is_binding = (cifs_chan_needs_reconnect(ses, server) && + ses->ses_status == SES_GOOD); + chan_index = cifs_ses_get_chan_index(ses, server); /* TODO: introduce ref counting for channels when the can be freed */ spin_unlock(&ses->chan_lock); + spin_unlock(&ses->ses_lock); /* * All channels use the same encryption/decryption keys but diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 6aa1bf075b17..c3d415db5855 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -257,7 +257,7 @@ retry: f2fs_put_dnode(&dn); trace_f2fs_replace_atomic_write_block(inode, F2FS_I(inode)->cow_inode, - index, *old_addr, new_addr, recover); + index, old_addr ? *old_addr : 0, new_addr, recover); return 0; } diff --git a/fs/fuse/backing.c b/fs/fuse/backing.c index e5289c0c00fd..63e41be780ff 100644 --- a/fs/fuse/backing.c +++ b/fs/fuse/backing.c @@ -1186,27 +1186,26 @@ int fuse_handle_backing(struct fuse_entry_bpf *feb, struct inode **backing_inode int fuse_handle_bpf_prog(struct fuse_entry_bpf *feb, struct inode *parent, struct bpf_prog **bpf) { - struct fuse_inode *pi; + struct bpf_prog *new_bpf; - // Parent isn't presented, but we want to keep - // Don't touch bpf program at all in this case + /* Parent isn't presented, but we want to keep + * Don't touch bpf program at all in this case + */ if (feb->out.bpf_action == FUSE_ACTION_KEEP && !parent) - goto out; - - if (*bpf) { - bpf_prog_put(*bpf); - *bpf = NULL; - } + return 0; switch (feb->out.bpf_action) { - case FUSE_ACTION_KEEP: - pi = get_fuse_inode(parent); - *bpf = pi->bpf; - if (*bpf) - bpf_prog_inc(*bpf); + case FUSE_ACTION_KEEP: { + struct fuse_inode *pi = get_fuse_inode(parent); + + new_bpf = pi->bpf; + if (new_bpf) + bpf_prog_inc(new_bpf); break; + } case FUSE_ACTION_REMOVE: + new_bpf = NULL; break; case FUSE_ACTION_REPLACE: { @@ -1219,7 +1218,7 @@ int fuse_handle_bpf_prog(struct fuse_entry_bpf *feb, struct inode *parent, if (IS_ERR(bpf_prog)) return PTR_ERR(bpf_prog); - *bpf = bpf_prog; + new_bpf = bpf_prog; break; } @@ -1227,7 +1226,13 @@ int fuse_handle_bpf_prog(struct fuse_entry_bpf *feb, struct inode *parent, return -EINVAL; } -out: + /* Cannot change existing program */ + if (*bpf) { + bpf_prog_put(new_bpf); + return new_bpf == *bpf ? 0 : -EINVAL; + } + + *bpf = new_bpf; return 0; } diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index 155e0732a46a..90c8fd9b805f 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -1932,7 +1932,7 @@ static ssize_t fuse_dev_do_write(struct fuse_dev *fud, err = copy_out_args(cs, req->args, nbytes); fuse_copy_finish(cs); - if (!err && req->in.h.opcode == FUSE_CANONICAL_PATH) { + if (!err && req->in.h.opcode == FUSE_CANONICAL_PATH && !oh.error) { char *path = (char *)req->args->out_args[0].value; path[req->args->out_args[0].size - 1] = 0; diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index 8c05913ff384..c83ae66facdb 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c @@ -409,7 +409,7 @@ static struct vfsmount *fuse_dentry_automount(struct path *path) * look up paths on its own. Instead, we handle the lookup as a special case * inside of the write request. */ -static void fuse_dentry_canonical_path(const struct path *path, +static int fuse_dentry_canonical_path(const struct path *path, struct path *canonical_path) { struct inode *inode = d_inode(path->dentry); @@ -428,12 +428,12 @@ static void fuse_dentry_canonical_path(const struct path *path, fuse_canonical_path_finalize, path, canonical_path); if (fer.ret) - return; + return PTR_ERR(fer.result); #endif path_name = (char *)get_zeroed_page(GFP_KERNEL); if (!path_name) - goto default_path; + return -ENOMEM; args.opcode = FUSE_CANONICAL_PATH; args.nodeid = get_node_id(inode); @@ -447,11 +447,14 @@ static void fuse_dentry_canonical_path(const struct path *path, err = fuse_simple_request(fm, &args); free_page((unsigned long)path_name); if (err > 0) - return; -default_path: + return 0; + if (err < 0) + return err; + canonical_path->dentry = path->dentry; canonical_path->mnt = path->mnt; path_get(canonical_path); + return 0; } const struct dentry_operations fuse_dentry_operations = { diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index 3e2131faa5ed..a659c89cc685 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h @@ -1917,6 +1917,16 @@ void __exit fuse_bpf_cleanup(void); ssize_t fuse_bpf_simple_request(struct fuse_mount *fm, struct fuse_bpf_args *args); +static inline int fuse_bpf_run(struct bpf_prog *prog, struct fuse_bpf_args *fba) +{ + int ret; + + migrate_disable(); + ret = bpf_prog_run(prog, fba); + migrate_enable(); + return ret; +} + /* * expression statement to wrap the backing filter logic * struct inode *inode: inode with bpf and backing inode @@ -1968,7 +1978,7 @@ ssize_t fuse_bpf_simple_request(struct fuse_mount *fm, struct fuse_bpf_args *arg fa.out_numargs = fa.in_numargs; \ \ ext_flags = fuse_inode->bpf ? \ - bpf_prog_run(fuse_inode->bpf, &fa) : \ + fuse_bpf_run(fuse_inode->bpf, &fa) : \ FUSE_BPF_BACKING; \ if (ext_flags < 0) { \ fer = (struct fuse_err_ret) { \ @@ -2023,7 +2033,7 @@ ssize_t fuse_bpf_simple_request(struct fuse_mount *fm, struct fuse_bpf_args *arg .size = fa.out_args[i].size, \ .value = fa.out_args[i].value, \ }; \ - ext_flags = bpf_prog_run(fuse_inode->bpf, &fa); \ + ext_flags = fuse_bpf_run(fuse_inode->bpf, &fa); \ if (ext_flags < 0) { \ fer = (struct fuse_err_ret) { \ ERR_PTR(ext_flags), \ diff --git a/fs/incfs/sysfs.c b/fs/incfs/sysfs.c index 5c7e0fd4496c..ba91c07d2887 100644 --- a/fs/incfs/sysfs.c +++ b/fs/incfs/sysfs.c @@ -34,12 +34,14 @@ DECLARE_FEATURE_FLAG(corefs); DECLARE_FEATURE_FLAG(zstd); DECLARE_FEATURE_FLAG(v2); DECLARE_FEATURE_FLAG(bugfix_throttling); +DECLARE_FEATURE_FLAG(bugfix_inode_eviction); static struct attribute *attributes[] = { &corefs_attr.attr, &zstd_attr.attr, &v2_attr.attr, &bugfix_throttling_attr.attr, + &bugfix_inode_eviction_attr.attr, NULL, }; diff --git a/fs/incfs/vfs.c b/fs/incfs/vfs.c index 36ae96b6db68..0c80779e99e9 100644 --- a/fs/incfs/vfs.c +++ b/fs/incfs/vfs.c @@ -1946,6 +1946,13 @@ void incfs_kill_sb(struct super_block *sb) pr_debug("incfs: unmount\n"); + /* + * We must kill the super before freeing mi, since killing the super + * triggers inode eviction, which triggers the final update of the + * backing file, which uses certain information for mi + */ + kill_anon_super(sb); + if (mi) { if (mi->mi_backing_dir_path.dentry) dinode = d_inode(mi->mi_backing_dir_path.dentry); @@ -1963,7 +1970,6 @@ void incfs_kill_sb(struct super_block *sb) incfs_free_mount_info(mi); sb->s_fs_info = NULL; } - kill_anon_super(sb); } static int show_options(struct seq_file *m, struct dentry *root) diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index d70da78e698d..70e76359909c 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -1980,8 +1980,7 @@ _nfs4_opendata_reclaim_to_nfs4_state(struct nfs4_opendata *data) if (!data->rpc_done) { if (data->rpc_status) return ERR_PTR(data->rpc_status); - /* cached opens have already been processed */ - goto update; + return nfs4_try_open_cached(data); } ret = nfs_refresh_inode(inode, &data->f_attr); @@ -1990,7 +1989,7 @@ _nfs4_opendata_reclaim_to_nfs4_state(struct nfs4_opendata *data) if (data->o_res.delegation_type != 0) nfs4_opendata_check_deleg(data, state); -update: + if (!update_open_stateid(state, &data->o_res.stateid, NULL, data->o_arg.fmode)) return ERR_PTR(-EAGAIN); diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c index 05299fb2430d..cc9bde854e5a 100644 --- a/fs/notify/inotify/inotify_user.c +++ b/fs/notify/inotify/inotify_user.c @@ -784,8 +784,11 @@ SYSCALL_DEFINE3(inotify_add_watch, int, fd, const char __user *, pathname, /* support stacked filesystems */ if (path.dentry && path.dentry->d_op) { if (path.dentry->d_op->d_canonical_path) { - path.dentry->d_op->d_canonical_path(&path, + ret = path.dentry->d_op->d_canonical_path(&path, &alteredpath); + if (ret) + goto path_put_and_out; + canonical_path = &alteredpath; path_put(&path); } @@ -797,6 +800,7 @@ SYSCALL_DEFINE3(inotify_add_watch, int, fd, const char __user *, pathname, /* create/update an inode mark */ ret = inotify_update_watch(group, inode, mask); +path_put_and_out: path_put(canonical_path); fput_and_out: fdput(f); diff --git a/fs/verity/enable.c b/fs/verity/enable.c index e13db6507b38..3018f6d8403a 100644 --- a/fs/verity/enable.c +++ b/fs/verity/enable.c @@ -367,25 +367,27 @@ int fsverity_ioctl_enable(struct file *filp, const void __user *uarg) goto out_drop_write; err = enable_verity(filp, &arg); - if (err) - goto out_allow_write_access; /* - * Some pages of the file may have been evicted from pagecache after - * being used in the Merkle tree construction, then read into pagecache - * again by another process reading from the file concurrently. Since - * these pages didn't undergo verification against the file digest which - * fs-verity now claims to be enforcing, we have to wipe the pagecache - * to ensure that all future reads are verified. + * We no longer drop the inode's pagecache after enabling verity. This + * used to be done to try to avoid a race condition where pages could be + * evicted after being used in the Merkle tree construction, then + * re-instantiated by a concurrent read. Such pages are unverified, and + * the backing storage could have filled them with different content, so + * they shouldn't be used to fulfill reads once verity is enabled. + * + * But, dropping the pagecache has a big performance impact, and it + * doesn't fully solve the race condition anyway. So for those reasons, + * and also because this race condition isn't very important relatively + * speaking (especially for small-ish files, where the chance of a page + * being used, evicted, *and* re-instantiated all while enabling verity + * is quite small), we no longer drop the inode's pagecache. */ - filemap_write_and_wait(inode->i_mapping); - invalidate_inode_pages2(inode->i_mapping); /* * allow_write_access() is needed to pair with deny_write_access(). * Regardless, the filesystem won't allow writing to verity files. */ -out_allow_write_access: allow_write_access(filp); out_drop_write: mnt_drop_write_file(filp); diff --git a/fs/zonefs/Makefile b/fs/zonefs/Makefile index 9fe54f5319f2..645f7229de4a 100644 --- a/fs/zonefs/Makefile +++ b/fs/zonefs/Makefile @@ -3,4 +3,4 @@ ccflags-y += -I$(src) obj-$(CONFIG_ZONEFS_FS) += zonefs.o -zonefs-y := super.o sysfs.o +zonefs-y := super.o file.o sysfs.o diff --git a/fs/zonefs/file.c b/fs/zonefs/file.c new file mode 100644 index 000000000000..63cd50840419 --- /dev/null +++ b/fs/zonefs/file.c @@ -0,0 +1,902 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Simple file system for zoned block devices exposing zones as files. + * + * Copyright (C) 2022 Western Digital Corporation or its affiliates. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "zonefs.h" + +#include "trace.h" + +static int zonefs_read_iomap_begin(struct inode *inode, loff_t offset, + loff_t length, unsigned int flags, + struct iomap *iomap, struct iomap *srcmap) +{ + struct zonefs_inode_info *zi = ZONEFS_I(inode); + struct zonefs_zone *z = zonefs_inode_zone(inode); + struct super_block *sb = inode->i_sb; + loff_t isize; + + /* + * All blocks are always mapped below EOF. If reading past EOF, + * act as if there is a hole up to the file maximum size. + */ + mutex_lock(&zi->i_truncate_mutex); + iomap->bdev = inode->i_sb->s_bdev; + iomap->offset = ALIGN_DOWN(offset, sb->s_blocksize); + isize = i_size_read(inode); + if (iomap->offset >= isize) { + iomap->type = IOMAP_HOLE; + iomap->addr = IOMAP_NULL_ADDR; + iomap->length = length; + } else { + iomap->type = IOMAP_MAPPED; + iomap->addr = (z->z_sector << SECTOR_SHIFT) + iomap->offset; + iomap->length = isize - iomap->offset; + } + mutex_unlock(&zi->i_truncate_mutex); + + trace_zonefs_iomap_begin(inode, iomap); + + return 0; +} + +static const struct iomap_ops zonefs_read_iomap_ops = { + .iomap_begin = zonefs_read_iomap_begin, +}; + +static int zonefs_write_iomap_begin(struct inode *inode, loff_t offset, + loff_t length, unsigned int flags, + struct iomap *iomap, struct iomap *srcmap) +{ + struct zonefs_inode_info *zi = ZONEFS_I(inode); + struct zonefs_zone *z = zonefs_inode_zone(inode); + struct super_block *sb = inode->i_sb; + loff_t isize; + + /* All write I/Os should always be within the file maximum size */ + if (WARN_ON_ONCE(offset + length > z->z_capacity)) + return -EIO; + + /* + * Sequential zones can only accept direct writes. This is already + * checked when writes are issued, so warn if we see a page writeback + * operation. + */ + if (WARN_ON_ONCE(zonefs_zone_is_seq(z) && !(flags & IOMAP_DIRECT))) + return -EIO; + + /* + * For conventional zones, all blocks are always mapped. For sequential + * zones, all blocks after always mapped below the inode size (zone + * write pointer) and unwriten beyond. + */ + mutex_lock(&zi->i_truncate_mutex); + iomap->bdev = inode->i_sb->s_bdev; + iomap->offset = ALIGN_DOWN(offset, sb->s_blocksize); + iomap->addr = (z->z_sector << SECTOR_SHIFT) + iomap->offset; + isize = i_size_read(inode); + if (iomap->offset >= isize) { + iomap->type = IOMAP_UNWRITTEN; + iomap->length = z->z_capacity - iomap->offset; + } else { + iomap->type = IOMAP_MAPPED; + iomap->length = isize - iomap->offset; + } + mutex_unlock(&zi->i_truncate_mutex); + + trace_zonefs_iomap_begin(inode, iomap); + + return 0; +} + +static const struct iomap_ops zonefs_write_iomap_ops = { + .iomap_begin = zonefs_write_iomap_begin, +}; + +static int zonefs_read_folio(struct file *unused, struct folio *folio) +{ + return iomap_read_folio(folio, &zonefs_read_iomap_ops); +} + +static void zonefs_readahead(struct readahead_control *rac) +{ + iomap_readahead(rac, &zonefs_read_iomap_ops); +} + +/* + * Map blocks for page writeback. This is used only on conventional zone files, + * which implies that the page range can only be within the fixed inode size. + */ +static int zonefs_write_map_blocks(struct iomap_writepage_ctx *wpc, + struct inode *inode, loff_t offset) +{ + struct zonefs_zone *z = zonefs_inode_zone(inode); + + if (WARN_ON_ONCE(zonefs_zone_is_seq(z))) + return -EIO; + if (WARN_ON_ONCE(offset >= i_size_read(inode))) + return -EIO; + + /* If the mapping is already OK, nothing needs to be done */ + if (offset >= wpc->iomap.offset && + offset < wpc->iomap.offset + wpc->iomap.length) + return 0; + + return zonefs_write_iomap_begin(inode, offset, + z->z_capacity - offset, + IOMAP_WRITE, &wpc->iomap, NULL); +} + +static const struct iomap_writeback_ops zonefs_writeback_ops = { + .map_blocks = zonefs_write_map_blocks, +}; + +static int zonefs_writepages(struct address_space *mapping, + struct writeback_control *wbc) +{ + struct iomap_writepage_ctx wpc = { }; + + return iomap_writepages(mapping, wbc, &wpc, &zonefs_writeback_ops); +} + +static int zonefs_swap_activate(struct swap_info_struct *sis, + struct file *swap_file, sector_t *span) +{ + struct inode *inode = file_inode(swap_file); + + if (zonefs_inode_is_seq(inode)) { + zonefs_err(inode->i_sb, + "swap file: not a conventional zone file\n"); + return -EINVAL; + } + + return iomap_swapfile_activate(sis, swap_file, span, + &zonefs_read_iomap_ops); +} + +const struct address_space_operations zonefs_file_aops = { + .read_folio = zonefs_read_folio, + .readahead = zonefs_readahead, + .writepages = zonefs_writepages, + .dirty_folio = filemap_dirty_folio, + .release_folio = iomap_release_folio, + .invalidate_folio = iomap_invalidate_folio, + .migrate_folio = filemap_migrate_folio, + .is_partially_uptodate = iomap_is_partially_uptodate, + .error_remove_page = generic_error_remove_page, + .direct_IO = noop_direct_IO, + .swap_activate = zonefs_swap_activate, +}; + +int zonefs_file_truncate(struct inode *inode, loff_t isize) +{ + struct zonefs_inode_info *zi = ZONEFS_I(inode); + struct zonefs_zone *z = zonefs_inode_zone(inode); + loff_t old_isize; + enum req_op op; + int ret = 0; + + /* + * Only sequential zone files can be truncated and truncation is allowed + * only down to a 0 size, which is equivalent to a zone reset, and to + * the maximum file size, which is equivalent to a zone finish. + */ + if (!zonefs_zone_is_seq(z)) + return -EPERM; + + if (!isize) + op = REQ_OP_ZONE_RESET; + else if (isize == z->z_capacity) + op = REQ_OP_ZONE_FINISH; + else + return -EPERM; + + inode_dio_wait(inode); + + /* Serialize against page faults */ + filemap_invalidate_lock(inode->i_mapping); + + /* Serialize against zonefs_iomap_begin() */ + mutex_lock(&zi->i_truncate_mutex); + + old_isize = i_size_read(inode); + if (isize == old_isize) + goto unlock; + + ret = zonefs_inode_zone_mgmt(inode, op); + if (ret) + goto unlock; + + /* + * If the mount option ZONEFS_MNTOPT_EXPLICIT_OPEN is set, + * take care of open zones. + */ + if (z->z_flags & ZONEFS_ZONE_OPEN) { + /* + * Truncating a zone to EMPTY or FULL is the equivalent of + * closing the zone. For a truncation to 0, we need to + * re-open the zone to ensure new writes can be processed. + * For a truncation to the maximum file size, the zone is + * closed and writes cannot be accepted anymore, so clear + * the open flag. + */ + if (!isize) + ret = zonefs_inode_zone_mgmt(inode, REQ_OP_ZONE_OPEN); + else + z->z_flags &= ~ZONEFS_ZONE_OPEN; + } + + zonefs_update_stats(inode, isize); + truncate_setsize(inode, isize); + z->z_wpoffset = isize; + zonefs_inode_account_active(inode); + +unlock: + mutex_unlock(&zi->i_truncate_mutex); + filemap_invalidate_unlock(inode->i_mapping); + + return ret; +} + +static int zonefs_file_fsync(struct file *file, loff_t start, loff_t end, + int datasync) +{ + struct inode *inode = file_inode(file); + int ret = 0; + + if (unlikely(IS_IMMUTABLE(inode))) + return -EPERM; + + /* + * Since only direct writes are allowed in sequential files, page cache + * flush is needed only for conventional zone files. + */ + if (zonefs_inode_is_cnv(inode)) + ret = file_write_and_wait_range(file, start, end); + if (!ret) + ret = blkdev_issue_flush(inode->i_sb->s_bdev); + + if (ret) + zonefs_io_error(inode, true); + + return ret; +} + +static vm_fault_t zonefs_filemap_page_mkwrite(struct vm_fault *vmf) +{ + struct inode *inode = file_inode(vmf->vma->vm_file); + vm_fault_t ret; + + if (unlikely(IS_IMMUTABLE(inode))) + return VM_FAULT_SIGBUS; + + /* + * Sanity check: only conventional zone files can have shared + * writeable mappings. + */ + if (zonefs_inode_is_seq(inode)) + return VM_FAULT_NOPAGE; + + sb_start_pagefault(inode->i_sb); + file_update_time(vmf->vma->vm_file); + + /* Serialize against truncates */ + filemap_invalidate_lock_shared(inode->i_mapping); + ret = iomap_page_mkwrite(vmf, &zonefs_write_iomap_ops); + filemap_invalidate_unlock_shared(inode->i_mapping); + + sb_end_pagefault(inode->i_sb); + return ret; +} + +static const struct vm_operations_struct zonefs_file_vm_ops = { + .fault = filemap_fault, + .map_pages = filemap_map_pages, + .page_mkwrite = zonefs_filemap_page_mkwrite, +}; + +static int zonefs_file_mmap(struct file *file, struct vm_area_struct *vma) +{ + /* + * Conventional zones accept random writes, so their files can support + * shared writable mappings. For sequential zone files, only read + * mappings are possible since there are no guarantees for write + * ordering between msync() and page cache writeback. + */ + if (zonefs_inode_is_seq(file_inode(file)) && + (vma->vm_flags & VM_SHARED) && (vma->vm_flags & VM_MAYWRITE)) + return -EINVAL; + + file_accessed(file); + vma->vm_ops = &zonefs_file_vm_ops; + + return 0; +} + +static loff_t zonefs_file_llseek(struct file *file, loff_t offset, int whence) +{ + loff_t isize = i_size_read(file_inode(file)); + + /* + * Seeks are limited to below the zone size for conventional zones + * and below the zone write pointer for sequential zones. In both + * cases, this limit is the inode size. + */ + return generic_file_llseek_size(file, offset, whence, isize, isize); +} + +static int zonefs_file_write_dio_end_io(struct kiocb *iocb, ssize_t size, + int error, unsigned int flags) +{ + struct inode *inode = file_inode(iocb->ki_filp); + struct zonefs_inode_info *zi = ZONEFS_I(inode); + + if (error) { + zonefs_io_error(inode, true); + return error; + } + + if (size && zonefs_inode_is_seq(inode)) { + /* + * Note that we may be seeing completions out of order, + * but that is not a problem since a write completed + * successfully necessarily means that all preceding writes + * were also successful. So we can safely increase the inode + * size to the write end location. + */ + mutex_lock(&zi->i_truncate_mutex); + if (i_size_read(inode) < iocb->ki_pos + size) { + zonefs_update_stats(inode, iocb->ki_pos + size); + zonefs_i_size_write(inode, iocb->ki_pos + size); + } + mutex_unlock(&zi->i_truncate_mutex); + } + + return 0; +} + +static const struct iomap_dio_ops zonefs_write_dio_ops = { + .end_io = zonefs_file_write_dio_end_io, +}; + +static ssize_t zonefs_file_dio_append(struct kiocb *iocb, struct iov_iter *from) +{ + struct inode *inode = file_inode(iocb->ki_filp); + struct zonefs_zone *z = zonefs_inode_zone(inode); + struct block_device *bdev = inode->i_sb->s_bdev; + unsigned int max = bdev_max_zone_append_sectors(bdev); + pgoff_t start, end; + struct bio *bio; + ssize_t size; + int nr_pages; + ssize_t ret; + + max = ALIGN_DOWN(max << SECTOR_SHIFT, inode->i_sb->s_blocksize); + iov_iter_truncate(from, max); + + /* + * If the inode block size (zone write granularity) is smaller than the + * page size, we may be appending data belonging to the last page of the + * inode straddling inode->i_size, with that page already cached due to + * a buffered read or readahead. So make sure to invalidate that page. + * This will always be a no-op for the case where the block size is + * equal to the page size. + */ + start = iocb->ki_pos >> PAGE_SHIFT; + end = (iocb->ki_pos + iov_iter_count(from) - 1) >> PAGE_SHIFT; + if (invalidate_inode_pages2_range(inode->i_mapping, start, end)) + return -EBUSY; + + nr_pages = iov_iter_npages(from, BIO_MAX_VECS); + if (!nr_pages) + return 0; + + bio = bio_alloc(bdev, nr_pages, + REQ_OP_ZONE_APPEND | REQ_SYNC | REQ_IDLE, GFP_NOFS); + bio->bi_iter.bi_sector = z->z_sector; + bio->bi_ioprio = iocb->ki_ioprio; + if (iocb_is_dsync(iocb)) + bio->bi_opf |= REQ_FUA; + + ret = bio_iov_iter_get_pages(bio, from); + if (unlikely(ret)) + goto out_release; + + size = bio->bi_iter.bi_size; + task_io_account_write(size); + + if (iocb->ki_flags & IOCB_HIPRI) + bio_set_polled(bio, iocb); + + ret = submit_bio_wait(bio); + + /* + * If the file zone was written underneath the file system, the zone + * write pointer may not be where we expect it to be, but the zone + * append write can still succeed. So check manually that we wrote where + * we intended to, that is, at zi->i_wpoffset. + */ + if (!ret) { + sector_t wpsector = + z->z_sector + (z->z_wpoffset >> SECTOR_SHIFT); + + if (bio->bi_iter.bi_sector != wpsector) { + zonefs_warn(inode->i_sb, + "Corrupted write pointer %llu for zone at %llu\n", + bio->bi_iter.bi_sector, z->z_sector); + ret = -EIO; + } + } + + zonefs_file_write_dio_end_io(iocb, size, ret, 0); + trace_zonefs_file_dio_append(inode, size, ret); + +out_release: + bio_release_pages(bio, false); + bio_put(bio); + + if (ret >= 0) { + iocb->ki_pos += size; + return size; + } + + return ret; +} + +/* + * Do not exceed the LFS limits nor the file zone size. If pos is under the + * limit it becomes a short access. If it exceeds the limit, return -EFBIG. + */ +static loff_t zonefs_write_check_limits(struct file *file, loff_t pos, + loff_t count) +{ + struct inode *inode = file_inode(file); + struct zonefs_zone *z = zonefs_inode_zone(inode); + loff_t limit = rlimit(RLIMIT_FSIZE); + loff_t max_size = z->z_capacity; + + if (limit != RLIM_INFINITY) { + if (pos >= limit) { + send_sig(SIGXFSZ, current, 0); + return -EFBIG; + } + count = min(count, limit - pos); + } + + if (!(file->f_flags & O_LARGEFILE)) + max_size = min_t(loff_t, MAX_NON_LFS, max_size); + + if (unlikely(pos >= max_size)) + return -EFBIG; + + return min(count, max_size - pos); +} + +static ssize_t zonefs_write_checks(struct kiocb *iocb, struct iov_iter *from) +{ + struct file *file = iocb->ki_filp; + struct inode *inode = file_inode(file); + struct zonefs_inode_info *zi = ZONEFS_I(inode); + struct zonefs_zone *z = zonefs_inode_zone(inode); + loff_t count; + + if (IS_SWAPFILE(inode)) + return -ETXTBSY; + + if (!iov_iter_count(from)) + return 0; + + if ((iocb->ki_flags & IOCB_NOWAIT) && !(iocb->ki_flags & IOCB_DIRECT)) + return -EINVAL; + + if (iocb->ki_flags & IOCB_APPEND) { + if (zonefs_zone_is_cnv(z)) + return -EINVAL; + mutex_lock(&zi->i_truncate_mutex); + iocb->ki_pos = z->z_wpoffset; + mutex_unlock(&zi->i_truncate_mutex); + } + + count = zonefs_write_check_limits(file, iocb->ki_pos, + iov_iter_count(from)); + if (count < 0) + return count; + + iov_iter_truncate(from, count); + return iov_iter_count(from); +} + +/* + * Handle direct writes. For sequential zone files, this is the only possible + * write path. For these files, check that the user is issuing writes + * sequentially from the end of the file. This code assumes that the block layer + * delivers write requests to the device in sequential order. This is always the + * case if a block IO scheduler implementing the ELEVATOR_F_ZBD_SEQ_WRITE + * elevator feature is being used (e.g. mq-deadline). The block layer always + * automatically select such an elevator for zoned block devices during the + * device initialization. + */ +static ssize_t zonefs_file_dio_write(struct kiocb *iocb, struct iov_iter *from) +{ + struct inode *inode = file_inode(iocb->ki_filp); + struct zonefs_inode_info *zi = ZONEFS_I(inode); + struct zonefs_zone *z = zonefs_inode_zone(inode); + struct super_block *sb = inode->i_sb; + bool sync = is_sync_kiocb(iocb); + bool append = false; + ssize_t ret, count; + + /* + * For async direct IOs to sequential zone files, refuse IOCB_NOWAIT + * as this can cause write reordering (e.g. the first aio gets EAGAIN + * on the inode lock but the second goes through but is now unaligned). + */ + if (zonefs_zone_is_seq(z) && !sync && (iocb->ki_flags & IOCB_NOWAIT)) + return -EOPNOTSUPP; + + if (iocb->ki_flags & IOCB_NOWAIT) { + if (!inode_trylock(inode)) + return -EAGAIN; + } else { + inode_lock(inode); + } + + count = zonefs_write_checks(iocb, from); + if (count <= 0) { + ret = count; + goto inode_unlock; + } + + if ((iocb->ki_pos | count) & (sb->s_blocksize - 1)) { + ret = -EINVAL; + goto inode_unlock; + } + + /* Enforce sequential writes (append only) in sequential zones */ + if (zonefs_zone_is_seq(z)) { + mutex_lock(&zi->i_truncate_mutex); + if (iocb->ki_pos != z->z_wpoffset) { + mutex_unlock(&zi->i_truncate_mutex); + ret = -EINVAL; + goto inode_unlock; + } + mutex_unlock(&zi->i_truncate_mutex); + append = sync; + } + + if (append) { + ret = zonefs_file_dio_append(iocb, from); + } else { + /* + * iomap_dio_rw() may return ENOTBLK if there was an issue with + * page invalidation. Overwrite that error code with EBUSY to + * be consistent with zonefs_file_dio_append() return value for + * similar issues. + */ + ret = iomap_dio_rw(iocb, from, &zonefs_write_iomap_ops, + &zonefs_write_dio_ops, 0, NULL, 0); + if (ret == -ENOTBLK) + ret = -EBUSY; + } + + if (zonefs_zone_is_seq(z) && + (ret > 0 || ret == -EIOCBQUEUED)) { + if (ret > 0) + count = ret; + + /* + * Update the zone write pointer offset assuming the write + * operation succeeded. If it did not, the error recovery path + * will correct it. Also do active seq file accounting. + */ + mutex_lock(&zi->i_truncate_mutex); + z->z_wpoffset += count; + zonefs_inode_account_active(inode); + mutex_unlock(&zi->i_truncate_mutex); + } + +inode_unlock: + inode_unlock(inode); + + return ret; +} + +static ssize_t zonefs_file_buffered_write(struct kiocb *iocb, + struct iov_iter *from) +{ + struct inode *inode = file_inode(iocb->ki_filp); + ssize_t ret; + + /* + * Direct IO writes are mandatory for sequential zone files so that the + * write IO issuing order is preserved. + */ + if (zonefs_inode_is_seq(inode)) + return -EIO; + + if (iocb->ki_flags & IOCB_NOWAIT) { + if (!inode_trylock(inode)) + return -EAGAIN; + } else { + inode_lock(inode); + } + + ret = zonefs_write_checks(iocb, from); + if (ret <= 0) + goto inode_unlock; + + ret = iomap_file_buffered_write(iocb, from, &zonefs_write_iomap_ops); + if (ret > 0) + iocb->ki_pos += ret; + else if (ret == -EIO) + zonefs_io_error(inode, true); + +inode_unlock: + inode_unlock(inode); + if (ret > 0) + ret = generic_write_sync(iocb, ret); + + return ret; +} + +static ssize_t zonefs_file_write_iter(struct kiocb *iocb, struct iov_iter *from) +{ + struct inode *inode = file_inode(iocb->ki_filp); + struct zonefs_zone *z = zonefs_inode_zone(inode); + + if (unlikely(IS_IMMUTABLE(inode))) + return -EPERM; + + if (sb_rdonly(inode->i_sb)) + return -EROFS; + + /* Write operations beyond the zone capacity are not allowed */ + if (iocb->ki_pos >= z->z_capacity) + return -EFBIG; + + if (iocb->ki_flags & IOCB_DIRECT) { + ssize_t ret = zonefs_file_dio_write(iocb, from); + + if (ret != -ENOTBLK) + return ret; + } + + return zonefs_file_buffered_write(iocb, from); +} + +static int zonefs_file_read_dio_end_io(struct kiocb *iocb, ssize_t size, + int error, unsigned int flags) +{ + if (error) { + zonefs_io_error(file_inode(iocb->ki_filp), false); + return error; + } + + return 0; +} + +static const struct iomap_dio_ops zonefs_read_dio_ops = { + .end_io = zonefs_file_read_dio_end_io, +}; + +static ssize_t zonefs_file_read_iter(struct kiocb *iocb, struct iov_iter *to) +{ + struct inode *inode = file_inode(iocb->ki_filp); + struct zonefs_inode_info *zi = ZONEFS_I(inode); + struct zonefs_zone *z = zonefs_inode_zone(inode); + struct super_block *sb = inode->i_sb; + loff_t isize; + ssize_t ret; + + /* Offline zones cannot be read */ + if (unlikely(IS_IMMUTABLE(inode) && !(inode->i_mode & 0777))) + return -EPERM; + + if (iocb->ki_pos >= z->z_capacity) + return 0; + + if (iocb->ki_flags & IOCB_NOWAIT) { + if (!inode_trylock_shared(inode)) + return -EAGAIN; + } else { + inode_lock_shared(inode); + } + + /* Limit read operations to written data */ + mutex_lock(&zi->i_truncate_mutex); + isize = i_size_read(inode); + if (iocb->ki_pos >= isize) { + mutex_unlock(&zi->i_truncate_mutex); + ret = 0; + goto inode_unlock; + } + iov_iter_truncate(to, isize - iocb->ki_pos); + mutex_unlock(&zi->i_truncate_mutex); + + if (iocb->ki_flags & IOCB_DIRECT) { + size_t count = iov_iter_count(to); + + if ((iocb->ki_pos | count) & (sb->s_blocksize - 1)) { + ret = -EINVAL; + goto inode_unlock; + } + file_accessed(iocb->ki_filp); + ret = iomap_dio_rw(iocb, to, &zonefs_read_iomap_ops, + &zonefs_read_dio_ops, 0, NULL, 0); + } else { + ret = generic_file_read_iter(iocb, to); + if (ret == -EIO) + zonefs_io_error(inode, false); + } + +inode_unlock: + inode_unlock_shared(inode); + + return ret; +} + +/* + * Write open accounting is done only for sequential files. + */ +static inline bool zonefs_seq_file_need_wro(struct inode *inode, + struct file *file) +{ + if (zonefs_inode_is_cnv(inode)) + return false; + + if (!(file->f_mode & FMODE_WRITE)) + return false; + + return true; +} + +static int zonefs_seq_file_write_open(struct inode *inode) +{ + struct zonefs_inode_info *zi = ZONEFS_I(inode); + struct zonefs_zone *z = zonefs_inode_zone(inode); + int ret = 0; + + mutex_lock(&zi->i_truncate_mutex); + + if (!zi->i_wr_refcnt) { + struct zonefs_sb_info *sbi = ZONEFS_SB(inode->i_sb); + unsigned int wro = atomic_inc_return(&sbi->s_wro_seq_files); + + if (sbi->s_mount_opts & ZONEFS_MNTOPT_EXPLICIT_OPEN) { + + if (sbi->s_max_wro_seq_files + && wro > sbi->s_max_wro_seq_files) { + atomic_dec(&sbi->s_wro_seq_files); + ret = -EBUSY; + goto unlock; + } + + if (i_size_read(inode) < z->z_capacity) { + ret = zonefs_inode_zone_mgmt(inode, + REQ_OP_ZONE_OPEN); + if (ret) { + atomic_dec(&sbi->s_wro_seq_files); + goto unlock; + } + z->z_flags |= ZONEFS_ZONE_OPEN; + zonefs_inode_account_active(inode); + } + } + } + + zi->i_wr_refcnt++; + +unlock: + mutex_unlock(&zi->i_truncate_mutex); + + return ret; +} + +static int zonefs_file_open(struct inode *inode, struct file *file) +{ + int ret; + + ret = generic_file_open(inode, file); + if (ret) + return ret; + + if (zonefs_seq_file_need_wro(inode, file)) + return zonefs_seq_file_write_open(inode); + + return 0; +} + +static void zonefs_seq_file_write_close(struct inode *inode) +{ + struct zonefs_inode_info *zi = ZONEFS_I(inode); + struct zonefs_zone *z = zonefs_inode_zone(inode); + struct super_block *sb = inode->i_sb; + struct zonefs_sb_info *sbi = ZONEFS_SB(sb); + int ret = 0; + + mutex_lock(&zi->i_truncate_mutex); + + zi->i_wr_refcnt--; + if (zi->i_wr_refcnt) + goto unlock; + + /* + * The file zone may not be open anymore (e.g. the file was truncated to + * its maximum size or it was fully written). For this case, we only + * need to decrement the write open count. + */ + if (z->z_flags & ZONEFS_ZONE_OPEN) { + ret = zonefs_inode_zone_mgmt(inode, REQ_OP_ZONE_CLOSE); + if (ret) { + __zonefs_io_error(inode, false); + /* + * Leaving zones explicitly open may lead to a state + * where most zones cannot be written (zone resources + * exhausted). So take preventive action by remounting + * read-only. + */ + if (z->z_flags & ZONEFS_ZONE_OPEN && + !(sb->s_flags & SB_RDONLY)) { + zonefs_warn(sb, + "closing zone at %llu failed %d\n", + z->z_sector, ret); + zonefs_warn(sb, + "remounting filesystem read-only\n"); + sb->s_flags |= SB_RDONLY; + } + goto unlock; + } + + z->z_flags &= ~ZONEFS_ZONE_OPEN; + zonefs_inode_account_active(inode); + } + + atomic_dec(&sbi->s_wro_seq_files); + +unlock: + mutex_unlock(&zi->i_truncate_mutex); +} + +static int zonefs_file_release(struct inode *inode, struct file *file) +{ + /* + * If we explicitly open a zone we must close it again as well, but the + * zone management operation can fail (either due to an IO error or as + * the zone has gone offline or read-only). Make sure we don't fail the + * close(2) for user-space. + */ + if (zonefs_seq_file_need_wro(inode, file)) + zonefs_seq_file_write_close(inode); + + return 0; +} + +const struct file_operations zonefs_file_operations = { + .open = zonefs_file_open, + .release = zonefs_file_release, + .fsync = zonefs_file_fsync, + .mmap = zonefs_file_mmap, + .llseek = zonefs_file_llseek, + .read_iter = zonefs_file_read_iter, + .write_iter = zonefs_file_write_iter, + .splice_read = generic_file_splice_read, + .splice_write = iter_file_splice_write, + .iopoll = iocb_bio_iopoll, +}; diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c index a9c5c3f720ad..270ded209dde 100644 --- a/fs/zonefs/super.c +++ b/fs/zonefs/super.c @@ -28,33 +28,47 @@ #include "trace.h" /* - * Manage the active zone count. Called with zi->i_truncate_mutex held. + * Get the name of a zone group directory. */ -static void zonefs_account_active(struct inode *inode) +static const char *zonefs_zgroup_name(enum zonefs_ztype ztype) { - struct zonefs_sb_info *sbi = ZONEFS_SB(inode->i_sb); - struct zonefs_inode_info *zi = ZONEFS_I(inode); + switch (ztype) { + case ZONEFS_ZTYPE_CNV: + return "cnv"; + case ZONEFS_ZTYPE_SEQ: + return "seq"; + default: + WARN_ON_ONCE(1); + return "???"; + } +} - lockdep_assert_held(&zi->i_truncate_mutex); +/* + * Manage the active zone count. + */ +static void zonefs_account_active(struct super_block *sb, + struct zonefs_zone *z) +{ + struct zonefs_sb_info *sbi = ZONEFS_SB(sb); - if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) + if (zonefs_zone_is_cnv(z)) return; /* * For zones that transitioned to the offline or readonly condition, * we only need to clear the active state. */ - if (zi->i_flags & (ZONEFS_ZONE_OFFLINE | ZONEFS_ZONE_READONLY)) + if (z->z_flags & (ZONEFS_ZONE_OFFLINE | ZONEFS_ZONE_READONLY)) goto out; /* * If the zone is active, that is, if it is explicitly open or * partially written, check if it was already accounted as active. */ - if ((zi->i_flags & ZONEFS_ZONE_OPEN) || - (zi->i_wpoffset > 0 && zi->i_wpoffset < zi->i_max_size)) { - if (!(zi->i_flags & ZONEFS_ZONE_ACTIVE)) { - zi->i_flags |= ZONEFS_ZONE_ACTIVE; + if ((z->z_flags & ZONEFS_ZONE_OPEN) || + (z->z_wpoffset > 0 && z->z_wpoffset < z->z_capacity)) { + if (!(z->z_flags & ZONEFS_ZONE_ACTIVE)) { + z->z_flags |= ZONEFS_ZONE_ACTIVE; atomic_inc(&sbi->s_active_seq_files); } return; @@ -62,18 +76,29 @@ static void zonefs_account_active(struct inode *inode) out: /* The zone is not active. If it was, update the active count */ - if (zi->i_flags & ZONEFS_ZONE_ACTIVE) { - zi->i_flags &= ~ZONEFS_ZONE_ACTIVE; + if (z->z_flags & ZONEFS_ZONE_ACTIVE) { + z->z_flags &= ~ZONEFS_ZONE_ACTIVE; atomic_dec(&sbi->s_active_seq_files); } } -static inline int zonefs_zone_mgmt(struct inode *inode, enum req_op op) +/* + * Manage the active zone count. Called with zi->i_truncate_mutex held. + */ +void zonefs_inode_account_active(struct inode *inode) { - struct zonefs_inode_info *zi = ZONEFS_I(inode); - int ret; + lockdep_assert_held(&ZONEFS_I(inode)->i_truncate_mutex); - lockdep_assert_held(&zi->i_truncate_mutex); + return zonefs_account_active(inode->i_sb, zonefs_inode_zone(inode)); +} + +/* + * Execute a zone management operation. + */ +static int zonefs_zone_mgmt(struct super_block *sb, + struct zonefs_zone *z, enum req_op op) +{ + int ret; /* * With ZNS drives, closing an explicitly open zone that has not been @@ -83,201 +108,49 @@ static inline int zonefs_zone_mgmt(struct inode *inode, enum req_op op) * are exceeded, make sure that the zone does not remain active by * resetting it. */ - if (op == REQ_OP_ZONE_CLOSE && !zi->i_wpoffset) + if (op == REQ_OP_ZONE_CLOSE && !z->z_wpoffset) op = REQ_OP_ZONE_RESET; - trace_zonefs_zone_mgmt(inode, op); - ret = blkdev_zone_mgmt(inode->i_sb->s_bdev, op, zi->i_zsector, - zi->i_zone_size >> SECTOR_SHIFT, GFP_NOFS); + trace_zonefs_zone_mgmt(sb, z, op); + ret = blkdev_zone_mgmt(sb->s_bdev, op, z->z_sector, + z->z_size >> SECTOR_SHIFT, GFP_NOFS); if (ret) { - zonefs_err(inode->i_sb, + zonefs_err(sb, "Zone management operation %s at %llu failed %d\n", - blk_op_str(op), zi->i_zsector, ret); + blk_op_str(op), z->z_sector, ret); return ret; } return 0; } -static inline void zonefs_i_size_write(struct inode *inode, loff_t isize) +int zonefs_inode_zone_mgmt(struct inode *inode, enum req_op op) { - struct zonefs_inode_info *zi = ZONEFS_I(inode); + lockdep_assert_held(&ZONEFS_I(inode)->i_truncate_mutex); + + return zonefs_zone_mgmt(inode->i_sb, zonefs_inode_zone(inode), op); +} + +void zonefs_i_size_write(struct inode *inode, loff_t isize) +{ + struct zonefs_zone *z = zonefs_inode_zone(inode); i_size_write(inode, isize); + /* * A full zone is no longer open/active and does not need * explicit closing. */ - if (isize >= zi->i_max_size) { + if (isize >= z->z_capacity) { struct zonefs_sb_info *sbi = ZONEFS_SB(inode->i_sb); - if (zi->i_flags & ZONEFS_ZONE_ACTIVE) + if (z->z_flags & ZONEFS_ZONE_ACTIVE) atomic_dec(&sbi->s_active_seq_files); - zi->i_flags &= ~(ZONEFS_ZONE_OPEN | ZONEFS_ZONE_ACTIVE); + z->z_flags &= ~(ZONEFS_ZONE_OPEN | ZONEFS_ZONE_ACTIVE); } } -static int zonefs_read_iomap_begin(struct inode *inode, loff_t offset, - loff_t length, unsigned int flags, - struct iomap *iomap, struct iomap *srcmap) -{ - struct zonefs_inode_info *zi = ZONEFS_I(inode); - struct super_block *sb = inode->i_sb; - loff_t isize; - - /* - * All blocks are always mapped below EOF. If reading past EOF, - * act as if there is a hole up to the file maximum size. - */ - mutex_lock(&zi->i_truncate_mutex); - iomap->bdev = inode->i_sb->s_bdev; - iomap->offset = ALIGN_DOWN(offset, sb->s_blocksize); - isize = i_size_read(inode); - if (iomap->offset >= isize) { - iomap->type = IOMAP_HOLE; - iomap->addr = IOMAP_NULL_ADDR; - iomap->length = length; - } else { - iomap->type = IOMAP_MAPPED; - iomap->addr = (zi->i_zsector << SECTOR_SHIFT) + iomap->offset; - iomap->length = isize - iomap->offset; - } - mutex_unlock(&zi->i_truncate_mutex); - - trace_zonefs_iomap_begin(inode, iomap); - - return 0; -} - -static const struct iomap_ops zonefs_read_iomap_ops = { - .iomap_begin = zonefs_read_iomap_begin, -}; - -static int zonefs_write_iomap_begin(struct inode *inode, loff_t offset, - loff_t length, unsigned int flags, - struct iomap *iomap, struct iomap *srcmap) -{ - struct zonefs_inode_info *zi = ZONEFS_I(inode); - struct super_block *sb = inode->i_sb; - loff_t isize; - - /* All write I/Os should always be within the file maximum size */ - if (WARN_ON_ONCE(offset + length > zi->i_max_size)) - return -EIO; - - /* - * Sequential zones can only accept direct writes. This is already - * checked when writes are issued, so warn if we see a page writeback - * operation. - */ - if (WARN_ON_ONCE(zi->i_ztype == ZONEFS_ZTYPE_SEQ && - !(flags & IOMAP_DIRECT))) - return -EIO; - - /* - * For conventional zones, all blocks are always mapped. For sequential - * zones, all blocks after always mapped below the inode size (zone - * write pointer) and unwriten beyond. - */ - mutex_lock(&zi->i_truncate_mutex); - iomap->bdev = inode->i_sb->s_bdev; - iomap->offset = ALIGN_DOWN(offset, sb->s_blocksize); - iomap->addr = (zi->i_zsector << SECTOR_SHIFT) + iomap->offset; - isize = i_size_read(inode); - if (iomap->offset >= isize) { - iomap->type = IOMAP_UNWRITTEN; - iomap->length = zi->i_max_size - iomap->offset; - } else { - iomap->type = IOMAP_MAPPED; - iomap->length = isize - iomap->offset; - } - mutex_unlock(&zi->i_truncate_mutex); - - trace_zonefs_iomap_begin(inode, iomap); - - return 0; -} - -static const struct iomap_ops zonefs_write_iomap_ops = { - .iomap_begin = zonefs_write_iomap_begin, -}; - -static int zonefs_read_folio(struct file *unused, struct folio *folio) -{ - return iomap_read_folio(folio, &zonefs_read_iomap_ops); -} - -static void zonefs_readahead(struct readahead_control *rac) -{ - iomap_readahead(rac, &zonefs_read_iomap_ops); -} - -/* - * Map blocks for page writeback. This is used only on conventional zone files, - * which implies that the page range can only be within the fixed inode size. - */ -static int zonefs_write_map_blocks(struct iomap_writepage_ctx *wpc, - struct inode *inode, loff_t offset) -{ - struct zonefs_inode_info *zi = ZONEFS_I(inode); - - if (WARN_ON_ONCE(zi->i_ztype != ZONEFS_ZTYPE_CNV)) - return -EIO; - if (WARN_ON_ONCE(offset >= i_size_read(inode))) - return -EIO; - - /* If the mapping is already OK, nothing needs to be done */ - if (offset >= wpc->iomap.offset && - offset < wpc->iomap.offset + wpc->iomap.length) - return 0; - - return zonefs_write_iomap_begin(inode, offset, zi->i_max_size - offset, - IOMAP_WRITE, &wpc->iomap, NULL); -} - -static const struct iomap_writeback_ops zonefs_writeback_ops = { - .map_blocks = zonefs_write_map_blocks, -}; - -static int zonefs_writepages(struct address_space *mapping, - struct writeback_control *wbc) -{ - struct iomap_writepage_ctx wpc = { }; - - return iomap_writepages(mapping, wbc, &wpc, &zonefs_writeback_ops); -} - -static int zonefs_swap_activate(struct swap_info_struct *sis, - struct file *swap_file, sector_t *span) -{ - struct inode *inode = file_inode(swap_file); - struct zonefs_inode_info *zi = ZONEFS_I(inode); - - if (zi->i_ztype != ZONEFS_ZTYPE_CNV) { - zonefs_err(inode->i_sb, - "swap file: not a conventional zone file\n"); - return -EINVAL; - } - - return iomap_swapfile_activate(sis, swap_file, span, - &zonefs_read_iomap_ops); -} - -static const struct address_space_operations zonefs_file_aops = { - .read_folio = zonefs_read_folio, - .readahead = zonefs_readahead, - .writepages = zonefs_writepages, - .dirty_folio = filemap_dirty_folio, - .release_folio = iomap_release_folio, - .invalidate_folio = iomap_invalidate_folio, - .migrate_folio = filemap_migrate_folio, - .is_partially_uptodate = iomap_is_partially_uptodate, - .error_remove_page = generic_error_remove_page, - .direct_IO = noop_direct_IO, - .swap_activate = zonefs_swap_activate, -}; - -static void zonefs_update_stats(struct inode *inode, loff_t new_isize) +void zonefs_update_stats(struct inode *inode, loff_t new_isize) { struct super_block *sb = inode->i_sb; struct zonefs_sb_info *sbi = ZONEFS_SB(sb); @@ -310,63 +183,68 @@ static void zonefs_update_stats(struct inode *inode, loff_t new_isize) } /* - * Check a zone condition and adjust its file inode access permissions for - * offline and readonly zones. Return the inode size corresponding to the - * amount of readable data in the zone. + * Check a zone condition. Return the amount of written (and still readable) + * data in the zone. */ -static loff_t zonefs_check_zone_condition(struct inode *inode, - struct blk_zone *zone, bool warn, - bool mount) +static loff_t zonefs_check_zone_condition(struct super_block *sb, + struct zonefs_zone *z, + struct blk_zone *zone) { - struct zonefs_inode_info *zi = ZONEFS_I(inode); - switch (zone->cond) { case BLK_ZONE_COND_OFFLINE: - /* - * Dead zone: make the inode immutable, disable all accesses - * and set the file size to 0 (zone wp set to zone start). - */ - if (warn) - zonefs_warn(inode->i_sb, "inode %lu: offline zone\n", - inode->i_ino); - inode->i_flags |= S_IMMUTABLE; - inode->i_mode &= ~0777; - zone->wp = zone->start; - zi->i_flags |= ZONEFS_ZONE_OFFLINE; + zonefs_warn(sb, "Zone %llu: offline zone\n", + z->z_sector); + z->z_flags |= ZONEFS_ZONE_OFFLINE; return 0; case BLK_ZONE_COND_READONLY: /* - * The write pointer of read-only zones is invalid. If such a - * zone is found during mount, the file size cannot be retrieved - * so we treat the zone as offline (mount == true case). - * Otherwise, keep the file size as it was when last updated - * so that the user can recover data. In both cases, writes are - * always disabled for the zone. + * The write pointer of read-only zones is invalid, so we cannot + * determine the zone wpoffset (inode size). We thus keep the + * zone wpoffset as is, which leads to an empty file + * (wpoffset == 0) on mount. For a runtime error, this keeps + * the inode size as it was when last updated so that the user + * can recover data. */ - if (warn) - zonefs_warn(inode->i_sb, "inode %lu: read-only zone\n", - inode->i_ino); - inode->i_flags |= S_IMMUTABLE; - if (mount) { - zone->cond = BLK_ZONE_COND_OFFLINE; - inode->i_mode &= ~0777; - zone->wp = zone->start; - zi->i_flags |= ZONEFS_ZONE_OFFLINE; - return 0; - } - zi->i_flags |= ZONEFS_ZONE_READONLY; - inode->i_mode &= ~0222; - return i_size_read(inode); + zonefs_warn(sb, "Zone %llu: read-only zone\n", + z->z_sector); + z->z_flags |= ZONEFS_ZONE_READONLY; + if (zonefs_zone_is_cnv(z)) + return z->z_capacity; + return z->z_wpoffset; case BLK_ZONE_COND_FULL: /* The write pointer of full zones is invalid. */ - return zi->i_max_size; + return z->z_capacity; default: - if (zi->i_ztype == ZONEFS_ZTYPE_CNV) - return zi->i_max_size; + if (zonefs_zone_is_cnv(z)) + return z->z_capacity; return (zone->wp - zone->start) << SECTOR_SHIFT; } } +/* + * Check a zone condition and adjust its inode access permissions for + * offline and readonly zones. + */ +static void zonefs_inode_update_mode(struct inode *inode) +{ + struct zonefs_zone *z = zonefs_inode_zone(inode); + + if (z->z_flags & ZONEFS_ZONE_OFFLINE) { + /* Offline zones cannot be read nor written */ + inode->i_flags |= S_IMMUTABLE; + inode->i_mode &= ~0777; + } else if (z->z_flags & ZONEFS_ZONE_READONLY) { + /* Readonly zones cannot be written */ + inode->i_flags |= S_IMMUTABLE; + if (z->z_flags & ZONEFS_ZONE_INIT_MODE) + inode->i_mode &= ~0777; + else + inode->i_mode &= ~0222; + } + + z->z_flags &= ~ZONEFS_ZONE_INIT_MODE; +} + struct zonefs_ioerr_data { struct inode *inode; bool write; @@ -377,7 +255,7 @@ static int zonefs_io_error_cb(struct blk_zone *zone, unsigned int idx, { struct zonefs_ioerr_data *err = data; struct inode *inode = err->inode; - struct zonefs_inode_info *zi = ZONEFS_I(inode); + struct zonefs_zone *z = zonefs_inode_zone(inode); struct super_block *sb = inode->i_sb; struct zonefs_sb_info *sbi = ZONEFS_SB(sb); loff_t isize, data_size; @@ -388,10 +266,9 @@ static int zonefs_io_error_cb(struct blk_zone *zone, unsigned int idx, * as there is no inconsistency between the inode size and the amount of * data writen in the zone (data_size). */ - data_size = zonefs_check_zone_condition(inode, zone, true, false); + data_size = zonefs_check_zone_condition(sb, z, zone); isize = i_size_read(inode); - if (zone->cond != BLK_ZONE_COND_OFFLINE && - zone->cond != BLK_ZONE_COND_READONLY && + if (!(z->z_flags & (ZONEFS_ZONE_READONLY | ZONEFS_ZONE_OFFLINE)) && !err->write && isize == data_size) return 0; @@ -414,8 +291,9 @@ static int zonefs_io_error_cb(struct blk_zone *zone, unsigned int idx, * In all cases, warn about inode size inconsistency and handle the * IO error according to the zone condition and to the mount options. */ - if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && isize != data_size) - zonefs_warn(sb, "inode %lu: invalid size %lld (should be %lld)\n", + if (zonefs_zone_is_seq(z) && isize != data_size) + zonefs_warn(sb, + "inode %lu: invalid size %lld (should be %lld)\n", inode->i_ino, isize, data_size); /* @@ -424,24 +302,22 @@ static int zonefs_io_error_cb(struct blk_zone *zone, unsigned int idx, * zone condition to read-only and offline respectively, as if the * condition was signaled by the hardware. */ - if (zone->cond == BLK_ZONE_COND_OFFLINE || - sbi->s_mount_opts & ZONEFS_MNTOPT_ERRORS_ZOL) { + if ((z->z_flags & ZONEFS_ZONE_OFFLINE) || + (sbi->s_mount_opts & ZONEFS_MNTOPT_ERRORS_ZOL)) { zonefs_warn(sb, "inode %lu: read/write access disabled\n", inode->i_ino); - if (zone->cond != BLK_ZONE_COND_OFFLINE) { - zone->cond = BLK_ZONE_COND_OFFLINE; - data_size = zonefs_check_zone_condition(inode, zone, - false, false); - } - } else if (zone->cond == BLK_ZONE_COND_READONLY || - sbi->s_mount_opts & ZONEFS_MNTOPT_ERRORS_ZRO) { + if (!(z->z_flags & ZONEFS_ZONE_OFFLINE)) + z->z_flags |= ZONEFS_ZONE_OFFLINE; + zonefs_inode_update_mode(inode); + data_size = 0; + } else if ((z->z_flags & ZONEFS_ZONE_READONLY) || + (sbi->s_mount_opts & ZONEFS_MNTOPT_ERRORS_ZRO)) { zonefs_warn(sb, "inode %lu: write access disabled\n", inode->i_ino); - if (zone->cond != BLK_ZONE_COND_READONLY) { - zone->cond = BLK_ZONE_COND_READONLY; - data_size = zonefs_check_zone_condition(inode, zone, - false, false); - } + if (!(z->z_flags & ZONEFS_ZONE_READONLY)) + z->z_flags |= ZONEFS_ZONE_READONLY; + zonefs_inode_update_mode(inode); + data_size = isize; } else if (sbi->s_mount_opts & ZONEFS_MNTOPT_ERRORS_RO && data_size > isize) { /* Do not expose garbage data */ @@ -455,9 +331,8 @@ static int zonefs_io_error_cb(struct blk_zone *zone, unsigned int idx, * close of the zone when the inode file is closed. */ if ((sbi->s_mount_opts & ZONEFS_MNTOPT_EXPLICIT_OPEN) && - (zone->cond == BLK_ZONE_COND_OFFLINE || - zone->cond == BLK_ZONE_COND_READONLY)) - zi->i_flags &= ~ZONEFS_ZONE_OPEN; + (z->z_flags & (ZONEFS_ZONE_READONLY | ZONEFS_ZONE_OFFLINE))) + z->z_flags &= ~ZONEFS_ZONE_OPEN; /* * If error=remount-ro was specified, any error result in remounting @@ -474,8 +349,8 @@ static int zonefs_io_error_cb(struct blk_zone *zone, unsigned int idx, */ zonefs_update_stats(inode, data_size); zonefs_i_size_write(inode, data_size); - zi->i_wpoffset = data_size; - zonefs_account_active(inode); + z->z_wpoffset = data_size; + zonefs_inode_account_active(inode); return 0; } @@ -487,9 +362,9 @@ static int zonefs_io_error_cb(struct blk_zone *zone, unsigned int idx, * eventually correct the file size and zonefs inode write pointer offset * (which can be out of sync with the drive due to partial write failures). */ -static void __zonefs_io_error(struct inode *inode, bool write) +void __zonefs_io_error(struct inode *inode, bool write) { - struct zonefs_inode_info *zi = ZONEFS_I(inode); + struct zonefs_zone *z = zonefs_inode_zone(inode); struct super_block *sb = inode->i_sb; struct zonefs_sb_info *sbi = ZONEFS_SB(sb); unsigned int noio_flag; @@ -505,8 +380,8 @@ static void __zonefs_io_error(struct inode *inode, bool write) * files with aggregated conventional zones, for which the inode zone * size is always larger than the device zone size. */ - if (zi->i_zone_size > bdev_zone_sectors(sb->s_bdev)) - nr_zones = zi->i_zone_size >> + if (z->z_size > bdev_zone_sectors(sb->s_bdev)) + nr_zones = z->z_size >> (sbi->s_zone_sectors_shift + SECTOR_SHIFT); /* @@ -518,7 +393,7 @@ static void __zonefs_io_error(struct inode *inode, bool write) * the GFP_NOIO context avoids both problems. */ noio_flag = memalloc_noio_save(); - ret = blkdev_report_zones(sb->s_bdev, zi->i_zsector, nr_zones, + ret = blkdev_report_zones(sb->s_bdev, z->z_sector, nr_zones, zonefs_io_error_cb, &err); if (ret != nr_zones) zonefs_err(sb, "Get inode %lu zone information failed %d\n", @@ -526,749 +401,6 @@ static void __zonefs_io_error(struct inode *inode, bool write) memalloc_noio_restore(noio_flag); } -static void zonefs_io_error(struct inode *inode, bool write) -{ - struct zonefs_inode_info *zi = ZONEFS_I(inode); - - mutex_lock(&zi->i_truncate_mutex); - __zonefs_io_error(inode, write); - mutex_unlock(&zi->i_truncate_mutex); -} - -static int zonefs_file_truncate(struct inode *inode, loff_t isize) -{ - struct zonefs_inode_info *zi = ZONEFS_I(inode); - loff_t old_isize; - enum req_op op; - int ret = 0; - - /* - * Only sequential zone files can be truncated and truncation is allowed - * only down to a 0 size, which is equivalent to a zone reset, and to - * the maximum file size, which is equivalent to a zone finish. - */ - if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) - return -EPERM; - - if (!isize) - op = REQ_OP_ZONE_RESET; - else if (isize == zi->i_max_size) - op = REQ_OP_ZONE_FINISH; - else - return -EPERM; - - inode_dio_wait(inode); - - /* Serialize against page faults */ - filemap_invalidate_lock(inode->i_mapping); - - /* Serialize against zonefs_iomap_begin() */ - mutex_lock(&zi->i_truncate_mutex); - - old_isize = i_size_read(inode); - if (isize == old_isize) - goto unlock; - - ret = zonefs_zone_mgmt(inode, op); - if (ret) - goto unlock; - - /* - * If the mount option ZONEFS_MNTOPT_EXPLICIT_OPEN is set, - * take care of open zones. - */ - if (zi->i_flags & ZONEFS_ZONE_OPEN) { - /* - * Truncating a zone to EMPTY or FULL is the equivalent of - * closing the zone. For a truncation to 0, we need to - * re-open the zone to ensure new writes can be processed. - * For a truncation to the maximum file size, the zone is - * closed and writes cannot be accepted anymore, so clear - * the open flag. - */ - if (!isize) - ret = zonefs_zone_mgmt(inode, REQ_OP_ZONE_OPEN); - else - zi->i_flags &= ~ZONEFS_ZONE_OPEN; - } - - zonefs_update_stats(inode, isize); - truncate_setsize(inode, isize); - zi->i_wpoffset = isize; - zonefs_account_active(inode); - -unlock: - mutex_unlock(&zi->i_truncate_mutex); - filemap_invalidate_unlock(inode->i_mapping); - - return ret; -} - -static int zonefs_inode_setattr(struct user_namespace *mnt_userns, - struct dentry *dentry, struct iattr *iattr) -{ - struct inode *inode = d_inode(dentry); - int ret; - - if (unlikely(IS_IMMUTABLE(inode))) - return -EPERM; - - ret = setattr_prepare(&init_user_ns, dentry, iattr); - if (ret) - return ret; - - /* - * Since files and directories cannot be created nor deleted, do not - * allow setting any write attributes on the sub-directories grouping - * files by zone type. - */ - if ((iattr->ia_valid & ATTR_MODE) && S_ISDIR(inode->i_mode) && - (iattr->ia_mode & 0222)) - return -EPERM; - - if (((iattr->ia_valid & ATTR_UID) && - !uid_eq(iattr->ia_uid, inode->i_uid)) || - ((iattr->ia_valid & ATTR_GID) && - !gid_eq(iattr->ia_gid, inode->i_gid))) { - ret = dquot_transfer(mnt_userns, inode, iattr); - if (ret) - return ret; - } - - if (iattr->ia_valid & ATTR_SIZE) { - ret = zonefs_file_truncate(inode, iattr->ia_size); - if (ret) - return ret; - } - - setattr_copy(&init_user_ns, inode, iattr); - - return 0; -} - -static const struct inode_operations zonefs_file_inode_operations = { - .setattr = zonefs_inode_setattr, -}; - -static int zonefs_file_fsync(struct file *file, loff_t start, loff_t end, - int datasync) -{ - struct inode *inode = file_inode(file); - int ret = 0; - - if (unlikely(IS_IMMUTABLE(inode))) - return -EPERM; - - /* - * Since only direct writes are allowed in sequential files, page cache - * flush is needed only for conventional zone files. - */ - if (ZONEFS_I(inode)->i_ztype == ZONEFS_ZTYPE_CNV) - ret = file_write_and_wait_range(file, start, end); - if (!ret) - ret = blkdev_issue_flush(inode->i_sb->s_bdev); - - if (ret) - zonefs_io_error(inode, true); - - return ret; -} - -static vm_fault_t zonefs_filemap_page_mkwrite(struct vm_fault *vmf) -{ - struct inode *inode = file_inode(vmf->vma->vm_file); - struct zonefs_inode_info *zi = ZONEFS_I(inode); - vm_fault_t ret; - - if (unlikely(IS_IMMUTABLE(inode))) - return VM_FAULT_SIGBUS; - - /* - * Sanity check: only conventional zone files can have shared - * writeable mappings. - */ - if (WARN_ON_ONCE(zi->i_ztype != ZONEFS_ZTYPE_CNV)) - return VM_FAULT_NOPAGE; - - sb_start_pagefault(inode->i_sb); - file_update_time(vmf->vma->vm_file); - - /* Serialize against truncates */ - filemap_invalidate_lock_shared(inode->i_mapping); - ret = iomap_page_mkwrite(vmf, &zonefs_write_iomap_ops); - filemap_invalidate_unlock_shared(inode->i_mapping); - - sb_end_pagefault(inode->i_sb); - return ret; -} - -static const struct vm_operations_struct zonefs_file_vm_ops = { - .fault = filemap_fault, - .map_pages = filemap_map_pages, - .page_mkwrite = zonefs_filemap_page_mkwrite, -}; - -static int zonefs_file_mmap(struct file *file, struct vm_area_struct *vma) -{ - /* - * Conventional zones accept random writes, so their files can support - * shared writable mappings. For sequential zone files, only read - * mappings are possible since there are no guarantees for write - * ordering between msync() and page cache writeback. - */ - if (ZONEFS_I(file_inode(file))->i_ztype == ZONEFS_ZTYPE_SEQ && - (vma->vm_flags & VM_SHARED) && (vma->vm_flags & VM_MAYWRITE)) - return -EINVAL; - - file_accessed(file); - vma->vm_ops = &zonefs_file_vm_ops; - - return 0; -} - -static loff_t zonefs_file_llseek(struct file *file, loff_t offset, int whence) -{ - loff_t isize = i_size_read(file_inode(file)); - - /* - * Seeks are limited to below the zone size for conventional zones - * and below the zone write pointer for sequential zones. In both - * cases, this limit is the inode size. - */ - return generic_file_llseek_size(file, offset, whence, isize, isize); -} - -static int zonefs_file_write_dio_end_io(struct kiocb *iocb, ssize_t size, - int error, unsigned int flags) -{ - struct inode *inode = file_inode(iocb->ki_filp); - struct zonefs_inode_info *zi = ZONEFS_I(inode); - - if (error) { - zonefs_io_error(inode, true); - return error; - } - - if (size && zi->i_ztype != ZONEFS_ZTYPE_CNV) { - /* - * Note that we may be seeing completions out of order, - * but that is not a problem since a write completed - * successfully necessarily means that all preceding writes - * were also successful. So we can safely increase the inode - * size to the write end location. - */ - mutex_lock(&zi->i_truncate_mutex); - if (i_size_read(inode) < iocb->ki_pos + size) { - zonefs_update_stats(inode, iocb->ki_pos + size); - zonefs_i_size_write(inode, iocb->ki_pos + size); - } - mutex_unlock(&zi->i_truncate_mutex); - } - - return 0; -} - -static const struct iomap_dio_ops zonefs_write_dio_ops = { - .end_io = zonefs_file_write_dio_end_io, -}; - -static ssize_t zonefs_file_dio_append(struct kiocb *iocb, struct iov_iter *from) -{ - struct inode *inode = file_inode(iocb->ki_filp); - struct zonefs_inode_info *zi = ZONEFS_I(inode); - struct block_device *bdev = inode->i_sb->s_bdev; - unsigned int max = bdev_max_zone_append_sectors(bdev); - struct bio *bio; - ssize_t size; - int nr_pages; - ssize_t ret; - - max = ALIGN_DOWN(max << SECTOR_SHIFT, inode->i_sb->s_blocksize); - iov_iter_truncate(from, max); - - nr_pages = iov_iter_npages(from, BIO_MAX_VECS); - if (!nr_pages) - return 0; - - bio = bio_alloc(bdev, nr_pages, - REQ_OP_ZONE_APPEND | REQ_SYNC | REQ_IDLE, GFP_NOFS); - bio->bi_iter.bi_sector = zi->i_zsector; - bio->bi_ioprio = iocb->ki_ioprio; - if (iocb_is_dsync(iocb)) - bio->bi_opf |= REQ_FUA; - - ret = bio_iov_iter_get_pages(bio, from); - if (unlikely(ret)) - goto out_release; - - size = bio->bi_iter.bi_size; - task_io_account_write(size); - - if (iocb->ki_flags & IOCB_HIPRI) - bio_set_polled(bio, iocb); - - ret = submit_bio_wait(bio); - - /* - * If the file zone was written underneath the file system, the zone - * write pointer may not be where we expect it to be, but the zone - * append write can still succeed. So check manually that we wrote where - * we intended to, that is, at zi->i_wpoffset. - */ - if (!ret) { - sector_t wpsector = - zi->i_zsector + (zi->i_wpoffset >> SECTOR_SHIFT); - - if (bio->bi_iter.bi_sector != wpsector) { - zonefs_warn(inode->i_sb, - "Corrupted write pointer %llu for zone at %llu\n", - wpsector, zi->i_zsector); - ret = -EIO; - } - } - - zonefs_file_write_dio_end_io(iocb, size, ret, 0); - trace_zonefs_file_dio_append(inode, size, ret); - -out_release: - bio_release_pages(bio, false); - bio_put(bio); - - if (ret >= 0) { - iocb->ki_pos += size; - return size; - } - - return ret; -} - -/* - * Do not exceed the LFS limits nor the file zone size. If pos is under the - * limit it becomes a short access. If it exceeds the limit, return -EFBIG. - */ -static loff_t zonefs_write_check_limits(struct file *file, loff_t pos, - loff_t count) -{ - struct inode *inode = file_inode(file); - struct zonefs_inode_info *zi = ZONEFS_I(inode); - loff_t limit = rlimit(RLIMIT_FSIZE); - loff_t max_size = zi->i_max_size; - - if (limit != RLIM_INFINITY) { - if (pos >= limit) { - send_sig(SIGXFSZ, current, 0); - return -EFBIG; - } - count = min(count, limit - pos); - } - - if (!(file->f_flags & O_LARGEFILE)) - max_size = min_t(loff_t, MAX_NON_LFS, max_size); - - if (unlikely(pos >= max_size)) - return -EFBIG; - - return min(count, max_size - pos); -} - -static ssize_t zonefs_write_checks(struct kiocb *iocb, struct iov_iter *from) -{ - struct file *file = iocb->ki_filp; - struct inode *inode = file_inode(file); - struct zonefs_inode_info *zi = ZONEFS_I(inode); - loff_t count; - - if (IS_SWAPFILE(inode)) - return -ETXTBSY; - - if (!iov_iter_count(from)) - return 0; - - if ((iocb->ki_flags & IOCB_NOWAIT) && !(iocb->ki_flags & IOCB_DIRECT)) - return -EINVAL; - - if (iocb->ki_flags & IOCB_APPEND) { - if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) - return -EINVAL; - mutex_lock(&zi->i_truncate_mutex); - iocb->ki_pos = zi->i_wpoffset; - mutex_unlock(&zi->i_truncate_mutex); - } - - count = zonefs_write_check_limits(file, iocb->ki_pos, - iov_iter_count(from)); - if (count < 0) - return count; - - iov_iter_truncate(from, count); - return iov_iter_count(from); -} - -/* - * Handle direct writes. For sequential zone files, this is the only possible - * write path. For these files, check that the user is issuing writes - * sequentially from the end of the file. This code assumes that the block layer - * delivers write requests to the device in sequential order. This is always the - * case if a block IO scheduler implementing the ELEVATOR_F_ZBD_SEQ_WRITE - * elevator feature is being used (e.g. mq-deadline). The block layer always - * automatically select such an elevator for zoned block devices during the - * device initialization. - */ -static ssize_t zonefs_file_dio_write(struct kiocb *iocb, struct iov_iter *from) -{ - struct inode *inode = file_inode(iocb->ki_filp); - struct zonefs_inode_info *zi = ZONEFS_I(inode); - struct super_block *sb = inode->i_sb; - bool sync = is_sync_kiocb(iocb); - bool append = false; - ssize_t ret, count; - - /* - * For async direct IOs to sequential zone files, refuse IOCB_NOWAIT - * as this can cause write reordering (e.g. the first aio gets EAGAIN - * on the inode lock but the second goes through but is now unaligned). - */ - if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && !sync && - (iocb->ki_flags & IOCB_NOWAIT)) - return -EOPNOTSUPP; - - if (iocb->ki_flags & IOCB_NOWAIT) { - if (!inode_trylock(inode)) - return -EAGAIN; - } else { - inode_lock(inode); - } - - count = zonefs_write_checks(iocb, from); - if (count <= 0) { - ret = count; - goto inode_unlock; - } - - if ((iocb->ki_pos | count) & (sb->s_blocksize - 1)) { - ret = -EINVAL; - goto inode_unlock; - } - - /* Enforce sequential writes (append only) in sequential zones */ - if (zi->i_ztype == ZONEFS_ZTYPE_SEQ) { - mutex_lock(&zi->i_truncate_mutex); - if (iocb->ki_pos != zi->i_wpoffset) { - mutex_unlock(&zi->i_truncate_mutex); - ret = -EINVAL; - goto inode_unlock; - } - mutex_unlock(&zi->i_truncate_mutex); - append = sync; - } - - if (append) - ret = zonefs_file_dio_append(iocb, from); - else - ret = iomap_dio_rw(iocb, from, &zonefs_write_iomap_ops, - &zonefs_write_dio_ops, 0, NULL, 0); - if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && - (ret > 0 || ret == -EIOCBQUEUED)) { - if (ret > 0) - count = ret; - - /* - * Update the zone write pointer offset assuming the write - * operation succeeded. If it did not, the error recovery path - * will correct it. Also do active seq file accounting. - */ - mutex_lock(&zi->i_truncate_mutex); - zi->i_wpoffset += count; - zonefs_account_active(inode); - mutex_unlock(&zi->i_truncate_mutex); - } - -inode_unlock: - inode_unlock(inode); - - return ret; -} - -static ssize_t zonefs_file_buffered_write(struct kiocb *iocb, - struct iov_iter *from) -{ - struct inode *inode = file_inode(iocb->ki_filp); - struct zonefs_inode_info *zi = ZONEFS_I(inode); - ssize_t ret; - - /* - * Direct IO writes are mandatory for sequential zone files so that the - * write IO issuing order is preserved. - */ - if (zi->i_ztype != ZONEFS_ZTYPE_CNV) - return -EIO; - - if (iocb->ki_flags & IOCB_NOWAIT) { - if (!inode_trylock(inode)) - return -EAGAIN; - } else { - inode_lock(inode); - } - - ret = zonefs_write_checks(iocb, from); - if (ret <= 0) - goto inode_unlock; - - ret = iomap_file_buffered_write(iocb, from, &zonefs_write_iomap_ops); - if (ret > 0) - iocb->ki_pos += ret; - else if (ret == -EIO) - zonefs_io_error(inode, true); - -inode_unlock: - inode_unlock(inode); - if (ret > 0) - ret = generic_write_sync(iocb, ret); - - return ret; -} - -static ssize_t zonefs_file_write_iter(struct kiocb *iocb, struct iov_iter *from) -{ - struct inode *inode = file_inode(iocb->ki_filp); - - if (unlikely(IS_IMMUTABLE(inode))) - return -EPERM; - - if (sb_rdonly(inode->i_sb)) - return -EROFS; - - /* Write operations beyond the zone size are not allowed */ - if (iocb->ki_pos >= ZONEFS_I(inode)->i_max_size) - return -EFBIG; - - if (iocb->ki_flags & IOCB_DIRECT) { - ssize_t ret = zonefs_file_dio_write(iocb, from); - if (ret != -ENOTBLK) - return ret; - } - - return zonefs_file_buffered_write(iocb, from); -} - -static int zonefs_file_read_dio_end_io(struct kiocb *iocb, ssize_t size, - int error, unsigned int flags) -{ - if (error) { - zonefs_io_error(file_inode(iocb->ki_filp), false); - return error; - } - - return 0; -} - -static const struct iomap_dio_ops zonefs_read_dio_ops = { - .end_io = zonefs_file_read_dio_end_io, -}; - -static ssize_t zonefs_file_read_iter(struct kiocb *iocb, struct iov_iter *to) -{ - struct inode *inode = file_inode(iocb->ki_filp); - struct zonefs_inode_info *zi = ZONEFS_I(inode); - struct super_block *sb = inode->i_sb; - loff_t isize; - ssize_t ret; - - /* Offline zones cannot be read */ - if (unlikely(IS_IMMUTABLE(inode) && !(inode->i_mode & 0777))) - return -EPERM; - - if (iocb->ki_pos >= zi->i_max_size) - return 0; - - if (iocb->ki_flags & IOCB_NOWAIT) { - if (!inode_trylock_shared(inode)) - return -EAGAIN; - } else { - inode_lock_shared(inode); - } - - /* Limit read operations to written data */ - mutex_lock(&zi->i_truncate_mutex); - isize = i_size_read(inode); - if (iocb->ki_pos >= isize) { - mutex_unlock(&zi->i_truncate_mutex); - ret = 0; - goto inode_unlock; - } - iov_iter_truncate(to, isize - iocb->ki_pos); - mutex_unlock(&zi->i_truncate_mutex); - - if (iocb->ki_flags & IOCB_DIRECT) { - size_t count = iov_iter_count(to); - - if ((iocb->ki_pos | count) & (sb->s_blocksize - 1)) { - ret = -EINVAL; - goto inode_unlock; - } - file_accessed(iocb->ki_filp); - ret = iomap_dio_rw(iocb, to, &zonefs_read_iomap_ops, - &zonefs_read_dio_ops, 0, NULL, 0); - } else { - ret = generic_file_read_iter(iocb, to); - if (ret == -EIO) - zonefs_io_error(inode, false); - } - -inode_unlock: - inode_unlock_shared(inode); - - return ret; -} - -/* - * Write open accounting is done only for sequential files. - */ -static inline bool zonefs_seq_file_need_wro(struct inode *inode, - struct file *file) -{ - struct zonefs_inode_info *zi = ZONEFS_I(inode); - - if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) - return false; - - if (!(file->f_mode & FMODE_WRITE)) - return false; - - return true; -} - -static int zonefs_seq_file_write_open(struct inode *inode) -{ - struct zonefs_inode_info *zi = ZONEFS_I(inode); - int ret = 0; - - mutex_lock(&zi->i_truncate_mutex); - - if (!zi->i_wr_refcnt) { - struct zonefs_sb_info *sbi = ZONEFS_SB(inode->i_sb); - unsigned int wro = atomic_inc_return(&sbi->s_wro_seq_files); - - if (sbi->s_mount_opts & ZONEFS_MNTOPT_EXPLICIT_OPEN) { - - if (sbi->s_max_wro_seq_files - && wro > sbi->s_max_wro_seq_files) { - atomic_dec(&sbi->s_wro_seq_files); - ret = -EBUSY; - goto unlock; - } - - if (i_size_read(inode) < zi->i_max_size) { - ret = zonefs_zone_mgmt(inode, REQ_OP_ZONE_OPEN); - if (ret) { - atomic_dec(&sbi->s_wro_seq_files); - goto unlock; - } - zi->i_flags |= ZONEFS_ZONE_OPEN; - zonefs_account_active(inode); - } - } - } - - zi->i_wr_refcnt++; - -unlock: - mutex_unlock(&zi->i_truncate_mutex); - - return ret; -} - -static int zonefs_file_open(struct inode *inode, struct file *file) -{ - int ret; - - ret = generic_file_open(inode, file); - if (ret) - return ret; - - if (zonefs_seq_file_need_wro(inode, file)) - return zonefs_seq_file_write_open(inode); - - return 0; -} - -static void zonefs_seq_file_write_close(struct inode *inode) -{ - struct zonefs_inode_info *zi = ZONEFS_I(inode); - struct super_block *sb = inode->i_sb; - struct zonefs_sb_info *sbi = ZONEFS_SB(sb); - int ret = 0; - - mutex_lock(&zi->i_truncate_mutex); - - zi->i_wr_refcnt--; - if (zi->i_wr_refcnt) - goto unlock; - - /* - * The file zone may not be open anymore (e.g. the file was truncated to - * its maximum size or it was fully written). For this case, we only - * need to decrement the write open count. - */ - if (zi->i_flags & ZONEFS_ZONE_OPEN) { - ret = zonefs_zone_mgmt(inode, REQ_OP_ZONE_CLOSE); - if (ret) { - __zonefs_io_error(inode, false); - /* - * Leaving zones explicitly open may lead to a state - * where most zones cannot be written (zone resources - * exhausted). So take preventive action by remounting - * read-only. - */ - if (zi->i_flags & ZONEFS_ZONE_OPEN && - !(sb->s_flags & SB_RDONLY)) { - zonefs_warn(sb, - "closing zone at %llu failed %d\n", - zi->i_zsector, ret); - zonefs_warn(sb, - "remounting filesystem read-only\n"); - sb->s_flags |= SB_RDONLY; - } - goto unlock; - } - - zi->i_flags &= ~ZONEFS_ZONE_OPEN; - zonefs_account_active(inode); - } - - atomic_dec(&sbi->s_wro_seq_files); - -unlock: - mutex_unlock(&zi->i_truncate_mutex); -} - -static int zonefs_file_release(struct inode *inode, struct file *file) -{ - /* - * If we explicitly open a zone we must close it again as well, but the - * zone management operation can fail (either due to an IO error or as - * the zone has gone offline or read-only). Make sure we don't fail the - * close(2) for user-space. - */ - if (zonefs_seq_file_need_wro(inode, file)) - zonefs_seq_file_write_close(inode); - - return 0; -} - -static const struct file_operations zonefs_file_operations = { - .open = zonefs_file_open, - .release = zonefs_file_release, - .fsync = zonefs_file_fsync, - .mmap = zonefs_file_mmap, - .llseek = zonefs_file_llseek, - .read_iter = zonefs_file_read_iter, - .write_iter = zonefs_file_write_iter, - .splice_read = generic_file_splice_read, - .splice_write = iter_file_splice_write, - .iopoll = iocb_bio_iopoll, -}; - static struct kmem_cache *zonefs_inode_cachep; static struct inode *zonefs_alloc_inode(struct super_block *sb) @@ -1282,7 +414,6 @@ static struct inode *zonefs_alloc_inode(struct super_block *sb) inode_init_once(&zi->i_vnode); mutex_init(&zi->i_truncate_mutex); zi->i_wr_refcnt = 0; - zi->i_flags = 0; return &zi->i_vnode; } @@ -1315,8 +446,8 @@ static int zonefs_statfs(struct dentry *dentry, struct kstatfs *buf) buf->f_bavail = buf->f_bfree; for (t = 0; t < ZONEFS_ZTYPE_MAX; t++) { - if (sbi->s_nr_files[t]) - buf->f_files += sbi->s_nr_files[t] + 1; + if (sbi->s_zgroup[t].g_nr_zones) + buf->f_files += sbi->s_zgroup[t].g_nr_zones + 1; } buf->f_ffree = 0; @@ -1408,13 +539,47 @@ static int zonefs_remount(struct super_block *sb, int *flags, char *data) return zonefs_parse_options(sb, data); } -static const struct super_operations zonefs_sops = { - .alloc_inode = zonefs_alloc_inode, - .free_inode = zonefs_free_inode, - .statfs = zonefs_statfs, - .remount_fs = zonefs_remount, - .show_options = zonefs_show_options, -}; +static int zonefs_inode_setattr(struct user_namespace *mnt_userns, + struct dentry *dentry, struct iattr *iattr) +{ + struct inode *inode = d_inode(dentry); + int ret; + + if (unlikely(IS_IMMUTABLE(inode))) + return -EPERM; + + ret = setattr_prepare(&init_user_ns, dentry, iattr); + if (ret) + return ret; + + /* + * Since files and directories cannot be created nor deleted, do not + * allow setting any write attributes on the sub-directories grouping + * files by zone type. + */ + if ((iattr->ia_valid & ATTR_MODE) && S_ISDIR(inode->i_mode) && + (iattr->ia_mode & 0222)) + return -EPERM; + + if (((iattr->ia_valid & ATTR_UID) && + !uid_eq(iattr->ia_uid, inode->i_uid)) || + ((iattr->ia_valid & ATTR_GID) && + !gid_eq(iattr->ia_gid, inode->i_gid))) { + ret = dquot_transfer(mnt_userns, inode, iattr); + if (ret) + return ret; + } + + if (iattr->ia_valid & ATTR_SIZE) { + ret = zonefs_file_truncate(inode, iattr->ia_size); + if (ret) + return ret; + } + + setattr_copy(&init_user_ns, inode, iattr); + + return 0; +} static const struct inode_operations zonefs_dir_inode_operations = { .lookup = simple_lookup, @@ -1422,11 +587,11 @@ static const struct inode_operations zonefs_dir_inode_operations = { }; static void zonefs_init_dir_inode(struct inode *parent, struct inode *inode, - enum zonefs_ztype type) + enum zonefs_ztype ztype) { struct super_block *sb = parent->i_sb; - inode->i_ino = bdev_nr_zones(sb->s_bdev) + type + 1; + inode->i_ino = bdev_nr_zones(sb->s_bdev) + ztype + 1; inode_init_owner(&init_user_ns, inode, parent, S_IFDIR | 0555); inode->i_op = &zonefs_dir_inode_operations; inode->i_fop = &simple_dir_operations; @@ -1434,73 +599,38 @@ static void zonefs_init_dir_inode(struct inode *parent, struct inode *inode, inc_nlink(parent); } -static int zonefs_init_file_inode(struct inode *inode, struct blk_zone *zone, - enum zonefs_ztype type) +static const struct inode_operations zonefs_file_inode_operations = { + .setattr = zonefs_inode_setattr, +}; + +static void zonefs_init_file_inode(struct inode *inode, + struct zonefs_zone *z) { struct super_block *sb = inode->i_sb; struct zonefs_sb_info *sbi = ZONEFS_SB(sb); - struct zonefs_inode_info *zi = ZONEFS_I(inode); - int ret = 0; - inode->i_ino = zone->start >> sbi->s_zone_sectors_shift; + inode->i_private = z; + + inode->i_ino = z->z_sector >> sbi->s_zone_sectors_shift; inode->i_mode = S_IFREG | sbi->s_perm; - - zi->i_ztype = type; - zi->i_zsector = zone->start; - zi->i_zone_size = zone->len << SECTOR_SHIFT; - if (zi->i_zone_size > bdev_zone_sectors(sb->s_bdev) << SECTOR_SHIFT && - !(sbi->s_features & ZONEFS_F_AGGRCNV)) { - zonefs_err(sb, - "zone size %llu doesn't match device's zone sectors %llu\n", - zi->i_zone_size, - bdev_zone_sectors(sb->s_bdev) << SECTOR_SHIFT); - return -EINVAL; - } - - zi->i_max_size = min_t(loff_t, MAX_LFS_FILESIZE, - zone->capacity << SECTOR_SHIFT); - zi->i_wpoffset = zonefs_check_zone_condition(inode, zone, true, true); - inode->i_uid = sbi->s_uid; inode->i_gid = sbi->s_gid; - inode->i_size = zi->i_wpoffset; - inode->i_blocks = zi->i_max_size >> SECTOR_SHIFT; + inode->i_size = z->z_wpoffset; + inode->i_blocks = z->z_capacity >> SECTOR_SHIFT; inode->i_op = &zonefs_file_inode_operations; inode->i_fop = &zonefs_file_operations; inode->i_mapping->a_ops = &zonefs_file_aops; - sb->s_maxbytes = max(zi->i_max_size, sb->s_maxbytes); - sbi->s_blocks += zi->i_max_size >> sb->s_blocksize_bits; - sbi->s_used_blocks += zi->i_wpoffset >> sb->s_blocksize_bits; - - mutex_lock(&zi->i_truncate_mutex); - - /* - * For sequential zones, make sure that any open zone is closed first - * to ensure that the initial number of open zones is 0, in sync with - * the open zone accounting done when the mount option - * ZONEFS_MNTOPT_EXPLICIT_OPEN is used. - */ - if (type == ZONEFS_ZTYPE_SEQ && - (zone->cond == BLK_ZONE_COND_IMP_OPEN || - zone->cond == BLK_ZONE_COND_EXP_OPEN)) { - ret = zonefs_zone_mgmt(inode, REQ_OP_ZONE_CLOSE); - if (ret) - goto unlock; - } - - zonefs_account_active(inode); - -unlock: - mutex_unlock(&zi->i_truncate_mutex); - - return ret; + /* Update the inode access rights depending on the zone condition */ + z->z_flags |= ZONEFS_ZONE_INIT_MODE; + zonefs_inode_update_mode(inode); } static struct dentry *zonefs_create_inode(struct dentry *parent, - const char *name, struct blk_zone *zone, - enum zonefs_ztype type) + const char *name, + struct zonefs_zone *z, + enum zonefs_ztype ztype) { struct inode *dir = d_inode(parent); struct dentry *dentry; @@ -1516,15 +646,10 @@ static struct dentry *zonefs_create_inode(struct dentry *parent, goto dput; inode->i_ctime = inode->i_mtime = inode->i_atime = dir->i_ctime; - if (zone) { - ret = zonefs_init_file_inode(inode, zone, type); - if (ret) { - iput(inode); - goto dput; - } - } else { - zonefs_init_dir_inode(dir, inode, type); - } + if (z) + zonefs_init_file_inode(inode, z); + else + zonefs_init_dir_inode(dir, inode, ztype); d_add(dentry, inode); dir->i_size++; @@ -1540,100 +665,51 @@ dput: struct zonefs_zone_data { struct super_block *sb; unsigned int nr_zones[ZONEFS_ZTYPE_MAX]; + sector_t cnv_zone_start; struct blk_zone *zones; }; /* - * Create a zone group and populate it with zone files. + * Create the inodes for a zone group. */ -static int zonefs_create_zgroup(struct zonefs_zone_data *zd, - enum zonefs_ztype type) +static int zonefs_create_zgroup_inodes(struct super_block *sb, + enum zonefs_ztype ztype) { - struct super_block *sb = zd->sb; struct zonefs_sb_info *sbi = ZONEFS_SB(sb); - struct blk_zone *zone, *next, *end; - const char *zgroup_name; - char *file_name; + struct zonefs_zone_group *zgroup = &sbi->s_zgroup[ztype]; struct dentry *dir, *dent; - unsigned int n = 0; - int ret; + char *file_name; + int i, ret = 0; + + if (!zgroup) + return -ENOMEM; /* If the group is empty, there is nothing to do */ - if (!zd->nr_zones[type]) + if (!zgroup->g_nr_zones) return 0; file_name = kmalloc(ZONEFS_NAME_MAX, GFP_KERNEL); if (!file_name) return -ENOMEM; - if (type == ZONEFS_ZTYPE_CNV) - zgroup_name = "cnv"; - else - zgroup_name = "seq"; - - dir = zonefs_create_inode(sb->s_root, zgroup_name, NULL, type); + dir = zonefs_create_inode(sb->s_root, zonefs_zgroup_name(ztype), + NULL, ztype); if (IS_ERR(dir)) { ret = PTR_ERR(dir); goto free; } - /* - * The first zone contains the super block: skip it. - */ - end = zd->zones + bdev_nr_zones(sb->s_bdev); - for (zone = &zd->zones[1]; zone < end; zone = next) { - - next = zone + 1; - if (zonefs_zone_type(zone) != type) - continue; - - /* - * For conventional zones, contiguous zones can be aggregated - * together to form larger files. Note that this overwrites the - * length of the first zone of the set of contiguous zones - * aggregated together. If one offline or read-only zone is - * found, assume that all zones aggregated have the same - * condition. - */ - if (type == ZONEFS_ZTYPE_CNV && - (sbi->s_features & ZONEFS_F_AGGRCNV)) { - for (; next < end; next++) { - if (zonefs_zone_type(next) != type) - break; - zone->len += next->len; - zone->capacity += next->capacity; - if (next->cond == BLK_ZONE_COND_READONLY && - zone->cond != BLK_ZONE_COND_OFFLINE) - zone->cond = BLK_ZONE_COND_READONLY; - else if (next->cond == BLK_ZONE_COND_OFFLINE) - zone->cond = BLK_ZONE_COND_OFFLINE; - } - if (zone->capacity != zone->len) { - zonefs_err(sb, "Invalid conventional zone capacity\n"); - ret = -EINVAL; - goto free; - } - } - - /* - * Use the file number within its group as file name. - */ - snprintf(file_name, ZONEFS_NAME_MAX - 1, "%u", n); - dent = zonefs_create_inode(dir, file_name, zone, type); + for (i = 0; i < zgroup->g_nr_zones; i++) { + /* Use the zone number within its group as the file name */ + snprintf(file_name, ZONEFS_NAME_MAX - 1, "%u", i); + dent = zonefs_create_inode(dir, file_name, + &zgroup->g_zones[i], ztype); if (IS_ERR(dent)) { ret = PTR_ERR(dent); - goto free; + break; } - - n++; } - zonefs_info(sb, "Zone group \"%s\" has %u file%s\n", - zgroup_name, n, n > 1 ? "s" : ""); - - sbi->s_nr_files[type] = n; - ret = 0; - free: kfree(file_name); @@ -1644,21 +720,38 @@ static int zonefs_get_zone_info_cb(struct blk_zone *zone, unsigned int idx, void *data) { struct zonefs_zone_data *zd = data; + struct super_block *sb = zd->sb; + struct zonefs_sb_info *sbi = ZONEFS_SB(sb); /* - * Count the number of usable zones: the first zone at index 0 contains - * the super block and is ignored. + * We do not care about the first zone: it contains the super block + * and not exposed as a file. + */ + if (!idx) + return 0; + + /* + * Count the number of zones that will be exposed as files. + * For sequential zones, we always have as many files as zones. + * FOr conventional zones, the number of files depends on if we have + * conventional zones aggregation enabled. */ switch (zone->type) { case BLK_ZONE_TYPE_CONVENTIONAL: - zone->wp = zone->start + zone->len; - if (idx) - zd->nr_zones[ZONEFS_ZTYPE_CNV]++; + if (sbi->s_features & ZONEFS_F_AGGRCNV) { + /* One file per set of contiguous conventional zones */ + if (!(sbi->s_zgroup[ZONEFS_ZTYPE_CNV].g_nr_zones) || + zone->start != zd->cnv_zone_start) + sbi->s_zgroup[ZONEFS_ZTYPE_CNV].g_nr_zones++; + zd->cnv_zone_start = zone->start + zone->len; + } else { + /* One file per zone */ + sbi->s_zgroup[ZONEFS_ZTYPE_CNV].g_nr_zones++; + } break; case BLK_ZONE_TYPE_SEQWRITE_REQ: case BLK_ZONE_TYPE_SEQWRITE_PREF: - if (idx) - zd->nr_zones[ZONEFS_ZTYPE_SEQ]++; + sbi->s_zgroup[ZONEFS_ZTYPE_SEQ].g_nr_zones++; break; default: zonefs_err(zd->sb, "Unsupported zone type 0x%x\n", @@ -1698,11 +791,173 @@ static int zonefs_get_zone_info(struct zonefs_zone_data *zd) return 0; } -static inline void zonefs_cleanup_zone_info(struct zonefs_zone_data *zd) +static inline void zonefs_free_zone_info(struct zonefs_zone_data *zd) { kvfree(zd->zones); } +/* + * Create a zone group and populate it with zone files. + */ +static int zonefs_init_zgroup(struct super_block *sb, + struct zonefs_zone_data *zd, + enum zonefs_ztype ztype) +{ + struct zonefs_sb_info *sbi = ZONEFS_SB(sb); + struct zonefs_zone_group *zgroup = &sbi->s_zgroup[ztype]; + struct blk_zone *zone, *next, *end; + struct zonefs_zone *z; + unsigned int n = 0; + int ret; + + /* Allocate the zone group. If it is empty, we have nothing to do. */ + if (!zgroup->g_nr_zones) + return 0; + + zgroup->g_zones = kvcalloc(zgroup->g_nr_zones, + sizeof(struct zonefs_zone), GFP_KERNEL); + if (!zgroup->g_zones) + return -ENOMEM; + + /* + * Initialize the zone groups using the device zone information. + * We always skip the first zone as it contains the super block + * and is not use to back a file. + */ + end = zd->zones + bdev_nr_zones(sb->s_bdev); + for (zone = &zd->zones[1]; zone < end; zone = next) { + + next = zone + 1; + if (zonefs_zone_type(zone) != ztype) + continue; + + if (WARN_ON_ONCE(n >= zgroup->g_nr_zones)) + return -EINVAL; + + /* + * For conventional zones, contiguous zones can be aggregated + * together to form larger files. Note that this overwrites the + * length of the first zone of the set of contiguous zones + * aggregated together. If one offline or read-only zone is + * found, assume that all zones aggregated have the same + * condition. + */ + if (ztype == ZONEFS_ZTYPE_CNV && + (sbi->s_features & ZONEFS_F_AGGRCNV)) { + for (; next < end; next++) { + if (zonefs_zone_type(next) != ztype) + break; + zone->len += next->len; + zone->capacity += next->capacity; + if (next->cond == BLK_ZONE_COND_READONLY && + zone->cond != BLK_ZONE_COND_OFFLINE) + zone->cond = BLK_ZONE_COND_READONLY; + else if (next->cond == BLK_ZONE_COND_OFFLINE) + zone->cond = BLK_ZONE_COND_OFFLINE; + } + } + + z = &zgroup->g_zones[n]; + if (ztype == ZONEFS_ZTYPE_CNV) + z->z_flags |= ZONEFS_ZONE_CNV; + z->z_sector = zone->start; + z->z_size = zone->len << SECTOR_SHIFT; + if (z->z_size > bdev_zone_sectors(sb->s_bdev) << SECTOR_SHIFT && + !(sbi->s_features & ZONEFS_F_AGGRCNV)) { + zonefs_err(sb, + "Invalid zone size %llu (device zone sectors %llu)\n", + z->z_size, + bdev_zone_sectors(sb->s_bdev) << SECTOR_SHIFT); + return -EINVAL; + } + + z->z_capacity = min_t(loff_t, MAX_LFS_FILESIZE, + zone->capacity << SECTOR_SHIFT); + z->z_wpoffset = zonefs_check_zone_condition(sb, z, zone); + + sb->s_maxbytes = max(z->z_capacity, sb->s_maxbytes); + sbi->s_blocks += z->z_capacity >> sb->s_blocksize_bits; + sbi->s_used_blocks += z->z_wpoffset >> sb->s_blocksize_bits; + + /* + * For sequential zones, make sure that any open zone is closed + * first to ensure that the initial number of open zones is 0, + * in sync with the open zone accounting done when the mount + * option ZONEFS_MNTOPT_EXPLICIT_OPEN is used. + */ + if (ztype == ZONEFS_ZTYPE_SEQ && + (zone->cond == BLK_ZONE_COND_IMP_OPEN || + zone->cond == BLK_ZONE_COND_EXP_OPEN)) { + ret = zonefs_zone_mgmt(sb, z, REQ_OP_ZONE_CLOSE); + if (ret) + return ret; + } + + zonefs_account_active(sb, z); + + n++; + } + + if (WARN_ON_ONCE(n != zgroup->g_nr_zones)) + return -EINVAL; + + zonefs_info(sb, "Zone group \"%s\" has %u file%s\n", + zonefs_zgroup_name(ztype), + zgroup->g_nr_zones, + zgroup->g_nr_zones > 1 ? "s" : ""); + + return 0; +} + +static void zonefs_free_zgroups(struct super_block *sb) +{ + struct zonefs_sb_info *sbi = ZONEFS_SB(sb); + enum zonefs_ztype ztype; + + if (!sbi) + return; + + for (ztype = 0; ztype < ZONEFS_ZTYPE_MAX; ztype++) { + kvfree(sbi->s_zgroup[ztype].g_zones); + sbi->s_zgroup[ztype].g_zones = NULL; + } +} + +/* + * Create a zone group and populate it with zone files. + */ +static int zonefs_init_zgroups(struct super_block *sb) +{ + struct zonefs_zone_data zd; + enum zonefs_ztype ztype; + int ret; + + /* First get the device zone information */ + memset(&zd, 0, sizeof(struct zonefs_zone_data)); + zd.sb = sb; + ret = zonefs_get_zone_info(&zd); + if (ret) + goto cleanup; + + /* Allocate and initialize the zone groups */ + for (ztype = 0; ztype < ZONEFS_ZTYPE_MAX; ztype++) { + ret = zonefs_init_zgroup(sb, &zd, ztype); + if (ret) { + zonefs_info(sb, + "Zone group \"%s\" initialization failed\n", + zonefs_zgroup_name(ztype)); + break; + } + } + +cleanup: + zonefs_free_zone_info(&zd); + if (ret) + zonefs_free_zgroups(sb); + + return ret; +} + /* * Read super block information from the device. */ @@ -1785,6 +1040,14 @@ free_page: return ret; } +static const struct super_operations zonefs_sops = { + .alloc_inode = zonefs_alloc_inode, + .free_inode = zonefs_free_inode, + .statfs = zonefs_statfs, + .remount_fs = zonefs_remount, + .show_options = zonefs_show_options, +}; + /* * Check that the device is zoned. If it is, get the list of zones and create * sub-directories and files according to the device zone configuration and @@ -1792,7 +1055,6 @@ free_page: */ static int zonefs_fill_super(struct super_block *sb, void *data, int silent) { - struct zonefs_zone_data zd; struct zonefs_sb_info *sbi; struct inode *inode; enum zonefs_ztype t; @@ -1845,16 +1107,6 @@ static int zonefs_fill_super(struct super_block *sb, void *data, int silent) if (ret) return ret; - memset(&zd, 0, sizeof(struct zonefs_zone_data)); - zd.sb = sb; - ret = zonefs_get_zone_info(&zd); - if (ret) - goto cleanup; - - ret = zonefs_sysfs_register(sb); - if (ret) - goto cleanup; - zonefs_info(sb, "Mounting %u zones", bdev_nr_zones(sb->s_bdev)); if (!sbi->s_max_wro_seq_files && @@ -1865,6 +1117,11 @@ static int zonefs_fill_super(struct super_block *sb, void *data, int silent) sbi->s_mount_opts &= ~ZONEFS_MNTOPT_EXPLICIT_OPEN; } + /* Initialize the zone groups */ + ret = zonefs_init_zgroups(sb); + if (ret) + goto cleanup; + /* Create root directory inode */ ret = -ENOMEM; inode = new_inode(sb); @@ -1884,13 +1141,19 @@ static int zonefs_fill_super(struct super_block *sb, void *data, int silent) /* Create and populate files in zone groups directories */ for (t = 0; t < ZONEFS_ZTYPE_MAX; t++) { - ret = zonefs_create_zgroup(&zd, t); + ret = zonefs_create_zgroup_inodes(sb, t); if (ret) - break; + goto cleanup; } + ret = zonefs_sysfs_register(sb); + if (ret) + goto cleanup; + + return 0; + cleanup: - zonefs_cleanup_zone_info(&zd); + zonefs_free_zgroups(sb); return ret; } @@ -1909,6 +1172,7 @@ static void zonefs_kill_super(struct super_block *sb) d_genocide(sb->s_root); zonefs_sysfs_unregister(sb); + zonefs_free_zgroups(sb); kill_block_super(sb); kfree(sbi); } diff --git a/fs/zonefs/trace.h b/fs/zonefs/trace.h index 42edcfd393ed..9969db3a9c7d 100644 --- a/fs/zonefs/trace.h +++ b/fs/zonefs/trace.h @@ -20,8 +20,9 @@ #define show_dev(dev) MAJOR(dev), MINOR(dev) TRACE_EVENT(zonefs_zone_mgmt, - TP_PROTO(struct inode *inode, enum req_op op), - TP_ARGS(inode, op), + TP_PROTO(struct super_block *sb, struct zonefs_zone *z, + enum req_op op), + TP_ARGS(sb, z, op), TP_STRUCT__entry( __field(dev_t, dev) __field(ino_t, ino) @@ -30,12 +31,12 @@ TRACE_EVENT(zonefs_zone_mgmt, __field(sector_t, nr_sectors) ), TP_fast_assign( - __entry->dev = inode->i_sb->s_dev; - __entry->ino = inode->i_ino; + __entry->dev = sb->s_dev; + __entry->ino = + z->z_sector >> ZONEFS_SB(sb)->s_zone_sectors_shift; __entry->op = op; - __entry->sector = ZONEFS_I(inode)->i_zsector; - __entry->nr_sectors = - ZONEFS_I(inode)->i_zone_size >> SECTOR_SHIFT; + __entry->sector = z->z_sector; + __entry->nr_sectors = z->z_size >> SECTOR_SHIFT; ), TP_printk("bdev=(%d,%d), ino=%lu op=%s, sector=%llu, nr_sectors=%llu", show_dev(__entry->dev), (unsigned long)__entry->ino, @@ -58,9 +59,10 @@ TRACE_EVENT(zonefs_file_dio_append, TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->ino = inode->i_ino; - __entry->sector = ZONEFS_I(inode)->i_zsector; + __entry->sector = zonefs_inode_zone(inode)->z_sector; __entry->size = size; - __entry->wpoffset = ZONEFS_I(inode)->i_wpoffset; + __entry->wpoffset = + zonefs_inode_zone(inode)->z_wpoffset; __entry->ret = ret; ), TP_printk("bdev=(%d, %d), ino=%lu, sector=%llu, size=%zu, wpoffset=%llu, ret=%zu", diff --git a/fs/zonefs/zonefs.h b/fs/zonefs/zonefs.h index 1dbe78119ff1..2d626e18b141 100644 --- a/fs/zonefs/zonefs.h +++ b/fs/zonefs/zonefs.h @@ -39,10 +39,41 @@ static inline enum zonefs_ztype zonefs_zone_type(struct blk_zone *zone) return ZONEFS_ZTYPE_SEQ; } -#define ZONEFS_ZONE_OPEN (1U << 0) -#define ZONEFS_ZONE_ACTIVE (1U << 1) -#define ZONEFS_ZONE_OFFLINE (1U << 2) -#define ZONEFS_ZONE_READONLY (1U << 3) +#define ZONEFS_ZONE_INIT_MODE (1U << 0) +#define ZONEFS_ZONE_OPEN (1U << 1) +#define ZONEFS_ZONE_ACTIVE (1U << 2) +#define ZONEFS_ZONE_OFFLINE (1U << 3) +#define ZONEFS_ZONE_READONLY (1U << 4) +#define ZONEFS_ZONE_CNV (1U << 31) + +/* + * In-memory per-file inode zone data. + */ +struct zonefs_zone { + /* Zone state flags */ + unsigned int z_flags; + + /* Zone start sector (512B unit) */ + sector_t z_sector; + + /* Zone size (bytes) */ + loff_t z_size; + + /* Zone capacity (file maximum size, bytes) */ + loff_t z_capacity; + + /* Write pointer offset in the zone (sequential zones only, bytes) */ + loff_t z_wpoffset; +}; + +/* + * In memory zone group information: all zones of a group are exposed + * as files, one file per zone. + */ +struct zonefs_zone_group { + unsigned int g_nr_zones; + struct zonefs_zone *g_zones; +}; /* * In-memory inode data. @@ -50,21 +81,6 @@ static inline enum zonefs_ztype zonefs_zone_type(struct blk_zone *zone) struct zonefs_inode_info { struct inode i_vnode; - /* File zone type */ - enum zonefs_ztype i_ztype; - - /* File zone start sector (512B unit) */ - sector_t i_zsector; - - /* File zone write pointer position (sequential zones only) */ - loff_t i_wpoffset; - - /* File maximum size */ - loff_t i_max_size; - - /* File zone size */ - loff_t i_zone_size; - /* * To serialise fully against both syscall and mmap based IO and * sequential file truncation, two locks are used. For serializing @@ -82,7 +98,6 @@ struct zonefs_inode_info { /* guarded by i_truncate_mutex */ unsigned int i_wr_refcnt; - unsigned int i_flags; }; static inline struct zonefs_inode_info *ZONEFS_I(struct inode *inode) @@ -90,6 +105,31 @@ static inline struct zonefs_inode_info *ZONEFS_I(struct inode *inode) return container_of(inode, struct zonefs_inode_info, i_vnode); } +static inline bool zonefs_zone_is_cnv(struct zonefs_zone *z) +{ + return z->z_flags & ZONEFS_ZONE_CNV; +} + +static inline bool zonefs_zone_is_seq(struct zonefs_zone *z) +{ + return !zonefs_zone_is_cnv(z); +} + +static inline struct zonefs_zone *zonefs_inode_zone(struct inode *inode) +{ + return inode->i_private; +} + +static inline bool zonefs_inode_is_cnv(struct inode *inode) +{ + return zonefs_zone_is_cnv(zonefs_inode_zone(inode)); +} + +static inline bool zonefs_inode_is_seq(struct inode *inode) +{ + return zonefs_zone_is_seq(zonefs_inode_zone(inode)); +} + /* * On-disk super block (block 0). */ @@ -181,7 +221,7 @@ struct zonefs_sb_info { uuid_t s_uuid; unsigned int s_zone_sectors_shift; - unsigned int s_nr_files[ZONEFS_ZTYPE_MAX]; + struct zonefs_zone_group s_zgroup[ZONEFS_ZTYPE_MAX]; loff_t s_blocks; loff_t s_used_blocks; @@ -209,6 +249,28 @@ static inline struct zonefs_sb_info *ZONEFS_SB(struct super_block *sb) #define zonefs_warn(sb, format, args...) \ pr_warn("zonefs (%s) WARNING: " format, sb->s_id, ## args) +/* In super.c */ +void zonefs_inode_account_active(struct inode *inode); +int zonefs_inode_zone_mgmt(struct inode *inode, enum req_op op); +void zonefs_i_size_write(struct inode *inode, loff_t isize); +void zonefs_update_stats(struct inode *inode, loff_t new_isize); +void __zonefs_io_error(struct inode *inode, bool write); + +static inline void zonefs_io_error(struct inode *inode, bool write) +{ + struct zonefs_inode_info *zi = ZONEFS_I(inode); + + mutex_lock(&zi->i_truncate_mutex); + __zonefs_io_error(inode, write); + mutex_unlock(&zi->i_truncate_mutex); +} + +/* In file.c */ +extern const struct address_space_operations zonefs_file_aops; +extern const struct file_operations zonefs_file_operations; +int zonefs_file_truncate(struct inode *inode, loff_t isize); + +/* In sysfs.c */ int zonefs_sysfs_register(struct super_block *sb); void zonefs_sysfs_unregister(struct super_block *sb); int zonefs_sysfs_init(void); diff --git a/include/linux/dcache.h b/include/linux/dcache.h index ccdb1c206a90..84be671d8131 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h @@ -140,7 +140,7 @@ struct dentry_operations { struct vfsmount *(*d_automount)(struct path *); int (*d_manage)(const struct path *, bool); struct dentry *(*d_real)(struct dentry *, const struct inode *); - void (*d_canonical_path)(const struct path *, struct path *); + int (*d_canonical_path)(const struct path *, struct path *); } ____cacheline_aligned; /* diff --git a/include/linux/fs.h b/include/linux/fs.h index ae5b793fe469..5ce727c0e975 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -166,6 +166,8 @@ typedef int (dio_iodone_t)(struct kiocb *iocb, loff_t offset, /* File supports DIRECT IO */ #define FMODE_CAN_ODIRECT ((__force fmode_t)0x400000) +#define FMODE_NOREUSE ((__force fmode_t)0x800000) + /* File was opened by fanotify and shouldn't generate fanotify events */ #define FMODE_NONOTIFY ((__force fmode_t)0x4000000) diff --git a/include/linux/fscrypt.h b/include/linux/fscrypt.h index 0b1cec249961..381905833059 100644 --- a/include/linux/fscrypt.h +++ b/include/linux/fscrypt.h @@ -17,6 +17,7 @@ #include #include #include +#include /* * The lengths of all file contents blocks must be divisible by this value. @@ -176,6 +177,11 @@ struct fscrypt_operations { */ struct block_device **(*get_devices)(struct super_block *sb, unsigned int *num_devs); + + ANDROID_KABI_RESERVE(1); + ANDROID_KABI_RESERVE(2); + ANDROID_KABI_RESERVE(3); + ANDROID_KABI_RESERVE(4); }; static inline struct fscrypt_info *fscrypt_get_info(const struct inode *inode) diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h index bb8467cd11ae..102913f26152 100644 --- a/include/linux/fsnotify.h +++ b/include/linux/fsnotify.h @@ -96,6 +96,29 @@ static inline int fsnotify_file(struct file *file, __u32 mask) if (file->f_mode & FMODE_NONOTIFY) return 0; + /* + * Open calls notify early on, so lower file system must be notified + */ + if (mask & FS_OPEN) { + if (path->dentry->d_op && + path->dentry->d_op->d_canonical_path) { + struct path lower_path; + int ret; + + ret = path->dentry->d_op->d_canonical_path(path, + &lower_path); + if (ret) + return ret; + + ret = fsnotify_parent(lower_path.dentry, mask, + &lower_path, FSNOTIFY_EVENT_PATH); + path_put(&lower_path); + + if (ret) + return ret; + } + } + return fsnotify_parent(path->dentry, mask, path, FSNOTIFY_EVENT_PATH); } diff --git a/include/linux/gunyah.h b/include/linux/gunyah.h index 0344b6988cfa..e4de51381041 100644 --- a/include/linux/gunyah.h +++ b/include/linux/gunyah.h @@ -157,9 +157,6 @@ enum gh_api_feature { bool arch_is_gh_guest(void); -u16 gh_api_version(void); -bool gh_api_has_feature(enum gh_api_feature feature); - #define GH_API_V1 1 #define GH_API_INFO_API_VERSION_MASK GENMASK_ULL(13, 0) @@ -172,6 +169,11 @@ struct gh_hypercall_hyp_identify_resp { u64 flags[3]; }; +static inline u16 gh_api_version(const struct gh_hypercall_hyp_identify_resp *gh_api) +{ + return FIELD_GET(GH_API_INFO_API_VERSION_MASK, gh_api->api_info); +} + void gh_hypercall_hyp_identify(struct gh_hypercall_hyp_identify_resp *hyp_identity); enum gh_error gh_hypercall_bell_send(u64 capid, u64 new_flags, u64 *old_flags); diff --git a/include/linux/intel-svm.h b/include/linux/intel-svm.h index 207ef06ba3e1..f9a0d44f6fdb 100644 --- a/include/linux/intel-svm.h +++ b/include/linux/intel-svm.h @@ -13,17 +13,4 @@ #define PRQ_RING_MASK ((0x1000 << PRQ_ORDER) - 0x20) #define PRQ_DEPTH ((0x1000 << PRQ_ORDER) >> 5) -/* - * The SVM_FLAG_SUPERVISOR_MODE flag requests a PASID which can be used only - * for access to kernel addresses. No IOTLB flushes are automatically done - * for kernel mappings; it is valid only for access to the kernel's static - * 1:1 mapping of physical memory — not to vmalloc or even module mappings. - * A future API addition may permit the use of such ranges, by means of an - * explicit IOTLB flush call (akin to the DMA API's unmap method). - * - * It is unlikely that we will ever hook into flush_tlb_kernel_range() to - * do such IOTLB flushes automatically. - */ -#define SVM_FLAG_SUPERVISOR_MODE BIT(0) - #endif /* __INTEL_SVM_H__ */ diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h index 0ded9e271523..a1484cdb3158 100644 --- a/include/linux/io_uring.h +++ b/include/linux/io_uring.h @@ -26,7 +26,7 @@ struct io_uring_cmd { const void *cmd; union { /* callback to defer completions to task context */ - void (*task_work_cb)(struct io_uring_cmd *cmd); + void (*task_work_cb)(struct io_uring_cmd *cmd, unsigned); /* used for polled completion */ void *cookie; }; @@ -38,9 +38,10 @@ struct io_uring_cmd { #if defined(CONFIG_IO_URING) int io_uring_cmd_import_fixed(u64 ubuf, unsigned long len, int rw, struct iov_iter *iter, void *ioucmd); -void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret, ssize_t res2); +void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret, ssize_t res2, + unsigned issue_flags); void io_uring_cmd_complete_in_task(struct io_uring_cmd *ioucmd, - void (*task_work_cb)(struct io_uring_cmd *)); + void (*task_work_cb)(struct io_uring_cmd *, unsigned)); struct sock *io_uring_get_socket(struct file *file); void __io_uring_cancel(bool cancel_all); void __io_uring_free(struct task_struct *tsk); @@ -71,11 +72,11 @@ static inline int io_uring_cmd_import_fixed(u64 ubuf, unsigned long len, int rw, return -EOPNOTSUPP; } static inline void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret, - ssize_t ret2) + ssize_t ret2, unsigned issue_flags) { } static inline void io_uring_cmd_complete_in_task(struct io_uring_cmd *ioucmd, - void (*task_work_cb)(struct io_uring_cmd *)) + void (*task_work_cb)(struct io_uring_cmd *, unsigned)) { } static inline struct sock *io_uring_get_socket(struct file *file) diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 3c9da1f8979e..7d2648058e43 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -64,6 +64,8 @@ struct iommu_domain_geometry { #define __IOMMU_DOMAIN_PT (1U << 2) /* Domain is identity mapped */ #define __IOMMU_DOMAIN_DMA_FQ (1U << 3) /* DMA-API uses flush queue */ +#define __IOMMU_DOMAIN_SVA (1U << 4) /* Shared process address space */ + /* * This are the possible domain-types * @@ -77,6 +79,8 @@ struct iommu_domain_geometry { * certain optimizations for these domains * IOMMU_DOMAIN_DMA_FQ - As above, but definitely using batched TLB * invalidation. + * IOMMU_DOMAIN_SVA - DMA addresses are shared process addresses + * represented by mm_struct's. */ #define IOMMU_DOMAIN_BLOCKED (0U) #define IOMMU_DOMAIN_IDENTITY (__IOMMU_DOMAIN_PT) @@ -86,15 +90,27 @@ struct iommu_domain_geometry { #define IOMMU_DOMAIN_DMA_FQ (__IOMMU_DOMAIN_PAGING | \ __IOMMU_DOMAIN_DMA_API | \ __IOMMU_DOMAIN_DMA_FQ) +#define IOMMU_DOMAIN_SVA (__IOMMU_DOMAIN_SVA) struct iommu_domain { unsigned type; const struct iommu_domain_ops *ops; unsigned long pgsize_bitmap; /* Bitmap of page sizes in use */ - iommu_fault_handler_t handler; - void *handler_token; struct iommu_domain_geometry geometry; struct iommu_dma_cookie *iova_cookie; + enum iommu_page_response_code (*iopf_handler)(struct iommu_fault *fault, + void *data); + void *fault_data; + union { + struct { + iommu_fault_handler_t handler; + void *handler_token; + }; + struct { /* IOMMU_DOMAIN_SVA */ + struct mm_struct *mm; + int users; + }; + }; }; static inline bool iommu_is_dma_domain(struct iommu_domain *domain) @@ -214,15 +230,15 @@ struct iommu_iotlb_gather { * driver init to device driver init (default no) * @dev_enable/disable_feat: per device entries to enable/disable * iommu specific features. - * @sva_bind: Bind process address space to device - * @sva_unbind: Unbind process address space from device - * @sva_get_pasid: Get PASID associated to a SVA handle * @page_response: handle page request response * @def_domain_type: device default domain type, return value: * - IOMMU_DOMAIN_IDENTITY: must use an identity domain * - IOMMU_DOMAIN_DMA: must use a dma domain * - 0: use the default setting * @default_domain_ops: the default ops for domains + * @remove_dev_pasid: Remove any translation configurations of a specific + * pasid, so that any DMA transactions with this pasid + * will be blocked by the hardware. * @pgsize_bitmap: bitmap of all possible supported page sizes * @owner: Driver module providing these ops */ @@ -247,16 +263,12 @@ struct iommu_ops { int (*dev_enable_feat)(struct device *dev, enum iommu_dev_features f); int (*dev_disable_feat)(struct device *dev, enum iommu_dev_features f); - struct iommu_sva *(*sva_bind)(struct device *dev, struct mm_struct *mm, - void *drvdata); - void (*sva_unbind)(struct iommu_sva *handle); - u32 (*sva_get_pasid)(struct iommu_sva *handle); - int (*page_response)(struct device *dev, struct iommu_fault_event *evt, struct iommu_page_response *msg); int (*def_domain_type)(struct device *dev); + void (*remove_dev_pasid)(struct device *dev, ioasid_t pasid); const struct iommu_domain_ops *default_domain_ops; unsigned long pgsize_bitmap; @@ -267,6 +279,7 @@ struct iommu_ops { * struct iommu_domain_ops - domain specific operations * @attach_dev: attach an iommu domain to a device * @detach_dev: detach an iommu domain from a device + * @set_dev_pasid: set an iommu domain to a pasid of device * @map: map a physically contiguous memory region to an iommu domain * @map_pages: map a physically contiguous set of pages of the same size to * an iommu domain. @@ -287,6 +300,8 @@ struct iommu_ops { struct iommu_domain_ops { int (*attach_dev)(struct iommu_domain *domain, struct device *dev); void (*detach_dev)(struct iommu_domain *domain, struct device *dev); + int (*set_dev_pasid)(struct iommu_domain *domain, struct device *dev, + ioasid_t pasid); int (*map)(struct iommu_domain *domain, unsigned long iova, phys_addr_t paddr, size_t size, int prot, gfp_t gfp); @@ -322,12 +337,14 @@ struct iommu_domain_ops { * @list: Used by the iommu-core to keep a list of registered iommus * @ops: iommu-ops for talking to this iommu * @dev: struct device for sysfs handling + * @max_pasids: number of supported PASIDs */ struct iommu_device { struct list_head list; const struct iommu_ops *ops; struct fwnode_handle *fwnode; struct device *dev; + u32 max_pasids; }; /** @@ -366,6 +383,7 @@ struct iommu_fault_param { * @fwspec: IOMMU fwspec data * @iommu_dev: IOMMU device this device is linked to * @priv: IOMMU Driver private data + * @max_pasids: number of PASIDs this device can consume * * TODO: migrate other per device data pointers under iommu_dev_data, e.g. * struct iommu_group *iommu_group; @@ -377,6 +395,7 @@ struct dev_iommu { struct iommu_fwspec *fwspec; struct iommu_device *iommu_dev; void *priv; + u32 max_pasids; }; int iommu_device_register(struct iommu_device *iommu, @@ -622,6 +641,7 @@ struct iommu_fwspec { */ struct iommu_sva { struct device *dev; + struct iommu_domain *domain; }; int iommu_fwspec_init(struct device *dev, struct fwnode_handle *iommu_fwnode, @@ -663,12 +683,6 @@ void iommu_release_device(struct device *dev); int iommu_dev_enable_feature(struct device *dev, enum iommu_dev_features f); int iommu_dev_disable_feature(struct device *dev, enum iommu_dev_features f); -struct iommu_sva *iommu_sva_bind_device(struct device *dev, - struct mm_struct *mm, - void *drvdata); -void iommu_sva_unbind_device(struct iommu_sva *handle); -u32 iommu_sva_get_pasid(struct iommu_sva *handle); - int iommu_device_use_default_domain(struct device *dev); void iommu_device_unuse_default_domain(struct device *dev); @@ -676,6 +690,15 @@ int iommu_group_claim_dma_owner(struct iommu_group *group, void *owner); void iommu_group_release_dma_owner(struct iommu_group *group); bool iommu_group_dma_owner_claimed(struct iommu_group *group); +struct iommu_domain *iommu_sva_domain_alloc(struct device *dev, + struct mm_struct *mm); +int iommu_attach_device_pasid(struct iommu_domain *domain, + struct device *dev, ioasid_t pasid); +void iommu_detach_device_pasid(struct iommu_domain *domain, + struct device *dev, ioasid_t pasid); +struct iommu_domain * +iommu_get_domain_for_dev_pasid(struct device *dev, ioasid_t pasid, + unsigned int type); #else /* CONFIG_IOMMU_API */ struct iommu_ops {}; @@ -995,21 +1018,6 @@ iommu_dev_disable_feature(struct device *dev, enum iommu_dev_features feat) return -ENODEV; } -static inline struct iommu_sva * -iommu_sva_bind_device(struct device *dev, struct mm_struct *mm, void *drvdata) -{ - return NULL; -} - -static inline void iommu_sva_unbind_device(struct iommu_sva *handle) -{ -} - -static inline u32 iommu_sva_get_pasid(struct iommu_sva *handle) -{ - return IOMMU_PASID_INVALID; -} - static inline struct iommu_fwspec *dev_iommu_fwspec_get(struct device *dev) { return NULL; @@ -1038,6 +1046,30 @@ static inline bool iommu_group_dma_owner_claimed(struct iommu_group *group) { return false; } + +static inline struct iommu_domain * +iommu_sva_domain_alloc(struct device *dev, struct mm_struct *mm) +{ + return NULL; +} + +static inline int iommu_attach_device_pasid(struct iommu_domain *domain, + struct device *dev, ioasid_t pasid) +{ + return -ENODEV; +} + +static inline void iommu_detach_device_pasid(struct iommu_domain *domain, + struct device *dev, ioasid_t pasid) +{ +} + +static inline struct iommu_domain * +iommu_get_domain_for_dev_pasid(struct device *dev, ioasid_t pasid, + unsigned int type) +{ + return NULL; +} #endif /* CONFIG_IOMMU_API */ /** @@ -1099,4 +1131,26 @@ static inline void iommu_dma_compose_msi_msg(struct msi_desc *desc, struct msi_m #endif /* CONFIG_IOMMU_DMA */ +#ifdef CONFIG_IOMMU_SVA +struct iommu_sva *iommu_sva_bind_device(struct device *dev, + struct mm_struct *mm); +void iommu_sva_unbind_device(struct iommu_sva *handle); +u32 iommu_sva_get_pasid(struct iommu_sva *handle); +#else +static inline struct iommu_sva * +iommu_sva_bind_device(struct device *dev, struct mm_struct *mm) +{ + return NULL; +} + +static inline void iommu_sva_unbind_device(struct iommu_sva *handle) +{ +} + +static inline u32 iommu_sva_get_pasid(struct iommu_sva *handle) +{ + return IOMMU_PASID_INVALID; +} +#endif /* CONFIG_IOMMU_SVA */ + #endif /* __LINUX_IOMMU_H */ diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h index c1fd3922dc5d..5567f4850243 100644 --- a/include/linux/mm_inline.h +++ b/include/linux/mm_inline.h @@ -122,18 +122,6 @@ static inline bool lru_gen_in_fault(void) return current->in_lru_fault; } -#ifdef CONFIG_MEMCG -static inline int lru_gen_memcg_seg(struct lruvec *lruvec) -{ - return READ_ONCE(lruvec->lrugen.seg); -} -#else -static inline int lru_gen_memcg_seg(struct lruvec *lruvec) -{ - return 0; -} -#endif - static inline int lru_gen_from_seq(unsigned long seq) { return seq % MAX_NR_GENS; @@ -309,11 +297,6 @@ static inline bool lru_gen_in_fault(void) return false; } -static inline int lru_gen_memcg_seg(struct lruvec *lruvec) -{ - return 0; -} - static inline bool lru_gen_add_folio(struct lruvec *lruvec, struct folio *folio, bool reclaiming) { return false; @@ -595,4 +578,15 @@ pte_install_uffd_wp_if_needed(struct vm_area_struct *vma, unsigned long addr, #endif } +static inline bool vma_has_recency(struct vm_area_struct *vma) +{ + if (vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ)) + return false; + + if (vma->vm_file && (vma->vm_file->f_mode & FMODE_NOREUSE)) + return false; + + return true; +} + #endif diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index c0977673c119..1e596469a789 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -366,15 +366,6 @@ struct page_vma_mapped_walk; #define LRU_GEN_MASK ((BIT(LRU_GEN_WIDTH) - 1) << LRU_GEN_PGOFF) #define LRU_REFS_MASK ((BIT(LRU_REFS_WIDTH) - 1) << LRU_REFS_PGOFF) -/* see the comment on MEMCG_NR_GENS */ -enum { - MEMCG_LRU_NOP, - MEMCG_LRU_HEAD, - MEMCG_LRU_TAIL, - MEMCG_LRU_OLD, - MEMCG_LRU_YOUNG, -}; - #ifdef CONFIG_LRU_GEN enum { @@ -555,7 +546,7 @@ void lru_gen_exit_memcg(struct mem_cgroup *memcg); void lru_gen_online_memcg(struct mem_cgroup *memcg); void lru_gen_offline_memcg(struct mem_cgroup *memcg); void lru_gen_release_memcg(struct mem_cgroup *memcg); -void lru_gen_rotate_memcg(struct lruvec *lruvec, int op); +void lru_gen_soft_reclaim(struct lruvec *lruvec); #else /* !CONFIG_MEMCG */ @@ -606,7 +597,7 @@ static inline void lru_gen_release_memcg(struct mem_cgroup *memcg) { } -static inline void lru_gen_rotate_memcg(struct lruvec *lruvec, int op) +static inline void lru_gen_soft_reclaim(struct lruvec *lruvec) { } diff --git a/include/linux/of_mdio.h b/include/linux/of_mdio.h index da633d34ab86..8a52ef2e6fa6 100644 --- a/include/linux/of_mdio.h +++ b/include/linux/of_mdio.h @@ -14,9 +14,25 @@ #if IS_ENABLED(CONFIG_OF_MDIO) bool of_mdiobus_child_is_phy(struct device_node *child); -int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np); -int devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio, - struct device_node *np); +int __of_mdiobus_register(struct mii_bus *mdio, struct device_node *np, + struct module *owner); + +static inline int of_mdiobus_register(struct mii_bus *mdio, + struct device_node *np) +{ + return __of_mdiobus_register(mdio, np, THIS_MODULE); +} + +int __devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio, + struct device_node *np, struct module *owner); + +static inline int devm_of_mdiobus_register(struct device *dev, + struct mii_bus *mdio, + struct device_node *np) +{ + return __devm_of_mdiobus_register(dev, mdio, np, THIS_MODULE); +} + struct mdio_device *of_mdio_find_device(struct device_node *np); struct phy_device *of_phy_find_device(struct device_node *phy_np); struct phy_device * diff --git a/include/linux/qcom-geni-se.h b/include/linux/soc/qcom/geni-se.h similarity index 91% rename from include/linux/qcom-geni-se.h rename to include/linux/soc/qcom/geni-se.h index 45b550a58509..d2b58201d8b0 100644 --- a/include/linux/qcom-geni-se.h +++ b/include/linux/soc/qcom/geni-se.h @@ -246,12 +246,22 @@ struct geni_se { /* SE_HW_PARAM_0 fields */ #define TX_FIFO_WIDTH_MSK GENMASK(29, 24) #define TX_FIFO_WIDTH_SHFT 24 +/* + * For QUP HW Version >= 3.10 Tx fifo depth support is increased + * to 256bytes and corresponding bits are 16 to 23 + */ +#define TX_FIFO_DEPTH_MSK_256_BYTES GENMASK(23, 16) #define TX_FIFO_DEPTH_MSK GENMASK(21, 16) #define TX_FIFO_DEPTH_SHFT 16 /* SE_HW_PARAM_1 fields */ #define RX_FIFO_WIDTH_MSK GENMASK(29, 24) #define RX_FIFO_WIDTH_SHFT 24 +/* + * For QUP HW Version >= 3.10 Rx fifo depth support is increased + * to 256bytes and corresponding bits are 16 to 23 + */ +#define RX_FIFO_DEPTH_MSK_256_BYTES GENMASK(23, 16) #define RX_FIFO_DEPTH_MSK GENMASK(21, 16) #define RX_FIFO_DEPTH_SHFT 16 @@ -392,7 +402,8 @@ static inline void geni_se_abort_s_cmd(struct geni_se *se) /** * geni_se_get_tx_fifo_depth() - Get the TX fifo depth of the serial engine - * @se: Pointer to the concerned serial engine. + * based on QUP HW version + * @se: Pointer to the concerned serial engine. * * This function is used to get the depth i.e. number of elements in the * TX fifo of the serial engine. @@ -401,11 +412,20 @@ static inline void geni_se_abort_s_cmd(struct geni_se *se) */ static inline u32 geni_se_get_tx_fifo_depth(struct geni_se *se) { - u32 val; + u32 val, hw_version, hw_major, hw_minor, tx_fifo_depth_mask; + + hw_version = geni_se_get_qup_hw_version(se); + hw_major = GENI_SE_VERSION_MAJOR(hw_version); + hw_minor = GENI_SE_VERSION_MINOR(hw_version); + + if ((hw_major == 3 && hw_minor >= 10) || hw_major > 3) + tx_fifo_depth_mask = TX_FIFO_DEPTH_MSK_256_BYTES; + else + tx_fifo_depth_mask = TX_FIFO_DEPTH_MSK; val = readl_relaxed(se->base + SE_HW_PARAM_0); - return (val & TX_FIFO_DEPTH_MSK) >> TX_FIFO_DEPTH_SHFT; + return (val & tx_fifo_depth_mask) >> TX_FIFO_DEPTH_SHFT; } /** @@ -428,7 +448,8 @@ static inline u32 geni_se_get_tx_fifo_width(struct geni_se *se) /** * geni_se_get_rx_fifo_depth() - Get the RX fifo depth of the serial engine - * @se: Pointer to the concerned serial engine. + * based on QUP HW version + * @se: Pointer to the concerned serial engine. * * This function is used to get the depth i.e. number of elements in the * RX fifo of the serial engine. @@ -437,11 +458,20 @@ static inline u32 geni_se_get_tx_fifo_width(struct geni_se *se) */ static inline u32 geni_se_get_rx_fifo_depth(struct geni_se *se) { - u32 val; + u32 val, hw_version, hw_major, hw_minor, rx_fifo_depth_mask; + + hw_version = geni_se_get_qup_hw_version(se); + hw_major = GENI_SE_VERSION_MAJOR(hw_version); + hw_minor = GENI_SE_VERSION_MINOR(hw_version); + + if ((hw_major == 3 && hw_minor >= 10) || hw_major > 3) + rx_fifo_depth_mask = RX_FIFO_DEPTH_MSK_256_BYTES; + else + rx_fifo_depth_mask = RX_FIFO_DEPTH_MSK; val = readl_relaxed(se->base + SE_HW_PARAM_1); - return (val & RX_FIFO_DEPTH_MSK) >> RX_FIFO_DEPTH_SHFT; + return (val & rx_fifo_depth_mask) >> RX_FIFO_DEPTH_SHFT; } void geni_se_init(struct geni_se *se, u32 rx_wm, u32 rx_rfr); diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 0a5a3c425ba7..98b26e051611 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -8069,6 +8069,7 @@ void cfg80211_control_port_tx_status(struct wireless_dev *wdev, u64 cookie, * responsible for any cleanup. The caller must also ensure that * skb->protocol is set appropriately. * @unencrypted: Whether the frame was received unencrypted + * @link_id: the link the frame was received on, -1 if not applicable or unknown * * This function is used to inform userspace about a received control port * frame. It should only be used if userspace indicated it wants to receive @@ -8079,8 +8080,8 @@ void cfg80211_control_port_tx_status(struct wireless_dev *wdev, u64 cookie, * * Return: %true if the frame was passed to userspace */ -bool cfg80211_rx_control_port(struct net_device *dev, - struct sk_buff *skb, bool unencrypted); +bool cfg80211_rx_control_port(struct net_device *dev, struct sk_buff *skb, + bool unencrypted, int link_id); /** * cfg80211_cqm_rssi_notify - connection quality monitoring rssi event diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 380eea442dd0..ed6b83c6f1ed 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h @@ -1039,6 +1039,7 @@ struct xfrm_offload { struct sec_path { int len; int olen; + int verified_cnt; struct xfrm_state *xvec[XFRM_MAX_DEPTH]; struct xfrm_offload ovec[XFRM_MAX_OFFLOAD_DEPTH]; diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h index 90b2fb0292cb..012fa0d171b2 100644 --- a/include/trace/events/rcu.h +++ b/include/trace/events/rcu.h @@ -768,7 +768,7 @@ TRACE_EVENT_RCU(rcu_torture_read, TP_ARGS(rcutorturename, rhp, secs, c_old, c), TP_STRUCT__entry( - __field(char, rcutorturename[RCUTORTURENAME_LEN]) + __array(char, rcutorturename, RCUTORTURENAME_LEN) __field(struct rcu_head *, rhp) __field(unsigned long, secs) __field(unsigned long, c_old) diff --git a/include/trace/hooks/creds.h b/include/trace/hooks/creds.h new file mode 100644 index 000000000000..69a68081f2a3 --- /dev/null +++ b/include/trace/hooks/creds.h @@ -0,0 +1,33 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM creds + +#define TRACE_INCLUDE_PATH trace/hooks +#if !defined(_TRACE_HOOK_CREDS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_HOOK_CREDS_H +#include +/* + * Following tracepoints are not exported in tracefs and provide a + * mechanism for vendor modules to hook and extend functionality + */ +struct cred; +struct task_struct; +DECLARE_RESTRICTED_HOOK(android_rvh_commit_creds, + TP_PROTO(const struct task_struct *task, const struct cred *new), + TP_ARGS(task, new), 1); + +DECLARE_RESTRICTED_HOOK(android_rvh_exit_creds, + TP_PROTO(const struct task_struct *task, const struct cred *cred), + TP_ARGS(task, cred), 1); + +DECLARE_RESTRICTED_HOOK(android_rvh_override_creds, + TP_PROTO(const struct task_struct *task, const struct cred *new), + TP_ARGS(task, new), 1); + +DECLARE_RESTRICTED_HOOK(android_rvh_revert_creds, + TP_PROTO(const struct task_struct *task, const struct cred *old), + TP_ARGS(task, old), 1); + +#endif /* _TRACE_HOOK_CREDS_H */ +/* This part must be outside protection */ +#include diff --git a/include/trace/hooks/module.h b/include/trace/hooks/module.h new file mode 100644 index 000000000000..780e767cc23e --- /dev/null +++ b/include/trace/hooks/module.h @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM module + +#define TRACE_INCLUDE_PATH trace/hooks +#if !defined(_TRACE_HOOK_MODULE_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_HOOK_MODULE_H +#include +/* + * Following tracepoints are not exported in tracefs and provide a + * mechanism for vendor modules to hook and extend functionality + */ +struct module; +DECLARE_RESTRICTED_HOOK(android_rvh_set_module_permit_before_init, + TP_PROTO(const struct module *mod), + TP_ARGS(mod), 1); + +DECLARE_RESTRICTED_HOOK(android_rvh_set_module_permit_after_init, + TP_PROTO(const struct module *mod), + TP_ARGS(mod), 1); + +DECLARE_RESTRICTED_HOOK(android_rvh_set_module_core_rw_nx, + TP_PROTO(const struct module *mod), + TP_ARGS(mod), 1); + +DECLARE_RESTRICTED_HOOK(android_rvh_set_module_init_rw_nx, + TP_PROTO(const struct module *mod), + TP_ARGS(mod), 1); + +#endif /* _TRACE_HOOK_MODULE_H */ +/* This part must be outside protection */ +#include diff --git a/include/trace/hooks/typec.h b/include/trace/hooks/typec.h new file mode 100644 index 000000000000..e1b5c8be3835 --- /dev/null +++ b/include/trace/hooks/typec.h @@ -0,0 +1,59 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM typec +#define TRACE_INCLUDE_PATH trace/hooks +#if !defined(_TRACE_HOOK_TYPEC_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_HOOK_TYPEC_H +#include +/* + * Following tracepoints are not exported in tracefs and provide a + * mechanism for vendor modules to hook and extend functionality + */ +struct tcpci; +struct tcpci_data; +struct tcpm_port; + +#ifndef TYPEC_TIMER +#define TYPEC_TIMER +enum typec_timer { + SINK_WAIT_CAP, + SOURCE_OFF, + CC_DEBOUNCE, + SINK_DISCOVERY_BC12, +}; +#endif + +DECLARE_HOOK(android_vh_typec_tcpci_override_toggling, + TP_PROTO(struct tcpci *tcpci, struct tcpci_data *data, int *override_toggling), + TP_ARGS(tcpci, data, override_toggling)); + +/* + * This hook is for addressing hardware anomalies where TCPC_POWER_STATUS_VBUS_PRES bit can return 0 + * even before falling below sSinkDisconnect threshold. + * Handler has to set bypass to override the value that would otherwise be returned by this + * function. + * Handler can set vbus or clear vbus to indicate vbus present or absent + */ +DECLARE_RESTRICTED_HOOK(android_rvh_typec_tcpci_get_vbus, + TP_PROTO(struct tcpci *tcpci, struct tcpci_data *data, int *vbus, int *bypass), + TP_ARGS(tcpci, data, vbus, bypass), 1); + +DECLARE_HOOK(android_vh_typec_tcpm_get_timer, + TP_PROTO(const char *state, enum typec_timer timer, unsigned int *msecs), + TP_ARGS(state, timer, msecs)); + +DECLARE_HOOK(android_vh_typec_store_partner_src_caps, + TP_PROTO(unsigned int *nr_source_caps, u32 (*source_caps)[]), + TP_ARGS(nr_source_caps, source_caps)); + +DECLARE_HOOK(android_vh_typec_tcpm_modify_src_caps, + TP_PROTO(unsigned int *nr_src_pdo, u32 (*src_pdo)[], bool *modified), + TP_ARGS(nr_src_pdo, src_pdo, modified)); + +DECLARE_HOOK(android_vh_typec_tcpm_log, + TP_PROTO(const char *log, bool *bypass), + TP_ARGS(log, bypass)); + +#endif /* _TRACE_HOOK_UFSHCD_H */ +/* This part must be outside protection */ +#include diff --git a/include/trace/hooks/ufshcd.h b/include/trace/hooks/ufshcd.h index 5b264d12c362..c08848de8ac2 100644 --- a/include/trace/hooks/ufshcd.h +++ b/include/trace/hooks/ufshcd.h @@ -54,6 +54,9 @@ DECLARE_HOOK(android_vh_ufs_update_sdev, TP_PROTO(struct scsi_device *sdev), TP_ARGS(sdev)); +DECLARE_HOOK(android_vh_ufs_clock_scaling, + TP_PROTO(struct ufs_hba *hba, bool *force_out, bool *force_scaling, bool *scale_up), + TP_ARGS(hba, force_out, force_scaling, scale_up)); #endif /* _TRACE_HOOK_UFSHCD_H */ /* This part must be outside protection */ #include diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h index 643d5a4d051a..f6d12bab2fc2 100644 --- a/include/ufs/ufshcd.h +++ b/include/ufs/ufshcd.h @@ -610,12 +610,6 @@ enum ufshcd_quirks { * auto-hibernate capability but it's FASTAUTO only. */ UFSHCD_QUIRK_HIBERN_FASTAUTO = 1 << 18, - - /* - * This quirk needs to be enabled if the host controller needs - * to reinit the device after switching to maximum gear. - */ - UFSHCD_QUIRK_REINIT_AFTER_MAX_GEAR_SWITCH = 1 << 19, }; enum ufshcd_android_quirks { diff --git a/include/xen/interface/platform.h b/include/xen/interface/platform.h index 655d92e803e1..79a443c65ea9 100644 --- a/include/xen/interface/platform.h +++ b/include/xen/interface/platform.h @@ -483,6 +483,8 @@ struct xenpf_symdata { }; DEFINE_GUEST_HANDLE_STRUCT(xenpf_symdata); +#define XENPF_get_dom0_console 64 + struct xen_platform_op { uint32_t cmd; uint32_t interface_version; /* XENPF_INTERFACE_VERSION */ @@ -506,6 +508,7 @@ struct xen_platform_op { struct xenpf_mem_hotadd mem_add; struct xenpf_core_parking core_parking; struct xenpf_symdata symdata; + struct dom0_vga_console_info dom0_console; uint8_t pad[128]; } u; }; diff --git a/io_uring/alloc_cache.h b/io_uring/alloc_cache.h index 729793ae9712..c2cde88aeed5 100644 --- a/io_uring/alloc_cache.h +++ b/io_uring/alloc_cache.h @@ -27,6 +27,7 @@ static inline struct io_cache_entry *io_alloc_cache_get(struct io_alloc_cache *c struct hlist_node *node = cache->list.first; hlist_del(node); + cache->nr_cached--; return container_of(node, struct io_cache_entry, node); } diff --git a/io_uring/poll.c b/io_uring/poll.c index 56dbd1863c78..4788073ec45d 100644 --- a/io_uring/poll.c +++ b/io_uring/poll.c @@ -742,6 +742,7 @@ int io_arm_poll_handler(struct io_kiocb *req, unsigned issue_flags) apoll = io_req_alloc_apoll(req, issue_flags); if (!apoll) return IO_APOLL_ABORTED; + req->flags &= ~(REQ_F_SINGLE_POLL | REQ_F_DOUBLE_POLL); req->flags |= REQ_F_POLLED; ipt.pt._qproc = io_async_queue_proc; diff --git a/io_uring/rsrc.h b/io_uring/rsrc.h index 81445a477622..d60c758326b4 100644 --- a/io_uring/rsrc.h +++ b/io_uring/rsrc.h @@ -143,15 +143,13 @@ static inline void io_req_set_rsrc_node(struct io_kiocb *req, unsigned int issue_flags) { if (!req->rsrc_node) { + io_ring_submit_lock(ctx, issue_flags); + + lockdep_assert_held(&ctx->uring_lock); + req->rsrc_node = ctx->rsrc_node; - - if (!(issue_flags & IO_URING_F_UNLOCKED)) { - lockdep_assert_held(&ctx->uring_lock); - - io_charge_rsrc_node(ctx); - } else { - percpu_ref_get(&req->rsrc_node->refs); - } + io_charge_rsrc_node(ctx); + io_ring_submit_unlock(ctx, issue_flags); } } diff --git a/io_uring/uring_cmd.c b/io_uring/uring_cmd.c index 18dfc5f6a8b7..92f310dfb9fd 100644 --- a/io_uring/uring_cmd.c +++ b/io_uring/uring_cmd.c @@ -15,12 +15,13 @@ static void io_uring_cmd_work(struct io_kiocb *req, bool *locked) { struct io_uring_cmd *ioucmd = io_kiocb_to_cmd(req, struct io_uring_cmd); + unsigned issue_flags = *locked ? 0 : IO_URING_F_UNLOCKED; - ioucmd->task_work_cb(ioucmd); + ioucmd->task_work_cb(ioucmd, issue_flags); } void io_uring_cmd_complete_in_task(struct io_uring_cmd *ioucmd, - void (*task_work_cb)(struct io_uring_cmd *)) + void (*task_work_cb)(struct io_uring_cmd *, unsigned)) { struct io_kiocb *req = cmd_to_io_kiocb(ioucmd); @@ -42,7 +43,8 @@ static inline void io_req_set_cqe32_extra(struct io_kiocb *req, * Called by consumers of io_uring_cmd, if they originally returned * -EIOCBQUEUED upon receiving the command. */ -void io_uring_cmd_done(struct io_uring_cmd *ioucmd, ssize_t ret, ssize_t res2) +void io_uring_cmd_done(struct io_uring_cmd *ioucmd, ssize_t ret, ssize_t res2, + unsigned issue_flags) { struct io_kiocb *req = cmd_to_io_kiocb(ioucmd); @@ -56,7 +58,7 @@ void io_uring_cmd_done(struct io_uring_cmd *ioucmd, ssize_t ret, ssize_t res2) /* order with io_iopoll_req_issued() checking ->iopoll_complete */ smp_store_release(&req->iopoll_completed, 1); else - __io_req_complete(req, 0); + __io_req_complete(req, issue_flags); } EXPORT_SYMBOL_GPL(io_uring_cmd_done); diff --git a/kernel/compat.c b/kernel/compat.c index 55551989d9da..fb50f29d9b36 100644 --- a/kernel/compat.c +++ b/kernel/compat.c @@ -152,7 +152,7 @@ COMPAT_SYSCALL_DEFINE3(sched_getaffinity, compat_pid_t, pid, unsigned int, len, if (len & (sizeof(compat_ulong_t)-1)) return -EINVAL; - if (!alloc_cpumask_var(&mask, GFP_KERNEL)) + if (!zalloc_cpumask_var(&mask, GFP_KERNEL)) return -ENOMEM; ret = sched_getaffinity(pid, mask); diff --git a/kernel/cred.c b/kernel/cred.c index e10c15f51c1f..d4a529cd4737 100644 --- a/kernel/cred.c +++ b/kernel/cred.c @@ -17,6 +17,8 @@ #include #include +#include + #if 0 #define kdebug(FMT, ...) \ printk("[%-5.5s%5u] " FMT "\n", \ @@ -181,6 +183,7 @@ void exit_creds(struct task_struct *tsk) key_put(tsk->cached_requested_key); tsk->cached_requested_key = NULL; #endif + trace_android_rvh_exit_creds(tsk, cred); } /** @@ -499,6 +502,7 @@ int commit_creds(struct cred *new) inc_rlimit_ucounts(new->ucounts, UCOUNT_RLIMIT_NPROC, 1); rcu_assign_pointer(task->real_cred, new); rcu_assign_pointer(task->cred, new); + trace_android_rvh_commit_creds(task, new); if (new->user != old->user || new->user_ns != old->user_ns) dec_rlimit_ucounts(old->ucounts, UCOUNT_RLIMIT_NPROC, 1); alter_cred_subscribers(old, -2); @@ -576,6 +580,7 @@ const struct cred *override_creds(const struct cred *new) get_new_cred((struct cred *)new); alter_cred_subscribers(new, 1); rcu_assign_pointer(current->cred, new); + trace_android_rvh_override_creds(current, new); alter_cred_subscribers(old, -1); kdebug("override_creds() = %p{%d,%d}", old, @@ -604,6 +609,7 @@ void revert_creds(const struct cred *old) validate_creds(override); alter_cred_subscribers(old, 1); rcu_assign_pointer(current->cred, old); + trace_android_rvh_revert_creds(current, old); alter_cred_subscribers(override, -1); put_cred(override); } diff --git a/kernel/kcsan/Makefile b/kernel/kcsan/Makefile index 4f35d1bced6a..a45f3dfc8d14 100644 --- a/kernel/kcsan/Makefile +++ b/kernel/kcsan/Makefile @@ -16,5 +16,6 @@ obj-y := core.o debugfs.o report.o KCSAN_INSTRUMENT_BARRIERS_selftest.o := y obj-$(CONFIG_KCSAN_SELFTEST) += selftest.o -CFLAGS_kcsan_test.o := $(CFLAGS_KCSAN) -g -fno-omit-frame-pointer +CFLAGS_kcsan_test.o := $(CFLAGS_KCSAN) -fno-omit-frame-pointer +CFLAGS_kcsan_test.o += $(DISABLE_STRUCTLEAK_PLUGIN) obj-$(CONFIG_KCSAN_KUNIT_TEST) += kcsan_test.o diff --git a/kernel/module/main.c b/kernel/module/main.c index 194e865f6adc..0f18b6ee980c 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -60,6 +60,9 @@ #define CREATE_TRACE_POINTS #include +#undef CREATE_TRACE_POINTS +#include + /* * Mutex protects: * 1) List of modules (also safely readable with preempt_disable), @@ -1208,6 +1211,7 @@ static void free_module(struct module *mod) /* This may be empty, but that's OK */ module_arch_freeing_init(mod); + trace_android_rvh_set_module_init_rw_nx(mod); module_memfree(mod->init_layout.base); kfree(mod->args); percpu_modfree(mod); @@ -1216,6 +1220,7 @@ static void free_module(struct module *mod) lockdep_free_key_range(mod->data_layout.base, mod->data_layout.size); /* Finally, free the core (containing the module structure) */ + trace_android_rvh_set_module_core_rw_nx(mod); module_memfree(mod->core_layout.base); #ifdef CONFIG_ARCH_WANTS_MODULES_DATA_IN_VMALLOC vfree(mod->data_layout.base); @@ -2373,7 +2378,9 @@ static void module_deallocate(struct module *mod, struct load_info *info) { percpu_modfree(mod); module_arch_freeing_init(mod); + trace_android_rvh_set_module_init_rw_nx(mod); module_memfree(mod->init_layout.base); + trace_android_rvh_set_module_core_rw_nx(mod); module_memfree(mod->core_layout.base); #ifdef CONFIG_ARCH_WANTS_MODULES_DATA_IN_VMALLOC vfree(mod->data_layout.base); @@ -2526,8 +2533,10 @@ static noinline int do_init_module(struct module *mod) rcu_assign_pointer(mod->kallsyms, &mod->core_kallsyms); #endif module_enable_ro(mod, true); + trace_android_rvh_set_module_permit_after_init(mod); mod_tree_remove_init(mod); module_arch_freeing_init(mod); + trace_android_rvh_set_module_init_rw_nx(mod); mod->init_layout.base = NULL; mod->init_layout.size = 0; mod->init_layout.ro_size = 0; @@ -2657,6 +2666,7 @@ static int complete_formation(struct module *mod, struct load_info *info) module_enable_ro(mod, false); module_enable_nx(mod); module_enable_x(mod); + trace_android_rvh_set_module_permit_before_init(mod); /* * Mark state as coming so strong_try_module_get() ignores us, diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 3f8337744768..3aa814086acc 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -8408,14 +8408,14 @@ SYSCALL_DEFINE3(sched_getaffinity, pid_t, pid, unsigned int, len, if (len & (sizeof(unsigned long)-1)) return -EINVAL; - if (!alloc_cpumask_var(&mask, GFP_KERNEL)) + if (!zalloc_cpumask_var(&mask, GFP_KERNEL)) return -ENOMEM; ret = sched_getaffinity(pid, mask); if (ret == 0) { unsigned int retlen = min(len, cpumask_size()); - if (copy_to_user(user_mask_ptr, mask, retlen)) + if (copy_to_user(user_mask_ptr, cpumask_bits(mask), retlen)) ret = -EFAULT; else ret = retlen; diff --git a/kernel/trace/kprobe_event_gen_test.c b/kernel/trace/kprobe_event_gen_test.c index c736487fc0e4..e0c420eb0b2b 100644 --- a/kernel/trace/kprobe_event_gen_test.c +++ b/kernel/trace/kprobe_event_gen_test.c @@ -146,7 +146,7 @@ static int __init test_gen_kprobe_cmd(void) if (trace_event_file_is_valid(gen_kprobe_test)) gen_kprobe_test = NULL; /* We got an error after creating the event, delete it */ - ret = kprobe_event_delete("gen_kprobe_test"); + kprobe_event_delete("gen_kprobe_test"); goto out; } @@ -211,7 +211,7 @@ static int __init test_gen_kretprobe_cmd(void) if (trace_event_file_is_valid(gen_kretprobe_test)) gen_kretprobe_test = NULL; /* We got an error after creating the event, delete it */ - ret = kprobe_event_delete("gen_kretprobe_test"); + kprobe_event_delete("gen_kretprobe_test"); goto out; } diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 7b19d1834ba1..233b9bd3c1f1 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -5728,7 +5728,9 @@ static const char readme_msg[] = "\t .syscall display a syscall id as a syscall name\n" "\t .log2 display log2 value rather than raw number\n" "\t .buckets=size display values in groups of size rather than raw number\n" - "\t .usecs display a common_timestamp in microseconds\n\n" + "\t .usecs display a common_timestamp in microseconds\n" + "\t .percent display a number of percentage value\n" + "\t .graph display a bar-graph of a value\n\n" "\t The 'pause' parameter can be used to pause an existing hist\n" "\t trigger or to start a hist trigger but not log any events\n" "\t until told to do so. 'continue' can be used to start or\n" diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c index e3df03cdecbc..2b2120ed2460 100644 --- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c @@ -506,6 +506,8 @@ enum hist_field_flags { HIST_FIELD_FL_ALIAS = 1 << 16, HIST_FIELD_FL_BUCKET = 1 << 17, HIST_FIELD_FL_CONST = 1 << 18, + HIST_FIELD_FL_PERCENT = 1 << 19, + HIST_FIELD_FL_GRAPH = 1 << 20, }; struct var_defs { @@ -1708,6 +1710,10 @@ static const char *get_hist_field_flags(struct hist_field *hist_field) flags_str = "buckets"; else if (hist_field->flags & HIST_FIELD_FL_TIMESTAMP_USECS) flags_str = "usecs"; + else if (hist_field->flags & HIST_FIELD_FL_PERCENT) + flags_str = "percent"; + else if (hist_field->flags & HIST_FIELD_FL_GRAPH) + flags_str = "graph"; return flags_str; } @@ -2320,6 +2326,14 @@ parse_field(struct hist_trigger_data *hist_data, struct trace_event_file *file, if (ret || !(*buckets)) goto error; *flags |= HIST_FIELD_FL_BUCKET; + } else if (strncmp(modifier, "percent", 7) == 0) { + if (*flags & (HIST_FIELD_FL_VAR | HIST_FIELD_FL_KEY)) + goto error; + *flags |= HIST_FIELD_FL_PERCENT; + } else if (strncmp(modifier, "graph", 5) == 0) { + if (*flags & (HIST_FIELD_FL_VAR | HIST_FIELD_FL_KEY)) + goto error; + *flags |= HIST_FIELD_FL_GRAPH; } else { error: hist_err(tr, HIST_ERR_BAD_FIELD_MODIFIER, errpos(modifier)); @@ -4179,6 +4193,15 @@ static int __create_val_field(struct hist_trigger_data *hist_data, goto out; } + /* Some types cannot be a value */ + if (hist_field->flags & (HIST_FIELD_FL_GRAPH | HIST_FIELD_FL_PERCENT | + HIST_FIELD_FL_BUCKET | HIST_FIELD_FL_LOG2 | + HIST_FIELD_FL_SYM | HIST_FIELD_FL_SYM_OFFSET | + HIST_FIELD_FL_SYSCALL | HIST_FIELD_FL_STACKTRACE)) { + hist_err(file->tr, HIST_ERR_BAD_FIELD_MODIFIER, errpos(field_str)); + ret = -EINVAL; + } + hist_data->fields[val_idx] = hist_field; ++hist_data->n_vals; @@ -5297,33 +5320,101 @@ static void hist_trigger_print_key(struct seq_file *m, seq_puts(m, "}"); } +/* Get the 100 times of the percentage of @val in @total */ +static inline unsigned int __get_percentage(u64 val, u64 total) +{ + if (!total) + goto div0; + + if (val < (U64_MAX / 10000)) + return (unsigned int)div64_ul(val * 10000, total); + + total = div64_u64(total, 10000); + if (!total) + goto div0; + + return (unsigned int)div64_ul(val, total); +div0: + return val ? UINT_MAX : 0; +} + +#define BAR_CHAR '#' + +static inline const char *__fill_bar_str(char *buf, int size, u64 val, u64 max) +{ + unsigned int len = __get_percentage(val, max); + int i; + + if (len == UINT_MAX) { + snprintf(buf, size, "[ERROR]"); + return buf; + } + + len = len * size / 10000; + for (i = 0; i < len && i < size; i++) + buf[i] = BAR_CHAR; + while (i < size) + buf[i++] = ' '; + buf[size] = '\0'; + + return buf; +} + +struct hist_val_stat { + u64 max; + u64 total; +}; + +static void hist_trigger_print_val(struct seq_file *m, unsigned int idx, + const char *field_name, unsigned long flags, + struct hist_val_stat *stats, + struct tracing_map_elt *elt) +{ + u64 val = tracing_map_read_sum(elt, idx); + unsigned int pc; + char bar[21]; + + if (flags & HIST_FIELD_FL_PERCENT) { + pc = __get_percentage(val, stats[idx].total); + if (pc == UINT_MAX) + seq_printf(m, " %s (%%):[ERROR]", field_name); + else + seq_printf(m, " %s (%%): %3u.%02u", field_name, + pc / 100, pc % 100); + } else if (flags & HIST_FIELD_FL_GRAPH) { + seq_printf(m, " %s: %20s", field_name, + __fill_bar_str(bar, 20, val, stats[idx].max)); + } else if (flags & HIST_FIELD_FL_HEX) { + seq_printf(m, " %s: %10llx", field_name, val); + } else { + seq_printf(m, " %s: %10llu", field_name, val); + } +} + static void hist_trigger_entry_print(struct seq_file *m, struct hist_trigger_data *hist_data, + struct hist_val_stat *stats, void *key, struct tracing_map_elt *elt) { const char *field_name; - unsigned int i; + unsigned int i = HITCOUNT_IDX; + unsigned long flags; hist_trigger_print_key(m, hist_data, key, elt); - seq_printf(m, " hitcount: %10llu", - tracing_map_read_sum(elt, HITCOUNT_IDX)); + /* At first, show the raw hitcount always */ + hist_trigger_print_val(m, i, "hitcount", 0, stats, elt); for (i = 1; i < hist_data->n_vals; i++) { field_name = hist_field_name(hist_data->fields[i], 0); + flags = hist_data->fields[i]->flags; - if (hist_data->fields[i]->flags & HIST_FIELD_FL_VAR || - hist_data->fields[i]->flags & HIST_FIELD_FL_EXPR) + if (flags & HIST_FIELD_FL_VAR || flags & HIST_FIELD_FL_EXPR) continue; - if (hist_data->fields[i]->flags & HIST_FIELD_FL_HEX) { - seq_printf(m, " %s: %10llx", field_name, - tracing_map_read_sum(elt, i)); - } else { - seq_printf(m, " %s: %10llu", field_name, - tracing_map_read_sum(elt, i)); - } + seq_puts(m, " "); + hist_trigger_print_val(m, i, field_name, flags, stats, elt); } print_actions(m, hist_data, elt); @@ -5336,7 +5427,9 @@ static int print_entries(struct seq_file *m, { struct tracing_map_sort_entry **sort_entries = NULL; struct tracing_map *map = hist_data->map; - int i, n_entries; + int i, j, n_entries; + struct hist_val_stat *stats = NULL; + u64 val; n_entries = tracing_map_sort_entries(map, hist_data->sort_keys, hist_data->n_sort_keys, @@ -5344,11 +5437,34 @@ static int print_entries(struct seq_file *m, if (n_entries < 0) return n_entries; + /* Calculate the max and the total for each field if needed. */ + for (j = 0; j < hist_data->n_vals; j++) { + if (!(hist_data->fields[j]->flags & + (HIST_FIELD_FL_PERCENT | HIST_FIELD_FL_GRAPH))) + continue; + if (!stats) { + stats = kcalloc(hist_data->n_vals, sizeof(*stats), + GFP_KERNEL); + if (!stats) { + n_entries = -ENOMEM; + goto out; + } + } + for (i = 0; i < n_entries; i++) { + val = tracing_map_read_sum(sort_entries[i]->elt, j); + stats[j].total += val; + if (stats[j].max < val) + stats[j].max = val; + } + } + for (i = 0; i < n_entries; i++) - hist_trigger_entry_print(m, hist_data, + hist_trigger_entry_print(m, hist_data, stats, sort_entries[i]->key, sort_entries[i]->elt); + kfree(stats); +out: tracing_map_destroy_sort_entries(sort_entries, n_entries); return n_entries; diff --git a/lib/zstd/common/zstd_deps.h b/lib/zstd/common/zstd_deps.h index 7a5bf44839c9..f06df065dec0 100644 --- a/lib/zstd/common/zstd_deps.h +++ b/lib/zstd/common/zstd_deps.h @@ -84,7 +84,7 @@ static uint64_t ZSTD_div64(uint64_t dividend, uint32_t divisor) { #include -#define assert(x) WARN_ON((x)) +#define assert(x) WARN_ON(!(x)) #endif /* ZSTD_DEPS_ASSERT */ #endif /* ZSTD_DEPS_NEED_ASSERT */ diff --git a/mm/fadvise.c b/mm/fadvise.c index c76ee665355a..2ba24d865bf5 100644 --- a/mm/fadvise.c +++ b/mm/fadvise.c @@ -80,7 +80,7 @@ int generic_fadvise(struct file *file, loff_t offset, loff_t len, int advice) case POSIX_FADV_NORMAL: file->f_ra.ra_pages = bdi->ra_pages; spin_lock(&file->f_lock); - file->f_mode &= ~FMODE_RANDOM; + file->f_mode &= ~(FMODE_RANDOM | FMODE_NOREUSE); spin_unlock(&file->f_lock); break; case POSIX_FADV_RANDOM: @@ -107,6 +107,9 @@ int generic_fadvise(struct file *file, loff_t offset, loff_t len, int advice) force_page_cache_readahead(mapping, file, start_index, nrpages); break; case POSIX_FADV_NOREUSE: + spin_lock(&file->f_lock); + file->f_mode |= FMODE_NOREUSE; + spin_unlock(&file->f_lock); break; case POSIX_FADV_DONTNEED: __filemap_fdatawrite_range(mapping, offset, endbyte, diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 7815d556e38c..5397aeb43986 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -478,12 +478,8 @@ static void mem_cgroup_update_tree(struct mem_cgroup *memcg, int nid) struct mem_cgroup_tree_per_node *mctz; if (lru_gen_enabled()) { - struct lruvec *lruvec = &memcg->nodeinfo[nid]->lruvec; - - /* see the comment on MEMCG_NR_GENS */ - if (soft_limit_excess(memcg) && lru_gen_memcg_seg(lruvec) != MEMCG_LRU_HEAD) - lru_gen_rotate_memcg(lruvec, MEMCG_LRU_HEAD); - + if (soft_limit_excess(memcg)) + lru_gen_soft_reclaim(&memcg->nodeinfo[nid]->lruvec); return; } diff --git a/mm/memory.c b/mm/memory.c index fbefac49a35d..f66a23c62dd9 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -1437,8 +1437,7 @@ again: force_flush = 1; set_page_dirty(page); } - if (pte_young(ptent) && - likely(!(vma->vm_flags & VM_SEQ_READ))) + if (pte_young(ptent) && likely(vma_has_recency(vma))) mark_page_accessed(page); } rss[mm_counter(page)]--; @@ -5158,8 +5157,8 @@ static inline void mm_account_fault(struct pt_regs *regs, #ifdef CONFIG_LRU_GEN static void lru_gen_enter_fault(struct vm_area_struct *vma) { - /* the LRU algorithm doesn't apply to sequential or random reads */ - current->in_lru_fault = !(vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ)); + /* the LRU algorithm only applies to accesses with recency */ + current->in_lru_fault = vma_has_recency(vma); } static void lru_gen_exit_fault(void) diff --git a/mm/rmap.c b/mm/rmap.c index 7da2d8d097d9..825dac3caa1e 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -823,25 +823,14 @@ static bool folio_referenced_one(struct folio *folio, } if (pvmw.pte) { - if (lru_gen_enabled() && pte_young(*pvmw.pte) && - !(vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ))) { + if (lru_gen_enabled() && pte_young(*pvmw.pte)) { lru_gen_look_around(&pvmw); referenced++; } if (ptep_clear_flush_young_notify(vma, address, - pvmw.pte)) { - /* - * Don't treat a reference through - * a sequentially read mapping as such. - * If the folio has been used in another mapping, - * we will catch it; if this other mapping is - * already gone, the unmap path will have set - * the referenced flag or activated the folio. - */ - if (likely(!(vma->vm_flags & VM_SEQ_READ))) - referenced++; - } + pvmw.pte)) + referenced++; } else if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) { if (pmdp_clear_flush_young_notify(vma, address, pvmw.pmd)) @@ -875,7 +864,20 @@ static bool invalid_folio_referenced_vma(struct vm_area_struct *vma, void *arg) struct folio_referenced_arg *pra = arg; struct mem_cgroup *memcg = pra->memcg; - if (!mm_match_cgroup(vma->vm_mm, memcg)) + /* + * Ignore references from this mapping if it has no recency. If the + * folio has been used in another mapping, we will catch it; if this + * other mapping is already gone, the unmap path will have set the + * referenced flag or activated the folio in zap_pte_range(). + */ + if (!vma_has_recency(vma)) + return true; + + /* + * If we are reclaiming on behalf of a cgroup, skip counting on behalf + * of references from different cgroups. + */ + if (memcg && !mm_match_cgroup(vma->vm_mm, memcg)) return true; return false; @@ -906,6 +908,7 @@ int folio_referenced(struct folio *folio, int is_locked, .arg = (void *)&pra, .anon_lock = folio_lock_anon_vma_read, .try_lock = true, + .invalid_vma = invalid_folio_referenced_vma, }; *vm_flags = 0; @@ -921,15 +924,6 @@ int folio_referenced(struct folio *folio, int is_locked, return 1; } - /* - * If we are reclaiming on behalf of a cgroup, skip - * counting on behalf of references from different - * cgroups - */ - if (memcg) { - rwc.invalid_vma = invalid_folio_referenced_vma; - } - rmap_walk(folio, &rwc); *vm_flags = pra.vm_flags; diff --git a/mm/vmscan.c b/mm/vmscan.c index 219ad7e0e911..a82873231bf0 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -3186,7 +3186,8 @@ static int get_swappiness(struct lruvec *lruvec, struct scan_control *sc) if (!sc->may_swap) return 0; - if (!can_demote(pgdat->node_id, sc)) + if (!can_demote(pgdat->node_id, sc) && + mem_cgroup_get_nr_swap_pages(memcg) <= 0) return 0; return mem_cgroup_swappiness(memcg); @@ -3205,6 +3206,98 @@ static bool __maybe_unused seq_is_valid(struct lruvec *lruvec) get_nr_gens(lruvec, LRU_GEN_ANON) <= MAX_NR_GENS; } +/****************************************************************************** + * Bloom filters + ******************************************************************************/ + +/* + * Bloom filters with m=1<<15, k=2 and the false positive rates of ~1/5 when + * n=10,000 and ~1/2 when n=20,000, where, conventionally, m is the number of + * bits in a bitmap, k is the number of hash functions and n is the number of + * inserted items. + * + * Page table walkers use one of the two filters to reduce their search space. + * To get rid of non-leaf entries that no longer have enough leaf entries, the + * aging uses the double-buffering technique to flip to the other filter each + * time it produces a new generation. For non-leaf entries that have enough + * leaf entries, the aging carries them over to the next generation in + * walk_pmd_range(); the eviction also report them when walking the rmap + * in lru_gen_look_around(). + * + * For future optimizations: + * 1. It's not necessary to keep both filters all the time. The spare one can be + * freed after the RCU grace period and reallocated if needed again. + * 2. And when reallocating, it's worth scaling its size according to the number + * of inserted entries in the other filter, to reduce the memory overhead on + * small systems and false positives on large systems. + * 3. Jenkins' hash function is an alternative to Knuth's. + */ +#define BLOOM_FILTER_SHIFT 15 + +static inline int filter_gen_from_seq(unsigned long seq) +{ + return seq % NR_BLOOM_FILTERS; +} + +static void get_item_key(void *item, int *key) +{ + u32 hash = hash_ptr(item, BLOOM_FILTER_SHIFT * 2); + + BUILD_BUG_ON(BLOOM_FILTER_SHIFT * 2 > BITS_PER_TYPE(u32)); + + key[0] = hash & (BIT(BLOOM_FILTER_SHIFT) - 1); + key[1] = hash >> BLOOM_FILTER_SHIFT; +} + +static bool test_bloom_filter(struct lruvec *lruvec, unsigned long seq, void *item) +{ + int key[2]; + unsigned long *filter; + int gen = filter_gen_from_seq(seq); + + filter = READ_ONCE(lruvec->mm_state.filters[gen]); + if (!filter) + return true; + + get_item_key(item, key); + + return test_bit(key[0], filter) && test_bit(key[1], filter); +} + +static void update_bloom_filter(struct lruvec *lruvec, unsigned long seq, void *item) +{ + int key[2]; + unsigned long *filter; + int gen = filter_gen_from_seq(seq); + + filter = READ_ONCE(lruvec->mm_state.filters[gen]); + if (!filter) + return; + + get_item_key(item, key); + + if (!test_bit(key[0], filter)) + set_bit(key[0], filter); + if (!test_bit(key[1], filter)) + set_bit(key[1], filter); +} + +static void reset_bloom_filter(struct lruvec *lruvec, unsigned long seq) +{ + unsigned long *filter; + int gen = filter_gen_from_seq(seq); + + filter = lruvec->mm_state.filters[gen]; + if (filter) { + bitmap_clear(filter, 0, BIT(BLOOM_FILTER_SHIFT)); + return; + } + + filter = bitmap_zalloc(BIT(BLOOM_FILTER_SHIFT), + __GFP_HIGH | __GFP_NOMEMALLOC | __GFP_NOWARN); + WRITE_ONCE(lruvec->mm_state.filters[gen], filter); +} + /****************************************************************************** * mm_struct list ******************************************************************************/ @@ -3330,94 +3423,6 @@ void lru_gen_migrate_mm(struct mm_struct *mm) } #endif -/* - * Bloom filters with m=1<<15, k=2 and the false positive rates of ~1/5 when - * n=10,000 and ~1/2 when n=20,000, where, conventionally, m is the number of - * bits in a bitmap, k is the number of hash functions and n is the number of - * inserted items. - * - * Page table walkers use one of the two filters to reduce their search space. - * To get rid of non-leaf entries that no longer have enough leaf entries, the - * aging uses the double-buffering technique to flip to the other filter each - * time it produces a new generation. For non-leaf entries that have enough - * leaf entries, the aging carries them over to the next generation in - * walk_pmd_range(); the eviction also report them when walking the rmap - * in lru_gen_look_around(). - * - * For future optimizations: - * 1. It's not necessary to keep both filters all the time. The spare one can be - * freed after the RCU grace period and reallocated if needed again. - * 2. And when reallocating, it's worth scaling its size according to the number - * of inserted entries in the other filter, to reduce the memory overhead on - * small systems and false positives on large systems. - * 3. Jenkins' hash function is an alternative to Knuth's. - */ -#define BLOOM_FILTER_SHIFT 15 - -static inline int filter_gen_from_seq(unsigned long seq) -{ - return seq % NR_BLOOM_FILTERS; -} - -static void get_item_key(void *item, int *key) -{ - u32 hash = hash_ptr(item, BLOOM_FILTER_SHIFT * 2); - - BUILD_BUG_ON(BLOOM_FILTER_SHIFT * 2 > BITS_PER_TYPE(u32)); - - key[0] = hash & (BIT(BLOOM_FILTER_SHIFT) - 1); - key[1] = hash >> BLOOM_FILTER_SHIFT; -} - -static void reset_bloom_filter(struct lruvec *lruvec, unsigned long seq) -{ - unsigned long *filter; - int gen = filter_gen_from_seq(seq); - - filter = lruvec->mm_state.filters[gen]; - if (filter) { - bitmap_clear(filter, 0, BIT(BLOOM_FILTER_SHIFT)); - return; - } - - filter = bitmap_zalloc(BIT(BLOOM_FILTER_SHIFT), - __GFP_HIGH | __GFP_NOMEMALLOC | __GFP_NOWARN); - WRITE_ONCE(lruvec->mm_state.filters[gen], filter); -} - -static void update_bloom_filter(struct lruvec *lruvec, unsigned long seq, void *item) -{ - int key[2]; - unsigned long *filter; - int gen = filter_gen_from_seq(seq); - - filter = READ_ONCE(lruvec->mm_state.filters[gen]); - if (!filter) - return; - - get_item_key(item, key); - - if (!test_bit(key[0], filter)) - set_bit(key[0], filter); - if (!test_bit(key[1], filter)) - set_bit(key[1], filter); -} - -static bool test_bloom_filter(struct lruvec *lruvec, unsigned long seq, void *item) -{ - int key[2]; - unsigned long *filter; - int gen = filter_gen_from_seq(seq); - - filter = READ_ONCE(lruvec->mm_state.filters[gen]); - if (!filter) - return true; - - get_item_key(item, key); - - return test_bit(key[0], filter) && test_bit(key[1], filter); -} - static void reset_mm_stats(struct lruvec *lruvec, struct lru_gen_mm_walk *walk, bool last) { int i; @@ -3775,7 +3780,10 @@ static int should_skip_vma(unsigned long start, unsigned long end, struct mm_wal if (is_vm_hugetlb_page(vma)) return true; - if (vma->vm_flags & (VM_LOCKED | VM_SPECIAL | VM_SEQ_READ | VM_RAND_READ)) + if (!vma_has_recency(vma)) + return true; + + if (vma->vm_flags & (VM_LOCKED | VM_SPECIAL)) return true; if (vma == get_gate_vma(vma->vm_mm)) @@ -3970,8 +3978,8 @@ restart: } #if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG) -static void walk_pmd_range_locked(pud_t *pud, unsigned long next, struct vm_area_struct *vma, - struct mm_walk *args, unsigned long *bitmap, unsigned long *start) +static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area_struct *vma, + struct mm_walk *args, unsigned long *bitmap, unsigned long *first) { int i; pmd_t *pmd; @@ -3984,18 +3992,19 @@ static void walk_pmd_range_locked(pud_t *pud, unsigned long next, struct vm_area VM_WARN_ON_ONCE(pud_leaf(*pud)); /* try to batch at most 1+MIN_LRU_BATCH+1 entries */ - if (*start == -1) { - *start = next; + if (*first == -1) { + *first = addr; + bitmap_zero(bitmap, MIN_LRU_BATCH); return; } - i = next == -1 ? 0 : pmd_index(next) - pmd_index(*start); + i = addr == -1 ? 0 : pmd_index(addr) - pmd_index(*first); if (i && i <= MIN_LRU_BATCH) { __set_bit(i - 1, bitmap); return; } - pmd = pmd_offset(pud, *start); + pmd = pmd_offset(pud, *first); ptl = pmd_lockptr(args->mm, pmd); if (!spin_trylock(ptl)) @@ -4006,15 +4015,16 @@ static void walk_pmd_range_locked(pud_t *pud, unsigned long next, struct vm_area do { unsigned long pfn; struct folio *folio; - unsigned long addr = i ? (*start & PMD_MASK) + i * PMD_SIZE : *start; + + /* don't round down the first address */ + addr = i ? (*first & PMD_MASK) + i * PMD_SIZE : *first; pfn = get_pmd_pfn(pmd[i], vma, addr); if (pfn == -1) goto next; if (!pmd_trans_huge(pmd[i])) { - if (arch_has_hw_nonleaf_pmd_young() && - get_cap(LRU_GEN_NONLEAF_YOUNG)) + if (arch_has_hw_nonleaf_pmd_young() && get_cap(LRU_GEN_NONLEAF_YOUNG)) pmdp_test_and_clear_young(vma, addr, pmd + i); goto next; } @@ -4043,12 +4053,11 @@ next: arch_leave_lazy_mmu_mode(); spin_unlock(ptl); done: - *start = -1; - bitmap_zero(bitmap, MIN_LRU_BATCH); + *first = -1; } #else -static void walk_pmd_range_locked(pud_t *pud, unsigned long next, struct vm_area_struct *vma, - struct mm_walk *args, unsigned long *bitmap, unsigned long *start) +static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area_struct *vma, + struct mm_walk *args, unsigned long *bitmap, unsigned long *first) { } #endif @@ -4061,9 +4070,9 @@ static void walk_pmd_range(pud_t *pud, unsigned long start, unsigned long end, unsigned long next; unsigned long addr; struct vm_area_struct *vma; - unsigned long pos = -1; + unsigned long bitmap[BITS_TO_LONGS(MIN_LRU_BATCH)]; + unsigned long first = -1; struct lru_gen_mm_walk *walk = args->private; - unsigned long bitmap[BITS_TO_LONGS(MIN_LRU_BATCH)] = {}; VM_WARN_ON_ONCE(pud_leaf(*pud)); @@ -4105,18 +4114,17 @@ restart: if (pfn < pgdat->node_start_pfn || pfn >= pgdat_end_pfn(pgdat)) continue; - walk_pmd_range_locked(pud, addr, vma, args, bitmap, &pos); + walk_pmd_range_locked(pud, addr, vma, args, bitmap, &first); continue; } #endif walk->mm_stats[MM_NONLEAF_TOTAL]++; - if (arch_has_hw_nonleaf_pmd_young() && - get_cap(LRU_GEN_NONLEAF_YOUNG)) { + if (arch_has_hw_nonleaf_pmd_young() && get_cap(LRU_GEN_NONLEAF_YOUNG)) { if (!pmd_young(val)) continue; - walk_pmd_range_locked(pud, addr, vma, args, bitmap, &pos); + walk_pmd_range_locked(pud, addr, vma, args, bitmap, &first); } if (!walk->force_scan && !test_bloom_filter(walk->lruvec, walk->max_seq, pmd + i)) @@ -4133,7 +4141,7 @@ restart: update_bloom_filter(walk->lruvec, walk->max_seq + 1, pmd + i); } - walk_pmd_range_locked(pud, -1, vma, args, bitmap, &pos); + walk_pmd_range_locked(pud, -1, vma, args, bitmap, &first); if (i < PTRS_PER_PMD && get_next_vma(PUD_MASK, PMD_SIZE, args, &start, &end)) goto restart; @@ -4453,6 +4461,10 @@ done: return true; } +/****************************************************************************** + * working set protection + ******************************************************************************/ + static bool lruvec_is_sizable(struct lruvec *lruvec, struct scan_control *sc) { int gen, type, zone; @@ -4543,6 +4555,10 @@ static void lru_gen_age_node(struct pglist_data *pgdat, struct scan_control *sc) } } +/****************************************************************************** + * rmap/PT walk feedback + ******************************************************************************/ + /* * This function exploits spatial locality when shrink_folio_list() walks the * rmap. It scans the adjacent PTEs of a young PTE and promotes hot pages. If @@ -4553,13 +4569,12 @@ static void lru_gen_age_node(struct pglist_data *pgdat, struct scan_control *sc) void lru_gen_look_around(struct page_vma_mapped_walk *pvmw) { int i; - pte_t *pte; unsigned long start; unsigned long end; - unsigned long addr; struct lru_gen_mm_walk *walk; int young = 0; - unsigned long bitmap[BITS_TO_LONGS(MIN_LRU_BATCH)] = {}; + pte_t *pte = pvmw->pte; + unsigned long addr = pvmw->address; struct folio *folio = pfn_folio(pvmw->pfn); struct mem_cgroup *memcg = folio_memcg(folio); struct pglist_data *pgdat = folio_pgdat(folio); @@ -4576,25 +4591,28 @@ void lru_gen_look_around(struct page_vma_mapped_walk *pvmw) /* avoid taking the LRU lock under the PTL when possible */ walk = current->reclaim_state ? current->reclaim_state->mm_walk : NULL; - start = max(pvmw->address & PMD_MASK, pvmw->vma->vm_start); - end = min(pvmw->address | ~PMD_MASK, pvmw->vma->vm_end - 1) + 1; + start = max(addr & PMD_MASK, pvmw->vma->vm_start); + end = min(addr | ~PMD_MASK, pvmw->vma->vm_end - 1) + 1; if (end - start > MIN_LRU_BATCH * PAGE_SIZE) { - if (pvmw->address - start < MIN_LRU_BATCH * PAGE_SIZE / 2) + if (addr - start < MIN_LRU_BATCH * PAGE_SIZE / 2) end = start + MIN_LRU_BATCH * PAGE_SIZE; - else if (end - pvmw->address < MIN_LRU_BATCH * PAGE_SIZE / 2) + else if (end - addr < MIN_LRU_BATCH * PAGE_SIZE / 2) start = end - MIN_LRU_BATCH * PAGE_SIZE; else { - start = pvmw->address - MIN_LRU_BATCH * PAGE_SIZE / 2; - end = pvmw->address + MIN_LRU_BATCH * PAGE_SIZE / 2; + start = addr - MIN_LRU_BATCH * PAGE_SIZE / 2; + end = addr + MIN_LRU_BATCH * PAGE_SIZE / 2; } } - pte = pvmw->pte - (pvmw->address - start) / PAGE_SIZE; + /* folio_update_gen() requires stable folio_memcg() */ + if (!mem_cgroup_trylock_pages(memcg)) + return; - rcu_read_lock(); arch_enter_lazy_mmu_mode(); + pte -= (addr - start) / PAGE_SIZE; + for (i = 0, addr = start; addr != end; i++, addr += PAGE_SIZE) { unsigned long pfn; @@ -4619,58 +4637,171 @@ void lru_gen_look_around(struct page_vma_mapped_walk *pvmw) !folio_test_swapcache(folio))) folio_mark_dirty(folio); + if (walk) { + old_gen = folio_update_gen(folio, new_gen); + if (old_gen >= 0 && old_gen != new_gen) + update_batch_size(walk, folio, old_gen, new_gen); + + continue; + } + old_gen = folio_lru_gen(folio); if (old_gen < 0) folio_set_referenced(folio); else if (old_gen != new_gen) - __set_bit(i, bitmap); + folio_activate(folio); } arch_leave_lazy_mmu_mode(); - rcu_read_unlock(); + mem_cgroup_unlock_pages(); /* feedback from rmap walkers to page table walkers */ if (suitable_to_scan(i, young)) update_bloom_filter(lruvec, max_seq, pvmw->pmd); - - if (!walk && bitmap_weight(bitmap, MIN_LRU_BATCH) < PAGEVEC_SIZE) { - for_each_set_bit(i, bitmap, MIN_LRU_BATCH) { - folio = pfn_folio(pte_pfn(pte[i])); - folio_activate(folio); - } - return; - } - - /* folio_update_gen() requires stable folio_memcg() */ - if (!mem_cgroup_trylock_pages(memcg)) - return; - - if (!walk) { - spin_lock_irq(&lruvec->lru_lock); - new_gen = lru_gen_from_seq(lruvec->lrugen.max_seq); - } - - for_each_set_bit(i, bitmap, MIN_LRU_BATCH) { - folio = pfn_folio(pte_pfn(pte[i])); - if (folio_memcg_rcu(folio) != memcg) - continue; - - old_gen = folio_update_gen(folio, new_gen); - if (old_gen < 0 || old_gen == new_gen) - continue; - - if (walk) - update_batch_size(walk, folio, old_gen, new_gen); - else - lru_gen_update_size(lruvec, folio, old_gen, new_gen); - } - - if (!walk) - spin_unlock_irq(&lruvec->lru_lock); - - mem_cgroup_unlock_pages(); } +/****************************************************************************** + * memcg LRU + ******************************************************************************/ + +/* see the comment on MEMCG_NR_GENS */ +enum { + MEMCG_LRU_NOP, + MEMCG_LRU_HEAD, + MEMCG_LRU_TAIL, + MEMCG_LRU_OLD, + MEMCG_LRU_YOUNG, +}; + +#ifdef CONFIG_MEMCG + +static int lru_gen_memcg_seg(struct lruvec *lruvec) +{ + return READ_ONCE(lruvec->lrugen.seg); +} + +static void lru_gen_rotate_memcg(struct lruvec *lruvec, int op) +{ + int seg; + int old, new; + int bin = get_random_u32_below(MEMCG_NR_BINS); + struct pglist_data *pgdat = lruvec_pgdat(lruvec); + + spin_lock(&pgdat->memcg_lru.lock); + + VM_WARN_ON_ONCE(hlist_nulls_unhashed(&lruvec->lrugen.list)); + + seg = 0; + new = old = lruvec->lrugen.gen; + + /* see the comment on MEMCG_NR_GENS */ + if (op == MEMCG_LRU_HEAD) + seg = MEMCG_LRU_HEAD; + else if (op == MEMCG_LRU_TAIL) + seg = MEMCG_LRU_TAIL; + else if (op == MEMCG_LRU_OLD) + new = get_memcg_gen(pgdat->memcg_lru.seq); + else if (op == MEMCG_LRU_YOUNG) + new = get_memcg_gen(pgdat->memcg_lru.seq + 1); + else + VM_WARN_ON_ONCE(true); + + hlist_nulls_del_rcu(&lruvec->lrugen.list); + + if (op == MEMCG_LRU_HEAD || op == MEMCG_LRU_OLD) + hlist_nulls_add_head_rcu(&lruvec->lrugen.list, &pgdat->memcg_lru.fifo[new][bin]); + else + hlist_nulls_add_tail_rcu(&lruvec->lrugen.list, &pgdat->memcg_lru.fifo[new][bin]); + + pgdat->memcg_lru.nr_memcgs[old]--; + pgdat->memcg_lru.nr_memcgs[new]++; + + lruvec->lrugen.gen = new; + WRITE_ONCE(lruvec->lrugen.seg, seg); + + 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); +} + +void lru_gen_online_memcg(struct mem_cgroup *memcg) +{ + int gen; + int nid; + int bin = get_random_u32_below(MEMCG_NR_BINS); + + for_each_node(nid) { + struct pglist_data *pgdat = NODE_DATA(nid); + struct lruvec *lruvec = get_lruvec(memcg, nid); + + spin_lock(&pgdat->memcg_lru.lock); + + VM_WARN_ON_ONCE(!hlist_nulls_unhashed(&lruvec->lrugen.list)); + + gen = get_memcg_gen(pgdat->memcg_lru.seq); + + hlist_nulls_add_tail_rcu(&lruvec->lrugen.list, &pgdat->memcg_lru.fifo[gen][bin]); + pgdat->memcg_lru.nr_memcgs[gen]++; + + lruvec->lrugen.gen = gen; + + spin_unlock(&pgdat->memcg_lru.lock); + } +} + +void lru_gen_offline_memcg(struct mem_cgroup *memcg) +{ + int nid; + + for_each_node(nid) { + struct lruvec *lruvec = get_lruvec(memcg, nid); + + lru_gen_rotate_memcg(lruvec, MEMCG_LRU_OLD); + } +} + +void lru_gen_release_memcg(struct mem_cgroup *memcg) +{ + int gen; + int nid; + + for_each_node(nid) { + struct pglist_data *pgdat = NODE_DATA(nid); + struct lruvec *lruvec = get_lruvec(memcg, nid); + + spin_lock(&pgdat->memcg_lru.lock); + + VM_WARN_ON_ONCE(hlist_nulls_unhashed(&lruvec->lrugen.list)); + + gen = lruvec->lrugen.gen; + + hlist_nulls_del_rcu(&lruvec->lrugen.list); + pgdat->memcg_lru.nr_memcgs[gen]--; + + if (!pgdat->memcg_lru.nr_memcgs[gen] && gen == get_memcg_gen(pgdat->memcg_lru.seq)) + WRITE_ONCE(pgdat->memcg_lru.seq, pgdat->memcg_lru.seq + 1); + + spin_unlock(&pgdat->memcg_lru.lock); + } +} + +void lru_gen_soft_reclaim(struct lruvec *lruvec) +{ + /* see the comment on MEMCG_NR_GENS */ + if (lru_gen_memcg_seg(lruvec) != MEMCG_LRU_HEAD) + lru_gen_rotate_memcg(lruvec, MEMCG_LRU_HEAD); +} + +#else /* !CONFIG_MEMCG */ + +static int lru_gen_memcg_seg(struct lruvec *lruvec) +{ + return 0; +} + +#endif + /****************************************************************************** * the eviction ******************************************************************************/ @@ -5368,53 +5499,6 @@ done: pgdat->kswapd_failures = 0; } -#ifdef CONFIG_MEMCG -void lru_gen_rotate_memcg(struct lruvec *lruvec, int op) -{ - int seg; - int old, new; - int bin = get_random_u32_below(MEMCG_NR_BINS); - struct pglist_data *pgdat = lruvec_pgdat(lruvec); - - spin_lock(&pgdat->memcg_lru.lock); - - VM_WARN_ON_ONCE(hlist_nulls_unhashed(&lruvec->lrugen.list)); - - seg = 0; - new = old = lruvec->lrugen.gen; - - /* see the comment on MEMCG_NR_GENS */ - if (op == MEMCG_LRU_HEAD) - seg = MEMCG_LRU_HEAD; - else if (op == MEMCG_LRU_TAIL) - seg = MEMCG_LRU_TAIL; - else if (op == MEMCG_LRU_OLD) - new = get_memcg_gen(pgdat->memcg_lru.seq); - else if (op == MEMCG_LRU_YOUNG) - new = get_memcg_gen(pgdat->memcg_lru.seq + 1); - else - VM_WARN_ON_ONCE(true); - - hlist_nulls_del_rcu(&lruvec->lrugen.list); - - if (op == MEMCG_LRU_HEAD || op == MEMCG_LRU_OLD) - hlist_nulls_add_head_rcu(&lruvec->lrugen.list, &pgdat->memcg_lru.fifo[new][bin]); - else - hlist_nulls_add_tail_rcu(&lruvec->lrugen.list, &pgdat->memcg_lru.fifo[new][bin]); - - pgdat->memcg_lru.nr_memcgs[old]--; - pgdat->memcg_lru.nr_memcgs[new]++; - - lruvec->lrugen.gen = new; - WRITE_ONCE(lruvec->lrugen.seg, seg); - - 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); -} -#endif - /****************************************************************************** * state change ******************************************************************************/ @@ -6047,12 +6131,17 @@ void lru_gen_exit_memcg(struct mem_cgroup *memcg) int i; int nid; + VM_WARN_ON_ONCE(!list_empty(&memcg->mm_list.fifo)); + for_each_node(nid) { struct lruvec *lruvec = get_lruvec(memcg, nid); + VM_WARN_ON_ONCE(lruvec->mm_state.nr_walkers); VM_WARN_ON_ONCE(memchr_inv(lruvec->lrugen.nr_pages, 0, sizeof(lruvec->lrugen.nr_pages))); + lruvec->lrugen.list.next = LIST_POISON1; + for (i = 0; i < NR_BLOOM_FILTERS; i++) { bitmap_free(lruvec->mm_state.filters[i]); lruvec->mm_state.filters[i] = NULL; @@ -6060,67 +6149,6 @@ void lru_gen_exit_memcg(struct mem_cgroup *memcg) } } -void lru_gen_online_memcg(struct mem_cgroup *memcg) -{ - int gen; - int nid; - int bin = get_random_u32_below(MEMCG_NR_BINS); - - for_each_node(nid) { - struct pglist_data *pgdat = NODE_DATA(nid); - struct lruvec *lruvec = get_lruvec(memcg, nid); - - spin_lock(&pgdat->memcg_lru.lock); - - VM_WARN_ON_ONCE(!hlist_nulls_unhashed(&lruvec->lrugen.list)); - - gen = get_memcg_gen(pgdat->memcg_lru.seq); - - hlist_nulls_add_tail_rcu(&lruvec->lrugen.list, &pgdat->memcg_lru.fifo[gen][bin]); - pgdat->memcg_lru.nr_memcgs[gen]++; - - lruvec->lrugen.gen = gen; - - spin_unlock(&pgdat->memcg_lru.lock); - } -} - -void lru_gen_offline_memcg(struct mem_cgroup *memcg) -{ - int nid; - - for_each_node(nid) { - struct lruvec *lruvec = get_lruvec(memcg, nid); - - lru_gen_rotate_memcg(lruvec, MEMCG_LRU_OLD); - } -} - -void lru_gen_release_memcg(struct mem_cgroup *memcg) -{ - int gen; - int nid; - - for_each_node(nid) { - struct pglist_data *pgdat = NODE_DATA(nid); - struct lruvec *lruvec = get_lruvec(memcg, nid); - - spin_lock(&pgdat->memcg_lru.lock); - - VM_WARN_ON_ONCE(hlist_nulls_unhashed(&lruvec->lrugen.list)); - - gen = lruvec->lrugen.gen; - - hlist_nulls_del_rcu(&lruvec->lrugen.list); - pgdat->memcg_lru.nr_memcgs[gen]--; - - if (!pgdat->memcg_lru.nr_memcgs[gen] && gen == get_memcg_gen(pgdat->memcg_lru.seq)) - WRITE_ONCE(pgdat->memcg_lru.seq, pgdat->memcg_lru.seq + 1); - - spin_unlock(&pgdat->memcg_lru.lock); - } -} - #endif /* CONFIG_MEMCG */ static int __init init_lru_gen(void) diff --git a/net/can/bcm.c b/net/can/bcm.c index 27706f6ace34..a962ec2b8ba5 100644 --- a/net/can/bcm.c +++ b/net/can/bcm.c @@ -941,6 +941,8 @@ static int bcm_tx_setup(struct bcm_msg_head *msg_head, struct msghdr *msg, cf = op->frames + op->cfsiz * i; err = memcpy_from_msg((u8 *)cf, msg, op->cfsiz); + if (err < 0) + goto free_op; if (op->flags & CAN_FD_FRAME) { if (cf->len > 64) @@ -950,12 +952,8 @@ static int bcm_tx_setup(struct bcm_msg_head *msg_head, struct msghdr *msg, err = -EINVAL; } - if (err < 0) { - if (op->frames != &op->sframe) - kfree(op->frames); - kfree(op); - return err; - } + if (err < 0) + goto free_op; if (msg_head->flags & TX_CP_CAN_ID) { /* copy can_id into frame */ @@ -1026,6 +1024,12 @@ static int bcm_tx_setup(struct bcm_msg_head *msg_head, struct msghdr *msg, bcm_tx_start_timer(op); return msg_head->nframes * op->cfsiz + MHSIZ; + +free_op: + if (op->frames != &op->sframe) + kfree(op->frames); + kfree(op); + return err; } /* diff --git a/net/can/j1939/transport.c b/net/can/j1939/transport.c index 4177e9617070..848b60c9ef79 100644 --- a/net/can/j1939/transport.c +++ b/net/can/j1939/transport.c @@ -1124,8 +1124,6 @@ static void __j1939_session_cancel(struct j1939_session *session, if (session->sk) j1939_sk_send_loop_abort(session->sk, session->err); - else - j1939_sk_errqueue(session, J1939_ERRQUEUE_RX_ABORT); } static void j1939_session_cancel(struct j1939_session *session, @@ -1140,6 +1138,9 @@ static void j1939_session_cancel(struct j1939_session *session, } j1939_session_list_unlock(session->priv); + + if (!session->sk) + j1939_sk_errqueue(session, J1939_ERRQUEUE_RX_ABORT); } static enum hrtimer_restart j1939_tp_txtimer(struct hrtimer *hrtimer) @@ -1253,6 +1254,9 @@ static enum hrtimer_restart j1939_tp_rxtimer(struct hrtimer *hrtimer) __j1939_session_cancel(session, J1939_XTP_ABORT_TIMEOUT); } j1939_session_list_unlock(session->priv); + + if (!session->sk) + j1939_sk_errqueue(session, J1939_ERRQUEUE_RX_ABORT); } j1939_session_put(session); diff --git a/net/hsr/hsr_framereg.c b/net/hsr/hsr_framereg.c index 39a6088080e9..a16f0445023a 100644 --- a/net/hsr/hsr_framereg.c +++ b/net/hsr/hsr_framereg.c @@ -422,7 +422,7 @@ void hsr_addr_subst_dest(struct hsr_node *node_src, struct sk_buff *skb, node_dst = find_node_by_addr_A(&port->hsr->node_db, eth_hdr(skb)->h_dest); if (!node_dst) { - if (net_ratelimit()) + if (port->hsr->prot_version != PRP_V1 && net_ratelimit()) netdev_err(skb->dev, "%s: Unknown node\n", __func__); return; } diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 44e407e1a14c..b975f6445f5a 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -2611,7 +2611,7 @@ static void ieee80211_deliver_skb_to_local_stack(struct sk_buff *skb, struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); bool noencrypt = !(status->flag & RX_FLAG_DECRYPTED); - cfg80211_rx_control_port(dev, skb, noencrypt); + cfg80211_rx_control_port(dev, skb, noencrypt, rx->link_id); dev_kfree_skb(skb); } else { struct ethhdr *ehdr = (void *)skb_mac_header(skb); diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index b3ab6d9d752e..05aa32696e7c 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c @@ -2153,6 +2153,7 @@ static void xs_tcp_shutdown(struct rpc_xprt *xprt) switch (skst) { case TCP_FIN_WAIT1: case TCP_FIN_WAIT2: + case TCP_LAST_ACK: break; case TCP_ESTABLISHED: case TCP_CLOSE_WAIT: diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 4528e11d2051..03d16505a4a0 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -462,6 +462,11 @@ nl80211_sta_wme_policy[NL80211_STA_WME_MAX + 1] = { [NL80211_STA_WME_MAX_SP] = { .type = NLA_U8 }, }; +static struct netlink_range_validation nl80211_punct_bitmap_range = { + .min = 0, + .max = 0xffff, +}; + static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = { [0] = { .strict_start_type = NL80211_ATTR_HE_OBSS_PD }, [NL80211_ATTR_WIPHY] = { .type = NLA_U32 }, @@ -805,7 +810,8 @@ static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = { [NL80211_ATTR_MLD_ADDR] = NLA_POLICY_EXACT_LEN(ETH_ALEN), [NL80211_ATTR_MLO_SUPPORT] = { .type = NLA_FLAG }, [NL80211_ATTR_MAX_NUM_AKM_SUITES] = { .type = NLA_REJECT }, - [NL80211_ATTR_PUNCT_BITMAP] = NLA_POLICY_RANGE(NLA_U8, 0, 0xffff), + [NL80211_ATTR_PUNCT_BITMAP] = + NLA_POLICY_FULL_RANGE(NLA_U32, &nl80211_punct_bitmap_range), }; /* policy for the key attributes */ @@ -18672,7 +18678,9 @@ EXPORT_SYMBOL(cfg80211_mgmt_tx_status_ext); static int __nl80211_rx_control_port(struct net_device *dev, struct sk_buff *skb, - bool unencrypted, gfp_t gfp) + bool unencrypted, + int link_id, + gfp_t gfp) { struct wireless_dev *wdev = dev->ieee80211_ptr; struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); @@ -18704,6 +18712,8 @@ static int __nl80211_rx_control_port(struct net_device *dev, NL80211_ATTR_PAD) || nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, addr) || nla_put_u16(msg, NL80211_ATTR_CONTROL_PORT_ETHERTYPE, proto) || + (link_id >= 0 && + nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id)) || (unencrypted && nla_put_flag(msg, NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT))) goto nla_put_failure; @@ -18722,13 +18732,14 @@ static int __nl80211_rx_control_port(struct net_device *dev, return -ENOBUFS; } -bool cfg80211_rx_control_port(struct net_device *dev, - struct sk_buff *skb, bool unencrypted) +bool cfg80211_rx_control_port(struct net_device *dev, struct sk_buff *skb, + bool unencrypted, int link_id) { int ret; - trace_cfg80211_rx_control_port(dev, skb, unencrypted); - ret = __nl80211_rx_control_port(dev, skb, unencrypted, GFP_ATOMIC); + trace_cfg80211_rx_control_port(dev, skb, unencrypted, link_id); + ret = __nl80211_rx_control_port(dev, skb, unencrypted, link_id, + GFP_ATOMIC); trace_cfg80211_return_bool(ret == 0); return ret == 0; } diff --git a/net/wireless/trace.h b/net/wireless/trace.h index ca7474eec723..c6e63140d9a2 100644 --- a/net/wireless/trace.h +++ b/net/wireless/trace.h @@ -3165,14 +3165,15 @@ TRACE_EVENT(cfg80211_control_port_tx_status, TRACE_EVENT(cfg80211_rx_control_port, TP_PROTO(struct net_device *netdev, struct sk_buff *skb, - bool unencrypted), - TP_ARGS(netdev, skb, unencrypted), + bool unencrypted, int link_id), + TP_ARGS(netdev, skb, unencrypted, link_id), TP_STRUCT__entry( NETDEV_ENTRY __field(int, len) MAC_ENTRY(from) __field(u16, proto) __field(bool, unencrypted) + __field(int, link_id) ), TP_fast_assign( NETDEV_ASSIGN; @@ -3180,10 +3181,12 @@ TRACE_EVENT(cfg80211_rx_control_port, MAC_ASSIGN(from, eth_hdr(skb)->h_source); __entry->proto = be16_to_cpu(skb->protocol); __entry->unencrypted = unencrypted; + __entry->link_id = link_id; ), - TP_printk(NETDEV_PR_FMT ", len=%d, %pM, proto: 0x%x, unencrypted: %s", + TP_printk(NETDEV_PR_FMT ", len=%d, %pM, proto: 0x%x, unencrypted: %s, link: %d", NETDEV_PR_ARG, __entry->len, __entry->from, - __entry->proto, BOOL_TO_STR(__entry->unencrypted)) + __entry->proto, BOOL_TO_STR(__entry->unencrypted), + __entry->link_id) ); TRACE_EVENT(cfg80211_cqm_rssi_notify, diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c index 2defd89da700..65e36a76dcb7 100644 --- a/net/xfrm/xfrm_input.c +++ b/net/xfrm/xfrm_input.c @@ -131,6 +131,7 @@ struct sec_path *secpath_set(struct sk_buff *skb) memset(sp->ovec, 0, sizeof(sp->ovec)); sp->olen = 0; sp->len = 0; + sp->verified_cnt = 0; return sp; } @@ -586,6 +587,20 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type) goto drop; } + /* If nested tunnel, check outer states before context is lost. + * Only nested tunnels need to be checked, since IP addresses change + * as a result of the tunnel mode decapsulation. Similarly, this check + * is limited to nested tunnels to avoid performing another policy + * check on non-nested tunnels. On success, this check also updates the + * secpath's verified_cnt variable, skipping future verifications of + * previously-verified secpath entries. + */ + if ((x->outer_mode.flags & XFRM_MODE_FLAG_TUNNEL) && + sp->verified_cnt < sp->len && + !xfrm_policy_check(NULL, XFRM_POLICY_IN, skb, family)) { + goto drop; + } + skb->mark = xfrm_smark_get(skb->mark, x); sp->xvec[sp->len++] = x; diff --git a/net/xfrm/xfrm_interface.c b/net/xfrm/xfrm_interface.c index 94a3609548b1..5a67b120c4db 100644 --- a/net/xfrm/xfrm_interface.c +++ b/net/xfrm/xfrm_interface.c @@ -310,52 +310,6 @@ static void xfrmi_scrub_packet(struct sk_buff *skb, bool xnet) skb->mark = 0; } -static int xfrmi_input(struct sk_buff *skb, int nexthdr, __be32 spi, - int encap_type, unsigned short family) -{ - struct sec_path *sp; - - sp = skb_sec_path(skb); - if (sp && (sp->len || sp->olen) && - !xfrm_policy_check(NULL, XFRM_POLICY_IN, skb, family)) - goto discard; - - XFRM_SPI_SKB_CB(skb)->family = family; - if (family == AF_INET) { - XFRM_SPI_SKB_CB(skb)->daddroff = offsetof(struct iphdr, daddr); - XFRM_TUNNEL_SKB_CB(skb)->tunnel.ip4 = NULL; - } else { - XFRM_SPI_SKB_CB(skb)->daddroff = offsetof(struct ipv6hdr, daddr); - XFRM_TUNNEL_SKB_CB(skb)->tunnel.ip6 = NULL; - } - - return xfrm_input(skb, nexthdr, spi, encap_type); -discard: - kfree_skb(skb); - return 0; -} - -static int xfrmi4_rcv(struct sk_buff *skb) -{ - return xfrmi_input(skb, ip_hdr(skb)->protocol, 0, 0, AF_INET); -} - -static int xfrmi6_rcv(struct sk_buff *skb) -{ - return xfrmi_input(skb, skb_network_header(skb)[IP6CB(skb)->nhoff], - 0, 0, AF_INET6); -} - -static int xfrmi4_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type) -{ - return xfrmi_input(skb, nexthdr, spi, encap_type, AF_INET); -} - -static int xfrmi6_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type) -{ - return xfrmi_input(skb, nexthdr, spi, encap_type, AF_INET6); -} - static int xfrmi_rcv_cb(struct sk_buff *skb, int err) { const struct xfrm_mode *inner_mode; @@ -983,8 +937,8 @@ static struct pernet_operations xfrmi_net_ops = { }; static struct xfrm6_protocol xfrmi_esp6_protocol __read_mostly = { - .handler = xfrmi6_rcv, - .input_handler = xfrmi6_input, + .handler = xfrm6_rcv, + .input_handler = xfrm_input, .cb_handler = xfrmi_rcv_cb, .err_handler = xfrmi6_err, .priority = 10, @@ -1034,8 +988,8 @@ static struct xfrm6_tunnel xfrmi_ip6ip_handler __read_mostly = { #endif static struct xfrm4_protocol xfrmi_esp4_protocol __read_mostly = { - .handler = xfrmi4_rcv, - .input_handler = xfrmi4_input, + .handler = xfrm4_rcv, + .input_handler = xfrm_input, .cb_handler = xfrmi_rcv_cb, .err_handler = xfrmi4_err, .priority = 10, diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 7f49dab3b6b5..aa7d03e0f1dc 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -3273,6 +3273,13 @@ xfrm_policy_ok(const struct xfrm_tmpl *tmpl, const struct sec_path *sp, int star if (xfrm_state_ok(tmpl, sp->xvec[idx], family)) return ++idx; if (sp->xvec[idx]->props.mode != XFRM_MODE_TRANSPORT) { + if (idx < sp->verified_cnt) { + /* Secpath entry previously verified, consider optional and + * continue searching + */ + continue; + } + if (start == -1) start = -2-idx; break; @@ -3653,6 +3660,9 @@ int __xfrm_policy_check(struct sock *sk, int dir, struct sk_buff *skb, * Order is _important_. Later we will implement * some barriers, but at the moment barriers * are implied between each two transformations. + * Upon success, marks secpath entries as having been + * verified to allow them to be skipped in future policy + * checks (e.g. nested tunnels). */ for (i = xfrm_nr-1, k = 0; i >= 0; i--) { k = xfrm_policy_ok(tpp[i], sp, k, family); @@ -3670,10 +3680,9 @@ int __xfrm_policy_check(struct sock *sk, int dir, struct sk_buff *skb, goto reject; } - if (if_id) - secpath_reset(skb); - xfrm_pols_put(pols, npols); + sp->verified_cnt = k; + return 1; } XFRM_INC_STATS(net, LINUX_MIB_XFRMINPOLBLOCK); diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c index 96058961b799..eb5f40ed6ab5 100644 --- a/net/xfrm/xfrm_user.c +++ b/net/xfrm/xfrm_user.c @@ -997,7 +997,9 @@ static int copy_to_user_aead(struct xfrm_algo_aead *aead, struct sk_buff *skb) return -EMSGSIZE; ap = nla_data(nla); - memcpy(ap, aead, sizeof(*aead)); + strscpy_pad(ap->alg_name, aead->alg_name, sizeof(ap->alg_name)); + ap->alg_key_len = aead->alg_key_len; + ap->alg_icv_len = aead->alg_icv_len; if (redact_secret && aead->alg_key_len) memset(ap->alg_key, 0, (aead->alg_key_len + 7) / 8); @@ -1017,7 +1019,8 @@ static int copy_to_user_ealg(struct xfrm_algo *ealg, struct sk_buff *skb) return -EMSGSIZE; ap = nla_data(nla); - memcpy(ap, ealg, sizeof(*ealg)); + strscpy_pad(ap->alg_name, ealg->alg_name, sizeof(ap->alg_name)); + ap->alg_key_len = ealg->alg_key_len; if (redact_secret && ealg->alg_key_len) memset(ap->alg_key, 0, (ealg->alg_key_len + 7) / 8); @@ -1028,6 +1031,40 @@ static int copy_to_user_ealg(struct xfrm_algo *ealg, struct sk_buff *skb) return 0; } +static int copy_to_user_calg(struct xfrm_algo *calg, struct sk_buff *skb) +{ + struct nlattr *nla = nla_reserve(skb, XFRMA_ALG_COMP, sizeof(*calg)); + struct xfrm_algo *ap; + + if (!nla) + return -EMSGSIZE; + + ap = nla_data(nla); + strscpy_pad(ap->alg_name, calg->alg_name, sizeof(ap->alg_name)); + ap->alg_key_len = 0; + + return 0; +} + +static int copy_to_user_encap(struct xfrm_encap_tmpl *ep, struct sk_buff *skb) +{ + struct nlattr *nla = nla_reserve(skb, XFRMA_ENCAP, sizeof(*ep)); + struct xfrm_encap_tmpl *uep; + + if (!nla) + return -EMSGSIZE; + + uep = nla_data(nla); + memset(uep, 0, sizeof(*uep)); + + uep->encap_type = ep->encap_type; + uep->encap_sport = ep->encap_sport; + uep->encap_dport = ep->encap_dport; + uep->encap_oa = ep->encap_oa; + + return 0; +} + static int xfrm_smark_put(struct sk_buff *skb, struct xfrm_mark *m) { int ret = 0; @@ -1083,12 +1120,12 @@ static int copy_to_user_state_extra(struct xfrm_state *x, goto out; } if (x->calg) { - ret = nla_put(skb, XFRMA_ALG_COMP, sizeof(*(x->calg)), x->calg); + ret = copy_to_user_calg(x->calg, skb); if (ret) goto out; } if (x->encap) { - ret = nla_put(skb, XFRMA_ENCAP, sizeof(*x->encap), x->encap); + ret = copy_to_user_encap(x->encap, skb); if (ret) goto out; } diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 8772d5a69e87..fa0685481d1e 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -1725,7 +1725,7 @@ static void extract_crcs_for_object(const char *object, struct module *mod) if (!isdigit(*p)) continue; /* skip this line */ - crc = strtol(p, &p, 0); + crc = strtoul(p, &p, 0); if (*p != '\n') continue; /* skip this line */ diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c index 8b6aeb8a78f7..02fd65993e7e 100644 --- a/sound/core/pcm_lib.c +++ b/sound/core/pcm_lib.c @@ -2155,6 +2155,8 @@ int pcm_lib_apply_appl_ptr(struct snd_pcm_substream *substream, ret = substream->ops->ack(substream); if (ret < 0) { runtime->control->appl_ptr = old_appl_ptr; + if (ret == -EPIPE) + __snd_pcm_xrun(substream); return ret; } } diff --git a/sound/pci/asihpi/hpi6205.c b/sound/pci/asihpi/hpi6205.c index 27e11b5f70b9..c7d7eff86727 100644 --- a/sound/pci/asihpi/hpi6205.c +++ b/sound/pci/asihpi/hpi6205.c @@ -430,7 +430,7 @@ void HPI_6205(struct hpi_message *phm, struct hpi_response *phr) pao = hpi_find_adapter(phm->adapter_index); } else { /* subsys messages don't address an adapter */ - _HPI_6205(NULL, phm, phr); + phr->error = HPI_ERROR_INVALID_OBJ_INDEX; return; } diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c index acde4cd58785..099722ebaed8 100644 --- a/sound/pci/hda/patch_ca0132.c +++ b/sound/pci/hda/patch_ca0132.c @@ -4228,8 +4228,10 @@ static int tuning_ctl_set(struct hda_codec *codec, hda_nid_t nid, for (i = 0; i < TUNING_CTLS_COUNT; i++) if (nid == ca0132_tuning_ctls[i].nid) - break; + goto found; + return -EINVAL; +found: snd_hda_power_up(codec); dspio_set_param(codec, ca0132_tuning_ctls[i].mid, 0x20, ca0132_tuning_ctls[i].req, diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index 75e1d00074b9..a889cccdd607 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c @@ -980,7 +980,10 @@ static const struct snd_pci_quirk cxt5066_fixups[] = { SND_PCI_QUIRK(0x17aa, 0x3905, "Lenovo G50-30", CXT_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x17aa, 0x390b, "Lenovo G50-80", CXT_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x17aa, 0x3975, "Lenovo U300s", CXT_FIXUP_STEREO_DMIC), - SND_PCI_QUIRK(0x17aa, 0x3977, "Lenovo IdeaPad U310", CXT_PINCFG_LENOVO_NOTEBOOK), + /* NOTE: we'd need to extend the quirk for 17aa:3977 as the same + * PCI SSID is used on multiple Lenovo models + */ + SND_PCI_QUIRK(0x17aa, 0x3977, "Lenovo IdeaPad U310", CXT_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x17aa, 0x3978, "Lenovo G50-70", CXT_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x17aa, 0x397b, "Lenovo S205", CXT_FIXUP_STEREO_DMIC), SND_PCI_QUIRK_VENDOR(0x17aa, "Thinkpad", CXT_FIXUP_THINKPAD_ACPI), @@ -1003,6 +1006,7 @@ static const struct hda_model_fixup cxt5066_fixup_models[] = { { .id = CXT_FIXUP_MUTE_LED_GPIO, .name = "mute-led-gpio" }, { .id = CXT_FIXUP_HP_ZBOOK_MUTE_LED, .name = "hp-zbook-mute-led" }, { .id = CXT_FIXUP_HP_MIC_NO_PRESENCE, .name = "hp-mic-fix" }, + { .id = CXT_PINCFG_LENOVO_NOTEBOOK, .name = "lenovo-20149" }, {} }; diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 28ac6c159b2a..070150bbd355 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -2631,6 +2631,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { SND_PCI_QUIRK(0x1558, 0x65e5, "Clevo PC50D[PRS](?:-D|-G)?", ALC1220_FIXUP_CLEVO_PB51ED_PINS), SND_PCI_QUIRK(0x1558, 0x65f1, "Clevo PC50HS", ALC1220_FIXUP_CLEVO_PB51ED_PINS), SND_PCI_QUIRK(0x1558, 0x65f5, "Clevo PD50PN[NRT]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), + SND_PCI_QUIRK(0x1558, 0x66a2, "Clevo PE60RNE", ALC1220_FIXUP_CLEVO_PB51ED_PINS), SND_PCI_QUIRK(0x1558, 0x67d1, "Clevo PB71[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), SND_PCI_QUIRK(0x1558, 0x67e1, "Clevo PB71[DE][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), SND_PCI_QUIRK(0x1558, 0x67e5, "Clevo PC70D[PRS](?:-D|-G)?", ALC1220_FIXUP_CLEVO_PB51ED_PINS), @@ -2651,6 +2652,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { SND_PCI_QUIRK(0x1558, 0x96e1, "Clevo P960[ER][CDFN]-K", ALC1220_FIXUP_CLEVO_P950), SND_PCI_QUIRK(0x1558, 0x97e1, "Clevo P970[ER][CDFN]", ALC1220_FIXUP_CLEVO_P950), SND_PCI_QUIRK(0x1558, 0x97e2, "Clevo P970RC-M", ALC1220_FIXUP_CLEVO_P950), + SND_PCI_QUIRK(0x1558, 0xd502, "Clevo PD50SNE", ALC1220_FIXUP_CLEVO_PB51ED_PINS), SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD), SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD), SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", ALC882_FIXUP_LENOVO_Y530), @@ -9574,6 +9576,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1558, 0x5101, "Clevo S510WU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x5157, "Clevo W517GU1", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x51a1, "Clevo NS50MU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1558, 0x5630, "Clevo NP50RNJS", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x70a1, "Clevo NB70T[HJK]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x70b3, "Clevo NK70SB", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x70f2, "Clevo NH79EPY", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), @@ -9608,6 +9611,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1558, 0x971d, "Clevo N970T[CDF]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0xa500, "Clevo NL5[03]RU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0xa600, "Clevo NL50NU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1558, 0xa671, "Clevo NP70SN[CDE]", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0xb018, "Clevo NP50D[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0xb019, "Clevo NH77D[BE]Q", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0xb022, "Clevo NH77D[DC][QW]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), @@ -9708,6 +9712,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x17aa, 0x511e, "Thinkpad", ALC298_FIXUP_TPT470_DOCK), SND_PCI_QUIRK(0x17aa, 0x511f, "Thinkpad", ALC298_FIXUP_TPT470_DOCK), SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), + SND_PCI_QUIRK(0x17aa, 0x9e56, "Lenovo ZhaoYang CF4620Z", ALC286_FIXUP_SONY_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1849, 0x1233, "ASRock NUC Box 1100", ALC233_FIXUP_NO_AUDIO_JACK), SND_PCI_QUIRK(0x1849, 0xa233, "Positivo Master C6300", ALC269_FIXUP_HEADSET_MIC), SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MACH-WX9", ALC256_FIXUP_HUAWEI_MACH_WX9_PINS), diff --git a/sound/pci/ymfpci/ymfpci.c b/sound/pci/ymfpci/ymfpci.c index 1e198e4d57b8..82d4e0fda91b 100644 --- a/sound/pci/ymfpci/ymfpci.c +++ b/sound/pci/ymfpci/ymfpci.c @@ -170,7 +170,7 @@ static int snd_card_ymfpci_probe(struct pci_dev *pci, return -ENOENT; } - err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE, + err = snd_devm_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE, sizeof(*chip), &card); if (err < 0) return err; diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c index c80114c0ad7b..b492c32ce070 100644 --- a/sound/pci/ymfpci/ymfpci_main.c +++ b/sound/pci/ymfpci/ymfpci_main.c @@ -2165,7 +2165,7 @@ static int snd_ymfpci_memalloc(struct snd_ymfpci *chip) chip->work_base = ptr; chip->work_base_addr = ptr_addr; - snd_BUG_ON(ptr + chip->work_size != + snd_BUG_ON(ptr + PAGE_ALIGN(chip->work_size) != chip->work_ptr->area + chip->work_ptr->bytes); snd_ymfpci_writel(chip, YDSXGR_PLAYCTRLBASE, chip->bank_base_playback_addr); diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c index 8621cfabcf5b..1639f3b66fac 100644 --- a/sound/soc/codecs/lpass-rx-macro.c +++ b/sound/soc/codecs/lpass-rx-macro.c @@ -3667,9 +3667,9 @@ static int __maybe_unused rx_macro_runtime_suspend(struct device *dev) regcache_cache_only(rx->regmap, true); regcache_mark_dirty(rx->regmap); - clk_disable_unprepare(rx->mclk); - clk_disable_unprepare(rx->npl); clk_disable_unprepare(rx->fsgen); + clk_disable_unprepare(rx->npl); + clk_disable_unprepare(rx->mclk); return 0; } diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c index 5d1c58df081a..d1d9d8d2df2d 100644 --- a/sound/soc/codecs/lpass-tx-macro.c +++ b/sound/soc/codecs/lpass-tx-macro.c @@ -241,7 +241,7 @@ enum { struct tx_mute_work { struct tx_macro *tx; - u32 decimator; + u8 decimator; struct delayed_work dwork; }; @@ -634,7 +634,7 @@ exit: return 0; } -static bool is_amic_enabled(struct snd_soc_component *component, int decimator) +static bool is_amic_enabled(struct snd_soc_component *component, u8 decimator) { u16 adc_mux_reg, adc_reg, adc_n; @@ -845,7 +845,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); - unsigned int decimator; + u8 decimator; u16 tx_vol_ctl_reg, dec_cfg_reg, hpf_gate_reg, tx_gain_ctl_reg; u8 hpf_cut_off_freq; int hpf_delay = TX_MACRO_DMIC_HPF_DELAY_MS; @@ -1060,7 +1060,8 @@ static int tx_macro_hw_params(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { struct snd_soc_component *component = dai->component; - u32 decimator, sample_rate; + u32 sample_rate; + u8 decimator; int tx_fs_rate; struct tx_macro *tx = snd_soc_component_get_drvdata(component); @@ -1124,7 +1125,7 @@ static int tx_macro_digital_mute(struct snd_soc_dai *dai, int mute, int stream) { struct snd_soc_component *component = dai->component; struct tx_macro *tx = snd_soc_component_get_drvdata(component); - u16 decimator; + u8 decimator; /* active decimator not set yet */ if (tx->active_decimator[dai->id] == -1) @@ -1945,9 +1946,9 @@ static int __maybe_unused tx_macro_runtime_suspend(struct device *dev) regcache_cache_only(tx->regmap, true); regcache_mark_dirty(tx->regmap); - clk_disable_unprepare(tx->mclk); - clk_disable_unprepare(tx->npl); clk_disable_unprepare(tx->fsgen); + clk_disable_unprepare(tx->npl); + clk_disable_unprepare(tx->mclk); return 0; } diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c index c012033fb69e..8ed48c86ccb3 100644 --- a/sound/soc/codecs/lpass-wsa-macro.c +++ b/sound/soc/codecs/lpass-wsa-macro.c @@ -2502,9 +2502,9 @@ static int __maybe_unused wsa_macro_runtime_suspend(struct device *dev) regcache_cache_only(wsa->regmap, true); regcache_mark_dirty(wsa->regmap); - clk_disable_unprepare(wsa->mclk); - clk_disable_unprepare(wsa->npl); clk_disable_unprepare(wsa->fsgen); + clk_disable_unprepare(wsa->npl); + clk_disable_unprepare(wsa->mclk); return 0; } diff --git a/sound/soc/intel/avs/boards/da7219.c b/sound/soc/intel/avs/boards/da7219.c index 02ae542ad779..a63563594b4c 100644 --- a/sound/soc/intel/avs/boards/da7219.c +++ b/sound/soc/intel/avs/boards/da7219.c @@ -111,6 +111,26 @@ static int avs_da7219_codec_init(struct snd_soc_pcm_runtime *runtime) return 0; } +static int +avs_da7219_be_fixup(struct snd_soc_pcm_runtime *runrime, struct snd_pcm_hw_params *params) +{ + struct snd_interval *rate, *channels; + struct snd_mask *fmt; + + rate = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); + channels = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + fmt = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT); + + /* The ADSP will convert the FE rate to 48k, stereo */ + rate->min = rate->max = 48000; + channels->min = channels->max = 2; + + /* set SSP0 to 24 bit */ + snd_mask_none(fmt); + snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S24_LE); + return 0; +} + static int avs_create_dai_link(struct device *dev, const char *platform_name, int ssp_port, struct snd_soc_dai_link **dai_link) { @@ -142,6 +162,7 @@ static int avs_create_dai_link(struct device *dev, const char *platform_name, in dl->num_platforms = 1; dl->id = 0; dl->dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS; + dl->be_hw_params_fixup = avs_da7219_be_fixup; dl->init = avs_da7219_codec_init; dl->nonatomic = 1; dl->no_pcm = 1; diff --git a/sound/soc/intel/avs/boards/max98357a.c b/sound/soc/intel/avs/boards/max98357a.c index 921f42caf7e0..183123d08c5a 100644 --- a/sound/soc/intel/avs/boards/max98357a.c +++ b/sound/soc/intel/avs/boards/max98357a.c @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -24,6 +25,26 @@ static const struct snd_soc_dapm_route card_base_routes[] = { { "Spk", NULL, "Speaker" }, }; +static int +avs_max98357a_be_fixup(struct snd_soc_pcm_runtime *runrime, struct snd_pcm_hw_params *params) +{ + struct snd_interval *rate, *channels; + struct snd_mask *fmt; + + rate = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); + channels = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + fmt = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT); + + /* The ADSP will convert the FE rate to 48k, stereo */ + rate->min = rate->max = 48000; + channels->min = channels->max = 2; + + /* set SSP0 to 16 bit */ + snd_mask_none(fmt); + snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S16_LE); + return 0; +} + static int avs_create_dai_link(struct device *dev, const char *platform_name, int ssp_port, struct snd_soc_dai_link **dai_link) { @@ -55,6 +76,7 @@ static int avs_create_dai_link(struct device *dev, const char *platform_name, in dl->num_platforms = 1; dl->id = 0; dl->dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS; + dl->be_hw_params_fixup = avs_max98357a_be_fixup; dl->nonatomic = 1; dl->no_pcm = 1; dl->dpcm_playback = 1; diff --git a/sound/soc/intel/avs/boards/nau8825.c b/sound/soc/intel/avs/boards/nau8825.c index f76909e9f990..8392d8fac8f9 100644 --- a/sound/soc/intel/avs/boards/nau8825.c +++ b/sound/soc/intel/avs/boards/nau8825.c @@ -33,15 +33,15 @@ avs_nau8825_clock_control(struct snd_soc_dapm_widget *w, struct snd_kcontrol *co return -EINVAL; } - if (!SND_SOC_DAPM_EVENT_ON(event)) { + if (SND_SOC_DAPM_EVENT_ON(event)) + ret = snd_soc_dai_set_sysclk(codec_dai, NAU8825_CLK_MCLK, 24000000, + SND_SOC_CLOCK_IN); + else ret = snd_soc_dai_set_sysclk(codec_dai, NAU8825_CLK_INTERNAL, 0, SND_SOC_CLOCK_IN); - if (ret < 0) { - dev_err(card->dev, "set sysclk err = %d\n", ret); - return ret; - } - } + if (ret < 0) + dev_err(card->dev, "Set sysclk failed: %d\n", ret); - return 0; + return ret; } static const struct snd_kcontrol_new card_controls[] = { diff --git a/sound/soc/intel/avs/boards/ssm4567.c b/sound/soc/intel/avs/boards/ssm4567.c index 9f84c8ab3447..51a8867326b4 100644 --- a/sound/soc/intel/avs/boards/ssm4567.c +++ b/sound/soc/intel/avs/boards/ssm4567.c @@ -15,7 +15,6 @@ #include #include "../../../codecs/nau8825.h" -#define SKL_NUVOTON_CODEC_DAI "nau8825-hifi" #define SKL_SSM_CODEC_DAI "ssm4567-hifi" static struct snd_soc_codec_conf card_codec_conf[] = { @@ -34,41 +33,11 @@ static const struct snd_kcontrol_new card_controls[] = { SOC_DAPM_PIN_SWITCH("Right Speaker"), }; -static int -platform_clock_control(struct snd_soc_dapm_widget *w, struct snd_kcontrol *control, int event) -{ - struct snd_soc_dapm_context *dapm = w->dapm; - struct snd_soc_card *card = dapm->card; - struct snd_soc_dai *codec_dai; - int ret; - - codec_dai = snd_soc_card_get_codec_dai(card, SKL_NUVOTON_CODEC_DAI); - if (!codec_dai) { - dev_err(card->dev, "Codec dai not found\n"); - return -EINVAL; - } - - if (SND_SOC_DAPM_EVENT_ON(event)) { - ret = snd_soc_dai_set_sysclk(codec_dai, NAU8825_CLK_MCLK, 24000000, - SND_SOC_CLOCK_IN); - if (ret < 0) - dev_err(card->dev, "set sysclk err = %d\n", ret); - } else { - ret = snd_soc_dai_set_sysclk(codec_dai, NAU8825_CLK_INTERNAL, 0, SND_SOC_CLOCK_IN); - if (ret < 0) - dev_err(card->dev, "set sysclk err = %d\n", ret); - } - - return ret; -} - static const struct snd_soc_dapm_widget card_widgets[] = { SND_SOC_DAPM_SPK("Left Speaker", NULL), SND_SOC_DAPM_SPK("Right Speaker", NULL), SND_SOC_DAPM_SPK("DP1", NULL), SND_SOC_DAPM_SPK("DP2", NULL), - SND_SOC_DAPM_SUPPLY("Platform Clock", SND_SOC_NOPM, 0, 0, platform_clock_control, - SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), }; static const struct snd_soc_dapm_route card_base_routes[] = { diff --git a/sound/soc/sof/intel/pci-tng.c b/sound/soc/sof/intel/pci-tng.c index f0f6d9ba8803..0b17d1bb225e 100644 --- a/sound/soc/sof/intel/pci-tng.c +++ b/sound/soc/sof/intel/pci-tng.c @@ -75,11 +75,7 @@ static int tangier_pci_probe(struct snd_sof_dev *sdev) /* LPE base */ base = pci_resource_start(pci, desc->resindex_lpe_base) - IRAM_OFFSET; - size = pci_resource_len(pci, desc->resindex_lpe_base); - if (size < PCI_BAR_SIZE) { - dev_err(sdev->dev, "error: I/O region is too small.\n"); - return -ENODEV; - } + size = PCI_BAR_SIZE; dev_dbg(sdev->dev, "LPE PHY base at 0x%x size 0x%x", base, size); sdev->bar[DSP_BAR] = devm_ioremap(sdev->dev, base, size); diff --git a/sound/soc/sof/ipc3.c b/sound/soc/sof/ipc3.c index b28af3a48b70..60b96b0c2412 100644 --- a/sound/soc/sof/ipc3.c +++ b/sound/soc/sof/ipc3.c @@ -970,8 +970,9 @@ static void sof_ipc3_rx_msg(struct snd_sof_dev *sdev) return; } - if (hdr.size < sizeof(hdr)) { - dev_err(sdev->dev, "The received message size is invalid\n"); + if (hdr.size < sizeof(hdr) || hdr.size > SOF_IPC_MSG_MAX_SIZE) { + dev_err(sdev->dev, "The received message size is invalid: %u\n", + hdr.size); return; } diff --git a/sound/soc/sof/ipc4-control.c b/sound/soc/sof/ipc4-control.c index 0d5a578c3496..7442ec1c5a4d 100644 --- a/sound/soc/sof/ipc4-control.c +++ b/sound/soc/sof/ipc4-control.c @@ -84,7 +84,8 @@ sof_ipc4_set_volume_data(struct snd_sof_dev *sdev, struct snd_sof_widget *swidge } /* set curve type and duration from topology */ - data.curve_duration = gain->data.curve_duration; + data.curve_duration_l = gain->data.curve_duration_l; + data.curve_duration_h = gain->data.curve_duration_h; data.curve_type = gain->data.curve_type; msg->data_ptr = &data; diff --git a/sound/soc/sof/ipc4-topology.c b/sound/soc/sof/ipc4-topology.c index a81af5f73a4b..49289932ba7e 100644 --- a/sound/soc/sof/ipc4-topology.c +++ b/sound/soc/sof/ipc4-topology.c @@ -106,7 +106,7 @@ static const struct sof_topology_token gain_tokens[] = { get_token_u32, offsetof(struct sof_ipc4_gain_data, curve_type)}, {SOF_TKN_GAIN_RAMP_DURATION, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32, - offsetof(struct sof_ipc4_gain_data, curve_duration)}, + offsetof(struct sof_ipc4_gain_data, curve_duration_l)}, {SOF_TKN_GAIN_VAL, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32, offsetof(struct sof_ipc4_gain_data, init_val)}, }; @@ -154,7 +154,7 @@ static void sof_ipc4_dbg_audio_format(struct device *dev, for (i = 0; i < num_format; i++, ptr = (u8 *)ptr + object_size) { fmt = ptr; dev_dbg(dev, - " #%d: %uKHz, %ubit (ch_map %#x ch_cfg %u interleaving_style %u fmt_cfg %#x)\n", + " #%d: %uHz, %ubit (ch_map %#x ch_cfg %u interleaving_style %u fmt_cfg %#x)\n", i, fmt->sampling_frequency, fmt->bit_depth, fmt->ch_map, fmt->ch_cfg, fmt->interleaving_style, fmt->fmt_cfg); } @@ -682,7 +682,7 @@ static int sof_ipc4_widget_setup_comp_pga(struct snd_sof_widget *swidget) dev_dbg(scomp->dev, "pga widget %s: ramp type: %d, ramp duration %d, initial gain value: %#x, cpc %d\n", - swidget->widget->name, gain->data.curve_type, gain->data.curve_duration, + swidget->widget->name, gain->data.curve_type, gain->data.curve_duration_l, gain->data.init_val, gain->base_config.cpc); ret = sof_ipc4_widget_setup_msg(swidget, &gain->msg); diff --git a/sound/soc/sof/ipc4-topology.h b/sound/soc/sof/ipc4-topology.h index 2363a7cc0b57..cf9d27852457 100644 --- a/sound/soc/sof/ipc4-topology.h +++ b/sound/soc/sof/ipc4-topology.h @@ -217,14 +217,16 @@ struct sof_ipc4_control_data { * @init_val: Initial value * @curve_type: Curve type * @reserved: reserved for future use - * @curve_duration: Curve duration + * @curve_duration_l: Curve duration low part + * @curve_duration_h: Curve duration high part */ struct sof_ipc4_gain_data { uint32_t channels; uint32_t init_val; uint32_t curve_type; uint32_t reserved; - uint32_t curve_duration; + uint32_t curve_duration_l; + uint32_t curve_duration_h; } __aligned(8); /** diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c index 01071fa7a0cf..75b4b63dd354 100644 --- a/sound/usb/endpoint.c +++ b/sound/usb/endpoint.c @@ -455,8 +455,8 @@ static void push_back_to_ready_list(struct snd_usb_endpoint *ep, * This function is used both for implicit feedback endpoints and in low- * latency playback mode. */ -void snd_usb_queue_pending_output_urbs(struct snd_usb_endpoint *ep, - bool in_stream_lock) +int snd_usb_queue_pending_output_urbs(struct snd_usb_endpoint *ep, + bool in_stream_lock) { bool implicit_fb = snd_usb_endpoint_implicit_feedback_sink(ep); @@ -480,7 +480,7 @@ void snd_usb_queue_pending_output_urbs(struct snd_usb_endpoint *ep, spin_unlock_irqrestore(&ep->lock, flags); if (ctx == NULL) - return; + break; /* copy over the length information */ if (implicit_fb) { @@ -495,11 +495,14 @@ void snd_usb_queue_pending_output_urbs(struct snd_usb_endpoint *ep, break; if (err < 0) { /* push back to ready list again for -EAGAIN */ - if (err == -EAGAIN) + if (err == -EAGAIN) { push_back_to_ready_list(ep, ctx); - else + break; + } + + if (!in_stream_lock) notify_xrun(ep); - return; + return -EPIPE; } err = usb_submit_urb(ctx->urb, GFP_ATOMIC); @@ -507,13 +510,16 @@ void snd_usb_queue_pending_output_urbs(struct snd_usb_endpoint *ep, usb_audio_err(ep->chip, "Unable to submit urb #%d: %d at %s\n", ctx->index, err, __func__); - notify_xrun(ep); - return; + if (!in_stream_lock) + notify_xrun(ep); + return -EPIPE; } set_bit(ctx->index, &ep->active_mask); atomic_inc(&ep->submitted_urbs); } + + return 0; } /* diff --git a/sound/usb/endpoint.h b/sound/usb/endpoint.h index 924f4351588c..c09f68ce08b1 100644 --- a/sound/usb/endpoint.h +++ b/sound/usb/endpoint.h @@ -52,7 +52,7 @@ int snd_usb_endpoint_implicit_feedback_sink(struct snd_usb_endpoint *ep); int snd_usb_endpoint_next_packet_size(struct snd_usb_endpoint *ep, struct snd_urb_ctx *ctx, int idx, unsigned int avail); -void snd_usb_queue_pending_output_urbs(struct snd_usb_endpoint *ep, - bool in_stream_lock); +int snd_usb_queue_pending_output_urbs(struct snd_usb_endpoint *ep, + bool in_stream_lock); #endif /* __USBAUDIO_ENDPOINT_H */ diff --git a/sound/usb/format.c b/sound/usb/format.c index 405dc0bf6678..4b1c5ba121f3 100644 --- a/sound/usb/format.c +++ b/sound/usb/format.c @@ -39,8 +39,12 @@ static u64 parse_audio_format_i_type(struct snd_usb_audio *chip, case UAC_VERSION_1: default: { struct uac_format_type_i_discrete_descriptor *fmt = _fmt; - if (format >= 64) - return 0; /* invalid format */ + if (format >= 64) { + usb_audio_info(chip, + "%u:%d: invalid format type 0x%llx is detected, processed as PCM\n", + fp->iface, fp->altsetting, format); + format = UAC_FORMAT_TYPE_I_PCM; + } sample_width = fmt->bBitResolution; sample_bytes = fmt->bSubframeSize; format = 1ULL << format; diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c index 2c5765cbed2d..1e1d7458bce1 100644 --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c @@ -1595,7 +1595,7 @@ static int snd_usb_pcm_playback_ack(struct snd_pcm_substream *substream) * outputs here */ if (!ep->active_mask) - snd_usb_queue_pending_output_urbs(ep, true); + return snd_usb_queue_pending_output_urbs(ep, true); return 0; } diff --git a/tools/lib/bpf/btf_dump.c b/tools/lib/bpf/btf_dump.c index 0b470169729e..56102711f395 100644 --- a/tools/lib/bpf/btf_dump.c +++ b/tools/lib/bpf/btf_dump.c @@ -833,14 +833,9 @@ static bool btf_is_struct_packed(const struct btf *btf, __u32 id, const struct btf_type *t) { const struct btf_member *m; - int align, i, bit_sz; + int max_align = 1, align, i, bit_sz; __u16 vlen; - align = btf__align_of(btf, id); - /* size of a non-packed struct has to be a multiple of its alignment*/ - if (align && t->size % align) - return true; - m = btf_members(t); vlen = btf_vlen(t); /* all non-bitfield fields have to be naturally aligned */ @@ -849,8 +844,11 @@ static bool btf_is_struct_packed(const struct btf *btf, __u32 id, bit_sz = btf_member_bitfield_size(t, i); if (align && bit_sz == 0 && m->offset % (8 * align) != 0) return true; + max_align = max(align, max_align); } - + /* size of a non-packed struct has to be a multiple of its alignment */ + if (t->size % max_align != 0) + return true; /* * if original struct was marked as packed, but its layout is * naturally aligned, we'll detect that it's not packed @@ -858,44 +856,97 @@ static bool btf_is_struct_packed(const struct btf *btf, __u32 id, return false; } -static int chip_away_bits(int total, int at_most) -{ - return total % at_most ? : at_most; -} - static void btf_dump_emit_bit_padding(const struct btf_dump *d, - int cur_off, int m_off, int m_bit_sz, - int align, int lvl) + int cur_off, int next_off, int next_align, + bool in_bitfield, int lvl) { - int off_diff = m_off - cur_off; - int ptr_bits = d->ptr_sz * 8; + const struct { + const char *name; + int bits; + } pads[] = { + {"long", d->ptr_sz * 8}, {"int", 32}, {"short", 16}, {"char", 8} + }; + int new_off, pad_bits, bits, i; + const char *pad_type; - if (off_diff <= 0) - /* no gap */ - return; - if (m_bit_sz == 0 && off_diff < align * 8) - /* natural padding will take care of a gap */ - return; + if (cur_off >= next_off) + return; /* no gap */ - while (off_diff > 0) { - const char *pad_type; - int pad_bits; + /* For filling out padding we want to take advantage of + * natural alignment rules to minimize unnecessary explicit + * padding. First, we find the largest type (among long, int, + * short, or char) that can be used to force naturally aligned + * boundary. Once determined, we'll use such type to fill in + * the remaining padding gap. In some cases we can rely on + * compiler filling some gaps, but sometimes we need to force + * alignment to close natural alignment with markers like + * `long: 0` (this is always the case for bitfields). Note + * that even if struct itself has, let's say 4-byte alignment + * (i.e., it only uses up to int-aligned types), using `long: + * X;` explicit padding doesn't actually change struct's + * overall alignment requirements, but compiler does take into + * account that type's (long, in this example) natural + * alignment requirements when adding implicit padding. We use + * this fact heavily and don't worry about ruining correct + * struct alignment requirement. + */ + for (i = 0; i < ARRAY_SIZE(pads); i++) { + pad_bits = pads[i].bits; + pad_type = pads[i].name; - if (ptr_bits > 32 && off_diff > 32) { - pad_type = "long"; - pad_bits = chip_away_bits(off_diff, ptr_bits); - } else if (off_diff > 16) { - pad_type = "int"; - pad_bits = chip_away_bits(off_diff, 32); - } else if (off_diff > 8) { - pad_type = "short"; - pad_bits = chip_away_bits(off_diff, 16); - } else { - pad_type = "char"; - pad_bits = chip_away_bits(off_diff, 8); + new_off = roundup(cur_off, pad_bits); + if (new_off <= next_off) + break; + } + + if (new_off > cur_off && new_off <= next_off) { + /* We need explicit `: 0` aligning mark if next + * field is right on alignment offset and its + * alignment requirement is less strict than 's + * alignment (so compiler won't naturally align to the + * offset we expect), or if subsequent `: X`, + * will actually completely fit in the remaining hole, + * making compiler basically ignore `: X` + * completely. + */ + if (in_bitfield || + (new_off == next_off && roundup(cur_off, next_align * 8) != new_off) || + (new_off != next_off && next_off - new_off <= new_off - cur_off)) + /* but for bitfields we'll emit explicit bit count */ + btf_dump_printf(d, "\n%s%s: %d;", pfx(lvl), pad_type, + in_bitfield ? new_off - cur_off : 0); + cur_off = new_off; + } + + /* Now we know we start at naturally aligned offset for a chosen + * padding type (long, int, short, or char), and so the rest is just + * a straightforward filling of remaining padding gap with full + * `: sizeof();` markers, except for the last one, which + * might need smaller than sizeof() padding. + */ + while (cur_off != next_off) { + bits = min(next_off - cur_off, pad_bits); + if (bits == pad_bits) { + btf_dump_printf(d, "\n%s%s: %d;", pfx(lvl), pad_type, pad_bits); + cur_off += bits; + continue; + } + /* For the remainder padding that doesn't cover entire + * pad_type bit length, we pick the smallest necessary type. + * This is pure aesthetics, we could have just used `long`, + * but having smallest necessary one communicates better the + * scale of the padding gap. + */ + for (i = ARRAY_SIZE(pads) - 1; i >= 0; i--) { + pad_type = pads[i].name; + pad_bits = pads[i].bits; + if (pad_bits < bits) + continue; + + btf_dump_printf(d, "\n%s%s: %d;", pfx(lvl), pad_type, bits); + cur_off += bits; + break; } - btf_dump_printf(d, "\n%s%s: %d;", pfx(lvl), pad_type, pad_bits); - off_diff -= pad_bits; } } @@ -915,9 +966,11 @@ static void btf_dump_emit_struct_def(struct btf_dump *d, { const struct btf_member *m = btf_members(t); bool is_struct = btf_is_struct(t); - int align, i, packed, off = 0; + bool packed, prev_bitfield = false; + int align, i, off = 0; __u16 vlen = btf_vlen(t); + align = btf__align_of(d->btf, id); packed = is_struct ? btf_is_struct_packed(d->btf, id, t) : 0; btf_dump_printf(d, "%s%s%s {", @@ -927,33 +980,36 @@ static void btf_dump_emit_struct_def(struct btf_dump *d, for (i = 0; i < vlen; i++, m++) { const char *fname; - int m_off, m_sz; + int m_off, m_sz, m_align; + bool in_bitfield; fname = btf_name_of(d, m->name_off); m_sz = btf_member_bitfield_size(t, i); m_off = btf_member_bit_offset(t, i); - align = packed ? 1 : btf__align_of(d->btf, m->type); + m_align = packed ? 1 : btf__align_of(d->btf, m->type); - btf_dump_emit_bit_padding(d, off, m_off, m_sz, align, lvl + 1); + in_bitfield = prev_bitfield && m_sz != 0; + + btf_dump_emit_bit_padding(d, off, m_off, m_align, in_bitfield, lvl + 1); btf_dump_printf(d, "\n%s", pfx(lvl + 1)); btf_dump_emit_type_decl(d, m->type, fname, lvl + 1); if (m_sz) { btf_dump_printf(d, ": %d", m_sz); off = m_off + m_sz; + prev_bitfield = true; } else { m_sz = max((__s64)0, btf__resolve_size(d->btf, m->type)); off = m_off + m_sz * 8; + prev_bitfield = false; } + btf_dump_printf(d, ";"); } /* pad at the end, if necessary */ - if (is_struct) { - align = packed ? 1 : btf__align_of(d->btf, id); - btf_dump_emit_bit_padding(d, off, t->size * 8, 0, align, - lvl + 1); - } + if (is_struct) + btf_dump_emit_bit_padding(d, off, t->size * 8, align, false, lvl + 1); if (vlen) btf_dump_printf(d, "\n"); diff --git a/tools/power/acpi/tools/pfrut/pfrut.c b/tools/power/acpi/tools/pfrut/pfrut.c index 52aa0351533c..388c9e3ad040 100644 --- a/tools/power/acpi/tools/pfrut/pfrut.c +++ b/tools/power/acpi/tools/pfrut/pfrut.c @@ -97,7 +97,7 @@ static struct option long_options[] = { static void parse_options(int argc, char **argv) { int option_index = 0; - char *pathname; + char *pathname, *endptr; int opt; pathname = strdup(argv[0]); @@ -125,11 +125,23 @@ static void parse_options(int argc, char **argv) log_getinfo = 1; break; case 'T': - log_type = atoi(optarg); + log_type = strtol(optarg, &endptr, 0); + if (*endptr || (log_type != 0 && log_type != 1)) { + printf("Number expected: type(0:execution, 1:history) - Quit.\n"); + exit(1); + } + set_log_type = 1; break; case 'L': - log_level = atoi(optarg); + log_level = strtol(optarg, &endptr, 0); + if (*endptr || + (log_level != 0 && log_level != 1 && + log_level != 2 && log_level != 4)) { + printf("Number expected: level(0, 1, 2, 4) - Quit.\n"); + exit(1); + } + set_log_level = 1; break; case 'R': diff --git a/tools/power/x86/turbostat/turbostat.8 b/tools/power/x86/turbostat/turbostat.8 index c7b26a3603af..3e1a4c4be001 100644 --- a/tools/power/x86/turbostat/turbostat.8 +++ b/tools/power/x86/turbostat/turbostat.8 @@ -344,6 +344,8 @@ Alternatively, non-root users can be enabled to run turbostat this way: # chmod +r /dev/cpu/*/msr +# chmod +r /dev/cpu_dma_latency + .B "turbostat " reads hardware counters, but doesn't write them. So it will not interfere with the OS or other programs, including diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c index aba460410dbd..c61c6c704fbe 100644 --- a/tools/power/x86/turbostat/turbostat.c +++ b/tools/power/x86/turbostat/turbostat.c @@ -4426,7 +4426,7 @@ int print_hwp(struct thread_data *t, struct core_data *c, struct pkg_data *p) fprintf(outf, "cpu%d: MSR_HWP_STATUS: 0x%08llx " "(%sGuaranteed_Perf_Change, %sExcursion_Min)\n", - cpu, msr, ((msr) & 0x1) ? "" : "No-", ((msr) & 0x2) ? "" : "No-"); + cpu, msr, ((msr) & 0x1) ? "" : "No-", ((msr) & 0x4) ? "" : "No-"); return 0; } @@ -5482,7 +5482,7 @@ void print_dev_latency(void) retval = read(fd, (void *)&value, sizeof(int)); if (retval != sizeof(int)) { - warn("read %s\n", path); + warn("read failed %s\n", path); close(fd); return; } diff --git a/tools/testing/selftests/bpf/progs/btf_dump_test_case_bitfields.c b/tools/testing/selftests/bpf/progs/btf_dump_test_case_bitfields.c index e5560a656030..e01690618e1e 100644 --- a/tools/testing/selftests/bpf/progs/btf_dump_test_case_bitfields.c +++ b/tools/testing/selftests/bpf/progs/btf_dump_test_case_bitfields.c @@ -53,7 +53,7 @@ struct bitfields_only_mixed_types { */ /* ------ END-EXPECTED-OUTPUT ------ */ struct bitfield_mixed_with_others { - long: 4; /* char is enough as a backing field */ + char: 4; /* char is enough as a backing field */ int a: 4; /* 8-bit implicit padding */ short b; /* combined with previous bitfield */ diff --git a/tools/testing/selftests/bpf/progs/btf_dump_test_case_packing.c b/tools/testing/selftests/bpf/progs/btf_dump_test_case_packing.c index e304b6204bd9..7998f27df7dd 100644 --- a/tools/testing/selftests/bpf/progs/btf_dump_test_case_packing.c +++ b/tools/testing/selftests/bpf/progs/btf_dump_test_case_packing.c @@ -58,7 +58,81 @@ union jump_code_union { } __attribute__((packed)); }; -/*------ END-EXPECTED-OUTPUT ------ */ +/* ----- START-EXPECTED-OUTPUT ----- */ +/* + *struct nested_packed_but_aligned_struct { + * int x1; + * int x2; + *}; + * + *struct outer_implicitly_packed_struct { + * char y1; + * struct nested_packed_but_aligned_struct y2; + *} __attribute__((packed)); + * + */ +/* ------ END-EXPECTED-OUTPUT ------ */ + +struct nested_packed_but_aligned_struct { + int x1; + int x2; +} __attribute__((packed)); + +struct outer_implicitly_packed_struct { + char y1; + struct nested_packed_but_aligned_struct y2; +}; +/* ----- START-EXPECTED-OUTPUT ----- */ +/* + *struct usb_ss_ep_comp_descriptor { + * char: 8; + * char bDescriptorType; + * char bMaxBurst; + * short wBytesPerInterval; + *}; + * + *struct usb_host_endpoint { + * long: 64; + * char: 8; + * struct usb_ss_ep_comp_descriptor ss_ep_comp; + * long: 0; + *} __attribute__((packed)); + * + */ +/* ------ END-EXPECTED-OUTPUT ------ */ + +struct usb_ss_ep_comp_descriptor { + char: 8; + char bDescriptorType; + char bMaxBurst; + int: 0; + short wBytesPerInterval; +} __attribute__((packed)); + +struct usb_host_endpoint { + long: 64; + char: 8; + struct usb_ss_ep_comp_descriptor ss_ep_comp; + long: 0; +}; + +/* ----- START-EXPECTED-OUTPUT ----- */ +struct nested_packed_struct { + int a; + char b; +} __attribute__((packed)); + +struct outer_nonpacked_struct { + short a; + struct nested_packed_struct b; +}; + +struct outer_packed_struct { + short a; + struct nested_packed_struct b; +} __attribute__((packed)); + +/* ------ END-EXPECTED-OUTPUT ------ */ int f(struct { struct packed_trailing_space _1; @@ -69,6 +143,10 @@ int f(struct { union union_is_never_packed _6; union union_does_not_need_packing _7; union jump_code_union _8; + struct outer_implicitly_packed_struct _9; + struct usb_host_endpoint _10; + struct outer_nonpacked_struct _11; + struct outer_packed_struct _12; } *_) { return 0; diff --git a/tools/testing/selftests/bpf/progs/btf_dump_test_case_padding.c b/tools/testing/selftests/bpf/progs/btf_dump_test_case_padding.c index f2661c8d2d90..79276fbe454a 100644 --- a/tools/testing/selftests/bpf/progs/btf_dump_test_case_padding.c +++ b/tools/testing/selftests/bpf/progs/btf_dump_test_case_padding.c @@ -19,7 +19,7 @@ struct padded_implicitly { /* *struct padded_explicitly { * int a; - * int: 32; + * long: 0; * int b; *}; * @@ -28,41 +28,28 @@ struct padded_implicitly { struct padded_explicitly { int a; - int: 1; /* algo will explicitly pad with full 32 bits here */ + int: 1; /* algo will emit aligning `long: 0;` here */ int b; }; /* ----- START-EXPECTED-OUTPUT ----- */ -/* - *struct padded_a_lot { - * int a; - * long: 32; - * long: 64; - * long: 64; - * int b; - *}; - * - */ -/* ------ END-EXPECTED-OUTPUT ------ */ - struct padded_a_lot { int a; - /* 32 bit of implicit padding here, which algo will make explicit */ long: 64; long: 64; int b; }; +/* ------ END-EXPECTED-OUTPUT ------ */ + /* ----- START-EXPECTED-OUTPUT ----- */ /* *struct padded_cache_line { * int a; - * long: 32; * long: 64; * long: 64; * long: 64; * int b; - * long: 32; * long: 64; * long: 64; * long: 64; @@ -85,7 +72,7 @@ struct padded_cache_line { *struct zone { * int a; * short b; - * short: 16; + * long: 0; * struct zone_padding __pad__; *}; * @@ -102,12 +89,160 @@ struct zone { struct zone_padding __pad__; }; +/* ----- START-EXPECTED-OUTPUT ----- */ +struct padding_wo_named_members { + long: 64; + long: 64; +}; + +struct padding_weird_1 { + int a; + long: 64; + short: 16; + short b; +}; + +/* ------ END-EXPECTED-OUTPUT ------ */ + +/* ----- START-EXPECTED-OUTPUT ----- */ +/* + *struct padding_weird_2 { + * long: 56; + * char a; + * long: 56; + * char b; + * char: 8; + *}; + * + */ +/* ------ END-EXPECTED-OUTPUT ------ */ +struct padding_weird_2 { + int: 32; /* these paddings will be collapsed into `long: 56;` */ + short: 16; + char: 8; + char a; + int: 32; /* these paddings will be collapsed into `long: 56;` */ + short: 16; + char: 8; + char b; + char: 8; +}; + +/* ----- START-EXPECTED-OUTPUT ----- */ +struct exact_1byte { + char x; +}; + +struct padded_1byte { + char: 8; +}; + +struct exact_2bytes { + short x; +}; + +struct padded_2bytes { + short: 16; +}; + +struct exact_4bytes { + int x; +}; + +struct padded_4bytes { + int: 32; +}; + +struct exact_8bytes { + long x; +}; + +struct padded_8bytes { + long: 64; +}; + +struct ff_periodic_effect { + int: 32; + short magnitude; + long: 0; + short phase; + long: 0; + int: 32; + int custom_len; + short *custom_data; +}; + +struct ib_wc { + long: 64; + long: 64; + int: 32; + int byte_len; + void *qp; + union {} ex; + long: 64; + int slid; + int wc_flags; + long: 64; + char smac[6]; + long: 0; + char network_hdr_type; +}; + +struct acpi_object_method { + long: 64; + char: 8; + char type; + short reference_count; + char flags; + short: 0; + char: 8; + char sync_level; + long: 64; + void *node; + void *aml_start; + union {} dispatch; + long: 64; + int aml_length; +}; + +struct nested_unpacked { + int x; +}; + +struct nested_packed { + struct nested_unpacked a; + char c; +} __attribute__((packed)); + +struct outer_mixed_but_unpacked { + struct nested_packed b1; + short a1; + struct nested_packed b2; +}; + +/* ------ END-EXPECTED-OUTPUT ------ */ + int f(struct { struct padded_implicitly _1; struct padded_explicitly _2; struct padded_a_lot _3; struct padded_cache_line _4; struct zone _5; + struct padding_wo_named_members _6; + struct padding_weird_1 _7; + struct padding_weird_2 _8; + struct exact_1byte _100; + struct padded_1byte _101; + struct exact_2bytes _102; + struct padded_2bytes _103; + struct exact_4bytes _104; + struct padded_4bytes _105; + struct exact_8bytes _106; + struct padded_8bytes _107; + struct ff_periodic_effect _200; + struct ib_wc _201; + struct acpi_object_method _202; + struct outer_mixed_but_unpacked _203; } *_) { return 0;