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:
jianzhou 2023-06-05 23:03:49 -07:00
commit e555c11e74
376 changed files with 27863 additions and 56646 deletions

View File

@ -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",

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
dd29657536f36a7e86ffcf1593fefc1d0f800320
6da02f91017480cf77c492c9de0fa145e4f13728

View File

@ -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

View File

@ -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

View File

@ -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

View 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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View 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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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>;

View File

@ -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"

View File

@ -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

View File

@ -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";

View File

@ -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 {

View File

@ -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>;

View File

@ -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";

View File

@ -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>;

View File

@ -59,11 +59,11 @@ &pcie1 {
perst-gpios = <&tlmm 58 0x1>;
};
&pcie_phy0 {
&pcie_qmp0 {
status = "okay";
};
&pcie_phy1 {
&pcie_qmp1 {
status = "okay";
};

View File

@ -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>;

View File

@ -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";

View File

@ -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";

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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 */

View File

@ -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;

View File

@ -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 */

View File

@ -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;
};

View File

@ -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);

View File

@ -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
}

View File

@ -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 */

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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;

View 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();
}

View File

@ -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

View File

@ -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)
{

View File

@ -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) {

View File

@ -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

View File

@ -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 = .;

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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,

View File

@ -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;
}

View File

@ -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;

View File

@ -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);

View File

@ -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 */

View File

@ -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);
}

View File

@ -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 */

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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) {

View File

@ -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");

View File

@ -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);

View File

@ -15,6 +15,8 @@
#define EMITS_PT_NOTE
#endif
#define RUNTIME_DISCARD_EXIT
#include <asm-generic/vmlinux.lds.h>
#undef mips

View File

@ -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)

View File

@ -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);
}

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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);

View File

@ -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 { \

View File

@ -10,4 +10,4 @@ vmlinux
System.map
"
NDK_TRIPLE=arm-linux-androideabi31
NDK_TRIPLE=${ARM_NDK_TRIPLE}

View File

@ -1,6 +1,6 @@
. ${ROOT_DIR}/${KERNEL_DIR}/build.config.constants
KMI_GENERATION=5
KMI_GENERATION=7
LLVM=1
DEPMOD=depmod

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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",
)

View File

@ -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];

View File

@ -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,

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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