Merge branch 'android13-5.15' into android13-5.15-lts
Sync up with android13-5.15 for the following commits:a60104c6ccMerge tag 'android13-5.15.78_r00' into android13-5.150c8a58469bUPSTREAM: usb: gadget: uvc: Prevent buffer overflow in setup handler85b6370411UPSTREAM: usb: gadget: uvc: also use try_format in set_format0a1c1e4f64UPSTREAM: usb: gadget: uvc: default the ctrl request interface offsetsfce2002702UPSTREAM: usb: gadget: uvc: don't put item still in use38ce45512fUPSTREAM: usb: gadget: uvc: Fix argument to sizeof() in uvc_register_video()eae0c310a5UPSTREAM: usb: gadget: uvc: add v4l2 try_format api call5f385970beUPSTREAM: usb: gadget: uvc: add v4l2 enumeration api calls4aa53ed66bBACKPORT: media: uvcvideo: move uvc_format_desc to common headerfc7969e41eBACKPORT: media: v4l: move helper functions for fractions from uvc to v4l2-common0f48a44f70UPSTREAM: usb: gadget: uvc: increase worker prio to WQ_HIGHPRI8792df01c4UPSTREAM: usb: move from strlcpy with unused retval to strscpy1b2bc88b59UPSTREAM: usb: gadget: uvc: Fix comment blocks style8bc4e80471UPSTREAM: usb: gadget: uvc: track frames in format entries28431ab172ANDROID: clocksource/arm_arch_timer: Add workaround for erratum 8589216b4d1d8995UPSTREAM: usb: gadget: f_fs: Ensure ep0req is dequeued before free_request001fc069daUPSTREAM: usb: gadget: f_fs: Prevent race during ffs_ep0_queue_waitc190539f4eUPSTREAM: usb: gadget: uvc: move structs to common headere5fe1a95c3UPSTREAM: usb: gadget: uvc: prevent index variables to start from 0413bfd5f1bUPSTREAM: usb: gadget: uvc: implement dwPresentationTime and scrSourceClockbaa5c6d923UPSTREAM: usb: gadget: uvc: ensure the vdev is unset82beac34d8BACKPORT: UPSTREAM: usb: dwc3: EP clear halt leading to clearing of delayed_status016d61094bANDROID: mm/oom_kill: fix task_struct refcount_t: underflow; use-after-free.2f40ae382fANDROID: ABI: Update allowed list for QCOMc7562e628cANDROID: GKI: update allowed list for exynosauto SoC8945ccdb22ANDROID: GKI: update xiaomi symbol list8501db9cdaANDROID: loop: Add vendor hook to update cmdb73474baccANDROID: GKI: Update abi_gki_aarch64_qcom0f1629ced8ANDROID: direct_io: Add a vendor hook to update OEM-specific field of struct bio647d9c21bcANDROID: GKI: update xiaomi symbol list5e05d41272ANDROID: GKI: Update abi_gki_aarch64_qcom symbols.4fa690983dANDROID: GKI: Update abi_gki_aarch64_qcom5d96c24be9ANDROID: uid_sys_stats: defer process_notifier work if uid_lock is contended75aa4c087eFROMGIT: bpf: btf: limit logging of ignored BTF mismatchesf162762e3aUPSTREAM: skbuff: Account for tail adjustment during pull operations25f2c8b4c7ANDROID: Update the ABI symbol list and xmld0822a3f9bANDROID: mm: Export find_vm_area37d8fe8dc3ANDROID: GKI: update xiaomi symbol listb3084d784bANDROID: vendor_hooks:vendor hook for control memory dirty rate6d9e986186FROMGIT: mm/cma.c: delete kmemleak objects when freeing CMA areas to buddy at boote51492910cBACKPORT: FROMGIT: mm/cma.c: make kmemleak aware of all CMA regionsbac2fa84f7UPSTREAM: mm: kmemleak: alloc gray object for reserved region with direct mapb1b50c61ebUPSTREAM: usb: dwc3: gadget: Don't delay End Transfer on delayed_statusf77134986aUPSTREAM: usb: dwc3: gadget: Do not clear ep delayed stop flag during ep disable70947d4104UPSTREAM: usb: dwc3: gadget: Skip waiting for CMDACT cleared during endxfer6cac29527dUPSTREAM: usb: dwc3: Increase DWC3 controller halt timeoutc24377e58aANDROID: mm: fix vma refcounting for SPF in vm_area_dup1b8d144a47UPSTREAM: usb: dwc3: Remove DWC3 locking during gadget suspend/resume25e07b302bUPSTREAM: usb: dwc3: Avoid unmapping USB requests if endxfer is not completeadcf982b9aUPSTREAM: usb: dwc3: gadget: Continue handling EP0 xfercomplete events5dedf5e350UPSTREAM: usb: dwc3: gadget: Synchronize IRQ between soft connect/disconnect4483376b15UPSTREAM: usb: dwc3: gadget: Force sending delayed status during soft disconnectfec000d477UPSTREAM: usb: dwc3: Do not service EP0 and conndone events if soft disconnectedc2a767880dUPSTREAM: usb: dwc3: gadget: conditionally remove requestsad7838324aUPSTREAM: usb: dwc3: ep0: Properly handle setup_packet_pending scenario in data stagef0c8e8fb26UPSTREAM: usb: dwc3: gadget: Fix IN endpoint max packet size allocation7dcee70181UPSTREAM: usb: dwc3: gadget: Delay issuing End Transfer7ec08af1ccUPSTREAM: usb: dwc3: gadget: Only End Transfer for ep0 data phase1fd897b8fdUPSTREAM: usb: dwc3: ep0: Don't prepare beyond Setup stageaa96dec5f3UPSTREAM: usb: dwc3: gadget: move cmd_endtransfer to extra functionfd0d0cdd6dUPSTREAM: usb: dwc3: gadget: ep_queue simplify isoc start condition8dd53dc29aUPSTREAM: usb: dwc3: gadget: Skip reading GEVNTSIZnf99c14b160UPSTREAM: usb: dwc3: gadget: Ignore Update Transfer cmd params3c022868a2UPSTREAM: usb: dwc3: gadget: Skip checking Update Transfer status4baf5030d0ANDROID: fips140: add crypto_memneq() back to the module55dd45162bANDROID: kbuild: Search external devicetree path when running clean targeta2593b3a74ANDROID: Re-enable fast mremap and fix UAF with SPF28e537ca36Revert "ANDROID: Make SPF aware of fast mremaps"11662bc7d0ANDROID: fips140: add dump_jitterentropy command to fips140_lab_util8e10ceb0f1ANDROID: GKI: Update allowed list for QCOM74ccad59c9Revert "ANDROID: ABI: Update symbols to unisoc whitelist"ab2dfaed45ANDROID: page_pinner: prevent pp_buffer uninitialized access0ef8ae8d3aANDROID: cpufreq: add macro guard to protect vendor hook7a3d34495cANDROID: remove unnecessary SPECULATIVE_PAGE_FAULT config dependencyf5ade1a7adANDROID: usb: gadget: f_accessory: update SS/SSP descriptorsc265df840aANDROID: Update the ABI symbol list and xmled6f0796ddANDROID: sched/pelt: export ___update_load_[sum|avg]85aa38928cANDROID: GKI: add symbol list file for honor6525e159bbANDROID: Update the GKI symbol list and ABI XML9d0ccb89bcANDROID: irqchip/irq-gic-v3: Add vendor hook for gic suspendb3c4378d24ANDROID: ABI: Update symbols to unisoc whitelistaf027c97fcANDROID: Make SPF aware of fast mremaps8d58de2c76ANDROID: abi_gki_aarch64_qcom: Add secure hibernation APIs57c0c76264ANDROID: GKI: Update symbol list for mtkcb0ff59972ANDROID: cpufreq: add vendor hook in cpufreq_offlineb5b2dbf1a2UPSTREAM: locks: fix TOCTOU race when granting write lease22b130dfadANDROID: Update symbol list for sunxi69fefbb3dbANDROID: GKI: Source GKI_BUILD_CONFIG_FRAGMENT after setting all variablese80bb46694ANDROID: Revert "ANDROID: allmodconfig: disable WERROR"6bbccfc63eUPSTREAM: drm/amdgpu: temporarily disable broken Clang builds due to blown stack-frame0667e5dfa3BACKPORT: Kconfig.debug: provide a little extra FRAME_WARN leeway when KASAN is enabled9c8074484fUPSTREAM: crypto: algboss - compile out test-related code when tests disabled02ffa3bd9dUPSTREAM: crypto: api - compile out crypto_boot_test_finished when tests disabled7bf98ba526UPSTREAM: crypto: algboss - optimize registration of internal algorithms46b75c8648BACKPORT: crypto: api - optimize algorithm registration when self-tests disabled9662706fb0UPSTREAM: crypto: api - Fix boot-up crash when crypto manager is disabled3f5a00a5efUPSTREAM: crypto: api - Do not create test larvals if manager is disabledda83ad2055UPSTREAM: crypto: api - Export crypto_boot_test_finishede07f20669cUPSTREAM: crypto: api - Fix built-in testing dependency failuresf72cb1622fANDROID: GKI: Add a general aarch64 symbol listac16892391ANDROID: GKI: db845c: remove led-multicolor override39b026b051ANDROID: GKI: enable mulitcolor-ledcf8edf1928UPSTREAM: HID: playstation: support updated DualSense rumble mode.a7bb941a00UPSTREAM: HID: playstation: add initial DualSense Edge controller support72fd652689UPSTREAM: HID: playstation: stop DualSense output work on remove.2096eced42UPSTREAM: HID: playstation: convert to use dev_groups4281e23610UPSTREAM: HID: playstation: fix return from dualsense_player_led_set_brightness()1c2aceb8d7UPSTREAM: HID: playstation: expose DualSense player LEDs through LED class.8abc9ed234UPSTREAM: leds: add new LED_FUNCTION_PLAYER for player LEDs for game controllers.392b327fe0UPSTREAM: HID: playstation: expose DualSense lightbar through a multi-color LED.f0ecfd1af7ANDROID: GKI: Add Tuxera symbol listac26e9c7b8ANDROID: cma: allow to use CMA in swap-in path60a61c1a04ANDROID: GKI: update xiaomi symbol listcac282fc1aANDROID: dm: Add a vendor hook to update bio after clonebe6c9a9b11ANDROID: GKI: Update symbol list4ff88497a3ANDROID: GKI: export symbols to modify lru statsf8c2625ba0ANDROID: GKI: Update exynos_wear symbol list3cc69a0a0aANDROID: vendor hooks: Encrypt snapshot for bootloader based hibernation72ec9e1cd2ANDROID: vendor hooks: Export symbols for bootloader based hibernation37a7d66607ANDROID: abi_gki_aarch64_qcom: Update symbol list474a540f29ANDROID: irq: put irq_resolve_mapping under protection of __irq_enter_rawaea6e535a2BACKPORT: UPSTREAM: usb: typec: ucsi: Wait for the USB role switches680c12419cUPSTREAM: rpmsg: char: Avoid double destroy of default endpoint1a1ee4bb87BACKPORT: exfat: fix overflow for large capacity partition737bf2358fUPSTREAM: usb: gadget: uvc: fix changing interface name via configfs1b90823b62UPSTREAM: dma-mapping: Fix build error unused-value6fcc6343c3UPSTREAM: bpf: Ensure correct locking around vulnerable function find_vpid()5df791308bANDROID: abi_gki_aarch64_qcom: whitelist symbols added for cma retries6f0ba6ad99ANDROID: mm/cma: add vendor_hook in cma_alloc for retries8022d8faf6ANDROID: arm64: mm: perform clean & invalidation in __dma_map_area28f65c4aa3FROMLIST: sched: Fix use-after-free bug in dup_user_cpus_ptr()6be735d61eUPSTREAM: HID: roccat: Fix use-after-free in roccat_read()8e0c2cedbcUPSTREAM: mm/damon: use set_huge_pte_at() to make huge pte old1d0c369729UPSTREAM: usb: gadget: f_mass_storage: Make CD-ROM emulation works with Windows OSbcf5cce758UPSTREAM: gen_compile_commands: handle multiple lines per .mod file96ce46922dUPSTREAM: scripts/nsdeps: adjust to the format change of *.mod files19be6b818aBACKPORT: kbuild: avoid regex RS for POSIX awk61f4b98fe0UPSTREAM: KVM: arm64: Always start with clearing SVE flag on loada11aae86d8UPSTREAM: powerpc/64: Include cache.h directly in paca.ha3eb9c5744UPSTREAM: KVM: arm64: vgic-v3: Consistently populate ID_AA64PFR0_EL1.GICbf995d5fbfUPSTREAM: module.h: simplify MODULE_IMPORT_NS4009f67147UPSTREAM: mac80211_hwsim: fix RCU protected chanctx accesse295ae9c84UPSTREAM: KVM: arm64: nvhe: Eliminate kernel-doc warningsb1cad5be29BACKPORT: KVM: arm64: Actually prevent SMC64 SYSTEM_RESET2 from AArch3246d726e380UPSTREAM: KVM: arm64: Generally disallow SMC64 for AArch32 guests35c5fa9834UPSTREAM: virtio: use virtio_device_ready() in virtio_device_restore()aa7f73725fUPSTREAM: mm: fix use-after-free bug when mm->mmap is reused after being freedbc920538bbUPSTREAM: kasan: test: prevent cache merging in kmem_cache_double_destroy435eac40deUPSTREAM: arm64: Ensure that the 'bti' macro is defined where linkage.h is included03a56596efUPSTREAM: mmc: mediatek: free the ext_csd when mmc_get_ext_csd successac6122b362UPSTREAM: scsi: ufs: Fix double space in SCSI_UFS_HWMON descriptiona094f7c2d4UPSTREAM: scsi: ufs: mediatek: Avoid sched_clock() misuse9fe6ac18f7UPSTREAM: scsi: ufs: core: SCSI_UFS_HWMON depends on HWMON=yce550b4d77ANDROID: GKI: db845c: Update symbols list and ABIf9bfdf7a59BACKPORT: f2fs: invalidate meta pages only for post_read required inode9b96bd8907ANDROID: GKI: Update symbols to symbol list65d4d9d5daANDROID: cpu/hotplug: call perf event through function pointer5feed5b144Merge tag 'android13-5.15.74_r00' into android13-5.1535c0e672b8ANDROID: abi_gki_aarch64_qcom: Update symbol listf5cbc8d09cUPSTREAM: usb: dwc3: gadget: Submit endxfer command if delayed during disconnect150b3c4e4bBACKPORT: ANDROID: dma-buf: heaps: replace mutex lock with spinlock1e8b8c6263ANDROID: Update symbol list for mtkfa068ecbc8ANDROID: Fix license for BUILD.bazel file.d47ef1a984UPSTREAM: gcov: clang: fix the buffer overflow issue4951a62804ANDROID: kleaf: load() then package().d2cfc10a38UPSTREAM: perf/arm-cmn: Add debugfs topology info942d043ca8UPSTREAM: perf/arm-cmn: Add CI-700 Supportef74c2d064UPSTREAM: dt-bindings: perf: arm-cmn: Add CI-700d14ad92dd0UPSTREAM: perf/arm-cmn: Support new IP featuresd0205771e2UPSTREAM: perf/arm-cmn: Demarcate CMN-600 specificsb6a7974310UPSTREAM: perf/arm-cmn: Move group validation data off-stack9a74f34abdUPSTREAM: perf/arm-cmn: Optimise DTC counter accessesfb9091356eUPSTREAM: perf/arm-cmn: Optimise DTM counter reads86d818633cUPSTREAM: perf/arm-cmn: Refactor DTM handling3081baf827UPSTREAM: perf/arm-cmn: Streamline node iteration534bc126aaUPSTREAM: perf/arm-cmn: Refactor node ID handling11319db7b8UPSTREAM: perf/arm-cmn: Drop compile-test restriction40b2978978UPSTREAM: perf/arm-cmn: Account for NUMA affinitye82a3f108dUPSTREAM: fs: erofs: add sanity check for kobject in erofs_unregister_sysfs8ff9996c5dANDROID: cpufreq: times: record fast switch frequency transitions09d0ae9798ANDROID: abi_gki_aarch64_qcom: Add android_vh_madvise_cold_or_pageout485c0121e7ANDROID: GKI: MGLRU ABI Fixup3263c8d514ANDROID: GKI: Build multi-gen LRU383505860cBACKPORT: mm: multi-gen LRU: design doc3fa3e8ad5dUPSTREAM: mm: multi-gen LRU: admin guidea95784fdacBACKPORT: mm: multi-gen LRU: debugfs interfacedd4f2bd6c0UPSTREAM: mm: multi-gen LRU: thrashing prevention94d1a38c47BACKPORT: mm: multi-gen LRU: kill switch8726e22e86BACKPORT: mm: multi-gen LRU: optimize multiple memcgs35e2163024BACKPORT: mm: multi-gen LRU: support page table walks009d857059BACKPORT: mm: multi-gen LRU: exploit locality in rmap53af55e4ccBACKPORT: mm: multi-gen LRU: minimal implementationf4d4c46c3aBACKPORT: mm: multi-gen LRU: groundworkce62ece686UPSTREAM: Revert "include/linux/mm_inline.h: fold __update_lru_size() into its sole caller"3cebab25d5BACKPORT: mm/vmscan.c: refactor shrink_node()f3f123ebb5BACKPORT: mm: x86: add CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNGde96dbc641BACKPORT: mm: x86, arm64: add arch_has_hw_pte_young()970353b36eRevert "FROMLIST: mm: x86, arm64: add arch_has_hw_pte_young()"475108faddRevert "FROMLIST: mm: x86: add CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG"8d47a32fa8Revert "FROMLIST: mm/vmscan.c: refactor shrink_node()"e849bd2f88Revert "FROMLIST: Revert "include/linux/mm_inline.h: fold __update_lru_size() into its sole caller""60f9c51c88Revert "FROMLIST: mm: multi-gen LRU: groundwork"6e620d5117Revert "FROMLIST: mm: multi-gen LRU: minimal implementation"4bce99229aRevert "FROMLIST: mm: multi-gen LRU: exploit locality in rmap"16e5220b3dRevert "FROMLIST: mm: multi-gen LRU: support page table walks"4124cf4b02Revert "FROMLIST: mm: multi-gen LRU: optimize multiple memcgs"3a3733721bRevert "FROMLIST: mm: multi-gen LRU: kill switch"a62a81e770Revert "FROMLIST: mm: multi-gen LRU: thrashing prevention"f4b12ac3bcRevert "FROMLIST: mm: multi-gen LRU: debugfs interface"81c19190ffRevert "FROMLIST: mm: multi-gen LRU: admin guide"b49c49542fRevert "FROMLIST: mm: multi-gen LRU: design doc"d8c59190adRevert "ANDROID: GKI: build multi-gen LRU"4931d96eb3ANDROID: mm: Use intended order-adjusted batch size1bb821dcabANDROID: ABI: Update allowed list for QCOMe47b11059bANDROID: GKI: Add exynos_wear symbol list23fb3111f6ANDROID: page_pinner: prevent pp_buffer access before initialization2bd8e6670eANDROID: KVM: arm64: Use 32-bit function ID for PSCI MEM_PROTECT call050466c42eANDROID: ABI: Update allowed list for QCOM9449b4f1afANDROID: mm: preserve vma->anon_vma after MREMAP_DONTUNMAP for SPFcf5cad44fdANDROID: mm: disable speculative page faults for CONFIG_NUMA5fcb50b055ANDROID: mm: fix speculative walk which is unsafe under RCU749aa64ba8ANDROID: mm: avoid using vmacache in lockless vma search3e7526c672ANDROID: disable page table moves when speculative page faults are enabled3b43f23348ANDROID: mm: skip pte_alloc during speculative page faultd9d7f843daANDROID: mm: introduce vma refcounting to protect vma during SPFd7c52b0cd0UPSTREAM: crypto: arm/xor - make vectorized C code Clang-friendlyf759aa5f65UPSTREAM: efi: capsule-loader: Fix use-after-free in efi_capsule_write564233e471ANDROID: mm: add a vendor hook to rmqueue_bulk()979df868f5FROMGIT: mm/madvise: fix madvise_pageout for private file mappings99e3951ea4ANDROID: vendor_hooks: Allow shared pages reclaim via MADV_PAGEOUTec736ca13aANDROID: abi_gki_aarch64_qcom: Update symbol list710fd74d1dFROMGIT: tty: serial: qcom-geni-serial: Add support for Hibernation feature6196aa68f6ANDROID: GKI: Update symbol list for Amlogic0be362f248UPSTREAM: KVM: x86: do not report a vCPU as preempted outside instruction boundaries50358d6729ANDROID: mm/slab: Use EXPORT_SYMBOL for android_kmalloc_64_createe161b0c43cANDROID: GKI: update symbol list for ExynosAuto SoC1da102d4e3ANDROID: KVM: arm64: s2mpu: Fix SYNC latency regressionce39549d92ANDROID: KVM: arm64: iommu: Add host_stage2_idmap_completef0c53a5637ANDROID: KVM: arm64: Issue CMOs when tearing down shadow pagesaec224bb9eANDROID: GKI: Update symbol list for xiaomi4bc79ed42fANDROID: Add ashmem ioctl to return a unique file identifier3a049b038eANDROID: KVM: arm64: Fix repainting of PSCI SYSTEM_RESET2 callsc2162eca3fANDROID: reimplement vm_file protection during speculative page faulta07770525eRevert "ANDROID: add vma->file_ref_count to synchronize vma->vm_file destruction"578745e43fRevert "ANDROID: arm64/mm: protect vm_file during speculative page fault handling"24894a547eRevert "ANDROID: x86/mm: protect vm_file during speculative page fault handling"e9a7e9f2ffRevert "ANDROID: powerpc/mm: protect vm_file during speculative page fault handling"4288911d5eFROMGIT: usb: core: stop USB enumeration if too many retriesb8b0948987FROMGIT: f2fs: allow to read node block after shutdowne796ee5695ANDROID: KVM: arm64: Adjust PSCI MEM_PROTECT refcount across share/unshare5e82339f4bUPSTREAM: ext4,f2fs: fix readahead of verity data3605981d8aFROMLIST: f2fs: fix the msg data typef9965bb807BACKPORT: FROMLIST: f2fs: fix the assign logic of iocbc95f78db38ANDROID: Update the GKI symbol list and ABI XML8a7073c106ANDROID: mm/slab: Create 64-byte slab caches if the hardware supports it34e03c38fdANDROID: dma-buf: Add vendor hook for deferred dmabuf sysfs stats releasee4923174baFROMLIST: cfi: free old cfi shadow asynchronously9b7bf9c529FROMLIST: cfi: enable sanitize for cfi.c432cf292ebANDROID: GKI: Update abi_gki_aarch64_qcoma382999851ANDROID: ABI: Add usb_pipe_type_check symbolf2f619baa5ANDROID: GKI: Update symbols to symbol list69ec48c6a0ANDROID: GKI: Update symbol list for Amlogic6707ada5f7ANDROID: dm-user: Remove bio recount in I/O path654e0ed6fcUPSTREAM: drm/meson: Fix overflow implicit truncation warningsaaa6cd7d0dUPSTREAM: irqchip/tegra: Fix overflow implicit truncation warningsd75ef462c3UPSTREAM: video: fbdev: pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write777857c7a1UPSTREAM: i2c: ismt: prevent memory corruption in ismt_access()b006f3a809ANDROID: GKI: Update symbol list for mtk STB projects7266895825FROMLIST: KVM: arm64: pkvm: Fixup boot mode to reflect that the kernel resumes from EL1b72960ae91ANDROID: ABI: Add teace_android_rvh_rto_next_cpu to unisoc whitelist02ac822b3dBACKPORT: rcu: Remove __read_mostly annotations from rcu_scheduler_active externs4baff5cba1ANDROID: ABI: Export vendor_hook to be used by memcgv2 optimization mechanism5993940dd7FROMLIST: xfrm: Fix oops in __xfrm_state_delete()aaf18200c3BACKPORT: KVM: arm64: Fix bad dereference on MTE-enabled systems201d5f4a3eFROMLIST: binder: fix UAF of alloc->vma in race with munmap()20af947ec9Revert "Revert "BACKPORT: FROMLIST: ext4: implement speculative fault handling""365ffc56b4ANDROID: fix a race between speculative page walk and unmap operations68f9882b75ANDROID: GKI: update .xml file after cfg80211 changesf6fa00feb4UPSTREAM: wifi: cfg80211: add hardware timestamps to frame RX info2a2c366c47UPSTREAM: wifi: cfg80211: add a function for reporting TX status with hardware timestamps1148c260a1BACKPORT: wifi: nl80211: add RX and TX timestamp attributes9c20617addBACKPORT: wifi: nl80211: add EML/MLD capabilities to per-iftype capabilities23c1ff4ec5FROMGIT: wifi: cfg80211: support reporting failed links5bdebe9301FROMGIT: wifi: cfg80211: Fix bitrates overflow issue41f5642f15UPSTREAM: wifi: cfg80211: fix MCS divisor value3658e1b900BACKPORT: wifi: nl80211: add MLD address to assoc BSS entries20d705c31eUPSTREAM: wifi: nl80211: remove redundant err variableacf72eda07BACKPORT: wifi: nl80211: Add POWERED_ADDR_CHANGE feature4743d0ad6cBACKPORT: wifi: cfg80211/mac80211: check EHT capability size correctly89abd0e78bUPSTREAM: wifi: cfg80211: Update RNR parsing to align with Draft P802.11be_D2.0d4ecf4c3c4UPSTREAM: wifi: cfg80211: debugfs: fix return type in ht40allow_map_read()da9a72662dFROMGIT: wifi: nl80211: use link ID in NL80211_CMD_SET_BSS94afbcfb15UPSTREAM: wifi: cfg80211: add link id to txq params8e9375450eBACKPORT: wifi: mac80211: Align with Draft P802.11be_D2.0fadbf9a2caBACKPORT: wifi: mac80211: Align with Draft P802.11be_D1.53ae950a584UPSTREAM: wifi: nl80211: add MLO link ID to the NL80211_CMD_FRAME TX API483086cecaUPSTREAM: wifi: cfg80211: report link ID in NL80211_CMD_FRAME46c8675945UPSTREAM: wifi: cfg80211/nl80211: move rx management data into a struct6d81ebd631BACKPORT: wifi: nl80211/mac80211: clarify link ID in control port TXdfdfc3041eUPSTREAM: wifi: nl80211: require MLD address on link STA add/modify5697efd6e4UPSTREAM: wifi: cfg80211: add cfg80211_get_iftype_ext_capa()2c60081d52UPSTREAM: wifi: nl80211: fix some attribute policy entries9e73ea479dUPSTREAM: wifi: nl80211: reject fragmented and non-inheritance elementsc74a4e8436UPSTREAM: wifi: nl80211: reject link specific elements on assoc link3594b5cb98UPSTREAM: wifi: cfg80211: set country_elem to NULL2d971fdf0aUPSTREAM: wifi: nl80211: advertise MLO support8f37e21b18UPSTREAM: wifi: nl80211: allow link ID in set_wiphy with frequencyeed91854a5BACKPORT: wifi: cfg80211/mac80211: Support control port TX from specific link3120619c1bUPSTREAM: wifi: nl80211: Support MLD parameters in nl80211_set_station()eab9f6c4abUPSTREAM: wifi: nl80211: check MLO support in authenticate85f1514d21UPSTREAM: wifi: nl80211: set BSS to NULL if IS_ERR()d9847463acANDROID: abi_gki_aarch64_qcom: Add drm_plane_from_indexc6432173e0ANDROID: GKI: Update symbols to symbol list0051c6ca25ANDROID: add func in mm/memcontrol.c671ba4d337UPSTREAM: af_key: Do not call xfrm_probe_algs in parallel4431f52671UPSTREAM: mm: Fix TLB flush for not-first PFNMAP mappings in unmap_region()c0a7deb29dANDROID: KVM: arm64: Donate memory per vcpu for each vcpu shadow state76094a9979ANDROID: KVM: arm64: Initialize shadow vcpus with separate hypercalls31d3b09cb7ANDROID: KVM: arm64: Refactor unpinning host vcpubf48426928ANDROID: KVM: arm64: Separate functions for shadow vm and vcpu initbf94ae1300ANDROID: KVM: arm64: Refactor code for reclaiming guest memory into a function2c4a77c9b4UPSTREAM: mm: Force TLB flush for PFNMAP mappings before unlink_file_vma()e8e8278ea7ANDROID: sched: check on_rq in freezer_should_skip()15a4d4c54fBACKPORT: mm: don't be stuck to rmap lock on reclaim path2ac3611cdfUPSTREAM: crypto: x86/polyval - Fix crashes when keys are not 16-byte aligned379be12c0fANDROID: KVM: arm64: Only unpin a vCPU SVE state if setd6b5e9db8cANDROID: GKI: Update symbol list for xiaomi9527695a56FROMGIT: f2fs: let's avoid to get cp_rwsem twice by f2fs_evict_inode by d_invalidated9b344dc29ANDROID: ABI: Update symbols to unisoc whitelist for the scheduler 6st2f4a562ed8UPSTREAM: virtio_mmio: add support to set IRQ of a virtio device as wakeup source56a0806bcbUPSTREAM: dt-bindings: virtio: mmio: add optional wakeup-source propertyc4ef0b793dBACKPORT: mm: re-allow pinning of zero pfns45cda0a886BACKPORT: mm: fix is_pinnable_page against a cma page7d53a26b25ANDROID: Update symbol list for mtk1f44f2214dUPSTREAM: thermal: sysfs: Fix cooling_device_stats_setup() error code path161b98aa4cFROMGIT: usb: dwc3: gadget: Don't set IMI for no_interrupt7947f2f48aFROMGIT: usb: dwc3: gadget: Stop processing more requests on IMI3bdd7e23e2FROMGIT: usb: gadget: uvc: fix sg handling during video encode55249e0b76FROMGIT: usb: gadget: uvc: fix sg handling in error case45238b84d8FROMGIT: usb: gadget: uvc: fix dropped frame after missed isoc2d2cd1af72UPSTREAM: usb: gadget: uvc: improve sg exit condition3248ae0d9dUPSTREAM: usb: gadget: uvc: giveback vb2 buffer on req complete23616a2948UPSTREAM: usb: gadget: uvc: rework uvcg_queue_next_buffer to uvcg_complete_buffera50df26246UPSTREAM: usb: gadget: uvc: use on returned header len in video_encode_isoc_sgc91c6e0a3fUPSTREAM: usb: gadget: uvc: consistently use define for headerlen2616a2072cFROMGIT: arm64: io: Use asm-generic high level MMIO accessors15fbf32b75ANDROID: GKI: Update abi_gki_aarch64_qcom for trace_mmio93602bed42UPSTREAM: usb: dwc3: gadget: fix high speed multiplier setting14bd2d1473UPSTREAM: usb: dwc3: gadget: refactor dwc3_repare_one_trb68d8dea7feANDROID: GKI: Update abi_gki_aarch64_qcom for timespec64_to_jiffiesfdf67142f3ANDROID: vendor_hook: skip trace_android_vh_page_trylock_set when ignore_references is truea9092347adANDROID: ABI: Export psi_system symbol to be used by memcgv2 optimization mechanism6d81bca908ANDROID: ABI: export psi_system for memcgv2's vh function optimizationecb0dcb24aUPSTREAM: mm/damon/dbgfs: fix memory leak when using debugfs_lookup()52808991c0UPSTREAM: wifi: mac80211: fix MBSSID parsing use-after-freeec4ab62846UPSTREAM: mac80211: fix memory leaks with element parsing4ae50d8935UPSTREAM: mac80211: always allocate struct ieee802_11_elems33c9746293UPSTREAM: mac80211: mlme: find auth challenge directlyd3f1cd61daUPSTREAM: mac80211: move CRC into struct ieee802_11_elems397e82f22bUPSTREAM: mac80211: mesh: clean up rx_bcn_presp API1b7036d9eeUPSTREAM: wifi: cfg80211: update hidden BSSes to avoid WARN_ONdb5865ed3cUPSTREAM: wifi: mac80211: fix crash in beacon protection for P2P-deviceb2126d0131UPSTREAM: wifi: mac80211_hwsim: avoid mac80211 warning on bad rate64265011eaUPSTREAM: wifi: cfg80211: avoid nontransmitted BSS list corruption56203e0ecbUPSTREAM: wifi: cfg80211: fix BSS refcounting bugs3ebea46325UPSTREAM: wifi: cfg80211: ensure length byte is present before access0abe9e97c8UPSTREAM: wifi: cfg80211/mac80211: reject bad MBSSID elements50802a459bUPSTREAM: wifi: cfg80211: fix u8 overflow in cfg80211_update_notlisted_nontrans()0a4e0e56b6UPSTREAM: usb: gadget: f_serial: Ensure gserial disconnected during unbinda42bb7b44dUPSTREAM: wifi: nl80211: better validate link ID for stations3ce62ab9f9UPSTREAM: wifi: cfg80211: clean up links appropriately6b5b4300baUPSTREAM: wifi: cfg80211: add ieee80211_chanwidth_rate_flags()dda95a93f4UPSTREAM: wifi: cfg80211: extend cfg80211_rx_assoc_resp() for MLOa4670eb422BACKPORT: wifi: cfg80211: put cfg80211_rx_assoc_resp() arguments into a structc1bcc88a92BACKPORT: wifi: cfg80211: adjust assoc comeback for MLOdb5bcd0cd8BACKPORT: wifi: cfg80211: prepare association failure APIs for MLO4c026e7989BACKPORT: wifi: cfg80211: remove BSS pointer from cfg80211_disassoc_request54c7401e6fUPSTREAM: wifi: nl80211: acquire wdev mutex for dump_surveycedf0a45f1UPSTREAM: wifi: cfg80211: drop BSS elements from assoc trace for now85139f4bfcUPSTREAM: wifi: cfg80211: make cfg80211_auth_request::key_idx signede75dfe1943UPSTREAM: wifi: nl80211: enable setting the link address at new stationd104fc76c4UPSTREAM: wifi: nl80211: hold wdev mutex for station APIs80f8155cfcUPSTREAM: wifi: nl80211: hold wdev mutex for channel switch APIs7f076a74a7UPSTREAM: wifi: nl80211: hold wdev mutex in add/mod/del link stationb1bdeb8543UPSTREAM: wifi: cfg80211: Allow MLO TX with link source address6f2a6c919aANDROID: ABI: add debugfs_lookup_and_remove to whitelistcabd649d1bUPSTREAM: sched/debug: fix dentry leak in update_sched_domain_debugfse681f878fcUPSTREAM: debugfs: add debugfs_lookup_and_remove()08ef164027ANDROID: sched: Move scratch_mask to a percpu variablec61797f241ANDROID: sched: Keep sched_class::set_cpus_allowed stable448eb7ef25FROMGIT: sched: Always clear user_cpus_ptr in do_set_cpus_allowed()ec8cf94166BACKPORT: FROMGIT: sched: Enforce user requested affinity50a3a47c14BACKPORT: FROMGIT: sched: Always preserve the user requested cpumask54aeb5c372BACKPORT: FROMGIT: sched: Introduce affinity_context5001781910FROMGIT: sched: Add __releases annotations to affine_move_task()b3bb41cebdANDROID: GKI: Update abi_gki_aarch64_qcom for DMAdba7a32ef7ANDROID: GKI: Update symbols to symbol listba5d7b443eANDROID: GKI: Update symbol list for Exynos SoC2eb7ccbee2BACKPORT: FROMGIT: mmc: core: SD: Add BROKEN-SD-DISCARD quirk3ade531891BACKPORT: wifi: cfg80211: Fix validating BSS pointers in __cfg80211_connect_result0436dc8907UPSTREAM: mmc: sdhci: Fix host->cmd is nulle91ba0b70eANDROID: ABI: Update symbols to unisoc whitelist for the wlanea095dd932ANDROID: ABI: Update symbols to unisoc whitelist545bb8eb6bFROMGIT: seccomp: Move copy_seccomp() to no failure path.41300cf104BACKPORT: FROMLIST: tracing: Add register read/write tracing supporte8a2596decUPSTREAM: fbcon: Prevent that screen size is smaller than font sizeb54f2a0d7bUPSTREAM: fbcon: Disallow setting font bigger than screen size52833e8fafUPSTREAM: fbmem: Check virtual screen sizes in fb_set_var()ea2a1b81e8ANDROID: GKI: Update symbol list for VIVOe0a18fbf05ANDROID: GKI: Update symbol list for sunxi3d7ba02e51ANDROID: ABI: update allowed list for galaxyed0b913a4bANDROID: ABI: Update symbols to unisoc whitelist for UFS the 1st16aecf0f68UPSTREAM: usb: gadget: f_fs: change ep->ep safe in ffs_epfile_io()9dec42d377UPSTREAM: usb: gadget: f_fs: change ep->status safe in ffs_epfile_io()6f90f3b9c9ANDROID: KVM: arm64: Fix MMIO guard map error handling8324bb0aedANDROID: GKI: Update symbols to symbol list95af22de88UPSTREAM: cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all()546f62e71bFROMLIST: locking/rwsem: Limit # of null owner retries for handoff writer4ece302f35FROMLIST: locking/rwsem: Prevent non-first waiter from spinning in down_write() slowpathb5e4b8916fANDROID: abi_gki_aarch64_sony: Export block driver symbols to collect device infoca65be56edANDROID: GKI: block: export block_rq_complete316e668d5fANDROID: ABI: update allowed list for galaxy6d4b5281a6ANDROID: KVM: arm64: s2mpu: Add SysMMU_SYNC timeoutc0a46be9dcANDROID: KVM: arm64: Force CMOs with FWB when reclaiming guest pages24d27dff64BACKPORT: locking/rwsem: Allow slowpath writer to ignore handoff bit if not set by first waiter48b7cad9b0ANDROID: Update mtktv symbol list38e30fccb8ANDROID: arm64: Reclaim some cpucaps to aid in backportinge76686ed1dANDROID: GKI: Update symbol list for mtk STB projects7639b80540ANDROID: debug_symbols: Add put_task_stack807d95c66bANDROID: abi_gki_aarch64_qcom: Add hibernation APIsfae48a3639ANDROID: fix kernelci build-break for !CONFIG_ANDROID_VENDOR_OEM_DATA6232eecfa7ANDROID: mm/filemap: Fix missing put_page() for speculative page fault0555154508ANDROID: abi_gki_aarch64_qcom: Add clk_restore_context and clk_save_contextfa951e233fBACKPORT: HID: steam: Prevent NULL pointer dereference in steam_{recv,send}_report1554564451ANDROID: abi_gki_aarch64_qcom: Add drm driver APIs16a71479cbANDROID: sched: Export sched_domains_mutex for lockdepd2cb755a43ANDROID: vendor hooks: Add hooks to support bootloader based hibernationc297152a18ANDROID: GKI: Update Amlogic symbol list2455f6610aANDROID: fix ABI breakage in struct psi_group9ed7219990FROMLIST: psi: stop relying on timer_pending for poll_work rescheduling9040c2052eANDROID: ABI: Update symbols to unisoc whitelist646452113dANDROID: ABI: Update oplus symbol listb55a937270ANDROID: GKI: Update symbol list for sunxi1eedea5f8dANDROID: abi_gki_aarch64_qcom: Export update_readahead_gfp_mask VH041ffcd941ANDROID: mm: add a vendor_hook to change the gfp flagsee928517b9ANDROID: GKI: Update vendor symbol list for vivo4c1cf366acANDROID: vendor_hooks: add new parameter to android_vh_blk_alloc_rqs()5923781e8cANDROID: KVM: arm64: Do not advertise SVE capability in protected modef803a7997dANDROID: ABI: Update symbols to unisoc whitelist for the drmebf773d748ANDROID: ABI: Update symbols to unisoc whitelist for clock372abe5b53ANDROID: KVM: arm64: Fix MMIO guard unmap809ec777eaANDROID: GKI: Add RTK TV KMI symbol list85eea22b5eANDROID: Update QCOM symbol list for __tracepoint_android_vh_mmc_sd_update_cmdline_timingb84c40ff60UPSTREAM: crypto: jitter - add oversampling of noise source4b6af87d6eBACKPORT: writeback avoid use-after-free after removing device75b1bf99a9ANDROID: GKI: Update abi_gki_aarch64_qcom3ee1075693FROMGIT: f2fs: support recording stop_checkpoint reason into super_blocke82a19427eFROMLIST: mm: fix use-after free of page_ext after race with memory-offline898cfbf094ANDROID: mm: introduce page_pinner8dea6e5e50ANDROID: ABI: Add extcon_get_property_capability symbol8409443201ANDROID: gki_config: enable F2FS_UNFAIR_RWSEM285d4132a6ANDROID: scsi: ufs: add complete init vendor hook5756b89437ANDROID: ABI: update allowed list for galaxy4ec2c6e2d1ANDROID: GKI: Update symbol list for mtk AI-vision projectsd6b20ddcd9ANDROID: GKI: Enable HCTR22496e06b21UPSTREAM: fscrypt: Add HCTR2 support for filename encryption731238ab38UPSTREAM: crypto: arm64/polyval - Add PMULL accelerated implementation of POLYVAL6606d9507eUPSTREAM: crypto: x86/polyval - Add PCLMULQDQ accelerated implementation of POLYVALe3431e9f2bUPSTREAM: crypto: arm64/aes-xctr - Improve readability of XCTR and CTR modes8a794a25aeUPSTREAM: crypto: arm64/aes-xctr - Add accelerated implementation of XCTR9a11762fdeUPSTREAM: crypto: x86/aesni-xctr - Add accelerated implementation of XCTR927d58494fUPSTREAM: crypto: hctr2 - Add HCTR2 supportb07dcba017UPSTREAM: crypto: polyval - Add POLYVAL support24a19f56b4UPSTREAM: crypto: xctr - Add XCTR support96c87ab88bUPSTREAM: arm64: Add macro version of the BTI instruction1fd5d6489aUPSTREAM: crypto: arm64/aes-neon-ctr - improve handling of single tail blockb760d25fcaANDROID: GKI: Update symbols to symbol list8b49e4bee6ANDROID: KVM: arm64: Initialize ptr auth in protected mode5405862223FROMGIT: KVM: arm64: Ignore kvm-arm.mode if !is_hyp_mode_available()c101b51fb6UPSTREAM: wifi: mac80211_hwsim: use 32-bit skb cookieeb82ad82b1UPSTREAM: wifi: mac80211_hwsim: add back erroneously removed caste154458b37UPSTREAM: wifi: mac80211_hwsim: fix race condition in pending packet5e1321eb79ANDROID: abi_gki_aarch64_qcom: Add protocol related symbols9122cbfc55ANDROID: Fix lost track action type in save_track_hashbcb5f0547eUPSTREAM: usb: gadget: mass_storage: Fix cdrom data transfers on MAC-OSc2ab21a729ANDROID: GKI: Update symbols to symbol listac82d34706ANDROID: vendor_hook: rename the the name of hooks4a9e3b2ca6ANDROID: vendor_hooks: Add hook in kmalloc_slab()fcacd896ecBACKPORT: wifi: cfg80211/mac80211: separate link params from station params5b0ceee1bdUPSTREAM: wifi: cfg80211: add API to add/modify/remove a link station54f780d093ANDROID: signal: Add vendor hook for memory reaping5edc332ceeANDROID: GKI: Update abi_gki_aarch64_pixelb80df8c286Revert "ANDROID: vendor_hooks: Add hooks to tcp/udp send/recv msg functions."8c09081fc0Revert "ANDROID: sched: Add vendor hook for util-update related functions"587cfd8e66ANDROID: fix alignment of struct shash_desc membere15184fefeBACKPORT: mm: make minimum slab alignment a runtime property273bbfc4d7BACKPORT: printk: stop including cache.h from printk.h088ce42ab0UPSTREAM: kasan: fix a missing header include of static_keys.h17e4c2a950BACKPORT: kasan: split kasan_*enabled() functions into a separate headerafa76a1c3aANDROID: scsi: ufs: Improve MCQ error handling9dcd74deffANDROID: GKI: Add Sony KMI symbol listb9707158acANDROID: ABI: update allowed list for galaxydaac36f215ANDROID: GKI: Update symbols to symbol listeffc9c940aANDROID: GKI: Update abi_gki_aarch64_qcom symbols.3561c27eebUPSTREAM: Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()"a89fbc0de0ANDROID: fix add vendor hooks for unusual abort cases0fd0345839ANDROID: regmap: Unhide REGMAP_SPMI314e242119ANDROID: ABI: update allowed list for galaxy6b1ae1157fANDROID: Enable BUILD_GKI_CERTIFICATION_TOOLS for x86_64 GKIcbc497caa2ANDROID: irqchip: Fix vendor hook arguments898941454fUPSTREAM: usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop7bdc155a70Revert "FROMLIST: usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop"94c8c2f858ANDROID: add symbol file for type visibility symbols0e0c25fffdANDROID: selftests: incfs: Increase timeout in concurrent_reads_and_writes_testbba227bfd0ANDROID: abi_gki_aarch64_qcom: Add iio symbol list for qcom0c3d2d04ccANDROID: make sure all types for hooks are defined in KMI1aeba1eea1ANDROID: mm: cma: proper ret type for tasks interrupted by fatal signalc2b91dc63cBACKPORT: erofs: fix use-after-free of on-stack io[]a75431c61bANDROID: kleaf: Explicit list of ABI files.41a23cd26eFROMGIT: kasan: call kasan_malloc() from __kmalloc_*track_caller()e1c0ed46cfFROMLIST: f2fs: let FI_OPU_WRITE override FADVISE_COLD_BITd7735e03b7ANDROID: GKI: update the ABI xml and pixel symbol listf8c9fae007ANDROID: incfs: Add check for ATTR_KILL_SUID and ATTR_MODE in incfs_setattr66e0726ca5ANDROID: GKI: update vendor hook for sd010f93525dUPSTREAM: kbuild: rename cmd_{bzip2,lzma,lzo,lz4,xzkern,zstd22}8833039066ANDROID: ABI: Update symbols to unisoc whitelista3525f6e75ANDROID: ABI: Update symbols to unisoc whitelist for sync from local code7c0b04f044ANDROID: ABI: Update symbols to unisoc whiteliste6c55bbd43ANDROID: GKI: Update symbol list for sunxia3e20edea9ANDROID: GKI: Update symbol listef9a35b2e6ANDROID: ABI: Update symbols for unisoc whitelist Android13-k5.1570a5111957ANDROID: net: export symbol for tracepoint_consume_skb13bedfc2f2ANDROID: gki_defconfig: Enable CONFIG_HIBERNATION flag32e1ff60dbANDROID: ABI: Update symbols to unisoc whitelist for sync from local code42f39fcf09ANDROID: GKI: update xiaomi symbol listca319dfc39ANDROID: Add headers to vendor_hooks.c for type visibilitye85a386df9BACKPORT: KVM: x86: avoid calling x86 emulator without a decoded instruction6b2fb25eacANDROID: ABI: Update symbols to unisoc whitelist678d7a0952BACKPORT: dm verity: set DM_TARGET_IMMUTABLE feature flaga2c2b6c914BACKPORT: pipe: Fix missing lock in pipe_resize_ring()3c2cc4561fFROMLIST: locking/rwsem: Disable preemption while trying for rwsem lockc82312f9b0BACKPORT: rpmsg: virtio: Fix possible double free in rpmsg_probe()e0440af8b2BACKPORT: rpmsg: virtio: Fix possible double free in rpmsg_virtio_add_ctrl_dev()cff4cc7a64Revert "ANDROID: arm64: smp: fix Lockdep warning: RCU used illegally from idle CPU."6a2905d352FROMLIST: arm64: mte: move register initialization to C7a67b48b62Revert "BACKPORT: FROMLIST: ext4: implement speculative fault handling"9f7ac5d820Revert "FROMLIST: arm64: mte: move register initialization to C"b9f272d887ANDROID: vendor_hooks:vendor hook for mmputc96092a914ANDROID: GKI: Upate sunxi symbol list5dc0a0bd6bANDROID: remove CONFIG_TRACEPOINTS from hook definition headersecb7d6b106ANDROID: remove inclusions from hook definition headersea45eaaaaeBACKPORT: scsi: ufs: core: Increase fDeviceInit poll frequencyc17b8c3da8FROMGIT: f2fs: increase the limit for reserve_root35666bb866FROMGIT: f2fs: complete checkpoints during remount9e14ab97feFROMGIT: f2fs: flush pending checkpoints when freezing superb52dcd4e22FROMGIT: f2fs: remove gc_urgent_high_limited for cleanupe4c3ce6f7dFROMGIT: f2fs: fix wrong continue condition in GC619b99d2d4BACKPORT: f2fs: handle decompress only post processing in softirqc119114518BACKPORT: f2fs: introduce memory mode3ec6819bffANDROID: kleaf: Do not include GKI modules in default output of //common:kernel_aarch64.fe1e4c55deANDROID: GKI: Update symbols to symbol list08b9a0b8aaANDROID: GKI: Update symbol list for Exynos SoCca7f18ea25ANDROID: ABI: Update oplus symbol listfb2bb8f3adANDROID: mm: Add vendor hook in rmqueue()193dcfee4dANDROID: abi_gki_aarch64_qcom: Update symbol list.1cf95b1e07ANDROID: GKI: Update symbols to symbol liste1b8ef44fdANDROID: Revert "psi: allow unprivileged users with CAP_SYS_RESOURCE to write psi files"c9ee361850ANDROID: abi_gki_aarch64_qcom: Add hook for set_cpus_allowed_by_task2508098b95ANDROID: GKI: Update symbol list06a2fffcf3ANDROID: GKI: Update symbol list for mtk AI-vision projects1f0f167b62FROMGIT: wifi: cfg80211: Add link_id to cfg80211_ch_switch_started_notify()c9375148dbFROMGIT: wifi: nl80211: send MLO links channel info in GET_INTERFACEdf92dc5573FROMGIT: wifi: cfg80211: Prevent cfg80211_wext_siwencodeext() on MLD460e2bc5daFROMGIT: wifi: cfg80211: reject connect response with MLO params for WEPcad63b2cf1FROMGIT: wifi: cfg80211: get correct AP link chandefe6c826aa9bANDROID: reduce number of opaque structs in KMI0226fc2e18ANDROID: vendor_hooks: tune reclaim inactive ratio8de5430cb7BACKPORT: FROMGIT: PCI: dwc: Add support for 64-bit MSI target address8181ea8d96BACKPORT: FROMGIT: PCI: dwc: Drop dependency on ZONE_DMA32a8dfddb2b9Revert "BACKPORT: FROMLIST: PCI: dwc: Drop dependency on ZONE_DMA32"c5e662db60Revert "BACKPORT: FROMLIST: PCI: dwc: Add support for 64-bit MSI target address"ff81c8d3f5ANDROID: GKI: create initial PASA symbol list55f112e068ANDROID: vendor_hooks: Add hooks for cpufreq_acct_update_power76be364a84BACKPORT: irq_work: use kasan_record_aux_stack_noalloc() record callstackcc724041ceANDROID: vendor_hooks: Add hooks for oem futex optimizationeb6c8ea051BACKPORT: fuse: send security context of inode on file05e1c47bbcUPSTREAM: security: Return xattr name from security_dentry_init_security()e8ac12a811BACKPORT: fuse: extend init flagsa43215959dBACKPORT: scsi: ufs: core: Fix missing clk change notification on host reset773f36077bANDROID: ABI: Dedup the repeated symbols for Unisocc4ebf71500FROMLIST: arm64: mte: move register initialization to Cf42e2933f0FROMLIST: ufs: allow host driver to disable wb toggling during clock scaling8d76ae003bANDROID: GKI: update xiaomi symbol listbe69ad8227ANDROID: Expand user_struct size.776d084118UPSTREAM: usb: gadget: uvc: calculate the number of request depending on framesize26e36e62c9UPSTREAM: usb: dwc3: gadget: increase tx fifo size for ss isoc endpoints928bb2bbe1UPSTREAM: usb: gadget: uvc: remove pause flag use85791a9e63UPSTREAM: usb: gadget: uvc: allow changing interface name via configfs499ea1f89bUPSTREAM: usb: gadget: uvc: fix list double add in uvcg_video_pump0db028444cANDROID: abi_gki_aarch64_qcom: Add blk_mq_free_requestb58af507bfANDROID: GKI: Update symbols to symbol list0312e9cd22ANDROID: vendor_hooks:vendor hook for __alloc_pages_slowpath.22c312bbdeANDROID: nl80211: enable reserved attributes with upstream assignments17e63e8b13ANDROID: fix declaration mismatch for ns_to_kernel_old_timeval13e5af1463ANDROID: avoid huge-page not to clear trylock-bit after shrink_page_list.b337f6e1a9ANDROID: mm/memory_hotplug: Fix error path handling695e36b60eANDROID: GKI: Update symbol list for imx4d91f7dff5ANDROID: GKI: update xiaomi symbol list39088bd0f1UPSTREAM: usb: gadget: uvc: test if ep->desc is valid on ep_queue48ffd4d42dUPSTREAM: usb: gadget: uvc: only pump video data if necessary1b5de9bdc4UPSTREAM: usb: gadget: uvc: only schedule stream in streaming state75b799c801UPSTREAM: usb: dwc3: gadget: Give some time to schedule isoc8398037818UPSTREAM: usb: gadget: composite: Show warning if function driver's descriptors are incomplete.77672b2424ANDROID: GKI: Add symbol list file for sunxi555400c6f7ANDROID: ABI: Update symbols to unisoc whitelist73b352b9bcANDROID: GKI: Update Symbol List for Vendor175fa88bc2ANDROID: kernel/sched: rebuild_sched_domains export5dc0125847ANDROID: vendor_hooks: Add hooks for page_cache_sync_ra5a3e902fedFROMLIST: cgroup: Fix race condition at rebind_subsystems()6aafd4a7e6ANDROID: GKI: Update symbols to symbol list7e1756daccANDROID: GKI: Add initial symbol list for amlogic885f16fab6ANDROID: gki_defconfig: enable CONFIG_USB_CONFIGFS_F_UVCb2a6221a18ANDROID: GKI: Update symbols to symbol list7fa896f92dANDROID: GKI: Update symbols to symbol list212c9a7426ANDROID: ABI: Update symbols to unisoc whitelist for mmc 3stfb9c12a0f6ANDROID: ABI: Update oplus symbol lista54b0cc492ANDROID: Update mtktv symbol listbc2b2529f6BACKPORT: cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlocka30c0961ddUPSTREAM: cgroup: Elide write-locking threadgroup_rwsem when updating csses on an empty subtreeb38034b5d5BACKPORT: FROMLIST: PCI: dwc: Add support for 64-bit MSI target address6c9828727fBACKPORT: FROMLIST: PCI: dwc: Drop dependency on ZONE_DMA32cfaccedb79BACKPORT: f2fs: do not allow to decompress files have FI_COMPRESS_RELEASED70d1b9fe5fBACKPORT: f2fs: do not set compression bit if kernel doesn't support66a0472aacBACKPORT: f2fs: fix to remove F2FS_COMPR_FL and tag F2FS_NOCOMP_FL at the same timeb57cdff123BACKPORT: f2fs: do not skip updating inode when retrying to flush node pagedb198f61d0BACKPORT: f2fs: do not count ENOENT for error case39886a23bbBACKPORT: f2fs: attach inline_data after setting compressiond85467fdcaBACKPORT: f2fs: allow compression for mmap files in compress_mode=user0e65382de3BACKPORT: f2fs: fix fallocate to use file_modified to update permissions consistently0d0b29daf8BACKPORT: f2fs: don't need inode lock for system hidden quota089aeb07abBACKPORT: f2fs: fix to clear dirty inode in f2fs_evict_inode()05a794d93aBACKPORT: f2fs: avoid infinite loop to flush node pages9449d07f3fBACKPORT: f2fs: fix to do sanity check on inline_dots inode820c876e42BACKPORT: f2fs: introduce data read/write showing path info8637bc7602BACKPORT: f2fs: fix wrong condition check when failing metapage readffb7e4633bBACKPORT: f2fs: replace congestion_wait() calls with io_schedule_timeout()a60c2d4f12ANDROID: vendor_hooks: Add hooks for ipae956d16bc2ANDROID: GKI: add restricted vendor hook for mmcfc9630b3cbANDROID: vendor_hooks: add vendor hook for dma_heap_buffer_alloc47351f748eANDROID: GKI: Update symbol list for Exynos SoCf729494767ANDROID: vendor_hook: add hooks to protect locking-tsk in cpu schedulere5e38b46e5ANDROID: GKI: Update symbols to symbol list1f925159e2ANDROID: fix kernelci issue: visibility of struct cgroup_subsysaea5730216ANDROID: ABI: Update symbols to unisoc whitelist for sync from local code4899ed313fANDROID: GKI: update the ABI xml and pixel symbol liste7cbfabf82ANDROID: export reclaim_pages309a6bf81aANDROID: vendor_hook: Add hook to not be stuck ro rmap lock in kswapd or direct_reclaim4f5025129fFROMLIST: usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stopd4d10fb574Revert "FROMLIST: usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop"2487db8d59ANDROID: freezer: Add vendor hook to freezer for GKI purpose.9ac0923ef5ANDROID: user: Add vendor hook to user for GKI purpose8b885a54baANDROID: GKI: Update symbol list for imxd1bc61dd85ANDROID: android: Export symbols for invoking cpufreq_update_util()b109cefd6fFROMGIT: usb: typec: ucsi: Acknowledge the GET_ERROR_STATUS command completion6349c3bbd5ANDROID: GKI: add vendor hook to support emmc FFU64ae41d79bANDROID: GKI: Update symbols to symbol list58c2de6dd0ANDROID: Update symbol list of mediatekc3677a966dANDROID: ABI: update allowed list for galaxy6581a0bfa7FROMLIST: usb: gadget: f_uac2: fix superspeed transfere2c216a2afUPSTREAM: usb: gadget: f_uac2: clean up some inconsistent indenting2b0d64ba20UPSTREAM: wifi: cfg80211: Allow P2P client interface to indicate port authorization5fad12ed63UPSTREAM: bcache: move uapi header bcache.h to bcache code directory99b2e4c942UPSTREAM: arm64: perf: Support new DT compatibles08f07e3d42UPSTREAM: arm64: perf: Simplify registration boilerplate48af748d03UPSTREAM: arm64: perf: Support Denver and Carmel PMUs952fbc560fANDROID: Add symbols required for NVMe in abi_gki_aarch64_qcomce8b55bb08ANDROID: vendor_hooks: protect multi-mapcount pages in kernel09ebd2be6eANDROID: add func:do_traversal_all_lruvec in mm/memcontrol.cefbe140e82ANDROID: vendor_hooks: account page-mapcountbf19ba7dd0ANDROID: GKI: allow mm vendor hooks header inclusion from header filese99fffe1d4ANDROID: Update symbol list for mtk42f3a7e05fUPSTREAM: dma-buf: remove restriction of IOCTL:DMA_BUF_SET_NAMEdbe7eb9794ANDROID: abi_gki_aarch64_qcom: Update symbol list1d7ab182b7ANDROID: ABI update for virtual device virtio_gpu changese0bf6839e7ANDROID: mm: always destroy mmu_notifier percpu_rwsem asynchronously3c5af3f431UPSTREAM: kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS (2nd attempt)a379c27044ANDROID: ABI: Update symbols to unisoc whitelist for mmc 2st7b610b2916ANDROID: Update symbol list of mediatek5b6fcb2222UPSTREAM: kbuild: Ignore __this_module in gen_autoksyms.shd78c536fe7UPSTREAM: binder: fix redefinition of seq_file attributesb52b0debf7ANDROID: Add a script to collect information about a device's dependenciesaf6d390801BACKPORT: FROMLIST: wifi: cfg80211: Add link_id parameter to various key operations for MLO359b4ecb6bANDROID: Update symbol list for mtk6360c456edANDROID: update symbol list for pixel60714690feANDROID: scsi: ufs: add vendor hook to override key reprogrammingcacbff013bBACKPORT: Bluetooth: L2CAP: Fix use-after-free caused by l2cap_chan_putc4fbc06424BACKPORT: KVM: x86/mmu: fix NULL pointer dereference on guest INVPCID6bb5d6b3f7ANDROID: GKI: update symbol lista2f552f49cANDROID: GKI: vendor code needs __balance_callbacks access Change-Id: Ibee4a43f0ecbddf17851d4db250e95e83800a5a2 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
60
BUILD.bazel
60
BUILD.bazel
@@ -1,41 +1,64 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load("//build/kernel/kleaf:constants.bzl", "aarch64_gz_outs")
|
||||
load("//build/kernel/kleaf:common_kernels.bzl", "define_common_kernels", "define_db845c")
|
||||
|
||||
package(
|
||||
default_visibility = [
|
||||
"//visibility:public",
|
||||
],
|
||||
)
|
||||
|
||||
load("//build/kernel/kleaf:constants.bzl", "aarch64_gz_outs")
|
||||
load("//build/kernel/kleaf:common_kernels.bzl", "define_common_kernels", "define_db845c")
|
||||
_aarch64_additional_kmi_symbol_lists = [
|
||||
# keep sorted
|
||||
"android/abi_gki_aarch64_amlogic",
|
||||
"android/abi_gki_aarch64_db845c",
|
||||
"android/abi_gki_aarch64_exynos",
|
||||
"android/abi_gki_aarch64_exynos_wear",
|
||||
"android/abi_gki_aarch64_exynosauto",
|
||||
"android/abi_gki_aarch64_fips140",
|
||||
"android/abi_gki_aarch64_galaxy",
|
||||
"android/abi_gki_aarch64_general",
|
||||
"android/abi_gki_aarch64_honor",
|
||||
"android/abi_gki_aarch64_imx",
|
||||
"android/abi_gki_aarch64_mtk",
|
||||
"android/abi_gki_aarch64_mtktv",
|
||||
"android/abi_gki_aarch64_oplus",
|
||||
"android/abi_gki_aarch64_pasa",
|
||||
"android/abi_gki_aarch64_pixel",
|
||||
"android/abi_gki_aarch64_qcom",
|
||||
"android/abi_gki_aarch64_rtktv",
|
||||
"android/abi_gki_aarch64_sony",
|
||||
"android/abi_gki_aarch64_sunxi",
|
||||
"android/abi_gki_aarch64_tuxera",
|
||||
"android/abi_gki_aarch64_type_visibility",
|
||||
"android/abi_gki_aarch64_unisoc",
|
||||
"android/abi_gki_aarch64_virtual_device",
|
||||
"android/abi_gki_aarch64_virtual_device_removed",
|
||||
"android/abi_gki_aarch64_vivo",
|
||||
"android/abi_gki_aarch64_xiaomi",
|
||||
]
|
||||
|
||||
# This uses android/abi_gki_aarch64* in kmi_configs. If the list of
|
||||
# glob(["android/abi_gki_aarch64*"]) differs from
|
||||
# KMI_SYMBOL_LIST + ADDITIONAL_KMI_SYMBOL_LISTS in build.config.gki.aarch64,
|
||||
# or TRIM_NONLISTED_KMI changes, override kmi_configs here.
|
||||
define_common_kernels(target_configs = {
|
||||
# Sync with build.config.gki.aarch64
|
||||
"kernel_aarch64": {
|
||||
"module_implicit_outs": [
|
||||
"drivers/block/zram/zram.ko",
|
||||
"mm/zsmalloc.ko",
|
||||
],
|
||||
"kmi_symbol_list": "android/abi_gki_aarch64",
|
||||
"additional_kmi_symbol_lists": _aarch64_additional_kmi_symbol_lists,
|
||||
"abi_definition": "android/abi_gki_aarch64.xml",
|
||||
},
|
||||
"kernel_aarch64_debug": {
|
||||
"module_implicit_outs": [
|
||||
"drivers/block/zram/zram.ko",
|
||||
"mm/zsmalloc.ko",
|
||||
],
|
||||
"kmi_symbol_list": "android/abi_gki_aarch64",
|
||||
"additional_kmi_symbol_lists": _aarch64_additional_kmi_symbol_lists,
|
||||
"abi_definition": "android/abi_gki_aarch64.xml",
|
||||
},
|
||||
})
|
||||
|
||||
@@ -97,7 +120,6 @@ define_db845c(
|
||||
"drivers/interconnect/qcom/qnoc-sm8250.ko",
|
||||
"drivers/iommu/arm/arm-smmu/arm_smmu.ko",
|
||||
"drivers/irqchip/qcom-pdc.ko",
|
||||
"drivers/leds/led-class-multicolor.ko",
|
||||
"drivers/mailbox/qcom-apcs-ipc-mailbox.ko",
|
||||
"drivers/mailbox/qcom-ipcc.ko",
|
||||
"drivers/mfd/qcom-spmi-pmic.ko",
|
||||
|
||||
@@ -7,6 +7,7 @@ Description: UVC function directory
|
||||
streaming_maxburst 0..15 (ss only)
|
||||
streaming_maxpacket 1..1023 (fs), 1..3072 (hs/ss)
|
||||
streaming_interval 1..16
|
||||
function_name string [32]
|
||||
=================== =============================
|
||||
|
||||
What: /config/usb-gadget/gadget/functions/uvc.name/control
|
||||
|
||||
@@ -244,6 +244,17 @@ Description:
|
||||
is permitted, "u2" if only u2 is permitted, "u1_u2" if both u1 and
|
||||
u2 are permitted.
|
||||
|
||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/early_stop
|
||||
Date: Sep 2022
|
||||
Contact: Ray Chi <raychi@google.com>
|
||||
Description:
|
||||
Some USB hosts have some watchdog mechanisms so that the device
|
||||
may enter ramdump if it takes a long time during port initialization.
|
||||
This attribute allows each port just has two attempts so that the
|
||||
port initialization will be failed quickly. In addition, if a port
|
||||
which is marked with early_stop has failed to initialize, it will ignore
|
||||
all future connections until this attribute is clear.
|
||||
|
||||
What: /sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout
|
||||
Date: May 2013
|
||||
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
|
||||
|
||||
@@ -338,6 +338,10 @@
|
||||
connected to one of 16 gameports
|
||||
Format: <type1>,<type2>,..<type16>
|
||||
|
||||
android_kmalloc_64_create [MM]
|
||||
Creates all kmalloc variants of the 64-byte slab cache,
|
||||
if the hardware supports it.
|
||||
|
||||
apc= [HW,SPARC]
|
||||
Power management functions (SPARCstation-4/5 + deriv.)
|
||||
Format: noidle
|
||||
|
||||
@@ -24,12 +24,13 @@ following subsections.
|
||||
|
||||
Kill switch
|
||||
-----------
|
||||
``enable`` accepts different values to enable or disable the following
|
||||
components. Its default value depends on ``CONFIG_LRU_GEN_ENABLED``.
|
||||
All the components should be enabled unless some of them have
|
||||
unforeseen side effects. Writing to ``enable`` has no effect when a
|
||||
component is not supported by the hardware, and valid values will be
|
||||
accepted even when the main switch is off.
|
||||
``enabled`` accepts different values to enable or disable the
|
||||
following components. Its default value depends on
|
||||
``CONFIG_LRU_GEN_ENABLED``. All the components should be enabled
|
||||
unless some of them have unforeseen side effects. Writing to
|
||||
``enabled`` has no effect when a component is not supported by the
|
||||
hardware, and valid values will be accepted even when the main switch
|
||||
is off.
|
||||
|
||||
====== ===============================================================
|
||||
Values Components
|
||||
@@ -39,7 +40,9 @@ Values Components
|
||||
batches, when MMU sets it (e.g., on x86). This behavior can
|
||||
theoretically worsen lock contention (mmap_lock). If it is
|
||||
disabled, the multi-gen LRU will suffer a minor performance
|
||||
degradation.
|
||||
degradation for workloads that contiguously map hot pages,
|
||||
whose accessed bits can be otherwise cleared by fewer larger
|
||||
batches.
|
||||
0x0004 Clearing the accessed bit in non-leaf page table entries as
|
||||
well, when MMU sets it (e.g., on x86). This behavior was not
|
||||
verified on x86 varieties other than Intel and AMD. If it is
|
||||
@@ -90,18 +93,19 @@ evicted generations in this file.
|
||||
|
||||
Working set estimation
|
||||
----------------------
|
||||
Working set estimation measures how much memory an application
|
||||
requires in a given time interval, and it is usually done with little
|
||||
impact on the performance of the application. E.g., data centers want
|
||||
to optimize job scheduling (bin packing) to improve memory
|
||||
utilizations. When a new job comes in, the job scheduler needs to find
|
||||
out whether each server it manages can allocate a certain amount of
|
||||
memory for this new job before it can pick a candidate. To do so, this
|
||||
job scheduler needs to estimate the working sets of the existing jobs.
|
||||
Working set estimation measures how much memory an application needs
|
||||
in a given time interval, and it is usually done with little impact on
|
||||
the performance of the application. E.g., data centers want to
|
||||
optimize job scheduling (bin packing) to improve memory utilizations.
|
||||
When a new job comes in, the job scheduler needs to find out whether
|
||||
each server it manages can allocate a certain amount of memory for
|
||||
this new job before it can pick a candidate. To do so, the job
|
||||
scheduler needs to estimate the working sets of the existing jobs.
|
||||
|
||||
When it is read, ``lru_gen`` returns a histogram of numbers of pages
|
||||
accessed over different time intervals for each memcg and node.
|
||||
``MAX_NR_GENS`` decides the number of bins for each histogram.
|
||||
``MAX_NR_GENS`` decides the number of bins for each histogram. The
|
||||
histograms are noncumulative.
|
||||
::
|
||||
|
||||
memcg memcg_id memcg_path
|
||||
@@ -110,43 +114,49 @@ accessed over different time intervals for each memcg and node.
|
||||
...
|
||||
max_gen_nr age_in_ms nr_anon_pages nr_file_pages
|
||||
|
||||
Each generation contains an estimated number of pages that have been
|
||||
accessed within ``age_in_ms`` non-cumulatively. E.g., ``min_gen_nr``
|
||||
contains the coldest pages and ``max_gen_nr`` contains the hottest
|
||||
pages, since ``age_in_ms`` of the former is the largest and that of
|
||||
the latter is the smallest.
|
||||
Each bin contains an estimated number of pages that have been accessed
|
||||
within ``age_in_ms``. E.g., ``min_gen_nr`` contains the coldest pages
|
||||
and ``max_gen_nr`` contains the hottest pages, since ``age_in_ms`` of
|
||||
the former is the largest and that of the latter is the smallest.
|
||||
|
||||
Users can write ``+ memcg_id node_id max_gen_nr
|
||||
[can_swap[full_scan]]`` to ``lru_gen`` to create a new generation
|
||||
``max_gen_nr+1``. ``can_swap`` defaults to the swap setting and, if it
|
||||
is set to ``1``, it forces the scan of anon pages when swap is off.
|
||||
``full_scan`` defaults to ``1`` and, if it is set to ``0``, it reduces
|
||||
the overhead as well as the coverage when scanning page tables.
|
||||
Users can write the following command to ``lru_gen`` to create a new
|
||||
generation ``max_gen_nr+1``:
|
||||
|
||||
A typical use case is that a job scheduler writes to ``lru_gen`` at a
|
||||
``+ memcg_id node_id max_gen_nr [can_swap [force_scan]]``
|
||||
|
||||
``can_swap`` defaults to the swap setting and, if it is set to ``1``,
|
||||
it forces the scan of anon pages when swap is off, and vice versa.
|
||||
``force_scan`` defaults to ``1`` and, if it is set to ``0``, it
|
||||
employs heuristics to reduce the overhead, which is likely to reduce
|
||||
the coverage as well.
|
||||
|
||||
A typical use case is that a job scheduler runs this command at a
|
||||
certain time interval to create new generations, and it ranks the
|
||||
servers it manages based on the sizes of their cold memory defined by
|
||||
servers it manages based on the sizes of their cold pages defined by
|
||||
this time interval.
|
||||
|
||||
Proactive reclaim
|
||||
-----------------
|
||||
Proactive reclaim induces memory reclaim when there is no memory
|
||||
pressure and usually targets cold memory only. E.g., when a new job
|
||||
comes in, the job scheduler wants to proactively reclaim memory on the
|
||||
server it has selected to improve the chance of successfully landing
|
||||
Proactive reclaim induces page reclaim when there is no memory
|
||||
pressure. It usually targets cold pages only. E.g., when a new job
|
||||
comes in, the job scheduler wants to proactively reclaim cold pages on
|
||||
the server it selected, to improve the chance of successfully landing
|
||||
this new job.
|
||||
|
||||
Users can write ``- memcg_id node_id min_gen_nr [swappiness
|
||||
[nr_to_reclaim]]`` to ``lru_gen`` to evict generations less than or
|
||||
equal to ``min_gen_nr``. Note that ``min_gen_nr`` should be less than
|
||||
``max_gen_nr-1`` as ``max_gen_nr`` and ``max_gen_nr-1`` are not fully
|
||||
aged and therefore cannot be evicted. ``swappiness`` overrides the
|
||||
default value in ``/proc/sys/vm/swappiness``. ``nr_to_reclaim`` limits
|
||||
the number of pages to evict.
|
||||
Users can write the following command to ``lru_gen`` to evict
|
||||
generations less than or equal to ``min_gen_nr``.
|
||||
|
||||
A typical use case is that a job scheduler writes to ``lru_gen``
|
||||
before it tries to land a new job on a server, and if it fails to
|
||||
materialize the cold memory without impacting the existing jobs on
|
||||
this server, it retries on the next server according to the ranking
|
||||
result obtained from the working set estimation step described
|
||||
earlier.
|
||||
``- memcg_id node_id min_gen_nr [swappiness [nr_to_reclaim]]``
|
||||
|
||||
``min_gen_nr`` should be less than ``max_gen_nr-1``, since
|
||||
``max_gen_nr`` and ``max_gen_nr-1`` are not fully aged (equivalent to
|
||||
the active list) and therefore cannot be evicted. ``swappiness``
|
||||
overrides the default value in ``/proc/sys/vm/swappiness``.
|
||||
``nr_to_reclaim`` limits the number of pages to evict.
|
||||
|
||||
A typical use case is that a job scheduler runs this command before it
|
||||
tries to land a new job on a server. If it fails to materialize enough
|
||||
cold pages because of the overestimation, it retries on the next
|
||||
server according to the ranking result obtained from the working set
|
||||
estimation step. This less forceful approach limits the impacts on the
|
||||
existing jobs.
|
||||
|
||||
@@ -12,12 +12,14 @@ maintainers:
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: arm,cmn-600
|
||||
enum:
|
||||
- arm,cmn-600
|
||||
- arm,ci-700
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: Physical address of the base (PERIPHBASE) and
|
||||
size (up to 64MB) of the configuration address space.
|
||||
size of the configuration address space.
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
@@ -31,14 +33,23 @@ properties:
|
||||
|
||||
arm,root-node:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Offset from PERIPHBASE of the configuration
|
||||
discovery node (see TRM definition of ROOTNODEBASE).
|
||||
description: Offset from PERIPHBASE of CMN-600's configuration
|
||||
discovery node (see TRM definition of ROOTNODEBASE). Not
|
||||
relevant for newer CMN/CI products.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- arm,root-node
|
||||
|
||||
if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: arm,cmn-600
|
||||
then:
|
||||
required:
|
||||
- arm,root-node
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
|
||||
@@ -31,6 +31,10 @@ properties:
|
||||
description: Required for devices making accesses thru an IOMMU.
|
||||
maxItems: 1
|
||||
|
||||
wakeup-source:
|
||||
type: boolean
|
||||
description: Required for setting irq of a virtio_mmio device as wakeup source.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
@@ -342,6 +342,11 @@ discard_unit=%s Control discard unit, the argument can be "block", "segment"
|
||||
default, it is helpful for large sized SMR or ZNS devices to
|
||||
reduce memory cost by getting rid of fs metadata supports small
|
||||
discard.
|
||||
memory=%s Control memory mode. This supports "normal" and "low" modes.
|
||||
"low" mode is introduced to support low memory devices.
|
||||
Because of the nature of low memory devices, in this mode, f2fs
|
||||
will try to save memory sometimes by sacrificing performance.
|
||||
"normal" mode is the default mode and same as before.
|
||||
======================== ============================================================
|
||||
|
||||
Debugfs Entries
|
||||
|
||||
@@ -337,6 +337,7 @@ Currently, the following pairs of encryption modes are supported:
|
||||
- AES-256-XTS for contents and AES-256-CTS-CBC for filenames
|
||||
- AES-128-CBC for contents and AES-128-CTS-CBC for filenames
|
||||
- Adiantum for both contents and filenames
|
||||
- AES-256-XTS for contents and AES-256-HCTR2 for filenames (v2 policies only)
|
||||
|
||||
If unsure, you should use the (AES-256-XTS, AES-256-CTS-CBC) pair.
|
||||
|
||||
@@ -357,6 +358,17 @@ To use Adiantum, CONFIG_CRYPTO_ADIANTUM must be enabled. Also, fast
|
||||
implementations of ChaCha and NHPoly1305 should be enabled, e.g.
|
||||
CONFIG_CRYPTO_CHACHA20_NEON and CONFIG_CRYPTO_NHPOLY1305_NEON for ARM.
|
||||
|
||||
AES-256-HCTR2 is another true wide-block encryption mode that is intended for
|
||||
use on CPUs with dedicated crypto instructions. AES-256-HCTR2 has the property
|
||||
that a bitflip in the plaintext changes the entire ciphertext. This property
|
||||
makes it desirable for filename encryption since initialization vectors are
|
||||
reused within a directory. For more details on AES-256-HCTR2, see the paper
|
||||
"Length-preserving encryption with HCTR2"
|
||||
(https://eprint.iacr.org/2021/1441.pdf). To use AES-256-HCTR2,
|
||||
CONFIG_CRYPTO_HCTR2 must be enabled. Also, fast implementations of XCTR and
|
||||
POLYVAL should be enabled, e.g. CRYPTO_POLYVAL_ARM64_CE and
|
||||
CRYPTO_AES_ARM64_CE_BLK for ARM64.
|
||||
|
||||
New encryption modes can be added relatively easily, without changes
|
||||
to individual filesystems. However, authenticated encryption (AE)
|
||||
modes are not currently supported because of the difficulty of dealing
|
||||
@@ -404,11 +416,11 @@ alternatively has the file's nonce (for `DIRECT_KEY policies`_) or
|
||||
inode number (for `IV_INO_LBLK_64 policies`_) included in the IVs.
|
||||
Thus, IV reuse is limited to within a single directory.
|
||||
|
||||
With CTS-CBC, the IV reuse means that when the plaintext filenames
|
||||
share a common prefix at least as long as the cipher block size (16
|
||||
bytes for AES), the corresponding encrypted filenames will also share
|
||||
a common prefix. This is undesirable. Adiantum does not have this
|
||||
weakness, as it is a wide-block encryption mode.
|
||||
With CTS-CBC, the IV reuse means that when the plaintext filenames share a
|
||||
common prefix at least as long as the cipher block size (16 bytes for AES), the
|
||||
corresponding encrypted filenames will also share a common prefix. This is
|
||||
undesirable. Adiantum and HCTR2 do not have this weakness, as they are
|
||||
wide-block encryption modes.
|
||||
|
||||
All supported filenames encryption modes accept any plaintext length
|
||||
>= 16 bytes; cipher block alignment is not required. However,
|
||||
|
||||
@@ -16,6 +16,20 @@ but then try the legacy ones, too.
|
||||
|
||||
Notice there's a list of functions in include/dt-bindings/leds/common.h .
|
||||
|
||||
* Gamepads and joysticks
|
||||
|
||||
Game controllers may feature LEDs to indicate a player number. This is commonly
|
||||
used on game consoles in which multiple controllers can be connected to a system.
|
||||
The "player LEDs" are then programmed with a pattern to indicate a particular
|
||||
player. For example, a game controller with 4 LEDs, may be programmed with "x---"
|
||||
to indicate player 1, "-x--" to indicate player 2 etcetera where "x" means on.
|
||||
Input drivers can utilize the LED class to expose the individual player LEDs
|
||||
of a game controller using the function "player".
|
||||
Note: tracking and management of Player IDs is the responsibility of user space,
|
||||
though drivers may pick a default value.
|
||||
|
||||
Good: "input*:*:player-{1,2,3,4,5}
|
||||
|
||||
* Keyboards
|
||||
|
||||
Good: "input*:*:capslock"
|
||||
|
||||
@@ -784,6 +784,7 @@ The uvc function provides these attributes in its function directory:
|
||||
streaming_maxpacket maximum packet size this endpoint is capable of
|
||||
sending or receiving when this configuration is
|
||||
selected
|
||||
function_name name of the interface
|
||||
=================== ================================================
|
||||
|
||||
There are also "control" and "streaming" subdirectories, each of which contain
|
||||
|
||||
@@ -22,15 +22,15 @@ The design objectives are:
|
||||
The representation of access recency is at the core of all LRU
|
||||
implementations. In the multi-gen LRU, each generation represents a
|
||||
group of pages with similar access recency. Generations establish a
|
||||
common frame of reference and therefore help make better choices,
|
||||
e.g., between different memcgs on a computer or different computers in
|
||||
a data center (for job scheduling).
|
||||
(time-based) common frame of reference and therefore help make better
|
||||
choices, e.g., between different memcgs on a computer or different
|
||||
computers in a data center (for job scheduling).
|
||||
|
||||
Exploiting spatial locality improves efficiency when gathering the
|
||||
accessed bit. A rmap walk targets a single page and does not try to
|
||||
profit from discovering a young PTE. A page table walk can sweep all
|
||||
the young PTEs in an address space, but the address space can be too
|
||||
large to make a profit. The key is to optimize both methods and use
|
||||
sparse to make a profit. The key is to optimize both methods and use
|
||||
them in combination.
|
||||
|
||||
Fast paths reduce code complexity and runtime overhead. Unmapped pages
|
||||
@@ -38,7 +38,7 @@ do not require TLB flushes; clean pages do not require writeback.
|
||||
These facts are only helpful when other conditions, e.g., access
|
||||
recency, are similar. With generations as a common frame of reference,
|
||||
additional factors stand out. But obvious choices might not be good
|
||||
choices; thus self-correction is required.
|
||||
choices; thus self-correction is necessary.
|
||||
|
||||
The benefits of simple self-correcting heuristics are self-evident.
|
||||
Again, with generations as a common frame of reference, this becomes
|
||||
@@ -64,7 +64,7 @@ The protection of the former channel is by design stronger because:
|
||||
3. The penalty of underprotecting the former channel is higher because
|
||||
applications usually do not prepare themselves for major page
|
||||
faults like they do for blocked I/O. E.g., GUI applications
|
||||
commonly use dedicated I/O threads to avoid blocking the rendering
|
||||
commonly use dedicated I/O threads to avoid blocking rendering
|
||||
threads.
|
||||
|
||||
There are also two access patterns:
|
||||
@@ -88,19 +88,19 @@ pages can be evicted regardless of swap constraints. These three
|
||||
variables are monotonically increasing.
|
||||
|
||||
Generation numbers are truncated into ``order_base_2(MAX_NR_GENS+1)``
|
||||
bits in order to fit into the gen counter in ``page->flags``. Each
|
||||
bits in order to fit into the gen counter in ``folio->flags``. Each
|
||||
truncated generation number is an index to ``lrugen->lists[]``. The
|
||||
sliding window technique is used to track at least ``MIN_NR_GENS`` and
|
||||
at most ``MAX_NR_GENS`` generations. The gen counter stores a value
|
||||
within ``[1, MAX_NR_GENS]`` while a page is on one of
|
||||
``lrugen->lists[]``; otherwise it stores zero.
|
||||
|
||||
Each generation is divided into multiple tiers. Tiers represent
|
||||
different ranges of numbers of accesses through file descriptors. A
|
||||
page accessed ``N`` times through file descriptors is in tier
|
||||
``order_base_2(N)``. In contrast to moving across generations, which
|
||||
requires the LRU lock, moving across tiers only requires operations on
|
||||
``page->flags`` and therefore has a negligible cost. A feedback loop
|
||||
Each generation is divided into multiple tiers. A page accessed ``N``
|
||||
times through file descriptors is in tier ``order_base_2(N)``. Unlike
|
||||
generations, tiers do not have dedicated ``lrugen->lists[]``. In
|
||||
contrast to moving across generations, which requires the LRU lock,
|
||||
moving across tiers only involves atomic operations on
|
||||
``folio->flags`` and therefore has a negligible cost. A feedback loop
|
||||
modeled after the PID controller monitors refaults over all the tiers
|
||||
from anon and file types and decides which tiers from which types to
|
||||
evict or protect.
|
||||
@@ -118,12 +118,11 @@ demotion of cold pages happens consequently when it increments
|
||||
``max_seq``. The aging uses page table walks and rmap walks to find
|
||||
young PTEs. For the former, it iterates ``lruvec_memcg()->mm_list``
|
||||
and calls ``walk_page_range()`` with each ``mm_struct`` on this list
|
||||
to scan PTEs. On finding a young PTE, it clears the accessed bit and
|
||||
updates the gen counter of the page mapped by this PTE to
|
||||
``(max_seq%MAX_NR_GENS)+1``. After each iteration of this list, it
|
||||
increments ``max_seq``. For the latter, when the eviction walks the
|
||||
rmap and finds a young PTE, the aging scans the adjacent PTEs and
|
||||
follows the same steps just described.
|
||||
to scan PTEs, and after each iteration, it increments ``max_seq``. For
|
||||
the latter, when the eviction walks the rmap and finds a young PTE,
|
||||
the aging scans the adjacent PTEs. For both, on finding a young PTE,
|
||||
the aging clears the accessed bit and updates the gen counter of the
|
||||
page mapped by this PTE to ``(max_seq%MAX_NR_GENS)+1``.
|
||||
|
||||
Eviction
|
||||
--------
|
||||
@@ -134,12 +133,12 @@ evict from, it first compares ``min_seq[]`` to select the older type.
|
||||
If both types are equally old, it selects the one whose first tier has
|
||||
a lower refault percentage. The first tier contains single-use
|
||||
unmapped clean pages, which are the best bet. The eviction sorts a
|
||||
page according to the gen counter if the aging has found this page
|
||||
accessed through page tables and updated the gen counter. It also
|
||||
page according to its gen counter if the aging has found this page
|
||||
accessed through page tables and updated its gen counter. It also
|
||||
moves a page to the next generation, i.e., ``min_seq+1``, if this page
|
||||
was accessed multiple times through file descriptors and the feedback
|
||||
loop has detected outlying refaults from the tier this page is in. To
|
||||
do this, the feedback loop uses the first tier as the baseline, for
|
||||
this end, the feedback loop uses the first tier as the baseline, for
|
||||
the reason stated earlier.
|
||||
|
||||
Summary
|
||||
@@ -147,14 +146,14 @@ Summary
|
||||
The multi-gen LRU can be disassembled into the following parts:
|
||||
|
||||
* Generations
|
||||
* Page table walks
|
||||
* Rmap walks
|
||||
* Page table walks
|
||||
* Bloom filters
|
||||
* The PID controller
|
||||
* PID controller
|
||||
|
||||
The aging and the eviction is a producer-consumer model; specifically,
|
||||
the latter drives the former by the sliding window over generations.
|
||||
Within the aging, rmap walks drive page table walks by inserting hot
|
||||
densely populated page tables to the Bloom filters. Within the
|
||||
eviction, the PID controller uses refaults as the feedback to select
|
||||
types to evict and tiers to protect.
|
||||
The aging and the eviction form a producer-consumer model;
|
||||
specifically, the latter drives the former by the sliding window over
|
||||
generations. Within the aging, rmap walks drive page table walks by
|
||||
inserting hot densely populated page tables to the Bloom filters.
|
||||
Within the eviction, the PID controller uses refaults as the feedback
|
||||
to select types to evict and tiers to protect.
|
||||
|
||||
4
Makefile
4
Makefile
@@ -1954,7 +1954,9 @@ $(clean-dirs):
|
||||
|
||||
clean: $(clean-dirs)
|
||||
$(call cmd,rmfiles)
|
||||
@find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \
|
||||
@find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) \
|
||||
$(if $(filter-out arch/$(SRCARCH)/boot/dts, $(dtstree)), $(dtstree)) \
|
||||
$(RCS_FIND_IGNORE) \
|
||||
\( -name '*.[aios]' -o -name '*.ko' -o -name '.*.cmd' \
|
||||
-o -name '*.ko.*' \
|
||||
-o -name '*.dtb' -o -name '*.dtbo' -o -name '*.dtb.S' -o -name '*.dt.yaml' \
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
# required by zram.ko
|
||||
__alloc_percpu
|
||||
android_kmalloc_64_create
|
||||
bio_endio
|
||||
bio_end_io_acct_remapped
|
||||
bio_start_io_acct
|
||||
@@ -81,7 +82,6 @@
|
||||
strcpy
|
||||
strlcpy
|
||||
strlen
|
||||
__sysfs_match_string
|
||||
sysfs_streq
|
||||
unregister_blkdev
|
||||
up_read
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
2016
android/abi_gki_aarch64_amlogic
Normal file
2016
android/abi_gki_aarch64_amlogic
Normal file
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,9 @@
|
||||
# commonly used symbols
|
||||
add_uevent_var
|
||||
alloc_io_pgtable_ops
|
||||
__alloc_skb
|
||||
alloc_workqueue
|
||||
android_kmalloc_64_create
|
||||
__arch_copy_from_user
|
||||
__arch_copy_to_user
|
||||
arm64_const_caps_ready
|
||||
@@ -16,8 +18,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
|
||||
@@ -27,6 +32,8 @@
|
||||
cdev_init
|
||||
__cfi_slowpath_diag
|
||||
__check_object_size
|
||||
__class_register
|
||||
class_unregister
|
||||
clk_bulk_disable
|
||||
clk_bulk_enable
|
||||
clk_bulk_prepare
|
||||
@@ -53,11 +60,20 @@
|
||||
__const_udelay
|
||||
consume_skb
|
||||
_copy_from_iter
|
||||
__cpuhp_remove_state
|
||||
__cpuhp_setup_state
|
||||
cpu_hwcap_keys
|
||||
cpu_hwcaps
|
||||
cpumask_next
|
||||
cpu_number
|
||||
__cpu_online_mask
|
||||
__cpu_possible_mask
|
||||
crc32_le
|
||||
crypto_alloc_shash
|
||||
crypto_destroy_tfm
|
||||
crypto_shash_setkey
|
||||
crypto_shash_update
|
||||
_ctype
|
||||
debugfs_create_dir
|
||||
debugfs_create_file
|
||||
debugfs_create_u32
|
||||
@@ -65,13 +81,17 @@
|
||||
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_get_regmap
|
||||
device_add
|
||||
device_del
|
||||
device_find_child
|
||||
device_for_each_child
|
||||
device_get_match_data
|
||||
@@ -180,6 +200,7 @@
|
||||
dma_sync_single_for_device
|
||||
dma_unmap_page_attrs
|
||||
dma_unmap_sg_attrs
|
||||
down_read
|
||||
driver_register
|
||||
driver_unregister
|
||||
drm_add_edid_modes
|
||||
@@ -201,16 +222,22 @@
|
||||
drm_kms_helper_hotplug_event
|
||||
drm_mode_vrefresh
|
||||
enable_irq
|
||||
eth_type_trans
|
||||
event_triggers_call
|
||||
_find_first_bit
|
||||
_find_first_zero_bit
|
||||
_find_next_bit
|
||||
finish_wait
|
||||
firmware_request_nowarn
|
||||
flush_delayed_work
|
||||
flush_work
|
||||
flush_workqueue
|
||||
free_io_pgtable_ops
|
||||
free_irq
|
||||
__free_pages
|
||||
free_pages
|
||||
free_percpu
|
||||
gcd
|
||||
generic_handle_domain_irq
|
||||
generic_handle_irq
|
||||
geni_icc_disable
|
||||
@@ -278,6 +305,7 @@
|
||||
init_net
|
||||
__init_swait_queue_head
|
||||
init_timer_key
|
||||
init_uts_ns
|
||||
init_wait_entry
|
||||
__init_waitqueue_head
|
||||
iomem_resource
|
||||
@@ -328,24 +356,38 @@
|
||||
kernel_sendmsg
|
||||
kfree
|
||||
kfree_const
|
||||
kfree_sensitive
|
||||
kfree_skb
|
||||
__kmalloc
|
||||
kmalloc_caches
|
||||
kmalloc_order_trace
|
||||
kmem_cache_alloc
|
||||
kmem_cache_alloc_trace
|
||||
kmem_cache_create
|
||||
kmem_cache_destroy
|
||||
kmem_cache_free
|
||||
kmemdup
|
||||
kstrdup
|
||||
kstrdup_const
|
||||
kstrtoint
|
||||
kstrtouint
|
||||
kthread_create_on_node
|
||||
kthread_should_stop
|
||||
kthread_stop
|
||||
ktime_get
|
||||
ktime_get_mono_fast_ns
|
||||
ktime_get_real_ts64
|
||||
ktime_get_with_offset
|
||||
kvfree
|
||||
kvfree_call_rcu
|
||||
kvmalloc_node
|
||||
__list_add_valid
|
||||
__list_del_entry_valid
|
||||
__local_bh_enable_ip
|
||||
log_post_read_mmio
|
||||
log_post_write_mmio
|
||||
log_read_mmio
|
||||
log_write_mmio
|
||||
mbox_client_txdone
|
||||
mbox_free_channel
|
||||
mbox_request_channel
|
||||
@@ -354,6 +396,7 @@
|
||||
__memcpy_fromio
|
||||
__memcpy_toio
|
||||
memmove
|
||||
memparse
|
||||
memremap
|
||||
memset
|
||||
__memset_io
|
||||
@@ -380,12 +423,16 @@
|
||||
__napi_schedule
|
||||
napi_schedule_prep
|
||||
__netdev_alloc_skb
|
||||
netdev_err
|
||||
netdev_info
|
||||
netif_napi_add
|
||||
__netif_napi_del
|
||||
netif_tx_wake_queue
|
||||
__nla_parse
|
||||
nla_put
|
||||
no_llseek
|
||||
nr_cpu_ids
|
||||
__num_online_cpus
|
||||
nvmem_cell_get
|
||||
nvmem_cell_put
|
||||
nvmem_cell_read
|
||||
@@ -433,8 +480,11 @@
|
||||
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
|
||||
pci_disable_device
|
||||
@@ -449,6 +499,7 @@
|
||||
pci_request_region
|
||||
pci_set_master
|
||||
pci_unregister_driver
|
||||
__per_cpu_offset
|
||||
perf_trace_buf_alloc
|
||||
perf_trace_run_bpf_submit
|
||||
phy_exit
|
||||
@@ -499,6 +550,8 @@
|
||||
radix_tree_next_chunk
|
||||
___ratelimit
|
||||
rational_best_approximation
|
||||
_raw_read_lock
|
||||
_raw_read_unlock
|
||||
_raw_spin_lock
|
||||
_raw_spin_lock_bh
|
||||
_raw_spin_lock_irq
|
||||
@@ -507,8 +560,13 @@
|
||||
_raw_spin_unlock_bh
|
||||
_raw_spin_unlock_irq
|
||||
_raw_spin_unlock_irqrestore
|
||||
_raw_write_lock
|
||||
_raw_write_lock_bh
|
||||
_raw_write_unlock
|
||||
_raw_write_unlock_bh
|
||||
rb_erase
|
||||
rb_insert_color
|
||||
rcu_barrier
|
||||
__rcu_read_lock
|
||||
__rcu_read_unlock
|
||||
rdev_get_drvdata
|
||||
@@ -516,8 +574,10 @@
|
||||
regcache_cache_only
|
||||
regcache_mark_dirty
|
||||
regcache_sync
|
||||
register_netdevice_notifier
|
||||
register_reboot_notifier
|
||||
__register_rpmsg_driver
|
||||
register_shrinker
|
||||
regmap_bulk_read
|
||||
regmap_bulk_write
|
||||
regmap_field_read
|
||||
@@ -549,7 +609,9 @@
|
||||
request_threaded_irq
|
||||
reset_control_assert
|
||||
reset_control_deassert
|
||||
reset_control_put
|
||||
reset_control_reset
|
||||
round_jiffies_up
|
||||
rpmsg_register_device
|
||||
rpmsg_send
|
||||
rpmsg_unregister_device
|
||||
@@ -561,6 +623,9 @@
|
||||
rproc_del
|
||||
rproc_free
|
||||
rproc_remove_subdev
|
||||
rtnl_is_locked
|
||||
rtnl_lock
|
||||
rtnl_unlock
|
||||
sched_set_fifo_low
|
||||
schedule
|
||||
schedule_timeout
|
||||
@@ -577,10 +642,14 @@
|
||||
simple_read_from_buffer
|
||||
single_open
|
||||
single_release
|
||||
skb_clone
|
||||
skb_copy
|
||||
skb_copy_bits
|
||||
skb_dequeue
|
||||
skb_pull
|
||||
skb_push
|
||||
skb_put
|
||||
skb_queue_head
|
||||
skb_queue_purge
|
||||
skb_queue_tail
|
||||
skb_trim
|
||||
@@ -633,6 +702,7 @@
|
||||
strnlen
|
||||
strpbrk
|
||||
strscpy
|
||||
strscpy_pad
|
||||
strsep
|
||||
__sw_hweight16
|
||||
__sw_hweight32
|
||||
@@ -646,11 +716,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
|
||||
@@ -665,9 +737,14 @@
|
||||
__ubsan_handle_cfi_check_fail_abort
|
||||
__udelay
|
||||
unregister_chrdev_region
|
||||
unregister_netdevice_notifier
|
||||
unregister_netdevice_queue
|
||||
unregister_reboot_notifier
|
||||
unregister_rpmsg_driver
|
||||
unregister_shrinker
|
||||
up_read
|
||||
usb_disabled
|
||||
__usecs_to_jiffies
|
||||
usleep_range_state
|
||||
vabits_actual
|
||||
vfree
|
||||
@@ -707,27 +784,20 @@
|
||||
iommu_fwspec_free
|
||||
iommu_group_ref_get
|
||||
of_dma_is_coherent
|
||||
param_ops_int
|
||||
pci_bus_type
|
||||
pci_device_group
|
||||
report_iommu_fault
|
||||
|
||||
# required by ath.ko
|
||||
|
||||
# required by ath10k_core.ko
|
||||
cpu_latency_qos_add_request
|
||||
cpu_latency_qos_remove_request
|
||||
crc32_le
|
||||
device_get_mac_address
|
||||
device_set_wakeup_enable
|
||||
guid_gen
|
||||
init_uts_ns
|
||||
__kfifo_alloc
|
||||
__kfifo_free
|
||||
param_ops_ulong
|
||||
skb_copy
|
||||
skb_dequeue_tail
|
||||
skb_queue_head
|
||||
skb_realloc_headroom
|
||||
strlcat
|
||||
|
||||
@@ -742,14 +812,8 @@
|
||||
iommu_map
|
||||
|
||||
# required by ath11k.ko
|
||||
crypto_alloc_shash
|
||||
crypto_destroy_tfm
|
||||
crypto_shash_final
|
||||
crypto_shash_setkey
|
||||
crypto_shash_update
|
||||
memcpy_and_pad
|
||||
rtnl_lock
|
||||
rtnl_unlock
|
||||
|
||||
# required by ath11k_ahb.ko
|
||||
rproc_boot
|
||||
@@ -777,6 +841,56 @@
|
||||
vchan_tx_desc_free
|
||||
vchan_tx_submit
|
||||
|
||||
# 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
|
||||
netif_rx_ni
|
||||
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
|
||||
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
|
||||
@@ -789,7 +903,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
|
||||
@@ -808,6 +921,10 @@
|
||||
mmc_cqe_request_done
|
||||
|
||||
# required by display-connector.ko
|
||||
drm_atomic_get_new_bridge_state
|
||||
drm_atomic_helper_bridge_destroy_state
|
||||
drm_atomic_helper_bridge_duplicate_state
|
||||
drm_atomic_helper_bridge_reset
|
||||
drm_probe_ddc
|
||||
of_get_i2c_adapter_by_node
|
||||
|
||||
@@ -816,7 +933,6 @@
|
||||
devm_extcon_dev_register
|
||||
extcon_set_state_sync
|
||||
gpiod_set_debounce
|
||||
system_power_efficient_wq
|
||||
|
||||
# required by fastrpc.ko
|
||||
dma_buf_attach
|
||||
@@ -827,7 +943,6 @@
|
||||
dma_buf_put
|
||||
dma_buf_unmap_attachment
|
||||
dma_get_sgtable_attrs
|
||||
down_read
|
||||
__find_vma
|
||||
__mmap_lock_do_trace_acquire_returned
|
||||
__mmap_lock_do_trace_released
|
||||
@@ -838,7 +953,6 @@
|
||||
__tracepoint_mmap_lock_acquire_returned
|
||||
__tracepoint_mmap_lock_released
|
||||
__tracepoint_mmap_lock_start_locking
|
||||
up_read
|
||||
|
||||
# required by gpio-regulator.ko
|
||||
devm_gpiod_get_index
|
||||
@@ -848,20 +962,12 @@
|
||||
gpiod_get_optional
|
||||
|
||||
# required by gpu-sched.ko
|
||||
call_rcu
|
||||
dma_fence_add_callback
|
||||
dma_fence_remove_callback
|
||||
kmem_cache_alloc
|
||||
kmem_cache_create
|
||||
kmem_cache_destroy
|
||||
kmem_cache_free
|
||||
kthread_park
|
||||
kthread_parkme
|
||||
kthread_should_park
|
||||
kthread_should_stop
|
||||
kthread_stop
|
||||
kthread_unpark
|
||||
rcu_barrier
|
||||
wait_for_completion
|
||||
|
||||
# required by i2c-designware-core.ko
|
||||
@@ -908,9 +1014,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
|
||||
@@ -948,6 +1051,77 @@
|
||||
pm_clk_resume
|
||||
pm_clk_suspend
|
||||
|
||||
# required by mac80211.ko
|
||||
alloc_netdev_mqs
|
||||
__alloc_percpu_gfp
|
||||
arc4_crypt
|
||||
arc4_setkey
|
||||
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_alloc_name
|
||||
dev_fetch_sw_netstats
|
||||
_dev_printk
|
||||
dev_queue_xmit
|
||||
ether_setup
|
||||
eth_mac_addr
|
||||
ethtool_op_get_link
|
||||
free_netdev
|
||||
get_random_u32
|
||||
__hw_addr_init
|
||||
__hw_addr_sync
|
||||
__hw_addr_unsync
|
||||
kernel_param_lock
|
||||
kernel_param_unlock
|
||||
kfree_skb_list
|
||||
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_rx
|
||||
netif_tx_stop_all_queues
|
||||
net_ratelimit
|
||||
prandom_bytes
|
||||
___pskb_trim
|
||||
rb_next
|
||||
rb_prev
|
||||
register_inet6addr_notifier
|
||||
register_inetaddr_notifier
|
||||
rhashtable_free_and_destroy
|
||||
rhashtable_insert_slow
|
||||
rhltable_init
|
||||
__rht_bucket_nested
|
||||
rht_bucket_nested
|
||||
rht_bucket_nested_insert
|
||||
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_get_hash
|
||||
__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
|
||||
@@ -971,12 +1145,9 @@
|
||||
dql_completed
|
||||
dql_reset
|
||||
free_candev
|
||||
netdev_err
|
||||
netdev_info
|
||||
netdev_notice
|
||||
netdev_warn
|
||||
netif_schedule_queue
|
||||
netif_tx_wake_queue
|
||||
open_candev
|
||||
register_candev
|
||||
regmap_get_val_bytes
|
||||
@@ -994,8 +1165,6 @@
|
||||
__vmalloc
|
||||
|
||||
# required by mhi.ko
|
||||
device_add
|
||||
device_del
|
||||
pm_wakeup_dev_event
|
||||
prandom_u32
|
||||
_raw_read_lock_bh
|
||||
@@ -1016,8 +1185,6 @@
|
||||
# required by msm.ko
|
||||
__bitmap_andnot
|
||||
__bitmap_weight
|
||||
bpf_trace_run6
|
||||
bpf_trace_run8
|
||||
clk_get_parent
|
||||
clk_set_parent
|
||||
component_add
|
||||
@@ -1026,10 +1193,8 @@
|
||||
component_master_add_with_match
|
||||
component_master_del
|
||||
component_unbind_all
|
||||
_ctype
|
||||
debugfs_create_bool
|
||||
debugfs_create_u64
|
||||
del_timer
|
||||
dev_coredumpm
|
||||
devfreq_cooling_unregister
|
||||
devfreq_recommended_opp
|
||||
@@ -1082,9 +1247,11 @@
|
||||
drm_atomic_private_obj_init
|
||||
__drm_atomic_state_free
|
||||
drm_bridge_attach
|
||||
drm_bridge_connector_enable_hpd
|
||||
drm_bridge_connector_init
|
||||
drm_bridge_detect
|
||||
drm_compat_ioctl
|
||||
drm_connector_has_possible_encoder
|
||||
drm_connector_init_with_ddc
|
||||
drm_connector_list_iter_begin
|
||||
drm_connector_list_iter_end
|
||||
drm_connector_list_iter_next
|
||||
@@ -1247,10 +1414,7 @@
|
||||
kthread_create_worker
|
||||
kthread_destroy_worker
|
||||
kthread_queue_work
|
||||
kvfree
|
||||
kvmalloc_node
|
||||
memdup_user_nul
|
||||
memparse
|
||||
mipi_dsi_create_packet
|
||||
mipi_dsi_host_register
|
||||
mipi_dsi_host_unregister
|
||||
@@ -1271,21 +1435,14 @@
|
||||
of_graph_get_next_endpoint
|
||||
of_graph_get_remote_port_parent
|
||||
of_icc_get
|
||||
param_ops_charp
|
||||
phy_calibrate
|
||||
phy_configure
|
||||
pid_task
|
||||
pm_runtime_get_if_active
|
||||
put_pid
|
||||
put_unused_fd
|
||||
_raw_read_lock
|
||||
_raw_read_unlock
|
||||
_raw_write_lock
|
||||
_raw_write_unlock
|
||||
register_shrinker
|
||||
register_vmap_purge_notifier
|
||||
reservation_ww_class
|
||||
round_jiffies_up
|
||||
sched_set_fifo
|
||||
schedule_timeout_interruptible
|
||||
__sg_page_iter_dma_next
|
||||
@@ -1299,7 +1456,6 @@
|
||||
sync_file_create
|
||||
sync_file_get_fence
|
||||
unmap_mapping_range
|
||||
unregister_shrinker
|
||||
unregister_vmap_purge_notifier
|
||||
vmf_insert_mixed
|
||||
vm_get_page_prot
|
||||
@@ -1342,7 +1498,6 @@
|
||||
dma_pool_create
|
||||
dma_pool_destroy
|
||||
dma_pool_free
|
||||
free_pages
|
||||
gen_pool_dma_alloc_align
|
||||
gen_pool_dma_zalloc_align
|
||||
gen_pool_free_owner
|
||||
@@ -1385,7 +1540,7 @@
|
||||
usb_remove_hcd
|
||||
|
||||
# required by phy-qcom-qmp.ko
|
||||
of_clk_get_by_name
|
||||
devm_get_clk_from_child
|
||||
__of_reset_control_get
|
||||
|
||||
# required by phy-qcom-qusb2.ko
|
||||
@@ -1447,7 +1602,6 @@
|
||||
cpufreq_get_driver_data
|
||||
cpufreq_register_driver
|
||||
cpufreq_unregister_driver
|
||||
__cpu_possible_mask
|
||||
cpu_scale
|
||||
dev_pm_opp_adjust_voltage
|
||||
dev_pm_opp_disable
|
||||
@@ -1459,7 +1613,6 @@
|
||||
dev_pm_opp_set_sharing_cpus
|
||||
get_cpu_device
|
||||
of_get_cpu_node
|
||||
__per_cpu_offset
|
||||
policy_has_boost_freq
|
||||
system_highpri_wq
|
||||
topology_set_thermal_pressure
|
||||
@@ -1548,7 +1701,6 @@
|
||||
bitmap_find_next_zero_area_off
|
||||
__bitmap_set
|
||||
cpu_pm_register_notifier
|
||||
__num_online_cpus
|
||||
_raw_spin_trylock
|
||||
|
||||
# required by qcom_spmi-regulator.ko
|
||||
@@ -1569,7 +1721,6 @@
|
||||
_copy_to_iter
|
||||
|
||||
# required by qrtr.ko
|
||||
__alloc_skb
|
||||
autoremove_wake_function
|
||||
datagram_poll
|
||||
do_wait_intr_irq
|
||||
@@ -1582,8 +1733,6 @@
|
||||
refcount_dec_and_mutex_lock
|
||||
release_sock
|
||||
sk_alloc
|
||||
skb_clone
|
||||
skb_copy_bits
|
||||
skb_copy_datagram_iter
|
||||
skb_free_datagram
|
||||
__skb_pad
|
||||
@@ -1617,8 +1766,6 @@
|
||||
|
||||
# required by rmtfs_mem.ko
|
||||
alloc_chrdev_region
|
||||
__class_register
|
||||
class_unregister
|
||||
|
||||
# required by rpmsg_ns.ko
|
||||
rpmsg_create_channel
|
||||
@@ -1641,7 +1788,6 @@
|
||||
mmc_send_tuning
|
||||
regulator_is_supported_voltage
|
||||
__reset_control_get
|
||||
reset_control_put
|
||||
__sdhci_add_host
|
||||
sdhci_add_host
|
||||
sdhci_cleanup_host
|
||||
@@ -1691,9 +1837,6 @@
|
||||
snd_soc_of_parse_aux_devs
|
||||
snd_soc_of_parse_card_name
|
||||
|
||||
# required by snd-soc-rl6231.ko
|
||||
gcd
|
||||
|
||||
# required by snd-soc-rt5663.ko
|
||||
regcache_cache_bypass
|
||||
snd_soc_dapm_disable_pin
|
||||
@@ -1711,9 +1854,6 @@
|
||||
|
||||
# required by snd-soc-wcd9335.ko
|
||||
kmemdup_nul
|
||||
snd_soc_get_volsw_sx
|
||||
snd_soc_info_volsw_sx
|
||||
snd_soc_put_volsw_sx
|
||||
strnstr
|
||||
|
||||
# required by snd-soc-wcd934x.ko
|
||||
@@ -1748,7 +1888,6 @@
|
||||
spi_delay_exec
|
||||
spi_finalize_current_message
|
||||
spi_get_next_queued_message
|
||||
tasklet_unlock_wait
|
||||
|
||||
# required by spi-qcom-qspi.ko
|
||||
icc_disable
|
||||
@@ -1770,7 +1909,6 @@
|
||||
dma_heap_get_name
|
||||
dma_sync_sg_for_cpu
|
||||
dma_sync_sg_for_device
|
||||
__free_pages
|
||||
__sg_page_iter_next
|
||||
|
||||
# required by ufs_qcom.ko
|
||||
@@ -1800,3 +1938,79 @@
|
||||
# required by wcd934x.ko
|
||||
mfd_add_devices
|
||||
mfd_remove_devices
|
||||
|
||||
# required by zram.ko
|
||||
__alloc_percpu
|
||||
bio_endio
|
||||
bio_end_io_acct_remapped
|
||||
bio_start_io_acct
|
||||
__blk_alloc_disk
|
||||
blk_cleanup_disk
|
||||
blk_queue_flag_clear
|
||||
blk_queue_flag_set
|
||||
blk_queue_io_min
|
||||
blk_queue_io_opt
|
||||
blk_queue_logical_block_size
|
||||
blk_queue_max_discard_sectors
|
||||
blk_queue_max_write_zeroes_sectors
|
||||
blk_queue_physical_block_size
|
||||
__cpuhp_state_add_instance
|
||||
__cpuhp_state_remove_instance
|
||||
crypto_alloc_base
|
||||
crypto_comp_compress
|
||||
crypto_comp_decompress
|
||||
crypto_has_alg
|
||||
del_gendisk
|
||||
device_add_disk
|
||||
disk_end_io_acct
|
||||
disk_start_io_acct
|
||||
down_write
|
||||
flush_dcache_page
|
||||
fsync_bdev
|
||||
__get_free_pages
|
||||
__init_rwsem
|
||||
kstrtou16
|
||||
kstrtoull
|
||||
memset64
|
||||
page_endio
|
||||
__register_blkdev
|
||||
set_capacity
|
||||
set_capacity_and_notify
|
||||
sysfs_streq
|
||||
unregister_blkdev
|
||||
up_write
|
||||
zs_compact
|
||||
zs_create_pool
|
||||
zs_destroy_pool
|
||||
zs_free
|
||||
zs_get_total_pages
|
||||
zs_huge_class_size
|
||||
zs_malloc
|
||||
zs_map_object
|
||||
zs_pool_stats
|
||||
zs_unmap_object
|
||||
|
||||
# required by zsmalloc.ko
|
||||
alloc_anon_inode
|
||||
__alloc_pages
|
||||
__ClearPageMovable
|
||||
contig_page_data
|
||||
dec_zone_page_state
|
||||
inc_zone_page_state
|
||||
init_pseudo
|
||||
iput
|
||||
kern_mount
|
||||
kern_unmount
|
||||
kill_anon_super
|
||||
page_mapping
|
||||
__put_page
|
||||
__SetPageMovable
|
||||
unlock_page
|
||||
wait_on_page_bit
|
||||
|
||||
# preserved by --additions-only
|
||||
drm_connector_init_with_ddc
|
||||
of_clk_get_by_name
|
||||
snd_soc_get_volsw_sx
|
||||
snd_soc_info_volsw_sx
|
||||
snd_soc_put_volsw_sx
|
||||
|
||||
@@ -18,7 +18,9 @@
|
||||
amba_driver_unregister
|
||||
android_debug_symbol
|
||||
android_rvh_probe_register
|
||||
anon_inode_getfd
|
||||
anon_inode_getfile
|
||||
__arch_clear_user
|
||||
__arch_copy_from_user
|
||||
__arch_copy_to_user
|
||||
arch_freq_scale
|
||||
@@ -83,6 +85,7 @@
|
||||
bpf_trace_run8
|
||||
bpf_trace_run9
|
||||
bsearch
|
||||
build_skb
|
||||
bus_find_device
|
||||
bus_for_each_dev
|
||||
bus_register
|
||||
@@ -90,6 +93,7 @@
|
||||
bus_set_iommu
|
||||
bus_unregister
|
||||
bus_unregister_notifier
|
||||
cache_line_size
|
||||
call_rcu
|
||||
cancel_delayed_work
|
||||
cancel_delayed_work_sync
|
||||
@@ -112,6 +116,7 @@
|
||||
class_find_device
|
||||
__class_register
|
||||
class_unregister
|
||||
clear_page
|
||||
__ClearPageMovable
|
||||
clk_bulk_disable
|
||||
clk_bulk_enable
|
||||
@@ -163,6 +168,7 @@
|
||||
__const_udelay
|
||||
consume_skb
|
||||
contig_page_data
|
||||
copy_from_kernel_nofault
|
||||
__cpu_active_mask
|
||||
cpu_all_bits
|
||||
cpu_bit_bitmap
|
||||
@@ -213,6 +219,7 @@
|
||||
cpu_subsys
|
||||
cpu_topology
|
||||
crc32_le
|
||||
crc_ccitt
|
||||
crypto_alloc_base
|
||||
crypto_alloc_shash
|
||||
crypto_comp_compress
|
||||
@@ -236,6 +243,7 @@
|
||||
debugfs_create_symlink
|
||||
debugfs_create_u32
|
||||
debugfs_create_x32
|
||||
debugfs_create_x64
|
||||
debugfs_remove
|
||||
debugfs_rename
|
||||
dec_zone_page_state
|
||||
@@ -292,6 +300,7 @@
|
||||
device_link_add
|
||||
device_link_del
|
||||
device_property_present
|
||||
device_property_read_string_array
|
||||
device_property_read_u32_array
|
||||
device_register
|
||||
device_remove_file
|
||||
@@ -350,6 +359,7 @@
|
||||
devm_pinctrl_put
|
||||
devm_pinctrl_register
|
||||
devm_platform_ioremap_resource
|
||||
devm_platform_ioremap_resource_byname
|
||||
__devm_regmap_init_i2c
|
||||
__devm_regmap_init_mmio_clk
|
||||
devm_regulator_bulk_get
|
||||
@@ -370,13 +380,18 @@
|
||||
dev_pm_opp_add
|
||||
dev_pm_opp_disable
|
||||
dev_pm_opp_find_freq_ceil
|
||||
dev_pm_opp_find_freq_ceil_by_volt
|
||||
dev_pm_opp_find_freq_exact
|
||||
dev_pm_opp_find_freq_floor
|
||||
dev_pm_opp_get_freq
|
||||
dev_pm_opp_get_opp_count
|
||||
dev_pm_opp_get_voltage
|
||||
dev_pm_opp_of_add_table
|
||||
dev_pm_opp_of_register_em
|
||||
dev_pm_opp_of_remove_table
|
||||
dev_pm_opp_put
|
||||
dev_pm_opp_put_regulators
|
||||
dev_pm_opp_set_regulators
|
||||
dev_pm_qos_add_notifier
|
||||
dev_pm_qos_add_request
|
||||
dev_pm_qos_read_value
|
||||
@@ -431,12 +446,14 @@
|
||||
dma_fence_context_alloc
|
||||
dma_fence_default_wait
|
||||
dma_fence_enable_sw_signaling
|
||||
dma_fence_free
|
||||
dma_fence_get_status
|
||||
dma_fence_get_stub
|
||||
dma_fence_init
|
||||
dma_fence_release
|
||||
dma_fence_remove_callback
|
||||
dma_fence_signal
|
||||
dma_fence_signal_locked
|
||||
dma_fence_wait_any_timeout
|
||||
dma_fence_wait_timeout
|
||||
dma_free_attrs
|
||||
@@ -454,6 +471,7 @@
|
||||
dmam_alloc_attrs
|
||||
dma_map_page_attrs
|
||||
dma_map_resource
|
||||
dma_map_sg_attrs
|
||||
dma_map_sgtable
|
||||
dmam_free_coherent
|
||||
dma_mmap_attrs
|
||||
@@ -481,13 +499,17 @@
|
||||
double_rq_lock
|
||||
do_wait_intr
|
||||
down
|
||||
downgrade_write
|
||||
down_interruptible
|
||||
down_read
|
||||
down_read_killable
|
||||
down_read_trylock
|
||||
down_trylock
|
||||
down_write
|
||||
down_write_trylock
|
||||
d_path
|
||||
dql_completed
|
||||
dql_reset
|
||||
drain_workqueue
|
||||
driver_register
|
||||
driver_unregister
|
||||
@@ -774,10 +796,13 @@
|
||||
fb_mode_option
|
||||
__fdget
|
||||
fd_install
|
||||
fget
|
||||
_find_first_bit
|
||||
_find_first_zero_bit
|
||||
find_get_pid
|
||||
_find_next_bit
|
||||
find_task_by_vpid
|
||||
__find_vma
|
||||
find_vpid
|
||||
finish_wait
|
||||
firmware_request_nowarn
|
||||
@@ -830,6 +855,8 @@
|
||||
get_task_mm
|
||||
get_thermal_instance
|
||||
get_unused_fd_flags
|
||||
get_user_pages
|
||||
get_user_pages_fast
|
||||
get_zeroed_page
|
||||
gic_nonsecure_priorities
|
||||
gpiochip_add_data_with_key
|
||||
@@ -845,6 +872,7 @@
|
||||
gpiod_direction_output
|
||||
gpiod_direction_output_raw
|
||||
gpiod_get_raw_value
|
||||
gpiod_get_raw_value_cansleep
|
||||
gpiod_get_value_cansleep
|
||||
gpiod_set_raw_value
|
||||
gpiod_set_value
|
||||
@@ -929,6 +957,8 @@
|
||||
iio_device_free
|
||||
__iio_device_register
|
||||
iio_device_unregister
|
||||
in4_pton
|
||||
in6_pton
|
||||
inc_zone_page_state
|
||||
inet_csk_get_port
|
||||
init_dummy_netdev
|
||||
@@ -965,6 +995,8 @@
|
||||
iommu_device_sysfs_add
|
||||
iommu_device_sysfs_remove
|
||||
iommu_device_unlink
|
||||
iommu_device_unregister
|
||||
iommu_dma_enable_best_fit_algo
|
||||
iommu_fwspec_add_ids
|
||||
iommu_fwspec_free
|
||||
iommu_get_dma_cookie
|
||||
@@ -1008,6 +1040,7 @@
|
||||
irq_set_chip_data
|
||||
__irq_set_handler
|
||||
irq_set_handler_data
|
||||
irq_set_irqchip_state
|
||||
irq_set_irq_wake
|
||||
irq_to_desc
|
||||
irq_work_queue
|
||||
@@ -1053,6 +1086,7 @@
|
||||
kmemdup
|
||||
kobject_add
|
||||
kobject_create_and_add
|
||||
kobject_del
|
||||
kobject_get
|
||||
kobject_init
|
||||
kobject_init_and_add
|
||||
@@ -1078,6 +1112,7 @@
|
||||
kstrtoull_from_user
|
||||
kthread_bind
|
||||
kthread_bind_mask
|
||||
kthread_cancel_delayed_work_sync
|
||||
kthread_cancel_work_sync
|
||||
kthread_create_on_node
|
||||
kthread_create_worker
|
||||
@@ -1085,6 +1120,7 @@
|
||||
kthread_destroy_worker
|
||||
kthread_flush_work
|
||||
__kthread_init_worker
|
||||
kthread_mod_delayed_work
|
||||
kthread_park
|
||||
kthread_parkme
|
||||
kthread_queue_work
|
||||
@@ -1096,6 +1132,7 @@
|
||||
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
|
||||
@@ -1133,6 +1170,8 @@
|
||||
mfd_remove_devices
|
||||
mipi_dsi_attach
|
||||
mipi_dsi_compression_mode
|
||||
mipi_dsi_create_packet
|
||||
mipi_dsi_dcs_get_display_brightness
|
||||
mipi_dsi_dcs_read
|
||||
mipi_dsi_dcs_set_column_address
|
||||
mipi_dsi_dcs_set_display_brightness
|
||||
@@ -1144,9 +1183,25 @@
|
||||
mipi_dsi_driver_unregister
|
||||
mipi_dsi_host_register
|
||||
mipi_dsi_host_unregister
|
||||
mipi_dsi_packet_format_is_long
|
||||
mipi_dsi_picture_parameter_set
|
||||
misc_deregister
|
||||
misc_register
|
||||
mmc_add_host
|
||||
mmc_alloc_host
|
||||
mmc_can_gpio_cd
|
||||
mmc_detect_change
|
||||
mmc_free_host
|
||||
mmc_gpio_get_cd
|
||||
mmc_gpio_get_ro
|
||||
mmc_of_parse
|
||||
mmc_regulator_get_supply
|
||||
mmc_regulator_set_ocr
|
||||
mmc_regulator_set_vqmmc
|
||||
mmc_remove_host
|
||||
mmc_request_done
|
||||
mmc_wait_for_req
|
||||
__mmdrop
|
||||
mmput
|
||||
mmu_notifier_synchronize
|
||||
mod_delayed_work_on
|
||||
@@ -1179,6 +1234,7 @@
|
||||
__netif_napi_del
|
||||
netif_receive_skb
|
||||
netif_rx_ni
|
||||
netif_schedule_queue
|
||||
netif_tx_stop_all_queues
|
||||
netif_tx_wake_queue
|
||||
netlink_broadcast
|
||||
@@ -1204,10 +1260,12 @@
|
||||
ns_to_kernel_old_timeval
|
||||
ns_to_timespec64
|
||||
__num_online_cpus
|
||||
of_add_property
|
||||
of_address_to_resource
|
||||
of_alias_get_highest_id
|
||||
of_alias_get_id
|
||||
of_clk_add_provider
|
||||
of_clk_get
|
||||
of_clk_get_by_name
|
||||
of_clk_src_onecell_get
|
||||
of_count_phandle_with_args
|
||||
@@ -1217,10 +1275,12 @@
|
||||
of_device_is_compatible
|
||||
of_dma_controller_free
|
||||
of_dma_controller_register
|
||||
of_dma_is_coherent
|
||||
of_drm_find_bridge
|
||||
of_drm_find_panel
|
||||
of_find_compatible_node
|
||||
of_find_device_by_node
|
||||
of_find_i2c_device_by_node
|
||||
of_find_matching_node_and_match
|
||||
of_find_node_by_name
|
||||
of_find_node_by_phandle
|
||||
@@ -1241,12 +1301,14 @@
|
||||
of_iomap
|
||||
of_irq_get_byname
|
||||
of_irq_parse_one
|
||||
of_machine_is_compatible
|
||||
of_match_device
|
||||
of_match_node
|
||||
of_n_addr_cells
|
||||
of_node_name_eq
|
||||
of_n_size_cells
|
||||
of_parse_phandle
|
||||
of_parse_phandle_with_args
|
||||
of_parse_phandle_with_fixed_args
|
||||
of_phandle_iterator_init
|
||||
of_phandle_iterator_next
|
||||
@@ -1278,6 +1340,7 @@
|
||||
param_get_charp
|
||||
param_ops_bint
|
||||
param_ops_bool
|
||||
param_ops_byte
|
||||
param_ops_charp
|
||||
param_ops_hexint
|
||||
param_ops_int
|
||||
@@ -1296,10 +1359,12 @@
|
||||
pci_bus_type
|
||||
pci_clear_master
|
||||
pci_disable_device
|
||||
pcie_get_mps
|
||||
pci_enable_atomic_ops_to_root
|
||||
pci_enable_device
|
||||
pci_enable_pcie_error_reporting
|
||||
pci_enable_wake
|
||||
pcie_set_mps
|
||||
pci_find_bus
|
||||
pci_find_ext_capability
|
||||
pci_free_irq_vectors
|
||||
@@ -1362,6 +1427,7 @@
|
||||
pin_get_name
|
||||
pin_user_pages
|
||||
pin_user_pages_fast
|
||||
pin_user_pages_remote
|
||||
platform_bus_type
|
||||
platform_device_add
|
||||
platform_device_add_resources
|
||||
@@ -1390,6 +1456,8 @@
|
||||
__pm_runtime_disable
|
||||
pm_runtime_enable
|
||||
pm_runtime_forbid
|
||||
pm_runtime_force_resume
|
||||
pm_runtime_force_suspend
|
||||
pm_runtime_get_if_active
|
||||
__pm_runtime_idle
|
||||
pm_runtime_irq_safe
|
||||
@@ -1431,6 +1499,7 @@
|
||||
put_device
|
||||
__put_net
|
||||
__put_page
|
||||
put_pid
|
||||
__put_task_struct
|
||||
put_unused_fd
|
||||
pwmchip_add
|
||||
@@ -1475,6 +1544,8 @@
|
||||
rb_insert_color
|
||||
rb_next
|
||||
rb_next_postorder
|
||||
rb_prev
|
||||
rb_replace_node
|
||||
rcu_barrier
|
||||
__rcu_read_lock
|
||||
__rcu_read_unlock
|
||||
@@ -1484,6 +1555,7 @@
|
||||
refcount_warn_saturate
|
||||
refresh_frequency_limits
|
||||
__refrigerator
|
||||
regcache_cache_bypass
|
||||
regcache_cache_only
|
||||
regcache_mark_dirty
|
||||
regcache_sync
|
||||
@@ -1497,6 +1569,7 @@
|
||||
register_netdev
|
||||
register_netdevice
|
||||
register_netdevice_notifier
|
||||
register_oom_notifier
|
||||
register_pernet_device
|
||||
register_pm_notifier
|
||||
register_reboot_notifier
|
||||
@@ -1513,6 +1586,7 @@
|
||||
regmap_raw_write_async
|
||||
regmap_read
|
||||
regmap_register_patch
|
||||
regmap_reinit_cache
|
||||
regmap_update_bits_base
|
||||
regmap_write
|
||||
regulator_bulk_disable
|
||||
@@ -1533,6 +1607,7 @@
|
||||
release_pages
|
||||
__release_region
|
||||
remap_pfn_range
|
||||
remap_vmalloc_range
|
||||
remove_cpu
|
||||
remove_proc_entry
|
||||
request_firmware
|
||||
@@ -1583,20 +1658,29 @@
|
||||
__scsi_execute
|
||||
scsi_print_sense_hdr
|
||||
sdev_prefix_printk
|
||||
sdio_signal_irq
|
||||
seq_lseek
|
||||
seq_open
|
||||
__seq_open_private
|
||||
seq_printf
|
||||
seq_putc
|
||||
seq_puts
|
||||
seq_read
|
||||
seq_release
|
||||
seq_release_private
|
||||
seq_write
|
||||
set_capacity
|
||||
set_capacity_and_notify
|
||||
set_cpus_allowed_ptr
|
||||
set_next_entity
|
||||
set_normalized_timespec64
|
||||
set_page_dirty_lock
|
||||
__SetPageMovable
|
||||
set_task_cpu
|
||||
sg_alloc_table
|
||||
sg_alloc_table_from_pages_segment
|
||||
sg_free_table
|
||||
sg_init_one
|
||||
sg_init_table
|
||||
sg_miter_next
|
||||
sg_miter_start
|
||||
@@ -1632,6 +1716,7 @@
|
||||
skb_queue_purge
|
||||
skb_queue_tail
|
||||
skb_realloc_headroom
|
||||
skb_split
|
||||
skb_trim
|
||||
smp_call_function
|
||||
smp_call_function_any
|
||||
@@ -1648,6 +1733,7 @@
|
||||
snd_dmaengine_pcm_prepare_slave_config
|
||||
snd_dma_free_pages
|
||||
snd_hwdep_new
|
||||
snd_jack_set_key
|
||||
snd_pcm_format_physical_width
|
||||
snd_pcm_format_width
|
||||
snd_pcm_hw_constraint_integer
|
||||
@@ -1663,11 +1749,13 @@
|
||||
snd_soc_bytes_info_ext
|
||||
snd_soc_bytes_tlv_callback
|
||||
snd_soc_card_get_kcontrol
|
||||
snd_soc_card_jack_new
|
||||
snd_soc_component_async_complete
|
||||
snd_soc_component_disable_pin
|
||||
snd_soc_component_force_enable_pin
|
||||
snd_soc_component_init_regmap
|
||||
snd_soc_component_read
|
||||
snd_soc_component_set_pll
|
||||
snd_soc_component_set_sysclk
|
||||
snd_soc_component_update_bits
|
||||
snd_soc_component_update_bits_async
|
||||
@@ -1679,6 +1767,7 @@
|
||||
snd_soc_dai_set_channel_map
|
||||
snd_soc_dai_set_sysclk
|
||||
snd_soc_dai_set_tdm_slot
|
||||
snd_soc_dai_set_tristate
|
||||
snd_soc_dapm_add_routes
|
||||
snd_soc_dapm_disable_pin
|
||||
snd_soc_dapm_enable_pin
|
||||
@@ -1689,6 +1778,7 @@
|
||||
snd_soc_dapm_ignore_suspend
|
||||
snd_soc_dapm_info_pin_switch
|
||||
snd_soc_dapm_kcontrol_dapm
|
||||
snd_soc_dapm_mixer_update_power
|
||||
snd_soc_dapm_new_control
|
||||
snd_soc_dapm_new_controls
|
||||
snd_soc_dapm_put_enum_double
|
||||
@@ -1707,6 +1797,7 @@
|
||||
snd_soc_info_volsw
|
||||
snd_soc_info_volsw_sx
|
||||
snd_soc_info_xr_sx
|
||||
snd_soc_jack_report
|
||||
snd_soc_lookup_component
|
||||
snd_soc_new_compress
|
||||
snd_soc_of_get_dai_link_codecs
|
||||
@@ -1765,6 +1856,7 @@
|
||||
strchr
|
||||
strcmp
|
||||
strcpy
|
||||
strcspn
|
||||
stream_open
|
||||
strim
|
||||
strlcat
|
||||
@@ -1790,6 +1882,7 @@
|
||||
__sw_hweight8
|
||||
sync_file_create
|
||||
sync_file_get_fence
|
||||
synchronize_irq
|
||||
synchronize_net
|
||||
synchronize_rcu
|
||||
syscon_regmap_lookup_by_phandle
|
||||
@@ -1884,16 +1977,20 @@
|
||||
__traceiter_android_rvh_tick_entry
|
||||
__traceiter_android_rvh_update_misfit_status
|
||||
__traceiter_android_rvh_wake_up_new_task
|
||||
__traceiter_android_vh_arch_set_freq_scale
|
||||
__traceiter_android_vh_binder_restore_priority
|
||||
__traceiter_android_vh_binder_set_priority
|
||||
__traceiter_android_vh_binder_wakeup_ilocked
|
||||
__traceiter_android_vh_cpu_idle_enter
|
||||
__traceiter_android_vh_cpu_idle_exit
|
||||
__traceiter_android_vh_do_wake_up_sync
|
||||
__traceiter_android_vh_gic_set_affinity
|
||||
__traceiter_android_vh_ipi_stop
|
||||
__traceiter_android_vh_logbuf
|
||||
__traceiter_android_vh_logbuf_pr_cont
|
||||
__traceiter_android_vh_scheduler_tick
|
||||
__traceiter_android_vh_set_wake_flags
|
||||
__traceiter_android_vh_show_mem
|
||||
__traceiter_android_vh_ufs_check_int_errors
|
||||
__traceiter_android_vh_ufs_compl_command
|
||||
__traceiter_binder_transaction_received
|
||||
@@ -1924,6 +2021,7 @@
|
||||
__traceiter_suspend_resume
|
||||
__traceiter_workqueue_execute_end
|
||||
__traceiter_workqueue_execute_start
|
||||
trace_output_call
|
||||
__tracepoint_android_rvh_can_migrate_task
|
||||
__tracepoint_android_rvh_check_preempt_wakeup
|
||||
__tracepoint_android_rvh_cpu_cgroup_attach
|
||||
@@ -1951,16 +2049,20 @@
|
||||
__tracepoint_android_rvh_tick_entry
|
||||
__tracepoint_android_rvh_update_misfit_status
|
||||
__tracepoint_android_rvh_wake_up_new_task
|
||||
__tracepoint_android_vh_arch_set_freq_scale
|
||||
__tracepoint_android_vh_binder_restore_priority
|
||||
__tracepoint_android_vh_binder_set_priority
|
||||
__tracepoint_android_vh_binder_wakeup_ilocked
|
||||
__tracepoint_android_vh_cpu_idle_enter
|
||||
__tracepoint_android_vh_cpu_idle_exit
|
||||
__tracepoint_android_vh_do_wake_up_sync
|
||||
__tracepoint_android_vh_gic_set_affinity
|
||||
__tracepoint_android_vh_ipi_stop
|
||||
__tracepoint_android_vh_logbuf
|
||||
__tracepoint_android_vh_logbuf_pr_cont
|
||||
__tracepoint_android_vh_scheduler_tick
|
||||
__tracepoint_android_vh_set_wake_flags
|
||||
__tracepoint_android_vh_show_mem
|
||||
__tracepoint_android_vh_ufs_check_int_errors
|
||||
__tracepoint_android_vh_ufs_compl_command
|
||||
__tracepoint_binder_transaction_received
|
||||
@@ -1994,6 +2096,7 @@
|
||||
__tracepoint_workqueue_execute_end
|
||||
__tracepoint_workqueue_execute_start
|
||||
trace_print_array_seq
|
||||
trace_print_flags_seq
|
||||
trace_print_symbols_seq
|
||||
trace_raw_output_prep
|
||||
try_module_get
|
||||
@@ -2038,10 +2141,20 @@
|
||||
ttm_sg_tt_init
|
||||
ttm_tt_destroy_common
|
||||
ttm_tt_fini
|
||||
tty_dev_name_to_number
|
||||
tty_flip_buffer_push
|
||||
tty_insert_flip_string_fixed_flag
|
||||
tty_kclose
|
||||
tty_kopen_exclusive
|
||||
tty_kref_put
|
||||
tty_lock
|
||||
tty_mode_ioctl
|
||||
tty_port_tty_get
|
||||
tty_register_ldisc
|
||||
tty_set_ldisc
|
||||
tty_set_termios
|
||||
tty_unlock
|
||||
tty_unregister_ldisc
|
||||
typec_get_drvdata
|
||||
typec_register_partner
|
||||
typec_register_port
|
||||
@@ -2091,6 +2204,7 @@
|
||||
unregister_netdev
|
||||
unregister_netdevice_notifier
|
||||
unregister_netdevice_queue
|
||||
unregister_oom_notifier
|
||||
unregister_pernet_device
|
||||
unregister_pm_notifier
|
||||
unregister_reboot_notifier
|
||||
@@ -2134,15 +2248,21 @@
|
||||
v4l2_ctrl_new_custom
|
||||
v4l2_ctrl_new_std
|
||||
v4l2_ctrl_new_std_menu
|
||||
v4l2_ctrl_poll
|
||||
v4l2_ctrl_subscribe_event
|
||||
v4l2_device_register
|
||||
v4l2_device_register_subdev
|
||||
v4l2_device_set_name
|
||||
v4l2_device_unregister
|
||||
v4l2_device_unregister_subdev
|
||||
v4l2_event_unsubscribe
|
||||
v4l2_fh_add
|
||||
v4l2_fh_del
|
||||
v4l2_fh_exit
|
||||
v4l2_fh_init
|
||||
v4l2_fh_is_singular
|
||||
v4l2_fh_open
|
||||
v4l2_fh_release
|
||||
v4l2_i2c_subdev_init
|
||||
v4l2_m2m_buf_queue
|
||||
v4l2_m2m_buf_remove
|
||||
@@ -2198,13 +2318,16 @@
|
||||
video_devdata
|
||||
video_device_alloc
|
||||
video_device_release
|
||||
video_device_release_empty
|
||||
video_ioctl2
|
||||
__video_register_device
|
||||
video_unregister_device
|
||||
vmalloc
|
||||
vmalloc_to_page
|
||||
vmalloc_to_pfn
|
||||
vmalloc_user
|
||||
vmap
|
||||
vmf_insert_pfn_prot
|
||||
vm_get_page_prot
|
||||
vm_iomap_memory
|
||||
vprintk_emit
|
||||
@@ -2228,6 +2351,7 @@
|
||||
wakeup_source_remove
|
||||
wakeup_source_unregister
|
||||
__wake_up_sync
|
||||
__wake_up_sync_key
|
||||
__warn_printk
|
||||
watchdog_init_timeout
|
||||
watchdog_register_device
|
||||
|
||||
1692
android/abi_gki_aarch64_exynos_wear
Normal file
1692
android/abi_gki_aarch64_exynos_wear
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,8 @@
|
||||
[abi_symbol_list]
|
||||
add_timer
|
||||
add_wait_queue
|
||||
alloc_anon_inode
|
||||
alloc_chrdev_region
|
||||
alloc_etherdev_mqs
|
||||
alloc_netdev_mqs
|
||||
__alloc_pages
|
||||
@@ -9,7 +11,9 @@
|
||||
alloc_workqueue
|
||||
amba_driver_register
|
||||
amba_driver_unregister
|
||||
android_debug_for_each_module
|
||||
android_debug_symbol
|
||||
android_kmalloc_64_create
|
||||
anon_inode_getfd
|
||||
anon_inode_getfile
|
||||
__arch_clear_user
|
||||
@@ -33,10 +37,14 @@
|
||||
__bitmap_clear
|
||||
__bitmap_complement
|
||||
bitmap_find_free_region
|
||||
bitmap_free
|
||||
bitmap_parselist
|
||||
bitmap_print_to_pagebuf
|
||||
bitmap_release_region
|
||||
__bitmap_set
|
||||
__bitmap_weight
|
||||
__bitmap_xor
|
||||
bitmap_zalloc
|
||||
__blk_alloc_disk
|
||||
blk_cleanup_disk
|
||||
blk_execute_rq
|
||||
@@ -162,12 +170,24 @@
|
||||
consume_skb
|
||||
contig_page_data
|
||||
copy_from_user_nofault
|
||||
__cpu_active_mask
|
||||
cpu_bit_bitmap
|
||||
cpufreq_cpu_get
|
||||
cpufreq_cpu_get_raw
|
||||
cpufreq_cpu_put
|
||||
__cpufreq_driver_target
|
||||
cpufreq_freq_transition_begin
|
||||
cpufreq_freq_transition_end
|
||||
cpufreq_frequency_table_verify
|
||||
cpufreq_generic_attr
|
||||
cpufreq_register_driver
|
||||
cpufreq_table_index_unsorted
|
||||
__cpuhp_remove_state
|
||||
__cpuhp_setup_state
|
||||
__cpuhp_setup_state_cpuslocked
|
||||
__cpuhp_state_add_instance
|
||||
__cpuhp_state_remove_instance
|
||||
cpuhp_tasks_frozen
|
||||
cpu_hwcap_keys
|
||||
cpu_hwcaps
|
||||
cpumask_next
|
||||
@@ -182,11 +202,14 @@
|
||||
cpus_read_unlock
|
||||
crc32_le
|
||||
crypto_alloc_base
|
||||
crypto_alloc_shash
|
||||
crypto_comp_compress
|
||||
crypto_comp_decompress
|
||||
crypto_destroy_tfm
|
||||
crypto_has_alg
|
||||
__crypto_memneq
|
||||
crypto_shash_final
|
||||
crypto_shash_update
|
||||
_ctype
|
||||
current_work
|
||||
debugfs_attr_read
|
||||
@@ -200,6 +223,7 @@
|
||||
debugfs_create_x32
|
||||
debugfs_lookup
|
||||
debugfs_remove
|
||||
debugfs_rename
|
||||
dec_zone_page_state
|
||||
default_llseek
|
||||
default_wake_function
|
||||
@@ -215,6 +239,17 @@
|
||||
_dev_emerg
|
||||
_dev_err
|
||||
dev_err_probe
|
||||
devfreq_add_device
|
||||
devfreq_add_governor
|
||||
devfreq_monitor_resume
|
||||
devfreq_monitor_start
|
||||
devfreq_monitor_stop
|
||||
devfreq_monitor_suspend
|
||||
devfreq_recommended_opp
|
||||
devfreq_remove_device
|
||||
devfreq_remove_governor
|
||||
devfreq_update_interval
|
||||
dev_fwnode
|
||||
dev_get_stats
|
||||
device_add_disk
|
||||
device_create
|
||||
@@ -222,12 +257,15 @@
|
||||
device_create_managed_software_node
|
||||
device_destroy
|
||||
device_for_each_child
|
||||
device_get_dma_attr
|
||||
device_get_match_data
|
||||
device_get_phy_mode
|
||||
device_initialize
|
||||
device_init_wakeup
|
||||
device_link_add
|
||||
device_link_del
|
||||
device_property_present
|
||||
device_property_read_u32_array
|
||||
device_property_read_u8_array
|
||||
device_register
|
||||
device_remove_file
|
||||
@@ -238,37 +276,48 @@
|
||||
_dev_info
|
||||
__dev_kfree_skb_any
|
||||
devm_add_action
|
||||
devm_alloc_etherdev_mqs
|
||||
devm_clk_get
|
||||
devm_clk_get_optional
|
||||
devm_clk_put
|
||||
dev_mc_sync_multiple
|
||||
dev_mc_unsync
|
||||
devm_devfreq_register_notifier
|
||||
devm_devfreq_unregister_notifier
|
||||
__devm_drm_dev_alloc
|
||||
devm_free_irq
|
||||
devm_gen_pool_create
|
||||
devm_get_free_pages
|
||||
devm_gpiochip_add_data_with_key
|
||||
devm_gpiod_get
|
||||
devm_gpiod_get_optional
|
||||
devm_gpio_request_one
|
||||
devm_hwrng_register
|
||||
devm_i2c_new_dummy_device
|
||||
devm_ioremap
|
||||
devm_ioremap_resource
|
||||
devm_iounmap
|
||||
__devm_irq_alloc_descs
|
||||
devm_kasprintf
|
||||
devm_kfree
|
||||
devm_kmalloc
|
||||
devm_kmemdup
|
||||
devm_kstrdup
|
||||
devm_mfd_add_devices
|
||||
__devm_of_phy_provider_register
|
||||
devm_pci_alloc_host_bridge
|
||||
devm_phy_create
|
||||
devm_phy_get
|
||||
devm_pinctrl_get
|
||||
devm_pinctrl_register
|
||||
devm_platform_ioremap_resource
|
||||
devm_platform_ioremap_resource_byname
|
||||
__devm_regmap_init
|
||||
__devm_regmap_init_i2c
|
||||
__devm_regmap_init_mmio_clk
|
||||
devm_regulator_bulk_get
|
||||
devm_regulator_get
|
||||
devm_regulator_register
|
||||
__devm_request_region
|
||||
devm_request_threaded_irq
|
||||
__devm_reset_control_get
|
||||
@@ -279,12 +328,18 @@
|
||||
devm_thermal_zone_of_sensor_register
|
||||
_dev_notice
|
||||
dev_open
|
||||
dev_pm_opp_add
|
||||
dev_pm_opp_find_freq_ceil
|
||||
dev_pm_opp_get_voltage
|
||||
dev_pm_opp_of_add_table
|
||||
dev_pm_opp_of_remove_table
|
||||
dev_pm_opp_put
|
||||
dev_pm_opp_put_regulators
|
||||
dev_pm_opp_set_regulators
|
||||
dev_pm_qos_add_request
|
||||
dev_pm_qos_read_value
|
||||
dev_pm_qos_remove_request
|
||||
dev_pm_qos_update_request
|
||||
_dev_printk
|
||||
dev_queue_xmit
|
||||
devres_add
|
||||
@@ -313,6 +368,7 @@
|
||||
dma_buf_export
|
||||
dma_buf_fd
|
||||
dma_buf_get
|
||||
dma_buf_get_flags
|
||||
dma_buf_map_attachment
|
||||
dma_buf_mmap
|
||||
dma_buf_move_notify
|
||||
@@ -342,6 +398,7 @@
|
||||
dma_fence_release
|
||||
dma_fence_remove_callback
|
||||
dma_fence_signal
|
||||
dma_fence_signal_locked
|
||||
dma_fence_wait_any_timeout
|
||||
dma_fence_wait_timeout
|
||||
dma_free_attrs
|
||||
@@ -356,8 +413,10 @@
|
||||
dma_heap_get_drvdata
|
||||
dma_heap_get_name
|
||||
dma_heap_put
|
||||
dmam_alloc_attrs
|
||||
dma_map_page_attrs
|
||||
dma_map_resource
|
||||
dma_map_sg_attrs
|
||||
dma_map_sgtable
|
||||
dma_mmap_attrs
|
||||
dma_release_channel
|
||||
@@ -391,8 +450,10 @@
|
||||
down_trylock
|
||||
down_write
|
||||
down_write_trylock
|
||||
d_path
|
||||
dql_completed
|
||||
dql_reset
|
||||
drain_workqueue
|
||||
driver_unregister
|
||||
drm_add_edid_modes
|
||||
drm_add_modes_noedid
|
||||
@@ -407,7 +468,9 @@
|
||||
drm_atomic_helper_commit
|
||||
drm_atomic_helper_commit_modeset_disables
|
||||
drm_atomic_helper_commit_planes
|
||||
__drm_atomic_helper_connector_destroy_state
|
||||
drm_atomic_helper_connector_destroy_state
|
||||
__drm_atomic_helper_connector_duplicate_state
|
||||
drm_atomic_helper_connector_duplicate_state
|
||||
drm_atomic_helper_connector_reset
|
||||
drm_atomic_helper_crtc_destroy_state
|
||||
@@ -636,6 +699,8 @@
|
||||
drm_universal_plane_init
|
||||
drm_vblank_init
|
||||
drm_writeback_connector_init
|
||||
drm_writeback_queue_job
|
||||
drm_writeback_signal_completion
|
||||
dump_backtrace
|
||||
dump_stack
|
||||
dw_pcie_ep_init
|
||||
@@ -656,6 +721,8 @@
|
||||
ethnl_cable_test_result
|
||||
ethnl_cable_test_step
|
||||
eth_prepare_mac_addr_change
|
||||
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
|
||||
@@ -673,18 +740,28 @@
|
||||
_find_next_bit
|
||||
__find_vma
|
||||
finish_wait
|
||||
flow_block_cb_setup_simple
|
||||
flow_keys_basic_dissector
|
||||
flow_rule_match_basic
|
||||
flow_rule_match_ipv4_addrs
|
||||
flow_rule_match_ports
|
||||
flow_rule_match_vlan
|
||||
flush_dcache_page
|
||||
flush_delayed_work
|
||||
flush_work
|
||||
flush_workqueue
|
||||
fput
|
||||
frame_vector_create
|
||||
frame_vector_destroy
|
||||
frame_vector_to_pages
|
||||
free_irq
|
||||
free_netdev
|
||||
__free_pages
|
||||
free_pages
|
||||
free_percpu
|
||||
freezing_slow_path
|
||||
freq_qos_add_request
|
||||
freq_qos_update_request
|
||||
fsync_bdev
|
||||
gcd
|
||||
generic_file_llseek
|
||||
@@ -700,24 +777,39 @@
|
||||
genphy_c45_read_lpa
|
||||
genphy_check_and_restart_aneg
|
||||
__genphy_config_aneg
|
||||
genphy_handle_interrupt_no_ack
|
||||
genphy_read_abilities
|
||||
genphy_read_lpa
|
||||
genphy_read_mmd_unsupported
|
||||
genphy_read_status
|
||||
genphy_read_status_fixed
|
||||
genphy_resume
|
||||
genphy_setup_forced
|
||||
genphy_soft_reset
|
||||
genphy_suspend
|
||||
genphy_update_link
|
||||
genphy_write_mmd_unsupported
|
||||
gen_pool_add_owner
|
||||
gen_pool_alloc_algo_owner
|
||||
gen_pool_avail
|
||||
gen_pool_create
|
||||
gen_pool_destroy
|
||||
gen_pool_first_fit_align
|
||||
gen_pool_free_owner
|
||||
gen_pool_size
|
||||
get_cpu_device
|
||||
get_device
|
||||
__get_free_pages
|
||||
get_random_bytes
|
||||
get_random_u32
|
||||
__get_task_comm
|
||||
get_task_mm
|
||||
get_task_pid
|
||||
get_unused_fd_flags
|
||||
get_user_pages
|
||||
get_user_pages_fast
|
||||
get_vaddr_frames
|
||||
get_zeroed_page
|
||||
gic_nonsecure_priorities
|
||||
gpiochip_generic_free
|
||||
gpiochip_generic_request
|
||||
@@ -740,6 +832,7 @@
|
||||
handle_nested_irq
|
||||
handle_simple_irq
|
||||
handle_sysrq
|
||||
hdmi_audio_infoframe_init
|
||||
hdmi_avi_infoframe_init
|
||||
hdmi_avi_infoframe_pack
|
||||
hex_dump_to_buffer
|
||||
@@ -791,6 +884,7 @@
|
||||
i3c_master_set_info
|
||||
i3c_master_unregister
|
||||
ida_alloc_range
|
||||
ida_destroy
|
||||
ida_free
|
||||
idr_alloc
|
||||
idr_alloc_cyclic
|
||||
@@ -881,6 +975,7 @@
|
||||
is_dma_buf_file
|
||||
is_vmalloc_addr
|
||||
iterate_fd
|
||||
jiffies64_to_msecs
|
||||
jiffies
|
||||
jiffies_to_msecs
|
||||
jiffies_to_usecs
|
||||
@@ -926,6 +1021,7 @@
|
||||
kstrtobool_from_user
|
||||
kstrtoint
|
||||
kstrtoint_from_user
|
||||
kstrtol_from_user
|
||||
kstrtoll
|
||||
kstrtou16
|
||||
kstrtou8
|
||||
@@ -959,6 +1055,10 @@
|
||||
__list_del_entry_valid
|
||||
__local_bh_enable_ip
|
||||
__lock_page
|
||||
log_post_read_mmio
|
||||
log_post_write_mmio
|
||||
log_read_mmio
|
||||
log_write_mmio
|
||||
loops_per_jiffy
|
||||
mdiobus_alloc_size
|
||||
mdiobus_free
|
||||
@@ -969,6 +1069,9 @@
|
||||
mdiobus_unregister
|
||||
__mdiobus_write
|
||||
mdiobus_write
|
||||
mdio_device_create
|
||||
mdio_device_free
|
||||
memchr
|
||||
memcpy
|
||||
__memcpy_fromio
|
||||
__memcpy_toio
|
||||
@@ -994,6 +1097,7 @@
|
||||
misc_deregister
|
||||
misc_register
|
||||
__mmdrop
|
||||
mmput
|
||||
mmu_notifier_synchronize
|
||||
mod_delayed_work_on
|
||||
mod_timer
|
||||
@@ -1001,6 +1105,7 @@
|
||||
module_put
|
||||
__msecs_to_jiffies
|
||||
msleep
|
||||
msleep_interruptible
|
||||
__mutex_init
|
||||
mutex_is_locked
|
||||
mutex_lock
|
||||
@@ -1026,6 +1131,7 @@
|
||||
netdev_master_upper_dev_link
|
||||
netdev_notify_peers
|
||||
netdev_pick_tx
|
||||
netdev_rss_key_fill
|
||||
netdev_rx_handler_register
|
||||
netdev_rx_handler_unregister
|
||||
netdev_update_features
|
||||
@@ -1070,6 +1176,7 @@
|
||||
of_device_is_compatible
|
||||
of_dma_controller_free
|
||||
of_dma_controller_register
|
||||
of_dma_is_coherent
|
||||
of_drm_find_bridge
|
||||
of_drm_find_panel
|
||||
of_find_compatible_node
|
||||
@@ -1132,6 +1239,11 @@
|
||||
oops_in_progress
|
||||
page_endio
|
||||
page_mapping
|
||||
page_pool_alloc_pages
|
||||
page_pool_create
|
||||
page_pool_destroy
|
||||
page_pool_put_page
|
||||
page_pool_release_page
|
||||
panic
|
||||
panic_notifier_list
|
||||
param_array_ops
|
||||
@@ -1143,6 +1255,7 @@
|
||||
param_ops_charp
|
||||
param_ops_hexint
|
||||
param_ops_int
|
||||
param_ops_long
|
||||
param_ops_string
|
||||
param_ops_uint
|
||||
param_set_bool
|
||||
@@ -1175,12 +1288,14 @@
|
||||
pci_generic_config_read
|
||||
pci_generic_config_write
|
||||
pci_get_device
|
||||
pci_host_probe
|
||||
pci_iomap
|
||||
pci_iomap_range
|
||||
pci_iounmap
|
||||
pci_irq_get_affinity
|
||||
pci_irq_vector
|
||||
pci_load_saved_state
|
||||
pci_lock_rescan_remove
|
||||
pci_map_rom
|
||||
pci_msi_create_irq_domain
|
||||
pci_msi_mask_irq
|
||||
@@ -1195,6 +1310,7 @@
|
||||
pci_release_region
|
||||
pci_release_resource
|
||||
pci_release_selected_regions
|
||||
pci_remove_root_bus
|
||||
pci_request_region
|
||||
pci_request_selected_regions
|
||||
pci_rescan_bus
|
||||
@@ -1203,7 +1319,9 @@
|
||||
pci_restore_state
|
||||
pci_save_state
|
||||
pci_set_master
|
||||
pci_stop_root_bus
|
||||
pci_store_saved_state
|
||||
pci_unlock_rescan_remove
|
||||
pci_unmap_rom
|
||||
pci_unregister_driver
|
||||
pci_vfs_assigned
|
||||
@@ -1219,6 +1337,7 @@
|
||||
perf_trace_run_bpf_submit
|
||||
pfn_is_map_memory
|
||||
phy_attached_info
|
||||
phy_basic_t1_features
|
||||
phy_config_aneg
|
||||
phy_configure
|
||||
phy_disconnect
|
||||
@@ -1238,10 +1357,27 @@
|
||||
phylink_connect_phy
|
||||
phylink_create
|
||||
phylink_destroy
|
||||
phylink_disconnect_phy
|
||||
phylink_ethtool_get_eee
|
||||
phylink_ethtool_get_pauseparam
|
||||
phylink_ethtool_get_wol
|
||||
phylink_ethtool_ksettings_get
|
||||
phylink_ethtool_ksettings_set
|
||||
phylink_ethtool_nway_reset
|
||||
phylink_ethtool_set_eee
|
||||
phylink_ethtool_set_pauseparam
|
||||
phylink_ethtool_set_wol
|
||||
phylink_get_eee_err
|
||||
phylink_mii_ioctl
|
||||
phylink_of_phy_connect
|
||||
phylink_resume
|
||||
phylink_set_pcs
|
||||
phylink_set_port_modes
|
||||
phylink_speed_down
|
||||
phylink_speed_up
|
||||
phylink_start
|
||||
phylink_stop
|
||||
phylink_suspend
|
||||
phy_mac_interrupt
|
||||
phy_mii_ioctl
|
||||
__phy_modify
|
||||
@@ -1278,6 +1414,7 @@
|
||||
pinctrl_remove_gpio_range
|
||||
pinctrl_select_state
|
||||
pin_user_pages
|
||||
pin_user_pages_fast
|
||||
pin_user_pages_remote
|
||||
pipe_lock
|
||||
pipe_unlock
|
||||
@@ -1327,6 +1464,7 @@
|
||||
prandom_bytes
|
||||
preempt_schedule
|
||||
preempt_schedule_notrace
|
||||
prepare_to_wait
|
||||
prepare_to_wait_event
|
||||
print_hex_dump
|
||||
_printk
|
||||
@@ -1336,6 +1474,7 @@
|
||||
proc_mkdir
|
||||
proc_set_size
|
||||
__pskb_pull_tail
|
||||
ptp_clock_event
|
||||
ptp_clock_index
|
||||
ptp_clock_register
|
||||
ptp_clock_unregister
|
||||
@@ -1344,6 +1483,7 @@
|
||||
put_pid
|
||||
__put_task_struct
|
||||
put_unused_fd
|
||||
put_vaddr_frames
|
||||
pwmchip_add
|
||||
pwmchip_remove
|
||||
pwm_get_chip_data
|
||||
@@ -1399,6 +1539,7 @@
|
||||
register_chrdev_region
|
||||
register_console
|
||||
register_die_notifier
|
||||
register_module_notifier
|
||||
register_netdev
|
||||
register_netdevice_notifier
|
||||
register_oom_notifier
|
||||
@@ -1410,6 +1551,7 @@
|
||||
register_virtio_device
|
||||
register_virtio_driver
|
||||
regmap_bulk_write
|
||||
regmap_multi_reg_write
|
||||
regmap_read
|
||||
regmap_register_patch
|
||||
regmap_update_bits_base
|
||||
@@ -1426,9 +1568,11 @@
|
||||
regulator_map_voltage_linear
|
||||
regulator_put
|
||||
regulator_register
|
||||
regulator_set_load
|
||||
regulator_set_voltage
|
||||
regulator_unregister
|
||||
release_firmware
|
||||
release_pages
|
||||
__release_region
|
||||
remap_pfn_range
|
||||
remap_vmalloc_range
|
||||
@@ -1436,10 +1580,13 @@
|
||||
remove_proc_entry
|
||||
remove_wait_queue
|
||||
request_firmware
|
||||
request_firmware_direct
|
||||
request_firmware_into_buf
|
||||
__request_region
|
||||
request_threaded_irq
|
||||
reset_control_assert
|
||||
reset_control_deassert
|
||||
reset_control_reset
|
||||
return_address
|
||||
rtc_time64_to_tm
|
||||
rtc_update_irq
|
||||
@@ -1477,10 +1624,15 @@
|
||||
__SetPageMovable
|
||||
set_user_nice
|
||||
sg_alloc_table
|
||||
sg_alloc_table_chained
|
||||
sg_alloc_table_from_pages_segment
|
||||
sg_free_table
|
||||
sg_free_table_chained
|
||||
sg_init_one
|
||||
sg_init_table
|
||||
sg_miter_next
|
||||
sg_miter_start
|
||||
sg_miter_stop
|
||||
sg_next
|
||||
__sg_page_iter_next
|
||||
__sg_page_iter_start
|
||||
@@ -1509,9 +1661,16 @@
|
||||
smp_call_function
|
||||
smp_call_function_single
|
||||
smp_call_on_cpu
|
||||
snd_ctl_add
|
||||
snd_ctl_enum_info
|
||||
snd_ctl_new1
|
||||
snd_dmaengine_pcm_prepare_slave_config
|
||||
snd_pcm_add_chmap_ctls
|
||||
snd_pcm_create_iec958_consumer_default
|
||||
snd_pcm_fill_iec958_consumer
|
||||
snd_pcm_fill_iec958_consumer_hw_params
|
||||
snd_pcm_format_width
|
||||
snd_pcm_hw_constraint_eld
|
||||
snd_pcm_hw_constraint_integer
|
||||
snd_pcm_lib_free_pages
|
||||
snd_pcm_lib_ioctl
|
||||
@@ -1539,6 +1698,7 @@
|
||||
snd_soc_get_volsw
|
||||
snd_soc_info_enum_double
|
||||
snd_soc_info_volsw
|
||||
snd_soc_jack_report
|
||||
snd_soc_of_get_dai_link_codecs
|
||||
snd_soc_of_get_dai_name
|
||||
snd_soc_of_parse_audio_routing
|
||||
@@ -1589,6 +1749,7 @@
|
||||
strnstr
|
||||
strpbrk
|
||||
strrchr
|
||||
strscpy
|
||||
strsep
|
||||
strstr
|
||||
subsys_system_register
|
||||
@@ -1620,6 +1781,7 @@
|
||||
sysfs_streq
|
||||
sysrq_mask
|
||||
system_freezing_cnt
|
||||
system_state
|
||||
system_unbound_wq
|
||||
system_wq
|
||||
sys_tz
|
||||
@@ -1643,6 +1805,8 @@
|
||||
trace_handle_return
|
||||
__traceiter_android_vh_ipi_stop
|
||||
__traceiter_android_vh_logbuf
|
||||
__traceiter_android_vh_logbuf_pr_cont
|
||||
__traceiter_android_vh_show_mem
|
||||
__traceiter_android_vh_ufs_fill_prdt
|
||||
__traceiter_cpu_idle
|
||||
__traceiter_device_pm_callback_end
|
||||
@@ -1663,6 +1827,8 @@
|
||||
trace_output_call
|
||||
__tracepoint_android_vh_ipi_stop
|
||||
__tracepoint_android_vh_logbuf
|
||||
__tracepoint_android_vh_logbuf_pr_cont
|
||||
__tracepoint_android_vh_show_mem
|
||||
__tracepoint_android_vh_ufs_fill_prdt
|
||||
__tracepoint_cpu_idle
|
||||
__tracepoint_device_pm_callback_end
|
||||
@@ -1939,9 +2105,11 @@
|
||||
vunmap
|
||||
vzalloc
|
||||
wait_for_completion
|
||||
wait_for_completion_interruptible
|
||||
wait_for_completion_interruptible_timeout
|
||||
wait_for_completion_killable
|
||||
wait_for_completion_timeout
|
||||
wait_on_page_bit
|
||||
__wake_up
|
||||
__wake_up_locked
|
||||
wake_up_process
|
||||
@@ -1967,10 +2135,28 @@
|
||||
xdp_master_redirect
|
||||
xdp_return_frame
|
||||
xdp_return_frame_rx_napi
|
||||
xdp_rxq_info_is_reg
|
||||
xdp_rxq_info_reg
|
||||
xdp_rxq_info_reg_mem_model
|
||||
xdp_rxq_info_unreg
|
||||
xdp_rxq_info_unreg_mem_model
|
||||
xdp_warn
|
||||
xp_alloc
|
||||
xp_dma_map
|
||||
xp_dma_sync_for_cpu_slow
|
||||
xp_dma_sync_for_device_slow
|
||||
xp_dma_unmap
|
||||
xp_free
|
||||
xp_raw_get_dma
|
||||
xp_set_rxq_info
|
||||
xsk_clear_rx_need_wakeup
|
||||
xsk_get_pool_from_qid
|
||||
xsk_set_rx_need_wakeup
|
||||
xsk_set_tx_need_wakeup
|
||||
xsk_tx_completed
|
||||
xsk_tx_peek_desc
|
||||
xsk_tx_release
|
||||
xsk_uses_need_wakeup
|
||||
zs_compact
|
||||
zs_create_pool
|
||||
zs_destroy_pool
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
_raw_spin_lock
|
||||
_raw_spin_unlock
|
||||
refcount_warn_saturate
|
||||
rng_is_initialized
|
||||
scatterwalk_ffwd
|
||||
scatterwalk_map_and_copy
|
||||
sg_init_one
|
||||
|
||||
@@ -14,6 +14,13 @@
|
||||
blk_mq_sched_try_insert_merge
|
||||
blk_mq_sched_try_merge
|
||||
blk_queue_rq_timeout
|
||||
cdc_ncm_bind_common
|
||||
cdc_ncm_change_mtu
|
||||
cdc_ncm_fill_tx_frame
|
||||
cdc_ncm_rx_verify_ndp16
|
||||
cdc_ncm_rx_verify_nth16
|
||||
cdc_ncm_select_altsetting
|
||||
cdc_ncm_unbind
|
||||
class_create_file_ns
|
||||
class_remove_file_ns
|
||||
cleancache_register_ops
|
||||
@@ -22,6 +29,7 @@
|
||||
create_function_device
|
||||
css_next_descendant_pre
|
||||
_dev_alert
|
||||
devm_bitmap_zalloc
|
||||
drm_edid_get_monitor_name
|
||||
drm_edid_is_valid
|
||||
elevator_alloc
|
||||
@@ -46,9 +54,14 @@
|
||||
gserial_resume
|
||||
gserial_suspend
|
||||
gs_free_req
|
||||
hid_hw_close
|
||||
hid_hw_open
|
||||
__kfifo_out_peek
|
||||
__kfree_skb
|
||||
kmsg_dump_get_line
|
||||
kstrtos16
|
||||
kthread_blkcg
|
||||
log_suspend_abort_reason
|
||||
name_to_dev_t
|
||||
netlink_ack
|
||||
of_css
|
||||
@@ -60,8 +73,14 @@
|
||||
proc_set_size
|
||||
pstore_register
|
||||
pstore_unregister
|
||||
pwm_put
|
||||
regulator_get_current_limit
|
||||
rfkill_set_sw_state
|
||||
sbitmap_queue_min_shallow_depth
|
||||
skb_copy_ubufs
|
||||
smpboot_unregister_percpu_thread
|
||||
snd_soc_add_card_controls
|
||||
stack_trace_save_regs
|
||||
__traceiter_android_rvh_die_kernel_fault
|
||||
__traceiter_android_rvh_do_mem_abort
|
||||
__traceiter_android_rvh_do_sp_pc_abort
|
||||
@@ -69,18 +88,43 @@
|
||||
__traceiter_android_vh_meminfo_proc_show
|
||||
__traceiter_android_vh_show_mem
|
||||
__traceiter_block_rq_insert
|
||||
__tracepoint_android_rvh_arm64_serror_panic
|
||||
__tracepoint_android_rvh_die_kernel_fault
|
||||
__tracepoint_android_rvh_do_mem_abort
|
||||
__tracepoint_android_rvh_do_ptrauth_fault
|
||||
__tracepoint_android_rvh_do_sea
|
||||
__tracepoint_android_rvh_do_sp_pc_abort
|
||||
__tracepoint_android_rvh_do_undefinstr
|
||||
__tracepoint_android_rvh_panic_unhandled
|
||||
__tracepoint_android_vh_meminfo_proc_show
|
||||
__tracepoint_android_vh_ptype_head
|
||||
__tracepoint_android_vh_rtmutex_wait_finish
|
||||
__tracepoint_android_vh_rtmutex_wait_start
|
||||
__tracepoint_android_vh_rwsem_read_wait_finish
|
||||
__tracepoint_android_vh_rwsem_write_wait_finish
|
||||
__tracepoint_android_vh_sched_show_task
|
||||
__tracepoint_android_vh_show_mem
|
||||
__tracepoint_android_vh_try_to_freeze_todo
|
||||
__tracepoint_android_vh_try_to_freeze_todo_unfrozen
|
||||
__tracepoint_android_vh_watchdog_timer_softlockup
|
||||
__tracepoint_android_vh_wq_lockup_pool
|
||||
__tracepoint_block_rq_insert
|
||||
__tracepoint_hrtimer_expire_entry
|
||||
__tracepoint_hrtimer_expire_exit
|
||||
__tracepoint_irq_handler_entry
|
||||
__tracepoint_irq_handler_exit
|
||||
__tracepoint_kfree_skb
|
||||
__tracepoint_workqueue_execute_start
|
||||
_trace_android_vh_record_pcpu_rwsem_starttime
|
||||
usb_alloc_dev
|
||||
usb_deregister_dev
|
||||
usb_find_interface
|
||||
usb_hid_driver
|
||||
usbnet_cdc_unbind
|
||||
usbnet_defer_kevent
|
||||
usbnet_generic_cdc_bind
|
||||
usb_poison_anchored_urbs
|
||||
usb_register_dev
|
||||
usb_set_device_state
|
||||
vfs_fsync_range
|
||||
__vlan_find_dev_deep_rcu
|
||||
|
||||
2082
android/abi_gki_aarch64_general
Normal file
2082
android/abi_gki_aarch64_general
Normal file
File diff suppressed because it is too large
Load Diff
@@ -8,6 +8,7 @@
|
||||
__traceiter_android_vh_mutex_unlock_slowpath
|
||||
__traceiter_android_vh_mutex_wait_start
|
||||
__traceiter_android_vh_mutex_wait_finish
|
||||
__traceiter_android_rvh_dma_buf_stats_teardown
|
||||
__tracepoint_android_vh_rwsem_init
|
||||
__tracepoint_android_vh_rwsem_wake
|
||||
__tracepoint_android_vh_rwsem_write_finished
|
||||
@@ -17,3 +18,4 @@
|
||||
__tracepoint_android_vh_mutex_unlock_slowpath
|
||||
__tracepoint_android_vh_mutex_wait_start
|
||||
__tracepoint_android_vh_mutex_wait_finish
|
||||
__tracepoint_android_rvh_dma_buf_stats_teardown
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
add_wait_queue
|
||||
alloc_chrdev_region
|
||||
alloc_etherdev_mqs
|
||||
alloc_netdev_mqs
|
||||
__alloc_pages
|
||||
alloc_pages_exact
|
||||
__alloc_percpu
|
||||
__alloc_skb
|
||||
alloc_workqueue
|
||||
__arch_copy_from_user
|
||||
__arch_copy_to_user
|
||||
@@ -17,16 +19,23 @@
|
||||
atomic_notifier_chain_unregister
|
||||
bcmp
|
||||
__bitmap_and
|
||||
__bitmap_complement
|
||||
blocking_notifier_call_chain
|
||||
blocking_notifier_chain_register
|
||||
blocking_notifier_chain_unregister
|
||||
bpf_trace_run1
|
||||
bpf_trace_run2
|
||||
bpf_trace_run3
|
||||
bpf_trace_run4
|
||||
bpf_trace_run5
|
||||
bpf_trace_run6
|
||||
bsearch
|
||||
bus_register
|
||||
bus_unregister
|
||||
cancel_delayed_work
|
||||
cancel_delayed_work_sync
|
||||
cancel_work_sync
|
||||
capable
|
||||
cdev_add
|
||||
cdev_del
|
||||
cdev_init
|
||||
@@ -88,6 +97,8 @@
|
||||
cpu_number
|
||||
__cpu_online_mask
|
||||
__cpu_possible_mask
|
||||
crc32_le
|
||||
crypto_destroy_tfm
|
||||
_ctype
|
||||
debugfs_create_dir
|
||||
debugfs_create_file
|
||||
@@ -98,6 +109,8 @@
|
||||
del_timer
|
||||
del_timer_sync
|
||||
destroy_workqueue
|
||||
dev_alloc_name
|
||||
dev_close
|
||||
_dev_crit
|
||||
dev_driver_string
|
||||
_dev_err
|
||||
@@ -109,7 +122,9 @@
|
||||
device_del
|
||||
device_destroy
|
||||
device_for_each_child
|
||||
device_get_child_node_count
|
||||
device_get_match_data
|
||||
device_get_next_child_node
|
||||
device_initialize
|
||||
device_init_wakeup
|
||||
device_link_add
|
||||
@@ -125,9 +140,11 @@
|
||||
_dev_info
|
||||
__dev_kfree_skb_any
|
||||
devm_add_action
|
||||
devm_backlight_device_register
|
||||
devm_clk_bulk_get
|
||||
devm_clk_get
|
||||
devm_clk_get_optional
|
||||
devm_device_add_group
|
||||
__devm_drm_dev_alloc
|
||||
devm_drm_panel_bridge_add
|
||||
devm_extcon_dev_allocate
|
||||
@@ -148,6 +165,7 @@
|
||||
devm_kfree
|
||||
devm_kmalloc
|
||||
devm_kmemdup
|
||||
devm_led_classdev_register_ext
|
||||
__devm_of_phy_provider_register
|
||||
devm_phy_create
|
||||
devm_phy_get
|
||||
@@ -173,6 +191,7 @@
|
||||
devm_thermal_zone_of_sensor_register
|
||||
devm_usb_get_phy_by_phandle
|
||||
devm_watchdog_register_device
|
||||
dev_pm_domain_attach_by_id
|
||||
dev_pm_domain_attach_by_name
|
||||
dev_pm_domain_detach
|
||||
dev_pm_set_wake_irq
|
||||
@@ -211,6 +230,7 @@
|
||||
dma_map_sg_attrs
|
||||
dma_map_sgtable
|
||||
dmam_free_coherent
|
||||
dma_mmap_attrs
|
||||
dma_pool_alloc
|
||||
dma_pool_create
|
||||
dma_pool_destroy
|
||||
@@ -359,8 +379,10 @@
|
||||
drm_vblank_init
|
||||
dump_stack
|
||||
enable_irq
|
||||
ether_setup
|
||||
ethnl_cable_test_fault_length
|
||||
ethnl_cable_test_result
|
||||
ethtool_op_get_link
|
||||
eth_type_trans
|
||||
eth_validate_addr
|
||||
event_triggers_call
|
||||
@@ -369,6 +391,7 @@
|
||||
_find_first_bit
|
||||
_find_next_bit
|
||||
finish_wait
|
||||
flush_delayed_work
|
||||
flush_work
|
||||
flush_workqueue
|
||||
fput
|
||||
@@ -382,6 +405,7 @@
|
||||
fwnode_graph_get_remote_port_parent
|
||||
fwnode_handle_put
|
||||
fwnode_property_present
|
||||
fwnode_property_read_string
|
||||
fwnode_property_read_u32_array
|
||||
fwnode_property_read_u64_array
|
||||
gcd
|
||||
@@ -401,9 +425,11 @@
|
||||
get_random_bytes
|
||||
get_unused_fd_flags
|
||||
gic_nonsecure_priorities
|
||||
gpiochip_add_data_with_key
|
||||
gpiochip_generic_free
|
||||
gpiochip_generic_request
|
||||
gpiochip_get_data
|
||||
gpiochip_remove
|
||||
gpiod_direction_output
|
||||
gpiod_direction_output_raw
|
||||
gpiod_get_optional
|
||||
@@ -456,13 +482,16 @@
|
||||
iio_get_time_ns
|
||||
iio_push_event
|
||||
iio_push_to_buffers
|
||||
init_net
|
||||
__init_swait_queue_head
|
||||
init_timer_key
|
||||
init_wait_entry
|
||||
__init_waitqueue_head
|
||||
input_alloc_absinfo
|
||||
input_event
|
||||
input_mt_init_slots
|
||||
input_mt_report_slot_state
|
||||
input_mt_sync_frame
|
||||
input_register_device
|
||||
input_set_abs_params
|
||||
input_set_capability
|
||||
@@ -483,10 +512,17 @@
|
||||
irq_set_irq_wake
|
||||
is_vmalloc_addr
|
||||
jiffies
|
||||
jiffies_to_msecs
|
||||
jiffies_to_usecs
|
||||
kasan_flag_enabled
|
||||
kasprintf
|
||||
__kfifo_alloc
|
||||
__kfifo_free
|
||||
__kfifo_in
|
||||
__kfifo_out
|
||||
kfree
|
||||
kfree_sensitive
|
||||
kfree_skb
|
||||
kimage_voffset
|
||||
__kmalloc
|
||||
kmalloc_caches
|
||||
@@ -498,6 +534,7 @@
|
||||
kmem_cache_free
|
||||
kmemdup
|
||||
kobject_create_and_add
|
||||
kobject_uevent_env
|
||||
krealloc
|
||||
kstrdup
|
||||
kstrtoint
|
||||
@@ -510,6 +547,9 @@
|
||||
ktime_get
|
||||
ktime_get_mono_fast_ns
|
||||
ktime_get_real_ts64
|
||||
ktime_get_with_offset
|
||||
kvfree_call_rcu
|
||||
led_init_default_state_get
|
||||
__list_add_valid
|
||||
__list_del_entry_valid
|
||||
__local_bh_enable_ip
|
||||
@@ -526,6 +566,7 @@
|
||||
media_device_unregister
|
||||
media_entity_pads_init
|
||||
media_entity_remote_pad
|
||||
memcmp
|
||||
memcpy
|
||||
__memcpy_fromio
|
||||
__memcpy_toio
|
||||
@@ -538,14 +579,20 @@
|
||||
mipi_dsi_create_packet
|
||||
mipi_dsi_dcs_enter_sleep_mode
|
||||
mipi_dsi_dcs_exit_sleep_mode
|
||||
mipi_dsi_dcs_get_display_brightness
|
||||
mipi_dsi_dcs_set_display_brightness
|
||||
mipi_dsi_dcs_set_display_off
|
||||
mipi_dsi_dcs_set_display_on
|
||||
mipi_dsi_dcs_set_pixel_format
|
||||
mipi_dsi_dcs_set_tear_on
|
||||
mipi_dsi_dcs_set_tear_scanline
|
||||
mipi_dsi_dcs_soft_reset
|
||||
mipi_dsi_detach
|
||||
mipi_dsi_device_register_full
|
||||
mipi_dsi_device_unregister
|
||||
mipi_dsi_driver_register_full
|
||||
mipi_dsi_driver_unregister
|
||||
mipi_dsi_generic_write
|
||||
mipi_dsi_host_register
|
||||
mipi_dsi_host_unregister
|
||||
misc_deregister
|
||||
@@ -564,17 +611,30 @@
|
||||
napi_complete_done
|
||||
napi_disable
|
||||
napi_enable
|
||||
napi_gro_receive
|
||||
__napi_schedule
|
||||
napi_schedule_prep
|
||||
__netdev_alloc_skb
|
||||
netdev_err
|
||||
netdev_info
|
||||
netif_carrier_off
|
||||
netif_carrier_on
|
||||
netif_device_attach
|
||||
netif_device_detach
|
||||
netif_napi_add
|
||||
netif_receive_skb
|
||||
netif_rx
|
||||
netif_rx_ni
|
||||
netif_tx_stop_all_queues
|
||||
netif_tx_wake_queue
|
||||
netlink_broadcast
|
||||
net_ratelimit
|
||||
__nla_parse
|
||||
nla_put
|
||||
no_llseek
|
||||
noop_llseek
|
||||
nr_cpu_ids
|
||||
__num_online_cpus
|
||||
of_address_to_resource
|
||||
of_alias_get_id
|
||||
of_clk_add_hw_provider
|
||||
@@ -633,7 +693,6 @@
|
||||
of_property_read_variable_u32_array
|
||||
of_reserved_mem_device_init_by_idx
|
||||
of_reserved_mem_lookup
|
||||
of_reset_control_array_get
|
||||
of_thermal_get_trip_points
|
||||
of_usb_get_phy_mode
|
||||
oops_in_progress
|
||||
@@ -668,6 +727,7 @@
|
||||
pinctrl_pm_select_default_state
|
||||
pinctrl_pm_select_sleep_state
|
||||
pinctrl_select_state
|
||||
platform_bus_type
|
||||
platform_device_add
|
||||
platform_device_add_data
|
||||
platform_device_alloc
|
||||
@@ -685,7 +745,6 @@
|
||||
platform_irq_count
|
||||
pm_genpd_init
|
||||
pm_genpd_remove
|
||||
__pm_relax
|
||||
pm_runtime_allow
|
||||
__pm_runtime_disable
|
||||
pm_runtime_enable
|
||||
@@ -705,19 +764,26 @@
|
||||
preempt_schedule_notrace
|
||||
prepare_to_wait_event
|
||||
_printk
|
||||
pskb_expand_head
|
||||
__pskb_pull_tail
|
||||
put_device
|
||||
__put_page
|
||||
__put_task_struct
|
||||
pwm_apply_state
|
||||
queue_delayed_work_on
|
||||
queue_work_on
|
||||
___ratelimit
|
||||
_raw_spin_lock
|
||||
_raw_spin_lock_bh
|
||||
_raw_spin_lock_irq
|
||||
_raw_spin_lock_irqsave
|
||||
_raw_spin_trylock
|
||||
_raw_spin_unlock
|
||||
_raw_spin_unlock_bh
|
||||
_raw_spin_unlock_irq
|
||||
_raw_spin_unlock_irqrestore
|
||||
rb_erase
|
||||
rb_insert_color
|
||||
__rcu_read_lock
|
||||
__rcu_read_unlock
|
||||
rdev_get_drvdata
|
||||
@@ -727,7 +793,12 @@
|
||||
regcache_sync
|
||||
regcache_sync_region
|
||||
__register_chrdev
|
||||
register_inet6addr_notifier
|
||||
register_inetaddr_notifier
|
||||
register_netdev
|
||||
register_netdevice
|
||||
register_netdevice_notifier
|
||||
register_pm_notifier
|
||||
register_reboot_notifier
|
||||
__register_rpmsg_driver
|
||||
register_virtio_driver
|
||||
@@ -780,6 +851,7 @@
|
||||
rtc_time64_to_tm
|
||||
rtc_tm_to_time64
|
||||
rtc_update_irq
|
||||
rtnl_is_locked
|
||||
rtnl_lock
|
||||
rtnl_unlock
|
||||
schedule
|
||||
@@ -804,8 +876,12 @@
|
||||
simple_strtoul
|
||||
single_open
|
||||
single_release
|
||||
skb_clone
|
||||
skb_copy_bits
|
||||
skb_pull
|
||||
skb_push
|
||||
skb_put
|
||||
skb_trim
|
||||
snd_ctl_boolean_mono_info
|
||||
snd_dma_alloc_pages
|
||||
snd_dmaengine_pcm_prepare_slave_config
|
||||
@@ -876,10 +952,15 @@
|
||||
strscpy
|
||||
strsep
|
||||
strstr
|
||||
__sw_hweight16
|
||||
__sw_hweight32
|
||||
__sw_hweight64
|
||||
__sw_hweight8
|
||||
sync_file_create
|
||||
sync_file_get_fence
|
||||
synchronize_irq
|
||||
synchronize_net
|
||||
synchronize_rcu
|
||||
syscon_node_to_regmap
|
||||
syscon_regmap_lookup_by_compatible
|
||||
syscon_regmap_lookup_by_phandle
|
||||
@@ -890,12 +971,17 @@
|
||||
sysfs_remove_file_ns
|
||||
sysfs_remove_group
|
||||
sysrq_mask
|
||||
system_power_efficient_wq
|
||||
system_wq
|
||||
tasklet_init
|
||||
tasklet_kill
|
||||
__tasklet_schedule
|
||||
tasklet_setup
|
||||
thermal_cooling_device_unregister
|
||||
thermal_of_cooling_device_register
|
||||
timer_of_init
|
||||
touchscreen_parse_properties
|
||||
touchscreen_report_pos
|
||||
trace_event_buffer_commit
|
||||
trace_event_buffer_reserve
|
||||
trace_event_ignore_this_pid
|
||||
@@ -905,9 +991,13 @@
|
||||
trace_handle_return
|
||||
trace_raw_output_prep
|
||||
try_module_get
|
||||
tty_encode_baud_rate
|
||||
tty_flip_buffer_push
|
||||
__tty_insert_flip_char
|
||||
tty_insert_flip_string_fixed_flag
|
||||
tty_kref_put
|
||||
tty_port_tty_get
|
||||
tty_termios_baud_rate
|
||||
uart_add_one_port
|
||||
uart_console_device
|
||||
uart_console_write
|
||||
@@ -927,13 +1017,21 @@
|
||||
__udelay
|
||||
__unregister_chrdev
|
||||
unregister_chrdev_region
|
||||
unregister_inet6addr_notifier
|
||||
unregister_inetaddr_notifier
|
||||
unregister_netdev
|
||||
unregister_netdevice_notifier
|
||||
unregister_netdevice_queue
|
||||
unregister_rpmsg_driver
|
||||
unregister_virtio_driver
|
||||
up
|
||||
up_read
|
||||
up_write
|
||||
usb_add_phy_dev
|
||||
usb_autopm_get_interface
|
||||
usb_autopm_put_interface
|
||||
usb_control_msg
|
||||
usb_disabled
|
||||
usb_remove_phy
|
||||
usleep_range_state
|
||||
v4l2_ctrl_handler_free
|
||||
@@ -1029,9 +1127,6 @@
|
||||
mdio_device_reset
|
||||
phy_resolve_aneg_pause
|
||||
|
||||
# required by busfreq-imx8mq.ko
|
||||
register_pm_notifier
|
||||
|
||||
# required by cdns_mhdp_drmcore.ko
|
||||
drm_connector_attach_content_protection_property
|
||||
drm_dp_aux_register
|
||||
@@ -1048,8 +1143,57 @@
|
||||
hdmi_avi_infoframe_check
|
||||
seq_write
|
||||
|
||||
# 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
|
||||
init_uts_ns
|
||||
key_create_or_update
|
||||
key_put
|
||||
keyring_alloc
|
||||
ktime_get_coarse_with_offset
|
||||
netlink_register_notifier
|
||||
netlink_unicast
|
||||
netlink_unregister_notifier
|
||||
net_ns_type_operations
|
||||
nla_find
|
||||
nla_memcpy
|
||||
nla_put_64bit
|
||||
nla_reserve
|
||||
__nla_validate
|
||||
of_prop_next_u32
|
||||
__put_net
|
||||
register_pernet_device
|
||||
rfkill_alloc
|
||||
rfkill_blocked
|
||||
rfkill_destroy
|
||||
rfkill_register
|
||||
rfkill_resume_polling
|
||||
rfkill_set_hw_state_reason
|
||||
rfkill_unregister
|
||||
skb_add_rx_frag
|
||||
__sock_create
|
||||
sock_release
|
||||
sysfs_create_link
|
||||
sysfs_remove_link
|
||||
trace_print_array_seq
|
||||
unregister_pernet_device
|
||||
verify_pkcs7_signature
|
||||
wireless_nlevent_flush
|
||||
|
||||
# required by ci_hdrc.ko
|
||||
bpf_trace_run2
|
||||
debugfs_lookup
|
||||
devm_extcon_register_notifier
|
||||
devm_usb_get_phy
|
||||
@@ -1068,7 +1212,6 @@
|
||||
__usb_create_hcd
|
||||
usb_debug_root
|
||||
usb_del_gadget_udc
|
||||
usb_disabled
|
||||
usb_ep_alloc_request
|
||||
usb_ep_clear_halt
|
||||
usb_ep_disable
|
||||
@@ -1111,6 +1254,9 @@
|
||||
cma_release
|
||||
dma_contiguous_default_area
|
||||
|
||||
# required by cp210x.ko
|
||||
tty_termios_hw_change
|
||||
|
||||
# required by cpufreq-dt.ko
|
||||
cpufreq_enable_boost_support
|
||||
cpufreq_freq_attr_scaling_available_freqs
|
||||
@@ -1175,6 +1321,9 @@
|
||||
__drmm_simple_encoder_alloc
|
||||
drm_of_encoder_active_endpoint
|
||||
|
||||
# required by elants_i2c.ko
|
||||
i2c_smbus_xfer
|
||||
|
||||
# required by fb.ko
|
||||
console_lock
|
||||
console_unlock
|
||||
@@ -1193,19 +1342,13 @@
|
||||
system_unbound_wq
|
||||
|
||||
# required by fec.ko
|
||||
crc32_le
|
||||
ethtool_op_get_link
|
||||
ethtool_op_get_ts_info
|
||||
mdiobus_alloc_size
|
||||
mdiobus_free
|
||||
mdiobus_is_registered_device
|
||||
mdiobus_unregister
|
||||
napi_gro_receive
|
||||
netdev_err
|
||||
netdev_info
|
||||
netdev_pick_tx
|
||||
netif_schedule_queue
|
||||
net_ratelimit
|
||||
net_selftest
|
||||
net_selftest_get_count
|
||||
net_selftest_get_strings
|
||||
@@ -1239,7 +1382,6 @@
|
||||
phy_stop
|
||||
phy_support_sym_pause
|
||||
platform_get_irq_byname_optional
|
||||
pskb_expand_head
|
||||
ptp_clock_event
|
||||
ptp_clock_index
|
||||
ptp_clock_register
|
||||
@@ -1275,9 +1417,9 @@
|
||||
# required by fsl_lpuart.ko
|
||||
add_timer
|
||||
console_suspend_enabled
|
||||
tty_kref_put
|
||||
tty_port_tty_get
|
||||
tty_termios_baud_rate
|
||||
|
||||
# required by ftdi_sio.ko
|
||||
kstrtou8
|
||||
|
||||
# required by galcore.ko
|
||||
anon_inode_getfd
|
||||
@@ -1286,7 +1428,6 @@
|
||||
dev_pm_opp_remove
|
||||
dma_fence_array_ops
|
||||
dma_fence_signal
|
||||
dma_mmap_attrs
|
||||
down
|
||||
driver_create_file
|
||||
driver_remove_file
|
||||
@@ -1304,27 +1445,24 @@
|
||||
iommu_map
|
||||
iommu_set_fault_handler
|
||||
iommu_unmap
|
||||
jiffies_to_msecs
|
||||
kstrtoint_from_user
|
||||
ktime_get_ts64
|
||||
mem_section
|
||||
mutex_trylock
|
||||
param_ops_ullong
|
||||
pid_task
|
||||
platform_bus_type
|
||||
reset_control_reset
|
||||
schedule_hrtimeout
|
||||
__task_pid_nr_ns
|
||||
_totalram_pages
|
||||
__traceiter_gpu_mem_total
|
||||
__tracepoint_gpu_mem_total
|
||||
vm_mmap
|
||||
vm_munmap
|
||||
vm_zone_stat
|
||||
|
||||
# required by goodix.ko
|
||||
gpiod_direction_input
|
||||
input_alloc_absinfo
|
||||
input_mt_sync_frame
|
||||
touchscreen_parse_properties
|
||||
touchscreen_report_pos
|
||||
|
||||
# required by gpio-imx-rpmsg.ko
|
||||
generic_handle_irq
|
||||
@@ -1349,7 +1487,6 @@
|
||||
register_syscore_ops
|
||||
|
||||
# required by gpio-pca953x.ko
|
||||
__bitmap_complement
|
||||
__bitmap_or
|
||||
__bitmap_replace
|
||||
__bitmap_xor
|
||||
@@ -1377,7 +1514,6 @@
|
||||
kobject_uevent
|
||||
kstrtoll
|
||||
strpbrk
|
||||
__sw_hweight32
|
||||
sysfs_notify
|
||||
thermal_zone_device_update
|
||||
|
||||
@@ -1434,9 +1570,9 @@
|
||||
devm_mbox_controller_register
|
||||
mbox_chan_received_data
|
||||
mbox_chan_txdone
|
||||
tasklet_init
|
||||
|
||||
# required by imx-pcm-rpmsg.ko
|
||||
__pm_relax
|
||||
__pm_stay_awake
|
||||
snd_soc_lookup_component
|
||||
wakeup_source_register
|
||||
@@ -1517,7 +1653,6 @@
|
||||
devm_of_phy_get
|
||||
|
||||
# required by imx_dsp_rproc.ko
|
||||
dev_pm_domain_attach_by_id
|
||||
rproc_da_to_va
|
||||
rproc_of_parse_firmware
|
||||
|
||||
@@ -1539,34 +1674,95 @@
|
||||
# required by kfifo_buf.ko
|
||||
iio_buffer_init
|
||||
iio_buffer_put
|
||||
__kfifo_alloc
|
||||
__kfifo_free
|
||||
__kfifo_in
|
||||
__kfifo_to_user
|
||||
|
||||
# required by leds-gpio.ko
|
||||
device_get_child_node_count
|
||||
device_get_next_child_node
|
||||
devm_fwnode_gpiod_get_index
|
||||
devm_led_classdev_register_ext
|
||||
gpiod_cansleep
|
||||
gpiod_set_value
|
||||
led_init_default_state_get
|
||||
|
||||
# required by leds-pwm.ko
|
||||
devm_fwnode_pwm_get
|
||||
of_fwnode_ops
|
||||
|
||||
# required by lpa_ctrl.ko
|
||||
sysfs_create_groups
|
||||
|
||||
# required by mac80211.ko
|
||||
__alloc_percpu_gfp
|
||||
arc4_crypt
|
||||
arc4_setkey
|
||||
call_rcu
|
||||
crc32_be
|
||||
crypto_aead_decrypt
|
||||
crypto_aead_encrypt
|
||||
crypto_aead_setauthsize
|
||||
crypto_aead_setkey
|
||||
crypto_alloc_aead
|
||||
crypto_alloc_shash
|
||||
crypto_alloc_skcipher
|
||||
__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
|
||||
_dev_printk
|
||||
dev_queue_xmit
|
||||
eth_mac_addr
|
||||
get_random_u32
|
||||
__hw_addr_init
|
||||
__hw_addr_sync
|
||||
__hw_addr_unsync
|
||||
kernel_param_lock
|
||||
kernel_param_unlock
|
||||
kfree_skb_list
|
||||
ktime_get_seconds
|
||||
kvfree
|
||||
kvmalloc_node
|
||||
netdev_set_default_ethtool_ops
|
||||
netif_receive_skb_list
|
||||
prandom_bytes
|
||||
___pskb_trim
|
||||
rb_next
|
||||
rb_prev
|
||||
rcu_barrier
|
||||
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
|
||||
skb_checksum_help
|
||||
skb_clone_sk
|
||||
skb_complete_wifi_ack
|
||||
skb_copy
|
||||
skb_copy_expand
|
||||
skb_dequeue
|
||||
skb_ensure_writable
|
||||
__skb_get_hash
|
||||
__skb_gso_segment
|
||||
skb_queue_head
|
||||
skb_queue_purge
|
||||
skb_queue_tail
|
||||
system_freezable_wq
|
||||
tasklet_unlock_wait
|
||||
unregister_netdevice_many
|
||||
__usecs_to_jiffies
|
||||
|
||||
# required by micrel.ko
|
||||
genphy_restart_aneg
|
||||
|
||||
# required by moal.ko
|
||||
alloc_netdev_mqs
|
||||
__alloc_skb
|
||||
dev_alloc_name
|
||||
ether_setup
|
||||
in4_pton
|
||||
init_dummy_netdev
|
||||
init_net
|
||||
iwe_stream_add_event
|
||||
iwe_stream_add_point
|
||||
iwe_stream_add_value
|
||||
@@ -1574,24 +1770,13 @@
|
||||
iw_handler_get_thrspy
|
||||
iw_handler_set_spy
|
||||
iw_handler_set_thrspy
|
||||
kfree_skb
|
||||
ktime_get_raw_ts64
|
||||
ktime_get_with_offset
|
||||
memcmp
|
||||
mmc_hw_reset
|
||||
mmc_set_data_timeout
|
||||
mmc_wait_for_req
|
||||
netif_carrier_on
|
||||
__netif_napi_del
|
||||
netif_receive_skb
|
||||
netif_rx
|
||||
netif_rx_ni
|
||||
netif_tx_stop_all_queues
|
||||
netlink_broadcast
|
||||
__netlink_kernel_create
|
||||
netlink_kernel_release
|
||||
__nla_parse
|
||||
nla_put
|
||||
panic
|
||||
param_ops_ushort
|
||||
pci_choose_state
|
||||
@@ -1614,16 +1799,10 @@
|
||||
pci_set_power_state
|
||||
pci_unregister_driver
|
||||
PDE_DATA
|
||||
pm_wakeup_ws_event
|
||||
prandom_u32
|
||||
proc_create_data
|
||||
proc_mkdir
|
||||
_raw_spin_lock_bh
|
||||
_raw_spin_unlock_bh
|
||||
register_inet6addr_notifier
|
||||
register_inetaddr_notifier
|
||||
request_firmware_direct
|
||||
rtnl_is_locked
|
||||
schedule_timeout_uninterruptible
|
||||
sdio_claim_host
|
||||
sdio_claim_irq
|
||||
@@ -1642,20 +1821,11 @@
|
||||
sdio_unregister_driver
|
||||
sdio_writeb
|
||||
sdio_writesb
|
||||
skb_clone
|
||||
skb_push
|
||||
skb_realloc_headroom
|
||||
skb_trim
|
||||
strcat
|
||||
strim
|
||||
strncasecmp
|
||||
__sw_hweight64
|
||||
synchronize_net
|
||||
unregister_inet6addr_notifier
|
||||
unregister_inetaddr_notifier
|
||||
vprintk
|
||||
wakeup_source_add
|
||||
wakeup_source_remove
|
||||
wireless_send_event
|
||||
|
||||
# required by mpl3115.ko
|
||||
@@ -1666,7 +1836,6 @@
|
||||
bdi_alloc
|
||||
bdi_put
|
||||
bdi_register
|
||||
capable
|
||||
deactivate_locked_super
|
||||
fixed_size_llseek
|
||||
generic_shutdown_super
|
||||
@@ -1699,7 +1868,9 @@
|
||||
# required by mxc-clk.ko
|
||||
__clk_determine_rate
|
||||
clk_divider_ops
|
||||
clk_divider_ro_ops
|
||||
clk_fractional_divider_ops
|
||||
clk_gate_is_enabled
|
||||
clk_gate_ops
|
||||
__clk_get_hw
|
||||
clk_hw_get_name
|
||||
@@ -1710,6 +1881,7 @@
|
||||
clk_hw_unregister
|
||||
clk_mux_index_to_val
|
||||
clk_mux_ops
|
||||
clk_mux_ro_ops
|
||||
clk_unregister
|
||||
divider_get_val
|
||||
divider_recalc_rate
|
||||
@@ -1721,7 +1893,6 @@
|
||||
|
||||
# required by mxs-dma.ko
|
||||
dmaenginem_async_device_register
|
||||
tasklet_setup
|
||||
|
||||
# required by mxsfb.ko
|
||||
devm_drm_panel_bridge_add_typed
|
||||
@@ -1756,15 +1927,6 @@
|
||||
v4l2_event_subdev_unsubscribe
|
||||
__v4l2_find_nearest_size
|
||||
|
||||
# required by panel-raydium-rm67191.ko
|
||||
devm_backlight_device_register
|
||||
mipi_dsi_dcs_get_display_brightness
|
||||
mipi_dsi_dcs_set_display_brightness
|
||||
mipi_dsi_dcs_set_pixel_format
|
||||
mipi_dsi_dcs_set_tear_scanline
|
||||
mipi_dsi_dcs_soft_reset
|
||||
mipi_dsi_generic_write
|
||||
|
||||
# required by panel-rocktech-hx8394f.ko
|
||||
mipi_dsi_dcs_write_buffer
|
||||
|
||||
@@ -1819,6 +1981,7 @@
|
||||
of_clk_src_simple_get
|
||||
|
||||
# required by phy-generic.ko
|
||||
devm_regulator_get_exclusive
|
||||
regulator_set_current_limit
|
||||
|
||||
# required by pinctrl-imx.ko
|
||||
@@ -1845,7 +2008,6 @@
|
||||
backlight_device_register
|
||||
backlight_device_unregister
|
||||
devm_pwm_get
|
||||
pwm_apply_state
|
||||
pwm_free
|
||||
pwm_request
|
||||
|
||||
@@ -1888,6 +2050,7 @@
|
||||
__regmap_init_mmio_clk
|
||||
|
||||
# required by rpmsg_life_cycle.ko
|
||||
pm_suspend_target_state
|
||||
remove_cpu
|
||||
|
||||
# required by rpmsg_ns.ko
|
||||
@@ -1936,9 +2099,6 @@
|
||||
drm_panel_prepare
|
||||
of_drm_find_panel
|
||||
|
||||
# required by sec_mipi_dsim-imx.ko
|
||||
reset_control_put
|
||||
|
||||
# required by secure_heap.ko
|
||||
deferred_free
|
||||
gen_pool_add_owner
|
||||
@@ -1968,7 +2128,6 @@
|
||||
|
||||
# required by snd-soc-fsl-micfil.ko
|
||||
kobject_put
|
||||
kobject_uevent_env
|
||||
snd_soc_get_volsw_sx
|
||||
snd_soc_info_volsw_sx
|
||||
snd_soc_put_volsw_sx
|
||||
@@ -2015,6 +2174,7 @@
|
||||
|
||||
# required by snd-soc-simple-card-utils.ko
|
||||
devm_kvasprintf
|
||||
snd_soc_component_set_sysclk
|
||||
snd_soc_daifmt_clock_provider_from_bitmap
|
||||
snd_soc_dapm_get_pin_switch
|
||||
snd_soc_dapm_info_pin_switch
|
||||
@@ -2044,7 +2204,6 @@
|
||||
snd_soc_dapm_force_enable_pin_unlocked
|
||||
snd_soc_dapm_sync
|
||||
snd_soc_dapm_sync_unlocked
|
||||
system_power_efficient_wq
|
||||
try_wait_for_completion
|
||||
|
||||
# required by snd-sof.ko
|
||||
@@ -2132,8 +2291,6 @@
|
||||
dma_buf_vunmap
|
||||
fget
|
||||
import_iovec
|
||||
rb_erase
|
||||
rb_insert_color
|
||||
strncpy_from_user
|
||||
virtqueue_detach_unused_buf
|
||||
wait_woken
|
||||
@@ -2164,6 +2321,48 @@
|
||||
of_clk_set_defaults
|
||||
of_device_request_module
|
||||
|
||||
# required by usbserial.ko
|
||||
driver_attach
|
||||
schedule_timeout_interruptible
|
||||
seq_putc
|
||||
__tty_alloc_driver
|
||||
tty_driver_kref_put
|
||||
tty_hangup
|
||||
tty_ldisc_deref
|
||||
tty_ldisc_ref
|
||||
tty_port_close
|
||||
tty_port_destroy
|
||||
tty_port_hangup
|
||||
tty_port_init
|
||||
tty_port_open
|
||||
tty_port_register_device
|
||||
tty_port_tty_wakeup
|
||||
tty_register_driver
|
||||
tty_standard_install
|
||||
tty_std_termios
|
||||
tty_termios_copy_hw
|
||||
tty_unregister_device
|
||||
tty_unregister_driver
|
||||
tty_vhangup
|
||||
usb_alloc_urb
|
||||
usb_deregister
|
||||
usb_driver_claim_interface
|
||||
usb_driver_release_interface
|
||||
usb_free_urb
|
||||
usb_get_dev
|
||||
usb_get_intf
|
||||
usb_kill_urb
|
||||
usb_match_id
|
||||
usb_match_one_id
|
||||
usb_poison_urb
|
||||
usb_put_dev
|
||||
usb_put_intf
|
||||
usb_register_driver
|
||||
usb_show_dynids
|
||||
usb_store_new_id
|
||||
usb_submit_urb
|
||||
usb_unpoison_urb
|
||||
|
||||
# required by v4l2-async.ko
|
||||
_dev_notice
|
||||
fwnode_handle_get
|
||||
@@ -2175,7 +2374,6 @@
|
||||
fwnode_graph_get_remote_endpoint
|
||||
fwnode_graph_parse_endpoint
|
||||
fwnode_property_get_reference_args
|
||||
fwnode_property_read_string
|
||||
kstrdup_const
|
||||
|
||||
# required by virtio_rpmsg_bus.ko
|
||||
@@ -2186,7 +2384,6 @@
|
||||
virtqueue_enable_cb
|
||||
|
||||
# required by vsiv4l2.ko
|
||||
devm_device_add_group
|
||||
v4l2_event_dequeue
|
||||
v4l2_event_queue_fh
|
||||
v4l2_src_change_event_subscribe
|
||||
@@ -2226,7 +2423,6 @@
|
||||
crypto_alloc_base
|
||||
crypto_comp_compress
|
||||
crypto_comp_decompress
|
||||
crypto_destroy_tfm
|
||||
crypto_has_alg
|
||||
del_gendisk
|
||||
device_add_disk
|
||||
@@ -2238,7 +2434,6 @@
|
||||
__get_free_pages
|
||||
__init_rwsem
|
||||
memset64
|
||||
__num_online_cpus
|
||||
page_endio
|
||||
__register_blkdev
|
||||
set_capacity
|
||||
@@ -2246,6 +2441,16 @@
|
||||
__sysfs_match_string
|
||||
sysfs_streq
|
||||
unregister_blkdev
|
||||
zs_compact
|
||||
zs_create_pool
|
||||
zs_destroy_pool
|
||||
zs_free
|
||||
zs_get_total_pages
|
||||
zs_huge_class_size
|
||||
zs_malloc
|
||||
zs_map_object
|
||||
zs_pool_stats
|
||||
zs_unmap_object
|
||||
|
||||
# required by zsmalloc.ko
|
||||
alloc_anon_inode
|
||||
@@ -2258,7 +2463,6 @@
|
||||
kern_mount
|
||||
kern_unmount
|
||||
kill_anon_super
|
||||
__lock_page
|
||||
page_mapping
|
||||
_raw_read_lock
|
||||
_raw_read_unlock
|
||||
@@ -2268,3 +2472,4 @@
|
||||
__SetPageMovable
|
||||
unlock_page
|
||||
unregister_shrinker
|
||||
wait_on_page_bit
|
||||
|
||||
@@ -183,7 +183,9 @@
|
||||
contig_page_data
|
||||
_copy_from_iter
|
||||
copy_from_kernel_nofault
|
||||
copy_from_user_toio
|
||||
_copy_to_iter
|
||||
copy_to_user_fromio
|
||||
__cpu_active_mask
|
||||
cpu_all_bits
|
||||
cpu_bit_bitmap
|
||||
@@ -350,8 +352,10 @@
|
||||
devm_clk_register
|
||||
devm_devfreq_add_device
|
||||
devm_devfreq_register_notifier
|
||||
devm_devfreq_register_opp_notifier
|
||||
devm_devfreq_remove_device
|
||||
devm_devfreq_unregister_notifier
|
||||
devm_devfreq_unregister_opp_notifier
|
||||
devm_extcon_dev_allocate
|
||||
devm_extcon_dev_register
|
||||
devm_extcon_register_notifier
|
||||
@@ -616,6 +620,7 @@
|
||||
drm_dp_dpcd_write
|
||||
drm_dp_link_train_channel_eq_delay
|
||||
drm_dp_link_train_clock_recovery_delay
|
||||
drm_dp_read_dpcd_caps
|
||||
drm_edid_duplicate
|
||||
drm_edid_to_sad
|
||||
drm_encoder_cleanup
|
||||
@@ -661,6 +666,7 @@
|
||||
drm_mode_probed_add
|
||||
drm_mode_set_crtcinfo
|
||||
drm_mode_set_name
|
||||
drm_mode_validate_size
|
||||
drm_mode_vrefresh
|
||||
drm_object_attach_property
|
||||
drm_open
|
||||
@@ -679,6 +685,7 @@
|
||||
drm_property_create_blob
|
||||
drm_property_create_range
|
||||
drm_property_lookup_blob
|
||||
drm_property_replace_global_blob
|
||||
drm_read
|
||||
drm_release
|
||||
drm_universal_plane_init
|
||||
@@ -765,6 +772,8 @@
|
||||
fwnode_property_read_string
|
||||
fwnode_property_read_u32_array
|
||||
fwnode_property_read_u64_array
|
||||
g_audio_cleanup
|
||||
g_audio_setup
|
||||
gcd
|
||||
generic_file_llseek
|
||||
generic_handle_domain_irq
|
||||
@@ -797,6 +806,21 @@
|
||||
get_each_dmabuf
|
||||
__get_free_pages
|
||||
get_governor_parent_kobj
|
||||
gether_cleanup
|
||||
gether_connect
|
||||
gether_disconnect
|
||||
gether_get_dev_addr
|
||||
gether_get_host_addr
|
||||
gether_get_host_addr_u8
|
||||
gether_get_ifname
|
||||
gether_get_qmult
|
||||
gether_register_netdev
|
||||
gether_set_dev_addr
|
||||
gether_set_gadget
|
||||
gether_set_host_addr
|
||||
gether_set_ifname
|
||||
gether_set_qmult
|
||||
gether_setup_name_default
|
||||
get_kernel_pages
|
||||
get_pid_task
|
||||
get_random_bytes
|
||||
@@ -840,8 +864,16 @@
|
||||
handle_nested_irq
|
||||
handle_simple_irq
|
||||
have_governor_per_policy
|
||||
hdmi_spd_infoframe_init
|
||||
hdmi_spd_infoframe_pack
|
||||
hex_asc
|
||||
hex_to_bin
|
||||
hid_add_device
|
||||
hid_allocate_device
|
||||
hid_debug
|
||||
hid_destroy_device
|
||||
hid_input_report
|
||||
hid_parse_report
|
||||
hrtimer_active
|
||||
hrtimer_cancel
|
||||
hrtimer_forward
|
||||
@@ -1034,6 +1066,7 @@
|
||||
kstrtoint_from_user
|
||||
kstrtol_from_user
|
||||
kstrtoll
|
||||
kstrtos16
|
||||
kstrtou16
|
||||
kstrtou8
|
||||
kstrtouint
|
||||
@@ -1056,6 +1089,7 @@
|
||||
kthread_stop
|
||||
kthread_worker_fn
|
||||
ktime_get
|
||||
ktime_get_coarse_ts64
|
||||
ktime_get_mono_fast_ns
|
||||
ktime_get_raw
|
||||
ktime_get_raw_ts64
|
||||
@@ -1077,6 +1111,7 @@
|
||||
led_trigger_remove
|
||||
led_update_brightness
|
||||
led_update_flash_brightness
|
||||
linear_range_get_max_value
|
||||
linear_range_get_selector_within
|
||||
linear_range_get_value
|
||||
__list_add_valid
|
||||
@@ -1393,6 +1428,7 @@
|
||||
phy_exit
|
||||
phy_get
|
||||
phy_init
|
||||
phy_loopback
|
||||
phy_power_off
|
||||
phy_power_on
|
||||
phy_print_status
|
||||
@@ -1533,8 +1569,12 @@
|
||||
rb_next
|
||||
rb_prev
|
||||
rb_replace_node
|
||||
rc_allocate_device
|
||||
rc_free_device
|
||||
rc_register_device
|
||||
rcu_idle_enter
|
||||
rcu_idle_exit
|
||||
rc_unregister_device
|
||||
__rcu_read_lock
|
||||
__rcu_read_unlock
|
||||
rdev_get_dev
|
||||
@@ -1562,6 +1602,7 @@
|
||||
register_shrinker
|
||||
register_syscore_ops
|
||||
register_sysctl_table
|
||||
register_tracepoint_module_notifier
|
||||
register_virtio_device
|
||||
register_virtio_driver
|
||||
regmap_bulk_read
|
||||
@@ -1760,6 +1801,7 @@
|
||||
skb_put
|
||||
skb_queue_tail
|
||||
skb_realloc_headroom
|
||||
skb_split
|
||||
skb_trim
|
||||
smp_call_function
|
||||
smp_call_function_single
|
||||
@@ -1940,6 +1982,7 @@
|
||||
trace_event_reg
|
||||
trace_handle_return
|
||||
__traceiter_android_rvh_after_enqueue_task
|
||||
__traceiter_android_rvh_audio_usb_offload_disconnect
|
||||
__traceiter_android_rvh_can_migrate_task
|
||||
__traceiter_android_rvh_commit_creds
|
||||
__traceiter_android_rvh_cpu_overutilized
|
||||
@@ -1960,6 +2003,7 @@
|
||||
__traceiter_android_rvh_override_creds
|
||||
__traceiter_android_rvh_prepare_prio_fork
|
||||
__traceiter_android_rvh_revert_creds
|
||||
__traceiter_android_rvh_rmqueue_bulk
|
||||
__traceiter_android_rvh_rtmutex_prepare_setprio
|
||||
__traceiter_android_rvh_rto_next_cpu
|
||||
__traceiter_android_rvh_sched_newidle_balance
|
||||
@@ -1988,6 +2032,7 @@
|
||||
__traceiter_android_vh_check_file_open
|
||||
__traceiter_android_vh_check_mmap_file
|
||||
__traceiter_android_vh_check_uninterruptible_tasks
|
||||
__traceiter_android_vh_cpufreq_offline
|
||||
__traceiter_android_vh_iommu_iovad_alloc_iova
|
||||
__traceiter_android_vh_iommu_iovad_free_iova
|
||||
__traceiter_android_vh_is_fpsimd_save
|
||||
@@ -1995,6 +2040,7 @@
|
||||
__traceiter_android_vh_rwsem_init
|
||||
__traceiter_android_vh_rwsem_wake
|
||||
__traceiter_android_vh_rwsem_write_finished
|
||||
__traceiter_android_vh_sched_pelt_multiplier
|
||||
__traceiter_android_vh_scheduler_tick
|
||||
__traceiter_android_vh_set_memory_nx
|
||||
__traceiter_android_vh_set_memory_rw
|
||||
@@ -2035,6 +2081,7 @@
|
||||
__tracepoint_android_rvh_override_creds
|
||||
__tracepoint_android_rvh_prepare_prio_fork
|
||||
__tracepoint_android_rvh_revert_creds
|
||||
__tracepoint_android_rvh_rmqueue_bulk
|
||||
__tracepoint_android_rvh_rtmutex_prepare_setprio
|
||||
__tracepoint_android_rvh_rto_next_cpu
|
||||
__tracepoint_android_rvh_sched_newidle_balance
|
||||
@@ -2063,6 +2110,7 @@
|
||||
__tracepoint_android_vh_check_file_open
|
||||
__tracepoint_android_vh_check_mmap_file
|
||||
__tracepoint_android_vh_check_uninterruptible_tasks
|
||||
__tracepoint_android_vh_cpufreq_offline
|
||||
__tracepoint_android_vh_iommu_iovad_alloc_iova
|
||||
__tracepoint_android_vh_iommu_iovad_free_iova
|
||||
__tracepoint_android_vh_is_fpsimd_save
|
||||
@@ -2070,6 +2118,7 @@
|
||||
__tracepoint_android_vh_rwsem_init
|
||||
__tracepoint_android_vh_rwsem_wake
|
||||
__tracepoint_android_vh_rwsem_write_finished
|
||||
__tracepoint_android_vh_sched_pelt_multiplier
|
||||
__tracepoint_android_vh_scheduler_tick
|
||||
__tracepoint_android_vh_set_memory_nx
|
||||
__tracepoint_android_vh_set_memory_rw
|
||||
@@ -2101,13 +2150,17 @@
|
||||
tracing_off
|
||||
try_module_get
|
||||
try_wait_for_completion
|
||||
tty_chars_in_buffer
|
||||
tty_driver_flush_buffer
|
||||
tty_flip_buffer_push
|
||||
tty_insert_flip_string_fixed_flag
|
||||
tty_ldisc_flush
|
||||
tty_register_ldisc
|
||||
tty_set_termios
|
||||
tty_termios_baud_rate
|
||||
tty_termios_encode_baud_rate
|
||||
tty_unregister_ldisc
|
||||
tty_write_room
|
||||
typec_mux_get_drvdata
|
||||
typec_mux_register
|
||||
typec_mux_set
|
||||
@@ -2128,6 +2181,14 @@
|
||||
uart_get_baud_rate
|
||||
uart_get_divisor
|
||||
uart_update_timeout
|
||||
u_audio_get_mute
|
||||
u_audio_get_volume
|
||||
u_audio_set_mute
|
||||
u_audio_set_volume
|
||||
u_audio_start_capture
|
||||
u_audio_start_playback
|
||||
u_audio_stop_capture
|
||||
u_audio_stop_playback
|
||||
__ubsan_handle_cfi_check_fail_abort
|
||||
uclamp_eff_value
|
||||
__udelay
|
||||
|
||||
@@ -256,6 +256,7 @@
|
||||
dev_alloc_name
|
||||
__dev_change_net_namespace
|
||||
dev_close
|
||||
dev_coredumpv
|
||||
_dev_crit
|
||||
dev_driver_string
|
||||
_dev_emerg
|
||||
@@ -462,6 +463,7 @@
|
||||
driver_create_file
|
||||
driver_find
|
||||
driver_register
|
||||
driver_remove_file
|
||||
driver_unregister
|
||||
drm_atomic_get_crtc_state
|
||||
drm_atomic_helper_async_commit
|
||||
@@ -656,13 +658,16 @@
|
||||
gpiochip_remove
|
||||
gpiod_cansleep
|
||||
gpiod_count
|
||||
gpiod_direction_input
|
||||
gpiod_direction_output
|
||||
gpiod_direction_output_raw
|
||||
gpiod_get_raw_value
|
||||
gpiod_get_value
|
||||
gpiod_get_value_cansleep
|
||||
gpiod_is_active_low
|
||||
gpiod_set_consumer_name
|
||||
gpiod_set_debounce
|
||||
gpiod_set_raw_value
|
||||
gpiod_set_value
|
||||
gpiod_set_value_cansleep
|
||||
gpiod_to_irq
|
||||
@@ -692,6 +697,7 @@
|
||||
hwspin_lock_get_id
|
||||
hwspin_lock_request
|
||||
hwspin_lock_request_specific
|
||||
__hwspin_lock_timeout
|
||||
__hwspin_trylock
|
||||
__hwspin_unlock
|
||||
i2c_adapter_type
|
||||
@@ -704,9 +710,11 @@
|
||||
i2c_del_driver
|
||||
i2c_for_each_dev
|
||||
i2c_get_adapter
|
||||
i2c_get_dma_safe_msg_buf
|
||||
i2c_new_client_device
|
||||
i2c_new_dummy_device
|
||||
i2c_put_adapter
|
||||
i2c_put_dma_safe_msg_buf
|
||||
i2c_register_driver
|
||||
i2c_smbus_xfer
|
||||
__i2c_transfer
|
||||
@@ -745,11 +753,16 @@
|
||||
__init_waitqueue_head
|
||||
inode_init_once
|
||||
input_allocate_device
|
||||
input_close_device
|
||||
input_event
|
||||
input_free_device
|
||||
input_open_device
|
||||
input_register_device
|
||||
input_register_handle
|
||||
input_register_handler
|
||||
input_set_capability
|
||||
input_unregister_device
|
||||
input_unregister_handle
|
||||
__insert_inode_hash
|
||||
int_sqrt
|
||||
invalidate_bh_lrus
|
||||
@@ -799,6 +812,7 @@
|
||||
irq_to_desc
|
||||
is_bad_inode
|
||||
is_vmalloc_addr
|
||||
jiffies_64_to_clock_t
|
||||
jiffies64_to_nsecs
|
||||
jiffies
|
||||
jiffies_to_msecs
|
||||
@@ -858,8 +872,12 @@
|
||||
kstrtoull
|
||||
kthread_bind
|
||||
kthread_create_on_node
|
||||
kthread_park
|
||||
kthread_parkme
|
||||
kthread_should_park
|
||||
kthread_should_stop
|
||||
kthread_stop
|
||||
kthread_unpark
|
||||
ktime_get
|
||||
ktime_get_coarse_real_ts64
|
||||
ktime_get_coarse_with_offset
|
||||
@@ -1035,9 +1053,11 @@
|
||||
of_get_next_parent
|
||||
of_get_property
|
||||
of_get_regulator_init_data
|
||||
of_hwspin_lock_get_id
|
||||
of_iomap
|
||||
of_irq_find_parent
|
||||
of_irq_get
|
||||
of_irq_get_byname
|
||||
of_irq_parse_and_map_pci
|
||||
of_irq_parse_one
|
||||
of_machine_is_compatible
|
||||
@@ -1335,6 +1355,7 @@
|
||||
rproc_get_by_child
|
||||
rproc_mem_entry_init
|
||||
rproc_of_resm_mem_entry_init
|
||||
rproc_report_crash
|
||||
rproc_shutdown
|
||||
rproc_vq_interrupt
|
||||
rtc_add_group
|
||||
@@ -1567,6 +1588,7 @@
|
||||
sysfs_streq
|
||||
sysfs_unmerge_group
|
||||
sysfs_update_group
|
||||
system_freezable_power_efficient_wq
|
||||
system_freezable_wq
|
||||
system_freezing_cnt
|
||||
system_highpri_wq
|
||||
@@ -1580,6 +1602,7 @@
|
||||
tasklet_unlock_wait
|
||||
thermal_cooling_device_unregister
|
||||
thermal_of_cooling_device_register
|
||||
thermal_zone_get_temp
|
||||
thermal_zone_get_zone_by_name
|
||||
time64_to_tm
|
||||
_totalram_pages
|
||||
@@ -1711,6 +1734,7 @@
|
||||
usb_string
|
||||
usb_submit_urb
|
||||
usb_unanchor_urb
|
||||
usb_unlink_anchored_urbs
|
||||
__usecs_to_jiffies
|
||||
usleep_range_state
|
||||
uuid_null
|
||||
|
||||
@@ -1,28 +1,35 @@
|
||||
[abi_symbol_list]
|
||||
address_space_init_once
|
||||
add_timer
|
||||
alloc_anon_inode
|
||||
__alloc_pages
|
||||
__alloc_percpu
|
||||
alloc_workqueue
|
||||
android_debug_symbol
|
||||
arm64_const_caps_ready
|
||||
autoremove_wake_function
|
||||
bcmp
|
||||
bio_add_page
|
||||
bio_alloc_bioset
|
||||
bio_associate_blkg
|
||||
bio_chain
|
||||
__bio_crypt_clone
|
||||
bio_crypt_set_ctx
|
||||
bio_endio
|
||||
bio_end_io_acct_remapped
|
||||
bio_init
|
||||
bio_put
|
||||
bio_start_io_acct
|
||||
__blk_alloc_disk
|
||||
blk_cleanup_disk
|
||||
blk_cleanup_queue
|
||||
blkdev_get_by_dev
|
||||
blkdev_get_by_path
|
||||
__blkdev_issue_discard
|
||||
blkdev_issue_flush
|
||||
blkdev_put
|
||||
blk_finish_plug
|
||||
blk_mq_queue_inflight
|
||||
blk_queue_flag_clear
|
||||
blk_queue_flag_set
|
||||
blk_queue_io_min
|
||||
@@ -34,11 +41,18 @@
|
||||
blk_queue_physical_block_size
|
||||
blk_queue_write_cache
|
||||
blk_start_plug
|
||||
blk_status_to_errno
|
||||
call_rcu
|
||||
capable
|
||||
cgroup_add_legacy_cftypes
|
||||
__class_register
|
||||
class_unregister
|
||||
__ClearPageMovable
|
||||
complete
|
||||
congestion_wait
|
||||
contig_page_data
|
||||
copy_from_kernel_nofault
|
||||
cpufreq_update_util_data
|
||||
__cpuhp_remove_state
|
||||
__cpuhp_setup_state
|
||||
__cpuhp_state_add_instance
|
||||
@@ -52,20 +66,38 @@
|
||||
crypto_comp_decompress
|
||||
crypto_destroy_tfm
|
||||
crypto_has_alg
|
||||
debugfs_create_dir
|
||||
debugfs_create_file
|
||||
dec_zone_page_state
|
||||
default_llseek
|
||||
delayed_work_timer_fn
|
||||
del_gendisk
|
||||
del_timer
|
||||
del_timer_sync
|
||||
destroy_workqueue
|
||||
dev_get_by_index_rcu
|
||||
device_add_disk
|
||||
devres_destroy
|
||||
disk_end_io_acct
|
||||
disk_start_io_acct
|
||||
do_traversal_all_lruvec
|
||||
down
|
||||
downgrade_write
|
||||
down_read
|
||||
down_write
|
||||
d_path
|
||||
dput
|
||||
dump_stack
|
||||
eventfd_ctx_fileget
|
||||
eventfd_signal
|
||||
file_path
|
||||
filp_close
|
||||
filp_open_block
|
||||
find_task_by_vpid
|
||||
finish_wait
|
||||
flush_dcache_page
|
||||
flush_work
|
||||
fput
|
||||
__free_pages
|
||||
free_pages
|
||||
free_percpu
|
||||
@@ -74,7 +106,13 @@
|
||||
genlmsg_put
|
||||
genl_register_family
|
||||
genl_unregister_family
|
||||
get_each_dmabuf
|
||||
get_each_object_track
|
||||
__get_free_pages
|
||||
get_random_bytes
|
||||
get_slabinfo
|
||||
get_task_mm
|
||||
get_user_pages_remote
|
||||
get_wchan
|
||||
idr_alloc
|
||||
idr_destroy
|
||||
@@ -82,25 +120,36 @@
|
||||
idr_for_each
|
||||
idr_remove
|
||||
inc_zone_page_state
|
||||
in_egroup_p
|
||||
__inet6_lookup_established
|
||||
inet_csk_get_port
|
||||
__inet_lookup_established
|
||||
init_net
|
||||
init_on_free
|
||||
init_pseudo
|
||||
__init_rwsem
|
||||
init_task
|
||||
init_timer_key
|
||||
init_user_ns
|
||||
init_wait_entry
|
||||
__init_waitqueue_head
|
||||
io_schedule
|
||||
iov_iter_advance
|
||||
ip6_local_out
|
||||
ip6_route_me_harder
|
||||
ip_local_deliver
|
||||
ip_local_out
|
||||
ip_route_me_harder
|
||||
iput
|
||||
ipv6_find_hdr
|
||||
ipv6_skip_exthdr
|
||||
is_dma_buf_file
|
||||
iterate_fd
|
||||
jiffies
|
||||
jiffies_64
|
||||
jiffies_to_msecs
|
||||
kasan_flag_enabled
|
||||
kasprintf
|
||||
kern_mount
|
||||
kern_unmount
|
||||
kfree
|
||||
@@ -108,30 +157,54 @@
|
||||
kill_anon_super
|
||||
kmalloc_caches
|
||||
kmem_cache_alloc
|
||||
kmem_cache_alloc_bulk
|
||||
kmem_cache_alloc_trace
|
||||
kmem_cache_create
|
||||
kmem_cache_create_usercopy
|
||||
kmem_cache_destroy
|
||||
kmem_cache_free
|
||||
kmem_cache_free_bulk
|
||||
kmem_cache_shrink
|
||||
kobject_create_and_add
|
||||
kobject_put
|
||||
ksize
|
||||
kstrdup
|
||||
kstrtobool
|
||||
kstrtoint
|
||||
kstrtoint_from_user
|
||||
kstrtou16
|
||||
kstrtouint
|
||||
kstrtouint_from_user
|
||||
kstrtoull
|
||||
kswapd
|
||||
kthread_create_on_node
|
||||
kthread_should_stop
|
||||
kthread_stop
|
||||
ktime_get
|
||||
ktime_get_coarse_real_ts64
|
||||
ktime_get_raw_ts64
|
||||
ktime_get_real_ts64
|
||||
kvfree
|
||||
__list_add_valid
|
||||
__list_del_entry_valid
|
||||
__lock_page
|
||||
match_string
|
||||
mem_cgroup_from_id
|
||||
memchr_inv
|
||||
memcmp
|
||||
memcpy
|
||||
memmove
|
||||
memory_cgrp_subsys
|
||||
memory_cgrp_subsys_enabled_key
|
||||
memparse
|
||||
memset
|
||||
memset64
|
||||
memstart_addr
|
||||
migrate_page_copy
|
||||
misc_deregister
|
||||
misc_register
|
||||
mmput
|
||||
mod_node_page_state
|
||||
mod_timer
|
||||
module_layout
|
||||
msleep
|
||||
@@ -142,7 +215,9 @@
|
||||
mutex_unlock
|
||||
nf_ct_attach
|
||||
nf_ct_delete
|
||||
nf_register_net_hook
|
||||
nf_register_net_hooks
|
||||
nf_unregister_net_hook
|
||||
nf_unregister_net_hooks
|
||||
nla_find
|
||||
nla_memcpy
|
||||
@@ -151,12 +226,16 @@
|
||||
nla_put_64bit
|
||||
nla_reserve
|
||||
nla_reserve_64bit
|
||||
nonseekable_open
|
||||
nr_cpu_ids
|
||||
__num_online_cpus
|
||||
of_css
|
||||
page_endio
|
||||
__page_file_index
|
||||
__page_mapcount
|
||||
page_mapping
|
||||
param_ops_uint
|
||||
page_to_lruvec
|
||||
__per_cpu_offset
|
||||
platform_device_add
|
||||
platform_device_alloc
|
||||
@@ -167,7 +246,13 @@
|
||||
prepare_to_wait
|
||||
prepare_to_wait_event
|
||||
prepare_to_wait_exclusive
|
||||
print_hex_dump
|
||||
_printk
|
||||
proc_create
|
||||
proc_create_data
|
||||
proc_mkdir
|
||||
proc_remove
|
||||
public_key_verify_signature
|
||||
put_disk
|
||||
__put_page
|
||||
__put_task_struct
|
||||
@@ -181,6 +266,7 @@
|
||||
radix_tree_next_chunk
|
||||
radix_tree_preload
|
||||
radix_tree_replace_slot
|
||||
rtc_read_alarm
|
||||
_raw_read_lock
|
||||
_raw_read_unlock
|
||||
_raw_spin_lock
|
||||
@@ -191,36 +277,78 @@
|
||||
_raw_write_unlock
|
||||
__rcu_read_lock
|
||||
__rcu_read_unlock
|
||||
reclaim_pages
|
||||
__register_blkdev
|
||||
register_memory_notifier
|
||||
register_reboot_notifier
|
||||
register_shrinker
|
||||
register_sysctl_table
|
||||
register_tcf_proto_ops
|
||||
remove_proc_subtree
|
||||
__rtnl_link_unregister
|
||||
sched_clock
|
||||
sched_setscheduler_nocheck
|
||||
sched_show_task
|
||||
schedule
|
||||
schedule_timeout
|
||||
scnprintf
|
||||
sdio_writeb_readb
|
||||
seq_lseek
|
||||
seq_open
|
||||
__seq_open_private
|
||||
seq_open_private
|
||||
seq_printf
|
||||
seq_putc
|
||||
seq_puts
|
||||
seq_read
|
||||
seq_release
|
||||
seq_release_private
|
||||
seq_write
|
||||
set_blocksize
|
||||
set_capacity
|
||||
set_capacity_and_notify
|
||||
set_cpus_allowed_ptr
|
||||
set_freezable
|
||||
set_page_dirty
|
||||
__SetPageMovable
|
||||
set_user_nice
|
||||
shrink_slab
|
||||
si_mem_available
|
||||
simple_open
|
||||
simple_read_from_buffer
|
||||
single_open
|
||||
single_release
|
||||
si_swapinfo
|
||||
__skb_checksum_complete
|
||||
skb_dump
|
||||
snprintf
|
||||
sort
|
||||
sprintf
|
||||
sscanf
|
||||
__stack_chk_fail
|
||||
stack_depot_fetch
|
||||
stack_depot_save
|
||||
stack_trace_save
|
||||
strcmp
|
||||
strcpy
|
||||
strlcpy
|
||||
strlen
|
||||
strncmp
|
||||
strncpy
|
||||
strnlen
|
||||
strsep
|
||||
strstr
|
||||
submit_bio
|
||||
submit_bio_wait
|
||||
sysfs_create_files
|
||||
__sysfs_match_string
|
||||
sysfs_remove_files
|
||||
sysfs_streq
|
||||
system_freezable_wq
|
||||
system_unbound_wq
|
||||
system_wq
|
||||
sys_tz
|
||||
task_active_pid_ns
|
||||
tcf_action_exec
|
||||
tcf_exts_destroy
|
||||
tcf_exts_dump
|
||||
@@ -228,16 +356,26 @@
|
||||
tcf_exts_validate
|
||||
tcf_queue_work
|
||||
tcp_hashinfo
|
||||
time64_to_tm
|
||||
timespec64_to_jiffies
|
||||
__traceiter_android_rvh_check_preempt_wakeup_ignore
|
||||
__traceiter_android_rvh_do_serror
|
||||
__traceiter_android_rvh_pick_next_entity
|
||||
__traceiter_android_rvh_place_entity
|
||||
__traceiter_android_rvh_schedule
|
||||
__traceiter_android_rvh_set_balance_anon_file_reclaim
|
||||
__traceiter_android_rvh_set_user_nice
|
||||
__traceiter_android_vh_account_task_time
|
||||
__traceiter_android_vh_add_page_to_lrulist
|
||||
__traceiter_android_vh_alloc_pages_slowpath
|
||||
__traceiter_android_vh_binder_del_ref
|
||||
__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_preset
|
||||
__traceiter_android_vh_binder_priority_skip
|
||||
__traceiter_android_vh_binder_proc_transaction
|
||||
__traceiter_android_vh_binder_proc_transaction_entry
|
||||
__traceiter_android_vh_binder_proc_transaction_finish
|
||||
__traceiter_android_vh_binder_read_done
|
||||
@@ -246,17 +384,59 @@
|
||||
__traceiter_android_vh_binder_thread_release
|
||||
__traceiter_android_vh_build_sched_domains
|
||||
__traceiter_android_vh_cache_show
|
||||
__traceiter_android_vh_check_uninterruptible_tasks_dn
|
||||
__traceiter_android_vh_cma_drain_all_pages_bypass
|
||||
__traceiter_android_vh_cpufreq_acct_update_power
|
||||
__traceiter_android_vh_del_page_from_lrulist
|
||||
__traceiter_android_vh_do_futex
|
||||
__traceiter_android_vh_do_page_trylock
|
||||
__traceiter_android_vh_do_traversal_lruvec
|
||||
__traceiter_android_vh_drain_all_pages_bypass
|
||||
__traceiter_android_vh_dup_task_struct
|
||||
__traceiter_android_vh_exit_mm
|
||||
__traceiter_android_vh_exit_signal
|
||||
__traceiter_android_vh_free_task
|
||||
__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_handle_failed_page_trylock
|
||||
__traceiter_android_vh_irqtime_account_process_tick
|
||||
__traceiter_android_vh_killed_process
|
||||
__traceiter_android_vh_kmalloc_slab
|
||||
__traceiter_android_vh_mark_page_accessed
|
||||
__traceiter_android_vh_mem_cgroup_alloc
|
||||
__traceiter_android_vh_mem_cgroup_css_offline
|
||||
__traceiter_android_vh_mem_cgroup_css_online
|
||||
__traceiter_android_vh_mem_cgroup_free
|
||||
__traceiter_android_vh_mem_cgroup_id_remove
|
||||
__traceiter_android_vh_meminfo_proc_show
|
||||
__traceiter_android_vh_modify_thermal_cpu_get_power
|
||||
__traceiter_android_vh_mutex_init
|
||||
__traceiter_android_vh_page_referenced_check_bypass
|
||||
__traceiter_android_vh_page_should_be_protected
|
||||
__traceiter_android_vh_page_trylock_clear
|
||||
__traceiter_android_vh_page_trylock_get_result
|
||||
__traceiter_android_vh_page_trylock_set
|
||||
__traceiter_android_vh_pcplist_add_cma_pages_bypass
|
||||
__traceiter_android_vh_print_slabinfo_header
|
||||
__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
|
||||
__traceiter_android_vh_rmqueue
|
||||
__traceiter_android_vh_rwsem_wake_finish
|
||||
__traceiter_android_vh_save_track_hash
|
||||
__traceiter_android_vh_sched_show_task
|
||||
__traceiter_android_vh_sched_stat_runtime_rt
|
||||
__traceiter_android_vh_show_mapcount_pages
|
||||
__traceiter_android_vh_sync_txn_recvd
|
||||
__traceiter_android_vh_tune_inactive_ratio
|
||||
__traceiter_android_vh_tune_scan_type
|
||||
__traceiter_android_vh_tune_swappiness
|
||||
__traceiter_android_vh_update_page_mapcount
|
||||
__traceiter_sched_stat_blocked
|
||||
__traceiter_sched_stat_iowait
|
||||
__traceiter_sched_stat_runtime
|
||||
@@ -265,15 +445,23 @@
|
||||
__traceiter_sched_waking
|
||||
__traceiter_task_rename
|
||||
__tracepoint_android_rvh_check_preempt_wakeup_ignore
|
||||
__tracepoint_android_rvh_do_serror
|
||||
__tracepoint_android_rvh_pick_next_entity
|
||||
__tracepoint_android_rvh_place_entity
|
||||
__tracepoint_android_rvh_schedule
|
||||
__tracepoint_android_rvh_set_balance_anon_file_reclaim
|
||||
__tracepoint_android_rvh_set_user_nice
|
||||
__tracepoint_android_vh_account_task_time
|
||||
__tracepoint_android_vh_add_page_to_lrulist
|
||||
__tracepoint_android_vh_alloc_pages_slowpath
|
||||
__tracepoint_android_vh_binder_del_ref
|
||||
__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_preset
|
||||
__tracepoint_android_vh_binder_priority_skip
|
||||
__tracepoint_android_vh_binder_proc_transaction
|
||||
__tracepoint_android_vh_binder_proc_transaction_entry
|
||||
__tracepoint_android_vh_binder_proc_transaction_finish
|
||||
__tracepoint_android_vh_binder_read_done
|
||||
@@ -283,16 +471,61 @@
|
||||
__tracepoint_android_vh_build_sched_domains
|
||||
__tracepoint_android_vh_cache_show
|
||||
__tracepoint_android_vh_cma_drain_all_pages_bypass
|
||||
__tracepoint_android_vh_cpufreq_acct_update_power
|
||||
__tracepoint_android_vh_del_page_from_lrulist
|
||||
__tracepoint_android_vh_do_futex
|
||||
__tracepoint_android_vh_do_page_trylock
|
||||
__tracepoint_android_vh_do_traversal_lruvec
|
||||
__tracepoint_android_vh_drain_all_pages_bypass
|
||||
__tracepoint_android_vh_dup_task_struct
|
||||
__tracepoint_android_vh_exit_mm
|
||||
__tracepoint_android_vh_exit_signal
|
||||
__tracepoint_android_vh_free_task
|
||||
__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_handle_failed_page_trylock
|
||||
__tracepoint_android_vh_irqtime_account_process_tick
|
||||
__tracepoint_android_vh_killed_process
|
||||
__tracepoint_android_vh_kmalloc_slab
|
||||
__tracepoint_android_vh_mark_page_accessed
|
||||
__tracepoint_android_vh_mem_cgroup_alloc
|
||||
__tracepoint_android_vh_mem_cgroup_css_offline
|
||||
__tracepoint_android_vh_mem_cgroup_css_online
|
||||
__tracepoint_android_vh_mem_cgroup_free
|
||||
__tracepoint_android_vh_mem_cgroup_id_remove
|
||||
__tracepoint_android_vh_meminfo_proc_show
|
||||
__tracepoint_android_vh_modify_thermal_cpu_get_power
|
||||
__tracepoint_android_vh_mutex_init
|
||||
__tracepoint_android_vh_page_referenced_check_bypass
|
||||
__tracepoint_android_vh_page_should_be_protected
|
||||
__tracepoint_android_vh_page_trylock_clear
|
||||
__tracepoint_android_vh_page_trylock_get_result
|
||||
__tracepoint_android_vh_page_trylock_set
|
||||
__tracepoint_android_vh_pcplist_add_cma_pages_bypass
|
||||
__tracepoint_android_vh_print_slabinfo_header
|
||||
__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
|
||||
__tracepoint_android_vh_rmqueue
|
||||
__tracepoint_android_vh_rwsem_wake_finish
|
||||
__tracepoint_android_vh_sched_show_task
|
||||
__tracepoint_android_vh_save_track_hash
|
||||
__tracepoint_android_vh_sched_stat_runtime_rt
|
||||
__tracepoint_android_vh_show_mapcount_pages
|
||||
__tracepoint_android_vh_sync_txn_recvd
|
||||
__tracepoint_android_vh_tune_inactive_ratio
|
||||
__tracepoint_android_vh_tune_scan_type
|
||||
__tracepoint_android_vh_tune_swappiness
|
||||
__tracepoint_android_vh_update_page_mapcount
|
||||
__tracepoint_net_dev_queue
|
||||
__tracepoint_net_dev_xmit
|
||||
__tracepoint_netif_receive_skb
|
||||
__tracepoint_netif_rx
|
||||
__tracepoint_sched_stat_blocked
|
||||
__tracepoint_sched_stat_iowait
|
||||
__tracepoint_sched_stat_runtime
|
||||
@@ -300,17 +533,25 @@
|
||||
__tracepoint_sched_stat_wait
|
||||
__tracepoint_sched_waking
|
||||
__tracepoint_task_rename
|
||||
try_to_free_mem_cgroup_pages
|
||||
__ubsan_handle_cfi_check_fail_abort
|
||||
unlock_page
|
||||
unregister_blkdev
|
||||
unregister_memory_notifier
|
||||
unregister_net_sysctl_table
|
||||
unregister_reboot_notifier
|
||||
unregister_shrinker
|
||||
unregister_sysctl_table
|
||||
unregister_tcf_proto_ops
|
||||
up
|
||||
up_read
|
||||
up_write
|
||||
vfree
|
||||
vmalloc
|
||||
vmalloc_nr_pages
|
||||
vsnprintf
|
||||
vzalloc
|
||||
wait_for_completion_io_timeout
|
||||
__wake_up
|
||||
wake_up_process
|
||||
wq_worker_comm
|
||||
|
||||
16
android/abi_gki_aarch64_pasa
Normal file
16
android/abi_gki_aarch64_pasa
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
[abi_symbol_list]
|
||||
__hid_register_driver
|
||||
__hid_request
|
||||
hid_add_device
|
||||
hid_alloc_report_buf
|
||||
hid_allocate_device
|
||||
hid_destroy_device
|
||||
hid_hw_start
|
||||
hid_hw_stop
|
||||
hid_input_report
|
||||
hid_open_report
|
||||
hid_parse_report
|
||||
hid_report_raw_event
|
||||
hid_unregister_driver
|
||||
hidinput_calc_abs_res
|
||||
@@ -21,6 +21,8 @@
|
||||
alloc_workqueue
|
||||
amba_driver_register
|
||||
amba_driver_unregister
|
||||
android_debug_symbol
|
||||
android_kmalloc_64_create
|
||||
android_rvh_probe_register
|
||||
anon_inode_getfd
|
||||
arc4_crypt
|
||||
@@ -45,6 +47,9 @@
|
||||
balance_push_callback
|
||||
bcmp
|
||||
bin2hex
|
||||
bio_endio
|
||||
bio_end_io_acct_remapped
|
||||
bio_start_io_acct
|
||||
__bitmap_clear
|
||||
__bitmap_equal
|
||||
bitmap_from_arr32
|
||||
@@ -53,9 +58,19 @@
|
||||
bitmap_print_to_pagebuf
|
||||
bitmap_to_arr32
|
||||
__bitmap_weight
|
||||
__blk_alloc_disk
|
||||
blk_cleanup_disk
|
||||
blk_execute_rq_nowait
|
||||
blk_get_request
|
||||
blk_put_request
|
||||
blk_queue_flag_clear
|
||||
blk_queue_flag_set
|
||||
blk_queue_io_min
|
||||
blk_queue_io_opt
|
||||
blk_queue_logical_block_size
|
||||
blk_queue_max_discard_sectors
|
||||
blk_queue_max_write_zeroes_sectors
|
||||
blk_queue_physical_block_size
|
||||
blk_rq_map_user
|
||||
blk_rq_map_user_iov
|
||||
blk_rq_unmap_user
|
||||
@@ -176,6 +191,7 @@
|
||||
cpufreq_register_governor
|
||||
cpufreq_register_notifier
|
||||
cpufreq_remove_update_util_hook
|
||||
cpufreq_table_index_unsorted
|
||||
cpufreq_this_cpu_can_update
|
||||
__cpuhp_remove_state
|
||||
__cpuhp_setup_state
|
||||
@@ -210,11 +226,16 @@
|
||||
crypto_aead_setauthsize
|
||||
crypto_aead_setkey
|
||||
crypto_alloc_aead
|
||||
crypto_alloc_base
|
||||
crypto_alloc_shash
|
||||
crypto_alloc_skcipher
|
||||
crypto_alloc_sync_skcipher
|
||||
crypto_comp_compress
|
||||
crypto_comp_decompress
|
||||
crypto_destroy_tfm
|
||||
crypto_has_alg
|
||||
__crypto_memneq
|
||||
crypto_req_done
|
||||
crypto_shash_digest
|
||||
crypto_shash_finup
|
||||
crypto_shash_setkey
|
||||
@@ -245,6 +266,7 @@
|
||||
default_llseek
|
||||
deferred_free
|
||||
delayed_work_timer_fn
|
||||
del_gendisk
|
||||
del_timer
|
||||
del_timer_sync
|
||||
desc_to_gpio
|
||||
@@ -274,6 +296,7 @@
|
||||
dev_get_by_index
|
||||
dev_get_by_name
|
||||
device_add
|
||||
device_add_disk
|
||||
device_add_groups
|
||||
device_create
|
||||
device_create_file
|
||||
@@ -397,6 +420,8 @@
|
||||
disable_irq
|
||||
disable_irq_nosync
|
||||
disable_percpu_irq
|
||||
disk_end_io_acct
|
||||
disk_start_io_acct
|
||||
dma_alloc_attrs
|
||||
dma_async_device_register
|
||||
dma_async_device_unregister
|
||||
@@ -695,8 +720,10 @@
|
||||
_find_next_bit
|
||||
find_pid_ns
|
||||
find_task_by_vpid
|
||||
find_vm_area
|
||||
__find_vma
|
||||
finish_wait
|
||||
flush_dcache_page
|
||||
flush_delayed_work
|
||||
flush_work
|
||||
flush_workqueue
|
||||
@@ -715,6 +742,7 @@
|
||||
freq_qos_add_request
|
||||
freq_qos_remove_request
|
||||
freq_qos_update_request
|
||||
fsync_bdev
|
||||
full_name_hash
|
||||
fwnode_get_name
|
||||
fwnode_gpiod_get_index
|
||||
@@ -747,6 +775,7 @@
|
||||
get_random_bytes
|
||||
get_random_u32
|
||||
get_sg_io_hdr
|
||||
get_task_cred
|
||||
get_thermal_instance
|
||||
get_unused_fd_flags
|
||||
get_user_pages
|
||||
@@ -827,6 +856,7 @@
|
||||
i2c_unregister_device
|
||||
i2c_verify_client
|
||||
ida_alloc_range
|
||||
ida_destroy
|
||||
ida_free
|
||||
idr_alloc
|
||||
idr_destroy
|
||||
@@ -859,6 +889,7 @@
|
||||
init_uts_ns
|
||||
init_wait_entry
|
||||
__init_waitqueue_head
|
||||
input_alloc_absinfo
|
||||
input_allocate_device
|
||||
input_close_device
|
||||
input_event
|
||||
@@ -876,6 +907,10 @@
|
||||
input_unregister_device
|
||||
input_unregister_handle
|
||||
input_unregister_handler
|
||||
interval_tree_insert
|
||||
interval_tree_iter_first
|
||||
interval_tree_iter_next
|
||||
interval_tree_remove
|
||||
int_sqrt
|
||||
iomem_resource
|
||||
iommu_alloc_resv_region
|
||||
@@ -890,6 +925,7 @@
|
||||
iommu_device_sysfs_remove
|
||||
iommu_device_unlink
|
||||
iommu_device_unregister
|
||||
iommu_dma_enable_best_fit_algo
|
||||
iommu_domain_alloc
|
||||
iommu_domain_free
|
||||
iommu_fwspec_add_ids
|
||||
@@ -1042,7 +1078,11 @@
|
||||
__local_bh_enable_ip
|
||||
__lock_page
|
||||
log_abnormal_wakeup_reason
|
||||
log_post_read_mmio
|
||||
log_post_write_mmio
|
||||
log_read_mmio
|
||||
log_threaded_irq_wakeup_reason
|
||||
log_write_mmio
|
||||
loops_per_jiffy
|
||||
mac_pton
|
||||
mbox_chan_received_data
|
||||
@@ -1061,6 +1101,7 @@
|
||||
memparse
|
||||
memremap
|
||||
mem_section
|
||||
memset64
|
||||
memset
|
||||
memstart_addr
|
||||
memunmap
|
||||
@@ -1145,6 +1186,7 @@
|
||||
noop_llseek
|
||||
nr_cpu_ids
|
||||
nr_irqs
|
||||
ns_capable
|
||||
nsec_to_clock_t
|
||||
ns_to_timespec64
|
||||
__num_online_cpus
|
||||
@@ -1228,6 +1270,7 @@
|
||||
of_thermal_is_trip_valid
|
||||
of_translate_address
|
||||
of_usb_host_tpl_support
|
||||
page_endio
|
||||
page_mapping
|
||||
panic
|
||||
panic_notifier_list
|
||||
@@ -1380,9 +1423,11 @@
|
||||
proc_mkdir
|
||||
proc_mkdir_data
|
||||
proc_remove
|
||||
proc_set_size
|
||||
pskb_expand_head
|
||||
__pskb_pull_tail
|
||||
___pskb_trim
|
||||
__put_cred
|
||||
put_device
|
||||
__put_net
|
||||
__put_page
|
||||
@@ -1396,6 +1441,7 @@
|
||||
___ratelimit
|
||||
raw_notifier_call_chain
|
||||
raw_notifier_chain_register
|
||||
raw_notifier_chain_unregister
|
||||
_raw_read_lock
|
||||
_raw_read_lock_bh
|
||||
_raw_read_lock_irqsave
|
||||
@@ -1430,12 +1476,14 @@
|
||||
__rcu_read_unlock
|
||||
rdev_get_drvdata
|
||||
rdev_get_id
|
||||
reboot_mode
|
||||
refcount_warn_saturate
|
||||
__refrigerator
|
||||
regcache_cache_only
|
||||
regcache_drop_region
|
||||
regcache_mark_dirty
|
||||
regcache_sync
|
||||
__register_blkdev
|
||||
__register_chrdev
|
||||
register_chrdev_region
|
||||
register_console
|
||||
@@ -1535,6 +1583,7 @@
|
||||
rt_mutex_unlock
|
||||
rtnl_is_locked
|
||||
rtnl_lock
|
||||
rtnl_trylock
|
||||
rtnl_unlock
|
||||
runqueues
|
||||
sched_clock
|
||||
@@ -1582,11 +1631,14 @@
|
||||
seq_release
|
||||
seq_release_private
|
||||
seq_write
|
||||
set_capacity
|
||||
set_capacity_and_notify
|
||||
set_cpus_allowed_ptr
|
||||
set_freezable
|
||||
set_page_dirty
|
||||
set_page_dirty_lock
|
||||
__SetPageMovable
|
||||
set_user_nice
|
||||
sg_alloc_table
|
||||
sg_alloc_table_from_pages_segment
|
||||
sg_free_table
|
||||
@@ -1776,6 +1828,7 @@
|
||||
sysfs_create_link
|
||||
sysfs_emit
|
||||
sysfs_emit_at
|
||||
__sysfs_match_string
|
||||
sysfs_notify
|
||||
sysfs_remove_file_ns
|
||||
sysfs_remove_group
|
||||
@@ -1843,6 +1896,7 @@
|
||||
__traceiter_android_rvh_cpu_cgroup_online
|
||||
__traceiter_android_rvh_cpu_overutilized
|
||||
__traceiter_android_rvh_dequeue_task
|
||||
__traceiter_android_rvh_enqueue_task
|
||||
__traceiter_android_rvh_find_energy_efficient_cpu
|
||||
__traceiter_android_rvh_irqs_disable
|
||||
__traceiter_android_rvh_irqs_enable
|
||||
@@ -1850,17 +1904,24 @@
|
||||
__traceiter_android_rvh_preempt_disable
|
||||
__traceiter_android_rvh_preempt_enable
|
||||
__traceiter_android_rvh_sched_fork
|
||||
__traceiter_android_rvh_select_task_rq_fair
|
||||
__traceiter_android_rvh_select_task_rq_rt
|
||||
__traceiter_android_rvh_set_cpus_allowed_by_task
|
||||
__traceiter_android_rvh_set_iowait
|
||||
__traceiter_android_rvh_set_task_cpu
|
||||
__traceiter_android_rvh_uclamp_eff_get
|
||||
__traceiter_android_rvh_ufs_reprogram_all_keys
|
||||
__traceiter_android_rvh_update_rt_rq_load_avg
|
||||
__traceiter_android_rvh_util_est_update
|
||||
__traceiter_android_vh_arch_set_freq_scale
|
||||
__traceiter_android_vh_cpu_idle_enter
|
||||
__traceiter_android_vh_cpu_idle_exit
|
||||
__traceiter_android_vh_dup_task_struct
|
||||
__traceiter_android_vh_ipi_stop
|
||||
__traceiter_android_vh_scheduler_tick
|
||||
__traceiter_android_vh_setscheduler_uclamp
|
||||
__traceiter_android_vh_sysrq_crash
|
||||
__traceiter_android_vh_try_to_freeze_todo_logging
|
||||
__traceiter_android_vh_ufs_check_int_errors
|
||||
__traceiter_android_vh_ufs_compl_command
|
||||
__traceiter_android_vh_ufs_fill_prdt
|
||||
@@ -1868,6 +1929,7 @@
|
||||
__traceiter_android_vh_ufs_send_command
|
||||
__traceiter_android_vh_ufs_send_tm_command
|
||||
__traceiter_android_vh_ufs_send_uic_command
|
||||
__traceiter_android_vh_ufs_update_sdev
|
||||
__traceiter_android_vh_ufs_update_sysfs
|
||||
__traceiter_clock_set_rate
|
||||
__traceiter_cpu_frequency
|
||||
@@ -1890,6 +1952,7 @@
|
||||
__tracepoint_android_rvh_cpu_cgroup_online
|
||||
__tracepoint_android_rvh_cpu_overutilized
|
||||
__tracepoint_android_rvh_dequeue_task
|
||||
__tracepoint_android_rvh_enqueue_task
|
||||
__tracepoint_android_rvh_find_energy_efficient_cpu
|
||||
__tracepoint_android_rvh_irqs_disable
|
||||
__tracepoint_android_rvh_irqs_enable
|
||||
@@ -1897,17 +1960,24 @@
|
||||
__tracepoint_android_rvh_preempt_disable
|
||||
__tracepoint_android_rvh_preempt_enable
|
||||
__tracepoint_android_rvh_sched_fork
|
||||
__tracepoint_android_rvh_select_task_rq_fair
|
||||
__tracepoint_android_rvh_select_task_rq_rt
|
||||
__tracepoint_android_rvh_set_cpus_allowed_by_task
|
||||
__tracepoint_android_rvh_set_iowait
|
||||
__tracepoint_android_rvh_set_task_cpu
|
||||
__tracepoint_android_rvh_uclamp_eff_get
|
||||
__tracepoint_android_rvh_ufs_reprogram_all_keys
|
||||
__tracepoint_android_rvh_update_rt_rq_load_avg
|
||||
__tracepoint_android_rvh_util_est_update
|
||||
__tracepoint_android_vh_arch_set_freq_scale
|
||||
__tracepoint_android_vh_cpu_idle_enter
|
||||
__tracepoint_android_vh_cpu_idle_exit
|
||||
__tracepoint_android_vh_dup_task_struct
|
||||
__tracepoint_android_vh_ipi_stop
|
||||
__tracepoint_android_vh_scheduler_tick
|
||||
__tracepoint_android_vh_setscheduler_uclamp
|
||||
__tracepoint_android_vh_sysrq_crash
|
||||
__tracepoint_android_vh_try_to_freeze_todo_logging
|
||||
__tracepoint_android_vh_ufs_check_int_errors
|
||||
__tracepoint_android_vh_ufs_compl_command
|
||||
__tracepoint_android_vh_ufs_fill_prdt
|
||||
@@ -1915,6 +1985,7 @@
|
||||
__tracepoint_android_vh_ufs_send_command
|
||||
__tracepoint_android_vh_ufs_send_tm_command
|
||||
__tracepoint_android_vh_ufs_send_uic_command
|
||||
__tracepoint_android_vh_ufs_update_sdev
|
||||
__tracepoint_android_vh_ufs_update_sysfs
|
||||
__tracepoint_clock_set_rate
|
||||
__tracepoint_cpu_frequency
|
||||
@@ -1981,6 +2052,7 @@
|
||||
unlock_page
|
||||
unmap_mapping_range
|
||||
unpin_user_page
|
||||
unregister_blkdev
|
||||
__unregister_chrdev
|
||||
unregister_chrdev_region
|
||||
unregister_inet6addr_notifier
|
||||
@@ -2001,7 +2073,9 @@
|
||||
unregister_virtio_driver
|
||||
up
|
||||
update_devfreq
|
||||
___update_load_avg
|
||||
__update_load_avg_blocked_se
|
||||
___update_load_sum
|
||||
update_rq_clock
|
||||
up_read
|
||||
up_write
|
||||
@@ -2014,6 +2088,8 @@
|
||||
usb_ep_autoconfig
|
||||
usb_function_register
|
||||
usb_function_unregister
|
||||
usb_gadget_activate
|
||||
usb_gadget_deactivate
|
||||
usb_gadget_set_state
|
||||
usb_hcd_is_primary_hcd
|
||||
usb_hcd_platform_shutdown
|
||||
@@ -2123,6 +2199,7 @@
|
||||
vm_map_ram
|
||||
vm_unmap_ram
|
||||
vprintk
|
||||
vprintk_emit
|
||||
vring_del_virtqueue
|
||||
vring_interrupt
|
||||
vring_new_virtqueue
|
||||
@@ -2134,6 +2211,7 @@
|
||||
wait_for_completion_interruptible
|
||||
wait_for_completion_interruptible_timeout
|
||||
wait_for_completion_timeout
|
||||
wait_on_page_bit
|
||||
wait_woken
|
||||
__wake_up
|
||||
__wake_up_locked
|
||||
@@ -2160,3 +2238,13 @@
|
||||
xhci_resume
|
||||
xhci_run
|
||||
xhci_suspend
|
||||
zs_compact
|
||||
zs_create_pool
|
||||
zs_destroy_pool
|
||||
zs_free
|
||||
zs_get_total_pages
|
||||
zs_huge_class_size
|
||||
zs_malloc
|
||||
zs_map_object
|
||||
zs_pool_stats
|
||||
zs_unmap_object
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
|
||||
[abi_symbol_list]
|
||||
access_process_vm
|
||||
ack_all_badblocks
|
||||
activate_task
|
||||
add_cpu
|
||||
add_device_randomness
|
||||
@@ -14,10 +16,12 @@
|
||||
alloc_anon_inode
|
||||
alloc_chrdev_region
|
||||
alloc_io_pgtable_ops
|
||||
alloc_page_buffers
|
||||
__alloc_pages
|
||||
__alloc_percpu
|
||||
__alloc_skb
|
||||
alloc_skb_with_frags
|
||||
alloc_swapdev_block
|
||||
alloc_workqueue
|
||||
amba_bustype
|
||||
amba_driver_register
|
||||
@@ -40,6 +44,7 @@
|
||||
__arm_smccc_sve_check
|
||||
async_schedule_node
|
||||
async_synchronize_cookie
|
||||
_atomic_dec_and_lock
|
||||
atomic_notifier_call_chain
|
||||
atomic_notifier_chain_register
|
||||
atomic_notifier_chain_unregister
|
||||
@@ -47,9 +52,29 @@
|
||||
available_idle_cpu
|
||||
backlight_device_get_by_type
|
||||
backlight_device_set_brightness
|
||||
badblocks_clear
|
||||
badblocks_exit
|
||||
badblocks_init
|
||||
badblocks_set
|
||||
badblocks_show
|
||||
badblocks_store
|
||||
__balance_callbacks
|
||||
balance_push_callback
|
||||
bdev_check_media_change
|
||||
bdevname
|
||||
bdev_read_only
|
||||
bd_link_disk_holder
|
||||
bd_unlink_disk_holder
|
||||
bio_add_page
|
||||
bio_associate_blkg
|
||||
bio_clone_fast
|
||||
bio_endio
|
||||
bio_end_io_acct_remapped
|
||||
bio_init
|
||||
bio_put
|
||||
bioset_exit
|
||||
bioset_init
|
||||
bio_split
|
||||
bio_start_io_acct
|
||||
bitmap_allocate_region
|
||||
__bitmap_and
|
||||
@@ -63,24 +88,63 @@
|
||||
bitmap_zalloc
|
||||
__blk_alloc_disk
|
||||
blk_cleanup_disk
|
||||
blk_cleanup_queue
|
||||
blkdev_get_by_dev
|
||||
__blkdev_issue_discard
|
||||
blkdev_put
|
||||
blk_execute_rq_nowait
|
||||
blk_finish_plug
|
||||
blk_freeze_queue_start
|
||||
blk_get_queue
|
||||
blk_get_request
|
||||
blk_ksm_get_slot_idx
|
||||
blk_ksm_register
|
||||
blk_mark_disk_dead
|
||||
blk_mq_alloc_request
|
||||
blk_mq_alloc_request_hctx
|
||||
blk_mq_complete_request_remote
|
||||
blk_mq_delay_kick_requeue_list
|
||||
blk_mq_free_request
|
||||
blk_mq_freeze_queue
|
||||
blk_mq_freeze_queue_wait
|
||||
blk_mq_freeze_queue_wait_timeout
|
||||
blk_mq_init_queue
|
||||
blk_mq_map_queues
|
||||
blk_mq_pci_map_queues
|
||||
blk_mq_requeue_request
|
||||
blk_mq_rq_cpu
|
||||
blk_mq_tagset_busy_iter
|
||||
blk_mq_tagset_wait_completed_request
|
||||
blk_mq_tag_to_rq
|
||||
blk_mq_unfreeze_queue
|
||||
blk_mq_update_nr_hw_queues
|
||||
blk_put_queue
|
||||
blk_put_request
|
||||
blk_queue_chunk_sectors
|
||||
blk_queue_dma_alignment
|
||||
blk_queue_flag_clear
|
||||
blk_queue_flag_set
|
||||
blk_queue_flag_test_and_set
|
||||
blk_queue_io_min
|
||||
blk_queue_io_opt
|
||||
blk_queue_logical_block_size
|
||||
blk_queue_max_discard_sectors
|
||||
blk_queue_max_write_same_sectors
|
||||
blk_queue_max_write_zeroes_sectors
|
||||
blk_queue_physical_block_size
|
||||
blk_queue_split
|
||||
blk_queue_virt_boundary
|
||||
blk_rq_map_user
|
||||
blk_rq_map_user_iov
|
||||
blk_rq_unmap_user
|
||||
blk_set_stacking_limits
|
||||
blk_start_plug
|
||||
blk_sync_queue
|
||||
blkdev_compat_ptr_ioctl
|
||||
blocking_notifier_call_chain
|
||||
blocking_notifier_chain_register
|
||||
blocking_notifier_chain_unregister
|
||||
bmap
|
||||
bpf_trace_run1
|
||||
bpf_trace_run10
|
||||
bpf_trace_run11
|
||||
@@ -163,7 +227,9 @@
|
||||
clk_notifier_unregister
|
||||
clk_prepare
|
||||
clk_put
|
||||
clk_restore_context
|
||||
clk_round_rate
|
||||
clk_save_context
|
||||
clk_set_parent
|
||||
clk_set_rate
|
||||
clk_sync_state
|
||||
@@ -242,6 +308,7 @@
|
||||
cpus_read_unlock
|
||||
cpu_subsys
|
||||
cpu_topology
|
||||
crc32_be
|
||||
crc8
|
||||
crc8_populate_msb
|
||||
crypto_ahash_digest
|
||||
@@ -324,6 +391,7 @@
|
||||
device_property_read_u32_array
|
||||
device_register
|
||||
device_remove_file
|
||||
device_remove_file_self
|
||||
device_show_int
|
||||
device_store_int
|
||||
device_unregister
|
||||
@@ -423,6 +491,7 @@
|
||||
dev_pm_opp_of_cpumask_remove_table
|
||||
dev_pm_opp_of_find_icc_paths
|
||||
dev_pm_opp_of_register_em
|
||||
dev_pm_opp_remove
|
||||
dev_pm_opp_of_remove_table
|
||||
dev_pm_opp_put
|
||||
dev_pm_opp_put_clkname
|
||||
@@ -433,9 +502,12 @@
|
||||
dev_pm_opp_set_sharing_cpus
|
||||
dev_pm_qos_add_notifier
|
||||
dev_pm_qos_add_request
|
||||
dev_pm_qos_expose_latency_tolerance
|
||||
dev_pm_qos_hide_latency_tolerance
|
||||
dev_pm_qos_remove_notifier
|
||||
dev_pm_qos_remove_request
|
||||
dev_pm_qos_update_request
|
||||
dev_pm_qos_update_user_latency_tolerance
|
||||
devres_add
|
||||
__devres_alloc_node
|
||||
devres_free
|
||||
@@ -446,12 +518,14 @@
|
||||
disable_irq_nosync
|
||||
disable_percpu_irq
|
||||
disk_end_io_acct
|
||||
disk_stack_limits
|
||||
disk_start_io_acct
|
||||
divider_get_val
|
||||
divider_recalc_rate
|
||||
divider_ro_round_rate_parent
|
||||
divider_round_rate_parent
|
||||
dma_alloc_attrs
|
||||
dma_alloc_noncontiguous
|
||||
dma_alloc_pages
|
||||
dma_async_device_register
|
||||
dma_async_device_unregister
|
||||
@@ -486,6 +560,7 @@
|
||||
dma_fence_signal_timestamp_locked
|
||||
dma_fence_wait_timeout
|
||||
dma_free_attrs
|
||||
dma_free_noncontiguous
|
||||
dma_free_pages
|
||||
dma_get_sgtable_attrs
|
||||
dma_get_slave_channel
|
||||
@@ -501,6 +576,7 @@
|
||||
dma_map_resource
|
||||
dma_map_sg_attrs
|
||||
dma_map_sgtable
|
||||
dma_max_mapping_size
|
||||
dmam_free_coherent
|
||||
dma_release_channel
|
||||
dma_request_chan
|
||||
@@ -515,7 +591,11 @@
|
||||
dma_unmap_page_attrs
|
||||
dma_unmap_resource
|
||||
dma_unmap_sg_attrs
|
||||
dma_vmap_noncontiguous
|
||||
dma_vunmap_noncontiguous
|
||||
do_exit
|
||||
__do_once_done
|
||||
__do_once_start
|
||||
do_trace_rcu_torture_read
|
||||
double_rq_lock
|
||||
do_wait_intr
|
||||
@@ -539,9 +619,15 @@
|
||||
drm_bridge_chain_enable
|
||||
drm_bridge_chain_post_disable
|
||||
drm_bridge_chain_pre_enable
|
||||
drm_client_buffer_vmap
|
||||
drm_client_framebuffer_create
|
||||
drm_client_framebuffer_delete
|
||||
drm_client_init
|
||||
drm_client_modeset_commit
|
||||
drm_client_modeset_commit_locked
|
||||
drm_client_modeset_probe
|
||||
drm_client_register
|
||||
drm_connector_list_update
|
||||
drm_crtc_vblank_reset
|
||||
drm_dp_atomic_find_vcpi_slots
|
||||
drm_dp_atomic_release_vcpi_slots
|
||||
@@ -551,6 +637,7 @@
|
||||
drm_dp_mst_allocate_vcpi
|
||||
drm_dp_mst_deallocate_vcpi
|
||||
drm_dp_mst_detect_port
|
||||
drm_dp_mst_dump_topology
|
||||
drm_dp_mst_get_edid
|
||||
drm_dp_mst_get_port_malloc
|
||||
drm_dp_mst_hpd_irq
|
||||
@@ -572,13 +659,20 @@
|
||||
drm_is_current_master
|
||||
drm_kms_helper_poll_disable
|
||||
drm_kms_helper_poll_enable
|
||||
drm_master_get
|
||||
drm_master_put
|
||||
drm_mode_convert_umode
|
||||
drm_mode_create_dp_colorspace_property
|
||||
drm_mode_create_tile_group
|
||||
drm_mode_destroy
|
||||
drm_mode_is_420_only
|
||||
drm_mode_match
|
||||
drm_mode_prune_invalid
|
||||
drm_mode_set_crtcinfo
|
||||
drm_mode_set_name
|
||||
drm_mode_sort
|
||||
drm_object_property_set_value
|
||||
drm_plane_from_index
|
||||
drm_wait_one_vblank
|
||||
__dynamic_dev_dbg
|
||||
__dynamic_pr_debug
|
||||
@@ -605,6 +699,7 @@
|
||||
extcon_get_edev_name
|
||||
extcon_get_extcon_dev
|
||||
extcon_get_property
|
||||
extcon_get_property_capability
|
||||
extcon_get_state
|
||||
extcon_register_notifier
|
||||
extcon_set_property
|
||||
@@ -615,6 +710,7 @@
|
||||
__fdget
|
||||
fd_install
|
||||
fget
|
||||
file_path
|
||||
_find_first_bit
|
||||
_find_first_zero_bit
|
||||
_find_next_bit
|
||||
@@ -630,9 +726,11 @@
|
||||
flush_dcache_page
|
||||
flush_delayed_fput
|
||||
flush_delayed_work
|
||||
flush_signals
|
||||
flush_work
|
||||
flush_workqueue
|
||||
fput
|
||||
free_buffer_head
|
||||
free_io_pgtable_ops
|
||||
free_irq
|
||||
__free_pages
|
||||
@@ -715,6 +813,9 @@
|
||||
get_unused_fd_flags
|
||||
get_user_ifreq
|
||||
get_zeroed_page
|
||||
gic_cpu_init
|
||||
gic_dist_init
|
||||
gic_dist_wait_for_rwp
|
||||
gic_nonsecure_priorities
|
||||
gic_resume
|
||||
gic_v2_resume
|
||||
@@ -828,8 +929,15 @@
|
||||
idr_preload
|
||||
idr_remove
|
||||
idr_replace
|
||||
iio_buffer_init
|
||||
iio_buffer_put
|
||||
iio_channel_get
|
||||
iio_channel_release
|
||||
iio_device_attach_buffer
|
||||
iio_device_claim_direct_mode
|
||||
iio_device_release_direct_mode
|
||||
iio_push_event
|
||||
iio_push_to_buffers
|
||||
iio_read_channel_processed
|
||||
iio_write_channel_raw
|
||||
import_iovec
|
||||
@@ -838,7 +946,9 @@
|
||||
inc_zone_page_state
|
||||
in_egroup_p
|
||||
inet6_ioctl
|
||||
__inet6_lookup_established
|
||||
inet_ioctl
|
||||
__inet_lookup_established
|
||||
init_iova_domain
|
||||
init_net
|
||||
init_pid_ns
|
||||
@@ -869,7 +979,9 @@
|
||||
interval_tree_iter_first
|
||||
interval_tree_iter_next
|
||||
interval_tree_remove
|
||||
int_pow
|
||||
int_sqrt
|
||||
invalidate_bdev
|
||||
iomem_resource
|
||||
iommu_alloc_resv_region
|
||||
iommu_attach_device
|
||||
@@ -1056,6 +1168,7 @@
|
||||
kthread_should_stop
|
||||
kthread_stop
|
||||
kthread_worker_fn
|
||||
ktime_add_safe
|
||||
ktime_get
|
||||
ktime_get_mono_fast_ns
|
||||
ktime_get_real_ts64
|
||||
@@ -1078,6 +1191,10 @@
|
||||
__local_bh_enable_ip
|
||||
__lock_page
|
||||
lock_sock_nested
|
||||
log_post_read_mmio
|
||||
log_post_write_mmio
|
||||
log_read_mmio
|
||||
log_write_mmio
|
||||
lookup_page_ext
|
||||
match_string
|
||||
mbox_chan_received_data
|
||||
@@ -1114,9 +1231,12 @@
|
||||
mempool_alloc
|
||||
mempool_alloc_slab
|
||||
mempool_create
|
||||
mempool_create_node
|
||||
mempool_destroy
|
||||
mempool_free
|
||||
mempool_free_slab
|
||||
mempool_kfree
|
||||
mempool_kmalloc
|
||||
memremap
|
||||
mem_section
|
||||
memset
|
||||
@@ -1131,11 +1251,34 @@
|
||||
misc_deregister
|
||||
misc_register
|
||||
mmc_cqe_request_done
|
||||
mmc_execute_tuning
|
||||
mmc_get_ext_csd
|
||||
mmc_get_card
|
||||
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_retune_hold
|
||||
mmc_retune_release
|
||||
mmc_select_card
|
||||
mmc_select_bus_width
|
||||
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
|
||||
@@ -1151,6 +1294,7 @@
|
||||
mutex_lock_interruptible
|
||||
mutex_trylock
|
||||
mutex_unlock
|
||||
name_to_dev_t
|
||||
neigh_destroy
|
||||
neigh_resolve_output
|
||||
netdev_alert
|
||||
@@ -1280,6 +1424,7 @@
|
||||
param_array_ops
|
||||
param_get_int
|
||||
param_get_string
|
||||
param_get_uint
|
||||
param_get_ullong
|
||||
param_ops_bool
|
||||
param_ops_charp
|
||||
@@ -1288,18 +1433,24 @@
|
||||
param_ops_ullong
|
||||
param_set_bool
|
||||
param_set_copystring
|
||||
param_set_uint
|
||||
param_set_uint_minmax
|
||||
pci_aer_clear_nonfatal_status
|
||||
pcibios_resource_to_bus
|
||||
pci_bus_type
|
||||
pci_dev_get
|
||||
pci_device_group
|
||||
pci_device_is_present
|
||||
pci_dev_present
|
||||
pci_dev_put
|
||||
pci_disable_pcie_error_reporting
|
||||
pcie_aspm_enabled
|
||||
pcie_capability_clear_and_set_word
|
||||
pcie_capability_read_word
|
||||
pci_enable_device
|
||||
pci_enable_pcie_error_reporting
|
||||
pci_find_ext_capability
|
||||
pci_free_irq
|
||||
pci_get_device
|
||||
pci_get_domain_bus_and_slot
|
||||
pci_host_probe
|
||||
@@ -1311,9 +1462,11 @@
|
||||
pci_read_config_dword
|
||||
pci_read_config_word
|
||||
__pci_register_driver
|
||||
pci_request_irq
|
||||
pci_restore_state
|
||||
pci_save_state
|
||||
pci_set_master
|
||||
pci_sriov_configure_simple
|
||||
pci_store_saved_state
|
||||
pci_walk_bus
|
||||
pci_write_config_dword
|
||||
@@ -1324,6 +1477,11 @@
|
||||
__percpu_init_rwsem
|
||||
__per_cpu_offset
|
||||
per_cpu_ptr_to_phys
|
||||
percpu_ref_exit
|
||||
percpu_ref_init
|
||||
percpu_ref_is_zero
|
||||
percpu_ref_switch_to_atomic_sync
|
||||
percpu_ref_switch_to_percpu
|
||||
percpu_up_write
|
||||
perf_aux_output_begin
|
||||
perf_aux_output_end
|
||||
@@ -1488,6 +1646,7 @@
|
||||
ptp_clock_unregister
|
||||
putback_movable_pages
|
||||
put_device
|
||||
put_disk
|
||||
put_iova_domain
|
||||
__put_page
|
||||
put_sg_io_hdr
|
||||
@@ -1573,6 +1732,7 @@
|
||||
rcuwait_wake_up
|
||||
rdev_get_drvdata
|
||||
reboot_mode
|
||||
rebuild_sched_domains
|
||||
reclaim_shmem_address_space
|
||||
refcount_dec_and_lock
|
||||
refcount_dec_not_one
|
||||
@@ -1729,6 +1889,7 @@
|
||||
sdhci_cqe_disable
|
||||
sdhci_cqe_enable
|
||||
sdhci_cqe_irq
|
||||
sdhci_dumpregs
|
||||
sdhci_enable_clk
|
||||
sdhci_get_property
|
||||
sdhci_pltfm_free
|
||||
@@ -1741,6 +1902,7 @@
|
||||
sdhci_setup_host
|
||||
select_fallback_rq
|
||||
seq_buf_printf
|
||||
seq_file_path
|
||||
seq_lseek
|
||||
seq_printf
|
||||
seq_putc
|
||||
@@ -1809,6 +1971,7 @@
|
||||
smp_call_function
|
||||
smp_call_function_single
|
||||
smp_call_function_single_async
|
||||
snapshot_get_image_size
|
||||
snd_info_create_module_entry
|
||||
snd_info_free_entry
|
||||
snd_info_register
|
||||
@@ -1832,6 +1995,7 @@
|
||||
sock_alloc_send_pskb
|
||||
sock_alloc_send_skb
|
||||
sock_create_kern
|
||||
sock_edemux
|
||||
sock_gettstamp
|
||||
sock_init_data
|
||||
sock_no_accept
|
||||
@@ -1902,9 +2066,12 @@
|
||||
strreplace
|
||||
strscpy
|
||||
strsep
|
||||
submit_bio_noacct
|
||||
submit_bio_wait
|
||||
__sw_hweight32
|
||||
__sw_hweight64
|
||||
__sw_hweight8
|
||||
sync_blockdev
|
||||
synchronize_irq
|
||||
synchronize_rcu
|
||||
synchronize_rcu_expedited
|
||||
@@ -1957,6 +2124,7 @@
|
||||
task_may_not_preempt
|
||||
__task_pid_nr_ns
|
||||
__task_rq_lock
|
||||
tcp_hashinfo
|
||||
thermal_cooling_device_register
|
||||
thermal_cooling_device_unregister
|
||||
thermal_of_cooling_device_register
|
||||
@@ -1970,6 +2138,7 @@
|
||||
tick_nohz_get_sleep_length
|
||||
time64_to_tm
|
||||
timer_unstable_counter_workaround
|
||||
timespec64_to_jiffies
|
||||
topology_clear_scale_freq_source
|
||||
topology_set_thermal_pressure
|
||||
topology_update_done
|
||||
@@ -1984,8 +2153,124 @@
|
||||
trace_event_reg
|
||||
trace_get_event_file
|
||||
trace_handle_return
|
||||
__traceiter_android_rvh_account_irq_end
|
||||
__traceiter_android_rvh_account_irq_start
|
||||
__traceiter_android_rvh_after_dequeue_task
|
||||
__traceiter_android_rvh_after_enqueue_task
|
||||
__traceiter_android_rvh_audio_usb_offload_disconnect
|
||||
__traceiter_android_rvh_build_perf_domains
|
||||
__traceiter_android_rvh_can_migrate_task
|
||||
__traceiter_android_rvh_check_preempt_wakeup
|
||||
__traceiter_android_rvh_cpu_cgroup_attach
|
||||
__traceiter_android_rvh_cpu_cgroup_online
|
||||
__traceiter_android_rvh_do_ptrauth_fault
|
||||
__traceiter_android_rvh_do_sched_yield
|
||||
__traceiter_android_rvh_do_undefinstr
|
||||
__traceiter_android_rvh_find_busiest_queue
|
||||
__traceiter_android_rvh_find_lowest_rq
|
||||
__traceiter_android_rvh_flush_task
|
||||
__traceiter_android_rvh_get_nohz_timer_target
|
||||
__traceiter_android_rvh_gic_v3_set_affinity
|
||||
__traceiter_android_rvh_iommu_setup_dma_ops
|
||||
__traceiter_android_rvh_is_cpu_allowed
|
||||
__traceiter_android_rvh_migrate_queued_task
|
||||
__traceiter_android_rvh_mmc_cache_card_properties
|
||||
__traceiter_android_rvh_new_task_stats
|
||||
__traceiter_android_rvh_partial_init
|
||||
__traceiter_android_rvh_replace_next_task_fair
|
||||
__traceiter_android_rvh_rto_next_cpu
|
||||
__traceiter_android_rvh_sched_cpu_dying
|
||||
__traceiter_android_rvh_sched_cpu_starting
|
||||
__traceiter_android_rvh_sched_exec
|
||||
__traceiter_android_rvh_sched_fork_init
|
||||
__traceiter_android_rvh_sched_getaffinity
|
||||
__traceiter_android_rvh_sched_newidle_balance
|
||||
__traceiter_android_rvh_sched_nohz_balancer_kick
|
||||
__traceiter_android_rvh_sched_setaffinity
|
||||
__traceiter_android_rvh_schedule
|
||||
__traceiter_android_rvh_select_task_rq_fair
|
||||
__traceiter_android_rvh_select_task_rq_rt
|
||||
__traceiter_android_rvh_set_balance_anon_file_reclaim
|
||||
__traceiter_android_rvh_set_cpus_allowed_by_task
|
||||
__traceiter_android_rvh_set_cpus_allowed_ptr_locked
|
||||
__traceiter_android_rvh_set_gfp_zone_flags
|
||||
__traceiter_android_rvh_set_readahead_gfp_mask
|
||||
__traceiter_android_rvh_set_skip_swapcache_flags
|
||||
__traceiter_android_rvh_set_task_cpu
|
||||
__traceiter_android_rvh_show_max_freq
|
||||
__traceiter_android_rvh_tick_entry
|
||||
__traceiter_android_rvh_try_to_wake_up
|
||||
__traceiter_android_rvh_try_to_wake_up_success
|
||||
__traceiter_android_rvh_ttwu_cond
|
||||
__traceiter_android_rvh_update_cpu_capacity
|
||||
__traceiter_android_rvh_update_cpus_allowed
|
||||
__traceiter_android_rvh_update_misfit_status
|
||||
__traceiter_android_rvh_update_readahead_gfp_mask
|
||||
__traceiter_android_rvh_update_thermal_stats
|
||||
__traceiter_android_rvh_wake_up_new_task
|
||||
__traceiter_android_vh_audio_usb_offload_connect
|
||||
__traceiter_android_vh_binder_restore_priority
|
||||
__traceiter_android_vh_binder_set_priority
|
||||
__traceiter_android_vh_binder_wakeup_ilocked
|
||||
__traceiter_android_vh_check_hibernation_swap
|
||||
__traceiter_android_vh_check_uninterruptible_tasks
|
||||
__traceiter_android_vh_check_uninterruptible_tasks_dn
|
||||
__traceiter_android_vh_cma_alloc_retry
|
||||
__traceiter_android_vh_cpu_idle_enter
|
||||
__traceiter_android_vh_cpu_idle_exit
|
||||
__traceiter_android_vh_cpuidle_psci_enter
|
||||
__traceiter_android_vh_cpuidle_psci_exit
|
||||
__traceiter_android_vh_disable_thermal_cooling_stats
|
||||
__traceiter_android_vh_do_wake_up_sync
|
||||
__traceiter_android_vh_encrypt_page
|
||||
__traceiter_android_vh_ftrace_dump_buffer
|
||||
__traceiter_android_vh_ftrace_format_check
|
||||
__traceiter_android_vh_ftrace_oops_enter
|
||||
__traceiter_android_vh_ftrace_oops_exit
|
||||
__traceiter_android_vh_ftrace_size_check
|
||||
__traceiter_android_vh_gic_resume
|
||||
__traceiter_android_vh_gic_suspend
|
||||
__traceiter_android_vh_gic_v2_resume
|
||||
__traceiter_android_vh_handle_tlb_conf
|
||||
__traceiter_android_vh_init_aes_encrypt
|
||||
__traceiter_android_vh_ipi_stop
|
||||
__traceiter_android_vh_jiffies_update
|
||||
__traceiter_android_vh_kswapd_per_node
|
||||
__traceiter_android_vh_logbuf
|
||||
__traceiter_android_vh_logbuf_pr_cont
|
||||
__traceiter_android_vh_madvise_cold_or_pageout
|
||||
__traceiter_android_vh_mmc_sdio_pm_flag_set
|
||||
__traceiter_android_vh_mmc_sd_update_cmdline_timing
|
||||
__traceiter_android_vh_post_image_save
|
||||
__traceiter_android_vh_printk_hotplug
|
||||
__traceiter_android_vh_rproc_recovery
|
||||
__traceiter_android_vh_rproc_recovery_set
|
||||
__traceiter_android_vh_save_cpu_resume
|
||||
__traceiter_android_vh_save_hib_resume_bdev
|
||||
__traceiter_android_vh_scheduler_tick
|
||||
__traceiter_android_vh_show_resume_epoch_val
|
||||
__traceiter_android_vh_show_suspend_epoch_val
|
||||
__traceiter_android_vh_skip_swap_map_write
|
||||
__traceiter_android_vh_timer_calc_index
|
||||
__traceiter_android_vh_ufs_check_int_errors
|
||||
__traceiter_android_vh_ufs_clock_scaling
|
||||
__traceiter_android_vh_ufs_compl_command
|
||||
__traceiter_android_vh_ufs_send_command
|
||||
__traceiter_android_vh_ufs_send_tm_command
|
||||
__traceiter_android_vh_ufs_send_uic_command
|
||||
__traceiter_android_vh_ufs_update_sdev
|
||||
__traceiter_android_vh_update_topology_flags_workfn
|
||||
__traceiter_binder_transaction_received
|
||||
__traceiter_block_bio_remap
|
||||
__traceiter_cpu_frequency_limits
|
||||
__traceiter_cpu_idle
|
||||
__traceiter_ipi_entry
|
||||
__traceiter_ipi_raise
|
||||
__traceiter_irq_handler_entry
|
||||
__traceiter_map
|
||||
__traceiter_sched_overutilized_tp
|
||||
__traceiter_sched_switch
|
||||
__traceiter_suspend_resume
|
||||
__traceiter_unmap
|
||||
__tracepoint_android_rvh_account_irq_end
|
||||
__tracepoint_android_rvh_account_irq_start
|
||||
@@ -1997,7 +2282,9 @@
|
||||
__tracepoint_android_rvh_check_preempt_wakeup
|
||||
__tracepoint_android_rvh_cpu_cgroup_attach
|
||||
__tracepoint_android_rvh_cpu_cgroup_online
|
||||
__tracepoint_android_rvh_do_ptrauth_fault
|
||||
__tracepoint_android_rvh_do_sched_yield
|
||||
__tracepoint_android_rvh_do_undefinstr
|
||||
__tracepoint_android_rvh_find_busiest_queue
|
||||
__tracepoint_android_rvh_find_lowest_rq
|
||||
__tracepoint_android_rvh_flush_task
|
||||
@@ -2023,6 +2310,7 @@
|
||||
__tracepoint_android_rvh_select_task_rq_fair
|
||||
__tracepoint_android_rvh_select_task_rq_rt
|
||||
__tracepoint_android_rvh_set_balance_anon_file_reclaim
|
||||
__tracepoint_android_rvh_set_cpus_allowed_by_task
|
||||
__tracepoint_android_rvh_set_cpus_allowed_ptr_locked
|
||||
__tracepoint_android_rvh_set_gfp_zone_flags
|
||||
__tracepoint_android_rvh_set_readahead_gfp_mask
|
||||
@@ -2036,39 +2324,52 @@
|
||||
__tracepoint_android_rvh_update_cpu_capacity
|
||||
__tracepoint_android_rvh_update_cpus_allowed
|
||||
__tracepoint_android_rvh_update_misfit_status
|
||||
__tracepoint_android_rvh_update_readahead_gfp_mask
|
||||
__tracepoint_android_rvh_update_thermal_stats
|
||||
__tracepoint_android_rvh_wake_up_new_task
|
||||
__tracepoint_android_vh_audio_usb_offload_connect
|
||||
__tracepoint_android_vh_binder_restore_priority
|
||||
__tracepoint_android_vh_binder_set_priority
|
||||
__tracepoint_android_vh_binder_wakeup_ilocked
|
||||
__tracepoint_android_vh_check_hibernation_swap
|
||||
__tracepoint_android_vh_check_uninterruptible_tasks
|
||||
__tracepoint_android_vh_check_uninterruptible_tasks_dn
|
||||
__tracepoint_android_vh_cma_alloc_retry
|
||||
__tracepoint_android_vh_cpu_idle_enter
|
||||
__tracepoint_android_vh_cpu_idle_exit
|
||||
__tracepoint_android_vh_cpuidle_psci_enter
|
||||
__tracepoint_android_vh_cpuidle_psci_exit
|
||||
__tracepoint_android_vh_disable_thermal_cooling_stats
|
||||
__tracepoint_android_vh_do_wake_up_sync
|
||||
__tracepoint_android_vh_encrypt_page
|
||||
__tracepoint_android_vh_ftrace_dump_buffer
|
||||
__tracepoint_android_vh_ftrace_format_check
|
||||
__tracepoint_android_vh_ftrace_oops_enter
|
||||
__tracepoint_android_vh_ftrace_oops_exit
|
||||
__tracepoint_android_vh_ftrace_size_check
|
||||
__tracepoint_android_vh_gic_resume
|
||||
__tracepoint_android_vh_gic_suspend
|
||||
__tracepoint_android_vh_gic_v2_resume
|
||||
__tracepoint_android_vh_handle_tlb_conf
|
||||
__tracepoint_android_vh_init_aes_encrypt
|
||||
__tracepoint_android_vh_ipi_stop
|
||||
__tracepoint_android_vh_jiffies_update
|
||||
__tracepoint_android_vh_kswapd_per_node
|
||||
__tracepoint_android_vh_logbuf
|
||||
__tracepoint_android_vh_logbuf_pr_cont
|
||||
__tracepoint_android_vh_madvise_cold_or_pageout
|
||||
__tracepoint_android_vh_mmc_sdio_pm_flag_set
|
||||
__tracepoint_android_vh_mmc_sd_update_cmdline_timing
|
||||
__tracepoint_android_vh_post_image_save
|
||||
__tracepoint_android_vh_printk_hotplug
|
||||
__tracepoint_android_vh_rproc_recovery
|
||||
__tracepoint_android_vh_rproc_recovery_set
|
||||
__tracepoint_android_vh_save_cpu_resume
|
||||
__tracepoint_android_vh_save_hib_resume_bdev
|
||||
__tracepoint_android_vh_scheduler_tick
|
||||
__tracepoint_android_vh_show_resume_epoch_val
|
||||
__tracepoint_android_vh_show_suspend_epoch_val
|
||||
__tracepoint_android_vh_skip_swap_map_write
|
||||
__tracepoint_android_vh_timer_calc_index
|
||||
__tracepoint_android_vh_ufs_check_int_errors
|
||||
__tracepoint_android_vh_ufs_clock_scaling
|
||||
@@ -2079,6 +2380,7 @@
|
||||
__tracepoint_android_vh_ufs_update_sdev
|
||||
__tracepoint_android_vh_update_topology_flags_workfn
|
||||
__tracepoint_binder_transaction_received
|
||||
__tracepoint_block_bio_remap
|
||||
__tracepoint_cpu_frequency_limits
|
||||
__tracepoint_cpu_idle
|
||||
__tracepoint_ipi_entry
|
||||
@@ -2130,6 +2432,9 @@
|
||||
ucsi_set_drvdata
|
||||
ucsi_unregister
|
||||
__udelay
|
||||
__udp4_lib_lookup
|
||||
__udp6_lib_lookup
|
||||
udp_table
|
||||
ufshcd_auto_hibern8_update
|
||||
ufshcd_dme_get_attr
|
||||
ufshcd_dme_set_attr
|
||||
@@ -2204,6 +2509,7 @@
|
||||
usb_mon_deregister
|
||||
usb_mon_register
|
||||
usb_phy_set_charger_current
|
||||
usb_pipe_type_check
|
||||
usb_put_function_instance
|
||||
usb_register_notify
|
||||
usb_remove_phy
|
||||
@@ -2239,6 +2545,7 @@
|
||||
vchan_tx_desc_free
|
||||
vchan_tx_submit
|
||||
vfree
|
||||
vfs_fsync
|
||||
vhost_add_used_and_signal
|
||||
vhost_dev_check_owner
|
||||
vhost_dev_cleanup
|
||||
@@ -2273,6 +2580,7 @@
|
||||
wait_for_completion
|
||||
wait_for_completion_interruptible
|
||||
wait_for_completion_interruptible_timeout
|
||||
wait_for_completion_io_timeout
|
||||
wait_for_completion_timeout
|
||||
__wait_rcu_gp
|
||||
__wake_up
|
||||
|
||||
1063
android/abi_gki_aarch64_rtktv
Normal file
1063
android/abi_gki_aarch64_rtktv
Normal file
File diff suppressed because it is too large
Load Diff
8
android/abi_gki_aarch64_sony
Normal file
8
android/abi_gki_aarch64_sony
Normal file
@@ -0,0 +1,8 @@
|
||||
[abi_symbol_list]
|
||||
#required by codec module
|
||||
snd_soc_component_enable_pin
|
||||
snd_soc_component_get_pin_status
|
||||
|
||||
#required for mmc debugging
|
||||
__traceiter_block_rq_complete
|
||||
__tracepoint_block_rq_complete
|
||||
1682
android/abi_gki_aarch64_sunxi
Normal file
1682
android/abi_gki_aarch64_sunxi
Normal file
File diff suppressed because it is too large
Load Diff
282
android/abi_gki_aarch64_tuxera
Normal file
282
android/abi_gki_aarch64_tuxera
Normal file
@@ -0,0 +1,282 @@
|
||||
[abi_symbol_list]
|
||||
add_to_page_cache_locked
|
||||
__alloc_pages
|
||||
android_kmalloc_64_create
|
||||
__arch_copy_from_user
|
||||
__arch_copy_to_user
|
||||
arm64_const_caps_ready
|
||||
autoremove_wake_function
|
||||
balance_dirty_pages_ratelimited
|
||||
bcmp
|
||||
bdev_read_only
|
||||
__bforget
|
||||
bio_add_page
|
||||
bio_alloc_bioset
|
||||
bio_associate_blkg
|
||||
bio_put
|
||||
__bitmap_weight
|
||||
bit_waitqueue
|
||||
blkdev_issue_discard
|
||||
blkdev_issue_flush
|
||||
blk_finish_plug
|
||||
blk_start_plug
|
||||
__blockdev_direct_IO
|
||||
block_invalidatepage
|
||||
block_is_partially_uptodate
|
||||
__breadahead
|
||||
__bread_gfp
|
||||
__brelse
|
||||
buffer_migrate_page
|
||||
__cancel_dirty_page
|
||||
capable
|
||||
capable_wrt_inode_uidgid
|
||||
__cfi_slowpath_diag
|
||||
__check_object_size
|
||||
clean_bdev_aliases
|
||||
__cleancache_invalidate_inode
|
||||
clear_inode
|
||||
clear_page
|
||||
clear_page_dirty_for_io
|
||||
complete_and_exit
|
||||
copy_page_from_iter_atomic
|
||||
cpu_hwcap_keys
|
||||
cpu_hwcaps
|
||||
create_empty_buffers
|
||||
current_umask
|
||||
d_add
|
||||
d_add_ci
|
||||
delete_from_page_cache
|
||||
d_instantiate
|
||||
d_make_root
|
||||
d_obtain_alias
|
||||
down_read
|
||||
down_write
|
||||
down_write_trylock
|
||||
dput
|
||||
drop_nlink
|
||||
d_splice_alias
|
||||
dump_stack
|
||||
end_buffer_read_sync
|
||||
end_buffer_write_sync
|
||||
end_page_writeback
|
||||
errseq_set
|
||||
fault_in_iov_iter_readable
|
||||
fault_in_safe_writeable
|
||||
fget
|
||||
fiemap_fill_next_extent
|
||||
fiemap_prep
|
||||
filemap_fault
|
||||
filemap_fdatawait_range
|
||||
filemap_fdatawrite
|
||||
filemap_flush
|
||||
__filemap_set_wb_err
|
||||
filemap_write_and_wait_range
|
||||
file_remove_privs
|
||||
file_update_time
|
||||
file_write_and_wait_range
|
||||
finish_wait
|
||||
flush_dcache_page
|
||||
fput
|
||||
freezing_slow_path
|
||||
fs_bio_set
|
||||
generic_error_remove_page
|
||||
generic_file_direct_write
|
||||
generic_file_llseek
|
||||
generic_file_mmap
|
||||
generic_file_open
|
||||
generic_file_read_iter
|
||||
generic_file_splice_read
|
||||
generic_fillattr
|
||||
generic_perform_write
|
||||
generic_read_dir
|
||||
generic_write_checks
|
||||
__getblk_gfp
|
||||
gic_nonsecure_priorities
|
||||
grab_cache_page_write_begin
|
||||
iget5_locked
|
||||
igrab
|
||||
ihold
|
||||
ilookup5
|
||||
inc_nlink
|
||||
in_group_p
|
||||
__init_rwsem
|
||||
init_special_inode
|
||||
init_wait_entry
|
||||
__init_waitqueue_head
|
||||
inode_dio_wait
|
||||
inode_init_once
|
||||
inode_init_owner
|
||||
inode_newsize_ok
|
||||
inode_set_flags
|
||||
__insert_inode_hash
|
||||
invalidate_bdev
|
||||
invalidate_mapping_pages
|
||||
io_schedule
|
||||
iov_iter_advance
|
||||
iov_iter_alignment
|
||||
iov_iter_get_pages
|
||||
iov_iter_single_seg_count
|
||||
iput
|
||||
is_bad_inode
|
||||
iter_file_splice_write
|
||||
iunique
|
||||
jiffies
|
||||
jiffies_to_msecs
|
||||
kasan_flag_enabled
|
||||
kfree
|
||||
kill_block_super
|
||||
__kmalloc
|
||||
kmalloc_caches
|
||||
kmem_cache_alloc
|
||||
kmem_cache_alloc_trace
|
||||
kmem_cache_create
|
||||
kmem_cache_create_usercopy
|
||||
kmem_cache_destroy
|
||||
kmem_cache_free
|
||||
krealloc
|
||||
kthread_create_on_node
|
||||
kthread_should_stop
|
||||
kthread_stop
|
||||
ktime_get_coarse_real_ts64
|
||||
kvfree
|
||||
__list_add_valid
|
||||
__list_del_entry_valid
|
||||
ll_rw_block
|
||||
load_nls
|
||||
load_nls_default
|
||||
__lock_buffer
|
||||
__lock_page
|
||||
lru_cache_add
|
||||
make_bad_inode
|
||||
mark_buffer_async_write
|
||||
mark_buffer_dirty
|
||||
mark_buffer_write_io_error
|
||||
__mark_inode_dirty
|
||||
mark_page_accessed
|
||||
memcmp
|
||||
memcpy
|
||||
memmove
|
||||
memset
|
||||
mktime64
|
||||
mnt_drop_write_file
|
||||
mnt_want_write_file
|
||||
module_layout
|
||||
mount_bdev
|
||||
mpage_readahead
|
||||
mpage_readpage
|
||||
__msecs_to_jiffies
|
||||
__mutex_init
|
||||
mutex_lock
|
||||
mutex_trylock
|
||||
mutex_unlock
|
||||
new_inode
|
||||
notify_change
|
||||
pagecache_get_page
|
||||
page_cache_next_miss
|
||||
page_cache_prev_miss
|
||||
page_mapped
|
||||
pagevec_lookup_range
|
||||
pagevec_lookup_range_tag
|
||||
__pagevec_release
|
||||
page_zero_new_buffers
|
||||
__percpu_down_read
|
||||
preempt_schedule
|
||||
preempt_schedule_notrace
|
||||
prepare_to_wait
|
||||
prepare_to_wait_event
|
||||
_printk
|
||||
__printk_ratelimit
|
||||
__put_page
|
||||
put_pages_list
|
||||
___ratelimit
|
||||
_raw_read_lock
|
||||
_raw_read_lock_irqsave
|
||||
_raw_read_unlock
|
||||
_raw_read_unlock_irqrestore
|
||||
_raw_spin_lock
|
||||
_raw_spin_lock_irqsave
|
||||
_raw_spin_unlock
|
||||
_raw_spin_unlock_irqrestore
|
||||
_raw_write_lock
|
||||
_raw_write_lock_irqsave
|
||||
_raw_write_unlock
|
||||
_raw_write_unlock_irqrestore
|
||||
rcuwait_wake_up
|
||||
readahead_gfp_mask
|
||||
read_cache_page
|
||||
redirty_page_for_writepage
|
||||
__refrigerator
|
||||
register_filesystem
|
||||
__remove_inode_hash
|
||||
sb_min_blocksize
|
||||
sb_set_blocksize
|
||||
schedule
|
||||
schedule_timeout_interruptible
|
||||
security_inode_init_security
|
||||
seq_printf
|
||||
setattr_prepare
|
||||
set_freezable
|
||||
set_nlink
|
||||
set_page_dirty
|
||||
__set_page_dirty_buffers
|
||||
__set_page_dirty_nobuffers
|
||||
set_user_nice
|
||||
simple_strtol
|
||||
simple_strtoul
|
||||
simple_strtoull
|
||||
snprintf
|
||||
sprintf
|
||||
sscanf
|
||||
__stack_chk_fail
|
||||
strchr
|
||||
strcmp
|
||||
strlen
|
||||
strncasecmp
|
||||
strncmp
|
||||
strsep
|
||||
strstr
|
||||
submit_bh
|
||||
submit_bio
|
||||
sync_blockdev
|
||||
__sync_dirty_buffer
|
||||
sync_dirty_buffer
|
||||
sync_filesystem
|
||||
sync_inode_metadata
|
||||
system_freezing_cnt
|
||||
sys_tz
|
||||
tag_pages_for_writeback
|
||||
__test_set_page_writeback
|
||||
time64_to_tm
|
||||
timestamp_truncate
|
||||
touch_atime
|
||||
_trace_android_vh_record_pcpu_rwsem_starttime
|
||||
truncate_inode_pages
|
||||
truncate_inode_pages_final
|
||||
truncate_pagecache
|
||||
truncate_setsize
|
||||
try_to_release_page
|
||||
try_to_writeback_inodes_sb
|
||||
__ubsan_handle_cfi_check_fail_abort
|
||||
unload_nls
|
||||
unlock_buffer
|
||||
unlock_new_inode
|
||||
unlock_page
|
||||
unmap_mapping_range
|
||||
unregister_filesystem
|
||||
up_read
|
||||
up_write
|
||||
vfree
|
||||
vfs_fsync_range
|
||||
vmalloc
|
||||
__vmalloc
|
||||
vsnprintf
|
||||
vzalloc
|
||||
__wait_on_buffer
|
||||
wait_on_page_bit
|
||||
wake_bit_function
|
||||
__wake_up
|
||||
wake_up_process
|
||||
__warn_printk
|
||||
write_inode_now
|
||||
write_one_page
|
||||
xa_load
|
||||
6
android/abi_gki_aarch64_type_visibility
Normal file
6
android/abi_gki_aarch64_type_visibility
Normal file
@@ -0,0 +1,6 @@
|
||||
[abi_symbol_list]
|
||||
|
||||
# for type visibility
|
||||
GKI_struct_selinux_state
|
||||
GKI_struct_readahead_control
|
||||
GKI_struct_blk_mq_alloc_data
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2307,6 +2307,7 @@
|
||||
__traceiter_android_rvh_build_perf_domains
|
||||
__traceiter_android_rvh_can_migrate_task
|
||||
__traceiter_android_rvh_check_preempt_wakeup
|
||||
__traceiter_android_rvh_cpufreq_transition
|
||||
__traceiter_android_rvh_cpu_cgroup_attach
|
||||
__traceiter_android_rvh_cpu_cgroup_online
|
||||
__traceiter_android_rvh_find_busiest_queue
|
||||
@@ -2314,6 +2315,7 @@
|
||||
__traceiter_android_rvh_is_cpu_allowed
|
||||
__traceiter_android_rvh_migrate_queued_task
|
||||
__traceiter_android_rvh_new_task_stats
|
||||
__traceiter_android_rvh_refrigerator
|
||||
__traceiter_android_rvh_replace_next_task_fair
|
||||
__traceiter_android_rvh_sched_cpu_dying
|
||||
__traceiter_android_rvh_sched_cpu_starting
|
||||
@@ -2331,12 +2333,18 @@
|
||||
__traceiter_android_rvh_update_cpu_capacity
|
||||
__traceiter_android_rvh_update_misfit_status
|
||||
__traceiter_android_rvh_wake_up_new_task
|
||||
__traceiter_android_vh_account_task_time
|
||||
__traceiter_android_vh_audio_usb_offload_connect
|
||||
__traceiter_android_vh_binder_restore_priority
|
||||
__traceiter_android_vh_binder_set_priority
|
||||
__traceiter_android_vh_binder_trans
|
||||
__traceiter_android_vh_blk_alloc_rqs
|
||||
__traceiter_android_vh_blk_rq_ctx_init
|
||||
__traceiter_android_vh_cpu_idle_enter
|
||||
__traceiter_android_vh_cpu_idle_exit
|
||||
__traceiter_android_vh_dup_task_struct
|
||||
__traceiter_android_vh_ipi_stop
|
||||
__traceiter_android_vh_irqtime_account_process_tick
|
||||
__traceiter_android_vh_logbuf
|
||||
__traceiter_android_vh_logbuf_pr_cont
|
||||
__traceiter_android_vh_mmap_region
|
||||
@@ -2351,6 +2359,7 @@
|
||||
__traceiter_android_vh_show_suspend_epoch_val
|
||||
__traceiter_android_vh_shrink_slab_bypass
|
||||
__traceiter_android_vh_try_to_unmap_one
|
||||
__traceiter_android_vh_tune_scan_type
|
||||
__traceiter_android_vh_ufs_check_int_errors
|
||||
__traceiter_android_vh_ufs_clock_scaling
|
||||
__traceiter_android_vh_ufs_compl_command
|
||||
@@ -2360,6 +2369,7 @@
|
||||
__traceiter_android_vh_ufs_send_uic_command
|
||||
__traceiter_android_vh_ufs_update_sdev
|
||||
__traceiter_android_vh_update_topology_flags_workfn
|
||||
__traceiter_android_vh_vmpressure
|
||||
__traceiter_block_rq_insert
|
||||
__traceiter_cpu_frequency_limits
|
||||
__traceiter_dwc3_complete_trb
|
||||
@@ -2385,6 +2395,7 @@
|
||||
__tracepoint_android_rvh_build_perf_domains
|
||||
__tracepoint_android_rvh_can_migrate_task
|
||||
__tracepoint_android_rvh_check_preempt_wakeup
|
||||
__tracepoint_android_rvh_cpufreq_transition
|
||||
__tracepoint_android_rvh_cpu_cgroup_attach
|
||||
__tracepoint_android_rvh_cpu_cgroup_online
|
||||
__tracepoint_android_rvh_do_sched_yield
|
||||
@@ -2396,6 +2407,7 @@
|
||||
__tracepoint_android_rvh_is_cpu_allowed
|
||||
__tracepoint_android_rvh_migrate_queued_task
|
||||
__tracepoint_android_rvh_new_task_stats
|
||||
__tracepoint_android_rvh_refrigerator
|
||||
__tracepoint_android_rvh_replace_next_task_fair
|
||||
__tracepoint_android_rvh_rto_next_cpu
|
||||
__tracepoint_android_rvh_sched_cpu_dying
|
||||
@@ -2423,14 +2435,19 @@
|
||||
__tracepoint_android_rvh_update_cpus_allowed
|
||||
__tracepoint_android_rvh_update_misfit_status
|
||||
__tracepoint_android_rvh_wake_up_new_task
|
||||
__tracepoint_android_vh_account_task_time
|
||||
__tracepoint_android_vh_audio_usb_offload_connect
|
||||
__tracepoint_android_vh_binder_restore_priority
|
||||
__tracepoint_android_vh_binder_set_priority
|
||||
__tracepoint_android_vh_binder_trans
|
||||
__tracepoint_android_vh_binder_wakeup_ilocked
|
||||
__tracepoint_android_vh_blk_alloc_rqs
|
||||
__tracepoint_android_vh_blk_rq_ctx_init
|
||||
__tracepoint_android_vh_cpu_idle_enter
|
||||
__tracepoint_android_vh_cpu_idle_exit
|
||||
__tracepoint_android_vh_cpuidle_psci_enter
|
||||
__tracepoint_android_vh_cpuidle_psci_exit
|
||||
__tracepoint_android_vh_dup_task_struct
|
||||
__tracepoint_android_vh_ftrace_dump_buffer
|
||||
__tracepoint_android_vh_ftrace_format_check
|
||||
__tracepoint_android_vh_ftrace_oops_enter
|
||||
@@ -2438,6 +2455,7 @@
|
||||
__tracepoint_android_vh_ftrace_size_check
|
||||
__tracepoint_android_vh_gic_resume
|
||||
__tracepoint_android_vh_ipi_stop
|
||||
__tracepoint_android_vh_irqtime_account_process_tick
|
||||
__tracepoint_android_vh_jiffies_update
|
||||
__tracepoint_android_vh_logbuf
|
||||
__tracepoint_android_vh_logbuf_pr_cont
|
||||
@@ -2456,6 +2474,7 @@
|
||||
__tracepoint_android_vh_shrink_slab_bypass
|
||||
__tracepoint_android_vh_timer_calc_index
|
||||
__tracepoint_android_vh_try_to_unmap_one
|
||||
__tracepoint_android_vh_tune_scan_type
|
||||
__tracepoint_android_vh_ufs_check_int_errors
|
||||
__tracepoint_android_vh_ufs_clock_scaling
|
||||
__tracepoint_android_vh_ufs_compl_command
|
||||
@@ -2465,6 +2484,7 @@
|
||||
__tracepoint_android_vh_ufs_send_uic_command
|
||||
__tracepoint_android_vh_ufs_update_sdev
|
||||
__tracepoint_android_vh_update_topology_flags_workfn
|
||||
__tracepoint_android_vh_vmpressure
|
||||
__tracepoint_binder_transaction_received
|
||||
__tracepoint_block_rq_insert
|
||||
__tracepoint_cpu_frequency_limits
|
||||
|
||||
@@ -82,6 +82,9 @@
|
||||
__tracepoint_android_vh_ufs_mcq_send_command
|
||||
__tracepoint_android_vh_ufs_mcq_set_sqid
|
||||
__tracepoint_android_vh_ufs_mcq_has_oustanding_reqs
|
||||
__tracepoint_android_vh_dm_update_clone_bio
|
||||
__tracepoint_android_vh_direct_io_update_bio
|
||||
__tracepoint_android_vh_loop_prepare_cmd
|
||||
__traceiter_android_vh_ufs_mcq_handler
|
||||
__traceiter_android_vh_ufs_mcq_print_trs
|
||||
__traceiter_android_vh_ufs_mcq_config
|
||||
@@ -97,6 +100,9 @@
|
||||
__traceiter_android_vh_ufs_mcq_send_command
|
||||
__traceiter_android_vh_ufs_mcq_set_sqid
|
||||
__traceiter_android_vh_ufs_mcq_has_oustanding_reqs
|
||||
__traceiter_android_vh_dm_update_clone_bio
|
||||
__traceiter_android_vh_direct_io_update_bio
|
||||
__traceiter_android_vh_loop_prepare_cmd
|
||||
|
||||
#required by cs35l41 module
|
||||
regmap_raw_write_async
|
||||
@@ -172,7 +178,7 @@
|
||||
__tracepoint_android_vh_binder_trans
|
||||
__tracepoint_android_vh_binder_reply
|
||||
__tracepoint_android_vh_binder_alloc_new_buf_locked
|
||||
|
||||
freezer_cgrp_subsys
|
||||
|
||||
#required by mi_sched.ko
|
||||
__traceiter_android_vh_free_task
|
||||
@@ -180,6 +186,8 @@
|
||||
__traceiter_android_vh_scheduler_tick
|
||||
__tracepoint_android_vh_scheduler_tick
|
||||
jiffies_64
|
||||
free_uid
|
||||
find_user
|
||||
|
||||
#required by migt.ko
|
||||
__traceiter_android_rvh_after_enqueue_task
|
||||
@@ -214,6 +222,10 @@
|
||||
__tracepoint_binder_txn_latency_free
|
||||
|
||||
#required by reclaim module
|
||||
__traceiter_android_vh_tune_scan_type
|
||||
__tracepoint_android_vh_tune_scan_type
|
||||
__traceiter_android_vh_tune_swappiness
|
||||
__tracepoint_android_vh_tune_swappiness
|
||||
|
||||
#required by msm_drm.ko module
|
||||
drm_get_connector_type_name
|
||||
@@ -221,7 +233,6 @@
|
||||
#required by mi_gamekey.ko module
|
||||
gpio_request_array
|
||||
|
||||
#extend_reclaim.ko
|
||||
|
||||
#required by xm_power_debug.ko module
|
||||
wakeup_sources_read_lock
|
||||
@@ -240,7 +251,7 @@
|
||||
__tracepoint_irq_handler_entry
|
||||
__traceiter_irq_handler_entry
|
||||
|
||||
#required by msm_rtb.ko module
|
||||
#required by ax88796b.ko module
|
||||
phy_resolve_aneg_linkmode
|
||||
|
||||
#required by metis.ko module
|
||||
@@ -261,3 +272,254 @@
|
||||
__tracepoint_android_rvh_set_cpus_allowed_comm
|
||||
__tracepoint_android_rvh_dequeue_task
|
||||
cpuset_cpus_allowed
|
||||
|
||||
#required by perf_helper.ko
|
||||
try_to_free_mem_cgroup_pages
|
||||
|
||||
#required by debug_ext.ko
|
||||
of_find_all_nodes
|
||||
|
||||
#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 binder_prio module
|
||||
__traceiter_android_vh_binder_priority_skip
|
||||
__tracepoint_android_vh_binder_priority_skip
|
||||
|
||||
#required by mi_mempool.ko module
|
||||
__traceiter_android_vh_mmput
|
||||
__tracepoint_android_vh_mmput
|
||||
__traceiter_android_vh_alloc_pages_reclaim_bypass
|
||||
__tracepoint_android_vh_alloc_pages_reclaim_bypass
|
||||
__traceiter_android_vh_alloc_pages_failure_bypass
|
||||
__tracepoint_android_vh_alloc_pages_failure_bypass
|
||||
|
||||
#required by mifs.ko module
|
||||
__cleancache_get_page
|
||||
__dquot_alloc_space
|
||||
__dquot_free_space
|
||||
__dquot_transfer
|
||||
__filemap_set_wb_err
|
||||
__fscrypt_encrypt_symlink
|
||||
__fscrypt_inode_uses_inline_crypto
|
||||
__fscrypt_prepare_link
|
||||
__fscrypt_prepare_lookup
|
||||
__fscrypt_prepare_readdir
|
||||
__fscrypt_prepare_rename
|
||||
__fscrypt_prepare_setattr
|
||||
__iomap_dio_rw
|
||||
__page_file_mapping
|
||||
__pagevec_release
|
||||
__percpu_counter_init
|
||||
__percpu_counter_sum
|
||||
__set_page_dirty_nobuffers
|
||||
__sync_dirty_buffer
|
||||
__test_set_page_writeback
|
||||
__traceiter_android_fs_dataread_end
|
||||
__traceiter_android_fs_dataread_start
|
||||
__traceiter_android_fs_datawrite_end
|
||||
__traceiter_android_fs_datawrite_start
|
||||
__tracepoint_android_fs_dataread_end
|
||||
__tracepoint_android_fs_dataread_start
|
||||
__tracepoint_android_fs_datawrite_end
|
||||
__tracepoint_android_fs_datawrite_start
|
||||
__xa_clear_mark
|
||||
add_swap_extent
|
||||
bdev_read_only
|
||||
bio_associate_blkg_from_css
|
||||
bioset_exit
|
||||
bioset_init
|
||||
blk_op_str
|
||||
blkdev_issue_discard
|
||||
blkdev_issue_zeroout
|
||||
capable_wrt_inode_uidgid
|
||||
clear_page_dirty_for_io
|
||||
current_umask
|
||||
d_instantiate_new
|
||||
d_invalidate
|
||||
d_tmpfile
|
||||
dentry_path_raw
|
||||
dotdot_name
|
||||
dqget
|
||||
dqput
|
||||
dquot_acquire
|
||||
dquot_alloc
|
||||
dquot_alloc_inode
|
||||
dquot_claim_space_nodirty
|
||||
dquot_commit
|
||||
dquot_commit_info
|
||||
dquot_destroy
|
||||
dquot_disable
|
||||
dquot_drop
|
||||
dquot_file_open
|
||||
dquot_free_inode
|
||||
dquot_get_dqblk
|
||||
dquot_get_next_dqblk
|
||||
dquot_get_next_id
|
||||
dquot_get_state
|
||||
dquot_initialize
|
||||
dquot_initialize_needed
|
||||
dquot_load_quota_inode
|
||||
dquot_mark_dquot_dirty
|
||||
dquot_quota_off
|
||||
dquot_quota_on
|
||||
dquot_quota_on_mount
|
||||
dquot_release
|
||||
dquot_resume
|
||||
dquot_set_dqblk
|
||||
dquot_set_dqinfo
|
||||
dquot_transfer
|
||||
dquot_writeback_dquots
|
||||
end_page_writeback
|
||||
errseq_set
|
||||
evict_inodes
|
||||
fault_in_iov_iter_readable
|
||||
fiemap_fill_next_extent
|
||||
fiemap_prep
|
||||
file_modified
|
||||
file_update_time
|
||||
fileattr_fill_flags
|
||||
filemap_check_errors
|
||||
filemap_fault
|
||||
filemap_fdatawrite
|
||||
filemap_map_pages
|
||||
filemap_read
|
||||
filemap_write_and_wait_range
|
||||
find_inode_nowait
|
||||
freeze_bdev
|
||||
freeze_super
|
||||
fs_kobj
|
||||
fscrypt_decrypt_bio
|
||||
fscrypt_dio_supported
|
||||
fscrypt_drop_inode
|
||||
fscrypt_encrypt_pagecache_blocks
|
||||
fscrypt_file_open
|
||||
fscrypt_fname_alloc_buffer
|
||||
fscrypt_fname_disk_to_usr
|
||||
fscrypt_fname_free_buffer
|
||||
fscrypt_fname_siphash
|
||||
fscrypt_free_bounce_page
|
||||
fscrypt_free_inode
|
||||
fscrypt_get_symlink
|
||||
fscrypt_has_permitted_context
|
||||
fscrypt_ioctl_add_key
|
||||
fscrypt_ioctl_get_key_status
|
||||
fscrypt_ioctl_get_nonce
|
||||
fscrypt_ioctl_get_policy
|
||||
fscrypt_ioctl_get_policy_ex
|
||||
fscrypt_ioctl_remove_key
|
||||
fscrypt_ioctl_remove_key_all_users
|
||||
fscrypt_ioctl_set_policy
|
||||
fscrypt_limit_io_blocks
|
||||
fscrypt_match_name
|
||||
fscrypt_mergeable_bio
|
||||
fscrypt_prepare_new_inode
|
||||
fscrypt_prepare_symlink
|
||||
fscrypt_put_encryption_info
|
||||
fscrypt_set_bio_crypt_ctx
|
||||
fscrypt_set_context
|
||||
fscrypt_set_test_dummy_encryption
|
||||
fscrypt_setup_filename
|
||||
fscrypt_show_test_dummy_encryption
|
||||
fscrypt_symlink_getattr
|
||||
fscrypt_zeroout_range
|
||||
fsverity_cleanup_inode
|
||||
fsverity_enqueue_verify_work
|
||||
fsverity_file_open
|
||||
fsverity_ioctl_enable
|
||||
fsverity_ioctl_measure
|
||||
fsverity_ioctl_read_metadata
|
||||
fsverity_prepare_setattr
|
||||
fsverity_verify_bio
|
||||
fsverity_verify_page
|
||||
generate_random_uuid
|
||||
generic_fadvise
|
||||
generic_file_llseek_size
|
||||
generic_set_encrypted_ci_d_ops
|
||||
grab_cache_page_write_begin
|
||||
iget_locked
|
||||
inode_dio_wait
|
||||
inode_init_owner
|
||||
inode_newsize_ok
|
||||
inode_owner_or_capable
|
||||
inode_set_flags
|
||||
insert_inode_locked
|
||||
iomap_dio_complete
|
||||
iov_iter_alignment
|
||||
iter_file_splice_write
|
||||
kernfs_get
|
||||
kset_register
|
||||
migrate_page_move_mapping
|
||||
migrate_page_states
|
||||
mnt_drop_write_file
|
||||
mnt_want_write_file
|
||||
noop_backing_dev_info
|
||||
noop_direct_IO
|
||||
page_cache_ra_unbounded
|
||||
page_cache_sync_ra
|
||||
page_symlink
|
||||
pagecache_write_begin
|
||||
pagecache_write_end
|
||||
pagevec_lookup_range
|
||||
pagevec_lookup_range_tag
|
||||
percpu_counter_add_batch
|
||||
percpu_counter_batch
|
||||
percpu_counter_destroy
|
||||
percpu_counter_set
|
||||
posix_acl_alloc
|
||||
posix_acl_chmod
|
||||
posix_acl_equiv_mode
|
||||
redirty_page_for_writepage
|
||||
security_inode_init_security
|
||||
seq_escape
|
||||
set_cached_acl
|
||||
set_task_ioprio
|
||||
shrink_dcache_sb
|
||||
sync_inode_metadata
|
||||
sync_inodes_sb
|
||||
tag_pages_for_writeback
|
||||
thaw_bdev
|
||||
thaw_super
|
||||
touch_atime
|
||||
truncate_inode_pages_range
|
||||
truncate_pagecache_range
|
||||
utf8_casefold
|
||||
utf8_load
|
||||
utf8_strncasecmp_folded
|
||||
utf8_unload
|
||||
vfs_setpos
|
||||
wait_for_completion_io
|
||||
wait_for_stable_page
|
||||
wait_on_page_writeback
|
||||
wbc_account_cgroup_owner
|
||||
xa_get_mark
|
||||
LZ4_compress_HC
|
||||
LZ4_compress_default
|
||||
LZ4_decompress_safe
|
||||
ZSTD_CStreamWorkspaceBound
|
||||
ZSTD_DStreamWorkspaceBound
|
||||
ZSTD_compressStream
|
||||
ZSTD_decompressStream
|
||||
ZSTD_endStream
|
||||
ZSTD_getParams
|
||||
ZSTD_initCStream
|
||||
ZSTD_initDStream
|
||||
ZSTD_maxCLevel
|
||||
|
||||
#required by cache module
|
||||
__mod_lruvec_state
|
||||
__mod_zone_page_state
|
||||
d_delete
|
||||
mem_cgroup_update_lru_size
|
||||
|
||||
__traceiter_android_rvh_ctl_dirty_rate
|
||||
__tracepoint_android_rvh_ctl_dirty_rate
|
||||
|
||||
@@ -1300,7 +1300,6 @@ config ARCH_HAVE_TRACE_MMIO_ACCESS
|
||||
|
||||
config ARCH_HAS_NONLEAF_PMD_YOUNG
|
||||
bool
|
||||
depends on PGTABLE_LEVELS > 2
|
||||
help
|
||||
Architectures that select this option are capable of setting the
|
||||
accessed bit in non-leaf PMD entries when using them as part of linear
|
||||
|
||||
@@ -77,10 +77,10 @@ CPPFLAGS_vmlinux.lds += -DTEXT_OFFSET="$(TEXT_OFFSET)"
|
||||
CPPFLAGS_vmlinux.lds += -DMALLOC_SIZE="$(MALLOC_SIZE)"
|
||||
|
||||
compress-$(CONFIG_KERNEL_GZIP) = gzip
|
||||
compress-$(CONFIG_KERNEL_LZO) = lzo
|
||||
compress-$(CONFIG_KERNEL_LZMA) = lzma
|
||||
compress-$(CONFIG_KERNEL_XZ) = xzkern
|
||||
compress-$(CONFIG_KERNEL_LZ4) = lz4
|
||||
compress-$(CONFIG_KERNEL_LZO) = lzo_with_size
|
||||
compress-$(CONFIG_KERNEL_LZMA) = lzma_with_size
|
||||
compress-$(CONFIG_KERNEL_XZ) = xzkern_with_size
|
||||
compress-$(CONFIG_KERNEL_LZ4) = lz4_with_size
|
||||
|
||||
libfdt_objs := fdt_rw.o fdt_ro.o fdt_wip.o fdt.o
|
||||
|
||||
|
||||
@@ -17,18 +17,11 @@ MODULE_LICENSE("GPL");
|
||||
/*
|
||||
* Pull in the reference implementations while instructing GCC (through
|
||||
* -ftree-vectorize) to attempt to exploit implicit parallelism and emit
|
||||
* NEON instructions.
|
||||
* NEON instructions. Clang does this by default at O2 so no pragma is
|
||||
* needed.
|
||||
*/
|
||||
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
|
||||
#ifdef CONFIG_CC_IS_GCC
|
||||
#pragma GCC optimize "tree-vectorize"
|
||||
#else
|
||||
/*
|
||||
* While older versions of GCC do not generate incorrect code, they fail to
|
||||
* recognize the parallel nature of these functions, and emit plain ARM code,
|
||||
* which is known to be slower than the optimized ARM code in asm-arm/xor.h.
|
||||
*
|
||||
* #warning This code requires at least version 4.6 of GCC
|
||||
*/
|
||||
#endif
|
||||
|
||||
#pragma GCC diagnostic ignored "-Wunused-variable"
|
||||
|
||||
@@ -657,6 +657,7 @@ config ARM64_ERRATUM_1463225
|
||||
config ARM64_ERRATUM_1542419
|
||||
bool "Neoverse-N1: workaround mis-ordering of instruction fetches"
|
||||
default y
|
||||
depends on BROKEN # CPU cap re-allocated by Android
|
||||
help
|
||||
This option adds a workaround for ARM Neoverse-N1 erratum
|
||||
1542419.
|
||||
@@ -857,6 +858,7 @@ config CAVIUM_ERRATUM_23154
|
||||
config CAVIUM_ERRATUM_27456
|
||||
bool "Cavium erratum 27456: Broadcast TLBI instructions may cause icache corruption"
|
||||
default y
|
||||
depends on BROKEN # CPU cap re-allocated by Android
|
||||
help
|
||||
On ThunderX T88 pass 1.x through 2.1 parts, broadcast TLBI
|
||||
instructions may cause the icache to become corrupted if it
|
||||
@@ -868,6 +870,7 @@ config CAVIUM_ERRATUM_27456
|
||||
config CAVIUM_ERRATUM_30115
|
||||
bool "Cavium erratum 30115: Guest may disable interrupts in host"
|
||||
default y
|
||||
depends on BROKEN # CPU cap re-allocated by Android
|
||||
help
|
||||
On ThunderX T88 pass 1.x through 2.2, T81 pass 1.0 through
|
||||
1.2, and T83 Pass 1.0, KVM guest execution may disable
|
||||
@@ -879,6 +882,7 @@ config CAVIUM_ERRATUM_30115
|
||||
config CAVIUM_TX2_ERRATUM_219
|
||||
bool "Cavium ThunderX2 erratum 219: PRFM between TTBR change and ISB fails"
|
||||
default y
|
||||
depends on BROKEN # CPU caps re-allocated by Android
|
||||
help
|
||||
On Cavium ThunderX2, a load, store or prefetch instruction between a
|
||||
TTBR update and the corresponding context synchronizing operation can
|
||||
|
||||
@@ -295,7 +295,6 @@ CONFIG_SND_SOC_SM8250=m
|
||||
CONFIG_SND_SOC_LPASS_WSA_MACRO=m
|
||||
CONFIG_SND_SOC_LPASS_VA_MACRO=m
|
||||
CONFIG_TYPEC_QCOM_PMIC=m
|
||||
CONFIG_LEDS_CLASS_MULTICOLOR=m
|
||||
CONFIG_LEDS_QCOM_LPG=m
|
||||
CONFIG_SM_GPUCC_8250=m
|
||||
CONFIG_SM_DISPCC_8250=m
|
||||
|
||||
@@ -67,6 +67,7 @@ CONFIG_RANDOMIZE_BASE=y
|
||||
CONFIG_CMDLINE="stack_depot_disable=on kasan.stacktrace=off kvm-arm.mode=protected cgroup_disable=pressure"
|
||||
CONFIG_CMDLINE_EXTEND=y
|
||||
# CONFIG_DMI is not set
|
||||
CONFIG_HIBERNATION=y
|
||||
CONFIG_PM_WAKELOCKS=y
|
||||
CONFIG_PM_WAKELOCKS_LIMIT=0
|
||||
# CONFIG_PM_WAKELOCKS_GC is not set
|
||||
@@ -88,6 +89,7 @@ CONFIG_KVM=y
|
||||
CONFIG_KVM_S2MPU=y
|
||||
CONFIG_CRYPTO_SHA2_ARM64_CE=y
|
||||
CONFIG_CRYPTO_SHA512_ARM64_CE=y
|
||||
CONFIG_CRYPTO_POLYVAL_ARM64_CE=y
|
||||
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
|
||||
CONFIG_KPROBES=y
|
||||
CONFIG_JUMP_LABEL=y
|
||||
@@ -505,6 +507,7 @@ CONFIG_USB_CONFIGFS_F_AUDIO_SRC=y
|
||||
CONFIG_USB_CONFIGFS_F_UAC2=y
|
||||
CONFIG_USB_CONFIGFS_F_MIDI=y
|
||||
CONFIG_USB_CONFIGFS_F_HID=y
|
||||
CONFIG_USB_CONFIGFS_F_UVC=y
|
||||
CONFIG_TYPEC=y
|
||||
CONFIG_TYPEC_TCPM=y
|
||||
CONFIG_TYPEC_TCPCI=y
|
||||
@@ -516,6 +519,7 @@ CONFIG_MMC_CRYPTO=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
CONFIG_LEDS_CLASS_FLASH=y
|
||||
CONFIG_LEDS_CLASS_MULTICOLOR=y
|
||||
CONFIG_LEDS_TRIGGER_TIMER=y
|
||||
CONFIG_LEDS_TRIGGER_TRANSIENT=y
|
||||
CONFIG_EDAC=y
|
||||
@@ -567,6 +571,7 @@ CONFIG_EXT4_FS_SECURITY=y
|
||||
CONFIG_F2FS_FS=y
|
||||
CONFIG_F2FS_FS_SECURITY=y
|
||||
CONFIG_F2FS_FS_COMPRESSION=y
|
||||
CONFIG_F2FS_UNFAIR_RWSEM=y
|
||||
CONFIG_FS_ENCRYPTION=y
|
||||
CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y
|
||||
CONFIG_FS_VERITY=y
|
||||
@@ -649,6 +654,7 @@ CONFIG_SECURITY_SELINUX=y
|
||||
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
|
||||
CONFIG_CRYPTO_CHACHA20POLY1305=y
|
||||
CONFIG_CRYPTO_ADIANTUM=y
|
||||
CONFIG_CRYPTO_HCTR2=y
|
||||
CONFIG_CRYPTO_XCBC=y
|
||||
CONFIG_CRYPTO_BLAKE2B=y
|
||||
CONFIG_CRYPTO_MD5=y
|
||||
@@ -657,6 +663,7 @@ CONFIG_CRYPTO_LZO=y
|
||||
CONFIG_CRYPTO_LZ4=y
|
||||
CONFIG_CRYPTO_ZSTD=y
|
||||
CONFIG_CRYPTO_ANSI_CPRNG=y
|
||||
CONFIG_TRACE_MMIO_ACCESS=y
|
||||
CONFIG_XZ_DEC=y
|
||||
CONFIG_DMA_RESTRICTED_POOL=y
|
||||
CONFIG_DMA_CMA=y
|
||||
@@ -678,6 +685,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
|
||||
@@ -693,7 +701,6 @@ CONFIG_WQ_WATCHDOG=y
|
||||
CONFIG_SCHEDSTATS=y
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
CONFIG_BUG_ON_DATA_CORRUPTION=y
|
||||
CONFIG_TRACE_MMIO_ACCESS=y
|
||||
CONFIG_HIST_TRIGGERS=y
|
||||
CONFIG_PID_IN_CONTEXTIDR=y
|
||||
# CONFIG_RUNTIME_TESTING_MENU is not set
|
||||
|
||||
@@ -61,6 +61,11 @@ config CRYPTO_GHASH_ARM64_CE
|
||||
select CRYPTO_LIB_AES
|
||||
select CRYPTO_AEAD
|
||||
|
||||
config CRYPTO_POLYVAL_ARM64_CE
|
||||
tristate "POLYVAL using ARMv8 Crypto Extensions (for HCTR2)"
|
||||
depends on KERNEL_MODE_NEON
|
||||
select CRYPTO_POLYVAL
|
||||
|
||||
config CRYPTO_CRCT10DIF_ARM64_CE
|
||||
tristate "CRCT10DIF digest algorithm using PMULL instructions"
|
||||
depends on KERNEL_MODE_NEON && CRC_T10DIF
|
||||
@@ -85,13 +90,13 @@ config CRYPTO_AES_ARM64_CE_CCM
|
||||
select CRYPTO_LIB_AES
|
||||
|
||||
config CRYPTO_AES_ARM64_CE_BLK
|
||||
tristate "AES in ECB/CBC/CTR/XTS modes using ARMv8 Crypto Extensions"
|
||||
tristate "AES in ECB/CBC/CTR/XTS/XCTR modes using ARMv8 Crypto Extensions"
|
||||
depends on KERNEL_MODE_NEON
|
||||
select CRYPTO_SKCIPHER
|
||||
select CRYPTO_AES_ARM64_CE
|
||||
|
||||
config CRYPTO_AES_ARM64_NEON_BLK
|
||||
tristate "AES in ECB/CBC/CTR/XTS modes using NEON instructions"
|
||||
tristate "AES in ECB/CBC/CTR/XTS/XCTR modes using NEON instructions"
|
||||
depends on KERNEL_MODE_NEON
|
||||
select CRYPTO_SKCIPHER
|
||||
select CRYPTO_LIB_AES
|
||||
|
||||
@@ -26,6 +26,9 @@ sm4-ce-y := sm4-ce-glue.o sm4-ce-core.o
|
||||
obj-$(CONFIG_CRYPTO_GHASH_ARM64_CE) += ghash-ce.o
|
||||
ghash-ce-y := ghash-ce-glue.o ghash-ce-core.o
|
||||
|
||||
obj-$(CONFIG_CRYPTO_POLYVAL_ARM64_CE) += polyval-ce.o
|
||||
polyval-ce-y := polyval-ce-glue.o polyval-ce-core.o
|
||||
|
||||
obj-$(CONFIG_CRYPTO_CRCT10DIF_ARM64_CE) += crct10dif-ce.o
|
||||
crct10dif-ce-y := crct10dif-ce-core.o crct10dif-ce-glue.o
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
#ifdef USE_V8_CRYPTO_EXTENSIONS
|
||||
#define MODE "ce"
|
||||
#define PRIO 300
|
||||
#define STRIDE 5
|
||||
#define aes_expandkey ce_aes_expandkey
|
||||
#define aes_ecb_encrypt ce_aes_ecb_encrypt
|
||||
#define aes_ecb_decrypt ce_aes_ecb_decrypt
|
||||
@@ -35,14 +34,14 @@
|
||||
#define aes_essiv_cbc_encrypt ce_aes_essiv_cbc_encrypt
|
||||
#define aes_essiv_cbc_decrypt ce_aes_essiv_cbc_decrypt
|
||||
#define aes_ctr_encrypt ce_aes_ctr_encrypt
|
||||
#define aes_xctr_encrypt ce_aes_xctr_encrypt
|
||||
#define aes_xts_encrypt ce_aes_xts_encrypt
|
||||
#define aes_xts_decrypt ce_aes_xts_decrypt
|
||||
#define aes_mac_update ce_aes_mac_update
|
||||
MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 Crypto Extensions");
|
||||
MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS/XCTR using ARMv8 Crypto Extensions");
|
||||
#else
|
||||
#define MODE "neon"
|
||||
#define PRIO 200
|
||||
#define STRIDE 4
|
||||
#define aes_ecb_encrypt neon_aes_ecb_encrypt
|
||||
#define aes_ecb_decrypt neon_aes_ecb_decrypt
|
||||
#define aes_cbc_encrypt neon_aes_cbc_encrypt
|
||||
@@ -52,16 +51,18 @@ MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 Crypto Extensions");
|
||||
#define aes_essiv_cbc_encrypt neon_aes_essiv_cbc_encrypt
|
||||
#define aes_essiv_cbc_decrypt neon_aes_essiv_cbc_decrypt
|
||||
#define aes_ctr_encrypt neon_aes_ctr_encrypt
|
||||
#define aes_xctr_encrypt neon_aes_xctr_encrypt
|
||||
#define aes_xts_encrypt neon_aes_xts_encrypt
|
||||
#define aes_xts_decrypt neon_aes_xts_decrypt
|
||||
#define aes_mac_update neon_aes_mac_update
|
||||
MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 NEON");
|
||||
MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS/XCTR using ARMv8 NEON");
|
||||
#endif
|
||||
#if defined(USE_V8_CRYPTO_EXTENSIONS) || !IS_ENABLED(CONFIG_CRYPTO_AES_ARM64_BS)
|
||||
MODULE_ALIAS_CRYPTO("ecb(aes)");
|
||||
MODULE_ALIAS_CRYPTO("cbc(aes)");
|
||||
MODULE_ALIAS_CRYPTO("ctr(aes)");
|
||||
MODULE_ALIAS_CRYPTO("xts(aes)");
|
||||
MODULE_ALIAS_CRYPTO("xctr(aes)");
|
||||
#endif
|
||||
MODULE_ALIAS_CRYPTO("cts(cbc(aes))");
|
||||
MODULE_ALIAS_CRYPTO("essiv(cbc(aes),sha256)");
|
||||
@@ -89,7 +90,10 @@ asmlinkage void aes_cbc_cts_decrypt(u8 out[], u8 const in[], u32 const rk[],
|
||||
int rounds, int bytes, u8 const iv[]);
|
||||
|
||||
asmlinkage void aes_ctr_encrypt(u8 out[], u8 const in[], u32 const rk[],
|
||||
int rounds, int bytes, u8 ctr[], u8 finalbuf[]);
|
||||
int rounds, int bytes, u8 ctr[]);
|
||||
|
||||
asmlinkage void aes_xctr_encrypt(u8 out[], u8 const in[], u32 const rk[],
|
||||
int rounds, int bytes, u8 ctr[], int byte_ctr);
|
||||
|
||||
asmlinkage void aes_xts_encrypt(u8 out[], u8 const in[], u32 const rk1[],
|
||||
int rounds, int bytes, u32 const rk2[], u8 iv[],
|
||||
@@ -444,6 +448,52 @@ static int __maybe_unused essiv_cbc_decrypt(struct skcipher_request *req)
|
||||
return err ?: cbc_decrypt_walk(req, &walk);
|
||||
}
|
||||
|
||||
static int __maybe_unused xctr_encrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
|
||||
struct crypto_aes_ctx *ctx = crypto_skcipher_ctx(tfm);
|
||||
int err, rounds = 6 + ctx->key_length / 4;
|
||||
struct skcipher_walk walk;
|
||||
unsigned int byte_ctr = 0;
|
||||
|
||||
err = skcipher_walk_virt(&walk, req, false);
|
||||
|
||||
while (walk.nbytes > 0) {
|
||||
const u8 *src = walk.src.virt.addr;
|
||||
unsigned int nbytes = walk.nbytes;
|
||||
u8 *dst = walk.dst.virt.addr;
|
||||
u8 buf[AES_BLOCK_SIZE];
|
||||
|
||||
/*
|
||||
* If given less than 16 bytes, we must copy the partial block
|
||||
* into a temporary buffer of 16 bytes to avoid out of bounds
|
||||
* reads and writes. Furthermore, this code is somewhat unusual
|
||||
* in that it expects the end of the data to be at the end of
|
||||
* the temporary buffer, rather than the start of the data at
|
||||
* the start of the temporary buffer.
|
||||
*/
|
||||
if (unlikely(nbytes < AES_BLOCK_SIZE))
|
||||
src = dst = memcpy(buf + sizeof(buf) - nbytes,
|
||||
src, nbytes);
|
||||
else if (nbytes < walk.total)
|
||||
nbytes &= ~(AES_BLOCK_SIZE - 1);
|
||||
|
||||
kernel_neon_begin();
|
||||
aes_xctr_encrypt(dst, src, ctx->key_enc, rounds, nbytes,
|
||||
walk.iv, byte_ctr);
|
||||
kernel_neon_end();
|
||||
|
||||
if (unlikely(nbytes < AES_BLOCK_SIZE))
|
||||
memcpy(walk.dst.virt.addr,
|
||||
buf + sizeof(buf) - nbytes, nbytes);
|
||||
byte_ctr += nbytes;
|
||||
|
||||
err = skcipher_walk_done(&walk, walk.nbytes - nbytes);
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static int __maybe_unused ctr_encrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
|
||||
@@ -458,26 +508,29 @@ static int __maybe_unused ctr_encrypt(struct skcipher_request *req)
|
||||
unsigned int nbytes = walk.nbytes;
|
||||
u8 *dst = walk.dst.virt.addr;
|
||||
u8 buf[AES_BLOCK_SIZE];
|
||||
unsigned int tail;
|
||||
|
||||
/*
|
||||
* If given less than 16 bytes, we must copy the partial block
|
||||
* into a temporary buffer of 16 bytes to avoid out of bounds
|
||||
* reads and writes. Furthermore, this code is somewhat unusual
|
||||
* in that it expects the end of the data to be at the end of
|
||||
* the temporary buffer, rather than the start of the data at
|
||||
* the start of the temporary buffer.
|
||||
*/
|
||||
if (unlikely(nbytes < AES_BLOCK_SIZE))
|
||||
src = memcpy(buf, src, nbytes);
|
||||
src = dst = memcpy(buf + sizeof(buf) - nbytes,
|
||||
src, nbytes);
|
||||
else if (nbytes < walk.total)
|
||||
nbytes &= ~(AES_BLOCK_SIZE - 1);
|
||||
|
||||
kernel_neon_begin();
|
||||
aes_ctr_encrypt(dst, src, ctx->key_enc, rounds, nbytes,
|
||||
walk.iv, buf);
|
||||
walk.iv);
|
||||
kernel_neon_end();
|
||||
|
||||
tail = nbytes % (STRIDE * AES_BLOCK_SIZE);
|
||||
if (tail > 0 && tail < AES_BLOCK_SIZE)
|
||||
/*
|
||||
* The final partial block could not be returned using
|
||||
* an overlapping store, so it was passed via buf[]
|
||||
* instead.
|
||||
*/
|
||||
memcpy(dst + nbytes - tail, buf, tail);
|
||||
if (unlikely(nbytes < AES_BLOCK_SIZE))
|
||||
memcpy(walk.dst.virt.addr,
|
||||
buf + sizeof(buf) - nbytes, nbytes);
|
||||
|
||||
err = skcipher_walk_done(&walk, walk.nbytes - nbytes);
|
||||
}
|
||||
@@ -676,6 +729,22 @@ static struct skcipher_alg aes_algs[] = { {
|
||||
.setkey = skcipher_aes_setkey,
|
||||
.encrypt = ctr_encrypt,
|
||||
.decrypt = ctr_encrypt,
|
||||
}, {
|
||||
.base = {
|
||||
.cra_name = "xctr(aes)",
|
||||
.cra_driver_name = "xctr-aes-" MODE,
|
||||
.cra_priority = PRIO,
|
||||
.cra_blocksize = 1,
|
||||
.cra_ctxsize = sizeof(struct crypto_aes_ctx),
|
||||
.cra_module = THIS_MODULE,
|
||||
},
|
||||
.min_keysize = AES_MIN_KEY_SIZE,
|
||||
.max_keysize = AES_MAX_KEY_SIZE,
|
||||
.ivsize = AES_BLOCK_SIZE,
|
||||
.chunksize = AES_BLOCK_SIZE,
|
||||
.setkey = skcipher_aes_setkey,
|
||||
.encrypt = xctr_encrypt,
|
||||
.decrypt = xctr_encrypt,
|
||||
}, {
|
||||
.base = {
|
||||
.cra_name = "xts(aes)",
|
||||
|
||||
@@ -318,127 +318,211 @@ AES_FUNC_END(aes_cbc_cts_decrypt)
|
||||
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
.previous
|
||||
|
||||
|
||||
/*
|
||||
* aes_ctr_encrypt(u8 out[], u8 const in[], u8 const rk[], int rounds,
|
||||
* int bytes, u8 ctr[], u8 finalbuf[])
|
||||
* This macro generates the code for CTR and XCTR mode.
|
||||
*/
|
||||
.macro ctr_encrypt xctr
|
||||
// Arguments
|
||||
OUT .req x0
|
||||
IN .req x1
|
||||
KEY .req x2
|
||||
ROUNDS_W .req w3
|
||||
BYTES_W .req w4
|
||||
IV .req x5
|
||||
BYTE_CTR_W .req w6 // XCTR only
|
||||
// Intermediate values
|
||||
CTR_W .req w11 // XCTR only
|
||||
CTR .req x11 // XCTR only
|
||||
IV_PART .req x12
|
||||
BLOCKS .req x13
|
||||
BLOCKS_W .req w13
|
||||
|
||||
AES_FUNC_START(aes_ctr_encrypt)
|
||||
stp x29, x30, [sp, #-16]!
|
||||
mov x29, sp
|
||||
|
||||
enc_prepare w3, x2, x12
|
||||
ld1 {vctr.16b}, [x5]
|
||||
enc_prepare ROUNDS_W, KEY, IV_PART
|
||||
ld1 {vctr.16b}, [IV]
|
||||
|
||||
umov x12, vctr.d[1] /* keep swabbed ctr in reg */
|
||||
rev x12, x12
|
||||
/*
|
||||
* Keep 64 bits of the IV in a register. For CTR mode this lets us
|
||||
* easily increment the IV. For XCTR mode this lets us efficiently XOR
|
||||
* the 64-bit counter with the IV.
|
||||
*/
|
||||
.if \xctr
|
||||
umov IV_PART, vctr.d[0]
|
||||
lsr CTR_W, BYTE_CTR_W, #4
|
||||
.else
|
||||
umov IV_PART, vctr.d[1]
|
||||
rev IV_PART, IV_PART
|
||||
.endif
|
||||
|
||||
.LctrloopNx:
|
||||
add w7, w4, #15
|
||||
sub w4, w4, #MAX_STRIDE << 4
|
||||
lsr w7, w7, #4
|
||||
.LctrloopNx\xctr:
|
||||
add BLOCKS_W, BYTES_W, #15
|
||||
sub BYTES_W, BYTES_W, #MAX_STRIDE << 4
|
||||
lsr BLOCKS_W, BLOCKS_W, #4
|
||||
mov w8, #MAX_STRIDE
|
||||
cmp w7, w8
|
||||
csel w7, w7, w8, lt
|
||||
adds x12, x12, x7
|
||||
cmp BLOCKS_W, w8
|
||||
csel BLOCKS_W, BLOCKS_W, w8, lt
|
||||
|
||||
/*
|
||||
* Set up the counter values in v0-v{MAX_STRIDE-1}.
|
||||
*
|
||||
* If we are encrypting less than MAX_STRIDE blocks, the tail block
|
||||
* handling code expects the last keystream block to be in
|
||||
* v{MAX_STRIDE-1}. For example: if encrypting two blocks with
|
||||
* MAX_STRIDE=5, then v3 and v4 should have the next two counter blocks.
|
||||
*/
|
||||
.if \xctr
|
||||
add CTR, CTR, BLOCKS
|
||||
.else
|
||||
adds IV_PART, IV_PART, BLOCKS
|
||||
.endif
|
||||
mov v0.16b, vctr.16b
|
||||
mov v1.16b, vctr.16b
|
||||
mov v2.16b, vctr.16b
|
||||
mov v3.16b, vctr.16b
|
||||
ST5( mov v4.16b, vctr.16b )
|
||||
bcs 0f
|
||||
.if \xctr
|
||||
sub x6, CTR, #MAX_STRIDE - 1
|
||||
sub x7, CTR, #MAX_STRIDE - 2
|
||||
sub x8, CTR, #MAX_STRIDE - 3
|
||||
sub x9, CTR, #MAX_STRIDE - 4
|
||||
ST5( sub x10, CTR, #MAX_STRIDE - 5 )
|
||||
eor x6, x6, IV_PART
|
||||
eor x7, x7, IV_PART
|
||||
eor x8, x8, IV_PART
|
||||
eor x9, x9, IV_PART
|
||||
ST5( eor x10, x10, IV_PART )
|
||||
mov v0.d[0], x6
|
||||
mov v1.d[0], x7
|
||||
mov v2.d[0], x8
|
||||
mov v3.d[0], x9
|
||||
ST5( mov v4.d[0], x10 )
|
||||
.else
|
||||
bcs 0f
|
||||
.subsection 1
|
||||
/*
|
||||
* This subsection handles carries.
|
||||
*
|
||||
* Conditional branching here is allowed with respect to time
|
||||
* invariance since the branches are dependent on the IV instead
|
||||
* of the plaintext or key. This code is rarely executed in
|
||||
* practice anyway.
|
||||
*/
|
||||
|
||||
.subsection 1
|
||||
/* apply carry to outgoing counter */
|
||||
0: umov x8, vctr.d[0]
|
||||
rev x8, x8
|
||||
add x8, x8, #1
|
||||
rev x8, x8
|
||||
ins vctr.d[0], x8
|
||||
/* Apply carry to outgoing counter. */
|
||||
0: umov x8, vctr.d[0]
|
||||
rev x8, x8
|
||||
add x8, x8, #1
|
||||
rev x8, x8
|
||||
ins vctr.d[0], x8
|
||||
|
||||
/* apply carry to N counter blocks for N := x12 */
|
||||
cbz x12, 2f
|
||||
adr x16, 1f
|
||||
sub x16, x16, x12, lsl #3
|
||||
br x16
|
||||
hint 34 // bti c
|
||||
mov v0.d[0], vctr.d[0]
|
||||
hint 34 // bti c
|
||||
mov v1.d[0], vctr.d[0]
|
||||
hint 34 // bti c
|
||||
mov v2.d[0], vctr.d[0]
|
||||
hint 34 // bti c
|
||||
mov v3.d[0], vctr.d[0]
|
||||
ST5( hint 34 )
|
||||
ST5( mov v4.d[0], vctr.d[0] )
|
||||
1: b 2f
|
||||
.previous
|
||||
/*
|
||||
* Apply carry to counter blocks if needed.
|
||||
*
|
||||
* Since the carry flag was set, we know 0 <= IV_PART <
|
||||
* MAX_STRIDE. Using the value of IV_PART we can determine how
|
||||
* many counter blocks need to be updated.
|
||||
*/
|
||||
cbz IV_PART, 2f
|
||||
adr x16, 1f
|
||||
sub x16, x16, IV_PART, lsl #3
|
||||
br x16
|
||||
bti c
|
||||
mov v0.d[0], vctr.d[0]
|
||||
bti c
|
||||
mov v1.d[0], vctr.d[0]
|
||||
bti c
|
||||
mov v2.d[0], vctr.d[0]
|
||||
bti c
|
||||
mov v3.d[0], vctr.d[0]
|
||||
ST5( bti c )
|
||||
ST5( mov v4.d[0], vctr.d[0] )
|
||||
1: b 2f
|
||||
.previous
|
||||
|
||||
2: rev x7, x12
|
||||
ins vctr.d[1], x7
|
||||
sub x7, x12, #MAX_STRIDE - 1
|
||||
sub x8, x12, #MAX_STRIDE - 2
|
||||
sub x9, x12, #MAX_STRIDE - 3
|
||||
rev x7, x7
|
||||
rev x8, x8
|
||||
mov v1.d[1], x7
|
||||
rev x9, x9
|
||||
ST5( sub x10, x12, #MAX_STRIDE - 4 )
|
||||
mov v2.d[1], x8
|
||||
ST5( rev x10, x10 )
|
||||
mov v3.d[1], x9
|
||||
ST5( mov v4.d[1], x10 )
|
||||
tbnz w4, #31, .Lctrtail
|
||||
ld1 {v5.16b-v7.16b}, [x1], #48
|
||||
2: rev x7, IV_PART
|
||||
ins vctr.d[1], x7
|
||||
sub x7, IV_PART, #MAX_STRIDE - 1
|
||||
sub x8, IV_PART, #MAX_STRIDE - 2
|
||||
sub x9, IV_PART, #MAX_STRIDE - 3
|
||||
rev x7, x7
|
||||
rev x8, x8
|
||||
mov v1.d[1], x7
|
||||
rev x9, x9
|
||||
ST5( sub x10, IV_PART, #MAX_STRIDE - 4 )
|
||||
mov v2.d[1], x8
|
||||
ST5( rev x10, x10 )
|
||||
mov v3.d[1], x9
|
||||
ST5( mov v4.d[1], x10 )
|
||||
.endif
|
||||
|
||||
/*
|
||||
* If there are at least MAX_STRIDE blocks left, XOR the data with
|
||||
* keystream and store. Otherwise jump to tail handling.
|
||||
*/
|
||||
tbnz BYTES_W, #31, .Lctrtail\xctr
|
||||
ld1 {v5.16b-v7.16b}, [IN], #48
|
||||
ST4( bl aes_encrypt_block4x )
|
||||
ST5( bl aes_encrypt_block5x )
|
||||
eor v0.16b, v5.16b, v0.16b
|
||||
ST4( ld1 {v5.16b}, [x1], #16 )
|
||||
ST4( ld1 {v5.16b}, [IN], #16 )
|
||||
eor v1.16b, v6.16b, v1.16b
|
||||
ST5( ld1 {v5.16b-v6.16b}, [x1], #32 )
|
||||
ST5( ld1 {v5.16b-v6.16b}, [IN], #32 )
|
||||
eor v2.16b, v7.16b, v2.16b
|
||||
eor v3.16b, v5.16b, v3.16b
|
||||
ST5( eor v4.16b, v6.16b, v4.16b )
|
||||
st1 {v0.16b-v3.16b}, [x0], #64
|
||||
ST5( st1 {v4.16b}, [x0], #16 )
|
||||
cbz w4, .Lctrout
|
||||
b .LctrloopNx
|
||||
st1 {v0.16b-v3.16b}, [OUT], #64
|
||||
ST5( st1 {v4.16b}, [OUT], #16 )
|
||||
cbz BYTES_W, .Lctrout\xctr
|
||||
b .LctrloopNx\xctr
|
||||
|
||||
.Lctrout:
|
||||
st1 {vctr.16b}, [x5] /* return next CTR value */
|
||||
.Lctrout\xctr:
|
||||
.if !\xctr
|
||||
st1 {vctr.16b}, [IV] /* return next CTR value */
|
||||
.endif
|
||||
ldp x29, x30, [sp], #16
|
||||
ret
|
||||
|
||||
.Lctrtail:
|
||||
/* XOR up to MAX_STRIDE * 16 - 1 bytes of in/output with v0 ... v3/v4 */
|
||||
.Lctrtail\xctr:
|
||||
/*
|
||||
* Handle up to MAX_STRIDE * 16 - 1 bytes of plaintext
|
||||
*
|
||||
* This code expects the last keystream block to be in v{MAX_STRIDE-1}.
|
||||
* For example: if encrypting two blocks with MAX_STRIDE=5, then v3 and
|
||||
* v4 should have the next two counter blocks.
|
||||
*
|
||||
* This allows us to store the ciphertext by writing to overlapping
|
||||
* regions of memory. Any invalid ciphertext blocks get overwritten by
|
||||
* correctly computed blocks. This approach greatly simplifies the
|
||||
* logic for storing the ciphertext.
|
||||
*/
|
||||
mov x16, #16
|
||||
ands x13, x4, #0xf
|
||||
csel x13, x13, x16, ne
|
||||
ands w7, BYTES_W, #0xf
|
||||
csel x13, x7, x16, ne
|
||||
|
||||
ST5( cmp w4, #64 - (MAX_STRIDE << 4) )
|
||||
ST5( cmp BYTES_W, #64 - (MAX_STRIDE << 4))
|
||||
ST5( csel x14, x16, xzr, gt )
|
||||
cmp w4, #48 - (MAX_STRIDE << 4)
|
||||
cmp BYTES_W, #48 - (MAX_STRIDE << 4)
|
||||
csel x15, x16, xzr, gt
|
||||
cmp w4, #32 - (MAX_STRIDE << 4)
|
||||
cmp BYTES_W, #32 - (MAX_STRIDE << 4)
|
||||
csel x16, x16, xzr, gt
|
||||
cmp w4, #16 - (MAX_STRIDE << 4)
|
||||
ble .Lctrtail1x
|
||||
cmp BYTES_W, #16 - (MAX_STRIDE << 4)
|
||||
|
||||
adr_l x12, .Lcts_permute_table
|
||||
add x12, x12, x13
|
||||
adr_l x9, .Lcts_permute_table
|
||||
add x9, x9, x13
|
||||
ble .Lctrtail1x\xctr
|
||||
|
||||
ST5( ld1 {v5.16b}, [x1], x14 )
|
||||
ld1 {v6.16b}, [x1], x15
|
||||
ld1 {v7.16b}, [x1], x16
|
||||
ST5( ld1 {v5.16b}, [IN], x14 )
|
||||
ld1 {v6.16b}, [IN], x15
|
||||
ld1 {v7.16b}, [IN], x16
|
||||
|
||||
ST4( bl aes_encrypt_block4x )
|
||||
ST5( bl aes_encrypt_block5x )
|
||||
|
||||
ld1 {v8.16b}, [x1], x13
|
||||
ld1 {v9.16b}, [x1]
|
||||
ld1 {v10.16b}, [x12]
|
||||
ld1 {v8.16b}, [IN], x13
|
||||
ld1 {v9.16b}, [IN]
|
||||
ld1 {v10.16b}, [x9]
|
||||
|
||||
ST4( eor v6.16b, v6.16b, v0.16b )
|
||||
ST4( eor v7.16b, v7.16b, v1.16b )
|
||||
@@ -453,24 +537,91 @@ ST5( eor v7.16b, v7.16b, v2.16b )
|
||||
ST5( eor v8.16b, v8.16b, v3.16b )
|
||||
ST5( eor v9.16b, v9.16b, v4.16b )
|
||||
|
||||
ST5( st1 {v5.16b}, [x0], x14 )
|
||||
st1 {v6.16b}, [x0], x15
|
||||
st1 {v7.16b}, [x0], x16
|
||||
add x13, x13, x0
|
||||
ST5( st1 {v5.16b}, [OUT], x14 )
|
||||
st1 {v6.16b}, [OUT], x15
|
||||
st1 {v7.16b}, [OUT], x16
|
||||
add x13, x13, OUT
|
||||
st1 {v9.16b}, [x13] // overlapping stores
|
||||
st1 {v8.16b}, [x0]
|
||||
b .Lctrout
|
||||
st1 {v8.16b}, [OUT]
|
||||
b .Lctrout\xctr
|
||||
|
||||
.Lctrtail1x:
|
||||
csel x0, x0, x6, eq // use finalbuf if less than a full block
|
||||
ld1 {v5.16b}, [x1]
|
||||
.Lctrtail1x\xctr:
|
||||
/*
|
||||
* Handle <= 16 bytes of plaintext
|
||||
*
|
||||
* This code always reads and writes 16 bytes. To avoid out of bounds
|
||||
* accesses, XCTR and CTR modes must use a temporary buffer when
|
||||
* encrypting/decrypting less than 16 bytes.
|
||||
*
|
||||
* This code is unusual in that it loads the input and stores the output
|
||||
* relative to the end of the buffers rather than relative to the start.
|
||||
* This causes unusual behaviour when encrypting/decrypting less than 16
|
||||
* bytes; the end of the data is expected to be at the end of the
|
||||
* temporary buffer rather than the start of the data being at the start
|
||||
* of the temporary buffer.
|
||||
*/
|
||||
sub x8, x7, #16
|
||||
csel x7, x7, x8, eq
|
||||
add IN, IN, x7
|
||||
add OUT, OUT, x7
|
||||
ld1 {v5.16b}, [IN]
|
||||
ld1 {v6.16b}, [OUT]
|
||||
ST5( mov v3.16b, v4.16b )
|
||||
encrypt_block v3, w3, x2, x8, w7
|
||||
encrypt_block v3, ROUNDS_W, KEY, x8, w7
|
||||
ld1 {v10.16b-v11.16b}, [x9]
|
||||
tbl v3.16b, {v3.16b}, v10.16b
|
||||
sshr v11.16b, v11.16b, #7
|
||||
eor v5.16b, v5.16b, v3.16b
|
||||
st1 {v5.16b}, [x0]
|
||||
b .Lctrout
|
||||
bif v5.16b, v6.16b, v11.16b
|
||||
st1 {v5.16b}, [OUT]
|
||||
b .Lctrout\xctr
|
||||
|
||||
// Arguments
|
||||
.unreq OUT
|
||||
.unreq IN
|
||||
.unreq KEY
|
||||
.unreq ROUNDS_W
|
||||
.unreq BYTES_W
|
||||
.unreq IV
|
||||
.unreq BYTE_CTR_W // XCTR only
|
||||
// Intermediate values
|
||||
.unreq CTR_W // XCTR only
|
||||
.unreq CTR // XCTR only
|
||||
.unreq IV_PART
|
||||
.unreq BLOCKS
|
||||
.unreq BLOCKS_W
|
||||
.endm
|
||||
|
||||
/*
|
||||
* aes_ctr_encrypt(u8 out[], u8 const in[], u8 const rk[], int rounds,
|
||||
* int bytes, u8 ctr[])
|
||||
*
|
||||
* The input and output buffers must always be at least 16 bytes even if
|
||||
* encrypting/decrypting less than 16 bytes. Otherwise out of bounds
|
||||
* accesses will occur. The data to be encrypted/decrypted is expected
|
||||
* to be at the end of this 16-byte temporary buffer rather than the
|
||||
* start.
|
||||
*/
|
||||
|
||||
AES_FUNC_START(aes_ctr_encrypt)
|
||||
ctr_encrypt 0
|
||||
AES_FUNC_END(aes_ctr_encrypt)
|
||||
|
||||
/*
|
||||
* aes_xctr_encrypt(u8 out[], u8 const in[], u8 const rk[], int rounds,
|
||||
* int bytes, u8 const iv[], int byte_ctr)
|
||||
*
|
||||
* The input and output buffers must always be at least 16 bytes even if
|
||||
* encrypting/decrypting less than 16 bytes. Otherwise out of bounds
|
||||
* accesses will occur. The data to be encrypted/decrypted is expected
|
||||
* to be at the end of this 16-byte temporary buffer rather than the
|
||||
* start.
|
||||
*/
|
||||
|
||||
AES_FUNC_START(aes_xctr_encrypt)
|
||||
ctr_encrypt 1
|
||||
AES_FUNC_END(aes_xctr_encrypt)
|
||||
|
||||
|
||||
/*
|
||||
* aes_xts_encrypt(u8 out[], u8 const in[], u8 const rk1[], int rounds,
|
||||
|
||||
361
arch/arm64/crypto/polyval-ce-core.S
Normal file
361
arch/arm64/crypto/polyval-ce-core.S
Normal file
@@ -0,0 +1,361 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Implementation of POLYVAL using ARMv8 Crypto Extensions.
|
||||
*
|
||||
* Copyright 2021 Google LLC
|
||||
*/
|
||||
/*
|
||||
* This is an efficient implementation of POLYVAL using ARMv8 Crypto Extensions
|
||||
* It works on 8 blocks at a time, by precomputing the first 8 keys powers h^8,
|
||||
* ..., h^1 in the POLYVAL finite field. This precomputation allows us to split
|
||||
* finite field multiplication into two steps.
|
||||
*
|
||||
* In the first step, we consider h^i, m_i as normal polynomials of degree less
|
||||
* than 128. We then compute p(x) = h^8m_0 + ... + h^1m_7 where multiplication
|
||||
* is simply polynomial multiplication.
|
||||
*
|
||||
* In the second step, we compute the reduction of p(x) modulo the finite field
|
||||
* modulus g(x) = x^128 + x^127 + x^126 + x^121 + 1.
|
||||
*
|
||||
* This two step process is equivalent to computing h^8m_0 + ... + h^1m_7 where
|
||||
* multiplication is finite field multiplication. The advantage is that the
|
||||
* two-step process only requires 1 finite field reduction for every 8
|
||||
* polynomial multiplications. Further parallelism is gained by interleaving the
|
||||
* multiplications and polynomial reductions.
|
||||
*/
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#define STRIDE_BLOCKS 8
|
||||
|
||||
KEY_POWERS .req x0
|
||||
MSG .req x1
|
||||
BLOCKS_LEFT .req x2
|
||||
ACCUMULATOR .req x3
|
||||
KEY_START .req x10
|
||||
EXTRA_BYTES .req x11
|
||||
TMP .req x13
|
||||
|
||||
M0 .req v0
|
||||
M1 .req v1
|
||||
M2 .req v2
|
||||
M3 .req v3
|
||||
M4 .req v4
|
||||
M5 .req v5
|
||||
M6 .req v6
|
||||
M7 .req v7
|
||||
KEY8 .req v8
|
||||
KEY7 .req v9
|
||||
KEY6 .req v10
|
||||
KEY5 .req v11
|
||||
KEY4 .req v12
|
||||
KEY3 .req v13
|
||||
KEY2 .req v14
|
||||
KEY1 .req v15
|
||||
PL .req v16
|
||||
PH .req v17
|
||||
TMP_V .req v18
|
||||
LO .req v20
|
||||
MI .req v21
|
||||
HI .req v22
|
||||
SUM .req v23
|
||||
GSTAR .req v24
|
||||
|
||||
.text
|
||||
|
||||
.arch armv8-a+crypto
|
||||
.align 4
|
||||
|
||||
.Lgstar:
|
||||
.quad 0xc200000000000000, 0xc200000000000000
|
||||
|
||||
/*
|
||||
* Computes the product of two 128-bit polynomials in X and Y and XORs the
|
||||
* components of the 256-bit product into LO, MI, HI.
|
||||
*
|
||||
* Given:
|
||||
* X = [X_1 : X_0]
|
||||
* Y = [Y_1 : Y_0]
|
||||
*
|
||||
* We compute:
|
||||
* LO += X_0 * Y_0
|
||||
* MI += (X_0 + X_1) * (Y_0 + Y_1)
|
||||
* HI += X_1 * Y_1
|
||||
*
|
||||
* Later, the 256-bit result can be extracted as:
|
||||
* [HI_1 : HI_0 + HI_1 + MI_1 + LO_1 : LO_1 + HI_0 + MI_0 + LO_0 : LO_0]
|
||||
* This step is done when computing the polynomial reduction for efficiency
|
||||
* reasons.
|
||||
*
|
||||
* Karatsuba multiplication is used instead of Schoolbook multiplication because
|
||||
* it was found to be slightly faster on ARM64 CPUs.
|
||||
*
|
||||
*/
|
||||
.macro karatsuba1 X Y
|
||||
X .req \X
|
||||
Y .req \Y
|
||||
ext v25.16b, X.16b, X.16b, #8
|
||||
ext v26.16b, Y.16b, Y.16b, #8
|
||||
eor v25.16b, v25.16b, X.16b
|
||||
eor v26.16b, v26.16b, Y.16b
|
||||
pmull2 v28.1q, X.2d, Y.2d
|
||||
pmull v29.1q, X.1d, Y.1d
|
||||
pmull v27.1q, v25.1d, v26.1d
|
||||
eor HI.16b, HI.16b, v28.16b
|
||||
eor LO.16b, LO.16b, v29.16b
|
||||
eor MI.16b, MI.16b, v27.16b
|
||||
.unreq X
|
||||
.unreq Y
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Same as karatsuba1, except overwrites HI, LO, MI rather than XORing into
|
||||
* them.
|
||||
*/
|
||||
.macro karatsuba1_store X Y
|
||||
X .req \X
|
||||
Y .req \Y
|
||||
ext v25.16b, X.16b, X.16b, #8
|
||||
ext v26.16b, Y.16b, Y.16b, #8
|
||||
eor v25.16b, v25.16b, X.16b
|
||||
eor v26.16b, v26.16b, Y.16b
|
||||
pmull2 HI.1q, X.2d, Y.2d
|
||||
pmull LO.1q, X.1d, Y.1d
|
||||
pmull MI.1q, v25.1d, v26.1d
|
||||
.unreq X
|
||||
.unreq Y
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Computes the 256-bit polynomial represented by LO, HI, MI. Stores
|
||||
* the result in PL, PH.
|
||||
* [PH : PL] =
|
||||
* [HI_1 : HI_1 + HI_0 + MI_1 + LO_1 : HI_0 + MI_0 + LO_1 + LO_0 : LO_0]
|
||||
*/
|
||||
.macro karatsuba2
|
||||
// v4 = [HI_1 + MI_1 : HI_0 + MI_0]
|
||||
eor v4.16b, HI.16b, MI.16b
|
||||
// v4 = [HI_1 + MI_1 + LO_1 : HI_0 + MI_0 + LO_0]
|
||||
eor v4.16b, v4.16b, LO.16b
|
||||
// v5 = [HI_0 : LO_1]
|
||||
ext v5.16b, LO.16b, HI.16b, #8
|
||||
// v4 = [HI_1 + HI_0 + MI_1 + LO_1 : HI_0 + MI_0 + LO_1 + LO_0]
|
||||
eor v4.16b, v4.16b, v5.16b
|
||||
// HI = [HI_0 : HI_1]
|
||||
ext HI.16b, HI.16b, HI.16b, #8
|
||||
// LO = [LO_0 : LO_1]
|
||||
ext LO.16b, LO.16b, LO.16b, #8
|
||||
// PH = [HI_1 : HI_1 + HI_0 + MI_1 + LO_1]
|
||||
ext PH.16b, v4.16b, HI.16b, #8
|
||||
// PL = [HI_0 + MI_0 + LO_1 + LO_0 : LO_0]
|
||||
ext PL.16b, LO.16b, v4.16b, #8
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Computes the 128-bit reduction of PH : PL. Stores the result in dest.
|
||||
*
|
||||
* This macro computes p(x) mod g(x) where p(x) is in montgomery form and g(x) =
|
||||
* x^128 + x^127 + x^126 + x^121 + 1.
|
||||
*
|
||||
* We have a 256-bit polynomial PH : PL = P_3 : P_2 : P_1 : P_0 that is the
|
||||
* product of two 128-bit polynomials in Montgomery form. We need to reduce it
|
||||
* mod g(x). Also, since polynomials in Montgomery form have an "extra" factor
|
||||
* of x^128, this product has two extra factors of x^128. To get it back into
|
||||
* Montgomery form, we need to remove one of these factors by dividing by x^128.
|
||||
*
|
||||
* To accomplish both of these goals, we add multiples of g(x) that cancel out
|
||||
* the low 128 bits P_1 : P_0, leaving just the high 128 bits. Since the low
|
||||
* bits are zero, the polynomial division by x^128 can be done by right
|
||||
* shifting.
|
||||
*
|
||||
* Since the only nonzero term in the low 64 bits of g(x) is the constant term,
|
||||
* the multiple of g(x) needed to cancel out P_0 is P_0 * g(x). The CPU can
|
||||
* only do 64x64 bit multiplications, so split P_0 * g(x) into x^128 * P_0 +
|
||||
* x^64 * g*(x) * P_0 + P_0, where g*(x) is bits 64-127 of g(x). Adding this to
|
||||
* the original polynomial gives P_3 : P_2 + P_0 + T_1 : P_1 + T_0 : 0, where T
|
||||
* = T_1 : T_0 = g*(x) * P_0. Thus, bits 0-63 got "folded" into bits 64-191.
|
||||
*
|
||||
* Repeating this same process on the next 64 bits "folds" bits 64-127 into bits
|
||||
* 128-255, giving the answer in bits 128-255. This time, we need to cancel P_1
|
||||
* + T_0 in bits 64-127. The multiple of g(x) required is (P_1 + T_0) * g(x) *
|
||||
* x^64. Adding this to our previous computation gives P_3 + P_1 + T_0 + V_1 :
|
||||
* P_2 + P_0 + T_1 + V_0 : 0 : 0, where V = V_1 : V_0 = g*(x) * (P_1 + T_0).
|
||||
*
|
||||
* So our final computation is:
|
||||
* T = T_1 : T_0 = g*(x) * P_0
|
||||
* V = V_1 : V_0 = g*(x) * (P_1 + T_0)
|
||||
* p(x) / x^{128} mod g(x) = P_3 + P_1 + T_0 + V_1 : P_2 + P_0 + T_1 + V_0
|
||||
*
|
||||
* The implementation below saves a XOR instruction by computing P_1 + T_0 : P_0
|
||||
* + T_1 and XORing into dest, rather than separately XORing P_1 : P_0 and T_0 :
|
||||
* T_1 into dest. This allows us to reuse P_1 + T_0 when computing V.
|
||||
*/
|
||||
.macro montgomery_reduction dest
|
||||
DEST .req \dest
|
||||
// TMP_V = T_1 : T_0 = P_0 * g*(x)
|
||||
pmull TMP_V.1q, PL.1d, GSTAR.1d
|
||||
// TMP_V = T_0 : T_1
|
||||
ext TMP_V.16b, TMP_V.16b, TMP_V.16b, #8
|
||||
// TMP_V = P_1 + T_0 : P_0 + T_1
|
||||
eor TMP_V.16b, PL.16b, TMP_V.16b
|
||||
// PH = P_3 + P_1 + T_0 : P_2 + P_0 + T_1
|
||||
eor PH.16b, PH.16b, TMP_V.16b
|
||||
// TMP_V = V_1 : V_0 = (P_1 + T_0) * g*(x)
|
||||
pmull2 TMP_V.1q, TMP_V.2d, GSTAR.2d
|
||||
eor DEST.16b, PH.16b, TMP_V.16b
|
||||
.unreq DEST
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Compute Polyval on 8 blocks.
|
||||
*
|
||||
* If reduce is set, also computes the montgomery reduction of the
|
||||
* previous full_stride call and XORs with the first message block.
|
||||
* (m_0 + REDUCE(PL, PH))h^8 + ... + m_7h^1.
|
||||
* I.e., the first multiplication uses m_0 + REDUCE(PL, PH) instead of m_0.
|
||||
*
|
||||
* Sets PL, PH.
|
||||
*/
|
||||
.macro full_stride reduce
|
||||
eor LO.16b, LO.16b, LO.16b
|
||||
eor MI.16b, MI.16b, MI.16b
|
||||
eor HI.16b, HI.16b, HI.16b
|
||||
|
||||
ld1 {M0.16b, M1.16b, M2.16b, M3.16b}, [MSG], #64
|
||||
ld1 {M4.16b, M5.16b, M6.16b, M7.16b}, [MSG], #64
|
||||
|
||||
karatsuba1 M7 KEY1
|
||||
.if \reduce
|
||||
pmull TMP_V.1q, PL.1d, GSTAR.1d
|
||||
.endif
|
||||
|
||||
karatsuba1 M6 KEY2
|
||||
.if \reduce
|
||||
ext TMP_V.16b, TMP_V.16b, TMP_V.16b, #8
|
||||
.endif
|
||||
|
||||
karatsuba1 M5 KEY3
|
||||
.if \reduce
|
||||
eor TMP_V.16b, PL.16b, TMP_V.16b
|
||||
.endif
|
||||
|
||||
karatsuba1 M4 KEY4
|
||||
.if \reduce
|
||||
eor PH.16b, PH.16b, TMP_V.16b
|
||||
.endif
|
||||
|
||||
karatsuba1 M3 KEY5
|
||||
.if \reduce
|
||||
pmull2 TMP_V.1q, TMP_V.2d, GSTAR.2d
|
||||
.endif
|
||||
|
||||
karatsuba1 M2 KEY6
|
||||
.if \reduce
|
||||
eor SUM.16b, PH.16b, TMP_V.16b
|
||||
.endif
|
||||
|
||||
karatsuba1 M1 KEY7
|
||||
eor M0.16b, M0.16b, SUM.16b
|
||||
|
||||
karatsuba1 M0 KEY8
|
||||
karatsuba2
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Handle any extra blocks after full_stride loop.
|
||||
*/
|
||||
.macro partial_stride
|
||||
add KEY_POWERS, KEY_START, #(STRIDE_BLOCKS << 4)
|
||||
sub KEY_POWERS, KEY_POWERS, BLOCKS_LEFT, lsl #4
|
||||
ld1 {KEY1.16b}, [KEY_POWERS], #16
|
||||
|
||||
ld1 {TMP_V.16b}, [MSG], #16
|
||||
eor SUM.16b, SUM.16b, TMP_V.16b
|
||||
karatsuba1_store KEY1 SUM
|
||||
sub BLOCKS_LEFT, BLOCKS_LEFT, #1
|
||||
|
||||
tst BLOCKS_LEFT, #4
|
||||
beq .Lpartial4BlocksDone
|
||||
ld1 {M0.16b, M1.16b, M2.16b, M3.16b}, [MSG], #64
|
||||
ld1 {KEY8.16b, KEY7.16b, KEY6.16b, KEY5.16b}, [KEY_POWERS], #64
|
||||
karatsuba1 M0 KEY8
|
||||
karatsuba1 M1 KEY7
|
||||
karatsuba1 M2 KEY6
|
||||
karatsuba1 M3 KEY5
|
||||
.Lpartial4BlocksDone:
|
||||
tst BLOCKS_LEFT, #2
|
||||
beq .Lpartial2BlocksDone
|
||||
ld1 {M0.16b, M1.16b}, [MSG], #32
|
||||
ld1 {KEY8.16b, KEY7.16b}, [KEY_POWERS], #32
|
||||
karatsuba1 M0 KEY8
|
||||
karatsuba1 M1 KEY7
|
||||
.Lpartial2BlocksDone:
|
||||
tst BLOCKS_LEFT, #1
|
||||
beq .LpartialDone
|
||||
ld1 {M0.16b}, [MSG], #16
|
||||
ld1 {KEY8.16b}, [KEY_POWERS], #16
|
||||
karatsuba1 M0 KEY8
|
||||
.LpartialDone:
|
||||
karatsuba2
|
||||
montgomery_reduction SUM
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Perform montgomery multiplication in GF(2^128) and store result in op1.
|
||||
*
|
||||
* Computes op1*op2*x^{-128} mod x^128 + x^127 + x^126 + x^121 + 1
|
||||
* If op1, op2 are in montgomery form, this computes the montgomery
|
||||
* form of op1*op2.
|
||||
*
|
||||
* void pmull_polyval_mul(u8 *op1, const u8 *op2);
|
||||
*/
|
||||
SYM_FUNC_START(pmull_polyval_mul)
|
||||
adr TMP, .Lgstar
|
||||
ld1 {GSTAR.2d}, [TMP]
|
||||
ld1 {v0.16b}, [x0]
|
||||
ld1 {v1.16b}, [x1]
|
||||
karatsuba1_store v0 v1
|
||||
karatsuba2
|
||||
montgomery_reduction SUM
|
||||
st1 {SUM.16b}, [x0]
|
||||
ret
|
||||
SYM_FUNC_END(pmull_polyval_mul)
|
||||
|
||||
/*
|
||||
* Perform polynomial evaluation as specified by POLYVAL. This computes:
|
||||
* h^n * accumulator + h^n * m_0 + ... + h^1 * m_{n-1}
|
||||
* where n=nblocks, h is the hash key, and m_i are the message blocks.
|
||||
*
|
||||
* x0 - pointer to precomputed key powers h^8 ... h^1
|
||||
* x1 - pointer to message blocks
|
||||
* x2 - number of blocks to hash
|
||||
* x3 - pointer to accumulator
|
||||
*
|
||||
* void pmull_polyval_update(const struct polyval_ctx *ctx, const u8 *in,
|
||||
* size_t nblocks, u8 *accumulator);
|
||||
*/
|
||||
SYM_FUNC_START(pmull_polyval_update)
|
||||
adr TMP, .Lgstar
|
||||
mov KEY_START, KEY_POWERS
|
||||
ld1 {GSTAR.2d}, [TMP]
|
||||
ld1 {SUM.16b}, [ACCUMULATOR]
|
||||
subs BLOCKS_LEFT, BLOCKS_LEFT, #STRIDE_BLOCKS
|
||||
blt .LstrideLoopExit
|
||||
ld1 {KEY8.16b, KEY7.16b, KEY6.16b, KEY5.16b}, [KEY_POWERS], #64
|
||||
ld1 {KEY4.16b, KEY3.16b, KEY2.16b, KEY1.16b}, [KEY_POWERS], #64
|
||||
full_stride 0
|
||||
subs BLOCKS_LEFT, BLOCKS_LEFT, #STRIDE_BLOCKS
|
||||
blt .LstrideLoopExitReduce
|
||||
.LstrideLoop:
|
||||
full_stride 1
|
||||
subs BLOCKS_LEFT, BLOCKS_LEFT, #STRIDE_BLOCKS
|
||||
bge .LstrideLoop
|
||||
.LstrideLoopExitReduce:
|
||||
montgomery_reduction SUM
|
||||
.LstrideLoopExit:
|
||||
adds BLOCKS_LEFT, BLOCKS_LEFT, #STRIDE_BLOCKS
|
||||
beq .LskipPartial
|
||||
partial_stride
|
||||
.LskipPartial:
|
||||
st1 {SUM.16b}, [ACCUMULATOR]
|
||||
ret
|
||||
SYM_FUNC_END(pmull_polyval_update)
|
||||
191
arch/arm64/crypto/polyval-ce-glue.c
Normal file
191
arch/arm64/crypto/polyval-ce-glue.c
Normal file
@@ -0,0 +1,191 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Glue code for POLYVAL using ARMv8 Crypto Extensions
|
||||
*
|
||||
* Copyright (c) 2007 Nokia Siemens Networks - Mikko Herranen <mh1@iki.fi>
|
||||
* Copyright (c) 2009 Intel Corp.
|
||||
* Author: Huang Ying <ying.huang@intel.com>
|
||||
* Copyright 2021 Google LLC
|
||||
*/
|
||||
|
||||
/*
|
||||
* Glue code based on ghash-clmulni-intel_glue.c.
|
||||
*
|
||||
* This implementation of POLYVAL uses montgomery multiplication accelerated by
|
||||
* ARMv8 Crypto Extensions instructions to implement the finite field operations.
|
||||
*/
|
||||
|
||||
#include <crypto/algapi.h>
|
||||
#include <crypto/internal/hash.h>
|
||||
#include <crypto/internal/simd.h>
|
||||
#include <crypto/polyval.h>
|
||||
#include <linux/crypto.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/cpufeature.h>
|
||||
#include <asm/neon.h>
|
||||
#include <asm/simd.h>
|
||||
|
||||
#define NUM_KEY_POWERS 8
|
||||
|
||||
struct polyval_tfm_ctx {
|
||||
/*
|
||||
* These powers must be in the order h^8, ..., h^1.
|
||||
*/
|
||||
u8 key_powers[NUM_KEY_POWERS][POLYVAL_BLOCK_SIZE];
|
||||
};
|
||||
|
||||
struct polyval_desc_ctx {
|
||||
u8 buffer[POLYVAL_BLOCK_SIZE];
|
||||
u32 bytes;
|
||||
};
|
||||
|
||||
asmlinkage void pmull_polyval_update(const struct polyval_tfm_ctx *keys,
|
||||
const u8 *in, size_t nblocks, u8 *accumulator);
|
||||
asmlinkage void pmull_polyval_mul(u8 *op1, const u8 *op2);
|
||||
|
||||
static void internal_polyval_update(const struct polyval_tfm_ctx *keys,
|
||||
const u8 *in, size_t nblocks, u8 *accumulator)
|
||||
{
|
||||
if (likely(crypto_simd_usable())) {
|
||||
kernel_neon_begin();
|
||||
pmull_polyval_update(keys, in, nblocks, accumulator);
|
||||
kernel_neon_end();
|
||||
} else {
|
||||
polyval_update_non4k(keys->key_powers[NUM_KEY_POWERS-1], in,
|
||||
nblocks, accumulator);
|
||||
}
|
||||
}
|
||||
|
||||
static void internal_polyval_mul(u8 *op1, const u8 *op2)
|
||||
{
|
||||
if (likely(crypto_simd_usable())) {
|
||||
kernel_neon_begin();
|
||||
pmull_polyval_mul(op1, op2);
|
||||
kernel_neon_end();
|
||||
} else {
|
||||
polyval_mul_non4k(op1, op2);
|
||||
}
|
||||
}
|
||||
|
||||
static int polyval_arm64_setkey(struct crypto_shash *tfm,
|
||||
const u8 *key, unsigned int keylen)
|
||||
{
|
||||
struct polyval_tfm_ctx *tctx = crypto_shash_ctx(tfm);
|
||||
int i;
|
||||
|
||||
if (keylen != POLYVAL_BLOCK_SIZE)
|
||||
return -EINVAL;
|
||||
|
||||
memcpy(tctx->key_powers[NUM_KEY_POWERS-1], key, POLYVAL_BLOCK_SIZE);
|
||||
|
||||
for (i = NUM_KEY_POWERS-2; i >= 0; i--) {
|
||||
memcpy(tctx->key_powers[i], key, POLYVAL_BLOCK_SIZE);
|
||||
internal_polyval_mul(tctx->key_powers[i],
|
||||
tctx->key_powers[i+1]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int polyval_arm64_init(struct shash_desc *desc)
|
||||
{
|
||||
struct polyval_desc_ctx *dctx = shash_desc_ctx(desc);
|
||||
|
||||
memset(dctx, 0, sizeof(*dctx));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int polyval_arm64_update(struct shash_desc *desc,
|
||||
const u8 *src, unsigned int srclen)
|
||||
{
|
||||
struct polyval_desc_ctx *dctx = shash_desc_ctx(desc);
|
||||
const struct polyval_tfm_ctx *tctx = crypto_shash_ctx(desc->tfm);
|
||||
u8 *pos;
|
||||
unsigned int nblocks;
|
||||
unsigned int n;
|
||||
|
||||
if (dctx->bytes) {
|
||||
n = min(srclen, dctx->bytes);
|
||||
pos = dctx->buffer + POLYVAL_BLOCK_SIZE - dctx->bytes;
|
||||
|
||||
dctx->bytes -= n;
|
||||
srclen -= n;
|
||||
|
||||
while (n--)
|
||||
*pos++ ^= *src++;
|
||||
|
||||
if (!dctx->bytes)
|
||||
internal_polyval_mul(dctx->buffer,
|
||||
tctx->key_powers[NUM_KEY_POWERS-1]);
|
||||
}
|
||||
|
||||
while (srclen >= POLYVAL_BLOCK_SIZE) {
|
||||
/* allow rescheduling every 4K bytes */
|
||||
nblocks = min(srclen, 4096U) / POLYVAL_BLOCK_SIZE;
|
||||
internal_polyval_update(tctx, src, nblocks, dctx->buffer);
|
||||
srclen -= nblocks * POLYVAL_BLOCK_SIZE;
|
||||
src += nblocks * POLYVAL_BLOCK_SIZE;
|
||||
}
|
||||
|
||||
if (srclen) {
|
||||
dctx->bytes = POLYVAL_BLOCK_SIZE - srclen;
|
||||
pos = dctx->buffer;
|
||||
while (srclen--)
|
||||
*pos++ ^= *src++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int polyval_arm64_final(struct shash_desc *desc, u8 *dst)
|
||||
{
|
||||
struct polyval_desc_ctx *dctx = shash_desc_ctx(desc);
|
||||
const struct polyval_tfm_ctx *tctx = crypto_shash_ctx(desc->tfm);
|
||||
|
||||
if (dctx->bytes) {
|
||||
internal_polyval_mul(dctx->buffer,
|
||||
tctx->key_powers[NUM_KEY_POWERS-1]);
|
||||
}
|
||||
|
||||
memcpy(dst, dctx->buffer, POLYVAL_BLOCK_SIZE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct shash_alg polyval_alg = {
|
||||
.digestsize = POLYVAL_DIGEST_SIZE,
|
||||
.init = polyval_arm64_init,
|
||||
.update = polyval_arm64_update,
|
||||
.final = polyval_arm64_final,
|
||||
.setkey = polyval_arm64_setkey,
|
||||
.descsize = sizeof(struct polyval_desc_ctx),
|
||||
.base = {
|
||||
.cra_name = "polyval",
|
||||
.cra_driver_name = "polyval-ce",
|
||||
.cra_priority = 200,
|
||||
.cra_blocksize = POLYVAL_BLOCK_SIZE,
|
||||
.cra_ctxsize = sizeof(struct polyval_tfm_ctx),
|
||||
.cra_module = THIS_MODULE,
|
||||
},
|
||||
};
|
||||
|
||||
static int __init polyval_ce_mod_init(void)
|
||||
{
|
||||
return crypto_register_shash(&polyval_alg);
|
||||
}
|
||||
|
||||
static void __exit polyval_ce_mod_exit(void)
|
||||
{
|
||||
crypto_unregister_shash(&polyval_alg);
|
||||
}
|
||||
|
||||
module_cpu_feature_match(PMULL, polyval_ce_mod_init)
|
||||
module_exit(polyval_ce_mod_exit);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION("POLYVAL hash function accelerated by ARMv8 Crypto Extensions");
|
||||
MODULE_ALIAS_CRYPTO("polyval");
|
||||
MODULE_ALIAS_CRYPTO("polyval-ce");
|
||||
@@ -787,6 +787,16 @@ alternative_endif
|
||||
.Lnoyield_\@:
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Branch Target Identifier (BTI)
|
||||
*/
|
||||
.macro bti, targets
|
||||
.equ .L__bti_targets_c, 34
|
||||
.equ .L__bti_targets_j, 36
|
||||
.equ .L__bti_targets_jc,38
|
||||
hint #.L__bti_targets_\targets
|
||||
.endm
|
||||
|
||||
/*
|
||||
* This macro emits a program property note section identifying
|
||||
* architecture features which require special handling, mainly for
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#define __ASM_CACHE_H
|
||||
|
||||
#include <asm/cputype.h>
|
||||
#include <asm/mte-def.h>
|
||||
|
||||
#define CTR_L1IP_SHIFT 14
|
||||
#define CTR_L1IP_MASK 3
|
||||
@@ -49,15 +50,21 @@
|
||||
*/
|
||||
#define ARCH_DMA_MINALIGN (128)
|
||||
|
||||
#ifdef CONFIG_KASAN_SW_TAGS
|
||||
#define ARCH_SLAB_MINALIGN (1ULL << KASAN_SHADOW_SCALE_SHIFT)
|
||||
#elif defined(CONFIG_KASAN_HW_TAGS)
|
||||
#define ARCH_SLAB_MINALIGN MTE_GRANULE_SIZE
|
||||
#endif
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/kasan-enabled.h>
|
||||
|
||||
#ifdef CONFIG_KASAN_SW_TAGS
|
||||
#define ARCH_SLAB_MINALIGN (1ULL << KASAN_SHADOW_SCALE_SHIFT)
|
||||
#elif defined(CONFIG_KASAN_HW_TAGS)
|
||||
static inline unsigned int arch_slab_minalign(void)
|
||||
{
|
||||
return kasan_hw_tags_enabled() ? MTE_GRANULE_SIZE :
|
||||
__alignof__(unsigned long long);
|
||||
}
|
||||
#define arch_slab_minalign() arch_slab_minalign()
|
||||
#endif
|
||||
|
||||
#define ICACHEF_ALIASING 0
|
||||
#define ICACHEF_VPIPT 1
|
||||
|
||||
@@ -91,7 +91,7 @@ static inline u64 __raw_readq(const volatile void __iomem *addr)
|
||||
}
|
||||
|
||||
/* IO barriers */
|
||||
#define __iormb(v) \
|
||||
#define __io_ar(v) \
|
||||
({ \
|
||||
unsigned long tmp; \
|
||||
\
|
||||
@@ -108,40 +108,15 @@ static inline u64 __raw_readq(const volatile void __iomem *addr)
|
||||
: "memory"); \
|
||||
})
|
||||
|
||||
#define __io_par(v) __iormb(v)
|
||||
#define __iowmb() dma_wmb()
|
||||
#define __io_bw() dma_wmb()
|
||||
#define __io_br(v)
|
||||
#define __io_aw(v)
|
||||
|
||||
/* arm64-specific, don't use in portable drivers */
|
||||
#define __iormb(v) __io_ar(v)
|
||||
#define __iowmb() __io_bw()
|
||||
#define __iomb() dma_mb()
|
||||
|
||||
/*
|
||||
* Relaxed I/O memory access primitives. These follow the Device memory
|
||||
* ordering rules but do not guarantee any ordering relative to Normal memory
|
||||
* accesses.
|
||||
*/
|
||||
#define readb_relaxed(c) ({ u8 __r = __raw_readb(c); __r; })
|
||||
#define readw_relaxed(c) ({ u16 __r = le16_to_cpu((__force __le16)__raw_readw(c)); __r; })
|
||||
#define readl_relaxed(c) ({ u32 __r = le32_to_cpu((__force __le32)__raw_readl(c)); __r; })
|
||||
#define readq_relaxed(c) ({ u64 __r = le64_to_cpu((__force __le64)__raw_readq(c)); __r; })
|
||||
|
||||
#define writeb_relaxed(v,c) ((void)__raw_writeb((v),(c)))
|
||||
#define writew_relaxed(v,c) ((void)__raw_writew((__force u16)cpu_to_le16(v),(c)))
|
||||
#define writel_relaxed(v,c) ((void)__raw_writel((__force u32)cpu_to_le32(v),(c)))
|
||||
#define writeq_relaxed(v,c) ((void)__raw_writeq((__force u64)cpu_to_le64(v),(c)))
|
||||
|
||||
/*
|
||||
* I/O memory access primitives. Reads are ordered relative to any
|
||||
* following Normal memory access. Writes are ordered relative to any prior
|
||||
* Normal memory access.
|
||||
*/
|
||||
#define readb(c) ({ u8 __v = readb_relaxed(c); __iormb(__v); __v; })
|
||||
#define readw(c) ({ u16 __v = readw_relaxed(c); __iormb(__v); __v; })
|
||||
#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(__v); __v; })
|
||||
#define readq(c) ({ u64 __v = readq_relaxed(c); __iormb(__v); __v; })
|
||||
|
||||
#define writeb(v,c) ({ __iowmb(); writeb_relaxed((v),(c)); })
|
||||
#define writew(v,c) ({ __iowmb(); writew_relaxed((v),(c)); })
|
||||
#define writel(v,c) ({ __iowmb(); writel_relaxed((v),(c)); })
|
||||
#define writeq(v,c) ({ __iowmb(); writeq_relaxed((v),(c)); })
|
||||
|
||||
/*
|
||||
* I/O port access primitives.
|
||||
*/
|
||||
|
||||
@@ -76,6 +76,7 @@ enum __kvm_host_smccc_func {
|
||||
__KVM_HOST_SMCCC_FUNC___vgic_v3_save_vmcr_aprs,
|
||||
__KVM_HOST_SMCCC_FUNC___vgic_v3_restore_vmcr_aprs,
|
||||
__KVM_HOST_SMCCC_FUNC___pkvm_init_shadow,
|
||||
__KVM_HOST_SMCCC_FUNC___pkvm_init_shadow_vcpu,
|
||||
__KVM_HOST_SMCCC_FUNC___pkvm_teardown_shadow,
|
||||
__KVM_HOST_SMCCC_FUNC___pkvm_vcpu_load,
|
||||
__KVM_HOST_SMCCC_FUNC___pkvm_vcpu_put,
|
||||
|
||||
@@ -1,17 +1,16 @@
|
||||
#ifndef __ASM_LINKAGE_H
|
||||
#define __ASM_LINKAGE_H
|
||||
|
||||
#ifdef __ASSEMBLY__
|
||||
#include <asm/assembler.h>
|
||||
#endif
|
||||
|
||||
#define __ALIGN .align 2
|
||||
#define __ALIGN_STR ".align 2"
|
||||
|
||||
#if defined(CONFIG_ARM64_BTI_KERNEL) && defined(__aarch64__)
|
||||
|
||||
/*
|
||||
* Since current versions of gas reject the BTI instruction unless we
|
||||
* set the architecture version to v8.5 we use the hint instruction
|
||||
* instead.
|
||||
*/
|
||||
#define BTI_C hint 34 ;
|
||||
#define BTI_C bti c ;
|
||||
|
||||
/*
|
||||
* When using in-kernel BTI we need to ensure that PCS-conformant assembly
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#define __ASM_MTE_KASAN_H
|
||||
|
||||
#include <asm/compiler.h>
|
||||
#include <asm/cputype.h>
|
||||
#include <asm/mte-def.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <asm/alternative.h>
|
||||
#include <asm/cmpxchg.h>
|
||||
#include <asm/stack_pointer.h>
|
||||
#include <asm/sysreg.h>
|
||||
|
||||
static inline void set_my_cpu_offset(unsigned long off)
|
||||
{
|
||||
|
||||
@@ -98,10 +98,6 @@ cpu_enable_trap_ctr_access(const struct arm64_cpu_capabilities *cap)
|
||||
(arm64_ftr_reg_ctrel0.sys_val & mask))
|
||||
enable_uct_trap = true;
|
||||
|
||||
/* ... or if the system is affected by an erratum */
|
||||
if (cap->capability == ARM64_WORKAROUND_1542419)
|
||||
enable_uct_trap = true;
|
||||
|
||||
if (enable_uct_trap)
|
||||
sysreg_clear_set(sctlr_el1, SCTLR_EL1_UCT, 0);
|
||||
}
|
||||
@@ -182,18 +178,6 @@ needs_tx2_tvm_workaround(const struct arm64_cpu_capabilities *entry,
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool __maybe_unused
|
||||
has_neoverse_n1_erratum_1542419(const struct arm64_cpu_capabilities *entry,
|
||||
int scope)
|
||||
{
|
||||
u32 midr = read_cpuid_id();
|
||||
bool has_dic = read_cpuid_cachetype() & BIT(CTR_DIC_SHIFT);
|
||||
const struct midr_range range = MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1);
|
||||
|
||||
WARN_ON(scope != SCOPE_LOCAL_CPU || preemptible());
|
||||
return is_midr_in_range(midr, &range) && has_dic;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARM64_WORKAROUND_REPEAT_TLBI
|
||||
static const struct arm64_cpu_capabilities arm64_repeat_tlbi_list[] = {
|
||||
#ifdef CONFIG_QCOM_FALKOR_ERRATUM_1009
|
||||
@@ -229,28 +213,6 @@ static const struct arm64_cpu_capabilities arm64_repeat_tlbi_list[] = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CAVIUM_ERRATUM_27456
|
||||
const struct midr_range cavium_erratum_27456_cpus[] = {
|
||||
/* Cavium ThunderX, T88 pass 1.x - 2.1 */
|
||||
MIDR_RANGE(MIDR_THUNDERX, 0, 0, 1, 1),
|
||||
/* Cavium ThunderX, T81 pass 1.0 */
|
||||
MIDR_REV(MIDR_THUNDERX_81XX, 0, 0),
|
||||
{},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CAVIUM_ERRATUM_30115
|
||||
static const struct midr_range cavium_erratum_30115_cpus[] = {
|
||||
/* Cavium ThunderX, T88 pass 1.x - 2.2 */
|
||||
MIDR_RANGE(MIDR_THUNDERX, 0, 0, 1, 2),
|
||||
/* Cavium ThunderX, T81 pass 1.0 - 1.2 */
|
||||
MIDR_REV_RANGE(MIDR_THUNDERX_81XX, 0, 0, 2),
|
||||
/* Cavium ThunderX, T83 pass 1.0 */
|
||||
MIDR_REV(MIDR_THUNDERX_83XX, 0, 0),
|
||||
{},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_QCOM_FALKOR_ERRATUM_1003
|
||||
static const struct arm64_cpu_capabilities qcom_erratum_1003_list[] = {
|
||||
{
|
||||
@@ -443,20 +405,6 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
|
||||
.capability = ARM64_WORKAROUND_CAVIUM_23154,
|
||||
ERRATA_MIDR_REV_RANGE(MIDR_THUNDERX, 0, 0, 1),
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_CAVIUM_ERRATUM_27456
|
||||
{
|
||||
.desc = "Cavium erratum 27456",
|
||||
.capability = ARM64_WORKAROUND_CAVIUM_27456,
|
||||
ERRATA_MIDR_RANGE_LIST(cavium_erratum_27456_cpus),
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_CAVIUM_ERRATUM_30115
|
||||
{
|
||||
.desc = "Cavium erratum 30115",
|
||||
.capability = ARM64_WORKAROUND_CAVIUM_30115,
|
||||
ERRATA_MIDR_RANGE_LIST(cavium_erratum_30115_cpus),
|
||||
},
|
||||
#endif
|
||||
{
|
||||
.desc = "Mismatched cache type (CTR_EL0)",
|
||||
@@ -551,29 +499,6 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
|
||||
.midr_range_list = erratum_1463225,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_CAVIUM_TX2_ERRATUM_219
|
||||
{
|
||||
.desc = "Cavium ThunderX2 erratum 219 (KVM guest sysreg trapping)",
|
||||
.capability = ARM64_WORKAROUND_CAVIUM_TX2_219_TVM,
|
||||
ERRATA_MIDR_RANGE_LIST(tx2_family_cpus),
|
||||
.matches = needs_tx2_tvm_workaround,
|
||||
},
|
||||
{
|
||||
.desc = "Cavium ThunderX2 erratum 219 (PRFM removal)",
|
||||
.capability = ARM64_WORKAROUND_CAVIUM_TX2_219_PRFM,
|
||||
ERRATA_MIDR_RANGE_LIST(tx2_family_cpus),
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_ARM64_ERRATUM_1542419
|
||||
{
|
||||
/* we depend on the firmware portion for correctness */
|
||||
.desc = "ARM erratum 1542419 (kernel portion)",
|
||||
.capability = ARM64_WORKAROUND_1542419,
|
||||
.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
|
||||
.matches = has_neoverse_n1_erratum_1542419,
|
||||
.cpu_enable = cpu_enable_trap_ctr_access,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_ARM64_ERRATUM_1508412
|
||||
{
|
||||
/* we depend on the firmware portion for correctness */
|
||||
|
||||
@@ -1395,16 +1395,6 @@ static bool has_useable_gicv3_cpuif(const struct arm64_cpu_capabilities *entry,
|
||||
return has_sre;
|
||||
}
|
||||
|
||||
static bool has_no_hw_prefetch(const struct arm64_cpu_capabilities *entry, int __unused)
|
||||
{
|
||||
u32 midr = read_cpuid_id();
|
||||
|
||||
/* Cavium ThunderX pass 1.x and 2.x */
|
||||
return midr_is_cpu_model_range(midr, MIDR_THUNDERX,
|
||||
MIDR_CPU_VAR_REV(0, 0),
|
||||
MIDR_CPU_VAR_REV(1, MIDR_REVISION_MASK));
|
||||
}
|
||||
|
||||
static bool has_no_fpsimd(const struct arm64_cpu_capabilities *entry, int __unused)
|
||||
{
|
||||
u64 pfr0 = read_sanitised_ftr_reg(SYS_ID_AA64PFR0_EL1);
|
||||
@@ -1493,18 +1483,6 @@ bool kaslr_requires_kpti(void)
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Systems affected by Cavium erratum 24756 are incompatible
|
||||
* with KPTI.
|
||||
*/
|
||||
if (IS_ENABLED(CONFIG_CAVIUM_ERRATUM_27456)) {
|
||||
extern const struct midr_range cavium_erratum_27456_cpus[];
|
||||
|
||||
if (is_midr_in_range_list(read_cpuid_id(),
|
||||
cavium_erratum_27456_cpus))
|
||||
return false;
|
||||
}
|
||||
|
||||
return kaslr_offset() > 0;
|
||||
}
|
||||
|
||||
@@ -1545,20 +1523,6 @@ static bool unmap_kernel_at_el0(const struct arm64_cpu_capabilities *entry,
|
||||
if (!meltdown_safe)
|
||||
__meltdown_safe = false;
|
||||
|
||||
/*
|
||||
* For reasons that aren't entirely clear, enabling KPTI on Cavium
|
||||
* ThunderX leads to apparent I-cache corruption of kernel text, which
|
||||
* ends as well as you might imagine. Don't even try. We cannot rely
|
||||
* on the cpus_have_*cap() helpers here to detect the CPU erratum
|
||||
* because cpucap detection order may change. However, since we know
|
||||
* affected CPUs are always in a homogeneous configuration, it is
|
||||
* safe to rely on this_cpu_has_cap() here.
|
||||
*/
|
||||
if (this_cpu_has_cap(ARM64_WORKAROUND_CAVIUM_27456)) {
|
||||
str = "ARM64_WORKAROUND_CAVIUM_27456";
|
||||
__kpti_forced = -1;
|
||||
}
|
||||
|
||||
/* Useful for KASLR robustness */
|
||||
if (kaslr_requires_kpti()) {
|
||||
if (!__kpti_forced) {
|
||||
@@ -1988,12 +1952,6 @@ static const struct arm64_cpu_capabilities arm64_features[] = {
|
||||
.min_field_value = 2,
|
||||
},
|
||||
#endif /* CONFIG_ARM64_LSE_ATOMICS */
|
||||
{
|
||||
.desc = "Software prefetching using PRFM",
|
||||
.capability = ARM64_HAS_NO_HW_PREFETCH,
|
||||
.type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE,
|
||||
.matches = has_no_hw_prefetch,
|
||||
},
|
||||
{
|
||||
.desc = "Virtualization Host Extensions",
|
||||
.capability = ARM64_HAS_VIRT_HOST_EXTN,
|
||||
|
||||
@@ -691,9 +691,7 @@ alternative_else_nop_endif
|
||||
tramp_map_kernel x30
|
||||
alternative_insn isb, nop, ARM64_WORKAROUND_QCOM_FALKOR_E1003
|
||||
tramp_data_read_var x30, vectors
|
||||
alternative_if_not ARM64_WORKAROUND_CAVIUM_TX2_219_PRFM
|
||||
prfm plil1strm, [x30, #(1b - \vector_start)]
|
||||
alternative_else_nop_endif
|
||||
|
||||
msr vbar_el1, x30
|
||||
isb
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <asm/sysreg.h>
|
||||
#include <asm/trans_pgd.h>
|
||||
#include <asm/virt.h>
|
||||
#include <trace/hooks/bl_hib.h>
|
||||
|
||||
/*
|
||||
* Hibernate core relies on this value being 0 on resume, and marks it
|
||||
@@ -87,6 +88,8 @@ static struct arch_hibernate_hdr {
|
||||
phys_addr_t __hyp_stub_vectors;
|
||||
|
||||
u64 sleep_cpu_mpidr;
|
||||
|
||||
ANDROID_VENDOR_DATA(1);
|
||||
} resume_hdr;
|
||||
|
||||
static inline void arch_hdr_invariants(struct arch_hibernate_hdr_invariants *i)
|
||||
@@ -124,6 +127,11 @@ int arch_hibernation_header_save(void *addr, unsigned int max_size)
|
||||
hdr->ttbr1_el1 = __pa_symbol(swapper_pg_dir);
|
||||
hdr->reenter_kernel = _cpu_resume;
|
||||
|
||||
#ifdef CONFIG_ANDROID_VENDOR_OEM_DATA
|
||||
trace_android_vh_save_cpu_resume(&hdr->android_vendor_data1,
|
||||
__pa(cpu_resume));
|
||||
#endif
|
||||
|
||||
/* We can't use __hyp_get_vectors() because kvm may still be loaded */
|
||||
if (el2_reset_needed())
|
||||
hdr->__hyp_stub_vectors = __pa_symbol(__hyp_stub_vectors);
|
||||
|
||||
@@ -1193,17 +1193,32 @@ static int armv8_pmu_init_nogroups(struct arm_pmu *cpu_pmu, char *name,
|
||||
return armv8_pmu_init(cpu_pmu, name, map_event, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
static int armv8_pmuv3_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_pmuv3",
|
||||
armv8_pmuv3_map_event);
|
||||
#define PMUV3_INIT_SIMPLE(name) \
|
||||
static int name##_pmu_init(struct arm_pmu *cpu_pmu) \
|
||||
{ \
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, #name, armv8_pmuv3_map_event);\
|
||||
}
|
||||
|
||||
static int armv8_a34_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a34",
|
||||
armv8_pmuv3_map_event);
|
||||
}
|
||||
PMUV3_INIT_SIMPLE(armv8_pmuv3)
|
||||
|
||||
PMUV3_INIT_SIMPLE(armv8_cortex_a34)
|
||||
PMUV3_INIT_SIMPLE(armv8_cortex_a55)
|
||||
PMUV3_INIT_SIMPLE(armv8_cortex_a65)
|
||||
PMUV3_INIT_SIMPLE(armv8_cortex_a75)
|
||||
PMUV3_INIT_SIMPLE(armv8_cortex_a76)
|
||||
PMUV3_INIT_SIMPLE(armv8_cortex_a77)
|
||||
PMUV3_INIT_SIMPLE(armv8_cortex_a78)
|
||||
PMUV3_INIT_SIMPLE(armv9_cortex_a510)
|
||||
PMUV3_INIT_SIMPLE(armv9_cortex_a710)
|
||||
PMUV3_INIT_SIMPLE(armv8_cortex_x1)
|
||||
PMUV3_INIT_SIMPLE(armv9_cortex_x2)
|
||||
PMUV3_INIT_SIMPLE(armv8_neoverse_e1)
|
||||
PMUV3_INIT_SIMPLE(armv8_neoverse_n1)
|
||||
PMUV3_INIT_SIMPLE(armv9_neoverse_n2)
|
||||
PMUV3_INIT_SIMPLE(armv8_neoverse_v1)
|
||||
|
||||
PMUV3_INIT_SIMPLE(armv8_nvidia_carmel)
|
||||
PMUV3_INIT_SIMPLE(armv8_nvidia_denver)
|
||||
|
||||
static int armv8_a35_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
@@ -1217,24 +1232,12 @@ static int armv8_a53_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
armv8_a53_map_event);
|
||||
}
|
||||
|
||||
static int armv8_a55_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a55",
|
||||
armv8_pmuv3_map_event);
|
||||
}
|
||||
|
||||
static int armv8_a57_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a57",
|
||||
armv8_a57_map_event);
|
||||
}
|
||||
|
||||
static int armv8_a65_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a65",
|
||||
armv8_pmuv3_map_event);
|
||||
}
|
||||
|
||||
static int armv8_a72_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a72",
|
||||
@@ -1247,42 +1250,6 @@ static int armv8_a73_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
armv8_a73_map_event);
|
||||
}
|
||||
|
||||
static int armv8_a75_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a75",
|
||||
armv8_pmuv3_map_event);
|
||||
}
|
||||
|
||||
static int armv8_a76_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a76",
|
||||
armv8_pmuv3_map_event);
|
||||
}
|
||||
|
||||
static int armv8_a77_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a77",
|
||||
armv8_pmuv3_map_event);
|
||||
}
|
||||
|
||||
static int armv8_a78_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a78",
|
||||
armv8_pmuv3_map_event);
|
||||
}
|
||||
|
||||
static int armv8_e1_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_neoverse_e1",
|
||||
armv8_pmuv3_map_event);
|
||||
}
|
||||
|
||||
static int armv8_n1_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_neoverse_n1",
|
||||
armv8_pmuv3_map_event);
|
||||
}
|
||||
|
||||
static int armv8_thunder_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
{
|
||||
return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cavium_thunder",
|
||||
@@ -1296,23 +1263,31 @@ static int armv8_vulcan_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
}
|
||||
|
||||
static const struct of_device_id armv8_pmu_of_device_ids[] = {
|
||||
{.compatible = "arm,armv8-pmuv3", .data = armv8_pmuv3_init},
|
||||
{.compatible = "arm,cortex-a34-pmu", .data = armv8_a34_pmu_init},
|
||||
{.compatible = "arm,armv8-pmuv3", .data = armv8_pmuv3_pmu_init},
|
||||
{.compatible = "arm,cortex-a34-pmu", .data = armv8_cortex_a34_pmu_init},
|
||||
{.compatible = "arm,cortex-a35-pmu", .data = armv8_a35_pmu_init},
|
||||
{.compatible = "arm,cortex-a53-pmu", .data = armv8_a53_pmu_init},
|
||||
{.compatible = "arm,cortex-a55-pmu", .data = armv8_a55_pmu_init},
|
||||
{.compatible = "arm,cortex-a55-pmu", .data = armv8_cortex_a55_pmu_init},
|
||||
{.compatible = "arm,cortex-a57-pmu", .data = armv8_a57_pmu_init},
|
||||
{.compatible = "arm,cortex-a65-pmu", .data = armv8_a65_pmu_init},
|
||||
{.compatible = "arm,cortex-a65-pmu", .data = armv8_cortex_a65_pmu_init},
|
||||
{.compatible = "arm,cortex-a72-pmu", .data = armv8_a72_pmu_init},
|
||||
{.compatible = "arm,cortex-a73-pmu", .data = armv8_a73_pmu_init},
|
||||
{.compatible = "arm,cortex-a75-pmu", .data = armv8_a75_pmu_init},
|
||||
{.compatible = "arm,cortex-a76-pmu", .data = armv8_a76_pmu_init},
|
||||
{.compatible = "arm,cortex-a77-pmu", .data = armv8_a77_pmu_init},
|
||||
{.compatible = "arm,cortex-a78-pmu", .data = armv8_a78_pmu_init},
|
||||
{.compatible = "arm,neoverse-e1-pmu", .data = armv8_e1_pmu_init},
|
||||
{.compatible = "arm,neoverse-n1-pmu", .data = armv8_n1_pmu_init},
|
||||
{.compatible = "arm,cortex-a75-pmu", .data = armv8_cortex_a75_pmu_init},
|
||||
{.compatible = "arm,cortex-a76-pmu", .data = armv8_cortex_a76_pmu_init},
|
||||
{.compatible = "arm,cortex-a77-pmu", .data = armv8_cortex_a77_pmu_init},
|
||||
{.compatible = "arm,cortex-a78-pmu", .data = armv8_cortex_a78_pmu_init},
|
||||
{.compatible = "arm,cortex-a510-pmu", .data = armv9_cortex_a510_pmu_init},
|
||||
{.compatible = "arm,cortex-a710-pmu", .data = armv9_cortex_a710_pmu_init},
|
||||
{.compatible = "arm,cortex-x1-pmu", .data = armv8_cortex_x1_pmu_init},
|
||||
{.compatible = "arm,cortex-x2-pmu", .data = armv9_cortex_x2_pmu_init},
|
||||
{.compatible = "arm,neoverse-e1-pmu", .data = armv8_neoverse_e1_pmu_init},
|
||||
{.compatible = "arm,neoverse-n1-pmu", .data = armv8_neoverse_n1_pmu_init},
|
||||
{.compatible = "arm,neoverse-n2-pmu", .data = armv9_neoverse_n2_pmu_init},
|
||||
{.compatible = "arm,neoverse-v1-pmu", .data = armv8_neoverse_v1_pmu_init},
|
||||
{.compatible = "cavium,thunder-pmu", .data = armv8_thunder_pmu_init},
|
||||
{.compatible = "brcm,vulcan-pmu", .data = armv8_vulcan_pmu_init},
|
||||
{.compatible = "nvidia,carmel-pmu", .data = armv8_nvidia_carmel_pmu_init},
|
||||
{.compatible = "nvidia,denver-pmu", .data = armv8_nvidia_denver_pmu_init},
|
||||
{},
|
||||
};
|
||||
|
||||
@@ -1335,7 +1310,7 @@ static int __init armv8_pmu_driver_init(void)
|
||||
if (acpi_disabled)
|
||||
return platform_driver_register(&armv8_pmu_driver);
|
||||
else
|
||||
return arm_pmu_acpi_probe(armv8_pmuv3_init);
|
||||
return arm_pmu_acpi_probe(armv8_pmuv3_pmu_init);
|
||||
}
|
||||
device_initcall(armv8_pmu_driver_init)
|
||||
|
||||
|
||||
@@ -908,7 +908,7 @@ static void do_handle_IPI(int ipinr)
|
||||
break;
|
||||
|
||||
case IPI_CPU_STOP:
|
||||
trace_android_vh_ipi_stop_rcuidle(get_irq_regs());
|
||||
trace_android_vh_ipi_stop(get_irq_regs());
|
||||
local_cpu_stop();
|
||||
break;
|
||||
|
||||
|
||||
@@ -32,15 +32,6 @@ __do_compat_cache_op(unsigned long start, unsigned long end)
|
||||
if (fatal_signal_pending(current))
|
||||
return 0;
|
||||
|
||||
if (cpus_have_const_cap(ARM64_WORKAROUND_1542419)) {
|
||||
/*
|
||||
* The workaround requires an inner-shareable tlbi.
|
||||
* We pick the reserved-ASID to minimise the impact.
|
||||
*/
|
||||
__tlbi(aside1is, __TLBI_VADDR(0, 0));
|
||||
dsb(ish);
|
||||
}
|
||||
|
||||
ret = caches_clean_inval_user_pou(start, start + chunk);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -587,15 +587,6 @@ static void ctr_read_handler(unsigned int esr, struct pt_regs *regs)
|
||||
int rt = ESR_ELx_SYS64_ISS_RT(esr);
|
||||
unsigned long val = arm64_ftr_reg_user_value(&arm64_ftr_reg_ctrel0);
|
||||
|
||||
if (cpus_have_const_cap(ARM64_WORKAROUND_1542419)) {
|
||||
/* Hide DIC so that we can trap the unnecessary maintenance...*/
|
||||
val &= ~BIT(CTR_DIC_SHIFT);
|
||||
|
||||
/* ... and fake IminLine to reduce the number of traps. */
|
||||
val &= ~CTR_IMINLINE_MASK;
|
||||
val |= (PAGE_SHIFT - 2) & CTR_IMINLINE_MASK;
|
||||
}
|
||||
|
||||
pt_regs_write_reg(regs, rt, val);
|
||||
|
||||
arm64_skip_faulting_instruction(regs, AARCH64_INSN_SIZE);
|
||||
@@ -947,6 +938,13 @@ bool arm64_is_fatal_ras_serror(struct pt_regs *regs, unsigned int esr)
|
||||
|
||||
void do_serror(struct pt_regs *regs, unsigned int esr)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
/* Add vendor hooks for unusual abort cases */
|
||||
trace_android_rvh_do_serror(regs, esr, &ret);
|
||||
if (ret != 0)
|
||||
return;
|
||||
|
||||
/* non-RAS errors are not containable */
|
||||
if (!arm64_is_ras_serror(esr) || arm64_is_fatal_ras_serror(regs, esr))
|
||||
arm64_serror_panic(regs, esr);
|
||||
|
||||
@@ -296,7 +296,7 @@ static int kvm_check_extension(struct kvm *kvm, long ext)
|
||||
r = get_kvm_ipa_limit();
|
||||
break;
|
||||
case KVM_CAP_ARM_SVE:
|
||||
r = system_supports_sve();
|
||||
r = system_supports_sve() && !is_protected_kvm_enabled();
|
||||
break;
|
||||
case KVM_CAP_ARM_PTRAUTH_ADDRESS:
|
||||
case KVM_CAP_ARM_PTRAUTH_GENERIC:
|
||||
@@ -2162,6 +2162,17 @@ static int pkvm_drop_host_privileges(void)
|
||||
* once the host stage 2 is installed.
|
||||
*/
|
||||
static_branch_enable(&kvm_protected_mode_initialized);
|
||||
|
||||
/*
|
||||
* Fixup the boot mode so that we don't take spurious round
|
||||
* trips via EL2 on cpu_resume. Flush to the PoC for a good
|
||||
* measure, so that it can be observed by a CPU coming out of
|
||||
* suspend with the MMU off.
|
||||
*/
|
||||
__boot_cpu_mode[0] = __boot_cpu_mode[1] = BOOT_CPU_MODE_EL1;
|
||||
dcache_clean_poc((unsigned long)__boot_cpu_mode,
|
||||
(unsigned long)(__boot_cpu_mode + 2));
|
||||
|
||||
on_each_cpu(_kvm_host_prot_finalize, &ret, 1);
|
||||
return ret;
|
||||
}
|
||||
@@ -2320,6 +2331,16 @@ static int __init early_kvm_mode_cfg(char *arg)
|
||||
if (!arg)
|
||||
return -EINVAL;
|
||||
|
||||
if (strcmp(arg, "none") == 0) {
|
||||
kvm_mode = KVM_MODE_NONE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!is_hyp_mode_available()) {
|
||||
pr_warn_once("KVM is not available. Ignoring kvm-arm.mode\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (strcmp(arg, "protected") == 0) {
|
||||
if (!is_kernel_in_hyp_mode())
|
||||
kvm_mode = KVM_MODE_PROTECTED;
|
||||
@@ -2334,11 +2355,6 @@ static int __init early_kvm_mode_cfg(char *arg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (strcmp(arg, "none") == 0) {
|
||||
kvm_mode = KVM_MODE_NONE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
early_param("kvm-arm.mode", early_kvm_mode_cfg);
|
||||
|
||||
@@ -80,6 +80,7 @@ void kvm_arch_vcpu_load_fp(struct kvm_vcpu *vcpu)
|
||||
vcpu->arch.flags &= ~KVM_ARM64_FP_ENABLED;
|
||||
vcpu->arch.flags |= KVM_ARM64_FP_HOST;
|
||||
|
||||
vcpu->arch.flags &= ~KVM_ARM64_HOST_SVE_ENABLED;
|
||||
if (read_sysreg(cpacr_el1) & CPACR_EL1_ZEN_EL0EN)
|
||||
vcpu->arch.flags |= KVM_ARM64_HOST_SVE_ENABLED;
|
||||
}
|
||||
|
||||
@@ -166,7 +166,8 @@ static void enter_exception64(struct kvm_vcpu *vcpu, unsigned long target_mode,
|
||||
*vcpu_pc(vcpu) = vbar + offset;
|
||||
|
||||
old = *vcpu_cpsr(vcpu);
|
||||
new = get_except64_cpsr(old, kvm_has_mte(vcpu->kvm), sctlr, target_mode);
|
||||
new = get_except64_cpsr(old, kvm_has_mte(kern_hyp_va(vcpu->kvm)), sctlr,
|
||||
target_mode);
|
||||
*vcpu_cpsr(vcpu) = new;
|
||||
__vcpu_write_spsr(vcpu, old);
|
||||
}
|
||||
|
||||
@@ -110,9 +110,6 @@ static inline void ___activate_traps(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
u64 hcr = vcpu->arch.hcr_el2;
|
||||
|
||||
if (cpus_have_final_cap(ARM64_WORKAROUND_CAVIUM_TX2_219_TVM))
|
||||
hcr |= HCR_TVM;
|
||||
|
||||
write_sysreg(hcr, hcr_el2);
|
||||
|
||||
if (cpus_have_final_cap(ARM64_HAS_RAS_EXTN) && (hcr & HCR_VSE))
|
||||
@@ -203,61 +200,6 @@ static bool kvm_hyp_handle_fpsimd(struct kvm_vcpu *vcpu, u64 *exit_code)
|
||||
return true;
|
||||
}
|
||||
|
||||
static inline bool handle_tx2_tvm(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
u32 sysreg = esr_sys64_to_sysreg(kvm_vcpu_get_esr(vcpu));
|
||||
int rt = kvm_vcpu_sys_get_rt(vcpu);
|
||||
u64 val = vcpu_get_reg(vcpu, rt);
|
||||
|
||||
/*
|
||||
* The normal sysreg handling code expects to see the traps,
|
||||
* let's not do anything here.
|
||||
*/
|
||||
if (vcpu->arch.hcr_el2 & HCR_TVM)
|
||||
return false;
|
||||
|
||||
switch (sysreg) {
|
||||
case SYS_SCTLR_EL1:
|
||||
write_sysreg_el1(val, SYS_SCTLR);
|
||||
break;
|
||||
case SYS_TTBR0_EL1:
|
||||
write_sysreg_el1(val, SYS_TTBR0);
|
||||
break;
|
||||
case SYS_TTBR1_EL1:
|
||||
write_sysreg_el1(val, SYS_TTBR1);
|
||||
break;
|
||||
case SYS_TCR_EL1:
|
||||
write_sysreg_el1(val, SYS_TCR);
|
||||
break;
|
||||
case SYS_ESR_EL1:
|
||||
write_sysreg_el1(val, SYS_ESR);
|
||||
break;
|
||||
case SYS_FAR_EL1:
|
||||
write_sysreg_el1(val, SYS_FAR);
|
||||
break;
|
||||
case SYS_AFSR0_EL1:
|
||||
write_sysreg_el1(val, SYS_AFSR0);
|
||||
break;
|
||||
case SYS_AFSR1_EL1:
|
||||
write_sysreg_el1(val, SYS_AFSR1);
|
||||
break;
|
||||
case SYS_MAIR_EL1:
|
||||
write_sysreg_el1(val, SYS_MAIR);
|
||||
break;
|
||||
case SYS_AMAIR_EL1:
|
||||
write_sysreg_el1(val, SYS_AMAIR);
|
||||
break;
|
||||
case SYS_CONTEXTIDR_EL1:
|
||||
write_sysreg_el1(val, SYS_CONTEXTIDR);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
__kvm_skip_instr(vcpu);
|
||||
return true;
|
||||
}
|
||||
|
||||
static inline bool esr_is_ptrauth_trap(u32 esr)
|
||||
{
|
||||
switch (esr_sys64_to_sysreg(esr)) {
|
||||
@@ -314,10 +256,6 @@ static bool kvm_hyp_handle_ptrauth(struct kvm_vcpu *vcpu, u64 *exit_code)
|
||||
|
||||
static bool kvm_hyp_handle_sysreg(struct kvm_vcpu *vcpu, u64 *exit_code)
|
||||
{
|
||||
if (cpus_have_final_cap(ARM64_WORKAROUND_CAVIUM_TX2_219_TVM) &&
|
||||
handle_tx2_tvm(vcpu))
|
||||
return true;
|
||||
|
||||
if (static_branch_unlikely(&vgic_v3_cpuif_trap) &&
|
||||
__vgic_v3_perform_cpuif_access(vcpu) == 1)
|
||||
return true;
|
||||
|
||||
@@ -48,6 +48,12 @@ struct pkvm_iommu_ops {
|
||||
void (*host_stage2_idmap_apply)(struct pkvm_iommu *dev,
|
||||
phys_addr_t start, phys_addr_t end);
|
||||
|
||||
/*
|
||||
* Callback to finish a host stage-2 mapping change at device level.
|
||||
* Called after 'host_stage2_idmap_apply' with host lock held.
|
||||
*/
|
||||
void (*host_stage2_idmap_complete)(struct pkvm_iommu *dev);
|
||||
|
||||
/* Power management callbacks. Called with host lock held. */
|
||||
int (*suspend)(struct pkvm_iommu *dev);
|
||||
int (*resume)(struct pkvm_iommu *dev);
|
||||
|
||||
@@ -42,14 +42,20 @@ struct kvm_shadow_vm {
|
||||
/* The total size of the donated shadow area. */
|
||||
size_t shadow_area_size;
|
||||
|
||||
/*
|
||||
* The number of vcpus initialized and ready to run in the shadow vm.
|
||||
* Modifying this is protected by shadow_lock.
|
||||
*/
|
||||
unsigned int nr_vcpus;
|
||||
|
||||
struct kvm_arch arch;
|
||||
struct kvm_pgtable pgt;
|
||||
struct kvm_pgtable_mm_ops mm_ops;
|
||||
struct hyp_pool pool;
|
||||
hyp_spinlock_t lock;
|
||||
|
||||
/* Array of the shadow state per vcpu. */
|
||||
struct shadow_vcpu_state shadow_vcpus[0];
|
||||
/* Array of the shadow state pointers per vcpu. */
|
||||
struct shadow_vcpu_state *shadow_vcpus[0];
|
||||
};
|
||||
|
||||
static inline bool vcpu_is_protected(struct kvm_vcpu *vcpu)
|
||||
@@ -65,6 +71,9 @@ extern phys_addr_t pvmfw_size;
|
||||
|
||||
void hyp_shadow_table_init(void *tbl);
|
||||
int __pkvm_init_shadow(struct kvm *kvm, void *shadow_va, size_t size, void *pgd);
|
||||
int __pkvm_init_shadow_vcpu(unsigned int shadow_handle,
|
||||
struct kvm_vcpu *host_vcpu,
|
||||
void *shadow_vcpu_hva);
|
||||
int __pkvm_teardown_shadow(int shadow_handle);
|
||||
struct kvm_vcpu *get_shadow_vcpu(int shadow_handle, unsigned int vcpu_idx);
|
||||
void put_shadow_vcpu(struct kvm_vcpu *vcpu);
|
||||
|
||||
@@ -1006,6 +1006,17 @@ static void handle___pkvm_init_shadow(struct kvm_cpu_context *host_ctxt)
|
||||
shadow_size, pgd);
|
||||
}
|
||||
|
||||
static void handle___pkvm_init_shadow_vcpu(struct kvm_cpu_context *host_ctxt)
|
||||
{
|
||||
DECLARE_REG(unsigned int, shadow_handle, host_ctxt, 1);
|
||||
DECLARE_REG(struct kvm_vcpu *, host_vcpu, host_ctxt, 2);
|
||||
DECLARE_REG(void *, shadow_vcpu_hva, host_ctxt, 3);
|
||||
|
||||
cpu_reg(host_ctxt, 1) = __pkvm_init_shadow_vcpu(shadow_handle,
|
||||
host_vcpu,
|
||||
shadow_vcpu_hva);
|
||||
}
|
||||
|
||||
static void handle___pkvm_teardown_shadow(struct kvm_cpu_context *host_ctxt)
|
||||
{
|
||||
DECLARE_REG(int, shadow_handle, host_ctxt, 1);
|
||||
@@ -1079,6 +1090,7 @@ static const hcall_t host_hcall[] = {
|
||||
HANDLE_FUNC(__vgic_v3_save_vmcr_aprs),
|
||||
HANDLE_FUNC(__vgic_v3_restore_vmcr_aprs),
|
||||
HANDLE_FUNC(__pkvm_init_shadow),
|
||||
HANDLE_FUNC(__pkvm_init_shadow_vcpu),
|
||||
HANDLE_FUNC(__pkvm_teardown_shadow),
|
||||
HANDLE_FUNC(__pkvm_vcpu_load),
|
||||
HANDLE_FUNC(__pkvm_vcpu_put),
|
||||
|
||||
@@ -546,4 +546,9 @@ void pkvm_iommu_host_stage2_idmap(phys_addr_t start, phys_addr_t end,
|
||||
if (dev->powered && dev->ops->host_stage2_idmap_apply)
|
||||
dev->ops->host_stage2_idmap_apply(dev, start, end);
|
||||
}
|
||||
|
||||
list_for_each_entry(dev, &iommu_list, list) {
|
||||
if (dev->powered && dev->ops->host_stage2_idmap_complete)
|
||||
dev->ops->host_stage2_idmap_complete(dev);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,10 @@
|
||||
|
||||
#define PA_MAX ((phys_addr_t)SZ_1G * NR_GIGABYTES)
|
||||
|
||||
#define SYNC_MAX_RETRIES 5
|
||||
#define SYNC_TIMEOUT 5
|
||||
#define SYNC_TIMEOUT_MULTIPLIER 3
|
||||
|
||||
#define CTX_CFG_ENTRY(ctxid, nr_ctx, vid) \
|
||||
(CONTEXT_CFG_VALID_VID_CTX_VID(ctxid, vid) \
|
||||
| (((ctxid) < (nr_ctx)) ? CONTEXT_CFG_VALID_VID_CTX_VALID(ctxid) : 0))
|
||||
@@ -158,11 +162,20 @@ static void __set_control_regs(struct pkvm_iommu *dev)
|
||||
writel_relaxed(ctrl0, dev->va + REG_NS_CTRL0);
|
||||
}
|
||||
|
||||
/* Poll the given SFR until its value has all bits of a given mask set. */
|
||||
static void __wait_until(void __iomem *addr, u32 mask)
|
||||
/*
|
||||
* Poll the given SFR until its value has all bits of a given mask set.
|
||||
* Returns true if successful, false if not successful after a given number of
|
||||
* attempts.
|
||||
*/
|
||||
static bool __wait_until(void __iomem *addr, u32 mask, size_t max_attempts)
|
||||
{
|
||||
while ((readl_relaxed(addr) & mask) != mask)
|
||||
continue;
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < max_attempts; i++) {
|
||||
if ((readl_relaxed(addr) & mask) == mask)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Poll the given SFR as long as its value has all bits of a given mask set. */
|
||||
@@ -172,17 +185,54 @@ static void __wait_while(void __iomem *addr, u32 mask)
|
||||
continue;
|
||||
}
|
||||
|
||||
static void __wait_for_invalidation_complete(struct pkvm_iommu *dev)
|
||||
static void __sync_cmd_start(struct pkvm_iommu *sync)
|
||||
{
|
||||
struct pkvm_iommu *sync;
|
||||
writel_relaxed(SYNC_CMD_SYNC, sync->va + REG_NS_SYNC_CMD);
|
||||
}
|
||||
|
||||
static void __invalidation_barrier_slow(struct pkvm_iommu *sync)
|
||||
{
|
||||
size_t i, timeout;
|
||||
|
||||
/*
|
||||
* Wait for transactions to drain if SysMMU_SYNCs were registered.
|
||||
* Assumes that they are in the same power domain as the S2MPU.
|
||||
*
|
||||
* The algorithm will try initiating the SYNC if the SYNC_COMP_COMPLETE
|
||||
* bit has not been set after a given number of attempts, increasing the
|
||||
* timeout exponentially each time. If this cycle fails a given number
|
||||
* of times, the algorithm will give up completely to avoid deadlock.
|
||||
*/
|
||||
timeout = SYNC_TIMEOUT;
|
||||
for (i = 0; i < SYNC_MAX_RETRIES; i++) {
|
||||
__sync_cmd_start(sync);
|
||||
if (__wait_until(sync->va + REG_NS_SYNC_COMP, SYNC_COMP_COMPLETE, timeout))
|
||||
break;
|
||||
timeout *= SYNC_TIMEOUT_MULTIPLIER;
|
||||
}
|
||||
}
|
||||
|
||||
/* Initiate invalidation barrier. */
|
||||
static void __invalidation_barrier_init(struct pkvm_iommu *dev)
|
||||
{
|
||||
struct pkvm_iommu *sync;
|
||||
|
||||
for_each_child(sync, dev)
|
||||
__sync_cmd_start(sync);
|
||||
}
|
||||
|
||||
/* Wait for invalidation to complete. */
|
||||
static void __invalidation_barrier_complete(struct pkvm_iommu *dev)
|
||||
{
|
||||
struct pkvm_iommu *sync;
|
||||
|
||||
/*
|
||||
* Check if the SYNC_COMP_COMPLETE bit has been set for individual
|
||||
* devices. If not, fall back to non-parallel invalidation.
|
||||
*/
|
||||
for_each_child(sync, dev) {
|
||||
writel_relaxed(SYNC_CMD_SYNC, sync->va + REG_NS_SYNC_CMD);
|
||||
__wait_until(sync->va + REG_NS_SYNC_COMP, SYNC_COMP_COMPLETE);
|
||||
if (!(readl_relaxed(sync->va + REG_NS_SYNC_COMP) & SYNC_COMP_COMPLETE))
|
||||
__invalidation_barrier_slow(sync);
|
||||
}
|
||||
|
||||
/* Must not access SFRs while S2MPU is busy invalidating (v9 only). */
|
||||
@@ -195,11 +245,12 @@ static void __wait_for_invalidation_complete(struct pkvm_iommu *dev)
|
||||
static void __all_invalidation(struct pkvm_iommu *dev)
|
||||
{
|
||||
writel_relaxed(INVALIDATION_INVALIDATE, dev->va + REG_NS_ALL_INVALIDATION);
|
||||
__wait_for_invalidation_complete(dev);
|
||||
__invalidation_barrier_init(dev);
|
||||
__invalidation_barrier_complete(dev);
|
||||
}
|
||||
|
||||
static void __range_invalidation(struct pkvm_iommu *dev, phys_addr_t first_byte,
|
||||
phys_addr_t last_byte)
|
||||
static void __range_invalidation_init(struct pkvm_iommu *dev, phys_addr_t first_byte,
|
||||
phys_addr_t last_byte)
|
||||
{
|
||||
u32 start_ppn = first_byte >> RANGE_INVALIDATION_PPN_SHIFT;
|
||||
u32 end_ppn = last_byte >> RANGE_INVALIDATION_PPN_SHIFT;
|
||||
@@ -207,7 +258,7 @@ static void __range_invalidation(struct pkvm_iommu *dev, phys_addr_t first_byte,
|
||||
writel_relaxed(start_ppn, dev->va + REG_NS_RANGE_INVALIDATION_START_PPN);
|
||||
writel_relaxed(end_ppn, dev->va + REG_NS_RANGE_INVALIDATION_END_PPN);
|
||||
writel_relaxed(INVALIDATION_INVALIDATE, dev->va + REG_NS_RANGE_INVALIDATION);
|
||||
__wait_for_invalidation_complete(dev);
|
||||
__invalidation_barrier_init(dev);
|
||||
}
|
||||
|
||||
static void __set_l1entry_attr_with_prot(struct pkvm_iommu *dev, unsigned int gb,
|
||||
@@ -341,7 +392,13 @@ static void __mpt_idmap_apply(struct pkvm_iommu *dev, struct mpt *mpt,
|
||||
__set_l1entry_attr_with_fmpt(dev, gb, vid, fmpt);
|
||||
}
|
||||
}
|
||||
__range_invalidation(dev, first_byte, last_byte);
|
||||
/* Initiate invalidation, completed in __mdt_idmap_complete. */
|
||||
__range_invalidation_init(dev, first_byte, last_byte);
|
||||
}
|
||||
|
||||
static void __mpt_idmap_complete(struct pkvm_iommu *dev, struct mpt *mpt)
|
||||
{
|
||||
__invalidation_barrier_complete(dev);
|
||||
}
|
||||
|
||||
static void s2mpu_host_stage2_idmap_prepare(phys_addr_t start, phys_addr_t end,
|
||||
@@ -362,6 +419,11 @@ static void s2mpu_host_stage2_idmap_apply(struct pkvm_iommu *dev,
|
||||
__mpt_idmap_apply(dev, &host_mpt, start, end - 1);
|
||||
}
|
||||
|
||||
static void s2mpu_host_stage2_idmap_complete(struct pkvm_iommu *dev)
|
||||
{
|
||||
__mpt_idmap_complete(dev, &host_mpt);
|
||||
}
|
||||
|
||||
static int s2mpu_resume(struct pkvm_iommu *dev)
|
||||
{
|
||||
/*
|
||||
@@ -550,6 +612,7 @@ const struct pkvm_iommu_ops pkvm_s2mpu_ops = (struct pkvm_iommu_ops){
|
||||
.suspend = s2mpu_suspend,
|
||||
.host_stage2_idmap_prepare = s2mpu_host_stage2_idmap_prepare,
|
||||
.host_stage2_idmap_apply = s2mpu_host_stage2_idmap_apply,
|
||||
.host_stage2_idmap_complete = s2mpu_host_stage2_idmap_complete,
|
||||
.host_dabt_handler = s2mpu_host_dabt_handler,
|
||||
.data_size = sizeof(struct s2mpu_drv_data),
|
||||
};
|
||||
|
||||
@@ -929,6 +929,9 @@ static int host_complete_share(u64 addr, const struct pkvm_mem_transition *tx,
|
||||
{
|
||||
u64 size = tx->nr_pages * PAGE_SIZE;
|
||||
|
||||
if (tx->initiator.id == PKVM_ID_GUEST)
|
||||
psci_mem_protect_dec();
|
||||
|
||||
return __host_set_page_state_range(addr, size, PKVM_PAGE_SHARED_BORROWED);
|
||||
}
|
||||
|
||||
@@ -937,6 +940,9 @@ static int host_complete_unshare(u64 addr, const struct pkvm_mem_transition *tx)
|
||||
u64 size = tx->nr_pages * PAGE_SIZE;
|
||||
pkvm_id owner_id = initiator_owner_id(tx);
|
||||
|
||||
if (tx->initiator.id == PKVM_ID_GUEST)
|
||||
psci_mem_protect_inc();
|
||||
|
||||
return host_stage2_set_owner_locked(addr, size, owner_id);
|
||||
}
|
||||
|
||||
@@ -1915,7 +1921,14 @@ static int hyp_zero_page(phys_addr_t phys)
|
||||
if (!addr)
|
||||
return -EINVAL;
|
||||
memset(addr, 0, PAGE_SIZE);
|
||||
__clean_dcache_guest_page(addr, PAGE_SIZE);
|
||||
/*
|
||||
* Prefer kvm_flush_dcache_to_poc() over __clean_dcache_guest_page()
|
||||
* here as the latter may elide the CMO under the assumption that FWB
|
||||
* will be enabled on CPUs that support it. This is incorrect for the
|
||||
* host stage-2 and would otherwise lead to a malicious host potentially
|
||||
* being able to read the content of newly reclaimed guest pages.
|
||||
*/
|
||||
kvm_flush_dcache_to_poc(addr, PAGE_SIZE);
|
||||
|
||||
return hyp_fixmap_unmap();
|
||||
}
|
||||
|
||||
@@ -276,9 +276,9 @@ struct kvm_vcpu *get_shadow_vcpu(int shadow_handle, unsigned int vcpu_idx)
|
||||
|
||||
hyp_spin_lock(&shadow_lock);
|
||||
vm = find_shadow_by_handle(shadow_handle);
|
||||
if (!vm || vm->created_vcpus <= vcpu_idx)
|
||||
if (!vm || vm->nr_vcpus <= vcpu_idx)
|
||||
goto unlock;
|
||||
vcpu = &vm->shadow_vcpus[vcpu_idx].vcpu;
|
||||
vcpu = &vm->shadow_vcpus[vcpu_idx]->vcpu;
|
||||
|
||||
/* Ensure vcpu isn't loaded on more than one cpu simultaneously. */
|
||||
if (unlikely(vcpu->arch.pkvm.loaded_on_cpu)) {
|
||||
@@ -338,15 +338,11 @@ static int copy_features(struct kvm_vcpu *shadow_vcpu, struct kvm_vcpu *host_vcp
|
||||
/*
|
||||
* Check if remaining features are allowed:
|
||||
* - Performance Monitoring
|
||||
* - Scalable Vectors
|
||||
* - Pointer Authentication
|
||||
*/
|
||||
if (FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_PMUVER), PVM_ID_AA64DFR0_ALLOW))
|
||||
set_bit(KVM_ARM_VCPU_PMU_V3, allowed_features);
|
||||
|
||||
if (FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_SVE), PVM_ID_AA64PFR0_ALLOW))
|
||||
set_bit(KVM_ARM_VCPU_SVE, allowed_features);
|
||||
|
||||
if (FIELD_GET(ARM64_FEATURE_MASK(ID_AA64ISAR1_API), PVM_ID_AA64ISAR1_ALLOW) &&
|
||||
FIELD_GET(ARM64_FEATURE_MASK(ID_AA64ISAR1_APA), PVM_ID_AA64ISAR1_ALLOW))
|
||||
set_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, allowed_features);
|
||||
@@ -370,126 +366,139 @@ static int copy_features(struct kvm_vcpu *shadow_vcpu, struct kvm_vcpu *host_vcp
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void unpin_host_vcpus(struct shadow_vcpu_state *shadow_vcpus, int nr_vcpus)
|
||||
static void unpin_host_vcpu(struct shadow_vcpu_state *shadow_vcpu)
|
||||
{
|
||||
int i;
|
||||
struct kvm_vcpu *host_vcpu = shadow_vcpu->vcpu.arch.pkvm.host_vcpu;
|
||||
size_t sve_state_size;
|
||||
void *sve_state = shadow_vcpu->vcpu.arch.sve_state;
|
||||
|
||||
for (i = 0; i < nr_vcpus; i++) {
|
||||
struct kvm_vcpu *host_vcpu = shadow_vcpus[i].vcpu.arch.pkvm.host_vcpu;
|
||||
struct kvm_vcpu *shadow_vcpu = &shadow_vcpus[i].vcpu;
|
||||
size_t sve_state_size;
|
||||
void *sve_state;
|
||||
hyp_unpin_shared_mem(host_vcpu, host_vcpu + 1);
|
||||
|
||||
hyp_unpin_shared_mem(host_vcpu, host_vcpu + 1);
|
||||
if (!sve_state)
|
||||
return;
|
||||
|
||||
if (!test_bit(KVM_ARM_VCPU_SVE, shadow_vcpu->arch.features))
|
||||
continue;
|
||||
|
||||
sve_state = shadow_vcpu->arch.sve_state;
|
||||
sve_state = kern_hyp_va(sve_state);
|
||||
sve_state_size = vcpu_sve_state_size(shadow_vcpu);
|
||||
hyp_unpin_shared_mem(sve_state, sve_state + sve_state_size);
|
||||
}
|
||||
sve_state = kern_hyp_va(sve_state);
|
||||
sve_state_size = vcpu_sve_state_size(&shadow_vcpu->vcpu);
|
||||
hyp_unpin_shared_mem(sve_state, sve_state + sve_state_size);
|
||||
}
|
||||
|
||||
static int set_host_vcpus(struct shadow_vcpu_state *shadow_vcpus, int nr_vcpus,
|
||||
struct kvm_vcpu **vcpu_array, size_t vcpu_array_size)
|
||||
static void unpin_host_vcpus(struct shadow_vcpu_state *shadow_vcpus[], int nr_vcpus)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (vcpu_array_size < sizeof(*vcpu_array) * nr_vcpus)
|
||||
return -EINVAL;
|
||||
|
||||
for (i = 0; i < nr_vcpus; i++) {
|
||||
struct kvm_vcpu *host_vcpu = kern_hyp_va(vcpu_array[i]);
|
||||
|
||||
if (hyp_pin_shared_mem(host_vcpu, host_vcpu + 1)) {
|
||||
unpin_host_vcpus(shadow_vcpus, i);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
shadow_vcpus[i].vcpu.arch.pkvm.host_vcpu = host_vcpu;
|
||||
}
|
||||
|
||||
return 0;
|
||||
for (i = 0; i < nr_vcpus; i++)
|
||||
unpin_host_vcpu(shadow_vcpus[i]);
|
||||
}
|
||||
|
||||
static int init_shadow_structs(struct kvm *kvm, struct kvm_shadow_vm *vm,
|
||||
struct kvm_vcpu **vcpu_array, int nr_vcpus)
|
||||
static int init_ptrauth(struct kvm_vcpu *shadow_vcpu)
|
||||
{
|
||||
int i;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
if (test_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, shadow_vcpu->arch.features) ||
|
||||
test_bit(KVM_ARM_VCPU_PTRAUTH_GENERIC, shadow_vcpu->arch.features))
|
||||
ret = kvm_vcpu_enable_ptrauth(shadow_vcpu);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void init_shadow_vm(struct kvm *kvm, struct kvm_shadow_vm *vm,
|
||||
int nr_vcpus)
|
||||
{
|
||||
vm->host_kvm = kvm;
|
||||
vm->created_vcpus = nr_vcpus;
|
||||
vm->arch.pkvm.pvmfw_load_addr = kvm->arch.pkvm.pvmfw_load_addr;
|
||||
vm->arch.pkvm.enabled = READ_ONCE(kvm->arch.pkvm.enabled);
|
||||
}
|
||||
|
||||
for (i = 0; i < nr_vcpus; i++) {
|
||||
struct shadow_vcpu_state *shadow_state = &vm->shadow_vcpus[i];
|
||||
struct kvm_vcpu *shadow_vcpu = &shadow_state->vcpu;
|
||||
struct kvm_vcpu *host_vcpu = shadow_vcpu->arch.pkvm.host_vcpu;
|
||||
static int init_shadow_vcpu(struct shadow_vcpu_state *shadow_state,
|
||||
struct kvm_vcpu *host_vcpu,
|
||||
struct kvm_shadow_vm *vm, int vcpu_idx)
|
||||
{
|
||||
struct kvm_vcpu *shadow_vcpu = &shadow_state->vcpu;
|
||||
int ret;
|
||||
|
||||
shadow_vcpu->kvm = kvm;
|
||||
shadow_vcpu->vcpu_id = host_vcpu->vcpu_id;
|
||||
shadow_vcpu->vcpu_idx = i;
|
||||
host_vcpu = kern_hyp_va(host_vcpu);
|
||||
if (hyp_pin_shared_mem(host_vcpu, host_vcpu + 1))
|
||||
return -EBUSY;
|
||||
|
||||
ret = copy_features(shadow_vcpu, host_vcpu);
|
||||
if (ret)
|
||||
return ret;
|
||||
if (host_vcpu->vcpu_idx != vcpu_idx) {
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (test_bit(KVM_ARM_VCPU_SVE, shadow_vcpu->arch.features)) {
|
||||
size_t sve_state_size;
|
||||
void *sve_state;
|
||||
shadow_vcpu->arch.pkvm.host_vcpu = host_vcpu;
|
||||
shadow_vcpu->kvm = vm->host_kvm;
|
||||
shadow_vcpu->vcpu_id = host_vcpu->vcpu_id;
|
||||
shadow_vcpu->vcpu_idx = vcpu_idx;
|
||||
|
||||
shadow_vcpu->arch.sve_state = READ_ONCE(host_vcpu->arch.sve_state);
|
||||
shadow_vcpu->arch.sve_max_vl = READ_ONCE(host_vcpu->arch.sve_max_vl);
|
||||
ret = copy_features(shadow_vcpu, host_vcpu);
|
||||
if (ret)
|
||||
goto done;
|
||||
|
||||
sve_state = kern_hyp_va(shadow_vcpu->arch.sve_state);
|
||||
sve_state_size = vcpu_sve_state_size(shadow_vcpu);
|
||||
ret = init_ptrauth(shadow_vcpu);
|
||||
if (ret)
|
||||
goto done;
|
||||
|
||||
if (!shadow_vcpu->arch.sve_state || !sve_state_size ||
|
||||
hyp_pin_shared_mem(sve_state,
|
||||
sve_state + sve_state_size)) {
|
||||
clear_bit(KVM_ARM_VCPU_SVE,
|
||||
shadow_vcpu->arch.features);
|
||||
shadow_vcpu->arch.sve_state = NULL;
|
||||
shadow_vcpu->arch.sve_max_vl = 0;
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
if (test_bit(KVM_ARM_VCPU_SVE, shadow_vcpu->arch.features)) {
|
||||
size_t sve_state_size;
|
||||
void *sve_state;
|
||||
|
||||
if (vm->arch.pkvm.enabled)
|
||||
pkvm_vcpu_init_traps(shadow_vcpu);
|
||||
kvm_reset_pvm_sys_regs(shadow_vcpu);
|
||||
shadow_vcpu->arch.sve_state =
|
||||
READ_ONCE(host_vcpu->arch.sve_state);
|
||||
shadow_vcpu->arch.sve_max_vl =
|
||||
READ_ONCE(host_vcpu->arch.sve_max_vl);
|
||||
|
||||
vm->vcpus[i] = shadow_vcpu;
|
||||
shadow_state->vm = vm;
|
||||
sve_state = kern_hyp_va(shadow_vcpu->arch.sve_state);
|
||||
sve_state_size = vcpu_sve_state_size(shadow_vcpu);
|
||||
|
||||
shadow_vcpu->arch.hw_mmu = &vm->arch.mmu;
|
||||
shadow_vcpu->arch.pkvm.shadow_vm = vm;
|
||||
shadow_vcpu->arch.power_off = true;
|
||||
|
||||
if (test_bit(KVM_ARM_VCPU_POWER_OFF, shadow_vcpu->arch.features)) {
|
||||
shadow_vcpu->arch.pkvm.power_state = PSCI_0_2_AFFINITY_LEVEL_OFF;
|
||||
} else if (pvm_has_pvmfw(vm)) {
|
||||
if (vm->pvmfw_entry_vcpu)
|
||||
return -EINVAL;
|
||||
|
||||
vm->pvmfw_entry_vcpu = shadow_vcpu;
|
||||
shadow_vcpu->arch.reset_state.reset = true;
|
||||
shadow_vcpu->arch.pkvm.power_state = PSCI_0_2_AFFINITY_LEVEL_ON_PENDING;
|
||||
} else {
|
||||
struct vcpu_reset_state *reset_state = &shadow_vcpu->arch.reset_state;
|
||||
|
||||
reset_state->pc = *vcpu_pc(host_vcpu);
|
||||
reset_state->r0 = vcpu_get_reg(host_vcpu, 0);
|
||||
reset_state->reset = true;
|
||||
shadow_vcpu->arch.pkvm.power_state = PSCI_0_2_AFFINITY_LEVEL_ON_PENDING;
|
||||
if (!shadow_vcpu->arch.sve_state || !sve_state_size ||
|
||||
hyp_pin_shared_mem(sve_state, sve_state + sve_state_size)) {
|
||||
clear_bit(KVM_ARM_VCPU_SVE, shadow_vcpu->arch.features);
|
||||
shadow_vcpu->arch.sve_state = NULL;
|
||||
shadow_vcpu->arch.sve_max_vl = 0;
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
if (vm->arch.pkvm.enabled)
|
||||
pkvm_vcpu_init_traps(shadow_vcpu);
|
||||
kvm_reset_pvm_sys_regs(shadow_vcpu);
|
||||
|
||||
vm->vcpus[vcpu_idx] = shadow_vcpu;
|
||||
shadow_state->vm = vm;
|
||||
|
||||
shadow_vcpu->arch.hw_mmu = &vm->arch.mmu;
|
||||
shadow_vcpu->arch.pkvm.shadow_vm = vm;
|
||||
shadow_vcpu->arch.power_off = true;
|
||||
|
||||
if (test_bit(KVM_ARM_VCPU_POWER_OFF, shadow_vcpu->arch.features)) {
|
||||
shadow_vcpu->arch.pkvm.power_state =
|
||||
PSCI_0_2_AFFINITY_LEVEL_OFF;
|
||||
} else if (pvm_has_pvmfw(vm)) {
|
||||
if (vm->pvmfw_entry_vcpu) {
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
}
|
||||
|
||||
vm->pvmfw_entry_vcpu = shadow_vcpu;
|
||||
shadow_vcpu->arch.reset_state.reset = true;
|
||||
shadow_vcpu->arch.pkvm.power_state =
|
||||
PSCI_0_2_AFFINITY_LEVEL_ON_PENDING;
|
||||
} else {
|
||||
struct vcpu_reset_state *reset_state =
|
||||
&shadow_vcpu->arch.reset_state;
|
||||
|
||||
reset_state->pc = *vcpu_pc(host_vcpu);
|
||||
reset_state->r0 = vcpu_get_reg(host_vcpu, 0);
|
||||
reset_state->reset = true;
|
||||
shadow_vcpu->arch.pkvm.power_state =
|
||||
PSCI_0_2_AFFINITY_LEVEL_ON_PENDING;
|
||||
}
|
||||
|
||||
done:
|
||||
if (ret)
|
||||
unpin_host_vcpu(shadow_state);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool __exists_shadow(struct kvm *host_kvm)
|
||||
@@ -578,7 +587,7 @@ static size_t pkvm_get_shadow_size(int num_vcpus)
|
||||
{
|
||||
/* Shadow space for the vm struct and all of its vcpu states. */
|
||||
return sizeof(struct kvm_shadow_vm) +
|
||||
sizeof(struct shadow_vcpu_state) * num_vcpus;
|
||||
sizeof(struct shadow_vcpu_state *) * num_vcpus;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -600,14 +609,14 @@ static int check_shadow_size(int nr_vcpus, size_t shadow_size)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void drain_shadow_vcpus(struct shadow_vcpu_state *shadow_vcpus,
|
||||
static void drain_shadow_vcpus(struct shadow_vcpu_state *shadow_vcpus[],
|
||||
unsigned int nr_vcpus,
|
||||
struct kvm_hyp_memcache *mc)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < nr_vcpus; i++) {
|
||||
struct kvm_vcpu *shadow_vcpu = &shadow_vcpus[i].vcpu;
|
||||
struct kvm_vcpu *shadow_vcpu = &shadow_vcpus[i]->vcpu;
|
||||
struct kvm_hyp_memcache *vcpu_mc = &shadow_vcpu->arch.pkvm_memcache;
|
||||
void *addr;
|
||||
|
||||
@@ -632,8 +641,6 @@ static void drain_shadow_vcpus(struct shadow_vcpu_state *shadow_vcpus,
|
||||
* Must be a multiple of the page size.
|
||||
* pgd: The host va of the area being donated for the stage-2 PGD for the VM.
|
||||
* Must be page aligned. Its size is implied by the VM's VTCR.
|
||||
* Note: An array to the host KVM VCPUs (host VA) is passed via the pgd, as to
|
||||
* not to be dependent on how the VCPU's are layed out in struct kvm.
|
||||
*
|
||||
* Return a unique handle to the protected VM on success,
|
||||
* negative error code on failure.
|
||||
@@ -685,19 +692,13 @@ int __pkvm_init_shadow(struct kvm *kvm,
|
||||
if (ret)
|
||||
goto err_remove_mappings;
|
||||
|
||||
ret = set_host_vcpus(vm->shadow_vcpus, nr_vcpus, pgd, pgd_size);
|
||||
if (ret)
|
||||
goto err_remove_pgd;
|
||||
|
||||
ret = init_shadow_structs(kvm, vm, pgd, nr_vcpus);
|
||||
if (ret < 0)
|
||||
goto err_unpin_host_vcpus;
|
||||
init_shadow_vm(kvm, vm, nr_vcpus);
|
||||
|
||||
/* Add the entry to the shadow table. */
|
||||
hyp_spin_lock(&shadow_lock);
|
||||
ret = insert_shadow_table(kvm, vm, shadow_size);
|
||||
if (ret < 0)
|
||||
goto err_unlock_unpin_host_vcpus;
|
||||
goto err_unlock;
|
||||
|
||||
ret = kvm_guest_prepare_stage2(vm, pgd);
|
||||
if (ret)
|
||||
@@ -708,34 +709,106 @@ int __pkvm_init_shadow(struct kvm *kvm,
|
||||
|
||||
err_remove_shadow_table:
|
||||
remove_shadow_table(vm->shadow_handle);
|
||||
err_unlock_unpin_host_vcpus:
|
||||
err_unlock:
|
||||
hyp_spin_unlock(&shadow_lock);
|
||||
err_unpin_host_vcpus:
|
||||
unpin_host_vcpus(vm->shadow_vcpus, nr_vcpus);
|
||||
err_remove_pgd:
|
||||
WARN_ON(__pkvm_hyp_donate_host(hyp_virt_to_pfn(pgd), nr_pgd_pages));
|
||||
|
||||
err_remove_mappings:
|
||||
/* Clear the donated shadow memory on failure to avoid data leaks. */
|
||||
memset(vm, 0, shadow_size);
|
||||
WARN_ON(__pkvm_hyp_donate_host(hyp_phys_to_pfn(shadow_pa),
|
||||
shadow_size >> PAGE_SHIFT));
|
||||
|
||||
err:
|
||||
hyp_unpin_shared_mem(kvm, kvm + 1);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize the protected vcpu state shadow copy in host-donated memory.
|
||||
*
|
||||
* shadow_handle: The handle for the protected vm.
|
||||
* host_vcpu: A pointer to the corresponding host vcpu (host va).
|
||||
* shadow_vcpu_hva: The host va of the area being donated for the vcpu state.
|
||||
* Must be page aligned. The size of the area must be equal to
|
||||
* the paged-aligned size of kvm_shadow_vcpu_state.
|
||||
*
|
||||
* Return 0 on success, negative error code on failure.
|
||||
*/
|
||||
int __pkvm_init_shadow_vcpu(unsigned int shadow_handle,
|
||||
struct kvm_vcpu *host_vcpu,
|
||||
void *shadow_vcpu_hva)
|
||||
{
|
||||
struct kvm_shadow_vm *vm;
|
||||
struct shadow_vcpu_state *shadow_state = kern_hyp_va(shadow_vcpu_hva);
|
||||
size_t vcpu_state_sz = sizeof(*shadow_state);
|
||||
u64 nr_pages = PAGE_ALIGN(vcpu_state_sz) >> PAGE_SHIFT;
|
||||
unsigned int idx;
|
||||
int ret;
|
||||
|
||||
if (!PAGE_ALIGNED(shadow_vcpu_hva))
|
||||
return -EINVAL;
|
||||
|
||||
ret = __pkvm_host_donate_hyp(hyp_virt_to_pfn(shadow_state),
|
||||
nr_pages);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
memset(shadow_state, 0, vcpu_state_sz);
|
||||
|
||||
hyp_spin_lock(&shadow_lock);
|
||||
|
||||
vm = find_shadow_by_handle(shadow_handle);
|
||||
if (!vm) {
|
||||
ret = -ENOENT;
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
idx = vm->nr_vcpus;
|
||||
if (idx >= vm->created_vcpus) {
|
||||
ret = -EINVAL;
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
ret = init_shadow_vcpu(shadow_state, host_vcpu, vm, idx);
|
||||
if (ret)
|
||||
goto unlock;
|
||||
|
||||
vm->shadow_vcpus[idx] = shadow_state;
|
||||
vm->nr_vcpus++;
|
||||
unlock:
|
||||
hyp_spin_unlock(&shadow_lock);
|
||||
|
||||
if (ret) {
|
||||
memset(shadow_state, 0, vcpu_state_sz);
|
||||
WARN_ON(__pkvm_hyp_donate_host(hyp_virt_to_pfn(shadow_state),
|
||||
nr_pages));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void teardown_donated_memory(struct kvm_hyp_memcache *mc, void *addr,
|
||||
size_t size)
|
||||
{
|
||||
u64 pfn = hyp_phys_to_pfn(__hyp_pa(addr));
|
||||
u64 nr_pages = size >> PAGE_SHIFT;
|
||||
void *start;
|
||||
|
||||
memset(addr, 0, size);
|
||||
kvm_flush_dcache_to_poc(addr, size);
|
||||
|
||||
for (start = addr; start < addr + size; start += PAGE_SIZE)
|
||||
push_hyp_memcache(mc, start, hyp_virt_to_phys);
|
||||
|
||||
WARN_ON(__pkvm_hyp_donate_host(pfn, nr_pages));
|
||||
}
|
||||
|
||||
int __pkvm_teardown_shadow(int shadow_handle)
|
||||
{
|
||||
struct kvm_hyp_memcache *mc;
|
||||
struct kvm_shadow_vm *vm;
|
||||
struct kvm *host_kvm;
|
||||
size_t shadow_size;
|
||||
unsigned int nr_vcpus;
|
||||
int err;
|
||||
u64 pfn;
|
||||
u64 nr_pages;
|
||||
void *addr;
|
||||
int i;
|
||||
|
||||
/* Lookup then remove entry from the shadow table. */
|
||||
@@ -751,6 +824,9 @@ int __pkvm_teardown_shadow(int shadow_handle)
|
||||
goto err_unlock;
|
||||
}
|
||||
|
||||
host_kvm = vm->host_kvm;
|
||||
nr_vcpus = vm->nr_vcpus;
|
||||
|
||||
/*
|
||||
* Clear the tracking for last_loaded_vcpu for all cpus for this vm in
|
||||
* case the same addresses for those vcpus are reused for future vms.
|
||||
@@ -770,22 +846,17 @@ int __pkvm_teardown_shadow(int shadow_handle)
|
||||
hyp_spin_unlock(&shadow_lock);
|
||||
|
||||
/* Reclaim guest pages, and page-table pages */
|
||||
mc = &vm->host_kvm->arch.pkvm.teardown_mc;
|
||||
mc = &host_kvm->arch.pkvm.teardown_mc;
|
||||
reclaim_guest_pages(vm, mc);
|
||||
drain_shadow_vcpus(vm->shadow_vcpus, vm->created_vcpus, mc);
|
||||
unpin_host_vcpus(vm->shadow_vcpus, vm->created_vcpus);
|
||||
drain_shadow_vcpus(vm->shadow_vcpus, nr_vcpus, mc);
|
||||
unpin_host_vcpus(vm->shadow_vcpus, nr_vcpus);
|
||||
|
||||
for (i = 0; i < nr_vcpus; i++)
|
||||
teardown_donated_memory(mc, vm->shadow_vcpus[i],
|
||||
PAGE_ALIGN(sizeof(vm->shadow_vcpus[i])));
|
||||
teardown_donated_memory(mc, vm, vm->shadow_area_size);
|
||||
|
||||
/* Push the metadata pages to the teardown memcache */
|
||||
shadow_size = vm->shadow_area_size;
|
||||
host_kvm = vm->host_kvm;
|
||||
memset(vm, 0, shadow_size);
|
||||
for (addr = vm; addr < ((void *)vm + shadow_size); addr += PAGE_SIZE)
|
||||
push_hyp_memcache(mc, addr, hyp_virt_to_phys);
|
||||
hyp_unpin_shared_mem(host_kvm, host_kvm + 1);
|
||||
|
||||
pfn = hyp_phys_to_pfn(__hyp_pa(vm));
|
||||
nr_pages = shadow_size >> PAGE_SHIFT;
|
||||
WARN_ON(__pkvm_hyp_donate_host(pfn, nr_pages));
|
||||
return 0;
|
||||
|
||||
err_unlock:
|
||||
@@ -851,14 +922,7 @@ void pkvm_reset_vcpu(struct kvm_vcpu *vcpu)
|
||||
|
||||
WARN_ON(!reset_state->reset);
|
||||
|
||||
if (test_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, vcpu->arch.features) ||
|
||||
test_bit(KVM_ARM_VCPU_PTRAUTH_GENERIC, vcpu->arch.features)) {
|
||||
/*
|
||||
* This call should not fail since we've already checked for
|
||||
* feature support on initialization.
|
||||
*/
|
||||
WARN_ON(kvm_vcpu_enable_ptrauth(vcpu));
|
||||
}
|
||||
init_ptrauth(vcpu);
|
||||
|
||||
/* Reset core registers */
|
||||
memset(vcpu_gp_regs(vcpu), 0, sizeof(*vcpu_gp_regs(vcpu)));
|
||||
@@ -913,7 +977,7 @@ struct kvm_vcpu *pvm_mpidr_to_vcpu(struct kvm_shadow_vm *vm, unsigned long mpidr
|
||||
|
||||
mpidr &= MPIDR_HWID_BITMASK;
|
||||
|
||||
for (i = 0; i < vm->created_vcpus; i++) {
|
||||
for (i = 0; i < READ_ONCE(vm->nr_vcpus); i++) {
|
||||
vcpu = vm->vcpus[i];
|
||||
|
||||
if (mpidr == kvm_vcpu_get_mpidr_aff(vcpu))
|
||||
@@ -1030,7 +1094,7 @@ static bool pvm_psci_vcpu_affinity_info(struct kvm_vcpu *vcpu)
|
||||
* then if at least one is PENDING_ON then return PENDING_ON.
|
||||
* Otherwise, return OFF.
|
||||
*/
|
||||
for (i = 0; i < vm->created_vcpus; i++) {
|
||||
for (i = 0; i < READ_ONCE(vm->nr_vcpus); i++) {
|
||||
tmp = vm->vcpus[i];
|
||||
mpidr = kvm_vcpu_get_mpidr_aff(tmp);
|
||||
|
||||
@@ -1240,7 +1304,7 @@ out_guest_err:
|
||||
|
||||
static bool pkvm_install_ioguard_page(struct kvm_vcpu *vcpu, u64 *exit_code)
|
||||
{
|
||||
u32 retval = SMCCC_RET_SUCCESS;
|
||||
u64 retval = SMCCC_RET_SUCCESS;
|
||||
u64 ipa = smccc_get_arg1(vcpu);
|
||||
int ret;
|
||||
|
||||
@@ -1332,6 +1396,8 @@ bool kvm_handle_pvm_hvc64(struct kvm_vcpu *vcpu, u64 *exit_code)
|
||||
return pkvm_install_ioguard_page(vcpu, exit_code);
|
||||
case ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_UNMAP_FUNC_ID:
|
||||
if (__pkvm_remove_ioguard_page(vcpu, vcpu_get_reg(vcpu, 1)))
|
||||
val[0] = SMCCC_RET_INVALID_PARAMETER;
|
||||
else
|
||||
val[0] = SMCCC_RET_SUCCESS;
|
||||
break;
|
||||
case ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_INFO_FUNC_ID:
|
||||
|
||||
@@ -235,7 +235,7 @@ static u64 psci_mem_protect(s64 offset)
|
||||
return cnt;
|
||||
|
||||
if (!cnt || !new)
|
||||
psci_call(PSCI_1_1_FN64_MEM_PROTECT, offset < 0 ? 0 : 1, 0, 0);
|
||||
psci_call(PSCI_1_1_FN_MEM_PROTECT, offset < 0 ? 0 : 1, 0, 0);
|
||||
|
||||
cnt = new;
|
||||
return cnt;
|
||||
@@ -307,10 +307,8 @@ static unsigned long psci_1_0_handler(u64 func_id, struct kvm_cpu_context *host_
|
||||
case PSCI_1_1_FN64_SYSTEM_RESET2:
|
||||
pkvm_clear_pvmfw_pages();
|
||||
hyp_spin_lock(&mem_protect_lock);
|
||||
if (psci_mem_protect_active()) {
|
||||
return psci_0_2_handler(PSCI_0_2_FN_SYSTEM_RESET,
|
||||
host_ctxt);
|
||||
}
|
||||
if (psci_mem_protect_active())
|
||||
cpu_reg(host_ctxt, 0) = PSCI_0_2_FN_SYSTEM_RESET;
|
||||
fallthrough;
|
||||
case PSCI_1_0_FN_PSCI_FEATURES:
|
||||
case PSCI_1_0_FN_SET_SUSPEND_MODE:
|
||||
|
||||
@@ -120,7 +120,7 @@ static void __hyp_vgic_restore_state(struct kvm_vcpu *vcpu)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Disable host events, enable guest events
|
||||
*/
|
||||
static bool __pmu_switch_to_guest(struct kvm_cpu_context *host_ctxt)
|
||||
@@ -140,7 +140,7 @@ static bool __pmu_switch_to_guest(struct kvm_cpu_context *host_ctxt)
|
||||
return (pmu->events_host || pmu->events_guest);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Disable guest events, enable host events
|
||||
*/
|
||||
static void __pmu_switch_to_host(struct kvm_cpu_context *host_ctxt)
|
||||
@@ -158,7 +158,7 @@ static void __pmu_switch_to_host(struct kvm_cpu_context *host_ctxt)
|
||||
write_sysreg(pmu->events_host, pmcntenset_el0);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Handler for protected VM MSR, MRS or System instruction execution in AArch64.
|
||||
*
|
||||
* Returns true if the hypervisor has handled the exit, and control should go
|
||||
@@ -175,7 +175,7 @@ static bool kvm_handle_pvm_sys64(struct kvm_vcpu *vcpu, u64 *exit_code)
|
||||
kvm_handle_pvm_sysreg(vcpu, exit_code));
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Handler for protected floating-point and Advanced SIMD accesses.
|
||||
*
|
||||
* Returns true if the hypervisor has handled the exit, and control should go
|
||||
|
||||
@@ -89,8 +89,8 @@ static u64 get_pvm_id_aa64pfr0(const struct kvm_vcpu *vcpu)
|
||||
u64 set_mask = 0;
|
||||
u64 allow_mask = PVM_ID_AA64PFR0_ALLOW;
|
||||
|
||||
if (!vcpu_has_sve(vcpu))
|
||||
allow_mask &= ~ARM64_FEATURE_MASK(ID_AA64PFR0_SVE);
|
||||
/* SVE not supported for now. */
|
||||
allow_mask &= ~ARM64_FEATURE_MASK(ID_AA64PFR0_SVE);
|
||||
|
||||
set_mask |= get_restricted_features_unsigned(id_aa64pfr0_el1_sys_val,
|
||||
PVM_ID_AA64PFR0_RESTRICT_UNSIGNED);
|
||||
|
||||
@@ -117,8 +117,8 @@ void __init kvm_hyp_reserve(void)
|
||||
*/
|
||||
static int __create_el2_shadow(struct kvm *kvm)
|
||||
{
|
||||
struct kvm_vcpu *vcpu, **vcpu_array;
|
||||
size_t pgd_sz, shadow_sz;
|
||||
struct kvm_vcpu *vcpu;
|
||||
size_t pgd_sz, shadow_sz, vcpu_state_sz;
|
||||
void *pgd, *shadow_addr;
|
||||
unsigned long idx;
|
||||
int shadow_handle;
|
||||
@@ -137,21 +137,15 @@ static int __create_el2_shadow(struct kvm *kvm)
|
||||
if (!pgd)
|
||||
return -ENOMEM;
|
||||
|
||||
/* Allocate memory to donate to hyp for the kvm and vcpu state. */
|
||||
/* Allocate memory to donate to hyp for the kvm and vcpu state pointers. */
|
||||
shadow_sz = PAGE_ALIGN(KVM_SHADOW_VM_SIZE +
|
||||
SHADOW_VCPU_STATE_SIZE * kvm->created_vcpus);
|
||||
sizeof(void *) * kvm->created_vcpus);
|
||||
shadow_addr = alloc_pages_exact(shadow_sz, GFP_KERNEL_ACCOUNT);
|
||||
if (!shadow_addr) {
|
||||
ret = -ENOMEM;
|
||||
goto free_pgd;
|
||||
}
|
||||
|
||||
/* Stash the vcpu pointers into the PGD */
|
||||
BUILD_BUG_ON(KVM_MAX_VCPUS > (PAGE_SIZE / sizeof(u64)));
|
||||
vcpu_array = pgd;
|
||||
kvm_for_each_vcpu(idx, vcpu, kvm)
|
||||
vcpu_array[idx] = vcpu;
|
||||
|
||||
/* Donate the shadow memory to hyp and let hyp initialize it. */
|
||||
ret = kvm_call_hyp_nvhe(__pkvm_init_shadow, kvm, shadow_addr, shadow_sz,
|
||||
pgd);
|
||||
@@ -163,8 +157,35 @@ static int __create_el2_shadow(struct kvm *kvm)
|
||||
/* Store the shadow handle given by hyp for future call reference. */
|
||||
kvm->arch.pkvm.shadow_handle = shadow_handle;
|
||||
|
||||
/* Donate memory for the vcpu state at hyp and initialize it. */
|
||||
vcpu_state_sz = PAGE_ALIGN(SHADOW_VCPU_STATE_SIZE);
|
||||
kvm_for_each_vcpu (idx, vcpu, kvm) {
|
||||
void *vcpu_state;
|
||||
|
||||
/* Indexing of the vcpus to be sequential starting at 0. */
|
||||
if (WARN_ON(vcpu->vcpu_idx != idx)) {
|
||||
ret = -EINVAL;
|
||||
goto destroy_vm;
|
||||
}
|
||||
vcpu_state = alloc_pages_exact(vcpu_state_sz, GFP_KERNEL_ACCOUNT);
|
||||
if (!vcpu_state) {
|
||||
ret = -ENOMEM;
|
||||
goto destroy_vm;
|
||||
}
|
||||
|
||||
ret = kvm_call_hyp_nvhe(__pkvm_init_shadow_vcpu, shadow_handle,
|
||||
vcpu, vcpu_state);
|
||||
if (ret) {
|
||||
free_pages_exact(vcpu_state, vcpu_state_sz);
|
||||
goto destroy_vm;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
destroy_vm:
|
||||
kvm_shadow_destroy(kvm);
|
||||
return ret;
|
||||
free_shadow:
|
||||
free_pages_exact(shadow_addr, shadow_sz);
|
||||
free_pgd:
|
||||
|
||||
@@ -188,15 +188,11 @@ static void kvm_psci_system_reset2(struct kvm_vcpu *vcpu)
|
||||
|
||||
static unsigned long kvm_psci_check_allowed_function(struct kvm_vcpu *vcpu, u32 fn)
|
||||
{
|
||||
switch(fn) {
|
||||
case PSCI_0_2_FN64_CPU_SUSPEND:
|
||||
case PSCI_0_2_FN64_CPU_ON:
|
||||
case PSCI_0_2_FN64_AFFINITY_INFO:
|
||||
/* Disallow these functions for 32bit guests */
|
||||
if (vcpu_mode_is_32bit(vcpu))
|
||||
return PSCI_RET_NOT_SUPPORTED;
|
||||
break;
|
||||
}
|
||||
/*
|
||||
* Prevent 32 bit guests from calling 64 bit PSCI functions.
|
||||
*/
|
||||
if ((fn & PSCI_0_2_64BIT) && vcpu_mode_is_32bit(vcpu))
|
||||
return PSCI_RET_NOT_SUPPORTED;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -208,10 +204,6 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu)
|
||||
unsigned long val;
|
||||
int ret = 1;
|
||||
|
||||
val = kvm_psci_check_allowed_function(vcpu, psci_fn);
|
||||
if (val)
|
||||
goto out;
|
||||
|
||||
switch (psci_fn) {
|
||||
case PSCI_0_2_FN_PSCI_VERSION:
|
||||
/*
|
||||
@@ -279,7 +271,6 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu)
|
||||
break;
|
||||
}
|
||||
|
||||
out:
|
||||
smccc_set_retval(vcpu, val, 0, 0, 0);
|
||||
return ret;
|
||||
}
|
||||
@@ -399,6 +390,15 @@ static int kvm_psci_0_1_call(struct kvm_vcpu *vcpu)
|
||||
*/
|
||||
int kvm_psci_call(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
u32 psci_fn = smccc_get_function(vcpu);
|
||||
unsigned long val;
|
||||
|
||||
val = kvm_psci_check_allowed_function(vcpu, psci_fn);
|
||||
if (val) {
|
||||
smccc_set_retval(vcpu, val, 0, 0, 0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
switch (kvm_psci_version(vcpu, vcpu->kvm)) {
|
||||
case KVM_ARM_PSCI_1_1:
|
||||
return kvm_psci_1_x_call(vcpu, 1);
|
||||
|
||||
@@ -1048,8 +1048,7 @@ static u64 read_id_reg(const struct kvm_vcpu *vcpu,
|
||||
val |= FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_CSV2), (u64)vcpu->kvm->arch.pfr0_csv2);
|
||||
val &= ~ARM64_FEATURE_MASK(ID_AA64PFR0_CSV3);
|
||||
val |= FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_CSV3), (u64)vcpu->kvm->arch.pfr0_csv3);
|
||||
if (irqchip_in_kernel(vcpu->kvm) &&
|
||||
vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) {
|
||||
if (kvm_vgic_global_state.type == VGIC_V3) {
|
||||
val &= ~ARM64_FEATURE_MASK(ID_AA64PFR0_GIC);
|
||||
val |= FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_GIC), 1);
|
||||
}
|
||||
|
||||
@@ -683,11 +683,6 @@ int vgic_v3_probe(const struct gic_kvm_info *info)
|
||||
if (kvm_vgic_global_state.vcpu_base == 0)
|
||||
kvm_info("disabling GICv2 emulation\n");
|
||||
|
||||
if (cpus_have_const_cap(ARM64_WORKAROUND_CAVIUM_30115)) {
|
||||
group0_trap = true;
|
||||
group1_trap = true;
|
||||
}
|
||||
|
||||
if (vgic_v3_broken_seis()) {
|
||||
kvm_info("GICv3 with broken locally generated SEI\n");
|
||||
|
||||
|
||||
@@ -18,13 +18,6 @@
|
||||
* x1 - src
|
||||
*/
|
||||
SYM_FUNC_START_PI(copy_page)
|
||||
alternative_if ARM64_HAS_NO_HW_PREFETCH
|
||||
// Prefetch three cache lines ahead.
|
||||
prfm pldl1strm, [x1, #128]
|
||||
prfm pldl1strm, [x1, #256]
|
||||
prfm pldl1strm, [x1, #384]
|
||||
alternative_else_nop_endif
|
||||
|
||||
ldp x2, x3, [x1]
|
||||
ldp x4, x5, [x1, #16]
|
||||
ldp x6, x7, [x1, #32]
|
||||
@@ -39,10 +32,6 @@ alternative_else_nop_endif
|
||||
1:
|
||||
tst x0, #(PAGE_SIZE - 1)
|
||||
|
||||
alternative_if ARM64_HAS_NO_HW_PREFETCH
|
||||
prfm pldl1strm, [x1, #384]
|
||||
alternative_else_nop_endif
|
||||
|
||||
stnp x2, x3, [x0, #-256]
|
||||
ldp x2, x3, [x1]
|
||||
stnp x4, x5, [x0, #16 - 256]
|
||||
|
||||
@@ -230,6 +230,8 @@ SYM_FUNC_END_PI(__dma_flush_area)
|
||||
* - dir - DMA direction
|
||||
*/
|
||||
SYM_FUNC_START_PI(__dma_map_area)
|
||||
cmp w2, #DMA_FROM_DEVICE
|
||||
b.eq __dma_flush_area
|
||||
add x1, x0, x1
|
||||
b __dma_clean_area
|
||||
SYM_FUNC_END_PI(__dma_map_area)
|
||||
|
||||
@@ -338,12 +338,7 @@ EXPORT_SYMBOL_GPL(arm64_mm_context_put);
|
||||
/* Errata workaround post TTBRx_EL1 update. */
|
||||
asmlinkage void post_ttbr_update_workaround(void)
|
||||
{
|
||||
if (!IS_ENABLED(CONFIG_CAVIUM_ERRATUM_27456))
|
||||
return;
|
||||
|
||||
asm(ALTERNATIVE("nop; nop; nop",
|
||||
"ic iallu; dsb nsh; isb",
|
||||
ARM64_WORKAROUND_CAVIUM_27456));
|
||||
return;
|
||||
}
|
||||
|
||||
void cpu_do_switch_mm(phys_addr_t pgd_phys, struct mm_struct *mm)
|
||||
|
||||
@@ -542,9 +542,7 @@ static int __kprobes do_page_fault(unsigned long far, unsigned int esr,
|
||||
unsigned int mm_flags = FAULT_FLAG_DEFAULT;
|
||||
unsigned long addr = untagged_addr(far);
|
||||
#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
|
||||
struct vm_area_struct *orig_vma = NULL;
|
||||
struct vm_area_struct *vma;
|
||||
struct vm_area_struct pvma;
|
||||
unsigned long seq;
|
||||
#endif
|
||||
|
||||
@@ -618,41 +616,29 @@ static int __kprobes do_page_fault(unsigned long far, unsigned int esr,
|
||||
count_vm_spf_event(SPF_ABORT_ODD);
|
||||
goto spf_abort;
|
||||
}
|
||||
rcu_read_lock();
|
||||
vma = __find_vma(mm, addr);
|
||||
if (!vma || vma->vm_start > addr) {
|
||||
rcu_read_unlock();
|
||||
vma = get_vma(mm, addr);
|
||||
if (!vma) {
|
||||
count_vm_spf_event(SPF_ABORT_UNMAPPED);
|
||||
goto spf_abort;
|
||||
}
|
||||
if (!vma_can_speculate(vma, mm_flags)) {
|
||||
rcu_read_unlock();
|
||||
put_vma(vma);
|
||||
count_vm_spf_event(SPF_ABORT_NO_SPECULATE);
|
||||
goto spf_abort;
|
||||
}
|
||||
if (vma->vm_file) {
|
||||
if (!vma_get_file_ref(vma)) {
|
||||
rcu_read_unlock();
|
||||
count_vm_spf_event(SPF_ABORT_UNMAPPED);
|
||||
goto spf_abort;
|
||||
}
|
||||
orig_vma = vma;
|
||||
}
|
||||
pvma = *vma;
|
||||
rcu_read_unlock();
|
||||
|
||||
if (!mmap_seq_read_check(mm, seq, SPF_ABORT_VMA_COPY)) {
|
||||
vma_put_file_ref(orig_vma);
|
||||
put_vma(vma);
|
||||
goto spf_abort;
|
||||
}
|
||||
vma = &pvma;
|
||||
if (!(vma->vm_flags & vm_flags)) {
|
||||
put_vma(vma);
|
||||
count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
|
||||
vma_put_file_ref(orig_vma);
|
||||
goto spf_abort;
|
||||
}
|
||||
fault = do_handle_mm_fault(vma, addr & PAGE_MASK,
|
||||
mm_flags | FAULT_FLAG_SPECULATIVE, seq, regs);
|
||||
vma_put_file_ref(orig_vma);
|
||||
put_vma(vma);
|
||||
|
||||
/* Quick path to respond to signals */
|
||||
if (fault_signal_pending(fault, regs)) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Internal CPU capabilities constants, keep this list sorted
|
||||
# Internal CPU capabilities constants
|
||||
|
||||
BTI
|
||||
# Unreliable: use system_supports_32bit_el0() instead.
|
||||
@@ -26,7 +26,8 @@ HAS_IRQ_PRIO_MASKING
|
||||
HAS_LDAPR
|
||||
HAS_LSE_ATOMICS
|
||||
HAS_NO_FPSIMD
|
||||
HAS_NO_HW_PREFETCH
|
||||
# HAS_NO_HW_PREFETCH
|
||||
ANDROID_RESERVED_1
|
||||
HAS_PAN
|
||||
HAS_RAS_EXTN
|
||||
HAS_RNG
|
||||
@@ -54,15 +55,20 @@ WORKAROUND_858921
|
||||
WORKAROUND_1418040
|
||||
WORKAROUND_1463225
|
||||
WORKAROUND_1508412
|
||||
WORKAROUND_1542419
|
||||
# WORKAROUND_1542419
|
||||
ANDROID_RESERVED_2
|
||||
WORKAROUND_TRBE_OVERWRITE_FILL_MODE
|
||||
WORKAROUND_TSB_FLUSH_FAILURE
|
||||
WORKAROUND_TRBE_WRITE_OUT_OF_RANGE
|
||||
WORKAROUND_CAVIUM_23154
|
||||
WORKAROUND_CAVIUM_27456
|
||||
WORKAROUND_CAVIUM_30115
|
||||
WORKAROUND_CAVIUM_TX2_219_PRFM
|
||||
WORKAROUND_CAVIUM_TX2_219_TVM
|
||||
# WORKAROUND_CAVIUM_27456
|
||||
ANDROID_RESERVED_3
|
||||
# WORKAROUND_CAVIUM_30115
|
||||
ANDROID_RESERVED_4
|
||||
# WORKAROUND_CAVIUM_TX2_219_PRFM
|
||||
ANDROID_RESERVED_5
|
||||
# WORKAROUND_CAVIUM_TX2_219_TVM
|
||||
ANDROID_RESERVED_6
|
||||
WORKAROUND_CLEAN_CACHE
|
||||
WORKAROUND_DEVICE_LOAD_ACQUIRE
|
||||
WORKAROUND_NVIDIA_CARMEL_CNP
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
|
||||
#include <linux/bitops.h>
|
||||
#include <asm/segment.h>
|
||||
#include <linux/cache.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/current.h>
|
||||
#include <asm/cache.h>
|
||||
#include <abi/reg_ops.h>
|
||||
#include <abi/regdef.h>
|
||||
#include <abi/switch_context.h>
|
||||
|
||||
@@ -30,9 +30,11 @@ $(obj)/vmlinux.bin: vmlinux FORCE
|
||||
|
||||
suffix-$(CONFIG_KERNEL_GZIP) := gzip
|
||||
suffix-$(CONFIG_KERNEL_LZO) := lzo
|
||||
compress-$(CONFIG_KERNEL_GZIP) := gzip
|
||||
compress-$(CONFIG_KERNEL_LZO) := lzo_with_size
|
||||
|
||||
$(obj)/vmlinux.bin.$(suffix-y): $(obj)/vmlinux.bin FORCE
|
||||
$(call if_changed,$(suffix-y))
|
||||
$(call if_changed,$(compress-y))
|
||||
|
||||
LDFLAGS_piggy.o := -r --format binary --oformat elf32-h8300-linux -T
|
||||
OBJCOPYFLAGS := -O binary
|
||||
|
||||
@@ -80,12 +80,12 @@ $(obj)/vmlinux.bin: $(KBUILD_IMAGE) FORCE
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
tool_$(CONFIG_KERNEL_GZIP) = gzip
|
||||
tool_$(CONFIG_KERNEL_BZIP2) = bzip2
|
||||
tool_$(CONFIG_KERNEL_LZ4) = lz4
|
||||
tool_$(CONFIG_KERNEL_LZMA) = lzma
|
||||
tool_$(CONFIG_KERNEL_LZO) = lzo
|
||||
tool_$(CONFIG_KERNEL_XZ) = xzkern
|
||||
tool_$(CONFIG_KERNEL_ZSTD) = zstd22
|
||||
tool_$(CONFIG_KERNEL_BZIP2) = bzip2_with_size
|
||||
tool_$(CONFIG_KERNEL_LZ4) = lz4_with_size
|
||||
tool_$(CONFIG_KERNEL_LZMA) = lzma_with_size
|
||||
tool_$(CONFIG_KERNEL_LZO) = lzo_with_size
|
||||
tool_$(CONFIG_KERNEL_XZ) = xzkern_with_size
|
||||
tool_$(CONFIG_KERNEL_ZSTD) = zstd22_with_size
|
||||
|
||||
targets += vmlinux.bin.z
|
||||
|
||||
|
||||
@@ -73,15 +73,15 @@ suffix-$(CONFIG_KERNEL_XZ) := xz
|
||||
$(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,gzip)
|
||||
$(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,bzip2)
|
||||
$(call if_changed,bzip2_with_size)
|
||||
$(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,lz4)
|
||||
$(call if_changed,lz4_with_size)
|
||||
$(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,lzma)
|
||||
$(call if_changed,lzma_with_size)
|
||||
$(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,lzo)
|
||||
$(call if_changed,lzo_with_size)
|
||||
$(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,xzkern)
|
||||
$(call if_changed,xzkern_with_size)
|
||||
|
||||
LDFLAGS_piggy.o := -r --format binary --oformat $(LD_BFD) -T
|
||||
$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) FORCE
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
|
||||
#include <linux/cache.h>
|
||||
#include <linux/string.h>
|
||||
#include <asm/types.h>
|
||||
#include <asm/lppaca.h>
|
||||
|
||||
@@ -395,8 +395,6 @@ static int ___do_page_fault(struct pt_regs *regs, unsigned long address,
|
||||
vm_fault_t fault, major = 0;
|
||||
bool kprobe_fault = kprobe_page_fault(regs, 11);
|
||||
#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
|
||||
struct vm_area_struct *orig_vma = NULL;
|
||||
struct vm_area_struct pvma;
|
||||
unsigned long seq;
|
||||
#endif
|
||||
|
||||
@@ -469,49 +467,37 @@ static int ___do_page_fault(struct pt_regs *regs, unsigned long address,
|
||||
count_vm_spf_event(SPF_ABORT_ODD);
|
||||
goto spf_abort;
|
||||
}
|
||||
rcu_read_lock();
|
||||
vma = __find_vma(mm, address);
|
||||
if (!vma || vma->vm_start > address) {
|
||||
rcu_read_unlock();
|
||||
vma = get_vma(mm, address);
|
||||
if (!vma) {
|
||||
count_vm_spf_event(SPF_ABORT_UNMAPPED);
|
||||
goto spf_abort;
|
||||
}
|
||||
if (!vma_can_speculate(vma, flags)) {
|
||||
rcu_read_unlock();
|
||||
put_vma(vma);
|
||||
count_vm_spf_event(SPF_ABORT_NO_SPECULATE);
|
||||
goto spf_abort;
|
||||
}
|
||||
if (vma->vm_file) {
|
||||
if (!vma_get_file_ref(vma)) {
|
||||
rcu_read_unlock();
|
||||
count_vm_spf_event(SPF_ABORT_UNMAPPED);
|
||||
goto spf_abort;
|
||||
}
|
||||
orig_vma = vma;
|
||||
}
|
||||
pvma = *vma;
|
||||
rcu_read_unlock();
|
||||
|
||||
if (!mmap_seq_read_check(mm, seq, SPF_ABORT_VMA_COPY)) {
|
||||
vma_put_file_ref(orig_vma);
|
||||
put_vma(vma);
|
||||
goto spf_abort;
|
||||
}
|
||||
vma = &pvma;
|
||||
#ifdef CONFIG_PPC_MEM_KEYS
|
||||
if (unlikely(access_pkey_error(is_write, is_exec,
|
||||
(error_code & DSISR_KEYFAULT), vma))) {
|
||||
put_vma(vma);
|
||||
count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
|
||||
vma_put_file_ref(orig_vma);
|
||||
goto spf_abort;
|
||||
}
|
||||
#endif /* CONFIG_PPC_MEM_KEYS */
|
||||
if (unlikely(access_error(is_write, is_exec, vma))) {
|
||||
put_vma(vma);
|
||||
count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
|
||||
vma_put_file_ref(orig_vma);
|
||||
goto spf_abort;
|
||||
}
|
||||
fault = do_handle_mm_fault(vma, address,
|
||||
flags | FAULT_FLAG_SPECULATIVE, seq, regs);
|
||||
vma_put_file_ref(orig_vma);
|
||||
flags | FAULT_FLAG_SPECULATIVE, seq, regs);
|
||||
put_vma(vma);
|
||||
major |= fault & VM_FAULT_MAJOR;
|
||||
|
||||
if (fault_signal_pending(fault, regs))
|
||||
|
||||
@@ -71,17 +71,17 @@ suffix-$(CONFIG_KERNEL_ZSTD) := .zst
|
||||
$(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,gzip)
|
||||
$(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,bzip2)
|
||||
$(call if_changed,bzip2_with_size)
|
||||
$(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,lz4)
|
||||
$(call if_changed,lz4_with_size)
|
||||
$(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,lzma)
|
||||
$(call if_changed,lzma_with_size)
|
||||
$(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,lzo)
|
||||
$(call if_changed,lzo_with_size)
|
||||
$(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,xzkern)
|
||||
$(call if_changed,xzkern_with_size)
|
||||
$(obj)/vmlinux.bin.zst: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,zstd22)
|
||||
$(call if_changed,zstd22_with_size)
|
||||
|
||||
OBJCOPYFLAGS_piggy.o := -I binary -O elf64-s390 -B s390:64-bit --rename-section .data=.vmlinux.bin.compressed
|
||||
$(obj)/piggy.o: $(obj)/vmlinux.bin$(suffix-y) FORCE
|
||||
|
||||
@@ -58,13 +58,13 @@ vmlinux.bin.all-y := $(obj)/vmlinux.bin
|
||||
$(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,gzip)
|
||||
$(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,bzip2)
|
||||
$(call if_changed,bzip2_with_size)
|
||||
$(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,lzma)
|
||||
$(call if_changed,lzma_with_size)
|
||||
$(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,xzkern)
|
||||
$(call if_changed,xzkern_with_size)
|
||||
$(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,lzo)
|
||||
$(call if_changed,lzo_with_size)
|
||||
|
||||
OBJCOPYFLAGS += -R .empty_zero_page
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ config X86
|
||||
select ARCH_HAS_PMEM_API if X86_64
|
||||
select ARCH_HAS_PTE_DEVMAP if X86_64
|
||||
select ARCH_HAS_PTE_SPECIAL
|
||||
select ARCH_HAS_NONLEAF_PMD_YOUNG
|
||||
select ARCH_HAS_NONLEAF_PMD_YOUNG if PGTABLE_LEVELS > 2
|
||||
select ARCH_HAS_UACCESS_FLUSHCACHE if X86_64
|
||||
select ARCH_HAS_COPY_MC if X86_64
|
||||
select ARCH_HAS_SET_MEMORY
|
||||
|
||||
@@ -130,17 +130,17 @@ vmlinux.bin.all-$(CONFIG_X86_NEED_RELOCS) += $(obj)/vmlinux.relocs
|
||||
$(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,gzip)
|
||||
$(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,bzip2)
|
||||
$(call if_changed,bzip2_with_size)
|
||||
$(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,lzma)
|
||||
$(call if_changed,lzma_with_size)
|
||||
$(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,xzkern)
|
||||
$(call if_changed,xzkern_with_size)
|
||||
$(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,lzo)
|
||||
$(call if_changed,lzo_with_size)
|
||||
$(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,lz4)
|
||||
$(call if_changed,lz4_with_size)
|
||||
$(obj)/vmlinux.bin.zst: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,zstd22)
|
||||
$(call if_changed,zstd22_with_size)
|
||||
|
||||
suffix-$(CONFIG_KERNEL_GZIP) := gz
|
||||
suffix-$(CONFIG_KERNEL_BZIP2) := bz2
|
||||
|
||||
@@ -61,6 +61,7 @@ CONFIG_NR_CPUS=32
|
||||
CONFIG_EFI=y
|
||||
CONFIG_CMDLINE_BOOL=y
|
||||
CONFIG_CMDLINE="stack_depot_disable=on cgroup_disable=pressure"
|
||||
CONFIG_HIBERNATION=y
|
||||
CONFIG_PM_WAKELOCKS=y
|
||||
CONFIG_PM_WAKELOCKS_LIMIT=0
|
||||
# CONFIG_PM_WAKELOCKS_GC is not set
|
||||
@@ -453,6 +454,7 @@ CONFIG_USB_CONFIGFS_F_ACC=y
|
||||
CONFIG_USB_CONFIGFS_F_AUDIO_SRC=y
|
||||
CONFIG_USB_CONFIGFS_F_MIDI=y
|
||||
CONFIG_USB_CONFIGFS_F_HID=y
|
||||
CONFIG_USB_CONFIGFS_F_UVC=y
|
||||
CONFIG_TYPEC=y
|
||||
CONFIG_TYPEC_TCPM=y
|
||||
CONFIG_TYPEC_TCPCI=y
|
||||
@@ -464,6 +466,7 @@ CONFIG_MMC_CRYPTO=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
CONFIG_LEDS_CLASS_FLASH=y
|
||||
CONFIG_LEDS_CLASS_MULTICOLOR=y
|
||||
CONFIG_LEDS_TRIGGER_TIMER=y
|
||||
CONFIG_LEDS_TRIGGER_TRANSIENT=y
|
||||
CONFIG_EDAC=y
|
||||
@@ -499,6 +502,7 @@ CONFIG_EXT4_FS_SECURITY=y
|
||||
CONFIG_F2FS_FS=y
|
||||
CONFIG_F2FS_FS_SECURITY=y
|
||||
CONFIG_F2FS_FS_COMPRESSION=y
|
||||
CONFIG_F2FS_UNFAIR_RWSEM=y
|
||||
CONFIG_FS_ENCRYPTION=y
|
||||
CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y
|
||||
CONFIG_FS_VERITY=y
|
||||
@@ -582,8 +586,10 @@ CONFIG_SECURITY_SELINUX=y
|
||||
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
|
||||
CONFIG_CRYPTO_CHACHA20POLY1305=y
|
||||
CONFIG_CRYPTO_ADIANTUM=y
|
||||
CONFIG_CRYPTO_HCTR2=y
|
||||
CONFIG_CRYPTO_XCBC=y
|
||||
CONFIG_CRYPTO_BLAKE2B=y
|
||||
CONFIG_CRYPTO_POLYVAL_CLMUL_NI=y
|
||||
CONFIG_CRYPTO_MD5=y
|
||||
CONFIG_CRYPTO_SHA256_SSSE3=y
|
||||
CONFIG_CRYPTO_SHA512_SSSE3=y
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user