Merge keystone/android14-6.1-keystone-qcom-release.6.1.25 (a0290fa
) into qcom-6.1
* refs/heads/tmp-a0290fa: ANDROID: GKI: Update symbols to abi_gki_aarch64_oplus for extend copy & fbarrier feature ANDROID: abi_gki_aarch64_qcom: Update symbol list ANDROID: mmc: core: Export core functions for kernel modules usage ANDROID: vendor_hooks: Define new hooks in _mmc_suspend/resume ANDROID: update symbol for unisoc vendor_hooks ANDROID: vendor_hooks: psci: add hook to check if cpu is allowed to power off ANDROID: Add vendor hook to the effective_cpu_util ANDROID: Update symbol list for mtk ANDROID: ABI: update symbol list for galaxy ANDROID: update symbol for unisoc vendor_hooks ANDROID: thermal: Add vendor hook to check power range ANDROID: thermal: Add vendor hook to get thermal zone device ANDROID: thermal: Add hook for cpufreq thermal ANDROID: virt: gunyah: Delta between v13 and v14 Revert "ANDROID: gki_config: use DWARFv5 rather than DWARFv4" ANDROID: gunyah: Sync with latest "mailbox: Add Gunyah message queue mailbox" FROMLIST: scsi: ufs: core: Fix mcq tag calcualtion UPSTREAM: ufs: mcq: qcom: Fix passing zero to PTR_ERR UPSTREAM: ufs: mcq: qcom: Clean the return path of ufs_qcom_mcq_config_resource UPSTREAM: scsi: ufs: core: Print trs for pending requests in MCQ mode UPSTREAM: scsi: ufs: core: Add trace event for MCQ UPSTREAM: mm,kfence: decouple kfence from page granularity mapping judgement UPSTREAM: mm/page_alloc: fix potential deadlock on zonelist_update_seq seqlock UPSTREAM: mm: page_alloc: skip regions with hugetlbfs pages when allocating 1G pages UPSTREAM: usb: gadget: f_fs: Add unbind event before functionfs_unbind UPSTREAM: mm: kmsan: handle alloc failures in kmsan_vmap_pages_range_noflush() ANDROID: defconfig: Enable debug configs in consolidate-fragment ANDROID: ABI: Update oplus symbol list Revert "FROMGIT: usb: gadget: udc: core: Prevent redundant calls to pullup" ANDROID: GKI: Update symbols to symbol list ANDROID: vendor_hooks: Add hooks for binder proc transaction UPSTREAM: mm: kmsan: handle alloc failures in kmsan_ioremap_page_range() UPSTREAM: mm/huge_memory.c: warn with pr_warn_ratelimited instead of VM_WARN_ON_ONCE_FOLIO UPSTREAM: mm/userfaultfd: fix uffd-wp handling for THP migration entries UPSTREAM: mm/khugepaged: check again on anon uffd-wp during isolation UPSTREAM: fuse: always revalidate rename target dentry ANDROID: GKI: update xiaomi symbol list BACKPORT: FROMGIT: Multi-gen LRU: fix workingset accounting BACKPORT: FROMGIT: PCI: dwc: Wait for link up only if link is started ANDROID: ABI: update symbol list for exynos ANDROID: ufs: Improve MCQ err handling ANDROID: ABI: Update oplus symbol list ANDROID: GKI: sched: add rvh for new cfs task util ANDROID: Disable BTI_KERNEL, enable UNWIND_PATCH_PAC_INTO_SCS BACKPORT: arm64: implement dynamic shadow call stack for Clang UPSTREAM: scs: add support for dynamic shadow call stacks BACKPORT: arm64: unwind: add asynchronous unwind tables to kernel and modules ANDROID: ABI: Update oplus symbol list ANDROID: vendor_hooks: Add hook in shrink_node_memcgs ANDROID: ashmem: Export is_ashmem_file ANDROID: ABI: update symbol list related to show_mem for Exynos ANDROID: vendor_hooks: Add hooks for memory when debug ANDROID: GKI: Update symbol list for honor ANDROID: mutex: Add vendor hook to init mutex oem data. ANDROID: bazel: Adding make_goals to consolidate build ANDROID: ABI: Update oplus symbol list ANDROID: vendor_hook: add hooks in dm_bufio.c ANDROID: abi_gki_aarch64_qcom: update QCOM symbol list ANDROID: ABI: Update honor symbol list ANDROID: mm: create vendor hooks for do_shrink_slab() ANDROID: mm: create vendor hooks for shrink_slab() BACKPORT: usb: dwc3: fix gadget mode suspend interrupt handler issue ANDROID: GKI: update symbol list file for xiaomi ANDROID: 5/24/2023 KMI update ANDROID: virt: gunyah: Add KABI reservations ANDROID: virt: gunyah: Sync with KMI impacting changes from v13 ANDROID: virt: gunyah: Force struct gh_rm as opaque Revert "ANDROID: gki_config: use DWARFv5 rather than DWARFv4" ANDROID: ABI: Update symbol list for Exynos SoC ANDROID: power: Add ANDROID_OEM_DATA in freq_qos_request. ANDROID: GKI: net: add vendor hooks for 'struct sock' lifecycle ANDROID: GKI: net: add vendor hooks for 'struct nf_conn' lifecycle ANDROID: GKI: add vendor padding variable in struct sock ANDROID: GKI: add vendor padding variable in struct nf_conn ANDROID: GKI: add vendor padding variable in struct skb_shared_info UPSTREAM: ext4: avoid a potential slab-out-of-bounds in ext4_group_desc_csum UPSTREAM: cpuidle: teo: Introduce util-awareness UPSTREAM: cpuidle: teo: Optionally skip polling states in teo_find_shallower_state() ANDROID: ABI: Update oplus symbol list ANDROID: thermal: Add vendor hooks for thermal ANDROID: GKI: Update symbol list for honor ANDROID: mm: create vendor hooks for page alloc ANDROID: ABI: Update oplus symbol list ANDROID: vendor_hooks: Add hooks for cpufreq_acct_update_power ANDROID: ABI: Update symbol list for Exynos SoC ANDROID: ABI: Update oplus symbol list ANDROID: vendor_hooks: Add hooks for account irqtime process tick ANDROID: vendor_hooks: Add hooks to dup_task_struct ANDROID: vendor_hooks: Add hooks to record the time of the process in various states ANDROID: vendor_hooks: Add hooks for signal ANDROID: power: wakeup_reason: change abort log ANDROID: virt: gunyah: Delta between v13 and v14 ANDROID: GKI: Update symbol list for xiaomi ANDROID: psi: Add vendor hooks for PSI tracing UPSTREAM: ext4: fix invalid free tracking in ext4_xattr_move_to_block() FROMGIT: scsi: ufs: core: mcq: Fix &hwq->cq_lock deadlock issue ANDROID: ABI: Update oplus symbol list ANDROID: android: Export symbols for invoking cpufreq_update_util() ANDROID: ABI: Update oplus symbol list ANDROID: vendor_hooks: Export the tracepoints task_rename ANDROID: Add macros to create reserved data fields to backport upstream changes ANDROID: retry page allocation from buddy on lock contention UPSTREAM: KVM: arm64: Fix buffer overflow in kvm_arm_set_fw_reg() ANDROID: arm64: Check FGT cap before touching HFGWTR_EL2 Revert "ANDROID: Partially Revert "ANDROID: KVM: arm64: Allow tweaking HFGWTR_EL2 from modules"" FROMGIT: f2fs: fix the wrong condition to determine atomic context ANDROID: GKI: update symbol list file for honor ANDROID: ABI: Update symbol list for imx ANDROID: mm: shmem: initialize the vendor data ANDROID: GKI: refresh STG ABI to new version ANDROID: GKI: Add symbols to symbol list for vivo ANDROID: ABI: Update oplus symbol list ANDROID: vendor_hooks: Add hooks for account process tick ANDROID: ABI: Update oplus symbol list ANDROID: vendor_hooks: add hook account_process_tick_gran ANDROID: vendor_hooks: Add hook in try_to_unmap_one() ANDROID: vendor_hooks: Add hook in mmap_region() ANDROID: Partially Revert "ANDROID: KVM: arm64: Allow tweaking HFGWTR_EL2 from modules" ANDROID: GKI: update the ABI symbol list ANDROID: freezer: Add vendor hook to freezer for GKI purpose. ANDROID: freezer: export the freezer_cgrp_subsys for GKI purpose. ANDROID: GKI: update the ABI symbol list ANDROID: Add vendor hooks for binder perf tuning ANDROID: Add vendor hooks to signal. ANDROID: Update the ABI symbol list ANDROID: page_pinner: add missing page_pinner_put_page ANDROID: page_pinner: prevent pp_buffer uninitialized access ANDROID: page_pinner: prevent pp_buffer access before initialization ANDROID: mm: fix use-after free of page_ext in page_pinner ANDROID: mm: introduce page_pinner ANDROID: abi_gki_aarch64_qcom: Add gh_rm_register_platform_ops ANDROID: gunyah: Sync remaining gunyah drivers with latest ANDROID: gunyah: Sync with latest "mailbox: Add Gunyah message queue mailbox" ANDROID: gunyah: Sync with latest "gunyah: Common types and error codes for Gunyah hypercalls" ANDROID: gunyah: Sync with latest hypercalls ANDROID: gunyah: Sync with latest documentation and UAPI ANDROID: gunyah: Sync with latest "firmware: qcom_scm: Register Gunyah platform ops" BACKPORT: firmware: qcom_scm: Use fixed width src vm bitmap BACKPORT: misc: fastrpc: Pass bitfield into qcom_scm_assign_mem ANDROID: gunyah: Sync with latest "virt: gunyah: Add ioeventfd" ANDROID: gunyah: Sync with latest "gunyah: vm_mgr: Add ioctls to support basic non-proxy VM boot" ANDROID: gunyah: Sync with latest "gunyah: vm_mgr: Add/remove user memory regions" ANDROID: gunyah: Sync with latest "virt: gunyah: Add resource tickets" ANDROID: gunyah: Sync with latest "gunyah: vm_mgr: Add framework for VM Functions" ANDROID: gunyah: Sync with latest "gunyah: rsc_mgr: Add resource manager RPC core" ANDROID: gunyah: Sync with latest "virt: gunyah: Translate gh_rm_hyp_resource into gunyah_resource" ANDROID: gunyah: Sync with latest "virt: gunyah: Add hypercalls to identify Gunyah" BACKPORT: overflow: Introduce overflows_type() and castable_to_type() UPSTREAM: drm/amd/display: set dcn315 lb bpp to 48 UPSTREAM: drm/amdgpu: Fix desktop freezed after gpu-reset UPSTREAM: drm/i915: Fix fast wake AUX sync len UPSTREAM: ASN.1: Fix check for strdup() success UPSTREAM: ASoC: fsl_sai: Fix pins setting for i.MX8QM platform UPSTREAM: ASoC: fsl_asrc_dma: fix potential null-ptr-deref UPSTREAM: ASoC: SOF: pm: Tear down pipelines only if DSP was active UPSTREAM: fpga: bridge: properly initialize bridge device before populating children UPSTREAM: iio: adc: at91-sama5d2_adc: fix an error code in at91_adc_allocate_trigger() UPSTREAM: Input: pegasus-notetaker - check pipe type when probing UPSTREAM: gcc: disable '-Warray-bounds' for gcc-13 too UPSTREAM: sctp: Call inet6_destroy_sock() via sk->sk_destruct(). UPSTREAM: dccp: Call inet6_destroy_sock() via sk->sk_destruct(). UPSTREAM: netfilter: nf_tables: deactivate anonymous set from preparation phase ANDROID: GKI: add symbol list file for unisoc UPSTREAM: inet6: Remove inet6_destroy_sock() in sk->sk_prot->destroy(). UPSTREAM: purgatory: fix disabling debug info UPSTREAM: MIPS: Define RUNTIME_DISCARD_EXIT in LD script UPSTREAM: usb: dwc3: debugfs: Resume dwc3 before accessing registers ANDROID: ABI: Update oplus symbol list ANDROID: vendor_hooks: Export the tracepoints sched_stat_sleep and sched_waking to let module probe them ANDROID: vendor_hooks: Export the tracepoints sched_stat_iowait, sched_stat_blocked, sched_stat_wait to let modules probe them ANDROID: vendor_hooks: export get_wchan ANDROID: workqueue: export symbol of the function wq_worker_comm() BACKPORT: mm/kmemleak: fix UAF bug in kmemleak_scan() ANDROID: clang: update to 17.0.2 ANDROID: abi_gki_aarch64_qcom: update symbol list UPSTREAM: media: add nv12_8l128 and nv12_10be_8l128 video format. ANDROID: ABI: update symbol list for galaxy ANDROID: db845c: Remove MAKE_GOALS from build.config ANDROID: GKI: gen_gki_modules_headers update preprocessing FROMGIT: locking/rwsem: Add __always_inline annotation to __down_read_common() and inlined callers FROMGIT: xfrm: Check if_id in inbound policy/secpath match ANDROID: always add the struct wireless_dev * to struct net_device ANDROID: ABI: Update symbol list for imx ANDROID: KVM: arm64: Always unmap protected regions from the host FROMLIST: usb: typec: altmodes/displayport: fix pin_assignment_show ANDROID: block: Improve shared tag set performance ANDROID: Update ABI representation broken by update race ANDROID: GKI: update the ABI symbol list ANDROID: cgroup: Add vendor hook for cpuset. ANDROID: export cpuset_cpus_allowed()for GKI purpose. ANDROID: sched: Add vendor hooks for cpu affinity. ANDROID: GKI: Update owners for GKI modules lists ANDROID: abi_gki_aarch64_qcom: Add USB SND power domain symbol FROMGIT: usb: xhci: Remove unused udev from xhci_log_ctx trace event ANDROID: 5/10/2023 KMI update ANDROID: KVM: arm64: Allow tweaking HFGWTR_EL2 from modules ANDROID: KVM: arm64: Allow tweaking HCR_EL2 from modules ANDROID: GKI: Trimmed symbol lists for 80211 modules ANDROID: GKI: DB845C: cfg/mac 80211 as vendor modules ANDROID: GKI: cfg/mac 80211 as vendor modules ANDROID: ABI: Update oplus symbol list ANDROID: vendor_hooks: Add hooks for futex ANDROID: vendor_hooks: Add hooks for oem futex optimization FROMGIT: wifi: nl80211: Add support for randomizing TA of auth and deauth frames ANDROID: GKI: update the ABI symbol list ANDROID: sched: Add ANDROID_OEM_DATA_ARRAY in user_struct. ANDROID: power: Add vendor hook to qos for GKI purpose. ANDROID: GKI: update the ABI symbol list ANDROID: export find_user() & free_uid()for GKI purpose. ANDROID: user: Add vendor hook to user for GKI purpose ANDROID: sched: add trace_android_vh_map_util_freq parameter FROMGIT: usb: gadget: udc: core: Prevent redundant calls to pullup FROMGIT: usb: gadget: udc: core: Invoke usb_gadget_connect only when started Revert "Revert "KVM: arm64: PMU: Don't save PMCR_EL0.{C,P} for the vCPU"" Revert "Revert "KVM: arm64: PMU: Sanitise PMCR_EL0.LP on first vcpu run"" Revert "Revert "KVM: arm64: PMU: Distinguish between 64bit counter and 64bit overflow"" Revert "Revert "KVM: arm64: PMU: Align chained counter implementation with architecture pseudocode"" Revert "Revert "pwm: meson: Explicitly set .polarity in .get_state()"" Revert "Revert "pwm: sprd: Explicitly set .polarity in .get_state()"" Revert "Revert "pwm: iqs620a: Explicitly set .polarity in .get_state()"" Revert "Revert "pwm: cros-ec: Explicitly set .polarity in .get_state()"" Revert "Revert "pwm: hibvt: Explicitly set .polarity in .get_state()"" Revert "Revert "pwm: Make .get_state() callback return an error code"" Revert "Revert "raw: Fix NULL deref in raw_get_next()."" Revert "Revert "raw: use net_hash_mix() in hash function"" FROMLIST: scsi: ufs: core: Fix mcq nr_hw_queues FROMLIST: scsi: ufs: core: Rename symbol sizeof_utp_transfer_cmd_desc() FROMLIST: scsi: ufs: core: Fix mcq tag calcualtion ANDROID: GKI: Remove MAKE_GOALS from build.config ANDROID: GKI: Add symbols to symbol list for vivo ANDROID: KVM: arm64: Restrict pKVM hyp exports ANDROID: kleaf: move NDK_TRIPLE for arm to build.config.constants. FROMLIST: clocksource/drivers/timer-mediatek: Make timer-mediatek become loadable module FROMLIST: clocksource/drivers/timer-of: Remove __init markings FROMLIST: clocksource/drivers/mmio: Export clocksource_mmio_init() FROMLIST: time/sched_clock: Export sched_clock_register() ANDROID: ABI: Update symbol list for Exynos SoC Revert "Revert "ANDROID: cpufreq: Add a restricted vendor hook for freq transition"" ANDROID: usb: gadget: configfs: Protect composite_setup in a spinlock Revert "ANDROID: uid_sys_stat: split the global lock uid_lock to the fine-grained" ANDROID: GKI: update symbol list file for xiaomi ANDROID: GKI: x86_64: Remove 80211 from protected modules ANDROID: GKI: Update owners for GKI modules lists FROMLIST: binder: fix UAF caused by faulty buffer cleanup ANDROID: ABI: Update oplus symbol list ANDROID: vendor_hooks: Add hooks to select binder worklist ANDROID: vendor_hooks: Add hooks for binder ANDROID: vendor_hooks: Add hooks for rwsem and mutex ANDROID: vendor_hooks: Add hooks for binder proc transaction ANDROID: vendor_hooks: Add hook for binder ANDROID: vendor_hooks: Add hooks for mutex and rwsem optimistic spin ANDROID: vendor_hooks: Add hooks for rwsem and mutex ANDROID: ABI: Update cpu-profiler symbol list for Exynos SoC ANDROID: ABI: Update WLBT, Sensor symbol list for Exynos SoC ANDROID: ABI: Update GPU symbol for Exynos SoC ANDROID: ABI: Update oplus symbol list ANDROID: vendor_hook: add hooks to protect locking-tsk in cpu scheduler ufs: Update struct ufs_hba ANDROID: ABI: Update DRM symbol for Exynos SoC fscrypt: destroy keyring after security_sb_delete() ANDROID: GKI: Increase max 8250 uarts ANDROID: ABI: Update Audio symbol for Exynos SoC UPSTREAM: ufs: mcq: qcom: Fix passing zero to PTR_ERR UPSTREAM: ufs: mcq: qcom: Clean the return path of ufs_qcom_mcq_config_resource ANDROID: Update symbol list for Exynos SoC fscrypt: optimize fscrypt_initialize() fscrypt: use WARN_ON_ONCE instead of WARN_ON fscrypt: new helper function - fscrypt_prepare_lookup_partial() fscrypt: check for NULL keyring in fscrypt_put_master_key_activeref() fscrypt: improve fscrypt_destroy_keyring() documentation drm/rockchip: vop2: Use regcache_sync() to fix suspend/resume drm/rockchip: vop2: fix suspend/resume drm/amd/display: set dcn315 lb bpp to 48 drm/amdgpu: Fix desktop freezed after gpu-reset drm/i915: Fix fast wake AUX sync len mmc: sdhci_am654: Set HIGH_SPEED_ENA for SDR12 and SDR25 memstick: fix memory leak if card device is never registered writeback, cgroup: fix null-ptr-deref write in bdi_split_work_to_wbs tools/mm/page_owner_sort.c: fix TGID output when cull=tg is used kernel/sys.c: fix and improve control flow in __sys_setres[ug]id() nilfs2: initialize unused bytes in segment summary blocks maple_tree: fix a potential memory leak, OOB access, or other unpredictable bug maple_tree: fix mas_empty_area() search LoongArch: Mark 3 symbol exports as non-GPL rust: kernel: Mark rust_fmt_argument as extern "C" maple_tree: make maple state reusable after mas_empty_area_rev() LoongArch: Fix probing of the CRC32 feature btrfs: get the next extent map during fiemap/lseek more efficiently ALSA: hda/realtek: fix mute/micmute LEDs for a HP ProBook iio: light: tsl2772: fix reading proximity-diodes from device tree iio: dac: ad5755: Add missing fwnode_handle_put() drm/amdgpu/vcn: Disable indirect SRAM on Vangogh broken BIOSes Revert "userfaultfd: don't fail on unrecognized features" mtd: spi-nor: fix memory leak when using debugfs_lookup() platform/x86: asus-nb-wmi: Add quirk_asus_tablet_mode to other ROG Flow X13 models platform/x86: gigabyte-wmi: add support for X570S AORUS ELITE xen/netback: use same error messages for same errors nvme-tcp: fix a possible UAF when failing to allocate an io queue drm: test: Fix 32-bit issue in drm_buddy_test drm: buddy_allocator: Fix buddy allocator init on 32-bit systems s390/ptrace: fix PTRACE_GET_LAST_BREAK error handling platform/x86: gigabyte-wmi: add support for B650 AORUS ELITE AX net: dsa: b53: mmap: add phy ops scsi: core: Improve scsi_vpd_inquiry() checks scsi: megaraid_sas: Fix fw_crash_buffer_show() selftests: sigaltstack: fix -Wuninitialized platform/x86 (gigabyte-wmi): Add support for A320M-S2H V2 platform/x86/intel: vsec: Fix a memory leak in intel_vsec_add_aux f2fs: Fix f2fs_truncate_partial_nodes ftrace event net: bridge: switchdev: don't notify FDB entries with "master dynamic" e1000e: Disable TSO on i219-LM card to increase speed bpf: Fix incorrect verifier pruning due to missing register precision taints spi: spi-rockchip: Fix missing unwind goto in rockchip_sfc_probe() mlxsw: pci: Fix possible crash during initialization net: rpl: fix rpl header size calculation bonding: Fix memory leak when changing bond type to Ethernet mlxfw: fix null-ptr-deref in mlxfw_mfa2_tlv_next() bnxt_en: Do not initialize PTP on older P3/P4 chips netfilter: nf_tables: tighten netlink attribute requirements for catch-all elements netfilter: nf_tables: validate catch-all set elements i40e: fix i40e_setup_misc_vector() error handling i40e: fix accessing vsi->active_filters without holding lock netfilter: nf_tables: fix ifdef to also consider nf_tables=m sfc: Fix use-after-free due to selftest_work virtio_net: bugfix overflow inside xdp_linearize_page() net: sched: sch_qfq: prevent slab-out-of-bounds in qfq_activate_agg regulator: fan53555: Fix wrong TCS_SLEW_MASK regulator: fan53555: Explicitly include bits header rust: str: fix requierments->requirements typo netfilter: nf_tables: Modify nla_memdup's flag to GFP_KERNEL_ACCOUNT netfilter: br_netfilter: fix recent physdev match breakage arm64: dts: imx8mp-verdin: correct off-on-delay arm64: dts: imx8mm-verdin: correct off-on-delay arm64: dts: imx8mm-evk: correct pmic clock source arm64: dts: qcom: sc8280xp-pmics: fix pon compatible and registers arm64: dts: meson-g12-common: specify full DMC range arm64: dts: qcom: ipq8074-hk10: enable QMP device, not the PHY node arm64: dts: qcom: hk10: use "okay" instead of "ok" arm64: dts: qcom: ipq8074-hk01: enable QMP device, not the PHY node arm64: dts: rockchip: Lower sd speed on rk3566-soquartz ARM: dts: rockchip: fix a typo error for rk3288 spdif node Conflicts: android/abi_gki_aarch64.stg android/gki_system_dlkm_modules Change-Id: I753eb5791de01079ea02b215e38a149fe0626f76 Upstream-Build: ks_qcom-android14-6.1-keystone-qcom-release@10256832 UKQ2.230604.001 Signed-off-by: jianzhou <quic_jianzhou@quicinc.com>
This commit is contained in:
commit
e555c11e74
40
BUILD.bazel
40
BUILD.bazel
@ -12,6 +12,25 @@ package(
|
||||
],
|
||||
)
|
||||
|
||||
_GKI_AARCH64_MAKE_GOALS = [
|
||||
"Image",
|
||||
"Image.lz4",
|
||||
"Image.gz",
|
||||
"modules",
|
||||
]
|
||||
|
||||
_GKI_RISCV64_MAKE_GOALS = [
|
||||
"Image",
|
||||
"Image.lz4",
|
||||
"Image.gz",
|
||||
"modules",
|
||||
]
|
||||
|
||||
_GKI_X86_64_MAKE_GOALS = [
|
||||
"bzImage",
|
||||
"modules",
|
||||
]
|
||||
|
||||
filegroup(
|
||||
name = "aarch64_additional_kmi_symbol_lists",
|
||||
srcs = [
|
||||
@ -19,11 +38,13 @@ filegroup(
|
||||
"android/abi_gki_aarch64_db845c",
|
||||
"android/abi_gki_aarch64_exynos",
|
||||
"android/abi_gki_aarch64_galaxy",
|
||||
"android/abi_gki_aarch64_honor",
|
||||
"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_unisoc",
|
||||
"android/abi_gki_aarch64_virtual_device",
|
||||
"android/abi_gki_aarch64_vivo",
|
||||
"android/abi_gki_aarch64_xiaomi",
|
||||
@ -39,10 +60,12 @@ define_common_kernels(target_configs = {
|
||||
"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",
|
||||
"make_goals": _GKI_AARCH64_MAKE_GOALS,
|
||||
},
|
||||
"kernel_aarch64_16k": {
|
||||
"kmi_symbol_list_strict_mode": False,
|
||||
"module_implicit_outs": COMMON_GKI_MODULES_LIST,
|
||||
"make_goals": _GKI_AARCH64_MAKE_GOALS,
|
||||
},
|
||||
"kernel_aarch64_debug": {
|
||||
"kmi_symbol_list_strict_mode": False,
|
||||
@ -51,22 +74,26 @@ define_common_kernels(target_configs = {
|
||||
"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",
|
||||
"make_goals": _GKI_AARCH64_MAKE_GOALS,
|
||||
},
|
||||
"kernel_riscv64": {
|
||||
"kmi_symbol_list_strict_mode": False,
|
||||
"module_implicit_outs": COMMON_GKI_MODULES_LIST,
|
||||
"make_goals": _GKI_RISCV64_MAKE_GOALS,
|
||||
},
|
||||
"kernel_x86_64": {
|
||||
"kmi_symbol_list_strict_mode": False,
|
||||
"module_implicit_outs": COMMON_GKI_MODULES_LIST,
|
||||
"protected_exports_list": "android/abi_gki_protected_exports_x86_64",
|
||||
"protected_modules_list": "android/gki_x86_64_protected_modules",
|
||||
"make_goals": _GKI_X86_64_MAKE_GOALS,
|
||||
},
|
||||
"kernel_x86_64_debug": {
|
||||
"kmi_symbol_list_strict_mode": False,
|
||||
"module_implicit_outs": COMMON_GKI_MODULES_LIST,
|
||||
"protected_exports_list": "android/abi_gki_protected_exports_x86_64",
|
||||
"protected_modules_list": "android/gki_x86_64_protected_modules",
|
||||
"make_goals": _GKI_X86_64_MAKE_GOALS,
|
||||
},
|
||||
})
|
||||
|
||||
@ -79,6 +106,12 @@ define_db845c(
|
||||
],
|
||||
define_abi_targets = True,
|
||||
kmi_symbol_list = "//common:android/abi_gki_aarch64_db845c",
|
||||
make_goals = [
|
||||
"modules",
|
||||
"qcom/sdm845-db845c.dtb",
|
||||
"qcom/qrb5165-rb5.dtb",
|
||||
"qcom/sm8450-qrd.dtb",
|
||||
],
|
||||
module_outs = [
|
||||
# keep sorted
|
||||
"crypto/michael_mic.ko",
|
||||
@ -229,10 +262,12 @@ define_db845c(
|
||||
"drivers/usb/typec/qcom-pmic-typec.ko",
|
||||
"drivers/watchdog/pm8916_wdt.ko",
|
||||
"drivers/watchdog/qcom-wdt.ko",
|
||||
"net/mac80211/mac80211.ko",
|
||||
"net/qrtr/qrtr.ko",
|
||||
"net/qrtr/qrtr-mhi.ko",
|
||||
"net/qrtr/qrtr-smd.ko",
|
||||
"net/qrtr/qrtr-tun.ko",
|
||||
"net/wireless/cfg80211.ko",
|
||||
"sound/soc/codecs/snd-soc-dmic.ko",
|
||||
"sound/soc/codecs/snd-soc-hdmi-codec.ko",
|
||||
"sound/soc/codecs/snd-soc-lpass-macro-common.ko",
|
||||
@ -288,6 +323,11 @@ kernel_build(
|
||||
],
|
||||
build_config = "build.config.rockpi4",
|
||||
dtstree = "//common-modules/virtual-device:rockpi4_dts",
|
||||
make_goals = [
|
||||
"Image",
|
||||
"modules",
|
||||
"rk3399-rock-pi-4b.dtb",
|
||||
],
|
||||
module_outs = COMMON_GKI_MODULES_LIST + [
|
||||
# keep sorted
|
||||
"drivers/block/virtio_blk.ko",
|
||||
|
@ -273,7 +273,9 @@ of the luma plane.
|
||||
.. _V4L2-PIX-FMT-NV12-16L16:
|
||||
.. _V4L2-PIX-FMT-NV12-32L32:
|
||||
.. _V4L2-PIX-FMT-NV12M-8L128:
|
||||
.. _V4L2-PIX-FMT-NV12-8L128:
|
||||
.. _V4L2-PIX-FMT-NV12M-10BE-8L128:
|
||||
.. _V4L2-PIX-FMT-NV12-10BE-8L128:
|
||||
.. _V4L2-PIX-FMT-MM21:
|
||||
|
||||
Tiled NV12
|
||||
@ -319,6 +321,9 @@ pixels in 2D 8x128 tiles, and stores tiles linearly in memory.
|
||||
The image height must be aligned to a multiple of 128.
|
||||
The layouts of the luma and chroma planes are identical.
|
||||
|
||||
``V4L2_PIX_FMT_NV12_8L128`` is similar to ``V4L2_PIX_FMT_NV12M_8L128`` but stores
|
||||
two planes in one memory.
|
||||
|
||||
``V4L2_PIX_FMT_NV12M_10BE_8L128`` is similar to ``V4L2_PIX_FMT_NV12M`` but stores
|
||||
10 bits pixels in 2D 8x128 tiles, and stores tiles linearly in memory.
|
||||
the data is arranged in big endian order.
|
||||
@ -334,6 +339,9 @@ byte 2: Y1(bits 3-0) Y2(bits 9-6)
|
||||
byte 3: Y2(bits 5-0) Y3(bits 9-8)
|
||||
byte 4: Y3(bits 7-0)
|
||||
|
||||
``V4L2_PIX_FMT_NV12_10BE_8L128`` is similar to ``V4L2_PIX_FMT_NV12M_10BE_8L128`` but stores
|
||||
two planes in one memory.
|
||||
|
||||
``V4L2_PIX_FMT_MM21`` store luma pixel in 16x32 tiles, and chroma pixels
|
||||
in 16x16 tiles. The line stride must be aligned to a multiple of 16 and the
|
||||
image height must be aligned to a multiple of 32. The number of luma and chroma
|
||||
|
@ -12,7 +12,7 @@ most of the configuration about a Gunyah virtual machine is described in the
|
||||
VM's devicetree. The devicetree is generated by userspace. Interacting with the
|
||||
virtual machine is still done via the kernel and VM configuration requires some
|
||||
of the corresponding functionality to be set up in the kernel. For instance,
|
||||
sharing userspace memory with a VM is done via the GH_VM_SET_USER_MEM_REGION
|
||||
sharing userspace memory with a VM is done via the `GH_VM_SET_USER_MEM_REGION`_
|
||||
ioctl. The VM itself is configured to use the memory region via the
|
||||
devicetree.
|
||||
|
||||
@ -22,13 +22,13 @@ Gunyah Functions
|
||||
Components of a Gunyah VM's configuration that need kernel configuration are
|
||||
called "functions" and are built on top of a framework. Functions are identified
|
||||
by a string and have some argument(s) to configure them. They are typically
|
||||
created by the `GH_VM_ADD_FUNCTION` ioctl.
|
||||
created by the `GH_VM_ADD_FUNCTION`_ ioctl.
|
||||
|
||||
Functions typically will always do at least one of these operations:
|
||||
|
||||
1. Create resource ticket(s). Resource tickets allow a function to register
|
||||
itself as the client for a Gunyah resource (e.g. doorbell or vCPU) and
|
||||
the function is given the pointer to the `struct gh_resource` when the
|
||||
the function is given the pointer to the &struct gh_resource when the
|
||||
VM is starting.
|
||||
|
||||
2. Register IO handler(s). IO handlers allow a function to handle stage-2 faults
|
||||
@ -46,7 +46,7 @@ IOCTLs and userspace VMM flows
|
||||
|
||||
The kernel exposes a char device interface at /dev/gunyah.
|
||||
|
||||
To create a VM, use the GH_CREATE_VM ioctl. A successful call will return a
|
||||
To create a VM, use the `GH_CREATE_VM`_ ioctl. A successful call will return a
|
||||
"Gunyah VM" file descriptor.
|
||||
|
||||
/dev/gunyah API Descriptions
|
||||
@ -75,22 +75,13 @@ be configured to accept these at boot-up.
|
||||
|
||||
The guest physical address is used by Linux kernel to check that the requested
|
||||
user regions do not overlap and to help find the corresponding memory region
|
||||
for calls like GH_VM_SET_DTB_CONFIG. It must be page aligned.
|
||||
for calls like `GH_VM_SET_DTB_CONFIG`_. It must be page aligned.
|
||||
|
||||
memory_size and userspace_addr must be page-aligned.
|
||||
|
||||
The flags field of gh_userspace_memory_region accepts the following bits. All
|
||||
other bits must be 0 and are reserved for future use. The ioctl will return
|
||||
-EINVAL if an unsupported bit is detected.
|
||||
|
||||
- GH_MEM_ALLOW_READ/GH_MEM_ALLOW_WRITE/GH_MEM_ALLOW_EXEC sets read/write/exec
|
||||
permissions for the guest, respectively.
|
||||
|
||||
To add a memory region, call GH_VM_SET_USER_MEM_REGION with fields set as
|
||||
To add a memory region, call `GH_VM_SET_USER_MEM_REGION`_ with fields set as
|
||||
described above.
|
||||
|
||||
.. kernel-doc:: include/uapi/linux/gunyah.h
|
||||
:identifiers: gh_userspace_memory_region
|
||||
:identifiers: gh_userspace_memory_region gh_mem_flags
|
||||
|
||||
GH_VM_SET_DTB_CONFIG
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
@ -111,20 +102,20 @@ GH_VM_ADD_FUNCTION
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This ioctl registers a Gunyah VM function with the VM manager. The VM function
|
||||
is described with a `type` string and some arguments for that type. Typically,
|
||||
the function is added before the VM starts, but the function doesn't "operate"
|
||||
until the VM starts with GH_VM_START: e.g. vCPU ioclts will all return an error
|
||||
until the VM starts because the vCPUs don't exist until the VM is started. This
|
||||
allows the VMM to set up all the kernel functionality needed for the VM *before*
|
||||
the VM starts.
|
||||
is described with a &struct gh_fn_desc.type and some arguments for that type.
|
||||
Typically, the function is added before the VM starts, but the function doesn't
|
||||
"operate" until the VM starts with `GH_VM_START`_. For example, vCPU ioclts will
|
||||
all return an error until the VM starts because the vCPUs don't exist until the
|
||||
VM is started. This allows the VMM to set up all the kernel functions needed for
|
||||
the VM *before* the VM starts.
|
||||
|
||||
.. kernel-doc:: include/uapi/linux/gunyah.h
|
||||
:identifiers: gh_fn_desc
|
||||
:identifiers: gh_fn_desc gh_fn_type
|
||||
|
||||
The possible types are documented below:
|
||||
The argument types are documented below:
|
||||
|
||||
.. kernel-doc:: include/uapi/linux/gunyah.h
|
||||
:identifiers: GH_FN_VCPU gh_fn_vcpu_arg GH_FN_IRQFD gh_fn_irqfd_arg GH_FN_IOEVENTFD gh_fn_ioeventfd_arg
|
||||
:identifiers: gh_fn_vcpu_arg gh_fn_irqfd_arg gh_irqfd_flags gh_fn_ioeventfd_arg gh_ioeventfd_flags
|
||||
|
||||
Gunyah VCPU API Descriptions
|
||||
----------------------------
|
||||
@ -137,15 +128,15 @@ GH_VCPU_RUN
|
||||
This ioctl is used to run a guest virtual cpu. While there are no
|
||||
explicit parameters, there is an implicit parameter block that can be
|
||||
obtained by mmap()ing the vcpu fd at offset 0, with the size given by
|
||||
GH_VCPU_MMAP_SIZE. The parameter block is formatted as a 'struct
|
||||
`GH_VCPU_MMAP_SIZE`_. The parameter block is formatted as a 'struct
|
||||
gh_vcpu_run' (see below).
|
||||
|
||||
GH_VCPU_MMAP_SIZE
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
The GH_VCPU_RUN ioctl communicates with userspace via a shared
|
||||
The `GH_VCPU_RUN`_ ioctl communicates with userspace via a shared
|
||||
memory region. This ioctl returns the size of that region. See the
|
||||
GH_VCPU_RUN documentation for details.
|
||||
`GH_VCPU_RUN`_ documentation for details.
|
||||
|
||||
.. kernel-doc:: include/uapi/linux/gunyah.h
|
||||
:identifiers: gh_vcpu_run gh_vm_exit_info
|
||||
:identifiers: gh_vcpu_exit gh_vcpu_run gh_vm_status gh_vm_exit_info
|
||||
|
2
Makefile
2
Makefile
@ -993,8 +993,10 @@ LDFLAGS_vmlinux += --gc-sections
|
||||
endif
|
||||
|
||||
ifdef CONFIG_SHADOW_CALL_STACK
|
||||
ifndef CONFIG_DYNAMIC_SCS
|
||||
CC_FLAGS_SCS := -fsanitize=shadow-call-stack
|
||||
KBUILD_CFLAGS += $(CC_FLAGS_SCS)
|
||||
endif
|
||||
export CC_FLAGS_SCS
|
||||
endif
|
||||
|
||||
|
@ -1 +1 @@
|
||||
dd29657536f36a7e86ffcf1593fefc1d0f800320
|
||||
6da02f91017480cf77c492c9de0fa145e4f13728
|
||||
|
@ -9,5 +9,5 @@ per-file abi_gki_aarch64_goldfish = rkir@google.com
|
||||
|
||||
# per-file for review purposes
|
||||
per-file gki_system_dlkm_modules = ramjiyani@google.com
|
||||
per-file abi_gki_protected_exports = ramjiyani@google.com
|
||||
per-file gki_protected_modules = ramjiyani@google.com
|
||||
per-file abi_gki_protected_exports_* = ramjiyani@google.com
|
||||
per-file gki_*_protected_modules = ramjiyani@google.com
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,6 +2,7 @@
|
||||
# commonly used symbols
|
||||
add_uevent_var
|
||||
alloc_io_pgtable_ops
|
||||
__alloc_skb
|
||||
alloc_workqueue
|
||||
alt_cb_patch_nops
|
||||
__arch_copy_from_user
|
||||
@ -19,8 +20,11 @@
|
||||
bpf_trace_run3
|
||||
bpf_trace_run4
|
||||
bpf_trace_run5
|
||||
bpf_trace_run6
|
||||
bpf_trace_run8
|
||||
bus_register
|
||||
bus_unregister
|
||||
call_rcu
|
||||
cancel_delayed_work
|
||||
cancel_delayed_work_sync
|
||||
cancel_work_sync
|
||||
@ -28,15 +32,9 @@
|
||||
cdev_device_add
|
||||
cdev_device_del
|
||||
cdev_init
|
||||
__cfg80211_alloc_event_skb
|
||||
__cfg80211_alloc_reply_skb
|
||||
cfg80211_find_elem_match
|
||||
cfg80211_find_vendor_elem
|
||||
cfg80211_get_bss
|
||||
cfg80211_put_bss
|
||||
__cfg80211_send_event_skb
|
||||
cfg80211_vendor_cmd_reply
|
||||
__check_object_size
|
||||
__class_register
|
||||
class_unregister
|
||||
clk_bulk_disable
|
||||
clk_bulk_enable
|
||||
clk_bulk_prepare
|
||||
@ -66,6 +64,14 @@
|
||||
cpu_hwcaps
|
||||
cpu_number
|
||||
__cpu_online_mask
|
||||
__cpu_possible_mask
|
||||
crc32_le
|
||||
crypto_alloc_shash
|
||||
crypto_destroy_tfm
|
||||
crypto_shash_setkey
|
||||
crypto_shash_update
|
||||
csum_partial
|
||||
_ctype
|
||||
debugfs_create_dir
|
||||
debugfs_create_file
|
||||
debugfs_create_u32
|
||||
@ -73,14 +79,18 @@
|
||||
debugfs_remove
|
||||
default_llseek
|
||||
delayed_work_timer_fn
|
||||
del_timer
|
||||
del_timer_sync
|
||||
destroy_workqueue
|
||||
dev_close
|
||||
dev_coredumpv
|
||||
dev_driver_string
|
||||
_dev_err
|
||||
dev_err_probe
|
||||
dev_fwnode
|
||||
dev_get_regmap
|
||||
device_add
|
||||
device_del
|
||||
device_for_each_child
|
||||
device_get_mac_address
|
||||
device_get_match_data
|
||||
@ -174,6 +184,7 @@
|
||||
dev_pm_opp_set_opp
|
||||
dev_pm_opp_set_rate
|
||||
dev_pm_set_wake_irq
|
||||
_dev_printk
|
||||
dev_set_name
|
||||
dev_set_threaded
|
||||
_dev_warn
|
||||
@ -244,13 +255,16 @@
|
||||
drm_mode_vrefresh
|
||||
drm_printf
|
||||
enable_irq
|
||||
eth_type_trans
|
||||
_find_first_bit
|
||||
_find_first_zero_bit
|
||||
_find_next_bit
|
||||
_find_next_zero_bit
|
||||
finish_wait
|
||||
firmware_request_nowarn
|
||||
flush_delayed_work
|
||||
flush_work
|
||||
__flush_workqueue
|
||||
fortify_panic
|
||||
free_io_pgtable_ops
|
||||
free_irq
|
||||
@ -258,6 +272,7 @@
|
||||
fwnode_property_present
|
||||
fwnode_property_read_string
|
||||
fwnode_property_read_u32_array
|
||||
gcd
|
||||
generic_handle_domain_irq
|
||||
generic_handle_irq
|
||||
geni_icc_disable
|
||||
@ -324,44 +339,12 @@
|
||||
idr_for_each
|
||||
idr_get_next
|
||||
idr_remove
|
||||
ieee80211_alloc_hw_nm
|
||||
ieee80211_beacon_cntdwn_is_complete
|
||||
ieee80211_beacon_get_template
|
||||
ieee80211_beacon_loss
|
||||
ieee80211_beacon_update_cntdwn
|
||||
ieee80211_bss_get_elem
|
||||
ieee80211_channel_to_freq_khz
|
||||
ieee80211_connection_loss
|
||||
ieee80211_csa_finish
|
||||
ieee80211_find_sta
|
||||
ieee80211_find_sta_by_ifaddr
|
||||
ieee80211_free_hw
|
||||
ieee80211_free_txskb
|
||||
ieee80211_get_channel_khz
|
||||
ieee80211_hdrlen
|
||||
ieee80211_iterate_active_interfaces_atomic
|
||||
ieee80211_iterate_stations_atomic
|
||||
ieee80211_iter_chan_contexts_atomic
|
||||
ieee80211_queue_delayed_work
|
||||
ieee80211_queue_work
|
||||
ieee80211_radar_detected
|
||||
ieee80211_ready_on_channel
|
||||
ieee80211_register_hw
|
||||
ieee80211_remain_on_channel_expired
|
||||
ieee80211_report_low_ack
|
||||
ieee80211_restart_hw
|
||||
ieee80211_rx_napi
|
||||
ieee80211_scan_completed
|
||||
ieee80211_stop_queues
|
||||
ieee80211_tx_status_ext
|
||||
ieee80211_tx_status_irqsafe
|
||||
ieee80211_unregister_hw
|
||||
ieee80211_wake_queues
|
||||
iio_read_channel_processed
|
||||
init_dummy_netdev
|
||||
init_net
|
||||
__init_swait_queue_head
|
||||
init_timer_key
|
||||
init_uts_ns
|
||||
init_wait_entry
|
||||
__init_waitqueue_head
|
||||
iomem_resource
|
||||
@ -413,6 +396,7 @@
|
||||
kernel_sendmsg
|
||||
kfree
|
||||
kfree_const
|
||||
kfree_sensitive
|
||||
kfree_skb_reason
|
||||
kimage_voffset
|
||||
__kmalloc
|
||||
@ -433,6 +417,9 @@
|
||||
ktime_get_mono_fast_ns
|
||||
ktime_get_real_ts64
|
||||
ktime_get_with_offset
|
||||
kvfree
|
||||
kvfree_call_rcu
|
||||
kvmalloc_node
|
||||
__list_add_valid
|
||||
__list_del_entry_valid
|
||||
__local_bh_enable_ip
|
||||
@ -470,8 +457,13 @@
|
||||
__napi_schedule
|
||||
napi_schedule_prep
|
||||
__netdev_alloc_skb
|
||||
netdev_err
|
||||
netdev_info
|
||||
netif_napi_add_weight
|
||||
__netif_napi_del
|
||||
netif_rx
|
||||
netif_tx_wake_queue
|
||||
net_ratelimit
|
||||
__nla_parse
|
||||
nla_put
|
||||
nr_cpu_ids
|
||||
@ -522,8 +514,10 @@
|
||||
of_property_read_u32_index
|
||||
of_property_read_variable_u32_array
|
||||
of_property_read_variable_u8_array
|
||||
of_prop_next_u32
|
||||
of_reserved_mem_lookup
|
||||
param_ops_bool
|
||||
param_ops_charp
|
||||
param_ops_int
|
||||
param_ops_uint
|
||||
pci_clear_master
|
||||
@ -607,6 +601,7 @@
|
||||
_raw_write_lock_irq
|
||||
_raw_write_unlock_bh
|
||||
_raw_write_unlock_irq
|
||||
rcu_barrier
|
||||
__rcu_read_lock
|
||||
__rcu_read_unlock
|
||||
rdev_get_drvdata
|
||||
@ -614,6 +609,7 @@
|
||||
regcache_cache_only
|
||||
regcache_mark_dirty
|
||||
regcache_sync
|
||||
register_netdevice_notifier
|
||||
register_reboot_notifier
|
||||
__register_rpmsg_driver
|
||||
regmap_bulk_read
|
||||
@ -653,6 +649,11 @@
|
||||
__reset_control_get
|
||||
reset_control_put
|
||||
reset_control_reset
|
||||
rhashtable_insert_slow
|
||||
__rht_bucket_nested
|
||||
rht_bucket_nested
|
||||
rht_bucket_nested_insert
|
||||
round_jiffies_up
|
||||
rpmsg_register_device
|
||||
rpmsg_register_device_override
|
||||
rpmsg_send
|
||||
@ -665,6 +666,9 @@
|
||||
rproc_del
|
||||
rproc_free
|
||||
rproc_remove_subdev
|
||||
rtnl_is_locked
|
||||
rtnl_lock
|
||||
rtnl_unlock
|
||||
sched_set_fifo_low
|
||||
schedule
|
||||
schedule_timeout
|
||||
@ -681,10 +685,15 @@
|
||||
simple_read_from_buffer
|
||||
single_open
|
||||
single_release
|
||||
skb_clone
|
||||
skb_copy
|
||||
skb_copy_bits
|
||||
skb_dequeue
|
||||
__skb_get_hash
|
||||
skb_pull
|
||||
skb_push
|
||||
skb_put
|
||||
skb_queue_head
|
||||
skb_queue_purge
|
||||
skb_queue_tail
|
||||
skb_trim
|
||||
@ -759,11 +768,13 @@
|
||||
sysfs_create_link
|
||||
sysfs_emit
|
||||
sysfs_remove_link
|
||||
system_power_efficient_wq
|
||||
system_wq
|
||||
tasklet_init
|
||||
tasklet_kill
|
||||
__tasklet_schedule
|
||||
tasklet_setup
|
||||
tasklet_unlock_wait
|
||||
thermal_cooling_device_register
|
||||
thermal_cooling_device_unregister
|
||||
thermal_zone_device_update
|
||||
@ -777,9 +788,12 @@
|
||||
__trace_trigger_soft_disabled
|
||||
__udelay
|
||||
unregister_chrdev_region
|
||||
unregister_netdevice_notifier
|
||||
unregister_netdevice_queue
|
||||
unregister_reboot_notifier
|
||||
unregister_rpmsg_driver
|
||||
usb_disabled
|
||||
__usecs_to_jiffies
|
||||
usleep_range_state
|
||||
v4l2_ctrl_handler_free
|
||||
v4l2_ctrl_handler_init_class
|
||||
@ -833,7 +847,6 @@
|
||||
wake_up_process
|
||||
__warn_printk
|
||||
watchdog_init_timeout
|
||||
wiphy_to_ieee80211_hw
|
||||
__xa_alloc
|
||||
xa_erase
|
||||
xa_find
|
||||
@ -863,44 +876,15 @@
|
||||
platform_irq_count
|
||||
report_iommu_fault
|
||||
|
||||
# required by ath.ko
|
||||
freq_reg_info
|
||||
reg_initiator_name
|
||||
wiphy_apply_custom_regulatory
|
||||
|
||||
# required by ath10k_core.ko
|
||||
cfg80211_calculate_bitrate
|
||||
cpu_latency_qos_add_request
|
||||
cpu_latency_qos_remove_request
|
||||
crc32_le
|
||||
guid_gen
|
||||
ieee80211_beacon_get_tim
|
||||
ieee80211_hw_restart_disconnect
|
||||
ieee80211_manage_rx_ba_offl
|
||||
ieee80211_next_txq
|
||||
ieee80211_proberesp_get
|
||||
__ieee80211_schedule_txq
|
||||
ieee80211_sta_register_airtime
|
||||
ieee80211_stop_queue
|
||||
ieee80211_tdls_oper_request
|
||||
ieee80211_tx_dequeue
|
||||
ieee80211_txq_get_depth
|
||||
ieee80211_txq_may_transmit
|
||||
ieee80211_txq_schedule_start
|
||||
ieee80211_tx_rate_update
|
||||
ieee80211_wake_queue
|
||||
init_uts_ns
|
||||
__kfifo_alloc
|
||||
__kfifo_free
|
||||
param_ops_ulong
|
||||
regulatory_hint
|
||||
rfc1042_header
|
||||
skb_copy
|
||||
skb_dequeue_tail
|
||||
skb_queue_head
|
||||
skb_realloc_headroom
|
||||
wiphy_read_of_freq_limits
|
||||
wiphy_rfkill_set_hw_state_reason
|
||||
|
||||
# required by ath10k_pci.ko
|
||||
pci_disable_msi
|
||||
@ -908,29 +892,11 @@
|
||||
pci_write_config_dword
|
||||
|
||||
# required by ath11k.ko
|
||||
crypto_alloc_shash
|
||||
crypto_destroy_tfm
|
||||
crypto_shash_final
|
||||
crypto_shash_setkey
|
||||
crypto_shash_update
|
||||
ieee80211_color_change_finish
|
||||
ieee80211_freq_khz_to_channel
|
||||
ieee80211_get_fils_discovery_tmpl
|
||||
ieee80211_get_hdrlen_from_skb
|
||||
ieee80211_get_unsol_bcast_probe_resp_tmpl
|
||||
ieee80211_gtk_rekey_notify
|
||||
ieee80211_tx_status
|
||||
ieeee80211_obss_color_collision_notify
|
||||
__ipv6_addr_type
|
||||
memcpy_and_pad
|
||||
regulatory_set_wiphy_regd
|
||||
rhashtable_destroy
|
||||
rhashtable_init
|
||||
rhashtable_insert_slow
|
||||
__rht_bucket_nested
|
||||
rht_bucket_nested
|
||||
rht_bucket_nested_insert
|
||||
__skb_get_hash
|
||||
|
||||
# required by ath11k_ahb.ko
|
||||
dma_map_resource
|
||||
@ -956,6 +922,57 @@
|
||||
pm_runtime_irq_safe
|
||||
vchan_find_desc
|
||||
|
||||
# required by cfg80211.ko
|
||||
bpf_trace_run10
|
||||
bpf_trace_run7
|
||||
debugfs_rename
|
||||
__dev_change_net_namespace
|
||||
__dev_get_by_index
|
||||
dev_get_by_index
|
||||
device_rename
|
||||
do_trace_netlink_extack
|
||||
genlmsg_multicast_allns
|
||||
genlmsg_put
|
||||
genl_register_family
|
||||
genl_unregister_family
|
||||
get_net_ns_by_fd
|
||||
get_net_ns_by_pid
|
||||
inet_csk_get_port
|
||||
key_create_or_update
|
||||
key_put
|
||||
keyring_alloc
|
||||
ktime_get_coarse_with_offset
|
||||
memcmp
|
||||
netlink_broadcast
|
||||
netlink_register_notifier
|
||||
netlink_unicast
|
||||
netlink_unregister_notifier
|
||||
net_ns_type_operations
|
||||
nla_find
|
||||
nla_memcpy
|
||||
nla_put_64bit
|
||||
nla_reserve
|
||||
__nla_validate
|
||||
__put_net
|
||||
rb_erase
|
||||
rb_insert_color
|
||||
register_netdevice
|
||||
register_pernet_device
|
||||
request_firmware_nowait
|
||||
rfkill_alloc
|
||||
rfkill_blocked
|
||||
rfkill_destroy
|
||||
rfkill_register
|
||||
rfkill_resume_polling
|
||||
rfkill_set_hw_state_reason
|
||||
rfkill_unregister
|
||||
skb_add_rx_frag
|
||||
__sock_create
|
||||
trace_print_array_seq
|
||||
unregister_pernet_device
|
||||
verify_pkcs7_signature
|
||||
wireless_nlevent_flush
|
||||
|
||||
# required by clk-qcom.ko
|
||||
__clk_determine_rate
|
||||
clk_fixed_factor_ops
|
||||
@ -969,7 +986,6 @@
|
||||
__clk_mux_determine_rate_closest
|
||||
divider_ro_round_rate_parent
|
||||
of_find_node_opts_by_path
|
||||
of_prop_next_u32
|
||||
pm_genpd_remove_subdomain
|
||||
|
||||
# required by clk-rpmh.ko
|
||||
@ -1003,7 +1019,6 @@
|
||||
|
||||
# required by drm_display_helper.ko
|
||||
devm_backlight_device_register
|
||||
_dev_printk
|
||||
drm_atomic_get_connector_state
|
||||
drm_atomic_get_crtc_state
|
||||
drm_atomic_get_new_private_obj_state
|
||||
@ -1031,7 +1046,6 @@
|
||||
devm_extcon_dev_register
|
||||
extcon_set_state_sync
|
||||
gpiod_set_debounce
|
||||
system_power_efficient_wq
|
||||
|
||||
# required by fastrpc.ko
|
||||
dma_buf_attach
|
||||
@ -1066,7 +1080,6 @@
|
||||
gpiod_get_optional
|
||||
|
||||
# required by gpu-sched.ko
|
||||
call_rcu
|
||||
dma_fence_add_callback
|
||||
dma_fence_remove_callback
|
||||
dma_resv_iter_first
|
||||
@ -1077,7 +1090,6 @@
|
||||
kmem_cache_free
|
||||
kthread_parkme
|
||||
kthread_should_park
|
||||
rcu_barrier
|
||||
wait_for_completion
|
||||
xa_destroy
|
||||
xa_store
|
||||
@ -1123,9 +1135,6 @@
|
||||
i2c_get_dma_safe_msg_buf
|
||||
i2c_put_dma_safe_msg_buf
|
||||
|
||||
# required by i2c-qup.ko
|
||||
__usecs_to_jiffies
|
||||
|
||||
# required by i2c-rk3x.ko
|
||||
clk_notifier_register
|
||||
clk_notifier_unregister
|
||||
@ -1163,6 +1172,71 @@
|
||||
pm_clk_resume
|
||||
pm_clk_suspend
|
||||
|
||||
# required by mac80211.ko
|
||||
alloc_netdev_mqs
|
||||
__alloc_percpu_gfp
|
||||
arc4_crypt
|
||||
arc4_setkey
|
||||
bitmap_free
|
||||
bitmap_zalloc
|
||||
crc32_be
|
||||
crypto_aead_decrypt
|
||||
crypto_aead_encrypt
|
||||
crypto_aead_setauthsize
|
||||
crypto_aead_setkey
|
||||
crypto_alloc_aead
|
||||
crypto_alloc_skcipher
|
||||
__crypto_memneq
|
||||
crypto_shash_digest
|
||||
crypto_shash_finup
|
||||
crypto_skcipher_decrypt
|
||||
crypto_skcipher_encrypt
|
||||
crypto_skcipher_setkey
|
||||
__crypto_xor
|
||||
dev_addr_mod
|
||||
dev_alloc_name
|
||||
dev_fetch_sw_netstats
|
||||
__dev_queue_xmit
|
||||
ether_setup
|
||||
eth_mac_addr
|
||||
ethtool_op_get_link
|
||||
free_netdev
|
||||
free_percpu
|
||||
get_random_u16
|
||||
__hw_addr_init
|
||||
__hw_addr_sync
|
||||
__hw_addr_unsync
|
||||
kernel_param_lock
|
||||
kernel_param_unlock
|
||||
kfree_skb_list_reason
|
||||
ktime_get_seconds
|
||||
napi_gro_receive
|
||||
netdev_set_default_ethtool_ops
|
||||
netif_carrier_off
|
||||
netif_carrier_on
|
||||
netif_receive_skb
|
||||
netif_receive_skb_list
|
||||
netif_tx_stop_all_queues
|
||||
__per_cpu_offset
|
||||
___pskb_trim
|
||||
register_inet6addr_notifier
|
||||
register_inetaddr_notifier
|
||||
rhashtable_free_and_destroy
|
||||
rhltable_init
|
||||
round_jiffies
|
||||
round_jiffies_relative
|
||||
sg_init_one
|
||||
skb_checksum_help
|
||||
skb_clone_sk
|
||||
skb_complete_wifi_ack
|
||||
skb_copy_expand
|
||||
skb_ensure_writable
|
||||
__skb_gso_segment
|
||||
system_freezable_wq
|
||||
unregister_inet6addr_notifier
|
||||
unregister_inetaddr_notifier
|
||||
unregister_netdevice_many
|
||||
|
||||
# required by mcp251xfd.ko
|
||||
alloc_candev_mqs
|
||||
alloc_can_err_skb
|
||||
@ -1189,14 +1263,10 @@
|
||||
dql_completed
|
||||
dql_reset
|
||||
free_candev
|
||||
netdev_err
|
||||
netdev_info
|
||||
netdev_notice
|
||||
netdev_printk
|
||||
netdev_warn
|
||||
netif_schedule_queue
|
||||
netif_tx_wake_queue
|
||||
net_ratelimit
|
||||
open_candev
|
||||
register_candev
|
||||
regmap_get_val_bytes
|
||||
@ -1214,8 +1284,6 @@
|
||||
__vmalloc
|
||||
|
||||
# required by mhi.ko
|
||||
device_add
|
||||
device_del
|
||||
get_random_u32
|
||||
pm_wakeup_dev_event
|
||||
_raw_read_lock_irq
|
||||
@ -1230,8 +1298,6 @@
|
||||
|
||||
# required by msm.ko
|
||||
__bitmap_andnot
|
||||
bpf_trace_run6
|
||||
bpf_trace_run8
|
||||
clk_get_parent
|
||||
component_add
|
||||
component_bind_all
|
||||
@ -1240,14 +1306,12 @@
|
||||
component_master_add_with_match
|
||||
component_master_del
|
||||
component_unbind_all
|
||||
_ctype
|
||||
debugfs_attr_read
|
||||
debugfs_attr_write
|
||||
debugfs_create_bool
|
||||
debugfs_create_file_unsafe
|
||||
debugfs_create_u64
|
||||
debugfs_create_x64
|
||||
del_timer
|
||||
dev_coredumpm
|
||||
devfreq_cooling_unregister
|
||||
devfreq_recommended_opp
|
||||
@ -1430,7 +1494,6 @@
|
||||
drm_writeback_queue_job
|
||||
drm_writeback_signal_completion
|
||||
fd_install
|
||||
__flush_workqueue
|
||||
get_pid_task
|
||||
get_unused_fd_flags
|
||||
gpiod_get_value
|
||||
@ -1448,8 +1511,6 @@
|
||||
kthread_create_worker
|
||||
kthread_destroy_worker
|
||||
kthread_queue_work
|
||||
kvfree
|
||||
kvmalloc_node
|
||||
memdup_user_nul
|
||||
memparse
|
||||
mipi_dsi_create_packet
|
||||
@ -1467,7 +1528,6 @@
|
||||
of_graph_get_next_endpoint
|
||||
of_graph_get_remote_port_parent
|
||||
of_icc_get
|
||||
param_ops_charp
|
||||
param_ops_ullong
|
||||
phy_calibrate
|
||||
phy_configure
|
||||
@ -1479,7 +1539,6 @@
|
||||
register_shrinker
|
||||
register_vmap_purge_notifier
|
||||
reservation_ww_class
|
||||
round_jiffies_up
|
||||
sched_set_fifo
|
||||
schedule_timeout_interruptible
|
||||
__sg_page_iter_dma_next
|
||||
@ -1632,7 +1691,6 @@
|
||||
cpufreq_get_driver_data
|
||||
cpufreq_register_driver
|
||||
cpufreq_unregister_driver
|
||||
__cpu_possible_mask
|
||||
dev_pm_opp_adjust_voltage
|
||||
dev_pm_opp_disable
|
||||
dev_pm_opp_enable
|
||||
@ -1762,7 +1820,6 @@
|
||||
_copy_to_iter
|
||||
|
||||
# required by qrtr.ko
|
||||
__alloc_skb
|
||||
autoremove_wake_function
|
||||
datagram_poll
|
||||
do_wait_intr_irq
|
||||
@ -1781,8 +1838,6 @@
|
||||
refcount_dec_and_mutex_lock
|
||||
release_sock
|
||||
sk_alloc
|
||||
skb_clone
|
||||
skb_copy_bits
|
||||
skb_copy_datagram_iter
|
||||
skb_free_datagram
|
||||
__skb_pad
|
||||
@ -1812,8 +1867,6 @@
|
||||
|
||||
# required by rmtfs_mem.ko
|
||||
alloc_chrdev_region
|
||||
__class_register
|
||||
class_unregister
|
||||
|
||||
# required by rpmsg_ns.ko
|
||||
rpmsg_create_channel
|
||||
@ -1896,9 +1949,6 @@
|
||||
snd_soc_of_parse_card_name
|
||||
snd_soc_of_parse_pin_switches
|
||||
|
||||
# required by snd-soc-rl6231.ko
|
||||
gcd
|
||||
|
||||
# required by snd-soc-rt5663.ko
|
||||
regcache_cache_bypass
|
||||
snd_soc_dapm_disable_pin
|
||||
@ -1951,7 +2001,6 @@
|
||||
spi_delay_exec
|
||||
spi_finalize_current_message
|
||||
spi_get_next_queued_message
|
||||
tasklet_unlock_wait
|
||||
|
||||
# required by spi-qcom-qspi.ko
|
||||
icc_disable
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -11,10 +11,23 @@
|
||||
atomic_notifier_chain_unregister
|
||||
__bitmap_weight
|
||||
bitmap_zalloc
|
||||
blkcg_activate_policy
|
||||
blkcg_deactivate_policy
|
||||
blkcg_policy_register
|
||||
blkcg_policy_unregister
|
||||
blkcg_root
|
||||
blkdev_get_by_dev
|
||||
blkdev_get_by_path
|
||||
blkdev_issue_flush
|
||||
blkdev_put
|
||||
blk_mq_sched_mark_restart_hctx
|
||||
blk_mq_sched_try_insert_merge
|
||||
blk_mq_sched_try_merge
|
||||
blk_queue_rq_timeout
|
||||
blk_req_needs_zone_write_lock
|
||||
__blk_req_zone_write_lock
|
||||
__blk_req_zone_write_unlock
|
||||
blk_stat_enable_accounting
|
||||
cache_line_size
|
||||
cancel_delayed_work_sync
|
||||
__check_object_size
|
||||
@ -34,11 +47,13 @@
|
||||
crypto_comp_compress
|
||||
crypto_comp_decompress
|
||||
crypto_destroy_tfm
|
||||
css_next_descendant_pre
|
||||
_ctype
|
||||
debugfs_create_file
|
||||
debugfs_remove
|
||||
delayed_work_timer_fn
|
||||
del_timer
|
||||
_dev_alert
|
||||
_dev_err
|
||||
device_create
|
||||
device_destroy
|
||||
@ -62,6 +77,17 @@
|
||||
dma_alloc_attrs
|
||||
dma_free_attrs
|
||||
down_write
|
||||
elevator_alloc
|
||||
elv_bio_merge_ok
|
||||
elv_rb_add
|
||||
elv_rb_del
|
||||
elv_rb_find
|
||||
elv_rb_former_request
|
||||
elv_rb_latter_request
|
||||
elv_register
|
||||
elv_rqhash_add
|
||||
elv_rqhash_del
|
||||
elv_unregister
|
||||
emergency_restart
|
||||
file_ra_state_init
|
||||
file_write_and_wait_range
|
||||
@ -120,6 +146,7 @@
|
||||
kernel_cpustat
|
||||
kernfs_find_and_get_ns
|
||||
kfree
|
||||
__kfree_skb
|
||||
kimage_vaddr
|
||||
kimage_voffset
|
||||
__kmalloc
|
||||
@ -160,9 +187,11 @@
|
||||
mutex_lock
|
||||
mutex_unlock
|
||||
name_to_dev_t
|
||||
netlink_ack
|
||||
nr_cpu_ids
|
||||
nsec_to_clock_t
|
||||
of_address_to_resource
|
||||
of_css
|
||||
of_find_compatible_node
|
||||
of_find_node_opts_by_path
|
||||
of_find_property
|
||||
@ -225,6 +254,7 @@
|
||||
rtc_time64_to_tm
|
||||
rtc_tm_to_time64
|
||||
runqueues
|
||||
sbitmap_queue_min_shallow_depth
|
||||
sched_clock
|
||||
sched_show_task
|
||||
scnprintf
|
||||
@ -237,6 +267,8 @@
|
||||
simple_strtol
|
||||
single_open
|
||||
single_release
|
||||
skb_copy_ubufs
|
||||
snd_soc_find_dai
|
||||
snd_soc_info_volsw_sx
|
||||
snd_soc_put_volsw_sx
|
||||
snprintf
|
||||
@ -279,6 +311,7 @@
|
||||
__traceiter_android_vh_is_fpsimd_save
|
||||
__traceiter_android_vh_mutex_wait_finish
|
||||
__traceiter_android_vh_mutex_wait_start
|
||||
__traceiter_android_vh_ptype_head
|
||||
__traceiter_android_vh_rtmutex_wait_finish
|
||||
__traceiter_android_vh_rtmutex_wait_start
|
||||
__traceiter_android_vh_rwsem_read_wait_finish
|
||||
@ -289,11 +322,13 @@
|
||||
__traceiter_android_vh_try_to_freeze_todo
|
||||
__traceiter_android_vh_try_to_freeze_todo_unfrozen
|
||||
__traceiter_android_vh_watchdog_timer_softlockup
|
||||
__traceiter_block_rq_insert
|
||||
__traceiter_console
|
||||
__traceiter_hrtimer_expire_entry
|
||||
__traceiter_hrtimer_expire_exit
|
||||
__traceiter_irq_handler_entry
|
||||
__traceiter_irq_handler_exit
|
||||
__traceiter_kfree_skb
|
||||
__traceiter_sched_switch
|
||||
__traceiter_workqueue_execute_start
|
||||
__tracepoint_android_rvh_arm64_serror_panic
|
||||
@ -309,6 +344,7 @@
|
||||
__tracepoint_android_vh_is_fpsimd_save
|
||||
__tracepoint_android_vh_mutex_wait_finish
|
||||
__tracepoint_android_vh_mutex_wait_start
|
||||
__tracepoint_android_vh_ptype_head
|
||||
__tracepoint_android_vh_rtmutex_wait_finish
|
||||
__tracepoint_android_vh_rtmutex_wait_start
|
||||
__tracepoint_android_vh_rwsem_read_wait_finish
|
||||
@ -319,11 +355,13 @@
|
||||
__tracepoint_android_vh_try_to_freeze_todo
|
||||
__tracepoint_android_vh_try_to_freeze_todo_unfrozen
|
||||
__tracepoint_android_vh_watchdog_timer_softlockup
|
||||
__tracepoint_block_rq_insert
|
||||
__tracepoint_console
|
||||
__tracepoint_hrtimer_expire_entry
|
||||
__tracepoint_hrtimer_expire_exit
|
||||
__tracepoint_irq_handler_entry
|
||||
__tracepoint_irq_handler_exit
|
||||
__tracepoint_kfree_skb
|
||||
tracepoint_probe_register
|
||||
tracepoint_probe_unregister
|
||||
__tracepoint_sched_switch
|
||||
@ -334,6 +372,7 @@
|
||||
unregister_restart_handler
|
||||
unregister_syscore_ops
|
||||
up_write
|
||||
usb_alloc_dev
|
||||
usb_gstrings_attach
|
||||
usbnet_get_endpoints
|
||||
usbnet_link_change
|
||||
|
11
android/abi_gki_aarch64_honor
Normal file
11
android/abi_gki_aarch64_honor
Normal file
@ -0,0 +1,11 @@
|
||||
[abi_symbol_list]
|
||||
__tracepoint_android_vh_get_page_wmark
|
||||
__tracepoint_android_vh_page_add_new_anon_rmap
|
||||
__tracepoint_android_vh_do_shrink_slab
|
||||
__tracepoint_android_vh_shrink_slab_bypass
|
||||
__traceiter_android_vh_get_page_wmark
|
||||
__traceiter_android_vh_page_add_new_anon_rmap
|
||||
__traceiter_android_vh_do_shrink_slab
|
||||
__traceiter_android_vh_shrink_slab_bypass
|
||||
__traceiter_android_vh_mutex_init
|
||||
__tracepoint_android_vh_mutex_init
|
@ -13,10 +13,13 @@
|
||||
__alloc_pages
|
||||
alloc_pages_exact
|
||||
__alloc_percpu
|
||||
__alloc_percpu_gfp
|
||||
__alloc_skb
|
||||
alloc_workqueue
|
||||
alt_cb_patch_nops
|
||||
anon_inode_getfd
|
||||
arc4_crypt
|
||||
arc4_setkey
|
||||
__arch_copy_from_user
|
||||
__arch_copy_to_user
|
||||
arm64_use_ng_mappings
|
||||
@ -54,10 +57,14 @@
|
||||
bpf_prog_put
|
||||
bpf_stats_enabled_key
|
||||
bpf_trace_run1
|
||||
bpf_trace_run10
|
||||
bpf_trace_run2
|
||||
bpf_trace_run3
|
||||
bpf_trace_run4
|
||||
bpf_trace_run5
|
||||
bpf_trace_run6
|
||||
bpf_trace_run7
|
||||
bpf_trace_run8
|
||||
bpf_warn_invalid_xdp_action
|
||||
bsearch
|
||||
build_skb
|
||||
@ -108,42 +115,6 @@
|
||||
cec_transmit_attempt_done_ts
|
||||
cec_transmit_done_ts
|
||||
cec_unregister_adapter
|
||||
__cfg80211_alloc_event_skb
|
||||
__cfg80211_alloc_reply_skb
|
||||
cfg80211_auth_timeout
|
||||
cfg80211_cac_event
|
||||
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
|
||||
cfg80211_rx_assoc_resp
|
||||
cfg80211_rx_mgmt_ext
|
||||
cfg80211_rx_mlme_mgmt
|
||||
cfg80211_scan_done
|
||||
cfg80211_sched_scan_results
|
||||
cfg80211_sched_scan_stopped
|
||||
__cfg80211_send_event_skb
|
||||
cfg80211_tdls_oper_request
|
||||
cfg80211_unlink_bss
|
||||
cfg80211_unregister_wdev
|
||||
cfg80211_vendor_cmd_reply
|
||||
__check_object_size
|
||||
__class_create
|
||||
class_destroy
|
||||
@ -197,10 +168,13 @@
|
||||
clk_unprepare
|
||||
clk_unregister
|
||||
clockevents_config_and_register
|
||||
clocksource_mmio_init
|
||||
clocksource_mmio_readl_up
|
||||
close_candev
|
||||
cma_alloc
|
||||
cma_get_name
|
||||
cma_release
|
||||
compat_ptr_ioctl
|
||||
complete
|
||||
complete_all
|
||||
completion_done
|
||||
@ -213,6 +187,14 @@
|
||||
component_master_del
|
||||
component_match_add_release
|
||||
component_unbind_all
|
||||
configfs_register_default_group
|
||||
configfs_register_subsystem
|
||||
configfs_unregister_default_group
|
||||
configfs_unregister_subsystem
|
||||
config_group_init
|
||||
config_group_init_type_name
|
||||
config_item_put
|
||||
config_item_set_name
|
||||
console_lock
|
||||
console_suspend_enabled
|
||||
console_unlock
|
||||
@ -242,7 +224,26 @@
|
||||
cpu_number
|
||||
__cpu_online_mask
|
||||
__cpu_possible_mask
|
||||
crc32_be
|
||||
crc32_le
|
||||
crypto_aead_decrypt
|
||||
crypto_aead_encrypt
|
||||
crypto_aead_setauthsize
|
||||
crypto_aead_setkey
|
||||
crypto_alloc_aead
|
||||
crypto_alloc_shash
|
||||
crypto_alloc_skcipher
|
||||
crypto_destroy_tfm
|
||||
__crypto_memneq
|
||||
crypto_shash_digest
|
||||
crypto_shash_finup
|
||||
crypto_shash_setkey
|
||||
crypto_shash_update
|
||||
crypto_skcipher_decrypt
|
||||
crypto_skcipher_encrypt
|
||||
crypto_skcipher_setkey
|
||||
__crypto_xor
|
||||
csum_partial
|
||||
_ctype
|
||||
deactivate_locked_super
|
||||
debugfs_create_blob
|
||||
@ -252,6 +253,7 @@
|
||||
debugfs_lookup
|
||||
debugfs_lookup_and_remove
|
||||
debugfs_remove
|
||||
debugfs_rename
|
||||
default_llseek
|
||||
default_wake_function
|
||||
delayed_work_timer_fn
|
||||
@ -260,12 +262,17 @@
|
||||
destroy_workqueue
|
||||
dev_addr_mod
|
||||
dev_alloc_name
|
||||
__dev_change_net_namespace
|
||||
dev_close
|
||||
dev_coredumpv
|
||||
_dev_crit
|
||||
dev_driver_string
|
||||
_dev_err
|
||||
dev_err_probe
|
||||
dev_fetch_sw_netstats
|
||||
dev_fwnode
|
||||
__dev_get_by_index
|
||||
dev_get_by_index
|
||||
dev_get_regmap
|
||||
device_add
|
||||
device_create
|
||||
@ -290,6 +297,7 @@
|
||||
device_property_read_u32_array
|
||||
device_register
|
||||
device_remove_file
|
||||
device_rename
|
||||
__device_reset
|
||||
device_set_of_node_from_dev
|
||||
device_set_wakeup_capable
|
||||
@ -370,6 +378,7 @@
|
||||
devm_platform_get_and_ioremap_resource
|
||||
devm_platform_ioremap_resource
|
||||
devm_platform_ioremap_resource_byname
|
||||
devm_power_supply_register
|
||||
devm_pwmchip_add
|
||||
devm_pwm_get
|
||||
devm_rc_allocate_device
|
||||
@ -427,6 +436,7 @@
|
||||
dev_pm_opp_set_sharing_cpus
|
||||
dev_pm_set_wake_irq
|
||||
_dev_printk
|
||||
__dev_queue_xmit
|
||||
devres_add
|
||||
__devres_alloc_node
|
||||
devres_free
|
||||
@ -458,6 +468,7 @@
|
||||
dmabuf_page_pool_create
|
||||
dmabuf_page_pool_destroy
|
||||
dmabuf_page_pool_free
|
||||
dmabuf_page_pool_get_size
|
||||
dma_buf_put
|
||||
dma_buf_unmap_attachment
|
||||
dma_buf_vmap
|
||||
@ -516,6 +527,7 @@
|
||||
dma_unmap_resource
|
||||
dma_unmap_sg_attrs
|
||||
do_SAK
|
||||
do_trace_netlink_extack
|
||||
down
|
||||
down_interruptible
|
||||
down_killable
|
||||
@ -783,6 +795,7 @@
|
||||
enable_irq
|
||||
enable_percpu_irq
|
||||
ether_setup
|
||||
eth_mac_addr
|
||||
ethnl_cable_test_fault_length
|
||||
ethnl_cable_test_result
|
||||
ethtool_op_get_link
|
||||
@ -806,6 +819,7 @@
|
||||
finish_wait
|
||||
firmware_kobj
|
||||
fixed_size_llseek
|
||||
flush_delayed_work
|
||||
flush_work
|
||||
__flush_workqueue
|
||||
fortify_panic
|
||||
@ -838,6 +852,10 @@
|
||||
generic_handle_domain_irq
|
||||
generic_handle_irq
|
||||
generic_shutdown_super
|
||||
genlmsg_multicast_allns
|
||||
genlmsg_put
|
||||
genl_register_family
|
||||
genl_unregister_family
|
||||
genphy_c37_config_aneg
|
||||
genphy_c37_read_status
|
||||
genphy_c45_fast_retrain
|
||||
@ -864,7 +882,10 @@
|
||||
gen_pool_virt_to_phys
|
||||
get_cpu_device
|
||||
get_device
|
||||
get_net_ns_by_fd
|
||||
get_net_ns_by_pid
|
||||
get_random_bytes
|
||||
get_random_u16
|
||||
get_random_u32
|
||||
get_random_u8
|
||||
get_unused_fd_flags
|
||||
@ -918,10 +939,14 @@
|
||||
hdmi_vendor_infoframe_pack
|
||||
hex_dump_to_buffer
|
||||
hrtimer_cancel
|
||||
hrtimer_forward
|
||||
hrtimer_init
|
||||
hrtimer_resolution
|
||||
hrtimer_start_range_ns
|
||||
hrtimer_try_to_cancel
|
||||
__hw_addr_init
|
||||
__hw_addr_sync
|
||||
__hw_addr_unsync
|
||||
i2c_adapter_type
|
||||
i2c_add_adapter
|
||||
i2c_add_numbered_adapter
|
||||
@ -964,16 +989,12 @@
|
||||
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
|
||||
ignore_console_lock_warning
|
||||
iio_alloc_pollfunc
|
||||
iio_buffer_enabled
|
||||
iio_buffer_init
|
||||
iio_buffer_put
|
||||
iio_bus_type
|
||||
iio_dealloc_pollfunc
|
||||
iio_device_attach_buffer
|
||||
iio_device_claim_direct_mode
|
||||
@ -981,20 +1002,29 @@
|
||||
__iio_device_register
|
||||
iio_device_release_direct_mode
|
||||
iio_device_unregister
|
||||
iio_format_value
|
||||
iio_get_time_ns
|
||||
iio_push_event
|
||||
iio_push_to_buffers
|
||||
iio_read_const_attr
|
||||
iio_read_mount_matrix
|
||||
iio_show_mount_matrix
|
||||
iio_str_to_fixpoint
|
||||
__iio_trigger_alloc
|
||||
iio_trigger_free
|
||||
iio_trigger_notify_done
|
||||
iio_trigger_poll
|
||||
iio_trigger_poll_chained
|
||||
iio_trigger_register
|
||||
iio_trigger_unregister
|
||||
import_iovec
|
||||
in4_pton
|
||||
inet_csk_get_port
|
||||
init_dummy_netdev
|
||||
init_net
|
||||
__init_swait_queue_head
|
||||
init_timer_key
|
||||
init_uts_ns
|
||||
init_wait_entry
|
||||
__init_waitqueue_head
|
||||
input_alloc_absinfo
|
||||
@ -1056,6 +1086,8 @@
|
||||
__irq_set_handler
|
||||
irq_set_irq_wake
|
||||
irq_to_desc
|
||||
irq_work_queue
|
||||
irq_work_sync
|
||||
ir_raw_event_store_edge
|
||||
is_console_locked
|
||||
is_vmalloc_addr
|
||||
@ -1071,6 +1103,11 @@
|
||||
jiffies_to_usecs
|
||||
kasan_flag_enabled
|
||||
kasprintf
|
||||
kernel_param_lock
|
||||
kernel_param_unlock
|
||||
key_create_or_update
|
||||
key_put
|
||||
keyring_alloc
|
||||
__kfifo_alloc
|
||||
__kfifo_free
|
||||
__kfifo_from_user
|
||||
@ -1079,6 +1116,8 @@
|
||||
__kfifo_out
|
||||
__kfifo_to_user
|
||||
kfree
|
||||
kfree_sensitive
|
||||
kfree_skb_list_reason
|
||||
kfree_skb_reason
|
||||
kimage_voffset
|
||||
__kmalloc
|
||||
@ -1111,9 +1150,11 @@
|
||||
kthread_stop
|
||||
kthread_unpark
|
||||
ktime_get
|
||||
ktime_get_coarse_with_offset
|
||||
ktime_get_mono_fast_ns
|
||||
ktime_get_raw_ts64
|
||||
ktime_get_real_ts64
|
||||
ktime_get_seconds
|
||||
ktime_get_ts64
|
||||
ktime_get_with_offset
|
||||
kvfree
|
||||
@ -1174,8 +1215,8 @@
|
||||
memparse
|
||||
memremap
|
||||
mem_section
|
||||
memset32
|
||||
memset
|
||||
memset32
|
||||
__memset_io
|
||||
memstart_addr
|
||||
memunmap
|
||||
@ -1244,6 +1285,7 @@
|
||||
netdev_info
|
||||
netdev_pick_tx
|
||||
netdev_printk
|
||||
netdev_set_default_ethtool_ops
|
||||
netdev_warn
|
||||
netif_carrier_off
|
||||
netif_carrier_on
|
||||
@ -1252,6 +1294,7 @@
|
||||
netif_napi_add_weight
|
||||
__netif_napi_del
|
||||
netif_receive_skb
|
||||
netif_receive_skb_list
|
||||
netif_rx
|
||||
netif_set_tso_max_segs
|
||||
netif_tx_lock
|
||||
@ -1261,12 +1304,21 @@
|
||||
netlink_broadcast
|
||||
__netlink_kernel_create
|
||||
netlink_kernel_release
|
||||
netlink_register_notifier
|
||||
netlink_unicast
|
||||
netlink_unregister_notifier
|
||||
net_ns_type_operations
|
||||
net_ratelimit
|
||||
net_selftest
|
||||
net_selftest_get_count
|
||||
net_selftest_get_strings
|
||||
nla_find
|
||||
nla_memcpy
|
||||
__nla_parse
|
||||
nla_put
|
||||
nla_put_64bit
|
||||
nla_reserve
|
||||
__nla_validate
|
||||
noop_llseek
|
||||
nr_cpu_ids
|
||||
nsecs_to_jiffies
|
||||
@ -1375,6 +1427,7 @@
|
||||
of_property_read_variable_u32_array
|
||||
of_property_read_variable_u8_array
|
||||
of_prop_next_string
|
||||
of_prop_next_u32
|
||||
of_pwm_xlate_with_flags
|
||||
of_regulator_match
|
||||
of_reserved_mem_device_init_by_idx
|
||||
@ -1557,7 +1610,10 @@
|
||||
pm_wakeup_dev_event
|
||||
pm_wakeup_ws_event
|
||||
policy_has_boost_freq
|
||||
power_supply_am_i_supplied
|
||||
power_supply_changed
|
||||
power_supply_get_by_phandle
|
||||
power_supply_get_drvdata
|
||||
power_supply_get_property
|
||||
power_supply_put
|
||||
power_supply_register
|
||||
@ -1576,6 +1632,8 @@
|
||||
proc_mkdir
|
||||
proc_remove
|
||||
pskb_expand_head
|
||||
__pskb_pull_tail
|
||||
___pskb_trim
|
||||
ptp_classify_raw
|
||||
ptp_clock_event
|
||||
ptp_clock_index
|
||||
@ -1583,6 +1641,7 @@
|
||||
ptp_clock_unregister
|
||||
ptp_parse_header
|
||||
put_device
|
||||
__put_net
|
||||
__put_task_struct
|
||||
put_unused_fd
|
||||
pwm_apply_state
|
||||
@ -1625,6 +1684,8 @@
|
||||
register_inetaddr_notifier
|
||||
register_netdev
|
||||
register_netdevice
|
||||
register_netdevice_notifier
|
||||
register_pernet_device
|
||||
register_pm_notifier
|
||||
register_reboot_notifier
|
||||
__register_rpmsg_driver
|
||||
@ -1669,8 +1730,6 @@
|
||||
regulator_set_voltage
|
||||
regulator_set_voltage_sel_regmap
|
||||
regulator_set_voltage_time_sel
|
||||
regulatory_hint
|
||||
regulatory_set_wiphy_regd_sync
|
||||
release_firmware
|
||||
__release_region
|
||||
remap_pfn_range
|
||||
@ -1692,6 +1751,22 @@
|
||||
reset_controller_unregister
|
||||
reset_control_put
|
||||
reset_control_reset
|
||||
rfkill_alloc
|
||||
rfkill_blocked
|
||||
rfkill_destroy
|
||||
rfkill_register
|
||||
rfkill_resume_polling
|
||||
rfkill_set_hw_state_reason
|
||||
rfkill_unregister
|
||||
rhashtable_free_and_destroy
|
||||
rhashtable_insert_slow
|
||||
rhltable_init
|
||||
__rht_bucket_nested
|
||||
rht_bucket_nested
|
||||
rht_bucket_nested_insert
|
||||
round_jiffies
|
||||
round_jiffies_relative
|
||||
round_jiffies_up
|
||||
rpmsg_create_channel
|
||||
rpmsg_create_ept
|
||||
rpmsg_find_device
|
||||
@ -1705,6 +1780,7 @@
|
||||
rproc_add_carveout
|
||||
rproc_alloc
|
||||
rproc_coredump_add_segment
|
||||
rproc_da_to_va
|
||||
rproc_del
|
||||
rproc_elf_find_loaded_rsc_table
|
||||
rproc_elf_get_boot_addr
|
||||
@ -1793,12 +1869,25 @@
|
||||
simple_write_to_buffer
|
||||
single_open
|
||||
single_release
|
||||
skb_add_rx_frag
|
||||
skb_checksum_help
|
||||
skb_clone
|
||||
skb_clone_sk
|
||||
skb_complete_tx_timestamp
|
||||
skb_complete_wifi_ack
|
||||
skb_copy
|
||||
skb_copy_bits
|
||||
skb_copy_expand
|
||||
skb_dequeue
|
||||
skb_ensure_writable
|
||||
__skb_get_hash
|
||||
__skb_gso_segment
|
||||
skb_pull
|
||||
skb_push
|
||||
skb_put
|
||||
skb_queue_head
|
||||
skb_queue_purge
|
||||
skb_queue_tail
|
||||
skb_realloc_headroom
|
||||
skb_trim
|
||||
skb_tstamp_tx
|
||||
@ -1926,6 +2015,8 @@
|
||||
snprintf
|
||||
soc_device_match
|
||||
soc_device_register
|
||||
__sock_create
|
||||
sock_release
|
||||
sort
|
||||
__spi_alloc_controller
|
||||
spi_finalize_current_transfer
|
||||
@ -1960,6 +2051,7 @@
|
||||
strlcat
|
||||
strlen
|
||||
strncasecmp
|
||||
strncat
|
||||
strncmp
|
||||
strncpy
|
||||
strncpy_from_user
|
||||
@ -1969,6 +2061,7 @@
|
||||
strscpy
|
||||
strsep
|
||||
strstr
|
||||
__sw_hweight16
|
||||
__sw_hweight32
|
||||
__sw_hweight64
|
||||
__sw_hweight8
|
||||
@ -1976,6 +2069,7 @@
|
||||
sync_file_get_fence
|
||||
synchronize_irq
|
||||
synchronize_net
|
||||
synchronize_rcu
|
||||
syscon_node_to_regmap
|
||||
syscon_regmap_lookup_by_compatible
|
||||
syscon_regmap_lookup_by_phandle
|
||||
@ -1984,12 +2078,14 @@
|
||||
sysfs_create_files
|
||||
sysfs_create_group
|
||||
sysfs_create_groups
|
||||
sysfs_create_link
|
||||
sysfs_emit
|
||||
__sysfs_match_string
|
||||
sysfs_notify
|
||||
sysfs_remove_file_ns
|
||||
sysfs_remove_files
|
||||
sysfs_remove_group
|
||||
sysfs_remove_link
|
||||
sysrq_mask
|
||||
system_freezable_wq
|
||||
system_long_wq
|
||||
@ -2000,6 +2096,7 @@
|
||||
tasklet_kill
|
||||
__tasklet_schedule
|
||||
tasklet_setup
|
||||
tasklet_unlock_wait
|
||||
thermal_cooling_device_unregister
|
||||
thermal_of_cooling_device_register
|
||||
thermal_of_zone_unregister
|
||||
@ -2008,6 +2105,7 @@
|
||||
timecounter_cyc2time
|
||||
timecounter_init
|
||||
timecounter_read
|
||||
timer_of_init
|
||||
timespec64_to_jiffies
|
||||
_totalram_pages
|
||||
touchscreen_parse_properties
|
||||
@ -2069,7 +2167,10 @@
|
||||
unregister_inet6addr_notifier
|
||||
unregister_inetaddr_notifier
|
||||
unregister_netdev
|
||||
unregister_netdevice_many
|
||||
unregister_netdevice_notifier
|
||||
unregister_netdevice_queue
|
||||
unregister_pernet_device
|
||||
unregister_reboot_notifier
|
||||
unregister_rpmsg_driver
|
||||
unregister_virtio_device
|
||||
@ -2123,6 +2224,7 @@
|
||||
usb_role_switch_unregister
|
||||
usb_speed_string
|
||||
usb_udc_vbus_handler
|
||||
__usecs_to_jiffies
|
||||
usleep_range_state
|
||||
v4l2_ctrl_auto_cluster
|
||||
v4l2_ctrl_handler_free
|
||||
@ -2241,6 +2343,7 @@
|
||||
vchan_init
|
||||
vchan_tx_desc_free
|
||||
vchan_tx_submit
|
||||
verify_pkcs7_signature
|
||||
vfree
|
||||
video_devdata
|
||||
video_device_alloc
|
||||
@ -2294,11 +2397,7 @@
|
||||
__warn_printk
|
||||
watchdog_init_timeout
|
||||
watchdog_set_restart_priority
|
||||
wiphy_apply_custom_regulatory
|
||||
wiphy_free
|
||||
wiphy_new_nm
|
||||
wiphy_register
|
||||
wiphy_unregister
|
||||
wireless_nlevent_flush
|
||||
wireless_send_event
|
||||
woken_wake_function
|
||||
ww_mutex_lock
|
||||
@ -2314,6 +2413,7 @@
|
||||
xdp_do_flush
|
||||
xdp_do_redirect
|
||||
xdp_master_redirect
|
||||
xdp_return_frame
|
||||
xdp_rxq_info_is_reg
|
||||
__xdp_rxq_info_reg
|
||||
xdp_rxq_info_reg_mem_model
|
||||
|
@ -186,6 +186,8 @@
|
||||
clk_unprepare
|
||||
clockevents_config_and_register
|
||||
clocks_calc_mult_shift
|
||||
clocksource_mmio_init
|
||||
clocksource_mmio_readl_up
|
||||
close_fd
|
||||
cma_alloc
|
||||
cma_release
|
||||
@ -246,7 +248,9 @@
|
||||
cpu_hwcaps
|
||||
cpuidle_driver_state_disabled
|
||||
cpuidle_get_driver
|
||||
cpuidle_governor_latency_req
|
||||
cpuidle_pause_and_lock
|
||||
cpuidle_register_governor
|
||||
cpuidle_resume_and_unlock
|
||||
cpu_latency_qos_add_request
|
||||
cpu_latency_qos_remove_request
|
||||
@ -302,6 +306,7 @@
|
||||
crypto_skcipher_setkey
|
||||
__crypto_xor
|
||||
css_next_child
|
||||
csum_ipv6_magic
|
||||
csum_partial
|
||||
ct_idle_enter
|
||||
ct_idle_exit
|
||||
@ -378,6 +383,7 @@
|
||||
dev_get_flags
|
||||
dev_get_regmap
|
||||
dev_get_stats
|
||||
dev_get_tstats64
|
||||
device_add
|
||||
device_add_disk
|
||||
device_attach
|
||||
@ -413,6 +419,7 @@
|
||||
__device_reset
|
||||
device_set_of_node_from_dev
|
||||
device_set_wakeup_capable
|
||||
device_set_wakeup_enable
|
||||
device_show_bool
|
||||
device_store_bool
|
||||
device_unregister
|
||||
@ -545,6 +552,8 @@
|
||||
dev_pm_opp_put_opp_table
|
||||
dev_pm_opp_remove_all_dynamic
|
||||
dev_pm_opp_set_config
|
||||
dev_pm_qos_add_notifier
|
||||
dev_pm_qos_remove_notifier
|
||||
dev_pm_qos_update_request
|
||||
dev_pm_set_dedicated_wake_irq_reverse
|
||||
_dev_printk
|
||||
@ -583,6 +592,10 @@
|
||||
dma_buf_get_each
|
||||
dma_buf_map_attachment
|
||||
dma_buf_mmap
|
||||
dmabuf_page_pool_alloc
|
||||
dmabuf_page_pool_create
|
||||
dmabuf_page_pool_destroy
|
||||
dmabuf_page_pool_free
|
||||
dma_buf_put
|
||||
dma_buf_unmap_attachment
|
||||
dma_buf_vmap
|
||||
@ -760,6 +773,7 @@
|
||||
drm_gem_prime_fd_to_handle
|
||||
drm_gem_prime_handle_to_fd
|
||||
drm_gem_prime_import
|
||||
drm_gem_prime_import_dev
|
||||
drm_gem_private_object_init
|
||||
drm_gem_vm_close
|
||||
drm_gem_vm_open
|
||||
@ -836,6 +850,9 @@
|
||||
eth_header_cache_update
|
||||
eth_header_parse
|
||||
eth_mac_addr
|
||||
eth_platform_get_mac_address
|
||||
ethtool_convert_legacy_u32_to_link_mode
|
||||
ethtool_convert_link_mode_to_legacy_u32
|
||||
__ethtool_get_link_ksettings
|
||||
ethtool_op_get_link
|
||||
ethtool_op_get_ts_info
|
||||
@ -855,6 +872,7 @@
|
||||
fget
|
||||
file_path
|
||||
filp_close
|
||||
filp_open_block
|
||||
_find_first_bit
|
||||
_find_first_zero_bit
|
||||
find_get_pid
|
||||
@ -933,6 +951,7 @@
|
||||
genlmsg_put
|
||||
genl_register_family
|
||||
genl_unregister_family
|
||||
genphy_resume
|
||||
gen_pool_add_owner
|
||||
gen_pool_alloc_algo_owner
|
||||
gen_pool_avail
|
||||
@ -1012,6 +1031,7 @@
|
||||
handle_simple_irq
|
||||
handle_sysrq
|
||||
have_governor_per_policy
|
||||
hex2bin
|
||||
hex_asc
|
||||
hex_asc_upper
|
||||
hex_dump_to_buffer
|
||||
@ -1029,6 +1049,7 @@
|
||||
hrtimer_active
|
||||
hrtimer_cancel
|
||||
hrtimer_forward
|
||||
__hrtimer_get_remaining
|
||||
hrtimer_init
|
||||
hrtimer_start_range_ns
|
||||
hrtimer_try_to_cancel
|
||||
@ -1136,8 +1157,10 @@
|
||||
input_unregister_device
|
||||
input_unregister_handle
|
||||
input_unregister_handler
|
||||
int_sqrt
|
||||
iomem_resource
|
||||
iommu_alloc_resv_region
|
||||
iommu_dev_disable_feature
|
||||
iommu_device_register
|
||||
iommu_device_sysfs_add
|
||||
iommu_device_sysfs_remove
|
||||
@ -1208,6 +1231,7 @@
|
||||
irq_work_queue_on
|
||||
irq_work_run
|
||||
irq_work_sync
|
||||
is_dma_buf_file
|
||||
is_vmalloc_addr
|
||||
iterate_dir
|
||||
iterate_fd
|
||||
@ -1256,6 +1280,7 @@
|
||||
__kmalloc
|
||||
kmalloc_caches
|
||||
kmalloc_large
|
||||
kmalloc_large_node
|
||||
__kmalloc_node
|
||||
kmalloc_node_trace
|
||||
__kmalloc_node_track_caller
|
||||
@ -1366,6 +1391,11 @@
|
||||
mbox_free_channel
|
||||
mbox_request_channel
|
||||
mbox_send_message
|
||||
mdiobus_alloc_size
|
||||
mdiobus_free
|
||||
mdiobus_get_phy
|
||||
__mdiobus_register
|
||||
mdiobus_unregister
|
||||
media_create_ancillary_link
|
||||
media_create_intf_link
|
||||
media_create_pad_link
|
||||
@ -1471,6 +1501,7 @@
|
||||
mutex_lock_killable
|
||||
mutex_trylock
|
||||
mutex_unlock
|
||||
__napi_alloc_skb
|
||||
napi_complete_done
|
||||
napi_disable
|
||||
napi_enable
|
||||
@ -1488,6 +1519,7 @@
|
||||
netdev_err
|
||||
netdev_info
|
||||
netdev_name_in_use
|
||||
netdev_notice
|
||||
netdev_printk
|
||||
netdev_set_default_ethtool_ops
|
||||
netdev_update_features
|
||||
@ -1504,8 +1536,11 @@
|
||||
netif_receive_skb
|
||||
netif_receive_skb_list
|
||||
netif_rx
|
||||
netif_set_tso_max_size
|
||||
netif_stacked_transfer_operstate
|
||||
netif_tx_lock
|
||||
netif_tx_stop_all_queues
|
||||
netif_tx_unlock
|
||||
netif_tx_wake_queue
|
||||
netlink_broadcast
|
||||
netlink_capable
|
||||
@ -1519,6 +1554,9 @@
|
||||
net_namespace_list
|
||||
net_ns_type_operations
|
||||
net_ratelimit
|
||||
net_selftest
|
||||
net_selftest_get_count
|
||||
net_selftest_get_strings
|
||||
nf_conntrack_destroy
|
||||
nf_register_net_hooks
|
||||
nf_unregister_net_hooks
|
||||
@ -1617,6 +1655,7 @@
|
||||
of_n_addr_cells
|
||||
of_n_size_cells
|
||||
__of_parse_phandle_with_args
|
||||
of_pci_get_max_link_speed
|
||||
of_phandle_iterator_init
|
||||
of_phandle_iterator_next
|
||||
of_phy_simple_xlate
|
||||
@ -1726,13 +1765,35 @@
|
||||
perf_trace_buf_alloc
|
||||
perf_trace_run_bpf_submit
|
||||
pfn_is_map_memory
|
||||
phy_attached_info
|
||||
phy_connect
|
||||
phy_disconnect
|
||||
phy_do_ioctl_running
|
||||
phy_ethtool_get_link_ksettings
|
||||
phy_ethtool_nway_reset
|
||||
phy_ethtool_set_link_ksettings
|
||||
phy_exit
|
||||
phy_get
|
||||
phy_init
|
||||
phylink_connect_phy
|
||||
phylink_create
|
||||
phylink_destroy
|
||||
phylink_disconnect_phy
|
||||
phylink_ethtool_get_pauseparam
|
||||
phylink_ethtool_set_pauseparam
|
||||
phylink_generic_validate
|
||||
phylink_resume
|
||||
phylink_start
|
||||
phylink_stop
|
||||
phylink_suspend
|
||||
phy_power_off
|
||||
phy_power_on
|
||||
phy_print_status
|
||||
phy_put
|
||||
phy_set_mode_ext
|
||||
phy_start
|
||||
phy_stop
|
||||
phy_suspend
|
||||
pick_migrate_task
|
||||
pid_task
|
||||
pinconf_generic_parse_dt_config
|
||||
@ -1823,6 +1884,7 @@
|
||||
print_hex_dump
|
||||
_printk
|
||||
_printk_deferred
|
||||
__printk_ratelimit
|
||||
proc_create
|
||||
proc_create_data
|
||||
proc_create_net_data
|
||||
@ -2062,6 +2124,7 @@
|
||||
rtnl_unregister_all
|
||||
runqueues
|
||||
sched_clock
|
||||
sched_clock_register
|
||||
sched_feat_keys
|
||||
sched_setattr
|
||||
sched_setattr_nocheck
|
||||
@ -2335,6 +2398,7 @@
|
||||
spi_controller_suspend
|
||||
spi_delay_to_ns
|
||||
spi_finalize_current_transfer
|
||||
spi_mem_default_supports_op
|
||||
__spi_register_driver
|
||||
spi_setup
|
||||
spi_sync
|
||||
@ -2444,12 +2508,15 @@
|
||||
thermal_zone_get_temp
|
||||
thermal_zone_get_zone_by_name
|
||||
thread_group_cputime_adjusted
|
||||
tick_nohz_get_sleep_length
|
||||
timecounter_init
|
||||
timecounter_read
|
||||
timer_of_init
|
||||
timer_unstable_counter_workaround
|
||||
topology_clear_scale_freq_source
|
||||
topology_update_thermal_pressure
|
||||
_totalram_pages
|
||||
_trace_android_vh_record_pcpu_rwsem_starttime
|
||||
__trace_bprintk
|
||||
trace_event_buffer_commit
|
||||
trace_event_buffer_reserve
|
||||
@ -2524,6 +2591,8 @@
|
||||
__traceiter_android_vh_check_file_open
|
||||
__traceiter_android_vh_check_mmap_file
|
||||
__traceiter_android_vh_cpufreq_fast_switch
|
||||
__traceiter_android_vh_cpu_idle_enter
|
||||
__traceiter_android_vh_cpu_idle_exit
|
||||
__traceiter_android_vh_iommu_iovad_alloc_iova
|
||||
__traceiter_android_vh_iommu_iovad_free_iova
|
||||
__traceiter_android_vh_is_fpsimd_save
|
||||
@ -2539,6 +2608,8 @@
|
||||
__traceiter_android_vh_ufs_clock_scaling
|
||||
__traceiter_cpu_frequency
|
||||
__traceiter_gpu_mem_total
|
||||
__traceiter_ipi_entry
|
||||
__traceiter_ipi_raise
|
||||
__traceiter_mmap_lock_acquire_returned
|
||||
__traceiter_mmap_lock_released
|
||||
__traceiter_mmap_lock_start_locking
|
||||
@ -2614,6 +2685,8 @@
|
||||
__tracepoint_android_vh_check_file_open
|
||||
__tracepoint_android_vh_check_mmap_file
|
||||
__tracepoint_android_vh_cpufreq_fast_switch
|
||||
__tracepoint_android_vh_cpu_idle_enter
|
||||
__tracepoint_android_vh_cpu_idle_exit
|
||||
__tracepoint_android_vh_iommu_iovad_alloc_iova
|
||||
__tracepoint_android_vh_iommu_iovad_free_iova
|
||||
__tracepoint_android_vh_is_fpsimd_save
|
||||
@ -2629,12 +2702,15 @@
|
||||
__tracepoint_android_vh_ufs_clock_scaling
|
||||
__tracepoint_cpu_frequency
|
||||
__tracepoint_gpu_mem_total
|
||||
__tracepoint_ipi_entry
|
||||
__tracepoint_ipi_raise
|
||||
__tracepoint_mmap_lock_acquire_returned
|
||||
__tracepoint_mmap_lock_released
|
||||
__tracepoint_mmap_lock_start_locking
|
||||
__tracepoint_pelt_rt_tp
|
||||
__tracepoint_pelt_se_tp
|
||||
tracepoint_probe_register
|
||||
tracepoint_probe_register_prio
|
||||
tracepoint_probe_unregister
|
||||
__tracepoint_sched_update_nr_running_tp
|
||||
tracepoint_srcu
|
||||
@ -2791,6 +2867,7 @@
|
||||
usb_add_hcd
|
||||
usb_alloc_coherent
|
||||
usb_alloc_urb
|
||||
usb_altnum_to_altsetting
|
||||
usb_anchor_urb
|
||||
usb_assign_descriptors
|
||||
usb_autopm_get_interface
|
||||
@ -2803,6 +2880,7 @@
|
||||
usb_composite_unregister
|
||||
usb_control_msg
|
||||
usb_control_msg_recv
|
||||
usb_control_msg_send
|
||||
usb_copy_descriptors
|
||||
usb_create_hcd
|
||||
usb_create_shared_hcd
|
||||
@ -2812,6 +2890,8 @@
|
||||
usb_disabled
|
||||
usb_driver_claim_interface
|
||||
usb_driver_release_interface
|
||||
usb_driver_set_configuration
|
||||
usb_enable_lpm
|
||||
usb_ep_alloc_request
|
||||
usb_ep_autoconfig
|
||||
usb_ep_dequeue
|
||||
@ -2844,6 +2924,7 @@
|
||||
usb_get_intf
|
||||
usb_get_maximum_speed
|
||||
usb_get_role_switch_default_mode
|
||||
usb_get_urb
|
||||
usb_gstrings_attach
|
||||
usb_hcd_check_unlink_urb
|
||||
usb_hcd_end_port_resume
|
||||
@ -2871,9 +2952,12 @@
|
||||
usb_put_function_instance
|
||||
usb_put_hcd
|
||||
usb_put_intf
|
||||
usb_queue_reset_device
|
||||
usb_register_driver
|
||||
usb_remove_function
|
||||
usb_remove_hcd
|
||||
usb_reset_configuration
|
||||
usb_reset_device
|
||||
usb_role_string
|
||||
usb_role_switch_get
|
||||
usb_role_switch_get_drvdata
|
||||
@ -2881,11 +2965,14 @@
|
||||
usb_role_switch_set_role
|
||||
usb_role_switch_unregister
|
||||
usb_root_hub_lost_power
|
||||
usb_set_interface
|
||||
usb_show_dynids
|
||||
usb_speed_string
|
||||
usb_store_new_id
|
||||
usb_string
|
||||
usb_string_id
|
||||
usb_submit_urb
|
||||
usb_unlink_urb
|
||||
usb_unpoison_urb
|
||||
usb_wakeup_notification
|
||||
__usecs_to_jiffies
|
||||
@ -3053,6 +3140,7 @@
|
||||
wait_woken
|
||||
__wake_up
|
||||
wake_up_bit
|
||||
wake_up_if_idle
|
||||
__wake_up_locked
|
||||
wake_up_process
|
||||
wakeup_source_add
|
||||
@ -3060,6 +3148,10 @@
|
||||
wakeup_source_destroy
|
||||
wakeup_source_register
|
||||
wakeup_source_remove
|
||||
wakeup_sources_read_lock
|
||||
wakeup_sources_read_unlock
|
||||
wakeup_sources_walk_next
|
||||
wakeup_sources_walk_start
|
||||
wakeup_source_unregister
|
||||
__wake_up_sync_key
|
||||
__warn_printk
|
||||
|
@ -1,20 +1,27 @@
|
||||
[abi_symbol_list]
|
||||
address_space_init_once
|
||||
bio_add_page
|
||||
bio_associate_blkg
|
||||
bio_put
|
||||
__blkdev_issue_discard
|
||||
blk_finish_plug
|
||||
blk_rq_map_user
|
||||
blk_rq_map_user_iov
|
||||
blk_start_plug
|
||||
console_printk
|
||||
cpufreq_frequency_table_get_index
|
||||
cpufreq_policy_transition_delay_us
|
||||
cpufreq_update_util_data
|
||||
device_create_bin_file
|
||||
device_remove_bin_file
|
||||
devres_destroy
|
||||
down_read_trylock
|
||||
drm_crtc_vblank_waitqueue
|
||||
filp_close
|
||||
for_each_kernel_tracepoint
|
||||
freq_qos_add_notifier
|
||||
freq_qos_remove_notifier
|
||||
get_wchan
|
||||
gov_attr_set_get
|
||||
gpiod_to_chip
|
||||
have_governor_per_policy
|
||||
@ -27,6 +34,7 @@
|
||||
ip6_route_me_harder
|
||||
ip_route_me_harder
|
||||
ipv6_find_hdr
|
||||
is_ashmem_file
|
||||
jiffies_64_to_clock_t
|
||||
ktime_get_coarse_real_ts64
|
||||
memory_cgrp_subsys
|
||||
@ -38,10 +46,14 @@
|
||||
nf_register_net_hooks
|
||||
nf_unregister_net_hooks
|
||||
of_css
|
||||
__page_file_index
|
||||
__page_mapcount
|
||||
pm_get_active_wakeup_sources
|
||||
__printk_ratelimit
|
||||
prepare_to_wait_exclusive
|
||||
proc_symlink
|
||||
radix_tree_lookup_slot
|
||||
radix_tree_replace_slot
|
||||
_raw_write_trylock
|
||||
reciprocal_value
|
||||
register_tcf_proto_ops
|
||||
@ -69,7 +81,117 @@
|
||||
tcf_exts_dump_stats
|
||||
tcf_exts_validate
|
||||
tcf_queue_work
|
||||
__traceiter_android_rvh_post_init_entity_util_avg
|
||||
__traceiter_android_vh_account_process_tick_gran
|
||||
__traceiter_android_vh_account_task_time
|
||||
__traceiter_android_vh_do_futex
|
||||
__traceiter_android_vh_futex_sleep_start
|
||||
__traceiter_android_vh_futex_wait_end
|
||||
__traceiter_android_vh_futex_wait_start
|
||||
__traceiter_android_vh_futex_wake_this
|
||||
__traceiter_android_vh_futex_wake_traverse_plist
|
||||
__traceiter_android_vh_futex_wake_up_q_finish
|
||||
__traceiter_android_vh_record_mutex_lock_starttime
|
||||
__traceiter_android_vh_record_pcpu_rwsem_starttime
|
||||
__traceiter_android_vh_record_rtmutex_lock_starttime
|
||||
__traceiter_android_vh_record_rwsem_lock_starttime
|
||||
__tracepoint_android_vh_record_mutex_lock_starttime
|
||||
__tracepoint_android_vh_record_pcpu_rwsem_starttime
|
||||
__tracepoint_android_vh_record_rtmutex_lock_starttime
|
||||
__tracepoint_android_vh_record_rwsem_lock_starttime
|
||||
__trace_puts
|
||||
__traceiter_android_vh_alter_mutex_list_add
|
||||
__traceiter_android_vh_binder_free_proc
|
||||
__traceiter_android_vh_binder_has_work_ilocked
|
||||
__traceiter_android_vh_binder_looper_state_registered
|
||||
__traceiter_android_vh_binder_new_ref
|
||||
__traceiter_android_vh_binder_del_ref
|
||||
__traceiter_android_vh_binder_proc_transaction
|
||||
__traceiter_android_vh_binder_preset
|
||||
__traceiter_android_vh_binder_priority_skip
|
||||
__traceiter_android_vh_binder_proc_transaction_entry
|
||||
__traceiter_android_vh_binder_proc_transaction_finish
|
||||
__traceiter_android_vh_binder_read_done
|
||||
__traceiter_android_vh_binder_select_worklist_ilocked
|
||||
__traceiter_android_vh_binder_thread_read
|
||||
__traceiter_android_vh_binder_thread_release
|
||||
__traceiter_android_vh_binder_wait_for_work
|
||||
__traceiter_android_vh_cgroup_set_task
|
||||
__traceiter_android_vh_dup_task_struct
|
||||
__traceiter_android_vh_exit_signal
|
||||
__traceiter_android_vh_irqtime_account_process_tick
|
||||
__traceiter_android_vh_mutex_can_spin_on_owner
|
||||
__traceiter_android_vh_mutex_opt_spin_finish
|
||||
__traceiter_android_vh_mutex_opt_spin_start
|
||||
__traceiter_android_vh_cpufreq_acct_update_power
|
||||
__traceiter_android_vh_cleanup_old_buffers_bypass
|
||||
__traceiter_android_vh_dm_bufio_shrink_scan_bypass
|
||||
__traceiter_android_vh_mutex_unlock_slowpath
|
||||
__traceiter_android_vh_rwsem_can_spin_on_owner
|
||||
__traceiter_android_vh_rwsem_opt_spin_finish
|
||||
__traceiter_android_vh_rwsem_opt_spin_start
|
||||
__traceiter_android_vh_rwsem_wake_finish
|
||||
__traceiter_android_vh_sched_stat_runtime_rt
|
||||
__traceiter_android_vh_shrink_node_memcgs
|
||||
__traceiter_android_vh_sync_txn_recvd
|
||||
__traceiter_sched_stat_blocked
|
||||
__traceiter_sched_stat_iowait
|
||||
__traceiter_sched_stat_runtime
|
||||
__traceiter_sched_stat_sleep
|
||||
__traceiter_sched_stat_wait
|
||||
__traceiter_sched_waking
|
||||
__traceiter_task_rename
|
||||
__tracepoint_android_rvh_post_init_entity_util_avg
|
||||
__tracepoint_android_vh_account_process_tick_gran
|
||||
__tracepoint_android_vh_account_task_time
|
||||
__tracepoint_android_vh_alter_mutex_list_add
|
||||
__tracepoint_android_vh_binder_free_proc
|
||||
__tracepoint_android_vh_binder_has_work_ilocked
|
||||
__tracepoint_android_vh_binder_looper_state_registered
|
||||
__tracepoint_android_vh_binder_new_ref
|
||||
__tracepoint_android_vh_binder_del_ref
|
||||
__tracepoint_android_vh_binder_proc_transaction
|
||||
__tracepoint_android_vh_binder_preset
|
||||
__tracepoint_android_vh_binder_priority_skip
|
||||
__tracepoint_android_vh_binder_proc_transaction_entry
|
||||
__tracepoint_android_vh_binder_proc_transaction_finish
|
||||
__tracepoint_android_vh_binder_read_done
|
||||
__tracepoint_android_vh_binder_select_worklist_ilocked
|
||||
__tracepoint_android_vh_binder_thread_read
|
||||
__tracepoint_android_vh_binder_thread_release
|
||||
__tracepoint_android_vh_binder_wait_for_work
|
||||
__tracepoint_android_vh_cgroup_set_task
|
||||
__tracepoint_android_vh_do_futex
|
||||
__tracepoint_android_vh_dup_task_struct
|
||||
__tracepoint_android_vh_exit_signal
|
||||
__tracepoint_android_vh_futex_sleep_start
|
||||
__tracepoint_android_vh_futex_wait_end
|
||||
__tracepoint_android_vh_futex_wait_start
|
||||
__tracepoint_android_vh_futex_wake_this
|
||||
__tracepoint_android_vh_futex_wake_traverse_plist
|
||||
__tracepoint_android_vh_futex_wake_up_q_finish
|
||||
__tracepoint_android_vh_irqtime_account_process_tick
|
||||
__tracepoint_android_vh_mutex_can_spin_on_owner
|
||||
__tracepoint_android_vh_mutex_opt_spin_finish
|
||||
__tracepoint_android_vh_mutex_opt_spin_start
|
||||
__tracepoint_android_vh_cpufreq_acct_update_power
|
||||
__tracepoint_android_vh_cleanup_old_buffers_bypass
|
||||
__tracepoint_android_vh_dm_bufio_shrink_scan_bypass
|
||||
__tracepoint_android_vh_mutex_unlock_slowpath
|
||||
__tracepoint_android_vh_rwsem_can_spin_on_owner
|
||||
__tracepoint_android_vh_rwsem_opt_spin_finish
|
||||
__tracepoint_android_vh_rwsem_opt_spin_start
|
||||
__tracepoint_android_vh_rwsem_wake_finish
|
||||
__tracepoint_android_vh_sched_stat_runtime_rt
|
||||
__tracepoint_android_vh_shrink_node_memcgs
|
||||
__tracepoint_android_vh_sync_txn_recvd
|
||||
__tracepoint_sched_stat_blocked
|
||||
__tracepoint_sched_stat_iowait
|
||||
__tracepoint_sched_stat_runtime
|
||||
__tracepoint_sched_stat_sleep
|
||||
__tracepoint_sched_stat_wait
|
||||
__tracepoint_sched_waking
|
||||
__tracepoint_task_rename
|
||||
typec_mux_get_drvdata
|
||||
unregister_memory_notifier
|
||||
unregister_tcf_proto_ops
|
||||
@ -77,3 +199,4 @@
|
||||
wait_for_completion_io_timeout
|
||||
wait_for_completion_killable_timeout
|
||||
wakeup_source_remove
|
||||
wq_worker_comm
|
||||
|
@ -15,6 +15,7 @@
|
||||
__alloc_pages
|
||||
alloc_pages_exact
|
||||
__alloc_percpu
|
||||
__alloc_percpu_gfp
|
||||
__alloc_skb
|
||||
alloc_workqueue
|
||||
alt_cb_patch_nops
|
||||
@ -23,6 +24,8 @@
|
||||
amba_driver_unregister
|
||||
android_rvh_probe_register
|
||||
anon_inode_getfd
|
||||
arc4_crypt
|
||||
arc4_setkey
|
||||
__arch_clear_user
|
||||
__arch_copy_from_user
|
||||
__arch_copy_to_user
|
||||
@ -108,8 +111,8 @@
|
||||
blocking_notifier_call_chain
|
||||
blocking_notifier_chain_register
|
||||
blocking_notifier_chain_unregister
|
||||
bpf_trace_run10
|
||||
bpf_trace_run1
|
||||
bpf_trace_run10
|
||||
bpf_trace_run2
|
||||
bpf_trace_run3
|
||||
bpf_trace_run4
|
||||
@ -127,6 +130,7 @@
|
||||
bus_unregister
|
||||
bus_unregister_notifier
|
||||
cache_line_size
|
||||
call_rcu
|
||||
cancel_delayed_work
|
||||
cancel_delayed_work_sync
|
||||
cancel_work_sync
|
||||
@ -137,35 +141,6 @@
|
||||
cdev_device_add
|
||||
cdev_device_del
|
||||
cdev_init
|
||||
__cfg80211_alloc_event_skb
|
||||
__cfg80211_alloc_reply_skb
|
||||
cfg80211_chandef_create
|
||||
cfg80211_ch_switch_notify
|
||||
cfg80211_connect_done
|
||||
cfg80211_del_sta_sinfo
|
||||
cfg80211_disconnected
|
||||
cfg80211_external_auth_request
|
||||
cfg80211_find_elem_match
|
||||
cfg80211_get_bss
|
||||
cfg80211_ibss_joined
|
||||
cfg80211_inform_bss_frame_data
|
||||
cfg80211_mgmt_tx_status_ext
|
||||
cfg80211_michael_mic_failure
|
||||
cfg80211_new_sta
|
||||
cfg80211_port_authorized
|
||||
cfg80211_put_bss
|
||||
cfg80211_ready_on_channel
|
||||
cfg80211_register_netdevice
|
||||
cfg80211_remain_on_channel_expired
|
||||
cfg80211_roamed
|
||||
cfg80211_rx_mgmt_ext
|
||||
cfg80211_scan_done
|
||||
cfg80211_sched_scan_results
|
||||
cfg80211_sched_scan_stopped
|
||||
__cfg80211_send_event_skb
|
||||
cfg80211_unlink_bss
|
||||
cfg80211_unregister_wdev
|
||||
cfg80211_vendor_cmd_reply
|
||||
__check_object_size
|
||||
__class_create
|
||||
class_destroy
|
||||
@ -260,9 +235,12 @@
|
||||
cpu_pm_unregister_notifier
|
||||
__cpu_possible_mask
|
||||
__cpu_present_mask
|
||||
cpu_scale
|
||||
cpus_read_lock
|
||||
cpus_read_unlock
|
||||
cpu_subsys
|
||||
crc32_be
|
||||
crc32_le
|
||||
crc8
|
||||
crc8_populate_msb
|
||||
crypto_aead_decrypt
|
||||
@ -278,6 +256,7 @@
|
||||
crypto_comp_decompress
|
||||
crypto_destroy_tfm
|
||||
crypto_has_alg
|
||||
__crypto_memneq
|
||||
crypto_register_notifier
|
||||
crypto_register_shash
|
||||
crypto_req_done
|
||||
@ -290,7 +269,9 @@
|
||||
crypto_skcipher_setkey
|
||||
crypto_unregister_notifier
|
||||
crypto_unregister_shash
|
||||
__crypto_xor
|
||||
csum_ipv6_magic
|
||||
csum_partial
|
||||
csum_tcpudp_nofold
|
||||
_ctype
|
||||
debugfs_attr_read
|
||||
@ -309,6 +290,7 @@
|
||||
debugfs_create_x32
|
||||
debugfs_lookup
|
||||
debugfs_remove
|
||||
debugfs_rename
|
||||
dec_zone_page_state
|
||||
default_llseek
|
||||
deferred_free
|
||||
@ -319,12 +301,15 @@
|
||||
desc_to_gpio
|
||||
destroy_workqueue
|
||||
dev_addr_mod
|
||||
dev_alloc_name
|
||||
__dev_change_net_namespace
|
||||
dev_close
|
||||
_dev_crit
|
||||
dev_driver_string
|
||||
_dev_emerg
|
||||
_dev_err
|
||||
dev_err_probe
|
||||
dev_fetch_sw_netstats
|
||||
devfreq_add_device
|
||||
devfreq_add_governor
|
||||
devfreq_monitor_resume
|
||||
@ -337,13 +322,17 @@
|
||||
devfreq_unregister_opp_notifier
|
||||
devfreq_update_interval
|
||||
dev_fwnode
|
||||
__dev_get_by_index
|
||||
dev_get_by_index
|
||||
dev_get_by_name
|
||||
device_add
|
||||
device_add_disk
|
||||
device_add_groups
|
||||
device_create
|
||||
device_create_file
|
||||
device_create_managed_software_node
|
||||
device_create_with_groups
|
||||
device_del
|
||||
device_destroy
|
||||
device_find_child
|
||||
device_for_each_child
|
||||
@ -362,6 +351,7 @@
|
||||
device_register
|
||||
device_remove_file
|
||||
device_remove_groups
|
||||
device_rename
|
||||
device_set_wakeup_capable
|
||||
device_set_wakeup_enable
|
||||
device_unregister
|
||||
@ -738,6 +728,9 @@
|
||||
enable_irq
|
||||
enable_percpu_irq
|
||||
errno_to_blk_status
|
||||
ether_setup
|
||||
eth_mac_addr
|
||||
ethtool_op_get_link
|
||||
eth_type_trans
|
||||
eventfd_ctx_fdget
|
||||
eventfd_ctx_put
|
||||
@ -800,6 +793,7 @@
|
||||
gcd
|
||||
generic_file_llseek
|
||||
generic_handle_domain_irq
|
||||
genlmsg_multicast_allns
|
||||
genlmsg_put
|
||||
genl_register_family
|
||||
genl_unregister_family
|
||||
@ -818,6 +812,8 @@
|
||||
get_cpu_iowait_time_us
|
||||
get_device
|
||||
__get_free_pages
|
||||
get_net_ns_by_fd
|
||||
get_net_ns_by_pid
|
||||
get_pid_task
|
||||
get_random_bytes
|
||||
get_random_u16
|
||||
@ -875,6 +871,9 @@
|
||||
hrtimer_sleeper_start_expires
|
||||
hrtimer_start_range_ns
|
||||
hrtimer_try_to_cancel
|
||||
__hw_addr_init
|
||||
__hw_addr_sync
|
||||
__hw_addr_unsync
|
||||
hwrng_register
|
||||
hwrng_unregister
|
||||
i2c_adapter_type
|
||||
@ -904,11 +903,9 @@
|
||||
idr_destroy
|
||||
idr_find
|
||||
idr_for_each
|
||||
idr_get_next
|
||||
idr_preload
|
||||
idr_remove
|
||||
ieee80211_channel_to_freq_khz
|
||||
ieee80211_freq_khz_to_channel
|
||||
ieee80211_get_channel_khz
|
||||
ieee802154_alloc_hw
|
||||
ieee802154_free_hw
|
||||
ieee802154_register_hw
|
||||
@ -922,6 +919,7 @@
|
||||
in6_pton
|
||||
in_aton
|
||||
inc_zone_page_state
|
||||
inet_csk_get_port
|
||||
init_dummy_netdev
|
||||
init_net
|
||||
init_pid_ns
|
||||
@ -929,6 +927,7 @@
|
||||
__init_swait_queue_head
|
||||
init_task
|
||||
init_timer_key
|
||||
init_uts_ns
|
||||
init_wait_entry
|
||||
__init_waitqueue_head
|
||||
input_alloc_absinfo
|
||||
@ -1011,15 +1010,20 @@
|
||||
irq_set_irq_wake
|
||||
irq_to_desc
|
||||
is_vmalloc_addr
|
||||
jiffies64_to_msecs
|
||||
jiffies
|
||||
jiffies64_to_msecs
|
||||
jiffies_to_msecs
|
||||
jiffies_to_usecs
|
||||
kasan_flag_enabled
|
||||
kasprintf
|
||||
kernel_cpustat
|
||||
kernel_kobj
|
||||
kernel_param_lock
|
||||
kernel_param_unlock
|
||||
kernel_restart
|
||||
key_create_or_update
|
||||
key_put
|
||||
keyring_alloc
|
||||
__kfifo_alloc
|
||||
__kfifo_free
|
||||
__kfifo_in
|
||||
@ -1028,6 +1032,7 @@
|
||||
__kfifo_out_peek
|
||||
kfree
|
||||
kfree_sensitive
|
||||
kfree_skb_list_reason
|
||||
kfree_skb_reason
|
||||
kill_fasync
|
||||
kimage_voffset
|
||||
@ -1091,11 +1096,13 @@
|
||||
kthread_unpark
|
||||
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_seconds
|
||||
ktime_get_real_ts64
|
||||
ktime_get_seconds
|
||||
ktime_get_snapshot
|
||||
ktime_get_ts64
|
||||
ktime_get_with_offset
|
||||
@ -1138,8 +1145,8 @@
|
||||
memparse
|
||||
memremap
|
||||
mem_section
|
||||
memset64
|
||||
memset
|
||||
memset64
|
||||
__memset_io
|
||||
memstart_addr
|
||||
memunmap
|
||||
@ -1190,22 +1197,37 @@
|
||||
__napi_schedule
|
||||
napi_schedule_prep
|
||||
__netdev_alloc_skb
|
||||
netdev_err
|
||||
netdev_info
|
||||
netdev_set_default_ethtool_ops
|
||||
netdev_state_change
|
||||
netdev_update_features
|
||||
netif_carrier_off
|
||||
netif_carrier_on
|
||||
netif_napi_add_weight
|
||||
__netif_napi_del
|
||||
netif_receive_skb
|
||||
netif_receive_skb_list
|
||||
netif_rx
|
||||
netif_tx_stop_all_queues
|
||||
netif_tx_wake_queue
|
||||
netlink_broadcast
|
||||
__netlink_kernel_create
|
||||
netlink_kernel_release
|
||||
netlink_register_notifier
|
||||
netlink_unicast
|
||||
netlink_unregister_notifier
|
||||
net_ns_type_operations
|
||||
net_ratelimit
|
||||
nla_find
|
||||
nla_memcpy
|
||||
__nla_parse
|
||||
nla_put
|
||||
nla_put_64bit
|
||||
nla_put_nohdr
|
||||
nla_reserve
|
||||
nla_strscpy
|
||||
__nla_validate
|
||||
__nlmsg_put
|
||||
nonseekable_open
|
||||
noop_llseek
|
||||
@ -1302,6 +1324,8 @@
|
||||
page_frag_alloc_align
|
||||
__page_frag_cache_drain
|
||||
page_frag_free
|
||||
page_pinner_inited
|
||||
__page_pinner_put_page
|
||||
panic
|
||||
panic_notifier_list
|
||||
param_array_ops
|
||||
@ -1461,8 +1485,11 @@
|
||||
proc_mkdir_data
|
||||
proc_remove
|
||||
pskb_expand_head
|
||||
__pskb_pull_tail
|
||||
___pskb_trim
|
||||
put_device
|
||||
put_disk
|
||||
__put_net
|
||||
put_pid
|
||||
put_sg_io_hdr
|
||||
__put_task_struct
|
||||
@ -1506,6 +1533,7 @@
|
||||
rb_next
|
||||
rb_prev
|
||||
rb_replace_node
|
||||
rcu_barrier
|
||||
__rcu_read_lock
|
||||
__rcu_read_unlock
|
||||
rdev_get_drvdata
|
||||
@ -1529,6 +1557,7 @@
|
||||
register_netdevice
|
||||
register_netdevice_notifier
|
||||
register_oom_notifier
|
||||
register_pernet_device
|
||||
register_pernet_subsys
|
||||
register_pm_notifier
|
||||
register_reboot_notifier
|
||||
@ -1571,9 +1600,6 @@
|
||||
regulator_set_voltage
|
||||
regulator_set_voltage_sel_regmap
|
||||
regulator_unregister
|
||||
regulatory_hint
|
||||
regulatory_set_wiphy_regd
|
||||
regulatory_set_wiphy_regd_sync
|
||||
release_firmware
|
||||
__release_region
|
||||
remap_pfn_range
|
||||
@ -1588,12 +1614,24 @@
|
||||
request_threaded_irq
|
||||
return_address
|
||||
rfkill_alloc
|
||||
rfkill_blocked
|
||||
rfkill_destroy
|
||||
rfkill_init_sw_state
|
||||
rfkill_register
|
||||
rfkill_resume_polling
|
||||
rfkill_set_hw_state_reason
|
||||
rfkill_unregister
|
||||
rhashtable_free_and_destroy
|
||||
rhashtable_insert_slow
|
||||
rhltable_init
|
||||
__rht_bucket_nested
|
||||
rht_bucket_nested
|
||||
rht_bucket_nested_insert
|
||||
__root_device_register
|
||||
root_device_unregister
|
||||
round_jiffies
|
||||
round_jiffies_relative
|
||||
round_jiffies_up
|
||||
rps_needed
|
||||
rtc_class_close
|
||||
rtc_class_open
|
||||
@ -1693,11 +1731,20 @@
|
||||
single_open
|
||||
single_open_size
|
||||
single_release
|
||||
skb_add_rx_frag
|
||||
skb_checksum
|
||||
skb_checksum_help
|
||||
skb_clone
|
||||
skb_clone_sk
|
||||
skb_complete_wifi_ack
|
||||
skb_copy
|
||||
skb_copy_bits
|
||||
skb_copy_expand
|
||||
skb_dequeue
|
||||
skb_dequeue_tail
|
||||
skb_ensure_writable
|
||||
__skb_get_hash
|
||||
__skb_gso_segment
|
||||
skb_pull
|
||||
skb_push
|
||||
skb_put
|
||||
@ -1780,6 +1827,8 @@
|
||||
snd_soc_unregister_component
|
||||
snprintf
|
||||
soc_device_register
|
||||
__sock_create
|
||||
sock_release
|
||||
sock_wfree
|
||||
softnet_data
|
||||
sort
|
||||
@ -1835,8 +1884,10 @@
|
||||
strstr
|
||||
subsys_system_register
|
||||
suspend_set_ops
|
||||
__sw_hweight16
|
||||
__sw_hweight32
|
||||
__sw_hweight64
|
||||
__sw_hweight8
|
||||
sync_blockdev
|
||||
sync_file_create
|
||||
sync_file_get_fence
|
||||
@ -1864,8 +1915,10 @@
|
||||
sysfs_streq
|
||||
sysfs_update_group
|
||||
sysrq_mask
|
||||
system_freezable_wq
|
||||
system_highpri_wq
|
||||
system_long_wq
|
||||
system_power_efficient_wq
|
||||
system_state
|
||||
system_unbound_wq
|
||||
system_wq
|
||||
@ -1874,6 +1927,7 @@
|
||||
tasklet_init
|
||||
tasklet_kill
|
||||
__tasklet_schedule
|
||||
tasklet_setup
|
||||
tasklet_unlock_wait
|
||||
__task_pid_nr_ns
|
||||
tcpci_get_tcpm_port
|
||||
@ -2021,9 +2075,11 @@
|
||||
unregister_inet6addr_notifier
|
||||
unregister_inetaddr_notifier
|
||||
unregister_netdev
|
||||
unregister_netdevice_many
|
||||
unregister_netdevice_notifier
|
||||
unregister_netdevice_queue
|
||||
unregister_oom_notifier
|
||||
unregister_pernet_device
|
||||
unregister_pernet_subsys
|
||||
unregister_pm_notifier
|
||||
unregister_reboot_notifier
|
||||
@ -2129,6 +2185,7 @@
|
||||
vb2_streamon
|
||||
vb2_vmalloc_memops
|
||||
vb2_wait_for_all_buffers
|
||||
verify_pkcs7_signature
|
||||
vfree
|
||||
video_devdata
|
||||
video_device_alloc
|
||||
@ -2178,10 +2235,7 @@
|
||||
watchdog_register_device
|
||||
watchdog_set_restart_priority
|
||||
watchdog_unregister_device
|
||||
wiphy_free
|
||||
wiphy_new_nm
|
||||
wiphy_register
|
||||
wiphy_unregister
|
||||
wireless_nlevent_flush
|
||||
woken_wake_function
|
||||
work_busy
|
||||
__xa_alloc
|
||||
|
@ -141,10 +141,10 @@
|
||||
bpf_prog_put
|
||||
bpf_prog_sub
|
||||
bpf_stats_enabled_key
|
||||
bpf_trace_run1
|
||||
bpf_trace_run10
|
||||
bpf_trace_run11
|
||||
bpf_trace_run12
|
||||
bpf_trace_run1
|
||||
bpf_trace_run2
|
||||
bpf_trace_run3
|
||||
bpf_trace_run4
|
||||
@ -154,7 +154,6 @@
|
||||
bpf_trace_run8
|
||||
bpf_trace_run9
|
||||
bpf_warn_invalid_xdp_action
|
||||
bridge_tunnel_header
|
||||
bt_accept_dequeue
|
||||
bt_accept_enqueue
|
||||
bt_accept_unlink
|
||||
@ -243,104 +242,6 @@
|
||||
cdev_device_add
|
||||
cdev_device_del
|
||||
cdev_init
|
||||
__cfg80211_alloc_event_skb
|
||||
__cfg80211_alloc_reply_skb
|
||||
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_chandef_compatible
|
||||
cfg80211_chandef_create
|
||||
cfg80211_chandef_dfs_required
|
||||
cfg80211_chandef_usable
|
||||
cfg80211_chandef_valid
|
||||
cfg80211_check_combinations
|
||||
cfg80211_check_station_change
|
||||
cfg80211_ch_switch_notify
|
||||
cfg80211_ch_switch_started_notify
|
||||
cfg80211_classify8021d
|
||||
cfg80211_connect_done
|
||||
cfg80211_conn_failed
|
||||
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_radar_event
|
||||
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_event_skb
|
||||
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_vendor_cmd_get_sender
|
||||
cfg80211_vendor_cmd_reply
|
||||
cgroup_path_ns
|
||||
cgroup_taskset_first
|
||||
cgroup_taskset_next
|
||||
@ -793,6 +694,7 @@
|
||||
dev_pm_opp_of_register_em
|
||||
dev_pm_opp_of_remove_table
|
||||
dev_pm_opp_put
|
||||
dev_pm_opp_remove
|
||||
dev_pm_opp_remove_all_dynamic
|
||||
dev_pm_opp_set_config
|
||||
dev_pm_opp_set_opp
|
||||
@ -1233,7 +1135,6 @@
|
||||
freq_qos_add_request
|
||||
freq_qos_remove_request
|
||||
freq_qos_update_request
|
||||
freq_reg_info
|
||||
fsync_bdev
|
||||
ftrace_dump
|
||||
fwnode_find_reference
|
||||
@ -1321,11 +1222,12 @@
|
||||
get_unused_fd_flags
|
||||
get_user_ifreq
|
||||
get_user_pages
|
||||
get_wiphy_regdom
|
||||
get_zeroed_page
|
||||
gh_rm_call
|
||||
gh_rm_notifier_register
|
||||
gh_rm_notifier_unregister
|
||||
gh_rm_register_platform_ops
|
||||
gh_rm_unregister_platform_ops
|
||||
gic_nonsecure_priorities
|
||||
gov_attr_set_init
|
||||
gov_attr_set_put
|
||||
@ -1522,152 +1424,6 @@
|
||||
idr_preload
|
||||
idr_remove
|
||||
idr_replace
|
||||
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_iterate_active_interfaces_atomic
|
||||
ieee80211_iterate_active_interfaces_mtx
|
||||
ieee80211_iterate_interfaces
|
||||
ieee80211_iterate_stations
|
||||
ieee80211_iterate_stations_atomic
|
||||
ieee80211_iter_chan_contexts_atomic
|
||||
ieee80211_iter_keys
|
||||
ieee80211_iter_keys_rcu
|
||||
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_schedule_txq
|
||||
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_pspoll
|
||||
ieee80211_sta_ps_transition
|
||||
ieee80211_sta_recalc_aggregates
|
||||
ieee80211_sta_register_airtime
|
||||
ieee80211_start_tx_ba_cb_irqsafe
|
||||
ieee80211_start_tx_ba_session
|
||||
ieee80211_sta_set_buffered
|
||||
ieee80211_sta_uapsd_trigger
|
||||
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_txq_airtime_check
|
||||
ieee80211_txq_get_depth
|
||||
ieee80211_txq_may_transmit
|
||||
ieee80211_txq_schedule_start
|
||||
ieee80211_tx_rate_update
|
||||
ieee80211_tx_status_8023
|
||||
ieee80211_tx_status
|
||||
ieee80211_tx_status_ext
|
||||
ieee80211_tx_status_irqsafe
|
||||
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
|
||||
@ -1684,7 +1440,6 @@
|
||||
ieee802154_xmit_complete
|
||||
ieee802154_xmit_error
|
||||
ieee802154_xmit_hw_error
|
||||
ieeee80211_obss_color_collision_notify
|
||||
iio_buffer_init
|
||||
iio_buffer_put
|
||||
iio_device_attach_buffer
|
||||
@ -2069,7 +1824,6 @@
|
||||
mac_pton
|
||||
mas_find
|
||||
match_string
|
||||
mbox_bind_client
|
||||
mbox_chan_received_data
|
||||
mbox_chan_txdone
|
||||
mbox_client_txdone
|
||||
@ -2120,8 +1874,8 @@
|
||||
memremap_pages
|
||||
memscan
|
||||
mem_section
|
||||
memset64
|
||||
memset
|
||||
memset64
|
||||
__memset_io
|
||||
memstart_addr
|
||||
memunmap
|
||||
@ -2139,12 +1893,37 @@
|
||||
__mmap_lock_do_trace_acquire_returned
|
||||
__mmap_lock_do_trace_released
|
||||
__mmap_lock_do_trace_start_locking
|
||||
__mmc_claim_host
|
||||
mmc_cqe_request_done
|
||||
mmc_execute_tuning
|
||||
mmc_get_card
|
||||
mmc_get_ext_csd
|
||||
mmc_hs200_tuning
|
||||
mmc_issue_type
|
||||
mmc_of_parse
|
||||
__mmc_poll_for_busy
|
||||
mmc_prepare_busy_cmd
|
||||
mmc_put_card
|
||||
mmc_regulator_get_supply
|
||||
mmc_regulator_set_ocr
|
||||
mmc_regulator_set_vqmmc
|
||||
mmc_release_host
|
||||
mmc_retune_hold
|
||||
mmc_retune_release
|
||||
mmc_select_bus_width
|
||||
mmc_select_card
|
||||
mmc_select_hs
|
||||
mmc_select_hs400
|
||||
mmc_select_hs_ddr
|
||||
mmc_select_timing
|
||||
mmc_send_status
|
||||
mmc_send_tuning
|
||||
mmc_set_bus_mode
|
||||
mmc_set_bus_width
|
||||
mmc_set_clock
|
||||
mmc_set_initial_state
|
||||
mmc_set_timing
|
||||
mmc_wait_for_cmd
|
||||
mmput
|
||||
mod_delayed_work_on
|
||||
mod_node_page_state
|
||||
@ -2264,10 +2043,10 @@
|
||||
nla_find
|
||||
nla_memcpy
|
||||
__nla_parse
|
||||
nla_put_64bit
|
||||
nla_put
|
||||
nla_reserve_64bit
|
||||
nla_put_64bit
|
||||
nla_reserve
|
||||
nla_reserve_64bit
|
||||
nla_strscpy
|
||||
__nla_validate
|
||||
__nlmsg_put
|
||||
@ -2361,6 +2140,7 @@
|
||||
of_machine_is_compatible
|
||||
of_match_device
|
||||
of_match_node
|
||||
__of_mdiobus_register
|
||||
of_modalias_node
|
||||
of_n_addr_cells
|
||||
of_node_name_eq
|
||||
@ -2405,6 +2185,8 @@
|
||||
page_ext_put
|
||||
page_is_ram
|
||||
page_mapping
|
||||
page_pinner_inited
|
||||
__page_pinner_put_page
|
||||
page_pool_alloc_pages
|
||||
page_pool_create
|
||||
page_pool_destroy
|
||||
@ -2712,7 +2494,6 @@
|
||||
radix_tree_lookup
|
||||
radix_tree_next_chunk
|
||||
radix_tree_tagged
|
||||
rate_control_set_rates
|
||||
___ratelimit
|
||||
rational_best_approximation
|
||||
raw_notifier_call_chain
|
||||
@ -2797,7 +2578,6 @@
|
||||
regcache_mark_dirty
|
||||
regcache_sync
|
||||
regcache_sync_region
|
||||
reg_initiator_name
|
||||
__register_blkdev
|
||||
register_candev
|
||||
__register_chrdev
|
||||
@ -2842,7 +2622,6 @@
|
||||
regmap_read
|
||||
regmap_update_bits_base
|
||||
regmap_write
|
||||
reg_query_regdb_wmm
|
||||
regulator_allow_bypass
|
||||
regulator_bulk_disable
|
||||
regulator_bulk_enable
|
||||
@ -2875,10 +2654,6 @@
|
||||
regulator_set_voltage
|
||||
regulator_set_voltage_sel_regmap
|
||||
regulator_unregister_notifier
|
||||
regulatory_hint
|
||||
regulatory_pre_cac_allowed
|
||||
regulatory_set_wiphy_regd
|
||||
regulatory_set_wiphy_regd_sync
|
||||
release_firmware
|
||||
__release_region
|
||||
release_sock
|
||||
@ -2905,7 +2680,6 @@
|
||||
reset_control_release
|
||||
reset_control_reset
|
||||
return_address
|
||||
rfc1042_header
|
||||
rfkill_alloc
|
||||
rfkill_blocked
|
||||
rfkill_destroy
|
||||
@ -3247,6 +3021,7 @@
|
||||
snd_usb_endpoint_close
|
||||
snd_usb_endpoint_open
|
||||
snd_usb_endpoint_prepare
|
||||
snd_usb_power_domain_set
|
||||
snprintf
|
||||
soc_device_register
|
||||
soc_device_unregister
|
||||
@ -3408,6 +3183,7 @@
|
||||
sysfs_remove_link
|
||||
sysfs_remove_link_from_group
|
||||
sysfs_streq
|
||||
sysfs_update_group
|
||||
sysrq_mask
|
||||
system_32bit_el0_cpumask
|
||||
system_freezable_power_efficient_wq
|
||||
@ -3454,6 +3230,7 @@
|
||||
topology_update_done
|
||||
topology_update_thermal_pressure
|
||||
_totalram_pages
|
||||
_trace_android_vh_record_pcpu_rwsem_starttime
|
||||
trace_array_put
|
||||
__trace_bprintk
|
||||
trace_clock_local
|
||||
@ -3498,6 +3275,8 @@
|
||||
__traceiter_android_rvh_iommu_setup_dma_ops
|
||||
__traceiter_android_rvh_is_cpu_allowed
|
||||
__traceiter_android_rvh_migrate_queued_task
|
||||
__traceiter_android_rvh_mmc_resume
|
||||
__traceiter_android_rvh_mmc_suspend
|
||||
__traceiter_android_rvh_new_task_stats
|
||||
__traceiter_android_rvh_pick_next_entity
|
||||
__traceiter_android_rvh_place_entity
|
||||
@ -3630,6 +3409,8 @@
|
||||
__tracepoint_android_rvh_iommu_setup_dma_ops
|
||||
__tracepoint_android_rvh_is_cpu_allowed
|
||||
__tracepoint_android_rvh_migrate_queued_task
|
||||
__tracepoint_android_rvh_mmc_resume
|
||||
__tracepoint_android_rvh_mmc_suspend
|
||||
__tracepoint_android_rvh_new_task_stats
|
||||
__tracepoint_android_rvh_pick_next_entity
|
||||
__tracepoint_android_rvh_place_entity
|
||||
@ -4156,17 +3937,6 @@
|
||||
wakeup_source_unregister
|
||||
__wake_up_sync_key
|
||||
__warn_printk
|
||||
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
|
||||
wireless_nlevent_flush
|
||||
wireless_send_event
|
||||
woken_wake_function
|
||||
|
305
android/abi_gki_aarch64_unisoc
Normal file
305
android/abi_gki_aarch64_unisoc
Normal file
@ -0,0 +1,305 @@
|
||||
[abi_symbol_list]
|
||||
# commonly used symbols
|
||||
alt_cb_patch_nops
|
||||
arm64_use_ng_mappings
|
||||
clk_disable
|
||||
clk_enable
|
||||
clk_get_rate
|
||||
clk_prepare
|
||||
clk_unprepare
|
||||
__const_udelay
|
||||
debugfs_create_dir
|
||||
debugfs_create_file
|
||||
debugfs_remove
|
||||
_dev_err
|
||||
dev_err_probe
|
||||
dev_get_regmap
|
||||
_dev_info
|
||||
devm_clk_get
|
||||
devm_gpiochip_add_data_with_key
|
||||
devm_ioremap_resource
|
||||
devm_kmalloc
|
||||
devm_platform_ioremap_resource
|
||||
devm_regulator_register
|
||||
devm_request_threaded_irq
|
||||
devm_spi_register_controller
|
||||
_dev_warn
|
||||
gpiochip_disable_irq
|
||||
gpiochip_enable_irq
|
||||
gpiochip_get_data
|
||||
gpiochip_irq_relres
|
||||
gpiochip_irq_reqres
|
||||
handle_bad_irq
|
||||
handle_edge_irq
|
||||
handle_level_irq
|
||||
irq_get_irq_data
|
||||
__irq_resolve_mapping
|
||||
kfree
|
||||
__kmalloc
|
||||
kmalloc_caches
|
||||
kmalloc_trace
|
||||
ktime_get
|
||||
ktime_get_mono_fast_ns
|
||||
__list_add_valid
|
||||
__list_del_entry_valid
|
||||
log_post_read_mmio
|
||||
log_post_write_mmio
|
||||
log_read_mmio
|
||||
log_write_mmio
|
||||
memcpy
|
||||
memstart_addr
|
||||
module_layout
|
||||
__mutex_init
|
||||
mutex_lock
|
||||
mutex_unlock
|
||||
of_alias_get_id
|
||||
of_device_get_match_data
|
||||
of_property_read_variable_u32_array
|
||||
__platform_driver_register
|
||||
platform_driver_unregister
|
||||
platform_get_irq
|
||||
platform_get_resource
|
||||
__pm_runtime_disable
|
||||
pm_runtime_enable
|
||||
pm_runtime_set_autosuspend_delay
|
||||
__pm_runtime_set_status
|
||||
__pm_runtime_suspend
|
||||
__pm_runtime_use_autosuspend
|
||||
_printk
|
||||
put_device
|
||||
__put_task_struct
|
||||
_raw_spin_lock_irqsave
|
||||
_raw_spin_unlock_irqrestore
|
||||
regmap_read
|
||||
regmap_update_bits_base
|
||||
regmap_write
|
||||
regulator_disable_regmap
|
||||
regulator_enable_regmap
|
||||
regulator_get_voltage_sel_regmap
|
||||
regulator_is_enabled_regmap
|
||||
regulator_list_voltage_linear
|
||||
regulator_set_voltage_sel_regmap
|
||||
seq_lseek
|
||||
seq_printf
|
||||
seq_puts
|
||||
seq_read
|
||||
sg_next
|
||||
single_open
|
||||
single_release
|
||||
__spi_alloc_controller
|
||||
__stack_chk_fail
|
||||
strcmp
|
||||
__traceiter_android_rvh_psci_cpu_suspend
|
||||
__traceiter_android_rvh_psci_tos_resident_on
|
||||
__traceiter_android_vh_get_thermal_zone_device
|
||||
__traceiter_android_vh_modify_thermal_request_freq
|
||||
__traceiter_android_vh_modify_thermal_target_freq
|
||||
__traceiter_android_vh_thermal_power_cap
|
||||
__traceiter_android_vh_thermal_register
|
||||
__traceiter_android_vh_thermal_unregister
|
||||
__tracepoint_android_rvh_psci_cpu_suspend
|
||||
__tracepoint_android_rvh_psci_tos_resident_on
|
||||
__tracepoint_android_vh_get_thermal_zone_device
|
||||
__tracepoint_android_vh_modify_thermal_request_freq
|
||||
__tracepoint_android_vh_modify_thermal_target_freq
|
||||
__tracepoint_android_vh_thermal_power_cap
|
||||
__tracepoint_android_vh_thermal_register
|
||||
__tracepoint_android_vh_thermal_unregister
|
||||
usleep_range_state
|
||||
|
||||
# required by clk-sprd.ko
|
||||
clk_hw_get_num_parents
|
||||
clk_hw_get_parent
|
||||
clk_hw_is_enabled
|
||||
__clk_mux_determine_rate
|
||||
device_node_to_regmap
|
||||
devm_clk_hw_register
|
||||
devm_of_clk_add_hw_provider
|
||||
__devm_regmap_init_mmio_clk
|
||||
divider_get_val
|
||||
divider_recalc_rate
|
||||
divider_round_rate_parent
|
||||
of_clk_hw_onecell_get
|
||||
of_device_is_compatible
|
||||
of_find_property
|
||||
of_get_parent
|
||||
syscon_regmap_lookup_by_phandle
|
||||
__udelay
|
||||
|
||||
# required by gpio-eic-sprd.ko
|
||||
generic_handle_irq
|
||||
gpiochip_find
|
||||
|
||||
# required by gpio-pmic-eic-sprd.ko
|
||||
_find_next_bit
|
||||
handle_nested_irq
|
||||
|
||||
# required by gpio-sprd.ko
|
||||
generic_handle_domain_irq
|
||||
__platform_driver_probe
|
||||
|
||||
# required by mmc_hsq.ko
|
||||
finish_wait
|
||||
init_wait_entry
|
||||
__init_waitqueue_head
|
||||
mmc_cqe_request_done
|
||||
prepare_to_wait_event
|
||||
queue_work_on
|
||||
_raw_spin_lock_irq
|
||||
_raw_spin_unlock_irq
|
||||
schedule
|
||||
schedule_timeout
|
||||
system_wq
|
||||
__wake_up
|
||||
|
||||
# required by pwm-sprd.ko
|
||||
clk_bulk_disable
|
||||
clk_bulk_enable
|
||||
clk_bulk_prepare
|
||||
clk_bulk_unprepare
|
||||
devm_clk_bulk_get
|
||||
of_property_read_string_helper
|
||||
pwmchip_add
|
||||
pwmchip_remove
|
||||
|
||||
# required by sc2730-regulator.ko
|
||||
generic_file_llseek
|
||||
regulator_map_voltage_linear
|
||||
simple_attr_open
|
||||
simple_attr_read
|
||||
simple_attr_release
|
||||
simple_attr_write
|
||||
|
||||
# required by sdhci-sprd.ko
|
||||
clk_round_rate
|
||||
devm_pinctrl_get
|
||||
mmc_of_parse
|
||||
mmc_regulator_set_vqmmc
|
||||
mmc_request_done
|
||||
pinctrl_lookup_state
|
||||
pinctrl_select_state
|
||||
pm_runtime_force_resume
|
||||
pm_runtime_force_suspend
|
||||
__sdhci_add_host
|
||||
sdhci_cleanup_host
|
||||
sdhci_enable_clk
|
||||
sdhci_enable_v4_mode
|
||||
sdhci_pltfm_free
|
||||
sdhci_pltfm_init
|
||||
sdhci_remove_host
|
||||
sdhci_request
|
||||
sdhci_request_atomic
|
||||
sdhci_reset
|
||||
sdhci_runtime_resume_host
|
||||
sdhci_runtime_suspend_host
|
||||
sdhci_set_bus_width
|
||||
sdhci_setup_host
|
||||
|
||||
# required by spi-sprd-adi.ko
|
||||
_dev_emerg
|
||||
devm_hwspin_lock_request_specific
|
||||
__hwspin_lock_timeout
|
||||
__hwspin_unlock
|
||||
of_get_next_child
|
||||
of_get_property
|
||||
of_hwspin_lock_get_id
|
||||
register_restart_handler
|
||||
strncmp
|
||||
unregister_restart_handler
|
||||
|
||||
# required by spi-sprd.ko
|
||||
clk_set_parent
|
||||
complete
|
||||
dma_release_channel
|
||||
dma_request_chan
|
||||
__init_swait_queue_head
|
||||
__pm_runtime_resume
|
||||
spi_controller_suspend
|
||||
spi_finalize_current_transfer
|
||||
wait_for_completion
|
||||
|
||||
# required by sprd-sc27xx-spi.ko
|
||||
device_set_wakeup_capable
|
||||
device_wakeup_enable
|
||||
devm_of_platform_populate
|
||||
devm_regmap_add_irq_chip
|
||||
__devm_regmap_init
|
||||
driver_unregister
|
||||
irq_set_irq_wake
|
||||
__spi_register_driver
|
||||
spi_sync
|
||||
|
||||
# required by sprd_hwspinlock.ko
|
||||
devm_add_action
|
||||
devm_hwspin_lock_register
|
||||
|
||||
# required by sprd_power_manager.ko
|
||||
del_timer
|
||||
fortify_panic
|
||||
init_timer_key
|
||||
jiffies
|
||||
jiffies_to_msecs
|
||||
mod_timer
|
||||
__msecs_to_jiffies
|
||||
__pm_relax
|
||||
__pm_stay_awake
|
||||
register_pm_notifier
|
||||
register_reboot_notifier
|
||||
snprintf
|
||||
strnlen
|
||||
unregister_pm_notifier
|
||||
unregister_reboot_notifier
|
||||
wakeup_source_add
|
||||
wakeup_source_create
|
||||
|
||||
# required by system_heap.ko
|
||||
__alloc_pages
|
||||
dma_buf_export
|
||||
dma_heap_add
|
||||
dma_heap_get_dev
|
||||
dma_heap_get_name
|
||||
dma_map_sgtable
|
||||
dma_set_coherent_mask
|
||||
dma_set_mask
|
||||
dma_sync_sg_for_cpu
|
||||
dma_sync_sg_for_device
|
||||
dma_unmap_sg_attrs
|
||||
__free_pages
|
||||
remap_pfn_range
|
||||
sg_alloc_table
|
||||
sg_free_table
|
||||
__sg_page_iter_next
|
||||
__sg_page_iter_start
|
||||
vfree
|
||||
vmalloc
|
||||
vmap
|
||||
vunmap
|
||||
|
||||
# required by ums512-clk.ko
|
||||
clk_fixed_factor_ops
|
||||
device_get_match_data
|
||||
devm_reset_controller_register
|
||||
|
||||
# required by unisoc-iommu.ko
|
||||
blocking_notifier_call_chain
|
||||
blocking_notifier_chain_register
|
||||
dma_alloc_attrs
|
||||
dma_free_attrs
|
||||
gen_pool_add_owner
|
||||
gen_pool_alloc_algo_owner
|
||||
gen_pool_avail
|
||||
gen_pool_create
|
||||
gen_pool_destroy
|
||||
gen_pool_free_owner
|
||||
__get_free_pages
|
||||
ioremap_prot
|
||||
iounmap
|
||||
kimage_voffset
|
||||
kmalloc_large
|
||||
memset32
|
||||
memset
|
||||
of_address_to_resource
|
||||
of_count_phandle_with_args
|
||||
of_match_node
|
||||
__of_parse_phandle_with_args
|
||||
of_property_read_string
|
@ -1,6 +1,7 @@
|
||||
[abi_symbol_list]
|
||||
# commonly used symbols
|
||||
alloc_etherdev_mqs
|
||||
alloc_netdev_mqs
|
||||
__alloc_pages
|
||||
__alloc_skb
|
||||
alloc_workqueue
|
||||
@ -11,15 +12,19 @@
|
||||
__arch_copy_to_user
|
||||
arm64_use_ng_mappings
|
||||
bcmp
|
||||
bpf_trace_run1
|
||||
bpf_trace_run2
|
||||
bpf_trace_run3
|
||||
bpf_trace_run4
|
||||
bpf_trace_run5
|
||||
bpf_trace_run6
|
||||
bt_err
|
||||
bt_info
|
||||
bt_warn
|
||||
build_skb
|
||||
cancel_delayed_work
|
||||
cancel_delayed_work_sync
|
||||
cancel_work_sync
|
||||
cfg80211_chandef_valid
|
||||
__check_object_size
|
||||
__class_create
|
||||
class_destroy
|
||||
@ -35,6 +40,8 @@
|
||||
cpu_hwcaps
|
||||
cpu_number
|
||||
__cpu_online_mask
|
||||
crc32_le
|
||||
csum_partial
|
||||
debugfs_attr_read
|
||||
debugfs_attr_write
|
||||
debugfs_create_devm_seqfile
|
||||
@ -46,9 +53,13 @@
|
||||
default_llseek
|
||||
delayed_work_timer_fn
|
||||
del_timer
|
||||
del_timer_sync
|
||||
destroy_workqueue
|
||||
dev_addr_mod
|
||||
dev_alloc_name
|
||||
dev_close
|
||||
_dev_err
|
||||
__dev_get_by_index
|
||||
device_create
|
||||
device_create_file
|
||||
device_remove_file
|
||||
@ -65,6 +76,7 @@
|
||||
devm_kmalloc
|
||||
devm_request_threaded_irq
|
||||
_dev_notice
|
||||
_dev_printk
|
||||
__dev_queue_xmit
|
||||
_dev_warn
|
||||
dma_alloc_attrs
|
||||
@ -138,13 +150,18 @@
|
||||
drm_simple_encoder_init
|
||||
drm_vblank_init
|
||||
ether_setup
|
||||
eth_mac_addr
|
||||
ethtool_op_get_link
|
||||
ethtool_op_get_ts_info
|
||||
eth_type_trans
|
||||
eth_validate_addr
|
||||
fd_install
|
||||
_find_first_bit
|
||||
finish_wait
|
||||
firmware_request_nowarn
|
||||
flush_delayed_work
|
||||
flush_work
|
||||
__flush_workqueue
|
||||
__folio_put
|
||||
fortify_panic
|
||||
fput
|
||||
@ -152,6 +169,9 @@
|
||||
free_netdev
|
||||
__free_pages
|
||||
free_pages
|
||||
genlmsg_put
|
||||
genl_register_family
|
||||
genl_unregister_family
|
||||
get_device
|
||||
__get_free_pages
|
||||
get_random_bytes
|
||||
@ -171,28 +191,11 @@
|
||||
hrtimer_start_range_ns
|
||||
ida_alloc_range
|
||||
ida_free
|
||||
idr_alloc
|
||||
idr_destroy
|
||||
idr_get_next
|
||||
idr_remove
|
||||
ieee80211_alloc_hw_nm
|
||||
ieee80211_beacon_cntdwn_is_complete
|
||||
ieee80211_beacon_get_tim
|
||||
ieee80211_csa_finish
|
||||
ieee80211_free_hw
|
||||
ieee80211_free_txskb
|
||||
ieee80211_get_buffered_bc
|
||||
ieee80211_get_hdrlen_from_skb
|
||||
ieee80211_get_tx_rates
|
||||
ieee80211_iterate_active_interfaces_atomic
|
||||
ieee80211_queue_delayed_work
|
||||
ieee80211_radar_detected
|
||||
ieee80211_register_hw
|
||||
ieee80211_send_bar
|
||||
ieee80211_sta_register_airtime
|
||||
ieee80211_stop_queues
|
||||
ieee80211_stop_tx_ba_cb_irqsafe
|
||||
ieee80211_tx_status_ext
|
||||
ieee80211_unregister_hw
|
||||
ieee80211_wake_queues
|
||||
init_net
|
||||
__init_swait_queue_head
|
||||
init_timer_key
|
||||
init_wait_entry
|
||||
@ -210,8 +213,10 @@
|
||||
irq_set_irq_wake
|
||||
is_vmalloc_addr
|
||||
jiffies
|
||||
jiffies_to_msecs
|
||||
kasan_flag_enabled
|
||||
kfree
|
||||
kfree_sensitive
|
||||
kfree_skb_reason
|
||||
kimage_voffset
|
||||
__kmalloc
|
||||
@ -228,6 +233,7 @@
|
||||
ktime_get
|
||||
ktime_get_with_offset
|
||||
kvfree
|
||||
kvfree_call_rcu
|
||||
kvmalloc_node
|
||||
__list_add_valid
|
||||
__list_del_entry_valid
|
||||
@ -242,6 +248,7 @@
|
||||
memstart_addr
|
||||
misc_deregister
|
||||
misc_register
|
||||
mod_delayed_work_on
|
||||
mod_timer
|
||||
module_layout
|
||||
__msecs_to_jiffies
|
||||
@ -256,6 +263,7 @@
|
||||
napi_gro_receive
|
||||
__napi_schedule
|
||||
napi_schedule_prep
|
||||
__netdev_alloc_skb
|
||||
netdev_err
|
||||
netdev_info
|
||||
netdev_printk
|
||||
@ -268,13 +276,20 @@
|
||||
netif_device_detach
|
||||
netif_napi_add_weight
|
||||
__netif_napi_del
|
||||
netif_receive_skb_list
|
||||
netif_rx
|
||||
netif_tx_stop_all_queues
|
||||
netif_tx_wake_queue
|
||||
netlink_broadcast
|
||||
netlink_register_notifier
|
||||
netlink_unicast
|
||||
netlink_unregister_notifier
|
||||
net_ratelimit
|
||||
nf_conntrack_destroy
|
||||
nla_memcpy
|
||||
__nla_parse
|
||||
nla_put_64bit
|
||||
nla_put
|
||||
nla_put_64bit
|
||||
nonseekable_open
|
||||
noop_llseek
|
||||
nr_cpu_ids
|
||||
@ -284,7 +299,10 @@
|
||||
page_frag_alloc_align
|
||||
__page_frag_cache_drain
|
||||
page_frag_free
|
||||
page_pinner_inited
|
||||
__page_pinner_put_page
|
||||
param_ops_bool
|
||||
param_ops_charp
|
||||
param_ops_int
|
||||
param_ops_uint
|
||||
passthru_features_check
|
||||
@ -318,6 +336,8 @@
|
||||
preempt_schedule_notrace
|
||||
prepare_to_wait_event
|
||||
_printk
|
||||
__pskb_pull_tail
|
||||
___pskb_trim
|
||||
put_device
|
||||
__put_task_struct
|
||||
put_unused_fd
|
||||
@ -338,6 +358,7 @@
|
||||
refcount_warn_saturate
|
||||
register_netdevice
|
||||
register_netdevice_notifier
|
||||
register_pernet_device
|
||||
register_virtio_device
|
||||
register_virtio_driver
|
||||
__regmap_init
|
||||
@ -346,11 +367,17 @@
|
||||
remap_pfn_range
|
||||
request_firmware
|
||||
request_threaded_irq
|
||||
rhashtable_insert_slow
|
||||
__rht_bucket_nested
|
||||
rht_bucket_nested
|
||||
rht_bucket_nested_insert
|
||||
rtnl_is_locked
|
||||
rtnl_lock
|
||||
rtnl_unlock
|
||||
sched_set_fifo_low
|
||||
schedule
|
||||
schedule_timeout
|
||||
scnprintf
|
||||
seq_lseek
|
||||
seq_printf
|
||||
seq_puts
|
||||
@ -377,30 +404,44 @@
|
||||
single_open
|
||||
single_release
|
||||
skb_add_rx_frag
|
||||
skb_clone
|
||||
skb_copy
|
||||
skb_copy_bits
|
||||
skb_copy_expand
|
||||
skb_dequeue
|
||||
skb_pull
|
||||
skb_push
|
||||
skb_put
|
||||
skb_queue_head
|
||||
skb_queue_purge
|
||||
skb_queue_tail
|
||||
skb_to_sgvec
|
||||
skb_trim
|
||||
snprintf
|
||||
sprintf
|
||||
sscanf
|
||||
__stack_chk_fail
|
||||
strcasecmp
|
||||
strcmp
|
||||
strcpy
|
||||
strlen
|
||||
strncpy
|
||||
strnlen
|
||||
strscpy
|
||||
__sw_hweight16
|
||||
__sw_hweight32
|
||||
__sw_hweight8
|
||||
sync_file_create
|
||||
synchronize_irq
|
||||
synchronize_net
|
||||
synchronize_rcu
|
||||
sysfs_create_group
|
||||
sysfs_remove_group
|
||||
sysfs_remove_link
|
||||
system_freezable_wq
|
||||
system_wq
|
||||
__tasklet_schedule
|
||||
tasklet_setup
|
||||
tasklet_unlock_wait
|
||||
trace_event_buffer_commit
|
||||
trace_event_buffer_reserve
|
||||
@ -411,8 +452,10 @@
|
||||
trace_raw_output_prep
|
||||
__trace_trigger_soft_disabled
|
||||
unregister_netdev
|
||||
unregister_netdevice_many
|
||||
unregister_netdevice_notifier
|
||||
unregister_netdevice_queue
|
||||
unregister_pernet_device
|
||||
unregister_virtio_device
|
||||
unregister_virtio_driver
|
||||
usb_add_hcd
|
||||
@ -537,7 +580,6 @@
|
||||
btbcm_set_bdaddr
|
||||
btbcm_setup_apple
|
||||
btbcm_setup_patchram
|
||||
cancel_delayed_work
|
||||
device_wakeup_disable
|
||||
__dev_kfree_skb_irq
|
||||
disable_irq
|
||||
@ -568,6 +610,56 @@
|
||||
usb_scuttle_anchored_urbs
|
||||
usb_set_interface
|
||||
|
||||
# required by cfg80211.ko
|
||||
bpf_trace_run10
|
||||
bpf_trace_run7
|
||||
bpf_trace_run8
|
||||
__class_register
|
||||
class_unregister
|
||||
_ctype
|
||||
debugfs_rename
|
||||
__dev_change_net_namespace
|
||||
dev_get_by_index
|
||||
device_add
|
||||
device_del
|
||||
device_initialize
|
||||
device_rename
|
||||
dev_set_name
|
||||
gcd
|
||||
genlmsg_multicast_allns
|
||||
get_net_ns_by_fd
|
||||
get_net_ns_by_pid
|
||||
inet_csk_get_port
|
||||
init_uts_ns
|
||||
key_create_or_update
|
||||
key_put
|
||||
keyring_alloc
|
||||
ktime_get_coarse_with_offset
|
||||
memcmp
|
||||
net_ns_type_operations
|
||||
nla_find
|
||||
nla_reserve
|
||||
__nla_validate
|
||||
of_prop_next_u32
|
||||
__put_net
|
||||
rb_erase
|
||||
rb_insert_color
|
||||
request_firmware_nowait
|
||||
rfkill_alloc
|
||||
rfkill_blocked
|
||||
rfkill_destroy
|
||||
rfkill_register
|
||||
rfkill_resume_polling
|
||||
rfkill_set_hw_state_reason
|
||||
rfkill_unregister
|
||||
__sock_create
|
||||
sock_release
|
||||
sysfs_create_link
|
||||
system_power_efficient_wq
|
||||
trace_print_array_seq
|
||||
verify_pkcs7_signature
|
||||
wireless_nlevent_flush
|
||||
|
||||
# required by clk-vexpress-osc.ko
|
||||
clk_hw_set_rate_range
|
||||
devm_of_clk_add_hw_provider
|
||||
@ -601,7 +693,6 @@
|
||||
|
||||
# required by dummy_hcd.ko
|
||||
ktime_get_ts64
|
||||
scnprintf
|
||||
strstr
|
||||
usb_add_gadget_udc
|
||||
usb_del_gadget_udc
|
||||
@ -611,7 +702,6 @@
|
||||
|
||||
# required by failover.ko
|
||||
netdev_master_upper_dev_link
|
||||
rtnl_is_locked
|
||||
|
||||
# required by goldfish_address_space.ko
|
||||
memremap
|
||||
@ -661,59 +751,80 @@
|
||||
hci_resume_dev
|
||||
hci_suspend_dev
|
||||
iov_iter_revert
|
||||
skb_queue_head
|
||||
|
||||
# required by mac80211.ko
|
||||
__alloc_percpu_gfp
|
||||
arc4_crypt
|
||||
arc4_setkey
|
||||
bitmap_free
|
||||
bitmap_zalloc
|
||||
call_rcu
|
||||
__cpu_possible_mask
|
||||
crc32_be
|
||||
crypto_aead_decrypt
|
||||
crypto_aead_encrypt
|
||||
crypto_aead_setauthsize
|
||||
crypto_aead_setkey
|
||||
crypto_alloc_aead
|
||||
crypto_alloc_shash
|
||||
crypto_alloc_skcipher
|
||||
crypto_destroy_tfm
|
||||
__crypto_memneq
|
||||
crypto_shash_digest
|
||||
crypto_shash_finup
|
||||
crypto_shash_setkey
|
||||
crypto_shash_update
|
||||
crypto_skcipher_decrypt
|
||||
crypto_skcipher_encrypt
|
||||
crypto_skcipher_setkey
|
||||
__crypto_xor
|
||||
dev_fetch_sw_netstats
|
||||
_find_next_bit
|
||||
free_percpu
|
||||
get_random_u16
|
||||
__hw_addr_init
|
||||
__hw_addr_sync
|
||||
__hw_addr_unsync
|
||||
idr_find
|
||||
idr_for_each
|
||||
kernel_param_lock
|
||||
kernel_param_unlock
|
||||
kfree_skb_list_reason
|
||||
kmalloc_large
|
||||
ktime_get_seconds
|
||||
netdev_set_default_ethtool_ops
|
||||
netif_receive_skb
|
||||
__per_cpu_offset
|
||||
pskb_expand_head
|
||||
rcu_barrier
|
||||
register_inet6addr_notifier
|
||||
register_inetaddr_notifier
|
||||
rhashtable_free_and_destroy
|
||||
rhltable_init
|
||||
round_jiffies
|
||||
round_jiffies_relative
|
||||
round_jiffies_up
|
||||
skb_checksum_help
|
||||
skb_clone_sk
|
||||
skb_complete_wifi_ack
|
||||
skb_ensure_writable
|
||||
__skb_get_hash
|
||||
__skb_gso_segment
|
||||
__sw_hweight64
|
||||
tasklet_kill
|
||||
unregister_inet6addr_notifier
|
||||
unregister_inetaddr_notifier
|
||||
|
||||
# required by mac80211_hwsim.ko
|
||||
alloc_netdev_mqs
|
||||
__cfg80211_alloc_event_skb
|
||||
__cfg80211_alloc_reply_skb
|
||||
__cfg80211_send_event_skb
|
||||
cfg80211_vendor_cmd_reply
|
||||
dev_alloc_name
|
||||
device_bind_driver
|
||||
device_release_driver
|
||||
dst_release
|
||||
eth_mac_addr
|
||||
genlmsg_put
|
||||
genl_notify
|
||||
genl_register_family
|
||||
genl_unregister_family
|
||||
ieee80211_find_sta_by_link_addrs
|
||||
ieee80211_get_channel_khz
|
||||
ieee80211_nullfunc_get
|
||||
ieee80211_probereq_get
|
||||
ieee80211_ready_on_channel
|
||||
ieee80211_remain_on_channel_expired
|
||||
ieee80211_rx_irqsafe
|
||||
ieee80211_scan_completed
|
||||
ieee80211_set_active_links_async
|
||||
ieee80211_tx_prepare_skb
|
||||
ieee80211_tx_status_irqsafe
|
||||
init_net
|
||||
jiffies_to_msecs
|
||||
__netdev_alloc_skb
|
||||
netlink_broadcast
|
||||
netlink_register_notifier
|
||||
netlink_unicast
|
||||
netlink_unregister_notifier
|
||||
net_namespace_list
|
||||
nla_memcpy
|
||||
register_pernet_device
|
||||
regulatory_hint
|
||||
rhashtable_destroy
|
||||
rhashtable_init
|
||||
rhashtable_insert_slow
|
||||
__rht_bucket_nested
|
||||
rht_bucket_nested
|
||||
rht_bucket_nested_insert
|
||||
schedule_timeout_interruptible
|
||||
skb_copy
|
||||
skb_copy_expand
|
||||
__skb_ext_put
|
||||
skb_trim
|
||||
__sw_hweight16
|
||||
unregister_pernet_device
|
||||
wiphy_apply_custom_regulatory
|
||||
|
||||
# required by mt76-usb.ko
|
||||
usb_init_urb
|
||||
@ -722,7 +833,6 @@
|
||||
usb_unpoison_urb
|
||||
|
||||
# required by mt76.ko
|
||||
cfg80211_reg_can_beacon
|
||||
debugfs_create_blob
|
||||
debugfs_create_file_unsafe
|
||||
dev_driver_string
|
||||
@ -731,30 +841,13 @@
|
||||
dma_map_page_attrs
|
||||
dma_sync_single_for_cpu
|
||||
dma_unmap_page_attrs
|
||||
idr_alloc
|
||||
idr_get_next
|
||||
ieee80211_calc_rx_airtime
|
||||
ieee80211_channel_to_freq_khz
|
||||
ieee80211_find_sta_by_ifaddr
|
||||
ieee80211_get_key_rx_seq
|
||||
ieee80211_next_txq
|
||||
ieee80211_rx_list
|
||||
__ieee80211_schedule_txq
|
||||
ieee80211_sta_eosp
|
||||
ieee80211_sta_pspoll
|
||||
ieee80211_sta_ps_transition
|
||||
ieee80211_sta_uapsd_trigger
|
||||
ieee80211_tx_dequeue
|
||||
ieee80211_txq_schedule_start
|
||||
init_dummy_netdev
|
||||
__ioread32_copy
|
||||
__iowrite32_copy
|
||||
kthread_parkme
|
||||
kthread_should_park
|
||||
kvfree_call_rcu
|
||||
led_classdev_register_ext
|
||||
led_classdev_unregister
|
||||
netif_receive_skb_list
|
||||
of_get_child_by_name
|
||||
of_get_mac_address
|
||||
of_get_next_child
|
||||
@ -763,26 +856,14 @@
|
||||
pcie_capability_clear_and_set_word
|
||||
pcie_capability_read_word
|
||||
radix_tree_tagged
|
||||
rfc1042_header
|
||||
__skb_pad
|
||||
wiphy_read_of_freq_limits
|
||||
|
||||
# required by mt76x02-lib.ko
|
||||
bpf_trace_run1
|
||||
debugfs_create_bool
|
||||
ieee80211_calc_tx_airtime
|
||||
ieee80211_hdrlen
|
||||
ieee80211_iter_keys_rcu
|
||||
ieee80211_restart_hw
|
||||
__kfifo_init
|
||||
___pskb_trim
|
||||
__tasklet_schedule
|
||||
tasklet_setup
|
||||
wiphy_to_ieee80211_hw
|
||||
|
||||
# required by mt76x02-usb.ko
|
||||
hrtimer_active
|
||||
ieee80211_iterate_interfaces
|
||||
system_highpri_wq
|
||||
|
||||
# required by nd_virtio.ko
|
||||
@ -794,7 +875,6 @@
|
||||
|
||||
# required by net_failover.ko
|
||||
call_netdevice_notifiers
|
||||
dev_close
|
||||
dev_get_stats
|
||||
dev_mc_sync_multiple
|
||||
dev_mc_unsync
|
||||
@ -839,12 +919,10 @@
|
||||
# required by psmouse.ko
|
||||
bus_register_notifier
|
||||
bus_unregister_notifier
|
||||
del_timer_sync
|
||||
device_add_groups
|
||||
device_link_add
|
||||
device_link_remove
|
||||
device_remove_groups
|
||||
__flush_workqueue
|
||||
i2c_adapter_type
|
||||
i2c_bus_type
|
||||
i2c_client_type
|
||||
@ -946,29 +1024,15 @@
|
||||
platform_bus
|
||||
sockfd_lookup
|
||||
strchr
|
||||
sysfs_remove_link
|
||||
usb_speed_string
|
||||
|
||||
# required by virt_wifi.ko
|
||||
cfg80211_connect_done
|
||||
cfg80211_disconnected
|
||||
cfg80211_inform_bss_data
|
||||
cfg80211_put_bss
|
||||
cfg80211_scan_done
|
||||
__dev_get_by_index
|
||||
_dev_printk
|
||||
__module_get
|
||||
module_put
|
||||
netdev_upper_dev_link
|
||||
netif_stacked_transfer_operstate
|
||||
rtnl_link_register
|
||||
rtnl_link_unregister
|
||||
skb_clone
|
||||
unregister_netdevice_many
|
||||
wiphy_free
|
||||
wiphy_new_nm
|
||||
wiphy_register
|
||||
wiphy_unregister
|
||||
|
||||
# required by virtio-gpu.ko
|
||||
__devm_request_region
|
||||
@ -1082,7 +1146,6 @@
|
||||
__SetPageMovable
|
||||
si_mem_available
|
||||
si_meminfo
|
||||
system_freezable_wq
|
||||
unregister_oom_notifier
|
||||
unregister_shrinker
|
||||
virtqueue_disable_dma_api_for_buffers
|
||||
@ -1184,8 +1247,6 @@
|
||||
eth_prepare_mac_addr_change
|
||||
ethtool_sprintf
|
||||
ethtool_virtdev_set_link_ksettings
|
||||
eth_type_trans
|
||||
_find_first_bit
|
||||
flow_keys_basic_dissector
|
||||
jiffies_to_usecs
|
||||
__napi_alloc_skb
|
||||
@ -1198,9 +1259,7 @@
|
||||
__netif_set_xps_queue
|
||||
netif_tx_lock
|
||||
netif_tx_unlock
|
||||
net_ratelimit
|
||||
__num_online_cpus
|
||||
__pskb_pull_tail
|
||||
sched_clock
|
||||
skb_coalesce_rx_frag
|
||||
__skb_flow_dissect
|
||||
@ -1270,7 +1329,6 @@
|
||||
wait_for_completion_interruptible_timeout
|
||||
|
||||
# required by vkms.ko
|
||||
crc32_le
|
||||
__devm_drm_dev_alloc
|
||||
devres_open_group
|
||||
devres_release_group
|
||||
@ -1308,7 +1366,6 @@
|
||||
|
||||
# required by vmw_vsock_virtio_transport.ko
|
||||
sk_error_report
|
||||
synchronize_rcu
|
||||
virtio_transport_connect
|
||||
virtio_transport_deliver_tap_pkt
|
||||
virtio_transport_destruct
|
||||
@ -1359,26 +1416,18 @@
|
||||
can_bus_off
|
||||
can_change_state
|
||||
capable
|
||||
__class_register
|
||||
class_unregister
|
||||
contig_page_data
|
||||
__cpu_possible_mask
|
||||
crypto_alloc_base
|
||||
crypto_comp_compress
|
||||
crypto_comp_decompress
|
||||
crypto_destroy_tfm
|
||||
crypto_has_alg
|
||||
dec_zone_page_state
|
||||
down_read
|
||||
down_write
|
||||
_find_next_bit
|
||||
flush_dcache_page
|
||||
folio_wait_bit
|
||||
free_percpu
|
||||
hex_asc_upper
|
||||
hex_to_bin
|
||||
idr_find
|
||||
idr_for_each
|
||||
inc_zone_page_state
|
||||
__init_rwsem
|
||||
kstrdup
|
||||
@ -1387,7 +1436,6 @@
|
||||
memset64
|
||||
mutex_is_locked
|
||||
page_endio
|
||||
__per_cpu_offset
|
||||
_raw_read_lock
|
||||
_raw_read_unlock
|
||||
_raw_write_lock
|
||||
|
@ -31,10 +31,6 @@
|
||||
__blk_mq_alloc_disk
|
||||
__blk_mq_end_request
|
||||
__blk_rq_map_sg
|
||||
__cfg80211_alloc_event_skb
|
||||
__cfg80211_alloc_reply_skb
|
||||
__cfg80211_radar_event
|
||||
__cfg80211_send_event_skb
|
||||
__check_object_size
|
||||
__class_create
|
||||
__class_register
|
||||
@ -139,7 +135,6 @@
|
||||
__hwspin_unlock
|
||||
__i2c_smbus_xfer
|
||||
__i2c_transfer
|
||||
__ieee80211_schedule_txq
|
||||
__inet6_lookup_established
|
||||
__inet_lookup_established
|
||||
__init_rwsem
|
||||
@ -400,6 +395,7 @@
|
||||
__traceiter_android_vh_ipi_stop
|
||||
__traceiter_android_vh_is_fpsimd_save
|
||||
__traceiter_android_vh_jiffies_update
|
||||
__traceiter_android_vh_mmap_region
|
||||
__traceiter_android_vh_mutex_wait_finish
|
||||
__traceiter_android_vh_mutex_wait_start
|
||||
__traceiter_android_vh_printk_hotplug
|
||||
@ -420,6 +416,7 @@
|
||||
__traceiter_android_vh_timer_calc_index
|
||||
__traceiter_android_vh_try_to_freeze_todo
|
||||
__traceiter_android_vh_try_to_freeze_todo_unfrozen
|
||||
__traceiter_android_vh_try_to_unmap_one
|
||||
__traceiter_android_vh_ufs_check_int_errors
|
||||
__traceiter_android_vh_ufs_clock_scaling
|
||||
__traceiter_android_vh_ufs_compl_command
|
||||
@ -566,6 +563,7 @@
|
||||
__tracepoint_android_vh_ipi_stop
|
||||
__tracepoint_android_vh_is_fpsimd_save
|
||||
__tracepoint_android_vh_jiffies_update
|
||||
__tracepoint_android_vh_mmap_region
|
||||
__tracepoint_android_vh_mutex_wait_finish
|
||||
__tracepoint_android_vh_mutex_wait_start
|
||||
__tracepoint_android_vh_printk_hotplug
|
||||
@ -584,6 +582,7 @@
|
||||
__tracepoint_android_vh_show_suspend_epoch_val
|
||||
__tracepoint_android_vh_sysrq_crash
|
||||
__tracepoint_android_vh_timer_calc_index
|
||||
__tracepoint_android_vh_try_to_unmap_one
|
||||
__tracepoint_android_vh_try_to_freeze_todo
|
||||
__tracepoint_android_vh_try_to_freeze_todo_unfrozen
|
||||
__tracepoint_android_vh_ufs_check_int_errors
|
||||
@ -872,7 +871,6 @@
|
||||
bpf_trace_run8
|
||||
bpf_trace_run9
|
||||
bpf_warn_invalid_xdp_action
|
||||
bridge_tunnel_header
|
||||
bsg_job_done
|
||||
bsg_remove_queue
|
||||
bsg_setup_queue
|
||||
@ -974,100 +972,6 @@
|
||||
cec_s_phys_addr
|
||||
cec_transmit_attempt_done_ts
|
||||
cec_unregister_adapter
|
||||
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_vendor_cmd_get_sender
|
||||
cfg80211_vendor_cmd_reply
|
||||
cgroup_path_ns
|
||||
cgroup_taskset_first
|
||||
cgroup_taskset_next
|
||||
@ -2169,7 +2073,6 @@
|
||||
freq_qos_remove_notifier
|
||||
freq_qos_remove_request
|
||||
freq_qos_update_request
|
||||
freq_reg_info
|
||||
fs_bio_set
|
||||
fsync_bdev
|
||||
ftrace_dump
|
||||
@ -2275,7 +2178,6 @@
|
||||
get_user_pages
|
||||
get_user_pages_fast
|
||||
get_vaddr_frames
|
||||
get_wiphy_regdom
|
||||
get_zeroed_page
|
||||
getboottime64
|
||||
gh_rm_call
|
||||
@ -2502,151 +2404,6 @@
|
||||
idr_preload
|
||||
idr_remove
|
||||
idr_replace
|
||||
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
|
||||
@ -2663,7 +2420,6 @@
|
||||
ieee802154_xmit_complete
|
||||
ieee802154_xmit_error
|
||||
ieee802154_xmit_hw_error
|
||||
ieeee80211_obss_color_collision_notify
|
||||
iio_buffer_enabled
|
||||
iio_buffer_init
|
||||
iio_buffer_put
|
||||
@ -3807,7 +3563,6 @@
|
||||
radix_tree_lookup
|
||||
radix_tree_next_chunk
|
||||
radix_tree_tagged
|
||||
rate_control_set_rates
|
||||
rational_best_approximation
|
||||
raw_notifier_call_chain
|
||||
raw_notifier_chain_register
|
||||
@ -3861,8 +3616,6 @@
|
||||
refcount_dec_if_one
|
||||
refcount_dec_not_one
|
||||
refcount_warn_saturate
|
||||
reg_initiator_name
|
||||
reg_query_regdb_wmm
|
||||
regcache_cache_bypass
|
||||
regcache_cache_only
|
||||
regcache_drop_region
|
||||
@ -3937,6 +3690,7 @@
|
||||
regulator_force_disable
|
||||
regulator_get
|
||||
regulator_get_current_limit_regmap
|
||||
regulator_get_drvdata
|
||||
regulator_get_linear_step
|
||||
regulator_get_mode
|
||||
regulator_get_optional
|
||||
@ -3963,10 +3717,6 @@
|
||||
regulator_set_voltage_sel_regmap
|
||||
regulator_unregister
|
||||
regulator_unregister_notifier
|
||||
regulatory_hint
|
||||
regulatory_pre_cac_allowed
|
||||
regulatory_set_wiphy_regd
|
||||
regulatory_set_wiphy_regd_sync
|
||||
release_firmware
|
||||
release_sock
|
||||
remap_pfn_range
|
||||
@ -3995,7 +3745,6 @@
|
||||
reset_control_release
|
||||
reset_control_reset
|
||||
return_address
|
||||
rfc1042_header
|
||||
rfkill_alloc
|
||||
rfkill_blocked
|
||||
rfkill_destroy
|
||||
@ -4780,6 +4529,7 @@
|
||||
ucsi_destroy
|
||||
ucsi_get_drvdata
|
||||
ucsi_register
|
||||
ucsi_send_command
|
||||
ucsi_set_drvdata
|
||||
ucsi_unregister
|
||||
udp4_hwcsum
|
||||
@ -5287,17 +5037,6 @@
|
||||
watchdog_register_device
|
||||
watchdog_set_restart_priority
|
||||
watchdog_unregister_device
|
||||
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
|
||||
wireless_nlevent_flush
|
||||
wireless_send_event
|
||||
woken_wake_function
|
||||
|
@ -133,3 +133,98 @@
|
||||
__tracepoint_android_rvh_after_enqueue_task
|
||||
__tracepoint_android_rvh_after_dequeue_task
|
||||
__tracepoint_android_vh_map_util_freq
|
||||
|
||||
#required by ufs-qcom.ko
|
||||
blk_crypto_reprogram_all_keys
|
||||
blk_crypto_register
|
||||
blk_crypto_keyslot_index
|
||||
blk_mq_destroy_queue
|
||||
blk_put_queue
|
||||
blk_pm_runtime_init
|
||||
sbitmap_weight
|
||||
scsi_done
|
||||
scsi_remove_device
|
||||
|
||||
#required by mi_sched.ko
|
||||
__traceiter_android_vh_scheduler_tick
|
||||
__traceiter_android_vh_free_user
|
||||
__traceiter_android_vh_alloc_uid
|
||||
__tracepoint_android_vh_scheduler_tick
|
||||
__tracepoint_android_vh_free_user
|
||||
__tracepoint_android_vh_alloc_uid
|
||||
free_uid
|
||||
find_user
|
||||
|
||||
#required by mi_freqwdg.ko
|
||||
__traceiter_android_vh_freq_qos_remove_request
|
||||
__traceiter_android_vh_freq_qos_update_request
|
||||
__traceiter_android_vh_freq_qos_add_request
|
||||
__traceiter_android_rvh_entity_tick
|
||||
__traceiter_android_rvh_dequeue_task_fair
|
||||
__tracepoint_android_vh_freq_qos_remove_request
|
||||
__tracepoint_android_vh_freq_qos_update_request
|
||||
__tracepoint_android_vh_freq_qos_add_request
|
||||
__tracepoint_android_rvh_dequeue_task_fair
|
||||
__tracepoint_android_rvh_entity_tick
|
||||
|
||||
#required by millet.ko
|
||||
__traceiter_android_rvh_refrigerator
|
||||
__tracepoint_android_rvh_refrigerator
|
||||
freezer_cgrp_subsys
|
||||
|
||||
#required by bfq module
|
||||
__blkg_prfill_rwstat
|
||||
blkg_rwstat_recursive_sum
|
||||
blkg_prfill_rwstat
|
||||
blkg_conf_finish
|
||||
blkg_conf_prep
|
||||
__blkg_prfill_u64
|
||||
blkcg_print_blkgs
|
||||
blkg_rwstat_exit
|
||||
blkg_rwstat_init
|
||||
percpu_counter_add_batch
|
||||
io_cgrp_subsys_on_dfl_key
|
||||
ioc_lookup_icq
|
||||
bdi_dev_name
|
||||
|
||||
#required by metis.ko module
|
||||
__traceiter_android_vh_rwsem_read_wait_start
|
||||
__traceiter_android_vh_rwsem_write_wait_start
|
||||
__traceiter_android_vh_mutex_wait_start
|
||||
__traceiter_android_vh_alter_mutex_list_add
|
||||
__traceiter_android_rvh_cpuset_fork
|
||||
__traceiter_android_vh_sched_setaffinity_early
|
||||
__traceiter_android_rvh_set_cpus_allowed_comm
|
||||
__traceiter_android_rvh_dequeue_task
|
||||
__tracepoint_android_vh_rwsem_read_wait_start
|
||||
__tracepoint_android_vh_rwsem_write_wait_start
|
||||
__tracepoint_android_vh_mutex_wait_start
|
||||
__tracepoint_android_vh_alter_mutex_list_add
|
||||
__tracepoint_android_rvh_cpuset_fork
|
||||
__tracepoint_android_vh_sched_setaffinity_early
|
||||
__tracepoint_android_rvh_set_cpus_allowed_comm
|
||||
__tracepoint_android_rvh_dequeue_task
|
||||
cpuset_cpus_allowed
|
||||
|
||||
#required by millet.ko
|
||||
__traceiter_android_vh_binder_wait_for_work
|
||||
__traceiter_android_vh_do_send_sig_info
|
||||
__traceiter_android_vh_binder_preset
|
||||
__traceiter_android_vh_binder_trans
|
||||
__traceiter_android_vh_binder_reply
|
||||
__traceiter_android_vh_binder_alloc_new_buf_locked
|
||||
__tracepoint_android_vh_binder_wait_for_work
|
||||
__tracepoint_android_vh_do_send_sig_info
|
||||
__tracepoint_android_vh_binder_preset
|
||||
__tracepoint_android_vh_binder_trans
|
||||
__tracepoint_android_vh_binder_reply
|
||||
__tracepoint_android_vh_binder_alloc_new_buf_locked
|
||||
|
||||
#required by io_limit.ko
|
||||
__traceiter_android_vh_psi_event
|
||||
__traceiter_android_vh_psi_group
|
||||
__tracepoint_android_vh_psi_event
|
||||
__tracepoint_android_vh_psi_group
|
||||
|
||||
#required by touch module
|
||||
power_supply_is_system_supplied
|
||||
|
@ -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
|
||||
@ -94,106 +88,9 @@ cdc_ncm_rx_verify_nth32
|
||||
cdc_ncm_select_altsetting
|
||||
cdc_ncm_tx_fixup
|
||||
cdc_ncm_unbind
|
||||
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
|
||||
generic_mii_ioctl
|
||||
get_wiphy_regdom
|
||||
h4_recv_buf
|
||||
hci_alloc_dev_priv
|
||||
hci_cmd_sync
|
||||
@ -222,151 +119,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
|
||||
@ -383,7 +135,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
|
||||
@ -481,16 +232,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
|
||||
@ -586,17 +329,6 @@ usbnet_update_max_qlen
|
||||
usbnet_write_cmd
|
||||
usbnet_write_cmd_async
|
||||
usbnet_write_cmd_nopm
|
||||
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
|
||||
|
@ -50,10 +50,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
|
||||
|
||||
|
@ -48,11 +48,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
|
||||
|
||||
|
@ -651,6 +651,13 @@ config SHADOW_CALL_STACK
|
||||
reading and writing arbitrary memory may be able to locate them
|
||||
and hijack control flow by modifying the stacks.
|
||||
|
||||
config DYNAMIC_SCS
|
||||
bool
|
||||
help
|
||||
Set by the arch code if it relies on code patching to insert the
|
||||
shadow call stack push and pop instructions rather than on the
|
||||
compiler.
|
||||
|
||||
config LTO
|
||||
bool
|
||||
help
|
||||
|
@ -942,7 +942,7 @@ wdt: watchdog@ff800000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spdif: sound@ff88b0000 {
|
||||
spdif: sound@ff8b0000 {
|
||||
compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
|
||||
reg = <0x0 0xff8b0000 0x0 0x10000>;
|
||||
#sound-dai-cells = <0>;
|
||||
|
@ -373,6 +373,9 @@ config KASAN_SHADOW_OFFSET
|
||||
default 0xeffffff800000000 if ARM64_VA_BITS_36 && KASAN_SW_TAGS
|
||||
default 0xffffffffffffffff
|
||||
|
||||
config UNWIND_TABLES
|
||||
bool
|
||||
|
||||
source "arch/arm64/Kconfig.platforms"
|
||||
|
||||
menu "Kernel Features"
|
||||
@ -2188,6 +2191,15 @@ config ARCH_NR_GPIO
|
||||
|
||||
If unsure, leave the default value.
|
||||
|
||||
config UNWIND_PATCH_PAC_INTO_SCS
|
||||
bool "Enable shadow call stack dynamically using code patching"
|
||||
# needs Clang with https://reviews.llvm.org/D111780 incorporated
|
||||
depends on CC_IS_CLANG && CLANG_VERSION >= 150000
|
||||
depends on ARM64_PTR_AUTH_KERNEL && CC_HAS_BRANCH_PROT_PAC_RET
|
||||
depends on SHADOW_CALL_STACK
|
||||
select UNWIND_TABLES
|
||||
select DYNAMIC_SCS
|
||||
|
||||
endmenu # "Kernel Features"
|
||||
|
||||
menu "Boot options"
|
||||
|
@ -45,8 +45,13 @@ KBUILD_CFLAGS += $(call cc-option,-mabi=lp64)
|
||||
KBUILD_AFLAGS += $(call cc-option,-mabi=lp64)
|
||||
|
||||
# Avoid generating .eh_frame* sections.
|
||||
ifneq ($(CONFIG_UNWIND_TABLES),y)
|
||||
KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables
|
||||
KBUILD_AFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables
|
||||
else
|
||||
KBUILD_CFLAGS += -fasynchronous-unwind-tables
|
||||
KBUILD_AFLAGS += -fasynchronous-unwind-tables
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_STACKPROTECTOR_PER_TASK),y)
|
||||
prepare: stack_protector_prepare
|
||||
@ -72,10 +77,16 @@ branch-prot-flags-$(CONFIG_CC_HAS_SIGN_RETURN_ADDRESS) := -msign-return-address=
|
||||
# We enable additional protection for leaf functions as there is some
|
||||
# narrow potential for ROP protection benefits and no substantial
|
||||
# performance impact has been observed.
|
||||
PACRET-y := pac-ret+leaf
|
||||
|
||||
# Using a shadow call stack in leaf functions is too costly, so avoid PAC there
|
||||
# as well when we may be patching PAC into SCS
|
||||
PACRET-$(CONFIG_UNWIND_PATCH_PAC_INTO_SCS) := pac-ret
|
||||
|
||||
ifeq ($(CONFIG_ARM64_BTI_KERNEL),y)
|
||||
branch-prot-flags-$(CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI) := -mbranch-protection=pac-ret+leaf+bti
|
||||
branch-prot-flags-$(CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI) := -mbranch-protection=$(PACRET-y)+bti
|
||||
else
|
||||
branch-prot-flags-$(CONFIG_CC_HAS_BRANCH_PROT_PAC_RET) := -mbranch-protection=pac-ret+leaf
|
||||
branch-prot-flags-$(CONFIG_CC_HAS_BRANCH_PROT_PAC_RET) := -mbranch-protection=$(PACRET-y)
|
||||
endif
|
||||
# -march=armv8.3-a enables the non-nops instructions for PAC, to avoid the
|
||||
# compiler to generate them and consequently to break the single image contract
|
||||
|
@ -1571,10 +1571,9 @@ usb2_phy0: phy@36000 {
|
||||
|
||||
dmc: bus@38000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0x38000 0x0 0x400>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0x38000 0x0 0x400>;
|
||||
ranges = <0x0 0x0 0x0 0x38000 0x0 0x2000>;
|
||||
|
||||
canvas: video-lut@48 {
|
||||
compatible = "amlogic,canvas";
|
||||
|
@ -193,7 +193,7 @@ pmic@4b {
|
||||
rohm,reset-snvs-powered;
|
||||
|
||||
#clock-cells = <0>;
|
||||
clocks = <&osc_32k 0>;
|
||||
clocks = <&osc_32k>;
|
||||
clock-output-names = "clk-32k-out";
|
||||
|
||||
regulators {
|
||||
|
@ -95,7 +95,7 @@ reg_ethphy: regulator-ethphy {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>; /* PMIC_EN_ETH */
|
||||
off-on-delay = <500000>;
|
||||
off-on-delay-us = <500000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_reg_eth>;
|
||||
regulator-always-on;
|
||||
@ -135,7 +135,7 @@ reg_usdhc2_vmmc: regulator-usdhc2 {
|
||||
enable-active-high;
|
||||
/* Verdin SD_1_PWR_EN (SODIMM 76) */
|
||||
gpio = <&gpio3 5 GPIO_ACTIVE_HIGH>;
|
||||
off-on-delay = <100000>;
|
||||
off-on-delay-us = <100000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc2_pwr_en>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
@ -12,7 +12,7 @@ reg_eth2phy: regulator-eth2phy {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio_expander_21 4 GPIO_ACTIVE_HIGH>; /* ETH_PWR_EN */
|
||||
off-on-delay = <500000>;
|
||||
off-on-delay-us = <500000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-name = "+V3.3_ETH";
|
||||
|
@ -86,7 +86,7 @@ reg_module_eth1phy: regulator-module-eth1phy {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>; /* PMIC_EN_ETH */
|
||||
off-on-delay = <500000>;
|
||||
off-on-delay-us = <500000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_reg_eth>;
|
||||
regulator-always-on;
|
||||
@ -127,7 +127,7 @@ reg_usdhc2_vmmc: regulator-usdhc2 {
|
||||
enable-active-high;
|
||||
/* Verdin SD_1_PWR_EN (SODIMM 76) */
|
||||
gpio = <&gpio4 22 GPIO_ACTIVE_HIGH>;
|
||||
off-on-delay = <100000>;
|
||||
off-on-delay-us = <100000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc2_pwr_en>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
@ -59,11 +59,11 @@ &pcie1 {
|
||||
perst-gpios = <&tlmm 58 0x1>;
|
||||
};
|
||||
|
||||
&pcie_phy0 {
|
||||
&pcie_qmp0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie_phy1 {
|
||||
&pcie_qmp1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -22,7 +22,7 @@ memory {
|
||||
};
|
||||
|
||||
&blsp1_spi1 {
|
||||
status = "ok";
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
@ -34,33 +34,33 @@ flash@0 {
|
||||
};
|
||||
|
||||
&blsp1_uart5 {
|
||||
status = "ok";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
status = "ok";
|
||||
status = "okay";
|
||||
perst-gpios = <&tlmm 58 0x1>;
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
status = "ok";
|
||||
status = "okay";
|
||||
perst-gpios = <&tlmm 61 0x1>;
|
||||
};
|
||||
|
||||
&pcie_phy0 {
|
||||
status = "ok";
|
||||
&pcie_qmp0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie_phy1 {
|
||||
status = "ok";
|
||||
&pcie_qmp1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&qpic_bam {
|
||||
status = "ok";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&qpic_nand {
|
||||
status = "ok";
|
||||
status = "okay";
|
||||
|
||||
nand@0 {
|
||||
reg = <0>;
|
||||
|
@ -15,8 +15,9 @@ pmk8280: pmic@0 {
|
||||
#size-cells = <0>;
|
||||
|
||||
pmk8280_pon: pon@1300 {
|
||||
compatible = "qcom,pm8998-pon";
|
||||
reg = <0x1300>;
|
||||
compatible = "qcom,pmk8350-pon";
|
||||
reg = <0x1300>, <0x800>;
|
||||
reg-names = "hlos", "pbs";
|
||||
|
||||
pmk8280_pon_pwrkey: pwrkey {
|
||||
compatible = "qcom,pmk8350-pwrkey";
|
||||
|
@ -540,7 +540,7 @@ &sdmmc1 {
|
||||
non-removable;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
|
||||
sd-uhs-sdr104;
|
||||
sd-uhs-sdr50;
|
||||
vmmc-supply = <&vcc3v3_sys>;
|
||||
vqmmc-supply = <&vcc_1v8>;
|
||||
status = "okay";
|
||||
|
@ -4,12 +4,16 @@
|
||||
# CONFIG_BITS_TEST is not set
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
||||
CONFIG_CMDLINE="console=ttyMSM0,115200n8 kasan.stacktrace=off stack_depot_disable=off page_owner=on no_hash_pointers panic_on_taint=0x20"
|
||||
CONFIG_DEBUG_ATOMIC_SLEEP=y
|
||||
CONFIG_DEBUG_IRQFLAGS=y
|
||||
CONFIG_DEBUG_KMEMLEAK=y
|
||||
# CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set
|
||||
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
||||
CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000
|
||||
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
|
||||
# CONFIG_DEBUG_KOBJECT_RELEASE is not set
|
||||
CONFIG_DEBUG_LOCKDEP=y
|
||||
CONFIG_DEBUG_LOCK_ALLOC=y
|
||||
CONFIG_DEBUG_MUTEXES=y
|
||||
CONFIG_DEBUG_OBJECTS=y
|
||||
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
||||
@ -20,6 +24,7 @@ CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
||||
CONFIG_DEBUG_OBJECTS_TIMERS=y
|
||||
CONFIG_DEBUG_OBJECTS_WORK=y
|
||||
CONFIG_DEBUG_PREEMPT=y
|
||||
CONFIG_DEBUG_RT_MUTEXES=y
|
||||
CONFIG_DEBUG_RWSEMS=y
|
||||
CONFIG_DEBUG_SPINLOCK=y
|
||||
# CONFIG_DPM_WATCHDOG is not set
|
||||
@ -32,7 +37,9 @@ CONFIG_GKI_HACKS_FOR_DEBUG_CONFIG=y
|
||||
# CONFIG_LIST_KUNIT_TEST is not set
|
||||
# CONFIG_LKDTM is not set
|
||||
CONFIG_LOCALVERSION="-qki-consolidate"
|
||||
CONFIG_LOCKDEP=y
|
||||
CONFIG_LOCKUP_DETECTOR=y
|
||||
CONFIG_LOCK_STAT=y
|
||||
# CONFIG_PERCPU_TEST is not set
|
||||
CONFIG_PID_IN_CONTEXTIDR=y
|
||||
# CONFIG_PM_ADVANCED_DEBUG is not set
|
||||
|
@ -308,3 +308,9 @@ CONFIG_QCOM_SPM=m
|
||||
CONFIG_PINCTRL_SM8450=m
|
||||
CONFIG_SM_GCC_8450=m
|
||||
CONFIG_INTERCONNECT_QCOM_SM8450=m
|
||||
# CFG80211 & MAC80211 as modules
|
||||
CONFIG_CFG80211=m
|
||||
CONFIG_NL80211_TESTMODE=y
|
||||
# CONFIG_CFG80211_DEFAULT_PS is not set
|
||||
# CONFIG_CFG80211_CRDA_SUPPORT is not set
|
||||
CONFIG_MAC80211=m
|
||||
|
@ -55,8 +55,10 @@ CONFIG_ARMV8_DEPRECATED=y
|
||||
CONFIG_SWP_EMULATION=y
|
||||
CONFIG_CP15_BARRIER_EMULATION=y
|
||||
CONFIG_SETEND_EMULATION=y
|
||||
# CONFIG_ARM64_BTI_KERNEL is not set
|
||||
CONFIG_RANDOMIZE_BASE=y
|
||||
# CONFIG_RANDOMIZE_MODULE_REGION_FULL is not set
|
||||
CONFIG_UNWIND_PATCH_PAC_INTO_SCS=y
|
||||
CONFIG_CMDLINE="console=ttynull stack_depot_disable=on cgroup_disable=pressure kasan.page_alloc.sample=10 kasan.stacktrace=off kvm-arm.mode=protected bootconfig ioremap_guard"
|
||||
CONFIG_CMDLINE_EXTEND=y
|
||||
# CONFIG_DMI is not set
|
||||
@ -276,11 +278,6 @@ CONFIG_BT_HCIUART=m
|
||||
CONFIG_BT_HCIUART_LL=y
|
||||
CONFIG_BT_HCIUART_BCM=y
|
||||
CONFIG_BT_HCIUART_QCA=y
|
||||
CONFIG_CFG80211=m
|
||||
CONFIG_NL80211_TESTMODE=y
|
||||
# CONFIG_CFG80211_DEFAULT_PS is not set
|
||||
# CONFIG_CFG80211_CRDA_SUPPORT is not set
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_RFKILL=m
|
||||
CONFIG_NFC=m
|
||||
CONFIG_PCI=y
|
||||
@ -377,6 +374,7 @@ CONFIG_SERIAL_8250=y
|
||||
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
# CONFIG_SERIAL_8250_EXAR is not set
|
||||
CONFIG_SERIAL_8250_NR_UARTS=32
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=0
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
@ -542,6 +540,7 @@ CONFIG_DMABUF_HEAPS_PAGE_POOL=y
|
||||
CONFIG_UIO=y
|
||||
CONFIG_VIRT_DRIVERS=y
|
||||
CONFIG_GUNYAH=y
|
||||
# CONFIG_GUNYAH_QCOM_PLATFORM is not set
|
||||
CONFIG_GUNYAH_VCPU=y
|
||||
CONFIG_GUNYAH_IRQFD=y
|
||||
CONFIG_GUNYAH_IOEVENTFD=y
|
||||
@ -691,7 +690,7 @@ CONFIG_DMA_CMA=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_PRINTK_CALLER=y
|
||||
CONFIG_DYNAMIC_DEBUG_CORE=y
|
||||
CONFIG_DEBUG_INFO_DWARF5=y
|
||||
CONFIG_DEBUG_INFO_DWARF4=y
|
||||
CONFIG_DEBUG_INFO_BTF=y
|
||||
CONFIG_MODULE_ALLOW_BTF_MISMATCH=y
|
||||
CONFIG_HEADERS_INSTALL=y
|
||||
@ -704,6 +703,7 @@ CONFIG_UBSAN_LOCAL_BOUNDS=y
|
||||
# CONFIG_UBSAN_BOOL is not set
|
||||
# CONFIG_UBSAN_ENUM is not set
|
||||
CONFIG_PAGE_OWNER=y
|
||||
CONFIG_PAGE_PINNER=y
|
||||
CONFIG_DEBUG_STACK_USAGE=y
|
||||
CONFIG_DEBUG_MEMORY_INIT=y
|
||||
CONFIG_KASAN=y
|
||||
|
@ -11,7 +11,6 @@ CONFIG_DETECT_HUNG_TASK=y
|
||||
CONFIG_F2FS_CHECK_FS=y
|
||||
CONFIG_F2FS_FAULT_INJECTION=y
|
||||
CONFIG_LKDTM=m
|
||||
# CONFIG_LOCK_STAT is not set
|
||||
CONFIG_LOCK_TORTURE_TEST=m
|
||||
CONFIG_MSM_GPI_DMA_DEBUG=y
|
||||
# CONFIG_PAGE_POISONING is not set
|
||||
|
@ -8,18 +8,14 @@
|
||||
#include <linux/gunyah.h>
|
||||
#include <linux/uuid.h>
|
||||
|
||||
static const uuid_t gh_known_uuids[] = {
|
||||
/* Qualcomm's version of Gunyah {19bd54bd-0b37-571b-946f-609b54539de6} */
|
||||
UUID_INIT(0x19bd54bd, 0x0b37, 0x571b, 0x94, 0x6f, 0x60, 0x9b, 0x54, 0x53, 0x9d, 0xe6),
|
||||
/* Standard version of Gunyah {c1d58fcd-a453-5fdb-9265-ce36673d5f14} */
|
||||
UUID_INIT(0xc1d58fcd, 0xa453, 0x5fdb, 0x92, 0x65, 0xce, 0x36, 0x67, 0x3d, 0x5f, 0x14),
|
||||
};
|
||||
/* {c1d58fcd-a453-5fdb-9265-ce36673d5f14} */
|
||||
static const uuid_t GUNYAH_UUID =
|
||||
UUID_INIT(0xc1d58fcd, 0xa453, 0x5fdb, 0x92, 0x65, 0xce, 0x36, 0x67, 0x3d, 0x5f, 0x14);
|
||||
|
||||
bool arch_is_gh_guest(void)
|
||||
{
|
||||
struct arm_smccc_res res;
|
||||
uuid_t uuid;
|
||||
int i;
|
||||
|
||||
arm_smccc_1_1_hvc(ARM_SMCCC_VENDOR_HYP_CALL_UID_FUNC_ID, &res);
|
||||
|
||||
@ -28,11 +24,7 @@ bool arch_is_gh_guest(void)
|
||||
((u32 *)&uuid.b[0])[2] = lower_32_bits(res.a2);
|
||||
((u32 *)&uuid.b[0])[3] = lower_32_bits(res.a3);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(gh_known_uuids); i++)
|
||||
if (uuid_equal(&uuid, &gh_known_uuids[i]))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
return uuid_equal(&uuid, &GUNYAH_UUID);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(arch_is_gh_guest);
|
||||
|
||||
@ -71,7 +63,7 @@ enum gh_error gh_hypercall_bell_send(u64 capid, u64 new_flags, u64 *old_flags)
|
||||
|
||||
arm_smccc_1_1_hvc(GH_HYPERCALL_BELL_SEND, capid, new_flags, 0, &res);
|
||||
|
||||
if (res.a0 == GH_ERROR_OK)
|
||||
if (res.a0 == GH_ERROR_OK && old_flags)
|
||||
*old_flags = res.a1;
|
||||
|
||||
return res.a0;
|
||||
@ -88,7 +80,7 @@ enum gh_error gh_hypercall_bell_set_mask(u64 capid, u64 enable_mask, u64 ack_mas
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(gh_hypercall_bell_set_mask);
|
||||
|
||||
enum gh_error gh_hypercall_msgq_send(u64 capid, size_t size, void *buff, int tx_flags, bool *ready)
|
||||
enum gh_error gh_hypercall_msgq_send(u64 capid, size_t size, void *buff, u64 tx_flags, bool *ready)
|
||||
{
|
||||
struct arm_smccc_res res;
|
||||
|
||||
@ -134,7 +126,7 @@ enum gh_error gh_hypercall_vcpu_run(u64 capid, u64 *resume_data,
|
||||
arm_smccc_1_2_hvc(&args, &res);
|
||||
|
||||
if (res.a0 == GH_ERROR_OK) {
|
||||
resp->state = res.a1;
|
||||
resp->sized_state = res.a1;
|
||||
resp->state_data[0] = res.a2;
|
||||
resp->state_data[1] = res.a3;
|
||||
resp->state_data[2] = res.a4;
|
||||
|
@ -921,4 +921,19 @@ alternative_cb ARM64_ALWAYS_SYSTEM, spectre_bhb_patch_clearbhb
|
||||
alternative_cb_end
|
||||
#endif /* CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY */
|
||||
.endm
|
||||
|
||||
#if defined(__KVM_NVHE_HYPERVISOR__)
|
||||
/*
|
||||
* pKVM uses the module_ops struct to expose services to modules but
|
||||
* doesn't allow fine-grained definition of the license for each export,
|
||||
* and doesn't have a way to check the license of the loaded module.
|
||||
* Given that said module may be proprietary, let's seek GPL compliance
|
||||
* by preventing the accidental export of GPL symbols to hyp modules via
|
||||
* pKVM's module_ops struct.
|
||||
*/
|
||||
#ifdef EXPORT_SYMBOL_GPL
|
||||
#undef EXPORT_SYMBOL_GPL
|
||||
#endif
|
||||
#define EXPORT_SYMBOL_GPL(sym) ASM_BUILD_BUG()
|
||||
#endif
|
||||
#endif /* __ASM_ASSEMBLER_H */
|
||||
|
@ -1,16 +1,17 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
#ifndef __ASM_GUNYAH_H_
|
||||
#define __ASM_GUNYAH_H_
|
||||
#ifndef _ASM_GUNYAH_H
|
||||
#define _ASM_GUNYAH_H
|
||||
|
||||
#include <linux/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
static inline int arch_gh_fill_irq_fwspec_params(u32 virq, struct irq_fwspec *fwspec)
|
||||
{
|
||||
if (virq < 32 || virq > 1019)
|
||||
/* Assume that Gunyah gave us an SPI; defensively check it */
|
||||
if (WARN_ON(virq < 32 || virq > 1019))
|
||||
return -EINVAL;
|
||||
|
||||
fwspec->param_count = 3;
|
||||
|
@ -19,4 +19,14 @@ static inline bool kfence_protect_page(unsigned long addr, bool protect)
|
||||
return true;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_KFENCE
|
||||
extern bool kfence_early_init;
|
||||
static inline bool arm64_kfence_can_set_direct_map(void)
|
||||
{
|
||||
return !kfence_early_init;
|
||||
}
|
||||
#else /* CONFIG_KFENCE */
|
||||
static inline bool arm64_kfence_can_set_direct_map(void) { return false; }
|
||||
#endif /* CONFIG_KFENCE */
|
||||
|
||||
#endif /* __ASM_KFENCE_H */
|
||||
|
@ -159,6 +159,19 @@ extern void *__nvhe_undefined_symbol;
|
||||
#define this_cpu_ptr_hyp_sym(sym) (&__nvhe_undefined_symbol)
|
||||
#define per_cpu_ptr_hyp_sym(sym, cpu) (&__nvhe_undefined_symbol)
|
||||
|
||||
/*
|
||||
* pKVM uses the module_ops struct to expose services to modules but
|
||||
* doesn't allow fine-grained definition of the license for each export,
|
||||
* and doesn't have a way to check the license of the loaded module.
|
||||
* Given that said module may be proprietary, let's seek GPL compliance
|
||||
* by preventing the accidental export of GPL symbols to hyp modules via
|
||||
* pKVM's module_ops struct.
|
||||
*/
|
||||
#ifdef EXPORT_SYMBOL_GPL
|
||||
#undef EXPORT_SYMBOL_GPL
|
||||
#endif
|
||||
#define EXPORT_SYMBOL_GPL(sym) BUILD_BUG()
|
||||
|
||||
#elif defined(__KVM_VHE_HYPERVISOR__)
|
||||
|
||||
#define CHOOSE_VHE_SYM(sym) sym
|
||||
@ -208,6 +221,7 @@ struct kvm_nvhe_init_params {
|
||||
unsigned long stack_pa;
|
||||
phys_addr_t pgd_pa;
|
||||
unsigned long hcr_el2;
|
||||
unsigned long hfgwtr_el2;
|
||||
unsigned long vttbr;
|
||||
unsigned long vtcr;
|
||||
};
|
||||
|
@ -30,6 +30,8 @@ struct pkvm_module_ops {
|
||||
void *(*linear_map_early)(phys_addr_t phys, size_t size, enum kvm_pgtable_prot prot);
|
||||
void (*linear_unmap_early)(void *addr, size_t size);
|
||||
void (*flush_dcache_to_poc)(void *addr, size_t size);
|
||||
void (*update_hcr_el2)(unsigned long set_mask, unsigned long clear_mask);
|
||||
void (*update_hfgwtr_el2)(unsigned long set_mask, unsigned long clear_mask);
|
||||
int (*register_host_perm_fault_handler)(int (*cb)(struct kvm_cpu_context *ctxt, u64 esr, u64 addr));
|
||||
int (*host_stage2_mod_prot)(u64 pfn, enum kvm_pgtable_prot prot);
|
||||
int (*host_stage2_get_leaf)(phys_addr_t phys, kvm_pte_t *ptep, u32 *level);
|
||||
|
@ -40,4 +40,12 @@ SECTIONS {
|
||||
}
|
||||
.hyp.reloc : ALIGN(4) { *(.hyp.reloc) }
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_UNWIND_TABLES
|
||||
/*
|
||||
* Currently, we only use unwind info at module load time, so we can
|
||||
* put it into the .init allocation.
|
||||
*/
|
||||
.init.eh_frame : { *(.eh_frame) }
|
||||
#endif
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
#ifdef __ASSEMBLY__
|
||||
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/sysreg.h>
|
||||
|
||||
#ifdef CONFIG_SHADOW_CALL_STACK
|
||||
scs_sp .req x18
|
||||
@ -24,6 +25,54 @@
|
||||
.endm
|
||||
#endif /* CONFIG_SHADOW_CALL_STACK */
|
||||
|
||||
|
||||
#else
|
||||
|
||||
#include <linux/scs.h>
|
||||
#include <asm/cpufeature.h>
|
||||
|
||||
#ifdef CONFIG_UNWIND_PATCH_PAC_INTO_SCS
|
||||
static inline bool should_patch_pac_into_scs(void)
|
||||
{
|
||||
u64 reg;
|
||||
|
||||
/*
|
||||
* We only enable the shadow call stack dynamically if we are running
|
||||
* on a system that does not implement PAC or BTI. PAC and SCS provide
|
||||
* roughly the same level of protection, and BTI relies on the PACIASP
|
||||
* instructions serving as landing pads, preventing us from patching
|
||||
* those instructions into something else.
|
||||
*/
|
||||
reg = read_sysreg_s(SYS_ID_AA64ISAR1_EL1);
|
||||
if (SYS_FIELD_GET(ID_AA64ISAR1_EL1, APA, reg) |
|
||||
SYS_FIELD_GET(ID_AA64ISAR1_EL1, API, reg))
|
||||
return false;
|
||||
|
||||
reg = read_sysreg_s(SYS_ID_AA64ISAR2_EL1);
|
||||
if (SYS_FIELD_GET(ID_AA64ISAR2_EL1, APA3, reg))
|
||||
return false;
|
||||
|
||||
if (IS_ENABLED(CONFIG_ARM64_BTI_KERNEL)) {
|
||||
reg = read_sysreg_s(SYS_ID_AA64PFR1_EL1);
|
||||
if (reg & (0xf << ID_AA64PFR1_EL1_BT_SHIFT))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static inline void dynamic_scs_init(void)
|
||||
{
|
||||
if (should_patch_pac_into_scs()) {
|
||||
pr_info("Enabling dynamic shadow call stack\n");
|
||||
static_branch_enable(&dynamic_scs_enabled);
|
||||
}
|
||||
}
|
||||
#else
|
||||
static inline void dynamic_scs_init(void) {}
|
||||
#endif
|
||||
|
||||
int scs_patch(const u8 eh_frame[], int size);
|
||||
|
||||
#endif /* __ASSEMBLY __ */
|
||||
|
||||
#endif /* _ASM_SCS_H */
|
||||
|
@ -80,6 +80,8 @@ obj-$(CONFIG_ARM64_PTR_AUTH) += pointer_auth.o
|
||||
obj-$(CONFIG_ARM64_MTE) += mte.o
|
||||
obj-y += vdso-wrap.o
|
||||
obj-$(CONFIG_COMPAT_VDSO) += vdso32-wrap.o
|
||||
obj-$(CONFIG_UNWIND_PATCH_PAC_INTO_SCS) += patch-scs.o
|
||||
CFLAGS_patch-scs.o += -mbranch-protection=none
|
||||
|
||||
# Force dependency (vdso*-wrap.S includes vdso.so through incbin)
|
||||
$(obj)/vdso-wrap.o: $(obj)/vdso/vdso.so
|
||||
|
@ -128,6 +128,7 @@ int main(void)
|
||||
DEFINE(NVHE_INIT_STACK_HYP_VA, offsetof(struct kvm_nvhe_init_params, stack_hyp_va));
|
||||
DEFINE(NVHE_INIT_PGD_PA, offsetof(struct kvm_nvhe_init_params, pgd_pa));
|
||||
DEFINE(NVHE_INIT_HCR_EL2, offsetof(struct kvm_nvhe_init_params, hcr_el2));
|
||||
DEFINE(NVHE_INIT_HFGWTR_EL2, offsetof(struct kvm_nvhe_init_params, hfgwtr_el2));
|
||||
DEFINE(NVHE_INIT_VTTBR, offsetof(struct kvm_nvhe_init_params, vttbr));
|
||||
DEFINE(NVHE_INIT_VTCR, offsetof(struct kvm_nvhe_init_params, vtcr));
|
||||
#endif
|
||||
|
@ -462,6 +462,9 @@ SYM_FUNC_START_LOCAL(__primary_switched)
|
||||
bl early_fdt_map // Try mapping the FDT early
|
||||
mov x0, x20 // pass the full boot status
|
||||
bl init_feature_override // Parse cpu feature overrides
|
||||
#ifdef CONFIG_UNWIND_PATCH_PAC_INTO_SCS
|
||||
bl scs_patch_vmlinux
|
||||
#endif
|
||||
mov x0, x20
|
||||
bl finalise_el2 // Prefer VHE if possible
|
||||
ldp x29, x30, [sp], #16
|
||||
|
@ -41,7 +41,7 @@ static void init_irq_scs(void)
|
||||
{
|
||||
int cpu;
|
||||
|
||||
if (!IS_ENABLED(CONFIG_SHADOW_CALL_STACK))
|
||||
if (!scs_is_enabled())
|
||||
return;
|
||||
|
||||
for_each_possible_cpu(cpu)
|
||||
|
@ -15,9 +15,11 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/moduleloader.h>
|
||||
#include <linux/scs.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <asm/alternative.h>
|
||||
#include <asm/insn.h>
|
||||
#include <asm/scs.h>
|
||||
#include <asm/sections.h>
|
||||
|
||||
void *module_alloc(unsigned long size)
|
||||
@ -569,6 +571,12 @@ int module_finalize(const Elf_Ehdr *hdr,
|
||||
if (s)
|
||||
apply_alternatives_module((void *)s->sh_addr, s->sh_size);
|
||||
|
||||
if (scs_is_dynamic()) {
|
||||
s = find_section(hdr, sechdrs, ".init.eh_frame");
|
||||
if (s)
|
||||
scs_patch((void *)s->sh_addr, s->sh_size);
|
||||
}
|
||||
|
||||
err = module_init_ftrace_plt(hdr, sechdrs, me);
|
||||
if (err)
|
||||
return err;
|
||||
|
257
arch/arm64/kernel/patch-scs.c
Normal file
257
arch/arm64/kernel/patch-scs.c
Normal file
@ -0,0 +1,257 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (C) 2022 - Google LLC
|
||||
* Author: Ard Biesheuvel <ardb@google.com>
|
||||
*/
|
||||
|
||||
#include <linux/bug.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/printk.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/scs.h>
|
||||
|
||||
//
|
||||
// This minimal DWARF CFI parser is partially based on the code in
|
||||
// arch/arc/kernel/unwind.c, and on the document below:
|
||||
// https://refspecs.linuxbase.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html
|
||||
//
|
||||
|
||||
#define DW_CFA_nop 0x00
|
||||
#define DW_CFA_set_loc 0x01
|
||||
#define DW_CFA_advance_loc1 0x02
|
||||
#define DW_CFA_advance_loc2 0x03
|
||||
#define DW_CFA_advance_loc4 0x04
|
||||
#define DW_CFA_offset_extended 0x05
|
||||
#define DW_CFA_restore_extended 0x06
|
||||
#define DW_CFA_undefined 0x07
|
||||
#define DW_CFA_same_value 0x08
|
||||
#define DW_CFA_register 0x09
|
||||
#define DW_CFA_remember_state 0x0a
|
||||
#define DW_CFA_restore_state 0x0b
|
||||
#define DW_CFA_def_cfa 0x0c
|
||||
#define DW_CFA_def_cfa_register 0x0d
|
||||
#define DW_CFA_def_cfa_offset 0x0e
|
||||
#define DW_CFA_def_cfa_expression 0x0f
|
||||
#define DW_CFA_expression 0x10
|
||||
#define DW_CFA_offset_extended_sf 0x11
|
||||
#define DW_CFA_def_cfa_sf 0x12
|
||||
#define DW_CFA_def_cfa_offset_sf 0x13
|
||||
#define DW_CFA_val_offset 0x14
|
||||
#define DW_CFA_val_offset_sf 0x15
|
||||
#define DW_CFA_val_expression 0x16
|
||||
#define DW_CFA_lo_user 0x1c
|
||||
#define DW_CFA_negate_ra_state 0x2d
|
||||
#define DW_CFA_GNU_args_size 0x2e
|
||||
#define DW_CFA_GNU_negative_offset_extended 0x2f
|
||||
#define DW_CFA_hi_user 0x3f
|
||||
|
||||
extern const u8 __eh_frame_start[], __eh_frame_end[];
|
||||
|
||||
enum {
|
||||
PACIASP = 0xd503233f,
|
||||
AUTIASP = 0xd50323bf,
|
||||
SCS_PUSH = 0xf800865e,
|
||||
SCS_POP = 0xf85f8e5e,
|
||||
};
|
||||
|
||||
static void __always_inline scs_patch_loc(u64 loc)
|
||||
{
|
||||
u32 insn = le32_to_cpup((void *)loc);
|
||||
|
||||
switch (insn) {
|
||||
case PACIASP:
|
||||
*(u32 *)loc = cpu_to_le32(SCS_PUSH);
|
||||
break;
|
||||
case AUTIASP:
|
||||
*(u32 *)loc = cpu_to_le32(SCS_POP);
|
||||
break;
|
||||
default:
|
||||
/*
|
||||
* While the DW_CFA_negate_ra_state directive is guaranteed to
|
||||
* appear right after a PACIASP/AUTIASP instruction, it may
|
||||
* also appear after a DW_CFA_restore_state directive that
|
||||
* restores a state that is only partially accurate, and is
|
||||
* followed by DW_CFA_negate_ra_state directive to toggle the
|
||||
* PAC bit again. So we permit other instructions here, and ignore
|
||||
* them.
|
||||
*/
|
||||
return;
|
||||
}
|
||||
dcache_clean_pou(loc, loc + sizeof(u32));
|
||||
}
|
||||
|
||||
/*
|
||||
* Skip one uleb128/sleb128 encoded quantity from the opcode stream. All bytes
|
||||
* except the last one have bit #7 set.
|
||||
*/
|
||||
static int __always_inline skip_xleb128(const u8 **opcode, int size)
|
||||
{
|
||||
u8 c;
|
||||
|
||||
do {
|
||||
c = *(*opcode)++;
|
||||
size--;
|
||||
} while (c & BIT(7));
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
struct eh_frame {
|
||||
/*
|
||||
* The size of this frame if 0 < size < U32_MAX, 0 terminates the list.
|
||||
*/
|
||||
u32 size;
|
||||
|
||||
/*
|
||||
* The first frame is a Common Information Entry (CIE) frame, followed
|
||||
* by one or more Frame Description Entry (FDE) frames. In the former
|
||||
* case, this field is 0, otherwise it is the negated offset relative
|
||||
* to the associated CIE frame.
|
||||
*/
|
||||
u32 cie_id_or_pointer;
|
||||
|
||||
union {
|
||||
struct { // CIE
|
||||
u8 version;
|
||||
u8 augmentation_string[];
|
||||
};
|
||||
|
||||
struct { // FDE
|
||||
s32 initial_loc;
|
||||
s32 range;
|
||||
u8 opcodes[];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
static int noinstr scs_handle_fde_frame(const struct eh_frame *frame,
|
||||
bool fde_has_augmentation_data,
|
||||
int code_alignment_factor)
|
||||
{
|
||||
int size = frame->size - offsetof(struct eh_frame, opcodes) + 4;
|
||||
u64 loc = (u64)offset_to_ptr(&frame->initial_loc);
|
||||
const u8 *opcode = frame->opcodes;
|
||||
|
||||
if (fde_has_augmentation_data) {
|
||||
int l;
|
||||
|
||||
// assume single byte uleb128_t
|
||||
if (WARN_ON(*opcode & BIT(7)))
|
||||
return -ENOEXEC;
|
||||
|
||||
l = *opcode++;
|
||||
opcode += l;
|
||||
size -= l + 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Starting from 'loc', apply the CFA opcodes that advance the location
|
||||
* pointer, and identify the locations of the PAC instructions.
|
||||
*/
|
||||
while (size-- > 0) {
|
||||
switch (*opcode++) {
|
||||
case DW_CFA_nop:
|
||||
case DW_CFA_remember_state:
|
||||
case DW_CFA_restore_state:
|
||||
break;
|
||||
|
||||
case DW_CFA_advance_loc1:
|
||||
loc += *opcode++ * code_alignment_factor;
|
||||
size--;
|
||||
break;
|
||||
|
||||
case DW_CFA_advance_loc2:
|
||||
loc += *opcode++ * code_alignment_factor;
|
||||
loc += (*opcode++ << 8) * code_alignment_factor;
|
||||
size -= 2;
|
||||
break;
|
||||
|
||||
case DW_CFA_def_cfa:
|
||||
case DW_CFA_offset_extended:
|
||||
size = skip_xleb128(&opcode, size);
|
||||
fallthrough;
|
||||
case DW_CFA_def_cfa_offset:
|
||||
case DW_CFA_def_cfa_offset_sf:
|
||||
case DW_CFA_def_cfa_register:
|
||||
case DW_CFA_same_value:
|
||||
case DW_CFA_restore_extended:
|
||||
case 0x80 ... 0xbf:
|
||||
size = skip_xleb128(&opcode, size);
|
||||
break;
|
||||
|
||||
case DW_CFA_negate_ra_state:
|
||||
scs_patch_loc(loc - 4);
|
||||
break;
|
||||
|
||||
case 0x40 ... 0x7f:
|
||||
// advance loc
|
||||
loc += (opcode[-1] & 0x3f) * code_alignment_factor;
|
||||
break;
|
||||
|
||||
case 0xc0 ... 0xff:
|
||||
break;
|
||||
|
||||
default:
|
||||
pr_err("unhandled opcode: %02x in FDE frame %lx\n", opcode[-1], (uintptr_t)frame);
|
||||
return -ENOEXEC;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int noinstr scs_patch(const u8 eh_frame[], int size)
|
||||
{
|
||||
const u8 *p = eh_frame;
|
||||
|
||||
while (size > 4) {
|
||||
const struct eh_frame *frame = (const void *)p;
|
||||
bool fde_has_augmentation_data = true;
|
||||
int code_alignment_factor = 1;
|
||||
int ret;
|
||||
|
||||
if (frame->size == 0 ||
|
||||
frame->size == U32_MAX ||
|
||||
frame->size > size)
|
||||
break;
|
||||
|
||||
if (frame->cie_id_or_pointer == 0) {
|
||||
const u8 *p = frame->augmentation_string;
|
||||
|
||||
/* a 'z' in the augmentation string must come first */
|
||||
fde_has_augmentation_data = *p == 'z';
|
||||
|
||||
/*
|
||||
* The code alignment factor is a uleb128 encoded field
|
||||
* but given that the only sensible values are 1 or 4,
|
||||
* there is no point in decoding the whole thing.
|
||||
*/
|
||||
p += strlen(p) + 1;
|
||||
if (!WARN_ON(*p & BIT(7)))
|
||||
code_alignment_factor = *p;
|
||||
} else {
|
||||
ret = scs_handle_fde_frame(frame,
|
||||
fde_has_augmentation_data,
|
||||
code_alignment_factor);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
p += sizeof(frame->size) + frame->size;
|
||||
size -= sizeof(frame->size) + frame->size;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
asmlinkage void __init scs_patch_vmlinux(void)
|
||||
{
|
||||
if (!should_patch_pac_into_scs())
|
||||
return;
|
||||
|
||||
WARN_ON(scs_patch(__eh_frame_start, __eh_frame_end - __eh_frame_start));
|
||||
icache_inval_all_pou();
|
||||
isb();
|
||||
}
|
@ -7,6 +7,7 @@ KBUILD_CFLAGS := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) -fpie \
|
||||
-I$(srctree)/scripts/dtc/libfdt -fno-stack-protector \
|
||||
-include $(srctree)/include/linux/hidden.h \
|
||||
-D__DISABLE_EXPORTS -ffreestanding -D__NO_FORTIFY \
|
||||
-fno-asynchronous-unwind-tables -fno-unwind-tables \
|
||||
$(call cc-option,-fno-addrsig)
|
||||
|
||||
# remove SCS flags from all objects in this directory
|
||||
|
@ -598,6 +598,7 @@ unsigned long __get_wchan(struct task_struct *p)
|
||||
|
||||
return wchan_info.pc;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(get_wchan);
|
||||
|
||||
unsigned long arch_align_stack(unsigned long sp)
|
||||
{
|
||||
|
@ -144,7 +144,7 @@ static int init_sdei_scs(void)
|
||||
int cpu;
|
||||
int err = 0;
|
||||
|
||||
if (!IS_ENABLED(CONFIG_SHADOW_CALL_STACK))
|
||||
if (!scs_is_enabled())
|
||||
return 0;
|
||||
|
||||
for_each_possible_cpu(cpu) {
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include <linux/efi.h>
|
||||
#include <linux/psci.h>
|
||||
#include <linux/sched/task.h>
|
||||
#include <linux/scs.h>
|
||||
#include <linux/mm.h>
|
||||
|
||||
#include <asm/acpi.h>
|
||||
@ -43,6 +44,7 @@
|
||||
#include <asm/hypervisor.h>
|
||||
#include <asm/kasan.h>
|
||||
#include <asm/numa.h>
|
||||
#include <asm/scs.h>
|
||||
#include <asm/sections.h>
|
||||
#include <asm/setup.h>
|
||||
#include <asm/smp_plat.h>
|
||||
@ -314,6 +316,8 @@ void __init __no_sanitize_address setup_arch(char **cmdline_p)
|
||||
jump_label_init();
|
||||
parse_early_param();
|
||||
|
||||
dynamic_scs_init();
|
||||
|
||||
/*
|
||||
* Unmask asynchronous aborts and fiq after bringing up possible
|
||||
* earlycon. (Report possible System Errors once we can report this
|
||||
|
@ -143,6 +143,17 @@ jiffies = jiffies_64;
|
||||
#define TRAMP_TEXT
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_UNWIND_TABLES
|
||||
#define UNWIND_DATA_SECTIONS \
|
||||
.eh_frame : { \
|
||||
__eh_frame_start = .; \
|
||||
*(.eh_frame) \
|
||||
__eh_frame_end = .; \
|
||||
}
|
||||
#else
|
||||
#define UNWIND_DATA_SECTIONS
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The size of the PE/COFF section that covers the kernel image, which
|
||||
* runs from _stext to _edata, must be a round multiple of the PE/COFF
|
||||
@ -261,6 +272,8 @@ SECTIONS
|
||||
__alt_instructions_end = .;
|
||||
}
|
||||
|
||||
UNWIND_DATA_SECTIONS
|
||||
|
||||
. = ALIGN(SEGMENT_ALIGN);
|
||||
__inittext_end = .;
|
||||
__initdata_begin = .;
|
||||
|
@ -89,7 +89,6 @@ bool addr_is_memory(phys_addr_t phys);
|
||||
int host_stage2_idmap_locked(phys_addr_t addr, u64 size, enum kvm_pgtable_prot prot,
|
||||
bool update_iommu);
|
||||
int host_stage2_set_owner_locked(phys_addr_t addr, u64 size, enum pkvm_component_id owner_id);
|
||||
int host_stage2_protect_pages_locked(phys_addr_t addr, u64 size);
|
||||
int host_stage2_unmap_reg_locked(phys_addr_t start, u64 size);
|
||||
int kvm_host_prepare_stage2(void *pgt_pool_base);
|
||||
int kvm_guest_prepare_stage2(struct pkvm_hyp_vm *vm, void *pgd);
|
||||
|
@ -79,6 +79,7 @@ KBUILD_CFLAGS := $(filter-out $(CC_FLAGS_FTRACE) $(CC_FLAGS_SCS) $(CC_FLAGS_CFI)
|
||||
# when profile optimization is applied. gen-hyprel does not support SHT_REL and
|
||||
# causes a build failure. Remove profile optimization flags.
|
||||
KBUILD_CFLAGS := $(filter-out -fprofile-sample-use=% -fprofile-use=%, $(KBUILD_CFLAGS))
|
||||
KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables
|
||||
|
||||
# KVM nVHE code is run at a different exception code with a different map, so
|
||||
# compiler instrumentation that inserts callbacks or checks into the code may
|
||||
|
@ -95,6 +95,13 @@ SYM_CODE_START_LOCAL(___kvm_hyp_init)
|
||||
ldr x1, [x0, #NVHE_INIT_HCR_EL2]
|
||||
msr hcr_el2, x1
|
||||
|
||||
mrs x1, ID_AA64MMFR0_EL1
|
||||
and x1, x1, #(0xf << ID_AA64MMFR0_EL1_FGT_SHIFT)
|
||||
cbz x1, 1f
|
||||
ldr x1, [x0, #NVHE_INIT_HFGWTR_EL2]
|
||||
msr_s SYS_HFGWTR_EL2, x1
|
||||
|
||||
1:
|
||||
ldr x1, [x0, #NVHE_INIT_VTTBR]
|
||||
msr vttbr_el2, x1
|
||||
|
||||
|
@ -2366,19 +2366,6 @@ bool __pkvm_check_ioguard_page(struct pkvm_hyp_vcpu *hyp_vcpu)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int host_stage2_protect_pages_locked(phys_addr_t addr, u64 size)
|
||||
{
|
||||
int ret;
|
||||
|
||||
hyp_assert_lock_held(&host_mmu.lock);
|
||||
|
||||
ret = __host_check_page_state_range(addr, size, PKVM_PAGE_OWNED);
|
||||
if (!ret)
|
||||
ret = host_stage2_set_owner_locked(addr, size, PKVM_ID_PROTECTED);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int host_stage2_get_leaf(phys_addr_t phys, kvm_pte_t *ptep, u32 *level)
|
||||
{
|
||||
int ret;
|
||||
|
@ -17,6 +17,26 @@ static void __kvm_flush_dcache_to_poc(void *addr, size_t size)
|
||||
kvm_flush_dcache_to_poc((unsigned long)addr, (unsigned long)size);
|
||||
}
|
||||
|
||||
static void __update_hcr_el2(unsigned long set_mask, unsigned long clear_mask)
|
||||
{
|
||||
struct kvm_nvhe_init_params *params = this_cpu_ptr(&kvm_init_params);
|
||||
|
||||
params->hcr_el2 |= set_mask;
|
||||
params->hcr_el2 &= ~clear_mask;
|
||||
__kvm_flush_dcache_to_poc(params, sizeof(*params));
|
||||
write_sysreg(params->hcr_el2, hcr_el2);
|
||||
}
|
||||
|
||||
static void __update_hfgwtr_el2(unsigned long set_mask, unsigned long clear_mask)
|
||||
{
|
||||
struct kvm_nvhe_init_params *params = this_cpu_ptr(&kvm_init_params);
|
||||
|
||||
params->hfgwtr_el2 |= set_mask;
|
||||
params->hfgwtr_el2 &= ~clear_mask;
|
||||
__kvm_flush_dcache_to_poc(params, sizeof(*params));
|
||||
write_sysreg_s(params->hfgwtr_el2, SYS_HFGWTR_EL2);
|
||||
}
|
||||
|
||||
static atomic_t early_lm_pages;
|
||||
static void *__pkvm_linear_map_early(phys_addr_t phys, size_t size, enum kvm_pgtable_prot prot)
|
||||
{
|
||||
@ -78,6 +98,8 @@ const struct pkvm_module_ops module_ops = {
|
||||
.linear_map_early = __pkvm_linear_map_early,
|
||||
.linear_unmap_early = __pkvm_linear_unmap_early,
|
||||
.flush_dcache_to_poc = __kvm_flush_dcache_to_poc,
|
||||
.update_hcr_el2 = __update_hcr_el2,
|
||||
.update_hfgwtr_el2 = __update_hfgwtr_el2,
|
||||
.register_host_perm_fault_handler = hyp_register_host_perm_fault_handler,
|
||||
.host_stage2_mod_prot = module_change_host_page_prot,
|
||||
.host_stage2_get_leaf = host_stage2_get_leaf,
|
||||
|
@ -318,7 +318,9 @@ static int unmap_protected_regions(void)
|
||||
reg = &pkvm_moveable_regs[i];
|
||||
if (reg->type != PKVM_MREG_PROTECTED_RANGE)
|
||||
continue;
|
||||
ret = host_stage2_protect_pages_locked(reg->start, reg->size);
|
||||
|
||||
ret = host_stage2_set_owner_locked(reg->start, reg->size,
|
||||
PKVM_ID_PROTECTED);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
@ -429,6 +429,8 @@ int kvm_arm_set_fw_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)
|
||||
u64 val;
|
||||
int wa_level;
|
||||
|
||||
if (KVM_REG_SIZE(reg->id) != sizeof(val))
|
||||
return -ENOENT;
|
||||
if (copy_from_user(&val, uaddr, KVM_REG_SIZE(reg->id)))
|
||||
return -EFAULT;
|
||||
|
||||
|
@ -16,7 +16,7 @@ int pkvm_iommu_driver_init(u64 drv, void *data, size_t size)
|
||||
{
|
||||
return kvm_call_hyp_nvhe(__pkvm_iommu_driver_init, drv, data, size);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(pkvm_iommu_driver_init);
|
||||
EXPORT_SYMBOL(pkvm_iommu_driver_init);
|
||||
|
||||
int pkvm_iommu_register(struct device *dev, u64 drv, phys_addr_t pa,
|
||||
size_t size, struct device *parent, u8 flags)
|
||||
@ -41,24 +41,24 @@ int pkvm_iommu_register(struct device *dev, u64 drv, phys_addr_t pa,
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(pkvm_iommu_register);
|
||||
EXPORT_SYMBOL(pkvm_iommu_register);
|
||||
|
||||
int pkvm_iommu_suspend(struct device *dev)
|
||||
{
|
||||
return kvm_call_hyp_nvhe(__pkvm_iommu_pm_notify, dev_to_id(dev),
|
||||
PKVM_IOMMU_PM_SUSPEND);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(pkvm_iommu_suspend);
|
||||
EXPORT_SYMBOL(pkvm_iommu_suspend);
|
||||
|
||||
int pkvm_iommu_resume(struct device *dev)
|
||||
{
|
||||
return kvm_call_hyp_nvhe(__pkvm_iommu_pm_notify, dev_to_id(dev),
|
||||
PKVM_IOMMU_PM_RESUME);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(pkvm_iommu_resume);
|
||||
EXPORT_SYMBOL(pkvm_iommu_resume);
|
||||
|
||||
int pkvm_iommu_finalize(int err)
|
||||
{
|
||||
return kvm_call_hyp_nvhe(__pkvm_iommu_finalize, err);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(pkvm_iommu_finalize);
|
||||
EXPORT_SYMBOL(pkvm_iommu_finalize);
|
||||
|
@ -870,11 +870,11 @@ int __pkvm_load_el2_module(struct module *this, unsigned long *token)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__pkvm_load_el2_module);
|
||||
EXPORT_SYMBOL(__pkvm_load_el2_module);
|
||||
|
||||
int __pkvm_register_el2_call(unsigned long hfn_hyp_va)
|
||||
{
|
||||
return kvm_call_hyp_nvhe(__pkvm_register_hcall, hfn_hyp_va);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__pkvm_register_el2_call);
|
||||
EXPORT_SYMBOL(__pkvm_register_el2_call);
|
||||
#endif /* CONFIG_MODULES */
|
||||
|
@ -15,16 +15,14 @@
|
||||
#include <kvm/arm_pmu.h>
|
||||
#include <kvm/arm_vgic.h>
|
||||
|
||||
#define PERF_ATTR_CFG1_COUNTER_64BIT BIT(0)
|
||||
|
||||
DEFINE_STATIC_KEY_FALSE(kvm_arm_pmu_available);
|
||||
|
||||
static LIST_HEAD(arm_pmus);
|
||||
static DEFINE_MUTEX(arm_pmus_lock);
|
||||
|
||||
static void kvm_pmu_create_perf_event(struct kvm_vcpu *vcpu, u64 select_idx);
|
||||
static void kvm_pmu_update_pmc_chained(struct kvm_vcpu *vcpu, u64 select_idx);
|
||||
static void kvm_pmu_stop_counter(struct kvm_vcpu *vcpu, struct kvm_pmc *pmc);
|
||||
|
||||
#define PERF_ATTR_CFG1_KVM_PMU_CHAINED 0x1
|
||||
|
||||
static u32 kvm_pmu_event_mask(struct kvm *kvm)
|
||||
{
|
||||
@ -52,11 +50,22 @@ static u32 kvm_pmu_event_mask(struct kvm *kvm)
|
||||
* @select_idx: The counter index
|
||||
*/
|
||||
static bool kvm_pmu_idx_is_64bit(struct kvm_vcpu *vcpu, u64 select_idx)
|
||||
{
|
||||
return (select_idx == ARMV8_PMU_CYCLE_IDX);
|
||||
}
|
||||
|
||||
static bool kvm_pmu_idx_has_64bit_overflow(struct kvm_vcpu *vcpu, u64 select_idx)
|
||||
{
|
||||
return (select_idx == ARMV8_PMU_CYCLE_IDX &&
|
||||
__vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_LC);
|
||||
}
|
||||
|
||||
static bool kvm_pmu_counter_can_chain(struct kvm_vcpu *vcpu, u64 idx)
|
||||
{
|
||||
return (!(idx & 1) && (idx + 1) < ARMV8_PMU_CYCLE_IDX &&
|
||||
!kvm_pmu_idx_has_64bit_overflow(vcpu, idx));
|
||||
}
|
||||
|
||||
static struct kvm_vcpu *kvm_pmc_to_vcpu(struct kvm_pmc *pmc)
|
||||
{
|
||||
struct kvm_pmu *pmu;
|
||||
@ -69,91 +78,22 @@ static struct kvm_vcpu *kvm_pmc_to_vcpu(struct kvm_pmc *pmc)
|
||||
}
|
||||
|
||||
/**
|
||||
* kvm_pmu_pmc_is_chained - determine if the pmc is chained
|
||||
* @pmc: The PMU counter pointer
|
||||
*/
|
||||
static bool kvm_pmu_pmc_is_chained(struct kvm_pmc *pmc)
|
||||
{
|
||||
struct kvm_vcpu *vcpu = kvm_pmc_to_vcpu(pmc);
|
||||
|
||||
return test_bit(pmc->idx >> 1, vcpu->arch.pmu.chained);
|
||||
}
|
||||
|
||||
/**
|
||||
* kvm_pmu_idx_is_high_counter - determine if select_idx is a high/low counter
|
||||
* @select_idx: The counter index
|
||||
*/
|
||||
static bool kvm_pmu_idx_is_high_counter(u64 select_idx)
|
||||
{
|
||||
return select_idx & 0x1;
|
||||
}
|
||||
|
||||
/**
|
||||
* kvm_pmu_get_canonical_pmc - obtain the canonical pmc
|
||||
* @pmc: The PMU counter pointer
|
||||
*
|
||||
* When a pair of PMCs are chained together we use the low counter (canonical)
|
||||
* to hold the underlying perf event.
|
||||
*/
|
||||
static struct kvm_pmc *kvm_pmu_get_canonical_pmc(struct kvm_pmc *pmc)
|
||||
{
|
||||
if (kvm_pmu_pmc_is_chained(pmc) &&
|
||||
kvm_pmu_idx_is_high_counter(pmc->idx))
|
||||
return pmc - 1;
|
||||
|
||||
return pmc;
|
||||
}
|
||||
static struct kvm_pmc *kvm_pmu_get_alternate_pmc(struct kvm_pmc *pmc)
|
||||
{
|
||||
if (kvm_pmu_idx_is_high_counter(pmc->idx))
|
||||
return pmc - 1;
|
||||
else
|
||||
return pmc + 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* kvm_pmu_idx_has_chain_evtype - determine if the event type is chain
|
||||
* kvm_pmu_get_counter_value - get PMU counter value
|
||||
* @vcpu: The vcpu pointer
|
||||
* @select_idx: The counter index
|
||||
*/
|
||||
static bool kvm_pmu_idx_has_chain_evtype(struct kvm_vcpu *vcpu, u64 select_idx)
|
||||
u64 kvm_pmu_get_counter_value(struct kvm_vcpu *vcpu, u64 select_idx)
|
||||
{
|
||||
u64 eventsel, reg;
|
||||
u64 counter, reg, enabled, running;
|
||||
struct kvm_pmu *pmu = &vcpu->arch.pmu;
|
||||
struct kvm_pmc *pmc = &pmu->pmc[select_idx];
|
||||
|
||||
select_idx |= 0x1;
|
||||
if (!kvm_vcpu_has_pmu(vcpu))
|
||||
return 0;
|
||||
|
||||
if (select_idx == ARMV8_PMU_CYCLE_IDX)
|
||||
return false;
|
||||
|
||||
reg = PMEVTYPER0_EL0 + select_idx;
|
||||
eventsel = __vcpu_sys_reg(vcpu, reg) & kvm_pmu_event_mask(vcpu->kvm);
|
||||
|
||||
return eventsel == ARMV8_PMUV3_PERFCTR_CHAIN;
|
||||
}
|
||||
|
||||
/**
|
||||
* kvm_pmu_get_pair_counter_value - get PMU counter value
|
||||
* @vcpu: The vcpu pointer
|
||||
* @pmc: The PMU counter pointer
|
||||
*/
|
||||
static u64 kvm_pmu_get_pair_counter_value(struct kvm_vcpu *vcpu,
|
||||
struct kvm_pmc *pmc)
|
||||
{
|
||||
u64 counter, counter_high, reg, enabled, running;
|
||||
|
||||
if (kvm_pmu_pmc_is_chained(pmc)) {
|
||||
pmc = kvm_pmu_get_canonical_pmc(pmc);
|
||||
reg = PMEVCNTR0_EL0 + pmc->idx;
|
||||
|
||||
counter = __vcpu_sys_reg(vcpu, reg);
|
||||
counter_high = __vcpu_sys_reg(vcpu, reg + 1);
|
||||
|
||||
counter = lower_32_bits(counter) | (counter_high << 32);
|
||||
} else {
|
||||
reg = (pmc->idx == ARMV8_PMU_CYCLE_IDX)
|
||||
? PMCCNTR_EL0 : PMEVCNTR0_EL0 + pmc->idx;
|
||||
counter = __vcpu_sys_reg(vcpu, reg);
|
||||
}
|
||||
reg = (pmc->idx == ARMV8_PMU_CYCLE_IDX)
|
||||
? PMCCNTR_EL0 : PMEVCNTR0_EL0 + pmc->idx;
|
||||
counter = __vcpu_sys_reg(vcpu, reg);
|
||||
|
||||
/*
|
||||
* The real counter value is equal to the value of counter register plus
|
||||
@ -163,29 +103,7 @@ static u64 kvm_pmu_get_pair_counter_value(struct kvm_vcpu *vcpu,
|
||||
counter += perf_event_read_value(pmc->perf_event, &enabled,
|
||||
&running);
|
||||
|
||||
return counter;
|
||||
}
|
||||
|
||||
/**
|
||||
* kvm_pmu_get_counter_value - get PMU counter value
|
||||
* @vcpu: The vcpu pointer
|
||||
* @select_idx: The counter index
|
||||
*/
|
||||
u64 kvm_pmu_get_counter_value(struct kvm_vcpu *vcpu, u64 select_idx)
|
||||
{
|
||||
u64 counter;
|
||||
struct kvm_pmu *pmu = &vcpu->arch.pmu;
|
||||
struct kvm_pmc *pmc = &pmu->pmc[select_idx];
|
||||
|
||||
if (!kvm_vcpu_has_pmu(vcpu))
|
||||
return 0;
|
||||
|
||||
counter = kvm_pmu_get_pair_counter_value(vcpu, pmc);
|
||||
|
||||
if (kvm_pmu_pmc_is_chained(pmc) &&
|
||||
kvm_pmu_idx_is_high_counter(select_idx))
|
||||
counter = upper_32_bits(counter);
|
||||
else if (select_idx != ARMV8_PMU_CYCLE_IDX)
|
||||
if (!kvm_pmu_idx_is_64bit(vcpu, select_idx))
|
||||
counter = lower_32_bits(counter);
|
||||
|
||||
return counter;
|
||||
@ -218,7 +136,6 @@ void kvm_pmu_set_counter_value(struct kvm_vcpu *vcpu, u64 select_idx, u64 val)
|
||||
*/
|
||||
static void kvm_pmu_release_perf_event(struct kvm_pmc *pmc)
|
||||
{
|
||||
pmc = kvm_pmu_get_canonical_pmc(pmc);
|
||||
if (pmc->perf_event) {
|
||||
perf_event_disable(pmc->perf_event);
|
||||
perf_event_release_kernel(pmc->perf_event);
|
||||
@ -236,11 +153,10 @@ static void kvm_pmu_stop_counter(struct kvm_vcpu *vcpu, struct kvm_pmc *pmc)
|
||||
{
|
||||
u64 counter, reg, val;
|
||||
|
||||
pmc = kvm_pmu_get_canonical_pmc(pmc);
|
||||
if (!pmc->perf_event)
|
||||
return;
|
||||
|
||||
counter = kvm_pmu_get_pair_counter_value(vcpu, pmc);
|
||||
counter = kvm_pmu_get_counter_value(vcpu, pmc->idx);
|
||||
|
||||
if (pmc->idx == ARMV8_PMU_CYCLE_IDX) {
|
||||
reg = PMCCNTR_EL0;
|
||||
@ -252,9 +168,6 @@ static void kvm_pmu_stop_counter(struct kvm_vcpu *vcpu, struct kvm_pmc *pmc)
|
||||
|
||||
__vcpu_sys_reg(vcpu, reg) = val;
|
||||
|
||||
if (kvm_pmu_pmc_is_chained(pmc))
|
||||
__vcpu_sys_reg(vcpu, reg + 1) = upper_32_bits(counter);
|
||||
|
||||
kvm_pmu_release_perf_event(pmc);
|
||||
}
|
||||
|
||||
@ -285,8 +198,6 @@ void kvm_pmu_vcpu_reset(struct kvm_vcpu *vcpu)
|
||||
|
||||
for_each_set_bit(i, &mask, 32)
|
||||
kvm_pmu_stop_counter(vcpu, &pmu->pmc[i]);
|
||||
|
||||
bitmap_zero(vcpu->arch.pmu.chained, ARMV8_PMU_MAX_COUNTER_PAIRS);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -340,12 +251,9 @@ void kvm_pmu_enable_counter_mask(struct kvm_vcpu *vcpu, u64 val)
|
||||
|
||||
pmc = &pmu->pmc[i];
|
||||
|
||||
/* A change in the enable state may affect the chain state */
|
||||
kvm_pmu_update_pmc_chained(vcpu, i);
|
||||
kvm_pmu_create_perf_event(vcpu, i);
|
||||
|
||||
/* At this point, pmc must be the canonical */
|
||||
if (pmc->perf_event) {
|
||||
if (!pmc->perf_event) {
|
||||
kvm_pmu_create_perf_event(vcpu, i);
|
||||
} else {
|
||||
perf_event_enable(pmc->perf_event);
|
||||
if (pmc->perf_event->state != PERF_EVENT_STATE_ACTIVE)
|
||||
kvm_debug("fail to enable perf event\n");
|
||||
@ -375,11 +283,6 @@ void kvm_pmu_disable_counter_mask(struct kvm_vcpu *vcpu, u64 val)
|
||||
|
||||
pmc = &pmu->pmc[i];
|
||||
|
||||
/* A change in the enable state may affect the chain state */
|
||||
kvm_pmu_update_pmc_chained(vcpu, i);
|
||||
kvm_pmu_create_perf_event(vcpu, i);
|
||||
|
||||
/* At this point, pmc must be the canonical */
|
||||
if (pmc->perf_event)
|
||||
perf_event_disable(pmc->perf_event);
|
||||
}
|
||||
@ -484,6 +387,65 @@ static void kvm_pmu_perf_overflow_notify_vcpu(struct irq_work *work)
|
||||
kvm_vcpu_kick(vcpu);
|
||||
}
|
||||
|
||||
/*
|
||||
* Perform an increment on any of the counters described in @mask,
|
||||
* generating the overflow if required, and propagate it as a chained
|
||||
* event if possible.
|
||||
*/
|
||||
static void kvm_pmu_counter_increment(struct kvm_vcpu *vcpu,
|
||||
unsigned long mask, u32 event)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!(__vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E))
|
||||
return;
|
||||
|
||||
/* Weed out disabled counters */
|
||||
mask &= __vcpu_sys_reg(vcpu, PMCNTENSET_EL0);
|
||||
|
||||
for_each_set_bit(i, &mask, ARMV8_PMU_CYCLE_IDX) {
|
||||
u64 type, reg;
|
||||
|
||||
/* Filter on event type */
|
||||
type = __vcpu_sys_reg(vcpu, PMEVTYPER0_EL0 + i);
|
||||
type &= kvm_pmu_event_mask(vcpu->kvm);
|
||||
if (type != event)
|
||||
continue;
|
||||
|
||||
/* Increment this counter */
|
||||
reg = __vcpu_sys_reg(vcpu, PMEVCNTR0_EL0 + i) + 1;
|
||||
reg = lower_32_bits(reg);
|
||||
__vcpu_sys_reg(vcpu, PMEVCNTR0_EL0 + i) = reg;
|
||||
|
||||
if (reg) /* No overflow? move on */
|
||||
continue;
|
||||
|
||||
/* Mark overflow */
|
||||
__vcpu_sys_reg(vcpu, PMOVSSET_EL0) |= BIT(i);
|
||||
|
||||
if (kvm_pmu_counter_can_chain(vcpu, i))
|
||||
kvm_pmu_counter_increment(vcpu, BIT(i + 1),
|
||||
ARMV8_PMUV3_PERFCTR_CHAIN);
|
||||
}
|
||||
}
|
||||
|
||||
/* Compute the sample period for a given counter value */
|
||||
static u64 compute_period(struct kvm_vcpu *vcpu, u64 select_idx, u64 counter)
|
||||
{
|
||||
u64 val;
|
||||
|
||||
if (kvm_pmu_idx_is_64bit(vcpu, select_idx)) {
|
||||
if (!kvm_pmu_idx_has_64bit_overflow(vcpu, select_idx))
|
||||
val = -(counter & GENMASK(31, 0));
|
||||
else
|
||||
val = (-counter) & GENMASK(63, 0);
|
||||
} else {
|
||||
val = (-counter) & GENMASK(31, 0);
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
/**
|
||||
* When the perf event overflows, set the overflow status and inform the vcpu.
|
||||
*/
|
||||
@ -503,10 +465,7 @@ static void kvm_pmu_perf_overflow(struct perf_event *perf_event,
|
||||
* Reset the sample period to the architectural limit,
|
||||
* i.e. the point where the counter overflows.
|
||||
*/
|
||||
period = -(local64_read(&perf_event->count));
|
||||
|
||||
if (!kvm_pmu_idx_is_64bit(vcpu, pmc->idx))
|
||||
period &= GENMASK(31, 0);
|
||||
period = compute_period(vcpu, idx, local64_read(&perf_event->count));
|
||||
|
||||
local64_set(&perf_event->hw.period_left, 0);
|
||||
perf_event->attr.sample_period = period;
|
||||
@ -514,6 +473,10 @@ static void kvm_pmu_perf_overflow(struct perf_event *perf_event,
|
||||
|
||||
__vcpu_sys_reg(vcpu, PMOVSSET_EL0) |= BIT(idx);
|
||||
|
||||
if (kvm_pmu_counter_can_chain(vcpu, idx))
|
||||
kvm_pmu_counter_increment(vcpu, BIT(idx + 1),
|
||||
ARMV8_PMUV3_PERFCTR_CHAIN);
|
||||
|
||||
if (kvm_pmu_overflow_status(vcpu)) {
|
||||
kvm_make_request(KVM_REQ_IRQ_PENDING, vcpu);
|
||||
|
||||
@ -533,50 +496,7 @@ static void kvm_pmu_perf_overflow(struct perf_event *perf_event,
|
||||
*/
|
||||
void kvm_pmu_software_increment(struct kvm_vcpu *vcpu, u64 val)
|
||||
{
|
||||
struct kvm_pmu *pmu = &vcpu->arch.pmu;
|
||||
int i;
|
||||
|
||||
if (!kvm_vcpu_has_pmu(vcpu))
|
||||
return;
|
||||
|
||||
if (!(__vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E))
|
||||
return;
|
||||
|
||||
/* Weed out disabled counters */
|
||||
val &= __vcpu_sys_reg(vcpu, PMCNTENSET_EL0);
|
||||
|
||||
for (i = 0; i < ARMV8_PMU_CYCLE_IDX; i++) {
|
||||
u64 type, reg;
|
||||
|
||||
if (!(val & BIT(i)))
|
||||
continue;
|
||||
|
||||
/* PMSWINC only applies to ... SW_INC! */
|
||||
type = __vcpu_sys_reg(vcpu, PMEVTYPER0_EL0 + i);
|
||||
type &= kvm_pmu_event_mask(vcpu->kvm);
|
||||
if (type != ARMV8_PMUV3_PERFCTR_SW_INCR)
|
||||
continue;
|
||||
|
||||
/* increment this even SW_INC counter */
|
||||
reg = __vcpu_sys_reg(vcpu, PMEVCNTR0_EL0 + i) + 1;
|
||||
reg = lower_32_bits(reg);
|
||||
__vcpu_sys_reg(vcpu, PMEVCNTR0_EL0 + i) = reg;
|
||||
|
||||
if (reg) /* no overflow on the low part */
|
||||
continue;
|
||||
|
||||
if (kvm_pmu_pmc_is_chained(&pmu->pmc[i])) {
|
||||
/* increment the high counter */
|
||||
reg = __vcpu_sys_reg(vcpu, PMEVCNTR0_EL0 + i + 1) + 1;
|
||||
reg = lower_32_bits(reg);
|
||||
__vcpu_sys_reg(vcpu, PMEVCNTR0_EL0 + i + 1) = reg;
|
||||
if (!reg) /* mark overflow on the high counter */
|
||||
__vcpu_sys_reg(vcpu, PMOVSSET_EL0) |= BIT(i + 1);
|
||||
} else {
|
||||
/* mark overflow on low counter */
|
||||
__vcpu_sys_reg(vcpu, PMOVSSET_EL0) |= BIT(i);
|
||||
}
|
||||
}
|
||||
kvm_pmu_counter_increment(vcpu, val, ARMV8_PMUV3_PERFCTR_SW_INCR);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -591,6 +511,9 @@ void kvm_pmu_handle_pmcr(struct kvm_vcpu *vcpu, u64 val)
|
||||
if (!kvm_vcpu_has_pmu(vcpu))
|
||||
return;
|
||||
|
||||
/* The reset bits don't indicate any state, and shouldn't be saved. */
|
||||
__vcpu_sys_reg(vcpu, PMCR_EL0) = val & ~(ARMV8_PMU_PMCR_C | ARMV8_PMU_PMCR_P);
|
||||
|
||||
if (val & ARMV8_PMU_PMCR_E) {
|
||||
kvm_pmu_enable_counter_mask(vcpu,
|
||||
__vcpu_sys_reg(vcpu, PMCNTENSET_EL0));
|
||||
@ -626,18 +549,11 @@ static void kvm_pmu_create_perf_event(struct kvm_vcpu *vcpu, u64 select_idx)
|
||||
{
|
||||
struct arm_pmu *arm_pmu = vcpu->kvm->arch.arm_pmu;
|
||||
struct kvm_pmu *pmu = &vcpu->arch.pmu;
|
||||
struct kvm_pmc *pmc;
|
||||
struct kvm_pmc *pmc = &pmu->pmc[select_idx];
|
||||
struct perf_event *event;
|
||||
struct perf_event_attr attr;
|
||||
u64 eventsel, counter, reg, data;
|
||||
|
||||
/*
|
||||
* For chained counters the event type and filtering attributes are
|
||||
* obtained from the low/even counter. We also use this counter to
|
||||
* determine if the event is enabled/disabled.
|
||||
*/
|
||||
pmc = kvm_pmu_get_canonical_pmc(&pmu->pmc[select_idx]);
|
||||
|
||||
reg = (pmc->idx == ARMV8_PMU_CYCLE_IDX)
|
||||
? PMCCFILTR_EL0 : PMEVTYPER0_EL0 + pmc->idx;
|
||||
data = __vcpu_sys_reg(vcpu, reg);
|
||||
@ -648,8 +564,12 @@ static void kvm_pmu_create_perf_event(struct kvm_vcpu *vcpu, u64 select_idx)
|
||||
else
|
||||
eventsel = data & kvm_pmu_event_mask(vcpu->kvm);
|
||||
|
||||
/* Software increment event doesn't need to be backed by a perf event */
|
||||
if (eventsel == ARMV8_PMUV3_PERFCTR_SW_INCR)
|
||||
/*
|
||||
* Neither SW increment nor chained events need to be backed
|
||||
* by a perf event.
|
||||
*/
|
||||
if (eventsel == ARMV8_PMUV3_PERFCTR_SW_INCR ||
|
||||
eventsel == ARMV8_PMUV3_PERFCTR_CHAIN)
|
||||
return;
|
||||
|
||||
/*
|
||||
@ -671,30 +591,20 @@ static void kvm_pmu_create_perf_event(struct kvm_vcpu *vcpu, u64 select_idx)
|
||||
attr.exclude_host = 1; /* Don't count host events */
|
||||
attr.config = eventsel;
|
||||
|
||||
counter = kvm_pmu_get_pair_counter_value(vcpu, pmc);
|
||||
counter = kvm_pmu_get_counter_value(vcpu, select_idx);
|
||||
|
||||
if (kvm_pmu_pmc_is_chained(pmc)) {
|
||||
/**
|
||||
* The initial sample period (overflow count) of an event. For
|
||||
* chained counters we only support overflow interrupts on the
|
||||
* high counter.
|
||||
*/
|
||||
attr.sample_period = (-counter) & GENMASK(63, 0);
|
||||
attr.config1 |= PERF_ATTR_CFG1_KVM_PMU_CHAINED;
|
||||
/*
|
||||
* If counting with a 64bit counter, advertise it to the perf
|
||||
* code, carefully dealing with the initial sample period
|
||||
* which also depends on the overflow.
|
||||
*/
|
||||
if (kvm_pmu_idx_is_64bit(vcpu, select_idx))
|
||||
attr.config1 |= PERF_ATTR_CFG1_COUNTER_64BIT;
|
||||
|
||||
event = perf_event_create_kernel_counter(&attr, -1, current,
|
||||
kvm_pmu_perf_overflow,
|
||||
pmc + 1);
|
||||
} else {
|
||||
/* The initial sample period (overflow count) of an event. */
|
||||
if (kvm_pmu_idx_is_64bit(vcpu, pmc->idx))
|
||||
attr.sample_period = (-counter) & GENMASK(63, 0);
|
||||
else
|
||||
attr.sample_period = (-counter) & GENMASK(31, 0);
|
||||
attr.sample_period = compute_period(vcpu, select_idx, counter);
|
||||
|
||||
event = perf_event_create_kernel_counter(&attr, -1, current,
|
||||
event = perf_event_create_kernel_counter(&attr, -1, current,
|
||||
kvm_pmu_perf_overflow, pmc);
|
||||
}
|
||||
|
||||
if (IS_ERR(event)) {
|
||||
pr_err_once("kvm: pmu event creation failed %ld\n",
|
||||
@ -705,41 +615,6 @@ static void kvm_pmu_create_perf_event(struct kvm_vcpu *vcpu, u64 select_idx)
|
||||
pmc->perf_event = event;
|
||||
}
|
||||
|
||||
/**
|
||||
* kvm_pmu_update_pmc_chained - update chained bitmap
|
||||
* @vcpu: The vcpu pointer
|
||||
* @select_idx: The number of selected counter
|
||||
*
|
||||
* Update the chained bitmap based on the event type written in the
|
||||
* typer register and the enable state of the odd register.
|
||||
*/
|
||||
static void kvm_pmu_update_pmc_chained(struct kvm_vcpu *vcpu, u64 select_idx)
|
||||
{
|
||||
struct kvm_pmu *pmu = &vcpu->arch.pmu;
|
||||
struct kvm_pmc *pmc = &pmu->pmc[select_idx], *canonical_pmc;
|
||||
bool new_state, old_state;
|
||||
|
||||
old_state = kvm_pmu_pmc_is_chained(pmc);
|
||||
new_state = kvm_pmu_idx_has_chain_evtype(vcpu, pmc->idx) &&
|
||||
kvm_pmu_counter_is_enabled(vcpu, pmc->idx | 0x1);
|
||||
|
||||
if (old_state == new_state)
|
||||
return;
|
||||
|
||||
canonical_pmc = kvm_pmu_get_canonical_pmc(pmc);
|
||||
kvm_pmu_stop_counter(vcpu, canonical_pmc);
|
||||
if (new_state) {
|
||||
/*
|
||||
* During promotion from !chained to chained we must ensure
|
||||
* the adjacent counter is stopped and its event destroyed
|
||||
*/
|
||||
kvm_pmu_stop_counter(vcpu, kvm_pmu_get_alternate_pmc(pmc));
|
||||
set_bit(pmc->idx >> 1, vcpu->arch.pmu.chained);
|
||||
return;
|
||||
}
|
||||
clear_bit(pmc->idx >> 1, vcpu->arch.pmu.chained);
|
||||
}
|
||||
|
||||
/**
|
||||
* kvm_pmu_set_counter_event_type - set selected counter to monitor some event
|
||||
* @vcpu: The vcpu pointer
|
||||
@ -767,7 +642,6 @@ void kvm_pmu_set_counter_event_type(struct kvm_vcpu *vcpu, u64 data,
|
||||
|
||||
__vcpu_sys_reg(vcpu, reg) = data & mask;
|
||||
|
||||
kvm_pmu_update_pmc_chained(vcpu, select_idx);
|
||||
kvm_pmu_create_perf_event(vcpu, select_idx);
|
||||
}
|
||||
|
||||
|
@ -665,13 +665,15 @@ static bool access_pmcr(struct kvm_vcpu *vcpu, struct sys_reg_params *p,
|
||||
return false;
|
||||
|
||||
if (p->is_write) {
|
||||
/* Only update writeable bits of PMCR */
|
||||
/*
|
||||
* Only update writeable bits of PMCR (continuing into
|
||||
* kvm_pmu_handle_pmcr() as well)
|
||||
*/
|
||||
val = __vcpu_sys_reg(vcpu, PMCR_EL0);
|
||||
val &= ~ARMV8_PMU_PMCR_MASK;
|
||||
val |= p->regval & ARMV8_PMU_PMCR_MASK;
|
||||
if (!kvm_supports_32bit_el0())
|
||||
val |= ARMV8_PMU_PMCR_LC;
|
||||
__vcpu_sys_reg(vcpu, PMCR_EL0) = val;
|
||||
kvm_pmu_handle_pmcr(vcpu, val);
|
||||
} else {
|
||||
/* PMCR.P & PMCR.C are RAZ */
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <linux/mm.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/set_memory.h>
|
||||
#include <linux/kfence.h>
|
||||
|
||||
#include <asm/barrier.h>
|
||||
#include <asm/cputype.h>
|
||||
@ -38,6 +39,7 @@
|
||||
#include <asm/ptdump.h>
|
||||
#include <asm/tlbflush.h>
|
||||
#include <asm/pgalloc.h>
|
||||
#include <asm/kfence.h>
|
||||
|
||||
#define NO_BLOCK_MAPPINGS BIT(0)
|
||||
#define NO_CONT_MAPPINGS BIT(1)
|
||||
@ -521,12 +523,67 @@ static int __init enable_crash_mem_map(char *arg)
|
||||
}
|
||||
early_param("crashkernel", enable_crash_mem_map);
|
||||
|
||||
#ifdef CONFIG_KFENCE
|
||||
|
||||
bool __ro_after_init kfence_early_init = !!CONFIG_KFENCE_SAMPLE_INTERVAL;
|
||||
|
||||
/* early_param() will be parsed before map_mem() below. */
|
||||
static int __init parse_kfence_early_init(char *arg)
|
||||
{
|
||||
int val;
|
||||
|
||||
if (get_option(&arg, &val))
|
||||
kfence_early_init = !!val;
|
||||
return 0;
|
||||
}
|
||||
early_param("kfence.sample_interval", parse_kfence_early_init);
|
||||
|
||||
static phys_addr_t __init arm64_kfence_alloc_pool(void)
|
||||
{
|
||||
phys_addr_t kfence_pool;
|
||||
|
||||
if (!kfence_early_init)
|
||||
return 0;
|
||||
|
||||
kfence_pool = memblock_phys_alloc(KFENCE_POOL_SIZE, PAGE_SIZE);
|
||||
if (!kfence_pool) {
|
||||
pr_err("failed to allocate kfence pool\n");
|
||||
kfence_early_init = false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Temporarily mark as NOMAP. */
|
||||
memblock_mark_nomap(kfence_pool, KFENCE_POOL_SIZE);
|
||||
|
||||
return kfence_pool;
|
||||
}
|
||||
|
||||
static void __init arm64_kfence_map_pool(phys_addr_t kfence_pool, pgd_t *pgdp)
|
||||
{
|
||||
if (!kfence_pool)
|
||||
return;
|
||||
|
||||
/* KFENCE pool needs page-level mapping. */
|
||||
__map_memblock(pgdp, kfence_pool, kfence_pool + KFENCE_POOL_SIZE,
|
||||
pgprot_tagged(PAGE_KERNEL),
|
||||
NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS);
|
||||
memblock_clear_nomap(kfence_pool, KFENCE_POOL_SIZE);
|
||||
__kfence_pool = phys_to_virt(kfence_pool);
|
||||
}
|
||||
#else /* CONFIG_KFENCE */
|
||||
|
||||
static inline phys_addr_t arm64_kfence_alloc_pool(void) { return 0; }
|
||||
static inline void arm64_kfence_map_pool(phys_addr_t kfence_pool, pgd_t *pgdp) { }
|
||||
|
||||
#endif /* CONFIG_KFENCE */
|
||||
|
||||
static void __init map_mem(pgd_t *pgdp)
|
||||
{
|
||||
static const u64 direct_map_end = _PAGE_END(VA_BITS_MIN);
|
||||
phys_addr_t kernel_start = __pa_symbol(_stext);
|
||||
phys_addr_t kernel_end = __pa_symbol(__init_begin);
|
||||
phys_addr_t start, end;
|
||||
phys_addr_t early_kfence_pool;
|
||||
int flags = NO_EXEC_MAPPINGS;
|
||||
u64 i;
|
||||
|
||||
@ -539,6 +596,8 @@ static void __init map_mem(pgd_t *pgdp)
|
||||
*/
|
||||
BUILD_BUG_ON(pgd_index(direct_map_end - 1) == pgd_index(direct_map_end));
|
||||
|
||||
early_kfence_pool = arm64_kfence_alloc_pool();
|
||||
|
||||
if (can_set_direct_map())
|
||||
flags |= NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS;
|
||||
|
||||
@ -604,6 +663,8 @@ static void __init map_mem(pgd_t *pgdp)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
arm64_kfence_map_pool(early_kfence_pool, pgdp);
|
||||
}
|
||||
|
||||
void mark_rodata_ro(void)
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/set_memory.h>
|
||||
#include <asm/tlbflush.h>
|
||||
#include <asm/kfence.h>
|
||||
|
||||
struct page_change_data {
|
||||
pgprot_t set_mask;
|
||||
@ -22,12 +23,14 @@ bool rodata_full __ro_after_init = IS_ENABLED(CONFIG_RODATA_FULL_DEFAULT_ENABLED
|
||||
bool can_set_direct_map(void)
|
||||
{
|
||||
/*
|
||||
* rodata_full, DEBUG_PAGEALLOC and KFENCE require linear map to be
|
||||
* rodata_full and DEBUG_PAGEALLOC require linear map to be
|
||||
* mapped at page granularity, so that it is possible to
|
||||
* protect/unprotect single pages.
|
||||
*
|
||||
* KFENCE pool requires page-granular mapping if initialized late.
|
||||
*/
|
||||
return (rodata_enabled && rodata_full) || debug_pagealloc_enabled() ||
|
||||
IS_ENABLED(CONFIG_KFENCE);
|
||||
arm64_kfence_can_set_direct_map();
|
||||
}
|
||||
|
||||
static int change_page_range(pte_t *ptep, unsigned long addr, void *data)
|
||||
|
@ -42,6 +42,7 @@
|
||||
#define cpu_has_fpu cpu_opt(LOONGARCH_CPU_FPU)
|
||||
#define cpu_has_lsx cpu_opt(LOONGARCH_CPU_LSX)
|
||||
#define cpu_has_lasx cpu_opt(LOONGARCH_CPU_LASX)
|
||||
#define cpu_has_crc32 cpu_opt(LOONGARCH_CPU_CRC32)
|
||||
#define cpu_has_complex cpu_opt(LOONGARCH_CPU_COMPLEX)
|
||||
#define cpu_has_crypto cpu_opt(LOONGARCH_CPU_CRYPTO)
|
||||
#define cpu_has_lvz cpu_opt(LOONGARCH_CPU_LVZ)
|
||||
|
@ -78,25 +78,26 @@ enum cpu_type_enum {
|
||||
#define CPU_FEATURE_FPU 3 /* CPU has FPU */
|
||||
#define CPU_FEATURE_LSX 4 /* CPU has LSX (128-bit SIMD) */
|
||||
#define CPU_FEATURE_LASX 5 /* CPU has LASX (256-bit SIMD) */
|
||||
#define CPU_FEATURE_COMPLEX 6 /* CPU has Complex instructions */
|
||||
#define CPU_FEATURE_CRYPTO 7 /* CPU has Crypto instructions */
|
||||
#define CPU_FEATURE_LVZ 8 /* CPU has Virtualization extension */
|
||||
#define CPU_FEATURE_LBT_X86 9 /* CPU has X86 Binary Translation */
|
||||
#define CPU_FEATURE_LBT_ARM 10 /* CPU has ARM Binary Translation */
|
||||
#define CPU_FEATURE_LBT_MIPS 11 /* CPU has MIPS Binary Translation */
|
||||
#define CPU_FEATURE_TLB 12 /* CPU has TLB */
|
||||
#define CPU_FEATURE_CSR 13 /* CPU has CSR */
|
||||
#define CPU_FEATURE_WATCH 14 /* CPU has watchpoint registers */
|
||||
#define CPU_FEATURE_VINT 15 /* CPU has vectored interrupts */
|
||||
#define CPU_FEATURE_CSRIPI 16 /* CPU has CSR-IPI */
|
||||
#define CPU_FEATURE_EXTIOI 17 /* CPU has EXT-IOI */
|
||||
#define CPU_FEATURE_PREFETCH 18 /* CPU has prefetch instructions */
|
||||
#define CPU_FEATURE_PMP 19 /* CPU has perfermance counter */
|
||||
#define CPU_FEATURE_SCALEFREQ 20 /* CPU supports cpufreq scaling */
|
||||
#define CPU_FEATURE_FLATMODE 21 /* CPU has flat mode */
|
||||
#define CPU_FEATURE_EIODECODE 22 /* CPU has EXTIOI interrupt pin decode mode */
|
||||
#define CPU_FEATURE_GUESTID 23 /* CPU has GuestID feature */
|
||||
#define CPU_FEATURE_HYPERVISOR 24 /* CPU has hypervisor (running in VM) */
|
||||
#define CPU_FEATURE_CRC32 6 /* CPU has CRC32 instructions */
|
||||
#define CPU_FEATURE_COMPLEX 7 /* CPU has Complex instructions */
|
||||
#define CPU_FEATURE_CRYPTO 8 /* CPU has Crypto instructions */
|
||||
#define CPU_FEATURE_LVZ 9 /* CPU has Virtualization extension */
|
||||
#define CPU_FEATURE_LBT_X86 10 /* CPU has X86 Binary Translation */
|
||||
#define CPU_FEATURE_LBT_ARM 11 /* CPU has ARM Binary Translation */
|
||||
#define CPU_FEATURE_LBT_MIPS 12 /* CPU has MIPS Binary Translation */
|
||||
#define CPU_FEATURE_TLB 13 /* CPU has TLB */
|
||||
#define CPU_FEATURE_CSR 14 /* CPU has CSR */
|
||||
#define CPU_FEATURE_WATCH 15 /* CPU has watchpoint registers */
|
||||
#define CPU_FEATURE_VINT 16 /* CPU has vectored interrupts */
|
||||
#define CPU_FEATURE_CSRIPI 17 /* CPU has CSR-IPI */
|
||||
#define CPU_FEATURE_EXTIOI 18 /* CPU has EXT-IOI */
|
||||
#define CPU_FEATURE_PREFETCH 19 /* CPU has prefetch instructions */
|
||||
#define CPU_FEATURE_PMP 20 /* CPU has perfermance counter */
|
||||
#define CPU_FEATURE_SCALEFREQ 21 /* CPU supports cpufreq scaling */
|
||||
#define CPU_FEATURE_FLATMODE 22 /* CPU has flat mode */
|
||||
#define CPU_FEATURE_EIODECODE 23 /* CPU has EXTIOI interrupt pin decode mode */
|
||||
#define CPU_FEATURE_GUESTID 24 /* CPU has GuestID feature */
|
||||
#define CPU_FEATURE_HYPERVISOR 25 /* CPU has hypervisor (running in VM) */
|
||||
|
||||
#define LOONGARCH_CPU_CPUCFG BIT_ULL(CPU_FEATURE_CPUCFG)
|
||||
#define LOONGARCH_CPU_LAM BIT_ULL(CPU_FEATURE_LAM)
|
||||
@ -104,6 +105,7 @@ enum cpu_type_enum {
|
||||
#define LOONGARCH_CPU_FPU BIT_ULL(CPU_FEATURE_FPU)
|
||||
#define LOONGARCH_CPU_LSX BIT_ULL(CPU_FEATURE_LSX)
|
||||
#define LOONGARCH_CPU_LASX BIT_ULL(CPU_FEATURE_LASX)
|
||||
#define LOONGARCH_CPU_CRC32 BIT_ULL(CPU_FEATURE_CRC32)
|
||||
#define LOONGARCH_CPU_COMPLEX BIT_ULL(CPU_FEATURE_COMPLEX)
|
||||
#define LOONGARCH_CPU_CRYPTO BIT_ULL(CPU_FEATURE_CRYPTO)
|
||||
#define LOONGARCH_CPU_LVZ BIT_ULL(CPU_FEATURE_LVZ)
|
||||
|
@ -117,7 +117,7 @@ static inline u32 read_cpucfg(u32 reg)
|
||||
#define CPUCFG1_EP BIT(22)
|
||||
#define CPUCFG1_RPLV BIT(23)
|
||||
#define CPUCFG1_HUGEPG BIT(24)
|
||||
#define CPUCFG1_IOCSRBRD BIT(25)
|
||||
#define CPUCFG1_CRC32 BIT(25)
|
||||
#define CPUCFG1_MSGINT BIT(26)
|
||||
|
||||
#define LOONGARCH_CPUCFG2 0x2
|
||||
|
@ -60,7 +60,7 @@ static inline void set_elf_platform(int cpu, const char *plat)
|
||||
|
||||
/* MAP BASE */
|
||||
unsigned long vm_map_base;
|
||||
EXPORT_SYMBOL_GPL(vm_map_base);
|
||||
EXPORT_SYMBOL(vm_map_base);
|
||||
|
||||
static void cpu_probe_addrbits(struct cpuinfo_loongarch *c)
|
||||
{
|
||||
@ -94,13 +94,18 @@ static void cpu_probe_common(struct cpuinfo_loongarch *c)
|
||||
c->options = LOONGARCH_CPU_CPUCFG | LOONGARCH_CPU_CSR |
|
||||
LOONGARCH_CPU_TLB | LOONGARCH_CPU_VINT | LOONGARCH_CPU_WATCH;
|
||||
|
||||
elf_hwcap = HWCAP_LOONGARCH_CPUCFG | HWCAP_LOONGARCH_CRC32;
|
||||
elf_hwcap = HWCAP_LOONGARCH_CPUCFG;
|
||||
|
||||
config = read_cpucfg(LOONGARCH_CPUCFG1);
|
||||
if (config & CPUCFG1_UAL) {
|
||||
c->options |= LOONGARCH_CPU_UAL;
|
||||
elf_hwcap |= HWCAP_LOONGARCH_UAL;
|
||||
}
|
||||
if (config & CPUCFG1_CRC32) {
|
||||
c->options |= LOONGARCH_CPU_CRC32;
|
||||
elf_hwcap |= HWCAP_LOONGARCH_CRC32;
|
||||
}
|
||||
|
||||
|
||||
config = read_cpucfg(LOONGARCH_CPUCFG2);
|
||||
if (config & CPUCFG2_LAM) {
|
||||
|
@ -76,6 +76,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
|
||||
if (cpu_has_fpu) seq_printf(m, " fpu");
|
||||
if (cpu_has_lsx) seq_printf(m, " lsx");
|
||||
if (cpu_has_lasx) seq_printf(m, " lasx");
|
||||
if (cpu_has_crc32) seq_printf(m, " crc32");
|
||||
if (cpu_has_complex) seq_printf(m, " complex");
|
||||
if (cpu_has_crypto) seq_printf(m, " crypto");
|
||||
if (cpu_has_lvz) seq_printf(m, " lvz");
|
||||
|
@ -41,7 +41,7 @@
|
||||
* don't have to care about aliases on other CPUs.
|
||||
*/
|
||||
unsigned long empty_zero_page, zero_page_mask;
|
||||
EXPORT_SYMBOL_GPL(empty_zero_page);
|
||||
EXPORT_SYMBOL(empty_zero_page);
|
||||
EXPORT_SYMBOL(zero_page_mask);
|
||||
|
||||
void setup_zero_pages(void)
|
||||
@ -231,7 +231,7 @@ pud_t invalid_pud_table[PTRS_PER_PUD] __page_aligned_bss;
|
||||
#endif
|
||||
#ifndef __PAGETABLE_PMD_FOLDED
|
||||
pmd_t invalid_pmd_table[PTRS_PER_PMD] __page_aligned_bss;
|
||||
EXPORT_SYMBOL_GPL(invalid_pmd_table);
|
||||
EXPORT_SYMBOL(invalid_pmd_table);
|
||||
#endif
|
||||
pte_t invalid_pte_table[PTRS_PER_PTE] __page_aligned_bss;
|
||||
EXPORT_SYMBOL(invalid_pte_table);
|
||||
|
@ -15,6 +15,8 @@
|
||||
#define EMITS_PT_NOTE
|
||||
#endif
|
||||
|
||||
#define RUNTIME_DISCARD_EXIT
|
||||
|
||||
#include <asm-generic/vmlinux.lds.h>
|
||||
|
||||
#undef mips
|
||||
|
@ -74,9 +74,7 @@ CFLAGS_string.o += $(PURGATORY_CFLAGS)
|
||||
CFLAGS_REMOVE_ctype.o += $(PURGATORY_CFLAGS_REMOVE)
|
||||
CFLAGS_ctype.o += $(PURGATORY_CFLAGS)
|
||||
|
||||
AFLAGS_REMOVE_entry.o += -Wa,-gdwarf-2
|
||||
AFLAGS_REMOVE_memcpy.o += -Wa,-gdwarf-2
|
||||
AFLAGS_REMOVE_memset.o += -Wa,-gdwarf-2
|
||||
asflags-remove-y += $(foreach x, -g -gdwarf-4 -gdwarf-5, $(x) -Wa,$(x))
|
||||
|
||||
$(obj)/purgatory.ro: $(PURGATORY_OBJS) FORCE
|
||||
$(call if_changed,ld)
|
||||
|
@ -474,9 +474,7 @@ long arch_ptrace(struct task_struct *child, long request,
|
||||
}
|
||||
return 0;
|
||||
case PTRACE_GET_LAST_BREAK:
|
||||
put_user(child->thread.last_break,
|
||||
(unsigned long __user *) data);
|
||||
return 0;
|
||||
return put_user(child->thread.last_break, (unsigned long __user *)data);
|
||||
case PTRACE_ENABLE_TE:
|
||||
if (!MACHINE_HAS_TE)
|
||||
return -EIO;
|
||||
@ -824,9 +822,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
|
||||
}
|
||||
return 0;
|
||||
case PTRACE_GET_LAST_BREAK:
|
||||
put_user(child->thread.last_break,
|
||||
(unsigned int __user *) data);
|
||||
return 0;
|
||||
return put_user(child->thread.last_break, (unsigned int __user *)data);
|
||||
}
|
||||
return compat_ptrace_request(child, request, addr, data);
|
||||
}
|
||||
|
@ -273,11 +273,6 @@ CONFIG_BT_HCIUART=m
|
||||
CONFIG_BT_HCIUART_LL=y
|
||||
CONFIG_BT_HCIUART_BCM=y
|
||||
CONFIG_BT_HCIUART_QCA=y
|
||||
CONFIG_CFG80211=m
|
||||
CONFIG_NL80211_TESTMODE=y
|
||||
# CONFIG_CFG80211_DEFAULT_PS is not set
|
||||
# CONFIG_CFG80211_CRDA_SUPPORT is not set
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_RFKILL=m
|
||||
CONFIG_NFC=m
|
||||
CONFIG_PCI=y
|
||||
@ -364,6 +359,7 @@ CONFIG_INPUT_UINPUT=y
|
||||
CONFIG_SERIAL_8250=y
|
||||
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=32
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=0
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SERIAL_SAMSUNG=y
|
||||
@ -637,7 +633,7 @@ CONFIG_XZ_DEC=y
|
||||
CONFIG_DMA_CMA=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DYNAMIC_DEBUG_CORE=y
|
||||
CONFIG_DEBUG_INFO_DWARF5=y
|
||||
CONFIG_DEBUG_INFO_DWARF4=y
|
||||
CONFIG_DEBUG_INFO_BTF=y
|
||||
CONFIG_MODULE_ALLOW_BTF_MISMATCH=y
|
||||
CONFIG_HEADERS_INSTALL=y
|
||||
|
@ -69,8 +69,7 @@ CFLAGS_sha256.o += $(PURGATORY_CFLAGS)
|
||||
CFLAGS_REMOVE_string.o += $(PURGATORY_CFLAGS_REMOVE)
|
||||
CFLAGS_string.o += $(PURGATORY_CFLAGS)
|
||||
|
||||
AFLAGS_REMOVE_setup-x86_$(BITS).o += -Wa,-gdwarf-2
|
||||
AFLAGS_REMOVE_entry64.o += -Wa,-gdwarf-2
|
||||
asflags-remove-y += $(foreach x, -g -gdwarf-4 -gdwarf-5, $(x) -Wa,$(x))
|
||||
|
||||
$(obj)/purgatory.ro: $(PURGATORY_OBJS) FORCE
|
||||
$(call if_changed,ld)
|
||||
|
@ -98,10 +98,6 @@ void __blk_mq_tag_idle(struct blk_mq_hw_ctx *hctx)
|
||||
static int __blk_mq_get_tag(struct blk_mq_alloc_data *data,
|
||||
struct sbitmap_queue *bt)
|
||||
{
|
||||
if (!data->q->elevator && !(data->flags & BLK_MQ_REQ_RESERVED) &&
|
||||
!hctx_may_queue(data->hctx, bt))
|
||||
return BLK_MQ_NO_TAG;
|
||||
|
||||
if (data->shallow_depth)
|
||||
return sbitmap_queue_get_shallow(bt, data->shallow_depth);
|
||||
else
|
||||
|
@ -1748,9 +1748,6 @@ static bool __blk_mq_alloc_driver_tag(struct request *rq)
|
||||
if (blk_mq_tag_is_reserved(rq->mq_hctx->sched_tags, rq->internal_tag)) {
|
||||
bt = &rq->mq_hctx->tags->breserved_tags;
|
||||
tag_offset = 0;
|
||||
} else {
|
||||
if (!hctx_may_queue(rq->mq_hctx, bt))
|
||||
return false;
|
||||
}
|
||||
|
||||
tag = __sbitmap_queue_get(bt);
|
||||
|
@ -334,46 +334,6 @@ static inline void blk_mq_free_requests(struct list_head *list)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* For shared tag users, we track the number of currently active users
|
||||
* and attempt to provide a fair share of the tag depth for each of them.
|
||||
*/
|
||||
static inline bool hctx_may_queue(struct blk_mq_hw_ctx *hctx,
|
||||
struct sbitmap_queue *bt)
|
||||
{
|
||||
unsigned int depth, users;
|
||||
|
||||
if (!hctx || !(hctx->flags & BLK_MQ_F_TAG_QUEUE_SHARED))
|
||||
return true;
|
||||
|
||||
/*
|
||||
* Don't try dividing an ant
|
||||
*/
|
||||
if (bt->sb.depth == 1)
|
||||
return true;
|
||||
|
||||
if (blk_mq_is_shared_tags(hctx->flags)) {
|
||||
struct request_queue *q = hctx->queue;
|
||||
|
||||
if (!test_bit(QUEUE_FLAG_HCTX_ACTIVE, &q->queue_flags))
|
||||
return true;
|
||||
} else {
|
||||
if (!test_bit(BLK_MQ_S_TAG_ACTIVE, &hctx->state))
|
||||
return true;
|
||||
}
|
||||
|
||||
users = atomic_read(&hctx->tags->active_queues);
|
||||
|
||||
if (!users)
|
||||
return true;
|
||||
|
||||
/*
|
||||
* Allow at least some tags
|
||||
*/
|
||||
depth = max((bt->sb.depth + users - 1) / users, 4U);
|
||||
return __blk_mq_active_requests(hctx) < depth;
|
||||
}
|
||||
|
||||
/* run the code block in @dispatch_ops with rcu/srcu read lock held */
|
||||
#define __blk_mq_run_dispatch_ops(q, check_sleep, dispatch_ops) \
|
||||
do { \
|
||||
|
@ -10,4 +10,4 @@ vmlinux
|
||||
System.map
|
||||
"
|
||||
|
||||
NDK_TRIPLE=arm-linux-androideabi31
|
||||
NDK_TRIPLE=${ARM_NDK_TRIPLE}
|
||||
|
@ -1,6 +1,6 @@
|
||||
. ${ROOT_DIR}/${KERNEL_DIR}/build.config.constants
|
||||
|
||||
KMI_GENERATION=5
|
||||
KMI_GENERATION=7
|
||||
|
||||
LLVM=1
|
||||
DEPMOD=depmod
|
||||
|
@ -1,4 +1,5 @@
|
||||
BRANCH=android14-6.1
|
||||
CLANG_VERSION=r487747
|
||||
CLANG_VERSION=r487747c
|
||||
AARCH64_NDK_TRIPLE=aarch64-linux-android31
|
||||
X86_64_NDK_TRIPLE=x86_64-linux-android31
|
||||
ARM_NDK_TRIPLE=arm-linux-androideabi31
|
||||
|
@ -7,13 +7,6 @@ FRAGMENT_CONFIG=${KERNEL_DIR}/arch/arm64/configs/db845c_gki.fragment
|
||||
PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${FRAGMENT_CONFIG}"
|
||||
POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}"
|
||||
|
||||
MAKE_GOALS="
|
||||
modules
|
||||
qcom/sdm845-db845c.dtb
|
||||
qcom/qrb5165-rb5.dtb
|
||||
qcom/sm8450-qrd.dtb
|
||||
"
|
||||
|
||||
FILES="
|
||||
arch/arm64/boot/dts/qcom/sdm845-db845c.dtb
|
||||
arch/arm64/boot/dts/qcom/qrb5165-rb5.dtb
|
||||
|
@ -2,13 +2,6 @@
|
||||
. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64
|
||||
. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki
|
||||
|
||||
MAKE_GOALS="
|
||||
Image
|
||||
modules
|
||||
Image.lz4
|
||||
Image.gz
|
||||
"
|
||||
|
||||
FILES="${FILES}
|
||||
arch/arm64/boot/Image.lz4
|
||||
arch/arm64/boot/Image.gz
|
||||
|
@ -2,13 +2,6 @@
|
||||
. ${ROOT_DIR}/${KERNEL_DIR}/build.config.riscv64
|
||||
. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki
|
||||
|
||||
MAKE_GOALS="
|
||||
Image
|
||||
modules
|
||||
Image.lz4
|
||||
Image.gz
|
||||
"
|
||||
|
||||
FILES="${FILES}
|
||||
arch/riscv/boot/Image.lz4
|
||||
arch/riscv/boot/Image.gz
|
||||
|
@ -12,11 +12,6 @@ POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG
|
||||
|
||||
DTS_EXT_DIR=common-modules/virtual-device
|
||||
DTC_INCLUDE=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/boot/dts/rockchip
|
||||
MAKE_GOALS="
|
||||
Image
|
||||
modules
|
||||
rk3399-rock-pi-4b.dtb
|
||||
"
|
||||
|
||||
FILES="${FILES}
|
||||
../common-modules/virtual-device/rk3399-rock-pi-4b.dtb
|
||||
|
@ -43,6 +43,12 @@ def define_consolidate():
|
||||
"certs/signing_key.pem",
|
||||
"certs/signing_key.x509",
|
||||
],
|
||||
make_goals = [
|
||||
"Image",
|
||||
"modules",
|
||||
"Image.lz4",
|
||||
"Image.gz",
|
||||
],
|
||||
module_implicit_outs = COMMON_GKI_MODULES_LIST,
|
||||
build_config = rule_base + "_build_config",
|
||||
)
|
||||
|
@ -542,6 +542,11 @@ static void binder_inc_node_tmpref_ilocked(struct binder_node *node);
|
||||
static bool binder_has_work_ilocked(struct binder_thread *thread,
|
||||
bool do_proc_work)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
trace_android_vh_binder_has_work_ilocked(thread, do_proc_work, &ret);
|
||||
if (ret)
|
||||
return true;
|
||||
return thread->process_todo ||
|
||||
thread->looper_need_return ||
|
||||
(do_proc_work &&
|
||||
@ -807,12 +812,17 @@ static void binder_transaction_priority(struct binder_thread *thread,
|
||||
.sched_policy = node->sched_policy,
|
||||
.prio = node->min_priority,
|
||||
};
|
||||
bool skip = false;
|
||||
|
||||
if (t->set_priority_called)
|
||||
return;
|
||||
|
||||
t->set_priority_called = true;
|
||||
|
||||
trace_android_vh_binder_priority_skip(task, &skip);
|
||||
if (skip)
|
||||
return;
|
||||
|
||||
if (!node->inherit_rt && is_rt_policy(desired.sched_policy)) {
|
||||
desired.prio = NICE_TO_PRIO(0);
|
||||
desired.sched_policy = SCHED_NORMAL;
|
||||
@ -1292,6 +1302,7 @@ static struct binder_ref *binder_get_ref_for_node_olocked(
|
||||
"%d new ref %d desc %d for node %d\n",
|
||||
proc->pid, new_ref->data.debug_id, new_ref->data.desc,
|
||||
node->debug_id);
|
||||
trace_android_vh_binder_new_ref(proc->tsk, new_ref->data.desc, new_ref->node->debug_id);
|
||||
binder_node_unlock(node);
|
||||
return new_ref;
|
||||
}
|
||||
@ -1459,6 +1470,8 @@ static struct binder_node *binder_get_node_from_ref(
|
||||
*/
|
||||
static void binder_free_ref(struct binder_ref *ref)
|
||||
{
|
||||
trace_android_vh_binder_del_ref(ref->proc ? ref->proc->tsk : NULL,
|
||||
ref->data.desc);
|
||||
if (ref->node)
|
||||
binder_free_node(ref->node);
|
||||
kfree(ref->death);
|
||||
@ -2112,24 +2125,23 @@ static void binder_deferred_fd_close(int fd)
|
||||
static void binder_transaction_buffer_release(struct binder_proc *proc,
|
||||
struct binder_thread *thread,
|
||||
struct binder_buffer *buffer,
|
||||
binder_size_t failed_at,
|
||||
binder_size_t off_end_offset,
|
||||
bool is_failure)
|
||||
{
|
||||
int debug_id = buffer->debug_id;
|
||||
binder_size_t off_start_offset, buffer_offset, off_end_offset;
|
||||
binder_size_t off_start_offset, buffer_offset;
|
||||
|
||||
binder_debug(BINDER_DEBUG_TRANSACTION,
|
||||
"%d buffer release %d, size %zd-%zd, failed at %llx\n",
|
||||
proc->pid, buffer->debug_id,
|
||||
buffer->data_size, buffer->offsets_size,
|
||||
(unsigned long long)failed_at);
|
||||
(unsigned long long)off_end_offset);
|
||||
|
||||
if (buffer->target_node)
|
||||
binder_dec_node(buffer->target_node, 1, 0);
|
||||
|
||||
off_start_offset = ALIGN(buffer->data_size, sizeof(void *));
|
||||
off_end_offset = is_failure && failed_at ? failed_at :
|
||||
off_start_offset + buffer->offsets_size;
|
||||
|
||||
for (buffer_offset = off_start_offset; buffer_offset < off_end_offset;
|
||||
buffer_offset += sizeof(binder_size_t)) {
|
||||
struct binder_object_header *hdr;
|
||||
@ -2289,6 +2301,21 @@ static void binder_transaction_buffer_release(struct binder_proc *proc,
|
||||
}
|
||||
}
|
||||
|
||||
/* Clean up all the objects in the buffer */
|
||||
static inline void binder_release_entire_buffer(struct binder_proc *proc,
|
||||
struct binder_thread *thread,
|
||||
struct binder_buffer *buffer,
|
||||
bool is_failure)
|
||||
{
|
||||
binder_size_t off_end_offset;
|
||||
|
||||
off_end_offset = ALIGN(buffer->data_size, sizeof(void *));
|
||||
off_end_offset += buffer->offsets_size;
|
||||
|
||||
binder_transaction_buffer_release(proc, thread, buffer,
|
||||
off_end_offset, is_failure);
|
||||
}
|
||||
|
||||
static int binder_translate_binder(struct flat_binder_object *fp,
|
||||
struct binder_transaction *t,
|
||||
struct binder_thread *thread)
|
||||
@ -2916,6 +2943,7 @@ static int binder_proc_transaction(struct binder_transaction *t,
|
||||
bool oneway = !!(t->flags & TF_ONE_WAY);
|
||||
bool pending_async = false;
|
||||
struct binder_transaction *t_outdated = NULL;
|
||||
bool skip = false;
|
||||
|
||||
BUG_ON(!node);
|
||||
binder_node_lock(node);
|
||||
@ -2941,9 +2969,16 @@ static int binder_proc_transaction(struct binder_transaction *t,
|
||||
return proc->is_frozen ? BR_FROZEN_REPLY : BR_DEAD_REPLY;
|
||||
}
|
||||
|
||||
if (!thread && !pending_async)
|
||||
trace_android_vh_binder_proc_transaction_entry(proc, t,
|
||||
&thread, node->debug_id, pending_async, !oneway, &skip);
|
||||
|
||||
if (!thread && !pending_async && !skip)
|
||||
thread = binder_select_thread_ilocked(proc);
|
||||
|
||||
trace_android_vh_binder_proc_transaction(current, proc->tsk,
|
||||
thread ? thread->task : NULL, node->debug_id, t->code,
|
||||
pending_async);
|
||||
|
||||
if (thread) {
|
||||
binder_transaction_priority(thread, t, node);
|
||||
binder_enqueue_thread_work_ilocked(thread, &t->work);
|
||||
@ -2964,6 +2999,8 @@ static int binder_proc_transaction(struct binder_transaction *t,
|
||||
binder_enqueue_work_ilocked(&t->work, &node->async_todo);
|
||||
}
|
||||
|
||||
trace_android_vh_binder_proc_transaction_finish(proc, t,
|
||||
thread ? thread->task : NULL, pending_async, !oneway);
|
||||
if (!pending_async)
|
||||
binder_wakeup_thread_ilocked(proc, thread, !oneway /* sync */);
|
||||
|
||||
@ -2981,7 +3018,7 @@ static int binder_proc_transaction(struct binder_transaction *t,
|
||||
t_outdated->buffer = NULL;
|
||||
buffer->transaction = NULL;
|
||||
trace_binder_transaction_update_buffer_release(buffer);
|
||||
binder_transaction_buffer_release(proc, NULL, buffer, 0, 0);
|
||||
binder_release_entire_buffer(proc, NULL, buffer, false);
|
||||
binder_alloc_free_buf(&proc->alloc, buffer);
|
||||
kfree(t_outdated);
|
||||
binder_stats_deleted(BINDER_STAT_TRANSACTION);
|
||||
@ -3157,6 +3194,7 @@ static void binder_transaction(struct binder_proc *proc,
|
||||
target_proc = target_thread->proc;
|
||||
target_proc->tmp_ref++;
|
||||
binder_inner_proc_unlock(target_thread->proc);
|
||||
trace_android_vh_binder_reply(target_proc, proc, thread, tr);
|
||||
} else {
|
||||
if (tr->target.handle) {
|
||||
struct binder_ref *ref;
|
||||
@ -3219,6 +3257,7 @@ static void binder_transaction(struct binder_proc *proc,
|
||||
return_error_line = __LINE__;
|
||||
goto err_invalid_target_handle;
|
||||
}
|
||||
trace_android_vh_binder_trans(target_proc, proc, thread, tr);
|
||||
if (security_binder_transaction(proc->cred,
|
||||
target_proc->cred) < 0) {
|
||||
binder_txn_error("%d:%d transaction credentials failed\n",
|
||||
@ -3960,7 +3999,7 @@ binder_free_buf(struct binder_proc *proc,
|
||||
binder_node_inner_unlock(buf_node);
|
||||
}
|
||||
trace_binder_transaction_buffer_release(buffer);
|
||||
binder_transaction_buffer_release(proc, thread, buffer, 0, is_failure);
|
||||
binder_release_entire_buffer(proc, thread, buffer, is_failure);
|
||||
binder_alloc_free_buf(&proc->alloc, buffer);
|
||||
}
|
||||
|
||||
@ -4208,6 +4247,7 @@ static int binder_thread_write(struct binder_proc *proc,
|
||||
}
|
||||
thread->looper |= BINDER_LOOPER_STATE_REGISTERED;
|
||||
binder_inner_proc_unlock(proc);
|
||||
trace_android_vh_binder_looper_state_registered(thread, proc);
|
||||
break;
|
||||
case BC_ENTER_LOOPER:
|
||||
binder_debug(BINDER_DEBUG_THREADS,
|
||||
@ -4601,6 +4641,10 @@ static int binder_thread_read(struct binder_proc *proc,
|
||||
size_t trsize = sizeof(*trd);
|
||||
|
||||
binder_inner_proc_lock(proc);
|
||||
trace_android_vh_binder_select_worklist_ilocked(&list, thread,
|
||||
proc, wait_for_proc_work);
|
||||
if (list)
|
||||
goto skip;
|
||||
if (!binder_worklist_empty_ilocked(&thread->todo))
|
||||
list = &thread->todo;
|
||||
else if (!binder_worklist_empty_ilocked(&proc->todo) &&
|
||||
@ -4614,11 +4658,12 @@ static int binder_thread_read(struct binder_proc *proc,
|
||||
goto retry;
|
||||
break;
|
||||
}
|
||||
|
||||
skip:
|
||||
if (end - ptr < sizeof(tr) + 4) {
|
||||
binder_inner_proc_unlock(proc);
|
||||
break;
|
||||
}
|
||||
trace_android_vh_binder_thread_read(&list, proc, thread);
|
||||
w = binder_dequeue_work_head_ilocked(list);
|
||||
if (binder_worklist_empty_ilocked(&thread->todo))
|
||||
thread->process_todo = false;
|
||||
@ -5082,6 +5127,7 @@ static void binder_free_proc(struct binder_proc *proc)
|
||||
put_task_struct(proc->tsk);
|
||||
put_cred(proc->cred);
|
||||
binder_stats_deleted(BINDER_STAT_PROC);
|
||||
trace_android_vh_binder_free_proc(proc);
|
||||
kfree(proc);
|
||||
}
|
||||
|
||||
@ -5180,6 +5226,7 @@ static int binder_thread_release(struct binder_proc *proc,
|
||||
if (send_reply)
|
||||
binder_send_failed_reply(send_reply, BR_DEAD_REPLY);
|
||||
binder_release_work(proc, &thread->todo);
|
||||
trace_android_vh_binder_thread_release(proc, thread);
|
||||
binder_thread_dec_tmpref(thread);
|
||||
return active_transactions;
|
||||
}
|
||||
@ -5256,6 +5303,7 @@ static int binder_ioctl_write_read(struct file *filp,
|
||||
if (!binder_worklist_empty_ilocked(&proc->todo))
|
||||
binder_wakeup_proc_ilocked(proc);
|
||||
binder_inner_proc_unlock(proc);
|
||||
trace_android_vh_binder_read_done(proc, thread);
|
||||
if (ret < 0) {
|
||||
if (copy_to_user(ubuf, &bwr, sizeof(bwr)))
|
||||
ret = -EFAULT;
|
||||
@ -5841,7 +5889,7 @@ static int binder_open(struct inode *nodp, struct file *filp)
|
||||
}
|
||||
hlist_add_head(&proc->proc_node, &binder_procs);
|
||||
mutex_unlock(&binder_procs_lock);
|
||||
|
||||
trace_android_vh_binder_preset(&binder_procs, &binder_procs_lock);
|
||||
if (binder_debugfs_dir_entry_proc && !existing_pid) {
|
||||
char strbuf[11];
|
||||
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include <linux/sizes.h>
|
||||
#include "binder_alloc.h"
|
||||
#include "binder_trace.h"
|
||||
#include <trace/hooks/binder.h>
|
||||
|
||||
struct list_lru binder_alloc_lru;
|
||||
|
||||
@ -406,6 +407,7 @@ static struct binder_buffer *binder_alloc_new_buf_locked(
|
||||
alloc->pid, extra_buffers_size);
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
trace_android_vh_binder_alloc_new_buf_locked(size, &alloc->free_async_space, is_async);
|
||||
if (is_async &&
|
||||
alloc->free_async_space < size + sizeof(struct binder_buffer)) {
|
||||
binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC,
|
||||
|
@ -8,6 +8,8 @@
|
||||
|
||||
#include <linux/iova.h>
|
||||
#include <linux/dma-buf.h>
|
||||
#include <linux/futex.h>
|
||||
#include <linux/pm_qos.h>
|
||||
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include <trace/hooks/vendor_hooks.h>
|
||||
@ -27,6 +29,7 @@
|
||||
#include <trace/hooks/preemptirq.h>
|
||||
#include <trace/hooks/ftrace_dump.h>
|
||||
#include <trace/hooks/ufshcd.h>
|
||||
#include <trace/hooks/mmc.h>
|
||||
#include <trace/hooks/cgroup.h>
|
||||
#include <trace/hooks/sys.h>
|
||||
#include <trace/hooks/iommu.h>
|
||||
@ -58,25 +61,43 @@
|
||||
#include <trace/hooks/thermal.h>
|
||||
#include <trace/hooks/audio_usboffload.h>
|
||||
#include <trace/hooks/typec.h>
|
||||
#include <trace/hooks/user.h>
|
||||
#include <trace/hooks/signal.h>
|
||||
#include <trace/hooks/psci.h>
|
||||
#include <trace/hooks/psi.h>
|
||||
|
||||
/*
|
||||
* Export tracepoints that act as a bare tracehook (ie: have no trace event
|
||||
* associated with them) to allow external modules to probe them.
|
||||
*/
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sk_alloc);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sk_free);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_nf_conn_alloc);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_nf_conn_free);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_refrigerator);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_arch_set_freq_scale);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_is_fpsimd_save);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_transaction_init);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_priority_skip);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_set_priority);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_restore_priority);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wakeup_ilocked);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_send_sig_info);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_start);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_finish);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_init);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_start);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_finish);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_opt_spin_start);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_opt_spin_finish);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_can_spin_on_owner);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_wait_start);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_wait_finish);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_wait_start);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_wait_finish);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_opt_spin_start);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_opt_spin_finish);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_can_spin_on_owner);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_show_task);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_enter);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_exit);
|
||||
@ -114,6 +135,8 @@ 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_ufs_use_mcq_hooks);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_abort);
|
||||
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);
|
||||
@ -126,9 +149,18 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_allow_domain_state);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpuidle_psci_enter);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpuidle_psci_exit);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wait_for_work);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_finish);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_entry);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_select_worklist_ilocked);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sync_txn_recvd);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpufreq_transition);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_qos_add_request);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_qos_update_request);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_qos_remove_request);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_balance_anon_file_reclaim);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_show_max_freq);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dm_bufio_shrink_scan_bypass);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cleanup_old_buffers_bypass);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_insert);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_node_delete);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_node_replace);
|
||||
@ -137,6 +169,10 @@ 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_vh_record_mutex_lock_starttime);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_rtmutex_lock_starttime);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_rwsem_lock_starttime);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_pcpu_rwsem_starttime);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_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);
|
||||
@ -154,6 +190,13 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_finished);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_rwsem_list_add);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_futex_plist_add);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_sleep_start);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_futex);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_wait_start);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_wait_end);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_wake_traverse_plist);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_wake_this);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_wake_up_q_finish);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sha256);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_aes_expandkey);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_aes_encrypt);
|
||||
@ -164,6 +207,12 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gic_set_affinity);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gic_v3_affinity_init);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_uninterrupt_tasks);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_uninterrupt_tasks_done);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_meminfo_proc_show);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_mm);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_slowpath);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_mem);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_print_slabinfo_header);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cache_show);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_report_bug);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_watchdog_timer_softlockup);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_freeze_todo);
|
||||
@ -189,3 +238,43 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_typec_tcpm_modify_src_caps);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_typec_tcpm_log);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_gfp_zone_flags);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_readahead_gfp_mask);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_mutex_list_add);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_unlock_slowpath);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake_finish);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_looper_state_registered);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_thread_read);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_free_proc);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_thread_release);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_has_work_ilocked);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_read_done);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_preset);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_uid);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_user);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpuset_fork);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_alloc_new_buf_locked);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_reply);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_trans);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmap_region);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_unmap_one);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_slab_bypass);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_shrink_slab);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_get_page_wmark);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_add_new_anon_rmap);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_psci_tos_resident_on);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_psci_cpu_suspend);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_event);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_group);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpufreq_acct_update_power);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_mmc_resume);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_mmc_suspend);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_signal);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_node_memcgs);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_modify_thermal_request_freq);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_modify_thermal_target_freq);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_new_ref);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_del_ref);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_register);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_unregister);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_get_thermal_zone_device);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_power_cap);
|
||||
|
@ -1242,8 +1242,8 @@ static int __device_suspend_noirq(struct device *dev, pm_message_t state, bool a
|
||||
error = dpm_run_callback(callback, dev, state, info);
|
||||
if (error) {
|
||||
async_error = error;
|
||||
log_suspend_abort_reason("Callback failed on %s in %pS returned %d",
|
||||
dev_name(dev), callback, error);
|
||||
log_suspend_abort_reason("Device %s failed to %s noirq: error %d",
|
||||
dev_name(dev), pm_verb(state.event), error);
|
||||
goto Complete;
|
||||
}
|
||||
|
||||
@ -1438,8 +1438,8 @@ static int __device_suspend_late(struct device *dev, pm_message_t state, bool as
|
||||
error = dpm_run_callback(callback, dev, state, info);
|
||||
if (error) {
|
||||
async_error = error;
|
||||
log_suspend_abort_reason("Callback failed on %s in %pS returned %d",
|
||||
dev_name(dev), callback, error);
|
||||
log_suspend_abort_reason("Device %s failed to %s late: error %d",
|
||||
dev_name(dev), pm_verb(state.event), error);
|
||||
goto Complete;
|
||||
}
|
||||
dpm_propagate_wakeup_to_parent(dev);
|
||||
@ -1717,8 +1717,8 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
|
||||
dpm_propagate_wakeup_to_parent(dev);
|
||||
dpm_clear_superiors_direct_complete(dev);
|
||||
} else {
|
||||
log_suspend_abort_reason("Callback failed on %s in %pS returned %d",
|
||||
dev_name(dev), callback, error);
|
||||
log_suspend_abort_reason("Device %s failed to %s: error %d",
|
||||
dev_name(dev), pm_verb(state.event), error);
|
||||
}
|
||||
|
||||
device_unlock(dev);
|
||||
|
@ -472,7 +472,7 @@ config SYS_SUPPORTS_SH_CMT
|
||||
bool
|
||||
|
||||
config MTK_TIMER
|
||||
bool "Mediatek timer driver" if COMPILE_TEST
|
||||
tristate "MediaTek timer driver"
|
||||
depends on HAS_IOMEM
|
||||
select TIMER_OF
|
||||
select CLKSRC_MMIO
|
||||
|
@ -21,6 +21,7 @@ u64 clocksource_mmio_readl_up(struct clocksource *c)
|
||||
{
|
||||
return (u64)readl_relaxed(to_mmio_clksrc(c)->reg);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(clocksource_mmio_readl_up);
|
||||
|
||||
u64 clocksource_mmio_readl_down(struct clocksource *c)
|
||||
{
|
||||
@ -46,9 +47,9 @@ u64 clocksource_mmio_readw_down(struct clocksource *c)
|
||||
* @bits: Number of valid bits
|
||||
* @read: One of clocksource_mmio_read*() above
|
||||
*/
|
||||
int __init clocksource_mmio_init(void __iomem *base, const char *name,
|
||||
unsigned long hz, int rating, unsigned bits,
|
||||
u64 (*read)(struct clocksource *))
|
||||
int clocksource_mmio_init(void __iomem *base, const char *name,
|
||||
unsigned long hz, int rating, unsigned bits,
|
||||
u64 (*read)(struct clocksource *))
|
||||
{
|
||||
struct clocksource_mmio *cs;
|
||||
|
||||
@ -68,3 +69,4 @@ int __init clocksource_mmio_init(void __iomem *base, const char *name,
|
||||
|
||||
return clocksource_register_hz(&cs->clksrc, hz);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(clocksource_mmio_init);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user