diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-12-22 02:01:49 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-12-22 02:01:49 +0000 |
commit | 6732714746ff0085f355c1fc82f5321f9fec60c9 (patch) | |
tree | 7b9b8a43a56d6afe0d76191e9251a2119c5830b7 | |
parent | 60662882b7bd3def130b5bb5d27ab55848d284e7 (diff) | |
parent | 197e8de785017d7c21bd59349705ac12ca3df2f9 (diff) | |
download | common-sparse-11304584-L98500030001503924.tar.gz |
Snap for 11203489 from 197e8de785017d7c21bd59349705ac12ca3df2f9 to common-android14-6.1-2023-05-exp-releasesparse-11304584-L98500030001503924sparse-11304584-L77100030001270247sparse-11304584-L04100030001417907
Change-Id: Icf9ece0e4ccc72d6017dda2bcee2e8196f473221
Signed-off-by: Coastguard Worker <android-build-coastguard-worker@google.com>
462 files changed, 38308 insertions, 10531 deletions
diff --git a/BUILD.bazel b/BUILD.bazel index 786d7193b7f8..1035027d3f17 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,10 +1,21 @@ # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2021 The Android Open Source Project +load("@bazel_skylib//rules:write_file.bzl", "write_file") load("//build/bazel_common_rules/dist:dist.bzl", "copy_to_dist_dir") -load("//build/kernel/kleaf:common_kernels.bzl", "define_common_kernels", "define_db845c") -load("//build/kernel/kleaf:kernel.bzl", "ddk_headers", "kernel_build", "kernel_images", "kernel_modules_install") -load(":modules.bzl", "COMMON_GKI_MODULES_LIST") +load("//build/kernel/kleaf:common_kernels.bzl", "define_common_kernels") +load("//build/kernel/kleaf:constants.bzl", "X86_64_OUTS") +load( + "//build/kernel/kleaf:kernel.bzl", + "checkpatch", + "ddk_headers", + "kernel_abi", + "kernel_build", + "kernel_images", + "kernel_modules_install", + "merged_kernel_uapi_headers", +) +load(":modules.bzl", "get_gki_modules_list") package( default_visibility = [ @@ -31,19 +42,77 @@ _GKI_X86_64_MAKE_GOALS = [ "modules", ] +checkpatch( + name = "checkpatch", + checkpatch_pl = "scripts/checkpatch.pl", +) + +# Deprecated - Use arch specific files from below. +alias( + name = "gki_system_dlkm_modules", + actual = "gki_system_dlkm_modules_arm64", + deprecation = """ + Common list for all architectures is deprecated. + Instead use the file corresponding to the architecture used: + i.e. `gki_system_dlkm_modules_{arch}` + """, +) + +alias( + name = "android/gki_system_dlkm_modules", + actual = "android/gki_system_dlkm_modules_arm64", + deprecation = """ + Common list for all architectures is deprecated. + Instead use the file corresponding to the architecture used: + i.e. `gki_system_dlkm_modules_{arch}` + """, +) + +write_file( + name = "gki_system_dlkm_modules_arm64", + out = "android/gki_system_dlkm_modules_arm64", + content = get_gki_modules_list("arm64") + [ + # Ensure new line at the end. + "", + ], +) + +write_file( + name = "gki_system_dlkm_modules_x86_64", + out = "android/gki_system_dlkm_modules_x86_64", + content = get_gki_modules_list("x86_64") + [ + # Ensure new line at the end. + "", + ], +) + +write_file( + name = "gki_system_dlkm_modules_risc64", + out = "android/gki_system_dlkm_modules_riscv64", + content = get_gki_modules_list("riscv64") + [ + # Ensure new line at the end. + "", + ], +) + filegroup( name = "aarch64_additional_kmi_symbol_lists", srcs = [ # keep sorted + "android/abi_gki_aarch64_asus", "android/abi_gki_aarch64_db845c", "android/abi_gki_aarch64_exynos", + "android/abi_gki_aarch64_exynosauto", "android/abi_gki_aarch64_galaxy", "android/abi_gki_aarch64_honor", "android/abi_gki_aarch64_imx", + "android/abi_gki_aarch64_meizu", "android/abi_gki_aarch64_mtk", "android/abi_gki_aarch64_oplus", "android/abi_gki_aarch64_pixel", "android/abi_gki_aarch64_qcom", + "android/abi_gki_aarch64_rockchip", + "android/abi_gki_aarch64_tuxera", "android/abi_gki_aarch64_unisoc", "android/abi_gki_aarch64_virtual_device", "android/abi_gki_aarch64_vivo", @@ -55,8 +124,9 @@ filegroup( define_common_kernels(target_configs = { "kernel_aarch64": { "kmi_symbol_list_strict_mode": True, - "module_implicit_outs": COMMON_GKI_MODULES_LIST, + "module_implicit_outs": get_gki_modules_list("arm64"), "kmi_symbol_list": "android/abi_gki_aarch64", + "kmi_symbol_list_add_only": True, "additional_kmi_symbol_lists": [":aarch64_additional_kmi_symbol_lists"], "protected_exports_list": "android/abi_gki_protected_exports_aarch64", "protected_modules_list": "android/gki_aarch64_protected_modules", @@ -64,13 +134,14 @@ define_common_kernels(target_configs = { }, "kernel_aarch64_16k": { "kmi_symbol_list_strict_mode": False, - "module_implicit_outs": COMMON_GKI_MODULES_LIST, + "module_implicit_outs": get_gki_modules_list("arm64"), "make_goals": _GKI_AARCH64_MAKE_GOALS, }, "kernel_aarch64_debug": { "kmi_symbol_list_strict_mode": False, - "module_implicit_outs": COMMON_GKI_MODULES_LIST, + "module_implicit_outs": get_gki_modules_list("arm64"), "kmi_symbol_list": "android/abi_gki_aarch64", + "kmi_symbol_list_add_only": True, "additional_kmi_symbol_lists": [":aarch64_additional_kmi_symbol_lists"], "protected_exports_list": "android/abi_gki_protected_exports_aarch64", "protected_modules_list": "android/gki_aarch64_protected_modules", @@ -78,232 +149,459 @@ define_common_kernels(target_configs = { }, "kernel_riscv64": { "kmi_symbol_list_strict_mode": False, - "module_implicit_outs": COMMON_GKI_MODULES_LIST, + "module_implicit_outs": get_gki_modules_list("riscv64"), "make_goals": _GKI_RISCV64_MAKE_GOALS, }, "kernel_x86_64": { "kmi_symbol_list_strict_mode": False, - "module_implicit_outs": COMMON_GKI_MODULES_LIST, + "module_implicit_outs": get_gki_modules_list("x86_64"), "protected_exports_list": "android/abi_gki_protected_exports_x86_64", "protected_modules_list": "android/gki_x86_64_protected_modules", "make_goals": _GKI_X86_64_MAKE_GOALS, }, "kernel_x86_64_debug": { "kmi_symbol_list_strict_mode": False, - "module_implicit_outs": COMMON_GKI_MODULES_LIST, + "module_implicit_outs": get_gki_modules_list("x86_64"), "protected_exports_list": "android/abi_gki_protected_exports_x86_64", "protected_modules_list": "android/gki_x86_64_protected_modules", "make_goals": _GKI_X86_64_MAKE_GOALS, }, }) -define_db845c( - name = "db845c", +# Microdroid is not a real device. The kernel image is built with special +# configs to reduce the size. Hence, not using mixed build. +kernel_build( + name = "kernel_aarch64_microdroid", + srcs = ["//common:kernel_aarch64_sources"], + outs = [ + "Image", + "System.map", + "modules.builtin", + "modules.builtin.modinfo", + "vmlinux", + "vmlinux.symvers", + ], + build_config = "build.config.microdroid.aarch64", + make_goals = [ + "Image", + ], +) + +copy_to_dist_dir( + name = "kernel_aarch64_microdroid_dist", + data = [ + ":kernel_aarch64_microdroid", + ], + dist_dir = "out/kernel_aarch64_microdroid/dist", + flat = True, + log = "info", +) + +# Microdroid is not a real device. The kernel image is built with special +# configs to reduce the size. Hence, not using mixed build. +kernel_build( + name = "kernel_x86_64_microdroid", + srcs = ["//common:kernel_x86_64_sources"], + outs = X86_64_OUTS, + arch = "x86_64", + build_config = "build.config.microdroid.x86_64", + make_goals = [ + "bzImage", + ], +) + +copy_to_dist_dir( + name = "kernel_x86_64_microdroid_dist", + data = [ + ":kernel_x86_64_microdroid", + ], + dist_dir = "out/kernel_x86_64_microdroid/dist", + flat = True, + log = "info", +) + +kernel_build( + name = "kernel_aarch64_crashdump", + srcs = ["//common:kernel_aarch64_sources"], + outs = [ + "Image", + ], + build_config = "build.config.crashdump.aarch64", + make_goals = [ + "Image", + ], +) + +copy_to_dist_dir( + name = "kernel_aarch64_crashdump_dist", + data = [ + ":kernel_aarch64_crashdump", + ], + dist_dir = "out/kernel_aarch64_crashdump/dist", + flat = True, + log = "info", +) + +kernel_build( + name = "kernel_x86_64_crashdump", + srcs = ["//common:kernel_x86_64_sources"], + outs = X86_64_OUTS, + arch = "x86_64", + build_config = "build.config.crashdump.x86_64", + make_goals = [ + "bzImage", + ], +) + +copy_to_dist_dir( + name = "kernel_x86_64_crashdump_dist", + data = [ + ":kernel_x86_64_crashdump", + ], + dist_dir = "out/kernel_x86_64_crashdump/dist", + flat = True, + log = "info", +) + +_DB845C_MODULE_OUTS = [ + # keep sorted + "crypto/michael_mic.ko", + "drivers/base/regmap/regmap-sdw.ko", + "drivers/base/regmap/regmap-slimbus.ko", + "drivers/bus/mhi/host/mhi.ko", + "drivers/clk/qcom/clk-qcom.ko", + "drivers/clk/qcom/clk-rpmh.ko", + "drivers/clk/qcom/clk-spmi-pmic-div.ko", + "drivers/clk/qcom/dispcc-sdm845.ko", + "drivers/clk/qcom/dispcc-sm8250.ko", + "drivers/clk/qcom/gcc-sdm845.ko", + "drivers/clk/qcom/gcc-sm8250.ko", + "drivers/clk/qcom/gcc-sm8450.ko", + "drivers/clk/qcom/gpucc-sdm845.ko", + "drivers/clk/qcom/gpucc-sm8250.ko", + "drivers/clk/qcom/lpass-gfm-sm8250.ko", + "drivers/clk/qcom/videocc-sdm845.ko", + "drivers/clk/qcom/videocc-sm8250.ko", + "drivers/cpufreq/qcom-cpufreq-hw.ko", + "drivers/dma-buf/heaps/system_heap.ko", + "drivers/dma/qcom/bam_dma.ko", + "drivers/dma/qcom/gpi.ko", + "drivers/extcon/extcon-usb-gpio.ko", + "drivers/firmware/qcom-scm.ko", + "drivers/gpio/gpio-wcd934x.ko", + "drivers/gpu/drm/bridge/display-connector.ko", + "drivers/gpu/drm/bridge/lontium-lt9611.ko", + "drivers/gpu/drm/bridge/lontium-lt9611uxc.ko", + "drivers/gpu/drm/display/drm_display_helper.ko", + "drivers/gpu/drm/display/drm_dp_aux_bus.ko", + "drivers/gpu/drm/msm/msm.ko", + "drivers/gpu/drm/scheduler/gpu-sched.ko", + "drivers/hwspinlock/qcom_hwspinlock.ko", + "drivers/i2c/busses/i2c-designware-core.ko", + "drivers/i2c/busses/i2c-designware-platform.ko", + "drivers/i2c/busses/i2c-qcom-geni.ko", + "drivers/i2c/busses/i2c-qup.ko", + "drivers/i2c/busses/i2c-rk3x.ko", + "drivers/i2c/i2c-dev.ko", + "drivers/i2c/i2c-mux.ko", + "drivers/i2c/muxes/i2c-mux-pca954x.ko", + "drivers/iio/adc/qcom-spmi-adc5.ko", + "drivers/iio/adc/qcom-vadc-common.ko", + "drivers/input/misc/pm8941-pwrkey.ko", + "drivers/interconnect/qcom/icc-bcm-voter.ko", + "drivers/interconnect/qcom/icc-osm-l3.ko", + "drivers/interconnect/qcom/icc-rpmh.ko", + "drivers/interconnect/qcom/qnoc-sdm845.ko", + "drivers/interconnect/qcom/qnoc-sm8250.ko", + "drivers/interconnect/qcom/qnoc-sm8450.ko", + "drivers/iommu/arm/arm-smmu/arm_smmu.ko", + "drivers/irqchip/qcom-pdc.ko", + "drivers/leds/rgb/leds-qcom-lpg.ko", + "drivers/mailbox/qcom-apcs-ipc-mailbox.ko", + "drivers/mailbox/qcom-ipcc.ko", + "drivers/media/platform/qcom/venus/venus-core.ko", + "drivers/media/platform/qcom/venus/venus-dec.ko", + "drivers/media/platform/qcom/venus/venus-enc.ko", + "drivers/mfd/qcom-spmi-pmic.ko", + "drivers/mfd/wcd934x.ko", + "drivers/misc/fastrpc.ko", + "drivers/mmc/host/cqhci.ko", + "drivers/mmc/host/sdhci-msm.ko", + "drivers/net/can/spi/mcp251xfd/mcp251xfd.ko", + "drivers/net/wireless/ath/ath.ko", + "drivers/net/wireless/ath/ath10k/ath10k_core.ko", + "drivers/net/wireless/ath/ath10k/ath10k_pci.ko", + "drivers/net/wireless/ath/ath10k/ath10k_snoc.ko", + "drivers/net/wireless/ath/ath11k/ath11k.ko", + "drivers/net/wireless/ath/ath11k/ath11k_ahb.ko", + "drivers/net/wireless/ath/ath11k/ath11k_pci.ko", + "drivers/nvmem/nvmem_qfprom.ko", + "drivers/phy/qualcomm/phy-qcom-qmp-combo.ko", + "drivers/phy/qualcomm/phy-qcom-qmp-pcie.ko", + "drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.ko", + "drivers/phy/qualcomm/phy-qcom-qmp-ufs.ko", + "drivers/phy/qualcomm/phy-qcom-qmp-usb.ko", + "drivers/phy/qualcomm/phy-qcom-qusb2.ko", + "drivers/phy/qualcomm/phy-qcom-snps-femto-v2.ko", + "drivers/phy/qualcomm/phy-qcom-usb-hs.ko", + "drivers/pinctrl/qcom/pinctrl-lpass-lpi.ko", + "drivers/pinctrl/qcom/pinctrl-msm.ko", + "drivers/pinctrl/qcom/pinctrl-sdm845.ko", + "drivers/pinctrl/qcom/pinctrl-sm8250.ko", + "drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.ko", + "drivers/pinctrl/qcom/pinctrl-sm8450.ko", + "drivers/pinctrl/qcom/pinctrl-spmi-gpio.ko", + "drivers/pinctrl/qcom/pinctrl-spmi-mpp.ko", + "drivers/power/reset/qcom-pon.ko", + "drivers/power/reset/reboot-mode.ko", + "drivers/power/reset/syscon-reboot-mode.ko", + "drivers/regulator/gpio-regulator.ko", + "drivers/regulator/qcom-rpmh-regulator.ko", + "drivers/regulator/qcom_spmi-regulator.ko", + "drivers/regulator/qcom_usb_vbus-regulator.ko", + "drivers/remoteproc/qcom_common.ko", + "drivers/remoteproc/qcom_pil_info.ko", + "drivers/remoteproc/qcom_q6v5.ko", + "drivers/remoteproc/qcom_q6v5_adsp.ko", + "drivers/remoteproc/qcom_q6v5_mss.ko", + "drivers/remoteproc/qcom_q6v5_pas.ko", + "drivers/remoteproc/qcom_q6v5_wcss.ko", + "drivers/remoteproc/qcom_sysmon.ko", + "drivers/reset/reset-qcom-aoss.ko", + "drivers/reset/reset-qcom-pdc.ko", + "drivers/rpmsg/qcom_glink.ko", + "drivers/rpmsg/qcom_glink_rpm.ko", + "drivers/rpmsg/qcom_glink_smem.ko", + "drivers/rpmsg/qcom_smd.ko", + "drivers/rpmsg/rpmsg_ns.ko", + "drivers/rtc/rtc-pm8xxx.ko", + "drivers/slimbus/slim-qcom-ngd-ctrl.ko", + "drivers/slimbus/slimbus.ko", + "drivers/soc/qcom/apr.ko", + "drivers/soc/qcom/cmd-db.ko", + "drivers/soc/qcom/cpr.ko", + "drivers/soc/qcom/llcc-qcom.ko", + "drivers/soc/qcom/mdt_loader.ko", + "drivers/soc/qcom/pdr_interface.ko", + "drivers/soc/qcom/qcom_aoss.ko", + "drivers/soc/qcom/qcom_rpmh.ko", + "drivers/soc/qcom/qmi_helpers.ko", + "drivers/soc/qcom/rmtfs_mem.ko", + "drivers/soc/qcom/rpmhpd.ko", + "drivers/soc/qcom/smem.ko", + "drivers/soc/qcom/smp2p.ko", + "drivers/soc/qcom/smsm.ko", + "drivers/soc/qcom/socinfo.ko", + "drivers/soc/qcom/spm.ko", + "drivers/soundwire/soundwire-bus.ko", + "drivers/soundwire/soundwire-qcom.ko", + "drivers/spi/spi-geni-qcom.ko", + "drivers/spi/spi-pl022.ko", + "drivers/spi/spi-qcom-qspi.ko", + "drivers/spi/spi-qup.ko", + "drivers/spmi/spmi-pmic-arb.ko", + "drivers/thermal/qcom/lmh.ko", + "drivers/thermal/qcom/qcom-spmi-adc-tm5.ko", + "drivers/thermal/qcom/qcom-spmi-temp-alarm.ko", + "drivers/thermal/qcom/qcom_tsens.ko", + "drivers/tty/serial/msm_serial.ko", + "drivers/ufs/host/ufs_qcom.ko", + "drivers/usb/common/ulpi.ko", + "drivers/usb/host/ohci-hcd.ko", + "drivers/usb/host/ohci-pci.ko", + "drivers/usb/host/ohci-platform.ko", + "drivers/usb/typec/qcom-pmic-typec.ko", + "net/mac80211/mac80211.ko", + "net/qrtr/qrtr.ko", + "net/qrtr/qrtr-mhi.ko", + "net/qrtr/qrtr-smd.ko", + "net/qrtr/qrtr-tun.ko", + "net/wireless/cfg80211.ko", + "sound/soc/codecs/snd-soc-dmic.ko", + "sound/soc/codecs/snd-soc-hdmi-codec.ko", + "sound/soc/codecs/snd-soc-lpass-macro-common.ko", + "sound/soc/codecs/snd-soc-lpass-va-macro.ko", + "sound/soc/codecs/snd-soc-lpass-wsa-macro.ko", + "sound/soc/codecs/snd-soc-max98927.ko", + "sound/soc/codecs/snd-soc-rl6231.ko", + "sound/soc/codecs/snd-soc-rt5663.ko", + "sound/soc/codecs/snd-soc-wcd-mbhc.ko", + "sound/soc/codecs/snd-soc-wcd9335.ko", + "sound/soc/codecs/snd-soc-wcd934x.ko", + "sound/soc/codecs/snd-soc-wsa881x.ko", + "sound/soc/qcom/qdsp6/q6adm.ko", + "sound/soc/qcom/qdsp6/q6afe.ko", + "sound/soc/qcom/qdsp6/q6afe-clocks.ko", + "sound/soc/qcom/qdsp6/q6afe-dai.ko", + "sound/soc/qcom/qdsp6/q6apm-dai.ko", + "sound/soc/qcom/qdsp6/q6apm-lpass-dais.ko", + "sound/soc/qcom/qdsp6/q6asm.ko", + "sound/soc/qcom/qdsp6/q6asm-dai.ko", + "sound/soc/qcom/qdsp6/q6core.ko", + "sound/soc/qcom/qdsp6/q6prm.ko", + "sound/soc/qcom/qdsp6/q6prm-clocks.ko", + "sound/soc/qcom/qdsp6/q6routing.ko", + "sound/soc/qcom/qdsp6/snd-q6apm.ko", + "sound/soc/qcom/qdsp6/snd-q6dsp-common.ko", + "sound/soc/qcom/snd-soc-qcom-common.ko", + "sound/soc/qcom/snd-soc-qcom-sdw.ko", + "sound/soc/qcom/snd-soc-sdm845.ko", + "sound/soc/qcom/snd-soc-sm8250.ko", +] + +_DB845C_WATCHDOG_MODULE_OUTS = [ + "drivers/watchdog/pm8916_wdt.ko", + "drivers/watchdog/qcom-wdt.ko", +] + +kernel_build( + name = "db845c_no_kgdb", outs = [ "arch/arm64/boot/dts/qcom/qrb5165-rb5.dtb", "arch/arm64/boot/dts/qcom/sdm845-db845c.dtb", "arch/arm64/boot/dts/qcom/sm8450-qrd.dtb", ], - define_abi_targets = True, - kmi_symbol_list = "//common:android/abi_gki_aarch64_db845c", + # Enable mixed build. + base_kernel = ":kernel_aarch64", + build_config = "build.config.db845c", + collect_unstripped_modules = True, + kmi_symbol_list = "android/abi_gki_aarch64_db845c", make_goals = [ "modules", "qcom/sdm845-db845c.dtb", "qcom/qrb5165-rb5.dtb", "qcom/sm8450-qrd.dtb", ], - module_outs = [ - # keep sorted - "crypto/michael_mic.ko", - "drivers/base/regmap/regmap-sdw.ko", - "drivers/base/regmap/regmap-slimbus.ko", - "drivers/bus/mhi/host/mhi.ko", - "drivers/clk/qcom/clk-qcom.ko", - "drivers/clk/qcom/clk-rpmh.ko", - "drivers/clk/qcom/clk-spmi-pmic-div.ko", - "drivers/clk/qcom/dispcc-sdm845.ko", - "drivers/clk/qcom/dispcc-sm8250.ko", - "drivers/clk/qcom/gcc-sdm845.ko", - "drivers/clk/qcom/gcc-sm8250.ko", - "drivers/clk/qcom/gcc-sm8450.ko", - "drivers/clk/qcom/gpucc-sdm845.ko", - "drivers/clk/qcom/gpucc-sm8250.ko", - "drivers/clk/qcom/lpass-gfm-sm8250.ko", - "drivers/clk/qcom/videocc-sdm845.ko", - "drivers/clk/qcom/videocc-sm8250.ko", - "drivers/cpufreq/qcom-cpufreq-hw.ko", - "drivers/dma-buf/heaps/system_heap.ko", - "drivers/dma/qcom/bam_dma.ko", - "drivers/dma/qcom/gpi.ko", - "drivers/extcon/extcon-usb-gpio.ko", - "drivers/firmware/qcom-scm.ko", - "drivers/gpio/gpio-wcd934x.ko", - "drivers/gpu/drm/bridge/display-connector.ko", - "drivers/gpu/drm/bridge/lontium-lt9611.ko", - "drivers/gpu/drm/bridge/lontium-lt9611uxc.ko", - "drivers/gpu/drm/display/drm_display_helper.ko", - "drivers/gpu/drm/display/drm_dp_aux_bus.ko", - "drivers/gpu/drm/msm/msm.ko", - "drivers/gpu/drm/scheduler/gpu-sched.ko", - "drivers/hwspinlock/qcom_hwspinlock.ko", - "drivers/i2c/busses/i2c-designware-core.ko", - "drivers/i2c/busses/i2c-designware-platform.ko", - "drivers/i2c/busses/i2c-qcom-geni.ko", - "drivers/i2c/busses/i2c-qup.ko", - "drivers/i2c/busses/i2c-rk3x.ko", - "drivers/i2c/i2c-dev.ko", - "drivers/i2c/i2c-mux.ko", - "drivers/i2c/muxes/i2c-mux-pca954x.ko", - "drivers/iio/adc/qcom-spmi-adc5.ko", - "drivers/iio/adc/qcom-vadc-common.ko", - "drivers/input/misc/pm8941-pwrkey.ko", - "drivers/interconnect/qcom/icc-bcm-voter.ko", - "drivers/interconnect/qcom/icc-osm-l3.ko", - "drivers/interconnect/qcom/icc-rpmh.ko", - "drivers/interconnect/qcom/qnoc-sdm845.ko", - "drivers/interconnect/qcom/qnoc-sm8250.ko", - "drivers/interconnect/qcom/qnoc-sm8450.ko", - "drivers/iommu/arm/arm-smmu/arm_smmu.ko", - "drivers/irqchip/qcom-pdc.ko", - "drivers/leds/rgb/leds-qcom-lpg.ko", - "drivers/mailbox/qcom-apcs-ipc-mailbox.ko", - "drivers/mailbox/qcom-ipcc.ko", - "drivers/media/platform/qcom/venus/venus-core.ko", - "drivers/media/platform/qcom/venus/venus-dec.ko", - "drivers/media/platform/qcom/venus/venus-enc.ko", - "drivers/mfd/qcom-spmi-pmic.ko", - "drivers/mfd/wcd934x.ko", - "drivers/misc/fastrpc.ko", - "drivers/mmc/host/cqhci.ko", - "drivers/mmc/host/sdhci-msm.ko", - "drivers/net/can/spi/mcp251xfd/mcp251xfd.ko", - "drivers/net/wireless/ath/ath.ko", - "drivers/net/wireless/ath/ath10k/ath10k_core.ko", - "drivers/net/wireless/ath/ath10k/ath10k_pci.ko", - "drivers/net/wireless/ath/ath10k/ath10k_snoc.ko", - "drivers/net/wireless/ath/ath11k/ath11k.ko", - "drivers/net/wireless/ath/ath11k/ath11k_ahb.ko", - "drivers/net/wireless/ath/ath11k/ath11k_pci.ko", - "drivers/nvmem/nvmem_qfprom.ko", - "drivers/phy/qualcomm/phy-qcom-qmp-combo.ko", - "drivers/phy/qualcomm/phy-qcom-qmp-pcie.ko", - "drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.ko", - "drivers/phy/qualcomm/phy-qcom-qmp-ufs.ko", - "drivers/phy/qualcomm/phy-qcom-qmp-usb.ko", - "drivers/phy/qualcomm/phy-qcom-qusb2.ko", - "drivers/phy/qualcomm/phy-qcom-snps-femto-v2.ko", - "drivers/phy/qualcomm/phy-qcom-usb-hs.ko", - "drivers/pinctrl/qcom/pinctrl-lpass-lpi.ko", - "drivers/pinctrl/qcom/pinctrl-msm.ko", - "drivers/pinctrl/qcom/pinctrl-sdm845.ko", - "drivers/pinctrl/qcom/pinctrl-sm8250.ko", - "drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.ko", - "drivers/pinctrl/qcom/pinctrl-sm8450.ko", - "drivers/pinctrl/qcom/pinctrl-spmi-gpio.ko", - "drivers/pinctrl/qcom/pinctrl-spmi-mpp.ko", - "drivers/power/reset/qcom-pon.ko", - "drivers/power/reset/reboot-mode.ko", - "drivers/power/reset/syscon-reboot-mode.ko", - "drivers/regulator/gpio-regulator.ko", - "drivers/regulator/qcom-rpmh-regulator.ko", - "drivers/regulator/qcom_spmi-regulator.ko", - "drivers/regulator/qcom_usb_vbus-regulator.ko", - "drivers/remoteproc/qcom_common.ko", - "drivers/remoteproc/qcom_pil_info.ko", - "drivers/remoteproc/qcom_q6v5.ko", - "drivers/remoteproc/qcom_q6v5_adsp.ko", - "drivers/remoteproc/qcom_q6v5_mss.ko", - "drivers/remoteproc/qcom_q6v5_pas.ko", - "drivers/remoteproc/qcom_q6v5_wcss.ko", - "drivers/remoteproc/qcom_sysmon.ko", - "drivers/reset/reset-qcom-aoss.ko", - "drivers/reset/reset-qcom-pdc.ko", - "drivers/rpmsg/qcom_glink.ko", - "drivers/rpmsg/qcom_glink_rpm.ko", - "drivers/rpmsg/qcom_glink_smem.ko", - "drivers/rpmsg/qcom_smd.ko", - "drivers/rpmsg/rpmsg_ns.ko", - "drivers/rtc/rtc-pm8xxx.ko", - "drivers/slimbus/slim-qcom-ngd-ctrl.ko", - "drivers/slimbus/slimbus.ko", - "drivers/soc/qcom/apr.ko", - "drivers/soc/qcom/cmd-db.ko", - "drivers/soc/qcom/cpr.ko", - "drivers/soc/qcom/llcc-qcom.ko", - "drivers/soc/qcom/mdt_loader.ko", - "drivers/soc/qcom/pdr_interface.ko", - "drivers/soc/qcom/qcom_aoss.ko", - "drivers/soc/qcom/qcom_rpmh.ko", - "drivers/soc/qcom/qmi_helpers.ko", - "drivers/soc/qcom/rmtfs_mem.ko", - "drivers/soc/qcom/rpmhpd.ko", - "drivers/soc/qcom/smem.ko", - "drivers/soc/qcom/smp2p.ko", - "drivers/soc/qcom/smsm.ko", - "drivers/soc/qcom/socinfo.ko", - "drivers/soc/qcom/spm.ko", - "drivers/soundwire/soundwire-bus.ko", - "drivers/soundwire/soundwire-qcom.ko", - "drivers/spi/spi-geni-qcom.ko", - "drivers/spi/spi-pl022.ko", - "drivers/spi/spi-qcom-qspi.ko", - "drivers/spi/spi-qup.ko", - "drivers/spmi/spmi-pmic-arb.ko", - "drivers/thermal/qcom/lmh.ko", - "drivers/thermal/qcom/qcom-spmi-adc-tm5.ko", - "drivers/thermal/qcom/qcom-spmi-temp-alarm.ko", - "drivers/thermal/qcom/qcom_tsens.ko", - "drivers/tty/serial/msm_serial.ko", - "drivers/ufs/host/ufs_qcom.ko", - "drivers/usb/common/ulpi.ko", - "drivers/usb/host/ohci-hcd.ko", - "drivers/usb/host/ohci-pci.ko", - "drivers/usb/host/ohci-platform.ko", - "drivers/usb/typec/qcom-pmic-typec.ko", - "drivers/watchdog/pm8916_wdt.ko", - "drivers/watchdog/qcom-wdt.ko", - "net/mac80211/mac80211.ko", - "net/qrtr/qrtr.ko", - "net/qrtr/qrtr-mhi.ko", - "net/qrtr/qrtr-smd.ko", - "net/qrtr/qrtr-tun.ko", - "net/wireless/cfg80211.ko", - "sound/soc/codecs/snd-soc-dmic.ko", - "sound/soc/codecs/snd-soc-hdmi-codec.ko", - "sound/soc/codecs/snd-soc-lpass-macro-common.ko", - "sound/soc/codecs/snd-soc-lpass-va-macro.ko", - "sound/soc/codecs/snd-soc-lpass-wsa-macro.ko", - "sound/soc/codecs/snd-soc-max98927.ko", - "sound/soc/codecs/snd-soc-rl6231.ko", - "sound/soc/codecs/snd-soc-rt5663.ko", - "sound/soc/codecs/snd-soc-wcd-mbhc.ko", - "sound/soc/codecs/snd-soc-wcd9335.ko", - "sound/soc/codecs/snd-soc-wcd934x.ko", - "sound/soc/codecs/snd-soc-wsa881x.ko", - "sound/soc/qcom/qdsp6/q6adm.ko", - "sound/soc/qcom/qdsp6/q6afe.ko", - "sound/soc/qcom/qdsp6/q6afe-clocks.ko", - "sound/soc/qcom/qdsp6/q6afe-dai.ko", - "sound/soc/qcom/qdsp6/q6apm-dai.ko", - "sound/soc/qcom/qdsp6/q6apm-lpass-dais.ko", - "sound/soc/qcom/qdsp6/q6asm.ko", - "sound/soc/qcom/qdsp6/q6asm-dai.ko", - "sound/soc/qcom/qdsp6/q6core.ko", - "sound/soc/qcom/qdsp6/q6prm.ko", - "sound/soc/qcom/qdsp6/q6prm-clocks.ko", - "sound/soc/qcom/qdsp6/q6routing.ko", - "sound/soc/qcom/qdsp6/snd-q6apm.ko", - "sound/soc/qcom/qdsp6/snd-q6dsp-common.ko", - "sound/soc/qcom/snd-soc-qcom-common.ko", - "sound/soc/qcom/snd-soc-qcom-sdw.ko", - "sound/soc/qcom/snd-soc-sdm845.ko", - "sound/soc/qcom/snd-soc-sm8250.ko", + module_outs = _DB845C_MODULE_OUTS + _DB845C_WATCHDOG_MODULE_OUTS, + strip_modules = True, +) + +kernel_build( + name = "db845c_with_kgdb", + outs = [ + "arch/arm64/boot/dts/qcom/qrb5165-rb5.dtb", + "arch/arm64/boot/dts/qcom/sdm845-db845c.dtb", + "arch/arm64/boot/dts/qcom/sm8450-qrd.dtb", + ], + # Enable mixed build. + base_kernel = ":kernel_aarch64", + build_config = "build.config.db845c", + make_goals = [ + "modules", + "qcom/sdm845-db845c.dtb", + "qcom/qrb5165-rb5.dtb", + "qcom/sm8450-qrd.dtb", ], + module_outs = _DB845C_MODULE_OUTS, + strip_modules = True, +) + +alias( + name = "db845c", + actual = select({ + "//build/kernel/kleaf:kgdb_is_true": "db845c_with_kgdb", + "//conditions:default": "db845c_no_kgdb", + }), ) +kernel_abi( + name = "db845c_abi", + kernel_build = ":db845c", + kmi_symbol_list_add_only = True, +) + +kernel_modules_install( + name = "db845c_modules_install", + kernel_build = ":db845c", +) + +merged_kernel_uapi_headers( + name = "db845c_merged_kernel_uapi_headers", + kernel_build = ":db845c", +) + +kernel_images( + name = "db845c_images", + build_initramfs = True, + kernel_build = ":db845c", + kernel_modules_install = ":db845c_modules_install", +) + +copy_to_dist_dir( + name = "db845c_dist", + data = [ + ":db845c", + ":db845c_images", + ":db845c_modules_install", + ":db845c_merged_kernel_uapi_headers", + # Mixed build: Additional GKI artifacts. + ":kernel_aarch64", + ":kernel_aarch64_modules", + ":kernel_aarch64_additional_artifacts", + ], + dist_dir = "out/db845/dist", + flat = True, + log = "info", +) + +_ROCKPI4_MODULE_OUTS = [ + # keep sorted + "drivers/block/virtio_blk.ko", + "drivers/char/hw_random/virtio-rng.ko", + "drivers/clk/clk-rk808.ko", + "drivers/cpufreq/cpufreq-dt.ko", + "drivers/dma/pl330.ko", + "drivers/gpu/drm/bridge/analogix/analogix_dp.ko", + "drivers/gpu/drm/bridge/synopsys/dw-hdmi.ko", + "drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.ko", + "drivers/gpu/drm/display/drm_display_helper.ko", + "drivers/gpu/drm/drm_dma_helper.ko", + "drivers/gpu/drm/rockchip/rockchipdrm.ko", + "drivers/i2c/busses/i2c-rk3x.ko", + "drivers/iio/adc/rockchip_saradc.ko", + "drivers/iio/buffer/industrialio-triggered-buffer.ko", + "drivers/iio/buffer/kfifo_buf.ko", + "drivers/mfd/rk808.ko", + "drivers/mmc/core/pwrseq_simple.ko", + "drivers/mmc/host/cqhci.ko", + "drivers/mmc/host/dw_mmc.ko", + "drivers/mmc/host/dw_mmc-pltfm.ko", + "drivers/mmc/host/dw_mmc-rockchip.ko", + "drivers/mmc/host/sdhci-of-arasan.ko", + "drivers/net/ethernet/stmicro/stmmac/dwmac-rk.ko", + "drivers/net/ethernet/stmicro/stmmac/stmmac.ko", + "drivers/net/ethernet/stmicro/stmmac/stmmac-platform.ko", + "drivers/net/net_failover.ko", + "drivers/net/pcs/pcs_xpcs.ko", + "drivers/net/virtio_net.ko", + "drivers/pci/controller/pcie-rockchip-host.ko", + "drivers/phy/rockchip/phy-rockchip-emmc.ko", + "drivers/phy/rockchip/phy-rockchip-inno-usb2.ko", + "drivers/phy/rockchip/phy-rockchip-pcie.ko", + "drivers/phy/rockchip/phy-rockchip-typec.ko", + "drivers/pwm/pwm-rockchip.ko", + "drivers/regulator/fan53555.ko", + "drivers/regulator/pwm-regulator.ko", + "drivers/regulator/rk808-regulator.ko", + "drivers/rtc/rtc-rk808.ko", + "drivers/soc/rockchip/io-domain.ko", + "drivers/thermal/rockchip_thermal.ko", + "drivers/usb/host/ohci-hcd.ko", + "drivers/usb/host/ohci-platform.ko", + "drivers/virtio/virtio_pci.ko", + "drivers/virtio/virtio_pci_legacy_dev.ko", + "drivers/virtio/virtio_pci_modern_dev.ko", + "net/core/failover.ko", +] + +_ROCKPI4_WATCHDOG_MODULE_OUTS = [ + # keep sorted + "drivers/watchdog/dw_wdt.ko", +] + # TODO(b/258259749): Convert rockpi4 to mixed build kernel_build( - name = "rockpi4", + name = "rockpi4_no_kgdb", outs = [ "Image", "System.map", @@ -320,68 +618,51 @@ kernel_build( "modules", "rk3399-rock-pi-4b.dtb", ], - module_outs = COMMON_GKI_MODULES_LIST + [ - # keep sorted - "drivers/block/virtio_blk.ko", - "drivers/char/hw_random/virtio-rng.ko", - "drivers/clk/clk-rk808.ko", - "drivers/cpufreq/cpufreq-dt.ko", - "drivers/dma/pl330.ko", - "drivers/gpu/drm/bridge/analogix/analogix_dp.ko", - "drivers/gpu/drm/bridge/synopsys/dw-hdmi.ko", - "drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.ko", - "drivers/gpu/drm/display/drm_display_helper.ko", - "drivers/gpu/drm/drm_dma_helper.ko", - "drivers/gpu/drm/rockchip/rockchipdrm.ko", - "drivers/i2c/busses/i2c-rk3x.ko", - "drivers/iio/adc/rockchip_saradc.ko", - "drivers/iio/buffer/industrialio-triggered-buffer.ko", - "drivers/iio/buffer/kfifo_buf.ko", - "drivers/mfd/rk808.ko", - "drivers/mmc/core/pwrseq_simple.ko", - "drivers/mmc/host/cqhci.ko", - "drivers/mmc/host/dw_mmc.ko", - "drivers/mmc/host/dw_mmc-pltfm.ko", - "drivers/mmc/host/dw_mmc-rockchip.ko", - "drivers/mmc/host/sdhci-of-arasan.ko", - "drivers/net/ethernet/stmicro/stmmac/dwmac-rk.ko", - "drivers/net/ethernet/stmicro/stmmac/stmmac.ko", - "drivers/net/ethernet/stmicro/stmmac/stmmac-platform.ko", - "drivers/net/net_failover.ko", - "drivers/net/pcs/pcs_xpcs.ko", - "drivers/net/virtio_net.ko", - "drivers/pci/controller/pcie-rockchip-host.ko", - "drivers/phy/rockchip/phy-rockchip-emmc.ko", - "drivers/phy/rockchip/phy-rockchip-inno-usb2.ko", - "drivers/phy/rockchip/phy-rockchip-pcie.ko", - "drivers/phy/rockchip/phy-rockchip-typec.ko", - "drivers/pwm/pwm-rockchip.ko", - "drivers/regulator/fan53555.ko", - "drivers/regulator/pwm-regulator.ko", - "drivers/regulator/rk808-regulator.ko", - "drivers/rtc/rtc-rk808.ko", - "drivers/soc/rockchip/io-domain.ko", - "drivers/thermal/rockchip_thermal.ko", - "drivers/usb/host/ohci-hcd.ko", - "drivers/usb/host/ohci-platform.ko", - "drivers/virtio/virtio_pci.ko", - "drivers/virtio/virtio_pci_legacy_dev.ko", - "drivers/virtio/virtio_pci_modern_dev.ko", - "drivers/watchdog/dw_wdt.ko", - "net/core/failover.ko", + module_outs = get_gki_modules_list("arm64") + _ROCKPI4_MODULE_OUTS + _ROCKPI4_WATCHDOG_MODULE_OUTS, + visibility = ["//visibility:private"], +) + +# TODO(b/258259749): Convert rockpi4 to mixed build +kernel_build( + name = "rockpi4_with_kgdb", + outs = [ + "Image", + "System.map", + "modules.builtin", + "modules.builtin.modinfo", + "rk3399-rock-pi-4b.dtb", + "vmlinux", + "vmlinux.symvers", + ], + build_config = "build.config.rockpi4", + dtstree = "//common-modules/virtual-device:rockpi4_dts", + make_goals = [ + "Image", + "modules", + "rk3399-rock-pi-4b.dtb", ], + module_outs = get_gki_modules_list("arm64") + _ROCKPI4_MODULE_OUTS, + visibility = ["//visibility:private"], +) + +alias( + name = "rockpi4", + actual = select({ + "//build/kernel/kleaf:kgdb_is_true": "rockpi4_with_kgdb", + "//conditions:default": "rockpi4_no_kgdb", + }), ) kernel_modules_install( name = "rockpi4_modules_install", - kernel_build = "//common:rockpi4", + kernel_build = ":rockpi4", ) kernel_images( name = "rockpi4_images", build_initramfs = True, - kernel_build = "//common:rockpi4", - kernel_modules_install = "//common:rockpi4_modules_install", + kernel_build = ":rockpi4", + kernel_modules_install = ":rockpi4_modules_install", ) copy_to_dist_dir( @@ -434,6 +715,7 @@ kernel_build( # Hack to actually check the build. # Otherwise, Bazel thinks that there are no output files, and skip building. outs = [".config"], + arch = "x86_64", build_config = "build.config.allmodconfig.x86_64", visibility = ["//visibility:private"], ) @@ -444,6 +726,7 @@ kernel_build( # Hack to actually check the build. # Otherwise, Bazel thinks that there are no output files, and skip building. outs = [".config"], + arch = "arm", build_config = "build.config.allmodconfig.arm", visibility = ["//visibility:private"], ) diff --git a/Documentation/ABI/testing/OWNERS b/Documentation/ABI/testing/OWNERS deleted file mode 100644 index 3ab5dca46dbe..000000000000 --- a/Documentation/ABI/testing/OWNERS +++ /dev/null @@ -1 +0,0 @@ -per-file sysfs-fs-f2fs=file:/fs/f2fs/OWNERS diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb index d71ce6cc1c7c..b93c5ad0cccd 100644 --- a/Documentation/ABI/testing/sysfs-bus-usb +++ b/Documentation/ABI/testing/sysfs-bus-usb @@ -264,6 +264,17 @@ Description: attached to the port will not be detected, initialized, or enumerated. +What: /sys/bus/usb/devices/.../<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/.../<hub_interface>/port<X>/state Date: June 2023 Contact: Roy Luo <royluo@google.com> diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst index dc254a3cb956..632bba4e8a1d 100644 --- a/Documentation/admin-guide/cgroup-v2.rst +++ b/Documentation/admin-guide/cgroup-v2.rst @@ -2015,31 +2015,33 @@ that attribute: no-change Do not modify the I/O priority class. - none-to-rt - For requests that do not have an I/O priority class (NONE), - change the I/O priority class into RT. Do not modify - the I/O priority class of other requests. + promote-to-rt + For requests that have a non-RT I/O priority class, change it into RT. + Also change the priority level of these requests to 4. Do not modify + the I/O priority of requests that have priority class RT. restrict-to-be For requests that do not have an I/O priority class or that have I/O - priority class RT, change it into BE. Do not modify the I/O priority - class of requests that have priority class IDLE. + priority class RT, change it into BE. Also change the priority level + of these requests to 0. Do not modify the I/O priority class of + requests that have priority class IDLE. idle Change the I/O priority class of all requests into IDLE, the lowest I/O priority class. + none-to-rt + Deprecated. Just an alias for promote-to-rt. + The following numerical values are associated with the I/O priority policies: -+-------------+---+ -| no-change | 0 | -+-------------+---+ -| none-to-rt | 1 | -+-------------+---+ -| rt-to-be | 2 | -+-------------+---+ -| all-to-idle | 3 | -+-------------+---+ ++----------------+---+ +| no-change | 0 | ++----------------+---+ +| rt-to-be | 2 | ++----------------+---+ +| all-to-idle | 3 | ++----------------+---+ The numerical value that corresponds to each I/O priority class is as follows: @@ -2055,9 +2057,13 @@ The numerical value that corresponds to each I/O priority class is as follows: The algorithm to set the I/O priority class for a request is as follows: -- Translate the I/O priority class policy into a number. -- Change the request I/O priority class into the maximum of the I/O priority - class policy number and the numerical I/O priority class. +- If I/O priority class policy is promote-to-rt, change the request I/O + priority class to IOPRIO_CLASS_RT and change the request I/O priority + level to 4. +- If I/O priorityt class is not promote-to-rt, translate the I/O priority + class policy into a number, then change the request I/O priority class + into the maximum of the I/O priority class policy number and the numerical + I/O priority class. PID --- diff --git a/Documentation/arm64/silicon-errata.rst b/Documentation/arm64/silicon-errata.rst index 808ade4cc008..3283f49006d6 100644 --- a/Documentation/arm64/silicon-errata.rst +++ b/Documentation/arm64/silicon-errata.rst @@ -139,6 +139,9 @@ stable kernels. | ARM | MMU-500 | #841119,826419 | N/A | +----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+ +| ARM | GIC-700 | #2941627 | ARM64_ERRATUM_2941627 | ++----------------+-----------------+-----------------+-----------------------------+ ++----------------+-----------------+-----------------+-----------------------------+ | Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_845719 | +----------------+-----------------+-----------------+-----------------------------+ | Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_843419 | diff --git a/Documentation/devicetree/bindings/hypervisor/mediatek,geniezone-hyp.yaml b/Documentation/devicetree/bindings/hypervisor/mediatek,geniezone-hyp.yaml new file mode 100644 index 000000000000..ab89a4c310cb --- /dev/null +++ b/Documentation/devicetree/bindings/hypervisor/mediatek,geniezone-hyp.yaml @@ -0,0 +1,31 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hypervisor/mediatek,geniezone-hyp.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: MediaTek GenieZone hypervisor + +maintainers: + - Yingshiuan Pan <yingshiuan.pan@mediatek.com> + +description: + This interface is designed for integrating GenieZone hypervisor into Android + Virtualization Framework(AVF) along with Crosvm as a VMM. + It acts like a wrapper for every hypercall to GenieZone hypervisor in + order to control guest VM lifecycles and virtual interrupt injections. + +properties: + compatible: + const: mediatek,geniezone-hyp + +required: + - compatible + +additionalProperties: false + +examples: + - | + hypervisor { + compatible = "mediatek,geniezone-hyp"; + }; diff --git a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml index 44f72bcf1782..010219138858 100644 --- a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml +++ b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml @@ -52,6 +52,30 @@ properties: Address and Length pairs. Specifies regions of memory that are acceptable to allocate from. + iommu-addresses: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: > + A list of phandle and specifier pairs that describe static IO virtual + address space mappings and carveouts associated with a given reserved + memory region. The phandle in the first cell refers to the device for + which the mapping or carveout is to be created. + + The specifier consists of an address/size pair and denotes the IO + virtual address range of the region for the given device. The exact + format depends on the values of the "#address-cells" and "#size-cells" + properties of the device referenced via the phandle. + + When used in combination with a "reg" property, an IOVA mapping is to + be established for this memory region. One example where this can be + useful is to create an identity mapping for physical memory that the + firmware has configured some hardware to access (such as a bootsplash + framebuffer). + + If no "reg" property is specified, the "iommu-addresses" property + defines carveout regions in the IOVA space for the given device. This + can be useful if a certain memory region should not be mapped through + the IOMMU. + no-map: type: boolean description: > @@ -89,12 +113,69 @@ allOf: - no-map oneOf: - - required: - - reg + - oneOf: + - required: + - reg + + - required: + - size + + - oneOf: + # IOMMU reservations + - required: + - iommu-addresses - - required: - - size + # IOMMU mappings + - required: + - reg + - iommu-addresses additionalProperties: true +examples: + - | + / { + compatible = "foo"; + model = "foo"; + + #address-cells = <2>; + #size-cells = <2>; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + adsp_resv: reservation-adsp { + /* + * Restrict IOVA mappings for ADSP buffers to the 512 MiB region + * from 0x40000000 - 0x5fffffff. Anything outside is reserved by + * the ADSP for I/O memory and private memory allocations. + */ + iommu-addresses = <&adsp 0x0 0x00000000 0x00 0x40000000>, + <&adsp 0x0 0x60000000 0xff 0xa0000000>; + }; + + fb: framebuffer@90000000 { + reg = <0x0 0x90000000 0x0 0x00800000>; + iommu-addresses = <&dc0 0x0 0x90000000 0x0 0x00800000>; + }; + }; + + bus@0 { + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0x0 0x0 0x40000000>; + + adsp: adsp@2990000 { + reg = <0x2990000 0x2000>; + memory-region = <&adsp_resv>; + }; + + dc0: display@15200000 { + reg = <0x15200000 0x10000>; + memory-region = <&fb>; + }; + }; + }; ... diff --git a/Documentation/filesystems/OWNERS b/Documentation/filesystems/OWNERS deleted file mode 100644 index a63dbf4659f2..000000000000 --- a/Documentation/filesystems/OWNERS +++ /dev/null @@ -1 +0,0 @@ -per-file f2fs**=file:/fs/f2fs/OWNERS diff --git a/Documentation/filesystems/erofs.rst b/Documentation/filesystems/erofs.rst index 05e03d54af1a..df681e4391c0 100644 --- a/Documentation/filesystems/erofs.rst +++ b/Documentation/filesystems/erofs.rst @@ -34,8 +34,14 @@ Here is the main features of EROFS: - Little endian on-disk design; - - 4KiB block size and 32-bit block addresses, therefore 16TiB address space - at most for now; + - Block-based distribution and file-based distribution over fscache are + supported; + + - Support multiple devices to refer to external blobs, which can be used + for container images; + + - 32-bit block addresses for each device, therefore 16TiB address space at + most with 4KiB block size for now; - Two inode layouts for different requirements: diff --git a/Documentation/userspace-api/ioctl/ioctl-number.rst b/Documentation/userspace-api/ioctl/ioctl-number.rst index 81456c34c85d..a37f1b5a144e 100644 --- a/Documentation/userspace-api/ioctl/ioctl-number.rst +++ b/Documentation/userspace-api/ioctl/ioctl-number.rst @@ -136,7 +136,7 @@ Code Seq# Include File Comments 'F' DD video/sstfb.h conflict! 'G' 00-3F drivers/misc/sgi-gru/grulib.h conflict! 'G' 00-0F xen/gntalloc.h, xen/gntdev.h conflict! -'G' 00-0f linux/gunyah.h conflict! +'G' 00-0F linux/gunyah.h conflict! 'H' 00-7F linux/hiddev.h conflict! 'H' 00-0F linux/hidraw.h conflict! 'H' 01 linux/mei.h conflict! diff --git a/Documentation/userspace-api/media/v4l/pixfmt-packed-yuv.rst b/Documentation/userspace-api/media/v4l/pixfmt-packed-yuv.rst index bf283a1b5581..9f111ed594d2 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt-packed-yuv.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt-packed-yuv.rst @@ -257,12 +257,45 @@ the second byte and Y'\ :sub:`7-0` in the third byte. - The padding bits contain undefined values that must be ignored by all applications and drivers. +The next table lists the packed YUV 4:4:4 formats with 12 bits per component. +Expand the bits per component to 16 bits, data in the high bits, zeros in the low bits, +arranged in little endian order, storing 1 pixel in 6 bytes. + +.. flat-table:: Packed YUV 4:4:4 Image Formats (12bpc) + :header-rows: 1 + :stub-columns: 0 + + * - Identifier + - Code + - Byte 1-0 + - Byte 3-2 + - Byte 5-4 + - Byte 7-6 + - Byte 9-8 + - Byte 11-10 + + * .. _V4L2-PIX-FMT-YUV48-12: + + - ``V4L2_PIX_FMT_YUV48_12`` + - 'Y312' + + - Y'\ :sub:`0` + - Cb\ :sub:`0` + - Cr\ :sub:`0` + - Y'\ :sub:`1` + - Cb\ :sub:`1` + - Cr\ :sub:`1` 4:2:2 Subsampling ================= These formats, commonly referred to as YUYV or YUY2, subsample the chroma -components horizontally by 2, storing 2 pixels in 4 bytes. +components horizontally by 2, storing 2 pixels in a container. The container +is 32-bits for 8-bit formats, and 64-bits for 10+-bit formats. + +The packed YUYV formats with more than 8 bits per component are stored as four +16-bit little-endian words. Each word's most significant bits contain one +component, and the least significant bits are zero padding. .. raw:: latex @@ -270,7 +303,7 @@ components horizontally by 2, storing 2 pixels in 4 bytes. .. tabularcolumns:: |p{3.4cm}|p{1.2cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}| -.. flat-table:: Packed YUV 4:2:2 Formats +.. flat-table:: Packed YUV 4:2:2 Formats in 32-bit container :header-rows: 1 :stub-columns: 0 @@ -337,6 +370,46 @@ components horizontally by 2, storing 2 pixels in 4 bytes. - Y'\ :sub:`3` - Cb\ :sub:`2` +.. tabularcolumns:: |p{3.4cm}|p{1.2cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}| + +.. flat-table:: Packed YUV 4:2:2 Formats in 64-bit container + :header-rows: 1 + :stub-columns: 0 + + * - Identifier + - Code + - Word 0 + - Word 1 + - Word 2 + - Word 3 + * .. _V4L2-PIX-FMT-Y210: + + - ``V4L2_PIX_FMT_Y210`` + - 'Y210' + + - Y'\ :sub:`0` (bits 15-6) + - Cb\ :sub:`0` (bits 15-6) + - Y'\ :sub:`1` (bits 15-6) + - Cr\ :sub:`0` (bits 15-6) + * .. _V4L2-PIX-FMT-Y212: + + - ``V4L2_PIX_FMT_Y212`` + - 'Y212' + + - Y'\ :sub:`0` (bits 15-4) + - Cb\ :sub:`0` (bits 15-4) + - Y'\ :sub:`1` (bits 15-4) + - Cr\ :sub:`0` (bits 15-4) + * .. _V4L2-PIX-FMT-Y216: + + - ``V4L2_PIX_FMT_Y216`` + - 'Y216' + + - Y'\ :sub:`0` (bits 15-0) + - Cb\ :sub:`0` (bits 15-0) + - Y'\ :sub:`1` (bits 15-0) + - Cr\ :sub:`0` (bits 15-0) + .. raw:: latex \normalsize diff --git a/Documentation/userspace-api/media/v4l/pixfmt-rgb.rst b/Documentation/userspace-api/media/v4l/pixfmt-rgb.rst index 30f51cd33f99..4b8cbbc77b1b 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt-rgb.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt-rgb.rst @@ -762,6 +762,48 @@ nomenclature that instead use the order of components as seen in a 24- or \normalsize +12 Bits Per Component +============================== + +These formats store an RGB triplet in six or eight bytes, with 12 bits per component. +Expand the bits per component to 16 bits, data in the high bits, zeros in the low bits, +arranged in little endian order. + +.. raw:: latex + + \small + +.. flat-table:: RGB Formats With 12 Bits Per Component + :header-rows: 1 + + * - Identifier + - Code + - Byte 1-0 + - Byte 3-2 + - Byte 5-4 + - Byte 7-6 + * .. _V4L2-PIX-FMT-BGR48-12: + + - ``V4L2_PIX_FMT_BGR48_12`` + - 'B312' + + - B\ :sub:`15-4` + - G\ :sub:`15-4` + - R\ :sub:`15-4` + - + * .. _V4L2-PIX-FMT-ABGR64-12: + + - ``V4L2_PIX_FMT_ABGR64_12`` + - 'B412' + + - B\ :sub:`15-4` + - G\ :sub:`15-4` + - R\ :sub:`15-4` + - A\ :sub:`15-4` + +.. raw:: latex + + \normalsize Deprecated RGB Formats ====================== diff --git a/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst b/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst index 6a387f9df3ba..26fd46fa4971 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst @@ -103,6 +103,17 @@ are often referred to as greyscale formats. - ... - ... + * .. _V4L2-PIX-FMT-Y012: + + - ``V4L2_PIX_FMT_Y012`` + - 'Y012' + + - Y'\ :sub:`0`\ [3:0] `0000` + - Y'\ :sub:`0`\ [11:4] + - ... + - ... + - ... + * .. _V4L2-PIX-FMT-Y14: - ``V4L2_PIX_FMT_Y14`` @@ -146,3 +157,7 @@ are often referred to as greyscale formats. than 16 bits. For example, 10 bits per pixel uses values in the range 0 to 1023. For the IPU3_Y10 format 25 pixels are packed into 32 bytes, which leaves the 6 most significant bits of the last byte padded with 0. + + For Y012 and Y12 formats, Y012 places its data in the 12 high bits, with + padding zeros in the 4 low bits, in contrast to the Y12 format, which has + its padding located in the most significant bits of the 16 bit word. diff --git a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst index f1d5bb7b806d..72324274f20c 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst @@ -123,6 +123,20 @@ All components are stored with the same number of bits per component. - Cb, Cr - Yes - 4x4 tiles + * - V4L2_PIX_FMT_P012 + - 'P012' + - 12 + - 4:2:0 + - Cb, Cr + - Yes + - Linear + * - V4L2_PIX_FMT_P012M + - 'PM12' + - 12 + - 4:2:0 + - Cb, Cr + - No + - Linear * - V4L2_PIX_FMT_NV16 - 'NV16' - 8 @@ -586,6 +600,86 @@ Data in the 10 high bits, zeros in the 6 low bits, arranged in little endian ord - Cb\ :sub:`11` - Cr\ :sub:`11` +.. _V4L2-PIX-FMT-P012: +.. _V4L2-PIX-FMT-P012M: + +P012 and P012M +-------------- + +P012 is like NV12 with 12 bits per component, expanded to 16 bits. +Data in the 12 high bits, zeros in the 4 low bits, arranged in little endian order. + +.. flat-table:: Sample 4x4 P012 Image + :header-rows: 0 + :stub-columns: 0 + + * - start + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start + 8: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start + 16: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start + 24: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - start + 32: + - Cb\ :sub:`00` + - Cr\ :sub:`00` + - Cb\ :sub:`01` + - Cr\ :sub:`01` + * - start + 40: + - Cb\ :sub:`10` + - Cr\ :sub:`10` + - Cb\ :sub:`11` + - Cr\ :sub:`11` + +.. flat-table:: Sample 4x4 P012M Image + :header-rows: 0 + :stub-columns: 0 + + * - start0 + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start0 + 8: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start0 + 16: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start0 + 24: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - + * - start1 + 0: + - Cb\ :sub:`00` + - Cr\ :sub:`00` + - Cb\ :sub:`01` + - Cr\ :sub:`01` + * - start1 + 8: + - Cb\ :sub:`10` + - Cr\ :sub:`10` + - Cb\ :sub:`11` + - Cr\ :sub:`11` + Fully Planar YUV Formats ======================== diff --git a/Documentation/virt/geniezone/introduction.rst b/Documentation/virt/geniezone/introduction.rst new file mode 100644 index 000000000000..fb9fa41bcfb8 --- /dev/null +++ b/Documentation/virt/geniezone/introduction.rst @@ -0,0 +1,86 @@ +.. SPDX-License-Identifier: GPL-2.0 + +====================== +GenieZone Introduction +====================== + +Overview +======== +GenieZone hypervisor(gzvm) is a type-1 hypervisor that supports various virtual +machine types and provides security features such as TEE-like scenarios and +secure boot. It can create guest VMs for security use cases and has +virtualization capabilities for both platform and interrupt. Although the +hypervisor can be booted independently, it requires the assistance of GenieZone +hypervisor kernel driver(gzvm-ko) to leverage the ability of Linux kernel for +vCPU scheduling, memory management, inter-VM communication and virtio backend +support. + +Supported Architecture +====================== +GenieZone now only supports MediaTek ARM64 SoC. + +Features +======== + +- vCPU Management + +VM manager aims to provide vCPUs on the basis of time sharing on physical CPUs. +It requires Linux kernel in host VM for vCPU scheduling and VM power management. + +- Memory Management + +Direct use of physical memory from VMs is forbidden and designed to be dictated +to the privilege models managed by GenieZone hypervisor for security reason. +With the help of gzvm-ko, the hypervisor would be able to manipulate memory as +objects. + +- Virtual Platform + +We manage to emulate a virtual mobile platform for guest OS running on guest +VM. The platform supports various architecture-defined devices, such as +virtual arch timer, GIC, MMIO, PSCI, and exception watching...etc. + +- Inter-VM Communication + +Communication among guest VMs was provided mainly on RPC. More communication +mechanisms were to be provided in the future based on VirtIO-vsock. + +- Device Virtualization + +The solution is provided using the well-known VirtIO. The gzvm-ko would +redirect MMIO traps back to VMM where the virtual devices are mostly emulated. +Ioeventfd is implemented using eventfd for signaling host VM that some IO +events in guest VMs need to be processed. + +- Interrupt virtualization + +All Interrupts during some guest VMs running would be handled by GenieZone +hypervisor with the help of gzvm-ko, both virtual and physical ones. In case +there's no guest VM running out there, physical interrupts would be handled by +host VM directly for performance reason. Irqfd is also implemented using +eventfd for accepting vIRQ requests in gzvm-ko. + +Platform architecture component +=============================== + +- vm + +The vm component is responsible for setting up the capability and memory +management for the protected VMs. The capability is mainly about the lifecycle +control and boot context initialization. And the memory management is highly +integrated with ARM 2-stage translation tables to convert VA to IPA to PA under +proper security measures required by protected VMs. + +- vcpu + +The vcpu component is the core of virtualizing aarch64 physical CPU runnable, +and it controls the vCPU lifecycle including creating, running and destroying. +With self-defined exit handler, the vm component would be able to act +accordingly before terminated. + +- vgic + +The vgic component exposes control interfaces to Linux kernel via irqchip, and +we intend to support all SPI, PPI, and SGI. When it comes to virtual +interrupts, the GenieZone hypervisor would write to list registers and trigger +vIRQ injection in guest VMs via GIC. diff --git a/Documentation/virt/gunyah/vm-manager.rst b/Documentation/virt/gunyah/vm-manager.rst index 87838c5b5945..415b11248e00 100644 --- a/Documentation/virt/gunyah/vm-manager.rst +++ b/Documentation/virt/gunyah/vm-manager.rst @@ -7,14 +7,12 @@ Virtual Machine Manager The Gunyah Virtual Machine Manager is a Linux driver to support launching virtual machines using Gunyah. -Except for some basic information about the location of initial binaries, -most of the configuration about a Gunyah virtual machine is described in the -VM's devicetree. The devicetree is generated by userspace. Interacting with the -virtual machine is still done via the kernel and VM configuration requires some -of the corresponding functionality to be set up in the kernel. For instance, -sharing userspace memory with a VM is done via the `GH_VM_SET_USER_MEM_REGION`_ -ioctl. The VM itself is configured to use the memory region via the -devicetree. +Configuration of a Gunyah virtual machine is done via a devicetree. When the VM +is launched, memory is provided by the host VM which contains the devictree. +Gunyah reads the devicetree to configure the memory map and create resources +such as vCPUs for the VM. Memory can be shared with the VM with +`GH_VM_SET_USER_MEM_REGION`_. Userspace can interact with the resources in Linux +by adding "functions" to the VM. Gunyah Functions ================ @@ -56,6 +54,9 @@ GH_CREATE_VM ~~~~~~~~~~~~ Creates a Gunyah VM. The argument is reserved for future use and must be 0. +A successful call will return a Gunyah VM file descriptor. See +`Gunyah VM API Descriptions`_ for list of IOCTLs that can be made on this file +file descriptor. Gunyah VM API Descriptions -------------------------- @@ -70,8 +71,8 @@ unique per virtual machine. While VMM is guest-agnostic and allows runtime addition of memory regions, Linux guest virtual machines do not support accepting memory regions at runtime. -Thus, memory regions should be provided before starting the VM and the VM must -be configured to accept these at boot-up. +Thus, for Linux guests, memory regions should be provided before starting the VM +and the VM must be configured via the devicetree to accept these at boot-up. The guest physical address is used by Linux kernel to check that the requested user regions do not overlap and to help find the corresponding memory region @@ -87,7 +88,7 @@ GH_VM_SET_DTB_CONFIG ~~~~~~~~~~~~~~~~~~~~ This ioctl sets the location of the VM's devicetree blob and is used by Gunyah -Resource Manager to allocate resources. The guest physical memory should be part +Resource Manager to allocate resources. The guest physical memory must be part of the primary memory parcel provided to the VM prior to GH_VM_START. .. kernel-doc:: include/uapi/linux/gunyah.h @@ -104,7 +105,7 @@ GH_VM_ADD_FUNCTION This ioctl registers a Gunyah VM function with the VM manager. The VM function is described with a &struct gh_fn_desc.type and some arguments for that type. Typically, the function is added before the VM starts, but the function doesn't -"operate" until the VM starts with `GH_VM_START`_. For example, vCPU ioclts will +"operate" until the VM starts with `GH_VM_START`_. For example, vCPU ioctls will all return an error until the VM starts because the vCPUs don't exist until the VM is started. This allows the VMM to set up all the kernel functions needed for the VM *before* the VM starts. diff --git a/Documentation/virt/index.rst b/Documentation/virt/index.rst index 418d540f5484..9e73018d6a8c 100644 --- a/Documentation/virt/index.rst +++ b/Documentation/virt/index.rst @@ -16,6 +16,7 @@ Linux Virtualization Support coco/sev-guest hyperv/index gunyah/index + geniezone/introduction .. only:: html and subproject diff --git a/MAINTAINERS b/MAINTAINERS index 2e0a79e6f4ce..f0e039fe78bb 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8665,6 +8665,19 @@ F: include/vdso/ F: kernel/time/vsyscall.c F: lib/vdso/ +GENIEZONE HYPERVISOR DRIVER +M: Yingshiuan Pan <yingshiuan.pan@mediatek.com> +M: Ze-Yu Wang <ze-yu.wang@mediatek.com> +M: Yi-De Wu <yi-de.wu@mediatek.com> +F: Documentation/devicetree/bindings/hypervisor/mediatek,geniezone-hyp.yaml +F: Documentation/virt/geniezone/ +F: arch/arm64/geniezone/ +F: arch/arm64/include/uapi/asm/gzvm_arch.h +F: drivers/virt/geniezone/ +F: include/linux/gzvm_drv.h +F include/uapi/asm-generic/gzvm_arch.h +F: include/uapi/linux/gzvm.h + GENWQE (IBM Generic Workqueue Card) M: Frank Haverkamp <haver@linux.ibm.com> S: Supported @@ -1,13 +1,12 @@ -# The full list of approvers is defined in -# https://android.googlesource.com/kernel/common/+/refs/meta/config/OWNERS +set noparent -# The following OWNERS are defined at the top level to improve the OWNERS -# suggestions through any user interface. Consider those people the ones that -# can help with finding the best person to review. -adelva@google.com -gregkh@google.com -maennich@google.com -saravanak@google.com -smuckle@google.com -surenb@google.com -tkjos@google.com +# GKI Dr. No Enforcement is active on this branch. Approval of one of the Dr. +# No reviewers is required following a regular CodeReview+2 vote of a code +# reviewer. +# +# See the GKI release documentation (go/gki-dr-no) for further details. +# +# The expanded list of reviewers can be found at: +# https://android.googlesource.com/kernel/common/+/android-mainline/OWNERS_DrNo + +include kernel/common:android-mainline:/OWNERS_DrNo diff --git a/android/OWNERS b/android/OWNERS deleted file mode 100644 index 1c8470fa5682..000000000000 --- a/android/OWNERS +++ /dev/null @@ -1,13 +0,0 @@ -# If we ever add another OWNERS above this directory, it's likely to be -# more permissive, so don't inherit from it -set noparent -include kernel/common:android-mainline:/OWNERS_DrNo - -# Downstream boards maintained directly in this manifest branch -per-file abi_gki_aarch64_cuttlefish = adelva@google.com, rammuthiah@google.com -per-file abi_gki_aarch64_goldfish = rkir@google.com - -# per-file for review purposes -per-file gki_system_dlkm_modules = ramjiyani@google.com -per-file abi_gki_protected_exports_* = ramjiyani@google.com -per-file gki_*_protected_modules = ramjiyani@google.com diff --git a/android/abi_gki_aarch64.stg b/android/abi_gki_aarch64.stg index 4c589c228b86..f534b4c47650 100644 --- a/android/abi_gki_aarch64.stg +++ b/android/abi_gki_aarch64.stg @@ -1,10 +1,12 @@ -version: 0x00000001 +version: 0x00000002 root_id: 0x84ea5130 -void { +special { id: 0x48b5725f + kind: VOID } -variadic { +special { id: 0xa52a0930 + kind: VARIADIC } pointer_reference { id: 0x0006db1d @@ -97,11 +99,6 @@ pointer_reference { pointee_type_id: 0x2abdbda9 } pointer_reference { - id: 0x004b03fc - kind: POINTER - pointee_type_id: 0x2b6ce96f -} -pointer_reference { id: 0x004d68b7 kind: POINTER pointee_type_id: 0x2b754442 @@ -162,6 +159,11 @@ pointer_reference { pointee_type_id: 0x285ee61e } pointer_reference { + id: 0x0087f4f8 + kind: POINTER + pointee_type_id: 0x285f357e +} +pointer_reference { id: 0x0092c032 kind: POINTER pointee_type_id: 0x280be654 @@ -207,6 +209,11 @@ pointer_reference { pointee_type_id: 0x29600806 } pointer_reference { + id: 0x00cc5f1f + kind: POINTER + pointee_type_id: 0x29719ae3 +} +pointer_reference { id: 0x00d1ba62 kind: POINTER pointee_type_id: 0x29060f15 @@ -222,6 +229,11 @@ pointer_reference { pointee_type_id: 0x292a6e73 } pointer_reference { + id: 0x00daeb4b + kind: POINTER + pointee_type_id: 0x292b4bb0 +} +pointer_reference { id: 0x00dd92af kind: POINTER pointee_type_id: 0x2936ac20 @@ -252,6 +264,11 @@ pointer_reference { pointee_type_id: 0x29b83e1a } pointer_reference { + id: 0x00fff809 + kind: POINTER + pointee_type_id: 0x29bf06ba +} +pointer_reference { id: 0x010934b0 kind: POINTER pointee_type_id: 0x2e64345d @@ -267,11 +284,6 @@ pointer_reference { pointee_type_id: 0x2e029f76 } pointer_reference { - id: 0x0110ab48 - kind: POINTER - pointee_type_id: 0x2e024bbc -} -pointer_reference { id: 0x0113dde3 kind: POINTER pointee_type_id: 0x2e0f9112 @@ -447,6 +459,11 @@ pointer_reference { pointee_type_id: 0x2cf89e50 } pointer_reference { + id: 0x01ae5751 + kind: POINTER + pointee_type_id: 0x2cf9bbda +} +pointer_reference { id: 0x01b63d17 kind: POINTER pointee_type_id: 0x2c9812c2 @@ -562,14 +579,14 @@ pointer_reference { pointee_type_id: 0x2259084f } pointer_reference { - id: 0x02067bf4 + id: 0x0206e690 kind: POINTER - pointee_type_id: 0x2259094e + pointee_type_id: 0x225b7cde } pointer_reference { - id: 0x0206e690 + id: 0x0206e829 kind: POINTER - pointee_type_id: 0x225b7cde + pointee_type_id: 0x225b463b } pointer_reference { id: 0x020c1a12 @@ -712,6 +729,11 @@ pointer_reference { pointee_type_id: 0x201aebe0 } pointer_reference { + id: 0x0297eaff + kind: POINTER + pointee_type_id: 0x201f4d61 +} +pointer_reference { id: 0x029d7f27 kind: POINTER pointee_type_id: 0x20351a02 @@ -872,6 +894,11 @@ pointer_reference { pointee_type_id: 0x27461240 } pointer_reference { + id: 0x034b35b4 + kind: POINTER + pointee_type_id: 0x276c304c +} +pointer_reference { id: 0x035330ac kind: POINTER pointee_type_id: 0x270c242d @@ -962,6 +989,11 @@ pointer_reference { pointee_type_id: 0x24777eaf } pointer_reference { + id: 0x03942c7a + kind: POINTER + pointee_type_id: 0x24105774 +} +pointer_reference { id: 0x03965d61 kind: POINTER pointee_type_id: 0x24199318 @@ -1262,6 +1294,11 @@ pointer_reference { pointee_type_id: 0x38da44ec } pointer_reference { + id: 0x04a9576c + kind: POINTER + pointee_type_id: 0x38e5bb2f +} +pointer_reference { id: 0x04ac88c5 kind: POINTER pointee_type_id: 0x38f2c58b @@ -1307,6 +1344,11 @@ pointer_reference { pointee_type_id: 0x39185662 } pointer_reference { + id: 0x04d7fcdd + kind: POINTER + pointee_type_id: 0x391f15ea +} +pointer_reference { id: 0x04dad728 kind: POINTER pointee_type_id: 0x392bba3e @@ -1357,11 +1399,6 @@ pointer_reference { pointee_type_id: 0x39a49b1e } pointer_reference { - id: 0x04fb8f54 - kind: POINTER - pointee_type_id: 0x39aedbce -} -pointer_reference { id: 0x05003835 kind: POINTER pointee_type_id: 0x3e40064a @@ -1467,11 +1504,6 @@ pointer_reference { pointee_type_id: 0x3f3d7e85 } pointer_reference { - id: 0x0561578b - kind: POINTER - pointee_type_id: 0x3fc5b8b3 -} -pointer_reference { id: 0x0562c566 kind: POINTER pointee_type_id: 0x3fcbf304 @@ -1562,11 +1594,6 @@ pointer_reference { pointee_type_id: 0x3c2755a3 } pointer_reference { - id: 0x05a52bb0 - kind: POINTER - pointee_type_id: 0x3cd4485f -} -pointer_reference { id: 0x05a5cdba kind: POINTER pointee_type_id: 0x3cd7d077 @@ -1767,11 +1794,6 @@ pointer_reference { pointee_type_id: 0x33d83070 } pointer_reference { - id: 0x0669d6b3 - kind: POINTER - pointee_type_id: 0x33e7bc51 -} -pointer_reference { id: 0x066af716 kind: POINTER pointee_type_id: 0x33eb3ac5 @@ -1827,6 +1849,11 @@ pointer_reference { pointee_type_id: 0x30293561 } pointer_reference { + id: 0x06a428cc + kind: POINTER + pointee_type_id: 0x30d045ac +} +pointer_reference { id: 0x06afdad0 kind: POINTER pointee_type_id: 0x30ff8ddd @@ -1942,9 +1969,9 @@ pointer_reference { pointee_type_id: 0x36f1d1fd } pointer_reference { - id: 0x073894f9 + id: 0x072e5f93 kind: POINTER - pointee_type_id: 0x36a2b57a + pointee_type_id: 0x36f998d3 } pointer_reference { id: 0x0742e5b4 @@ -1982,6 +2009,11 @@ pointer_reference { pointee_type_id: 0x37265f81 } pointer_reference { + id: 0x076327a3 + kind: POINTER + pointee_type_id: 0x37cc7810 +} +pointer_reference { id: 0x07665a1f kind: POINTER pointee_type_id: 0x37d98ee3 @@ -2177,6 +2209,21 @@ pointer_reference { pointee_type_id: 0x0a52df14 } pointer_reference { + id: 0x080d391b + kind: POINTER + pointee_type_id: 0x0a7402f1 +} +pointer_reference { + id: 0x080d3f98 + kind: POINTER + pointee_type_id: 0x0a7418fc +} +pointer_reference { + id: 0x080e08ce + kind: POINTER + pointee_type_id: 0x0a78c5a5 +} +pointer_reference { id: 0x080fbe64 kind: POINTER pointee_type_id: 0x0a7e1f0e @@ -2352,9 +2399,9 @@ pointer_reference { pointee_type_id: 0x0942f1ca } pointer_reference { - id: 0x08dcfb76 + id: 0x08c420f1 kind: POINTER - pointee_type_id: 0x09330b45 + pointee_type_id: 0x09506558 } pointer_reference { id: 0x08e43718 @@ -2482,6 +2529,11 @@ pointer_reference { pointee_type_id: 0x0f54a4fe } pointer_reference { + id: 0x0945c216 + kind: POINTER + pointee_type_id: 0x0f57eec7 +} +pointer_reference { id: 0x09483d5e kind: POINTER pointee_type_id: 0x0f6013e7 @@ -2557,9 +2609,9 @@ pointer_reference { pointee_type_id: 0x0cfb4b7c } pointer_reference { - id: 0x09af8dc9 + id: 0x09b53a9f kind: POINTER - pointee_type_id: 0x0cfed1bb + pointee_type_id: 0x0c940ce3 } pointer_reference { id: 0x09bb9b7e @@ -2597,6 +2649,11 @@ pointer_reference { pointee_type_id: 0x0dd91f48 } pointer_reference { + id: 0x09eee7e5 + kind: POINTER + pointee_type_id: 0x0dfb7909 +} +pointer_reference { id: 0x09f1b886 kind: POINTER pointee_type_id: 0x0d860487 @@ -2702,11 +2759,21 @@ pointer_reference { pointee_type_id: 0x03cc00a2 } pointer_reference { + id: 0x0a67a4e3 + kind: POINTER + pointee_type_id: 0x03de7511 +} +pointer_reference { id: 0x0a6c2073 kind: POINTER pointee_type_id: 0x03f06751 } pointer_reference { + id: 0x0a70ce1b + kind: POINTER + pointee_type_id: 0x0383def3 +} +pointer_reference { id: 0x0a747547 kind: POINTER pointee_type_id: 0x03913382 @@ -2727,6 +2794,11 @@ pointer_reference { pointee_type_id: 0x00447895 } pointer_reference { + id: 0x0a8304ff + kind: POINTER + pointee_type_id: 0x004cf563 +} +pointer_reference { id: 0x0a85fcb6 kind: POINTER pointee_type_id: 0x00571446 @@ -2747,6 +2819,11 @@ pointer_reference { pointee_type_id: 0x0028f2f5 } pointer_reference { + id: 0x0a9e3ca3 + kind: POINTER + pointee_type_id: 0x00381413 +} +pointer_reference { id: 0x0aa1f0ee kind: POINTER pointee_type_id: 0x00c72527 @@ -3007,11 +3084,6 @@ pointer_reference { pointee_type_id: 0x07a79f04 } pointer_reference { - id: 0x0b7a0b83 - kind: POINTER - pointee_type_id: 0x07a8c893 -} -pointer_reference { id: 0x0b7c4f67 kind: POINTER pointee_type_id: 0x07b1db01 @@ -3072,6 +3144,11 @@ pointer_reference { pointee_type_id: 0x04a91d68 } pointer_reference { + id: 0x0bbb7f1b + kind: POINTER + pointee_type_id: 0x04ad1af1 +} +pointer_reference { id: 0x0bbc5d54 kind: POINTER pointee_type_id: 0x04b193cc @@ -3082,6 +3159,11 @@ pointer_reference { pointee_type_id: 0x04b89667 } pointer_reference { + id: 0x0bbfad26 + kind: POINTER + pointee_type_id: 0x04be5205 +} +pointer_reference { id: 0x0bc3e3e1 kind: POINTER pointee_type_id: 0x054f691a @@ -3187,11 +3269,6 @@ pointer_reference { pointee_type_id: 0x1a770e0b } pointer_reference { - id: 0x0c0e84bd - kind: POINTER - pointee_type_id: 0x1a7af469 -} -pointer_reference { id: 0x0c0edcf8 kind: POINTER pointee_type_id: 0x1a7b957f @@ -3212,26 +3289,11 @@ pointer_reference { pointee_type_id: 0x1a1051a0 } pointer_reference { - id: 0x0c15b27a - kind: POINTER - pointee_type_id: 0x1a162f77 -} -pointer_reference { id: 0x0c1663ae kind: POINTER pointee_type_id: 0x1a196826 } pointer_reference { - id: 0x0c166597 - kind: POINTER - pointee_type_id: 0x1a1970c3 -} -pointer_reference { - id: 0x0c16b659 - kind: POINTER - pointee_type_id: 0x1a1a3ffb -} -pointer_reference { id: 0x0c17a1e0 kind: POINTER pointee_type_id: 0x1a1e611d @@ -3277,11 +3339,6 @@ pointer_reference { pointee_type_id: 0x1ad37d09 } pointer_reference { - id: 0x0c252e30 - kind: POINTER - pointee_type_id: 0x1ad45e5f -} -pointer_reference { id: 0x0c254fa0 kind: POINTER pointee_type_id: 0x1ad5d81c @@ -3337,6 +3394,11 @@ pointer_reference { pointee_type_id: 0x1a8d07bb } pointer_reference { + id: 0x0c33de94 + kind: POINTER + pointee_type_id: 0x1a8f9ccc +} +pointer_reference { id: 0x0c3509f9 kind: POINTER pointee_type_id: 0x1a94c17b @@ -3347,11 +3409,6 @@ pointer_reference { pointee_type_id: 0x1a9663f9 } pointer_reference { - id: 0x0c397826 - kind: POINTER - pointee_type_id: 0x1aa50604 -} -pointer_reference { id: 0x0c3ac0b1 kind: POINTER pointee_type_id: 0x1aabe458 @@ -3442,9 +3499,9 @@ pointer_reference { pointee_type_id: 0x1b5d6044 } pointer_reference { - id: 0x0c47e7d1 + id: 0x0c483694 kind: POINTER - pointee_type_id: 0x1b5f79d9 + pointee_type_id: 0x1b603ccd } pointer_reference { id: 0x0c485c36 @@ -3487,6 +3544,11 @@ pointer_reference { pointee_type_id: 0x1b77cf3e } pointer_reference { + id: 0x0c5168e8 + kind: POINTER + pointee_type_id: 0x1b05453e +} +pointer_reference { id: 0x0c55d62d kind: POINTER pointee_type_id: 0x1b17be29 @@ -3542,11 +3604,6 @@ pointer_reference { pointee_type_id: 0x1b3b0652 } pointer_reference { - id: 0x0c5f174a - kind: POINTER - pointee_type_id: 0x1b3cbbb4 -} -pointer_reference { id: 0x0c5f67dd kind: POINTER pointee_type_id: 0x1b3d79eb @@ -3652,6 +3709,11 @@ pointer_reference { pointee_type_id: 0x1b841a62 } pointer_reference { + id: 0x0c715d8d + kind: POINTER + pointee_type_id: 0x1b8590a8 +} +pointer_reference { id: 0x0c74ddbe kind: POINTER pointee_type_id: 0x1b939067 @@ -3987,6 +4049,11 @@ pointer_reference { pointee_type_id: 0x197157bd } pointer_reference { + id: 0x0ccdc0f9 + kind: POINTER + pointee_type_id: 0x1977e57b +} +pointer_reference { id: 0x0cce6a6a kind: POINTER pointee_type_id: 0x19794f35 @@ -4127,6 +4194,11 @@ pointer_reference { pointee_type_id: 0x19832066 } pointer_reference { + id: 0x0cf3d8fe + kind: POINTER + pointee_type_id: 0x198f8565 +} +pointer_reference { id: 0x0cf80951 kind: POINTER pointee_type_id: 0x19a0c3db @@ -4152,11 +4224,6 @@ pointer_reference { pointee_type_id: 0x19b6a09f } pointer_reference { - id: 0x0cfed1bb - kind: POINTER - pointee_type_id: 0x19bba071 -} -pointer_reference { id: 0x0cffb85e kind: POINTER pointee_type_id: 0x19be07e4 @@ -4327,6 +4394,11 @@ pointer_reference { pointee_type_id: 0x1e3b8bac } pointer_reference { + id: 0x0d1f55de + kind: POINTER + pointee_type_id: 0x1e3db1e5 +} +pointer_reference { id: 0x0d20d38c kind: POINTER pointee_type_id: 0x1ec3a8ad @@ -4362,6 +4434,11 @@ pointer_reference { pointee_type_id: 0x1edfcb66 } pointer_reference { + id: 0x0d27dc9d + kind: POINTER + pointee_type_id: 0x1edf94e9 +} +pointer_reference { id: 0x0d2958f6 kind: POINTER pointee_type_id: 0x1ee58544 @@ -4462,6 +4539,11 @@ pointer_reference { pointee_type_id: 0x1e9be71c } pointer_reference { + id: 0x0d36eefe + kind: POINTER + pointee_type_id: 0x1e9b5d67 +} +pointer_reference { id: 0x0d370eee kind: POINTER pointee_type_id: 0x1e9cdd26 @@ -4592,6 +4674,11 @@ pointer_reference { pointee_type_id: 0x1f060fb8 } pointer_reference { + id: 0x0d52f144 + kind: POINTER + pointee_type_id: 0x1f0b238f +} +pointer_reference { id: 0x0d53cd40 kind: POINTER pointee_type_id: 0x1f0fd39d @@ -4627,6 +4714,11 @@ pointer_reference { pointee_type_id: 0x1f202bf3 } pointer_reference { + id: 0x0d599e4a + kind: POINTER + pointee_type_id: 0x1f269fb6 +} +pointer_reference { id: 0x0d5a6860 kind: POINTER pointee_type_id: 0x1f29471f @@ -4682,6 +4774,11 @@ pointer_reference { pointee_type_id: 0x1fde992a } pointer_reference { + id: 0x0d6927be + kind: POINTER + pointee_type_id: 0x1fe47867 +} +pointer_reference { id: 0x0d6b4ee3 kind: POINTER pointee_type_id: 0x1feddd12 @@ -4692,6 +4789,11 @@ pointer_reference { pointee_type_id: 0x1fee56e5 } pointer_reference { + id: 0x0d6c28a3 + kind: POINTER + pointee_type_id: 0x1ff04410 +} +pointer_reference { id: 0x0d6cb897 kind: POINTER pointee_type_id: 0x1ff204c3 @@ -4817,11 +4919,6 @@ pointer_reference { pointee_type_id: 0x1c5ac86a } pointer_reference { - id: 0x0d879e14 - kind: POINTER - pointee_type_id: 0x1c5e9ece -} -pointer_reference { id: 0x0d881d5f kind: POINTER pointee_type_id: 0x1c6093e3 @@ -4902,11 +4999,6 @@ pointer_reference { pointee_type_id: 0x1c0e7d0f } pointer_reference { - id: 0x0d947d59 - kind: POINTER - pointee_type_id: 0x1c1113fb -} -pointer_reference { id: 0x0d956bfc kind: POINTER pointee_type_id: 0x1c15496d @@ -4917,11 +5009,6 @@ pointer_reference { pointee_type_id: 0x1c155f01 } pointer_reference { - id: 0x0d97a2b2 - kind: POINTER - pointee_type_id: 0x1c1e6c54 -} -pointer_reference { id: 0x0d97a54b kind: POINTER pointee_type_id: 0x1c1e73b0 @@ -5112,6 +5199,11 @@ pointer_reference { pointee_type_id: 0x1c88dd20 } pointer_reference { + id: 0x0db22504 + kind: POINTER + pointee_type_id: 0x1c88728f +} +pointer_reference { id: 0x0db25a6d kind: POINTER pointee_type_id: 0x1c898f28 @@ -5167,6 +5259,11 @@ pointer_reference { pointee_type_id: 0x1cbe3d95 } pointer_reference { + id: 0x0dc11255 + kind: POINTER + pointee_type_id: 0x1d44afc8 +} +pointer_reference { id: 0x0dc35132 kind: POINTER pointee_type_id: 0x1d4da256 @@ -5182,6 +5279,11 @@ pointer_reference { pointee_type_id: 0x1d5cf24d } pointer_reference { + id: 0x0dc966bc + kind: POINTER + pointee_type_id: 0x1d657c6d +} +pointer_reference { id: 0x0dc9e98b kind: POINTER pointee_type_id: 0x1d6740b1 @@ -5317,11 +5419,6 @@ pointer_reference { pointee_type_id: 0x1dde0ec8 } pointer_reference { - id: 0x0de80fb7 - kind: POINTER - pointee_type_id: 0x1de0d842 -} -pointer_reference { id: 0x0de8f5e2 kind: POINTER pointee_type_id: 0x1de33115 @@ -5452,6 +5549,11 @@ pointer_reference { pointee_type_id: 0x12725ea0 } pointer_reference { + id: 0x0e0dc148 + kind: POINTER + pointee_type_id: 0x1277e3bd +} +pointer_reference { id: 0x0e0dc9f3 kind: POINTER pointee_type_id: 0x1277c151 @@ -5527,6 +5629,11 @@ pointer_reference { pointee_type_id: 0x12c0cb4c } pointer_reference { + id: 0x0e211675 + kind: POINTER + pointee_type_id: 0x12c4bf48 +} +pointer_reference { id: 0x0e211c44 kind: POINTER pointee_type_id: 0x12c4978f @@ -5537,6 +5644,11 @@ pointer_reference { pointee_type_id: 0x12c79320 } pointer_reference { + id: 0x0e2271e2 + kind: POINTER + pointee_type_id: 0x12c92116 +} +pointer_reference { id: 0x0e22e25f kind: POINTER pointee_type_id: 0x12cb6fe0 @@ -5552,11 +5664,6 @@ pointer_reference { pointee_type_id: 0x12d14004 } pointer_reference { - id: 0x0e24c2f6 - kind: POINTER - pointee_type_id: 0x12d3ed44 -} -pointer_reference { id: 0x0e2521ae kind: POINTER pointee_type_id: 0x12d46025 @@ -5622,6 +5729,11 @@ pointer_reference { pointee_type_id: 0x129eb456 } pointer_reference { + id: 0x0e38185b + kind: POINTER + pointee_type_id: 0x12a087f3 +} +pointer_reference { id: 0x0e395200 kind: POINTER pointee_type_id: 0x12a5ae9c @@ -5682,6 +5794,11 @@ pointer_reference { pointee_type_id: 0x13525403 } pointer_reference { + id: 0x0e44c87b + kind: POINTER + pointee_type_id: 0x1353c771 +} +pointer_reference { id: 0x0e44f9f8 kind: POINTER pointee_type_id: 0x1353017f @@ -5752,6 +5869,11 @@ pointer_reference { pointee_type_id: 0x13797fb7 } pointer_reference { + id: 0x0e4e7ccb + kind: POINTER + pointee_type_id: 0x137915b0 +} +pointer_reference { id: 0x0e4f7e58 kind: POINTER pointee_type_id: 0x137d1ffc @@ -6442,11 +6564,6 @@ pointer_reference { pointee_type_id: 0x11c092fa } pointer_reference { - id: 0x0ee038bb - kind: POINTER - pointee_type_id: 0x11c00471 -} -pointer_reference { id: 0x0ee0d5d1 kind: POINTER pointee_type_id: 0x11c3b1da @@ -6707,6 +6824,11 @@ pointer_reference { pointee_type_id: 0x167c181d } pointer_reference { + id: 0x0f12d1e7 + kind: POINTER + pointee_type_id: 0x160ba102 +} +pointer_reference { id: 0x0f161b41 kind: POINTER pointee_type_id: 0x16188b98 @@ -6962,6 +7084,16 @@ pointer_reference { pointee_type_id: 0x1705e250 } pointer_reference { + id: 0x0f56bda3 + kind: POINTER + pointee_type_id: 0x171a1012 +} +pointer_reference { + id: 0x0f596314 + kind: POINTER + pointee_type_id: 0x17256acc +} +pointer_reference { id: 0x0f5a291c kind: POINTER pointee_type_id: 0x172842ec @@ -6987,6 +7119,11 @@ pointer_reference { pointee_type_id: 0x172e6ba7 } pointer_reference { + id: 0x0f5c0d73 + kind: POINTER + pointee_type_id: 0x1730d353 +} +pointer_reference { id: 0x0f5e0dda kind: POINTER pointee_type_id: 0x1738d1f7 @@ -7037,6 +7174,21 @@ pointer_reference { pointee_type_id: 0x17ce1ca0 } pointer_reference { + id: 0x0f657fc1 + kind: POINTER + pointee_type_id: 0x17d51999 +} +pointer_reference { + id: 0x0f65ebe2 + kind: POINTER + pointee_type_id: 0x17d74917 +} +pointer_reference { + id: 0x0f67218c + kind: POINTER + pointee_type_id: 0x17dc60ac +} +pointer_reference { id: 0x0f677ef9 kind: POINTER pointee_type_id: 0x17dd1d78 @@ -7177,11 +7329,6 @@ pointer_reference { pointee_type_id: 0x17b5cc93 } pointer_reference { - id: 0x0f7dbeee - kind: POINTER - pointee_type_id: 0x17b61d24 -} -pointer_reference { id: 0x0f7dcc52 kind: POINTER pointee_type_id: 0x17b7d7d6 @@ -7307,6 +7454,11 @@ pointer_reference { pointee_type_id: 0x1439657e } pointer_reference { + id: 0x0f9e7cc3 + kind: POINTER + pointee_type_id: 0x14391590 +} +pointer_reference { id: 0x0fa01494 kind: POINTER pointee_type_id: 0x14c0b4cf @@ -7362,6 +7514,11 @@ pointer_reference { pointee_type_id: 0x14e1f000 } pointer_reference { + id: 0x0faaab57 + kind: POINTER + pointee_type_id: 0x14ea4bc0 +} +pointer_reference { id: 0x0fab66ce kind: POINTER pointee_type_id: 0x14ed7da4 @@ -7372,6 +7529,11 @@ pointer_reference { pointee_type_id: 0x14ee5a71 } pointer_reference { + id: 0x0fac28fc + kind: POINTER + pointee_type_id: 0x14f0456f +} +pointer_reference { id: 0x0fac5cb3 kind: POINTER pointee_type_id: 0x14f19451 @@ -7417,6 +7579,11 @@ pointer_reference { pointee_type_id: 0x14b4088f } pointer_reference { + id: 0x0fbe0b29 + kind: POINTER + pointee_type_id: 0x14b8ca3b +} +pointer_reference { id: 0x0fbe677e kind: POINTER pointee_type_id: 0x14b97b66 @@ -7442,6 +7609,11 @@ pointer_reference { pointee_type_id: 0x154ed535 } pointer_reference { + id: 0x0fc3c654 + kind: POINTER + pointee_type_id: 0x154fffcf +} +pointer_reference { id: 0x0fc46487 kind: POINTER pointee_type_id: 0x15517480 @@ -7612,11 +7784,6 @@ pointer_reference { pointee_type_id: 0x15a2be6d } pointer_reference { - id: 0x0ff8ee0d - kind: POINTER - pointee_type_id: 0x15a35eaa -} -pointer_reference { id: 0x0ff8f9af kind: POINTER pointee_type_id: 0x15a30023 @@ -7772,11 +7939,6 @@ pointer_reference { pointee_type_id: 0x6b98fc5d } pointer_reference { - id: 0x1076c35e - kind: POINTER - pointee_type_id: 0x6b9bebe6 -} -pointer_reference { id: 0x1077b920 kind: POINTER pointee_type_id: 0x6b9e021d @@ -7897,11 +8059,6 @@ pointer_reference { pointee_type_id: 0x6f66da8d } pointer_reference { - id: 0x114e61a5 - kind: POINTER - pointee_type_id: 0x6f796009 -} -pointer_reference { id: 0x11575246 kind: POINTER pointee_type_id: 0x6f1daf87 @@ -7927,11 +8084,6 @@ pointer_reference { pointee_type_id: 0x6fe4eb19 } pointer_reference { - id: 0x116d36b8 - kind: POINTER - pointee_type_id: 0x6ff43c7f -} -pointer_reference { id: 0x117a8adb kind: POINTER pointee_type_id: 0x6faacdf3 @@ -7947,6 +8099,11 @@ pointer_reference { pointee_type_id: 0x6fb840c8 } pointer_reference { + id: 0x117e85f5 + kind: POINTER + pointee_type_id: 0x6fbaf148 +} +pointer_reference { id: 0x118d97cb kind: POINTER pointee_type_id: 0x6c76b9b2 @@ -8062,6 +8219,11 @@ pointer_reference { pointee_type_id: 0x6df67d28 } pointer_reference { + id: 0x120033c5 + kind: POINTER + pointee_type_id: 0x6240298a +} +pointer_reference { id: 0x1200e2aa kind: POINTER pointee_type_id: 0x62436c35 @@ -8132,6 +8294,11 @@ pointer_reference { pointee_type_id: 0x6054a6ab } pointer_reference { + id: 0x128a8a58 + kind: POINTER + pointee_type_id: 0x606acffd +} +pointer_reference { id: 0x1291c430 kind: POINTER pointee_type_id: 0x6007f65d @@ -8172,6 +8339,16 @@ pointer_reference { pointee_type_id: 0x6101d583 } pointer_reference { + id: 0x12d9a766 + kind: POINTER + pointee_type_id: 0x61267b05 +} +pointer_reference { + id: 0x12e0cbae + kind: POINTER + pointee_type_id: 0x61c3c826 +} +pointer_reference { id: 0x12e24ee1 kind: POINTER pointee_type_id: 0x61c9dd1a @@ -8212,6 +8389,11 @@ pointer_reference { pointee_type_id: 0x664d9cb2 } pointer_reference { + id: 0x130aa721 + kind: POINTER + pointee_type_id: 0x666a7a1b +} +pointer_reference { id: 0x13185ce8 kind: POINTER pointee_type_id: 0x6621953c @@ -8242,6 +8424,11 @@ pointer_reference { pointee_type_id: 0x668004f3 } pointer_reference { + id: 0x13323bbb + kind: POINTER + pointee_type_id: 0x66880871 +} +pointer_reference { id: 0x1333434c kind: POINTER pointee_type_id: 0x668debad @@ -8402,11 +8589,21 @@ pointer_reference { pointee_type_id: 0x65b569e7 } pointer_reference { + id: 0x13fe8737 + kind: POINTER + pointee_type_id: 0x65bafa41 +} +pointer_reference { id: 0x14191d75 kind: POINTER pointee_type_id: 0x7a249348 } pointer_reference { + id: 0x14199568 + kind: POINTER + pointee_type_id: 0x7a26b33d +} +pointer_reference { id: 0x141d28a8 kind: POINTER pointee_type_id: 0x7a34443c @@ -8482,6 +8679,11 @@ pointer_reference { pointee_type_id: 0x7bdc8a60 } pointer_reference { + id: 0x146a39bf + kind: POINTER + pointee_type_id: 0x7be80061 +} +pointer_reference { id: 0x14731fc7 kind: POINTER pointee_type_id: 0x7b8c9983 @@ -8547,6 +8749,11 @@ pointer_reference { pointee_type_id: 0x79e2d3b1 } pointer_reference { + id: 0x14f37d47 + kind: POINTER + pointee_type_id: 0x798d1382 +} +pointer_reference { id: 0x14fb0ab0 kind: POINTER pointee_type_id: 0x79accc5f @@ -8877,6 +9084,11 @@ pointer_reference { pointee_type_id: 0x708fc0fe } pointer_reference { + id: 0x16b45c7f + kind: POINTER + pointee_type_id: 0x70919762 +} +pointer_reference { id: 0x16b46fbd kind: POINTER pointee_type_id: 0x7091586a @@ -8887,6 +9099,11 @@ pointer_reference { pointee_type_id: 0x71511504 } pointer_reference { + id: 0x16c5c0ab + kind: POINTER + pointee_type_id: 0x7157e430 +} +pointer_reference { id: 0x16df644d kind: POINTER pointee_type_id: 0x713d77a9 @@ -8957,6 +9174,11 @@ pointer_reference { pointee_type_id: 0x76e78cd9 } pointer_reference { + id: 0x173696bc + kind: POINTER + pointee_type_id: 0x769abc6d +} +pointer_reference { id: 0x1740e61d kind: POINTER pointee_type_id: 0x77437ee8 @@ -9097,6 +9319,11 @@ pointer_reference { pointee_type_id: 0x755b6647 } pointer_reference { + id: 0x17d51999 + kind: POINTER + pointee_type_id: 0x751480f9 +} +pointer_reference { id: 0x17dabdcd kind: POINTER pointee_type_id: 0x752a11a9 @@ -9557,6 +9784,11 @@ pointer_reference { pointee_type_id: 0x4d320115 } pointer_reference { + id: 0x19df035f + kind: POINTER + pointee_type_id: 0x4d3cebe1 +} +pointer_reference { id: 0x19e0c64c kind: POINTER pointee_type_id: 0x4dc3ffac @@ -9617,11 +9849,6 @@ pointer_reference { pointee_type_id: 0x4215681c } pointer_reference { - id: 0x1a1575dd - kind: POINTER - pointee_type_id: 0x421531e8 -} -pointer_reference { id: 0x1a29773f kind: POINTER pointee_type_id: 0x42e53a63 @@ -9847,6 +10074,11 @@ pointer_reference { pointee_type_id: 0x475137a2 } pointer_reference { + id: 0x1b4a1f75 + kind: POINTER + pointee_type_id: 0x47689b48 +} +pointer_reference { id: 0x1b4ce091 kind: POINTER pointee_type_id: 0x477364db @@ -9987,6 +10219,11 @@ pointer_reference { pointee_type_id: 0x45a8a3c4 } pointer_reference { + id: 0x1bfb2a60 + kind: POINTER + pointee_type_id: 0x45ac4f1e +} +pointer_reference { id: 0x1c126813 kind: POINTER pointee_type_id: 0x5a0946d3 @@ -10152,11 +10389,6 @@ pointer_reference { pointee_type_id: 0x590737f8 } pointer_reference { - id: 0x1cd322d1 - kind: POINTER - pointee_type_id: 0x590c6dd8 -} -pointer_reference { id: 0x1cdba504 kind: POINTER pointee_type_id: 0x592e728c @@ -10282,6 +10514,11 @@ pointer_reference { pointee_type_id: 0x5f502f26 } pointer_reference { + id: 0x1d44afc8 + kind: POINTER + pointee_type_id: 0x5f5259bd +} +pointer_reference { id: 0x1d44eec5 kind: POINTER pointee_type_id: 0x5f535d88 @@ -10342,9 +10579,9 @@ pointer_reference { pointee_type_id: 0x5fd666ab } pointer_reference { - id: 0x1d65d221 + id: 0x1d6b5d95 kind: POINTER - pointee_type_id: 0x5fd7ae1b + pointee_type_id: 0x5fed90c9 } pointer_reference { id: 0x1d6e33e5 @@ -10632,6 +10869,11 @@ pointer_reference { pointee_type_id: 0x5057492d } pointer_reference { + id: 0x1e85f467 + kind: POINTER + pointee_type_id: 0x50573700 +} +pointer_reference { id: 0x1e870478 kind: POINTER pointee_type_id: 0x505cf77f @@ -10727,16 +10969,6 @@ pointer_reference { pointee_type_id: 0x509cd61e } pointer_reference { - id: 0x1eba2d88 - kind: POINTER - pointee_type_id: 0x50a850bc -} -pointer_reference { - id: 0x1ebe4388 - kind: POINTER - pointee_type_id: 0x50b9e8bd -} -pointer_reference { id: 0x1ed6200d kind: POINTER pointee_type_id: 0x511866ab @@ -10972,6 +11204,11 @@ pointer_reference { pointee_type_id: 0x551d0131 } pointer_reference { + id: 0x1fdf8df4 + kind: POINTER + pointee_type_id: 0x553ed14c +} +pointer_reference { id: 0x1fe51930 kind: POINTER pointee_type_id: 0x55d4825e @@ -11042,11 +11279,6 @@ pointer_reference { pointee_type_id: 0xaab0d999 } pointer_reference { - id: 0x203cd5eb - kind: POINTER - pointee_type_id: 0xaab3b130 -} -pointer_reference { id: 0x203e14bb kind: POINTER pointee_type_id: 0xaab8b473 @@ -11082,6 +11314,11 @@ pointer_reference { pointee_type_id: 0xabc38a13 } pointer_reference { + id: 0x20699068 + kind: POINTER + pointee_type_id: 0xabe6a73e +} +pointer_reference { id: 0x206bf782 kind: POINTER pointee_type_id: 0xabef3896 @@ -11142,6 +11379,11 @@ pointer_reference { pointee_type_id: 0xa8a462e4 } pointer_reference { + id: 0x20bba379 + kind: POINTER + pointee_type_id: 0xa8ae6b7a +} +pointer_reference { id: 0x20d23755 kind: POINTER pointee_type_id: 0xa9083bc9 @@ -11167,11 +11409,6 @@ pointer_reference { pointee_type_id: 0xae401000 } pointer_reference { - id: 0x2101ca02 - kind: POINTER - pointee_type_id: 0xae47ce96 -} -pointer_reference { id: 0x2105ad7e kind: POINTER pointee_type_id: 0xae565365 @@ -11282,11 +11519,6 @@ pointer_reference { pointee_type_id: 0xaf54cd38 } pointer_reference { - id: 0x2145f7aa - kind: POINTER - pointee_type_id: 0xaf573835 -} -pointer_reference { id: 0x214fd672 kind: POINTER pointee_type_id: 0xaf7fbf57 @@ -11477,6 +11709,11 @@ pointer_reference { pointee_type_id: 0xa3652854 } pointer_reference { + id: 0x22561ecb + kind: POINTER + pointee_type_id: 0xa3189db3 +} +pointer_reference { id: 0x2259084f kind: POINTER pointee_type_id: 0xa324c7a3 @@ -11512,6 +11749,11 @@ pointer_reference { pointee_type_id: 0xa3adbe6c } pointer_reference { + id: 0x228954ca + kind: POINTER + pointee_type_id: 0xa065b5b5 +} +pointer_reference { id: 0x228d1fdb kind: POINTER pointee_type_id: 0xa07499f1 @@ -11542,6 +11784,11 @@ pointer_reference { pointee_type_id: 0xa0815516 } pointer_reference { + id: 0x22b357e9 + kind: POINTER + pointee_type_id: 0xa08db938 +} +pointer_reference { id: 0x22b3ece7 kind: POINTER pointee_type_id: 0xa08f5503 @@ -11722,6 +11969,11 @@ pointer_reference { pointee_type_id: 0xa405746d } pointer_reference { + id: 0x239187d3 + kind: POINTER + pointee_type_id: 0xa406f9d2 +} +pointer_reference { id: 0x23947191 kind: POINTER pointee_type_id: 0xa41120db @@ -11762,6 +12014,11 @@ pointer_reference { pointee_type_id: 0xa57d1db8 } pointer_reference { + id: 0x23d822f9 + kind: POINTER + pointee_type_id: 0xa5206d7a +} +pointer_reference { id: 0x23d902f6 kind: POINTER pointee_type_id: 0xa524ed45 @@ -11932,6 +12189,11 @@ pointer_reference { pointee_type_id: 0xb837e52e } pointer_reference { + id: 0x24a22acc + kind: POINTER + pointee_type_id: 0xb8c84daf +} +pointer_reference { id: 0x24bbc433 kind: POINTER pointee_type_id: 0xb8aff650 @@ -11997,6 +12259,11 @@ pointer_reference { pointee_type_id: 0xb99f29b6 } pointer_reference { + id: 0x24f9cd24 + kind: POINTER + pointee_type_id: 0xb9a7d20f +} +pointer_reference { id: 0x250095e2 kind: POINTER pointee_type_id: 0xbe42b117 @@ -12082,11 +12349,6 @@ pointer_reference { pointee_type_id: 0xbceec39a } pointer_reference { - id: 0x25b57283 - kind: POINTER - pointee_type_id: 0xbc952c91 -} -pointer_reference { id: 0x25b73daa kind: POINTER pointee_type_id: 0xbc9c1035 @@ -12267,6 +12529,11 @@ pointer_reference { pointee_type_id: 0xb0090c73 } pointer_reference { + id: 0x2696c21b + kind: POINTER + pointee_type_id: 0xb01beef1 +} +pointer_reference { id: 0x269af4e9 kind: POINTER pointee_type_id: 0xb02b353a @@ -12412,6 +12679,11 @@ pointer_reference { pointee_type_id: 0xb60a3d7a } pointer_reference { + id: 0x2718fd24 + kind: POINTER + pointee_type_id: 0xb623120e +} +pointer_reference { id: 0x2731dd86 kind: POINTER pointee_type_id: 0xb6879087 @@ -12512,6 +12784,11 @@ pointer_reference { pointee_type_id: 0xb4a26738 } pointer_reference { + id: 0x27c7b3cb + kind: POINTER + pointee_type_id: 0xb55e29b2 +} +pointer_reference { id: 0x27cf73eb kind: POINTER pointee_type_id: 0xb57d2931 @@ -12607,6 +12884,11 @@ pointer_reference { pointee_type_id: 0x8b3c441e } pointer_reference { + id: 0x285f357e + kind: POINTER + pointee_type_id: 0x8b3c3364 +} +pointer_reference { id: 0x2862f859 kind: POINTER pointee_type_id: 0x8bcb07f8 @@ -12637,6 +12919,11 @@ pointer_reference { pointee_type_id: 0x88c7ff3b } pointer_reference { + id: 0x28a3a74b + kind: POINTER + pointee_type_id: 0x88ce7bb2 +} +pointer_reference { id: 0x28ac1164 kind: POINTER pointee_type_id: 0x88f0a30c @@ -12677,11 +12964,6 @@ pointer_reference { pointee_type_id: 0x89378254 } pointer_reference { - id: 0x28e1a5ae - kind: POINTER - pointee_type_id: 0x89c67026 -} -pointer_reference { id: 0x28e1b8de kind: POINTER pointee_type_id: 0x89c605e5 @@ -12927,6 +13209,11 @@ pointer_reference { pointee_type_id: 0x8d58e470 } pointer_reference { + id: 0x29c64ab1 + kind: POINTER + pointee_type_id: 0x8d59cc59 +} +pointer_reference { id: 0x29ccb7ed kind: POINTER pointee_type_id: 0x8d723929 @@ -12952,14 +13239,14 @@ pointer_reference { pointee_type_id: 0x8de7c9fe } pointer_reference { - id: 0x29f9c70b + id: 0x29ef8105 kind: POINTER - pointee_type_id: 0x8da7fab2 + pointee_type_id: 0x8dfee289 } pointer_reference { - id: 0x2a0586b2 + id: 0x29f9c70b kind: POINTER - pointee_type_id: 0x8256fc56 + pointee_type_id: 0x8da7fab2 } pointer_reference { id: 0x2a0a605f @@ -13042,6 +13329,11 @@ pointer_reference { pointee_type_id: 0x83286178 } pointer_reference { + id: 0x2a5e3596 + kind: POINTER + pointee_type_id: 0x833830c5 +} +pointer_reference { id: 0x2a5ed1c1 kind: POINTER pointee_type_id: 0x833ba199 @@ -13192,6 +13484,11 @@ pointer_reference { pointee_type_id: 0x86a9103f } pointer_reference { + id: 0x2b4b15b4 + kind: POINTER + pointee_type_id: 0x876cb04d +} +pointer_reference { id: 0x2b584612 kind: POINTER pointee_type_id: 0x8721fed4 @@ -13237,11 +13534,6 @@ pointer_reference { pointee_type_id: 0x8448d7e4 } pointer_reference { - id: 0x2b8a97e8 - kind: POINTER - pointee_type_id: 0x846ab93f -} -pointer_reference { id: 0x2b8cd86f kind: POINTER pointee_type_id: 0x84738720 @@ -13302,6 +13594,11 @@ pointer_reference { pointee_type_id: 0x84ef9574 } pointer_reference { + id: 0x2bae2afe + kind: POINTER + pointee_type_id: 0x84f84d67 +} +pointer_reference { id: 0x2bb01e4c kind: POINTER pointee_type_id: 0x84809fac @@ -13327,6 +13624,11 @@ pointer_reference { pointee_type_id: 0x84be8096 } pointer_reference { + id: 0x2bc65a97 + kind: POINTER + pointee_type_id: 0x85598cc2 +} +pointer_reference { id: 0x2bc93f35 kind: POINTER pointee_type_id: 0x85641a49 @@ -13557,6 +13859,11 @@ pointer_reference { pointee_type_id: 0x9ac13218 } pointer_reference { + id: 0x2c209d56 + kind: POINTER + pointee_type_id: 0x9ac293c4 +} +pointer_reference { id: 0x2c210d23 kind: POINTER pointee_type_id: 0x9ac4d210 @@ -13727,11 +14034,6 @@ pointer_reference { pointee_type_id: 0x9aacb204 } pointer_reference { - id: 0x2c3b9241 - kind: POINTER - pointee_type_id: 0x9aaeaf98 -} -pointer_reference { id: 0x2c3be0fd kind: POINTER pointee_type_id: 0x9aaf656a @@ -14087,6 +14389,11 @@ pointer_reference { pointee_type_id: 0x9b022eae } pointer_reference { + id: 0x2c50e503 + kind: POINTER + pointee_type_id: 0x9b037291 +} +pointer_reference { id: 0x2c510476 kind: POINTER pointee_type_id: 0x9b04f747 @@ -14882,6 +15189,11 @@ pointer_reference { pointee_type_id: 0x9bbdba09 } pointer_reference { + id: 0x2c7fb451 + kind: POINTER + pointee_type_id: 0x9bbe37da +} +pointer_reference { id: 0x2c7ffaf6 kind: POINTER pointee_type_id: 0x9bbf0d46 @@ -15147,6 +15459,11 @@ pointer_reference { pointee_type_id: 0x982f20ff } pointer_reference { + id: 0x2c9dd50a + kind: POINTER + pointee_type_id: 0x9837b2b4 +} +pointer_reference { id: 0x2c9f2c07 kind: POINTER pointee_type_id: 0x983c5682 @@ -15257,6 +15574,11 @@ pointer_reference { pointee_type_id: 0x98f1d602 } pointer_reference { + id: 0x2cacacc0 + kind: POINTER + pointee_type_id: 0x98f2559e +} +pointer_reference { id: 0x2caea882 kind: POINTER pointee_type_id: 0x98fa4494 @@ -15287,6 +15609,11 @@ pointer_reference { pointee_type_id: 0x98881e2d } pointer_reference { + id: 0x2cb2c9fe + kind: POINTER + pointee_type_id: 0x988bc164 +} +pointer_reference { id: 0x2cb3cf30 kind: POINTER pointee_type_id: 0x988fda5f @@ -15532,6 +15859,21 @@ pointer_reference { pointee_type_id: 0x9917165a } pointer_reference { + id: 0x2cd8506c + kind: POINTER + pointee_type_id: 0x9921a72c +} +pointer_reference { + id: 0x2cd8a9c9 + kind: POINTER + pointee_type_id: 0x992241b9 +} +pointer_reference { + id: 0x2cd9dff0 + kind: POINTER + pointee_type_id: 0x9927995d +} +pointer_reference { id: 0x2cda29dd kind: POINTER pointee_type_id: 0x992841ea @@ -15612,6 +15954,11 @@ pointer_reference { pointee_type_id: 0x99c11430 } pointer_reference { + id: 0x2ce2190b + kind: POINTER + pointee_type_id: 0x99c882b3 +} +pointer_reference { id: 0x2ce315c4 kind: POINTER pointee_type_id: 0x99ccb18c @@ -15702,11 +16049,6 @@ pointer_reference { pointee_type_id: 0x99f3f8f0 } pointer_reference { - id: 0x2ced036e - kind: POINTER - pointee_type_id: 0x99f4eb25 -} -pointer_reference { id: 0x2ced2dfa kind: POINTER pointee_type_id: 0x99f45176 @@ -15917,6 +16259,26 @@ pointer_reference { pointee_type_id: 0x99be88a0 } pointer_reference { + id: 0x2d000b85 + kind: POINTER + pointee_type_id: 0x9e40c88b +} +pointer_reference { + id: 0x2d00157c + kind: POINTER + pointee_type_id: 0x9e40b36c +} +pointer_reference { + id: 0x2d004103 + kind: POINTER + pointee_type_id: 0x9e41e293 +} +pointer_reference { + id: 0x2d004a69 + kind: POINTER + pointee_type_id: 0x9e41cf39 +} +pointer_reference { id: 0x2d008d0e kind: POINTER pointee_type_id: 0x9e42d2a7 @@ -15927,21 +16289,66 @@ pointer_reference { pointee_type_id: 0x9e448e2a } pointer_reference { + id: 0x2d018e8d + kind: POINTER + pointee_type_id: 0x9e46dca9 +} +pointer_reference { + id: 0x2d01e009 + kind: POINTER + pointee_type_id: 0x9e4766bb +} +pointer_reference { + id: 0x2d01fcba + kind: POINTER + pointee_type_id: 0x9e471477 +} +pointer_reference { id: 0x2d0240fc kind: POINTER pointee_type_id: 0x9e49e56e } pointer_reference { + id: 0x2d02e4d4 + kind: POINTER + pointee_type_id: 0x9e4b75cd +} +pointer_reference { + id: 0x2d033017 + kind: POINTER + pointee_type_id: 0x9e4c26c1 +} +pointer_reference { id: 0x2d036f50 kind: POINTER pointee_type_id: 0x9e4d5bdd } pointer_reference { + id: 0x2d0429c2 + kind: POINTER + pointee_type_id: 0x9e504197 +} +pointer_reference { + id: 0x2d044ee7 + kind: POINTER + pointee_type_id: 0x9e51dd03 +} +pointer_reference { + id: 0x2d046cf4 + kind: POINTER + pointee_type_id: 0x9e51554f +} +pointer_reference { id: 0x2d04a781 kind: POINTER pointee_type_id: 0x9e52789b } pointer_reference { + id: 0x2d0679a1 + kind: POINTER + pointee_type_id: 0x9e590019 +} +pointer_reference { id: 0x2d06e5cd kind: POINTER pointee_type_id: 0x9e5b71a8 @@ -15957,6 +16364,16 @@ pointer_reference { pointee_type_id: 0x9e5ef2fc } pointer_reference { + id: 0x2d081f17 + kind: POINTER + pointee_type_id: 0x9e609ac2 +} +pointer_reference { + id: 0x2d085064 + kind: POINTER + pointee_type_id: 0x9e61a70c +} +pointer_reference { id: 0x2d08a576 kind: POINTER pointee_type_id: 0x9e627346 @@ -15972,6 +16389,16 @@ pointer_reference { pointee_type_id: 0x9e663e24 } pointer_reference { + id: 0x2d0a0361 + kind: POINTER + pointee_type_id: 0x9e68eb19 +} +pointer_reference { + id: 0x2d0ab1eb + kind: POINTER + pointee_type_id: 0x9e6a2131 +} +pointer_reference { id: 0x2d0b7a8e kind: POINTER pointee_type_id: 0x9e6d0ca6 @@ -15997,6 +16424,11 @@ pointer_reference { pointee_type_id: 0x9e792fe6 } pointer_reference { + id: 0x2d0e9268 + kind: POINTER + pointee_type_id: 0x9e7aaf3f +} +pointer_reference { id: 0x2d0fdd7c kind: POINTER pointee_type_id: 0x9e7f936c @@ -16032,6 +16464,16 @@ pointer_reference { pointee_type_id: 0x9e026d74 } pointer_reference { + id: 0x2d11ffb5 + kind: POINTER + pointee_type_id: 0x9e071849 +} +pointer_reference { + id: 0x2d12100b + kind: POINTER + pointee_type_id: 0x9e08a6b2 +} +pointer_reference { id: 0x2d126960 kind: POINTER pointee_type_id: 0x9e09431f @@ -16047,6 +16489,16 @@ pointer_reference { pointee_type_id: 0x9e11d049 } pointer_reference { + id: 0x2d154530 + kind: POINTER + pointee_type_id: 0x9e15f25c +} +pointer_reference { + id: 0x2d161d5c + kind: POINTER + pointee_type_id: 0x9e1893ee +} +pointer_reference { id: 0x2d164af6 kind: POINTER pointee_type_id: 0x9e19cd45 @@ -16057,6 +16509,11 @@ pointer_reference { pointee_type_id: 0x9e19651e } pointer_reference { + id: 0x2d16aeaf + kind: POINTER + pointee_type_id: 0x9e1a5c22 +} +pointer_reference { id: 0x2d16b2fd kind: POINTER pointee_type_id: 0x9e1a2d6b @@ -16117,6 +16574,11 @@ pointer_reference { pointee_type_id: 0x9e2ef574 } pointer_reference { + id: 0x2d1c1d12 + kind: POINTER + pointee_type_id: 0x9e3092d5 +} +pointer_reference { id: 0x2d1c7478 kind: POINTER pointee_type_id: 0x9e31377c @@ -16147,6 +16609,11 @@ pointer_reference { pointee_type_id: 0x9e3f1247 } pointer_reference { + id: 0x2d2076df + kind: POINTER + pointee_type_id: 0x9ec13de2 +} +pointer_reference { id: 0x2d214d35 kind: POINTER pointee_type_id: 0x9ec5d248 @@ -16372,6 +16839,11 @@ pointer_reference { pointee_type_id: 0x9e8fd7cb } pointer_reference { + id: 0x2d34349d + kind: POINTER + pointee_type_id: 0x9e9034ea +} +pointer_reference { id: 0x2d3466af kind: POINTER pointee_type_id: 0x9e917c22 @@ -16422,6 +16894,11 @@ pointer_reference { pointee_type_id: 0x9eb7e15e } pointer_reference { + id: 0x2d3dc4f9 + kind: POINTER + pointee_type_id: 0x9eb7f57a +} +pointer_reference { id: 0x2d3df092 kind: POINTER pointee_type_id: 0x9eb724d7 @@ -16442,6 +16919,11 @@ pointer_reference { pointee_type_id: 0x9ebfed71 } pointer_reference { + id: 0x2d3ffbc6 + kind: POINTER + pointee_type_id: 0x9ebf0984 +} +pointer_reference { id: 0x2d4051be kind: POINTER pointee_type_id: 0x9f41a065 @@ -16547,6 +17029,11 @@ pointer_reference { pointee_type_id: 0x9f6f73ed } pointer_reference { + id: 0x2d4c6881 + kind: POINTER + pointee_type_id: 0x9f71449b +} +pointer_reference { id: 0x2d4eaa35 kind: POINTER pointee_type_id: 0x9f7a4e49 @@ -16562,6 +17049,11 @@ pointer_reference { pointee_type_id: 0x9f7fc723 } pointer_reference { + id: 0x2d4fcd25 + kind: POINTER + pointee_type_id: 0x9f7fd20b +} +pointer_reference { id: 0x2d50c295 kind: POINTER pointee_type_id: 0x9f03ecc8 @@ -16602,6 +17094,16 @@ pointer_reference { pointee_type_id: 0x9f1dcaea } pointer_reference { + id: 0x2d591a0e + kind: POINTER + pointee_type_id: 0x9f248ea4 +} +pointer_reference { + id: 0x2d594ead + kind: POINTER + pointee_type_id: 0x9f25dc29 +} +pointer_reference { id: 0x2d59c606 kind: POINTER pointee_type_id: 0x9f27fe87 @@ -16682,11 +17184,6 @@ pointer_reference { pointee_type_id: 0x9fc9e6ec } pointer_reference { - id: 0x2d62ee59 - kind: POINTER - pointee_type_id: 0x9fcb5ff8 -} -pointer_reference { id: 0x2d630d01 kind: POINTER pointee_type_id: 0x9fccd299 @@ -16717,6 +17214,11 @@ pointer_reference { pointee_type_id: 0x9fd1a709 } pointer_reference { + id: 0x2d645d4d + kind: POINTER + pointee_type_id: 0x9fd193aa +} +pointer_reference { id: 0x2d646f41 kind: POINTER pointee_type_id: 0x9fd15b99 @@ -16837,6 +17339,16 @@ pointer_reference { pointee_type_id: 0x9f87b817 } pointer_reference { + id: 0x2d7368ed + kind: POINTER + pointee_type_id: 0x9f8d452b +} +pointer_reference { + id: 0x2d739f19 + kind: POINTER + pointee_type_id: 0x9f8e9af9 +} +pointer_reference { id: 0x2d7549b3 kind: POINTER pointee_type_id: 0x9f95c053 @@ -16867,6 +17379,11 @@ pointer_reference { pointee_type_id: 0x9f9d90bf } pointer_reference { + id: 0x2d77f22a + kind: POINTER + pointee_type_id: 0x9f9f2e37 +} +pointer_reference { id: 0x2d7870f7 kind: POINTER pointee_type_id: 0x9fa12542 @@ -16877,14 +17394,14 @@ pointer_reference { pointee_type_id: 0x9fa3b723 } pointer_reference { - id: 0x2d797d9d + id: 0x2d7ab985 kind: POINTER - pointee_type_id: 0x9fa510e8 + pointee_type_id: 0x9faa0088 } pointer_reference { - id: 0x2d797f87 + id: 0x2d7ac448 kind: POINTER - pointee_type_id: 0x9fa51880 + pointee_type_id: 0x9fabf7be } pointer_reference { id: 0x2d7ae3a5 @@ -17087,6 +17604,11 @@ pointer_reference { pointee_type_id: 0x9c7d7af2 } pointer_reference { + id: 0x2d8fd28a + kind: POINTER + pointee_type_id: 0x9c7facb4 +} +pointer_reference { id: 0x2d8fdd2c kind: POINTER pointee_type_id: 0x9c7f922c @@ -17372,6 +17894,11 @@ pointer_reference { pointee_type_id: 0x9cf48276 } pointer_reference { + id: 0x2dae0c91 + kind: POINTER + pointee_type_id: 0x9cf8d4d9 +} +pointer_reference { id: 0x2dae560d kind: POINTER pointee_type_id: 0x9cf9beaa @@ -17412,6 +17939,11 @@ pointer_reference { pointee_type_id: 0x9c8d1a40 } pointer_reference { + id: 0x2db6fcd8 + kind: POINTER + pointee_type_id: 0x9c9b15ff +} +pointer_reference { id: 0x2db71389 kind: POINTER pointee_type_id: 0x9c9ca8bb @@ -17577,6 +18109,11 @@ pointer_reference { pointee_type_id: 0x9d4e4357 } pointer_reference { + id: 0x2dc3d72e + kind: POINTER + pointee_type_id: 0x9d4fba25 +} +pointer_reference { id: 0x2dc3dd18 kind: POINTER pointee_type_id: 0x9d4f92fc @@ -17992,6 +18529,11 @@ pointer_reference { pointee_type_id: 0x9de31a69 } pointer_reference { + id: 0x2de928d9 + kind: POINTER + pointee_type_id: 0x9de445fa +} +pointer_reference { id: 0x2de9a54b kind: POINTER pointee_type_id: 0x9de673b1 @@ -18097,6 +18639,11 @@ pointer_reference { pointee_type_id: 0x9da05299 } pointer_reference { + id: 0x2df84197 + kind: POINTER + pointee_type_id: 0x9da1e0c3 +} +pointer_reference { id: 0x2df9d3a1 kind: POINTER pointee_type_id: 0x9da7a81a @@ -18262,21 +18809,56 @@ pointer_reference { pointee_type_id: 0x9266fead } pointer_reference { + id: 0x2e0a2548 + kind: POINTER + pointee_type_id: 0x926873bc +} +pointer_reference { + id: 0x2e0a26c5 + kind: POINTER + pointee_type_id: 0x92687d88 +} +pointer_reference { id: 0x2e0a4508 kind: POINTER pointee_type_id: 0x9269f2bc } pointer_reference { + id: 0x2e0ab0cf + kind: POINTER + pointee_type_id: 0x926a25a2 +} +pointer_reference { + id: 0x2e0abaa7 + kind: POINTER + pointee_type_id: 0x926a0c03 +} +pointer_reference { + id: 0x2e0abbc6 + kind: POINTER + pointee_type_id: 0x926a0987 +} +pointer_reference { id: 0x2e0ac0be kind: POINTER pointee_type_id: 0x926be467 } pointer_reference { + id: 0x2e0ad762 + kind: POINTER + pointee_type_id: 0x926bbb17 +} +pointer_reference { id: 0x2e0b4b4b kind: POINTER pointee_type_id: 0x926dcbb0 } pointer_reference { + id: 0x2e0b7ad3 + kind: POINTER + pointee_type_id: 0x926d0dd0 +} +pointer_reference { id: 0x2e0b807c kind: POINTER pointee_type_id: 0x926ee76e @@ -18327,11 +18909,26 @@ pointer_reference { pointee_type_id: 0x92075c0f } pointer_reference { + id: 0x2e133d23 + kind: POINTER + pointee_type_id: 0x920c1213 +} +pointer_reference { id: 0x2e136b7a kind: POINTER pointee_type_id: 0x920d4b76 } pointer_reference { + id: 0x2e137a28 + kind: POINTER + pointee_type_id: 0x920d0e3f +} +pointer_reference { + id: 0x2e1466a0 + kind: POINTER + pointee_type_id: 0x92117c1d +} +pointer_reference { id: 0x2e152fbb kind: POINTER pointee_type_id: 0x92145871 @@ -18342,6 +18939,11 @@ pointer_reference { pointee_type_id: 0x9215c28e } pointer_reference { + id: 0x2e157919 + kind: POINTER + pointee_type_id: 0x921502fa +} +pointer_reference { id: 0x2e160375 kind: POINTER pointee_type_id: 0x9218eb49 @@ -18377,6 +18979,11 @@ pointer_reference { pointee_type_id: 0x92233392 } pointer_reference { + id: 0x2e19617e + kind: POINTER + pointee_type_id: 0x92256367 +} +pointer_reference { id: 0x2e19d469 kind: POINTER pointee_type_id: 0x9227b73b @@ -18397,11 +19004,6 @@ pointer_reference { pointee_type_id: 0x922dbdf3 } pointer_reference { - id: 0x2e1b59dd - kind: POINTER - pointee_type_id: 0x922d81eb -} -pointer_reference { id: 0x2e1d1da3 kind: POINTER pointee_type_id: 0x92349012 @@ -18422,6 +19024,11 @@ pointer_reference { pointee_type_id: 0x92c2d86d } pointer_reference { + id: 0x2e20981d + kind: POINTER + pointee_type_id: 0x92c286e9 +} +pointer_reference { id: 0x2e215a2d kind: POINTER pointee_type_id: 0x92c58e2b @@ -18442,6 +19049,11 @@ pointer_reference { pointee_type_id: 0x92d3b873 } pointer_reference { + id: 0x2e2690ae + kind: POINTER + pointee_type_id: 0x92daa424 +} +pointer_reference { id: 0x2e27223f kind: POINTER pointee_type_id: 0x92dc6e62 @@ -18487,6 +19099,21 @@ pointer_reference { pointee_type_id: 0x92f4a3cb } pointer_reference { + id: 0x2e2ef220 + kind: POINTER + pointee_type_id: 0x92fb2e1e +} +pointer_reference { + id: 0x2e2f03e7 + kind: POINTER + pointee_type_id: 0x92fce902 +} +pointer_reference { + id: 0x2e2f0b11 + kind: POINTER + pointee_type_id: 0x92fccadb +} +pointer_reference { id: 0x2e2ff28a kind: POINTER pointee_type_id: 0x92ff2cb6 @@ -18512,6 +19139,11 @@ pointer_reference { pointee_type_id: 0x92878d53 } pointer_reference { + id: 0x2e323a43 + kind: POINTER + pointee_type_id: 0x92880f91 +} +pointer_reference { id: 0x2e334b9e kind: POINTER pointee_type_id: 0x928dc8e5 @@ -18527,6 +19159,11 @@ pointer_reference { pointee_type_id: 0x929702b9 } pointer_reference { + id: 0x2e360c76 + kind: POINTER + pointee_type_id: 0x9298d745 +} +pointer_reference { id: 0x2e36aac4 kind: POINTER pointee_type_id: 0x929a4d8e @@ -18547,6 +19184,11 @@ pointer_reference { pointee_type_id: 0x92a82deb } pointer_reference { + id: 0x2e3aa811 + kind: POINTER + pointee_type_id: 0x92aa46db +} +pointer_reference { id: 0x2e3afbd5 kind: POINTER pointee_type_id: 0x92ab09cb @@ -18562,11 +19204,21 @@ pointer_reference { pointee_type_id: 0x92ae55cd } pointer_reference { + id: 0x2e3beeb2 + kind: POINTER + pointee_type_id: 0x92af5c55 +} +pointer_reference { id: 0x2e3de161 kind: POINTER pointee_type_id: 0x92b76318 } pointer_reference { + id: 0x2e3f95bc + kind: POINTER + pointee_type_id: 0x92beb06d +} +pointer_reference { id: 0x2e3fe61b kind: POINTER pointee_type_id: 0x92bf7ef1 @@ -18597,6 +19249,11 @@ pointer_reference { pointee_type_id: 0x9352af9c } pointer_reference { + id: 0x2e477ad3 + kind: POINTER + pointee_type_id: 0x935d0dd3 +} +pointer_reference { id: 0x2e47a18c kind: POINTER pointee_type_id: 0x935e60af @@ -18697,6 +19354,11 @@ pointer_reference { pointee_type_id: 0x9313a933 } pointer_reference { + id: 0x2e54f1b8 + kind: POINTER + pointee_type_id: 0x9313207d +} +pointer_reference { id: 0x2e5535c9 kind: POINTER pointee_type_id: 0x931431b9 @@ -18727,6 +19389,11 @@ pointer_reference { pointee_type_id: 0x931806a8 } pointer_reference { + id: 0x2e5686ce + kind: POINTER + pointee_type_id: 0x931afda4 +} +pointer_reference { id: 0x2e56b2c6 kind: POINTER pointee_type_id: 0x931a2d85 @@ -18832,9 +19499,14 @@ pointer_reference { pointee_type_id: 0x93e8e7b0 } pointer_reference { - id: 0x2e6ac856 + id: 0x2e6a357b + kind: POINTER + pointee_type_id: 0x93e83373 +} +pointer_reference { + id: 0x2e6a35a0 kind: POINTER - pointee_type_id: 0x93ebc7c6 + pointee_type_id: 0x93e8301d } pointer_reference { id: 0x2e6c8788 @@ -18867,6 +19539,11 @@ pointer_reference { pointee_type_id: 0x938c1916 } pointer_reference { + id: 0x2e735a06 + kind: POINTER + pointee_type_id: 0x938d8e84 +} +pointer_reference { id: 0x2e73c057 kind: POINTER pointee_type_id: 0x938fe7c2 @@ -18882,6 +19559,16 @@ pointer_reference { pointee_type_id: 0x93907678 } pointer_reference { + id: 0x2e747a05 + kind: POINTER + pointee_type_id: 0x93910e88 +} +pointer_reference { + id: 0x2e7505e0 + kind: POINTER + pointee_type_id: 0x9394f11e +} +pointer_reference { id: 0x2e76071a kind: POINTER pointee_type_id: 0x9398faf7 @@ -18937,6 +19624,11 @@ pointer_reference { pointee_type_id: 0x93b941f7 } pointer_reference { + id: 0x2e7ffbfe + kind: POINTER + pointee_type_id: 0x93bf0967 +} +pointer_reference { id: 0x2e804bb7 kind: POINTER pointee_type_id: 0x9041c842 @@ -19157,11 +19849,6 @@ pointer_reference { pointee_type_id: 0x90f57fd0 } pointer_reference { - id: 0x2eae2318 - kind: POINTER - pointee_type_id: 0x90f86afe -} -pointer_reference { id: 0x2eaed94d kind: POINTER pointee_type_id: 0x90fb83a9 @@ -19197,6 +19884,11 @@ pointer_reference { pointee_type_id: 0x9090fcd9 } pointer_reference { + id: 0x2eb464c1 + kind: POINTER + pointee_type_id: 0x90917599 +} +pointer_reference { id: 0x2eb4795d kind: POINTER pointee_type_id: 0x909103e9 @@ -19237,11 +19929,6 @@ pointer_reference { pointee_type_id: 0x90adbc21 } pointer_reference { - id: 0x2ebb6897 - kind: POINTER - pointee_type_id: 0x90ad44c2 -} -pointer_reference { id: 0x2ebb9477 kind: POINTER pointee_type_id: 0x90aeb741 @@ -19567,11 +20254,6 @@ pointer_reference { pointee_type_id: 0x912037b8 } pointer_reference { - id: 0x2ed842b7 - kind: POINTER - pointee_type_id: 0x9121ec42 -} -pointer_reference { id: 0x2ed870a7 kind: POINTER pointee_type_id: 0x91212402 @@ -19777,11 +20459,6 @@ pointer_reference { pointee_type_id: 0x91e36693 } pointer_reference { - id: 0x2ee94408 - kind: POINTER - pointee_type_id: 0x91e5f6bf -} -pointer_reference { id: 0x2ee95f08 kind: POINTER pointee_type_id: 0x91e59abf @@ -20247,6 +20924,11 @@ pointer_reference { pointee_type_id: 0x96d126d3 } pointer_reference { + id: 0x2f24a589 + kind: POINTER + pointee_type_id: 0x96d270ba +} +pointer_reference { id: 0x2f25d7c2 kind: POINTER pointee_type_id: 0x96d7b994 @@ -20472,16 +21154,6 @@ pointer_reference { pointee_type_id: 0x97012809 } pointer_reference { - id: 0x2f509af6 - kind: POINTER - pointee_type_id: 0x97028d47 -} -pointer_reference { - id: 0x2f50a983 - kind: POINTER - pointee_type_id: 0x97024092 -} -pointer_reference { id: 0x2f515c44 kind: POINTER pointee_type_id: 0x9705978c @@ -20722,9 +21394,9 @@ pointer_reference { pointee_type_id: 0x97b2b8d0 } pointer_reference { - id: 0x2f7f5489 + id: 0x2f802886 kind: POINTER - pointee_type_id: 0x97bdb4b8 + pointee_type_id: 0x94404485 } pointer_reference { id: 0x2f805571 @@ -20742,6 +21414,11 @@ pointer_reference { pointee_type_id: 0x9445ee80 } pointer_reference { + id: 0x2f815de7 + kind: POINTER + pointee_type_id: 0x94459100 +} +pointer_reference { id: 0x2f81f017 kind: POINTER pointee_type_id: 0x944726c2 @@ -21257,6 +21934,11 @@ pointer_reference { pointee_type_id: 0x9511594d } pointer_reference { + id: 0x2fd4f232 + kind: POINTER + pointee_type_id: 0x95132e54 +} +pointer_reference { id: 0x2fd86c98 kind: POINTER pointee_type_id: 0x952154fc @@ -21592,6 +22274,11 @@ pointer_reference { pointee_type_id: 0xeabee0bd } pointer_reference { + id: 0x30408c71 + kind: POINTER + pointee_type_id: 0xeb42d758 +} +pointer_reference { id: 0x3043f6b1 kind: POINTER pointee_type_id: 0xeb4f3c58 @@ -21697,6 +22384,11 @@ pointer_reference { pointee_type_id: 0xeba4823c } pointer_reference { + id: 0x307eba5c + kind: POINTER + pointee_type_id: 0xebba0fee +} +pointer_reference { id: 0x30887d17 kind: POINTER pointee_type_id: 0xe86112c3 @@ -21792,6 +22484,11 @@ pointer_reference { pointee_type_id: 0xe8f8d87a } pointer_reference { + id: 0x30afcff2 + kind: POINTER + pointee_type_id: 0xe8ffd957 +} +pointer_reference { id: 0x30b384f8 kind: POINTER pointee_type_id: 0xe88ef57f @@ -21957,6 +22654,11 @@ pointer_reference { pointee_type_id: 0xeec4d3d8 } pointer_reference { + id: 0x3121a074 + kind: POINTER + pointee_type_id: 0xeec6674e +} +pointer_reference { id: 0x31287056 kind: POINTER pointee_type_id: 0xeee127c5 @@ -22092,6 +22794,11 @@ pointer_reference { pointee_type_id: 0xef9a648b } pointer_reference { + id: 0x31790b1e + kind: POINTER + pointee_type_id: 0xefa4cae6 +} +pointer_reference { id: 0x31829648 kind: POINTER pointee_type_id: 0xec4abfbd @@ -22202,11 +22909,6 @@ pointer_reference { pointee_type_id: 0xed640f62 } pointer_reference { - id: 0x31cb364e - kind: POINTER - pointee_type_id: 0xed6c3fa4 -} -pointer_reference { id: 0x31cbe3b8 kind: POINTER pointee_type_id: 0xed6f687f @@ -22237,6 +22939,11 @@ pointer_reference { pointee_type_id: 0xed225d89 } pointer_reference { + id: 0x31d9e79a + kind: POINTER + pointee_type_id: 0xed2778f4 +} +pointer_reference { id: 0x31da1e83 kind: POINTER pointee_type_id: 0xed289c91 @@ -22347,9 +23054,9 @@ pointer_reference { pointee_type_id: 0xe2cebd77 } pointer_reference { - id: 0x322509a0 + id: 0x3225ac75 kind: POINTER - pointee_type_id: 0xe2d4c01c + pointee_type_id: 0xe2d6574a } pointer_reference { id: 0x322c8c4b @@ -22387,16 +23094,31 @@ pointer_reference { pointee_type_id: 0xe2a728bc } pointer_reference { + id: 0x323d798e + kind: POINTER + pointee_type_id: 0xe2b500a6 +} +pointer_reference { id: 0x3240bbe7 kind: POINTER pointee_type_id: 0xe3420903 } pointer_reference { + id: 0x3247ae94 + kind: POINTER + pointee_type_id: 0xe35e5ccd +} +pointer_reference { id: 0x324a2d7b kind: POINTER pointee_type_id: 0xe3685372 } pointer_reference { + id: 0x324ddec3 + kind: POINTER + pointee_type_id: 0xe3779d93 +} +pointer_reference { id: 0x324e6996 kind: POINTER pointee_type_id: 0xe37940c7 @@ -22667,6 +23389,11 @@ pointer_reference { pointee_type_id: 0xe1c969cb } pointer_reference { + id: 0x32e4574b + kind: POINTER + pointee_type_id: 0xe1d1bbb1 +} +pointer_reference { id: 0x32e49390 kind: POINTER pointee_type_id: 0xe1d2a8dc @@ -22727,6 +23454,11 @@ pointer_reference { pointee_type_id: 0xe644a39b } pointer_reference { + id: 0x33086ec3 + kind: POINTER + pointee_type_id: 0xe6615d93 +} +pointer_reference { id: 0x330db442 kind: POINTER pointee_type_id: 0xe6763795 @@ -22747,14 +23479,14 @@ pointer_reference { pointee_type_id: 0xe620f747 } pointer_reference { - id: 0x331a85e3 + id: 0x331a1d7a kind: POINTER - pointee_type_id: 0xe62af112 + pointee_type_id: 0xe6289375 } pointer_reference { - id: 0x331b3d77 + id: 0x331a85e3 kind: POINTER - pointee_type_id: 0xe62c1341 + pointee_type_id: 0xe62af112 } pointer_reference { id: 0x331b9666 @@ -22762,11 +23494,6 @@ pointer_reference { pointee_type_id: 0xe62ebf07 } pointer_reference { - id: 0x331e2c82 - kind: POINTER - pointee_type_id: 0xe6385497 -} -pointer_reference { id: 0x331fc64d kind: POINTER pointee_type_id: 0xe63fffaa @@ -22882,11 +23609,6 @@ pointer_reference { pointee_type_id: 0xe7643c7c } pointer_reference { - id: 0x334b2254 - kind: POINTER - pointee_type_id: 0xe76c6fcf -} -pointer_reference { id: 0x334c0532 kind: POINTER pointee_type_id: 0xe770f257 @@ -22917,6 +23639,11 @@ pointer_reference { pointee_type_id: 0xe70e9a5b } pointer_reference { + id: 0x33558def + kind: POINTER + pointee_type_id: 0xe716d120 +} +pointer_reference { id: 0x335d253d kind: POINTER pointee_type_id: 0xe734726a @@ -22932,6 +23659,11 @@ pointer_reference { pointee_type_id: 0xe7c3994d } pointer_reference { + id: 0x33642722 + kind: POINTER + pointee_type_id: 0xe7d07a15 +} +pointer_reference { id: 0x33657329 kind: POINTER pointee_type_id: 0xe7d52a38 @@ -23027,6 +23759,11 @@ pointer_reference { pointee_type_id: 0xe42d7586 } pointer_reference { + id: 0x339b8baf + kind: POINTER + pointee_type_id: 0xe42ec820 +} +pointer_reference { id: 0x339ebb61 kind: POINTER pointee_type_id: 0xe43a0b1b @@ -23197,6 +23934,11 @@ pointer_reference { pointee_type_id: 0xe5ac437d } pointer_reference { + id: 0x33fd261b + kind: POINTER + pointee_type_id: 0xe5b47ef3 +} +pointer_reference { id: 0x34016e82 kind: POINTER pointee_type_id: 0xfa455c97 @@ -23227,6 +23969,11 @@ pointer_reference { pointee_type_id: 0xfa774e1b } pointer_reference { + id: 0x34104e47 + kind: POINTER + pointee_type_id: 0xfa01df81 +} +pointer_reference { id: 0x3411dbb1 kind: POINTER pointee_type_id: 0xfa078858 @@ -23277,6 +24024,11 @@ pointer_reference { pointee_type_id: 0xfaeafe16 } pointer_reference { + id: 0x3431098c + kind: POINTER + pointee_type_id: 0xfa84c0ac +} +pointer_reference { id: 0x34334e6d kind: POINTER pointee_type_id: 0xfa8ddf2a @@ -23397,6 +24149,11 @@ pointer_reference { pointee_type_id: 0xfbdf50fc } pointer_reference { + id: 0x346c7967 + kind: POINTER + pointee_type_id: 0xfbf10300 +} +pointer_reference { id: 0x346d8a0d kind: POINTER pointee_type_id: 0xfbf6cea8 @@ -23447,6 +24204,11 @@ pointer_reference { pointee_type_id: 0xf8453f2e } pointer_reference { + id: 0x34818c51 + kind: POINTER + pointee_type_id: 0xf846d7da +} +pointer_reference { id: 0x3486508f kind: POINTER pointee_type_id: 0xf859a4a2 @@ -23502,6 +24264,11 @@ pointer_reference { pointee_type_id: 0xf87eb23d } pointer_reference { + id: 0x348fecbf + kind: POINTER + pointee_type_id: 0xf87f5460 +} +pointer_reference { id: 0x3491860b kind: POINTER pointee_type_id: 0xf806feb1 @@ -23777,11 +24544,6 @@ pointer_reference { pointee_type_id: 0xfe81d85b } pointer_reference { - id: 0x35324dc4 - kind: POINTER - pointee_type_id: 0xfe89d18d -} -pointer_reference { id: 0x3536f126 kind: POINTER pointee_type_id: 0xfe9b2205 @@ -23887,6 +24649,11 @@ pointer_reference { pointee_type_id: 0xfff5e6f7 } pointer_reference { + id: 0x356e4b27 + kind: POINTER + pointee_type_id: 0xfff9ca03 +} +pointer_reference { id: 0x35737846 kind: POINTER pointee_type_id: 0xff8d0786 @@ -23927,6 +24694,11 @@ pointer_reference { pointee_type_id: 0xfc53e789 } pointer_reference { + id: 0x358546f6 + kind: POINTER + pointee_type_id: 0xfc55fd47 +} +pointer_reference { id: 0x358a1c52 kind: POINTER pointee_type_id: 0xfc6897d7 @@ -23967,6 +24739,11 @@ pointer_reference { pointee_type_id: 0xfcc23ab7 } pointer_reference { + id: 0x35a7c1c3 + kind: POINTER + pointee_type_id: 0xfcdfe193 +} +pointer_reference { id: 0x35ab6b03 kind: POINTER pointee_type_id: 0xfced4a93 @@ -24007,6 +24784,11 @@ pointer_reference { pointee_type_id: 0xfc8ba4d2 } pointer_reference { + id: 0x35b3ea42 + kind: POINTER + pointee_type_id: 0xfc8f4f95 +} +pointer_reference { id: 0x35bad1e5 kind: POINTER pointee_type_id: 0xfcaba10a @@ -24037,11 +24819,6 @@ pointer_reference { pointee_type_id: 0xfd600427 } pointer_reference { - id: 0x35cc4540 - kind: POINTER - pointee_type_id: 0xfd71f39d -} -pointer_reference { id: 0x35d0c5ee kind: POINTER pointee_type_id: 0xfd03f127 @@ -24157,6 +24934,11 @@ pointer_reference { pointee_type_id: 0xfda4bf28 } pointer_reference { + id: 0x35feb7e2 + kind: POINTER + pointee_type_id: 0xfdba3915 +} +pointer_reference { id: 0x36042134 kind: POINTER pointee_type_id: 0xf250624e @@ -24167,6 +24949,11 @@ pointer_reference { pointee_type_id: 0xf25d597f } pointer_reference { + id: 0x3609467c + kind: POINTER + pointee_type_id: 0xf265ff6f +} +pointer_reference { id: 0x360c66c5 kind: POINTER pointee_type_id: 0xf2717d88 @@ -24212,6 +24999,11 @@ pointer_reference { pointee_type_id: 0xf2c78cfb } pointer_reference { + id: 0x3622fa2a + kind: POINTER + pointee_type_id: 0xf2cb0e35 +} +pointer_reference { id: 0x3626871f kind: POINTER pointee_type_id: 0xf2dafae3 @@ -24242,11 +25034,6 @@ pointer_reference { pointee_type_id: 0xf2a3d079 } pointer_reference { - id: 0x363b9249 - kind: POINTER - pointee_type_id: 0xf2aeafb9 -} -pointer_reference { id: 0x363f43e7 kind: POINTER pointee_type_id: 0xf2bde902 @@ -24282,6 +25069,11 @@ pointer_reference { pointee_type_id: 0xf3dea95c } pointer_reference { + id: 0x3667e19e + kind: POINTER + pointee_type_id: 0xf3df60e5 +} +pointer_reference { id: 0x3668642a kind: POINTER pointee_type_id: 0xf3e17637 @@ -24382,11 +25174,6 @@ pointer_reference { pointee_type_id: 0xf03663da } pointer_reference { - id: 0x36a2b57a - kind: POINTER - pointee_type_id: 0xf0ca3374 -} -pointer_reference { id: 0x36a41f54 kind: POINTER pointee_type_id: 0xf0d09bcf @@ -24542,11 +25329,6 @@ pointer_reference { pointee_type_id: 0xf18067ea } pointer_reference { - id: 0x36f0529f - kind: POINTER - pointee_type_id: 0xf181ace2 -} -pointer_reference { id: 0x36f0c7ee kind: POINTER pointee_type_id: 0xf183f924 @@ -24822,6 +25604,11 @@ pointer_reference { pointee_type_id: 0xf7e2e2fa } pointer_reference { + id: 0x376c8705 + kind: POINTER + pointee_type_id: 0xf7f2fa8a +} +pointer_reference { id: 0x376d0d4f kind: POINTER pointee_type_id: 0xf7f4d3a0 @@ -24872,6 +25659,11 @@ pointer_reference { pointee_type_id: 0xf4616560 } pointer_reference { + id: 0x378dbf55 + kind: POINTER + pointee_type_id: 0xf4761bc8 +} +pointer_reference { id: 0x37944814 kind: POINTER pointee_type_id: 0xf411c6cf @@ -24977,11 +25769,6 @@ pointer_reference { pointee_type_id: 0xf5228665 } pointer_reference { - id: 0x37d96371 - kind: POINTER - pointee_type_id: 0xf5256b58 -} -pointer_reference { id: 0x37dafd0a kind: POINTER pointee_type_id: 0xf52b12b6 @@ -25077,11 +25864,6 @@ pointer_reference { pointee_type_id: 0xf5b0198f } pointer_reference { - id: 0x37fc9b61 - kind: POINTER - pointee_type_id: 0xf5b28b19 -} -pointer_reference { id: 0x37fdbcb1 kind: POINTER pointee_type_id: 0xf5b61458 @@ -25117,16 +25899,31 @@ pointer_reference { pointee_type_id: 0xca5a7101 } pointer_reference { + id: 0x380882e7 + kind: POINTER + pointee_type_id: 0xca62ed00 +} +pointer_reference { id: 0x3808938b kind: POINTER pointee_type_id: 0xca62a8b3 } pointer_reference { + id: 0x38090ad2 + kind: POINTER + pointee_type_id: 0xca64cdd4 +} +pointer_reference { id: 0x380a78f0 kind: POINTER pointee_type_id: 0xca69055f } pointer_reference { + id: 0x380c33d1 + kind: POINTER + pointee_type_id: 0xca7029d8 +} +pointer_reference { id: 0x381472e2 kind: POINTER pointee_type_id: 0xca112d16 @@ -25197,6 +25994,11 @@ pointer_reference { pointee_type_id: 0xcaaeb726 } pointer_reference { + id: 0x383bad14 + kind: POINTER + pointee_type_id: 0xcaae52cc +} +pointer_reference { id: 0x383bcea3 kind: POINTER pointee_type_id: 0xcaafdc12 @@ -25252,6 +26054,11 @@ pointer_reference { pointee_type_id: 0xcb720070 } pointer_reference { + id: 0x384d1346 + kind: POINTER + pointee_type_id: 0xcb74ab84 +} +pointer_reference { id: 0x384ff235 kind: POINTER pointee_type_id: 0xcb7f2e4a @@ -25497,11 +26304,6 @@ pointer_reference { pointee_type_id: 0xc9cc379b } pointer_reference { - id: 0x38e86333 - kind: POINTER - pointee_type_id: 0xc9e16a53 -} -pointer_reference { id: 0x38ec2eab kind: POINTER pointee_type_id: 0xc9f05c33 @@ -25637,6 +26439,11 @@ pointer_reference { pointee_type_id: 0xce9dd989 } pointer_reference { + id: 0x39388fd3 + kind: POINTER + pointee_type_id: 0xcea2d9d1 +} +pointer_reference { id: 0x393f044a kind: POINTER pointee_type_id: 0xcebcf7b7 @@ -25792,6 +26599,11 @@ pointer_reference { pointee_type_id: 0xcc1251bf } pointer_reference { + id: 0x3999579d + kind: POINTER + pointee_type_id: 0xcc25b8e9 +} +pointer_reference { id: 0x399f63b7 kind: POINTER pointee_type_id: 0xcc3d6841 @@ -25832,6 +26644,11 @@ pointer_reference { pointee_type_id: 0xcc81b8d3 } pointer_reference { + id: 0x39b2ba38 + kind: POINTER + pointee_type_id: 0xcc8a0e7e +} +pointer_reference { id: 0x39b425bc kind: POINTER pointee_type_id: 0xcc90706c @@ -26187,6 +27004,11 @@ pointer_reference { pointee_type_id: 0xc032f3e5 } pointer_reference { + id: 0x3a9d5bb9 + kind: POINTER + pointee_type_id: 0xc035887a +} +pointer_reference { id: 0x3aac87ab kind: POINTER pointee_type_id: 0xc0f2f833 @@ -26337,9 +27159,14 @@ pointer_reference { pointee_type_id: 0xc60bc51e } pointer_reference { - id: 0x3b15fe1d + id: 0x3b143836 + kind: POINTER + pointee_type_id: 0xc6100647 +} +pointer_reference { + id: 0x3b19594b kind: POINTER - pointee_type_id: 0xc6171ee9 + pointee_type_id: 0xc62583b0 } pointer_reference { id: 0x3b19ae48 @@ -26467,6 +27294,11 @@ pointer_reference { pointee_type_id: 0xc77aa47c } pointer_reference { + id: 0x3b5017f2 + kind: POINTER + pointee_type_id: 0xc700b957 +} +pointer_reference { id: 0x3b54fdd3 kind: POINTER pointee_type_id: 0xc71311d1 @@ -26492,6 +27324,11 @@ pointer_reference { pointee_type_id: 0xc733e2de } pointer_reference { + id: 0x3b622f67 + kind: POINTER + pointee_type_id: 0xc7c85b01 +} +pointer_reference { id: 0x3b66c89b kind: POINTER pointee_type_id: 0xc7dbc4f1 @@ -26592,6 +27429,11 @@ pointer_reference { pointee_type_id: 0xc4e323c9 } pointer_reference { + id: 0x3ba909c1 + kind: POINTER + pointee_type_id: 0xc4e4c198 +} +pointer_reference { id: 0x3baacc82 kind: POINTER pointee_type_id: 0xc4ebd496 @@ -26602,19 +27444,14 @@ pointer_reference { pointee_type_id: 0xc4f6e4f3 } pointer_reference { - id: 0x3bb11c92 + id: 0x3bb0740c kind: POINTER - pointee_type_id: 0xc48494d4 + pointee_type_id: 0xc48136af } pointer_reference { - id: 0x3bc2a7f0 - kind: POINTER - pointee_type_id: 0xc54a795e -} -pointer_reference { - id: 0x3bc62241 + id: 0x3bb11c92 kind: POINTER - pointee_type_id: 0xc5586f9b + pointee_type_id: 0xc48494d4 } pointer_reference { id: 0x3bc90e1f @@ -26627,14 +27464,14 @@ pointer_reference { pointee_type_id: 0xc5640d2a } pointer_reference { - id: 0x3bcbf8c5 + id: 0x3bccaec1 kind: POINTER - pointee_type_id: 0xc56f0588 + pointee_type_id: 0xc5725d9a } pointer_reference { - id: 0x3bccaec1 + id: 0x3bcd0c02 kind: POINTER - pointee_type_id: 0xc5725d9a + pointee_type_id: 0xc574d697 } pointer_reference { id: 0x3bd2bf42 @@ -26642,6 +27479,11 @@ pointer_reference { pointee_type_id: 0xc50a1b96 } pointer_reference { + id: 0x3bd6fa3a + kind: POINTER + pointee_type_id: 0xc51b0e75 +} +pointer_reference { id: 0x3bd9eb0b kind: POINTER pointee_type_id: 0xc5274ab2 @@ -26667,6 +27509,11 @@ pointer_reference { pointee_type_id: 0xc5d356cb } pointer_reference { + id: 0x3be6380c + kind: POINTER + pointee_type_id: 0xc5d806af +} +pointer_reference { id: 0x3be64ffd kind: POINTER pointee_type_id: 0xc5d9d969 @@ -26677,6 +27524,11 @@ pointer_reference { pointee_type_id: 0xc5e27af4 } pointer_reference { + id: 0x3beb3e50 + kind: POINTER + pointee_type_id: 0xc5ec1fdd +} +pointer_reference { id: 0x3bedc96c kind: POINTER pointee_type_id: 0xc5f7c32f @@ -26722,11 +27574,21 @@ pointer_reference { pointee_type_id: 0xda60e9a6 } pointer_reference { + id: 0x3c087d20 + kind: POINTER + pointee_type_id: 0xda61121d +} +pointer_reference { id: 0x3c0933ca kind: POINTER pointee_type_id: 0xda6429b7 } pointer_reference { + id: 0x3c0cf46a + kind: POINTER + pointee_type_id: 0xda733736 +} +pointer_reference { id: 0x3c0e9e79 kind: POINTER pointee_type_id: 0xda7a9f79 @@ -26792,6 +27654,11 @@ pointer_reference { pointee_type_id: 0xdb44b469 } pointer_reference { + id: 0x3c417e01 + kind: POINTER + pointee_type_id: 0xdb451e9a +} +pointer_reference { id: 0x3c41c19b kind: POINTER pointee_type_id: 0xdb47e0f3 @@ -26837,6 +27704,11 @@ pointer_reference { pointee_type_id: 0xdb0ebdcd } pointer_reference { + id: 0x3c53e119 + kind: POINTER + pointee_type_id: 0xdb0f62fb +} +pointer_reference { id: 0x3c53eefd kind: POINTER pointee_type_id: 0xdb0f5d6b @@ -26892,9 +27764,9 @@ pointer_reference { pointee_type_id: 0xdbcfcd34 } pointer_reference { - id: 0x3c6958c4 + id: 0x3c692b7e kind: POINTER - pointee_type_id: 0xdbe5858f + pointee_type_id: 0xdbe44b66 } pointer_reference { id: 0x3c6a6bbc @@ -26927,11 +27799,6 @@ pointer_reference { pointee_type_id: 0xd84f47eb } pointer_reference { - id: 0x3c88afe7 - kind: POINTER - pointee_type_id: 0xd8625902 -} -pointer_reference { id: 0x3c88bbfa kind: POINTER pointee_type_id: 0xd8620976 @@ -27037,6 +27904,11 @@ pointer_reference { pointee_type_id: 0xd96df1ac } pointer_reference { + id: 0x3ccb45d9 + kind: POINTER + pointee_type_id: 0xd96df1fa +} +pointer_reference { id: 0x3ccbbab7 kind: POINTER pointee_type_id: 0xd96e0c40 @@ -27097,6 +27969,11 @@ pointer_reference { pointee_type_id: 0xde680909 } pointer_reference { + id: 0x3d1364e9 + kind: POINTER + pointee_type_id: 0xde0d753a +} +pointer_reference { id: 0x3d1ec847 kind: POINTER pointee_type_id: 0xde3bc780 @@ -27147,6 +28024,11 @@ pointer_reference { pointee_type_id: 0xdf4d92db } pointer_reference { + id: 0x3d46e073 + kind: POINTER + pointee_type_id: 0xdf5b6752 +} +pointer_reference { id: 0x3d4bf55f kind: POINTER pointee_type_id: 0xdf6f33e0 @@ -27157,11 +28039,6 @@ pointer_reference { pointee_type_id: 0xdf713fb7 } pointer_reference { - id: 0x3d5133eb - kind: POINTER - pointee_type_id: 0xdf042930 -} -pointer_reference { id: 0x3d551c03 kind: POINTER pointee_type_id: 0xdf149691 @@ -27242,6 +28119,11 @@ pointer_reference { pointee_type_id: 0xdfba2774 } pointer_reference { + id: 0x3d801074 + kind: POINTER + pointee_type_id: 0xdc40a74d +} +pointer_reference { id: 0x3d828cd9 kind: POINTER pointee_type_id: 0xdc4ad5fb @@ -27307,11 +28189,6 @@ pointer_reference { pointee_type_id: 0xdcc24511 } pointer_reference { - id: 0x3da548f2 - kind: POINTER - pointee_type_id: 0xdcd5c554 -} -pointer_reference { id: 0x3da9f5e9 kind: POINTER pointee_type_id: 0xdce73138 @@ -27487,6 +28364,11 @@ pointer_reference { pointee_type_id: 0xddfa054d } pointer_reference { + id: 0x3df0a7d3 + kind: POINTER + pointee_type_id: 0xdd8279d0 +} +pointer_reference { id: 0x3df7e337 kind: POINTER pointee_type_id: 0xdd9f6a40 @@ -27497,6 +28379,11 @@ pointer_reference { pointee_type_id: 0xdda60846 } pointer_reference { + id: 0x3dfac2ad + kind: POINTER + pointee_type_id: 0xddabec2b +} +pointer_reference { id: 0x3e001c39 kind: POINTER pointee_type_id: 0xd240967a @@ -27587,11 +28474,21 @@ pointer_reference { pointee_type_id: 0xd2e0ae36 } pointer_reference { + id: 0x3e292ad1 + kind: POINTER + pointee_type_id: 0xd2e44dd9 +} +pointer_reference { id: 0x3e29be7b kind: POINTER pointee_type_id: 0xd2e61f73 } pointer_reference { + id: 0x3e2a5e3d + kind: POINTER + pointee_type_id: 0xd2e99e69 +} +pointer_reference { id: 0x3e2de599 kind: POINTER pointee_type_id: 0xd2f770f8 @@ -27607,11 +28504,6 @@ pointer_reference { pointee_type_id: 0xd298e888 } pointer_reference { - id: 0x3e3a4a9e - kind: POINTER - pointee_type_id: 0xd2a9cce7 -} -pointer_reference { id: 0x3e44cfd7 kind: POINTER pointee_type_id: 0xd353d9c3 @@ -27662,11 +28554,6 @@ pointer_reference { pointee_type_id: 0xd3ab17fd } pointer_reference { - id: 0x3e7e0d52 - kind: POINTER - pointee_type_id: 0xd3b8d3d4 -} -pointer_reference { id: 0x3e7f4a71 kind: POINTER pointee_type_id: 0xd3bdcf5a @@ -27687,6 +28574,11 @@ pointer_reference { pointee_type_id: 0xd06de2a9 } pointer_reference { + id: 0x3e8d7c9a + kind: POINTER + pointee_type_id: 0xd07514f5 +} +pointer_reference { id: 0x3e8e572f kind: POINTER pointee_type_id: 0xd079ba20 @@ -27877,9 +28769,9 @@ pointer_reference { pointee_type_id: 0xd1f5399e } pointer_reference { - id: 0x3ef473d4 + id: 0x3eee6a0e kind: POINTER - pointee_type_id: 0xd19129ce + pointee_type_id: 0xd1f94ea7 } pointer_reference { id: 0x3ef55b88 @@ -27927,6 +28819,11 @@ pointer_reference { pointee_type_id: 0xd649efa3 } pointer_reference { + id: 0x3f055728 + kind: POINTER + pointee_type_id: 0xd655ba3d +} +pointer_reference { id: 0x3f063da2 kind: POINTER pointee_type_id: 0xd6581015 @@ -27997,6 +28894,11 @@ pointer_reference { pointee_type_id: 0xd69f81c9 } pointer_reference { + id: 0x3f387468 + kind: POINTER + pointee_type_id: 0xd6a1373c +} +pointer_reference { id: 0x3f3cd89a kind: POINTER pointee_type_id: 0xd6b384f7 @@ -28117,6 +29019,11 @@ pointer_reference { pointee_type_id: 0xd41e888f } pointer_reference { + id: 0x3f985801 + kind: POINTER + pointee_type_id: 0xd421869b +} +pointer_reference { id: 0x3f9adc09 kind: POINTER pointee_type_id: 0xd42b96b9 @@ -28177,11 +29084,21 @@ pointer_reference { pointee_type_id: 0xd559247f } pointer_reference { + id: 0x3fca7642 + kind: POINTER + pointee_type_id: 0xd5693f95 +} +pointer_reference { id: 0x3fd0b78c kind: POINTER pointee_type_id: 0xd50238af } pointer_reference { + id: 0x3fd547b8 + kind: POINTER + pointee_type_id: 0xd515f87f +} +pointer_reference { id: 0x3fdb8740 kind: POINTER pointee_type_id: 0xd52efb9f @@ -28582,6 +29499,11 @@ typedef { referred_type_id: 0x0b690cd3 } typedef { + id: 0x833830c5 + name: "be128" + referred_type_id: 0x3857842d +} +typedef { id: 0x117ba19a name: "bh_end_io_t" referred_type_id: 0x17592b81 @@ -28617,11 +29539,21 @@ typedef { referred_type_id: 0xe62ebf07 } typedef { + id: 0x1684c624 + name: "blk_plug_cb_fn" + referred_type_id: 0x0c5168e8 +} +typedef { id: 0x3cc4e4dd name: "blk_qc_t" referred_type_id: 0x4585663f } typedef { + id: 0xa47a28f3 + name: "blk_short_t" + referred_type_id: 0x914dbfdc +} +typedef { id: 0x7be80061 name: "blk_status_t" referred_type_id: 0x295c7202 @@ -28837,6 +29769,126 @@ typedef { referred_type_id: 0xe83041c0 } typedef { + id: 0xb8c84daf + name: "dio_iodone_t" + referred_type_id: 0x9f043139 +} +typedef { + id: 0x30d045ac + name: "dio_submit_t" + referred_type_id: 0x15976e28 +} +typedef { + id: 0x7722f5fe + name: "dm_busy_fn" + referred_type_id: 0x2e2f0b11 +} +typedef { + id: 0x81034bb7 + name: "dm_clone_and_map_request_fn" + referred_type_id: 0x2e323a43 +} +typedef { + id: 0xec2f5289 + name: "dm_ctr_fn" + referred_type_id: 0x2e6a357b +} +typedef { + id: 0x5833b757 + name: "dm_dax_direct_access_fn" + referred_type_id: 0x20bba379 +} +typedef { + id: 0xdbb955db + name: "dm_dax_recovery_write_fn" + referred_type_id: 0x2cb2c9fe +} +typedef { + id: 0xc272516a + name: "dm_dax_zero_page_range_fn" + referred_type_id: 0x2e133d23 +} +typedef { + id: 0xdee852ab + name: "dm_dtr_fn" + referred_type_id: 0x0d6927be +} +typedef { + id: 0x72f27b5e + name: "dm_endio_fn" + referred_type_id: 0x2e3beeb2 +} +typedef { + id: 0x5d27fec1 + name: "dm_io_hints_fn" + referred_type_id: 0x0d52f144 +} +typedef { + id: 0x4944b34e + name: "dm_iterate_devices_fn" + referred_type_id: 0x2eb464c1 +} +typedef { + id: 0x7abd5475 + name: "dm_map_fn" + referred_type_id: 0x2e3aa811 +} +typedef { + id: 0x4a37c87b + name: "dm_message_fn" + referred_type_id: 0x2e6a35a0 +} +typedef { + id: 0x540fc033 + name: "dm_postsuspend_fn" + referred_type_id: 0x0d6927be +} +typedef { + id: 0xb5818a23 + name: "dm_prepare_ioctl_fn" + referred_type_id: 0x2e2690ae +} +typedef { + id: 0xcd86b17c + name: "dm_preresume_fn" + referred_type_id: 0x2e2f0b11 +} +typedef { + id: 0xeab0ac41 + name: "dm_presuspend_fn" + referred_type_id: 0x0d6927be +} +typedef { + id: 0xa3284d98 + name: "dm_presuspend_undo_fn" + referred_type_id: 0x0d6927be +} +typedef { + id: 0x1ce28cf1 + name: "dm_release_clone_request_fn" + referred_type_id: 0x0f65ebe2 +} +typedef { + id: 0xb0c08c5a + name: "dm_report_zones_fn" + referred_type_id: 0x2e157919 +} +typedef { + id: 0xabcaeaec + name: "dm_request_endio_fn" + referred_type_id: 0x2e360c76 +} +typedef { + id: 0x77a6dd29 + name: "dm_resume_fn" + referred_type_id: 0x0d6927be +} +typedef { + id: 0xba528163 + name: "dm_status_fn" + referred_type_id: 0x0d599e4a +} +typedef { id: 0xe02e14d6 name: "dma_addr_t" referred_type_id: 0x92233392 @@ -28977,6 +30029,11 @@ typedef { referred_type_id: 0x06afdad0 } typedef { + id: 0x98f2559e + name: "get_block_t" + referred_type_id: 0x982488f7 +} +typedef { id: 0x244afa25 name: "gfn_t" referred_type_id: 0x92233392 @@ -28992,11 +30049,6 @@ typedef { referred_type_id: 0x012a99e5 } typedef { - id: 0x1b4ba19a - name: "gpa_t" - referred_type_id: 0x92233392 -} -typedef { id: 0xa98dedee name: "gro_result_t" referred_type_id: 0xcc8a47b3 @@ -29027,6 +30079,16 @@ typedef { referred_type_id: 0x92233392 } typedef { + id: 0xd57eb7ba + name: "initxattrs" + referred_type_id: 0x2c7fb451 +} +typedef { + id: 0xee72cbfc + name: "ino_t" + referred_type_id: 0x21d43a7b +} +typedef { id: 0x7e8f5c14 name: "int32" referred_type_id: 0xe62ebf07 @@ -29067,6 +30129,11 @@ typedef { referred_type_id: 0x2f184276 } typedef { + id: 0x0b098126 + name: "irq_cpustat_t" + referred_type_id: 0x3b85198b +} +typedef { id: 0xb0c2eb21 name: "irq_flow_handler_t" referred_type_id: 0x0d82bfbc @@ -29097,6 +30164,11 @@ typedef { referred_type_id: 0x4585663f } typedef { + id: 0x9ae406d4 + name: "iterate_devices_callout_fn" + referred_type_id: 0x2e3f95bc +} +typedef { id: 0xc6154084 name: "iw_handler" referred_type_id: 0x2efa9e52 @@ -29197,16 +30269,6 @@ typedef { referred_type_id: 0x5db53aa1 } typedef { - id: 0x7eadb465 - name: "kvm_pgtable_force_pte_cb_t" - referred_type_id: 0x3c88afe7 -} -typedef { - id: 0xf2ecf779 - name: "kvm_pgtable_pte_is_counted_cb_t" - referred_type_id: 0x331e2c82 -} -typedef { id: 0x6ee0bcff name: "kvm_pte_t" referred_type_id: 0x92233392 @@ -29457,11 +30519,6 @@ typedef { referred_type_id: 0x763389c7 } typedef { - id: 0x16864222 - name: "pkvm_handle_t" - referred_type_id: 0x4585663f -} -typedef { id: 0xf017819f name: "pm_message_t" referred_type_id: 0x4eef2f1a @@ -29962,6 +31019,11 @@ typedef { referred_type_id: 0x2da051ab } typedef { + id: 0x34e17987 + name: "status_type_t" + referred_type_id: 0x42178190 +} +typedef { id: 0x6c15168b name: "substring_t" referred_type_id: 0x279cfd35 @@ -30192,6 +31254,11 @@ typedef { referred_type_id: 0x0b526877 } typedef { + id: 0x9de445fa + name: "v4l2_check_dv_timings_fnc" + referred_type_id: 0xf2553153 +} +typedef { id: 0x7c355df7 name: "v4l2_ctrl_notify_fnc" referred_type_id: 0x0def8d1d @@ -30302,6 +31369,11 @@ typedef { referred_type_id: 0x4585663f } typedef { + id: 0xa7efd65a + name: "xa_update_node_t" + referred_type_id: 0x0d6c28a3 +} +typedef { id: 0x313397f7 name: "xfrm_address_t" referred_type_id: 0x6e8ae78e @@ -30347,6 +31419,11 @@ qualified { qualified_type_id: 0x70d15e47 } qualified { + id: 0xc035887a + qualifier: CONST + qualified_type_id: 0x70919762 +} +qualified { id: 0xc04414ae qualifier: CONST qualified_type_id: 0x7157e430 @@ -30507,6 +31584,11 @@ qualified { qualified_type_id: 0x6101d583 } qualified { + id: 0xc48136af + qualifier: CONST + qualified_type_id: 0x62436c35 +} +qualified { id: 0xc48494d4 qualifier: CONST qualified_type_id: 0x6255e5da @@ -30537,24 +31619,19 @@ qualified { qualified_type_id: 0x64a438fc } qualified { - id: 0xc54a795e - qualifier: CONST - qualified_type_id: 0x656e53f1 -} -qualified { id: 0xc5640d2a qualifier: CONST qualified_type_id: 0x65d78220 } qualified { - id: 0xc56f0588 + id: 0xc5725d9a qualifier: CONST - qualified_type_id: 0x65fba0a9 + qualified_type_id: 0x658ec0e0 } qualified { - id: 0xc5725d9a + id: 0xc574d697 qualifier: CONST - qualified_type_id: 0x658ec0e0 + qualified_type_id: 0x6594ecd4 } qualified { id: 0xc596e113 @@ -30582,11 +31659,26 @@ qualified { qualified_type_id: 0x67ce5d5b } qualified { + id: 0xc5ec1fdd + qualifier: CONST + qualified_type_id: 0x67f7c9ff +} +qualified { id: 0xc5f7c32f qualifier: CONST qualified_type_id: 0x6798ba36 } qualified { + id: 0xc6100647 + qualifier: CONST + qualified_type_id: 0x6807af97 +} +qualified { + id: 0xc62583b0 + qualifier: CONST + qualified_type_id: 0x68d1b84a +} +qualified { id: 0xc6265fbd qualifier: CONST qualified_type_id: 0x68dec87d @@ -30687,6 +31779,11 @@ qualified { qualified_type_id: 0x6e373489 } qualified { + id: 0xc7c85b01 + qualifier: CONST + qualified_type_id: 0x6f66da8d +} +qualified { id: 0xc7dbc4f1 qualifier: CONST qualified_type_id: 0x6f28a54f @@ -30887,6 +31984,11 @@ qualified { qualified_type_id: 0x5d8fb74a } qualified { + id: 0xcb74ab84 + qualifier: CONST + qualified_type_id: 0x5d95189a +} +qualified { id: 0xcb987dd0 qualifier: CONST qualified_type_id: 0x5e2641cb @@ -31127,6 +32229,11 @@ qualified { qualified_type_id: 0x30a49fb4 } qualified { + id: 0xd07514f5 + qualifier: CONST + qualified_type_id: 0x3193e55d +} +qualified { id: 0xd08a0c68 qualifier: CONST qualified_type_id: 0x326f872a @@ -31277,11 +32384,6 @@ qualified { qualified_type_id: 0x399c459b } qualified { - id: 0xd2a9cce7 - qualifier: CONST - qualified_type_id: 0x3ae08515 -} -qualified { id: 0xd2d7132a qualifier: CONST qualified_type_id: 0x3b1bfa21 @@ -31397,6 +32499,11 @@ qualified { qualified_type_id: 0x244f5434 } qualified { + id: 0xd515f87f + qualifier: CONST + qualified_type_id: 0x24105774 +} +qualified { id: 0xd52ecd52 qualifier: CONST qualified_type_id: 0x24fc83c0 @@ -31447,6 +32554,11 @@ qualified { qualified_type_id: 0x29d16967 } qualified { + id: 0xd6a1373c + qualifier: CONST + qualified_type_id: 0x2ac36a79 +} +qualified { id: 0xd6b384f7 qualifier: CONST qualified_type_id: 0x2a89a555 @@ -31652,6 +32764,11 @@ qualified { qualified_type_id: 0x19d71054 } qualified { + id: 0xda733736 + qualifier: CONST + qualified_type_id: 0x198b6a50 +} +qualified { id: 0xda7a9f79 qualifier: CONST qualified_type_id: 0x19adcb6c @@ -31677,6 +32794,11 @@ qualified { qualified_type_id: 0x1c7ac324 } qualified { + id: 0xdb0f62fb + qualifier: CONST + qualified_type_id: 0x1c7a3d65 +} +qualified { id: 0xdb10d97a qualifier: CONST qualified_type_id: 0x1c04d361 @@ -31882,6 +33004,11 @@ qualified { qualified_type_id: 0x07afa3be } qualified { + id: 0xde0d753a + qualifier: CONST + qualified_type_id: 0x08726260 +} +qualified { id: 0xde3bc780 qualifier: CONST qualified_type_id: 0x08a8a88b @@ -31937,6 +33064,11 @@ qualified { qualified_type_id: 0x0d6c22fa } qualified { + id: 0xdf5b6752 + qualifier: CONST + qualified_type_id: 0x0d2a2bc0 +} +qualified { id: 0xdf6f33e0 qualifier: CONST qualified_type_id: 0x0dfb7909 @@ -32127,6 +33259,11 @@ qualified { qualified_type_id: 0xfa2455af } qualified { + id: 0xe2b500a6 + qualifier: CONST + qualified_type_id: 0xfa93b413 +} +qualified { id: 0xe2cebd77 qualifier: CONST qualified_type_id: 0xfb7d4357 @@ -32157,6 +33294,11 @@ qualified { qualified_type_id: 0xfde6fb43 } qualified { + id: 0xe3779d93 + qualifier: CONST + qualified_type_id: 0xfd99c0c6 +} +qualified { id: 0xe3791aa0 qualifier: CONST qualified_type_id: 0xfda3dc09 @@ -32272,6 +33414,11 @@ qualified { qualified_type_id: 0xe6f6bb7d } qualified { + id: 0xe5b47ef3 + qualifier: CONST + qualified_type_id: 0xe6964d46 +} +qualified { id: 0xe5d16cd3 qualifier: CONST qualified_type_id: 0xe70205c6 @@ -32442,6 +33589,11 @@ qualified { qualified_type_id: 0xd3c80119 } qualified { + id: 0xe8ffd957 + qualifier: CONST + qualified_type_id: 0xd3b8d3d4 +} +qualified { id: 0xe9164f81 qualifier: CONST qualified_type_id: 0xd41e888f @@ -32567,6 +33719,11 @@ qualified { qualified_type_id: 0xded5be7b } qualified { + id: 0xebba0fee + qualifier: CONST + qualified_type_id: 0xdeaf8933 +} +qualified { id: 0xebc0e0d9 qualifier: CONST qualified_type_id: 0xdf4435ed @@ -32672,6 +33829,11 @@ qualified { qualified_type_id: 0xc460028a } qualified { + id: 0xed2778f4 + qualifier: CONST + qualified_type_id: 0xc4da5559 +} +qualified { id: 0xed32e285 qualifier: CONST qualified_type_id: 0xc48c3c9d @@ -32687,11 +33849,6 @@ qualified { qualified_type_id: 0xc5d78b03 } qualified { - id: 0xed6c3fa4 - qualifier: CONST - qualified_type_id: 0xc5f74818 -} -qualified { id: 0xed856aa8 qualifier: CONST qualified_type_id: 0xc6521c28 @@ -32777,6 +33934,11 @@ qualified { qualified_type_id: 0xcaab19b4 } qualified { + id: 0xeec6674e + qualifier: CONST + qualified_type_id: 0xcb5e2bb0 +} +qualified { id: 0xeee127c5 qualifier: CONST qualified_type_id: 0xcbc3299e @@ -32942,6 +34104,11 @@ qualified { qualified_type_id: 0xbe067d4b } qualified { + id: 0xf3df60e5 + qualifier: CONST + qualified_type_id: 0xbf3a351e +} +qualified { id: 0xf3e17637 qualifier: CONST qualified_type_id: 0xbfc26e57 @@ -32972,6 +34139,11 @@ qualified { qualified_type_id: 0xa0bcedf5 } qualified { + id: 0xf4761bc8 + qualifier: CONST + qualified_type_id: 0xa19fd9aa +} +qualified { id: 0xf4a306a1 qualifier: CONST qualified_type_id: 0xa2cbac0e @@ -32997,11 +34169,6 @@ qualified { qualified_type_id: 0xa4cdaf1d } qualified { - id: 0xf5256b58 - qualifier: CONST - qualified_type_id: 0xa4d21be9 -} -qualified { id: 0xf52b12b6 qualifier: CONST qualified_type_id: 0xa4ebfc51 @@ -33052,11 +34219,6 @@ qualified { qualified_type_id: 0xa687d0b4 } qualified { - id: 0xf5b28b19 - qualifier: CONST - qualified_type_id: 0xa68d9aed -} -qualified { id: 0xf5d07691 qualifier: CONST qualified_type_id: 0xa7066cce @@ -33162,6 +34324,11 @@ qualified { qualified_type_id: 0xae5a9933 } qualified { + id: 0xf7f2fa8a + qualifier: CONST + qualified_type_id: 0xaf8c5ca0 +} +qualified { id: 0xf824f490 qualifier: CONST qualified_type_id: 0x90d464ca @@ -33197,6 +34364,11 @@ qualified { qualified_type_id: 0x91b5a647 } qualified { + id: 0xf87f5460 + qualifier: CONST + qualified_type_id: 0x91bae70a +} +qualified { id: 0xf8992146 qualifier: CONST qualified_type_id: 0x92233392 @@ -33382,6 +34554,11 @@ qualified { qualified_type_id: 0x9f3af57a } qualified { + id: 0xfbf10300 + qualifier: CONST + qualified_type_id: 0x9f83ba8a +} +qualified { id: 0xfbf6cea8 qualifier: CONST qualified_type_id: 0x9f9c8c2b @@ -33427,6 +34604,11 @@ qualified { qualified_type_id: 0x834f5c57 } qualified { + id: 0xfcdfe193 + qualifier: CONST + qualified_type_id: 0x833830c5 +} +qualified { id: 0xfd03f127 qualifier: CONST qualified_type_id: 0x84487217 @@ -33591,6 +34773,11 @@ qualified { qualifier: CONST qualified_type_id: 0x8f902d54 } +qualified { + id: 0xfff9ca03 + qualifier: CONST + qualified_type_id: 0x8fa09e85 +} primitive { id: 0x15053314 name: "double" @@ -33681,11 +34868,6 @@ array { element_type_id: 0x384f7d7c } array { - id: 0x01e90d51 - number_of_elements: 64 - element_type_id: 0xc9082b19 -} -array { id: 0x01ef5f77 number_of_elements: 80 element_type_id: 0x384f7d7c @@ -34281,6 +35463,11 @@ array { element_type_id: 0x295c7202 } array { + id: 0x3a8e7b26 + number_of_elements: 3 + element_type_id: 0xa12e384a +} +array { id: 0x3b24b1ed number_of_elements: 20 element_type_id: 0xb3e7bac9 @@ -34406,6 +35593,11 @@ array { element_type_id: 0xbcedc070 } array { + id: 0x439cf6d8 + number_of_elements: 16 + element_type_id: 0x3ebcd127 +} +array { id: 0x43acdd98 number_of_elements: 32 element_type_id: 0x5d8155a5 @@ -34436,11 +35628,6 @@ array { element_type_id: 0xb3e7bac9 } array { - id: 0x4449c48b - number_of_elements: 32 - element_type_id: 0x421531e8 -} -array { id: 0x4472656b number_of_elements: 16 element_type_id: 0x21069feb @@ -34456,11 +35643,6 @@ array { element_type_id: 0xa047de54 } array { - id: 0x44c5e79a - number_of_elements: 32 - element_type_id: 0x4025bdaf -} -array { id: 0x44ef98e3 number_of_elements: 16 element_type_id: 0x237169c8 @@ -34536,11 +35718,6 @@ array { element_type_id: 0x99300838 } array { - id: 0x4b27ac3d - number_of_elements: 16 - element_type_id: 0x1c51bab0 -} -array { id: 0x4b395ad9 number_of_elements: 256 element_type_id: 0xcb71b8cb @@ -34576,11 +35753,6 @@ array { element_type_id: 0xc9082b19 } array { - id: 0x4c3e1687 - number_of_elements: 2 - element_type_id: 0x825d5993 -} -array { id: 0x4c4654d5 number_of_elements: 7 element_type_id: 0x92233392 @@ -34711,11 +35883,6 @@ array { element_type_id: 0x92233392 } array { - id: 0x53bf0b06 - number_of_elements: 32 - element_type_id: 0x1dce0fdd -} -array { id: 0x5408a5f2 number_of_elements: 2 element_type_id: 0xe2879445 @@ -34861,9 +36028,9 @@ array { element_type_id: 0x21069feb } array { - id: 0x5d2762c3 - number_of_elements: 2 - element_type_id: 0xc6388883 + id: 0x5d529b1e + number_of_elements: 16 + element_type_id: 0x4585663f } array { id: 0x5e18785f @@ -34936,6 +36103,11 @@ array { element_type_id: 0x295c7202 } array { + id: 0x62a5e001 + number_of_elements: 13 + element_type_id: 0x92233392 +} +array { id: 0x62e6d4e3 number_of_elements: 34 element_type_id: 0xb3e7bac9 @@ -35141,11 +36313,6 @@ array { element_type_id: 0x064d6086 } array { - id: 0x6d4372c7 - number_of_elements: 2 - element_type_id: 0x07a8c893 -} -array { id: 0x6d472730 number_of_elements: 32 element_type_id: 0xe62ebf07 @@ -35201,21 +36368,11 @@ array { element_type_id: 0x1e18ac15 } array { - id: 0x6fb0151f - number_of_elements: 32 - element_type_id: 0xedf277ba -} -array { id: 0x6fde7229 number_of_elements: 2 element_type_id: 0x0ddccb29 } array { - id: 0x70444415 - number_of_elements: 32 - element_type_id: 0x92233392 -} -array { id: 0x70bb96a6 number_of_elements: 7 element_type_id: 0x61d43a5c @@ -35251,6 +36408,11 @@ array { element_type_id: 0x2eab5b8a } array { + id: 0x729479be + number_of_elements: 2 + element_type_id: 0x78f4e574 +} +array { id: 0x7349866a number_of_elements: 49 element_type_id: 0xfc0e1dbd @@ -35321,11 +36483,6 @@ array { element_type_id: 0x6bc0e8a0 } array { - id: 0x774f5f7f - number_of_elements: 16 - element_type_id: 0xedf277ba -} -array { id: 0x77f6971e number_of_elements: 2 element_type_id: 0x6d7f5ff6 @@ -35531,6 +36688,11 @@ array { element_type_id: 0x3fcbf304 } array { + id: 0x8483d98a + number_of_elements: 6 + element_type_id: 0x948a2888 +} +array { id: 0x84f80ecf number_of_elements: 6 element_type_id: 0x9565759f @@ -35711,9 +36873,9 @@ array { element_type_id: 0x0ab21434 } array { - id: 0x8f5ceaee - number_of_elements: 4 - element_type_id: 0x0c47e7d1 + id: 0x8fb3c5ee + number_of_elements: 1 + element_type_id: 0xe9e88d93 } array { id: 0x8fc9368a @@ -35726,11 +36888,6 @@ array { element_type_id: 0x0ee0f933 } array { - id: 0x904f12e1 - number_of_elements: 9 - element_type_id: 0xedf277ba -} -array { id: 0x91412a6e number_of_elements: 1 element_type_id: 0x92233392 @@ -35796,11 +36953,6 @@ array { element_type_id: 0xdce3c92e } array { - id: 0x9819cf84 - number_of_elements: 1 - element_type_id: 0xb740a439 -} -array { id: 0x982afc69 number_of_elements: 6 element_type_id: 0xe62ebf07 @@ -35821,11 +36973,6 @@ array { element_type_id: 0x58757be8 } array { - id: 0x9addce46 - number_of_elements: 6 - element_type_id: 0xedf277ba -} -array { id: 0x9b2d4673 number_of_elements: 4 element_type_id: 0x5d8155a5 @@ -36086,11 +37233,6 @@ array { element_type_id: 0xb3e7bac9 } array { - id: 0xae993a3b - number_of_elements: 1 - element_type_id: 0x6d4372c7 -} -array { id: 0xaf023c73 number_of_elements: 1 element_type_id: 0x6b2f6be6 @@ -36176,6 +37318,11 @@ array { element_type_id: 0xe62ebf07 } array { + id: 0xb637307e + number_of_elements: 4 + element_type_id: 0xe9e88d93 +} +array { id: 0xb6bc1f4d number_of_elements: 17 element_type_id: 0xc9082b19 @@ -36186,11 +37333,6 @@ array { element_type_id: 0x5d8155a5 } array { - id: 0xb717646a - number_of_elements: 1 - element_type_id: 0x0b7a0b83 -} -array { id: 0xb7237aa3 number_of_elements: 1 element_type_id: 0x0baa70a7 @@ -36201,11 +37343,6 @@ array { element_type_id: 0xedf277ba } array { - id: 0xb740a439 - number_of_elements: 988 - element_type_id: 0x6720d32f -} -array { id: 0xb77dc255 number_of_elements: 31 element_type_id: 0xedf277ba @@ -36476,6 +37613,10 @@ array { element_type_id: 0x30887d17 } array { + id: 0xc82f70f4 + element_type_id: 0x305bf810 +} +array { id: 0xc8c766a0 number_of_elements: 8 element_type_id: 0xb3e7bac9 @@ -36519,6 +37660,10 @@ array { element_type_id: 0x295c7202 } array { + id: 0xcb703345 + element_type_id: 0x3d26f6d4 +} +array { id: 0xcbd8574f element_type_id: 0x3f8766fd } @@ -36650,10 +37795,6 @@ array { element_type_id: 0x384f7d7c } array { - id: 0xd2fe57e5 - element_type_id: 0x5b1f6457 -} -array { id: 0xd3067a59 number_of_elements: 8 element_type_id: 0xdce3c92e @@ -36667,10 +37808,6 @@ array { element_type_id: 0x5d8155a5 } array { - id: 0xd39aff0d - element_type_id: 0x5e8dc7f4 -} -array { id: 0xd3d96d30 number_of_elements: 8 element_type_id: 0xdf9f948b @@ -36737,11 +37874,6 @@ array { element_type_id: 0x77ee5e6d } array { - id: 0xda277458 - number_of_elements: 15 - element_type_id: 0xb3e7bac9 -} -array { id: 0xda50e95d number_of_elements: 42 element_type_id: 0x29b77961 @@ -36810,6 +37942,10 @@ array { element_type_id: 0x6c1b2db0 } array { + id: 0xdf70f6ef + element_type_id: 0x6d25e07f +} +array { id: 0xdfed0371 element_type_id: 0x6f523604 } @@ -37155,6 +38291,11 @@ array { element_type_id: 0x384f7d7c } array { + id: 0xf95ab7ac + number_of_elements: 15 + element_type_id: 0x3e10b518 +} +array { id: 0xf95fb1e4 number_of_elements: 8 element_type_id: 0x7584e7da @@ -37207,6 +38348,10 @@ array { element_type_id: 0x5d8155a5 } array { + id: 0xfca4258b + element_type_id: 0xe276adef +} +array { id: 0xfd17183f element_type_id: 0xe4ba5b3d } @@ -37248,10 +38393,6 @@ array { number_of_elements: 5 element_type_id: 0x5a38311c } -array { - id: 0xffdb6969 - element_type_id: 0xef8b9e67 -} member { id: 0x205fa3df type_id: 0x0e50ff6f @@ -37332,10 +38473,6 @@ member { type_id: 0x05fd3859 } member { - id: 0x22c0fbbc - type_id: 0x042d9ee3 -} -member { id: 0x22ce0593 type_id: 0x0416665f } @@ -37348,10 +38485,6 @@ member { type_id: 0x0312ab60 } member { - id: 0x233f54d1 - type_id: 0x03d32356 -} -member { id: 0x2380a48f type_id: 0x012ce22f } @@ -37472,6 +38605,10 @@ member { type_id: 0x14b5a454 } member { + id: 0x27000c61 + type_id: 0x132e4197 +} +member { id: 0x27031642 type_id: 0x13222919 } @@ -37639,10 +38776,6 @@ member { type_id: 0x3a2e44f7 } member { - id: 0x2d6cb85c - type_id: 0x3a9c9162 -} -member { id: 0x2d71506c type_id: 0x3aeb31a3 } @@ -37721,6 +38854,11 @@ member { offset: 1280 } member { + id: 0x300b2d2f + type_id: 0x4f02e8cc + offset: 512 +} +member { id: 0x300b75af type_id: 0x4f03a6ae } @@ -37730,6 +38868,11 @@ member { offset: 192 } member { + id: 0x3024ec51 + type_id: 0x4fbdc803 + offset: 28800 +} +member { id: 0x302f914f type_id: 0x4f903dda offset: 704 @@ -37799,11 +38942,6 @@ member { offset: 3584 } member { - id: 0x30c18aff - type_id: 0x4c287de0 - offset: 96 -} -member { id: 0x30d0761f type_id: 0x4c6fa86e } @@ -37871,6 +39009,11 @@ member { type_id: 0x496df688 } member { + id: 0x31a5da6f + type_id: 0x49b90a29 + offset: 59264 +} +member { id: 0x31aa1057 type_id: 0x49861740 offset: 96 @@ -37901,6 +39044,11 @@ member { offset: 192 } member { + id: 0x31fb35e2 + type_id: 0x48c28092 + offset: 128 +} +member { id: 0x321ecf49 type_id: 0x47554d36 } @@ -37962,11 +39110,6 @@ member { offset: 512 } member { - id: 0x32f872a3 - type_id: 0x44cf9d95 - offset: 128 -} -member { id: 0x32f92d43 type_id: 0x44cad962 offset: 1024 @@ -38157,11 +39300,6 @@ member { offset: 64 } member { - id: 0x345b10fd - type_id: 0x5e422cfb - offset: 320 -} -member { id: 0x345b12e5 type_id: 0x5e4227fb offset: 1024 @@ -38214,11 +39352,6 @@ member { type_id: 0x5dafba4f } member { - id: 0x34a3e933 - type_id: 0x5da1f3d6 - offset: 128 -} -member { id: 0x34a73897 type_id: 0x5db28e31 offset: 1024 @@ -38281,21 +39414,6 @@ member { type_id: 0x5ba545d0 } member { - id: 0x353b064f - type_id: 0x5bc27631 - offset: 320 -} -member { - id: 0x353d48f5 - type_id: 0x5bdb70e0 - offset: 192 -} -member { - id: 0x3551435a - type_id: 0x5a6b6efc - offset: 64 -} -member { id: 0x3568359b type_id: 0x5a8e8177 offset: 128 @@ -38363,6 +39481,10 @@ member { offset: 840 } member { + id: 0x36752b74 + type_id: 0x56faddc1 +} +member { id: 0x36961302 type_id: 0x557609c1 offset: 1088 @@ -38418,16 +39540,6 @@ member { offset: 64 } member { - id: 0x36fb8f0a - type_id: 0x54c04e96 - offset: 256 -} -member { - id: 0x371515be - type_id: 0x537a3f0f - offset: 640 -} -member { id: 0x3726cc57 type_id: 0x53b5414d } @@ -38478,11 +39590,6 @@ member { type_id: 0x50eb577a } member { - id: 0x37f52c8e - type_id: 0x50fafc25 - offset: 66880 -} -member { id: 0x3801ddd5 type_id: 0x6f2909ad offset: 832 @@ -38564,11 +39671,6 @@ member { offset: 64 } member { - id: 0x398b7926 - type_id: 0x6903870d - offset: 64 -} -member { id: 0x39a6859a type_id: 0x69b475fe offset: 64 @@ -38584,6 +39686,11 @@ member { offset: 256 } member { + id: 0x39d6d358 + type_id: 0x6875099c + offset: 32 +} +member { id: 0x39e9b87f type_id: 0x6888b6e5 offset: 128 @@ -38594,6 +39701,11 @@ member { offset: 256 } member { + id: 0x3a3b9c87 + type_id: 0x67c0081f + offset: 1984 +} +member { id: 0x3a3e30f1 type_id: 0x67d69fb5 offset: 512 @@ -38673,10 +39785,6 @@ member { offset: 64 } member { - id: 0x3b3d55bb - type_id: 0x63db26fc -} -member { id: 0x3b65917c type_id: 0x62b835e0 } @@ -38831,6 +39939,11 @@ member { offset: 96 } member { + id: 0x3c8c9122 + type_id: 0x7d1c3635 + offset: 256 +} +member { id: 0x3cac7aec type_id: 0x7d9f9ba1 } @@ -39011,11 +40124,6 @@ member { offset: 1024 } member { - id: 0x3f0e6b4d - type_id: 0x7317df8a - offset: 256 -} -member { id: 0x3f155004 type_id: 0x737b0daa offset: 2816 @@ -39128,10 +40236,6 @@ member { type_id: 0x70763ce9 } member { - id: 0x3fee6444 - type_id: 0x7097e100 -} -member { id: 0x3ff2757d type_id: 0x70e783e8 offset: 96 @@ -39548,12 +40652,6 @@ member { type_id: 0x312fa971 } member { - id: 0xfc4129b1 - name: "____srcu_idx" - type_id: 0x6720d32f - offset: 352 -} -member { id: 0x36aedf4a name: "__align" type_id: 0x18bd6530 @@ -39623,6 +40721,12 @@ member { offset: 16 } member { + id: 0xf4a9b31e + name: "__data" + type_id: 0xd359db99 + offset: 128 +} +member { id: 0xf4b20642 name: "__data" type_id: 0xc8e4d7d1 @@ -39704,9 +40808,9 @@ member { offset: 576 } member { - id: 0x983c1d18 + id: 0x982c7c86 name: "__hyp_running_vcpu" - type_id: 0x08dcfb76 + type_id: 0x18bd6530 offset: 14528 } member { @@ -39715,6 +40819,12 @@ member { type_id: 0x4585663f } member { + id: 0xed0c7bc2 + name: "__ifi_pad" + type_id: 0x5d8155a5 + offset: 8 +} +member { id: 0x1d90045d name: "__iter_idx" type_id: 0x33756485 @@ -39743,12 +40853,6 @@ member { offset: 8 } member { - id: 0xf0778c7b - name: "__memslots" - type_id: 0xae993a3b - offset: 960 -} -member { id: 0x12f2249e name: "__multicast" type_id: 0xb02b353a @@ -39807,6 +40911,12 @@ member { offset: 64 } member { + id: 0x86165645 + name: "__pad2" + type_id: 0x5d8155a5 + offset: 120 +} +member { id: 0x86715b21 name: "__pad2" type_id: 0x3a8cf6d8 @@ -40059,6 +41169,11 @@ member { type_id: 0x61a74d47 } member { + id: 0x8fa57542 + name: "__softirq_pending" + type_id: 0x4585663f +} +member { id: 0x11319dfd name: "__stack" type_id: 0x18bd6530 @@ -40168,6 +41283,20 @@ member { offset: 384 } member { + id: 0x370a9ced + name: "__unused_1" + type_id: 0xe8034002 + offset: 448 + bitsize: 7 +} +member { + id: 0x8c5039ca + name: "__unused_2" + type_id: 0xe8034002 + offset: 465 + bitsize: 6 +} +member { id: 0x206928e2 name: "__use" type_id: 0x6720d32f @@ -40357,6 +41486,12 @@ member { type_id: 0x3e10b518 } member { + id: 0x3e75936d + name: "_net" + type_id: 0xb335d16f + offset: 3136 +} +member { id: 0x3e759921 name: "_net" type_id: 0xb335d16f @@ -40670,6 +41805,11 @@ member { type_id: 0xb02b353a } member { + id: 0x80a3e3d3 + name: "a" + type_id: 0x7877cd32 +} +member { id: 0x80f2085f name: "a" type_id: 0x299c4193 @@ -40768,12 +41908,6 @@ member { offset: 32 } member { - id: 0xb41bc738 - name: "abi_rev" - type_id: 0xc9082b19 - offset: 1152 -} -member { id: 0x370a3acc name: "abort" type_id: 0xedf277ba @@ -41078,10 +42212,10 @@ member { type_id: 0xe62ebf07 } member { - id: 0xe71cc270 + id: 0xe71cc1d9 name: "accept_list" type_id: 0xd3c80119 - offset: 29056 + offset: 29440 } member { id: 0x09a04ae8 @@ -41228,12 +42362,6 @@ member { offset: 384 } member { - id: 0xcb7a7a49 - name: "access_flags" - type_id: 0x4585663f - offset: 96 -} -member { id: 0x4d798a84 name: "access_memory" type_id: 0x2f8442f1 @@ -41246,6 +42374,12 @@ member { offset: 19520 } member { + id: 0xc0138ce8 + name: "accessed" + type_id: 0x4585663f + offset: 608 +} +member { id: 0x6311fd99 name: "accessory" type_id: 0x22c6e8be @@ -41282,6 +42416,13 @@ member { offset: 2432 } member { + id: 0x1a19769d + name: "accounts_remapped_io" + type_id: 0x6d7f5ff6 + offset: 580 + bitsize: 1 +} +member { id: 0x542cf718 name: "acct" type_id: 0x7a7fc5d0 @@ -41448,6 +42589,11 @@ member { offset: 688 } member { + id: 0x7980c676 + name: "acl_addr" + type_id: 0x6d25e07f +} +member { id: 0xf17c8f4c name: "acl_cnt" type_id: 0x4585663f @@ -41460,6 +42606,12 @@ member { offset: 128 } member { + id: 0xa102d1d4 + name: "acl_ifindex" + type_id: 0x6720d32f + offset: 128 +} +member { id: 0xdc1b3211 name: "acl_last_tx" type_id: 0x33756485 @@ -41472,6 +42624,12 @@ member { offset: 13152 } member { + id: 0x23f246a8 + name: "acl_next" + type_id: 0x01ae5751 + offset: 192 +} +member { id: 0xe08e16a4 name: "acl_num" type_id: 0x4585663f @@ -41496,12 +42654,6 @@ member { offset: 128 } member { - id: 0x1cafacfd - name: "acpi_cpuid" - type_id: 0x33756485 - offset: 4416 -} -member { id: 0x4ff7664a name: "acpi_match" type_id: 0x3d0a3be5 @@ -41800,12 +42952,6 @@ member { type_id: 0x6d7f5ff6 } member { - id: 0x224f240b - name: "active" - type_id: 0x6d7f5ff6 - offset: 496 -} -member { id: 0x224f2849 name: "active" type_id: 0x6d7f5ff6 @@ -42097,12 +43243,6 @@ member { offset: 128 } member { - id: 0x8f0fcc44 - name: "active_source" - type_id: 0x295c7202 - offset: 680 -} -member { id: 0xfa0d6c00 name: "active_spin_lock" type_id: 0xc9082b19 @@ -42428,11 +43568,6 @@ member { offset: 192 } member { - id: 0x243694c7 - name: "addr" - type_id: 0x1b4ba19a -} -member { id: 0x2440fa86 name: "addr" type_id: 0x6d25e07f @@ -42537,6 +43672,12 @@ member { offset: 256 } member { + id: 0x24cfa4f0 + name: "addr" + type_id: 0xe276adef + offset: 32 +} +member { id: 0x24d1edc6 name: "addr" type_id: 0xfc320bc5 @@ -42582,6 +43723,12 @@ member { offset: 256 } member { + id: 0x09692cc4 + name: "addr2sockaddr" + type_id: 0x0f56bda3 + offset: 576 +} +member { id: 0x29cfb070 name: "addr2str" type_id: 0x2edacd6a @@ -42764,6 +43911,12 @@ member { offset: 512 } member { + id: 0x30e26822 + name: "address" + type_id: 0x33756485 + offset: 256 +} +member { id: 0x30e26c68 name: "address" type_id: 0x33756485 @@ -42782,6 +43935,12 @@ member { offset: 4864 } member { + id: 0x2bbb15d8 + name: "address_device" + type_id: 0x2faaffbd + offset: 512 +} +member { id: 0x2bbb1733 name: "address_device" type_id: 0x2faaffbd @@ -42986,16 +44145,16 @@ member { offset: 912 } member { - id: 0x71a81669 + id: 0x71a815c7 name: "adv_data" type_id: 0x53171385 - offset: 38736 + offset: 39120 } member { - id: 0x5d9e9ce5 + id: 0x5d9e95ae name: "adv_data_len" type_id: 0xb3e7bac9 - offset: 40744 + offset: 41128 } member { id: 0xb2cd9d5d @@ -43016,40 +44175,40 @@ member { offset: 384 } member { - id: 0x003ea1c2 + id: 0x003ea69f name: "adv_instance_cnt" type_id: 0x4585663f - offset: 44928 + offset: 45312 } member { - id: 0xaa882e6d + id: 0xaa882ed4 name: "adv_instance_expire" type_id: 0xf1159c31 - offset: 44992 + offset: 45376 } member { - id: 0x030b0d19 + id: 0x030b0ab6 name: "adv_instance_timeout" type_id: 0xe8034002 - offset: 44976 + offset: 45360 } member { - id: 0x86b9464b + id: 0x86b94497 name: "adv_instances" type_id: 0xd3c80119 - offset: 44800 + offset: 45184 } member { - id: 0x54685d71 + id: 0x546851f2 name: "adv_monitors_cnt" type_id: 0x4585663f - offset: 46272 + offset: 46656 } member { - id: 0xff86b5aa + id: 0xff86bb58 name: "adv_monitors_idr" type_id: 0x04b89667 - offset: 46080 + offset: 46464 } member { id: 0xfef7071c @@ -43058,10 +44217,17 @@ member { offset: 9984 } member { - id: 0x105c3ace + id: 0x105c3c4d name: "adv_tx_power" type_id: 0x901eaf6a - offset: 38728 + offset: 39112 +} +member { + id: 0xec6d552f + name: "advanced" + type_id: 0x295c7202 + offset: 174 + bitsize: 1 } member { id: 0x686a7031 @@ -43099,16 +44265,16 @@ member { offset: 64 } member { - id: 0x6e09a88e + id: 0x6e09ac61 name: "advertising_old_state" type_id: 0x6720d32f - offset: 27904 + offset: 28288 } member { - id: 0x4821e2b0 + id: 0x4821ea2b name: "advertising_paused" type_id: 0x6d7f5ff6 - offset: 27936 + offset: 28320 } member { id: 0xcc74652e @@ -43123,10 +44289,16 @@ member { offset: 6736 } member { - id: 0xaaa3f8da + id: 0xaaa3fd42 name: "advmon_pend_notify" type_id: 0x6d7f5ff6 - offset: 49984 + offset: 50368 +} +member { + id: 0x1d3891d6 + name: "advmss" + type_id: 0x914dbfdc + offset: 13696 } member { id: 0x1ffcf224 @@ -43170,6 +44342,12 @@ member { offset: 384 } member { + id: 0xd5613ffc + name: "afbc_size" + type_id: 0xc9082b19 + offset: 1760 +} +member { id: 0x9aeabf13 name: "afc" type_id: 0x0faae5b1 @@ -43339,6 +44517,11 @@ member { offset: 576 } member { + id: 0x2777335c + name: "alg" + type_id: 0xdabf4001 +} +member { id: 0x2784b70a name: "alg" type_id: 0x293b162f @@ -43420,6 +44603,12 @@ member { type_id: 0x295c7202 } member { + id: 0x25050ebe + name: "alias" + type_id: 0x3e10b518 + offset: 64 +} +member { id: 0x33075cab name: "align" type_id: 0xe62ebf07 @@ -43480,6 +44669,24 @@ member { offset: 8192 } member { + id: 0xdeafe619 + name: "aligned_height" + type_id: 0xc9082b19 + offset: 1696 +} +member { + id: 0x6db01f09 + name: "aligned_width" + type_id: 0xc9082b19 + offset: 1664 +} +member { + id: 0x9d7710c5 + name: "alignmask" + type_id: 0x4585663f + offset: 1152 +} +member { id: 0x361dfe02 name: "alignment" type_id: 0x92233392 @@ -43514,6 +44721,11 @@ member { type_id: 0x7584e7da } member { + id: 0xee87ba00 + name: "all" + type_id: 0xe8034002 +} +member { id: 0xeebc7141 name: "all" type_id: 0xd3c80119 @@ -43664,6 +44876,18 @@ member { offset: 64 } member { + id: 0xa0650951 + name: "alloc_callback" + type_id: 0x0c33de94 + offset: 960 +} +member { + id: 0x3f6534a2 + name: "alloc_container_ctx" + type_id: 0x0fac28fc + offset: 576 +} +member { id: 0x21677719 name: "alloc_contig" type_id: 0x6d7f5ff6 @@ -43676,6 +44900,12 @@ member { offset: 256 } member { + id: 0x50156eb5 + name: "alloc_dcbaa" + type_id: 0x3f055728 + offset: 192 +} +member { id: 0xfd6395d5 name: "alloc_desc_sz" type_id: 0x4585663f @@ -43771,12 +45001,6 @@ member { offset: 320 } member { - id: 0xaf409590 - name: "alloc_notifier" - type_id: 0x004b03fc - offset: 512 -} -member { id: 0x75fd54b0 name: "alloc_pages" type_id: 0x2524545c @@ -43813,6 +45037,12 @@ member { offset: 768 } member { + id: 0xb2953bfa + name: "alloc_transfer_ring" + type_id: 0x20699068 + offset: 320 +} +member { id: 0x7fa1c349 name: "allocate" type_id: 0x18efc3fd @@ -43877,6 +45107,12 @@ member { offset: 512 } member { + id: 0x14e2bc0d + name: "allow_connect" + type_id: 0x6d7f5ff6 + offset: 7568 +} +member { id: 0x1098af81 name: "allow_instances" type_id: 0x6d7f5ff6 @@ -44423,6 +45659,12 @@ member { offset: 832 } member { + id: 0xedc9a6ac + name: "android_kabi_reserved0" + type_id: 0x92233392 + offset: 2816 +} +member { id: 0x2d08100c name: "android_kabi_reserved1" type_id: 0x92233392 @@ -44477,12 +45719,6 @@ member { offset: 2496 } member { - id: 0x2d0811d3 - name: "android_kabi_reserved1" - type_id: 0x92233392 - offset: 59264 -} -member { id: 0x2d0811f9 name: "android_kabi_reserved1" type_id: 0x92233392 @@ -44734,12 +45970,6 @@ member { offset: 704 } member { - id: 0x2d081767 - name: "android_kabi_reserved1" - type_id: 0x92233392 - offset: 28800 -} -member { id: 0x2d0817b6 name: "android_kabi_reserved1" type_id: 0x92233392 @@ -44776,6 +46006,12 @@ member { offset: 8128 } member { + id: 0x2d0818b7 + name: "android_kabi_reserved1" + type_id: 0x92233392 + offset: 51456 +} +member { id: 0x2d0818d7 name: "android_kabi_reserved1" type_id: 0x92233392 @@ -44788,6 +46024,12 @@ member { offset: 4096 } member { + id: 0x2d08191c + name: "android_kabi_reserved1" + type_id: 0x92233392 + offset: 8576 +} +member { id: 0x2d08193b name: "android_kabi_reserved1" type_id: 0x92233392 @@ -44848,12 +46090,6 @@ member { offset: 3200 } member { - id: 0x2d081a58 - name: "android_kabi_reserved1" - type_id: 0x92233392 - offset: 2816 -} -member { id: 0x2d081aa3 name: "android_kabi_reserved1" type_id: 0x92233392 @@ -44896,6 +46132,12 @@ member { offset: 17152 } member { + id: 0x2d081bb9 + name: "android_kabi_reserved1" + type_id: 0x92233392 + offset: 2880 +} +member { id: 0x2d081be0 name: "android_kabi_reserved1" type_id: 0x92233392 @@ -44914,6 +46156,12 @@ member { offset: 1152 } member { + id: 0x2d081c07 + name: "android_kabi_reserved1" + type_id: 0x92233392 + offset: 11392 +} +member { id: 0x2d081c0d name: "android_kabi_reserved1" type_id: 0x92233392 @@ -45058,22 +46306,22 @@ member { offset: 1856 } member { - id: 0x2d081eb7 + id: 0x2d081e39 name: "android_kabi_reserved1" type_id: 0x92233392 - offset: 7168 + offset: 18880 } member { - id: 0x2d081ecd + id: 0x2d081eb7 name: "android_kabi_reserved1" type_id: 0x92233392 - offset: 9024 + offset: 7168 } member { - id: 0x2d081ed0 + id: 0x2d081ecd name: "android_kabi_reserved1" type_id: 0x92233392 - offset: 51072 + offset: 9024 } member { id: 0x2d081ed3 @@ -45262,6 +46510,12 @@ member { offset: 2368 } member { + id: 0x637600f9 + name: "android_kabi_reserved2" + type_id: 0x92233392 + offset: 2944 +} +member { id: 0x637600fb name: "android_kabi_reserved2" type_id: 0x92233392 @@ -45466,12 +46720,24 @@ member { offset: 1920 } member { + id: 0x637608bd + name: "android_kabi_reserved2" + type_id: 0x92233392 + offset: 51520 +} +member { id: 0x637608ca name: "android_kabi_reserved2" type_id: 0x92233392 offset: 5184 } member { + id: 0x63760909 + name: "android_kabi_reserved2" + type_id: 0x92233392 + offset: 256 +} +member { id: 0x6376090e name: "android_kabi_reserved2" type_id: 0x92233392 @@ -45543,12 +46809,6 @@ member { offset: 2752 } member { - id: 0x63760aa0 - name: "android_kabi_reserved2" - type_id: 0x92233392 - offset: 51136 -} -member { id: 0x63760aa1 name: "android_kabi_reserved2" type_id: 0x92233392 @@ -45597,6 +46857,12 @@ member { offset: 2176 } member { + id: 0x63760c6b + name: "android_kabi_reserved2" + type_id: 0x92233392 + offset: 8640 +} +member { id: 0x63760c9c name: "android_kabi_reserved2" type_id: 0x92233392 @@ -45705,6 +46971,12 @@ member { offset: 3008 } member { + id: 0x63760fd1 + name: "android_kabi_reserved2" + type_id: 0x92233392 + offset: 1792 +} +member { id: 0x63760fdb name: "android_kabi_reserved2" type_id: 0x92233392 @@ -45807,12 +47079,6 @@ member { offset: 8896 } member { - id: 0xac8941f8 - name: "android_kabi_reserved3" - type_id: 0x92233392 - offset: 768 -} -member { id: 0xac894244 name: "android_kabi_reserved3" type_id: 0x92233392 @@ -45873,6 +47139,12 @@ member { offset: 8128 } member { + id: 0xac894467 + name: "android_kabi_reserved3" + type_id: 0x92233392 + offset: 51584 +} +member { id: 0xac894653 name: "android_kabi_reserved3" type_id: 0x92233392 @@ -45999,12 +47271,6 @@ member { offset: 704 } member { - id: 0xac894bbb - name: "android_kabi_reserved3" - type_id: 0x92233392 - offset: 51200 -} -member { id: 0xac894bd2 name: "android_kabi_reserved3" type_id: 0x92233392 @@ -46077,6 +47343,12 @@ member { offset: 1728 } member { + id: 0xac894e91 + name: "android_kabi_reserved3" + type_id: 0x92233392 + offset: 320 +} +member { id: 0xac894e97 name: "android_kabi_reserved3" type_id: 0x92233392 @@ -46101,6 +47373,12 @@ member { offset: 640 } member { + id: 0xac894f5e + name: "android_kabi_reserved3" + type_id: 0x92233392 + offset: 3008 +} +member { id: 0x031a13a1 name: "android_kabi_reserved30" type_id: 0x92233392 @@ -46233,6 +47511,12 @@ member { offset: 4672 } member { + id: 0xe0f635d9 + name: "android_kabi_reserved4" + type_id: 0x92233392 + offset: 384 +} +member { id: 0xe0f635ee name: "android_kabi_reserved4" type_id: 0x92233392 @@ -46263,12 +47547,6 @@ member { offset: 1664 } member { - id: 0xe0f637f1 - name: "android_kabi_reserved4" - type_id: 0x92233392 - offset: 832 -} -member { id: 0xe0f6381a name: "android_kabi_reserved4" type_id: 0x92233392 @@ -46308,6 +47586,12 @@ member { id: 0xe0f63bda name: "android_kabi_reserved4" type_id: 0x92233392 + offset: 3072 +} +member { + id: 0xe0f63bdb + name: "android_kabi_reserved4" + type_id: 0x92233392 offset: 17216 } member { @@ -46323,12 +47607,6 @@ member { offset: 960 } member { - id: 0xe0f63ccd - name: "android_kabi_reserved4" - type_id: 0x92233392 - offset: 51264 -} -member { id: 0xe0f63ce5 name: "android_kabi_reserved4" type_id: 0x92233392 @@ -46425,6 +47703,12 @@ member { offset: 5504 } member { + id: 0xe0f63f30 + name: "android_kabi_reserved4" + type_id: 0x92233392 + offset: 51648 +} +member { id: 0xe0f63f53 name: "android_kabi_reserved4" type_id: 0x92233392 @@ -46910,24 +48194,6 @@ member { type_id: 0xf90dfce8 } member { - id: 0xd96ad022 - name: "ap_list" - type_id: 0xd3c80119 - offset: 192 -} -member { - id: 0x18b67de8 - name: "ap_list_head" - type_id: 0xd3c80119 - offset: 31232 -} -member { - id: 0xc8f35c78 - name: "ap_list_lock" - type_id: 0xc8b17aa7 - offset: 31168 -} -member { id: 0x6892c863 name: "ap_sme_capa" type_id: 0xc9082b19 @@ -47007,12 +48273,6 @@ member { offset: 128 } member { - id: 0x5ba521f2 - name: "apic_base" - type_id: 0xedf277ba - offset: 192 -} -member { id: 0x5581205d name: "apoll" type_id: 0x05a5cdba @@ -47030,6 +48290,12 @@ member { type_id: 0xb94e10c7 } member { + id: 0x484997ff + name: "app_limited" + type_id: 0xc9082b19 + offset: 15328 +} +member { id: 0x6e3edc08 name: "appearance" type_id: 0xe8034002 @@ -47113,53 +48379,24 @@ member { bitsize: 1 } member { - id: 0x4a120f63 - name: "ar" - type_id: 0xb3e7bac9 - offset: 64 -} -member { id: 0xa86038b6 name: "arbitration_lost" type_id: 0xe62ebf07 offset: 128 } member { - id: 0xb81bb253 - name: "arch" - type_id: 0xb16454d0 - offset: 2048 -} -member { - id: 0xb81eae99 - name: "arch" - type_id: 0xb47f1c0e -} -member { id: 0xb83316b3 name: "arch" type_id: 0x99ce8ef3 offset: 1600 } member { - id: 0xb857a998 - name: "arch" - type_id: 0xfd71f39d - offset: 20672 -} -member { id: 0xb864f388 name: "arch" type_id: 0xce25286b offset: 1728 } member { - id: 0xb89f1d6b - name: "arch" - type_id: 0x35cc4540 - offset: 256 -} -member { id: 0xb8cdfbab name: "arch" type_id: 0x6720d32f @@ -47418,6 +48655,11 @@ member { offset: 704 } member { + id: 0x2075b8f0 + name: "argc" + type_id: 0x4585663f +} +member { id: 0x6fcff76c name: "argmin" type_id: 0x33756485 @@ -47448,18 +48690,6 @@ member { offset: 96 } member { - id: 0x3496cf62 - name: "args" - type_id: 0xad7c0a89 - offset: 128 -} -member { - id: 0x34a16385 - name: "args" - type_id: 0x9addce46 - offset: 64 -} -member { id: 0x34a5187e name: "args" type_id: 0x9ea2d4c7 @@ -47471,12 +48701,6 @@ member { offset: 64 } member { - id: 0x34abfc7a - name: "args" - type_id: 0x904f12e1 - offset: 128 -} -member { id: 0x34fb052c name: "args" type_id: 0xc0b644f6 @@ -47517,6 +48741,12 @@ member { type_id: 0x13e50c8a } member { + id: 0xe8735870 + name: "argv" + type_id: 0x0bb0c019 + offset: 64 +} +member { id: 0xe8f87d89 name: "argv" type_id: 0x80904a3b @@ -47551,17 +48781,6 @@ member { type_id: 0x34992343 } member { - id: 0xdabb1c55 - name: "arm_nisv" - type_id: 0x102e0991 -} -member { - id: 0xce7b08c8 - name: "arm_pmu" - type_id: 0x331b3d77 - offset: 3008 -} -member { id: 0xc71d2276 name: "arm_v7s_cfg" type_id: 0x3909db3d @@ -48017,6 +49236,12 @@ member { offset: 192 } member { + id: 0x5ee21ccd + name: "async_write_error" + type_id: 0x6720d32f + offset: 1792 +} +member { id: 0xd1b258a6 name: "at" type_id: 0x92233392 @@ -48029,6 +49254,12 @@ member { offset: 512 } member { + id: 0x168605e8 + name: "ato" + type_id: 0xe62ebf07 + offset: 32 +} +member { id: 0x176dead7 name: "atomic" type_id: 0x6d7f5ff6 @@ -48701,12 +49932,6 @@ member { offset: 64 } member { - id: 0x8ce95ca0 - name: "attr" - type_id: 0xedf277ba - offset: 64 -} -member { id: 0xa59eb82e name: "attr_g" type_id: 0xed8451a2 @@ -48725,12 +49950,6 @@ member { offset: 3008 } member { - id: 0xf8037d37 - name: "attr_groups" - type_id: 0xe52f2f44 - offset: 4032 -} -member { id: 0xf8e01779 name: "attr_groups" type_id: 0x06433852 @@ -49099,12 +50318,24 @@ member { bitsize: 1 } member { + id: 0x773b8f3f + name: "auto_dump" + type_id: 0x6d7f5ff6 + offset: 904 +} +member { id: 0xaa0ea302 name: "auto_flowlabels" type_id: 0x295c7202 offset: 632 } member { + id: 0xea4e825c + name: "auto_recover" + type_id: 0x6d7f5ff6 + offset: 896 +} +member { id: 0xc5fa3041 name: "auto_runtime_pm" type_id: 0x6d7f5ff6 @@ -49149,6 +50380,20 @@ member { bitsize: 1 } member { + id: 0x6854e737 + name: "autoflowlabel" + type_id: 0xe8034002 + offset: 571 + bitsize: 1 +} +member { + id: 0xe803bc2e + name: "autoflowlabel_set" + type_id: 0xe8034002 + offset: 572 + bitsize: 1 +} +member { id: 0xf1e86eba name: "automatic_shrinking" type_id: 0x6d7f5ff6 @@ -49675,6 +50920,12 @@ member { type_id: 0x38df449f } member { + id: 0x4ce00bb0 + name: "b" + type_id: 0x7877cd32 + offset: 64 +} +member { id: 0x4cf8b2b0 name: "b" type_id: 0x60ca2c23 @@ -50482,11 +51733,27 @@ member { offset: 832 } member { + id: 0x853440fd + name: "base" + type_id: 0xeeae7608 +} +member { id: 0x853678f4 name: "base" type_id: 0xec967f20 } member { + id: 0x85378cb8 + name: "base" + type_id: 0xed62338c +} +member { + id: 0x8544c9f4 + name: "base" + type_id: 0x9e2c67f2 + offset: 512 +} +member { id: 0x85481c0d name: "base" type_id: 0x92f28628 @@ -50575,12 +51842,6 @@ member { type_id: 0x1b619644 } member { - id: 0x85c1a1cb - name: "base" - type_id: 0x1b4ba19a - offset: 64 -} -member { id: 0x85c253ee name: "base" type_id: 0x18bd6530 @@ -50642,6 +51903,12 @@ member { offset: 128 } member { + id: 0x85f3d282 + name: "base" + type_id: 0x293b162f + offset: 1024 +} +member { id: 0x85f3de85 name: "base" type_id: 0x293b162f @@ -50676,11 +51943,6 @@ member { offset: 384 } member { - id: 0xf9ecc4b7 - name: "base_addr" - type_id: 0x1b4ba19a -} -member { id: 0x26b2f753 name: "base_btf" type_id: 0x010934b0 @@ -50727,18 +51989,6 @@ member { offset: 56 } member { - id: 0x9232ba55 - name: "baser_coll_table" - type_id: 0x92233392 - offset: 576 -} -member { - id: 0x58199dc6 - name: "baser_device_table" - type_id: 0x92233392 - offset: 512 -} -member { id: 0x70cac30d name: "bases" type_id: 0x06ed5af3 @@ -51212,6 +52462,12 @@ member { type_id: 0x0c2e195c } member { + id: 0x51f02b11 + name: "bdev" + type_id: 0x0c2e195c + offset: 832 +} +member { id: 0x51f02ed6 name: "bdev" type_id: 0x0c2e195c @@ -51246,12 +52502,6 @@ member { offset: 5376 } member { - id: 0x09a85b04 - name: "be" - type_id: 0x6d7f5ff6 - offset: 128 -} -member { id: 0xd4e45e24 name: "be_bits" type_id: 0x6d7f5ff6 @@ -51361,6 +52611,12 @@ member { offset: 1664 } member { + id: 0x38c2e7fb + name: "begin" + type_id: 0xd0b3a203 + offset: 128 +} +member { id: 0x21bcbcbc name: "begin_cpu_access" type_id: 0x2d310635 @@ -51442,12 +52698,6 @@ member { offset: 160 } member { - id: 0xd0847011 - name: "bg_timer" - type_id: 0xcd7704bf - offset: 1664 -} -member { id: 0x29a6b069 name: "bgid" type_id: 0xe8034002 @@ -51502,6 +52752,12 @@ member { offset: 192 } member { + id: 0x5e2b88f3 + name: "bh" + type_id: 0xa5960bec + offset: 832 +} +member { id: 0xb592ec0b name: "bhash" type_id: 0x28f8e782 @@ -51823,6 +53079,13 @@ member { offset: 1088 } member { + id: 0x87d4aa19 + name: "bind_address_no_port" + type_id: 0xb3e7bac9 + offset: 7112 + bitsize: 1 +} +member { id: 0x23af1384 name: "bind_bucket_cachep" type_id: 0x2efd5036 @@ -51943,6 +53206,12 @@ member { offset: 768 } member { + id: 0xccd15e20 + name: "bios" + type_id: 0x200a0749 + offset: 576 +} +member { id: 0x24640f13 name: "bios_limit" type_id: 0x2b99fd3e @@ -52159,6 +53428,11 @@ member { offset: 216 } member { + id: 0xd74e0402 + name: "bits" + type_id: 0x1b949b56 +} +member { id: 0xd78825be name: "bits" type_id: 0xddb527d3 @@ -52181,12 +53455,6 @@ member { offset: 8 } member { - id: 0xbab5eab6 - name: "bits_per_irq" - type_id: 0x4585663f - offset: 64 -} -member { id: 0x6cf5d11a name: "bits_per_lane_and_dclk_cycle" type_id: 0x4585663f @@ -52246,6 +53514,12 @@ member { offset: 256 } member { + id: 0x4a47d75f + name: "bitwidth" + type_id: 0x4585663f + offset: 96 +} +member { id: 0x9cc8208d name: "bkops" type_id: 0x6d7f5ff6 @@ -52514,6 +53788,12 @@ member { offset: 192 } member { + id: 0x4280b12f + name: "block" + type_id: 0xd0b3a203 + offset: 448 +} +member { id: 0x42990dd1 name: "block" type_id: 0xc9082b19 @@ -52550,6 +53830,12 @@ member { offset: 112 } member { + id: 0xdb864134 + name: "block_height" + type_id: 0xc9082b19 + offset: 1632 +} +member { id: 0x215a13ec name: "block_len" type_id: 0xe8034002 @@ -52592,6 +53878,12 @@ member { offset: 160 } member { + id: 0x3c120643 + name: "block_size" + type_id: 0x4585663f + offset: 896 +} +member { id: 0xb034a057 name: "block_start" type_id: 0x92233392 @@ -52610,6 +53902,12 @@ member { offset: 104 } member { + id: 0x3b9c97de + name: "block_width" + type_id: 0xc9082b19 + offset: 1600 +} +member { id: 0x82470e87 name: "blocked" type_id: 0x295c7202 @@ -52621,10 +53919,10 @@ member { offset: 17664 } member { - id: 0xe27e8817 + id: 0xe27e8ce3 name: "blocked_keys" type_id: 0xd3c80119 - offset: 30464 + offset: 30848 } member { id: 0xa9b1ec07 @@ -52639,12 +53937,6 @@ member { offset: 2184 } member { - id: 0x8efec678 - name: "blocking" - type_id: 0x92233392 - offset: 6592 -} -member { id: 0x48c48bbc name: "blocking_domain" type_id: 0x2e94a1e1 @@ -52705,6 +53997,12 @@ member { offset: 224 } member { + id: 0x89cc162f + name: "blocksize" + type_id: 0x4585663f + offset: 1088 +} +member { id: 0x9d6f12e1 name: "blue" type_id: 0xd529883e @@ -52801,6 +54099,12 @@ member { offset: 40 } member { + id: 0x6b1b4f66 + name: "bmNtbFormatsSupported" + type_id: 0x9bd401b6 + offset: 16 +} +member { id: 0xb0e7ec93 name: "bmSublinkSpeedAttr" type_id: 0xb7237aa3 @@ -53190,6 +54494,13 @@ member { offset: 12928 } member { + id: 0xf5c438ad + name: "bpf_chg_cc_inprogress" + type_id: 0x295c7202 + offset: 18216 + bitsize: 1 +} +member { id: 0xa9117c13 name: "bpf_cookie" type_id: 0xedf277ba @@ -53254,6 +54565,12 @@ member { offset: 33920 } member { + id: 0xa6861f94 + name: "bpf_sock_ops_cb_flags" + type_id: 0x295c7202 + offset: 18208 +} +member { id: 0xede394b6 name: "bpf_storage" type_id: 0x2f6ef74a @@ -53579,6 +54896,11 @@ member { offset: 288 } member { + id: 0x9929500d + name: "bs" + type_id: 0x200a0749 +} +member { id: 0xff1a115d name: "bsg_dev" type_id: 0x23e765f6 @@ -53858,12 +55180,6 @@ member { offset: 2624 } member { - id: 0xe6502bd9 - name: "bucket_size" - type_id: 0xe62ebf07 - offset: 96 -} -member { id: 0xff0ba4fe name: "buckets" type_id: 0x0a4e4698 @@ -54235,6 +55551,12 @@ member { type_id: 0x0483e6f8 } member { + id: 0x33decf44 + name: "buffer" + type_id: 0x00c72527 + offset: 832 +} +member { id: 0x33e6ba8e name: "buffer" type_id: 0x38b368bf @@ -54415,6 +55737,12 @@ member { offset: 736 } member { + id: 0x215141b0 + name: "buffer_tree" + type_id: 0xeb923a9b + offset: 1472 +} +member { id: 0xe613256f name: "buffered" type_id: 0x6d7f5ff6 @@ -54439,6 +55767,12 @@ member { offset: 576 } member { + id: 0xc0824dc3 + name: "buffers" + type_id: 0xd3c80119 + offset: 640 +} +member { id: 0x803be3e4 name: "buffersize" type_id: 0xe62ebf07 @@ -54937,6 +56271,12 @@ member { offset: 9664 } member { + id: 0x2a260680 + name: "bus_resume" + type_id: 0x2fa7835a + offset: 640 +} +member { id: 0x2a260a7a name: "bus_resume" type_id: 0x2fa7835a @@ -54955,6 +56295,12 @@ member { offset: 1280 } member { + id: 0x91993cba + name: "bus_suspend" + type_id: 0x2fa7835a + offset: 576 +} +member { id: 0xdda1e12c name: "bus_suspended" type_id: 0x33756485 @@ -54995,12 +56341,6 @@ member { offset: 32 } member { - id: 0xfa427670 - name: "buses" - type_id: 0x8f5ceaee - offset: 19328 -} -member { id: 0x854f5ea0 name: "busn_res" type_id: 0xc7736674 @@ -55059,6 +56399,12 @@ member { offset: 992 } member { + id: 0x60a635ef + name: "busy" + type_id: 0x7722f5fe + offset: 1344 +} +member { id: 0x60bc6a32 name: "busy" type_id: 0x6d7f5ff6 @@ -55504,6 +56850,12 @@ member { offset: 320 } member { + id: 0x3ed6f46c + name: "bytes_acked" + type_id: 0x92233392 + offset: 12736 +} +member { id: 0x4d36c98b name: "bytes_ext_ops" type_id: 0x34334e6d @@ -55539,12 +56891,30 @@ member { offset: 128 } member { + id: 0xda945faa + name: "bytes_received" + type_id: 0x92233392 + offset: 12352 +} +member { + id: 0xd77f2af8 + name: "bytes_retrans" + type_id: 0x92233392 + offset: 17984 +} +member { id: 0xf2787e23 name: "bytes_rx" type_id: 0x3a3eb2f9 offset: 512 } member { + id: 0x840adfe0 + name: "bytes_sent" + type_id: 0x92233392 + offset: 12672 +} +member { id: 0x8cf55cde name: "bytes_transferred" type_id: 0x33756485 @@ -55615,6 +56985,12 @@ member { offset: 16 } member { + id: 0x0f75b561 + name: "c" + type_id: 0x2d01fcba + offset: 960 +} +member { id: 0x0fa4ebff name: "c" type_id: 0xfc5791f4 @@ -56259,6 +57635,12 @@ member { type_id: 0x0ed1d747 } member { + id: 0x56f376f1 + name: "callback" + type_id: 0x1684c624 + offset: 128 +} +member { id: 0x56a72054 name: "callback_head" type_id: 0xe3222f5b @@ -56970,12 +58352,6 @@ member { offset: 32 } member { - id: 0xa779a4af - name: "capacity" - type_id: 0x6720d32f - offset: 192 -} -member { id: 0xa7f37e69 name: "capacity" type_id: 0xedf277ba @@ -57395,12 +58771,6 @@ member { offset: 320 } member { - id: 0xd83a0eba - name: "cbaser" - type_id: 0x92233392 - offset: 1024 -} -member { id: 0xd34c00a5 name: "cbovldmask" type_id: 0x33756485 @@ -57506,6 +58876,12 @@ member { offset: 32 } member { + id: 0xbf43ebf0 + name: "cdc_filter" + type_id: 0x914dbfdc + offset: 1936 +} +member { id: 0x058b41dc name: "cdev" type_id: 0x1d4da256 @@ -57727,6 +59103,12 @@ member { offset: 8640 } member { + id: 0x08477548 + name: "cell_size" + type_id: 0xc9082b19 + offset: 96 +} +member { id: 0xc909929f name: "cells" type_id: 0x38cec2ca @@ -57822,12 +59204,6 @@ member { offset: 608 } member { - id: 0x9608d64b - name: "cflags" - type_id: 0x295c7202 - offset: 15392 -} -member { id: 0xd57ac3a1 name: "cfs" type_id: 0x11205055 @@ -58280,12 +59656,6 @@ member { offset: 19520 } member { - id: 0x83d10832 - name: "change_pte" - type_id: 0x0c166597 - offset: 256 -} -member { id: 0x8c70199e name: "change_queue_depth" type_id: 0x2fc0f095 @@ -58545,6 +59915,12 @@ member { offset: 128 } member { + id: 0x26d4a9a4 + name: "char2uni" + type_id: 0x2e137a28 + offset: 192 +} +member { id: 0xfdbbc663 name: "char_dev" type_id: 0x5f766fc6 @@ -58651,6 +60027,23 @@ member { offset: 704 } member { + id: 0x551378c2 + name: "charset" + type_id: 0x3e10b518 +} +member { + id: 0x6322a32f + name: "charset2lower" + type_id: 0x384c5795 + offset: 256 +} +member { + id: 0x06048b6e + name: "charset2upper" + type_id: 0x384c5795 + offset: 320 +} +member { id: 0x9e156774 name: "check" type_id: 0xd1f94ea7 @@ -59060,11 +60453,6 @@ member { type_id: 0xadd7ccb6 } member { - id: 0xc6fa2a23 - name: "chip" - type_id: 0x9819cf84 -} -member { id: 0x50c82005 name: "chip_data" type_id: 0x18bd6530 @@ -59125,6 +60513,18 @@ member { offset: 256 } member { + id: 0x1024996f + name: "chosen" + type_id: 0x1d19a9d5 + offset: 320 +} +member { + id: 0x3d099644 + name: "chosen_points" + type_id: 0xfc0e1dbd + offset: 384 +} +member { id: 0x697fbc8c name: "chrdev" type_id: 0x5f766fc6 @@ -59208,6 +60608,25 @@ member { offset: 160 } member { + id: 0x6c3076ab + name: "chrono_start" + type_id: 0xc9082b19 + offset: 13728 +} +member { + id: 0x4b0fd146 + name: "chrono_stat" + type_id: 0x2087fff2 + offset: 13760 +} +member { + id: 0x5514b7d1 + name: "chrono_type" + type_id: 0x295c7202 + offset: 13856 + bitsize: 2 +} +member { id: 0x0c0ce1e9 name: "chunk_mask" type_id: 0x92233392 @@ -59484,6 +60903,12 @@ member { offset: 1280 } member { + id: 0x1dfe157e + name: "cipso" + type_id: 0x5d8155a5 + offset: 112 +} +member { id: 0xcf891492 name: "cis" type_id: 0xae13575f @@ -59733,6 +61158,12 @@ member { offset: 9088 } member { + id: 0x200938c6 + name: "cleanup" + type_id: 0x0a8304ff + offset: 448 +} +member { id: 0x200c257e name: "cleanup" type_id: 0x0f9a2667 @@ -59842,18 +61273,6 @@ member { offset: 14464 } member { - id: 0x2d61ef43 - name: "clear_event_idx" - type_id: 0x0f7dbeee - offset: 2816 -} -member { - id: 0xe32eadd5 - name: "clear_flush_young" - type_id: 0x2f509af6 - offset: 64 -} -member { id: 0x0d593536 name: "clear_list" type_id: 0xd3c80119 @@ -59930,12 +61349,6 @@ member { offset: 384 } member { - id: 0xf2531964 - name: "clear_young" - type_id: 0x2f509af6 - offset: 128 -} -member { id: 0xf225f799 name: "cleared" type_id: 0x33756485 @@ -59992,6 +61405,12 @@ member { offset: 3456 } member { + id: 0xf4c5928f + name: "client_list" + type_id: 0xd3c80119 + offset: 1856 +} +member { id: 0xa9f3f07b name: "client_ops" type_id: 0x3443caef @@ -60525,6 +61944,24 @@ member { type_id: 0x4478ba6b } member { + id: 0xf6b3df73 + name: "clone" + type_id: 0x7ccce612 + offset: 320 +} +member { + id: 0xf6c2da43 + name: "clone" + type_id: 0x0dc966bc + offset: 448 +} +member { + id: 0xe7b15fc6 + name: "clone_and_map_rq" + type_id: 0x81034bb7 + offset: 512 +} +member { id: 0xcf60e1c3 name: "cloned" type_id: 0xb3e7bac9 @@ -60568,10 +62005,10 @@ member { offset: 384 } member { - id: 0xcd5fd56d + id: 0xcd5fd921 name: "close" type_id: 0x2c2c3c2e - offset: 50112 + offset: 50496 } member { id: 0xcd7c1df7 @@ -60627,6 +62064,12 @@ member { offset: 64 } member { + id: 0xcd7ec6ac + name: "close" + type_id: 0x0d36eefe + offset: 2304 +} +member { id: 0xcd7edc4f name: "close" type_id: 0x0d22c400 @@ -60974,12 +62417,6 @@ member { offset: 1280 } member { - id: 0x28ddf56e - name: "cmd_lock" - type_id: 0xa7c362b0 - offset: 640 -} -member { id: 0xc134320b name: "cmd_mask" type_id: 0x33756485 @@ -61027,10 +62464,10 @@ member { offset: 3968 } member { - id: 0xa57ecf84 + id: 0xa57ecd8e name: "cmd_q" type_id: 0x578f9c2b - offset: 25536 + offset: 25920 } member { id: 0xe5cdfc8b @@ -61080,10 +62517,10 @@ member { offset: 608 } member { - id: 0x30eff9d8 + id: 0x30eff64b name: "cmd_sync_cancel_work" type_id: 0x1f3c8679 - offset: 16640 + offset: 17024 } member { id: 0x688a5a69 @@ -61110,22 +62547,22 @@ member { offset: 208 } member { - id: 0x08a92984 + id: 0x08a92d3f name: "cmd_timeout" type_id: 0x0f6a1081 - offset: 50752 + offset: 51136 } member { - id: 0x091c4805 + id: 0x091c4926 name: "cmd_timer" type_id: 0xf1159c31 - offset: 19648 + offset: 1472 } member { - id: 0x091c4926 + id: 0x091c4964 name: "cmd_timer" type_id: 0xf1159c31 - offset: 1472 + offset: 20032 } member { id: 0xbab90229 @@ -61139,10 +62576,10 @@ member { offset: 64 } member { - id: 0x15ef38ff + id: 0x15ef3a47 name: "cmd_work" type_id: 0x1f3c8679 - offset: 22208 + offset: 22592 } member { id: 0x616075f5 @@ -61228,6 +62665,12 @@ member { type_id: 0x36fc2198 } member { + id: 0x9e4ebac2 + name: "cmsg_flags" + type_id: 0xe8034002 + offset: 6960 +} +member { id: 0x141e1b04 name: "cnf" type_id: 0x66c6fbfa @@ -61312,24 +62755,6 @@ member { offset: 10880 } member { - id: 0xe2ce2718 - name: "coalesced_mmio" - type_id: 0xffdb6969 - offset: 64 -} -member { - id: 0x48aab379 - name: "coalesced_mmio_ring" - type_id: 0x2ced036e - offset: 24640 -} -member { - id: 0x02a639fa - name: "coalesced_zones" - type_id: 0xd3c80119 - offset: 24768 -} -member { id: 0x5406c379 name: "code" type_id: 0xe62ebf07 @@ -61492,12 +62917,6 @@ member { offset: 192 } member { - id: 0x6710a2d3 - name: "col_idx" - type_id: 0x914dbfdc - offset: 928 -} -member { id: 0x48c91cfd name: "collection" type_id: 0x329e29fd @@ -61510,12 +62929,6 @@ member { offset: 32 } member { - id: 0x5a9c1331 - name: "collection_list" - type_id: 0xd3c80119 - offset: 1728 -} -member { id: 0xd205c634 name: "collection_size" type_id: 0x4585663f @@ -61957,6 +63370,12 @@ member { type_id: 0xfb3bb098 } member { + id: 0x999f46a7 + name: "comp" + type_id: 0x3fcbf304 + offset: 3648 +} +member { id: 0x999f496f name: "comp" type_id: 0x3fcbf304 @@ -62111,6 +63530,12 @@ member { offset: 11712 } member { + id: 0x9ad71760 + name: "compaction_in_progress" + type_id: 0x74d29cf1 + offset: 17568 +} +member { id: 0x583d51cc name: "companion_ports" type_id: 0x33756485 @@ -62550,6 +63975,12 @@ member { offset: 64 } member { + id: 0xe5d87fc5 + name: "component" + type_id: 0x3e10b518 + offset: 64 +} +member { id: 0xe5eb95e0 name: "component" type_id: 0x0dfeda6d @@ -62692,6 +64123,24 @@ member { offset: 672 } member { + id: 0x4aed4e02 + name: "compressed_ack" + type_id: 0x295c7202 + offset: 13712 +} +member { + id: 0x036494f3 + name: "compressed_ack_rcv_nxt" + type_id: 0xc9082b19 + offset: 12992 +} +member { + id: 0xe98a4697 + name: "compressed_ack_timer" + type_id: 0xcd7704bf + offset: 16320 +} +member { id: 0xfb567eb3 name: "compressed_header_size" type_id: 0xe8034002 @@ -62791,12 +64240,6 @@ member { type_id: 0x92233392 } member { - id: 0xd1469e0e - name: "config" - type_id: 0xe357f5b0 - offset: 704 -} -member { id: 0xd1483d50 name: "config" type_id: 0xedf277ba @@ -63121,16 +64564,16 @@ member { offset: 1216 } member { - id: 0x35c9d647 + id: 0x35c9dc28 name: "conn_flags" type_id: 0x953457e9 - offset: 38720 + offset: 39104 } member { - id: 0x938b4863 + id: 0x938b4e26 name: "conn_hash" type_id: 0xf1245c57 - offset: 28352 + offset: 28736 } member { id: 0xde3f53d2 @@ -63175,6 +64618,12 @@ member { offset: 3648 } member { + id: 0x495c1c6d + name: "conn_request" + type_id: 0x2c210d23 + offset: 256 +} +member { id: 0x220e0197 name: "conn_state" type_id: 0x33756485 @@ -63247,6 +64696,12 @@ member { offset: 1152 } member { + id: 0x997c2cff + name: "connect_lock" + type_id: 0xa7c362b0 + offset: 8000 +} +member { id: 0xee1e8424 name: "connect_phy" type_id: 0x2c4aa19f @@ -63504,6 +64959,12 @@ member { offset: 384 } member { + id: 0xaf3405ec + name: "constraint" + type_id: 0x6df42b18 + offset: 448 +} +member { id: 0x02afc8a1 name: "constraint_set_flags" type_id: 0xb3e7bac9 @@ -63805,16 +65266,16 @@ member { offset: 2176 } member { - id: 0xfc37c610 + id: 0xfc1d642c name: "control" - type_id: 0x0baa70a7 - offset: 96 + type_id: 0x21069feb + offset: 1472 } member { - id: 0xfcd19375 + id: 0xfc37c610 name: "control" - type_id: 0xedf277ba - offset: 64 + type_id: 0x0baa70a7 + offset: 96 } member { id: 0xfcf56dc8 @@ -63855,6 +65316,12 @@ member { type_id: 0xc9082b19 } member { + id: 0xd8dc9c99 + name: "controller" + type_id: 0xc9082b19 + offset: 64 +} +member { id: 0x608f2d5b name: "controller_data" type_id: 0x18bd6530 @@ -63867,6 +65334,13 @@ member { offset: 7552 } member { + id: 0x1db19505 + name: "controller_valid" + type_id: 0x295c7202 + offset: 145 + bitsize: 1 +} +member { id: 0x474fe3e5 name: "controls" type_id: 0xd3c80119 @@ -63921,6 +65395,12 @@ member { offset: 320 } member { + id: 0x3c401b61 + name: "convert_csum" + type_id: 0xb3e7bac9 + offset: 7128 +} +member { id: 0x3f2fb089 name: "convert_ctx_access" type_id: 0x1aa00f75 @@ -63950,6 +65430,11 @@ member { offset: 64 } member { + id: 0x5846e373 + name: "cookie" + type_id: 0x0cb73b55 +} +member { id: 0x5852e92d name: "cookie" type_id: 0x18bd6530 @@ -64066,6 +65551,18 @@ member { offset: 192 } member { + id: 0x5414dc08 + name: "copied" + type_id: 0x6720d32f + offset: 320 +} +member { + id: 0x1ec2d3d6 + name: "copied_seq" + type_id: 0xc9082b19 + offset: 12512 +} +member { id: 0x58138131 name: "copied_timestamp" type_id: 0x4585663f @@ -64293,12 +65790,24 @@ member { offset: 1472 } member { + id: 0xa608f9d7 + name: "cork" + type_id: 0x60790295 + offset: 7296 +} +member { id: 0xa64d7141 name: "cork" type_id: 0x25fbbcbe offset: 256 } member { + id: 0xa677c461 + name: "cork" + type_id: 0x1f434195 + offset: 1088 +} +member { id: 0x7105015a name: "cork_bytes" type_id: 0xc9082b19 @@ -64629,12 +66138,6 @@ member { type_id: 0xc9082b19 } member { - id: 0x65ec5e2d - name: "count" - type_id: 0xc9082b19 - offset: 128 -} -member { id: 0x6a729dee name: "count_buckets" type_id: 0x914dbfdc @@ -64703,6 +66206,12 @@ member { offset: 320 } member { + id: 0xb91305cd + name: "counts" + type_id: 0x5d529b1e + offset: 128 +} +member { id: 0x70db1c35 name: "coupled_rdevs" type_id: 0x094e2874 @@ -64768,23 +66277,11 @@ member { offset: 256 } member { - id: 0x9ba00ef7 - name: "cpl" - type_id: 0xe62ebf07 - offset: 32 -} -member { id: 0x92c2a1ed name: "cpp" type_id: 0x861a0f9a } member { - id: 0x0cc65d59 - name: "cptr_el2" - type_id: 0x92233392 - offset: 14976 -} -member { id: 0x510c8cb9 name: "cpu" type_id: 0x0a1d1ec5 @@ -64902,12 +66399,6 @@ member { offset: 544 } member { - id: 0x51e0ba6b - name: "cpu" - type_id: 0xe62ebf07 - offset: 64 -} -member { id: 0x4c158848 name: "cpu_addr_fixup" type_id: 0x1c275b9b @@ -65029,12 +66520,6 @@ member { offset: 384 } member { - id: 0x502de800 - name: "cpu_pm_nb" - type_id: 0x449a775b - offset: 3840 -} -member { id: 0xd7b3f93b name: "cpu_pwqs" type_id: 0x2033e582 @@ -65553,12 +67038,6 @@ member { offset: 2176 } member { - id: 0x00fa5522 - name: "cr8" - type_id: 0xedf277ba - offset: 128 -} -member { id: 0xf3e73479 name: "cra_alignmask" type_id: 0x4585663f @@ -65695,16 +67174,10 @@ member { offset: 64 } member { - id: 0x110caede - name: "creadr" - type_id: 0xc9082b19 - offset: 1088 -} -member { - id: 0x0fad648a + id: 0x0f89928e name: "create" - type_id: 0x2e1b59dd - offset: 64 + type_id: 0x0aee7ba0 + offset: 320 } member { id: 0x0fae5380 @@ -65782,18 +67255,6 @@ member { bitsize: 1 } member { - id: 0x92faaaee - name: "created" - type_id: 0x6d7f5ff6 - offset: 4448 -} -member { - id: 0x221ad62a - name: "created_vcpus" - type_id: 0x6720d32f - offset: 18752 -} -member { id: 0xced3c28a name: "cred" type_id: 0x30650ba6 @@ -66117,6 +67578,12 @@ member { offset: 37248 } member { + id: 0x5497e4e5 + name: "crypto_profile" + type_id: 0x08956bf0 + offset: 2304 +} +member { id: 0x5497e671 name: "crypto_profile" type_id: 0x08956bf0 @@ -66284,11 +67751,6 @@ member { offset: 656 } member { - id: 0x5d7bf520 - name: "csr_num" - type_id: 0x33756485 -} -member { id: 0xde0d95ff name: "css" type_id: 0x861be646 @@ -66556,12 +68018,6 @@ member { offset: 256 } member { - id: 0x8ed30508 - name: "ctlr" - type_id: 0x74d29cf1 - offset: 31872 -} -member { id: 0x7d794a79 name: "ctm" type_id: 0x343ebce3 @@ -66580,6 +68036,12 @@ member { offset: 576 } member { + id: 0x64f1a684 + name: "ctr" + type_id: 0xec2f5289 + offset: 320 +} +member { id: 0x6900647d name: "ctrl" type_id: 0x8e6fc5b1 @@ -66723,6 +68185,12 @@ member { offset: 64 } member { + id: 0xec94e17c + name: "ctx" + type_id: 0x0d12f45b + offset: 256 +} +member { id: 0xeca4247d name: "ctx" type_id: 0x3dd75e25 @@ -66867,11 +68335,6 @@ member { type_id: 0x39ee9172 } member { - id: 0x2723fe2c - name: "ctxt" - type_id: 0x6a241fb6 -} -member { id: 0x91091e90 name: "cur" type_id: 0x0b9cf8cf @@ -66901,10 +68364,10 @@ member { type_id: 0xec0a20ff } member { - id: 0xee8ba20d + id: 0xee8bae4d name: "cur_adv_instance" type_id: 0xb3e7bac9 - offset: 44960 + offset: 45344 } member { id: 0x2dbb1524 @@ -67073,6 +68536,12 @@ member { type_id: 0x92233392 } member { + id: 0x80fbe8a7 + name: "cur_snapshots" + type_id: 0xc9082b19 + offset: 864 +} +member { id: 0x8b31830e name: "cur_stack" type_id: 0x6720d32f @@ -67484,6 +68953,12 @@ member { offset: 192 } member { + id: 0xd7cfbd25 + name: "cwnd_usage_seq" + type_id: 0xc9082b19 + offset: 14592 +} +member { id: 0x1d7a6d67 name: "cwr" type_id: 0xe8034002 @@ -67491,12 +68966,6 @@ member { bitsize: 1 } member { - id: 0x09c4ee83 - name: "cwriter" - type_id: 0xc9082b19 - offset: 1120 -} -member { id: 0x9ed15d15 name: "cxl" type_id: 0x6d7f5ff6 @@ -67551,6 +69020,12 @@ member { offset: 16 } member { + id: 0xc325cba2 + name: "d" + type_id: 0x3f0185ef + offset: 128 +} +member { id: 0x8b60974a name: "d1_support" type_id: 0x4585663f @@ -67865,6 +69340,12 @@ member { offset: 1280 } member { + id: 0xcc4dd9fb + name: "d_sz" + type_id: 0xf435685e + offset: 640 +} +member { id: 0x8fb0e835 name: "d_term_en" type_id: 0x4585663f @@ -67959,6 +69440,12 @@ member { offset: 32 } member { + id: 0xca75de5a + name: "daddr_cache" + type_id: 0x3b461cc8 + offset: 320 +} +member { id: 0xf25f00aa name: "dai_elems" type_id: 0x0baa70a7 @@ -68266,12 +69753,6 @@ member { offset: 64 } member { - id: 0xff5aeac8 - name: "data" - type_id: 0xc8c766a0 - offset: 128 -} -member { id: 0xff5b2c47 name: "data" type_id: 0xc9082b19 @@ -68325,12 +69806,6 @@ member { offset: 480 } member { - id: 0xff7407e8 - name: "data" - type_id: 0xe62ebf07 - offset: 32 -} -member { id: 0xff770e06 name: "data" type_id: 0xe5217790 @@ -68361,12 +69836,6 @@ member { offset: 64 } member { - id: 0xff7fdfd9 - name: "data" - type_id: 0xedf277ba - offset: 128 -} -member { id: 0xff886278 name: "data" type_id: 0x1a41d386 @@ -68645,6 +70114,12 @@ member { offset: 64 } member { + id: 0xffb32814 + name: "data" + type_id: 0x21069feb + offset: 1536 +} +member { id: 0xffb530a9 name: "data" type_id: 0x2712b6f9 @@ -68663,6 +70138,12 @@ member { offset: 64 } member { + id: 0xffbef712 + name: "data" + type_id: 0x2cdbb77a + offset: 192 +} +member { id: 0xffc40278 name: "data" type_id: 0x562614d8 @@ -68714,17 +70195,6 @@ member { type_id: 0x764913b9 } member { - id: 0xffe56b33 - name: "data" - type_id: 0x774f5f7f -} -member { - id: 0xffe56fd2 - name: "data" - type_id: 0x774f5f7f - offset: 64 -} -member { id: 0xffe71c01 name: "data" type_id: 0x75386dca @@ -68927,18 +70397,18 @@ member { offset: 128 } member { + id: 0x109b80af + name: "data_mode" + type_id: 0x5d8155a5 + offset: 576 +} +member { id: 0x970da8c8 name: "data_offset" type_id: 0x4585663f offset: 320 } member { - id: 0x97a5dcff - name: "data_offset" - type_id: 0xedf277ba - offset: 64 -} -member { id: 0x97a5dfa6 name: "data_offset" type_id: 0xedf277ba @@ -69028,6 +70498,18 @@ member { offset: 800 } member { + id: 0x7ecbe350 + name: "data_segs_in" + type_id: 0xc9082b19 + offset: 12448 +} +member { + id: 0xdb2f5379 + name: "data_segs_out" + type_id: 0xc9082b19 + offset: 12640 +} +member { id: 0x9e8ccb80 name: "data_shift" type_id: 0x5d8155a5 @@ -69237,6 +70719,18 @@ member { offset: 64 } member { + id: 0x57d05926 + name: "dax_dev" + type_id: 0x35abdbf6 + offset: 1920 +} +member { + id: 0x57d05c19 + name: "dax_dev" + type_id: 0x35abdbf6 + offset: 64 +} +member { id: 0x57d05f3f name: "dax_dev" type_id: 0x35abdbf6 @@ -69249,6 +70743,12 @@ member { offset: 7680 } member { + id: 0x830b1efa + name: "dax_recovery_write" + type_id: 0xdbb955db + offset: 1664 +} +member { id: 0x08509b5c name: "dax_seed" type_id: 0x0258f96e @@ -69261,16 +70761,10 @@ member { offset: 64 } member { - id: 0xd3a54092 - name: "db_bitmap" - type_id: 0x064d6086 - offset: 384 -} -member { - id: 0x3baa0bf3 - name: "db_lpi_base" - type_id: 0x22b36393 - offset: 320 + id: 0xc7158a13 + name: "dax_zero_page_range" + type_id: 0xc272516a + offset: 1600 } member { id: 0xf540eeb1 @@ -69291,17 +70785,6 @@ member { offset: 59200 } member { - id: 0x5cb6e321 - name: "dbg_bcr" - type_id: 0x774f5f7f -} -member { - id: 0xb8d95da8 - name: "dbg_bvr" - type_id: 0x774f5f7f - offset: 1024 -} -member { id: 0x7a634154 name: "dbg_client_name" type_id: 0x0483e6f8 @@ -69338,18 +70821,6 @@ member { offset: 2944 } member { - id: 0x6a57f232 - name: "dbg_wcr" - type_id: 0x774f5f7f - offset: 2048 -} -member { - id: 0x88756f7c - name: "dbg_wvr" - type_id: 0x774f5f7f - offset: 3072 -} -member { id: 0x24017197 name: "dbi_base" type_id: 0x18bd6530 @@ -69392,12 +70863,6 @@ member { offset: 128 } member { - id: 0x0a10a4f8 - name: "dcache_clean_inval_poc" - type_id: 0x0fc9cef8 - offset: 512 -} -member { id: 0x14599da8 name: "dcbaa" type_id: 0x3b0b4c9d @@ -69502,11 +70967,6 @@ member { offset: 64 } member { - id: 0xc747f834 - name: "dcr" - type_id: 0x24232993 -} -member { id: 0xc74a8b1e name: "dcr" type_id: 0x295c7202 @@ -69519,11 +70979,6 @@ member { offset: 8 } member { - id: 0xf1c2dba4 - name: "dcrn" - type_id: 0xe62ebf07 -} -member { id: 0x50d8a1f7 name: "dct_part_sizes" type_id: 0xddb527d3 @@ -69761,6 +71216,12 @@ member { offset: 288 } member { + id: 0xbc5ebfd1 + name: "deathrow" + type_id: 0x5e8dc7f4 + offset: 448 +} +member { id: 0x6b1d26fa name: "debounce_period_us" type_id: 0x4585663f @@ -69773,17 +71234,18 @@ member { offset: 256 } member { + id: 0x74a266cc + name: "debounce_time" + type_id: 0x4585663f + offset: 96 +} +member { id: 0x070a913d name: "debug" type_id: 0x0c8ded5e offset: 256 } member { - id: 0x07307794 - name: "debug" - type_id: 0x366bef7d -} -member { id: 0x073956d8 name: "debug" type_id: 0x3f498f10 @@ -69862,12 +71324,6 @@ member { offset: 1792 } member { - id: 0x7e662956 - name: "debug_ptr" - type_id: 0x1cd322d1 - offset: 15424 -} -member { id: 0x2c8c53b8 name: "debug_rdesc" type_id: 0x120540d1 @@ -69910,10 +71366,10 @@ member { offset: 2176 } member { - id: 0x1c35799b + id: 0x1c35794d name: "debugfs" type_id: 0x120540d1 - offset: 31232 + offset: 31616 } member { id: 0x1c357c44 @@ -69946,12 +71402,6 @@ member { offset: 576 } member { - id: 0x6425d0fe - name: "debugfs_dentry" - type_id: 0x120540d1 - offset: 26432 -} -member { id: 0x35a0a098 name: "debugfs_dir" type_id: 0x120540d1 @@ -70144,12 +71594,6 @@ member { offset: 59008 } member { - id: 0xcd446a90 - name: "debugfs_stat_data" - type_id: 0x073894f9 - offset: 26496 -} -member { id: 0xa113b6ec name: "debugfs_tot_len" type_id: 0x4585663f @@ -70221,6 +71665,12 @@ member { offset: 192 } member { + id: 0x70fa6b40 + name: "decrypt" + type_id: 0x2cd8a9c9 + offset: 192 +} +member { id: 0x70fa8381 name: "decrypt" type_id: 0x2c316317 @@ -70495,6 +71945,13 @@ member { offset: 4096 } member { + id: 0x35577470 + name: "defer_connect" + type_id: 0xb3e7bac9 + offset: 7114 + bitsize: 1 +} +member { id: 0x81689872 name: "defer_count" type_id: 0x6720d32f @@ -70567,6 +72024,12 @@ member { offset: 1408 } member { + id: 0xf0efa471 + name: "deferred" + type_id: 0x59cf4672 + offset: 2880 +} +member { id: 0x17c292e0 name: "deferred_cmd" type_id: 0x2ea8d96e @@ -70591,6 +72054,12 @@ member { offset: 576 } member { + id: 0xa9cf9302 + name: "deferred_lock" + type_id: 0xf313e71a + offset: 2816 +} +member { id: 0x94bc1785 name: "deferred_probe" type_id: 0xd3c80119 @@ -70861,6 +72330,16 @@ member { offset: 3072 } member { + id: 0xc43f5f8d + name: "delayed_ndp16" + type_id: 0x3ba909c1 +} +member { + id: 0xd408f584 + name: "delayed_ndp32" + type_id: 0x35feb7e2 +} +member { id: 0x506f3dc2 name: "delayed_runtime" type_id: 0x11c404ba @@ -70939,12 +72418,24 @@ member { offset: 480 } member { + id: 0x986caa86 + name: "delivered" + type_id: 0xc9082b19 + offset: 15232 +} +member { id: 0x9871b666 name: "delivered" type_id: 0xd41e888f offset: 128 } member { + id: 0xe06780dd + name: "delivered_ce" + type_id: 0xc9082b19 + offset: 15264 +} +member { id: 0xe07a91f0 name: "delivered_ce" type_id: 0xd41e888f @@ -70957,6 +72448,12 @@ member { offset: 3008 } member { + id: 0xc6e15ebb + name: "delivered_mstamp" + type_id: 0x92233392 + offset: 15424 +} +member { id: 0xb362d7b2 name: "dellink" type_id: 0x0da22dc7 @@ -71201,6 +72698,12 @@ member { offset: 2368 } member { + id: 0x1b2184e9 + name: "depth" + type_id: 0x4585663f + offset: 96 +} +member { id: 0x1b218a1d name: "depth" type_id: 0x4585663f @@ -71242,6 +72745,12 @@ member { offset: 256 } member { + id: 0x8001f399 + name: "deq" + type_id: 0x78f4e574 + offset: 64 +} +member { id: 0x02f59ce0 name: "deq_seg" type_id: 0x3ef55b88 @@ -71291,12 +72800,6 @@ member { offset: 128 } member { - id: 0x8a59e26d - name: "dequeued" - type_id: 0xb3e7bac9 - offset: 128 -} -member { id: 0x7f5400a8 name: "derive_sw_secret" type_id: 0x2d4915c7 @@ -71315,11 +72818,6 @@ member { offset: 16 } member { - id: 0x87807fd8 - name: "desc" - type_id: 0x5a5219ed -} -member { id: 0x8780fb54 name: "desc" type_id: 0x5adf57ae @@ -71391,10 +72889,10 @@ member { offset: 1344 } member { - id: 0x87e1eb87 + id: 0x87e0b654 name: "desc" - type_id: 0x3bc2a7f0 - offset: 64 + type_id: 0x3a9d5bb9 + offset: 7872 } member { id: 0x87e3bc35 @@ -71765,12 +73263,6 @@ member { offset: 384 } member { - id: 0xa4fbb750 - name: "destroy" - type_id: 0x0d947d59 - offset: 192 -} -member { id: 0xa4fbcad2 name: "destroy" type_id: 0x0de6f1fd @@ -71865,12 +73357,6 @@ member { offset: 256 } member { - id: 0xa414c1a9 - name: "destructor" - type_id: 0x0ee038bb - offset: 128 -} -member { id: 0xa414c5c8 name: "destructor" type_id: 0x0ee55270 @@ -71900,6 +73386,12 @@ member { offset: 128 } member { + id: 0xa4170b6e + name: "destructor" + type_id: 0x0d27dc9d + offset: 64 +} +member { id: 0xa4b58e4f name: "destructor" type_id: 0xafafde12 @@ -72144,12 +73636,6 @@ member { offset: 128 } member { - id: 0xce062759 - name: "dev" - type_id: 0x3fc5b8b3 - offset: 256 -} -member { id: 0xce0653f5 name: "dev" type_id: 0x3fb55e9f @@ -72249,12 +73735,6 @@ member { offset: 256 } member { - id: 0xce0bc034 - name: "dev" - type_id: 0x322509a0 - offset: 448 -} -member { id: 0xce13618d name: "dev" type_id: 0x2a83c756 @@ -72415,16 +73895,16 @@ member { offset: 896 } member { - id: 0xce1acc2a + id: 0xce1acc3f name: "dev" type_id: 0x23230326 - offset: 31296 + offset: 1088 } member { - id: 0xce1acc3f + id: 0xce1acc55 name: "dev" type_id: 0x23230326 - offset: 1088 + offset: 31680 } member { id: 0xce1acdd7 @@ -72457,6 +73937,12 @@ member { offset: 192 } member { + id: 0xce34257f + name: "dev" + type_id: 0x0dc9e98b + offset: 1152 +} +member { id: 0xce3495b5 name: "dev" type_id: 0x0d7ce7cc @@ -72528,6 +74014,12 @@ member { offset: 2880 } member { + id: 0xce3bb522 + name: "dev" + type_id: 0x0258f96e + offset: 3072 +} +member { id: 0xce3bb837 name: "dev" type_id: 0x0258f96e @@ -72617,12 +74109,6 @@ member { offset: 2688 } member { - id: 0xce3c8adf - name: "dev" - type_id: 0x0561578b - offset: 128 -} -member { id: 0xce3fe2d9 name: "dev" type_id: 0x060cf413 @@ -72740,11 +74226,6 @@ member { type_id: 0x68bb0e75 } member { - id: 0xa05ae8b2 - name: "dev_count" - type_id: 0x6720d32f -} -member { id: 0xa64bb146 name: "dev_debug" type_id: 0x6720d32f @@ -72787,10 +74268,10 @@ member { offset: 22128 } member { - id: 0x76701066 + id: 0x76701448 name: "dev_flags" type_id: 0xb914bfab - offset: 38656 + offset: 39040 } member { id: 0xf95461ff @@ -72870,12 +74351,23 @@ member { offset: 2432 } member { + id: 0x1d443303 + name: "dev_info" + type_id: 0x0baa70a7 +} +member { id: 0x1d86e345 name: "dev_info" type_id: 0xc97fa0d5 offset: 20608 } member { + id: 0xb6174f2e + name: "dev_info2" + type_id: 0x0baa70a7 + offset: 32 +} +member { id: 0x34b4b616 name: "dev_kobj" type_id: 0x23f09c34 @@ -72906,6 +74398,12 @@ member { offset: 832 } member { + id: 0x770654c6 + name: "dev_mac" + type_id: 0xabf64f28 + offset: 1544 +} +member { id: 0x31c5367f name: "dev_mapping" type_id: 0x1582ab06 @@ -73106,6 +74604,12 @@ member { type_id: 0x33756485 } member { + id: 0x6ba2a863 + name: "dev_state" + type_id: 0x0baa70a7 + offset: 96 +} +member { id: 0x6bc4755d name: "dev_state" type_id: 0x6d7f5ff6 @@ -73535,11 +75039,6 @@ member { type_id: 0x2f4eca66 } member { - id: 0xf5b742db - name: "device_irq_level" - type_id: 0xedf277ba -} -member { id: 0x4432480f name: "device_is_available" type_id: 0x36d86941 @@ -73571,12 +75070,6 @@ member { bitsize: 1 } member { - id: 0x5adf7097 - name: "device_list" - type_id: 0xd3c80119 - offset: 1600 -} -member { id: 0x5adf788d name: "device_list" type_id: 0xd3c80119 @@ -73802,12 +75295,6 @@ member { offset: 64 } member { - id: 0x33ed52b5 - name: "devices" - type_id: 0xd3c80119 - offset: 26240 -} -member { id: 0x33ed531f name: "devices" type_id: 0xd3c80119 @@ -73820,6 +75307,12 @@ member { offset: 3328 } member { + id: 0x33ed565c + name: "devices" + type_id: 0xd3c80119 + offset: 1984 +} +member { id: 0x33ed5762 name: "devices" type_id: 0xd3c80119 @@ -73885,15 +75378,26 @@ member { offset: 6816 } member { - id: 0x5685a7bf + id: 0x56ace115 name: "devlink" - type_id: 0x25b57283 + type_id: 0x0cf3d8fe offset: 256 } member { - id: 0x5685afdd + id: 0x56ace1be + name: "devlink" + type_id: 0x0cf3d8fe +} +member { + id: 0x56ace87c + name: "devlink" + type_id: 0x0cf3d8fe + offset: 128 +} +member { + id: 0x56ace977 name: "devlink" - type_id: 0x25b57283 + type_id: 0x0cf3d8fe offset: 192 } member { @@ -73902,6 +75406,12 @@ member { type_id: 0x3b68ec61 } member { + id: 0xeb76e483 + name: "devlink_port" + type_id: 0x3b68ec61 + offset: 320 +} +member { id: 0xf45f2394 name: "devlink_rate" type_id: 0x0f4dcd61 @@ -73978,6 +75488,12 @@ member { offset: 192 } member { + id: 0x1ea56ad0 + name: "devnode" + type_id: 0x053432a7 + offset: 64 +} +member { id: 0x1ea56fa3 name: "devnode" type_id: 0x053432a7 @@ -74187,6 +75703,12 @@ member { offset: 224 } member { + id: 0x30b83368 + name: "diagnose" + type_id: 0x2e2f03e7 + offset: 192 +} +member { id: 0xc3552be5 name: "dialed_frequency" type_id: 0xfc0e1dbd @@ -74402,6 +75924,12 @@ member { type_id: 0x23f09c34 } member { + id: 0x2edf726f + name: "dir" + type_id: 0x295c7202 + offset: 24 +} +member { id: 0x2ee42a6c name: "dir" type_id: 0x120540d1 @@ -74470,6 +75998,12 @@ member { offset: 704 } member { + id: 0x6b820536 + name: "direct_access" + type_id: 0x5833b757 + offset: 1536 +} +member { id: 0x6bfa0272 name: "direct_access" type_id: 0x203e14bb @@ -74488,11 +76022,6 @@ member { bitsize: 1 } member { - id: 0xa02b28d6 - name: "direction" - type_id: 0xb3e7bac9 -} -member { id: 0xa069b1d1 name: "direction" type_id: 0xf17ebd32 @@ -74624,6 +76153,12 @@ member { offset: 1536 } member { + id: 0x077f45a8 + name: "dirty_end" + type_id: 0x4585663f + offset: 864 +} +member { id: 0xcaa4df71 name: "dirty_exceeded" type_id: 0x6720d32f @@ -74636,17 +76171,6 @@ member { offset: 192 } member { - id: 0x69efcf5e - name: "dirty_gfns" - type_id: 0x35324dc4 - offset: 128 -} -member { - id: 0x4647cbd4 - name: "dirty_index" - type_id: 0xc9082b19 -} -member { id: 0xcd7da86d name: "dirty_inode" type_id: 0x0f69541a @@ -74677,24 +76201,18 @@ member { offset: 2368 } member { - id: 0x0741ce14 - name: "dirty_ring" - type_id: 0x95e9e529 - offset: 77248 -} -member { - id: 0x8de27dbd - name: "dirty_ring_size" - type_id: 0xc9082b19 - offset: 34336 -} -member { id: 0xaa41fb92 name: "dirty_sleep" type_id: 0x33756485 offset: 5312 } member { + id: 0x522ab1e5 + name: "dirty_start" + type_id: 0x4585663f + offset: 832 +} +member { id: 0xd7a3d362 name: "dis_hw_timestamp" type_id: 0x2cb45ae6 @@ -74736,12 +76254,6 @@ member { offset: 832 } member { - id: 0x0d828e0a - name: "disable" - type_id: 0x0f6acd3e - offset: 2688 -} -member { id: 0x0d82e48b name: "disable" type_id: 0x0f04e0db @@ -74766,6 +76278,12 @@ member { offset: 960 } member { + id: 0x0da0f708 + name: "disable" + type_id: 0x2d12100b + offset: 64 +} +member { id: 0x0da0f771 name: "disable" type_id: 0x2d126960 @@ -75040,6 +76558,13 @@ member { offset: 1792 } member { + id: 0x7a833cf4 + name: "discards_supported" + type_id: 0x6d7f5ff6 + offset: 577 + bitsize: 1 +} +member { id: 0x513a35c9 name: "disconn_cfm" type_id: 0x0cb52986 @@ -75156,16 +76681,16 @@ member { offset: 6576 } member { - id: 0xec10e2f4 + id: 0xec10e729 name: "discov_off" type_id: 0xf1159c31 - offset: 17472 + offset: 17856 } member { - id: 0x9d309caf + id: 0x9d30956d name: "discov_timeout" type_id: 0xe8034002 - offset: 17408 + offset: 17792 } member { id: 0x8ca232e1 @@ -75174,22 +76699,22 @@ member { offset: 768 } member { - id: 0xd0a93ec2 + id: 0xd0a93c31 name: "discovery" type_id: 0xf51d515d - offset: 26688 + offset: 27072 } member { - id: 0x45128fe7 + id: 0x45128248 name: "discovery_old_state" type_id: 0x6720d32f - offset: 27840 + offset: 28224 } member { - id: 0x98e4789b + id: 0x98e47471 name: "discovery_paused" type_id: 0x6d7f5ff6 - offset: 27872 + offset: 28256 } member { id: 0x8c9f2a57 @@ -75220,6 +76745,12 @@ member { offset: 128 } member { + id: 0x6071aa84 + name: "disk" + type_id: 0x2131312a + offset: 1856 +} +member { id: 0xe00832b6 name: "disk_events_disable_depth" type_id: 0x74d29cf1 @@ -75339,12 +76870,6 @@ member { offset: 128 } member { - id: 0x1de22279 - name: "disr_el1" - type_id: 0x92233392 - offset: 192 -} -member { id: 0x40f260d6 name: "dissector" type_id: 0x2a316b68 @@ -75362,18 +76887,6 @@ member { offset: 64 } member { - id: 0x929175ec - name: "dist_id" - type_id: 0x6720d32f - offset: 96 -} -member { - id: 0x6fe87475 - name: "dist_iodev" - type_id: 0x60b9a60c - offset: 512 -} -member { id: 0x29b12afa name: "div" type_id: 0x4585663f @@ -75560,6 +77073,12 @@ member { offset: 384 } member { + id: 0x56ecab6c + name: "dm_io" + type_id: 0x09b53a9f + offset: 1216 +} +member { id: 0x811af440 name: "dma" type_id: 0xe02e14d6 @@ -76443,6 +77962,13 @@ member { offset: 6336 } member { + id: 0x4b741bd1 + name: "dontfrag" + type_id: 0xe8034002 + offset: 570 + bitsize: 1 +} +member { id: 0xbd60b76c name: "doorbell" type_id: 0x7b0fa8c2 @@ -76526,12 +78052,24 @@ member { type_id: 0x80ba3719 } member { + id: 0x55f0c48b + name: "dp" + type_id: 0x3f0185ef + offset: 320 +} +member { id: 0x1e95895b name: "dp_subconnector_property" type_id: 0x2a670b41 offset: 7424 } member { + id: 0x086093bd + name: "dp_sz" + type_id: 0xf435685e + offset: 832 +} +member { id: 0x93b48e83 name: "dpa" type_id: 0xc7736674 @@ -76596,6 +78134,30 @@ member { bitsize: 1 } member { + id: 0xab0f277e + name: "dpe16" + type_id: 0xc82f70f4 + offset: 64 +} +member { + id: 0x015a8ae1 + name: "dpe32" + type_id: 0xcb703345 + offset: 128 +} +member { + id: 0x32a55865 + name: "dpipe_headers" + type_id: 0x27c7b3cb + offset: 1472 +} +member { + id: 0x3d9266c0 + name: "dpipe_table_list" + type_id: 0xd3c80119 + offset: 448 +} +member { id: 0x95152d3f name: "dplen" type_id: 0xb3e7bac9 @@ -76658,6 +78220,12 @@ member { offset: 1056 } member { + id: 0x12302e1a + name: "dq" + type_id: 0x3f0185ef + offset: 384 +} +member { id: 0x535fdeda name: "dq_count" type_id: 0x74d29cf1 @@ -76741,6 +78309,12 @@ member { offset: 960 } member { + id: 0x8d88c04b + name: "dq_sz" + type_id: 0xf435685e + offset: 896 +} +member { id: 0xdae271b1 name: "dqb_bhardlimit" type_id: 0x6b98fc5d @@ -77587,6 +79161,12 @@ member { offset: 192 } member { + id: 0xbf6a10c0 + name: "drvflags" + type_id: 0x6720d32f + offset: 1824 +} +member { id: 0xacd4449f name: "drvpriv" type_id: 0x18bd6530 @@ -77604,6 +79184,26 @@ member { type_id: 0x0a5c3627 } member { + id: 0x09aae020 + name: "dsack" + type_id: 0x914dbfdc + offset: 130 + bitsize: 1 +} +member { + id: 0x7efdf5c5 + name: "dsack_dups" + type_id: 0xc9082b19 + offset: 12800 +} +member { + id: 0x28f28f83 + name: "dsack_seen" + type_id: 0x295c7202 + offset: 173 + bitsize: 1 +} +member { id: 0x3c3a7c4f name: "dsc" type_id: 0x0155bbcc @@ -77782,12 +79382,24 @@ member { offset: 128 } member { + id: 0xbbab7e83 + name: "dst" + type_id: 0x5ade635b + offset: 128 +} +member { id: 0xbbb264ba name: "dst" type_id: 0x43c73e81 offset: 896 } member { + id: 0xbbe061af + name: "dst" + type_id: 0x11cffa09 + offset: 448 +} +member { id: 0xbbe06e11 name: "dst" type_id: 0x11cffa09 @@ -77806,12 +79418,42 @@ member { offset: 64 } member { + id: 0xbbe3f808 + name: "dst" + type_id: 0x1259e377 + offset: 192 +} +member { id: 0xbbf78102 name: "dst" type_id: 0x0625c03a offset: 160 } member { + id: 0x94523a01 + name: "dst0" + type_id: 0xe8034002 + offset: 48 +} +member { + id: 0xebf05092 + name: "dst0opt" + type_id: 0x33642722 + offset: 192 +} +member { + id: 0x5493d7f6 + name: "dst1" + type_id: 0xe8034002 + offset: 80 +} +member { + id: 0xfb3c6654 + name: "dst1opt" + type_id: 0x33642722 + offset: 320 +} +member { id: 0x59edf322 name: "dst_addr" type_id: 0xbdd18903 @@ -77848,6 +79490,12 @@ member { offset: 64 } member { + id: 0x3e931a99 + name: "dst_cookie" + type_id: 0xe62ebf07 + offset: 640 +} +member { id: 0x24a0666b name: "dst_csets" type_id: 0xd3c80119 @@ -77866,6 +79514,12 @@ member { offset: 168 } member { + id: 0x352c27f4 + name: "dst_len" + type_id: 0x4585663f + offset: 544 +} +member { id: 0x35da4011 name: "dst_len" type_id: 0xb3e7bac9 @@ -77984,6 +79638,19 @@ member { type_id: 0x2bcf25d1 } member { + id: 0x38c1840e + name: "dsthao" + type_id: 0xe8034002 + offset: 144 +} +member { + id: 0xcc7711fa + name: "dstopts" + type_id: 0xe8034002 + offset: 8 + bitsize: 1 +} +member { id: 0x58e808e0 name: "dt" type_id: 0x295c7202 @@ -78051,6 +79718,12 @@ member { type_id: 0x6d7f5ff6 } member { + id: 0xb0de17e8 + name: "dtr" + type_id: 0xdee852ab + offset: 384 +} +member { id: 0xc9708f00 name: "dtr_rts" type_id: 0x0f70080a @@ -78170,6 +79843,12 @@ member { offset: 960 } member { + id: 0x0a7d4966 + name: "dump" + type_id: 0x2e2ef220 + offset: 128 +} +member { id: 0x0a7e5e7c name: "dump" type_id: 0x2d32ee3e @@ -78206,6 +79885,24 @@ member { offset: 7808 } member { + id: 0x210293e8 + name: "dump_fmsg" + type_id: 0x23d822f9 + offset: 384 +} +member { + id: 0x33fc8cf5 + name: "dump_lock" + type_id: 0xa7c362b0 + offset: 448 +} +member { + id: 0x352c4ca4 + name: "dump_real_ts" + type_id: 0x92233392 + offset: 1024 +} +member { id: 0xc82958b0 name: "dump_segments" type_id: 0xd3c80119 @@ -78230,6 +79927,12 @@ member { offset: 832 } member { + id: 0x1e719a84 + name: "dump_ts" + type_id: 0x92233392 + offset: 960 +} +member { id: 0xa92e0890 name: "dump_vendor_regs" type_id: 0x0d21fdc9 @@ -78272,6 +79975,13 @@ member { offset: 64 } member { + id: 0x330d862e + name: "dup_ack_counter" + type_id: 0x295c7202 + offset: 13720 + bitsize: 2 +} +member { id: 0x74874671 name: "dup_xol_addr" type_id: 0x33756485 @@ -78331,6 +80041,12 @@ member { offset: 832 } member { + id: 0xac4c8092 + name: "duplicate_sack" + type_id: 0x8fb3c5ee + offset: 17152 +} +member { id: 0xe631c0e0 name: "duplicated" type_id: 0x6d7f5ff6 @@ -78361,6 +80077,12 @@ member { type_id: 0xc9082b19 } member { + id: 0x5e3459b5 + name: "duration_ns" + type_id: 0xd5df6730 + offset: 64 +} +member { id: 0xd5562c37 name: "duty" type_id: 0x7747934c @@ -78438,6 +80160,46 @@ member { type_id: 0x0baa70a7 } member { + id: 0x09ca9dd2 + name: "dwDatagramIndex" + type_id: 0x0baa70a7 +} +member { + id: 0x348d64a1 + name: "dwDatagramLength" + type_id: 0x0baa70a7 + offset: 32 +} +member { + id: 0x6e82996c + name: "dwNextNdpIndex" + type_id: 0x0baa70a7 + offset: 64 +} +member { + id: 0x7000a99b + name: "dwNtbInMaxSize" + type_id: 0x0baa70a7 + offset: 32 +} +member { + id: 0xc1f69c16 + name: "dwNtbOutMaxSize" + type_id: 0x0baa70a7 + offset: 128 +} +member { + id: 0x46e37740 + name: "dwReserved12" + type_id: 0x0baa70a7 + offset: 96 +} +member { + id: 0x1e7efd51 + name: "dwSignature" + type_id: 0x0baa70a7 +} +member { id: 0x301130d9 name: "dword_0" type_id: 0x0baa70a7 @@ -78525,12 +80287,6 @@ member { offset: 32 } member { - id: 0xd4f73d44 - name: "dy_eligible" - type_id: 0x6d7f5ff6 - offset: 8 -} -member { id: 0x0ca6a6a3 name: "dying" type_id: 0x295c7202 @@ -78609,6 +80365,12 @@ member { offset: 32 } member { + id: 0x87e623f5 + name: "e" + type_id: 0x3f0185ef + offset: 64 +} +member { id: 0x8d6d2188 name: "e1000_base_cx" type_id: 0x295c7202 @@ -78722,6 +80484,12 @@ member { offset: 16 } member { + id: 0xab258a23 + name: "e_sz" + type_id: 0xf435685e + offset: 576 +} +member { id: 0x8c50076a name: "e_tag" type_id: 0xb0312d5a @@ -78861,6 +80629,12 @@ member { offset: 1568 } member { + id: 0x3dfa7679 + name: "ecn_flags" + type_id: 0x295c7202 + offset: 14640 +} +member { id: 0xd4971fcb name: "ed" type_id: 0x2d63ca24 @@ -79489,6 +81263,13 @@ member { offset: 8512 } member { + id: 0x4ccb6a85 + name: "emulate_zone_append" + type_id: 0x6d7f5ff6 + offset: 579 + bitsize: 1 +} +member { id: 0x030a11d9 name: "emulated" type_id: 0x4585663f @@ -79496,11 +81277,6 @@ member { bitsize: 1 } member { - id: 0x3ba0211e - name: "emulation_failure" - type_id: 0x1bf61cb5 -} -member { id: 0x1d3635db name: "en_hw_timestamp" type_id: 0x2cb45ae6 @@ -79562,6 +81338,11 @@ member { offset: 896 } member { + id: 0x98ca1d0f + name: "enable" + type_id: 0x2d12100b +} +member { id: 0x98ca2102 name: "enable" type_id: 0x2d2e1d2d @@ -79596,12 +81377,6 @@ member { type_id: 0x33756485 } member { - id: 0x98e86c88 - name: "enable" - type_id: 0x0f6acd3e - offset: 2624 -} -member { id: 0x98e9418c name: "enable" type_id: 0x0e4a72a9 @@ -79657,6 +81432,12 @@ member { offset: 22144 } member { + id: 0x7a5a9024 + name: "enable_count" + type_id: 0xc9082b19 + offset: 7808 +} +member { id: 0x7a5a9508 name: "enable_count" type_id: 0xc9082b19 @@ -79913,18 +81694,6 @@ member { offset: 9024 } member { - id: 0x3a2d355a - name: "enabled" - type_id: 0x6d7f5ff6 - offset: 8 -} -member { - id: 0x3a2d3590 - name: "enabled" - type_id: 0x6d7f5ff6 - offset: 504 -} -member { id: 0x3a2d367c name: "enabled" type_id: 0x6d7f5ff6 @@ -79937,18 +81706,6 @@ member { offset: 136 } member { - id: 0x3a2d374f - name: "enabled" - type_id: 0x6d7f5ff6 - offset: 2240 -} -member { - id: 0x3a2d39cb - name: "enabled" - type_id: 0x6d7f5ff6 - offset: 448 -} -member { id: 0x3a2d3a5d name: "enabled" type_id: 0x6d7f5ff6 @@ -79978,15 +81735,16 @@ member { type_id: 0x6d7f5ff6 } member { - id: 0x3a2d3f2e + id: 0x3a34937f name: "enabled" - type_id: 0x6d7f5ff6 - offset: 384 + type_id: 0x74d29cf1 } member { - id: 0x3a34937f + id: 0x7a56a000 name: "enabled" - type_id: 0x74d29cf1 + type_id: 0xc9082b19 + offset: 95 + bitsize: 1 } member { id: 0x7a56a64a @@ -80249,6 +82007,12 @@ member { offset: 64 } member { + id: 0x893e9a51 + name: "encrypt" + type_id: 0x2cd8a9c9 + offset: 128 +} +member { id: 0x897f3adb name: "encrypt" type_id: 0x6d7f5ff6 @@ -80267,12 +82031,6 @@ member { offset: 64 } member { - id: 0x823c26d1 - name: "end" - type_id: 0x33756485 - offset: 192 -} -member { id: 0x823c2af9 name: "end" type_id: 0x33756485 @@ -80381,6 +82139,18 @@ member { offset: 2368 } member { + id: 0xec2a10b4 + name: "end_io" + type_id: 0x0c483694 + offset: 1152 +} +member { + id: 0xec54a25c + name: "end_io" + type_id: 0x72f27b5e + offset: 640 +} +member { id: 0xb9877618 name: "end_io_data" type_id: 0x18bd6530 @@ -80405,6 +82175,18 @@ member { offset: 64 } member { + id: 0xd5a56009 + name: "end_seq" + type_id: 0xc9082b19 + offset: 32 +} +member { + id: 0xd5a564b1 + name: "end_seq" + type_id: 0xc9082b19 + offset: 96 +} +member { id: 0x357800a2 name: "end_station" type_id: 0x6d7f5ff6 @@ -81002,11 +82784,6 @@ member { offset: 4288 } member { - id: 0xa2d43869 - name: "eoi" - type_id: 0x38ab0bc9 -} -member { id: 0xa2dfe6ad name: "eoi" type_id: 0x33756485 @@ -81121,6 +82898,17 @@ member { offset: 64 } member { + id: 0x43272c66 + name: "ep_info" + type_id: 0x0baa70a7 +} +member { + id: 0x3efdd095 + name: "ep_info2" + type_id: 0x0baa70a7 + offset: 32 +} +member { id: 0x93a1b3b9 name: "ep_init" type_id: 0x0d4a6a9f @@ -81196,16 +82984,6 @@ member { offset: 64 } member { - id: 0x044a9f42 - name: "epr" - type_id: 0xe62ebf07 -} -member { - id: 0x04b5cf1e - name: "epr" - type_id: 0x197ee30b -} -member { id: 0x4571d9d3 name: "eps" type_id: 0x9a1c0141 @@ -81366,6 +83144,18 @@ member { offset: 1152 } member { + id: 0x7f0253e8 + name: "error" + type_id: 0x0483e6f8 + offset: 64 +} +member { + id: 0x7f025c11 + name: "error" + type_id: 0x0483e6f8 + offset: 512 +} +member { id: 0x7f4352ad name: "error" type_id: 0x4585663f @@ -81408,11 +83198,6 @@ member { offset: 1088 } member { - id: 0x7fb53355 - name: "error" - type_id: 0xb3e7bac9 -} -member { id: 0x7fb6e678 name: "error" type_id: 0xb0312d5a @@ -81426,10 +83211,10 @@ member { bitsize: 1 } member { - id: 0x76c39912 - name: "error_code" - type_id: 0xe62ebf07 - offset: 32 + id: 0x0b6ea206 + name: "error_count" + type_id: 0x92233392 + offset: 1088 } member { id: 0x0b9ba55b @@ -81617,16 +83402,6 @@ member { type_id: 0x6df98672 } member { - id: 0xfe44cfde - name: "esr_el2" - type_id: 0x92233392 -} -member { - id: 0x215cae19 - name: "esr_iss" - type_id: 0xedf277ba -} -member { id: 0x951f933e name: "essid" type_id: 0xb76debc5 @@ -81644,6 +83419,42 @@ member { offset: 256 } member { + id: 0x2d2ca64a + name: "eswitch_encap_mode_get" + type_id: 0x2d046cf4 + offset: 1408 +} +member { + id: 0x0e5d040f + name: "eswitch_encap_mode_set" + type_id: 0x2df84197 + offset: 1472 +} +member { + id: 0xff091101 + name: "eswitch_inline_mode_get" + type_id: 0x2d3ffbc6 + offset: 1280 +} +member { + id: 0xf81283dc + name: "eswitch_inline_mode_set" + type_id: 0x2d161d5c + offset: 1344 +} +member { + id: 0x67ecafb3 + name: "eswitch_mode_get" + type_id: 0x2d11ffb5 + offset: 1152 +} +member { + id: 0x06f3214d + name: "eswitch_mode_set" + type_id: 0x2dae0c91 + offset: 1216 +} +member { id: 0xca94b2d4 name: "eth_tp_mdix" type_id: 0xb3e7bac9 @@ -81668,6 +83479,12 @@ member { offset: 112 } member { + id: 0x48630da5 + name: "ether_desc" + type_id: 0x3f387468 + offset: 1408 +} +member { id: 0xedf651c0 name: "ether_spec" type_id: 0xed0cdc47 @@ -81872,12 +83689,6 @@ member { type_id: 0x82107bd5 } member { - id: 0x0ad7602b - name: "event" - type_id: 0x98849204 - offset: 288 -} -member { id: 0x0add8422 name: "event" type_id: 0x9264e992 @@ -81924,6 +83735,12 @@ member { type_id: 0x8b7a3a75 } member { + id: 0x5138cba7 + name: "event_context" + type_id: 0x18bd6530 + offset: 2176 +} +member { id: 0x93a48b9c name: "event_count" type_id: 0x33756485 @@ -81959,6 +83776,12 @@ member { offset: 368 } member { + id: 0xd4abd33d + name: "event_fn" + type_id: 0x0f3dfb90 + offset: 2112 +} +member { id: 0x50510202 name: "event_handler" type_id: 0x2d7c118b @@ -82084,6 +83907,12 @@ member { offset: 1344 } member { + id: 0x56ec2c77 + name: "event_nr" + type_id: 0x74d29cf1 + offset: 3712 +} +member { id: 0x5d544312 name: "event_read_lock" type_id: 0xa7c362b0 @@ -82120,6 +83949,12 @@ member { offset: 1984 } member { + id: 0x8daeae65 + name: "event_type" + type_id: 0xc9082b19 + offset: 64 +} +member { id: 0x8dfc7230 name: "event_type" type_id: 0x9bd401b6 @@ -82174,6 +84009,12 @@ member { bitsize: 1 } member { + id: 0x9f773f87 + name: "eventq" + type_id: 0x03913382 + offset: 3520 +} +member { id: 0x110fb720 name: "events" type_id: 0xfa03c3cb @@ -82210,12 +84051,6 @@ member { offset: 640 } member { - id: 0x112c08c3 - name: "events" - type_id: 0xd9b5b8b6 - offset: 256 -} -member { id: 0x113c8788 name: "events" type_id: 0xc93e017b @@ -82245,11 +84080,6 @@ member { offset: 1032 } member { - id: 0x11a602db - name: "events" - type_id: 0x53bf0b06 -} -member { id: 0x11c1079f name: "events" type_id: 0x34bd88ad @@ -82285,17 +84115,6 @@ member { offset: 9984 } member { - id: 0x97ab0bd6 - name: "events_guest" - type_id: 0xc9082b19 - offset: 32 -} -member { - id: 0xa9fd6a40 - name: "events_host" - type_id: 0xc9082b19 -} -member { id: 0x5701ba28 name: "events_local_file" type_id: 0x0ee0f933 @@ -82350,12 +84169,6 @@ member { offset: 256 } member { - id: 0x89066d93 - name: "evt_page" - type_id: 0xedf277ba - offset: 128 -} -member { id: 0x6ad2f83c name: "evt_rx" type_id: 0xe62ebf07 @@ -82386,22 +84199,12 @@ member { offset: 256 } member { - id: 0xbba39a9a - name: "ex" - type_id: 0x00e0bdde -} -member { id: 0x9941f692 name: "exceed" type_id: 0x1a6854cd offset: 416 } member { - id: 0x6245278e - name: "exception" - type_id: 0xe62ebf07 -} -member { id: 0xc448ecdc name: "exception_arg" type_id: 0x18bd6530 @@ -82634,6 +84437,12 @@ member { offset: 1792 } member { + id: 0x0d2e2ebd + name: "exit" + type_id: 0x0e2271e2 + offset: 512 +} +member { id: 0x0d2e75d7 name: "exit" type_id: 0x0e72a800 @@ -82766,12 +84575,6 @@ member { offset: 2624 } member { - id: 0x4f84d1da - name: "exit_reason" - type_id: 0xe62ebf07 - offset: 64 -} -member { id: 0x4648209b name: "exit_request" type_id: 0x0c60f8c3 @@ -82820,10 +84623,10 @@ member { offset: 1024 } member { - id: 0x237f1104 - name: "exits" - type_id: 0x92233392 - offset: 7040 + id: 0x9633fcdf + name: "exp" + type_id: 0x6d7f5ff6 + offset: 136 } member { id: 0x964efc36 @@ -83005,6 +84808,12 @@ member { offset: 256 } member { + id: 0x91036748 + name: "expires" + type_id: 0x33756485 + offset: 704 +} +member { id: 0x91036cb7 name: "expires" type_id: 0x33756485 @@ -83063,6 +84872,11 @@ member { offset: 608 } member { + id: 0xbd3cd538 + name: "expkey" + type_id: 0x668e8237 +} +member { id: 0x01992270 name: "explicit_contract" type_id: 0x6d7f5ff6 @@ -83105,12 +84919,6 @@ member { offset: 640 } member { - id: 0xdf3a40d2 - name: "exponent" - type_id: 0x007e8ce4 - offset: 32 -} -member { id: 0x248e76cf name: "export" type_id: 0x1bfa1156 @@ -83387,11 +85195,6 @@ member { offset: 128 } member { - id: 0xbf324d0a - name: "extension_id" - type_id: 0x33756485 -} -member { id: 0x9478fd81 name: "extension_prog" type_id: 0x3382a638 @@ -83436,12 +85239,6 @@ member { bitsize: 1 } member { - id: 0x15ff4fe5 - name: "external_debug_state" - type_id: 0x590c6dd8 - offset: 19584 -} -member { id: 0x77b6c0c4 name: "external_facing" type_id: 0x4585663f @@ -83888,6 +85685,11 @@ member { offset: 672 } member { + id: 0xe37696ac + name: "faddr" + type_id: 0xe276adef +} +member { id: 0x0bad70a4 name: "fade_length" type_id: 0xe8034002 @@ -83911,11 +85713,6 @@ member { type_id: 0xe62ebf07 } member { - id: 0x73029e0c - name: "fail_entry" - type_id: 0x315223c4 -} -member { id: 0x75d852d0 name: "failcnt" type_id: 0x33756485 @@ -84009,6 +85806,12 @@ member { type_id: 0xc93e017b } member { + id: 0x9e9c9ad1 + name: "family" + type_id: 0xc93e017b + offset: 112 +} +member { id: 0x9ebdabf6 name: "family" type_id: 0xe8034002 @@ -84044,18 +85847,6 @@ member { type_id: 0xb3e7bac9 } member { - id: 0xe9c99bd1 - name: "far" - type_id: 0xedf277ba - offset: 64 -} -member { - id: 0x550ab6b9 - name: "far_el2" - type_id: 0x92233392 - offset: 64 -} -member { id: 0x0b6f4436 name: "fast_io" type_id: 0x6d7f5ff6 @@ -84067,6 +85858,18 @@ member { type_id: 0x6d7f5ff6 } member { + id: 0xcee88548 + name: "fast_ipv6_only" + type_id: 0x6d7f5ff6 + offset: 336 +} +member { + id: 0xfd693ce8 + name: "fast_rcv_saddr" + type_id: 0xe276adef + offset: 288 +} +member { id: 0xd0fd5f6f name: "fast_reconnect" type_id: 0x2ddf4eb6 @@ -84079,6 +85882,12 @@ member { offset: 704 } member { + id: 0x247ebe29 + name: "fast_sk_family" + type_id: 0xc93e017b + offset: 320 +} +member { id: 0xe96aa3ec name: "fast_start_pfn" type_id: 0x33756485 @@ -84103,6 +85912,12 @@ member { offset: 4992 } member { + id: 0x6398a0a9 + name: "fast_v6_rcv_saddr" + type_id: 0x6d25e07f + offset: 160 +} +member { id: 0xbe23cb67 name: "fastchannel_db_ring" type_id: 0x0e44aca7 @@ -84115,6 +85930,63 @@ member { offset: 192 } member { + id: 0xa42f5b5e + name: "fastopen_client_fail" + type_id: 0x295c7202 + offset: 13862 + bitsize: 2 +} +member { + id: 0x5d29f448 + name: "fastopen_connect" + type_id: 0x295c7202 + offset: 13859 + bitsize: 1 +} +member { + id: 0x72c8b468 + name: "fastopen_no_cookie" + type_id: 0x295c7202 + offset: 13860 + bitsize: 1 +} +member { + id: 0x349100e3 + name: "fastopen_req" + type_id: 0x04a9576c + offset: 18688 +} +member { + id: 0x7a4a99f1 + name: "fastopen_rsk" + type_id: 0x27847a9a + offset: 18752 +} +member { + id: 0x5aaa76bb + name: "fastopenq" + type_id: 0xce180920 + offset: 320 +} +member { + id: 0xa6e81f22 + name: "fastreuse" + type_id: 0x5ab350f8 + offset: 112 +} +member { + id: 0x244da0b8 + name: "fastreuseport" + type_id: 0x5ab350f8 + offset: 120 +} +member { + id: 0x73b4d4d5 + name: "fastuid" + type_id: 0xe90b32b7 + offset: 128 +} +member { id: 0xa3521312 name: "fasync" type_id: 0x25e44921 @@ -84168,12 +86040,6 @@ member { offset: 1280 } member { - id: 0x7b6a6e0c - name: "fault" - type_id: 0xe41fd2fe - offset: 15104 -} -member { id: 0x7bb750d9 name: "fault" type_id: 0x39290604 @@ -84215,12 +86081,6 @@ member { offset: 320 } member { - id: 0x559b32a7 - name: "fault_ipa" - type_id: 0xedf277ba - offset: 64 -} -member { id: 0x5a9c41ae name: "fault_param" type_id: 0x2974a3dd @@ -84532,12 +86392,6 @@ member { type_id: 0x98ac6d35 } member { - id: 0xb86505a9 - name: "fc" - type_id: 0xb3e7bac9 - offset: 80 -} -member { id: 0x0cf29fc2 name: "fc_delete_all_nh" type_id: 0x914dbfdc @@ -85159,6 +87013,11 @@ member { offset: 1664 } member { + id: 0xc504f94b + name: "features" + type_id: 0x1c898f28 +} +member { id: 0xc531247f name: "features" type_id: 0x295c7202 @@ -85207,6 +87066,12 @@ member { offset: 7744 } member { + id: 0xc58a570e + name: "features" + type_id: 0x92233392 + offset: 2496 +} +member { id: 0xc5a16345 name: "features" type_id: 0xb914bfab @@ -85219,12 +87084,6 @@ member { offset: 11712 } member { - id: 0xc5a16f87 - name: "features" - type_id: 0xb914bfab - offset: 67264 -} -member { id: 0xc5bc078c name: "features" type_id: 0xa4764ce0 @@ -85417,6 +87276,11 @@ member { offset: 256 } member { + id: 0x4e824c05 + name: "fh" + type_id: 0x982afc69 +} +member { id: 0x2db4ae9c name: "fh_list" type_id: 0xd3c80119 @@ -85818,10 +87682,10 @@ member { type_id: 0xe62ebf07 } member { - id: 0xfbd45c2d + id: 0xfbd4593e name: "fib_notify_on_flag_change" type_id: 0x295c7202 - offset: 1416 + offset: 1440 } member { id: 0x1c61123e @@ -86032,6 +87896,12 @@ member { offset: 352 } member { + id: 0x784a4b9b + name: "fields" + type_id: 0x19df035f + offset: 128 +} +member { id: 0x788054c9 name: "fields" type_id: 0xd3c80119 @@ -86055,6 +87925,12 @@ member { offset: 256 } member { + id: 0x361d56de + name: "fields_count" + type_id: 0x4585663f + offset: 192 +} +member { id: 0x53870b05 name: "fiemap" type_id: 0x2c74fe37 @@ -86628,12 +88504,6 @@ member { type_id: 0x09451098 } member { - id: 0x033b7284 - name: "filter_match" - type_id: 0x2c2ce191 - offset: 3328 -} -member { id: 0x033b7c37 name: "filter_match" type_id: 0x2c2ce191 @@ -86839,11 +88709,6 @@ member { offset: 32 } member { - id: 0x1f01199c - name: "first" - type_id: 0xe62ebf07 -} -member { id: 0x1f2e3f08 name: "first" type_id: 0xc9082b19 @@ -86956,6 +88821,12 @@ member { offset: 6720 } member { + id: 0xc8ee40be + name: "first_tx_mstamp" + type_id: 0x92233392 + offset: 15360 +} +member { id: 0x7fb051f9 name: "firstuse" type_id: 0xedf277ba @@ -87000,6 +88871,18 @@ member { offset: 8032 } member { + id: 0x7fd91e93 + name: "fixed_in_len" + type_id: 0xc9082b19 + offset: 2048 +} +member { + id: 0x09807f7a + name: "fixed_out_len" + type_id: 0xc9082b19 + offset: 2016 +} +member { id: 0x2899a5e8 name: "fixed_rate" type_id: 0x6d7f5ff6 @@ -87042,6 +88925,18 @@ member { offset: 832 } member { + id: 0x75129e6a + name: "fl" + type_id: 0x0bbb7f1b + offset: 64 +} +member { + id: 0x75577b27 + name: "fl" + type_id: 0x4e5da42b + offset: 448 +} +member { id: 0x0476553f name: "fl_blocked_member" type_id: 0xd3c80119 @@ -87124,6 +89019,12 @@ member { offset: 1408 } member { + id: 0x1f4e61c9 + name: "fl_net" + type_id: 0x0ca27481 + offset: 768 +} +member { id: 0xda5f8429 name: "fl_ops" type_id: 0x374e1049 @@ -87332,6 +89233,12 @@ member { offset: 128 } member { + id: 0x2d0fadac + name: "flags" + type_id: 0x6720d32f + offset: 1056 +} +member { id: 0x2d0fadff name: "flags" type_id: 0x6720d32f @@ -87923,12 +89830,6 @@ member { offset: 2112 } member { - id: 0x2d5bffb1 - name: "flags" - type_id: 0x33756485 - offset: 2880 -} -member { id: 0x2d5bffb9 name: "flags" type_id: 0x33756485 @@ -88034,16 +89935,16 @@ member { offset: 16 } member { - id: 0x2d808bd3 + id: 0x2d808bdf name: "flags" type_id: 0xe8034002 - offset: 112 + offset: 48 } member { - id: 0x2d808bdf + id: 0x2d808edc name: "flags" type_id: 0xe8034002 - offset: 48 + offset: 128 } member { id: 0x2d85715e @@ -88052,12 +89953,6 @@ member { offset: 448 } member { - id: 0x2d8572c8 - name: "flags" - type_id: 0xedf277ba - offset: 64 -} -member { id: 0x2d8573b6 name: "flags" type_id: 0xedf277ba @@ -88420,6 +90315,12 @@ member { offset: 128 } member { + id: 0x2dccf0c8 + name: "flags" + type_id: 0xa47a28f3 + offset: 16 +} +member { id: 0x2dd0356f name: "flags" type_id: 0xb8b86aa0 @@ -88503,12 +90404,6 @@ member { offset: 32 } member { - id: 0x2ddb7ced - name: "flags" - type_id: 0xb3f81878 - offset: 256 -} -member { id: 0x2de12263 name: "flags" type_id: 0x89ab06e3 @@ -88630,6 +90525,12 @@ member { offset: 1600 } member { + id: 0x5ef8d6d5 + name: "flash_update" + type_id: 0x2d16aeaf + offset: 1600 +} +member { id: 0x4ad49fc7 name: "flat" type_id: 0x0faae5b1 @@ -88666,6 +90567,11 @@ member { offset: 64 } member { + id: 0xdf2fd72b + name: "flavour" + type_id: 0x03e0374b +} +member { id: 0x9a18c6a2 name: "flc_flock" type_id: 0xd3c80119 @@ -88749,6 +90655,12 @@ member { offset: 416 } member { + id: 0x2ac20e0b + name: "flow_label" + type_id: 0xe276adef + offset: 384 +} +member { id: 0xe809ed63 name: "flow_limit" type_id: 0x16665d14 @@ -88908,10 +90820,10 @@ member { offset: 384 } member { - id: 0x7f822124 + id: 0x7f8229da name: "flush" type_id: 0x2c2c3c2e - offset: 50176 + offset: 50560 } member { id: 0x7f825805 @@ -89059,6 +90971,13 @@ member { bitsize: 1 } member { + id: 0xa1b9c8d2 + name: "flush_supported" + type_id: 0x6d7f5ff6 + offset: 576 + bitsize: 1 +} +member { id: 0x702e33bb name: "flush_to" type_id: 0xe8034002 @@ -89467,11 +91386,6 @@ member { offset: 19400 } member { - id: 0x53106073 - name: "force_pte_cb" - type_id: 0x7eadb465 -} -member { id: 0x9bf39d6f name: "force_reset" type_id: 0x6d7f5ff6 @@ -89737,12 +91651,6 @@ member { offset: 2432 } member { - id: 0x06effd42 - name: "fp_state" - type_id: 0x7e388552 - offset: 15360 -} -member { id: 0x13eb8d7b name: "fpcr" type_id: 0xe62ebf07 @@ -89905,6 +91813,12 @@ member { offset: 192 } member { + id: 0xce6a9610 + name: "frag_max_size" + type_id: 0xe8034002 + offset: 160 +} +member { id: 0x9fdfc4ad name: "frag_off" type_id: 0x7584e7da @@ -89923,6 +91837,12 @@ member { offset: 1792 } member { + id: 0x3c1c76af + name: "frag_size" + type_id: 0xe62ebf07 + offset: 416 +} +member { id: 0x3c33517f name: "frag_size" type_id: 0xc9082b19 @@ -90017,6 +91937,12 @@ member { offset: 192 } member { + id: 0xe25ba6f2 + name: "fragsize" + type_id: 0x4585663f + offset: 128 +} +member { id: 0x16107977 name: "frame" type_id: 0x6720d32f @@ -90391,6 +92317,11 @@ member { offset: 320 } member { + id: 0xfeafbaf6 + name: "free" + type_id: 0x0db22504 +} +member { id: 0xfeafc015 name: "free" type_id: 0x0dcbeae6 @@ -90421,6 +92352,12 @@ member { offset: 1600 } member { + id: 0x6458e4c6 + name: "free_buffer_wait" + type_id: 0x03913382 + offset: 1536 +} +member { id: 0xc583ca0b name: "free_buffers" type_id: 0xeb923a9b @@ -90445,6 +92382,12 @@ member { offset: 768 } member { + id: 0xd988303d + name: "free_container_ctx" + type_id: 0x0faaab57 + offset: 640 +} +member { id: 0x3e10e356 name: "free_context" type_id: 0x23826b7b @@ -90457,6 +92400,12 @@ member { offset: 64 } member { + id: 0x77a0ad98 + name: "free_dcbaa" + type_id: 0x0f9e7cc3 + offset: 256 +} +member { id: 0xcd8f3d51 name: "free_dev" type_id: 0x0cecd312 @@ -90529,12 +92478,6 @@ member { offset: 832 } member { - id: 0x3e423a64 - name: "free_index" - type_id: 0xc9082b19 - offset: 160 -} -member { id: 0x6f43c6d6 name: "free_inode" type_id: 0x0f0e74c9 @@ -90627,12 +92570,6 @@ member { offset: 384 } member { - id: 0xfc81ed63 - name: "free_notifier" - type_id: 0x0c0e84bd - offset: 576 -} -member { id: 0x79d71685 name: "free_on_exit" type_id: 0x6d7f5ff6 @@ -90651,12 +92588,6 @@ member { offset: 256 } member { - id: 0xef540e05 - name: "free_pages_exact" - type_id: 0x0fc9cef8 - offset: 128 -} -member { id: 0x54942a8c name: "free_pfn" type_id: 0x33756485 @@ -90712,6 +92643,12 @@ member { offset: 448 } member { + id: 0x3965c2a5 + name: "free_transfer_ring" + type_id: 0x0fbe0b29 + offset: 384 +} +member { id: 0x5584ef29 name: "free_upper_chunks" type_id: 0x6720d32f @@ -90735,6 +92672,13 @@ member { offset: 64 } member { + id: 0x0ccb8adb + name: "freebind" + type_id: 0xb3e7bac9 + offset: 7106 + bitsize: 1 +} +member { id: 0xedafcd8e name: "freehigh" type_id: 0x21d43a7b @@ -91176,6 +93120,13 @@ member { offset: 384 } member { + id: 0xdaf769b4 + name: "frto" + type_id: 0x295c7202 + offset: 13871 + bitsize: 1 +} +member { id: 0x9442b15a name: "fs" type_id: 0x9f206b88 @@ -91467,10 +93418,9 @@ member { offset: 712 } member { - id: 0xf667d80f + id: 0xf667dcee name: "fullness_list" type_id: 0xb8bf135c - offset: 64 } member { id: 0xfeb50ea0 @@ -91648,6 +93598,12 @@ member { offset: 192 } member { + id: 0xaab5e3db + name: "func_desc" + type_id: 0x3beb3e50 + offset: 1216 +} +member { id: 0x74d098cf name: "func_id" type_id: 0xc9082b19 @@ -91861,12 +93817,6 @@ member { type_id: 0xabc38a13 } member { - id: 0xad24c471 - name: "function_id" - type_id: 0x33756485 - offset: 64 -} -member { id: 0x364a66b1 name: "function_num_map" type_id: 0x33756485 @@ -91926,6 +93876,11 @@ member { offset: 96 } member { + id: 0x91e86fed + name: "fw" + type_id: 0x33011141 +} +member { id: 0x51f9c40d name: "fw_download" type_id: 0x2d816bb9 @@ -91938,10 +93893,10 @@ member { offset: 7496 } member { - id: 0xed3cf293 + id: 0xed3cf7e2 name: "fw_info" type_id: 0x3e10b518 - offset: 31168 + offset: 31552 } member { id: 0x6f04a1ea @@ -92203,6 +94158,12 @@ member { offset: 1728 } member { + id: 0x1875f880 + name: "gadget" + type_id: 0x25653b02 + offset: 192 +} +member { id: 0x2c80bff4 name: "gadget_driver" type_id: 0xcffecd3e @@ -92514,11 +94475,6 @@ member { offset: 1984 } member { - id: 0x694cfe41 - name: "generation" - type_id: 0x92233392 -} -member { id: 0x699b5cf5 name: "generation" type_id: 0x4585663f @@ -92541,14 +94497,16 @@ member { type_id: 0x09dc021e } member { - id: 0x42aa8b1f + id: 0x4257f83b name: "generic" - type_id: 0x9008e757 + type_id: 0x6d7f5ff6 + offset: 80 } member { - id: 0x42be7fea + id: 0x4257f846 name: "generic" - type_id: 0x84fc1211 + type_id: 0x6d7f5ff6 + offset: 64 } member { id: 0x42d6db26 @@ -92640,6 +94598,12 @@ member { offset: 2368 } member { + id: 0x3a26f97c + name: "geometry" + type_id: 0x4db3b057 + offset: 2240 +} +member { id: 0x3a570a9f name: "geometry" type_id: 0x3c416994 @@ -92775,12 +94739,6 @@ member { offset: 320 } member { - id: 0xbe7a98dd - name: "get_attr" - type_id: 0x2ee94408 - offset: 384 -} -member { id: 0xd9eaaef2 name: "get_boot_addr" type_id: 0x1dc9ac6f @@ -92876,10 +94834,10 @@ member { offset: 768 } member { - id: 0x483f37d6 + id: 0x483f3007 name: "get_codec_config_data" type_id: 0x2c9f2c07 - offset: 51008 + offset: 51392 } member { id: 0xc0137b3b @@ -92936,10 +94894,10 @@ member { offset: 448 } member { - id: 0x6ae7b18d + id: 0x6ae7b5b9 name: "get_data_path_id" type_id: 0x2c0a55f9 - offset: 50944 + offset: 51328 } member { id: 0x6b09f785 @@ -93092,10 +95050,10 @@ member { offset: 1600 } member { - id: 0x09fd4226 - name: "get_event_idx" - type_id: 0x2c3b9241 - offset: 2752 + id: 0xd77c9cbe + name: "get_event" + type_id: 0x2d3dc4f9 + offset: 256 } member { id: 0xad0b27c9 @@ -93272,12 +95230,24 @@ member { offset: 128 } member { + id: 0x1d9b9b9d + name: "get_info" + type_id: 0x2e735a06 + offset: 320 +} +member { id: 0x1d9baad0 name: "get_info" type_id: 0x2e43a9f5 offset: 640 } member { + id: 0xbaa156f0 + name: "get_info_size" + type_id: 0x2cd9dff0 + offset: 384 +} +member { id: 0x8e932e8e name: "get_ino_and_lblk_bits" type_id: 0x0ccaa6cc @@ -93290,12 +95260,6 @@ member { offset: 576 } member { - id: 0x682b5a38 - name: "get_input_level" - type_id: 0x334b2254 - offset: 64 -} -member { id: 0x69c08ebc name: "get_intermediate" type_id: 0x397a812c @@ -93617,10 +95581,10 @@ member { offset: 320 } member { - id: 0xcf22b6e3 + id: 0xcf06c106 name: "get_page" - type_id: 0x0f3dfb90 - offset: 192 + type_id: 0x2b4b15b4 + offset: 128 } member { id: 0xacf61961 @@ -94300,6 +96264,12 @@ member { offset: 640 } member { + id: 0xd9ad3ae7 + name: "getsockopt" + type_id: 0x2c451522 + offset: 512 +} +member { id: 0xd9adeb4d name: "getsockopt" type_id: 0x2c975498 @@ -94336,24 +96306,12 @@ member { offset: 1024 } member { - id: 0xc25cb27c - name: "gfn_tree" - type_id: 0xeb923a9b - offset: 256 -} -member { id: 0x8b338b1d name: "gfp" type_id: 0xf1a6dfed offset: 320 } member { - id: 0xde99678b - name: "gfp_custom" - type_id: 0xf1a6dfed - offset: 64 -} -member { id: 0x81a9f110 name: "gfp_flags" type_id: 0xf1a6dfed @@ -94383,6 +96341,12 @@ member { type_id: 0xf1a6dfed } member { + id: 0xa4b05168 + name: "gfp_mask" + type_id: 0xe0785a59 + offset: 192 +} +member { id: 0xa4b05766 name: "gfp_mask" type_id: 0xe0785a59 @@ -94395,12 +96359,6 @@ member { offset: 16 } member { - id: 0x8e40fa3f - name: "gfp_zero" - type_id: 0xf1a6dfed - offset: 32 -} -member { id: 0x3b2054a4 name: "gicd_typer" type_id: 0xc9082b19 @@ -94466,6 +96424,12 @@ member { offset: 576 } member { + id: 0x55f132cc + name: "global" + type_id: 0x6d7f5ff6 + offset: 224 +} +member { id: 0x9e65d647 name: "global" type_id: 0x6d7f5ff6 @@ -94497,6 +96461,12 @@ member { offset: 7360 } member { + id: 0xc81f8729 + name: "global_list" + type_id: 0xd3c80119 + offset: 320 +} +member { id: 0x523f440f name: "global_node" type_id: 0xd3c80119 @@ -94695,23 +96665,6 @@ member { offset: 64 } member { - id: 0xc1d9a180 - name: "gpa" - type_id: 0x1b4ba19a -} -member { - id: 0xca660682 - name: "gpc_list" - type_id: 0xd3c80119 - offset: 18560 -} -member { - id: 0x46e189ff - name: "gpc_lock" - type_id: 0xf313e71a - offset: 18496 -} -member { id: 0x4298e7ea name: "gpd_list_node" type_id: 0xd3c80119 @@ -94802,11 +96755,6 @@ member { offset: 2688 } member { - id: 0x2bc76984 - name: "gprs" - type_id: 0x6fb0151f -} -member { id: 0x1ef489e6 name: "grab" type_id: 0x39c3bcd2 @@ -94819,6 +96767,12 @@ member { offset: 128 } member { + id: 0x62d28eb5 + name: "graceful_period" + type_id: 0x92233392 + offset: 832 +} +member { id: 0x0277381e name: "graft" type_id: 0x2f294863 @@ -94999,12 +96953,6 @@ member { type_id: 0xe145bd36 } member { - id: 0xd37422b2 - name: "group" - type_id: 0xe62ebf07 - offset: 32 -} -member { id: 0xd37a0cc8 name: "group" type_id: 0xe8034002 @@ -95046,12 +96994,6 @@ member { offset: 256 } member { - id: 0xd3bb5c92 - name: "group" - type_id: 0x295c7202 - offset: 696 -} -member { id: 0xd3be02c5 name: "group" type_id: 0x2c0aa9ee @@ -95064,12 +97006,6 @@ member { offset: 2400 } member { - id: 0xd3ff70d7 - name: "group" - type_id: 0x6d7f5ff6 - offset: 16 -} -member { id: 0x26e58ea7 name: "group_caps" type_id: 0x6720d32f @@ -95331,6 +97267,18 @@ member { offset: 2240 } member { + id: 0x085eba8a + name: "gso_segs" + type_id: 0x914dbfdc + offset: 12304 +} +member { + id: 0xeaa4b2c9 + name: "gso_size" + type_id: 0xe8034002 + offset: 304 +} +member { id: 0xcf0db7be name: "gso_skb" type_id: 0x578f9c2b @@ -95391,18 +97339,6 @@ member { bitsize: 1 } member { - id: 0xd014eabd - name: "guest_debug" - type_id: 0x33756485 - offset: 512 -} -member { - id: 0x57b4f0b1 - name: "guest_debug_preserved" - type_id: 0x2d873b56 - offset: 66752 -} -member { id: 0x3cad5ec0 name: "guid" type_id: 0xedf277ba @@ -95539,71 +97475,6 @@ member { offset: 1024 } member { - id: 0x0e3de808 - name: "halt_attempted_poll" - type_id: 0x92233392 - offset: 64 -} -member { - id: 0xd7979ded - name: "halt_poll_fail_hist" - type_id: 0x70444415 - offset: 2496 -} -member { - id: 0x5e1d7f8d - name: "halt_poll_fail_ns" - type_id: 0x92233392 - offset: 320 -} -member { - id: 0x5f0d9541 - name: "halt_poll_invalid" - type_id: 0x92233392 - offset: 128 -} -member { - id: 0xcffef03f - name: "halt_poll_ns" - type_id: 0x4585663f - offset: 1280 -} -member { - id: 0x47baacc5 - name: "halt_poll_success_hist" - type_id: 0x70444415 - offset: 448 -} -member { - id: 0xdc094b5c - name: "halt_poll_success_ns" - type_id: 0x92233392 - offset: 256 -} -member { - id: 0x0946dc8b - name: "halt_successful_poll" - type_id: 0x92233392 -} -member { - id: 0x2665d054 - name: "halt_wait_hist" - type_id: 0x70444415 - offset: 4544 -} -member { - id: 0xa1ad1dfd - name: "halt_wait_ns" - type_id: 0x92233392 - offset: 384 -} -member { - id: 0xe9b25d2a - name: "halt_wakeup" - type_id: 0x92233392 - offset: 192 -} -member { id: 0xb805b270 name: "handle" type_id: 0xe62ebf07 @@ -95657,11 +97528,6 @@ member { offset: 7424 } member { - id: 0xb8f5134f - name: "handle" - type_id: 0x16864222 -} -member { id: 0xf4a652d3 name: "handle_break" type_id: 0x0ebd5484 @@ -95715,12 +97581,6 @@ member { offset: 960 } member { - id: 0x72a25545 - name: "handle_irq" - type_id: 0x0110ab48 - offset: 2560 -} -member { id: 0x33f92e8a name: "handle_kick" type_id: 0xb61e350c @@ -95992,16 +97852,6 @@ member { type_id: 0xe62ebf07 } member { - id: 0xa4a87cc7 - name: "hardware_entry_failure_reason" - type_id: 0xedf277ba -} -member { - id: 0x6364e5fc - name: "hardware_exit_reason" - type_id: 0xedf277ba -} -member { id: 0x7a882c59 name: "hardware_test" type_id: 0x2c494e22 @@ -96033,12 +97883,6 @@ member { offset: 856 } member { - id: 0x5d4925a5 - name: "has_attr" - type_id: 0x2ee94408 - offset: 448 -} -member { id: 0x698e14ba name: "has_blocked_load" type_id: 0x4585663f @@ -96172,12 +98016,6 @@ member { offset: 64 } member { - id: 0x557bdab2 - name: "has_its" - type_id: 0x6d7f5ff6 - offset: 832 -} -member { id: 0xe114c970 name: "has_ld_abs" type_id: 0x6d7f5ff6 @@ -96671,16 +98509,6 @@ member { offset: 384 } member { - id: 0xd9db4be5 - name: "hcall" - type_id: 0x033c2bb8 -} -member { - id: 0xd9dce494 - name: "hcall" - type_id: 0x04935a3e -} -member { id: 0x4f00ad96 name: "hcc_params" type_id: 0xe62ebf07 @@ -96794,12 +98622,6 @@ member { offset: 128 } member { - id: 0xc4593e51 - name: "hcr_el2" - type_id: 0x92233392 - offset: 14848 -} -member { id: 0xd39b1380 name: "hcs_params" type_id: 0xe62ebf07 @@ -97046,6 +98868,19 @@ member { offset: 480 } member { + id: 0x3cd68edd + name: "hdrincl" + type_id: 0xb3e7bac9 + offset: 7107 + bitsize: 1 +} +member { + id: 0xd608b573 + name: "hdrlen" + type_id: 0xb3e7bac9 + offset: 8 +} +member { id: 0xd6dc741c name: "hdrlen" type_id: 0x6720d32f @@ -97200,6 +99035,11 @@ member { offset: 64 } member { + id: 0xb56701d9 + name: "head" + type_id: 0x3db8d8c8 +} +member { id: 0xb568e1b3 name: "head" type_id: 0x3258b271 @@ -97325,11 +99165,6 @@ member { offset: 256 } member { - id: 0xb5e76888 - name: "head" - type_id: 0xbdd18903 -} -member { id: 0x61e179fc name: "head_file" type_id: 0xd3c80119 @@ -97421,6 +99256,18 @@ member { offset: 480 } member { + id: 0x7a0a7faf + name: "header_len" + type_id: 0xc9082b19 + offset: 1952 +} +member { + id: 0x7a86fcdb + name: "header_len" + type_id: 0x4585663f + offset: 864 +} +member { id: 0x7aa45c87 name: "header_len" type_id: 0x6720d32f @@ -97450,6 +99297,17 @@ member { type_id: 0x0524ca5a } member { + id: 0x614c39f2 + name: "headers" + type_id: 0x0f657fc1 +} +member { + id: 0x958f08da + name: "headers_count" + type_id: 0x4585663f + offset: 64 +} +member { id: 0x3e17b5ef name: "headroom" type_id: 0xe8034002 @@ -97497,6 +99355,12 @@ member { offset: 896 } member { + id: 0x768a691a + name: "health_state" + type_id: 0x295c7202 + offset: 912 +} +member { id: 0x049198e2 name: "heap" type_id: 0x0de3ba50 @@ -97734,6 +99598,12 @@ member { offset: 64 } member { + id: 0x39a33a5e + name: "hi" + type_id: 0xe8034002 + offset: 16 +} +member { id: 0xf5cc8294 name: "hibern8_exit_cnt" type_id: 0xc9082b19 @@ -97866,6 +99736,12 @@ member { offset: 3712 } member { + id: 0x60f3e5b5 + name: "high_seq" + type_id: 0xc9082b19 + offset: 17856 +} +member { id: 0x15795ada name: "high_speed" type_id: 0x4585663f @@ -97902,12 +99778,24 @@ member { offset: 12992 } member { + id: 0x6da3106a + name: "highest_sack" + type_id: 0x054f691a + offset: 17728 +} +member { id: 0x2ca966e1 name: "highest_zoneidx" type_id: 0xc5d9d969 offset: 864 } member { + id: 0x6da33f40 + name: "highs" + type_id: 0x3ebcd127 + offset: 1728 +} +member { id: 0x06f8b424 name: "highspeed" type_id: 0x295c7202 @@ -98103,6 +99991,12 @@ member { offset: 1152 } member { + id: 0xffe3e6f3 + name: "hold_count" + type_id: 0x4585663f + offset: 640 +} +member { id: 0x72254387 name: "hold_queue" type_id: 0x578f9c2b @@ -98138,6 +100032,12 @@ member { offset: 6976 } member { + id: 0x1f2404cf + name: "holders" + type_id: 0x74d29cf1 + offset: 1536 +} +member { id: 0xf82bbc03 name: "holders_dir" type_id: 0x23f09c34 @@ -98221,12 +100121,38 @@ member { offset: 1152 } member { + id: 0x46cd5abc + name: "hop_limit" + type_id: 0x007e8ce4 + offset: 455 + bitsize: 9 +} +member { id: 0x9f4d6a46 name: "hop_limit" type_id: 0x0faae5b1 offset: 32 } member { + id: 0x9f6b950b + name: "hop_limit" + type_id: 0x295c7202 + offset: 64 +} +member { + id: 0x111085fe + name: "hopopt" + type_id: 0x33642722 + offset: 128 +} +member { + id: 0xede7771d + name: "hopopts" + type_id: 0xe8034002 + offset: 6 + bitsize: 1 +} +member { id: 0xe90d2c02 name: "hops" type_id: 0x30464b44 @@ -98317,12 +100243,6 @@ member { offset: 64 } member { - id: 0x2edd8c13 - name: "host_debug_state" - type_id: 0x385d66bc - offset: 23744 -} -member { id: 0x31ca0bed name: "host_deinit" type_id: 0x0cefb0c8 @@ -98347,12 +100267,6 @@ member { offset: 3488 } member { - id: 0x909d979f - name: "host_fpsimd_state" - type_id: 0x3ef473d4 - offset: 23680 -} -member { id: 0xda2e02e2 name: "host_init" type_id: 0x2fa99c67 @@ -98364,18 +100278,18 @@ member { offset: 10112 } member { - id: 0xc2defa03 - name: "host_irq" - type_id: 0x4585663f - offset: 608 -} -member { id: 0xfb8e63cd name: "host_lock" type_id: 0x3654c061 offset: 448 } member { + id: 0x4af00a54 + name: "host_mac" + type_id: 0xabf64f28 + offset: 1496 +} +member { id: 0x0b5b9055 name: "host_no" type_id: 0x4585663f @@ -98476,18 +100390,6 @@ member { bitsize: 1 } member { - id: 0xd7232081 - name: "host_timer_irq" - type_id: 0xc9082b19 - offset: 736 -} -member { - id: 0x0b3a6d95 - name: "host_timer_irq_flags" - type_id: 0xc9082b19 - offset: 768 -} -member { id: 0x3f896917 name: "host_unshare_hyp" type_id: 0x24d23255 @@ -98651,12 +100553,6 @@ member { offset: 1408 } member { - id: 0xd6cec4c2 - name: "hpfar_el2" - type_id: 0x92233392 - offset: 128 -} -member { id: 0xa2d9b50c name: "hpi" type_id: 0x6d7f5ff6 @@ -98728,12 +100624,6 @@ member { offset: 832 } member { - id: 0x8a1ddc22 - name: "hrtimer" - type_id: 0xcd7704bf - offset: 128 -} -member { id: 0x7e4bc277 name: "hrtimer_active" type_id: 0x4585663f @@ -98918,17 +100808,6 @@ member { offset: 14016 } member { - id: 0x8c045ea7 - name: "hsr" - type_id: 0xe62ebf07 -} -member { - id: 0x440037d1 - name: "hsr_high" - type_id: 0xe62ebf07 - offset: 32 -} -member { id: 0x06e8b9a4 name: "hsub" type_id: 0x295c7202 @@ -99141,35 +101020,12 @@ member { offset: 256 } member { - id: 0x130ace31 - name: "hva_tree" - type_id: 0xd0f3b5bf - offset: 128 -} -member { - id: 0x65c703ea - name: "hvc_exit_stat" - type_id: 0x92233392 - offset: 6656 -} -member { id: 0x97368b37 name: "hw" type_id: 0xf181ace2 offset: 2816 } member { - id: 0x97aa71b6 - name: "hw" - type_id: 0x6d7f5ff6 - offset: 512 -} -member { - id: 0x97c7b08c - name: "hw" - type_id: 0x00b57da4 -} -member { id: 0x97cde891 name: "hw" type_id: 0x0ae4a2c7 @@ -99306,10 +101162,10 @@ member { offset: 2112 } member { - id: 0xa65cd211 + id: 0xa65cd12c name: "hw_error" type_id: 0x0f434cf3 - offset: 50496 + offset: 50880 } member { id: 0x0d3b5bd1 @@ -99318,12 +101174,6 @@ member { offset: 6672 } member { - id: 0x2d3aa998 - name: "hw_events" - type_id: 0x1d65d221 - offset: 3648 -} -member { id: 0x912b066b name: "hw_features" type_id: 0x2584a3b9 @@ -99372,10 +101222,10 @@ member { offset: 32 } member { - id: 0x37178a6f + id: 0x371784a6 name: "hw_info" type_id: 0x3e10b518 - offset: 31104 + offset: 31488 } member { id: 0xec485b4b @@ -99397,12 +101247,6 @@ member { bitsize: 1 } member { - id: 0xf34e08bb - name: "hw_mmu" - type_id: 0x38e86333 - offset: 14784 -} -member { id: 0xcc4e42e2 name: "hw_name" type_id: 0x3e10b518 @@ -99641,12 +101485,6 @@ member { offset: 1024 } member { - id: 0xb62bb539 - name: "hwintid" - type_id: 0xc9082b19 - offset: 576 -} -member { id: 0xeac4d9d6 name: "hwirq" type_id: 0x33756485 @@ -99748,16 +101586,6 @@ member { offset: 1920 } member { - id: 0x32e7dee3 - name: "hypercall" - type_id: 0x2c32891d -} -member { - id: 0x8a1c8492 - name: "hyperv" - type_id: 0x7ff97877 -} -member { id: 0xaf8a45d4 name: "hysteresis" type_id: 0x6720d32f @@ -100348,11 +102176,6 @@ member { offset: 192 } member { - id: 0x83618e44 - name: "ia_bits" - type_id: 0xc9082b19 -} -member { id: 0x7af3be67 name: "ia_ctime" type_id: 0x399c459b @@ -100464,6 +102287,11 @@ member { bitsize: 1 } member { + id: 0xe50fbded + name: "ib_net" + type_id: 0xb335d16f +} +member { id: 0xe8f0d6c1 name: "ib_window_map" type_id: 0x064d6086 @@ -100497,12 +102325,6 @@ member { type_id: 0x26eb875a } member { - id: 0x27f5e987 - name: "icache_inval_pou" - type_id: 0x0fc9cef8 - offset: 576 -} -member { id: 0x8b721752 name: "icanon" type_id: 0x4585663f @@ -100639,11 +102461,6 @@ member { offset: 1664 } member { - id: 0xa6e46395 - name: "icptcode" - type_id: 0xb3e7bac9 -} -member { id: 0x9263012c name: "icq" type_id: 0x1e93567a @@ -100696,6 +102513,201 @@ member { offset: 192 } member { + id: 0x2a778fa0 + name: "icsk_accept_queue" + type_id: 0xf05a506e + offset: 8704 +} +member { + id: 0xc36d8395 + name: "icsk_ack" + type_id: 0x260445a5 + offset: 11008 +} +member { + id: 0xeb6a5fa1 + name: "icsk_af_ops" + type_id: 0x384d1346 + offset: 10624 +} +member { + id: 0xb27d04f5 + name: "icsk_backoff" + type_id: 0xb3e7bac9 + offset: 10968 +} +member { + id: 0xf1a367c5 + name: "icsk_bind2_hash" + type_id: 0x0a67a4e3 + offset: 9408 +} +member { + id: 0xa53e6076 + name: "icsk_bind_hash" + type_id: 0x33086ec3 + offset: 9344 +} +member { + id: 0x8e756dfb + name: "icsk_ca_dst_locked" + type_id: 0xb3e7bac9 + offset: 10951 + bitsize: 1 +} +member { + id: 0x9b3f0555 + name: "icsk_ca_initialized" + type_id: 0xb3e7bac9 + offset: 10949 + bitsize: 1 +} +member { + id: 0x2b917283 + name: "icsk_ca_ops" + type_id: 0x30ba0612 + offset: 10560 +} +member { + id: 0xa86967ec + name: "icsk_ca_priv" + type_id: 0x62a5e001 + offset: 11456 +} +member { + id: 0x5c570222 + name: "icsk_ca_setsockopt" + type_id: 0xb3e7bac9 + offset: 10950 + bitsize: 1 +} +member { + id: 0x8adfff2f + name: "icsk_ca_state" + type_id: 0xb3e7bac9 + offset: 10944 + bitsize: 5 +} +member { + id: 0x411180b7 + name: "icsk_clean_acked" + type_id: 0x0fab66ce + offset: 10816 +} +member { + id: 0xcfd1f1ed + name: "icsk_delack_max" + type_id: 0xe62ebf07 + offset: 10496 +} +member { + id: 0xbf3d6991 + name: "icsk_delack_timer" + type_id: 0xd298e888 + offset: 9984 +} +member { + id: 0xd7cc2503 + name: "icsk_ext_hdr_len" + type_id: 0xe8034002 + offset: 10992 +} +member { + id: 0x9bd0d4a0 + name: "icsk_inet" + type_id: 0xd2a4529d +} +member { + id: 0xc75c6970 + name: "icsk_mtup" + type_id: 0x249bcdf3 + offset: 11200 +} +member { + id: 0xfd5174f1 + name: "icsk_pending" + type_id: 0xb3e7bac9 + offset: 10960 +} +member { + id: 0x9796567d + name: "icsk_pmtu_cookie" + type_id: 0xe62ebf07 + offset: 10528 +} +member { + id: 0x2d061585 + name: "icsk_probes_out" + type_id: 0xb3e7bac9 + offset: 10984 +} +member { + id: 0xf4f5c9e8 + name: "icsk_probes_tstamp" + type_id: 0xc9082b19 + offset: 11328 +} +member { + id: 0x3adf52b3 + name: "icsk_retransmit_timer" + type_id: 0xd298e888 + offset: 9536 +} +member { + id: 0x6bd77d33 + name: "icsk_retransmits" + type_id: 0xb3e7bac9 + offset: 10952 +} +member { + id: 0xaa84a388 + name: "icsk_rto" + type_id: 0xe62ebf07 + offset: 10432 +} +member { + id: 0x7c9184fd + name: "icsk_rto_min" + type_id: 0xe62ebf07 + offset: 10464 +} +member { + id: 0x2446b1e6 + name: "icsk_syn_retries" + type_id: 0xb3e7bac9 + offset: 10976 +} +member { + id: 0x5392fe03 + name: "icsk_sync_mss" + type_id: 0x383bad14 + offset: 10880 +} +member { + id: 0xe54062f3 + name: "icsk_timeout" + type_id: 0x33756485 + offset: 9472 +} +member { + id: 0x69ab5d87 + name: "icsk_ulp_data" + type_id: 0x18bd6530 + offset: 10752 +} +member { + id: 0x50d22351 + name: "icsk_ulp_ops" + type_id: 0x378dbf55 + offset: 10688 +} +member { + id: 0x973a1269 + name: "icsk_user_timeout" + type_id: 0xc9082b19 + offset: 11360 +} +member { id: 0xa75f3275 name: "icv_len" type_id: 0x914dbfdc @@ -101151,6 +103163,18 @@ member { type_id: 0x914dbfdc } member { + id: 0xccbe65b2 + name: "id" + type_id: 0x914dbfdc + offset: 80 +} +member { + id: 0xccbe65cf + name: "id" + type_id: 0x914dbfdc + offset: 64 +} +member { id: 0xccc14505 name: "id" type_id: 0xee699492 @@ -101371,12 +103395,6 @@ member { offset: 12864 } member { - id: 0xba6f54b9 - name: "id_hash" - type_id: 0x394dcf37 - offset: 320 -} -member { id: 0x05495988 name: "id_header" type_id: 0xc9082b19 @@ -101566,12 +103584,6 @@ member { offset: 9088 } member { - id: 0x50f15a4b - name: "idai" - type_id: 0x6d7f5ff6 - offset: 32 -} -member { id: 0xc093344b name: "ident" type_id: 0xb3e7bac9 @@ -101631,10 +103643,10 @@ member { offset: 64 } member { - id: 0x115fafab + id: 0x115fa561 name: "identity_resolving_keys" type_id: 0xd3c80119 - offset: 29568 + offset: 29952 } member { id: 0x0c06b72f @@ -101923,11 +103935,6 @@ member { offset: 16 } member { - id: 0x3caea455 - name: "idx" - type_id: 0x295c7202 -} -member { id: 0x3cc2707a name: "idx" type_id: 0x4585663f @@ -102044,12 +104051,6 @@ member { bitsize: 1 } member { - id: 0x7eaf49aa - name: "if_flag" - type_id: 0xb3e7bac9 - offset: 104 -} -member { id: 0x7d1e2280 name: "if_flags" type_id: 0xe62ebf07 @@ -102255,6 +104256,35 @@ member { offset: 448 } member { + id: 0x49aaa6b3 + name: "ifi_change" + type_id: 0x4585663f + offset: 96 +} +member { + id: 0xccfc5cc3 + name: "ifi_family" + type_id: 0x5d8155a5 +} +member { + id: 0xe5765ac4 + name: "ifi_flags" + type_id: 0x4585663f + offset: 64 +} +member { + id: 0x95c94564 + name: "ifi_index" + type_id: 0x6720d32f + offset: 32 +} +member { + id: 0x58fe8d2e + name: "ifi_type" + type_id: 0xc93e017b + offset: 16 +} +member { id: 0x9056806a name: "ifindex" type_id: 0x6720d32f @@ -102284,12 +104314,6 @@ member { offset: 2176 } member { - id: 0x50f909b7 - name: "iflags" - type_id: 0x295c7202 - offset: 15400 -} -member { id: 0x102491dd name: "ifname" type_id: 0x0483e6f8 @@ -102302,6 +104326,12 @@ member { offset: 1376 } member { + id: 0x41e064b8 + name: "ifname_set" + type_id: 0x6d7f5ff6 + offset: 1488 +} +member { id: 0xe955f32e name: "ifr_ifrn" type_id: 0x75b57623 @@ -102600,6 +104630,11 @@ member { offset: 320 } member { + id: 0xe8bad6da + name: "iif" + type_id: 0x6720d32f +} +member { id: 0xaada75c0 name: "iifindex" type_id: 0x6720d32f @@ -102702,10 +104737,22 @@ member { bitsize: 1 } member { - id: 0xb85c9514 - name: "immediate_exit" - type_id: 0xb3e7bac9 - offset: 8 + id: 0x63660872 + name: "immutable_target" + type_id: 0x3df0a7d3 + offset: 1600 +} +member { + id: 0xfa2d1749 + name: "immutable_target_type" + type_id: 0x3622fa2a + offset: 1856 +} +member { + id: 0xfa2d1f78 + name: "immutable_target_type" + type_id: 0x3622fa2a + offset: 1664 } member { id: 0x0239d915 @@ -102720,12 +104767,6 @@ member { offset: 64 } member { - id: 0x7a0e7466 - name: "implementation_rev" - type_id: 0xc9082b19 - offset: 64 -} -member { id: 0xf089858f name: "implicit_fb" type_id: 0x6d7f5ff6 @@ -102821,6 +104862,12 @@ member { offset: 64 } member { + id: 0x5c6f2950 + name: "in" + type_id: 0xc440583a + offset: 256 +} +member { id: 0x5c99cb61 name: "in" type_id: 0x32a623d7 @@ -102928,6 +104975,12 @@ member { bitsize: 1 } member { + id: 0x37e14132 + name: "in_ep" + type_id: 0x0e2680c2 + offset: 1792 +} +member { id: 0xe760cbcd name: "in_epnum" type_id: 0x4585663f @@ -103004,11 +105057,6 @@ member { bitsize: 1 } member { - id: 0xd935af97 - name: "in_kernel" - type_id: 0x6d7f5ff6 -} -member { id: 0xb2ce8b46 name: "in_len" type_id: 0xe62ebf07 @@ -103047,11 +105095,6 @@ member { type_id: 0xa54936d5 } member { - id: 0x3c4c15e8 - name: "in_spin_loop" - type_id: 0x6d7f5ff6 -} -member { id: 0xd8c3755f name: "in_tx" type_id: 0xedf277ba @@ -103259,6 +105302,12 @@ member { type_id: 0x5fb59157 } member { + id: 0xad7a9230 + name: "index" + type_id: 0x439cf6d8 + offset: 640 +} +member { id: 0xad7c80e2 name: "index" type_id: 0x4585663f @@ -103319,12 +105368,6 @@ member { offset: 320 } member { - id: 0xad7c8a98 - name: "index" - type_id: 0x4585663f - offset: 672 -} -member { id: 0xad7c8ba4 name: "index" type_id: 0x4585663f @@ -103337,6 +105380,12 @@ member { offset: 480 } member { + id: 0xad7c8d2b + name: "index" + type_id: 0x4585663f + offset: 608 +} +member { id: 0xad7c8d72 name: "index" type_id: 0x4585663f @@ -103519,6 +105568,35 @@ member { offset: 4992 } member { + id: 0x07676cab + name: "inet_conn" + type_id: 0x82dbb487 +} +member { + id: 0x78639f81 + name: "inet_id" + type_id: 0xe8034002 + offset: 7056 +} +member { + id: 0x38f59a08 + name: "inet_opt" + type_id: 0x38090ad2 + offset: 6976 +} +member { + id: 0x8be10b49 + name: "inet_saddr" + type_id: 0xe276adef + offset: 6912 +} +member { + id: 0x674b03be + name: "inet_sport" + type_id: 0x7584e7da + offset: 7040 +} +member { id: 0x3e2089f0 name: "inexact_bins" type_id: 0xd3c80119 @@ -103728,6 +105806,12 @@ member { offset: 224 } member { + id: 0xe0c4d82e + name: "info_get" + type_id: 0x2d0679a1 + offset: 1536 +} +member { id: 0x2f8cd3f3 name: "info_ident" type_id: 0xb3e7bac9 @@ -103978,6 +106062,12 @@ member { offset: 384 } member { + id: 0x1ac6e8a5 + name: "init" + type_id: 0x2c24424a + offset: 128 +} +member { id: 0x1ac72504 name: "init" type_id: 0x2de9e33f @@ -104036,6 +106126,12 @@ member { offset: 1408 } member { + id: 0x1ac7a60f + name: "init" + type_id: 0x2d645d4d + offset: 448 +} +member { id: 0x1ac7a665 name: "init" type_id: 0x2d6a829d @@ -104084,12 +106180,6 @@ member { offset: 1088 } member { - id: 0x1ae7589a - name: "init" - type_id: 0x0d947d59 - offset: 128 -} -member { id: 0x1ae79ef6 name: "init" type_id: 0x0d5f3215 @@ -104109,6 +106199,12 @@ member { bitsize: 1 } member { + id: 0x3ecaad84 + name: "init_action" + type_id: 0x322b7a90 + offset: 32 +} +member { id: 0xc9830a15 name: "init_addr" type_id: 0xa61911b2 @@ -104139,6 +106235,12 @@ member { offset: 64 } member { + id: 0xb36eb0c7 + name: "init_burst" + type_id: 0x92233392 + offset: 128 +} +member { id: 0xed4a99de name: "init_callback" type_id: 0x0ec6a54f @@ -104193,12 +106295,23 @@ member { offset: 128 } member { + id: 0xedc364a3 + name: "init_fs" + type_id: 0x22b357e9 +} +member { id: 0x35f4d7c6 name: "init_fs_context" type_id: 0x2f05fd8b offset: 128 } member { + id: 0xa4c7afe2 + name: "init_group_id" + type_id: 0x914dbfdc + offset: 192 +} +member { id: 0xf587a1e9 name: "init_hctx" type_id: 0x2fcc6bd6 @@ -104253,12 +106366,24 @@ member { offset: 864 } member { + id: 0xf53cc107 + name: "init_policer_id" + type_id: 0xc9082b19 + offset: 96 +} +member { id: 0x015559ae name: "init_qp_minus26" type_id: 0x901eaf6a offset: 32 } member { + id: 0x2b41bb63 + name: "init_rate" + type_id: 0x92233392 + offset: 64 +} +member { id: 0xf8fed40c name: "init_ready" type_id: 0x1f3c8679 @@ -104288,6 +106413,12 @@ member { offset: 64 } member { + id: 0xcc9b87bc + name: "init_shared_fs" + type_id: 0x2ce2190b + offset: 64 +} +member { id: 0x7ab1d042 name: "init_speed" type_id: 0x4585663f @@ -104342,6 +106473,13 @@ member { offset: 512 } member { + id: 0xf51d09e4 + name: "init_tio_pdu" + type_id: 0x6d7f5ff6 + offset: 3936 + bitsize: 1 +} +member { id: 0x29079611 name: "init_valid_mask" type_id: 0x0f3a5c02 @@ -104616,6 +106754,11 @@ member { offset: 256 } member { + id: 0x0ca7cb72 + name: "ino" + type_id: 0xee72cbfc +} +member { id: 0x0cdb9a21 name: "ino" type_id: 0x92233392 @@ -104716,17 +106859,6 @@ member { offset: 160 } member { - id: 0x73fbf26c - name: "input" - type_id: 0xedf277ba -} -member { - id: 0x73fbf68d - name: "input" - type_id: 0xedf277ba - offset: 64 -} -member { id: 0x73fe0389 name: "input" type_id: 0xe8034002 @@ -104945,12 +107077,6 @@ member { offset: 12992 } member { - id: 0xdac7f876 - name: "insn_bytes" - type_id: 0xda277458 - offset: 8 -} -member { id: 0x7cdc8c52 name: "insn_cnt" type_id: 0xe62ebf07 @@ -105002,11 +107128,6 @@ member { offset: 75936 } member { - id: 0x8b19911e - name: "insn_size" - type_id: 0xb3e7bac9 -} -member { id: 0x23399750 name: "insn_stack" type_id: 0x13580d6c @@ -105154,12 +107275,26 @@ member { offset: 480 } member { + id: 0xe590115b + name: "integrity_added" + type_id: 0x4585663f + offset: 1922 + bitsize: 1 +} +member { id: 0xb37c96b5 name: "integrity_failed" type_id: 0xe62ebf07 offset: 64 } member { + id: 0x6f52824f + name: "integrity_supported" + type_id: 0x6d7f5ff6 + offset: 1920 + bitsize: 1 +} +member { id: 0x31cd18d3 name: "intensity" type_id: 0x4585663f @@ -105230,6 +107365,12 @@ member { offset: 1856 } member { + id: 0x3cd46820 + name: "interface_ptr" + type_id: 0x18bd6530 + offset: 3456 +} +member { id: 0x54b2e4db name: "interfaces" type_id: 0xd3c80119 @@ -105266,16 +107407,16 @@ member { offset: 64 } member { - id: 0x8064b316 + id: 0x8064b4f4 name: "interleave_scan" type_id: 0xf1159c31 - offset: 48768 + offset: 49152 } member { - id: 0x95cc47a1 + id: 0x95cc43f7 name: "interleave_scan_state" type_id: 0x6e2e34cb - offset: 48704 + offset: 49088 } member { id: 0xcf1392d8 @@ -105295,11 +107436,6 @@ member { type_id: 0x33756485 } member { - id: 0xcf651311 - name: "internal" - type_id: 0x1bf62820 -} -member { id: 0xeba68a32 name: "internal_addr" type_id: 0x18bd6530 @@ -105342,6 +107478,12 @@ member { offset: 576 } member { + id: 0x1eb686c0 + name: "internal_suspend_count" + type_id: 0x4585663f + offset: 4672 +} +member { id: 0x52285a55 name: "internal_tag" type_id: 0x6720d32f @@ -105666,18 +107808,6 @@ member { offset: 1088 } member { - id: 0x4a590e0a - name: "intid" - type_id: 0x6720d32f - offset: 160 -} -member { - id: 0x4af72c65 - name: "intid" - type_id: 0xc9082b19 - offset: 448 -} -member { id: 0x5dfd62b5 name: "intr_cmd" type_id: 0x6d7f5ff6 @@ -105834,6 +107964,18 @@ member { offset: 512 } member { + id: 0x6a15223b + name: "invalidate_fs" + type_id: 0x08c420f1 + offset: 384 +} +member { + id: 0x6f43a794 + name: "invalidate_inode" + type_id: 0x080e08ce + offset: 320 +} +member { id: 0x17dabd89 name: "invalidate_lock" type_id: 0x28b9ec9a @@ -105846,22 +107988,10 @@ member { offset: 576 } member { - id: 0x6e9b1c0d - name: "invalidate_range" - type_id: 0x0c16b659 - offset: 448 -} -member { - id: 0x4f063390 - name: "invalidate_range_end" - type_id: 0x0c397826 - offset: 384 -} -member { - id: 0x0545c767 - name: "invalidate_range_start" - type_id: 0x2f7f5489 - offset: 320 + id: 0x107f64d3 + name: "invalidate_page" + type_id: 0x080d3f98 + offset: 256 } member { id: 0xa4356576 @@ -105930,9 +108060,16 @@ member { offset: 72 } member { - id: 0x9d5b90f8 + id: 0x9d69c21e name: "io" - type_id: 0x3050ef8f + type_id: 0x0206e829 + offset: 64 +} +member { + id: 0x5fad2d83 + name: "io_barrier" + type_id: 0xa46efa19 + offset: 6400 } member { id: 0x7aee4108 @@ -105953,6 +108090,12 @@ member { offset: 1792 } member { + id: 0x627115f2 + name: "io_bs" + type_id: 0x200a0749 + offset: 2112 +} +member { id: 0x65b934f9 name: "io_buffers_cache" type_id: 0xd3c80119 @@ -105995,6 +108138,12 @@ member { offset: 19456 } member { + id: 0x43d5e607 + name: "io_count" + type_id: 0x74d29cf1 + offset: 416 +} +member { id: 0xa3dbd5d1 name: "io_dev" type_id: 0x0258f96e @@ -106007,16 +108156,10 @@ member { offset: 192 } member { - id: 0xadd5b431 - name: "io_int_parm" - type_id: 0xe62ebf07 - offset: 32 -} -member { - id: 0x1dac28b0 - name: "io_int_word" - type_id: 0xe62ebf07 - offset: 64 + id: 0x4b3c38dc + name: "io_hints" + type_id: 0x5d27fec1 + offset: 1472 } member { id: 0xfe460429 @@ -106265,12 +108408,6 @@ member { type_id: 0x08b52b5b } member { - id: 0x4d44694e - name: "ioctl" - type_id: 0x203cd5eb - offset: 512 -} -member { id: 0x4d466701 name: "ioctl" type_id: 0x2230f0e3 @@ -106426,18 +108563,6 @@ member { offset: 6528 } member { - id: 0xc33609f7 - name: "iodev" - type_id: 0x60b9a60c - offset: 128 -} -member { - id: 0x10f4be53 - name: "iodev_type" - type_id: 0xf101ec6d - offset: 192 -} -member { id: 0x5a8c2ccc name: "iodone_cnt" type_id: 0x74d29cf1 @@ -106450,18 +108575,6 @@ member { offset: 3680 } member { - id: 0x3103f4d5 - name: "ioeventfd_count" - type_id: 0x6720d32f - offset: 32 -} -member { - id: 0x0d7ae40f - name: "ioeventfds" - type_id: 0xd3c80119 - offset: 20288 -} -member { id: 0x51cefec4 name: "iomap" type_id: 0x1f1bbebc @@ -106581,6 +108694,12 @@ member { offset: 64 } member { + id: 0x694d3c49 + name: "ioport" + type_id: 0x29c64ab1 + offset: 1728 +} +member { id: 0x695e350f name: "ioport" type_id: 0x3acf0cc8 @@ -107063,24 +109182,6 @@ member { offset: 104 } member { - id: 0xb21940c8 - name: "ipa" - type_id: 0xe8034002 - offset: 16 -} -member { - id: 0x73d7e0dc - name: "ipb" - type_id: 0xe62ebf07 - offset: 96 -} -member { - id: 0x73d7e464 - name: "ipb" - type_id: 0xe62ebf07 - offset: 32 -} -member { id: 0x376c5a92 name: "ipc" type_id: 0x1d23c41f @@ -107122,6 +109223,17 @@ member { offset: 256 } member { + id: 0xce9a5c98 + name: "ipi6_addr" + type_id: 0x6d25e07f +} +member { + id: 0x8e98680e + name: "ipi6_ifindex" + type_id: 0x6720d32f + offset: 128 +} +member { id: 0xe69d21c0 name: "ipi_list" type_id: 0x214d9bc0 @@ -107197,6 +109309,11 @@ member { offset: 1152 } member { + id: 0xfa946861 + name: "ipv4_nh" + type_id: 0xc9082b19 +} +member { id: 0x3b9e102b name: "ipv6" type_id: 0x6d7f5ff6 @@ -107225,6 +109342,12 @@ member { type_id: 0x09547003 } member { + id: 0xe2141007 + name: "ipv6_ac_list" + type_id: 0x01ae5751 + offset: 768 +} +member { id: 0x12832f3f name: "ipv6_dev_find" type_id: 0x357e91ee @@ -107237,12 +109360,29 @@ member { offset: 128 } member { + id: 0x1e958d31 + name: "ipv6_fl_list" + type_id: 0x3f985801 + offset: 832 +} +member { id: 0xcf78c1e2 name: "ipv6_fragment" type_id: 0x2d271bc7 offset: 1344 } member { + id: 0xfce07b0f + name: "ipv6_mc_list" + type_id: 0x12e0cbae + offset: 704 +} +member { + id: 0xab39140b + name: "ipv6_nh" + type_id: 0x6d25e07f +} +member { id: 0xdf622691 name: "ipv6_route_input" type_id: 0x2da4f7fd @@ -107311,10 +109451,10 @@ member { bitsize: 2 } member { - id: 0x068f48a1 + id: 0x068f454d name: "irk" type_id: 0x60ca2c23 - offset: 46304 + offset: 46688 } member { id: 0x99159221 @@ -107352,12 +109492,6 @@ member { offset: 4768 } member { - id: 0x99159806 - name: "irq" - type_id: 0x6720d32f - offset: 160 -} -member { id: 0x99159922 name: "irq" type_id: 0x6720d32f @@ -107370,12 +109504,6 @@ member { offset: 7584 } member { - id: 0x99159c15 - name: "irq" - type_id: 0x6720d32f - offset: 2240 -} -member { id: 0x99159c24 name: "irq" type_id: 0x6720d32f @@ -107495,17 +109623,6 @@ member { offset: 4032 } member { - id: 0x99949b8a - name: "irq" - type_id: 0xe62ebf07 -} -member { - id: 0x99abc34e - name: "irq" - type_id: 0xd9729a52 - offset: 64 -} -member { id: 0x99c8e1eb name: "irq" type_id: 0xba52d680 @@ -107530,12 +109647,6 @@ member { offset: 320 } member { - id: 0x3b21a108 - name: "irq_ack_notifier_list" - type_id: 0x5e8dc7f4 - offset: 25344 -} -member { id: 0x8dcdd781 name: "irq_base" type_id: 0x6720d32f @@ -107721,29 +109832,12 @@ member { offset: 7360 } member { - id: 0xd133b0b1 - name: "irq_level" - type_id: 0x6d7f5ff6 - offset: 4456 -} -member { - id: 0x8c92967c - name: "irq_lock" - type_id: 0xc8b17aa7 -} -member { id: 0x8ca9364f name: "irq_lock" type_id: 0xf313e71a offset: 9088 } member { - id: 0x8cfde860 - name: "irq_lock" - type_id: 0xa7c362b0 - offset: 24896 -} -member { id: 0xa09e6601 name: "irq_managed" type_id: 0x4585663f @@ -107787,12 +109881,6 @@ member { offset: 1984 } member { - id: 0x94f98f17 - name: "irq_num" - type_id: 0x6720d32f - offset: 4416 -} -member { id: 0x740ba1b4 name: "irq_pending" type_id: 0x0baa70a7 @@ -107878,12 +109966,6 @@ member { offset: 704 } member { - id: 0x71efddfa - name: "irq_routing" - type_id: 0x2145f7aa - offset: 25280 -} -member { id: 0x03f31823 name: "irq_safe" type_id: 0x4585663f @@ -107927,12 +110009,6 @@ member { offset: 128 } member { - id: 0xb5417608 - name: "irq_srcu" - type_id: 0xa46efa19 - offset: 30400 -} -member { id: 0xb989726e name: "irq_start_time" type_id: 0x92233392 @@ -108006,12 +110082,6 @@ member { offset: 4480 } member { - id: 0x450927c5 - name: "irqfds" - type_id: 0x13064264 - offset: 19584 -} -member { id: 0x53de8d1e name: "irqflags" type_id: 0x33756485 @@ -108176,6 +110246,13 @@ member { bitsize: 1 } member { + id: 0xb9615f80 + name: "is_changed" + type_id: 0x5d8155a5 + offset: 98 + bitsize: 1 +} +member { id: 0xcf3f1b2e name: "is_child_subreaper" type_id: 0x4585663f @@ -108207,6 +110284,13 @@ member { offset: 128 } member { + id: 0xb9645bc8 + name: "is_cwnd_limited" + type_id: 0x295c7202 + offset: 13887 + bitsize: 1 +} +member { id: 0x454d50bd name: "is_dead" type_id: 0x6d7f5ff6 @@ -108282,6 +110366,12 @@ member { bitsize: 2 } member { + id: 0x100aab74 + name: "is_fixed" + type_id: 0x6d7f5ff6 + offset: 1984 +} +member { id: 0x3952b157 name: "is_frozen" type_id: 0x6d7f5ff6 @@ -108350,6 +110440,13 @@ member { offset: 64 } member { + id: 0x1facb5a4 + name: "is_icsk" + type_id: 0xb3e7bac9 + offset: 7105 + bitsize: 1 +} +member { id: 0xbbefba04 name: "is_initialized" type_id: 0x6d7f5ff6 @@ -108502,6 +110599,12 @@ member { bitsize: 1 } member { + id: 0xbc20bf07 + name: "is_ndp16" + type_id: 0x295c7202 + offset: 1920 +} +member { id: 0x1f3c147c name: "is_nested" type_id: 0x6d7f5ff6 @@ -108647,6 +110750,13 @@ member { offset: 968 } member { + id: 0xb9f127f6 + name: "is_sack_reneg" + type_id: 0x295c7202 + offset: 13861 + bitsize: 1 +} +member { id: 0x7855a324 name: "is_second_field" type_id: 0xc9082b19 @@ -108694,6 +110804,13 @@ member { offset: 464 } member { + id: 0x1e6a6587 + name: "is_strictroute" + type_id: 0x5d8155a5 + offset: 96 + bitsize: 1 +} +member { id: 0x3fe7857f name: "is_string" type_id: 0x4585663f @@ -108766,6 +110883,12 @@ member { offset: 26432 } member { + id: 0x62d4e2e8 + name: "is_usb_offload_enabled" + type_id: 0x3431098c + offset: 128 +} +member { id: 0x567e927d name: "is_useropt" type_id: 0x2f65c64c @@ -108839,30 +110962,18 @@ member { offset: 176 } member { - id: 0x1a818083 - name: "is_write" - type_id: 0xb3e7bac9 - offset: 160 -} -member { - id: 0x1a818982 - name: "is_write" - type_id: 0xb3e7bac9 - offset: 64 -} -member { - id: 0x1ad44087 - name: "is_write" - type_id: 0xe62ebf07 - offset: 64 -} -member { id: 0x5f2e888d name: "is_yuv" type_id: 0x6d7f5ff6 offset: 168 } member { + id: 0x56acdda7 + name: "is_zlp_ok" + type_id: 0x6d7f5ff6 + offset: 1920 +} +member { id: 0xfa661c0d name: "isids" type_id: 0x2f6759fd @@ -109051,6 +111162,11 @@ member { type_id: 0x3f8fe745 } member { + id: 0x990317f0 + name: "item_list" + type_id: 0xd3c80119 +} +member { id: 0xa70d7362 name: "item_ptr" type_id: 0x1bf16028 @@ -109062,12 +111178,6 @@ member { offset: 128 } member { - id: 0xb75a0aec - name: "items" - type_id: 0xd3c80119 - offset: 64 -} -member { id: 0xb7cc436a name: "items" type_id: 0x4585663f @@ -109085,12 +111195,6 @@ member { offset: 64 } member { - id: 0x2b5908df - name: "iter" - type_id: 0x3bc62241 - offset: 1344 -} -member { id: 0x2b68f74f name: "iter" type_id: 0x0a33316a @@ -109153,6 +111257,12 @@ member { offset: 448 } member { + id: 0x5a8eeaf5 + name: "iterate_devices" + type_id: 0x4944b34e + offset: 1408 +} +member { id: 0x7b221f4e name: "iterate_shared" type_id: 0x2c4043e6 @@ -109177,51 +111287,18 @@ member { offset: 256 } member { - id: 0x1caf0749 - name: "its" - type_id: 0x3c6958c4 -} -member { - id: 0x857bfedc - name: "its_lock" - type_id: 0xa7c362b0 - offset: 1216 -} -member { - id: 0x8e370213 - name: "its_read" - type_id: 0x05a52bb0 -} -member { - id: 0xa70b7acb - name: "its_vm" - type_id: 0x04fb8f54 - offset: 64 -} -member { - id: 0xa736298d - name: "its_vm" - type_id: 0x39aedbce - offset: 1408 -} -member { - id: 0xa9a971b2 - name: "its_vpe" - type_id: 0x19bba071 - offset: 1408 -} -member { - id: 0x8844b6fd - name: "its_write" - type_id: 0x0de80fb7 -} -member { id: 0x7dc35cdf name: "itty" type_id: 0x2efe8065 offset: 1408 } member { + id: 0x56ccb987 + name: "iv" + type_id: 0x18bd6530 + offset: 960 +} +member { id: 0x56d4cc43 name: "iv" type_id: 0x00c72527 @@ -109240,6 +111317,12 @@ member { offset: 192 } member { + id: 0x8320112b + name: "ivsize" + type_id: 0x4585663f + offset: 1024 +} +member { id: 0x832017a6 name: "ivsize" type_id: 0x4585663f @@ -109293,6 +111376,12 @@ member { offset: 1792 } member { + id: 0x9f7caab9 + name: "jack_type" + type_id: 0x4585663f + offset: 64 +} +member { id: 0x5d9c18bc name: "jack_zones" type_id: 0xd3c80119 @@ -109654,6 +111743,24 @@ member { offset: 704 } member { + id: 0xb4c1a226 + name: "keepalive_intvl" + type_id: 0x4585663f + offset: 18144 +} +member { + id: 0xeb2f3b5f + name: "keepalive_probes" + type_id: 0x295c7202 + offset: 14648 +} +member { + id: 0x9e7c1e77 + name: "keepalive_time" + type_id: 0x4585663f + offset: 18112 +} +member { id: 0x3f65622e name: "keepout" type_id: 0x340dea21 @@ -109666,6 +111773,12 @@ member { offset: 8384 } member { + id: 0x632a4ba2 + name: "kern_flags" + type_id: 0xc9082b19 + offset: 256 +} +member { id: 0x3afd0925 name: "kern_hyp_va" type_id: 0x05cc5cbb @@ -109838,12 +111951,6 @@ member { type_id: 0x2f932a1e } member { - id: 0x209860f9 - name: "key" - type_id: 0xce6e9270 - offset: 232 -} -member { id: 0x209f059a name: "key" type_id: 0xc9082b19 @@ -109856,6 +111963,12 @@ member { offset: 64 } member { + id: 0x20a07181 + name: "key" + type_id: 0xf67b8436 + offset: 256 +} +member { id: 0x20aa0052 name: "key" type_id: 0xfc0e1dbd @@ -109889,6 +112002,11 @@ member { offset: 640 } member { + id: 0x20c5e9f7 + name: "key" + type_id: 0x93e3596e +} +member { id: 0x20c661f5 name: "key" type_id: 0x906b5bab @@ -110302,12 +112420,6 @@ member { offset: 128 } member { - id: 0xd7f60431 - name: "kind" - type_id: 0xfd01d20e - offset: 128 -} -member { id: 0x1862ef71 name: "klist_children" type_id: 0x95f8b1fc @@ -110349,12 +112461,6 @@ member { offset: 5120 } member { - id: 0x85e4ba6c - name: "kmem_cache" - type_id: 0x2efd5036 - offset: 128 -} -member { id: 0x5fc74326 name: "kmem_cachep" type_id: 0x2efd5036 @@ -110509,6 +112615,12 @@ member { offset: 6144 } member { + id: 0xd68a69a4 + name: "kobj_holder" + type_id: 0xa1319a08 + offset: 5376 +} +member { id: 0x84231c09 name: "kobj_type" type_id: 0x8ffe5e7d @@ -110817,29 +112929,6 @@ member { type_id: 0x39c0701e } member { - id: 0x730e8b69 - name: "kvm" - type_id: 0x363b9249 -} -member { - id: 0x730e8f88 - name: "kvm" - type_id: 0x363b9249 - offset: 64 -} -member { - id: 0xaa4c4a21 - name: "kvm_dirty_regs" - type_id: 0xedf277ba - offset: 2368 -} -member { - id: 0x4b1e23b0 - name: "kvm_valid_regs" - type_id: 0xedf277ba - offset: 2304 -} -member { id: 0x6f6286ef name: "kworker" type_id: 0x348f6886 @@ -110900,6 +112989,12 @@ member { offset: 328 } member { + id: 0xe6f3661d + name: "l3mdev" + type_id: 0x6720d32f + offset: 64 +} +member { id: 0xa2b82643 name: "l3num" type_id: 0xe2ce8d42 @@ -110966,6 +113061,12 @@ member { offset: 8768 } member { + id: 0x05cb6176 + name: "label" + type_id: 0xe276adef + offset: 64 +} +member { id: 0x05cb61ce name: "label" type_id: 0xe276adef @@ -111131,6 +113232,12 @@ member { offset: 256 } member { + id: 0x2660c5df + name: "last" + type_id: 0x0fc3c654 + offset: 512 +} +member { id: 0x2667209c name: "last" type_id: 0x082be49e @@ -111155,12 +113262,6 @@ member { offset: 384 } member { - id: 0x26892e85 - name: "last" - type_id: 0xe62ebf07 - offset: 32 -} -member { id: 0x26a602b8 name: "last" type_id: 0xc9082b19 @@ -111179,6 +113280,12 @@ member { offset: 384 } member { + id: 0x8c1c72c6 + name: "last_accessed" + type_id: 0x33756485 + offset: 768 +} +member { id: 0x46917fc8 name: "last_ack" type_id: 0x35fdd62d @@ -111257,12 +113364,6 @@ member { offset: 64 } member { - id: 0x85550ce5 - name: "last_boosted_vcpu" - type_id: 0x6720d32f - offset: 18784 -} -member { id: 0x191711ef name: "last_bstat" type_id: 0x20b780d8 @@ -111330,6 +113431,12 @@ member { offset: 2624 } member { + id: 0x8762b004 + name: "last_delivered" + type_id: 0xc9082b19 + offset: 128 +} +member { id: 0x0c7f9894 name: "last_delta" type_id: 0xfc0e1dbd @@ -111585,6 +113692,12 @@ member { offset: 128 } member { + id: 0x41099e1a + name: "last_oow_ack_time" + type_id: 0xc9082b19 + offset: 12960 +} +member { id: 0x7c2533b6 name: "last_overrun" type_id: 0x33756485 @@ -111680,6 +113793,12 @@ member { offset: 5504 } member { + id: 0x41fdc1b3 + name: "last_recovery_ts" + type_id: 0x92233392 + offset: 1216 +} +member { id: 0xc6b95840 name: "last_reset" type_id: 0x33756485 @@ -111698,6 +113817,12 @@ member { offset: 1088 } member { + id: 0xaac934df + name: "last_rw" + type_id: 0x4585663f + offset: 64 +} +member { id: 0xa444a488 name: "last_sample_time" type_id: 0x92233392 @@ -111710,6 +113835,11 @@ member { offset: 10560 } member { + id: 0x0d364652 + name: "last_sector" + type_id: 0xd0b3a203 +} +member { id: 0x02f7d82f name: "last_sector_bug" type_id: 0x4585663f @@ -111729,6 +113859,12 @@ member { offset: 64 } member { + id: 0x4c233807 + name: "last_seg_size" + type_id: 0xe8034002 + offset: 160 +} +member { id: 0xadd33b5a name: "last_seq" type_id: 0x35fdd62d @@ -111771,11 +113907,6 @@ member { offset: 2112 } member { - id: 0xb280959d - name: "last_steal" - type_id: 0x92233392 -} -member { id: 0x4ac408b3 name: "last_switch_count" type_id: 0x33756485 @@ -111882,36 +114013,12 @@ member { offset: 2592 } member { - id: 0xab7e4a6e - name: "last_used_slot" - type_id: 0x3d5133eb - offset: 77504 -} -member { - id: 0xabf33787 - name: "last_used_slot" - type_id: 0xb02b353a - offset: 64 -} -member { - id: 0x1838fabc - name: "last_used_slot_gen" - type_id: 0x92233392 - offset: 77568 -} -member { id: 0x583801a8 name: "last_vblank_count" type_id: 0x92233392 offset: 384 } member { - id: 0x9555d521 - name: "last_vcpu_ran" - type_id: 0x13580d6c - offset: 192 -} -member { id: 0x9898696f name: "last_wakee" type_id: 0x1d19a9d5 @@ -111942,12 +114049,24 @@ member { offset: 192 } member { + id: 0xab47d75e + name: "lastopt" + type_id: 0xe8034002 + offset: 96 +} +member { id: 0xcc0a009b name: "lastuse" type_id: 0xedf277ba offset: 64 } member { + id: 0xccd48510 + name: "lastuse" + type_id: 0x33756485 + offset: 640 +} +member { id: 0xccd48a1b name: "lastuse" type_id: 0x33756485 @@ -112181,10 +114300,10 @@ member { offset: 320 } member { - id: 0x3c8ef241 + id: 0x3c8ef028 name: "le_accept_list" type_id: 0xd3c80119 - offset: 29824 + offset: 30208 } member { id: 0x082a7070 @@ -112271,10 +114390,10 @@ member { offset: 6400 } member { - id: 0x78450f73 + id: 0x78450d9f name: "le_conn_params" type_id: 0xd3c80119 - offset: 30080 + offset: 30464 } member { id: 0x0f35b386 @@ -112385,10 +114504,10 @@ member { offset: 13344 } member { - id: 0xdc9e1f25 + id: 0xdc9e19ca name: "le_resolv_list" type_id: 0xd3c80119 - offset: 29952 + offset: 30336 } member { id: 0x75a1e881 @@ -112415,10 +114534,10 @@ member { offset: 8576 } member { - id: 0x4b83b19b + id: 0x4b83bf04 name: "le_scan_disable" type_id: 0xf1159c31 - offset: 22976 + offset: 23360 } member { id: 0x23bc5cfc @@ -112451,10 +114570,10 @@ member { offset: 6240 } member { - id: 0xf931197e + id: 0xf9311273 name: "le_scan_restart" type_id: 0xf1159c31 - offset: 24064 + offset: 24448 } member { id: 0x32b8a7c0 @@ -112776,6 +114895,12 @@ member { offset: 192 } member { + id: 0xb82c6bed + name: "len" + type_id: 0x29b77961 + offset: 128 +} +member { id: 0xb82c8b76 name: "len" type_id: 0x295c7202 @@ -112823,18 +114948,6 @@ member { offset: 896 } member { - id: 0xb8405d0b - name: "len" - type_id: 0x4585663f - offset: 32 -} -member { - id: 0xb862f164 - name: "len" - type_id: 0x6720d32f - offset: 64 -} -member { id: 0xb862f207 name: "len" type_id: 0x6720d32f @@ -112970,11 +115083,22 @@ member { offset: 320 } member { + id: 0xb8ccdd7d + name: "len" + type_id: 0xc9082b19 +} +member { id: 0xb8cceb57 name: "len" type_id: 0xc93e017b } member { + id: 0xb8d56e3d + name: "len" + type_id: 0xd0b3a203 + offset: 192 +} +member { id: 0xb8e3f22b name: "len" type_id: 0xe62ebf07 @@ -113064,6 +115188,12 @@ member { offset: 64 } member { + id: 0x399dce5b + name: "len_ptr" + type_id: 0x1bf16028 + offset: 192 +} +member { id: 0xf7528eb9 name: "len_so_far" type_id: 0xe8034002 @@ -113088,6 +115218,12 @@ member { offset: 64 } member { + id: 0xb50a4f6b + name: "length" + type_id: 0x6720d32f + offset: 160 +} +member { id: 0xb518ea7e name: "length" type_id: 0x7584e7da @@ -113289,12 +115425,6 @@ member { offset: 224 } member { - id: 0x865cec96 - name: "level" - type_id: 0xe62ebf07 - offset: 32 -} -member { id: 0x8673c739 name: "level" type_id: 0xc9082b19 @@ -113535,6 +115665,13 @@ member { offset: 1664 } member { + id: 0x8bbdb526 + name: "limit_swap_bios" + type_id: 0x6d7f5ff6 + offset: 578 + bitsize: 1 +} +member { id: 0x6270d42c name: "limit_valid" type_id: 0x77f6971e @@ -113634,12 +115771,6 @@ member { offset: 384 } member { - id: 0x2b9d91fc - name: "line_level" - type_id: 0x6d7f5ff6 - offset: 480 -} -member { id: 0x17206248 name: "line_off" type_id: 0xe62ebf07 @@ -113676,12 +115807,24 @@ member { offset: 576 } member { - id: 0xd1c402eb + id: 0xd1e477a3 name: "linecard" - type_id: 0x2a0586b2 + type_id: 0x0a70ce1b offset: 2688 } member { + id: 0x2bafedce + name: "linecard_list" + type_id: 0xd3c80119 + offset: 1920 +} +member { + id: 0x66da3728 + name: "linecards_lock" + type_id: 0xa7c362b0 + offset: 2048 +} +member { id: 0xc4fd637a name: "linedur_ns" type_id: 0x6720d32f @@ -113713,6 +115856,18 @@ member { offset: 8192 } member { + id: 0xe93fdbc8 + name: "linger" + type_id: 0x33756485 + offset: 320 +} +member { + id: 0x0ab38392 + name: "linger2" + type_id: 0x6720d32f + offset: 18176 +} +member { id: 0x55610d26 name: "link" type_id: 0xdf92cbe9 @@ -113812,11 +115967,6 @@ member { offset: 192 } member { - id: 0x55f738dc - name: "link" - type_id: 0x49a73111 -} -member { id: 0x55f9336e name: "link" type_id: 0x47ac8321 @@ -113928,10 +116078,10 @@ member { offset: 1280 } member { - id: 0x4ba7b4dd + id: 0x4ba7b24a name: "link_keys" type_id: 0xd3c80119 - offset: 29312 + offset: 29696 } member { id: 0x302a5d27 @@ -114258,6 +116408,12 @@ member { offset: 512 } member { + id: 0x7c00e44f + name: "list" + type_id: 0xd3c80119 + offset: 1856 +} +member { id: 0x7c00e5d1 name: "list" type_id: 0xd3c80119 @@ -114578,6 +116734,12 @@ member { offset: 256 } member { + id: 0x76367e75 + name: "list_mode" + type_id: 0x5d8155a5 + offset: 584 +} +member { id: 0xd773d1c8 name: "list_node" type_id: 0xd3c80119 @@ -114829,6 +116991,11 @@ member { bitsize: 1 } member { + id: 0x9f6503ee + name: "lo" + type_id: 0xe8034002 +} +member { id: 0x9fbe75ca name: "lo" type_id: 0x33756485 @@ -114874,6 +117041,11 @@ member { offset: 192 } member { + id: 0xd4c95c39 + name: "load_count" + type_id: 0x33756485 +} +member { id: 0x387efce1 name: "load_fw" type_id: 0x2dec5b18 @@ -114898,12 +117070,6 @@ member { offset: 7296 } member { - id: 0xbcb6da5b - name: "loaded" - type_id: 0x6d7f5ff6 - offset: 704 -} -member { id: 0xbcc151ab name: "loaded" type_id: 0x1af273e3 @@ -114964,10 +117130,16 @@ member { offset: 1480 } member { - id: 0x1d6fbead + id: 0x1d6fbf33 name: "local_codecs" type_id: 0xd3c80119 - offset: 30592 + offset: 30976 +} +member { + id: 0x2a3c445d + name: "local_error" + type_id: 0x0e2bd379 + offset: 704 } member { id: 0x9ddaf23a @@ -115034,6 +117206,12 @@ member { offset: 768 } member { + id: 0x5b66efeb + name: "local_port_range" + type_id: 0x3fbb6cee + offset: 8512 +} +member { id: 0x11369f07 name: "local_sdu_itime" type_id: 0xe62ebf07 @@ -115171,6 +117349,12 @@ member { offset: 768 } member { + id: 0x2d1fe43b + name: "lock" + type_id: 0xf313e71a + offset: 17536 +} +member { id: 0x2d1fe44c name: "lock" type_id: 0xf313e71a @@ -115475,6 +117659,12 @@ member { offset: 9728 } member { + id: 0x2d4b3012 + name: "lock" + type_id: 0xa7c362b0 + offset: 7424 +} +member { id: 0x2d4b30cc name: "lock" type_id: 0xa7c362b0 @@ -115493,6 +117683,12 @@ member { offset: 1152 } member { + id: 0x2d4b3330 + name: "lock" + type_id: 0xa7c362b0 + offset: 3200 +} +member { id: 0x2d4b353f name: "lock" type_id: 0xa7c362b0 @@ -115541,12 +117737,6 @@ member { offset: 448 } member { - id: 0x2d4b3b7e - name: "lock" - type_id: 0xa7c362b0 - offset: 18944 -} -member { id: 0x2d4b3bb8 name: "lock" type_id: 0xa7c362b0 @@ -115748,6 +117938,12 @@ member { offset: 1280 } member { + id: 0x5f5e621d + name: "lock_key" + type_id: 0x475137a2 + offset: 3584 +} +member { id: 0x5f5e64df name: "lock_key" type_id: 0x475137a2 @@ -116248,10 +118444,10 @@ member { offset: 64 } member { - id: 0x4e950be9 + id: 0x4e9500ec name: "long_term_keys" type_id: 0xd3c80119 - offset: 29440 + offset: 29824 } member { id: 0xf24e93bd @@ -116272,17 +118468,6 @@ member { offset: 76192 } member { - id: 0x6dda6565 - name: "longmode" - type_id: 0xe62ebf07 - offset: 512 -} -member { - id: 0x6dda6e7d - name: "longmode" - type_id: 0xe62ebf07 -} -member { id: 0xe77d91bb name: "longname" type_id: 0x01ef5f77 @@ -116424,6 +118609,18 @@ member { offset: 576 } member { + id: 0x14a57188 + name: "lost" + type_id: 0xc9082b19 + offset: 15296 +} +member { + id: 0x36a89416 + name: "lost_cnt_hint" + type_id: 0x6720d32f + offset: 17792 +} +member { id: 0xc431d6f2 name: "lost_events" type_id: 0x33756485 @@ -116452,12 +118649,24 @@ member { type_id: 0x6f3d464c } member { + id: 0x2d8724a1 + name: "lost_out" + type_id: 0xc9082b19 + offset: 15680 +} +member { id: 0xa0d3e60e name: "lost_samples" type_id: 0x1f4573ef offset: 7808 } member { + id: 0x86cd98a0 + name: "lost_skb_hint" + type_id: 0x054f691a + offset: 16896 +} +member { id: 0xe4294f6c name: "low" type_id: 0x914dbfdc @@ -116684,48 +118893,6 @@ member { offset: 32 } member { - id: 0xeca52885 - name: "lpi_array" - type_id: 0x38d23361 - offset: 256 -} -member { - id: 0x43246e2d - name: "lpi_idx" - type_id: 0x6720d32f - offset: 192 -} -member { - id: 0x9ecea343 - name: "lpi_list" - type_id: 0xd3c80119 - offset: 64 -} -member { - id: 0x4d9128b0 - name: "lpi_list_count" - type_id: 0x6720d32f - offset: 1152 -} -member { - id: 0x9c466cf2 - name: "lpi_list_head" - type_id: 0xd3c80119 - offset: 1024 -} -member { - id: 0xbe693b59 - name: "lpi_list_lock" - type_id: 0xc8b17aa7 - offset: 960 -} -member { - id: 0xd5bf2684 - name: "lpi_translation_cache" - type_id: 0xd3c80119 - offset: 1216 -} -member { id: 0x0a9f8132 name: "lpm_capable" type_id: 0x4585663f @@ -116772,12 +118939,24 @@ member { offset: 832 } member { + id: 0x9d3fc94e + name: "lrcvtime" + type_id: 0xe62ebf07 + offset: 128 +} +member { id: 0x5434db0f name: "lru" type_id: 0x360c66c5 offset: 2752 } member { + id: 0x545a8863 + name: "lru" + type_id: 0x585b40a5 + offset: 448 +} +member { id: 0x5484b289 name: "lru" type_id: 0x86623cce @@ -116813,6 +118992,12 @@ member { offset: 49152 } member { + id: 0x94eba612 + name: "lru_list" + type_id: 0xd3c80119 + offset: 192 +} +member { id: 0x50d1f6aa name: "lru_lock" type_id: 0xf313e71a @@ -116889,6 +119074,12 @@ member { offset: 1312 } member { + id: 0xcaaa728e + name: "lsndtime" + type_id: 0xc9082b19 + offset: 12928 +} +member { id: 0xabed406f name: "lsr_save_mask" type_id: 0x914dbfdc @@ -117355,6 +119546,11 @@ member { type_id: 0xe8034002 } member { + id: 0xd6baf777 + name: "magic" + type_id: 0xc93e017b +} +member { id: 0xd6e31323 name: "magic" type_id: 0x90dafee5 @@ -117638,12 +119834,6 @@ member { offset: 128 } member { - id: 0x69005a44 - name: "manual_dirty_log_protect" - type_id: 0x92233392 - offset: 26368 -} -member { id: 0xac46515e name: "manual_mode_value" type_id: 0x4585663f @@ -117704,18 +119894,18 @@ member { offset: 192 } member { - id: 0x8d25e654 - name: "map" - type_id: 0xd39aff0d - offset: 31680 -} -member { id: 0x8d4fb401 name: "map" type_id: 0xb9c7723b offset: 1216 } member { + id: 0x8d8ccb94 + name: "map" + type_id: 0x7abd5475 + offset: 448 +} +member { id: 0x8dbdb056 name: "map" type_id: 0x4bc42bec @@ -117773,6 +119963,12 @@ member { offset: 1664 } member { + id: 0x8deec674 + name: "map" + type_id: 0x18bd6530 + offset: 896 +} +member { id: 0x8df0341e name: "map" type_id: 0x064d6086 @@ -117790,6 +119986,12 @@ member { type_id: 0x04b193cc } member { + id: 0x8df2c9e6 + name: "map" + type_id: 0x04b193cc + offset: 128 +} +member { id: 0x8df87907 name: "map" type_id: 0x0e017252 @@ -117913,12 +120115,6 @@ member { offset: 576 } member { - id: 0x308dee6b - name: "map_event" - type_id: 0x2c2ce191 - offset: 3264 -} -member { id: 0x3d93c0fb name: "map_extra" type_id: 0x92233392 @@ -118012,6 +120208,12 @@ member { type_id: 0xe62ebf07 } member { + id: 0x86e8bd6c + name: "map_id" + type_id: 0xc9082b19 + offset: 192 +} +member { id: 0xa32be5db name: "map_ifindex" type_id: 0xe62ebf07 @@ -118279,6 +120481,12 @@ member { offset: 192 } member { + id: 0x2a093f90 + name: "map_type" + type_id: 0x6e73208e + offset: 224 +} +member { id: 0x2a81612b name: "map_type" type_id: 0xe62ebf07 @@ -118397,6 +120605,12 @@ member { offset: 3008 } member { + id: 0x8b645ad4 + name: "mapping_type" + type_id: 0xe09c0936 + offset: 128 +} +member { id: 0x4971df2a name: "mappings" type_id: 0xd3c80119 @@ -118468,6 +120682,12 @@ member { type_id: 0xc9082b19 } member { + id: 0x8196ad18 + name: "mark" + type_id: 0xc9082b19 + offset: 384 +} +member { id: 0x81b98a1e name: "mark" type_id: 0xe62ebf07 @@ -119476,6 +121696,12 @@ member { offset: 96 } member { + id: 0x9c062023 + name: "max_burst" + type_id: 0x92233392 + offset: 320 +} +member { id: 0x9c5d053e name: "max_burst" type_id: 0xc9082b19 @@ -119636,6 +121862,12 @@ member { offset: 64 } member { + id: 0x3a33fdde + name: "max_datagram_size" + type_id: 0xc9082b19 + offset: 2272 +} +member { id: 0x6252d912 name: "max_dec_size" type_id: 0xe8034002 @@ -119927,12 +122159,6 @@ member { offset: 7648 } member { - id: 0xf60ae606 - name: "max_halt_poll_ns" - type_id: 0x4585663f - offset: 34304 -} -member { id: 0x7e72c641 name: "max_hang_time" type_id: 0x4585663f @@ -120077,6 +122303,12 @@ member { offset: 256 } member { + id: 0x09343eea + name: "max_io_len" + type_id: 0x1c3dbe5a + offset: 256 +} +member { id: 0xf058f4c8 name: "max_keysize" type_id: 0x4585663f @@ -120185,6 +122417,12 @@ member { offset: 2336 } member { + id: 0xeaccae16 + name: "max_mv" + type_id: 0x4585663f + offset: 32 +} +member { id: 0x7b864e19 name: "max_native_cs" type_id: 0x29b77961 @@ -120197,6 +122435,12 @@ member { offset: 160 } member { + id: 0x90a7314a + name: "max_ndp_size" + type_id: 0xc9082b19 + offset: 1888 +} +member { id: 0x4f305ba6 name: "max_newidle_lb_cost" type_id: 0x92233392 @@ -120280,6 +122524,12 @@ member { offset: 96 } member { + id: 0x1d340096 + name: "max_packets_out" + type_id: 0xc9082b19 + offset: 14560 +} +member { id: 0xc09a441d name: "max_page" type_id: 0xb3e7bac9 @@ -120398,6 +122648,12 @@ member { offset: 224 } member { + id: 0x6bf829f7 + name: "max_qlen" + type_id: 0x6720d32f + offset: 192 +} +member { id: 0xfbb3d064 name: "max_queue" type_id: 0x6720d32f @@ -120428,6 +122684,12 @@ member { offset: 320 } member { + id: 0x5cea623b + name: "max_rate" + type_id: 0x92233392 + offset: 192 +} +member { id: 0xf3d009b3 name: "max_ratio" type_id: 0x4585663f @@ -120768,6 +123030,12 @@ member { offset: 64 } member { + id: 0xcfd59103 + name: "max_size" + type_id: 0x39b2ba38 + offset: 384 +} +member { id: 0xc288bba2 name: "max_slices" type_id: 0x295c7202 @@ -120780,6 +123048,12 @@ member { offset: 672 } member { + id: 0x2a2e382b + name: "max_snapshots" + type_id: 0xc9082b19 + offset: 832 +} +member { id: 0x9213bcc2 name: "max_socks" type_id: 0x914dbfdc @@ -121051,12 +123325,6 @@ member { offset: 45248 } member { - id: 0x107724e0 - name: "max_vcpus" - type_id: 0x6720d32f - offset: 18720 -} -member { id: 0xb15d2ccc name: "max_vfreq" type_id: 0x914dbfdc @@ -121117,6 +123385,12 @@ member { offset: 2048 } member { + id: 0xb0b5b654 + name: "max_window" + type_id: 0xc9082b19 + offset: 13376 +} +member { id: 0x02a4136b name: "max_workers" type_id: 0x4585663f @@ -121466,6 +123740,18 @@ member { offset: 32 } member { + id: 0x12ebc87a + name: "mbim_desc" + type_id: 0x324ddec3 + offset: 1280 +} +member { + id: 0x605196d3 + name: "mbim_extended_desc" + type_id: 0x3b622f67 + offset: 1344 +} +member { id: 0xaea16832 name: "mbox" type_id: 0x38fdd541 @@ -121489,6 +123775,26 @@ member { offset: 5056 } member { + id: 0x5a22c9ad + name: "mc_addr" + type_id: 0xe276adef + offset: 7200 +} +member { + id: 0x1b81e20c + name: "mc_all" + type_id: 0xe8034002 + offset: 573 + bitsize: 1 +} +member { + id: 0x1bda0ea3 + name: "mc_all" + type_id: 0xb3e7bac9 + offset: 7110 + bitsize: 1 +} +member { id: 0xedd041f2 name: "mc_autojoin_sk" type_id: 0x1d44326e @@ -121555,12 +123861,24 @@ member { offset: 1728 } member { + id: 0x02fcf451 + name: "mc_index" + type_id: 0x6720d32f + offset: 7168 +} +member { id: 0x9c4c6ca6 name: "mc_list" type_id: 0x2d5e3e76 offset: 192 } member { + id: 0x9c6a8ab2 + name: "mc_list" + type_id: 0x0bbfad26 + offset: 7232 +} +member { id: 0x9c6ad1bd name: "mc_list" type_id: 0x0be3257b @@ -121573,6 +123891,20 @@ member { offset: 6528 } member { + id: 0xa582fe9b + name: "mc_loop" + type_id: 0xe8034002 + offset: 464 + bitsize: 1 +} +member { + id: 0xa5d9163f + name: "mc_loop" + type_id: 0xb3e7bac9 + offset: 7108 + bitsize: 1 +} +member { id: 0x99f606f1 name: "mc_maxdelay" type_id: 0x33756485 @@ -121657,6 +123989,12 @@ member { offset: 352 } member { + id: 0x7008fda6 + name: "mc_ttl" + type_id: 0xb3e7bac9 + offset: 7088 +} +member { id: 0xd4582df4 name: "mc_v1_seen" type_id: 0x33756485 @@ -121734,6 +124072,19 @@ member { offset: 576 } member { + id: 0x34d8f2b6 + name: "mcast_hops" + type_id: 0x007e8ce4 + offset: 471 + bitsize: 9 +} +member { + id: 0xe14bd1fe + name: "mcast_oif" + type_id: 0x6720d32f + offset: 512 +} +member { id: 0x2cf10ddb name: "mcgrp_offset" type_id: 0x4585663f @@ -121853,22 +124204,21 @@ member { offset: 640 } member { - id: 0x966b766d - name: "md_dst" - type_id: 0x3b9c6e49 - offset: 384 + id: 0xff5d592e + name: "md" + type_id: 0x2d77f22a } member { - id: 0x376609fd - name: "mdcr_el2" - type_id: 0x92233392 - offset: 14912 + id: 0xff5d5e59 + name: "md" + type_id: 0x2d77f22a + offset: 448 } member { - id: 0xdb73cbc4 - name: "mdcr_el2_host" - type_id: 0x92233392 - offset: 15040 + id: 0x966b766d + name: "md_dst" + type_id: 0x3b9c6e49 + offset: 384 } member { id: 0xbb1af1d1 @@ -121882,6 +124232,18 @@ member { offset: 64 } member { + id: 0xf098d631 + name: "mdev_max_us" + type_id: 0xc9082b19 + offset: 14208 +} +member { + id: 0x00d04522 + name: "mdev_us" + type_id: 0xc9082b19 + offset: 14176 +} +member { id: 0xc96faa23 name: "mdio" type_id: 0x6fb840c8 @@ -122053,11 +124415,6 @@ member { offset: 768 } member { - id: 0xd7400399 - name: "mdscr_el1" - type_id: 0xc9082b19 -} -member { id: 0x3e3e85fb name: "me" type_id: 0x0b27dc43 @@ -122591,6 +124948,18 @@ member { offset: 2240 } member { + id: 0x1f686bd1 + name: "mempools" + type_id: 0x32e4574b + offset: 5312 +} +member { + id: 0x1f686eb8 + name: "mempools" + type_id: 0x32e4574b + offset: 2240 +} +member { id: 0xebf8e0ed name: "memregion" type_id: 0x6720d32f @@ -122615,12 +124984,6 @@ member { offset: 1792 } member { - id: 0x4f1355bb - name: "memslots" - type_id: 0xb717646a - offset: 18112 -} -member { id: 0xbaa89f63 name: "memsw" type_id: 0xd079ba20 @@ -122661,6 +125024,11 @@ member { offset: 128 } member { + id: 0x037856c6 + name: "merged" + type_id: 0x6d7f5ff6 +} +member { id: 0x5052f78e name: "merges" type_id: 0x80904a3b @@ -122678,16 +125046,16 @@ member { offset: 5320 } member { - id: 0x9962b15a + id: 0x9962bd46 name: "mesh_pending" type_id: 0xd3c80119 - offset: 28672 + offset: 29056 } member { - id: 0x81de6579 + id: 0x81de61c0 name: "mesh_send_done" type_id: 0xf1159c31 - offset: 47616 + offset: 48000 } member { id: 0x9a07655b @@ -122696,6 +125064,12 @@ member { offset: 5448 } member { + id: 0x9de5400c + name: "message" + type_id: 0x4a37c87b + offset: 1152 +} +member { id: 0x8cf2c6b7 name: "message_id" type_id: 0x4585663f @@ -122724,6 +125098,12 @@ member { offset: 704 } member { + id: 0xd492332a + name: "metadata_cap" + type_id: 0xc9082b19 + offset: 224 +} +member { id: 0xf7b6b92a name: "metadata_ops" type_id: 0x1d5a7ac2 @@ -122836,10 +125216,10 @@ member { offset: 832 } member { - id: 0x285f0a99 + id: 0x285f05be name: "mgmt_pending" type_id: 0xd3c80119 - offset: 28800 + offset: 29184 } member { id: 0x5b8fb9b9 @@ -122946,12 +125326,6 @@ member { offset: 768 } member { - id: 0xdb33fcdf - name: "migrate_lock" - type_id: 0xf4933b90 - offset: 17536 -} -member { id: 0x8edaa968 name: "migrate_page" type_id: 0x2d9ade31 @@ -123183,6 +125557,12 @@ member { offset: 96 } member { + id: 0x7b580056 + name: "min_burst" + type_id: 0x92233392 + offset: 384 +} +member { id: 0x603d49ac name: "min_capacity" type_id: 0x33756485 @@ -123356,6 +125736,12 @@ member { offset: 16 } member { + id: 0x78ae54cb + name: "min_hopcount" + type_id: 0xb3e7bac9 + offset: 576 +} +member { id: 0x402764fb name: "min_hw_heartbeat_ms" type_id: 0x4585663f @@ -123420,6 +125806,11 @@ member { offset: 2304 } member { + id: 0xa07cb245 + name: "min_mv" + type_id: 0x4585663f +} +member { id: 0x31458425 name: "min_nr" type_id: 0x6720d32f @@ -123444,6 +125835,12 @@ member { offset: 8 } member { + id: 0x7843c8a8 + name: "min_rate" + type_id: 0x92233392 + offset: 256 +} +member { id: 0x78e29322 name: "min_rate" type_id: 0x33756485 @@ -123534,6 +125931,18 @@ member { offset: 384 } member { + id: 0xa28c3827 + name: "min_ttl" + type_id: 0xb3e7bac9 + offset: 7080 +} +member { + id: 0x7cb10669 + name: "min_tx_pkt" + type_id: 0x914dbfdc + offset: 2400 +} +member { id: 0x47fc27ee name: "min_tx_rate" type_id: 0xe62ebf07 @@ -123655,6 +126064,12 @@ member { offset: 320 } member { + id: 0xf910802f + name: "minimum_buffers" + type_id: 0x4585663f + offset: 1440 +} +member { id: 0x0eef50fa name: "miniq_egress" type_id: 0x36f0fd32 @@ -123756,6 +126171,12 @@ member { offset: 3680 } member { + id: 0xa298fce5 + name: "minor_base" + type_id: 0x6720d32f + offset: 192 +} +member { id: 0x850041c9 name: "minor_class" type_id: 0xb3e7bac9 @@ -124105,12 +126526,6 @@ member { offset: 192 } member { - id: 0x3025d10a - name: "mm" - type_id: 0x1b36c7a2 - offset: 64 -} -member { id: 0x3025d29c name: "mm" type_id: 0x1b36c7a2 @@ -124128,12 +126543,6 @@ member { type_id: 0x1b36c7a2 } member { - id: 0x3025d651 - name: "mm" - type_id: 0x1b36c7a2 - offset: 832 -} -member { id: 0x3025dc29 name: "mm" type_id: 0x1b36c7a2 @@ -124146,12 +126555,6 @@ member { offset: 960 } member { - id: 0x3025dd22 - name: "mm" - type_id: 0x1b36c7a2 - offset: 192 -} -member { id: 0xf2c3ca3b name: "mm_account" type_id: 0x1b36c7a2 @@ -124193,12 +126596,6 @@ member { type_id: 0xa179a8c5 } member { - id: 0xa69ad382 - name: "mm_ops" - type_id: 0x0d97a2b2 - offset: 128 -} -member { id: 0x0abfe66e name: "mm_state" type_id: 0xeb51a15e @@ -124258,12 +126655,6 @@ member { offset: 448 } member { - id: 0x87fdbe87 - name: "mmap" - type_id: 0x2ed842b7 - offset: 576 -} -member { id: 0x87fe4e24 name: "mmap" type_id: 0x2d214d35 @@ -124484,11 +126875,6 @@ member { offset: 32 } member { - id: 0x4779a89b - name: "mmio" - type_id: 0x373a3dac -} -member { id: 0x78030744 name: "mmio_always_on" type_id: 0x4585663f @@ -124501,66 +126887,18 @@ member { type_id: 0x18bd6530 } member { - id: 0x41a58807 - name: "mmio_cur_fragment" - type_id: 0x6720d32f - offset: 1440 -} -member { id: 0xdd74e29a name: "mmio_enabled" type_id: 0x178c0a08 offset: 64 } member { - id: 0x22f5be35 - name: "mmio_exit_kernel" - type_id: 0x92233392 - offset: 6912 -} -member { - id: 0x3c9c64dc - name: "mmio_exit_user" - type_id: 0x92233392 - offset: 6848 -} -member { - id: 0x0abc4886 - name: "mmio_fragments" - type_id: 0x5d2762c3 - offset: 1536 -} -member { - id: 0xe4aa6cb8 - name: "mmio_is_write" - type_id: 0x6720d32f - offset: 1408 -} -member { id: 0xdba12957 name: "mmio_len" type_id: 0xe62ebf07 offset: 512 } member { - id: 0xb16b8efe - name: "mmio_needed" - type_id: 0x6720d32f - offset: 1344 -} -member { - id: 0x22a96429 - name: "mmio_nr_fragments" - type_id: 0x6720d32f - offset: 1472 -} -member { - id: 0xf337f353 - name: "mmio_read_completed" - type_id: 0x6720d32f - offset: 1376 -} -member { id: 0x12cc7367 name: "mmio_start" type_id: 0x33756485 @@ -124573,75 +126911,6 @@ member { offset: 1280 } member { - id: 0x6d5a2dc5 - name: "mmu" - type_id: 0x38e86333 - offset: 192 -} -member { - id: 0x6dab2c05 - name: "mmu" - type_id: 0xc9e16a53 -} -member { - id: 0x1c0c4ea6 - name: "mmu_invalidate_in_progress" - type_id: 0xfc0e1dbd - offset: 26048 -} -member { - id: 0xf7c73e7d - name: "mmu_invalidate_range_end" - type_id: 0x33756485 - offset: 26176 -} -member { - id: 0xc81d2fc7 - name: "mmu_invalidate_range_start" - type_id: 0x33756485 - offset: 26112 -} -member { - id: 0x59a47d0f - name: "mmu_invalidate_seq" - type_id: 0x33756485 - offset: 25984 -} -member { - id: 0x833819ed - name: "mmu_lock" - type_id: 0xf4933b90 -} -member { - id: 0x4938a60d - name: "mmu_notifier" - type_id: 0x846ab93f - offset: 25408 -} -member { - id: 0x18b48436 - name: "mmu_page_cache" - type_id: 0xa2ba72d6 -} -member { - id: 0x1a817692 - name: "mn_active_invalidate_count" - type_id: 0x33756485 - offset: 18368 -} -member { - id: 0x8174053d - name: "mn_invalidate_lock" - type_id: 0xf313e71a - offset: 18304 -} -member { - id: 0xf11c4ad7 - name: "mn_memslots_update_rcuwait" - type_id: 0xdba44af3 - offset: 18432 -} -member { id: 0x32301a1f name: "mnt" type_id: 0x9871ee6b @@ -124933,6 +127202,18 @@ member { offset: 7680 } member { + id: 0x87085ac9 + name: "mode" + type_id: 0x9547a3da + offset: 1952 +} +member { + id: 0x87085bff + name: "mode" + type_id: 0x9547a3da + offset: 128 +} +member { id: 0x8709c295 name: "mode" type_id: 0x94d699ef @@ -125128,12 +127409,6 @@ member { offset: 32 } member { - id: 0x87fa34df - name: "mode" - type_id: 0x6720d32f - offset: 384 -} -member { id: 0x87fa354d name: "mode" type_id: 0x6720d32f @@ -125649,10 +127924,10 @@ member { offset: 4352 } member { - id: 0xc6a08da1 + id: 0xc6a08382 name: "monitored_devices" type_id: 0xd3c80119 - offset: 49856 + offset: 50240 } member { id: 0x6383498a @@ -125804,22 +128079,6 @@ member { offset: 704 } member { - id: 0xfc27981e - name: "mp_state" - type_id: 0xe62ebf07 -} -member { - id: 0xfcc328ac - name: "mp_state" - type_id: 0x029d28cb - offset: 66816 -} -member { - id: 0x34f49183 - name: "mpidr" - type_id: 0xc9082b19 -} -member { id: 0x9410bf1b name: "mpls_features" type_id: 0x2584a3b9 @@ -126186,6 +128445,11 @@ member { offset: 384 } member { + id: 0xe2057d5b + name: "msg" + type_id: 0x054f691a +} +member { id: 0xe260f8b5 name: "msg" type_id: 0x60ca2c23 @@ -126340,12 +128604,6 @@ member { offset: 64 } member { - id: 0x67f93f00 - name: "msg_page" - type_id: 0xedf277ba - offset: 192 -} -member { id: 0x91e9d7fd name: "msg_parser" type_id: 0x3382a638 @@ -126537,12 +128795,6 @@ member { type_id: 0xa5e1bddf } member { - id: 0x7abe829e - name: "msis_require_devid" - type_id: 0x6d7f5ff6 - offset: 104 -} -member { id: 0x8e2397ea name: "msix_base" type_id: 0x18bd6530 @@ -126599,16 +128851,6 @@ member { offset: 1408 } member { - id: 0x324f2583 - name: "msr" - type_id: 0x079bc2f5 -} -member { - id: 0x32ae90fe - name: "msr" - type_id: 0xe62ebf07 -} -member { id: 0xcf473d6a name: "msr_saved_flags" type_id: 0x5d8155a5 @@ -126621,6 +128863,23 @@ member { offset: 1152 } member { + id: 0x8571ffda + name: "mss_cache" + type_id: 0xc9082b19 + offset: 13408 +} +member { + id: 0x5ddbff68 + name: "mss_clamp" + type_id: 0x914dbfdc + offset: 176 +} +member { + id: 0xf3d1e1b3 + name: "mstamp" + type_id: 0x92233392 +} +member { id: 0xeb62513d name: "mt" type_id: 0x19f65b03 @@ -126704,6 +128963,30 @@ member { offset: 64 } member { + id: 0x3641013e + name: "mtu_info" + type_id: 0xc9082b19 + offset: 18624 +} +member { + id: 0x541b592a + name: "mtu_probe" + type_id: 0x0904167f + offset: 18560 +} +member { + id: 0x2e3a46f9 + name: "mtu_reduced" + type_id: 0x0f626ee5 + offset: 640 +} +member { + id: 0x3a21c0f4 + name: "mtx" + type_id: 0xf313e71a + offset: 1760 +} +member { id: 0x3a75162c name: "mtx" type_id: 0xa7c362b0 @@ -126746,6 +129029,12 @@ member { offset: 64 } member { + id: 0xe7efca93 + name: "multi" + type_id: 0xf86b845e + offset: 64 +} +member { id: 0xfcd3aab9 name: "multi_block" type_id: 0x4585663f @@ -127076,6 +129365,11 @@ member { offset: 2688 } member { + id: 0x4659cf92 + name: "n" + type_id: 0x3f0185ef +} +member { id: 0xc101e64f name: "n2" type_id: 0x4585663f @@ -127142,6 +129436,12 @@ member { offset: 2240 } member { + id: 0x04227360 + name: "n_buffers" + type_id: 0x607419c2 + offset: 704 +} +member { id: 0x650782f7 name: "n_channels" type_id: 0x6720d32f @@ -127390,6 +129690,12 @@ member { offset: 32 } member { + id: 0x0cc91dc5 + name: "n_sz" + type_id: 0xf435685e + offset: 512 +} +member { id: 0xdc10e384 name: "n_tables" type_id: 0x4585663f @@ -127492,12 +129798,6 @@ member { offset: 32 } member { - id: 0x0d114fce - name: "name" - type_id: 0xca2a51af - offset: 128 -} -member { id: 0x0d273c21 name: "name" type_id: 0xfc59be2e @@ -127649,6 +129949,12 @@ member { type_id: 0x4d65b854 } member { + id: 0x0d9941a0 + name: "name" + type_id: 0x42201dce + offset: 160 +} +member { id: 0x0d9944ca name: "name" type_id: 0x42201dce @@ -127661,6 +129967,12 @@ member { offset: 128 } member { + id: 0x0d994758 + name: "name" + type_id: 0x42201dce + offset: 512 +} +member { id: 0x0d9948a1 name: "name" type_id: 0x42201dce @@ -127673,6 +129985,12 @@ member { offset: 672 } member { + id: 0x0d994b65 + name: "name" + type_id: 0x42201dce + offset: 1728 +} +member { id: 0x0d994c40 name: "name" type_id: 0x42201dce @@ -127765,12 +130083,6 @@ member { offset: 32 } member { - id: 0x0dc6047f - name: "name" - type_id: 0x1d61e0cf - offset: 128 -} -member { id: 0x0dc6099d name: "name" type_id: 0x1d61e0cf @@ -127873,12 +130185,6 @@ member { offset: 1280 } member { - id: 0x0ddfea33 - name: "name" - type_id: 0x0483e6f8 - offset: 2432 -} -member { id: 0x0ddfef10 name: "name" type_id: 0x0483e6f8 @@ -128342,12 +130648,6 @@ member { offset: 64 } member { - id: 0xb1e7f3ff - name: "nassgireq" - type_id: 0x6d7f5ff6 - offset: 392 -} -member { id: 0x452670ab name: "nat_bysource" type_id: 0x49a73111 @@ -128503,10 +130803,15 @@ member { offset: 320 } member { - id: 0xe5f6e117 + id: 0x11638e21 + name: "ncm_parm" + type_id: 0xc4793083 +} +member { + id: 0xe5f6efa3 name: "ncmd_timer" type_id: 0xf1159c31 - offset: 20736 + offset: 21120 } member { id: 0x724b21cb @@ -128602,12 +130907,6 @@ member { offset: 1152 } member { - id: 0xb7cbdc47 - name: "ndata" - type_id: 0xe62ebf07 - offset: 32 -} -member { id: 0x4ce502de name: "ndctl" type_id: 0x80e63dcd @@ -129286,6 +131585,12 @@ member { offset: 32 } member { + id: 0x9460fdf7 + name: "need_reserved_buffers" + type_id: 0x4585663f + offset: 1408 +} +member { id: 0xa5ad7a15 name: "need_retune" type_id: 0x6720d32f @@ -129310,6 +131615,12 @@ member { offset: 8 } member { + id: 0x247d2bc2 + name: "need_shrink" + type_id: 0xb02b353a + offset: 2880 +} +member { id: 0x394e18c1 name: "need_sync" type_id: 0x295c7202 @@ -129373,6 +131684,13 @@ member { bitsize: 1 } member { + id: 0xf55a45f8 + name: "needs_bio_set_dev" + type_id: 0x6d7f5ff6 + offset: 581 + bitsize: 1 +} +member { id: 0x87f2640c name: "needs_force_resume" type_id: 0x4585663f @@ -129519,6 +131837,12 @@ member { offset: 384 } member { + id: 0xe3a3de7e + name: "nested_devlink" + type_id: 0x0cf3d8fe + offset: 1024 +} +member { id: 0x5f6b4acf name: "nested_policy" type_id: 0x3a40fc42 @@ -129571,6 +131895,12 @@ member { offset: 704 } member { + id: 0x723de0ca + name: "net" + type_id: 0x32a623d7 + offset: 128 +} +member { id: 0x723dee2d name: "net" type_id: 0x32a623d7 @@ -129594,6 +131924,18 @@ member { offset: 30720 } member { + id: 0x171ea46a + name: "net_frag_header_len" + type_id: 0x914dbfdc + offset: 400 +} +member { + id: 0x729f250d + name: "net_header_len" + type_id: 0x914dbfdc + offset: 384 +} +member { id: 0x61d0c33e name: "net_id" type_id: 0x4585663f @@ -129870,12 +132212,6 @@ member { bitsize: 4 } member { - id: 0xe719c8c0 - name: "new_value" - type_id: 0x33756485 - offset: 64 -} -member { id: 0xe723c4b2 name: "new_value" type_id: 0x097a80cb @@ -129999,6 +132335,11 @@ member { type_id: 0x3846864c } member { + id: 0x11cc9887 + name: "next" + type_id: 0x3f985801 +} +member { id: 0x11ccea6a name: "next" type_id: 0x3feab580 @@ -130100,6 +132441,12 @@ member { type_id: 0x2d5e3e76 } member { + id: 0x11e1e8dd + name: "next" + type_id: 0x12e0cbae + offset: 192 +} +member { id: 0x11e57880 name: "next" type_id: 0x16749208 @@ -130187,6 +132534,12 @@ member { offset: 128 } member { + id: 0x11f10efe + name: "next" + type_id: 0x0206e829 + offset: 192 +} +member { id: 0x11f1c380 name: "next" type_id: 0x02c35f57 @@ -130210,6 +132563,12 @@ member { offset: 896 } member { + id: 0x11f3dd43 + name: "next" + type_id: 0x00daeb4b + offset: 448 +} +member { id: 0x11f3fee9 name: "next" type_id: 0x00fe3621 @@ -130242,6 +132601,11 @@ member { offset: 64 } member { + id: 0x11f8bba0 + name: "next" + type_id: 0x0bbb7f1b +} +member { id: 0x11f8e110 name: "next" type_id: 0x0be1cf6e @@ -130475,6 +132839,11 @@ member { type_id: 0x2d5e3e76 } member { + id: 0x11613e69 + name: "next_rcu" + type_id: 0x0bbfad26 +} +member { id: 0x4074d0ef name: "next_request" type_id: 0x3d8b1920 @@ -130487,6 +132856,12 @@ member { offset: 1856 } member { + id: 0x7cd3c1cb + name: "next_sector" + type_id: 0xd0b3a203 + offset: 64 +} +member { id: 0x430d2e4c name: "next_seq" type_id: 0x92233392 @@ -130575,6 +132950,11 @@ member { type_id: 0x92233392 } member { + id: 0xe85e1d32 + name: "nexthdr" + type_id: 0xb3e7bac9 +} +member { id: 0xe8c4a21b name: "nexthdr" type_id: 0x295c7202 @@ -130593,6 +132973,12 @@ member { offset: 4608 } member { + id: 0xe2d3a144 + name: "nexthop" + type_id: 0xe276adef + offset: 32 +} +member { id: 0xd02f52bb name: "nf" type_id: 0x856ef6c4 @@ -130747,6 +133133,12 @@ member { type_id: 0x1f9da9a8 } member { + id: 0x713b460f + name: "nh" + type_id: 0x1e9c55da + offset: 288 +} +member { id: 0xdb1c1848 name: "nh_all" type_id: 0x7db04ce7 @@ -130775,6 +133167,11 @@ member { type_id: 0x17b2105b } member { + id: 0xd51ec347 + name: "nh_family" + type_id: 0xc9082b19 +} +member { id: 0x9fb787a3 name: "nh_flags" type_id: 0x295c7202 @@ -130945,6 +133342,12 @@ member { offset: 64 } member { + id: 0x25da85de + name: "nhoff" + type_id: 0xe8034002 + offset: 112 +} +member { id: 0xd1269bee name: "nht" type_id: 0x3017223b @@ -131392,6 +133795,18 @@ member { bitsize: 1 } member { + id: 0x59c1c7cb + name: "no_skb_reserve" + type_id: 0x6d7f5ff6 + offset: 1480 +} +member { + id: 0xec4c530d + name: "no_sleep" + type_id: 0x6d7f5ff6 + offset: 416 +} +member { id: 0x1ccebffc name: "no_start_on_add" type_id: 0x4585663f @@ -131485,11 +133900,6 @@ member { bitsize: 1 } member { - id: 0x603fc5a7 - name: "nobjs" - type_id: 0x6720d32f -} -member { id: 0x0934e011 name: "noboot" type_id: 0x6d7f5ff6 @@ -131536,10 +133946,16 @@ member { type_id: 0x6c32e522 } member { - id: 0x0f3ca933 + id: 0x0f3ca80d name: "node" type_id: 0x49a73111 - offset: 3712 + offset: 384 +} +member { + id: 0x0f3ca934 + name: "node" + type_id: 0x49a73111 + offset: 256 } member { id: 0x0f3ca99f @@ -131781,12 +134197,6 @@ member { offset: 52096 } member { - id: 0xdeaef990 - name: "node_idx" - type_id: 0x6720d32f - offset: 8512 -} -member { id: 0xd7b5832b name: "node_list" type_id: 0xd3c80119 @@ -131845,6 +134255,13 @@ member { type_id: 0x8cbe1332 } member { + id: 0xb932820e + name: "nodefrag" + type_id: 0xb3e7bac9 + offset: 7111 + bitsize: 1 +} +member { id: 0xd988ce91 name: "nodeinfo" type_id: 0xc3f77699 @@ -131857,6 +134274,12 @@ member { offset: 8696 } member { + id: 0x788bc17d + name: "nodemask" + type_id: 0x2fb2b385 + offset: 64 +} +member { id: 0x8b5fc0c2 name: "nodename" type_id: 0x3e10b518 @@ -132058,6 +134481,13 @@ member { bitsize: 1 } member { + id: 0xa073f76a + name: "nonagle" + type_id: 0x295c7202 + offset: 13864 + bitsize: 4 +} +member { id: 0x5cf54d0d name: "nonatomic" type_id: 0x6d7f5ff6 @@ -132299,21 +134729,16 @@ member { offset: 256 } member { - id: 0x56e50a84 - name: "notify" - type_id: 0x130fee63 -} -member { id: 0x56f8e261 name: "notify" type_id: 0x0eee7907 offset: 576 } member { - id: 0x56f92eab + id: 0x56f92467 name: "notify" type_id: 0x0f2f95e7 - offset: 50432 + offset: 50816 } member { id: 0x56fba0e3 @@ -132465,6 +134890,12 @@ member { offset: 9088 } member { + id: 0xfdfb52fb + name: "notsent_lowat" + type_id: 0xc9082b19 + offset: 15616 +} +member { id: 0xf8489542 name: "now_frame" type_id: 0x4585663f @@ -132724,11 +135155,6 @@ member { offset: 192 } member { - id: 0xc2c8918f - name: "nr_cpus" - type_id: 0x6720d32f -} -member { id: 0x98f55073 name: "nr_cpus_allowed" type_id: 0x6720d32f @@ -132741,12 +135167,6 @@ member { offset: 2416 } member { - id: 0xb9a58615 - name: "nr_db_lpis" - type_id: 0x6720d32f - offset: 448 -} -member { id: 0x244cd0bd name: "nr_deferred" type_id: 0x269af4e9 @@ -133022,12 +135442,6 @@ member { offset: 8160 } member { - id: 0x2af96acc - name: "nr_lpis" - type_id: 0x6720d32f - offset: 64 -} -member { id: 0x183eb746 name: "nr_maps" type_id: 0x4585663f @@ -133052,12 +135466,6 @@ member { offset: 64 } member { - id: 0x8a52dd6e - name: "nr_memslot_pages" - type_id: 0x33756485 - offset: 896 -} -member { id: 0x02abbc80 name: "nr_migratepages" type_id: 0x4585663f @@ -133307,12 +135715,6 @@ member { offset: 704 } member { - id: 0xddd1c1b9 - name: "nr_regions" - type_id: 0x6720d32f - offset: 224 -} -member { id: 0x5a432fb1 name: "nr_relocs" type_id: 0x4585663f @@ -133355,12 +135757,6 @@ member { offset: 192 } member { - id: 0xf6e30a95 - name: "nr_rt_entries" - type_id: 0xc9082b19 - offset: 31616 -} -member { id: 0xd6072070 name: "nr_running" type_id: 0x74d29cf1 @@ -133462,18 +135858,6 @@ member { offset: 8640 } member { - id: 0x5eb23b58 - name: "nr_spis" - type_id: 0x6720d32f - offset: 128 -} -member { - id: 0x5eb23fa1 - name: "nr_spis" - type_id: 0x6720d32f - offset: 32 -} -member { id: 0x47396359 name: "nr_spread_over" type_id: 0x4585663f @@ -133625,12 +136009,6 @@ member { type_id: 0x4585663f } member { - id: 0x6ba53b1d - name: "nr_vpes" - type_id: 0x6720d32f - offset: 256 -} -member { id: 0xd52b9423 name: "nr_wakeups" type_id: 0x92233392 @@ -133714,6 +136092,12 @@ member { offset: 51840 } member { + id: 0x42b6c2d1 + name: "nr_zones" + type_id: 0x4585663f + offset: 10240 +} +member { id: 0x42b6ca98 name: "nr_zones" type_id: 0x4585663f @@ -134127,6 +136511,12 @@ member { offset: 40 } member { + id: 0x197cb73f + name: "num_allocated" + type_id: 0x4585663f + offset: 1696 +} +member { id: 0xf074f928 name: "num_alt_modes" type_id: 0x295c7202 @@ -134507,6 +136897,12 @@ member { offset: 64 } member { + id: 0xe8ffd602 + name: "num_discard_bios" + type_id: 0x4585663f + offset: 320 +} +member { id: 0x9494166e name: "num_domains" type_id: 0x4585663f @@ -134572,12 +136968,6 @@ member { offset: 192 } member { - id: 0xaeede60f - name: "num_events" - type_id: 0x6720d32f - offset: 3392 -} -member { id: 0x7f574879 name: "num_exentries" type_id: 0xc9082b19 @@ -134632,6 +137022,12 @@ member { offset: 7552 } member { + id: 0xf997f643 + name: "num_flush_bios" + type_id: 0x4585663f + offset: 288 +} +member { id: 0x7bcccefc name: "num_formats" type_id: 0x4585663f @@ -134703,12 +137099,6 @@ member { offset: 320 } member { - id: 0xf95b9cd7 - name: "num_id_bits" - type_id: 0xc9082b19 - offset: 31936 -} -member { id: 0x3e07f1e9 name: "num_ids" type_id: 0x4585663f @@ -135151,12 +137541,6 @@ member { offset: 1920 } member { - id: 0xbf52270e - name: "num_pri_bits" - type_id: 0xc9082b19 - offset: 31904 -} -member { id: 0x4c06bbb4 name: "num_private" type_id: 0xe8034002 @@ -135359,6 +137743,12 @@ member { offset: 6272 } member { + id: 0x7cf21fa8 + name: "num_sacks" + type_id: 0x295c7202 + offset: 152 +} +member { id: 0xbcb6b731 name: "num_sample_rates" type_id: 0xe62ebf07 @@ -135371,6 +137761,12 @@ member { offset: 128 } member { + id: 0x772e5751 + name: "num_secure_erase_bios" + type_id: 0x4585663f + offset: 352 +} +member { id: 0xab5509da name: "num_segs" type_id: 0x4585663f @@ -135527,6 +137923,12 @@ member { offset: 64 } member { + id: 0x0e2a551a + name: "num_targets" + type_id: 0x4585663f + offset: 1664 +} +member { id: 0x72a5b6f7 name: "num_tbps" type_id: 0x6720d32f @@ -135695,6 +138097,12 @@ member { offset: 7616 } member { + id: 0x4fa0a319 + name: "num_write_zeroes_bios" + type_id: 0x4585663f + offset: 384 +} +member { id: 0xd474418d name: "numa_node" type_id: 0xe62ebf07 @@ -135731,6 +138139,12 @@ member { offset: 8480 } member { + id: 0x0f379684 + name: "numa_node_id" + type_id: 0x6720d32f + offset: 1440 +} +member { id: 0x35834d78 name: "numa_pwq_tbl" type_id: 0xcc357790 @@ -136033,12 +138447,6 @@ member { offset: 448 } member { - id: 0x2aa4f724 - name: "objects" - type_id: 0x0cbf60eb - offset: 256 -} -member { id: 0x89cabbe4 name: "objects" type_id: 0x4585663f @@ -136057,10 +138465,10 @@ member { type_id: 0xad7c0a89 } member { - id: 0x7a226550 + id: 0x7a226b7d name: "objs_per_zspage" type_id: 0x6720d32f - offset: 608 + offset: 544 } member { id: 0x33953b25 @@ -136163,6 +138571,13 @@ member { offset: 736 } member { + id: 0x4f7607b0 + name: "odstopts" + type_id: 0xe8034002 + offset: 9 + bitsize: 1 +} +member { id: 0xc03481fc name: "oemid" type_id: 0xc93e017b @@ -136450,10 +138865,10 @@ member { offset: 704 } member { - id: 0x8b1c39bc + id: 0x8b1c3d04 name: "off" type_id: 0xc9082b19 - offset: 96 + offset: 32 } member { id: 0x8b35cac9 @@ -136821,6 +139236,12 @@ member { offset: 128 } member { + id: 0x9bd5d3ca + name: "offset" + type_id: 0xc9082b19 + offset: 1728 +} +member { id: 0x9bd5d4ef name: "offset" type_id: 0xc9082b19 @@ -136844,12 +139265,6 @@ member { offset: 128 } member { - id: 0x9bf12a52 - name: "offset" - type_id: 0xedf277ba - offset: 64 -} -member { id: 0x9bf12eb3 name: "offset" type_id: 0xedf277ba @@ -136960,6 +139375,13 @@ member { offset: 5632 } member { + id: 0xba0eaaec + name: "ohopopts" + type_id: 0xe8034002 + offset: 7 + bitsize: 1 +} +member { id: 0xa5064bbb name: "oifindex" type_id: 0x6720d32f @@ -136972,6 +139394,12 @@ member { offset: 832 } member { + id: 0xe5a6cde2 + name: "oiv" + type_id: 0x00c72527 + offset: 896 +} +member { id: 0x1e0dc421 name: "okfn" type_id: 0x2d2736e0 @@ -137026,6 +139454,12 @@ member { offset: 96 } member { + id: 0x1293b17d + name: "old_sector" + type_id: 0xd0b3a203 + offset: 256 +} +member { id: 0xa9aee94d name: "old_sk_destruct" type_id: 0x0f626ee5 @@ -137260,12 +139694,6 @@ member { offset: 9920 } member { - id: 0xc21468d0 - name: "online_vcpus" - type_id: 0x74d29cf1 - offset: 18688 -} -member { id: 0x7adb50ba name: "onlink" type_id: 0xb3e7bac9 @@ -137350,6 +139778,12 @@ member { offset: 7776 } member { + id: 0x78ec3163 + name: "ooo_last_skb" + type_id: 0x054f691a + offset: 17088 +} +member { id: 0xdfd3d3d5 name: "ooo_okay" type_id: 0xb3e7bac9 @@ -137496,10 +139930,10 @@ member { type_id: 0x2cfc979f } member { - id: 0xad98abe8 + id: 0xad98a9ad name: "open" type_id: 0x2c2c3c2e - offset: 50048 + offset: 50432 } member { id: 0xad98dbd1 @@ -137631,6 +140065,12 @@ member { offset: 960 } member { + id: 0xadb9bed8 + name: "open" + type_id: 0x0d36eefe + offset: 2240 +} +member { id: 0xadba96dc name: "open" type_id: 0x0e1719d7 @@ -137654,6 +140094,12 @@ member { offset: 64 } member { + id: 0x3961e57f + name: "open_count" + type_id: 0x74d29cf1 + offset: 1568 +} +member { id: 0x3961e85c name: "open_count" type_id: 0x74d29cf1 @@ -137869,12 +140315,6 @@ member { offset: 1152 } member { - id: 0xaf890e76 - name: "ops" - type_id: 0x02067bf4 - offset: 768 -} -member { id: 0xaf8c0a54 name: "ops" type_id: 0x070c84c2 @@ -137940,12 +140380,6 @@ member { offset: 8704 } member { - id: 0xafaa08ab - name: "ops" - type_id: 0x2101ca02 - offset: 128 -} -member { id: 0xafaa22ec name: "ops" type_id: 0x212a866f @@ -137987,12 +140421,6 @@ member { type_id: 0x3b991d29 } member { - id: 0xafb0c299 - name: "ops" - type_id: 0x3bcbf8c5 - offset: 128 -} -member { id: 0xafb0ea3a name: "ops" type_id: 0x3bedc96c @@ -138185,6 +140613,12 @@ member { offset: 64 } member { + id: 0xafb646e8 + name: "ops" + type_id: 0x3d46e073 + offset: 256 +} +member { id: 0xafb6613a name: "ops" type_id: 0x3d669bc4 @@ -138346,6 +140780,12 @@ member { offset: 17088 } member { + id: 0xafba248b + name: "ops" + type_id: 0x3121a074 + offset: 2432 +} +member { id: 0xafba3fb1 name: "ops" type_id: 0x313bf3b2 @@ -138380,9 +140820,9 @@ member { type_id: 0x31c93a7f } member { - id: 0xafbacb95 + id: 0xafbad944 name: "ops" - type_id: 0x31cb364e + type_id: 0x31d9e79a } member { id: 0xafbb0869 @@ -138415,6 +140855,12 @@ member { offset: 64 } member { + id: 0xafbb76d0 + name: "ops" + type_id: 0x307eba5c + offset: 192 +} +member { id: 0xafbba914 name: "ops" type_id: 0x30a17e95 @@ -138450,11 +140896,6 @@ member { offset: 3392 } member { - id: 0xafbcd9c0 - name: "ops" - type_id: 0x37d96371 -} -member { id: 0xafbcdef5 name: "ops" type_id: 0x37d8983e @@ -138503,6 +140944,12 @@ member { offset: 576 } member { + id: 0xafbe6621 + name: "ops" + type_id: 0x356e4b27 + offset: 192 +} +member { id: 0xafbed153 name: "ops" type_id: 0x35d1f0b8 @@ -138601,17 +141048,46 @@ member { offset: 640 } member { + id: 0xf64ae666 + name: "opt" + type_id: 0x00cc5f1f + offset: 64 +} +member { id: 0xf6548174 name: "opt" type_id: 0x1eafac69 } member { + id: 0xf6635680 + name: "opt" + type_id: 0x29719ae3 + offset: 128 +} +member { id: 0xf6637b68 name: "opt" type_id: 0x295c7202 offset: 128 } member { + id: 0xf676260e + name: "opt" + type_id: 0x3c087d20 + offset: 256 +} +member { + id: 0xf67626a5 + name: "opt" + type_id: 0x3c087d20 +} +member { + id: 0xf6762c03 + name: "opt" + type_id: 0x3c087d20 + offset: 896 +} +member { id: 0xf6da3e67 name: "opt" type_id: 0x901d84ad @@ -138630,12 +141106,24 @@ member { offset: 392 } member { + id: 0x5e1efe31 + name: "opt_flen" + type_id: 0xe8034002 + offset: 64 +} +member { id: 0xb8d181f5 name: "opt_mapping_size" type_id: 0x2f5fcbf3 offset: 1472 } member { + id: 0x00c73957 + name: "opt_nflen" + type_id: 0xe8034002 + offset: 80 +} +member { id: 0xb435ce80 name: "opt_sectors" type_id: 0x4585663f @@ -138698,6 +141186,12 @@ member { offset: 576 } member { + id: 0x3cedbd03 + name: "optlen" + type_id: 0x5d8155a5 + offset: 64 +} +member { id: 0x39c46a92 name: "opts" type_id: 0x1eafac69 @@ -138710,6 +141204,12 @@ member { offset: 256 } member { + id: 0xb51c2507 + name: "order" + type_id: 0xc5d9d969 + offset: 224 +} +member { id: 0xb53fd5a4 name: "order" type_id: 0xe62ebf07 @@ -138799,6 +141299,24 @@ member { type_id: 0xbdd18903 } member { + id: 0xd07b78d9 + name: "orig_bio" + type_id: 0x15a30023 + offset: 512 +} +member { + id: 0x17637816 + name: "orig_cb" + type_id: 0xfc2c3062 + offset: 192 +} +member { + id: 0x9772cb65 + name: "orig_data" + type_id: 0x18bd6530 + offset: 128 +} +member { id: 0x25ffe762 name: "orig_description" type_id: 0x3e10b518 @@ -138975,11 +141493,6 @@ member { offset: 96 } member { - id: 0x35649aee - name: "osi" - type_id: 0x129d9eba -} -member { id: 0x8d9b8608 name: "osid" type_id: 0xc9082b19 @@ -139010,6 +141523,13 @@ member { offset: 96 } member { + id: 0x1e410881 + name: "osrcrt" + type_id: 0xe8034002 + offset: 1 + bitsize: 1 +} +member { id: 0x9dbc540c name: "otg" type_id: 0x0db3ac0f @@ -139068,6 +141588,12 @@ member { offset: 160 } member { + id: 0xb335975f + name: "out" + type_id: 0xc440583a + offset: 448 +} +member { id: 0xb396f982 name: "out" type_id: 0x6720d32f @@ -139121,6 +141647,12 @@ member { offset: 128 } member { + id: 0xbdac13df + name: "out_ep" + type_id: 0x0e2680c2 + offset: 1856 +} +member { id: 0x4b42e885 name: "out_epnum" type_id: 0x4585663f @@ -139156,6 +141688,12 @@ member { offset: 1088 } member { + id: 0x0b88a7b8 + name: "out_of_order_queue" + type_id: 0xeb923a9b + offset: 17024 +} +member { id: 0x21d1ea91 name: "out_q_ctx" type_id: 0x09b350b9 @@ -139211,6 +141749,12 @@ member { offset: 192 } member { + id: 0xdf6660f4 + name: "output" + type_id: 0x2d2736e0 + offset: 576 +} +member { id: 0xdf666814 name: "output" type_id: 0x2d2736e0 @@ -139383,11 +141927,6 @@ member { offset: 8000 } member { - id: 0x39d6cdec - name: "overflow_work" - type_id: 0xb95bf932 -} -member { id: 0x4c799d4b name: "overhead" type_id: 0x914dbfdc @@ -139442,12 +141981,6 @@ member { offset: 13120 } member { - id: 0x8dc5ba0f - name: "override_halt_poll_ns" - type_id: 0x6d7f5ff6 - offset: 34272 -} -member { id: 0xf1d2ff61 name: "override_only" type_id: 0xe62ebf07 @@ -139526,6 +142059,12 @@ member { offset: 224 } member { + id: 0xc099cc3c + name: "overwrite_mask" + type_id: 0xc9082b19 + offset: 128 +} +member { id: 0x9e1f254a name: "overwrite_state" type_id: 0x3a534a58 @@ -139627,12 +142166,6 @@ member { offset: 256 } member { - id: 0x4a85cb53 - name: "owner" - type_id: 0x18bd6530 - offset: 832 -} -member { id: 0x4a85cf2e name: "owner" type_id: 0x18bd6530 @@ -139834,6 +142367,12 @@ member { type_id: 0x30f06408 } member { + id: 0x4ad6a726 + name: "owner" + type_id: 0x4bdbd862 + offset: 576 +} +member { id: 0x4aeb46f7 name: "owner" type_id: 0x763389c7 @@ -139888,6 +142427,18 @@ member { offset: 640 } member { + id: 0xb8ff9609 + name: "owners" + type_id: 0x5e8dc7f4 + offset: 384 +} +member { + id: 0xb8ff9c83 + name: "owners" + type_id: 0x5e8dc7f4 + offset: 512 +} +member { id: 0xa6673206 name: "p" type_id: 0xd67c82d4 @@ -139927,6 +142478,12 @@ member { offset: 896 } member { + id: 0xa68e47c8 + name: "p" + type_id: 0x3f0185ef + offset: 192 +} +member { id: 0xa6984880 name: "p" type_id: 0x290604c6 @@ -140154,6 +142711,12 @@ member { type_id: 0x0113dde3 } member { + id: 0x73d7a8f4 + name: "p_sz" + type_id: 0xf435685e + offset: 704 +} +member { id: 0x5fce0bc2 name: "p_u16" type_id: 0x2ec35650 @@ -140199,6 +142762,12 @@ member { type_id: 0x1f6d4933 } member { + id: 0xb18c6cab + name: "pacing_timer" + type_id: 0xcd7704bf + offset: 15744 +} +member { id: 0xa9322d92 name: "pack_id" type_id: 0x6720d32f @@ -140275,6 +142844,12 @@ member { offset: 64 } member { + id: 0xfdbc865b + name: "packets_out" + type_id: 0xc9082b19 + offset: 14496 +} +member { id: 0x716716c4 name: "packing" type_id: 0xb3e7bac9 @@ -140287,24 +142862,12 @@ member { offset: 44704 } member { - id: 0x6b32a1dc - name: "pad" - type_id: 0xe62ebf07 - offset: 544 -} -member { id: 0x6b32a238 name: "pad" type_id: 0xe62ebf07 offset: 32 } member { - id: 0x6b32a680 - name: "pad" - type_id: 0xe62ebf07 - offset: 96 -} -member { id: 0x6b32af03 name: "pad" type_id: 0xe62ebf07 @@ -140322,12 +142885,6 @@ member { offset: 1368 } member { - id: 0x6b90bd2c - name: "pad" - type_id: 0x44377683 - offset: 8 -} -member { id: 0x6bb3a9c1 name: "pad" type_id: 0x6720d32f @@ -140374,12 +142931,6 @@ member { offset: 16 } member { - id: 0xbad0c2a3 - name: "pad2" - type_id: 0xe62ebf07 - offset: 32 -} -member { id: 0xbaffe3eb name: "pad2" type_id: 0xc9082b19 @@ -140469,11 +143020,6 @@ member { offset: 24 } member { - id: 0x646aaa85 - name: "padding" - type_id: 0x8ca7b4cd -} -member { id: 0x64774c4f name: "padding" type_id: 0x914dbfdc @@ -140486,11 +143032,6 @@ member { offset: 16 } member { - id: 0x6491fbda - name: "padding" - type_id: 0x77f6ebb4 -} -member { id: 0x64a65d9f name: "padding" type_id: 0x4050ae51 @@ -140514,6 +143055,13 @@ member { offset: 8808 } member { + id: 0xb13666fe + name: "padding" + type_id: 0xe8034002 + offset: 566 + bitsize: 1 +} +member { id: 0x1366b916 name: "padding0" type_id: 0x4050ae51 @@ -140526,12 +143074,6 @@ member { offset: 32 } member { - id: 0xd06a5757 - name: "padding1" - type_id: 0x8d58bd1a - offset: 16 -} -member { id: 0x9481c1a2 name: "padding2" type_id: 0x23cbe491 @@ -140584,6 +143126,17 @@ member { offset: 640 } member { + id: 0x32051484 + name: "page" + type_id: 0x00c72527 +} +member { + id: 0x32051c2a + name: "page" + type_id: 0x00c72527 + offset: 768 +} +member { id: 0x322121cd name: "page" type_id: 0x24f7f3ca @@ -140637,12 +143190,6 @@ member { offset: 2912 } member { - id: 0x21516548 - name: "page_count" - type_id: 0x2c7bd73f - offset: 320 -} -member { id: 0x3189af2e name: "page_done" type_id: 0x0f2d8dda @@ -140955,10 +143502,10 @@ member { bitsize: 1 } member { - id: 0x338646f2 + id: 0x338649f9 name: "pages_per_zspage" type_id: 0x6720d32f - offset: 640 + offset: 576 } member { id: 0xf9521fd2 @@ -141091,11 +143638,6 @@ member { offset: 288 } member { - id: 0xae5a4181 - name: "papr_hcall" - type_id: 0x2c2be6c7 -} -member { id: 0xfe407cce name: "par" type_id: 0x18bd6530 @@ -141177,6 +143719,12 @@ member { offset: 640 } member { + id: 0xb8b3f43c + name: "param_list" + type_id: 0xd3c80119 + offset: 704 +} +member { id: 0xb8ba1efc name: "param_lock" type_id: 0xa7c362b0 @@ -141207,12 +143755,6 @@ member { offset: 192 } member { - id: 0x4b34b9aa - name: "params" - type_id: 0x9addce46 - offset: 192 -} -member { id: 0x4b3911d5 name: "params" type_id: 0x9775d653 @@ -141237,12 +143779,6 @@ member { offset: 128 } member { - id: 0x4bf9b0b2 - name: "params" - type_id: 0x57d5dd0d - offset: 128 -} -member { id: 0xe64a6945 name: "params_len" type_id: 0x295c7202 @@ -141691,6 +144227,12 @@ member { offset: 224 } member { + id: 0xc70bed2a + name: "park" + type_id: 0x0aee7ba0 + offset: 512 +} +member { id: 0x53dc4767 name: "park_pending" type_id: 0x74d29cf1 @@ -142215,12 +144757,6 @@ member { offset: 64 } member { - id: 0x6d45f1ba - name: "pause" - type_id: 0x6d7f5ff6 - offset: 15416 -} -member { id: 0x6d4faa04 name: "pause" type_id: 0x6720d32f @@ -142344,11 +144880,6 @@ member { offset: 768 } member { - id: 0xa5f74e1c - name: "pc" - type_id: 0x33756485 -} -member { id: 0xa33342ec name: "pci" type_id: 0x2b34b7f1 @@ -143102,16 +145633,16 @@ member { offset: 32 } member { - id: 0xfe933ca0 + id: 0xfe933c61 name: "pend_le_conns" type_id: 0xd3c80119 - offset: 30208 + offset: 30592 } member { - id: 0x5520b527 + id: 0x5520b6a1 name: "pend_le_reports" type_id: 0xd3c80119 - offset: 30336 + offset: 30720 } member { id: 0xdcf13bd4 @@ -143120,12 +145651,6 @@ member { offset: 128 } member { - id: 0x8109b274 - name: "pendbaser" - type_id: 0x92233392 - offset: 31808 -} -member { id: 0xf91c8462 name: "pending" type_id: 0xd3c80119 @@ -143155,6 +145680,11 @@ member { offset: 17856 } member { + id: 0xf97ca310 + name: "pending" + type_id: 0xb3e7bac9 +} +member { id: 0xf98ac68d name: "pending" type_id: 0x4585663f @@ -143215,6 +145745,12 @@ member { offset: 256 } member { + id: 0x4c3543b9 + name: "pending_io" + type_id: 0x064d6086 + offset: 2176 +} +member { id: 0x9f9c13ba name: "pending_irq" type_id: 0xb95bf932 @@ -143227,18 +145763,6 @@ member { offset: 6496 } member { - id: 0x141c8cee - name: "pending_last" - type_id: 0x6d7f5ff6 - offset: 960 -} -member { - id: 0x004ca63d - name: "pending_latch" - type_id: 0x6d7f5ff6 - offset: 488 -} -member { id: 0xe53a2590 name: "pending_link" type_id: 0xd3c80119 @@ -143269,12 +145793,6 @@ member { offset: 928 } member { - id: 0x09b42908 - name: "pending_page" - type_id: 0xedf277ba - offset: 320 -} -member { id: 0x8c0336f4 name: "pending_reset" type_id: 0x6d7f5ff6 @@ -143361,16 +145879,16 @@ member { offset: 2240 } member { - id: 0xfa784db4 + id: 0xfa7845a1 name: "per_adv_data" type_id: 0x6afc5176 - offset: 42768 + offset: 43152 } member { - id: 0x1b95acfb + id: 0x1b95ac31 name: "per_adv_data_len" type_id: 0xb3e7bac9 - offset: 44784 + offset: 45168 } member { id: 0x528e9321 @@ -143409,6 +145927,12 @@ member { offset: 768 } member { + id: 0x319b41b8 + name: "per_io_data_size" + type_id: 0x4585663f + offset: 416 +} +member { id: 0xd61b14f9 name: "per_parent_data" type_id: 0x6d7f5ff6 @@ -143485,12 +146009,6 @@ member { offset: 7104 } member { - id: 0x34c743f9 - name: "percpu_pmu" - type_id: 0x331b3d77 - offset: 2176 -} -member { id: 0x4db3a084 name: "percpu_pvec_drained" type_id: 0x6d7f5ff6 @@ -143503,12 +146021,6 @@ member { offset: 6208 } member { - id: 0xf94346ab - name: "perf_event" - type_id: 0x1dce0fdd - offset: 64 -} -member { id: 0xf96ca45e name: "perf_event" type_id: 0x32281bdf @@ -144008,6 +146520,11 @@ member { offset: 52352 } member { + id: 0x64bb7964 + name: "pfn" + type_id: 0x33756485 +} +member { id: 0xeb463452 name: "pfn_base" type_id: 0x33756485 @@ -144050,16 +146567,10 @@ member { offset: 64 } member { - id: 0x03a47022 - name: "pfr0_csv2" - type_id: 0x295c7202 - offset: 3136 -} -member { - id: 0x42988d63 - name: "pfr0_csv3" - type_id: 0x295c7202 - offset: 3144 + id: 0x6980d678 + name: "pfnum" + type_id: 0x914dbfdc + offset: 128 } member { id: 0x88830a16 @@ -144068,12 +146579,6 @@ member { offset: 1184 } member { - id: 0x331a3623 - name: "pgd" - type_id: 0x11281698 - offset: 64 -} -member { id: 0x332a4920 name: "pgd" type_id: 0x2154832c @@ -144090,24 +146595,12 @@ member { type_id: 0xe381831a } member { - id: 0x99236fa3 - name: "pgd_phys" - type_id: 0xbdd18903 - offset: 64 -} -member { id: 0x2d272759 name: "pgdat" type_id: 0x03038214 offset: 11200 } member { - id: 0xdd74def2 - name: "pgm_code" - type_id: 0xe62ebf07 - offset: 64 -} -member { id: 0x2b8ac6b5 name: "pgmap" type_id: 0x129a6a0a @@ -144178,12 +146671,6 @@ member { offset: 224 } member { - id: 0x7f170713 - name: "pgt" - type_id: 0x114e61a5 - offset: 128 -} -member { id: 0x5a4cacba name: "pgtables_bytes" type_id: 0xb02b353a @@ -144474,6 +146961,11 @@ member { type_id: 0x5abe7554 } member { + id: 0x304c83ff + name: "phys" + type_id: 0x14ca5b0f +} +member { id: 0x3065f315 name: "phys" type_id: 0x3db8d8c8 @@ -144502,11 +146994,6 @@ member { type_id: 0xe8034002 } member { - id: 0xbda607c1 - name: "phys_addr" - type_id: 0xedf277ba -} -member { id: 0xbdabdba2 name: "phys_addr" type_id: 0xe02e14d6 @@ -144582,12 +147069,6 @@ member { type_id: 0x295c7202 } member { - id: 0x66a97394 - name: "phys_to_virt" - type_id: 0x14e88d4b - offset: 384 -} -member { id: 0xda31db2e name: "physfn" type_id: 0x11e6864c @@ -144863,22 +147344,21 @@ member { type_id: 0xe62ebf07 } member { - id: 0x7491240c + id: 0x749120ed name: "pid" type_id: 0x18456730 - offset: 64 } member { - id: 0x74912824 + id: 0x7491240c name: "pid" type_id: 0x18456730 - offset: 192 + offset: 64 } member { - id: 0x74912d9b + id: 0x74912824 name: "pid" type_id: 0x18456730 - offset: 1088 + offset: 192 } member { id: 0x74912e66 @@ -145192,6 +147672,12 @@ member { offset: 512 } member { + id: 0xe47590e7 + name: "pinet6" + type_id: 0x13fe8737 + offset: 6848 +} +member { id: 0x1762f1c8 name: "ping" type_id: 0x2cde74fe @@ -145204,6 +147690,12 @@ member { offset: 4800 } member { + id: 0x517ebeed + name: "pingpong" + type_id: 0xb3e7bac9 + offset: 16 +} +member { id: 0xc9b75710 name: "pinned" type_id: 0xd3c80119 @@ -145235,12 +147727,6 @@ member { offset: 640 } member { - id: 0x037e99ae - name: "pinned_pages" - type_id: 0xeb923a9b - offset: 320 -} -member { id: 0x88a70e08 name: "pinned_vm" type_id: 0x1f4573ef @@ -145289,11 +147775,6 @@ member { offset: 768 } member { - id: 0x782f8731 - name: "pio" - type_id: 0xe62ebf07 -} -member { id: 0x999ac82a name: "pipe" type_id: 0x76e78cd9 @@ -145586,6 +148067,12 @@ member { bitsize: 3 } member { + id: 0xe8802f7b + name: "pktoptions" + type_id: 0x054f691a + offset: 960 +} +member { id: 0x0a3be422 name: "pkts_acked" type_id: 0xc9082b19 @@ -145603,17 +148090,6 @@ member { offset: 192 } member { - id: 0xe908f26f - name: "pkvm" - type_id: 0xf75540c7 - offset: 3392 -} -member { - id: 0xb403a636 - name: "pkvm_memcache" - type_id: 0xce6b97ea -} -member { id: 0x451925c4 name: "placement" type_id: 0x3316fc74 @@ -145702,12 +148178,6 @@ member { bitsize: 1 } member { - id: 0x1a1fd0a0 - name: "plat_device" - type_id: 0x3f37d9d5 - offset: 3584 -} -member { id: 0x38c654ae name: "platform_data" type_id: 0x18bd6530 @@ -145959,36 +148429,24 @@ member { offset: 12768 } member { - id: 0x15c30de0 - name: "pmc" - type_id: 0x44c5e79a - offset: 320 -} -member { id: 0x6ed4d38c name: "pmc_width" type_id: 0xe8034002 offset: 384 } member { - id: 0xca44b141 - name: "pmceid_bitmap" - type_id: 0xb914bfab - offset: 3456 -} -member { - id: 0x28894114 - name: "pmceid_ext_bitmap" - type_id: 0xb914bfab - offset: 3520 -} -member { id: 0x56639b84 name: "pmd" type_id: 0x21082bfc offset: 384 } member { + id: 0x56639dd1 + name: "pmd" + type_id: 0x21082bfc + offset: 320 +} +member { id: 0x569cedab name: "pmd" type_id: 0xde7f96df @@ -146032,12 +148490,6 @@ member { offset: 2368 } member { - id: 0xa6727baa - name: "pmscr_el1" - type_id: 0x92233392 - offset: 4096 -} -member { id: 0x98e24df0 name: "pmsr_capa" type_id: 0x3771322e @@ -146062,6 +148514,19 @@ member { offset: 2368 } member { + id: 0x6e852b14 + name: "pmtudisc" + type_id: 0xe8034002 + offset: 563 + bitsize: 3 +} +member { + id: 0x79ed9153 + name: "pmtudisc" + type_id: 0xb3e7bac9 + offset: 7096 +} +member { id: 0x933349d1 name: "pmu" type_id: 0x3b12c8e0 @@ -146073,17 +148538,6 @@ member { type_id: 0x3b12c8e0 } member { - id: 0x93b6279b - name: "pmu" - type_id: 0xbe704ca9 - offset: 62272 -} -member { - id: 0x93ce5218 - name: "pmu" - type_id: 0xc60bc51e -} -member { id: 0x2cb55697 name: "pmu_cpu_context" type_id: 0x30bd8a92 @@ -146108,30 +148562,12 @@ member { offset: 768 } member { - id: 0x3957d3b9 - name: "pmu_filter" - type_id: 0x064d6086 - offset: 2944 -} -member { - id: 0x03f344e6 - name: "pmu_lock" - type_id: 0xc8b17aa7 - offset: 2112 -} -member { id: 0xbadfff7b name: "pmu_private" type_id: 0x18bd6530 offset: 1280 } member { - id: 0xd81b71f1 - name: "pmuver" - type_id: 0x6720d32f - offset: 2496 -} -member { id: 0x809d8aa2 name: "pmxops" type_id: 0x31dc8106 @@ -146900,6 +149336,11 @@ member { offset: 10048 } member { + id: 0xde69b270 + name: "pool" + type_id: 0xe97fe194 +} +member { id: 0xde82c205 name: "pool" type_id: 0x0206e690 @@ -146963,6 +149404,11 @@ member { offset: 64 } member { + id: 0xe52eef97 + name: "pool_type" + type_id: 0xa7051d2f +} +member { id: 0x6a296ea1 name: "pools" type_id: 0xd3c80119 @@ -146994,10 +149440,10 @@ member { offset: 2432 } member { - id: 0x48131453 + id: 0x48322e2f name: "port" - type_id: 0xe8034002 - offset: 16 + type_id: 0xc93e017b + offset: 96 } member { id: 0x4848f266 @@ -147068,6 +149514,12 @@ member { offset: 384 } member { + id: 0x48c075a0 + name: "port" + type_id: 0x3b68ec61 + offset: 64 +} +member { id: 0x48cc7358 name: "port" type_id: 0x3760766d @@ -147172,6 +149624,36 @@ member { type_id: 0x18bd6530 } member { + id: 0x9e84141c + name: "port_del" + type_id: 0x2d7ac448 + offset: 2560 +} +member { + id: 0xa5c2f472 + name: "port_fn_state_get" + type_id: 0x2e54f1b8 + offset: 2624 +} +member { + id: 0xeb46d6f6 + name: "port_fn_state_set" + type_id: 0x2e20981d + offset: 2688 +} +member { + id: 0x2e72e7e0 + name: "port_function_hw_addr_get" + type_id: 0x2e477ad3 + offset: 2368 +} +member { + id: 0x85af182d + name: "port_function_hw_addr_set" + type_id: 0x2e7ffbfe + offset: 2432 +} +member { id: 0x97b320de name: "port_handed_over" type_id: 0x2fc0a389 @@ -147190,6 +149672,19 @@ member { offset: 64 } member { + id: 0xbf1e816a + name: "port_index" + type_id: 0x4585663f + offset: 32 +} +member { + id: 0x0317cd78 + name: "port_index_valid" + type_id: 0x295c7202 + offset: 144 + bitsize: 1 +} +member { id: 0x1e504a04 name: "port_info" type_id: 0x19086ca4 @@ -147220,6 +149715,12 @@ member { offset: 8256 } member { + id: 0xcd6874e1 + name: "port_list" + type_id: 0xd3c80119 + offset: 64 +} +member { id: 0x7daf8d82 name: "port_lock" type_id: 0xf313e71a @@ -147232,6 +149733,12 @@ member { offset: 1216 } member { + id: 0x90793300 + name: "port_new" + type_id: 0x2d044ee7 + offset: 2496 +} +member { id: 0xe64fd4ef name: "port_num" type_id: 0x295c7202 @@ -147255,6 +149762,11 @@ member { type_id: 0xc9082b19 } member { + id: 0x217694f6 + name: "port_ops" + type_id: 0x33fd261b +} +member { id: 0x2418a130 name: "port_power" type_id: 0x2fc6747c @@ -147303,6 +149815,12 @@ member { offset: 8064 } member { + id: 0xa22f8c42 + name: "port_split" + type_id: 0x2d000b85 + offset: 384 +} +member { id: 0x2083fe73 name: "port_status" type_id: 0x914dbfdc @@ -147350,12 +149868,30 @@ member { offset: 256 } member { + id: 0xf43affcb + name: "port_type_set" + type_id: 0x2e5686ce + offset: 320 +} +member { + id: 0x5f87545a + name: "port_unsplit" + type_id: 0x2d0429c2 + offset: 448 +} +member { id: 0x4b84c909 name: "port_usb" type_id: 0x2dde023d offset: 3648 } member { + id: 0x4b911741 + name: "port_usb" + type_id: 0x380c33d1 + offset: 64 +} +member { id: 0xabdfb454 name: "port_write_buf" type_id: 0x18745118 @@ -147572,10 +150108,10 @@ member { offset: 576 } member { - id: 0x319b8398 + id: 0x319b89ab name: "post_init" type_id: 0x2c2c3c2e - offset: 50560 + offset: 50944 } member { id: 0xf5022a3d @@ -147643,6 +150179,12 @@ member { offset: 64 } member { + id: 0xc58884a8 + name: "postsuspend" + type_id: 0x540fc033 + offset: 896 +} +member { id: 0x5016a0d8 name: "potential_contaminant" type_id: 0x6d7f5ff6 @@ -148425,6 +150967,12 @@ member { offset: 704 } member { + id: 0x552de7df + name: "precise_timestamps" + type_id: 0x6d7f5ff6 + offset: 576 +} +member { id: 0x5f1f9d63 name: "precision" type_id: 0x39470e64 @@ -148437,6 +150985,12 @@ member { offset: 64 } member { + id: 0xfcce6b61 + name: "pred_flags" + type_id: 0xe276adef + offset: 12320 +} +member { id: 0xd9582306 name: "pred_probs" type_id: 0x3e3c1b86 @@ -148478,12 +151032,6 @@ member { type_id: 0x92233392 } member { - id: 0xad12ae54 - name: "preempt_notifier" - type_id: 0x89c67026 - offset: 64 -} -member { id: 0x44e4fcbb name: "preempt_notifiers" type_id: 0x5e8dc7f4 @@ -148496,12 +151044,6 @@ member { offset: 704 } member { - id: 0x1bd1d822 - name: "preempted" - type_id: 0x6d7f5ff6 - offset: 1936 -} -member { id: 0xa093e6ac name: "preenable" type_id: 0x2c78b884 @@ -148760,6 +151302,12 @@ member { offset: 832 } member { + id: 0xd1d88fb4 + name: "prepare_ioctl" + type_id: 0xb5818a23 + offset: 1216 +} +member { id: 0x25513c26 name: "prepare_late" type_id: 0x2df0016c @@ -148873,6 +151421,12 @@ member { offset: 3648 } member { + id: 0xc22f1b4d + name: "preresume" + type_id: 0xcd86b17c + offset: 960 +} +member { id: 0x34aa29cb name: "present" type_id: 0x5d8155a5 @@ -148915,6 +151469,18 @@ member { offset: 6312 } member { + id: 0x542288b2 + name: "presuspend" + type_id: 0xeab0ac41 + offset: 768 +} +member { + id: 0x8a92bcd2 + name: "presuspend_undo" + type_id: 0xa3284d98 + offset: 832 +} +member { id: 0xedbb0da6 name: "pretimeout" type_id: 0x0f985851 @@ -149408,6 +151974,12 @@ member { offset: 128 } member { + id: 0xa9ca3fe9 + name: "prior_cwnd" + type_id: 0xc9082b19 + offset: 15136 +} +member { id: 0x8be7c123 name: "prior_delivered" type_id: 0xc9082b19 @@ -149431,6 +152003,12 @@ member { type_id: 0x92233392 } member { + id: 0x17b8fb75 + name: "prior_ssthresh" + type_id: 0xc9082b19 + offset: 17824 +} +member { id: 0x10027c29 name: "priority" type_id: 0xe62ebf07 @@ -149496,15 +152074,10 @@ member { offset: 512 } member { - id: 0x10cd0450 + id: 0x10dc10b1 name: "priority" - type_id: 0x295c7202 - offset: 688 -} -member { - id: 0x10cd0767 - name: "priority" - type_id: 0x295c7202 + type_id: 0x384f7d7c + offset: 288 } member { id: 0x10ebf2d4 @@ -149680,6 +152253,12 @@ member { offset: 448 } member { + id: 0x59303e30 + name: "priv" + type_id: 0x391f15ea + offset: 64 +} +member { id: 0x5935516c name: "priv" type_id: 0x3c7b932c @@ -149728,6 +152307,12 @@ member { offset: 59520 } member { + id: 0x59c303be + name: "priv" + type_id: 0xca2a51af + offset: 4096 +} +member { id: 0x59c3092e name: "priv" type_id: 0xca2a51af @@ -149918,12 +152503,6 @@ member { offset: 192 } member { - id: 0x91796f71 - name: "private" - type_id: 0x18bd6530 - offset: 128 -} -member { id: 0x91a931d3 name: "private" type_id: 0xc8e4d7d1 @@ -150140,12 +152719,6 @@ member { offset: 3264 } member { - id: 0xdbd2d18f - name: "private_irqs" - type_id: 0x4449c48b - offset: 2496 -} -member { id: 0x78439144 name: "private_list" type_id: 0xd3c80119 @@ -150483,6 +153056,30 @@ member { offset: 2208 } member { + id: 0x934c941a + name: "probe_seq_end" + type_id: 0xc9082b19 + offset: 32 +} +member { + id: 0x45320605 + name: "probe_seq_start" + type_id: 0xc9082b19 +} +member { + id: 0x745418c4 + name: "probe_size" + type_id: 0xc9082b19 + offset: 64 + bitsize: 31 +} +member { + id: 0x60865bc2 + name: "probe_timestamp" + type_id: 0xc9082b19 + offset: 96 +} +member { id: 0xf69ec1af name: "probe_type" type_id: 0x189d62e7 @@ -151155,10 +153752,10 @@ member { offset: 1152 } member { - id: 0xc9aa7830 + id: 0xc9aa7d35 name: "promisc" type_id: 0x74d29cf1 - offset: 31040 + offset: 31424 } member { id: 0x66064d03 @@ -151311,12 +153908,6 @@ member { offset: 2112 } member { - id: 0x703b904f - name: "propbaser" - type_id: 0x92233392 - offset: 896 -} -member { id: 0x29846bfc name: "propbit" type_id: 0xa562355d @@ -151517,18 +154108,6 @@ member { offset: 7616 } member { - id: 0x7efa09f3 - name: "protected_hyp_mem" - type_id: 0x1f4573ef - offset: 128 -} -member { - id: 0x46e4dafc - name: "protected_shared_mem" - type_id: 0x1f4573ef - offset: 192 -} -member { id: 0x5d16456b name: "proto" type_id: 0x7584e7da @@ -151558,6 +154137,12 @@ member { offset: 64 } member { + id: 0x5d4a9b23 + name: "proto" + type_id: 0x295c7202 + offset: 8 +} +member { id: 0x5d4a9e3a name: "proto" type_id: 0x295c7202 @@ -151777,6 +154362,11 @@ member { offset: 320 } member { + id: 0xd3c8aa61 + name: "provision" + type_id: 0x2d4c6881 +} +member { id: 0x61ba1604 name: "proxy_ndp" type_id: 0x0faae5b1 @@ -151801,6 +154391,18 @@ member { offset: 4480 } member { + id: 0x3ce5a47e + name: "prr_delivered" + type_id: 0xc9082b19 + offset: 15168 +} +member { + id: 0xe9e7b435 + name: "prr_out" + type_id: 0xc9082b19 + offset: 15200 +} +member { id: 0x282acc7e name: "prrr" type_id: 0xc9082b19 @@ -151866,12 +154468,6 @@ member { type_id: 0x0d436e43 } member { - id: 0x2c10bf52 - name: "psci_version" - type_id: 0xc9082b19 - offset: 2816 -} -member { id: 0x2bf0ee90 name: "psec" type_id: 0x2ccc936a @@ -151997,12 +154593,6 @@ member { offset: 64 } member { - id: 0xedfdadd3 - name: "pstate_ss" - type_id: 0x6d7f5ff6 - offset: 32 -} -member { id: 0x946deb91 name: "pstr" type_id: 0x25ab49bb @@ -152055,21 +154645,21 @@ member { offset: 704 } member { - id: 0xa18e706b + id: 0xa17fe2dc name: "pte" - type_id: 0xc32dc55c + type_id: 0x32bee099 + offset: 384 } member { - id: 0xeef9224d - name: "pte_is_counted_cb" - type_id: 0xf2ecf779 - offset: 64 + id: 0xa18e706b + name: "pte" + type_id: 0xc32dc55c } member { - id: 0x8661d99b - name: "pte_ops" - type_id: 0x2e6ac856 - offset: 320 + id: 0xce4422cd + name: "ptl" + type_id: 0x3654c061 + offset: 448 } member { id: 0xce442d14 @@ -152416,6 +155006,12 @@ member { offset: 13184 } member { + id: 0xa598ac7c + name: "pushed_seq" + type_id: 0xc9082b19 + offset: 15648 +} +member { id: 0x4ac85a2c name: "put" type_id: 0x2f5ea9dc @@ -152494,10 +155090,10 @@ member { offset: 64 } member { - id: 0x68c1b0bb + id: 0x68c6881b name: "put_page" - type_id: 0x0f3dfb90 - offset: 256 + type_id: 0x080d391b + offset: 192 } member { id: 0xee3c87e4 @@ -152542,18 +155138,18 @@ member { offset: 256 } member { + id: 0x82e1aed1 + name: "putting_binary" + type_id: 0x6d7f5ff6 + offset: 128 +} +member { id: 0x26fa53f2 name: "putx64" type_id: 0x07941efa offset: 320 } member { - id: 0x0f7f629e - name: "pvmfw_load_addr" - type_id: 0x1b4ba19a - offset: 384 -} -member { id: 0x7cfddcb6 name: "pvt_info" type_id: 0x18bd6530 @@ -152710,6 +155306,12 @@ member { type_id: 0x407489b0 } member { + id: 0xe94def1c + name: "q" + type_id: 0x3f0185ef + offset: 256 +} +member { id: 0xe95c6150 name: "q" type_id: 0x2e8d5f05 @@ -152761,6 +155363,12 @@ member { type_id: 0xd3c80119 } member { + id: 0x30c8a340 + name: "q_sz" + type_id: 0xf435685e + offset: 768 +} +member { id: 0xc5c43282 name: "q_usage_counter" type_id: 0x3e40064a @@ -152861,6 +155469,18 @@ member { offset: 1056 } member { + id: 0x060b5e2a + name: "qinv" + type_id: 0x3f0185ef + offset: 448 +} +member { + id: 0x112d65f6 + name: "qinv_sz" + type_id: 0xf435685e + offset: 960 +} +member { id: 0x9b5b8e67 name: "qlen" type_id: 0xc9082b19 @@ -152890,6 +155510,18 @@ member { offset: 192 } member { + id: 0x9be65a12 + name: "qlen" + type_id: 0x74d29cf1 + offset: 96 +} +member { + id: 0x9bf5ac3e + name: "qlen" + type_id: 0x6720d32f + offset: 160 +} +member { id: 0xba491c1c name: "qlen_notify" type_id: 0x0c6d8d57 @@ -152918,6 +155550,12 @@ member { type_id: 0x3f74bbde } member { + id: 0x143073ec + name: "qmult" + type_id: 0x4585663f + offset: 832 +} +member { id: 0x91da22df name: "qnbytes" type_id: 0x6720d32f @@ -153225,6 +155863,12 @@ member { type_id: 0x09427c40 } member { + id: 0xaddb4c9f + name: "queue" + type_id: 0x09427c40 + offset: 1472 +} +member { id: 0xaddb4cea name: "queue" type_id: 0x09427c40 @@ -153413,6 +156057,11 @@ member { type_id: 0xf435685e } member { + id: 0x52c10ec0 + name: "queue_xmit" + type_id: 0x2c209d56 +} +member { id: 0xaa971b00 name: "queuecommand" type_id: 0x2cb23e2c @@ -153533,6 +156182,12 @@ member { offset: 5568 } member { + id: 0xdcf7e916 + name: "quick" + type_id: 0xb3e7bac9 + offset: 8 +} +member { id: 0x625ab578 name: "quick_threads" type_id: 0x6720d32f @@ -153771,12 +156426,6 @@ member { offset: 128 } member { - id: 0x766556ed - name: "r0" - type_id: 0x33756485 - offset: 64 -} -member { id: 0x9e0af45c name: "r2w_factor" type_id: 0x4585663f @@ -153801,6 +156450,12 @@ member { offset: 128 } member { + id: 0x2940a2be + name: "ra" + type_id: 0x7584e7da + offset: 32 +} +member { id: 0x0e79d07a name: "ra_chain" type_id: 0x333a16a5 @@ -153837,6 +156492,12 @@ member { offset: 384 } member { + id: 0x2c2c5bfb + name: "rack" + type_id: 0xd4132c46 + offset: 13504 +} +member { id: 0x7a85796a name: "radar_detect_regions" type_id: 0x295c7202 @@ -153968,12 +156629,6 @@ member { offset: 192 } member { - id: 0x0e6e7fb8 - name: "range" - type_id: 0xd2fe57e5 - offset: 64 -} -member { id: 0x0e957cc9 name: "range" type_id: 0x29f9c70b @@ -154219,6 +156874,13 @@ member { offset: 192 } member { + id: 0xd6330125 + name: "rate_app_limited" + type_id: 0x295c7202 + offset: 13858 + bitsize: 1 +} +member { id: 0x94569300 name: "rate_bytes_ps" type_id: 0x92233392 @@ -154243,6 +156905,12 @@ member { offset: 2144 } member { + id: 0x18e683dd + name: "rate_delivered" + type_id: 0xc9082b19 + offset: 15488 +} +member { id: 0x0f313303 name: "rate_den" type_id: 0x4585663f @@ -154267,6 +156935,36 @@ member { offset: 104 } member { + id: 0x47a61a29 + name: "rate_interval_us" + type_id: 0xc9082b19 + offset: 15520 +} +member { + id: 0x7f7f584f + name: "rate_leaf_parent_set" + type_id: 0x2d0a0361 + offset: 3136 +} +member { + id: 0x54806d5b + name: "rate_leaf_tx_max_set" + type_id: 0x2d154530 + offset: 2816 +} +member { + id: 0x049c1f00 + name: "rate_leaf_tx_share_set" + type_id: 0x2d154530 + offset: 2752 +} +member { + id: 0x4134711d + name: "rate_list" + type_id: 0xd3c80119 + offset: 192 +} +member { id: 0xd51bd1ef name: "rate_matching" type_id: 0x6720d32f @@ -154327,6 +157025,36 @@ member { offset: 1472 } member { + id: 0x3d9c68f5 + name: "rate_node_del" + type_id: 0x2d1c1d12 + offset: 3072 +} +member { + id: 0x573e57ed + name: "rate_node_new" + type_id: 0x2d081f17 + offset: 3008 +} +member { + id: 0x069fcabf + name: "rate_node_parent_set" + type_id: 0x2d0a0361 + offset: 3200 +} +member { + id: 0xeff7e2c9 + name: "rate_node_tx_max_set" + type_id: 0x2d154530 + offset: 2944 +} +member { + id: 0x7b7f9a93 + name: "rate_node_tx_share_set" + type_id: 0x2d154530 + offset: 2880 +} +member { id: 0xbc979606 name: "rate_num" type_id: 0x4585663f @@ -154675,10 +157403,10 @@ member { offset: 1224 } member { - id: 0x6fa9dc88 + id: 0x6fa9d3ef name: "raw_q" type_id: 0x578f9c2b - offset: 25344 + offset: 25728 } member { id: 0x3d617ac5 @@ -155202,6 +157930,12 @@ member { offset: 1408 } member { + id: 0x95dacba7 + name: "rcu" + type_id: 0xe3222f5b + offset: 3904 +} +member { id: 0x95dacce8 name: "rcu" type_id: 0xe3222f5b @@ -155360,6 +158094,12 @@ member { offset: 192 } member { + id: 0x608ed11c + name: "rcv_flowinfo" + type_id: 0xe276adef + offset: 608 +} +member { id: 0xeae5b95c name: "rcv_interval_us" type_id: 0xc9082b19 @@ -155372,6 +158112,24 @@ member { offset: 1280 } member { + id: 0xa514bd9b + name: "rcv_mss" + type_id: 0xe8034002 + offset: 176 +} +member { + id: 0x722b8728 + name: "rcv_nxt" + type_id: 0xc9082b19 + offset: 12480 +} +member { + id: 0x3a366be0 + name: "rcv_ooopack" + type_id: 0xc9082b19 + offset: 18240 +} +member { id: 0xd699ecd4 name: "rcv_probes_mcast" type_id: 0x33756485 @@ -155384,6 +158142,53 @@ member { offset: 448 } member { + id: 0x035a9f8f + name: "rcv_rtt_est" + type_id: 0x13c65297 + offset: 18304 +} +member { + id: 0xcebd1125 + name: "rcv_rtt_last_tsecr" + type_id: 0xc9082b19 + offset: 18272 +} +member { + id: 0x0249b0df + name: "rcv_saddr" + type_id: 0xe276adef +} +member { + id: 0x8a514678 + name: "rcv_ssthresh" + type_id: 0xc9082b19 + offset: 13472 +} +member { + id: 0x1ad125b2 + name: "rcv_tos" + type_id: 0xb3e7bac9 + offset: 7120 +} +member { + id: 0xa56c13a3 + name: "rcv_tsecr" + type_id: 0xc9082b19 + offset: 96 +} +member { + id: 0x9a3cd5ff + name: "rcv_tstamp" + type_id: 0xc9082b19 + offset: 12896 +} +member { + id: 0x908732db + name: "rcv_tsval" + type_id: 0xc9082b19 + offset: 64 +} +member { id: 0x1f3accfe name: "rcv_unacked" type_id: 0x914dbfdc @@ -155396,12 +158201,37 @@ member { offset: 7856 } member { + id: 0x073e90bb + name: "rcv_wnd" + type_id: 0xc9082b19 + offset: 15552 +} +member { + id: 0x64ea7467 + name: "rcv_wscale" + type_id: 0x914dbfdc + offset: 140 + bitsize: 4 +} +member { + id: 0x93db6466 + name: "rcv_wup" + type_id: 0xc9082b19 + offset: 12544 +} +member { id: 0x75627b5b name: "rcvlists_lock" type_id: 0xf313e71a offset: 704 } member { + id: 0x38961e9d + name: "rcvq_space" + type_id: 0x0e7661fa + offset: 18432 +} +member { id: 0x6bca0440 name: "rd" type_id: 0x3922fa08 @@ -155414,12 +158244,6 @@ member { offset: 64 } member { - id: 0xb5b5379c - name: "rd_iodev" - type_id: 0x60b9a60c - offset: 31360 -} -member { id: 0x5761a9c9 name: "rd_lock" type_id: 0xc8b17aa7 @@ -155437,11 +158261,6 @@ member { offset: 3712 } member { - id: 0xc63d4176 - name: "rd_regions" - type_id: 0xd3c80119 -} -member { id: 0x39c535a2 name: "rd_table" type_id: 0x3842259a @@ -155501,18 +158320,6 @@ member { offset: 7040 } member { - id: 0x525d4aae - name: "rdreg" - type_id: 0x116d36b8 - offset: 31680 -} -member { - id: 0xe932d634 - name: "rdreg_index" - type_id: 0xc9082b19 - offset: 31744 -} -member { id: 0x4163d7c4 name: "rdy_queue" type_id: 0xd3c80119 @@ -155630,11 +158437,6 @@ member { offset: 640 } member { - id: 0x485b3652 - name: "read" - type_id: 0x0669d6b3 -} -member { id: 0x486528a2 name: "read" type_id: 0x38751b21 @@ -155653,11 +158455,6 @@ member { offset: 1728 } member { - id: 0x487026f9 - name: "read" - type_id: 0x2d797d9d -} -member { id: 0x48703aa7 name: "read" type_id: 0x2d65237b @@ -155829,12 +158626,6 @@ member { offset: 384 } member { - id: 0x2635ef55 - name: "read_counter" - type_id: 0x1eba2d88 - offset: 2944 -} -member { id: 0xa1b42c88 name: "read_dbi" type_id: 0x18295f70 @@ -155847,6 +158638,12 @@ member { offset: 256 } member { + id: 0xffa6c51e + name: "read_error" + type_id: 0x7be80061 + offset: 592 +} +member { id: 0x26d2a405 name: "read_event_config" type_id: 0x2c45eb05 @@ -156251,30 +159048,6 @@ member { offset: 384 } member { - id: 0xa3f01223 - name: "ready" - type_id: 0x6d7f5ff6 - offset: 264 -} -member { - id: 0xa3f0172f - name: "ready" - type_id: 0x6d7f5ff6 - offset: 1944 -} -member { - id: 0xa3f017bd - name: "ready" - type_id: 0x6d7f5ff6 - offset: 8 -} -member { - id: 0x6bffa57c - name: "ready_for_interrupt_injection" - type_id: 0xb3e7bac9 - offset: 96 -} -member { id: 0xb8c769bd name: "ready_list" type_id: 0xd3c80119 @@ -156410,12 +159183,6 @@ member { type_id: 0xe62ebf07 } member { - id: 0xbbfcbfdf - name: "reason" - type_id: 0xe62ebf07 - offset: 64 -} -member { id: 0x63a5e94a name: "reattach_i3c_dev" type_id: 0x2d3f3c92 @@ -156434,6 +159201,12 @@ member { offset: 640 } member { + id: 0x198e2327 + name: "rebuild_header" + type_id: 0x2c24424a + offset: 128 +} +member { id: 0x659c25bc name: "recalc_accuracy" type_id: 0x066635bb @@ -156557,6 +159330,12 @@ member { offset: 32 } member { + id: 0x8a4b19d4 + name: "recover" + type_id: 0x2e1466a0 + offset: 64 +} +member { id: 0x8a6b6b4e name: "recover" type_id: 0x0e6ab35b @@ -156574,6 +159353,12 @@ member { type_id: 0x2fb994f1 } member { + id: 0x629c6b33 + name: "recovery_count" + type_id: 0x92233392 + offset: 1152 +} +member { id: 0xe75c7f73 name: "recovery_disabled" type_id: 0x6d7f5ff6 @@ -156644,16 +159429,16 @@ member { offset: 160 } member { - id: 0x0cd3502a + id: 0x0cd354a8 name: "recv_event" type_id: 0x054f691a - offset: 25792 + offset: 26176 } member { - id: 0x32fffef6 - name: "recv_page" - type_id: 0xedf277ba - offset: 256 + id: 0x2ae3d7d3 + name: "recv_sack_cache" + type_id: 0xb637307e + offset: 17472 } member { id: 0xc16c3147 @@ -156676,6 +159461,41 @@ member { offset: 2432 } member { + id: 0xd1ac6cca + name: "recverr" + type_id: 0xb3e7bac9 + offset: 7104 + bitsize: 1 +} +member { + id: 0xd1f78df1 + name: "recverr" + type_id: 0xe8034002 + offset: 560 + bitsize: 1 +} +member { + id: 0x7e1e1e3e + name: "recverr_rfc4884" + type_id: 0xe8034002 + offset: 574 + bitsize: 1 +} +member { + id: 0x7e45f9f6 + name: "recverr_rfc4884" + type_id: 0xb3e7bac9 + offset: 7113 + bitsize: 1 +} +member { + id: 0xf5e277a0 + name: "recvfragsize" + type_id: 0xe8034002 + offset: 14 + bitsize: 1 +} +member { id: 0x732441ac name: "recvmsg" type_id: 0x2cd5fc31 @@ -156688,6 +159508,13 @@ member { offset: 896 } member { + id: 0xd4dd684d + name: "recvmsg_inq" + type_id: 0x295c7202 + offset: 13869 + bitsize: 1 +} +member { id: 0xfd896136 name: "recycle_ibi_slot" type_id: 0x0e506d79 @@ -156772,11 +159599,6 @@ member { offset: 640 } member { - id: 0x325a63f3 - name: "redist_vcpu" - type_id: 0x08dcfb76 -} -member { id: 0x9ff3b23a name: "redundant_pic_cnt" type_id: 0xb3e7bac9 @@ -156800,10 +159622,10 @@ member { offset: 64 } member { - id: 0xe795c0f1 + id: 0xe795c368 name: "reenable_adv_work" type_id: 0x1f3c8679 - offset: 17024 + offset: 17408 } member { id: 0x2526a39a @@ -157283,17 +160105,35 @@ member { offset: 800 } member { + id: 0x05243818 + name: "refcount" + type_id: 0xa722c13e + offset: 224 +} +member { id: 0x05243b3c name: "refcount" type_id: 0xa722c13e } member { + id: 0x05243b72 + name: "refcount" + type_id: 0xa722c13e + offset: 3616 +} +member { id: 0x05243c4b name: "refcount" type_id: 0xa722c13e offset: 448 } member { + id: 0x05243d41 + name: "refcount" + type_id: 0xa722c13e + offset: 1280 +} +member { id: 0x053332c8 name: "refcount" type_id: 0xb02b353a @@ -157346,12 +160186,6 @@ member { type_id: 0x6f1daf87 } member { - id: 0x05ec0a8d - name: "refcount" - type_id: 0x6f1daf87 - offset: 544 -} -member { id: 0x05ec0d90 name: "refcount" type_id: 0x6f1daf87 @@ -157702,12 +160536,6 @@ member { type_id: 0x4585663f } member { - id: 0xddab36b7 - name: "reg_pmmir" - type_id: 0x92233392 - offset: 4352 -} -member { id: 0x7288a0e4 name: "reg_read" type_id: 0x321675e0 @@ -157916,6 +160744,12 @@ member { offset: 448 } member { + id: 0x4fd311c5 + name: "region_list" + type_id: 0xd3c80119 + offset: 832 +} +member { id: 0x4fd31bbd name: "region_list" type_id: 0xd3c80119 @@ -157928,12 +160762,6 @@ member { offset: 64 } member { - id: 0x4e19f41c - name: "regions" - type_id: 0x3e3a4a9e - offset: 128 -} -member { id: 0xa45f1ee8 name: "register_default_trap_handler" type_id: 0x2eb38aa4 @@ -158185,11 +161013,6 @@ member { offset: 320 } member { - id: 0x80627a33 - name: "regs" - type_id: 0x590c6dd8 -} -member { id: 0x80790d43 name: "regs" type_id: 0x42755f51 @@ -158211,11 +161034,6 @@ member { type_id: 0xd731b823 } member { - id: 0x80f111bb - name: "regs" - type_id: 0xca67e5f6 -} -member { id: 0x21d1f57f name: "regs_intr" type_id: 0x63bbe8bf @@ -158323,10 +161141,10 @@ member { offset: 160 } member { - id: 0x020ecba9 + id: 0x020eccd3 name: "reject_list" type_id: 0xd3c80119 - offset: 28928 + offset: 29312 } member { id: 0x904c6fcf @@ -158448,17 +161266,6 @@ member { offset: 192 } member { - id: 0xae94e729 - name: "release" - type_id: 0x0c15b27a -} -member { - id: 0xae95664d - name: "release" - type_id: 0x0d947d59 - offset: 256 -} -member { id: 0xae95b968 name: "release" type_id: 0x0d4cec11 @@ -158560,6 +161367,12 @@ member { type_id: 0x0f852e4a } member { + id: 0xae97905e + name: "release" + type_id: 0x0f626ee5 + offset: 256 +} +member { id: 0xae979233 name: "release" type_id: 0x0f67b75e @@ -158667,6 +161480,12 @@ member { offset: 64 } member { + id: 0x2e40d714 + name: "release_clone_rq" + type_id: 0x1ce28cf1 + offset: 576 +} +member { id: 0x06fc76ed name: "release_completion" type_id: 0x0562c566 @@ -158775,6 +161594,42 @@ member { offset: 1536 } member { + id: 0x83cb909a + name: "reload_actions" + type_id: 0x33756485 + offset: 64 +} +member { + id: 0xf8981c0e + name: "reload_down" + type_id: 0x2d594ead + offset: 192 +} +member { + id: 0xf5250b55 + name: "reload_failed" + type_id: 0x295c7202 + offset: 3584 + bitsize: 1 +} +member { + id: 0xb0509801 + name: "reload_limits" + type_id: 0x33756485 + offset: 128 +} +member { + id: 0x4492b926 + name: "reload_stats" + type_id: 0x93e3596e +} +member { + id: 0xa5ab7067 + name: "reload_up" + type_id: 0x2d8fd28a + offset: 256 +} +member { id: 0x88c18b9a name: "relocs" type_id: 0x18934663 @@ -158884,10 +161739,16 @@ member { offset: 2064 } member { - id: 0x17a11fa5 + id: 0x17a11866 name: "remote_oob_data" type_id: 0xd3c80119 - offset: 29696 + offset: 30080 +} +member { + id: 0xadd03a27 + name: "remote_reload_stats" + type_id: 0x93e3596e + offset: 192 } member { id: 0xa3daa863 @@ -158902,17 +161763,6 @@ member { offset: 2056 } member { - id: 0x8726cc6c - name: "remote_tlb_flush" - type_id: 0x92233392 -} -member { - id: 0xe4dfd298 - name: "remote_tlb_flush_requests" - type_id: 0x92233392 - offset: 64 -} -member { id: 0x39638edc name: "remote_tx_win" type_id: 0xe8034002 @@ -159250,12 +162100,31 @@ member { offset: 992 } member { + id: 0x599289d3 + name: "reo_wnd_persist" + type_id: 0x295c7202 + offset: 168 + bitsize: 5 +} +member { + id: 0xc2607053 + name: "reo_wnd_steps" + type_id: 0x295c7202 + offset: 160 +} +member { id: 0x5f8678ed name: "reoffload" type_id: 0x2d08fece offset: 832 } member { + id: 0xbffa6140 + name: "reord_seen" + type_id: 0xc9082b19 + offset: 14688 +} +member { id: 0x2e9f9cf8 name: "reorder_q" type_id: 0x578f9c2b @@ -159280,12 +162149,31 @@ member { offset: 1536 } member { + id: 0x6e16f71f + name: "reordering" + type_id: 0xc9082b19 + offset: 14656 +} +member { id: 0x52e0ed5f name: "rep" type_id: 0x75617428 offset: 2624 } member { + id: 0xf06d788d + name: "repair" + type_id: 0x295c7202 + offset: 13870 + bitsize: 1 +} +member { + id: 0xd0cd0f99 + name: "repair_queue" + type_id: 0x295c7202 + offset: 13872 +} +member { id: 0x345e6415 name: "repeat" type_id: 0x295c7202 @@ -159304,6 +162192,13 @@ member { offset: 2112 } member { + id: 0x7560b519 + name: "repflow" + type_id: 0xe8034002 + offset: 562 + bitsize: 1 +} +member { id: 0x4b7a046e name: "repl_mode" type_id: 0x798f2945 @@ -159567,6 +162462,12 @@ member { type_id: 0xe62ebf07 } member { + id: 0x0d0ed2a2 + name: "report_zones" + type_id: 0xb0c08c5a + offset: 1280 +} +member { id: 0x0d9120ed name: "report_zones" type_id: 0x2f37042d @@ -159579,12 +162480,24 @@ member { offset: 1064 } member { + id: 0x6ac681cd + name: "reporter_list" + type_id: 0xd3c80119 + offset: 960 +} +member { id: 0x6ac6877c name: "reporter_list" type_id: 0xd3c80119 offset: 2112 } member { + id: 0xefdb08b4 + name: "reporters_lock" + type_id: 0xa7c362b0 + offset: 1088 +} +member { id: 0xefdb0c31 name: "reporters_lock" type_id: 0xa7c362b0 @@ -159673,10 +162586,16 @@ member { offset: 704 } member { - id: 0x41d7b583 + id: 0x41836813 + name: "req_lock" + type_id: 0xf313e71a + offset: 256 +} +member { + id: 0x41d7be50 name: "req_lock" type_id: 0xa7c362b0 - offset: 25856 + offset: 26240 } member { id: 0x5b6c091d @@ -159756,22 +162675,22 @@ member { offset: 640 } member { - id: 0xfa136db1 + id: 0xfa136415 name: "req_result" type_id: 0xe62ebf07 - offset: 26464 + offset: 26848 } member { - id: 0x3e305241 + id: 0x3e305123 name: "req_skb" type_id: 0x054f691a - offset: 26496 + offset: 26880 } member { - id: 0xd432c148 + id: 0xd432cc5e name: "req_status" type_id: 0xe62ebf07 - offset: 26432 + offset: 26816 } member { id: 0x48ed2ec0 @@ -159786,10 +162705,10 @@ member { offset: 192 } member { - id: 0x380f14bc + id: 0x380f1158 name: "req_wait_q" type_id: 0x03913382 - offset: 26240 + offset: 26624 } member { id: 0xba5af507 @@ -159842,6 +162761,12 @@ member { offset: 32 } member { + id: 0xa9e8c522 + name: "reqsize" + type_id: 0x4585663f + offset: 576 +} +member { id: 0xa9e8c748 name: "reqsize" type_id: 0x4585663f @@ -159993,11 +162918,6 @@ member { offset: 5504 } member { - id: 0xf6476a4c - name: "request_interrupt_window" - type_id: 0xb3e7bac9 -} -member { id: 0x6fead5f8 name: "request_is_queued" type_id: 0x6d7f5ff6 @@ -160114,12 +163034,6 @@ member { offset: 3200 } member { - id: 0x9f936789 - name: "requests" - type_id: 0x92233392 - offset: 448 -} -member { id: 0x9fd286ba name: "requests" type_id: 0xd3c80119 @@ -160144,6 +163058,12 @@ member { offset: 256 } member { + id: 0xee14c6d9 + name: "requeue_list" + type_id: 0x0206e829 + offset: 3392 +} +member { id: 0xeec50ace name: "requeue_list" type_id: 0xd3c80119 @@ -160168,6 +163088,12 @@ member { offset: 18752 } member { + id: 0x37483f88 + name: "requeue_work" + type_id: 0x1f3c8679 + offset: 3008 +} +member { id: 0x37a61301 name: "requeue_work" type_id: 0xf1159c31 @@ -160288,18 +163214,6 @@ member { offset: 128 } member { - id: 0xacf78dbd - name: "resampler_list" - type_id: 0xd3c80119 - offset: 192 -} -member { - id: 0x85260d3d - name: "resampler_lock" - type_id: 0xa7c362b0 - offset: 320 -} -member { id: 0x1aa9410e name: "rescan" type_id: 0x6d7f5ff6 @@ -160822,12 +163736,6 @@ member { offset: 152 } member { - id: 0xd4d047b1 - name: "reserved" - type_id: 0xb3e7bac9 - offset: 72 -} -member { id: 0xd4d15398 name: "reserved" type_id: 0xb2fbbbc4 @@ -160864,6 +163772,12 @@ member { offset: 32 } member { + id: 0xd4ed0237 + name: "reserved" + type_id: 0x8ea78f33 + offset: 128 +} +member { id: 0xd4eef0a8 name: "reserved" type_id: 0x8d58bd1a @@ -161087,6 +164001,12 @@ member { offset: 8 } member { + id: 0x9a257ac5 + name: "reserved_buffers" + type_id: 0xd3c80119 + offset: 1280 +} +member { id: 0xaa963da5 name: "reserved_char" type_id: 0xbbda39d5 @@ -161146,6 +164066,12 @@ member { offset: 256 } member { + id: 0x6290b59b + name: "reset" + type_id: 0x2d12100b + offset: 128 +} +member { id: 0x6290e8f3 name: "reset" type_id: 0x2d4fc86f @@ -161233,12 +164159,6 @@ member { offset: 576 } member { - id: 0x62b29c82 - name: "reset" - type_id: 0x0f3dfb90 - offset: 3200 -} -member { id: 0x62b2a267 name: "reset" type_id: 0x0f04e7c1 @@ -161251,12 +164171,6 @@ member { offset: 128 } member { - id: 0x62d0d919 - name: "reset" - type_id: 0x6d7f5ff6 - offset: 136 -} -member { id: 0x62d0da0e name: "reset" type_id: 0x6d7f5ff6 @@ -161360,12 +164274,6 @@ member { bitsize: 1 } member { - id: 0xcfe72c2d - name: "reset_index" - type_id: 0xc9082b19 - offset: 32 -} -member { id: 0xb1b2f32e name: "reset_methods" type_id: 0x629984b1 @@ -161433,12 +164341,6 @@ member { offset: 512 } member { - id: 0xa700e1ff - name: "reset_state" - type_id: 0x3f42023f - offset: 67392 -} -member { id: 0xa4c83369 name: "reset_time" type_id: 0xd5df6730 @@ -161488,12 +164390,6 @@ member { offset: 128 } member { - id: 0x3a956acf - name: "resident" - type_id: 0x6d7f5ff6 - offset: 256 -} -member { id: 0x38e53c13 name: "residual_transfer_count" type_id: 0xe276adef @@ -161673,6 +164569,12 @@ member { offset: 9024 } member { + id: 0x17c3228f + name: "resource_list" + type_id: 0xd3c80119 + offset: 576 +} +member { id: 0x19740c14 name: "resources" type_id: 0x31e374a8 @@ -161911,18 +164813,6 @@ member { offset: 576 } member { - id: 0x07c203de - name: "result" - type_id: 0xedf277ba - offset: 64 -} -member { - id: 0x07c20efd - name: "result" - type_id: 0xedf277ba - offset: 128 -} -member { id: 0x07cb2b16 name: "result" type_id: 0xe4de5ee5 @@ -162089,6 +164979,12 @@ member { offset: 2624 } member { + id: 0xcae841ae + name: "resume" + type_id: 0x77a6dd29 + offset: 1024 +} +member { id: 0xa4d8edf6 name: "resume_done" type_id: 0x80dc069a @@ -162231,18 +165127,6 @@ member { offset: 320 } member { - id: 0x517bb4e8 - name: "ret" - type_id: 0xedf277ba - offset: 64 -} -member { - id: 0x517bb77e - name: "ret" - type_id: 0xedf277ba - offset: 448 -} -member { id: 0x51f16a64 name: "ret" type_id: 0x6720d32f @@ -162255,12 +165139,6 @@ member { offset: 32 } member { - id: 0x51f63d7f - name: "ret" - type_id: 0x607419c2 - offset: 512 -} -member { id: 0x4c003468 name: "ret_addr" type_id: 0x372be6f8 @@ -162290,12 +165168,6 @@ member { offset: 96 } member { - id: 0xff72a66c - name: "ret_value" - type_id: 0x33756485 - offset: 192 -} -member { id: 0xf64e43b1 name: "retimer" type_id: 0x26927abb @@ -162320,6 +165192,18 @@ member { offset: 7104 } member { + id: 0x0b8a1650 + name: "retrans_out" + type_id: 0xc9082b19 + offset: 14528 +} +member { + id: 0x92525caa + name: "retrans_stamp" + type_id: 0xc9082b19 + offset: 17888 +} +member { id: 0x2f1b8a8e name: "retrans_timeout" type_id: 0xe8034002 @@ -162332,6 +165216,12 @@ member { offset: 3264 } member { + id: 0x05aa0dfa + name: "retransmit_skb_hint" + type_id: 0x054f691a + offset: 16960 +} +member { id: 0x4f0d9bec name: "retries" type_id: 0xe62ebf07 @@ -162373,6 +165263,12 @@ member { type_id: 0xe8d14bc6 } member { + id: 0x7fdde492 + name: "retry" + type_id: 0xb3e7bac9 + offset: 24 +} +member { id: 0x0a6b3115 name: "retry_count" type_id: 0xb3e7bac9 @@ -162651,10 +165547,10 @@ member { offset: 9280 } member { - id: 0x80a0a424 + id: 0x80a0a3ee name: "rfkill" type_id: 0x079ff791 - offset: 38592 + offset: 38976 } member { id: 0x6ba9654a @@ -162824,12 +165720,6 @@ member { type_id: 0xa7c362b0 } member { - id: 0xa84d097f - name: "ring_lock" - type_id: 0xf313e71a - offset: 24704 -} -member { id: 0x66a87345 name: "ring_mask" type_id: 0xc9082b19 @@ -162859,21 +165749,6 @@ member { offset: 128 } member { - id: 0x28cf1121 - name: "rip" - type_id: 0xedf277ba -} -member { - id: 0xb09d2ffa - name: "riscv_csr" - type_id: 0x0f0b7249 -} -member { - id: 0x112a2e09 - name: "riscv_sbi" - type_id: 0x378b9399 -} -member { id: 0xef0151a4 name: "rlim" type_id: 0x5fa20088 @@ -163416,6 +166291,12 @@ member { offset: 704 } member { + id: 0xe1754ad1 + name: "router_alert" + type_id: 0x5d8155a5 + offset: 104 +} +member { id: 0x1061afd7 name: "routing" type_id: 0xb3e7bac9 @@ -163432,22 +166313,22 @@ member { type_id: 0x2a653aa6 } member { - id: 0x4b6f4c71 + id: 0x4b6f45cd name: "rpa" type_id: 0xa61911b2 - offset: 47552 + offset: 47936 } member { - id: 0x2fd08888 + id: 0x2fd08efd name: "rpa_expired" type_id: 0xf1159c31 - offset: 46464 + offset: 46848 } member { - id: 0x0eb3e2bb + id: 0x0eb3e9bf name: "rpa_timeout" type_id: 0xe62ebf07 - offset: 46432 + offset: 46816 } member { id: 0x602447ba @@ -163575,6 +166456,12 @@ member { offset: 28544 } member { + id: 0x37cf0b9e + name: "rq_end_io" + type_id: 0xabcaeaec + offset: 704 +} +member { id: 0x97cc8149 name: "rq_flags" type_id: 0x9e3964d1 @@ -163652,6 +166539,19 @@ member { offset: 1152 } member { + id: 0xe752e605 + name: "rr" + type_id: 0x5d8155a5 + offset: 80 +} +member { + id: 0xe5e354be + name: "rr_needaddr" + type_id: 0x5d8155a5 + offset: 99 + bitsize: 1 +} +member { id: 0xf254d9f5 name: "rr_nr_running" type_id: 0x4585663f @@ -163748,6 +166648,40 @@ member { offset: 1216 } member { + id: 0x5367b67f + name: "rskq_accept_head" + type_id: 0x27847a9a + offset: 192 +} +member { + id: 0x07b1da25 + name: "rskq_accept_tail" + type_id: 0x27847a9a + offset: 256 +} +member { + id: 0x6f5c1006 + name: "rskq_defer_accept" + type_id: 0x295c7202 + offset: 32 +} +member { + id: 0xf1af1f8d + name: "rskq_lock" + type_id: 0xf313e71a +} +member { + id: 0x4fed2df8 + name: "rskq_rst_head" + type_id: 0x27847a9a +} +member { + id: 0xe2520be5 + name: "rskq_rst_tail" + type_id: 0x27847a9a + offset: 64 +} +member { id: 0x94b16558 name: "rslot_limit" type_id: 0x89ea5acf @@ -164229,6 +167163,13 @@ member { offset: 16 } member { + id: 0xe5f931e3 + name: "rtalert_isolate" + type_id: 0xe8034002 + offset: 575 + bitsize: 1 +} +member { id: 0xe06b5dfe name: "rtc" type_id: 0x24e24923 @@ -164366,18 +167307,47 @@ member { offset: 1632 } member { + id: 0xbb70420d + name: "rtt_min" + type_id: 0x98a86aa3 + offset: 14304 +} +member { + id: 0x50d5f815 + name: "rtt_seq" + type_id: 0xc9082b19 + offset: 14272 +} +member { id: 0x2e4fe3d2 name: "rtt_us" type_id: 0xd41e888f offset: 32 } member { + id: 0x2e52f84a + name: "rtt_us" + type_id: 0xc9082b19 +} +member { + id: 0x2e52fcab + name: "rtt_us" + type_id: 0xc9082b19 + offset: 64 +} +member { id: 0x2e67f9bb name: "rtt_us" type_id: 0xfc0e1dbd offset: 320 } member { + id: 0x861205e4 + name: "rttvar_us" + type_id: 0xc9082b19 + offset: 14240 +} +member { id: 0xe53f0bca name: "rtx_syn_ack" type_id: 0x2e519115 @@ -164466,12 +167436,6 @@ member { offset: 3136 } member { - id: 0x021fd03f - name: "run" - type_id: 0x3da548f2 - offset: 960 -} -member { id: 0x2f68ddc4 name: "run_array" type_id: 0x6fde7229 @@ -164729,10 +167693,10 @@ member { offset: 1976 } member { - id: 0xa56878ce + id: 0xa568765c name: "rwork" type_id: 0xd15fd98f - offset: 2560 + offset: 3200 } member { id: 0xd610e150 @@ -165079,6 +168043,12 @@ member { offset: 64 } member { + id: 0xc2e1d78f + name: "rx_frames" + type_id: 0x578f9c2b + offset: 640 +} +member { id: 0xa87a1b62 name: "rx_frames_delta" type_id: 0x33756485 @@ -165191,6 +168161,12 @@ member { type_id: 0x7dbd382e } member { + id: 0xa064e9a8 + name: "rx_max" + type_id: 0xc9082b19 + offset: 2112 +} +member { id: 0xfd4774fd name: "rx_max_coalesced_frames" type_id: 0xe62ebf07 @@ -165297,12 +168273,24 @@ member { offset: 1472 } member { + id: 0xb3ff3714 + name: "rx_ntbs" + type_id: 0x92233392 + offset: 2816 +} +member { id: 0x9fdf2166 name: "rx_oos_packets" type_id: 0xb02b353a offset: 384 } member { + id: 0xedd761bd + name: "rx_opt" + type_id: 0xfb9626d5 + offset: 14752 +} +member { id: 0x92162365 name: "rx_otherhost_dropped" type_id: 0xedf277ba @@ -165326,6 +168314,12 @@ member { offset: 704 } member { + id: 0xa15b4dcc + name: "rx_overhead" + type_id: 0x92233392 + offset: 2752 +} +member { id: 0x6a136bc1 name: "rx_packets" type_id: 0xb02b353a @@ -165383,10 +168377,10 @@ member { offset: 192 } member { - id: 0x714814d3 + id: 0x71481e19 name: "rx_q" type_id: 0x578f9c2b - offset: 25152 + offset: 25536 } member { id: 0x671dc45f @@ -165400,6 +168394,12 @@ member { type_id: 0x2de3e088 } member { + id: 0xd3d22e9f + name: "rx_reqs" + type_id: 0xd3c80119 + offset: 448 +} +member { id: 0xb906969b name: "rx_reserved" type_id: 0x2b4e5af5 @@ -165451,6 +168451,12 @@ member { type_id: 0x3f75f4e8 } member { + id: 0x32a32199 + name: "rx_seq" + type_id: 0x914dbfdc + offset: 2384 +} +member { id: 0xa6aa7bdf name: "rx_seq_discards" type_id: 0xb02b353a @@ -165605,10 +168611,10 @@ member { offset: 2240 } member { - id: 0x6e7f7819 + id: 0x6e7f7dae name: "rx_work" type_id: 0x1f3c8679 - offset: 21824 + offset: 22208 } member { id: 0x8be6c17d @@ -165629,6 +168635,67 @@ member { offset: 16 } member { + id: 0xf63d13ec + name: "rxflow" + type_id: 0xe8034002 + offset: 10 + bitsize: 1 +} +member { + id: 0x27542d26 + name: "rxhlim" + type_id: 0xe8034002 + offset: 4 + bitsize: 1 +} +member { + id: 0x0ab41655 + name: "rxinfo" + type_id: 0xe8034002 + offset: 2 + bitsize: 1 +} +member { + id: 0xba676c19 + name: "rxohlim" + type_id: 0xe8034002 + offset: 5 + bitsize: 1 +} +member { + id: 0xdb4e2124 + name: "rxoinfo" + type_id: 0xe8034002 + offset: 3 + bitsize: 1 +} +member { + id: 0xca5da826 + name: "rxopt" + type_id: 0x6312fd2f + offset: 544 +} +member { + id: 0xb7565f87 + name: "rxorigdstaddr" + type_id: 0xe8034002 + offset: 13 + bitsize: 1 +} +member { + id: 0x1f5f2358 + name: "rxpmtu" + type_id: 0xe8034002 + offset: 12 + bitsize: 1 +} +member { + id: 0x80588b5f + name: "rxpmtu" + type_id: 0x054f691a + offset: 1024 +} +member { id: 0x94aefae8 name: "rxq" type_id: 0x578f9c2b @@ -165653,6 +168720,13 @@ member { offset: 416 } member { + id: 0xd94d5094 + name: "rxtclass" + type_id: 0xe8034002 + offset: 11 + bitsize: 1 +} +member { id: 0x2aa685e6 name: "rxtstamp" type_id: 0x35ab6b03 @@ -165663,15 +168737,19 @@ member { type_id: 0xc9082b19 } member { - id: 0x67846dd9 + id: 0x67c4eef4 name: "s" - type_id: 0x76df8305 - offset: 2432 + type_id: 0x36592664 } member { - id: 0x67c4eef4 + id: 0x67c7a307 name: "s" - type_id: 0x36592664 + type_id: 0x3514d59f +} +member { + id: 0x67c839a9 + name: "s" + type_id: 0x3a8e7b26 } member { id: 0x67cca386 @@ -165727,31 +168805,6 @@ member { offset: 640 } member { - id: 0x3fd31627 - name: "s390_reset_flags" - type_id: 0xedf277ba -} -member { - id: 0x2b1b8ef2 - name: "s390_sieic" - type_id: 0x31f9c69b -} -member { - id: 0x5fd2e3fb - name: "s390_stsi" - type_id: 0x114efe06 -} -member { - id: 0x66d41c47 - name: "s390_tsch" - type_id: 0x0ad62715 -} -member { - id: 0xd9d85a91 - name: "s390_ucontrol" - type_id: 0x19910c85 -} -member { id: 0x87554dcf name: "s3d_ext_data" type_id: 0x4585663f @@ -166482,6 +169535,19 @@ member { offset: 3072 } member { + id: 0xa9edea21 + name: "sack_ok" + type_id: 0x914dbfdc + offset: 132 + bitsize: 3 +} +member { + id: 0xbd3e4a51 + name: "sacked_out" + type_id: 0xc9082b19 + offset: 15712 +} +member { id: 0xf8038083 name: "saddr" type_id: 0x313397f7 @@ -166539,6 +169605,12 @@ member { offset: 192 } member { + id: 0xebfb4e21 + name: "same_provision" + type_id: 0x358546f6 + offset: 128 +} +member { id: 0x9b9fa9a3 name: "same_root" type_id: 0xd3c80119 @@ -166774,6 +169846,13 @@ member { offset: 512 } member { + id: 0x1d3cf444 + name: "save_syn" + type_id: 0x295c7202 + offset: 13880 + bitsize: 2 +} +member { id: 0x10476fa4 name: "saved" type_id: 0x111e281f @@ -166898,12 +169977,23 @@ member { offset: 64 } member { + id: 0x653b6170 + name: "saved_state" + type_id: 0x4585663f +} +member { id: 0x72f4c281 name: "saved_syn" type_id: 0x10c6675a offset: 1792 } member { + id: 0x72f4ca16 + name: "saved_syn" + type_id: 0x10c6675a + offset: 18816 +} +member { id: 0x424e9efd name: "saved_tmo" type_id: 0xfc0e1dbd @@ -166928,6 +170018,20 @@ member { offset: 1408 } member { + id: 0x037e8aa7 + name: "saw_tstamp" + type_id: 0x914dbfdc + offset: 128 + bitsize: 1 +} +member { + id: 0x9eb3a9b9 + name: "saw_unknown" + type_id: 0x295c7202 + offset: 144 + bitsize: 1 +} +member { id: 0x597655fc name: "sb" type_id: 0xa3189db3 @@ -166963,6 +170067,72 @@ member { offset: 8448 } member { + id: 0xe1b6bbe3 + name: "sb_list" + type_id: 0xd3c80119 + offset: 320 +} +member { + id: 0x1197fb66 + name: "sb_occ_max_clear" + type_id: 0x2d7ab985 + offset: 960 +} +member { + id: 0x80e35930 + name: "sb_occ_port_pool_get" + type_id: 0x2e0a2548 + offset: 1024 +} +member { + id: 0xa9d0bb48 + name: "sb_occ_snapshot" + type_id: 0x2d7ab985 + offset: 896 +} +member { + id: 0xde69b5bc + name: "sb_occ_tc_port_bind_get" + type_id: 0x2e0abaa7 + offset: 1088 +} +member { + id: 0x93cb2df4 + name: "sb_pool_get" + type_id: 0x2d739f19 + offset: 512 +} +member { + id: 0xeaf07952 + name: "sb_pool_set" + type_id: 0x2d7368ed + offset: 576 +} +member { + id: 0x78a8c4ae + name: "sb_port_pool_get" + type_id: 0x2e0a26c5 + offset: 640 +} +member { + id: 0x6f535872 + name: "sb_port_pool_set" + type_id: 0x2e0ad762 + offset: 704 +} +member { + id: 0x001ba0a6 + name: "sb_tc_pool_bind_get" + type_id: 0x2e0abbc6 + offset: 768 +} +member { + id: 0x07349e82 + name: "sb_tc_pool_bind_set" + type_id: 0x2e0ab0cf + offset: 832 +} +member { id: 0x7ac264e0 name: "sbc" type_id: 0x2ea8d96e @@ -167022,6 +170192,11 @@ member { offset: 256 } member { + id: 0xd440bc7f + name: "sbq" + type_id: 0x12e24ee1 +} +member { id: 0x693c7182 name: "sbrn" type_id: 0x295c7202 @@ -167281,16 +170456,16 @@ member { offset: 640 } member { - id: 0x2e353c74 + id: 0x2e353a9c name: "scan_rsp_data" type_id: 0x53171385 - offset: 40752 + offset: 41136 } member { - id: 0x83054f12 + id: 0x83054658 name: "scan_rsp_data_len" type_id: 0xb3e7bac9 - offset: 42760 + offset: 43144 } member { id: 0x71d18ef9 @@ -167376,10 +170551,10 @@ member { bitsize: 1 } member { - id: 0xb40bde91 + id: 0xb40bd33a name: "scanning_paused" type_id: 0x6d7f5ff6 - offset: 28224 + offset: 28608 } member { id: 0x93a30d5c @@ -167466,11 +170641,6 @@ member { offset: 28672 } member { - id: 0xe0b448e4 - name: "sched_in" - type_id: 0x0c5f174a -} -member { id: 0x03385852 name: "sched_info" type_id: 0x4d09650b @@ -167490,12 +170660,6 @@ member { offset: 128 } member { - id: 0x7b24028f - name: "sched_out" - type_id: 0x0c252e30 - offset: 64 -} -member { id: 0x848a6070 name: "sched_period" type_id: 0xedf277ba @@ -168200,12 +171364,23 @@ member { offset: 32 } member { + id: 0xf32eb68b + name: "search_high" + type_id: 0x6720d32f +} +member { id: 0x39bd6d5d name: "search_list" type_id: 0xd3c80119 offset: 448 } member { + id: 0xf0e605cb + name: "search_low" + type_id: 0x6720d32f + offset: 32 +} +member { id: 0xbf942607 name: "search_order" type_id: 0xb0312d5a @@ -168372,6 +171547,12 @@ member { offset: 384 } member { + id: 0xf705dc19 + name: "sector_offset" + type_id: 0x4585663f + offset: 576 +} +member { id: 0x173ce3ee name: "sector_size" type_id: 0x4585663f @@ -168384,6 +171565,12 @@ member { offset: 320 } member { + id: 0x3721dfe0 + name: "sectors" + type_id: 0x4585663f + offset: 608 +} +member { id: 0x3739d0c7 name: "sectors" type_id: 0x5d8155a5 @@ -168396,10 +171583,10 @@ member { offset: 256 } member { - id: 0xa39136f0 - name: "secure_access" - type_id: 0x6d7f5ff6 - offset: 3424 + id: 0x0b50257c + name: "sectors_per_block_bits" + type_id: 0x29b77961 + offset: 928 } member { id: 0xb0199c94 @@ -168653,6 +171840,24 @@ member { type_id: 0x78f4e574 } member { + id: 0x498b56ac + name: "segments_left" + type_id: 0xb3e7bac9 + offset: 24 +} +member { + id: 0x43536458 + name: "segs_in" + type_id: 0xc9082b19 + offset: 12416 +} +member { + id: 0xef3672e0 + name: "segs_out" + type_id: 0xc9082b19 + offset: 12608 +} +member { id: 0x339d15e8 name: "sel" type_id: 0x4585663f @@ -168665,18 +171870,6 @@ member { offset: 832 } member { - id: 0xebeb17cb - name: "sel1" - type_id: 0xb3e7bac9 - offset: 88 -} -member { - id: 0xaf6f4ac0 - name: "sel2" - type_id: 0xe8034002 - offset: 96 -} -member { id: 0x72d71532 name: "sel_res" type_id: 0x295c7202 @@ -168720,6 +171913,12 @@ member { offset: 640 } member { + id: 0x3a30a25b + name: "selective_acks" + type_id: 0xb637307e + offset: 17216 +} +member { id: 0x104f57f6 name: "selector" type_id: 0x7047fa95 @@ -168832,6 +172031,24 @@ member { offset: 1408 } member { + id: 0x5937e22e + name: "selfparking" + type_id: 0x6d7f5ff6 + offset: 640 +} +member { + id: 0x561fd50f + name: "selftest_check" + type_id: 0x35b3ea42 + offset: 3264 +} +member { + id: 0xd95b0d92 + name: "selftest_run" + type_id: 0x1fdf8df4 + offset: 3328 +} +member { id: 0xf53d14f9 name: "sem" type_id: 0x28b9ec9a @@ -168856,10 +172073,10 @@ member { offset: 64 } member { - id: 0xe39f13d5 + id: 0xe39f1481 name: "send" type_id: 0x2c297347 - offset: 50368 + offset: 50752 } member { id: 0x300665d2 @@ -168880,6 +172097,12 @@ member { offset: 448 } member { + id: 0x6d7c55af + name: "send_check" + type_id: 0x0f67218c + offset: 64 +} +member { id: 0xbd9e514e name: "send_data" type_id: 0x2ec1fdbb @@ -168914,12 +172137,6 @@ member { offset: 192 } member { - id: 0xc2c18445 - name: "send_page" - type_id: 0xedf277ba - offset: 192 -} -member { id: 0x42f73f70 name: "send_pkt" type_id: 0x2ddb8bbd @@ -169146,10 +172363,10 @@ member { offset: 3872 } member { - id: 0x8fd1ed9e + id: 0x8fd1e923 name: "sent_cmd" type_id: 0x054f691a - offset: 25728 + offset: 26112 } member { id: 0x2f63fdae @@ -169268,6 +172485,12 @@ member { offset: 256 } member { + id: 0xfad50a5a + name: "seq" + type_id: 0xc9082b19 + offset: 32 +} +member { id: 0xfad50a81 name: "seq" type_id: 0xc9082b19 @@ -169633,10 +172856,10 @@ member { offset: 960 } member { - id: 0x6f0a1e46 + id: 0x6f0a17b5 name: "service_cache" type_id: 0xf1159c31 - offset: 18560 + offset: 18944 } member { id: 0x5f901528 @@ -169833,12 +173056,6 @@ member { offset: 128 } member { - id: 0x0bb97dbd - name: "set_attr" - type_id: 0x2ee94408 - offset: 320 -} -member { id: 0xd1a721b7 name: "set_auto_vbus_discharge_threshold" type_id: 0x2e11757b @@ -169881,10 +173098,10 @@ member { offset: 192 } member { - id: 0x284bd07a + id: 0x284bd920 name: "set_bdaddr" type_id: 0x2c1bc9fd - offset: 50688 + offset: 51072 } member { id: 0x04c66be5 @@ -170116,10 +173333,10 @@ member { offset: 128 } member { - id: 0xfedeef06 + id: 0xfedee1e7 name: "set_diag" type_id: 0x2c414371 - offset: 50624 + offset: 51008 } member { id: 0xb9a43c35 @@ -170182,10 +173399,10 @@ member { offset: 128 } member { - id: 0x3cc9ff38 - name: "set_event_filter" - type_id: 0x2ebb6897 - offset: 2880 + id: 0x87f98767 + name: "set_event" + type_id: 0x2d12100b + offset: 192 } member { id: 0xada2d6c5 @@ -170272,6 +173489,11 @@ member { offset: 1344 } member { + id: 0x88f65c40 + name: "set_interface" + type_id: 0x2d2076df +} +member { id: 0xce6643c0 name: "set_ios" type_id: 0x0de0f4a6 @@ -170591,6 +173813,18 @@ member { offset: 1344 } member { + id: 0x18766439 + name: "set_pcm_connection" + type_id: 0x2db6fcd8 + offset: 128 +} +member { + id: 0x58055805 + name: "set_pcm_intf" + type_id: 0x2f815de7 + offset: 64 +} +member { id: 0xf0a8a677 name: "set_pd_rx" type_id: 0x2e0b807c @@ -170710,6 +173944,12 @@ member { offset: 1856 } member { + id: 0x4117392b + name: "set_priv_key" + type_id: 0x2d591a0e + offset: 320 +} +member { id: 0x9fa5cb5f name: "set_promiscuous_mode" type_id: 0x2d0e725e @@ -170740,16 +173980,22 @@ member { offset: 320 } member { + id: 0xfd2d3002 + name: "set_pub_key" + type_id: 0x2d591a0e + offset: 256 +} +member { id: 0xff542925 name: "set_pull_down" type_id: 0x2d078518 offset: 2240 } member { - id: 0xe84b78bc + id: 0xe84b7153 name: "set_quality_report" type_id: 0x2c414371 - offset: 50880 + offset: 51264 } member { id: 0x602695e6 @@ -171301,6 +174547,12 @@ member { offset: 896 } member { + id: 0x852593c2 + name: "setsockopt" + type_id: 0x2c45f2d3 + offset: 448 +} +member { id: 0x85259dc7 name: "setsockopt" type_id: 0x2c45f2d3 @@ -171349,6 +174601,12 @@ member { offset: 3072 } member { + id: 0x84c3a238 + name: "setup" + type_id: 0x0aee7ba0 + offset: 384 +} +member { id: 0x84c4d659 name: "setup" type_id: 0x0d9c4ffe @@ -171373,10 +174631,10 @@ member { offset: 384 } member { - id: 0x84e564f5 + id: 0x84e56f17 name: "setup" type_id: 0x2c2c3c2e - offset: 50240 + offset: 50624 } member { id: 0x84e59375 @@ -171582,10 +174840,16 @@ member { offset: 240 } member { - id: 0x4e4c2253 - name: "sflags" - type_id: 0x295c7202 - offset: 15408 + id: 0x25d5628c + name: "sflist" + type_id: 0x339b8baf + offset: 256 +} +member { + id: 0x25db7175 + name: "sflist" + type_id: 0x3d801074 + offset: 192 } member { id: 0x00c081a9 @@ -171594,6 +174858,25 @@ member { offset: 96 } member { + id: 0x00c085ca + name: "sfmode" + type_id: 0x4585663f + offset: 160 +} +member { + id: 0x4c6b273e + name: "sfnum" + type_id: 0xc9082b19 + offset: 96 +} +member { + id: 0x38a7e1c1 + name: "sfnum_valid" + type_id: 0x295c7202 + offset: 146 + bitsize: 1 +} +member { id: 0x65a2356f name: "sfp_bus" type_id: 0x00836b76 @@ -171817,18 +175100,6 @@ member { offset: 576 } member { - id: 0x57b79a32 - name: "sgi_config" - type_id: 0x4b27ac3d - offset: 128 -} -member { - id: 0xb049594d - name: "sgi_domain" - type_id: 0x18a2fb63 - offset: 64 -} -member { id: 0x37a44b88 name: "sgid" type_id: 0xb0ddb211 @@ -171889,6 +175160,12 @@ member { offset: 96 } member { + id: 0xeb4f31b9 + name: "share" + type_id: 0x295c7202 + offset: 512 +} +member { id: 0xeb4f3b1e name: "share" type_id: 0x295c7202 @@ -172416,6 +175693,18 @@ member { bitsize: 1 } member { + id: 0x133be164 + name: "shrink_work" + type_id: 0x1f3c8679 + offset: 2496 +} +member { + id: 0x868ca1f0 + name: "shrinker" + type_id: 0xb4975242 + offset: 1984 +} +member { id: 0x868caa9e name: "shrinker" type_id: 0xb4975242 @@ -172477,10 +175766,10 @@ member { offset: 80 } member { - id: 0x9ed91a6e + id: 0x9ed91ea3 name: "shutdown" type_id: 0x2c2c3c2e - offset: 50304 + offset: 50688 } member { id: 0x9ed96f02 @@ -172835,6 +176124,11 @@ member { offset: 24 } member { + id: 0x9063e9c1 + name: "sign" + type_id: 0x2cd8a9c9 +} +member { id: 0x90777e15 name: "sign" type_id: 0x384f7d7c @@ -172870,12 +176164,6 @@ member { offset: 128 } member { - id: 0xbf28dc5b - name: "signal_exits" - type_id: 0x92233392 - offset: 6976 -} -member { id: 0x7eb64f1d name: "signal_type" type_id: 0x1b2534c1 @@ -172924,18 +176212,6 @@ member { offset: 64 } member { - id: 0xd1201d45 - name: "sigset" - type_id: 0x02097f03 - offset: 1216 -} -member { - id: 0x54ebc83a - name: "sigset_active" - type_id: 0x6720d32f - offset: 1152 -} -member { id: 0x08f6c3d8 name: "sigtrap" type_id: 0xedf277ba @@ -173029,6 +176305,13 @@ member { type_id: 0x2d8ee262 } member { + id: 0xdf12b226 + name: "singleton" + type_id: 0x6d7f5ff6 + offset: 1921 + bitsize: 1 +} +member { id: 0x5c8384f3 name: "sink" type_id: 0x1cc6bdca @@ -173132,16 +176415,16 @@ member { offset: 96 } member { - id: 0xd91935d3 + id: 0xd9193607 name: "size" type_id: 0x6720d32f - offset: 576 + offset: 896 } member { - id: 0xd9193607 + id: 0xd91937b9 name: "size" type_id: 0x6720d32f - offset: 896 + offset: 512 } member { id: 0xd9193b66 @@ -173290,6 +176573,12 @@ member { type_id: 0xf435685e } member { + id: 0xd98a29b1 + name: "size" + type_id: 0xf435685e + offset: 256 +} +member { id: 0xd98a2d0c name: "size" type_id: 0xf435685e @@ -173332,12 +176621,6 @@ member { offset: 64 } member { - id: 0xd99613f3 - name: "size" - type_id: 0xe8034002 - offset: 48 -} -member { id: 0xd9961bae name: "size" type_id: 0xe8034002 @@ -173391,6 +176674,12 @@ member { offset: 224 } member { + id: 0xd9b71962 + name: "size" + type_id: 0xc9082b19 + offset: 32 +} +member { id: 0xd9b71c90 name: "size" type_id: 0xc9082b19 @@ -173415,12 +176704,6 @@ member { offset: 320 } member { - id: 0xd9cdf02e - name: "size" - type_id: 0xb3e7bac9 - offset: 8 -} -member { id: 0xd9eb71ce name: "size" type_id: 0x9565759f @@ -173433,6 +176716,12 @@ member { offset: 64 } member { + id: 0xd9ec35e7 + name: "size" + type_id: 0x92233392 + offset: 896 +} +member { id: 0xd9ec3683 name: "size" type_id: 0x92233392 @@ -173956,6 +177245,12 @@ member { offset: 1152 } member { + id: 0x68c86260 + name: "sk_rx_dst_set" + type_id: 0x0f5c0d73 + offset: 192 +} +member { id: 0x30149a66 name: "sk_security" type_id: 0x18bd6530 @@ -174090,6 +177385,12 @@ member { bitsize: 4 } member { + id: 0x8a1dbb2d + name: "sk_wait_pending" + type_id: 0x6720d32f + offset: 2272 +} +member { id: 0xca81d80d name: "sk_wmem_alloc" type_id: 0xa722c13e @@ -174504,9 +177805,9 @@ member { bitsize: 1 } member { - id: 0x56771d1e + id: 0x567d4292 name: "skip_notify_on_dev_down" - type_id: 0x6d7f5ff6 + type_id: 0x6720d32f offset: 1408 } member { @@ -174573,6 +177874,29 @@ member { bitsize: 2 } member { + id: 0x7f9c0ca0 + name: "sl_addr" + type_id: 0xdf70f6ef + offset: 192 +} +member { + id: 0x7fbfd873 + name: "sl_addr" + type_id: 0xfca4258b + offset: 192 +} +member { + id: 0xeea06d44 + name: "sl_count" + type_id: 0x4585663f + offset: 32 +} +member { + id: 0x047148a0 + name: "sl_max" + type_id: 0x4585663f +} +member { id: 0xe0c5ed6b name: "slab" type_id: 0x0f91dccc @@ -174591,6 +177915,18 @@ member { offset: 64 } member { + id: 0xd9ef0498 + name: "slab_buffer" + type_id: 0x2efd5036 + offset: 1088 +} +member { + id: 0x031120c5 + name: "slab_cache" + type_id: 0x2efd5036 + offset: 1152 +} +member { id: 0x031126d0 name: "slab_cache" type_id: 0x2efd5036 @@ -174918,12 +178254,6 @@ member { offset: 512 } member { - id: 0x68304f23 - name: "slot" - type_id: 0xe62ebf07 - offset: 32 -} -member { id: 0x688c706c name: "slot" type_id: 0x5a1fb439 @@ -175071,24 +178401,12 @@ member { type_id: 0xa634ef38 } member { - id: 0x59597675 - name: "slots_arch_lock" - type_id: 0xa7c362b0 - offset: 448 -} -member { id: 0xdd8a193d name: "slots_lock" type_id: 0x8d536703 offset: 32768 } member { - id: 0xdda08f2f - name: "slots_lock" - type_id: 0xa7c362b0 - offset: 64 -} -member { id: 0x3e932eb1 name: "slow_charger_loop" type_id: 0x6d7f5ff6 @@ -175232,10 +178550,11 @@ member { type_id: 0x3c4ed50c } member { - id: 0xe4cebf61 - name: "smccc_feat" - type_id: 0x2c432ef9 - offset: 3200 + id: 0x7d4497ce + name: "smc_ok" + type_id: 0x914dbfdc + offset: 135 + bitsize: 1 } member { id: 0x0697a2b0 @@ -175262,16 +178581,16 @@ member { offset: 2880 } member { - id: 0x1b39784f + id: 0x1b3970e4 name: "smp_bredr_data" type_id: 0x18bd6530 - offset: 26624 + offset: 27008 } member { - id: 0x6188e6c3 + id: 0x6188e4ee name: "smp_data" type_id: 0x18bd6530 - offset: 26560 + offset: 26944 } member { id: 0x722447d2 @@ -175286,6 +178605,18 @@ member { offset: 416 } member { + id: 0x0c805fde + name: "snapshot" + type_id: 0x2d0e9268 + offset: 128 +} +member { + id: 0x0c832449 + name: "snapshot" + type_id: 0x2e7505e0 + offset: 128 +} +member { id: 0x0cc029ea name: "snapshot" type_id: 0x6d7f5ff6 @@ -175298,6 +178629,24 @@ member { offset: 1984 } member { + id: 0xc24fadb5 + name: "snapshot_ids" + type_id: 0x80c20070 + offset: 2560 +} +member { + id: 0xcffde3b6 + name: "snapshot_list" + type_id: 0xd3c80119 + offset: 704 +} +member { + id: 0xcbc193d6 + name: "snapshot_lock" + type_id: 0xa7c362b0 + offset: 320 +} +member { id: 0xae699d06 name: "snd" type_id: 0xb914bfab @@ -175316,12 +178665,48 @@ member { offset: 576 } member { + id: 0x3b23e448 + name: "snd_cwnd" + type_id: 0xc9082b19 + offset: 14976 +} +member { + id: 0x0ed29348 + name: "snd_cwnd_clamp" + type_id: 0xc9082b19 + offset: 15040 +} +member { + id: 0xdef99a11 + name: "snd_cwnd_cnt" + type_id: 0xc9082b19 + offset: 15008 +} +member { + id: 0xe301bb69 + name: "snd_cwnd_stamp" + type_id: 0xc9082b19 + offset: 15104 +} +member { + id: 0x9e51f1aa + name: "snd_cwnd_used" + type_id: 0xc9082b19 + offset: 15072 +} +member { id: 0xc2ae7a6f name: "snd_interval_us" type_id: 0xc9082b19 offset: 256 } member { + id: 0x24e972c0 + name: "snd_nxt" + type_id: 0xc9082b19 + offset: 12576 +} +member { id: 0x05fda169 name: "snd_portid" type_id: 0xc9082b19 @@ -175333,12 +178718,55 @@ member { type_id: 0xc9082b19 } member { + id: 0x9c800493 + name: "snd_sml" + type_id: 0xc9082b19 + offset: 12864 +} +member { + id: 0xcf588653 + name: "snd_ssthresh" + type_id: 0xc9082b19 + offset: 14944 +} +member { + id: 0x8248546f + name: "snd_una" + type_id: 0xc9082b19 + offset: 12832 +} +member { + id: 0x611d6152 + name: "snd_up" + type_id: 0xc9082b19 + offset: 14720 +} +member { id: 0xac63a41d name: "snd_win" type_id: 0x914dbfdc offset: 7808 } member { + id: 0x1f8008f5 + name: "snd_wl1" + type_id: 0xc9082b19 + offset: 13312 +} +member { + id: 0xb8d73d0d + name: "snd_wnd" + type_id: 0xc9082b19 + offset: 13344 +} +member { + id: 0xa597551f + name: "snd_wscale" + type_id: 0x914dbfdc + offset: 136 + bitsize: 4 +} +member { id: 0xb368ac36 name: "sndbit" type_id: 0xa562355d @@ -175357,6 +178785,13 @@ member { offset: 576 } member { + id: 0xc40b184c + name: "sndflow" + type_id: 0xe8034002 + offset: 561 + bitsize: 1 +} +member { id: 0x8f0cab7f name: "sniff_max_interval" type_id: 0xe8034002 @@ -175446,6 +178881,12 @@ member { offset: 5888 } member { + id: 0x094f9496 + name: "sockaddr_len" + type_id: 0x914dbfdc + offset: 416 +} +member { id: 0x4f73c01d name: "socket_pressure" type_id: 0x33756485 @@ -175486,12 +178927,6 @@ member { type_id: 0xedf277ba } member { - id: 0x275ed516 - name: "soft_limit" - type_id: 0xc9082b19 - offset: 96 -} -member { id: 0x27a4adf4 name: "soft_limit" type_id: 0x33756485 @@ -175682,12 +179117,6 @@ member { offset: 96 } member { - id: 0xd707c4f8 - name: "source" - type_id: 0x295c7202 - offset: 672 -} -member { id: 0xd71086bc name: "source" type_id: 0x3e10b518 @@ -175811,6 +179240,11 @@ member { offset: 64 } member { + id: 0x589235ff + name: "space" + type_id: 0xc9082b19 +} +member { id: 0x4b5ea168 name: "space_available" type_id: 0x2dace37d @@ -176073,15 +179507,15 @@ member { offset: 416 } member { - id: 0x36ede007 - name: "spin_loop" - type_id: 0x174a7c6e - offset: 1920 + id: 0x9a7d3066 + name: "spinlock" + type_id: 0xf313e71a } member { - id: 0x9a7d3066 + id: 0x9a7d31f4 name: "spinlock" type_id: 0xf313e71a + offset: 384 } member { id: 0x9a7d37a1 @@ -176096,12 +179530,6 @@ member { offset: 64 } member { - id: 0xde92dea2 - name: "spis" - type_id: 0x1a1575dd - offset: 448 -} -member { id: 0xe3c602fa name: "splen" type_id: 0xb3e7bac9 @@ -176492,6 +179920,12 @@ member { offset: 448 } member { + id: 0x4427a46d + name: "src" + type_id: 0x11cffa09 + offset: 384 +} +member { id: 0x4427ac3d name: "src" type_id: 0x11cffa09 @@ -176519,6 +179953,11 @@ member { type_id: 0x6d25e07f } member { + id: 0x446cb466 + name: "src" + type_id: 0x5ade635b +} +member { id: 0x4475a595 name: "src" type_id: 0x43c73e81 @@ -176639,6 +180078,12 @@ member { offset: 16 } member { + id: 0xe29869f3 + name: "src_len" + type_id: 0x4585663f + offset: 512 +} +member { id: 0x031b1a4e name: "src_maxburst" type_id: 0xc9082b19 @@ -176729,10 +180174,29 @@ member { offset: 416 } member { - id: 0x2b889279 - name: "srcu" - type_id: 0xa46efa19 - offset: 26560 + id: 0xaab1780b + name: "srcprefs" + type_id: 0xe8034002 + offset: 567 + bitsize: 3 +} +member { + id: 0x0ffd3550 + name: "srcrt" + type_id: 0xe8034002 + bitsize: 1 +} +member { + id: 0xcd7a45a0 + name: "srcrt" + type_id: 0x12d9a766 + offset: 256 +} +member { + id: 0xcd809b0d + name: "srcrt" + type_id: 0xe8034002 + offset: 64 } member { id: 0x2b8894ec @@ -176944,6 +180408,12 @@ member { offset: 1584 } member { + id: 0xc5c8b651 + name: "srhoff" + type_id: 0xe8034002 + offset: 176 +} +member { id: 0x8e4ea0f1 name: "sriov" type_id: 0x060faad6 @@ -176973,6 +180443,25 @@ member { offset: 24 } member { + id: 0x3a20fe11 + name: "srr" + type_id: 0x5d8155a5 + offset: 72 +} +member { + id: 0x3feffe90 + name: "srr_is_hit" + type_id: 0x5d8155a5 + offset: 97 + bitsize: 1 +} +member { + id: 0x28d4f0ae + name: "srtt_us" + type_id: 0xc9082b19 + offset: 14144 +} +member { id: 0x8c8649b8 name: "ss" type_id: 0x0a85fcb6 @@ -177432,12 +180921,6 @@ member { offset: 448 } member { - id: 0x4616bb5f - name: "start" - type_id: 0x0d879e14 - offset: 3072 -} -member { id: 0x46176449 name: "start" type_id: 0x0c59c5c5 @@ -177461,12 +180944,6 @@ member { offset: 192 } member { - id: 0x46284ff6 - name: "start" - type_id: 0x33756485 - offset: 128 -} -member { id: 0x462b6471 name: "start" type_id: 0x30572148 @@ -177608,6 +181085,18 @@ member { offset: 128 } member { + id: 0x46cb8735 + name: "start" + type_id: 0xd0b3a203 + offset: 320 +} +member { + id: 0x46cb87d7 + name: "start" + type_id: 0xd0b3a203 + offset: 1728 +} +member { id: 0x46d23b7b name: "start" type_id: 0xc9082b19 @@ -177732,12 +181221,6 @@ member { type_id: 0xe62ebf07 } member { - id: 0x4c6ccc95 - name: "start_level" - type_id: 0xc9082b19 - offset: 32 -} -member { id: 0x4ca5b709 name: "start_level" type_id: 0x007e8ce4 @@ -177797,6 +181280,11 @@ member { offset: 11904 } member { + id: 0x3d5d011f + name: "start_seq" + type_id: 0xc9082b19 +} +member { id: 0x00cda1f9 name: "start_signal_voltage_switch" type_id: 0x2ea6d809 @@ -177859,6 +181347,12 @@ member { offset: 2112 } member { + id: 0xa3682aac + name: "start_time" + type_id: 0x33756485 + offset: 64 +} +member { id: 0xa3c97b9b name: "start_time" type_id: 0x92233392 @@ -177991,28 +181485,16 @@ member { type_id: 0xb02b353a } member { - id: 0xb934c444 - name: "stat" - type_id: 0x8f4af0b6 - offset: 69760 -} -member { id: 0xb936ff9f name: "stat" type_id: 0x8d724b7d offset: 768 } member { - id: 0xb9403407 - name: "stat" - type_id: 0xfbb47533 - offset: 20416 -} -member { - id: 0xb949874f + id: 0xb9498bcf name: "stat" type_id: 0xf2078d09 - offset: 30720 + offset: 31104 } member { id: 0xb99ea4be @@ -178287,6 +181769,12 @@ member { offset: 7616 } member { + id: 0x72b72416 + name: "state" + type_id: 0x44d985d5 + offset: 384 +} +member { id: 0x72c0803e name: "state" type_id: 0x33756485 @@ -178328,6 +181816,12 @@ member { offset: 1664 } member { + id: 0x72c08b58 + name: "state" + type_id: 0x33756485 + offset: 704 +} +member { id: 0x72c08d84 name: "state" type_id: 0x33756485 @@ -178650,6 +182144,12 @@ member { offset: 2496 } member { + id: 0x46ecc05d + name: "state_lock" + type_id: 0xa7c362b0 + offset: 448 +} +member { id: 0xeccd8227 name: "state_machine" type_id: 0x3835dcc0 @@ -178922,10 +182422,10 @@ member { offset: 896 } member { - id: 0xb91e0d04 + id: 0xb91e0940 name: "stats" type_id: 0x6b61371d - offset: 704 + offset: 640 } member { id: 0xb920e0d3 @@ -178981,12 +182481,24 @@ member { offset: 256 } member { + id: 0xb9583af1 + name: "stats" + type_id: 0x2d51c138 + offset: 2688 +} +member { id: 0xb95cdf4e name: "stats" type_id: 0x29b1eb4b offset: 256 } member { + id: 0xb95d079c + name: "stats" + type_id: 0x286f60a3 + offset: 4032 +} +member { id: 0xb96dd5c1 name: "stats" type_id: 0x18bd6530 @@ -179034,24 +182546,18 @@ member { offset: 1664 } member { + id: 0x96627cf8 + name: "stats_aux" + type_id: 0xb4683157 + offset: 256 +} +member { id: 0x4fb8f148 name: "stats_block_coalesce_usecs" type_id: 0xe62ebf07 offset: 288 } member { - id: 0xd657a07c - name: "stats_id" - type_id: 0x1d61e0cf - offset: 34384 -} -member { - id: 0xd657a20e - name: "stats_id" - type_id: 0x1d61e0cf - offset: 76864 -} -member { id: 0x17c68b0c name: "stats_lock" type_id: 0x3654c061 @@ -179123,6 +182629,12 @@ member { offset: 96 } member { + id: 0x201cce16 + name: "status" + type_id: 0x7be80061 + offset: 384 +} +member { id: 0x2022a603 name: "status" type_id: 0x4585663f @@ -179206,11 +182718,6 @@ member { type_id: 0x02fc92e9 } member { - id: 0x20688d61 - name: "status" - type_id: 0x0faae5b1 -} -member { id: 0x2069471f name: "status" type_id: 0x0e6b837a @@ -179276,12 +182783,6 @@ member { offset: 2176 } member { - id: 0x208adc31 - name: "status" - type_id: 0xedf277ba - offset: 128 -} -member { id: 0x208f24c4 name: "status" type_id: 0xe8034002 @@ -179305,6 +182806,12 @@ member { offset: 64 } member { + id: 0x20dd7873 + name: "status" + type_id: 0xba528163 + offset: 1088 +} +member { id: 0x20fcc1ce name: "status" type_id: 0x9be84f35 @@ -179395,23 +182902,6 @@ member { offset: 384 } member { - id: 0x368deee8 - name: "std_bmap" - type_id: 0x33756485 -} -member { - id: 0x17d504ad - name: "std_hyp_bmap" - type_id: 0x33756485 - offset: 64 -} -member { - id: 0x80093c04 - name: "steal" - type_id: 0x34ed11d4 - offset: 67584 -} -member { id: 0x6a086ae6 name: "step" type_id: 0xc9082b19 @@ -179517,6 +183007,12 @@ member { offset: 1472 } member { + id: 0x39865348 + name: "sticky_pktinfo" + type_id: 0xe2574ab7 + offset: 128 +} +member { id: 0x5922f81b name: "stime" type_id: 0x1f4573ef @@ -179570,12 +183066,6 @@ member { offset: 320 } member { - id: 0x6985f4f1 - name: "stop" - type_id: 0x0d879e14 - offset: 3136 -} -member { id: 0x698616dc name: "stop" type_id: 0x0e6861a8 @@ -179700,6 +183190,12 @@ member { type_id: 0x6720d32f } member { + id: 0x69fcaeb3 + name: "stop" + type_id: 0x74d29cf1 + offset: 1792 +} +member { id: 0x02ed8160 name: "stop_count" type_id: 0x6720d32f @@ -179803,6 +183299,11 @@ member { offset: 192 } member { + id: 0xacd44104 + name: "store" + type_id: 0x0dd653d2 +} +member { id: 0xacd4aa03 name: "store" type_id: 0x0d359d60 @@ -180182,6 +183683,12 @@ member { offset: 45344 } member { + id: 0x5e10ffff + name: "stride" + type_id: 0x4585663f + offset: 1120 +} +member { id: 0x5e325618 name: "stride" type_id: 0x6720d32f @@ -180345,17 +183852,6 @@ member { offset: 224 } member { - id: 0x4add8ec8 - name: "subchannel_id" - type_id: 0xe8034002 -} -member { - id: 0x34ac3a50 - name: "subchannel_nr" - type_id: 0xe8034002 - offset: 16 -} -member { id: 0x2c4470df name: "subclass_code" type_id: 0x295c7202 @@ -180438,11 +183934,6 @@ member { type_id: 0x33756485 } member { - id: 0x0ede87d4 - name: "suberror" - type_id: 0xe62ebf07 -} -member { id: 0x31604159 name: "subformat" type_id: 0x5f61296d @@ -181046,24 +184537,17 @@ member { offset: 32 } member { - id: 0x86378461 - name: "supported_cpus" - type_id: 0x99caa0ae - offset: 3072 -} -member { - id: 0x86b24cf6 - name: "supported_cpus" - type_id: 0x1c04d361 - offset: 2368 -} -member { id: 0x8d29a756 name: "supported_events" type_id: 0xb914bfab offset: 2944 } member { + id: 0x9fc14365 + name: "supported_flash_update_params" + type_id: 0xc9082b19 +} +member { id: 0x44116555 name: "supported_hw" type_id: 0x1bf16028 @@ -181150,6 +184634,12 @@ member { bitsize: 1 } member { + id: 0x07459e81 + name: "supports_multi_frame" + type_id: 0x6d7f5ff6 + offset: 2080 +} +member { id: 0x2138b2e5 name: "supports_op" type_id: 0x3500e23a @@ -181423,16 +184913,21 @@ member { offset: 512 } member { + id: 0x13692fb1 + name: "suspend_lock" + type_id: 0xa7c362b0 +} +member { id: 0x86f0bc08 name: "suspend_noirq" type_id: 0x2dd58efa offset: 896 } member { - id: 0x10dab6be + id: 0x10dabda2 name: "suspend_notifier" type_id: 0x449a775b - offset: 27968 + offset: 28352 } member { id: 0xe2d495b2 @@ -181465,16 +184960,16 @@ member { offset: 9728 } member { - id: 0xae6111f8 + id: 0xae6114cc name: "suspend_state" type_id: 0x64823955 - offset: 28192 + offset: 28576 } member { - id: 0xa136b44a + id: 0xa136ba5d name: "suspend_state_next" type_id: 0x64823955 - offset: 28160 + offset: 28544 } member { id: 0x5885f531 @@ -181528,16 +185023,16 @@ member { offset: 6080 } member { - id: 0xff765a6f + id: 0xff765c39 name: "suspended" type_id: 0x6d7f5ff6 - offset: 28232 + offset: 248 } member { - id: 0xff765c39 + id: 0xff765d59 name: "suspended" type_id: 0x6d7f5ff6 - offset: 248 + offset: 28616 } member { id: 0xe8c51b31 @@ -181605,12 +185100,6 @@ member { offset: 8832 } member { - id: 0xae35f89b - name: "svcr" - type_id: 0x92233392 - offset: 14720 -} -member { id: 0x81787084 name: "svdm_version" type_id: 0xaca841ec @@ -181623,24 +185112,12 @@ member { offset: 7680 } member { - id: 0x05e10aeb - name: "sve_max_vl" - type_id: 0x4585663f - offset: 14656 -} -member { id: 0x2e0a3ab1 name: "sve_state" type_id: 0x18bd6530 offset: 5376 } member { - id: 0x2e0a3f7d - name: "sve_state" - type_id: 0x18bd6530 - offset: 14592 -} -member { id: 0x0faf2220 name: "svid" type_id: 0x914dbfdc @@ -181745,6 +185222,24 @@ member { offset: 1088 } member { + id: 0x69e5d3c9 + name: "swap_bios" + type_id: 0x6720d32f + offset: 4704 +} +member { + id: 0xcec5b332 + name: "swap_bios_lock" + type_id: 0xa7c362b0 + offset: 4928 +} +member { + id: 0xec6548f1 + name: "swap_bios_semaphore" + type_id: 0x6e3b7d7f + offset: 4736 +} +member { id: 0xc43ef2ec name: "swap_complete" type_id: 0x3fcbf304 @@ -182063,6 +185558,47 @@ member { offset: 448 } member { + id: 0x590d4988 + name: "syn_data" + type_id: 0x295c7202 + offset: 13882 + bitsize: 1 +} +member { + id: 0x7d5a2639 + name: "syn_data_acked" + type_id: 0x295c7202 + offset: 13886 + bitsize: 1 +} +member { + id: 0x5e175424 + name: "syn_fastopen" + type_id: 0x295c7202 + offset: 13883 + bitsize: 1 +} +member { + id: 0x1273b273 + name: "syn_fastopen_ch" + type_id: 0x295c7202 + offset: 13885 + bitsize: 1 +} +member { + id: 0xe4473696 + name: "syn_fastopen_exp" + type_id: 0x295c7202 + offset: 13884 + bitsize: 1 +} +member { + id: 0x472be94a + name: "syn_recv_sock" + type_id: 0x120033c5 + offset: 320 +} +member { id: 0x501d2a59 name: "sync" type_id: 0xc9082b19 @@ -182115,6 +185651,12 @@ member { offset: 400 } member { + id: 0x88a8ecb4 + name: "sync_dev_ctx" + type_id: 0x2c9dd50a + offset: 448 +} +member { id: 0xaa5b83a9 name: "sync_dma" type_id: 0xe02e14d6 @@ -182366,20 +185908,10 @@ member { offset: 256 } member { - id: 0x5debde6d - name: "syncr_busy" - type_id: 0x74d29cf1 - offset: 31776 -} -member { - id: 0x6f97ea5f - name: "syndbg" - type_id: 0x14e96be8 -} -member { - id: 0x545bc45d - name: "synic" - type_id: 0x14e96bc2 + id: 0x77b35ac5 + name: "synflood_warned" + type_id: 0xc9082b19 + offset: 64 } member { id: 0x8e7c5fc5 @@ -183336,11 +186868,6 @@ member { offset: 384 } member { - id: 0xb39193a3 - name: "system_event" - type_id: 0x0f6d86be -} -member { id: 0x10e96a60 name: "system_load" type_id: 0x6720d32f @@ -183376,6 +186903,11 @@ member { type_id: 0x9c649622 } member { + id: 0xab76db82 + name: "t" + type_id: 0xc9082b19 +} +member { id: 0x87bba0ec name: "t1" type_id: 0x4585663f @@ -183480,6 +187012,11 @@ member { type_id: 0x28d027d4 } member { + id: 0xb6c41435 + name: "table" + type_id: 0x2f24a589 +} +member { id: 0xb6cd92ad name: "table" type_id: 0x26a23d9b @@ -183506,6 +187043,18 @@ member { offset: 672 } member { + id: 0x0d77c97c + name: "table_devices" + type_id: 0xd3c80119 + offset: 768 +} +member { + id: 0x72b151f9 + name: "table_devices_lock" + type_id: 0xa7c362b0 + offset: 384 +} +member { id: 0x4df2d47b name: "table_fulls" type_id: 0x33756485 @@ -183614,6 +187163,12 @@ member { offset: 128 } member { + id: 0x0de002cb + name: "tag_set" + type_id: 0x2cc0f57b + offset: 3968 +} +member { id: 0x0de00aa5 name: "tag_set" type_id: 0x2cc0f57b @@ -183922,12 +187477,6 @@ member { type_id: 0x6720d32f } member { - id: 0xb3c5f85e - name: "target" - type_id: 0x6720d32f - offset: 67200 -} -member { id: 0xb3da3bc9 name: "target" type_id: 0x78ea2ea9 @@ -183957,6 +187506,12 @@ member { offset: 256 } member { + id: 0x6669afd1 + name: "target_bio_nr" + type_id: 0x4585663f + offset: 32 +} +member { id: 0xa2d76a12 name: "target_blocked" type_id: 0x74d29cf1 @@ -184138,21 +187693,16 @@ member { offset: 2368 } member { - id: 0x096d65bb - name: "target_vcpu" - type_id: 0x08dcfb76 - offset: 384 -} -member { id: 0x16133746 name: "targets" type_id: 0x0d107c2b offset: 64 } member { - id: 0x16377fa9 + id: 0x1623d50f name: "targets" - type_id: 0x295c7202 + type_id: 0x3df0a7d3 + offset: 1792 } member { id: 0x167e5754 @@ -184625,12 +188175,24 @@ member { offset: 64 } member { + id: 0x51753049 + name: "tclass" + type_id: 0xb3e7bac9 + offset: 584 +} +member { id: 0x51753743 name: "tclass" type_id: 0xb3e7bac9 offset: 288 } member { + id: 0x51ef8423 + name: "tclass" + type_id: 0x295c7202 + offset: 72 +} +member { id: 0xbb99034f name: "tclassid" type_id: 0xe62ebf07 @@ -184730,6 +188292,12 @@ member { offset: 4544 } member { + id: 0x5e1e9277 + name: "tcp_clock_cache" + type_id: 0x92233392 + offset: 14016 +} +member { id: 0x77c51ee3 name: "tcp_congestion_control" type_id: 0x30ba0612 @@ -184759,6 +188327,12 @@ member { offset: 64 } member { + id: 0xc07533a2 + name: "tcp_header_len" + type_id: 0x914dbfdc + offset: 12288 +} +member { id: 0xc0a9db63 name: "tcp_ignore_invalid_rst" type_id: 0x295c7202 @@ -184787,6 +188361,12 @@ member { offset: 464 } member { + id: 0x0c6e4e2a + name: "tcp_mstamp" + type_id: 0x92233392 + offset: 14080 +} +member { id: 0x92478c56 name: "tcp_rtx_queue" type_id: 0xeb923a9b @@ -184815,6 +188395,18 @@ member { type_id: 0xd3c80119 } member { + id: 0x5005e20e + name: "tcp_tx_delay" + type_id: 0xc9082b19 + offset: 13920 +} +member { + id: 0x2c472957 + name: "tcp_wstamp_ns" + type_id: 0x92233392 + offset: 13952 +} +member { id: 0xee1e03ec name: "tcpc" type_id: 0x396fe4f8 @@ -185032,18 +188624,6 @@ member { offset: 192 } member { - id: 0xb6388968 - name: "teardown_mc" - type_id: 0xce6b97ea - offset: 64 -} -member { - id: 0xc6b10bc0 - name: "teardown_stage2_mc" - type_id: 0xce6b97ea - offset: 192 -} -member { id: 0x1bd6a7d2 name: "technology" type_id: 0x4585663f @@ -185226,6 +188806,12 @@ member { type_id: 0x2e3696f7 } member { + id: 0x8db5ea4d + name: "test" + type_id: 0x2e0b7ad3 + offset: 256 +} +member { id: 0x8db6a427 name: "test" type_id: 0x2d427ca8 @@ -185255,12 +188841,6 @@ member { offset: 296 } member { - id: 0xa10fc33f - name: "test_young" - type_id: 0x2f50a983 - offset: 192 -} -member { id: 0x6ca576c7 name: "testinfo_len" type_id: 0xe62ebf07 @@ -185378,6 +188958,23 @@ member { offset: 12704 } member { + id: 0x7cd9a358 + name: "tgt" + type_id: 0x3df0a7d3 +} +member { + id: 0x07611cab + name: "tgt_index" + type_id: 0xc9082b19 + offset: 32 +} +member { + id: 0xc9d6516c + name: "tgt_value" + type_id: 0x18bd6530 + offset: 64 +} +member { id: 0x141d2755 name: "thaw" type_id: 0x2dd58efa @@ -185414,6 +189011,13 @@ member { offset: 8960 } member { + id: 0xe07791d5 + name: "thin_lto" + type_id: 0x295c7202 + offset: 13868 + bitsize: 1 +} +member { id: 0xca538c03 name: "think_time" type_id: 0x4585663f @@ -185509,6 +189113,12 @@ member { offset: 29312 } member { + id: 0xa81d1890 + name: "thread_comm" + type_id: 0x3e10b518 + offset: 704 +} +member { id: 0x8b87e4f0 name: "thread_flags" type_id: 0x33756485 @@ -185521,6 +189131,12 @@ member { offset: 256 } member { + id: 0x3e886d7b + name: "thread_fn" + type_id: 0x0aee7ba0 + offset: 256 +} +member { id: 0xb282a928 name: "thread_group" type_id: 0xd3c80119 @@ -185579,6 +189195,12 @@ member { offset: 13504 } member { + id: 0x4118a1ce + name: "thread_should_run" + type_id: 0x29a8570f + offset: 192 +} +member { id: 0x90132b6a name: "thread_sibling" type_id: 0x1c04d361 @@ -185671,6 +189293,12 @@ member { offset: 64 } member { + id: 0x6ce0bb82 + name: "threshold_type" + type_id: 0xcbcc8512 + offset: 64 +} +member { id: 0x3b00e790 name: "thresholds" type_id: 0x2f2113b1 @@ -185736,6 +189364,12 @@ member { offset: 23232 } member { + id: 0x1e282dde + name: "ti" + type_id: 0x3df0a7d3 + offset: 128 +} +member { id: 0xe879699b name: "tick" type_id: 0x39470e64 @@ -185879,6 +189513,12 @@ member { offset: 192 } member { + id: 0x74712a8a + name: "time" + type_id: 0x92233392 + offset: 64 +} +member { id: 0x74712c56 name: "time" type_id: 0x92233392 @@ -186212,6 +189852,12 @@ member { offset: 256 } member { + id: 0x54f0f552 + name: "timeout" + type_id: 0x33756485 + offset: 64 +} +member { id: 0x54f0f7ca name: "timeout" type_id: 0x33756485 @@ -186264,6 +189910,12 @@ member { type_id: 0x4585663f } member { + id: 0x203d8bb9 + name: "timeout_rehash" + type_id: 0x914dbfdc + offset: 18224 +} +member { id: 0x39fee070 name: "timeout_set" type_id: 0x2ef976f3 @@ -186429,12 +190081,6 @@ member { offset: 12864 } member { - id: 0x0120b46e - name: "timer_cpu" - type_id: 0x2f1ca510 - offset: 59968 -} -member { id: 0xf23824cb name: "timer_expires" type_id: 0x33756485 @@ -186453,6 +190099,12 @@ member { offset: 832 } member { + id: 0xbd73b897 + name: "timer_interval" + type_id: 0xc9082b19 + offset: 1856 +} +member { id: 0x64abf1a3 name: "timer_intv" type_id: 0x33756485 @@ -186520,11 +190172,6 @@ member { offset: 9472 } member { - id: 0x30902b47 - name: "timers" - type_id: 0x4c3e1687 -} -member { id: 0x5742dd35 name: "timers_active" type_id: 0x4585663f @@ -186647,6 +190294,12 @@ member { type_id: 0x9699a1e3 } member { + id: 0x2c593fc1 + name: "tio" + type_id: 0xd16b19a7 + offset: 640 +} +member { id: 0x73627a10 name: "tiocmget" type_id: 0x2e35f909 @@ -186742,6 +190395,19 @@ member { offset: 144 } member { + id: 0x81d25425 + name: "tlp_high_seq" + type_id: 0xc9082b19 + offset: 13888 +} +member { + id: 0xdab01e8a + name: "tlp_retrans" + type_id: 0x295c7202 + offset: 13722 + bitsize: 1 +} +member { id: 0x7404e298 name: "tlv" type_id: 0x5509d7db @@ -187052,6 +190718,12 @@ member { offset: 512 } member { + id: 0x896faa0d + name: "todo" + type_id: 0x33756485 + offset: 1408 +} +member { id: 0x898f1b47 name: "todo" type_id: 0xd3c80119 @@ -187224,6 +190896,12 @@ member { offset: 64 } member { + id: 0xf113a55a + name: "tos" + type_id: 0x007e8ce4 + offset: 272 +} +member { id: 0xf13a894d name: "tos" type_id: 0x295c7202 @@ -187248,6 +190926,12 @@ member { offset: 24 } member { + id: 0xf1a03e73 + name: "tos" + type_id: 0xb3e7bac9 + offset: 7072 +} +member { id: 0xd7e12520 name: "tot_busy_t" type_id: 0x33756485 @@ -187266,12 +190950,24 @@ member { offset: 16 } member { + id: 0x3eb7848c + name: "tot_len" + type_id: 0x6720d32f + offset: 32 +} +member { id: 0x408f26e7 name: "tot_write_bandwidth" type_id: 0xb02b353a offset: 704 } member { + id: 0x9d16fe6e + name: "total" + type_id: 0x4585663f + offset: 576 +} +member { id: 0x9d2cc35c name: "total" type_id: 0x7fb8d5d6 @@ -187330,6 +191026,12 @@ member { offset: 112 } member { + id: 0xb46976b5 + name: "total_count" + type_id: 0x33756485 + offset: 64 +} +member { id: 0x5d3c1feb name: "total_frames" type_id: 0xe62ebf07 @@ -187394,6 +191096,12 @@ member { offset: 2112 } member { + id: 0x1ab0aff5 + name: "total_retrans" + type_id: 0xc9082b19 + offset: 18048 +} +member { id: 0x80674f84 name: "total_rx_match_ratio" type_id: 0x33756485 @@ -187458,6 +191166,12 @@ member { offset: 704 } member { + id: 0x7248bb69 + name: "totalpages" + type_id: 0x33756485 + offset: 256 +} +member { id: 0x0d628d12 name: "totalram" type_id: 0x21d43a7b @@ -187539,11 +191253,6 @@ member { bitsize: 1 } member { - id: 0x6fe88545 - name: "tpr_access" - type_id: 0x12592f4f -} -member { id: 0x14f2c5a7 name: "tq" type_id: 0xe62ebf07 @@ -187731,11 +191440,6 @@ member { type_id: 0x4901181a } member { - id: 0x072855a4 - name: "trans_exc_code" - type_id: 0xedf277ba -} -member { id: 0x58786d8a name: "trans_start" type_id: 0x33756485 @@ -187978,6 +191682,12 @@ member { type_id: 0x92233392 } member { + id: 0x1b258c6d + name: "transmit_time" + type_id: 0x92233392 + offset: 320 +} +member { id: 0x45be24a0 name: "transmitting" type_id: 0x0e361c9c @@ -187996,6 +191706,13 @@ member { offset: 544 } member { + id: 0x73793851 + name: "transparent" + type_id: 0xb3e7bac9 + offset: 7109 + bitsize: 1 +} +member { id: 0x738f5598 name: "transparent" type_id: 0x4585663f @@ -188014,6 +191731,12 @@ member { type_id: 0x19d71054 } member { + id: 0xf2cb3293 + name: "transport_finish" + type_id: 0x2dc3d72e + offset: 640 +} +member { id: 0x2a829378 name: "transport_header" type_id: 0xe8034002 @@ -188043,6 +191766,90 @@ member { offset: 1080 } member { + id: 0x21a1a972 + name: "trap_action_set" + type_id: 0x2d004a69 + offset: 1792 +} +member { + id: 0x3c859cc4 + name: "trap_drop_counter_get" + type_id: 0x2d018e8d + offset: 2048 +} +member { + id: 0x24edb8c2 + name: "trap_fini" + type_id: 0x0e44c87b + offset: 1728 +} +member { + id: 0xb252ef85 + name: "trap_group_action_set" + type_id: 0x2d00157c + offset: 1984 +} +member { + id: 0x2b3b3947 + name: "trap_group_init" + type_id: 0x2d033017 + offset: 1856 +} +member { + id: 0x1877dc92 + name: "trap_group_list" + type_id: 0xd3c80119 + offset: 1664 +} +member { + id: 0x3a9bd5f4 + name: "trap_group_set" + type_id: 0x2d004103 + offset: 1920 +} +member { + id: 0x37b507df + name: "trap_init" + type_id: 0x2d02e4d4 + offset: 1664 +} +member { + id: 0x10281c82 + name: "trap_list" + type_id: 0xd3c80119 + offset: 1536 +} +member { + id: 0x5e35aa2e + name: "trap_policer_counter_get" + type_id: 0x2d0ab1eb + offset: 2304 +} +member { + id: 0x1ba59c6d + name: "trap_policer_fini" + type_id: 0x0e4e7ccb + offset: 2176 +} +member { + id: 0x950fbc14 + name: "trap_policer_init" + type_id: 0x2d085064 + offset: 2112 +} +member { + id: 0x9516c9d8 + name: "trap_policer_list" + type_id: 0xd3c80119 + offset: 1792 +} +member { + id: 0xc8b0c1d4 + name: "trap_policer_set" + type_id: 0x2d01e009 + offset: 2240 +} +member { id: 0xc911730d name: "trb_address_map" type_id: 0x80c20070 @@ -188176,12 +191983,6 @@ member { offset: 6656 } member { - id: 0x81d670ed - name: "trfcr_el1" - type_id: 0x92233392 - offset: 4160 -} -member { id: 0xd1709568 name: "tricklecharge_current_ua" type_id: 0x6720d32f @@ -188617,6 +192418,12 @@ member { offset: 960 } member { + id: 0x95c9b8f6 + name: "ts" + type_id: 0x5d8155a5 + offset: 88 +} +member { id: 0x846f423a name: "ts_info" type_id: 0x2d71d7a2 @@ -188629,6 +192436,20 @@ member { offset: 192 } member { + id: 0x5ffbc843 + name: "ts_needaddr" + type_id: 0x5d8155a5 + offset: 101 + bitsize: 1 +} +member { + id: 0xb15e52c6 + name: "ts_needtime" + type_id: 0x5d8155a5 + offset: 100 + bitsize: 1 +} +member { id: 0x6f338061 name: "ts_real" type_id: 0x399c459b @@ -188640,6 +192461,17 @@ member { offset: 1184 } member { + id: 0x851fefad + name: "ts_recent" + type_id: 0xc9082b19 + offset: 32 +} +member { + id: 0x8131134d + name: "ts_recent_stamp" + type_id: 0x6720d32f +} +member { id: 0x0ac38887 name: "tseg1_max" type_id: 0xe62ebf07 @@ -188735,6 +192567,24 @@ member { offset: 18208 } member { + id: 0xaf1c2858 + name: "tsoffset" + type_id: 0xc9082b19 + offset: 13024 +} +member { + id: 0x3fe882fb + name: "tsorted_sent_queue" + type_id: 0xd3c80119 + offset: 13184 +} +member { + id: 0xb4b04624 + name: "tsq_node" + type_id: 0xd3c80119 + offset: 13056 +} +member { id: 0x7f1030b7 name: "tstamp" type_id: 0x33756485 @@ -188770,6 +192620,13 @@ member { offset: 1472 } member { + id: 0xcd6e1313 + name: "tstamp_ok" + type_id: 0x914dbfdc + offset: 129 + bitsize: 1 +} +member { id: 0x724f5b37 name: "tstamp_type" type_id: 0x6720d32f @@ -188819,6 +192676,12 @@ member { offset: 6224 } member { + id: 0x8905c822 + name: "tt_info" + type_id: 0x0baa70a7 + offset: 64 +} +member { id: 0x8909eca8 name: "tt_info" type_id: 0x078c7808 @@ -188881,6 +192744,12 @@ member { offset: 48 } member { + id: 0xf4da47b1 + name: "ttl" + type_id: 0xb3e7bac9 + offset: 264 +} +member { id: 0xf4da4d28 name: "ttl" type_id: 0xb3e7bac9 @@ -189651,6 +193520,30 @@ member { offset: 1200 } member { + id: 0xc168d729 + name: "tx_curr_frame_num" + type_id: 0xc9082b19 + offset: 2080 +} +member { + id: 0x086ff8ab + name: "tx_curr_frame_payload" + type_id: 0xc9082b19 + offset: 2432 +} +member { + id: 0x38ca06c6 + name: "tx_curr_size" + type_id: 0xc9082b19 + offset: 2176 +} +member { + id: 0x5d898398 + name: "tx_curr_skb" + type_id: 0x054f691a + offset: 1600 +} +member { id: 0x54a31621 name: "tx_custom_high_usecs" type_id: 0xc9082b19 @@ -189778,6 +193671,12 @@ member { offset: 704 } member { + id: 0x34444209 + name: "tx_flags" + type_id: 0x295c7202 + offset: 256 +} +member { id: 0x13091341 name: "tx_frames" type_id: 0x33756485 @@ -189843,6 +193742,12 @@ member { offset: 13088 } member { + id: 0x67023990 + name: "tx_info" + type_id: 0x0baa70a7 + offset: 128 +} +member { id: 0x489a6749 name: "tx_ir" type_id: 0x2d8f671b @@ -189892,6 +193797,18 @@ member { offset: 13152 } member { + id: 0x61a8790c + name: "tx_low_mem_max_cnt" + type_id: 0xc9082b19 + offset: 2208 +} +member { + id: 0xa94058b8 + name: "tx_low_mem_val" + type_id: 0xc9082b19 + offset: 2240 +} +member { id: 0xa6a7625f name: "tx_lpi_enabled" type_id: 0xe62ebf07 @@ -189916,6 +193833,12 @@ member { offset: 384 } member { + id: 0x6dd1b0db + name: "tx_max" + type_id: 0xc9082b19 + offset: 2144 +} +member { id: 0x55810d6d name: "tx_max_coalesced_frames" type_id: 0xe62ebf07 @@ -189940,6 +193863,12 @@ member { offset: 512 } member { + id: 0x24dde6e5 + name: "tx_max_datagrams" + type_id: 0x914dbfdc + offset: 2304 +} +member { id: 0x7992b00c name: "tx_max_pending" type_id: 0xe62ebf07 @@ -189981,6 +193910,12 @@ member { type_id: 0xb3e7bac9 } member { + id: 0xd6166cf3 + name: "tx_modulus" + type_id: 0x914dbfdc + offset: 2336 +} +member { id: 0x962013d6 name: "tx_msg" type_id: 0x74026623 @@ -190006,6 +193941,24 @@ member { bitsize: 3 } member { + id: 0x85dc3e67 + name: "tx_ndp_modulus" + type_id: 0x914dbfdc + offset: 2352 +} +member { + id: 0xe0d8421b + name: "tx_ntbs" + type_id: 0x92233392 + offset: 2688 +} +member { + id: 0xa8317855 + name: "tx_overhead" + type_id: 0x92233392 + offset: 2624 +} +member { id: 0x9206d03d name: "tx_packets" type_id: 0x33756485 @@ -190117,6 +194070,12 @@ member { offset: 944 } member { + id: 0x32c7bb3d + name: "tx_qlen" + type_id: 0x74d29cf1 + offset: 576 +} +member { id: 0x580681a6 name: "tx_queue_len" type_id: 0x4585663f @@ -190129,6 +194088,54 @@ member { offset: 11328 } member { + id: 0xc1b8b7af + name: "tx_reason_max_datagram" + type_id: 0xc9082b19 + offset: 2560 +} +member { + id: 0x29c64945 + name: "tx_reason_ndp_full" + type_id: 0xc9082b19 + offset: 2496 +} +member { + id: 0xaec5023b + name: "tx_reason_ntb_full" + type_id: 0xc9082b19 + offset: 2464 +} +member { + id: 0x618af26f + name: "tx_reason_timeout" + type_id: 0xc9082b19 + offset: 2528 +} +member { + id: 0x8d6eed3e + name: "tx_rem_sign" + type_id: 0x0baa70a7 + offset: 1728 +} +member { + id: 0x2d67c2b0 + name: "tx_rem_skb" + type_id: 0x054f691a + offset: 1664 +} +member { + id: 0x8c376a11 + name: "tx_remainder" + type_id: 0x914dbfdc + offset: 2320 +} +member { + id: 0xafc385cf + name: "tx_reqs" + type_id: 0xd3c80119 + offset: 320 +} +member { id: 0x5f95d285 name: "tx_reserved" type_id: 0x2b4e5af5 @@ -190186,6 +194193,12 @@ member { offset: 6528 } member { + id: 0x163cb0a1 + name: "tx_seq" + type_id: 0x914dbfdc + offset: 2368 +} +member { id: 0x2862bcb8 name: "tx_sg" type_id: 0x28d027d4 @@ -190277,6 +194290,18 @@ member { offset: 13024 } member { + id: 0xa25bc850 + name: "tx_timer" + type_id: 0xcd7704bf + offset: 256 +} +member { + id: 0xf9c0c1b7 + name: "tx_timer_pending" + type_id: 0xc9082b19 + offset: 2048 +} +member { id: 0x5343bc40 name: "tx_toggle" type_id: 0x6d7f5ff6 @@ -190323,10 +194348,10 @@ member { type_id: 0x33756485 } member { - id: 0xa75cec0a + id: 0xa75cede3 name: "tx_work" type_id: 0x1f3c8679 - offset: 22592 + offset: 22976 } member { id: 0xdebcf805 @@ -190784,6 +194809,12 @@ member { type_id: 0x368ec5cb } member { + id: 0x5c60f365 + name: "type" + type_id: 0x3622fa2a + offset: 64 +} +member { id: 0x5c61158d name: "type" type_id: 0x37ce2c2c @@ -190842,6 +194873,12 @@ member { type_id: 0x3e10b518 } member { + id: 0x5c68c671 + name: "type" + type_id: 0x3e10b518 + offset: 832 +} +member { id: 0x5c68cd02 name: "type" type_id: 0x3e10b518 @@ -191067,6 +195104,18 @@ member { offset: 32 } member { + id: 0x5cab8146 + name: "type" + type_id: 0xfd56cb64 + offset: 1408 +} +member { + id: 0x5cab8754 + name: "type" + type_id: 0xfd56cb64 + offset: 64 +} +member { id: 0x5cac8829 name: "type" type_id: 0xfa5f37bb @@ -191126,6 +195175,11 @@ member { offset: 64 } member { + id: 0x5cbbb022 + name: "type" + type_id: 0xed655c73 +} +member { id: 0x5cbbc962 name: "type" type_id: 0xed1c1cd5 @@ -191212,6 +195266,12 @@ member { offset: 128 } member { + id: 0x5ce53c7a + name: "type" + type_id: 0xb3e7bac9 + offset: 16 +} +member { id: 0x5ce53fde name: "type" type_id: 0xb3e7bac9 @@ -191287,6 +195347,12 @@ member { bitsize: 2 } member { + id: 0x7263c7bf + name: "type_ah" + type_id: 0x32b54b11 + offset: 384 +} +member { id: 0x737fb73e name: "type_attr_map_array" type_id: 0x2b3a75d9 @@ -191330,6 +195396,12 @@ member { offset: 480 } member { + id: 0xd4787e60 + name: "type_comp" + type_id: 0x32b54b11 + offset: 320 +} +member { id: 0xb38ca977 name: "type_control" type_id: 0x4585663f @@ -191342,6 +195414,18 @@ member { offset: 448 } member { + id: 0xf2fe58e1 + name: "type_dstopts" + type_id: 0x32b54b11 + offset: 512 +} +member { + id: 0xc64a2d69 + name: "type_esp" + type_id: 0x32b54b11 + offset: 128 +} +member { id: 0xe6df641d name: "type_falling_val" type_id: 0x4585663f @@ -191393,6 +195477,18 @@ member { bitsize: 1 } member { + id: 0xec93386d + name: "type_ipip" + type_id: 0x32b54b11 + offset: 192 +} +member { + id: 0xf788152f + name: "type_ipip6" + type_id: 0x32b54b11 + offset: 256 +} +member { id: 0xc29ac9a5 name: "type_iso" type_id: 0x4585663f @@ -191430,6 +195526,12 @@ member { offset: 352 } member { + id: 0xc5f5f87e + name: "type_lock" + type_id: 0xa7c362b0 + offset: 1024 +} +member { id: 0xe2794a8c name: "type_names" type_id: 0x2a5ed1c1 @@ -191454,6 +195556,12 @@ member { offset: 5952 } member { + id: 0x797b9c35 + name: "type_offload_esp" + type_id: 0x3f5329f7 + offset: 64 +} +member { id: 0x9d444403 name: "type_ops" type_id: 0x386f9e42 @@ -191489,6 +195597,12 @@ member { offset: 64 } member { + id: 0x34322597 + name: "type_routing" + type_id: 0x32b54b11 + offset: 448 +} +member { id: 0x4a3d814f name: "type_str_buf" type_id: 0x3db8d8c8 @@ -191548,12 +195662,36 @@ member { offset: 192 } member { + id: 0xf49ccf9e + name: "types" + type_id: 0x0e38185b + offset: 896 +} +member { id: 0xf49ecb47 name: "types" type_id: 0x0c3286fb offset: 64 } member { + id: 0x6e3b6a83 + name: "types_count" + type_id: 0x3999579d + offset: 192 +} +member { + id: 0x6e477688 + name: "types_count" + type_id: 0x4585663f + offset: 960 +} +member { + id: 0x88117783 + name: "types_get" + type_id: 0x0e0dc148 + offset: 256 +} +member { id: 0x3f590b7c name: "types_mask" type_id: 0x914dbfdc @@ -191641,12 +195779,6 @@ member { type_id: 0x6905d706 } member { - id: 0xec1fd483 - name: "u" - type_id: 0x608c0f38 - offset: 64 -} -member { id: 0xec25b730 name: "u" type_id: 0x5aefbcda @@ -191659,6 +195791,11 @@ member { offset: 128 } member { + id: 0xec2a9cea + name: "u" + type_id: 0x55c087bf +} +member { id: 0xec2ac37d name: "u" type_id: 0x559f10ea @@ -191675,12 +195812,6 @@ member { offset: 960 } member { - id: 0xec3c82cc - name: "u" - type_id: 0x43da400a - offset: 64 -} -member { id: 0xec3d71ae name: "u" type_id: 0x422401d6 @@ -191832,22 +195963,6 @@ member { offset: 256 } member { - id: 0x1a96b10c - name: "uaccess_its_write" - type_id: 0x2eae2318 -} -member { - id: 0x8638eb22 - name: "uaccess_read" - type_id: 0x0669d6b3 - offset: 256 -} -member { - id: 0x34f83972 - name: "uaccess_write" - type_id: 0x2d62ee59 -} -member { id: 0x555ff25e name: "uaddr" type_id: 0x38d23361 @@ -191871,6 +195986,12 @@ member { offset: 64 } member { + id: 0x50ba6c8c + name: "uarg" + type_id: 0x35dbe029 + offset: 384 +} +member { id: 0x6a0a74ef name: "uart_port" type_id: 0x00b7947f @@ -191916,12 +196037,30 @@ member { type_id: 0x6dad7303 } member { + id: 0x1d8e0899 + name: "uc_index" + type_id: 0x6720d32f + offset: 7136 +} +member { id: 0x70a44081 name: "uc_promisc" type_id: 0x6d7f5ff6 offset: 5696 } member { + id: 0x8e099fc0 + name: "uc_ttl" + type_id: 0x007e8ce4 + offset: 6944 +} +member { + id: 0x95dcef8c + name: "ucast_oif" + type_id: 0x6720d32f + offset: 480 +} +member { id: 0xd2f70d3b name: "ucd_prdt_dma_addr" type_id: 0xe02e14d6 @@ -192274,12 +196413,30 @@ member { offset: 448 } member { + id: 0x1704d15b + name: "uevent_list" + type_id: 0xd3c80119 + offset: 3776 +} +member { + id: 0xdc003eed + name: "uevent_lock" + type_id: 0xf313e71a + offset: 3904 +} +member { id: 0x7a23f532 name: "uevent_ops" type_id: 0x3fdb8af3 offset: 960 } member { + id: 0x271c2c01 + name: "uevent_seq" + type_id: 0x74d29cf1 + offset: 3744 +} +member { id: 0x069b6afd name: "uevent_sock" type_id: 0x3462d6fc @@ -192770,6 +196927,18 @@ member { offset: 512 } member { + id: 0x44e15491 + name: "undo_marker" + type_id: 0xc9082b19 + offset: 17920 +} +member { + id: 0x7392ff81 + name: "undo_retrans" + type_id: 0x6720d32f + offset: 17952 +} +member { id: 0x0645ccd5 name: "unfreeze_fs" type_id: 0x2f9ee7ee @@ -192788,6 +196957,12 @@ member { offset: 1408 } member { + id: 0xe6eaad3f + name: "uni2char" + type_id: 0x2d34349d + offset: 128 +} +member { id: 0xb7a98fcb name: "uniq" type_id: 0x3db8d8c8 @@ -193082,6 +197257,12 @@ member { offset: 2848 } member { + id: 0x6fd6cd07 + name: "unpark" + type_id: 0x0aee7ba0 + offset: 576 +} +member { id: 0x343d462b name: "unpin" type_id: 0x0d3022ff @@ -193173,6 +197354,12 @@ member { offset: 2816 } member { + id: 0x1f617d86 + name: "unprovision" + type_id: 0x2d4fcd25 + offset: 64 +} +member { id: 0x8ea4f872 name: "unreg_list" type_id: 0xd3c80119 @@ -193191,6 +197378,12 @@ member { offset: 64 } member { + id: 0xdb3467f3 + name: "unregister_lock" + type_id: 0xa7c362b0 + offset: 16640 +} +member { id: 0x7c187e24 name: "unregistered" type_id: 0x0eaa77b7 @@ -193320,6 +197513,20 @@ member { offset: 768 } member { + id: 0xc2fb89b4 + name: "unused" + type_id: 0x295c7202 + offset: 145 + bitsize: 7 +} +member { + id: 0xd0fa2acf + name: "unused" + type_id: 0x295c7202 + offset: 13723 + bitsize: 5 +} +member { id: 0xd4ec9f32 name: "unused" type_id: 0x295c7202 @@ -193351,6 +197558,18 @@ member { offset: 11784 } member { + id: 0x7f0a76c2 + name: "unwrap" + type_id: 0x2e747a05 + offset: 960 +} +member { + id: 0x7f0a7bae + name: "unwrap" + type_id: 0x2e747a05 + offset: 2176 +} +member { id: 0xa37704a2 name: "unx" type_id: 0xaf070227 @@ -193405,6 +197624,12 @@ member { offset: 128 } member { + id: 0xd6aa460e + name: "update" + type_id: 0x0f596314 + offset: 192 +} +member { id: 0xd6ab4b69 name: "update" type_id: 0x0e5c6698 @@ -193790,12 +198015,24 @@ member { bitsize: 1 } member { + id: 0x6e240c8e + name: "urg_data" + type_id: 0x914dbfdc + offset: 14624 +} +member { id: 0xcd5c6021 name: "urg_ptr" type_id: 0x7584e7da offset: 144 } member { + id: 0xf6fff0ee + name: "urg_seq" + type_id: 0xc9082b19 + offset: 18080 +} +member { id: 0x3bf0a986 name: "urgent_bkops_lvl" type_id: 0xeab68ea2 @@ -194161,6 +198398,12 @@ member { offset: 1216 } member { + id: 0xc6a4da74 + name: "usb_offload_skip_urb" + type_id: 0x34104e47 + offset: 512 +} +member { id: 0x171fc3a7 name: "usb_pd" type_id: 0x4585663f @@ -194689,18 +198932,6 @@ member { type_id: 0x4585663f } member { - id: 0x867737e5 - name: "used_lrs" - type_id: 0x4585663f - offset: 2144 -} -member { - id: 0x8677397b - name: "used_lrs" - type_id: 0x4585663f - offset: 2432 -} -member { id: 0x59ccfd6e name: "used_map_cnt" type_id: 0xc9082b19 @@ -194731,12 +198962,6 @@ member { offset: 6720 } member { - id: 0x0170d376 - name: "used_mask" - type_id: 0xb914bfab - offset: 2048 -} -member { id: 0xcd075131 name: "used_sems" type_id: 0x6720d32f @@ -194897,6 +199122,12 @@ member { offset: 9856 } member { + id: 0xc4835a3d + name: "user_mss" + type_id: 0x914dbfdc + offset: 160 +} +member { id: 0xf44982ea name: "user_name" type_id: 0x5adf57ae @@ -195131,10 +199362,10 @@ member { offset: 960 } member { - id: 0x85e876e9 + id: 0x85d92902 name: "users" - type_id: 0x4585663f - offset: 384 + type_id: 0x74d29cf1 + offset: 96 } member { id: 0x85e87d65 @@ -195143,12 +199374,6 @@ member { offset: 4544 } member { - id: 0x914f88a3 - name: "users_count" - type_id: 0xa722c13e - offset: 24576 -} -member { id: 0xbb6c91c3 name: "usersize" type_id: 0x4585663f @@ -195179,12 +199404,6 @@ member { offset: 8960 } member { - id: 0xff77b3c7 - name: "userspace_pid" - type_id: 0x49b889e7 - offset: 34240 -} -member { id: 0x959b553f name: "uses_need_wakeup" type_id: 0x6d7f5ff6 @@ -195426,10 +199645,10 @@ member { offset: 896 } member { - id: 0x4dcd3d5e + id: 0x4dcd3a37 name: "uuids" type_id: 0xd3c80119 - offset: 29184 + offset: 29568 } member { id: 0xba94773b @@ -195494,6 +199713,12 @@ member { type_id: 0xe62ebf07 } member { + id: 0x28f6afd5 + name: "v" + type_id: 0xc9082b19 + offset: 32 +} +member { id: 0x543f6773 name: "v1" type_id: 0x6d0d4c04 @@ -195504,12 +199729,6 @@ member { type_id: 0xe10a7e38 } member { - id: 0x76466478 - name: "v2_groups_user_writable" - type_id: 0x6d7f5ff6 - offset: 96 -} -member { id: 0x195445f8 name: "v4" type_id: 0x45ddde21 @@ -195544,6 +199763,11 @@ member { type_id: 0x7c866968 } member { + id: 0x78e33cfc + name: "v6_rcv_saddr" + type_id: 0x6d25e07f +} +member { id: 0x80b1cd58 name: "v_1p2" type_id: 0x6d7f5ff6 @@ -195655,6 +199879,11 @@ member { type_id: 0x75617428 } member { + id: 0x4f647aa3 + name: "val" + type_id: 0x729479be +} +member { id: 0x4f67c989 name: "val" type_id: 0x712753fa @@ -195839,12 +200068,6 @@ member { offset: 448 } member { - id: 0x7e5c1bb6 - name: "valid_wakeup" - type_id: 0x6d7f5ff6 - offset: 1312 -} -member { id: 0x2a0a55ed name: "validate" type_id: 0x369da151 @@ -195973,6 +200196,12 @@ member { offset: 64 } member { + id: 0xa010e540 + name: "value" + type_id: 0x18bd6530 + offset: 64 +} +member { id: 0xa010e863 name: "value" type_id: 0x18bd6530 @@ -196104,6 +200333,12 @@ member { type_id: 0xdd6eef0a } member { + id: 0x9bef952d + name: "value_len" + type_id: 0xf435685e + offset: 128 +} +member { id: 0x0e144f7f name: "value_offset" type_id: 0x6720d32f @@ -196378,6 +200613,12 @@ member { bitsize: 1 } member { + id: 0xdf3f679f + name: "vbus_work" + type_id: 0x1f3c8679 + offset: 7616 +} +member { id: 0xf6f15b5e name: "vbv_buffer_size" type_id: 0xe62ebf07 @@ -196430,47 +200671,6 @@ member { offset: 192 } member { - id: 0xa936a2d5 - name: "vcpu" - type_id: 0x08dcfb76 -} -member { - id: 0xa936a512 - name: "vcpu" - type_id: 0x08dcfb76 - offset: 320 -} -member { - id: 0xcd6e2d79 - name: "vcpu_array" - type_id: 0x80c20070 - offset: 18176 -} -member { - id: 0xf58a324e - name: "vcpu_debug_state" - type_id: 0x590c6dd8 - offset: 15488 -} -member { - id: 0x7c4a52b5 - name: "vcpu_id" - type_id: 0x6720d32f - offset: 288 -} -member { - id: 0x7c4a5fae - name: "vcpu_id" - type_id: 0x6720d32f - offset: 128 -} -member { - id: 0xbcb323c9 - name: "vcpu_idx" - type_id: 0x6720d32f - offset: 320 -} -member { id: 0x522a42f5 name: "vd" type_id: 0xd97383e4 @@ -196608,11 +200808,6 @@ member { offset: 640 } member { - id: 0x831d3c48 - name: "vector" - type_id: 0xb3e7bac9 -} -member { id: 0x8367d3d9 name: "vector" type_id: 0xc9082b19 @@ -196686,6 +200881,12 @@ member { type_id: 0xa745d9ba } member { + id: 0x19d3d4c2 + name: "vendor_cleanup" + type_id: 0x0f9e7cc3 + offset: 64 +} +member { id: 0xb9270675 name: "vendor_cmds" type_id: 0x3131917d @@ -196710,12 +200911,6 @@ member { offset: 11008 } member { - id: 0xba785216 - name: "vendor_hyp_bmap" - type_id: 0x33756485 - offset: 128 -} -member { id: 0x0b0b87f3 name: "vendor_id" type_id: 0x42201dce @@ -196739,6 +200934,11 @@ member { offset: 2816 } member { + id: 0xcc0a44cd + name: "vendor_init" + type_id: 0x2cd8506c +} +member { id: 0xc240aa08 name: "vendor_load" type_id: 0x2c815a87 @@ -196757,6 +200957,11 @@ member { offset: 6336 } member { + id: 0x7d2869d8 + name: "vendor_ops" + type_id: 0x2e19617e +} +member { id: 0xfd44cde8 name: "vendor_oui" type_id: 0x1cd62a6b @@ -196827,6 +201032,12 @@ member { offset: 1216 } member { + id: 0xf584ce40 + name: "verify" + type_id: 0x2cd8a9c9 + offset: 64 +} +member { id: 0xf586d6a4 name: "verify" type_id: 0x2ec36b1e @@ -196934,6 +201145,12 @@ member { offset: 128 } member { + id: 0xa662981f + name: "version" + type_id: 0x03a4acbb + offset: 192 +} +member { id: 0xa66a9aeb name: "version" type_id: 0x0baa70a7 @@ -197038,6 +201255,18 @@ member { type_id: 0x914dbfdc } member { + id: 0x8e9e82fd + name: "version_cb" + type_id: 0x0d1f55de + offset: 64 +} +member { + id: 0xca2aa534 + name: "version_cb_priv" + type_id: 0x18bd6530 + offset: 128 +} +member { id: 0x88d1b3ba name: "version_get" type_id: 0x2e083ab8 @@ -197155,97 +201384,6 @@ member { offset: 1024 } member { - id: 0xf510916c - name: "vgic" - type_id: 0x2c25c966 - offset: 384 -} -member { - id: 0xaa37d774 - name: "vgic_ap0r" - type_id: 0xbe0f19dc - offset: 96 -} -member { - id: 0x47207a3e - name: "vgic_ap1r" - type_id: 0xbe0f19dc - offset: 224 -} -member { - id: 0xc9dbb39f - name: "vgic_apr" - type_id: 0xc9082b19 - offset: 64 -} -member { - id: 0x76772152 - name: "vgic_cpu" - type_id: 0xe46534dd - offset: 27968 -} -member { - id: 0x082c701d - name: "vgic_cpu_base" - type_id: 0x1b4ba19a -} -member { - id: 0xc573cedf - name: "vgic_dist_base" - type_id: 0x1b4ba19a - offset: 192 -} -member { - id: 0x4a8c149d - name: "vgic_hcr" - type_id: 0xc9082b19 -} -member { - id: 0x0f936dd3 - name: "vgic_its_base" - type_id: 0x1b4ba19a -} -member { - id: 0xa73178a4 - name: "vgic_lr" - type_id: 0x01e90d51 - offset: 96 -} -member { - id: 0xa75822b6 - name: "vgic_lr" - type_id: 0x68bb0e75 - offset: 384 -} -member { - id: 0xe66fe569 - name: "vgic_model" - type_id: 0xc9082b19 - offset: 32 -} -member { - id: 0x28fa73a3 - name: "vgic_sre" - type_id: 0xc9082b19 - offset: 64 -} -member { - id: 0xd491835d - name: "vgic_v2" - type_id: 0x020c6b41 -} -member { - id: 0x166fabb0 - name: "vgic_v3" - type_id: 0xbfc414f5 -} -member { - id: 0x38bbfe42 - name: "vgic_vmcr" - type_id: 0xc9082b19 - offset: 32 -} -member { id: 0x4e9808a4 name: "vht_cap" type_id: 0x8667cdb7 @@ -198045,6 +202183,11 @@ member { offset: 96 } member { + id: 0xde7997b9 + name: "virt" + type_id: 0x14e40ca3 +} +member { id: 0xc21c7538 name: "virt_base" type_id: 0x18bd6530 @@ -198086,12 +202229,6 @@ member { offset: 448 } member { - id: 0x40e6d42e - name: "virt_to_phys" - type_id: 0x0b71f929 - offset: 448 -} -member { id: 0x47f05b51 name: "virtmem" type_id: 0xedf277ba @@ -198264,36 +202401,12 @@ member { offset: 16 } member { - id: 0xd2927ea1 - name: "vlpi_count" - type_id: 0x7e71c857 - offset: 480 -} -member { - id: 0xd298d587 - name: "vlpi_count" - type_id: 0x74d29cf1 - offset: 128 -} -member { id: 0x182c3eca name: "vm_addr_space_mm" type_id: 0x8f0e76d7 offset: 64 } member { - id: 0x3046b926 - name: "vm_bugged" - type_id: 0x6d7f5ff6 - offset: 34368 -} -member { - id: 0x82dad882 - name: "vm_dead" - type_id: 0x6d7f5ff6 - offset: 34376 -} -member { id: 0xc16704da name: "vm_end" type_id: 0x33756485 @@ -198317,12 +202430,6 @@ member { type_id: 0xd2d7132a } member { - id: 0x5d9a7aad - name: "vm_list" - type_id: 0xd3c80119 - offset: 18816 -} -member { id: 0x155d76e4 name: "vm_lock" type_id: 0x334f6bdc @@ -198352,12 +202459,6 @@ member { offset: 64 } member { - id: 0xd652df47 - name: "vm_node" - type_id: 0xd3c80119 - offset: 192 -} -member { id: 0x5a0cf049 name: "vm_node_stat_diff" type_id: 0xda50e95d @@ -198439,6 +202540,12 @@ member { offset: 1280 } member { + id: 0x239192da + name: "vma" + type_id: 0x0a134144 + offset: 192 +} +member { id: 0x23919a13 name: "vma" type_id: 0x0a134144 @@ -198522,12 +202629,6 @@ member { offset: 4032 } member { - id: 0x87ea4d5c - name: "vmapp_count" - type_id: 0x74d29cf1 - offset: 512 -} -member { id: 0x7a9a7619 name: "vmapping_counter" type_id: 0x4585663f @@ -198540,11 +202641,6 @@ member { offset: 832 } member { - id: 0x69149bd4 - name: "vmid" - type_id: 0x0c039fcc -} -member { id: 0x69834c4a name: "vmid" type_id: 0x9bd401b6 @@ -198722,64 +202818,24 @@ member { offset: 2560 } member { - id: 0x3e9547ca - name: "vpe_db_lpi" - type_id: 0x22b36393 - offset: 192 -} -member { - id: 0x1b58edc6 - name: "vpe_id" - type_id: 0x914dbfdc - offset: 944 -} -member { id: 0x891a8488 name: "vpe_l1_base" type_id: 0x18bd6530 offset: 384 } member { - id: 0xa8c6574f - name: "vpe_lock" - type_id: 0xc8b17aa7 - offset: 896 -} -member { - id: 0x715799b8 - name: "vpe_proxy_event" - type_id: 0x6720d32f -} -member { id: 0x1a9ae5dc name: "vpe_table_mask" type_id: 0x0d910d7f offset: 320 } member { - id: 0xade8e87b - name: "vpes" - type_id: 0x09af8dc9 - offset: 192 -} -member { - id: 0x18a69b62 - name: "vprop_page" - type_id: 0x06835e9c - offset: 128 -} -member { id: 0x991cc136 name: "vps" type_id: 0x3dbcdeab offset: 1344 } member { - id: 0xdca92f00 - name: "vpt_page" - type_id: 0x06835e9c -} -member { id: 0xc5916613 name: "vqmmc" type_id: 0x01ae1e33 @@ -198899,12 +202955,6 @@ member { offset: 1344 } member { - id: 0xf681ca11 - name: "vsesr_el2" - type_id: 0x92233392 - offset: 67328 -} -member { id: 0x8d8f1051 name: "vsk" type_id: 0x156a41de @@ -198994,12 +203044,6 @@ member { offset: 64 } member { - id: 0x8b881e3c - name: "vtcr" - type_id: 0x92233392 - offset: 320 -} -member { id: 0xc821afee name: "vtermno" type_id: 0x1c3dbe5a @@ -199058,6 +203102,17 @@ member { offset: 32 } member { + id: 0xdd4cd36f + name: "wDatagramIndex" + type_id: 0x9bd401b6 +} +member { + id: 0x3643720a + name: "wDatagramLength" + type_id: 0x9bd401b6 + offset: 16 +} +member { id: 0x3b766446 name: "wFunctionalitySupport" type_id: 0x9bd401b6 @@ -199076,6 +203131,17 @@ member { offset: 48 } member { + id: 0x070c8108 + name: "wLength" + type_id: 0x9bd401b6 + offset: 32 +} +member { + id: 0x070c8c33 + name: "wLength" + type_id: 0x9bd401b6 +} +member { id: 0xb75b254f name: "wMTU" type_id: 0x9bd401b6 @@ -199112,18 +203178,78 @@ member { offset: 64 } member { + id: 0x2726a674 + name: "wNdpInAlignment" + type_id: 0x9bd401b6 + offset: 96 +} +member { + id: 0x8464bb02 + name: "wNdpInDivisor" + type_id: 0x9bd401b6 + offset: 64 +} +member { + id: 0x2c655b0e + name: "wNdpInPayloadRemainder" + type_id: 0x9bd401b6 + offset: 80 +} +member { + id: 0x13c51648 + name: "wNdpOutAlignment" + type_id: 0x9bd401b6 + offset: 192 +} +member { + id: 0x5a711378 + name: "wNdpOutDivisor" + type_id: 0x9bd401b6 + offset: 160 +} +member { + id: 0xcf666fe6 + name: "wNdpOutPayloadRemainder" + type_id: 0x9bd401b6 + offset: 176 +} +member { + id: 0x28625ee1 + name: "wNextNdpIndex" + type_id: 0x9bd401b6 + offset: 48 +} +member { + id: 0x364cd8ff + name: "wNtbOutMaxDatagrams" + type_id: 0x9bd401b6 + offset: 208 +} +member { id: 0xd6499e1b name: "wNumberMCFilters" type_id: 0x9bd401b6 offset: 80 } member { + id: 0x0550cff2 + name: "wPadding1" + type_id: 0x9bd401b6 + offset: 112 +} +member { id: 0x84d40eb1 name: "wReserved" type_id: 0x9bd401b6 offset: 80 } member { + id: 0xe3bc934c + name: "wReserved6" + type_id: 0x9bd401b6 + offset: 48 +} +member { id: 0xeffe0b79 name: "wReseved" type_id: 0x9bd401b6 @@ -199178,6 +203304,12 @@ member { offset: 192 } member { + id: 0x201ba432 + name: "wait" + type_id: 0x35a67227 + offset: 64 +} +member { id: 0x201ba81a name: "wait" type_id: 0x35a67227 @@ -199220,6 +203352,12 @@ member { offset: 7488 } member { + id: 0x202d9516 + name: "wait" + type_id: 0x03913382 + offset: 1984 +} +member { id: 0x202d9556 name: "wait" type_id: 0x03913382 @@ -199273,12 +203411,6 @@ member { offset: 128 } member { - id: 0x20f5a5f4 - name: "wait" - type_id: 0xdba44af3 - offset: 1024 -} -member { id: 0x9c8dc12c name: "wait_blkd_tasks" type_id: 0x6d7f5ff6 @@ -199549,16 +203681,16 @@ member { offset: 576 } member { - id: 0x58a1bb2e + id: 0x58a1ba40 name: "wake_addr" type_id: 0xa61911b2 - offset: 28248 + offset: 28632 } member { - id: 0x4505aa58 + id: 0x4505a488 name: "wake_addr_type" type_id: 0x295c7202 - offset: 28296 + offset: 28680 } member { id: 0x4d54241b @@ -199664,10 +203796,10 @@ member { offset: 18816 } member { - id: 0x15af785f + id: 0x15af76a2 name: "wake_reason" type_id: 0x295c7202 - offset: 28240 + offset: 28624 } member { id: 0x692e11ef @@ -199706,10 +203838,10 @@ member { offset: 320 } member { - id: 0xff0b382d + id: 0xff0b3458 name: "wakeup" type_id: 0x34e51224 - offset: 50816 + offset: 51200 } member { id: 0xff0caf01 @@ -200181,18 +204313,6 @@ member { offset: 22080 } member { - id: 0x33be0c85 - name: "wfe_exit_stat" - type_id: 0x92233392 - offset: 6720 -} -member { - id: 0xff2da133 - name: "wfi_exit_stat" - type_id: 0x92233392 - offset: 6784 -} -member { id: 0x149f4f99 name: "wheel_accumulated" type_id: 0x007e8ce4 @@ -200481,6 +204601,12 @@ member { offset: 64 } member { + id: 0x98ad753d + name: "window_clamp" + type_id: 0xc9082b19 + offset: 13440 +} +member { id: 0x1afab587 name: "window_len" type_id: 0x4585663f @@ -200644,6 +204770,12 @@ member { offset: 928 } member { + id: 0xd60840ef + name: "work" + type_id: 0xf1159c31 + offset: 2112 +} +member { id: 0xd60848d4 name: "work" type_id: 0xf1159c31 @@ -200730,6 +204862,12 @@ member { type_id: 0x3835dcc0 } member { + id: 0xd6e660a8 + name: "work" + type_id: 0x1f3c8679 + offset: 1024 +} +member { id: 0xd6e661ca name: "work" type_id: 0x1f3c8679 @@ -200748,6 +204886,12 @@ member { offset: 2176 } member { + id: 0xd6e6623f + name: "work" + type_id: 0x1f3c8679 + offset: 2432 +} +member { id: 0xd6e66356 name: "work" type_id: 0x1f3c8679 @@ -201202,6 +205346,12 @@ member { offset: 1152 } member { + id: 0x22fae506 + name: "wq" + type_id: 0x13f8b706 + offset: 2368 +} +member { id: 0x22fae76b name: "wq" type_id: 0x13f8b706 @@ -201291,6 +205441,18 @@ member { offset: 576 } member { + id: 0xb361ca71 + name: "wrap" + type_id: 0x13323bbb + offset: 896 +} +member { + id: 0xb361ce95 + name: "wrap" + type_id: 0x13323bbb + offset: 2112 +} +member { id: 0x48aef34d name: "wrap_around" type_id: 0xe62ebf07 @@ -201387,11 +205549,6 @@ member { offset: 384 } member { - id: 0x340ef030 - name: "write" - type_id: 0x0e24c2f6 -} -member { id: 0x3421983a name: "write" type_id: 0x21450ae9 @@ -201428,12 +205585,6 @@ member { offset: 1728 } member { - id: 0x342da96c - name: "write" - type_id: 0x2d797f87 - offset: 64 -} -member { id: 0x342db9a0 name: "write" type_id: 0x2d69b3f9 @@ -201566,6 +205717,12 @@ member { offset: 2048 } member { + id: 0x6cd173ed + name: "write_callback" + type_id: 0x0c33de94 + offset: 1024 +} +member { id: 0xf2bc2b47 name: "write_char" type_id: 0xedf277ba @@ -201590,12 +205747,6 @@ member { offset: 7488 } member { - id: 0x5f710844 - name: "write_counter" - type_id: 0x0ff8ee0d - offset: 3008 -} -member { id: 0x074a81fd name: "write_dbi" type_id: 0x0d714d5c @@ -201619,6 +205770,18 @@ member { offset: 384 } member { + id: 0xdc734cb7 + name: "write_end" + type_id: 0x4585663f + offset: 928 +} +member { + id: 0x6d2dbcdf + name: "write_error" + type_id: 0x7be80061 + offset: 600 +} +member { id: 0x2d1f9b2d name: "write_event_config" type_id: 0x2c45ed77 @@ -201715,18 +205878,18 @@ member { offset: 192 } member { + id: 0x32aed56a + name: "write_list" + type_id: 0xd3c80119 + offset: 1024 +} +member { id: 0x3b7c6234 name: "write_lock" type_id: 0xa7c362b0 offset: 7744 } member { - id: 0x365e3956 - name: "write_mask" - type_id: 0x33756485 - offset: 128 -} -member { id: 0x54db64f6 name: "write_merkle_tree_block" type_id: 0x2c7820c5 @@ -201831,12 +205994,24 @@ member { offset: 1536 } member { + id: 0xd5cb059f + name: "write_seq" + type_id: 0xc9082b19 + offset: 15584 +} +member { id: 0x0a06727e name: "write_stamp" type_id: 0x7ca48629 offset: 1856 } member { + id: 0xb4ed2fb3 + name: "write_start" + type_id: 0x4585663f + offset: 896 +} +member { id: 0x8b22f978 name: "write_started" type_id: 0x6720d32f @@ -202104,6 +206279,13 @@ member { offset: 48 } member { + id: 0xf0ca4be8 + name: "wscale_ok" + type_id: 0x914dbfdc + offset: 131 + bitsize: 1 +} +member { id: 0x8986dade name: "wspecversion" type_id: 0x914dbfdc @@ -202285,6 +206467,11 @@ member { offset: 1472 } member { + id: 0x2d4312a7 + name: "xa" + type_id: 0x2aa0b9bb +} +member { id: 0x2de9701e name: "xa" type_id: 0x80c20070 @@ -202302,6 +206489,12 @@ member { offset: 1216 } member { + id: 0x4487c243 + name: "xa_alloc" + type_id: 0x3da0560e + offset: 256 +} +member { id: 0x8c0b8c3b name: "xa_flags" type_id: 0xf1a6dfed @@ -202314,11 +206507,59 @@ member { offset: 64 } member { + id: 0x443272df + name: "xa_index" + type_id: 0x33756485 + offset: 64 +} +member { id: 0x310049ee name: "xa_lock" type_id: 0xf313e71a } member { + id: 0x13932b74 + name: "xa_lru" + type_id: 0x3dfac2ad + offset: 384 +} +member { + id: 0xa6e487bd + name: "xa_node" + type_id: 0x3da0560e + offset: 192 +} +member { + id: 0xade1378e + name: "xa_offset" + type_id: 0x5d8155a5 + offset: 144 +} +member { + id: 0xb6a1c909 + name: "xa_pad" + type_id: 0x5d8155a5 + offset: 152 +} +member { + id: 0xfbb0a625 + name: "xa_shift" + type_id: 0x5d8155a5 + offset: 128 +} +member { + id: 0xb55e6ff0 + name: "xa_sibs" + type_id: 0x5d8155a5 + offset: 136 +} +member { + id: 0x1ec9237c + name: "xa_update" + type_id: 0xa7efd65a + offset: 320 +} +member { id: 0xdbe05ee6 name: "xacterrs" type_id: 0x295c7202 @@ -202421,11 +206662,6 @@ member { offset: 19584 } member { - id: 0xd9690496 - name: "xen" - type_id: 0x56bbf50a -} -member { id: 0x768fe3f7 name: "xfer_completion" type_id: 0x3fcbf304 @@ -203061,6 +207297,12 @@ member { offset: 160 } member { + id: 0x2baf73ff + name: "young" + type_id: 0x74d29cf1 + offset: 128 +} +member { id: 0x05f8b7b6 name: "ypanstep" type_id: 0xe8034002 @@ -203103,17 +207345,6 @@ member { offset: 5440 } member { - id: 0xe15e2cfc - name: "zalloc_page" - type_id: 0x1ebe4388 -} -member { - id: 0x511e5f54 - name: "zalloc_pages_exact" - type_id: 0x1076c35e - offset: 64 -} -member { id: 0x8aa8a43b name: "zc" type_id: 0x6d7f5ff6 @@ -203145,6 +207376,12 @@ member { offset: 328 } member { + id: 0xf36870ee + name: "zlp" + type_id: 0x6d7f5ff6 + offset: 1472 +} +member { id: 0x8134c684 name: "zombie" type_id: 0x6d7f5ff6 @@ -203174,6 +207411,12 @@ member { offset: 64 } member { + id: 0x7e8b2a1f + name: "zone_idx" + type_id: 0x4585663f + offset: 256 +} +member { id: 0x7ea98be0 name: "zone_idx" type_id: 0x6720d32f @@ -203204,6 +207447,11 @@ member { offset: 864 } member { + id: 0x15c9fb88 + name: "zonelist" + type_id: 0x1e85f467 +} +member { id: 0xc2f31ff3 name: "zpos" type_id: 0x4585663f @@ -203229,6 +207477,12 @@ member { offset: 16448 } member { + id: 0x2137fd7f + name: "zwp_offset" + type_id: 0x1bf16028 + offset: 10304 +} +member { id: 0x6006a5e2 name: "zx_wakeup_clear_needed" type_id: 0x4585663f @@ -203248,14 +207502,6 @@ struct_union { } } struct_union { - id: 0x00b57da4 - kind: STRUCT - definition { - bytesize: 8 - member_id: 0x6364e5fc - } -} -struct_union { id: 0x00bf9506 kind: STRUCT definition { @@ -203265,15 +207511,6 @@ struct_union { } } struct_union { - id: 0x00e0bdde - kind: STRUCT - definition { - bytesize: 8 - member_id: 0x6245278e - member_id: 0x76c39912 - } -} -struct_union { id: 0x01122cba kind: STRUCT definition { @@ -203372,18 +207609,6 @@ struct_union { } } struct_union { - id: 0x033c2bb8 - kind: STRUCT - definition { - bytesize: 72 - member_id: 0x6dda6e7d - member_id: 0x9ba00ef7 - member_id: 0x73fbf68d - member_id: 0x07c20efd - member_id: 0x4b34b9aa - } -} -struct_union { id: 0x0366c345 kind: STRUCT definition { @@ -203413,17 +207638,6 @@ struct_union { } } struct_union { - id: 0x03d32356 - kind: STRUCT - definition { - bytesize: 72 - member_id: 0x6e4d805e - member_id: 0xb049594d - member_id: 0x57b79a32 - member_id: 0x87ea4d5c - } -} -struct_union { id: 0x0416665f kind: STRUCT definition { @@ -203435,15 +207649,6 @@ struct_union { } } struct_union { - id: 0x042d9ee3 - kind: STRUCT - definition { - bytesize: 8 - member_id: 0x715799b8 - member_id: 0x50f15a4b - } -} -struct_union { id: 0x048fc360 kind: STRUCT definition { @@ -203453,16 +207658,6 @@ struct_union { } } struct_union { - id: 0x04935a3e - kind: STRUCT - definition { - bytesize: 32 - member_id: 0x73fbf26c - member_id: 0x07c203de - member_id: 0x4bf9b0b2 - } -} -struct_union { id: 0x04cbe228 kind: STRUCT definition { @@ -203682,18 +207877,6 @@ struct_union { } } struct_union { - id: 0x079bc2f5 - kind: STRUCT - definition { - bytesize: 24 - member_id: 0x7fb53355 - member_id: 0x6b90bd2c - member_id: 0xbbfcbfdf - member_id: 0xaddf2f83 - member_id: 0xff7fdfd9 - } -} -struct_union { id: 0x07ba491c kind: STRUCT definition { @@ -203757,6 +207940,15 @@ struct_union { } } struct_union { + id: 0x0904167f + kind: STRUCT + definition { + bytesize: 8 + member_id: 0x45320605 + member_id: 0x934c941a + } +} +struct_union { id: 0x0922f100 kind: STRUCT definition { @@ -203906,19 +208098,6 @@ struct_union { } } struct_union { - id: 0x0ad62715 - kind: STRUCT - definition { - bytesize: 20 - member_id: 0x4add8ec8 - member_id: 0x34ac3a50 - member_id: 0xadd5b431 - member_id: 0x1dac28b0 - member_id: 0x73d7e0dc - member_id: 0x8a59e26d - } -} -struct_union { id: 0x0b00a1fe kind: STRUCT definition { @@ -204224,6 +208403,16 @@ struct_union { } } struct_union { + id: 0x0e7661fa + kind: STRUCT + definition { + bytesize: 16 + member_id: 0x589235ff + member_id: 0xfad50a5a + member_id: 0x74712a8a + } +} +struct_union { id: 0x0eac683f kind: STRUCT definition { @@ -204246,17 +208435,6 @@ struct_union { } } struct_union { - id: 0x0f0b7249 - kind: STRUCT - definition { - bytesize: 32 - member_id: 0x5d7bf520 - member_id: 0xe719c8c0 - member_id: 0x365e3956 - member_id: 0xff72a66c - } -} -struct_union { id: 0x0f29d6cf kind: STRUCT definition { @@ -204319,16 +208497,6 @@ struct_union { } } struct_union { - id: 0x0f6d86be - kind: STRUCT - definition { - bytesize: 136 - member_id: 0x5cb0fbc1 - member_id: 0xb7cbdc47 - member_id: 0x398b7926 - } -} -struct_union { id: 0x0f6e64b7 kind: STRUCT definition { @@ -204366,15 +208534,6 @@ struct_union { } } struct_union { - id: 0x102e0991 - kind: STRUCT - definition { - bytesize: 16 - member_id: 0x215cae19 - member_id: 0x559b32a7 - } -} -struct_union { id: 0x105131fa kind: STRUCT definition { @@ -204473,19 +208632,6 @@ struct_union { } } struct_union { - id: 0x114efe06 - kind: STRUCT - definition { - bytesize: 16 - member_id: 0x24c02d11 - member_id: 0x4a120f63 - member_id: 0xd4d047b1 - member_id: 0xb86505a9 - member_id: 0xebeb17cb - member_id: 0xaf6f4ac0 - } -} -struct_union { id: 0x1162939f kind: STRUCT definition { @@ -204513,16 +208659,6 @@ struct_union { } } struct_union { - id: 0x12592f4f - kind: STRUCT - definition { - bytesize: 16 - member_id: 0x28cf1121 - member_id: 0x1ad44087 - member_id: 0x6b32a680 - } -} -struct_union { id: 0x125b2ca2 kind: STRUCT definition { @@ -204540,14 +208676,6 @@ struct_union { } } struct_union { - id: 0x129d9eba - kind: STRUCT - definition { - bytesize: 256 - member_id: 0x2bc76984 - } -} -struct_union { id: 0x12af4722 kind: STRUCT definition { @@ -204587,17 +208715,6 @@ struct_union { } } struct_union { - id: 0x13064264 - kind: STRUCT - definition { - bytesize: 88 - member_id: 0x2d1fec85 - member_id: 0xb75a0aec - member_id: 0xacf78dbd - member_id: 0x85260d3d - } -} -struct_union { id: 0x130b9b47 kind: STRUCT definition { @@ -204609,14 +208726,6 @@ struct_union { } } struct_union { - id: 0x130fee63 - kind: STRUCT - definition { - bytesize: 4 - member_id: 0x2d8eaae1 - } -} -struct_union { id: 0x13110934 kind: STRUCT definition { @@ -204662,6 +208771,14 @@ struct_union { } } struct_union { + id: 0x132e4197 + kind: STRUCT + definition { + bytesize: 8 + member_id: 0x2d081532 + } +} +struct_union { id: 0x132f610b kind: STRUCT definition { @@ -204746,6 +208863,16 @@ struct_union { } } struct_union { + id: 0x13c65297 + kind: STRUCT + definition { + bytesize: 16 + member_id: 0x2e52f84a + member_id: 0xfad50a5a + member_id: 0x74712a8a + } +} +struct_union { id: 0x14096380 kind: STRUCT definition { @@ -204861,29 +208988,21 @@ struct_union { } } struct_union { - id: 0x14e96bc2 + id: 0x14ca5b0f kind: STRUCT definition { - bytesize: 32 - member_id: 0x32ae90fe - member_id: 0xbad0c2a3 - member_id: 0xfcd19375 - member_id: 0x89066d93 - member_id: 0x67f93f00 + bytesize: 16 + member_id: 0x320350ff + member_id: 0x9b2fad41 } } struct_union { - id: 0x14e96be8 + id: 0x14e40ca3 kind: STRUCT definition { - bytesize: 48 - member_id: 0x32ae90fe - member_id: 0xbad0c2a3 - member_id: 0xfcd19375 - member_id: 0x208adc31 - member_id: 0xc2c18445 - member_id: 0x32fffef6 - member_id: 0x09b42908 + bytesize: 16 + member_id: 0x32051484 + member_id: 0x243566e2 } } struct_union { @@ -205000,15 +209119,6 @@ struct_union { } } struct_union { - id: 0x174a7c6e - kind: STRUCT - definition { - bytesize: 2 - member_id: 0x3c4c15e8 - member_id: 0xd4f73d44 - } -} -struct_union { id: 0x1764a0c5 kind: STRUCT definition { @@ -205075,14 +209185,6 @@ struct_union { } } struct_union { - id: 0x197ee30b - kind: STRUCT - definition { - bytesize: 4 - member_id: 0x044a9f42 - } -} -struct_union { id: 0x1983785b kind: STRUCT definition { @@ -205092,15 +209194,6 @@ struct_union { } } struct_union { - id: 0x19910c85 - kind: STRUCT - definition { - bytesize: 16 - member_id: 0x072855a4 - member_id: 0xdd74def2 - } -} -struct_union { id: 0x19bb23ae kind: STRUCT definition { @@ -205264,33 +209357,34 @@ struct_union { } } struct_union { - id: 0x1b966255 - kind: STRUCT - definition { - bytesize: 16 - member_id: 0x0f1d715c - member_id: 0xf5eb6708 - } -} -struct_union { - id: 0x1bf61cb5 + id: 0x1b949b56 kind: STRUCT definition { - bytesize: 32 - member_id: 0x0ede87d4 - member_id: 0xb7cbdc47 - member_id: 0x2d8572c8 - member_id: 0x34a3e933 + bytesize: 2 + member_id: 0x0ffd3550 + member_id: 0x1e410881 + member_id: 0x0ab41655 + member_id: 0xdb4e2124 + member_id: 0x27542d26 + member_id: 0xba676c19 + member_id: 0xede7771d + member_id: 0xba0eaaec + member_id: 0xcc7711fa + member_id: 0x4f7607b0 + member_id: 0xf63d13ec + member_id: 0xd94d5094 + member_id: 0x1f5f2358 + member_id: 0xb7565f87 + member_id: 0xf5e277a0 } } struct_union { - id: 0x1bf62820 + id: 0x1b966255 kind: STRUCT definition { - bytesize: 136 - member_id: 0x0ede87d4 - member_id: 0xb7cbdc47 - member_id: 0xffe56fd2 + bytesize: 16 + member_id: 0x0f1d715c + member_id: 0xf5eb6708 } } struct_union { @@ -205322,16 +209416,6 @@ struct_union { } } struct_union { - id: 0x1c51bab0 - kind: STRUCT - definition { - bytesize: 3 - member_id: 0x10cd0767 - member_id: 0x3a2d355a - member_id: 0xd3ff70d7 - } -} -struct_union { id: 0x1cac6f1f kind: STRUCT definition { @@ -205672,16 +209756,6 @@ struct_union { } } struct_union { - id: 0x24232993 - kind: STRUCT - definition { - bytesize: 12 - member_id: 0xf1c2dba4 - member_id: 0xff7407e8 - member_id: 0x1a818982 - } -} -struct_union { id: 0x244bebad kind: STRUCT definition { @@ -205712,6 +209786,18 @@ struct_union { } } struct_union { + id: 0x249bcdf3 + kind: STRUCT + definition { + bytesize: 16 + member_id: 0xf32eb68b + member_id: 0xf0e605cb + member_id: 0x745418c4 + member_id: 0x7a56a000 + member_id: 0x60865bc2 + } +} +struct_union { id: 0x2548e662 kind: STRUCT definition { @@ -205721,6 +209807,22 @@ struct_union { } } struct_union { + id: 0x260445a5 + kind: STRUCT + definition { + bytesize: 24 + member_id: 0xf97ca310 + member_id: 0xdcf7e916 + member_id: 0x517ebeed + member_id: 0x7fdde492 + member_id: 0x168605e8 + member_id: 0x54f0f552 + member_id: 0x9d3fc94e + member_id: 0x4c233807 + member_id: 0xa514bd9b + } +} +struct_union { id: 0x2612bf2a kind: STRUCT definition { @@ -206018,28 +210120,6 @@ struct_union { } } struct_union { - id: 0x2c2be6c7 - kind: STRUCT - definition { - bytesize: 88 - member_id: 0xd14fc76e - member_id: 0x517bb4e8 - member_id: 0x34abfc7a - } -} -struct_union { - id: 0x2c32891d - kind: STRUCT - definition { - bytesize: 72 - member_id: 0xd14fc76e - member_id: 0x34a16385 - member_id: 0x517bb77e - member_id: 0x6dda6565 - member_id: 0x6b32a1dc - } -} -struct_union { id: 0x2c5bdc0e kind: STRUCT definition { @@ -206127,15 +210207,6 @@ struct_union { } } struct_union { - id: 0x2d873b56 - kind: STRUCT - definition { - bytesize: 8 - member_id: 0xd7400399 - member_id: 0xedfdadd3 - } -} -struct_union { id: 0x2d9765d2 kind: STRUCT definition { @@ -206298,18 +210369,6 @@ struct_union { } } struct_union { - id: 0x3050ef8f - kind: STRUCT - definition { - bytesize: 16 - member_id: 0xa02b28d6 - member_id: 0xd9cdf02e - member_id: 0x48131453 - member_id: 0x65c37c40 - member_id: 0x97a5dcff - } -} -struct_union { id: 0x30572148 kind: STRUCT definition { @@ -206328,15 +210387,6 @@ struct_union { } } struct_union { - id: 0x315223c4 - kind: STRUCT - definition { - bytesize: 16 - member_id: 0xa4a87cc7 - member_id: 0x51e0ba6b - } -} -struct_union { id: 0x31c1859a kind: STRUCT definition { @@ -206346,16 +210396,6 @@ struct_union { } } struct_union { - id: 0x31f9c69b - kind: STRUCT - definition { - bytesize: 8 - member_id: 0xa6e46395 - member_id: 0xb21940c8 - member_id: 0x73d7e464 - } -} -struct_union { id: 0x31fe95e7 kind: STRUCT definition { @@ -206503,21 +210543,21 @@ struct_union { } } struct_union { - id: 0x34ed11d4 + id: 0x3508486b kind: STRUCT definition { - bytesize: 16 - member_id: 0xb280959d - member_id: 0x85c1a1cb + bytesize: 8 + member_id: 0xb51f3c67 + member_id: 0x8f0ea6b7 } } struct_union { - id: 0x3508486b + id: 0x3514d59f kind: STRUCT definition { - bytesize: 8 - member_id: 0xb51f3c67 - member_id: 0x8f0ea6b7 + bytesize: 512 + member_id: 0xb56701d9 + member_id: 0x8544c9f4 } } struct_union { @@ -206582,14 +210622,6 @@ struct_union { } } struct_union { - id: 0x366bef7d - kind: STRUCT - definition { - bytesize: 16 - member_id: 0xb81eae99 - } -} -struct_union { id: 0x36acbefb kind: STRUCT definition { @@ -206617,17 +210649,6 @@ struct_union { } } struct_union { - id: 0x373a3dac - kind: STRUCT - definition { - bytesize: 24 - member_id: 0xbda607c1 - member_id: 0xff5ae7eb - member_id: 0xb8e3f22b - member_id: 0x1a818083 - } -} -struct_union { id: 0x375126bc kind: STRUCT definition { @@ -206648,17 +210669,6 @@ struct_union { } } struct_union { - id: 0x378b9399 - kind: STRUCT - definition { - bytesize: 80 - member_id: 0xbf324d0a - member_id: 0xad24c471 - member_id: 0x3496cf62 - member_id: 0x51f63d7f - } -} -struct_union { id: 0x37f08244 kind: STRUCT definition { @@ -206685,13 +210695,12 @@ struct_union { } } struct_union { - id: 0x385d66bc + id: 0x3857842d kind: STRUCT definition { - bytesize: 528 - member_id: 0x80627a33 - member_id: 0xa6727baa - member_id: 0x81d670ed + bytesize: 16 + member_id: 0x80a3e3d3 + member_id: 0x4ce00bb0 } } struct_union { @@ -206727,14 +210736,6 @@ struct_union { } } struct_union { - id: 0x38ab0bc9 - kind: STRUCT - definition { - bytesize: 1 - member_id: 0x831d3c48 - } -} -struct_union { id: 0x38df449f kind: STRUCT definition { @@ -206849,15 +210850,6 @@ struct_union { } } struct_union { - id: 0x3a9c9162 - kind: STRUCT - definition { - bytesize: 16 - member_id: 0x8b19911e - member_id: 0xdac7f876 - } -} -struct_union { id: 0x3aa6e17c kind: STRUCT definition { @@ -206911,6 +210903,14 @@ struct_union { } } struct_union { + id: 0x3b85198b + kind: STRUCT + definition { + bytesize: 64 + member_id: 0x8fa57542 + } +} +struct_union { id: 0x3bf747f0 kind: STRUCT definition { @@ -207112,6 +211112,15 @@ struct_union { } } struct_union { + id: 0x3fbb6cee + kind: STRUCT + definition { + bytesize: 4 + member_id: 0x9f6503ee + member_id: 0x39a33a5e + } +} +struct_union { id: 0x3fbd06d5 kind: STRUCT definition { @@ -207320,16 +211329,6 @@ struct_union { } } struct_union { - id: 0x43da400a - kind: UNION - definition { - bytesize: 48 - member_id: 0x545bc45d - member_id: 0xd9dce494 - member_id: 0x6f97ea5f - } -} -struct_union { id: 0x444ac848 kind: UNION definition { @@ -207376,15 +211375,6 @@ struct_union { } } struct_union { - id: 0x44cf9d95 - kind: UNION - definition { - bytesize: 8 - member_id: 0x485b3652 - member_id: 0x8e370213 - } -} -struct_union { id: 0x44e0bbd2 kind: UNION definition { @@ -207527,6 +211517,15 @@ struct_union { } } struct_union { + id: 0x48c28092 + kind: UNION + definition { + bytesize: 16 + member_id: 0x78e33cfc + member_id: 0x0249b0df + } +} +struct_union { id: 0x48fb1ff5 kind: UNION definition { @@ -207593,6 +211592,16 @@ struct_union { } } struct_union { + id: 0x49b90a29 + kind: UNION + definition { + bytesize: 8 + member_id: 0x7d2869d8 + member_id: 0x27000c61 + member_id: 0x36752b74 + } +} +struct_union { id: 0x49df90a7 kind: UNION definition { @@ -207699,12 +211708,12 @@ struct_union { } } struct_union { - id: 0x4c287de0 + id: 0x4bdbd862 kind: UNION definition { - bytesize: 4 - member_id: 0x6b32af03 - member_id: 0x782f8731 + bytesize: 8 + member_id: 0x749120ed + member_id: 0x1536626c } } struct_union { @@ -207863,6 +211872,15 @@ struct_union { } } struct_union { + id: 0x4f02e8cc + kind: UNION + definition { + bytesize: 512 + member_id: 0x67c7a307 + member_id: 0x2777335c + } +} +struct_union { id: 0x4f03a6ae kind: UNION definition { @@ -207899,6 +211917,16 @@ struct_union { } } struct_union { + id: 0x4fbdc803 + kind: UNION + definition { + bytesize: 8 + member_id: 0x653b6170 + member_id: 0x27000c61 + member_id: 0x36752b74 + } +} +struct_union { id: 0x4fd8e877 kind: UNION definition { @@ -207983,15 +212011,6 @@ struct_union { } } struct_union { - id: 0x50fafc25 - kind: UNION - definition { - bytesize: 40 - member_id: 0x18b48436 - member_id: 0xb403a636 - } -} -struct_union { id: 0x51d7edf0 kind: UNION definition { @@ -208047,15 +212066,6 @@ struct_union { } } struct_union { - id: 0x537a3f0f - kind: UNION - definition { - bytesize: 4 - member_id: 0x16377fa9 - member_id: 0x34f49183 - } -} -struct_union { id: 0x53b5414d kind: UNION definition { @@ -208134,15 +212144,6 @@ struct_union { } } struct_union { - id: 0x54c04e96 - kind: UNION - definition { - bytesize: 16 - member_id: 0x082c701d - member_id: 0xc63d4176 - } -} -struct_union { id: 0x5509d7db kind: UNION definition { @@ -208227,6 +212228,16 @@ struct_union { } } struct_union { + id: 0x55c087bf + kind: UNION + definition { + bytesize: 24 + member_id: 0x0ca7cb72 + member_id: 0x4e824c05 + member_id: 0x20c5e9f7 + } +} +struct_union { id: 0x56037e9c kind: UNION definition { @@ -208335,15 +212346,6 @@ struct_union { } } struct_union { - id: 0x5a6b6efc - kind: UNION - definition { - bytesize: 8 - member_id: 0x325a63f3 - member_id: 0x1caf0749 - } -} -struct_union { id: 0x5a8e8177 kind: UNION definition { @@ -208368,6 +212370,15 @@ struct_union { } } struct_union { + id: 0x5ade635b + kind: UNION + definition { + bytesize: 16 + member_id: 0x304c83ff + member_id: 0xde7997b9 + } +} +struct_union { id: 0x5ae4b375 kind: UNION definition { @@ -208428,24 +212439,6 @@ struct_union { } } struct_union { - id: 0x5bc27631 - kind: UNION - definition { - bytesize: 8 - member_id: 0x34f83972 - member_id: 0x1a96b10c - } -} -struct_union { - id: 0x5bdb70e0 - kind: UNION - definition { - bytesize: 8 - member_id: 0x340ef030 - member_id: 0x8844b6fd - } -} -struct_union { id: 0x5c3ef0a3 kind: UNION definition { @@ -208563,14 +212556,6 @@ struct_union { } } struct_union { - id: 0x5da1f3d6 - kind: UNION - definition { - bytesize: 16 - member_id: 0x2d6cb85c - } -} -struct_union { id: 0x5dafba4f kind: UNION definition { @@ -208644,15 +212629,6 @@ struct_union { } } struct_union { - id: 0x5e422cfb - kind: UNION - definition { - bytesize: 72 - member_id: 0x22c0fbbc - member_id: 0x233f54d1 - } -} -struct_union { id: 0x5e53dc24 kind: UNION definition { @@ -208933,14 +212909,6 @@ struct_union { } } struct_union { - id: 0x608c0f38 - kind: UNION - definition { - bytesize: 72 - member_id: 0xd9db4be5 - } -} -struct_union { id: 0x60a4ff34 kind: UNION definition { @@ -209086,6 +213054,15 @@ struct_union { } } struct_union { + id: 0x6312fd2f + kind: UNION + definition { + bytesize: 2 + member_id: 0xd74e0402 + member_id: 0xee87ba00 + } +} +struct_union { id: 0x6366329e kind: UNION definition { @@ -209104,15 +213081,6 @@ struct_union { } } struct_union { - id: 0x63db26fc - kind: UNION - definition { - bytesize: 312 - member_id: 0xd491835d - member_id: 0x166fabb0 - } -} -struct_union { id: 0x63db5ef9 kind: UNION definition { @@ -209259,6 +213227,15 @@ struct_union { } } struct_union { + id: 0x67c0081f + kind: UNION + definition { + bytesize: 8 + member_id: 0xc43f5f8d + member_id: 0xd408f584 + } +} +struct_union { id: 0x67d43857 kind: UNION definition { @@ -209277,6 +213254,15 @@ struct_union { } } struct_union { + id: 0x6875099c + kind: UNION + definition { + bytesize: 16 + member_id: 0xfa946861 + member_id: 0xab39140b + } +} +struct_union { id: 0x6888b6e5 kind: UNION definition { @@ -209295,14 +213281,6 @@ struct_union { } } struct_union { - id: 0x6903870d - kind: UNION - definition { - bytesize: 128 - member_id: 0xffe56b33 - } -} -struct_union { id: 0x6905d706 kind: UNION definition { @@ -209612,15 +213590,6 @@ struct_union { } } struct_union { - id: 0x7097e100 - kind: UNION - definition { - bytesize: 4 - member_id: 0x99949b8a - member_id: 0x20688d61 - } -} -struct_union { id: 0x70e783e8 kind: UNION definition { @@ -209785,42 +213754,6 @@ struct_union { } } struct_union { - id: 0x7317df8a - kind: UNION - definition { - bytesize: 256 - member_id: 0x97c7b08c - member_id: 0x73029e0c - member_id: 0xbba39a9a - member_id: 0x9d5b90f8 - member_id: 0x07307794 - member_id: 0x4779a89b - member_id: 0x32e7dee3 - member_id: 0x6fe88545 - member_id: 0x2b1b8ef2 - member_id: 0x3fd31627 - member_id: 0xd9d85a91 - member_id: 0xc747f834 - member_id: 0xcf651311 - member_id: 0x3ba0211e - member_id: 0x35649aee - member_id: 0xae5a4181 - member_id: 0x66d41c47 - member_id: 0x04b5cf1e - member_id: 0xb39193a3 - member_id: 0x5fd2e3fb - member_id: 0xa2d43869 - member_id: 0x8a1c8492 - member_id: 0xdabb1c55 - member_id: 0x324f2583 - member_id: 0xd9690496 - member_id: 0x112a2e09 - member_id: 0xb09d2ffa - member_id: 0x56e50a84 - member_id: 0x6491fbda - } -} -struct_union { id: 0x734252fe kind: UNION definition { @@ -210095,15 +214028,6 @@ struct_union { } } struct_union { - id: 0x76df8305 - kind: UNION - definition { - bytesize: 2048 - member_id: 0x80f111bb - member_id: 0x646aaa85 - } -} -struct_union { id: 0x7745c8ef kind: UNION definition { @@ -210354,6 +214278,15 @@ struct_union { } } struct_union { + id: 0x7d1c3635 + kind: UNION + definition { + bytesize: 8 + member_id: 0xafbad944 + member_id: 0x217694f6 + } +} +struct_union { id: 0x7d93a8c7 kind: UNION definition { @@ -210961,16 +214894,6 @@ struct_union { } } struct_union { - id: 0x656e53f1 - kind: STRUCT - name: "_kvm_stats_desc" - definition { - bytesize: 64 - member_id: 0x87807fd8 - member_id: 0x0dc6047f - } -} -struct_union { id: 0x459e900e kind: STRUCT name: "ack_sample" @@ -211163,6 +215086,39 @@ struct_union { } } struct_union { + id: 0x6fbaf148 + kind: STRUCT + name: "akcipher_alg" + definition { + bytesize: 512 + member_id: 0x9063e9c1 + member_id: 0xf584ce40 + member_id: 0x893e9a51 + member_id: 0x70fa6b40 + member_id: 0xfd2d3002 + member_id: 0x4117392b + member_id: 0xcfd59103 + member_id: 0x1ac7a60f + member_id: 0x0d2e2ebd + member_id: 0xa9e8c522 + member_id: 0x85f3d282 + } +} +struct_union { + id: 0x606acffd + kind: STRUCT + name: "akcipher_request" + definition { + bytesize: 128 + member_id: 0x85e1e383 + member_id: 0x4427a46d + member_id: 0xbbe061af + member_id: 0xe29869f3 + member_id: 0x352c27f4 + member_id: 0x75906a36 + } +} +struct_union { id: 0x91212402 kind: STRUCT name: "alarm" @@ -211407,31 +215363,6 @@ struct_union { } } struct_union { - id: 0x825d5993 - kind: STRUCT - name: "arch_timer_context" - definition { - bytesize: 104 - member_id: 0xa936a2d5 - member_id: 0x99abc34e - member_id: 0x8a1ddc22 - member_id: 0xbcb6da5b - member_id: 0xd7232081 - member_id: 0x0b3a6d95 - } -} -struct_union { - id: 0x2f1ca510 - kind: STRUCT - name: "arch_timer_cpu" - definition { - bytesize: 288 - member_id: 0x30902b47 - member_id: 0xd0847011 - member_id: 0x3a2d374f - } -} -struct_union { id: 0x82e932a0 kind: STRUCT name: "arch_timer_erratum_workaround" @@ -211466,42 +215397,6 @@ struct_union { } } struct_union { - id: 0xe62c1341 - kind: STRUCT - name: "arm_pmu" - definition { - bytesize: 560 - member_id: 0x93ce5218 - member_id: 0x86b24cf6 - member_id: 0x0ddfea33 - member_id: 0xd81b71f1 - member_id: 0x72a25545 - member_id: 0x98e86c88 - member_id: 0x0d828e0a - member_id: 0x09fd4226 - member_id: 0x2d61ef43 - member_id: 0x3cc9ff38 - member_id: 0x2635ef55 - member_id: 0x5f710844 - member_id: 0x4616bb5f - member_id: 0x6985f4f1 - member_id: 0x62b29c82 - member_id: 0x308dee6b - member_id: 0x033b7284 - member_id: 0xaeede60f - member_id: 0xa39136f0 - member_id: 0xca44b141 - member_id: 0x28894114 - member_id: 0x1a1fd0a0 - member_id: 0x2d3aa998 - member_id: 0x0f3ca933 - member_id: 0x502de800 - member_id: 0xf8037d37 - member_id: 0xddab36b7 - member_id: 0x1cafacfd - } -} -struct_union { id: 0x48893aca kind: STRUCT name: "array_buffer" @@ -212881,6 +216776,17 @@ struct_union { } } struct_union { + id: 0x88ce7bb2 + kind: STRUCT + name: "blk_plug_cb" + definition { + bytesize: 32 + member_id: 0x7c00ef52 + member_id: 0x56f376f1 + member_id: 0xff8a91c0 + } +} +struct_union { id: 0xbb19ab6d kind: STRUCT name: "blk_queue_stats" @@ -213679,6 +217585,16 @@ struct_union { } } struct_union { + id: 0x1e9c55da + kind: STRUCT + name: "bpf_nh_params" + definition { + bytesize: 20 + member_id: 0xd51ec347 + member_id: 0x39d6d358 + } +} +struct_union { id: 0xb52b1ec7 kind: STRUCT name: "bpf_offload_dev" @@ -213895,6 +217811,22 @@ struct_union { } } struct_union { + id: 0x212d37a1 + kind: STRUCT + name: "bpf_redirect_info" + definition { + bytesize: 56 + member_id: 0x2da18c75 + member_id: 0x07611cab + member_id: 0xc9d6516c + member_id: 0x8df2c9e6 + member_id: 0x86e8bd6c + member_id: 0x2a093f90 + member_id: 0x632a4ba2 + member_id: 0x713b460f + } +} +struct_union { id: 0x3a354a67 kind: STRUCT name: "bpf_reference_state" @@ -214804,6 +218736,58 @@ struct_union { } } struct_union { + id: 0x276c304c + kind: STRUCT + name: "cdc_ncm_ctx" + definition { + bytesize: 360 + member_id: 0x11638e21 + member_id: 0xa25bc850 + member_id: 0x5e2b88f3 + member_id: 0xce34257f + member_id: 0xaab5e3db + member_id: 0x12ebc87a + member_id: 0x605196d3 + member_id: 0x48630da5 + member_id: 0xfc1d642c + member_id: 0xffb32814 + member_id: 0x5d898398 + member_id: 0x2d67c2b0 + member_id: 0x8d6eed3e + member_id: 0x3a21c0f4 + member_id: 0x69fcaeb3 + member_id: 0xbf6a10c0 + member_id: 0xbd73b897 + member_id: 0x90a7314a + member_id: 0xbc20bf07 + member_id: 0x3a3b9c87 + member_id: 0xf9c0c1b7 + member_id: 0xc168d729 + member_id: 0xa064e9a8 + member_id: 0x6dd1b0db + member_id: 0x38ca06c6 + member_id: 0x61a8790c + member_id: 0xa94058b8 + member_id: 0x3a33fdde + member_id: 0x24dde6e5 + member_id: 0x8c376a11 + member_id: 0xd6166cf3 + member_id: 0x85dc3e67 + member_id: 0x163cb0a1 + member_id: 0x32a32199 + member_id: 0x7cb10669 + member_id: 0x086ff8ab + member_id: 0xaec5023b + member_id: 0x29c64945 + member_id: 0x618af26f + member_id: 0xc1b8b7af + member_id: 0xa8317855 + member_id: 0xe0d8421b + member_id: 0xa15b4dcc + member_id: 0xb3ff3714 + } +} +struct_union { id: 0x5f766fc6 kind: STRUCT name: "cdev" @@ -215764,6 +219748,30 @@ struct_union { } } struct_union { + id: 0xca283f54 + kind: STRUCT + name: "cleancache_filekey" + definition { + bytesize: 24 + member_id: 0xec2a9cea + } +} +struct_union { + id: 0xfa93b413 + kind: STRUCT + name: "cleancache_ops" + definition { + bytesize: 56 + member_id: 0xedc364a3 + member_id: 0xcc9b87bc + member_id: 0xcf06c106 + member_id: 0x68c6881b + member_id: 0x107f64d3 + member_id: 0x6f43a794 + member_id: 0x6a15223b + } +} +struct_union { id: 0xdd7b47eb kind: STRUCT name: "clk" @@ -217032,6 +221040,15 @@ struct_union { } } struct_union { + id: 0x0f57eec7 + kind: STRUCT + name: "crypto_akcipher" + definition { + bytesize: 64 + member_id: 0x8597be7c + } +} +struct_union { id: 0x293b162f kind: STRUCT name: "crypto_alg" @@ -217069,6 +221086,15 @@ struct_union { } } struct_union { + id: 0x37cc7810 + kind: STRUCT + name: "crypto_cipher" + definition { + bytesize: 64 + member_id: 0x8597be7c + } +} +struct_union { id: 0x85b25628 kind: STRUCT name: "crypto_comp" @@ -217605,6 +221631,15 @@ struct_union { } } struct_union { + id: 0xefa4cae6 + kind: STRUCT + name: "des_ctx" + definition { + bytesize: 128 + member_id: 0xbd3cd538 + } +} +struct_union { id: 0x2729c17d kind: STRUCT name: "detailed_data_monitor_range" @@ -218079,6 +222114,54 @@ struct_union { } } struct_union { + id: 0x95132e54 + kind: STRUCT + name: "devfreq_event_data" + definition { + bytesize: 16 + member_id: 0xd4c95c39 + member_id: 0xb46976b5 + } +} +struct_union { + id: 0x70919762 + kind: STRUCT + name: "devfreq_event_desc" + definition { + bytesize: 32 + member_id: 0x0de57ce8 + member_id: 0x8daeae65 + member_id: 0x6d52b170 + member_id: 0xafbe6621 + } +} +struct_union { + id: 0x12c4bf48 + kind: STRUCT + name: "devfreq_event_dev" + definition { + bytesize: 992 + member_id: 0x0fa6c6af + member_id: 0xce1ac88b + member_id: 0x2d4b3012 + member_id: 0x7a5a9024 + member_id: 0x87e0b654 + } +} +struct_union { + id: 0x8fa09e85 + kind: STRUCT + name: "devfreq_event_ops" + definition { + bytesize: 40 + member_id: 0x98ca1d0f + member_id: 0x0da0f708 + member_id: 0x6290b59b + member_id: 0x87f98767 + member_id: 0xd77c9cbe + } +} +struct_union { id: 0xeee59200 kind: STRUCT name: "devfreq_governor" @@ -218316,14 +222399,260 @@ struct_union { } } struct_union { - id: 0xbc952c91 + id: 0x198f8565 kind: STRUCT name: "devlink" + definition { + bytesize: 512 + member_id: 0xadf00094 + member_id: 0xcd6874e1 + member_id: 0x4134711d + member_id: 0xe1b6bbe3 + member_id: 0x3d9266c0 + member_id: 0x17c3228f + member_id: 0xb8b3f43c + member_id: 0x4fd311c5 + member_id: 0x6ac681cd + member_id: 0xefdb08b4 + member_id: 0x32a55865 + member_id: 0x10281c82 + member_id: 0x1877dc92 + member_id: 0x9516c9d8 + member_id: 0x2bafedce + member_id: 0x66da3728 + member_id: 0xafba248b + member_id: 0xc58a570e + member_id: 0xc24fadb5 + member_id: 0xb9583af1 + member_id: 0xce3bb522 + member_id: 0x3e75936d + member_id: 0x2d4b3330 + member_id: 0x5f5e621d + member_id: 0xf5250b55 + member_id: 0x05243b72 + member_id: 0x999f46a7 + member_id: 0x95dacba7 + member_id: 0x59c303be + } +} +struct_union { + id: 0x2d51c138 + kind: STRUCT + name: "devlink_dev_stats" + definition { + bytesize: 48 + member_id: 0x4492b926 + member_id: 0xadd03a27 + } } struct_union { - id: 0x8256fc56 + id: 0x4d3cebe1 + kind: STRUCT + name: "devlink_dpipe_field" + definition { + bytesize: 24 + member_id: 0x0de57ce8 + member_id: 0xcc6aad16 + member_id: 0x4a47d75f + member_id: 0x8b645ad4 + } +} +struct_union { + id: 0x751480f9 + kind: STRUCT + name: "devlink_dpipe_header" + definition { + bytesize: 32 + member_id: 0x0de57ce8 + member_id: 0xcc6aad16 + member_id: 0x784a4b9b + member_id: 0x361d56de + member_id: 0x55f132cc + } +} +struct_union { + id: 0xb55e29b2 + kind: STRUCT + name: "devlink_dpipe_headers" + definition { + bytesize: 16 + member_id: 0x614c39f2 + member_id: 0x958f08da + } +} +struct_union { + id: 0x8dfee289 + kind: STRUCT + name: "devlink_flash_update_params" + definition { + bytesize: 24 + member_id: 0x91e86fed + member_id: 0xe5d87fc5 + member_id: 0xc099cc3c + } +} +struct_union { + id: 0xa5206d7a + kind: STRUCT + name: "devlink_fmsg" + definition { + bytesize: 24 + member_id: 0x990317f0 + member_id: 0x82e1aed1 + } +} +struct_union { + id: 0xd5693f95 + kind: STRUCT + name: "devlink_health_reporter" + definition { + bytesize: 168 + member_id: 0x7c00ef52 + member_id: 0x59119163 + member_id: 0xafbb76d0 + member_id: 0x56ace115 + member_id: 0xeb76e483 + member_id: 0x210293e8 + member_id: 0x33fc8cf5 + member_id: 0x62d28eb5 + member_id: 0xea4e825c + member_id: 0x773b8f3f + member_id: 0x768a691a + member_id: 0x1e719a84 + member_id: 0x352c4ca4 + member_id: 0x0b6ea206 + member_id: 0x629c6b33 + member_id: 0x41fdc1b3 + member_id: 0x05243d41 + } +} +struct_union { + id: 0xdeaf8933 + kind: STRUCT + name: "devlink_health_reporter_ops" + definition { + bytesize: 40 + member_id: 0x0ddfefbb + member_id: 0x8a4b19d4 + member_id: 0x0a7d4966 + member_id: 0x30b83368 + member_id: 0x8db5ea4d + } +} +struct_union { + id: 0xcea2d9d1 + kind: STRUCT + name: "devlink_info_req" + definition { + bytesize: 24 + member_id: 0xe2057d5b + member_id: 0x8e9e82fd + member_id: 0xca2aa534 + } +} +struct_union { + id: 0x0383def3 kind: STRUCT name: "devlink_linecard" + definition { + bytesize: 136 + member_id: 0x7c00ef52 + member_id: 0x56ace87c + member_id: 0xad7c8510 + member_id: 0x05243818 + member_id: 0xafb646e8 + member_id: 0x59119f66 + member_id: 0x72b72416 + member_id: 0x46ecc05d + member_id: 0x5c68c671 + member_id: 0xf49ccf9e + member_id: 0x6e477688 + member_id: 0xe3a3de7e + } +} +struct_union { + id: 0x0d2a2bc0 + kind: STRUCT + name: "devlink_linecard_ops" + definition { + bytesize: 40 + member_id: 0xd3c8aa61 + member_id: 0x1f617d86 + member_id: 0xebfb4e21 + member_id: 0x6e3b6a83 + member_id: 0x88117783 + } +} +struct_union { + id: 0x12a087f3 + kind: STRUCT + name: "devlink_linecard_type" + definition { + bytesize: 16 + member_id: 0x5c68c5cb + member_id: 0x59303e30 + } +} +struct_union { + id: 0xcb5e2bb0 + kind: STRUCT + name: "devlink_ops" + definition { + bytesize: 424 + member_id: 0x9fc14365 + member_id: 0x83cb909a + member_id: 0xb0509801 + member_id: 0xf8981c0e + member_id: 0xa5ab7067 + member_id: 0xf43affcb + member_id: 0xa22f8c42 + member_id: 0x5f87545a + member_id: 0x93cb2df4 + member_id: 0xeaf07952 + member_id: 0x78a8c4ae + member_id: 0x6f535872 + member_id: 0x001ba0a6 + member_id: 0x07349e82 + member_id: 0xa9d0bb48 + member_id: 0x1197fb66 + member_id: 0x80e35930 + member_id: 0xde69b5bc + member_id: 0x67ecafb3 + member_id: 0x06f3214d + member_id: 0xff091101 + member_id: 0xf81283dc + member_id: 0x2d2ca64a + member_id: 0x0e5d040f + member_id: 0xe0c4d82e + member_id: 0x5ef8d6d5 + member_id: 0x37b507df + member_id: 0x24edb8c2 + member_id: 0x21a1a972 + member_id: 0x2b3b3947 + member_id: 0x3a9bd5f4 + member_id: 0xb252ef85 + member_id: 0x3c859cc4 + member_id: 0x950fbc14 + member_id: 0x1ba59c6d + member_id: 0xc8b0c1d4 + member_id: 0x5e35aa2e + member_id: 0x2e72e7e0 + member_id: 0x85af182d + member_id: 0x90793300 + member_id: 0x9e84141c + member_id: 0xa5c2f472 + member_id: 0xeb46d6f6 + member_id: 0x049c1f00 + member_id: 0x54806d5b + member_id: 0x7b7f9a93 + member_id: 0xeff7e2c9 + member_id: 0x573e57ed + member_id: 0x3d9c68f5 + member_id: 0x7f7f584f + member_id: 0x069fcabf + member_id: 0x561fd50f + member_id: 0xd95b0d92 + } } struct_union { id: 0xc7e35718 @@ -218333,7 +222662,7 @@ struct_union { bytesize: 344 member_id: 0x7c00ef52 member_id: 0x4fd31bbd - member_id: 0x5685a7bf + member_id: 0x56ace115 member_id: 0xad7c8a1e member_id: 0xc5a12bbd member_id: 0x5c46dd88 @@ -218348,7 +222677,7 @@ struct_union { member_id: 0x6ac6877c member_id: 0xefdb0c31 member_id: 0xf45f2394 - member_id: 0xd1c402eb + member_id: 0xd1e477a3 } } struct_union { @@ -218366,6 +222695,22 @@ struct_union { } } struct_union { + id: 0x6807af97 + kind: STRUCT + name: "devlink_port_new_attrs" + definition { + bytesize: 20 + member_id: 0xdf2fd72b + member_id: 0xbf1e816a + member_id: 0xd8dc9c99 + member_id: 0x4c6b273e + member_id: 0x6980d678 + member_id: 0x0317cd78 + member_id: 0x1db19505 + member_id: 0x38a7e1c1 + } +} +struct_union { id: 0xf0f5f897 kind: STRUCT name: "devlink_port_pci_pf_attrs" @@ -218411,6 +222756,18 @@ struct_union { } } struct_union { + id: 0xe6964d46 + kind: STRUCT + name: "devlink_port_region_ops" + definition { + bytesize: 32 + member_id: 0x0de57ce8 + member_id: 0xa4170b6e + member_id: 0x0c832449 + member_id: 0x59119068 + } +} +struct_union { id: 0x1777d31b kind: STRUCT name: "devlink_rate" @@ -218418,7 +222775,7 @@ struct_union { bytesize: 80 member_id: 0x7c00ef52 member_id: 0x5cf2824f - member_id: 0x5685afdd + member_id: 0x56ace977 member_id: 0x5911980a member_id: 0xd3866153 member_id: 0x6d8a9147 @@ -218427,6 +222784,89 @@ struct_union { } } struct_union { + id: 0x47689b48 + kind: STRUCT + name: "devlink_region" + definition { + bytesize: 120 + member_id: 0x56ace1be + member_id: 0x48c075a0 + member_id: 0x7c00e690 + member_id: 0x3c8c9122 + member_id: 0xcbc193d6 + member_id: 0xcffde3b6 + member_id: 0x2a2e382b + member_id: 0x80fbe8a7 + member_id: 0xd9ec35e7 + } +} +struct_union { + id: 0xc4da5559 + kind: STRUCT + name: "devlink_region_ops" + definition { + bytesize: 32 + member_id: 0x0de57ce8 + member_id: 0xa4170b6e + member_id: 0x0c805fde + member_id: 0x59119068 + } +} +struct_union { + id: 0xe35e5ccd + kind: STRUCT + name: "devlink_sb_pool_info" + definition { + bytesize: 16 + member_id: 0xe52eef97 + member_id: 0xd9b71962 + member_id: 0x6ce0bb82 + member_id: 0x08477548 + } +} +struct_union { + id: 0x1c7a3d65 + kind: STRUCT + name: "devlink_trap" + definition { + bytesize: 32 + member_id: 0x5cbbb022 + member_id: 0x3ecaad84 + member_id: 0x4257f846 + member_id: 0xccbe65b2 + member_id: 0x0de5752a + member_id: 0xa4c7afe2 + member_id: 0xd492332a + } +} +struct_union { + id: 0x198b6a50 + kind: STRUCT + name: "devlink_trap_group" + definition { + bytesize: 16 + member_id: 0x0de57ce8 + member_id: 0xccbe65cf + member_id: 0x4257f83b + member_id: 0xf53cc107 + } +} +struct_union { + id: 0xaf8c5ca0 + kind: STRUCT + name: "devlink_trap_policer" + definition { + bytesize: 56 + member_id: 0xcce624ba + member_id: 0x2b41bb63 + member_id: 0xb36eb0c7 + member_id: 0x5cea623b + member_id: 0x7843c8a8 + member_id: 0x9c062023 + member_id: 0x7b580056 + } +} +struct_union { id: 0xd1d07704 kind: STRUCT name: "dir_context" @@ -218544,6 +222984,268 @@ struct_union { } } struct_union { + id: 0x08726260 + kind: STRUCT + name: "dm_arg" + definition { + bytesize: 16 + member_id: 0xf9d5048c + member_id: 0x97b38f9c + member_id: 0x7f0253e8 + } +} +struct_union { + id: 0x84f84d67 + kind: STRUCT + name: "dm_arg_set" + definition { + bytesize: 16 + member_id: 0x2075b8f0 + member_id: 0xe8735870 + } +} +struct_union { + id: 0x8b3c3364 + kind: STRUCT + name: "dm_buffer" + definition { + bytesize: 152 + member_id: 0x0f470b14 + member_id: 0x94eba612 + member_id: 0xc81f8729 + member_id: 0x4280b12f + member_id: 0xff8a9211 + member_id: 0x109b80af + member_id: 0x76367e75 + member_id: 0xffa6c51e + member_id: 0x6d2dbcdf + member_id: 0xc0138ce8 + member_id: 0xffe3e6f3 + member_id: 0x72c08b58 + member_id: 0x8c1c72c6 + member_id: 0x522ab1e5 + member_id: 0x077f45a8 + member_id: 0xb4ed2fb3 + member_id: 0xdc734cb7 + member_id: 0x0f75b561 + member_id: 0x32aed56a + member_id: 0xec2a10b4 + } +} +struct_union { + id: 0x9e471477 + kind: STRUCT + name: "dm_bufio_client" + definition { + bytesize: 368 + member_id: 0x2d4b3c00 + member_id: 0x9a7d31f4 + member_id: 0xec4c530d + member_id: 0x545a8863 + member_id: 0x04227360 + member_id: 0x51f02b11 + member_id: 0x3c120643 + member_id: 0x0b50257c + member_id: 0xa0650951 + member_id: 0x6cd173ed + member_id: 0xd9ef0498 + member_id: 0x031120c5 + member_id: 0x56ecab6c + member_id: 0x9a257ac5 + member_id: 0x9460fdf7 + member_id: 0xf910802f + member_id: 0x215141b0 + member_id: 0x6458e4c6 + member_id: 0x46cb87d7 + member_id: 0x5ee21ccd + member_id: 0xf4c5928f + member_id: 0x868ca1f0 + member_id: 0x133be164 + member_id: 0x247d2bc2 + } +} +struct_union { + id: 0x5f5259bd + kind: STRUCT + name: "dm_dev" + definition { + bytesize: 40 + member_id: 0x51f028ab + member_id: 0x57d05c19 + member_id: 0x87085bff + member_id: 0x0d9941a0 + } +} +struct_union { + id: 0x225b463b + kind: STRUCT + name: "dm_io" + definition { + bytesize: 280 + member_id: 0xd6baf777 + member_id: 0x2dccf0c8 + member_id: 0x2d1fe1be + member_id: 0xa3682aac + member_id: 0xff8a90cb + member_id: 0x11f10efe + member_id: 0x96627cf8 + member_id: 0x201cce16 + member_id: 0x43d5e607 + member_id: 0xff5d5e59 + member_id: 0xd07b78d9 + member_id: 0xf705dc19 + member_id: 0x3721dfe0 + member_id: 0x2c593fc1 + } +} +struct_union { + id: 0x0c940ce3 + kind: STRUCT + name: "dm_io_client" + definition { + bytesize: 336 + member_id: 0xde69b270 + member_id: 0xccd15e20 + } +} +struct_union { + id: 0xa1319a08 + kind: STRUCT + name: "dm_kobject_holder" + definition { + bytesize: 128 + member_id: 0x452b206c + member_id: 0xc494a473 + } +} +struct_union { + id: 0xe1d1bbb1 + kind: STRUCT + name: "dm_md_mempools" + definition { + bytesize: 528 + member_id: 0x9929500d + member_id: 0x627115f2 + } +} +struct_union { + id: 0xd2e99e69 + kind: STRUCT + name: "dm_report_zones_args" + definition { + bytesize: 48 + member_id: 0x7cd9a358 + member_id: 0x7cd3c1cb + member_id: 0x9772cb65 + member_id: 0x17637816 + member_id: 0x7e8b2a1f + member_id: 0x46cb8735 + } +} +struct_union { + id: 0x286f60a3 + kind: STRUCT + name: "dm_stats" + definition { + bytesize: 80 + member_id: 0xad898302 + member_id: 0x7c00eec0 + member_id: 0x2660c5df + member_id: 0x552de7df + } +} +struct_union { + id: 0xb4683157 + kind: STRUCT + name: "dm_stats_aux" + definition { + bytesize: 16 + member_id: 0x037856c6 + member_id: 0x5e3459b5 + } +} +struct_union { + id: 0x154fffcf + kind: STRUCT + name: "dm_stats_last_position" + definition { + bytesize: 16 + member_id: 0x0d364652 + member_id: 0xaac934df + } +} +struct_union { + id: 0x96d270ba + kind: STRUCT + name: "dm_table" + definition { + bytesize: 296 + member_id: 0xff5d592e + member_id: 0x5cab8754 + member_id: 0x1b2184e9 + member_id: 0xb91305cd + member_id: 0xad7a9230 + member_id: 0x0e2a551a + member_id: 0x197cb73f + member_id: 0x6da33f40 + member_id: 0x1623d50f + member_id: 0xfa2d1749 + member_id: 0x6f52824f + member_id: 0xdf12b226 + member_id: 0xe590115b + member_id: 0x87085ac9 + member_id: 0x33ed565c + member_id: 0xd4abd33d + member_id: 0x5138cba7 + member_id: 0x1f686eb8 + member_id: 0x5497e4e5 + } +} +struct_union { + id: 0xdd8279d0 + kind: STRUCT + name: "dm_target" + definition { + bytesize: 96 + member_id: 0xb6c41435 + member_id: 0x5c60f365 + member_id: 0x38c2e7fb + member_id: 0xb8d56e3d + member_id: 0x09343eea + member_id: 0xf997f643 + member_id: 0xe8ffd602 + member_id: 0x772e5751 + member_id: 0x4fa0a319 + member_id: 0x319b41b8 + member_id: 0x917961c4 + member_id: 0x7f025c11 + member_id: 0xa1b9c8d2 + member_id: 0x7a833cf4 + member_id: 0x8bbdb526 + member_id: 0x4ccb6a85 + member_id: 0x1a19769d + member_id: 0xf55a45f8 + member_id: 0x2d08134b + member_id: 0x63760b9f + } +} +struct_union { + id: 0xd16b19a7 + kind: STRUCT + name: "dm_target_io" + definition { + bytesize: 200 + member_id: 0xd6baf777 + member_id: 0x2dccf0c8 + member_id: 0x6669afd1 + member_id: 0x9d69c21e + member_id: 0x1e282dde + member_id: 0x399dce5b + member_id: 0x1293b17d + member_id: 0xf6b3df73 + } +} +struct_union { id: 0x906b8630 kind: STRUCT name: "dma_async_tx_descriptor" @@ -219285,6 +223987,21 @@ struct_union { } } struct_union { + id: 0x7a26b33d + kind: STRUCT + name: "drm_afbc_framebuffer" + definition { + bytesize: 224 + member_id: 0x85378cb8 + member_id: 0x3b9c97de + member_id: 0xdb864134 + member_id: 0x6db01f09 + member_id: 0xdeafe619 + member_id: 0x9bd5d3ca + member_id: 0xd5613ffc + } +} +struct_union { id: 0x9cb7b96f kind: STRUCT name: "drm_atomic_helper_damage_iter" @@ -222163,6 +226880,34 @@ struct_union { } } struct_union { + id: 0x8d59cc59 + kind: STRUCT + name: "eth_dev" + definition { + bytesize: 200 + member_id: 0x2d1fec85 + member_id: 0x4b911741 + member_id: 0x723de0ca + member_id: 0x1875f880 + member_id: 0x41836813 + member_id: 0xafc385cf + member_id: 0xd3d22e9f + member_id: 0x32c7bb3d + member_id: 0xc2e1d78f + member_id: 0x143073ec + member_id: 0x7a86fcdb + member_id: 0xb361ca71 + member_id: 0x7f0a76c2 + member_id: 0xd6e660a8 + member_id: 0x896faa0d + member_id: 0xf36870ee + member_id: 0x59c1c7cb + member_id: 0x41e064b8 + member_id: 0x4af00a54 + member_id: 0x770654c6 + } +} +struct_union { id: 0xed0cdc47 kind: STRUCT name: "ethhdr" @@ -223005,6 +227750,20 @@ struct_union { } } struct_union { + id: 0xce180920 + kind: STRUCT + name: "fastopen_queue" + definition { + bytesize: 40 + member_id: 0x4fed2df8 + member_id: 0xe2520be5 + member_id: 0x2d1fe547 + member_id: 0x9bf5ac3e + member_id: 0x6bf829f7 + member_id: 0xec94e17c + } +} +struct_union { id: 0xbdd1c219 kind: STRUCT name: "fasync_struct" @@ -225589,6 +230348,29 @@ struct_union { } } struct_union { + id: 0xca7029d8 + kind: STRUCT + name: "gether" + definition { + bytesize: 296 + member_id: 0x21a4123c + member_id: 0x694d3c49 + member_id: 0x37e14132 + member_id: 0xbdac13df + member_id: 0x56acdda7 + member_id: 0xbf43ebf0 + member_id: 0x7a0a7faf + member_id: 0x100aab74 + member_id: 0x09807f7a + member_id: 0x7fd91e93 + member_id: 0x07459e81 + member_id: 0xb361ce95 + member_id: 0x7f0a7bae + member_id: 0xadb9bed8 + member_id: 0xcd7ec6ac + } +} +struct_union { id: 0x227d416d kind: STRUCT name: "gh_rm_mem_acl_entry" @@ -226253,7 +231035,7 @@ struct_union { member_id: 0x2d08134c member_id: 0x63760a9a member_id: 0xac8947dc - member_id: 0xe0f63bda + member_id: 0xe0f63bdb } } struct_union { @@ -226276,7 +231058,7 @@ struct_union { kind: STRUCT name: "hci_dev" definition { - bytesize: 6416 + bytesize: 6464 member_id: 0x7c00ef52 member_id: 0x2d4b35c2 member_id: 0x0d314a12 @@ -226428,112 +231210,113 @@ struct_union { member_id: 0x688a5a69 member_id: 0x8bdadf1b member_id: 0xaee6ff53 - member_id: 0x30eff9d8 - member_id: 0xe795c0f1 - member_id: 0x9d309caf - member_id: 0xec10e2f4 - member_id: 0x6f0a1e46 - member_id: 0x091c4805 - member_id: 0xe5f6e117 - member_id: 0x6e7f7819 - member_id: 0x15ef38ff - member_id: 0xa75cec0a - member_id: 0x4b83b19b - member_id: 0xf931197e - member_id: 0x714814d3 - member_id: 0x6fa9dc88 - member_id: 0xa57ecf84 - member_id: 0x8fd1ed9e - member_id: 0x0cd3502a - member_id: 0x41d7b583 - member_id: 0x380f14bc - member_id: 0xd432c148 - member_id: 0xfa136db1 - member_id: 0x3e305241 - member_id: 0x6188e6c3 - member_id: 0x1b39784f - member_id: 0xd0a93ec2 - member_id: 0x45128fe7 - member_id: 0x98e4789b - member_id: 0x6e09a88e - member_id: 0x4821e2b0 - member_id: 0x10dab6be - member_id: 0xa136b44a - member_id: 0xae6111f8 - member_id: 0xb40bde91 - member_id: 0xff765a6f - member_id: 0x15af785f - member_id: 0x58a1bb2e - member_id: 0x4505aa58 - member_id: 0x938b4863 - member_id: 0x9962b15a - member_id: 0x285f0a99 - member_id: 0x020ecba9 - member_id: 0xe71cc270 - member_id: 0x4dcd3d5e - member_id: 0x4ba7b4dd - member_id: 0x4e950be9 - member_id: 0x115fafab - member_id: 0x17a11fa5 - member_id: 0x3c8ef241 - member_id: 0xdc9e1f25 - member_id: 0x78450f73 - member_id: 0xfe933ca0 - member_id: 0x5520b527 - member_id: 0xe27e8817 - member_id: 0x1d6fbead - member_id: 0xb949874f - member_id: 0xc9aa7830 - member_id: 0x37178a6f - member_id: 0xed3cf293 - member_id: 0x1c35799b - member_id: 0xce1acc2a - member_id: 0x80a0a424 - member_id: 0x76701066 - member_id: 0x35c9d647 - member_id: 0x105c3ace - member_id: 0x71a81669 - member_id: 0x5d9e9ce5 - member_id: 0x2e353c74 - member_id: 0x83054f12 - member_id: 0xfa784db4 - member_id: 0x1b95acfb - member_id: 0x86b9464b - member_id: 0x003ea1c2 - member_id: 0xee8ba20d - member_id: 0x030b0d19 - member_id: 0xaa882e6d - member_id: 0xff86b5aa - member_id: 0x54685d71 - member_id: 0x068f48a1 - member_id: 0x0eb3e2bb - member_id: 0x2fd08888 - member_id: 0x4b6f4c71 - member_id: 0x81de6579 - member_id: 0x95cc47a1 - member_id: 0x8064b316 - member_id: 0xc6a08da1 - member_id: 0xaaa3f8da - member_id: 0xad98abe8 - member_id: 0xcd5fd56d - member_id: 0x7f822124 - member_id: 0x84e564f5 - member_id: 0x9ed91a6e - member_id: 0xe39f13d5 - member_id: 0x56f92eab - member_id: 0xa65cd211 - member_id: 0x319b8398 - member_id: 0xfedeef06 - member_id: 0x284bd07a - member_id: 0x08a92984 - member_id: 0xff0b382d - member_id: 0xe84b78bc - member_id: 0x6ae7b18d - member_id: 0x483f37d6 - member_id: 0x2d081ed0 - member_id: 0x63760aa0 - member_id: 0xac894bbb - member_id: 0xe0f63ccd + member_id: 0xdb3467f3 + member_id: 0x30eff64b + member_id: 0xe795c368 + member_id: 0x9d30956d + member_id: 0xec10e729 + member_id: 0x6f0a17b5 + member_id: 0x091c4964 + member_id: 0xe5f6efa3 + member_id: 0x6e7f7dae + member_id: 0x15ef3a47 + member_id: 0xa75cede3 + member_id: 0x4b83bf04 + member_id: 0xf9311273 + member_id: 0x71481e19 + member_id: 0x6fa9d3ef + member_id: 0xa57ecd8e + member_id: 0x8fd1e923 + member_id: 0x0cd354a8 + member_id: 0x41d7be50 + member_id: 0x380f1158 + member_id: 0xd432cc5e + member_id: 0xfa136415 + member_id: 0x3e305123 + member_id: 0x6188e4ee + member_id: 0x1b3970e4 + member_id: 0xd0a93c31 + member_id: 0x45128248 + member_id: 0x98e47471 + member_id: 0x6e09ac61 + member_id: 0x4821ea2b + member_id: 0x10dabda2 + member_id: 0xa136ba5d + member_id: 0xae6114cc + member_id: 0xb40bd33a + member_id: 0xff765d59 + member_id: 0x15af76a2 + member_id: 0x58a1ba40 + member_id: 0x4505a488 + member_id: 0x938b4e26 + member_id: 0x9962bd46 + member_id: 0x285f05be + member_id: 0x020eccd3 + member_id: 0xe71cc1d9 + member_id: 0x4dcd3a37 + member_id: 0x4ba7b24a + member_id: 0x4e9500ec + member_id: 0x115fa561 + member_id: 0x17a11866 + member_id: 0x3c8ef028 + member_id: 0xdc9e19ca + member_id: 0x78450d9f + member_id: 0xfe933c61 + member_id: 0x5520b6a1 + member_id: 0xe27e8ce3 + member_id: 0x1d6fbf33 + member_id: 0xb9498bcf + member_id: 0xc9aa7d35 + member_id: 0x371784a6 + member_id: 0xed3cf7e2 + member_id: 0x1c35794d + member_id: 0xce1acc55 + member_id: 0x80a0a3ee + member_id: 0x76701448 + member_id: 0x35c9dc28 + member_id: 0x105c3c4d + member_id: 0x71a815c7 + member_id: 0x5d9e95ae + member_id: 0x2e353a9c + member_id: 0x83054658 + member_id: 0xfa7845a1 + member_id: 0x1b95ac31 + member_id: 0x86b94497 + member_id: 0x003ea69f + member_id: 0xee8bae4d + member_id: 0x030b0ab6 + member_id: 0xaa882ed4 + member_id: 0xff86bb58 + member_id: 0x546851f2 + member_id: 0x068f454d + member_id: 0x0eb3e9bf + member_id: 0x2fd08efd + member_id: 0x4b6f45cd + member_id: 0x81de61c0 + member_id: 0x95cc43f7 + member_id: 0x8064b4f4 + member_id: 0xc6a08382 + member_id: 0xaaa3fd42 + member_id: 0xad98a9ad + member_id: 0xcd5fd921 + member_id: 0x7f8229da + member_id: 0x84e56f17 + member_id: 0x9ed91ea3 + member_id: 0xe39f1481 + member_id: 0x56f92467 + member_id: 0xa65cd12c + member_id: 0x319b89ab + member_id: 0xfedee1e7 + member_id: 0x284bd920 + member_id: 0x08a92d3f + member_id: 0xff0b3458 + member_id: 0xe84b7153 + member_id: 0x6ae7b5b9 + member_id: 0x483f3007 + member_id: 0x2d0818b7 + member_id: 0x637608bd + member_id: 0xac894467 + member_id: 0xe0f63f30 } } struct_union { @@ -228538,6 +233321,20 @@ struct_union { } } struct_union { + id: 0x3193e55d + kind: STRUCT + name: "ifinfomsg" + definition { + bytesize: 16 + member_id: 0xccfc5cc3 + member_id: 0xed0c7bc2 + member_id: 0x58fe8d2e + member_id: 0x95c94564 + member_id: 0xe5765ac4 + member_id: 0x49aaa6b3 + } +} +struct_union { id: 0x41f1df67 kind: STRUCT name: "ifla_vf_guid" @@ -228888,6 +233685,16 @@ struct_union { } } struct_union { + id: 0xe2574ab7 + kind: STRUCT + name: "in6_pktinfo" + definition { + bytesize: 20 + member_id: 0xce9a5c98 + member_id: 0x8e98680e + } +} +struct_union { id: 0xa54936d5 kind: STRUCT name: "in_addr" @@ -228954,6 +233761,17 @@ struct_union { } } struct_union { + id: 0x1f434195 + kind: STRUCT + name: "inet6_cork" + definition { + bytesize: 16 + member_id: 0xf67626a5 + member_id: 0x9f6b950b + member_id: 0x51ef8423 + } +} +struct_union { id: 0xc4c18dc3 kind: STRUCT name: "inet6_dev" @@ -229002,6 +233820,61 @@ struct_union { } } struct_union { + id: 0x9f83ba8a + kind: STRUCT + name: "inet6_skb_parm" + definition { + bytesize: 24 + member_id: 0xe8bad6da + member_id: 0x2940a2be + member_id: 0x94523a01 + member_id: 0xcd809b0d + member_id: 0x5493d7f6 + member_id: 0xab47d75e + member_id: 0x25da85de + member_id: 0x2d808edc + member_id: 0x38c1840e + member_id: 0xce6a9610 + member_id: 0xc5c8b651 + } +} +struct_union { + id: 0x03de7511 + kind: STRUCT + name: "inet_bind2_bucket" + definition { + bytesize: 64 + member_id: 0xe50fbded + member_id: 0xe6f3661d + member_id: 0x48322e2f + member_id: 0x9e9c9ad1 + member_id: 0x31fb35e2 + member_id: 0x0f3ca934 + member_id: 0xb8ff9609 + member_id: 0xbc5ebfd1 + } +} +struct_union { + id: 0xe6615d93 + kind: STRUCT + name: "inet_bind_bucket" + definition { + bytesize: 72 + member_id: 0xe50fbded + member_id: 0xe6f3661d + member_id: 0x48322e2f + member_id: 0xa6e81f22 + member_id: 0x244da0b8 + member_id: 0x73b4d4d5 + member_id: 0x6398a0a9 + member_id: 0xfd693ce8 + member_id: 0x247ebe29 + member_id: 0xcee88548 + member_id: 0x0f3ca80d + member_id: 0xb8ff9c83 + } +} +struct_union { id: 0x89a37894 kind: STRUCT name: "inet_bind_hashbucket" @@ -229012,6 +233885,100 @@ struct_union { } } struct_union { + id: 0x82dbb487 + kind: STRUCT + name: "inet_connection_sock" + definition { + bytesize: 1536 + member_id: 0x9bd0d4a0 + member_id: 0x2a778fa0 + member_id: 0xa53e6076 + member_id: 0xf1a367c5 + member_id: 0xe54062f3 + member_id: 0x3adf52b3 + member_id: 0xbf3d6991 + member_id: 0xaa84a388 + member_id: 0x7c9184fd + member_id: 0xcfd1f1ed + member_id: 0x9796567d + member_id: 0x2b917283 + member_id: 0xeb6a5fa1 + member_id: 0x50d22351 + member_id: 0x69ab5d87 + member_id: 0x411180b7 + member_id: 0x5392fe03 + member_id: 0x8adfff2f + member_id: 0x9b3f0555 + member_id: 0x5c570222 + member_id: 0x8e756dfb + member_id: 0x6bd77d33 + member_id: 0xfd5174f1 + member_id: 0xb27d04f5 + member_id: 0x2446b1e6 + member_id: 0x2d061585 + member_id: 0xd7cc2503 + member_id: 0xc36d8395 + member_id: 0xc75c6970 + member_id: 0xf4f5c9e8 + member_id: 0x973a1269 + member_id: 0x2d081c07 + member_id: 0xa86967ec + } +} +struct_union { + id: 0x5d95189a + kind: STRUCT + name: "inet_connection_sock_af_ops" + definition { + bytesize: 96 + member_id: 0x52c10ec0 + member_id: 0x6d7c55af + member_id: 0x198e2327 + member_id: 0x68c86260 + member_id: 0x495c1c6d + member_id: 0x472be94a + member_id: 0x729f250d + member_id: 0x171ea46a + member_id: 0x094f9496 + member_id: 0x852593c2 + member_id: 0xd9ad3ae7 + member_id: 0x09692cc4 + member_id: 0x2e3a46f9 + member_id: 0x2d08170f + } +} +struct_union { + id: 0xeeae7608 + kind: STRUCT + name: "inet_cork" + definition { + bytesize: 56 + member_id: 0x2d2d0138 + member_id: 0x24cfa4f0 + member_id: 0xf64ae666 + member_id: 0xe25ba6f2 + member_id: 0xb50a4f6b + member_id: 0xbbe3f808 + member_id: 0x34444209 + member_id: 0xf4da47b1 + member_id: 0xf113a55a + member_id: 0x10dc10b1 + member_id: 0xeaa4b2c9 + member_id: 0x1b258c6d + member_id: 0x8196ad18 + } +} +struct_union { + id: 0x60790295 + kind: STRUCT + name: "inet_cork_full" + definition { + bytesize: 152 + member_id: 0x853440fd + member_id: 0x75577b27 + } +} +struct_union { id: 0x28cc893a kind: STRUCT name: "inet_ehash_bucket" @@ -229103,6 +234070,47 @@ struct_union { } } struct_union { + id: 0xd2a4529d + kind: STRUCT + name: "inet_sock" + definition { + bytesize: 1088 + member_id: 0x82ce9da8 + member_id: 0xe47590e7 + member_id: 0x8be10b49 + member_id: 0x8e099fc0 + member_id: 0x9e4ebac2 + member_id: 0x38f59a08 + member_id: 0x674b03be + member_id: 0x78639f81 + member_id: 0xf1a03e73 + member_id: 0xa28c3827 + member_id: 0x7008fda6 + member_id: 0x79ed9153 + member_id: 0xd1ac6cca + member_id: 0x1facb5a4 + member_id: 0x0ccb8adb + member_id: 0x3cd68edd + member_id: 0xa5d9163f + member_id: 0x73793851 + member_id: 0x1bda0ea3 + member_id: 0xb932820e + member_id: 0x87d4aa19 + member_id: 0x7e45f9f6 + member_id: 0x35577470 + member_id: 0x1ad125b2 + member_id: 0x3c401b61 + member_id: 0x1d8e0899 + member_id: 0x02fcf451 + member_id: 0x5a22c9ad + member_id: 0x9c6a8ab2 + member_id: 0xa608f9d7 + member_id: 0x5b66efeb + member_id: 0x2d08191c + member_id: 0x63760c6b + } +} +struct_union { id: 0x53a9065e kind: STRUCT name: "inet_timewait_death_row" @@ -230530,6 +235538,26 @@ struct_union { } } struct_union { + id: 0x04ad1af1 + kind: STRUCT + name: "ip6_flowlabel" + definition { + bytesize: 104 + member_id: 0x11f8bba0 + member_id: 0x05cb6176 + member_id: 0x85d92902 + member_id: 0xbb9c8500 + member_id: 0xf676260e + member_id: 0xe93fdbc8 + member_id: 0x95dac8e5 + member_id: 0xeb4f31b9 + member_id: 0x4ad6a726 + member_id: 0xccd48510 + member_id: 0x91036748 + member_id: 0x1f4e61c9 + } +} +struct_union { id: 0xdcb15adf kind: STRUCT name: "ip6_sf_list" @@ -230545,6 +235573,18 @@ struct_union { } } struct_union { + id: 0xe42ec820 + kind: STRUCT + name: "ip6_sf_socklist" + definition { + bytesize: 24 + member_id: 0x047148a0 + member_id: 0xeea06d44 + member_id: 0x95dacd96 + member_id: 0x7f9c0ca0 + } +} +struct_union { id: 0x5096f267 kind: STRUCT name: "ip_conntrack_stat" @@ -230638,6 +235678,19 @@ struct_union { } } struct_union { + id: 0x04be5205 + kind: STRUCT + name: "ip_mc_socklist" + definition { + bytesize: 48 + member_id: 0x11613e69 + member_id: 0xe7efca93 + member_id: 0x00c085ca + member_id: 0x25db7175 + member_id: 0x95dac9dc + } +} +struct_union { id: 0xf86b845e kind: STRUCT name: "ip_mreqn" @@ -230649,6 +235702,40 @@ struct_union { } } struct_union { + id: 0x29719ae3 + kind: STRUCT + name: "ip_options" + definition { + bytesize: 16 + member_id: 0xe37696ac + member_id: 0xe2d3a144 + member_id: 0x3cedbd03 + member_id: 0x3a20fe11 + member_id: 0xe752e605 + member_id: 0x95c9b8f6 + member_id: 0x1e6a6587 + member_id: 0x3feffe90 + member_id: 0xb9615f80 + member_id: 0xe5e354be + member_id: 0xb15e52c6 + member_id: 0x5ffbc843 + member_id: 0xe1754ad1 + member_id: 0x1dfe157e + member_id: 0x86165645 + member_id: 0xf4a9b31e + } +} +struct_union { + id: 0xca64cdd4 + kind: STRUCT + name: "ip_options_rcu" + definition { + bytesize: 32 + member_id: 0x95dac977 + member_id: 0xf6635680 + } +} +struct_union { id: 0xe6a8bc0b kind: STRUCT name: "ip_ra_chain" @@ -230675,6 +235762,18 @@ struct_union { } } struct_union { + id: 0xdc40a74d + kind: STRUCT + name: "ip_sf_socklist" + definition { + bytesize: 24 + member_id: 0x047148a0 + member_id: 0xeea06d44 + member_id: 0x95dacd96 + member_id: 0x7fbfd873 + } +} +struct_union { id: 0x19e78670 kind: STRUCT name: "ip_tunnel_info" @@ -230810,6 +235909,17 @@ struct_union { } } struct_union { + id: 0x2cf9bbda + kind: STRUCT + name: "ipv6_ac_socklist" + definition { + bytesize: 32 + member_id: 0x7980c676 + member_id: 0xa102d1d4 + member_id: 0x23f246a8 + } +} +struct_union { id: 0x66c6fbfa kind: STRUCT name: "ipv6_devconf" @@ -230893,6 +236003,97 @@ struct_union { } } struct_union { + id: 0xd421869b + kind: STRUCT + name: "ipv6_fl_socklist" + definition { + bytesize: 32 + member_id: 0x11cc9887 + member_id: 0x75129e6a + member_id: 0x95dac0b5 + } +} +struct_union { + id: 0x61c3c826 + kind: STRUCT + name: "ipv6_mc_socklist" + definition { + bytesize: 56 + member_id: 0x2440fa86 + member_id: 0x90568e8d + member_id: 0x00c085ca + member_id: 0x11e1e8dd + member_id: 0x25d5628c + member_id: 0x95daceb0 + } +} +struct_union { + id: 0xe7d07a15 + kind: STRUCT + name: "ipv6_opt_hdr" + definition { + bytesize: 2 + member_id: 0xe85e1d32 + member_id: 0xd608b573 + } +} +struct_union { + id: 0x65bafa41 + kind: STRUCT + name: "ipv6_pinfo" + definition { + bytesize: 152 + member_id: 0xf85f9f77 + member_id: 0x39865348 + member_id: 0xca75de5a + member_id: 0x2ac20e0b + member_id: 0x3c1c76af + member_id: 0x370a9ced + member_id: 0x46cd5abc + member_id: 0xa582fe9b + member_id: 0x8c5039ca + member_id: 0x34d8f2b6 + member_id: 0x95dcef8c + member_id: 0xe14bd1fe + member_id: 0xca5da826 + member_id: 0xd1f78df1 + member_id: 0xc40b184c + member_id: 0x7560b519 + member_id: 0x6e852b14 + member_id: 0xb13666fe + member_id: 0xaab1780b + member_id: 0x4b741bd1 + member_id: 0x6854e737 + member_id: 0xe803bc2e + member_id: 0x1b81e20c + member_id: 0x7e1e1e3e + member_id: 0xe5f931e3 + member_id: 0x78ae54cb + member_id: 0x51753049 + member_id: 0x608ed11c + member_id: 0x3e931a99 + member_id: 0xfce07b0f + member_id: 0xe2141007 + member_id: 0x1e958d31 + member_id: 0xf6762c03 + member_id: 0xe8802f7b + member_id: 0x80588b5f + member_id: 0xa677c461 + } +} +struct_union { + id: 0x61267b05 + kind: STRUCT + name: "ipv6_rt_hdr" + definition { + bytesize: 4 + member_id: 0xe85e1d32 + member_id: 0xd608b573 + member_id: 0x5ce53c7a + member_id: 0x498b56ac + } +} +struct_union { id: 0x8b8aa3c2 kind: STRUCT name: "ipv6_stable_secret" @@ -230934,6 +236135,23 @@ struct_union { } } struct_union { + id: 0xda61121d + kind: STRUCT + name: "ipv6_txoptions" + definition { + bytesize: 64 + member_id: 0xb7dcf8ac + member_id: 0x3eb7848c + member_id: 0x5e1efe31 + member_id: 0x00c73957 + member_id: 0x111085fe + member_id: 0xebf05092 + member_id: 0xcd7a45a0 + member_id: 0xfb3c6654 + member_id: 0x95dac8e5 + } +} +struct_union { id: 0x97012809 kind: STRUCT name: "ir_raw_event" @@ -231275,16 +236493,6 @@ struct_union { } } struct_union { - id: 0x2259094e - kind: STRUCT - name: "irq_ops" - definition { - bytesize: 16 - member_id: 0x2d5bf13a - member_id: 0x682b5a38 - } -} -struct_union { id: 0xb95bf932 kind: STRUCT name: "irq_work" @@ -231329,43 +236537,6 @@ struct_union { } } struct_union { - id: 0x39aedbce - kind: STRUCT - name: "its_vm" - definition { - bytesize: 128 - member_id: 0x6e4d805e - member_id: 0xa719d61d - member_id: 0x18a69b62 - member_id: 0xade8e87b - member_id: 0x6ba53b1d - member_id: 0x3baa0bf3 - member_id: 0xd3a54092 - member_id: 0xb9a58615 - member_id: 0xd2927ea1 - } -} -struct_union { - id: 0x19bba071 - kind: STRUCT - name: "its_vpe" - definition { - bytesize: 128 - member_id: 0xdca92f00 - member_id: 0xa70b7acb - member_id: 0xd298d587 - member_id: 0x99159806 - member_id: 0x3e9547ca - member_id: 0x3a956acf - member_id: 0xa3f01223 - member_id: 0x345b10fd - member_id: 0xa8c6574f - member_id: 0x6710a2d3 - member_id: 0x1b58edc6 - member_id: 0x141c8cee - } -} -struct_union { id: 0xb34a0d30 kind: STRUCT name: "iw_discarded" @@ -232602,83 +237773,6 @@ struct_union { } } struct_union { - id: 0xf2aeafb9 - kind: STRUCT - name: "kvm" - definition { - bytesize: 4352 - member_id: 0x833819ed - member_id: 0xdda08f2f - member_id: 0x59597675 - member_id: 0x3025d651 - member_id: 0x8a52dd6e - member_id: 0xf0778c7b - member_id: 0x4f1355bb - member_id: 0xcd6e2d79 - member_id: 0x8174053d - member_id: 0x1a817692 - member_id: 0xf11c4ad7 - member_id: 0x46e189ff - member_id: 0xca660682 - member_id: 0xc21468d0 - member_id: 0x107724e0 - member_id: 0x221ad62a - member_id: 0x85550ce5 - member_id: 0x5d9a7aad - member_id: 0x2d4b3b7e - member_id: 0xfa427670 - member_id: 0x450927c5 - member_id: 0x0d7ae40f - member_id: 0xb9403407 - member_id: 0xb857a998 - member_id: 0x914f88a3 - member_id: 0x48aab379 - member_id: 0xa84d097f - member_id: 0x02a639fa - member_id: 0x8cfde860 - member_id: 0x71efddfa - member_id: 0x3b21a108 - member_id: 0x4938a60d - member_id: 0x59a47d0f - member_id: 0x1c0c4ea6 - member_id: 0xc81d2fc7 - member_id: 0xf7c73e7d - member_id: 0x33ed52b5 - member_id: 0x69005a44 - member_id: 0x6425d0fe - member_id: 0xcd446a90 - member_id: 0x2b889279 - member_id: 0xb5417608 - member_id: 0xff77b3c7 - member_id: 0x8dc5ba0f - member_id: 0xf60ae606 - member_id: 0x8de27dbd - member_id: 0x3046b926 - member_id: 0x82dad882 - member_id: 0xd657a07c - } -} -struct_union { - id: 0xfd71f39d - kind: STRUCT - name: "kvm_arch" - definition { - bytesize: 488 - member_id: 0x6dab2c05 - member_id: 0x8b881e3c - member_id: 0xf510916c - member_id: 0x2c10bf52 - member_id: 0x2d5bffb1 - member_id: 0x3957d3b9 - member_id: 0xce7b08c8 - member_id: 0x86378461 - member_id: 0x03a47022 - member_id: 0x42988d63 - member_id: 0xe4cebf61 - member_id: 0xe908f26f - } -} -struct_union { id: 0x99ce8ef3 kind: STRUCT name: "kvm_arch_memory_slot" @@ -232686,29 +237780,6 @@ struct_union { } } struct_union { - id: 0xef8b9e67 - kind: STRUCT - name: "kvm_coalesced_mmio" - definition { - bytesize: 24 - member_id: 0xbda607c1 - member_id: 0xb8e3ff08 - member_id: 0x30c18aff - member_id: 0xff5aeac8 - } -} -struct_union { - id: 0x99f4eb25 - kind: STRUCT - name: "kvm_coalesced_mmio_ring" - definition { - bytesize: 8 - member_id: 0x1f01199c - member_id: 0x26892e85 - member_id: 0xe2ce2718 - } -} -struct_union { id: 0x6a241fb6 kind: STRUCT name: "kvm_cpu_context" @@ -232721,181 +237792,7 @@ struct_union { member_id: 0x0763cc89 member_id: 0x5b05aaff member_id: 0x792a2a11 - member_id: 0x983c1d18 - } -} -struct_union { - id: 0xb47f1c0e - kind: STRUCT - name: "kvm_debug_exit_arch" - definition { - bytesize: 16 - member_id: 0x8c045ea7 - member_id: 0x440037d1 - member_id: 0xe9c99bd1 - } -} -struct_union { - id: 0xe2d4c01c - kind: STRUCT - name: "kvm_device" - definition { - bytesize: 40 - member_id: 0xafbacb95 - member_id: 0x730e8f88 - member_id: 0x91796f71 - member_id: 0xd652df47 - } -} -struct_union { - id: 0xc6171ee9 - kind: STRUCT - name: "kvm_device_attr" - definition { - bytesize: 24 - member_id: 0x2d8eaae1 - member_id: 0xd37422b2 - member_id: 0x8ce95ca0 - member_id: 0x24c024d3 - } -} -struct_union { - id: 0xc5f74818 - kind: STRUCT - name: "kvm_device_ops" - definition { - bytesize: 80 - member_id: 0x0de57ce8 - member_id: 0x0fad648a - member_id: 0x1ae7589a - member_id: 0xa4fbb750 - member_id: 0xae95664d - member_id: 0x0bb97dbd - member_id: 0xbe7a98dd - member_id: 0x5d4925a5 - member_id: 0x4d44694e - member_id: 0x87fdbe87 - } -} -struct_union { - id: 0xfe89d18d - kind: STRUCT - name: "kvm_dirty_gfn" - definition { - bytesize: 16 - member_id: 0x2d8eaae1 - member_id: 0x68304f23 - member_id: 0x9bf12a52 - } -} -struct_union { - id: 0x95e9e529 - kind: STRUCT - name: "kvm_dirty_ring" - definition { - bytesize: 32 - member_id: 0x4647cbd4 - member_id: 0xcfe72c2d - member_id: 0xd9b710b8 - member_id: 0x275ed516 - member_id: 0x69efcf5e - member_id: 0xad5e20a5 - } -} -struct_union { - id: 0x590c6dd8 - kind: STRUCT - name: "kvm_guest_debug_arch" - definition { - bytesize: 512 - member_id: 0x5cb6e321 - member_id: 0xb8d95da8 - member_id: 0x6a57f232 - member_id: 0x88756f7c - } -} -struct_union { - id: 0xce6b97ea - kind: STRUCT - name: "kvm_hyp_memcache" - definition { - bytesize: 16 - member_id: 0xb5e76888 - member_id: 0xe3b1b19e - } -} -struct_union { - id: 0x7ff97877 - kind: STRUCT - name: "kvm_hyperv_exit" - definition { - bytesize: 56 - member_id: 0x5cb0fbc1 - member_id: 0x6612cc37 - member_id: 0xec3c82cc - } -} -struct_union { - id: 0x1b5f79d9 - kind: STRUCT - name: "kvm_io_bus" - definition { - bytesize: 8 - member_id: 0xa05ae8b2 - member_id: 0x3103f4d5 - member_id: 0x0e6e7fb8 - } -} -struct_union { - id: 0x3fc5b8b3 - kind: STRUCT - name: "kvm_io_device" - definition { - bytesize: 8 - member_id: 0xafbcd9c0 - } -} -struct_union { - id: 0xa4d21be9 - kind: STRUCT - name: "kvm_io_device_ops" - definition { - bytesize: 24 - member_id: 0x487026f9 - member_id: 0x342da96c - member_id: 0xa414c1a9 - } -} -struct_union { - id: 0x5b1f6457 - kind: STRUCT - name: "kvm_io_range" - definition { - bytesize: 24 - member_id: 0x243694c7 - member_id: 0xb862f164 - member_id: 0xce3c8adf - } -} -struct_union { - id: 0xd9729a52 - kind: STRUCT - name: "kvm_irq_level" - definition { - bytesize: 8 - member_id: 0x3fee6444 - member_id: 0x865cec96 - } -} -struct_union { - id: 0xaf573835 - kind: STRUCT - name: "kvm_irq_routing_table" - definition { - bytesize: 3960 - member_id: 0xc6fa2a23 - member_id: 0xf6e30a95 - member_id: 0x8d25e654 + member_id: 0x982c7c86 } } struct_union { @@ -232918,390 +237815,6 @@ struct_union { } } struct_union { - id: 0x07a8c893 - kind: STRUCT - name: "kvm_memslots" - definition { - bytesize: 1072 - member_id: 0x694cfe41 - member_id: 0xabf33787 - member_id: 0x130ace31 - member_id: 0xc25cb27c - member_id: 0xba6f54b9 - member_id: 0xdeaef990 - } -} -struct_union { - id: 0xc6388883 - kind: STRUCT - name: "kvm_mmio_fragment" - definition { - bytesize: 24 - member_id: 0xc1d9a180 - member_id: 0xff8a9de8 - member_id: 0xb84059f2 - } -} -struct_union { - id: 0xa2ba72d6 - kind: STRUCT - name: "kvm_mmu_memory_cache" - definition { - bytesize: 40 - member_id: 0x603fc5a7 - member_id: 0x8e40fa3f - member_id: 0xde99678b - member_id: 0x85e4ba6c - member_id: 0xa779a4af - member_id: 0x2aa4f724 - } -} -struct_union { - id: 0x029d28cb - kind: STRUCT - name: "kvm_mp_state" - definition { - bytesize: 4 - member_id: 0xfc27981e - } -} -struct_union { - id: 0x6f796009 - kind: STRUCT - name: "kvm_pgtable" - definition { - bytesize: 48 - member_id: 0x83618e44 - member_id: 0x4c6ccc95 - member_id: 0x331a3623 - member_id: 0xa69ad382 - member_id: 0x6d5a2dc5 - member_id: 0x2ddb7ced - member_id: 0x8661d99b - } -} -struct_union { - id: 0x1c1e6c54 - kind: STRUCT - name: "kvm_pgtable_mm_ops" - definition { - bytesize: 80 - member_id: 0xe15e2cfc - member_id: 0x511e5f54 - member_id: 0xef540e05 - member_id: 0xcf22b6e3 - member_id: 0x68c1b0bb - member_id: 0x21516548 - member_id: 0x66a97394 - member_id: 0x40e6d42e - member_id: 0x0a10a4f8 - member_id: 0x27f5e987 - } -} -struct_union { - id: 0x93ebc7c6 - kind: STRUCT - name: "kvm_pgtable_pte_ops" - definition { - bytesize: 16 - member_id: 0x53106073 - member_id: 0xeef9224d - } -} -struct_union { - id: 0x4025bdaf - kind: STRUCT - name: "kvm_pmc" - definition { - bytesize: 16 - member_id: 0x3caea455 - member_id: 0xf94346ab - } -} -struct_union { - id: 0xbe704ca9 - kind: STRUCT - name: "kvm_pmu" - definition { - bytesize: 560 - member_id: 0x39d6cdec - member_id: 0x112c08c3 - member_id: 0x15c30de0 - member_id: 0x94f98f17 - member_id: 0x92faaaee - member_id: 0xd133b0b1 - } -} -struct_union { - id: 0xd9b5b8b6 - kind: STRUCT - name: "kvm_pmu_events" - definition { - bytesize: 8 - member_id: 0xa9fd6a40 - member_id: 0x97ab0bd6 - } -} -struct_union { - id: 0xf75540c7 - kind: STRUCT - name: "kvm_protected_vm" - definition { - bytesize: 64 - member_id: 0xb8f5134f - member_id: 0xb6388968 - member_id: 0xc6b10bc0 - member_id: 0x037e99ae - member_id: 0x0f7f629e - member_id: 0x3a2d39cb - } -} -struct_union { - id: 0xdcd5c554 - kind: STRUCT - name: "kvm_run" - definition { - bytesize: 2352 - member_id: 0xf6476a4c - member_id: 0xb85c9514 - member_id: 0xd06a5757 - member_id: 0x4f84d1da - member_id: 0x6bffa57c - member_id: 0x7eaf49aa - member_id: 0x2d808bd3 - member_id: 0x00fa5522 - member_id: 0x5ba521f2 - member_id: 0x3f0e6b4d - member_id: 0x4b1e23b0 - member_id: 0xaa4c4a21 - member_id: 0x67846dd9 - } -} -struct_union { - id: 0xc9e16a53 - kind: STRUCT - name: "kvm_s2_mmu" - definition { - bytesize: 40 - member_id: 0x69149bd4 - member_id: 0x99236fa3 - member_id: 0x7f170713 - member_id: 0x9555d521 - member_id: 0xb89f1d6b - } -} -struct_union { - id: 0x2c432ef9 - kind: STRUCT - name: "kvm_smccc_features" - definition { - bytesize: 24 - member_id: 0x368deee8 - member_id: 0x17d504ad - member_id: 0xba785216 - } -} -struct_union { - id: 0xf0ca3374 - kind: STRUCT - name: "kvm_stat_data" - definition { - bytesize: 24 - member_id: 0x730e8b69 - member_id: 0x87e1eb87 - member_id: 0xd7f60431 - } -} -struct_union { - id: 0x5a5219ed - kind: STRUCT - name: "kvm_stats_desc" - definition { - bytesize: 16 - member_id: 0x2d8eaae1 - member_id: 0xdf3a40d2 - member_id: 0xd99613f3 - member_id: 0x9bfaf69a - member_id: 0xe6502bd9 - member_id: 0x0d114fce - } -} -struct_union { - id: 0xca67e5f6 - kind: STRUCT - name: "kvm_sync_regs" - definition { - bytesize: 8 - member_id: 0xf5b742db - } -} -struct_union { - id: 0x09330b45 - kind: STRUCT - name: "kvm_vcpu" - definition { - bytesize: 9712 - member_id: 0x730e8b69 - member_id: 0xad12ae54 - member_id: 0x5161b04d - member_id: 0x7c4a52b5 - member_id: 0xbcb323c9 - member_id: 0xfc4129b1 - member_id: 0x87fa34df - member_id: 0x9f936789 - member_id: 0xd014eabd - member_id: 0xad898a70 - member_id: 0x021fd03f - member_id: 0x20f5a5f4 - member_id: 0x74912d9b - member_id: 0x54ebc83a - member_id: 0xd1201d45 - member_id: 0xcffef03f - member_id: 0x7e5c1bb6 - member_id: 0xb16b8efe - member_id: 0xf337f353 - member_id: 0xe4aa6cb8 - member_id: 0x41a58807 - member_id: 0x22a96429 - member_id: 0x0abc4886 - member_id: 0x36ede007 - member_id: 0x1bd1d822 - member_id: 0xa3f0172f - member_id: 0xb81bb253 - member_id: 0xb934c444 - member_id: 0xd657a20e - member_id: 0x0741ce14 - member_id: 0xab7e4a6e - member_id: 0x1838fabc - } -} -struct_union { - id: 0xb16454d0 - kind: STRUCT - name: "kvm_vcpu_arch" - definition { - bytesize: 8464 - member_id: 0x2723fe2c - member_id: 0x2e0a3f7d - member_id: 0x05e10aeb - member_id: 0xae35f89b - member_id: 0xf34e08bb - member_id: 0xc4593e51 - member_id: 0x376609fd - member_id: 0x0cc65d59 - member_id: 0xdb73cbc4 - member_id: 0x7b6a6e0c - member_id: 0x06effd42 - member_id: 0x9608d64b - member_id: 0x50f909b7 - member_id: 0x4e4c2253 - member_id: 0x6d45f1ba - member_id: 0x7e662956 - member_id: 0xf58a324e - member_id: 0x15ff4fe5 - member_id: 0x909d979f - member_id: 0x2edd8c13 - member_id: 0x76772152 - member_id: 0x0120b46e - member_id: 0x93b6279b - member_id: 0x57b4f0b1 - member_id: 0xfcc328ac - member_id: 0x37f52c8e - member_id: 0xb3c5f85e - member_id: 0xc5a16f87 - member_id: 0xf681ca11 - member_id: 0xa700e1ff - member_id: 0x80093c04 - } -} -struct_union { - id: 0xe41fd2fe - kind: STRUCT - name: "kvm_vcpu_fault_info" - definition { - bytesize: 32 - member_id: 0xfe44cfde - member_id: 0x550ab6b9 - member_id: 0xd6cec4c2 - member_id: 0x1de22279 - } -} -struct_union { - id: 0x8f4af0b6 - kind: STRUCT - name: "kvm_vcpu_stat" - definition { - bytesize: 888 - member_id: 0x42be7fea - member_id: 0x65c703ea - member_id: 0x33be0c85 - member_id: 0xff2da133 - member_id: 0x3c9c64dc - member_id: 0x22f5be35 - member_id: 0xbf28dc5b - member_id: 0x237f1104 - } -} -struct_union { - id: 0x84fc1211 - kind: STRUCT - name: "kvm_vcpu_stat_generic" - definition { - bytesize: 832 - member_id: 0x0946dc8b - member_id: 0x0e3de808 - member_id: 0x5f0d9541 - member_id: 0xe9b25d2a - member_id: 0xdc094b5c - member_id: 0x5e1d7f8d - member_id: 0xa1ad1dfd - member_id: 0x47baacc5 - member_id: 0xd7979ded - member_id: 0x2665d054 - member_id: 0x8efec678 - } -} -struct_union { - id: 0xfbb47533 - kind: STRUCT - name: "kvm_vm_stat" - definition { - bytesize: 32 - member_id: 0x42aa8b1f - member_id: 0x7efa09f3 - member_id: 0x46e4dafc - } -} -struct_union { - id: 0x9008e757 - kind: STRUCT - name: "kvm_vm_stat_generic" - definition { - bytesize: 16 - member_id: 0x8726cc6c - member_id: 0xe4dfd298 - } -} -struct_union { - id: 0x0c039fcc - kind: STRUCT - name: "kvm_vmid" - definition { - bytesize: 8 - member_id: 0xcc3069e2 - } -} -struct_union { - id: 0x56bbf50a - kind: STRUCT - name: "kvm_xen_exit" - definition { - bytesize: 80 - member_id: 0x5cb0fbc1 - member_id: 0xec1fd483 - } -} -struct_union { id: 0x27179756 kind: STRUCT name: "l2cap_chan" @@ -234384,6 +238897,15 @@ struct_union { } } struct_union { + id: 0xc5d806af + kind: UNION + name: "map_info" + definition { + bytesize: 8 + member_id: 0x46e877b0 + } +} +struct_union { id: 0xbd562aba kind: STRUCT name: "maple_alloc" @@ -234412,6 +238934,57 @@ struct_union { } } struct_union { + id: 0x9f9f2e37 + kind: STRUCT + name: "mapped_device" + definition { + bytesize: 1296 + member_id: 0x13692fb1 + member_id: 0x72b151f9 + member_id: 0x0d77c97c + member_id: 0x8deec674 + member_id: 0x2d5bf9c9 + member_id: 0xc5f5f87e + member_id: 0x5cab8146 + member_id: 0x0f379684 + member_id: 0xaddb4c9f + member_id: 0x1f2404cf + member_id: 0x3961e57f + member_id: 0x63660872 + member_id: 0xfa2d1f78 + member_id: 0x0d994b65 + member_id: 0x6071aa84 + member_id: 0x57d05926 + member_id: 0x202d9516 + member_id: 0x4c3543b9 + member_id: 0x3a26f97c + member_id: 0x22fae506 + member_id: 0xd6e6623f + member_id: 0xa9cf9302 + member_id: 0xf0efa471 + member_id: 0x37483f88 + member_id: 0xee14c6d9 + member_id: 0x3cd46820 + member_id: 0x9f773f87 + member_id: 0x56ec2c77 + member_id: 0x271c2c01 + member_id: 0x1704d15b + member_id: 0xdc003eed + member_id: 0xf51d09e4 + member_id: 0x0de002cb + member_id: 0xb95d079c + member_id: 0x1eb686c0 + member_id: 0x69e5d3c9 + member_id: 0xec6548f1 + member_id: 0xcec5b332 + member_id: 0x1f686bd1 + member_id: 0xd68a69a4 + member_id: 0x5fad2d83 + member_id: 0x42b6c2d1 + member_id: 0x2137fd7f + } +} +struct_union { id: 0x29d77c73 kind: STRUCT name: "match_token" @@ -235214,6 +239787,25 @@ struct_union { } } struct_union { + id: 0x98a86aa3 + kind: STRUCT + name: "minmax" + definition { + bytesize: 24 + member_id: 0x67c839a9 + } +} +struct_union { + id: 0xa12e384a + kind: STRUCT + name: "minmax_sample" + definition { + bytesize: 8 + member_id: 0xab76db82 + member_id: 0x28f6afd5 + } +} +struct_union { id: 0x0fc94b61 kind: STRUCT name: "mipi_dsi_device" @@ -235899,58 +240491,6 @@ struct_union { } } struct_union { - id: 0x846ab93f - kind: STRUCT - name: "mmu_notifier" - definition { - bytesize: 72 - member_id: 0x2d522361 - member_id: 0xafb0c299 - member_id: 0x3025dd22 - member_id: 0x95dac9dc - member_id: 0x85e876e9 - member_id: 0x2d081245 - member_id: 0x637602ba - } -} -struct_union { - id: 0x65fba0a9 - kind: STRUCT - name: "mmu_notifier_ops" - definition { - bytesize: 112 - member_id: 0xae94e729 - member_id: 0xe32eadd5 - member_id: 0xf2531964 - member_id: 0xa10fc33f - member_id: 0x83d10832 - member_id: 0x0545c767 - member_id: 0x4f063390 - member_id: 0x6e9b1c0d - member_id: 0xaf409590 - member_id: 0xfc81ed63 - member_id: 0x2d08134b - member_id: 0x63760b9f - member_id: 0xac8941f8 - member_id: 0xe0f637f1 - } -} -struct_union { - id: 0xa68d9aed - kind: STRUCT - name: "mmu_notifier_range" - definition { - bytesize: 48 - member_id: 0x23919a13 - member_id: 0x3025d10a - member_id: 0x46284ff6 - member_id: 0x823c26d1 - member_id: 0x2d2d0193 - member_id: 0x0ad7602b - member_id: 0x4a85cf2e - } -} -struct_union { id: 0xd1ebc718 kind: STRUCT name: "mmu_notifier_subscriptions" @@ -237772,8 +242312,8 @@ struct_union { member_id: 0xada1cece member_id: 0x48ccbe61 member_id: 0x61f40f68 - member_id: 0x56771d1e - member_id: 0xfbd45c2d + member_id: 0x567d4292 + member_id: 0xfbd4593e member_id: 0x2d081262 } } @@ -238054,6 +242594,17 @@ struct_union { } } struct_union { + id: 0x68d1b84a + kind: STRUCT + name: "nf_conntrack_zone" + definition { + bytesize: 4 + member_id: 0xccbe612e + member_id: 0x2d41d692 + member_id: 0x2edf726f + } +} +struct_union { id: 0x5f7df287 kind: STRUCT name: "nf_ct_dccp" @@ -238639,6 +243190,22 @@ struct_union { } } struct_union { + id: 0x292b4bb0 + kind: STRUCT + name: "nls_table" + definition { + bytesize: 64 + member_id: 0x551378c2 + member_id: 0x25050ebe + member_id: 0xe6eaad3f + member_id: 0x26d4a9a4 + member_id: 0x6322a32f + member_id: 0x06048b6e + member_id: 0x4a9653c2 + member_id: 0x11f3dd43 + } +} +struct_union { id: 0x594b6ab2 kind: STRUCT name: "notification" @@ -239108,6 +243675,23 @@ struct_union { } } struct_union { + id: 0xdbe44b66 + kind: STRUCT + name: "oom_control" + definition { + bytesize: 64 + member_id: 0x15c9fb88 + member_id: 0x788bc17d + member_id: 0xc76cfce5 + member_id: 0xa4b05168 + member_id: 0xb51c2507 + member_id: 0x7248bb69 + member_id: 0x1024996f + member_id: 0x3d099644 + member_id: 0xaf3405ec + } +} +struct_union { id: 0x95539d46 kind: STRUCT name: "open_how" @@ -239328,6 +243912,23 @@ struct_union { } } struct_union { + id: 0x798d1382 + kind: STRUCT + name: "page_vma_mapped_walk" + definition { + bytesize: 72 + member_id: 0x64bb7964 + member_id: 0xe3b1b19e + member_id: 0xadfdef1c + member_id: 0x239192da + member_id: 0x30e26822 + member_id: 0x56639dd1 + member_id: 0xa17fe2dc + member_id: 0xce4422cd + member_id: 0x2d2d0a20 + } +} +struct_union { id: 0x3844dda9 kind: STRUCT name: "pagevec" @@ -241708,19 +246309,6 @@ struct_union { } } struct_union { - id: 0x5fd7ae1b - kind: STRUCT - name: "pmu_hw_events" - definition { - bytesize: 288 - member_id: 0x11a602db - member_id: 0x0170d376 - member_id: 0x03f344e6 - member_id: 0x34c743f9 - member_id: 0x99159c15 - } -} -struct_union { id: 0x0f15c20c kind: UNION name: "pn" @@ -241742,7 +246330,7 @@ struct_union { member_id: 0x94d42733 member_id: 0x2da184bc member_id: 0xdcf61166 - member_id: 0x209860f9 + member_id: 0x20a07181 } } struct_union { @@ -242244,26 +246832,6 @@ struct_union { } } struct_union { - id: 0x89c67026 - kind: STRUCT - name: "preempt_notifier" - definition { - bytesize: 24 - member_id: 0x55f738dc - member_id: 0xafaa08ab - } -} -struct_union { - id: 0xae47ce96 - kind: STRUCT - name: "preempt_ops" - definition { - bytesize: 16 - member_id: 0xe0b448e4 - member_id: 0x7b24028f - } -} -struct_union { id: 0x1331151e kind: STRUCT name: "prefix_info" @@ -244704,6 +249272,22 @@ struct_union { } } struct_union { + id: 0xf05a506e + kind: STRUCT + name: "request_sock_queue" + definition { + bytesize: 80 + member_id: 0xf1af1f8d + member_id: 0x6f5c1006 + member_id: 0x77b35ac5 + member_id: 0x9be65a12 + member_id: 0x2baf73ff + member_id: 0x5367b67f + member_id: 0x07b1da25 + member_id: 0x5aaa76bb + } +} +struct_union { id: 0x85641a49 kind: STRUCT name: "reserved_mem" @@ -245572,6 +250156,30 @@ struct_union { } } struct_union { + id: 0xca62ed00 + kind: STRUCT + name: "rsa_key" + definition { + bytesize: 128 + member_id: 0x4659cf92 + member_id: 0x87e623f5 + member_id: 0xc325cba2 + member_id: 0xa68e47c8 + member_id: 0xe94def1c + member_id: 0x55f0c48b + member_id: 0x12302e1a + member_id: 0x060b5e2a + member_id: 0x0cc91dc5 + member_id: 0xab258a23 + member_id: 0xcc4dd9fb + member_id: 0x73d7a8f4 + member_id: 0x30c8a340 + member_id: 0x086093bd + member_id: 0x8d88c04b + member_id: 0x112d65f6 + } +} +struct_union { id: 0xdbc8b0ff kind: STRUCT name: "rt6_exception_bucket" @@ -246046,6 +250654,16 @@ struct_union { } } struct_union { + id: 0xa065b5b5 + kind: STRUCT + name: "sbq_wait" + definition { + bytesize: 48 + member_id: 0xd440bc7f + member_id: 0x201ba432 + } +} +struct_union { id: 0x2c37cb88 kind: STRUCT name: "sbq_wait_state" @@ -246055,6 +250673,16 @@ struct_union { } } struct_union { + id: 0xc440583a + kind: STRUCT + name: "scatter_walk" + definition { + bytesize: 16 + member_id: 0x9d8652e2 + member_id: 0x9b595d43 + } +} +struct_union { id: 0x6d7f0eb8 kind: STRUCT name: "scatterlist" @@ -248241,14 +252869,13 @@ struct_union { kind: STRUCT name: "size_class" definition { - bytesize: 136 - member_id: 0x2d1fec85 - member_id: 0xf667d80f - member_id: 0xd91935d3 - member_id: 0x7a226550 - member_id: 0x338646f2 - member_id: 0xad7c8a98 - member_id: 0xb91e0d04 + bytesize: 128 + member_id: 0xf667dcee + member_id: 0xd91937b9 + member_id: 0x7a226b7d + member_id: 0x338649f9 + member_id: 0xad7c8d2b + member_id: 0xb91e0940 } } struct_union { @@ -248357,7 +252984,7 @@ struct_union { kind: STRUCT name: "sk_psock" definition { - bytesize: 392 + bytesize: 472 member_id: 0x828c89b5 member_id: 0xbca70c75 member_id: 0x89339cbd @@ -248382,8 +253009,8 @@ struct_union { member_id: 0xd95f8065 member_id: 0xd6e43b14 member_id: 0xaf49a3ae - member_id: 0xd6e66228 - member_id: 0xa56878ce + member_id: 0xd60840ef + member_id: 0xa568765c } } struct_union { @@ -248403,10 +253030,9 @@ struct_union { kind: STRUCT name: "sk_psock_work_state" definition { - bytesize: 16 - member_id: 0xb0b8667e - member_id: 0xb8ccd99c - member_id: 0x8b1c39bc + bytesize: 8 + member_id: 0xb8ccdd7d + member_id: 0x8b1c3d04 } } struct_union { @@ -248450,6 +253076,16 @@ struct_union { } } struct_union { + id: 0xeb42d758 + kind: STRUCT + name: "skcipher_instance" + definition { + bytesize: 576 + member_id: 0xfeafbaf6 + member_id: 0x300b2d2f + } +} +struct_union { id: 0x5a18785c kind: STRUCT name: "skcipher_request" @@ -248464,6 +253100,30 @@ struct_union { } } struct_union { + id: 0xb9a7d20f + kind: STRUCT + name: "skcipher_walk" + definition { + bytesize: 152 + member_id: 0x446cb466 + member_id: 0xbbab7e83 + member_id: 0x5c6f2950 + member_id: 0x9a42cf0b + member_id: 0xb335975f + member_id: 0x9d16fe6e + member_id: 0xc0824dc3 + member_id: 0x32051c2a + member_id: 0x33decf44 + member_id: 0xe5a6cde2 + member_id: 0x56ccb987 + member_id: 0x8320112b + member_id: 0x2d0fadac + member_id: 0x89cc162f + member_id: 0x5e10ffff + member_id: 0x9d7710c5 + } +} +struct_union { id: 0x140795ac kind: STRUCT name: "slab" @@ -248531,6 +253191,25 @@ struct_union { name: "smc_hashinfo" } struct_union { + id: 0xf265ff6f + kind: STRUCT + name: "smp_hotplug_thread" + definition { + bytesize: 96 + member_id: 0xacd44104 + member_id: 0x7c00ebb3 + member_id: 0x4118a1ce + member_id: 0x3e886d7b + member_id: 0x0f89928e + member_id: 0x84c3a238 + member_id: 0x200938c6 + member_id: 0xc70bed2a + member_id: 0x6fd6cd07 + member_id: 0x5937e22e + member_id: 0xa81d1890 + } +} +struct_union { id: 0x6c8e86b4 kind: STRUCT name: "snd_aes_iec958" @@ -250264,6 +254943,19 @@ struct_union { } } struct_union { + id: 0x85598cc2 + kind: STRUCT + name: "snd_soc_jack_zone" + definition { + bytesize: 32 + member_id: 0xa07cb245 + member_id: 0xeaccae16 + member_id: 0x9f7caab9 + member_id: 0x74a266cc + member_id: 0x7c00e690 + } +} +struct_union { id: 0x69e1c6f0 kind: STRUCT name: "snd_soc_ops" @@ -250765,6 +255457,21 @@ struct_union { } } struct_union { + id: 0x201f4d61 + kind: STRUCT + name: "snd_usb_audio_vendor_ops" + definition { + bytesize: 56 + member_id: 0x88f65c40 + member_id: 0x58055805 + member_id: 0x18766439 + member_id: 0x2d081dfb + member_id: 0x63760909 + member_id: 0xac894e91 + member_id: 0xe0f635d9 + } +} +struct_union { id: 0xb7b99e10 kind: STRUCT name: "snd_usb_clock_ref" @@ -251011,6 +255718,7 @@ struct_union { member_id: 0x69be7cba member_id: 0xa5fca811 member_id: 0x519959d7 + member_id: 0x8a1dbb2d member_id: 0xbbf2e8a0 member_id: 0x3bc43305 member_id: 0x729e4302 @@ -252173,6 +256881,43 @@ struct_union { } } struct_union { + id: 0xf2cb0e35 + kind: STRUCT + name: "target_type" + definition { + bytesize: 248 + member_id: 0xc504f94b + member_id: 0x0de57809 + member_id: 0x965f1ffc + member_id: 0xa662981f + member_id: 0x64f1a684 + member_id: 0xb0de17e8 + member_id: 0x8d8ccb94 + member_id: 0xe7b15fc6 + member_id: 0x2e40d714 + member_id: 0xec54a25c + member_id: 0x37cf0b9e + member_id: 0x542288b2 + member_id: 0x8a92bcd2 + member_id: 0xc58884a8 + member_id: 0xc22f1b4d + member_id: 0xcae841ae + member_id: 0x20dd7873 + member_id: 0x9de5400c + member_id: 0xd1d88fb4 + member_id: 0x0d0ed2a2 + member_id: 0x60a635ef + member_id: 0x5a8eeaf5 + member_id: 0x4b3c38dc + member_id: 0x6b820536 + member_id: 0xc7158a13 + member_id: 0x830b1efa + member_id: 0x2d081217 + member_id: 0x63760fd1 + member_id: 0x7c00e44f + } +} +struct_union { id: 0x4e9556c5 kind: STRUCT name: "task_cputime" @@ -252462,7 +257207,7 @@ struct_union { member_id: 0xedf50137 member_id: 0xd666cd53 member_id: 0x9a3ad7bf - member_id: 0x2d081767 + member_id: 0x3024ec51 member_id: 0x63760531 member_id: 0xac894e97 member_id: 0xe0f63fac @@ -252896,6 +257641,30 @@ struct_union { } } struct_union { + id: 0x0cb73b55 + kind: STRUCT + name: "tcp_fastopen_cookie" + definition { + bytesize: 24 + member_id: 0x4f647aa3 + member_id: 0xb82c6bed + member_id: 0x9633fcdf + } +} +struct_union { + id: 0x38e5bb2f + kind: STRUCT + name: "tcp_fastopen_request" + definition { + bytesize: 56 + member_id: 0x5846e373 + member_id: 0xffbef712 + member_id: 0xd98a29b1 + member_id: 0x5414dc08 + member_id: 0x50ba6c8c + } +} +struct_union { id: 0x85ab6757 kind: STRUCT name: "tcp_mib" @@ -252905,6 +257674,220 @@ struct_union { } } struct_union { + id: 0xfb9626d5 + kind: STRUCT + name: "tcp_options_received" + definition { + bytesize: 24 + member_id: 0x8131134d + member_id: 0x851fefad + member_id: 0x908732db + member_id: 0xa56c13a3 + member_id: 0x037e8aa7 + member_id: 0xcd6e1313 + member_id: 0x09aae020 + member_id: 0xf0ca4be8 + member_id: 0xa9edea21 + member_id: 0x7d4497ce + member_id: 0xa597551f + member_id: 0x64ea7467 + member_id: 0x9eb3a9b9 + member_id: 0xc2fb89b4 + member_id: 0x7cf21fa8 + member_id: 0xc4835a3d + member_id: 0x5ddbff68 + } +} +struct_union { + id: 0xd4132c46 + kind: STRUCT + name: "tcp_rack" + definition { + bytesize: 24 + member_id: 0xf3d1e1b3 + member_id: 0x2e52fcab + member_id: 0xd5a564b1 + member_id: 0x8762b004 + member_id: 0xc2607053 + member_id: 0x599289d3 + member_id: 0x28f28f83 + member_id: 0xec6d552f + } +} +struct_union { + id: 0xe9e88d93 + kind: STRUCT + name: "tcp_sack_block" + definition { + bytesize: 8 + member_id: 0x3d5d011f + member_id: 0xd5a56009 + } +} +struct_union { + id: 0x45ac4f1e + kind: STRUCT + name: "tcp_sock" + definition { + bytesize: 2368 + member_id: 0x07676cab + member_id: 0xc07533a2 + member_id: 0x085eba8a + member_id: 0xfcce6b61 + member_id: 0xda945faa + member_id: 0x43536458 + member_id: 0x7ecbe350 + member_id: 0x722b8728 + member_id: 0x1ec2d3d6 + member_id: 0x93db6466 + member_id: 0x24e972c0 + member_id: 0xef3672e0 + member_id: 0xdb2f5379 + member_id: 0x840adfe0 + member_id: 0x3ed6f46c + member_id: 0x7efdf5c5 + member_id: 0x8248546f + member_id: 0x9c800493 + member_id: 0x9a3cd5ff + member_id: 0xcaaa728e + member_id: 0x41099e1a + member_id: 0x036494f3 + member_id: 0xaf1c2858 + member_id: 0xb4b04624 + member_id: 0x3fe882fb + member_id: 0x1f8008f5 + member_id: 0xb8d73d0d + member_id: 0xb0b5b654 + member_id: 0x8571ffda + member_id: 0x98ad753d + member_id: 0x8a514678 + member_id: 0x2c2c5bfb + member_id: 0x1d3891d6 + member_id: 0x4aed4e02 + member_id: 0x330d862e + member_id: 0xdab01e8a + member_id: 0xd0fa2acf + member_id: 0x6c3076ab + member_id: 0x4b0fd146 + member_id: 0x5514b7d1 + member_id: 0xd6330125 + member_id: 0x5d29f448 + member_id: 0x72c8b468 + member_id: 0xb9f127f6 + member_id: 0xa42f5b5e + member_id: 0xa073f76a + member_id: 0xe07791d5 + member_id: 0xd4dd684d + member_id: 0xf06d788d + member_id: 0xdaf769b4 + member_id: 0xd0cd0f99 + member_id: 0x1d3cf444 + member_id: 0x590d4988 + member_id: 0x5e175424 + member_id: 0xe4473696 + member_id: 0x1273b273 + member_id: 0x7d5a2639 + member_id: 0xb9645bc8 + member_id: 0x81d25425 + member_id: 0x5005e20e + member_id: 0x2c472957 + member_id: 0x5e1e9277 + member_id: 0x0c6e4e2a + member_id: 0x28d4f0ae + member_id: 0x00d04522 + member_id: 0xf098d631 + member_id: 0x861205e4 + member_id: 0x50d5f815 + member_id: 0xbb70420d + member_id: 0xfdbc865b + member_id: 0x0b8a1650 + member_id: 0x1d340096 + member_id: 0xd7cfbd25 + member_id: 0x6e240c8e + member_id: 0x3dfa7679 + member_id: 0xeb2f3b5f + member_id: 0x6e16f71f + member_id: 0xbffa6140 + member_id: 0x611d6152 + member_id: 0xedd761bd + member_id: 0xcf588653 + member_id: 0x3b23e448 + member_id: 0xdef99a11 + member_id: 0x0ed29348 + member_id: 0x9e51f1aa + member_id: 0xe301bb69 + member_id: 0xa9ca3fe9 + member_id: 0x3ce5a47e + member_id: 0xe9e7b435 + member_id: 0x986caa86 + member_id: 0xe06780dd + member_id: 0x14a57188 + member_id: 0x484997ff + member_id: 0xc8ee40be + member_id: 0xc6e15ebb + member_id: 0x18e683dd + member_id: 0x47a61a29 + member_id: 0x073e90bb + member_id: 0xd5cb059f + member_id: 0xfdfb52fb + member_id: 0xa598ac7c + member_id: 0x2d8724a1 + member_id: 0xbd3e4a51 + member_id: 0xb18c6cab + member_id: 0xe98a4697 + member_id: 0x86cd98a0 + member_id: 0x05aa0dfa + member_id: 0x0b88a7b8 + member_id: 0x78ec3163 + member_id: 0xac4c8092 + member_id: 0x3a30a25b + member_id: 0x2ae3d7d3 + member_id: 0x6da3106a + member_id: 0x36a89416 + member_id: 0x17b8fb75 + member_id: 0x60f3e5b5 + member_id: 0x92525caa + member_id: 0x44e15491 + member_id: 0x7392ff81 + member_id: 0xd77f2af8 + member_id: 0x1ab0aff5 + member_id: 0xf6fff0ee + member_id: 0x9e7c1e77 + member_id: 0xb4c1a226 + member_id: 0x0ab38392 + member_id: 0xa6861f94 + member_id: 0xf5c438ad + member_id: 0x203d8bb9 + member_id: 0x3a366be0 + member_id: 0xcebd1125 + member_id: 0x035a9f8f + member_id: 0x38961e9d + member_id: 0x541b592a + member_id: 0x3641013e + member_id: 0x349100e3 + member_id: 0x7a4a99f1 + member_id: 0x72f4ca16 + member_id: 0x2d081e39 + } +} +struct_union { + id: 0xa19fd9aa + kind: STRUCT + name: "tcp_ulp_ops" + definition { + bytesize: 88 + member_id: 0x7c00ef52 + member_id: 0x1ac6e8a5 + member_id: 0xd6aa460e + member_id: 0xae97905e + member_id: 0x1d9b9b9d + member_id: 0xbaa156f0 + member_id: 0xf6c2da43 + member_id: 0x0d994758 + member_id: 0x4a965429 + } +} +struct_union { id: 0xcfff757d kind: STRUCT name: "tcpc_dev" @@ -256687,6 +261670,72 @@ struct_union { } } struct_union { + id: 0x305bf810 + kind: STRUCT + name: "usb_cdc_ncm_dpe16" + definition { + bytesize: 4 + member_id: 0xdd4cd36f + member_id: 0x3643720a + } +} +struct_union { + id: 0x3d26f6d4 + kind: STRUCT + name: "usb_cdc_ncm_dpe32" + definition { + bytesize: 8 + member_id: 0x09ca9dd2 + member_id: 0x348d64a1 + } +} +struct_union { + id: 0xc4e4c198 + kind: STRUCT + name: "usb_cdc_ncm_ndp16" + definition { + bytesize: 8 + member_id: 0x1e7efd51 + member_id: 0x070c8108 + member_id: 0x28625ee1 + member_id: 0xab0f277e + } +} +struct_union { + id: 0xfdba3915 + kind: STRUCT + name: "usb_cdc_ncm_ndp32" + definition { + bytesize: 16 + member_id: 0x1e7efd51 + member_id: 0x070c8108 + member_id: 0xe3bc934c + member_id: 0x6e82996c + member_id: 0x46e37740 + member_id: 0x015a8ae1 + } +} +struct_union { + id: 0xc4793083 + kind: STRUCT + name: "usb_cdc_ncm_ntb_parameters" + definition { + bytesize: 28 + member_id: 0x070c8c33 + member_id: 0x6b1b4f66 + member_id: 0x7000a99b + member_id: 0x8464bb02 + member_id: 0x2c655b0e + member_id: 0x2726a674 + member_id: 0x0550cff2 + member_id: 0xc1f69c16 + member_id: 0x5a711378 + member_id: 0xcf666fe6 + member_id: 0x13c51648 + member_id: 0x364cd8ff + } +} +struct_union { id: 0x50209186 kind: STRUCT name: "usb_cdc_network_terminal_desc" @@ -256766,6 +261815,18 @@ struct_union { } } struct_union { + id: 0xe6289375 + kind: STRUCT + name: "usb_class_driver" + definition { + bytesize: 32 + member_id: 0x0ddfefbb + member_id: 0x1ea56ad0 + member_id: 0xb1aa5772 + member_id: 0xa298fce5 + } +} +struct_union { id: 0xaec12290 kind: STRUCT name: "usb_composite_dev" @@ -257579,7 +262640,7 @@ struct_union { kind: STRUCT name: "usb_phy" definition { - bytesize: 360 + bytesize: 392 member_id: 0xce3bbab3 member_id: 0x0517076e member_id: 0x2d2d08fa @@ -257611,7 +262672,11 @@ struct_union { member_id: 0x56fe5fc2 member_id: 0x975fa344 member_id: 0x04f8f40a - member_id: 0x2d081a58 + member_id: 0xedc9a6ac + member_id: 0x2d081bb9 + member_id: 0x637600f9 + member_id: 0xac894f5e + member_id: 0xe0f63bda } } struct_union { @@ -257974,13 +263039,16 @@ struct_union { kind: STRUCT name: "usb_udc" definition { - bytesize: 952 + bytesize: 1048 member_id: 0xd477fd9a member_id: 0x1875f4a8 member_id: 0xce1ac88b member_id: 0x7c00e340 member_id: 0xa8b1a153 member_id: 0x5367cfd2 + member_id: 0x14e2bc0d + member_id: 0xdf3f679f + member_id: 0x997c2cff } } struct_union { @@ -261099,18 +266167,6 @@ struct_union { } } struct_union { - id: 0x3f42023f - kind: STRUCT - name: "vcpu_reset_state" - definition { - bytesize: 24 - member_id: 0xa5f74e1c - member_id: 0x766556ed - member_id: 0x09a85b04 - member_id: 0x62d0d919 - } -} -struct_union { id: 0x9871ee6b kind: STRUCT name: "vfsmount" @@ -261127,196 +266183,6 @@ struct_union { } } struct_union { - id: 0xe46534dd - kind: STRUCT - name: "vgic_cpu" - definition { - bytesize: 4000 - member_id: 0x3b3d55bb - member_id: 0xdbd2d18f - member_id: 0xc8f35c78 - member_id: 0x18b67de8 - member_id: 0xb5b5379c - member_id: 0x525d4aae - member_id: 0xe932d634 - member_id: 0x5debde6d - member_id: 0x8109b274 - member_id: 0x8ed30508 - member_id: 0xbf52270e - member_id: 0xf95b9cd7 - } -} -struct_union { - id: 0x2c25c966 - kind: STRUCT - name: "vgic_dist" - definition { - bytesize: 304 - member_id: 0xd935af97 - member_id: 0xa3f017bd - member_id: 0xd56295db - member_id: 0xe66fe569 - member_id: 0x7a0e7466 - member_id: 0x76466478 - member_id: 0x7abe829e - member_id: 0x5eb23b58 - member_id: 0xc573cedf - member_id: 0x36fb8f0a - member_id: 0x3a2d3f2e - member_id: 0xb1e7f3ff - member_id: 0xde92dea2 - member_id: 0x6fe87475 - member_id: 0x557bdab2 - member_id: 0x703b904f - member_id: 0xbe693b59 - member_id: 0x9c466cf2 - member_id: 0x4d9128b0 - member_id: 0xd5bf2684 - member_id: 0x2b5908df - member_id: 0xa736298d - } -} -struct_union { - id: 0x60b9a60c - kind: STRUCT - name: "vgic_io_device" - definition { - bytesize: 40 - member_id: 0xf9ecc4b7 - member_id: 0x3551435a - member_id: 0x4e19f41c - member_id: 0x10f4be53 - member_id: 0xddd1c1b9 - member_id: 0xce062759 - } -} -struct_union { - id: 0x421531e8 - kind: STRUCT - name: "vgic_irq" - definition { - bytesize: 112 - member_id: 0x8c92967c - member_id: 0x9ecea343 - member_id: 0xd96ad022 - member_id: 0xa936a512 - member_id: 0x096d65bb - member_id: 0x4af72c65 - member_id: 0x2b9d91fc - member_id: 0x004ca63d - member_id: 0x224f240b - member_id: 0x3a2d3590 - member_id: 0x97aa71b6 - member_id: 0x05ec0a8d - member_id: 0xb62bb539 - member_id: 0xc2defa03 - member_id: 0x371515be - member_id: 0xd707c4f8 - member_id: 0x8f0fcc44 - member_id: 0x10cd0450 - member_id: 0xd3bb5c92 - member_id: 0xd1469e0e - member_id: 0xaf890e76 - member_id: 0x4a85cb53 - } -} -struct_union { - id: 0xdbe5858f - kind: STRUCT - name: "vgic_its" - definition { - bytesize: 232 - member_id: 0x0f936dd3 - member_id: 0x3a2d3a5d - member_id: 0xc33609f7 - member_id: 0xce0bc034 - member_id: 0x58199dc6 - member_id: 0x9232ba55 - member_id: 0x28ddf56e - member_id: 0xd83a0eba - member_id: 0x110caede - member_id: 0x09c4ee83 - member_id: 0xb41bc738 - member_id: 0x857bfedc - member_id: 0x5adf7097 - member_id: 0x5a9c1331 - } -} -struct_union { - id: 0x6ff43c7f - kind: STRUCT - name: "vgic_redist_region" - definition { - bytesize: 40 - member_id: 0xadf00094 - member_id: 0x85c1a1cb - member_id: 0x65ec5e2d - member_id: 0x3e423a64 - member_id: 0x7c00e79b - } -} -struct_union { - id: 0x3ae08515 - kind: STRUCT - name: "vgic_register_region" - definition { - bytesize: 48 - member_id: 0x83dea94b - member_id: 0xb8405d0b - member_id: 0xbab5eab6 - member_id: 0xcb7a7a49 - member_id: 0x32f872a3 - member_id: 0x353d48f5 - member_id: 0x8638eb22 - member_id: 0x353b064f - } -} -struct_union { - id: 0xc5586f9b - kind: STRUCT - name: "vgic_state_iter" - definition { - bytesize: 40 - member_id: 0xc2c8918f - member_id: 0x5eb23fa1 - member_id: 0x2af96acc - member_id: 0x929175ec - member_id: 0x7c4a5fae - member_id: 0x4a590e0a - member_id: 0x43246e2d - member_id: 0xeca52885 - } -} -struct_union { - id: 0x020c6b41 - kind: STRUCT - name: "vgic_v2_cpu_if" - definition { - bytesize: 272 - member_id: 0x4a8c149d - member_id: 0x38bbfe42 - member_id: 0xc9dbb39f - member_id: 0xa73178a4 - member_id: 0x867737e5 - } -} -struct_union { - id: 0xbfc414f5 - kind: STRUCT - name: "vgic_v3_cpu_if" - definition { - bytesize: 312 - member_id: 0x4a8c149d - member_id: 0x38bbfe42 - member_id: 0x28fa73a3 - member_id: 0xaa37d774 - member_id: 0x47207a3e - member_id: 0xa75822b6 - member_id: 0xa9a971b2 - member_id: 0x8677397b - } -} -struct_union { id: 0xcf6d5ce3 kind: STRUCT name: "vhost_dev" @@ -262810,6 +267676,24 @@ struct_union { } } struct_union { + id: 0xa406f9d2 + kind: STRUCT + name: "xa_state" + definition { + bytesize: 56 + member_id: 0x2d4312a7 + member_id: 0x443272df + member_id: 0xfbb0a625 + member_id: 0xb55e6ff0 + member_id: 0xade1378e + member_id: 0xb6a1c909 + member_id: 0xa6e487bd + member_id: 0x4487c243 + member_id: 0x1ec9237c + member_id: 0x13932b74 + } +} +struct_union { id: 0x80c20070 kind: STRUCT name: "xarray" @@ -262821,6 +267705,17 @@ struct_union { } } struct_union { + id: 0xbf3a351e + kind: STRUCT + name: "xattr" + definition { + bytesize: 24 + member_id: 0x0de57ce8 + member_id: 0xa010e540 + member_id: 0x9bef952d + } +} +struct_union { id: 0x1016eff1 kind: STRUCT name: "xattr_handler" @@ -263321,6 +268216,27 @@ struct_union { } } struct_union { + id: 0xe716d120 + kind: STRUCT + name: "xfrm_state_afinfo" + definition { + bytesize: 96 + member_id: 0x9e7cf46f + member_id: 0x5d4a9b23 + member_id: 0x797b9c35 + member_id: 0xc64a2d69 + member_id: 0xec93386d + member_id: 0xf788152f + member_id: 0xd4787e60 + member_id: 0x7263c7bf + member_id: 0x34322597 + member_id: 0xf2fe58e1 + member_id: 0xdf6660f4 + member_id: 0xf2cb3293 + member_id: 0x2a3c445d + } +} +struct_union { id: 0xbc1c435b kind: STRUCT name: "xfrm_state_walk" @@ -263493,7 +268409,7 @@ struct_union { kind: STRUCT name: "xhci_driver_overrides" definition { - bytesize: 64 + bytesize: 120 member_id: 0x162bfab8 member_id: 0x62920d2b member_id: 0x46349d11 @@ -263502,6 +268418,26 @@ struct_union { member_id: 0x8372d25d member_id: 0x1a3855a9 member_id: 0x313715cf + member_id: 0x2bbb15d8 + member_id: 0x91993cba + member_id: 0x2a260680 + member_id: 0x2d08170f + member_id: 0x6376010c + member_id: 0xac894aec + member_id: 0xe0f63eed + } +} +struct_union { + id: 0xb623120e + kind: STRUCT + name: "xhci_ep_ctx" + definition { + bytesize: 32 + member_id: 0x43272c66 + member_id: 0x3efdd095 + member_id: 0x8001f399 + member_id: 0x67023990 + member_id: 0xd4738ef3 } } struct_union { @@ -263623,7 +268559,7 @@ struct_union { member_id: 0x06879837 member_id: 0xf762467b member_id: 0x26b32295 - member_id: 0x2d0811d3 + member_id: 0x31a5da6f member_id: 0x63760917 member_id: 0xac894244 member_id: 0xe0f63158 @@ -263820,6 +268756,19 @@ struct_union { } } struct_union { + id: 0xe2d6574a + kind: STRUCT + name: "xhci_slot_ctx" + definition { + bytesize: 32 + member_id: 0x1d443303 + member_id: 0xb6174f2e + member_id: 0x8905c822 + member_id: 0x6ba2a863 + member_id: 0xd4ed0237 + } +} +struct_union { id: 0x051dcd31 kind: STRUCT name: "xhci_stream_ctx" @@ -263881,6 +268830,29 @@ struct_union { } } struct_union { + id: 0x92256367 + kind: STRUCT + name: "xhci_vendor_ops" + definition { + bytesize: 120 + member_id: 0xcc0a44cd + member_id: 0x19d3d4c2 + member_id: 0x62d4e2e8 + member_id: 0x50156eb5 + member_id: 0x77a0ad98 + member_id: 0xb2953bfa + member_id: 0x3965c2a5 + member_id: 0x88a8ecb4 + member_id: 0xc6a4da74 + member_id: 0x3f6534a2 + member_id: 0xd988303d + member_id: 0x2d08170f + member_id: 0x6376010c + member_id: 0xac894aec + member_id: 0xe0f63eed + } +} +struct_union { id: 0xbafe14c8 kind: STRUCT name: "xhci_virt_device" @@ -264118,7 +269090,8 @@ struct_union { member_id: 0xb9089225 member_id: 0x868caa9e member_id: 0x8a67a9e5 - member_id: 0xdb33fcdf + member_id: 0x2d1fe43b + member_id: 0x9ad71760 } } struct_union { @@ -264140,6 +269113,23 @@ struct_union { } } enumeration { + id: 0x42178190 + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "STATUSTYPE_INFO" + } + enumerator { + name: "STATUSTYPE_TABLE" + value: 1 + } + enumerator { + name: "STATUSTYPE_IMA" + value: 2 + } + } +} +enumeration { id: 0x4f34306c definition { underlying_type_id: 0x4585663f @@ -264506,23 +269496,6 @@ enumeration { } } enumeration { - id: 0x7e388552 - definition { - underlying_type_id: 0x4585663f - enumerator { - name: "FP_STATE_FREE" - } - enumerator { - name: "FP_STATE_HOST_OWNED" - value: 1 - } - enumerator { - name: "FP_STATE_GUEST_OWNED" - value: 2 - } - } -} -enumeration { id: 0x09f65231 name: "OID" definition { @@ -264965,6 +269938,70 @@ enumeration { } } enumeration { + id: 0x503181cf + name: "android_debug_per_cpu_symbol" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "ADS_IRQ_STACK_PTR" + } + enumerator { + name: "ADS_DEBUG_PER_CPU_END" + value: 1 + } + } +} +enumeration { + id: 0x705ce9b7 + name: "android_debug_symbol" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "ADS_SDATA" + } + enumerator { + name: "ADS_BSS_END" + value: 1 + } + enumerator { + name: "ADS_PER_CPU_START" + value: 2 + } + enumerator { + name: "ADS_PER_CPU_END" + value: 3 + } + enumerator { + name: "ADS_TEXT" + value: 4 + } + enumerator { + name: "ADS_SEND" + value: 5 + } + enumerator { + name: "ADS_LINUX_BANNER" + value: 6 + } + enumerator { + name: "ADS_TOTAL_CMA" + value: 7 + } + enumerator { + name: "ADS_SLAB_CACHES" + value: 8 + } + enumerator { + name: "ADS_SLAB_MUTEX" + value: 9 + } + enumerator { + name: "ADS_END" + value: 10 + } + } +} +enumeration { id: 0x635e163e name: "arch_timer_erratum_match_type" definition { @@ -267633,6 +272670,48 @@ enumeration { } } enumeration { + id: 0xb01beef1 + name: "compact_result" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "COMPACT_NOT_SUITABLE_ZONE" + } + enumerator { + name: "COMPACT_SKIPPED" + value: 1 + } + enumerator { + name: "COMPACT_DEFERRED" + value: 2 + } + enumerator { + name: "COMPACT_NO_SUITABLE_PAGE" + value: 3 + } + enumerator { + name: "COMPACT_CONTINUE" + value: 4 + } + enumerator { + name: "COMPACT_COMPLETE" + value: 5 + } + enumerator { + name: "COMPACT_PARTIAL_SKIPPED" + value: 6 + } + enumerator { + name: "COMPACT_CONTENDED" + value: 7 + } + enumerator { + name: "COMPACT_SUCCESS" + value: 8 + } + } +} +enumeration { id: 0x7bfd6d29 name: "conn_reasons" definition { @@ -268770,6 +273849,104 @@ enumeration { } } enumeration { + id: 0xe09c0936 + name: "devlink_dpipe_field_mapping_type" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE" + } + enumerator { + name: "DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX" + value: 1 + } + } +} +enumeration { + id: 0xc700b957 + name: "devlink_eswitch_encap_mode" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_ESWITCH_ENCAP_MODE_NONE" + } + enumerator { + name: "DEVLINK_ESWITCH_ENCAP_MODE_BASIC" + value: 1 + } + } +} +enumeration { + id: 0x1afd1fe8 + name: "devlink_health_reporter_state" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_HEALTH_REPORTER_STATE_HEALTHY" + } + enumerator { + name: "DEVLINK_HEALTH_REPORTER_STATE_ERROR" + value: 1 + } + } +} +enumeration { + id: 0x49f89a6d + name: "devlink_info_version_type" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_INFO_VERSION_TYPE_NONE" + } + enumerator { + name: "DEVLINK_INFO_VERSION_TYPE_COMPONENT" + value: 1 + } + } +} +enumeration { + id: 0x44d985d5 + name: "devlink_linecard_state" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_LINECARD_STATE_UNSPEC" + } + enumerator { + name: "DEVLINK_LINECARD_STATE_UNPROVISIONED" + value: 1 + } + enumerator { + name: "DEVLINK_LINECARD_STATE_UNPROVISIONING" + value: 2 + } + enumerator { + name: "DEVLINK_LINECARD_STATE_PROVISIONING" + value: 3 + } + enumerator { + name: "DEVLINK_LINECARD_STATE_PROVISIONING_FAILED" + value: 4 + } + enumerator { + name: "DEVLINK_LINECARD_STATE_PROVISIONED" + value: 5 + } + enumerator { + name: "DEVLINK_LINECARD_STATE_ACTIVE" + value: 6 + } + enumerator { + name: "__DEVLINK_LINECARD_STATE_MAX" + value: 7 + } + enumerator { + name: "DEVLINK_LINECARD_STATE_MAX" + value: 6 + } + } +} +enumeration { id: 0x03e0374b name: "devlink_port_flavour" definition { @@ -268808,6 +273985,34 @@ enumeration { } } enumeration { + id: 0x769abc6d + name: "devlink_port_fn_opstate" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_PORT_FN_OPSTATE_DETACHED" + } + enumerator { + name: "DEVLINK_PORT_FN_OPSTATE_ATTACHED" + value: 1 + } + } +} +enumeration { + id: 0x666a7a1b + name: "devlink_port_fn_state" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_PORT_FN_STATE_INACTIVE" + } + enumerator { + name: "DEVLINK_PORT_FN_STATE_ACTIVE" + value: 1 + } + } +} +enumeration { id: 0x100964d4 name: "devlink_port_type" definition { @@ -268844,6 +274049,136 @@ enumeration { } } enumeration { + id: 0xb38a8bec + name: "devlink_reload_action" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_RELOAD_ACTION_UNSPEC" + } + enumerator { + name: "DEVLINK_RELOAD_ACTION_DRIVER_REINIT" + value: 1 + } + enumerator { + name: "DEVLINK_RELOAD_ACTION_FW_ACTIVATE" + value: 2 + } + enumerator { + name: "__DEVLINK_RELOAD_ACTION_MAX" + value: 3 + } + enumerator { + name: "DEVLINK_RELOAD_ACTION_MAX" + value: 2 + } + } +} +enumeration { + id: 0x35c4d162 + name: "devlink_reload_limit" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_RELOAD_LIMIT_UNSPEC" + } + enumerator { + name: "DEVLINK_RELOAD_LIMIT_NO_RESET" + value: 1 + } + enumerator { + name: "__DEVLINK_RELOAD_LIMIT_MAX" + value: 2 + } + enumerator { + name: "DEVLINK_RELOAD_LIMIT_MAX" + value: 1 + } + } +} +enumeration { + id: 0xa7051d2f + name: "devlink_sb_pool_type" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_SB_POOL_TYPE_INGRESS" + } + enumerator { + name: "DEVLINK_SB_POOL_TYPE_EGRESS" + value: 1 + } + } +} +enumeration { + id: 0xcbcc8512 + name: "devlink_sb_threshold_type" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_SB_THRESHOLD_TYPE_STATIC" + } + enumerator { + name: "DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC" + value: 1 + } + } +} +enumeration { + id: 0xba990d57 + name: "devlink_selftest_status" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_SELFTEST_STATUS_SKIP" + } + enumerator { + name: "DEVLINK_SELFTEST_STATUS_PASS" + value: 1 + } + enumerator { + name: "DEVLINK_SELFTEST_STATUS_FAIL" + value: 2 + } + } +} +enumeration { + id: 0x322b7a90 + name: "devlink_trap_action" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_TRAP_ACTION_DROP" + } + enumerator { + name: "DEVLINK_TRAP_ACTION_TRAP" + value: 1 + } + enumerator { + name: "DEVLINK_TRAP_ACTION_MIRROR" + value: 2 + } + } +} +enumeration { + id: 0xed655c73 + name: "devlink_trap_type" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DEVLINK_TRAP_TYPE_DROP" + } + enumerator { + name: "DEVLINK_TRAP_TYPE_EXCEPTION" + value: 1 + } + enumerator { + name: "DEVLINK_TRAP_TYPE_CONTROL" + value: 2 + } + } +} +enumeration { id: 0x69efc53e name: "df_reason" definition { @@ -268939,6 +274274,28 @@ enumeration { } } enumeration { + id: 0xfd56cb64 + name: "dm_queue_mode" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "DM_TYPE_NONE" + } + enumerator { + name: "DM_TYPE_BIO_BASED" + value: 1 + } + enumerator { + name: "DM_TYPE_REQUEST_BASED" + value: 2 + } + enumerator { + name: "DM_TYPE_DAX_BIO_BASED" + value: 3 + } + } +} +enumeration { id: 0x3e09ba9c name: "dma_ctrl_flags" definition { @@ -269927,6 +275284,24 @@ enumeration { } } enumeration { + id: 0x63bb62a2 + name: "error_detector" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "ERROR_DETECTOR_KFENCE" + } + enumerator { + name: "ERROR_DETECTOR_KASAN" + value: 1 + } + enumerator { + name: "ERROR_DETECTOR_WARN" + value: 2 + } + } +} +enumeration { id: 0xcd568da6 name: "ethtool_link_ext_state" definition { @@ -271687,6 +277062,37 @@ enumeration { } } enumeration { + id: 0x87463428 + name: "hid_class_request" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "HID_REQ_GET_REPORT" + value: 1 + } + enumerator { + name: "HID_REQ_GET_IDLE" + value: 2 + } + enumerator { + name: "HID_REQ_GET_PROTOCOL" + value: 3 + } + enumerator { + name: "HID_REQ_SET_REPORT" + value: 9 + } + enumerator { + name: "HID_REQ_SET_IDLE" + value: 10 + } + enumerator { + name: "HID_REQ_SET_PROTOCOL" + value: 11 + } + } +} +enumeration { id: 0xfa5f37bb name: "hid_report_type" definition { @@ -272474,28 +277880,6 @@ enumeration { } } enumeration { - id: 0xf101ec6d - name: "iodev_type" - definition { - underlying_type_id: 0x4585663f - enumerator { - name: "IODEV_CPUIF" - } - enumerator { - name: "IODEV_DIST" - value: 1 - } - enumerator { - name: "IODEV_REDIST" - value: 2 - } - enumerator { - name: "IODEV_ITS" - value: 3 - } - } -} -enumeration { id: 0xe5b69de1 name: "iommu_cap" definition { @@ -272988,35 +278372,6 @@ enumeration { } } enumeration { - id: 0xb3f81878 - name: "kvm_pgtable_stage2_flags" - definition { - underlying_type_id: 0x4585663f - enumerator { - name: "KVM_PGTABLE_S2_NOFWB" - value: 1 - } - enumerator { - name: "KVM_PGTABLE_S2_IDMAP" - value: 2 - } - } -} -enumeration { - id: 0xfd01d20e - name: "kvm_stat_kind" - definition { - underlying_type_id: 0x4585663f - enumerator { - name: "KVM_STAT_VM" - } - enumerator { - name: "KVM_STAT_VCPU" - value: 1 - } - } -} -enumeration { id: 0x791ac8b7 name: "l2tp_encap_type" definition { @@ -273133,6 +278488,36 @@ enumeration { } } enumeration { + id: 0x0d164218 + name: "lru_list" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "LRU_INACTIVE_ANON" + } + enumerator { + name: "LRU_ACTIVE_ANON" + value: 1 + } + enumerator { + name: "LRU_INACTIVE_FILE" + value: 2 + } + enumerator { + name: "LRU_ACTIVE_FILE" + value: 3 + } + enumerator { + name: "LRU_UNEVICTABLE" + value: 4 + } + enumerator { + name: "NR_LRU_LISTS" + value: 5 + } + } +} +enumeration { id: 0x0b05beb9 name: "macsec_offload" definition { @@ -273388,44 +278773,6 @@ enumeration { } } enumeration { - id: 0x98849204 - name: "mmu_notifier_event" - definition { - underlying_type_id: 0x4585663f - enumerator { - name: "MMU_NOTIFY_UNMAP" - } - enumerator { - name: "MMU_NOTIFY_CLEAR" - value: 1 - } - enumerator { - name: "MMU_NOTIFY_PROTECTION_VMA" - value: 2 - } - enumerator { - name: "MMU_NOTIFY_PROTECTION_PAGE" - value: 3 - } - enumerator { - name: "MMU_NOTIFY_SOFT_DIRTY" - value: 4 - } - enumerator { - name: "MMU_NOTIFY_RELEASE" - value: 5 - } - enumerator { - name: "MMU_NOTIFY_MIGRATE" - value: 6 - } - enumerator { - name: "MMU_NOTIFY_EXCLUSIVE" - value: 7 - } - } -} -enumeration { id: 0x73b81062 name: "mode_set_atomic" definition { @@ -274516,6 +279863,28 @@ enumeration { } } enumeration { + id: 0x6df42b18 + name: "oom_constraint" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "CONSTRAINT_NONE" + } + enumerator { + name: "CONSTRAINT_CPUSET" + value: 1 + } + enumerator { + name: "CONSTRAINT_MEMORY_POLICY" + value: 2 + } + enumerator { + name: "CONSTRAINT_MEMCG" + value: 3 + } + } +} +enumeration { id: 0xf7c61c85 name: "opp_table_access" definition { @@ -276481,6 +281850,28 @@ enumeration { } } enumeration { + id: 0x00381413 + name: "scan_balance" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "SCAN_EQUAL" + } + enumerator { + name: "SCAN_FRACT" + value: 1 + } + enumerator { + name: "SCAN_ANON" + value: 2 + } + enumerator { + name: "SCAN_FILE" + value: 3 + } + } +} +enumeration { id: 0xbcb85241 name: "scsi_cmnd_submitter" definition { @@ -277448,6 +282839,20 @@ enumeration { } } enumeration { + id: 0x9741c5fc + name: "snd_vendor_pcm_open_close" + definition { + underlying_type_id: 0x4585663f + enumerator { + name: "SOUND_PCM_CLOSE" + } + enumerator { + name: "SOUND_PCM_OPEN" + value: 1 + } + } +} +enumeration { id: 0xbb98ef85 name: "sock_shutdown_cmd" definition { @@ -280182,20 +285587,6 @@ enumeration { } } enumeration { - id: 0xe357f5b0 - name: "vgic_irq_config" - definition { - underlying_type_id: 0x4585663f - enumerator { - name: "VGIC_CONFIG_EDGE" - } - enumerator { - name: "VGIC_CONFIG_LEVEL" - value: 1 - } - } -} -enumeration { id: 0xacd8d043 name: "wb_reason" definition { @@ -280450,6 +285841,12 @@ enumeration { } } function { + id: 0x004cf563 + return_type_id: 0x48b5725f + parameter_id: 0x4585663f + parameter_id: 0x6d7f5ff6 +} +function { id: 0x00a508d8 return_type_id: 0x100a15ee parameter_id: 0x3e10b518 @@ -280493,6 +285890,15 @@ function { return_type_id: 0x914dbfdc } function { + id: 0x012cb0da + return_type_id: 0x48b5725f + parameter_id: 0x4585663f + parameter_id: 0x34818c51 + parameter_id: 0x18bd6530 + parameter_id: 0x6d7f5ff6 + parameter_id: 0x914dbfdc +} +function { id: 0x013800d7 return_type_id: 0x48b5725f parameter_id: 0x4585663f @@ -280629,6 +286035,12 @@ function { parameter_id: 0x18bd6530 } function { + id: 0x034a2603 + return_type_id: 0x30408c71 + parameter_id: 0x1fba7d3d + parameter_id: 0x0c96fb14 +} +function { id: 0x034f6ce3 return_type_id: 0x34544a3f parameter_id: 0x3747dc62 @@ -280647,6 +286059,13 @@ function { parameter_id: 0x3e10b518 } function { + id: 0x03ec98c8 + return_type_id: 0xe276adef + parameter_id: 0x3399c453 + parameter_id: 0xe276adef + parameter_id: 0x6720d32f +} +function { id: 0x043864e3 return_type_id: 0x181ee594 parameter_id: 0xe90b32b7 @@ -280663,6 +286082,13 @@ function { parameter_id: 0x24d65b62 } function { + id: 0x04a35d6c + return_type_id: 0x914dbfdc + parameter_id: 0x126add1c + parameter_id: 0x4585663f + parameter_id: 0x13580d6c +} +function { id: 0x04ce0b6f return_type_id: 0x914dbfdc parameter_id: 0x11e6864c @@ -280771,6 +286197,14 @@ function { parameter_id: 0x6720d32f } function { + id: 0x097c3ebf + return_type_id: 0x48b5725f + parameter_id: 0x6720d32f + parameter_id: 0x0ccdc0f9 + parameter_id: 0x7b64642a + parameter_id: 0x6d7f5ff6 +} +function { id: 0x098158fd return_type_id: 0x48b5725f parameter_id: 0x6720d32f @@ -280842,6 +286276,27 @@ function { parameter_id: 0x3286774f } function { + id: 0x0a7402f1 + return_type_id: 0x48b5725f + parameter_id: 0x6720d32f + parameter_id: 0xca283f54 + parameter_id: 0x33756485 + parameter_id: 0x06835e9c +} +function { + id: 0x0a7418fc + return_type_id: 0x48b5725f + parameter_id: 0x6720d32f + parameter_id: 0xca283f54 + parameter_id: 0x33756485 +} +function { + id: 0x0a78c5a5 + return_type_id: 0x48b5725f + parameter_id: 0x6720d32f + parameter_id: 0xca283f54 +} +function { id: 0x0a9e8df2 return_type_id: 0x079ff791 parameter_id: 0x3e10b518 @@ -280878,6 +286333,11 @@ function { parameter_id: 0xf435685e } function { + id: 0x0bc7866e + return_type_id: 0x48b5725f + parameter_id: 0x6d7f5ff6 +} +function { id: 0x0bdc9e9d return_type_id: 0x48b5725f parameter_id: 0x6d7f5ff6 @@ -280925,6 +286385,13 @@ function { parameter_id: 0x343ebce3 } function { + id: 0x0c5cd477 + return_type_id: 0x0bb0c019 + parameter_id: 0x0258f96e + parameter_id: 0x3e10b518 + parameter_id: 0xf435685e +} +function { id: 0x0cd36f30 return_type_id: 0x33756485 parameter_id: 0xf1a6dfed @@ -281000,6 +286467,12 @@ function { parameter_id: 0x6d7f5ff6 } function { + id: 0x0ec08f0d + return_type_id: 0x914dbfdc + parameter_id: 0x3d3b5dd7 + parameter_id: 0x295c7202 +} +function { id: 0x0ee8ead6 return_type_id: 0x914dbfdc parameter_id: 0x397d00ab @@ -281017,6 +286490,13 @@ function { parameter_id: 0x39cc14ac } function { + id: 0x0f51af8b + return_type_id: 0xe276adef + parameter_id: 0x0ca27481 + parameter_id: 0x3b461cc8 + parameter_id: 0x3b461cc8 +} +function { id: 0x0fe1d65c return_type_id: 0x17dabdcd parameter_id: 0x33baebd5 @@ -281149,6 +286629,18 @@ function { parameter_id: 0x0206e690 } function { + id: 0x101c2d25 + return_type_id: 0x48b5725f + parameter_id: 0x0258f96e + parameter_id: 0x0490bb4a +} +function { + id: 0x101d83a0 + return_type_id: 0x48b5725f + parameter_id: 0x01c5a749 + parameter_id: 0x3d2ef874 +} +function { id: 0x10219d88 return_type_id: 0x48b5725f parameter_id: 0x0258f96e @@ -281309,6 +286801,13 @@ function { parameter_id: 0x02862e14 } function { + id: 0x103ff2f5 + return_type_id: 0x48b5725f + parameter_id: 0x06835e9c + parameter_id: 0x4585663f + parameter_id: 0x4585663f +} +function { id: 0x1043ff6b return_type_id: 0x48b5725f parameter_id: 0x00b7947f @@ -281352,6 +286851,11 @@ function { parameter_id: 0x115a10f4 } function { + id: 0x104da524 + return_type_id: 0x48b5725f + parameter_id: 0x0357d2dd +} +function { id: 0x104de9a9 return_type_id: 0x48b5725f parameter_id: 0x0524edd8 @@ -281425,6 +286929,12 @@ function { parameter_id: 0x384f7d7c } function { + id: 0x105539bd + return_type_id: 0x48b5725f + parameter_id: 0x0483e6f8 + parameter_id: 0x7b64642a +} +function { id: 0x10563618 return_type_id: 0x48b5725f parameter_id: 0x00c83ba6 @@ -281690,6 +287200,11 @@ function { parameter_id: 0x6d7f5ff6 } function { + id: 0x10aeeb41 + return_type_id: 0x48b5725f + parameter_id: 0x00daeb4b +} +function { id: 0x10aef91d return_type_id: 0x48b5725f parameter_id: 0x00daa23b @@ -281738,6 +287253,13 @@ function { parameter_id: 0x26a490c7 } function { + id: 0x10c07815 + return_type_id: 0x48b5725f + parameter_id: 0x0c2e195c + parameter_id: 0xd0b3a203 + parameter_id: 0x4585663f +} +function { id: 0x10c35fd7 return_type_id: 0x48b5725f parameter_id: 0x0258f96e @@ -281899,6 +287421,13 @@ function { parameter_id: 0x4585663f } function { + id: 0x10e535a4 + return_type_id: 0x48b5725f + parameter_id: 0x0c2e195c + parameter_id: 0xd0b3a203 + parameter_id: 0xd0b3a203 +} +function { id: 0x10e93841 return_type_id: 0x48b5725f parameter_id: 0x01c5a749 @@ -282120,6 +287649,12 @@ function { parameter_id: 0x18bd6530 } function { + id: 0x11228b4e + return_type_id: 0x48b5725f + parameter_id: 0x06835e9c + parameter_id: 0x06835e9c +} +function { id: 0x11248ef2 return_type_id: 0xd5cc9c9a parameter_id: 0x156a41de @@ -282207,12 +287742,31 @@ function { parameter_id: 0x074f1a14 } function { + id: 0x114c448e + return_type_id: 0x48b5725f + parameter_id: 0x076327a3 + parameter_id: 0x00c72527 + parameter_id: 0x3f0185ef +} +function { + id: 0x11508453 + return_type_id: 0x9547a3da + parameter_id: 0x2f24a589 +} +function { id: 0x1154b37f return_type_id: 0x0bfc9031 parameter_id: 0x0258f96e parameter_id: 0x3e10b518 } function { + id: 0x11584934 + return_type_id: 0x48b5725f + parameter_id: 0x0a63398f + parameter_id: 0xd9f550d1 + parameter_id: 0xfc0e1dbd +} +function { id: 0x115a73a0 return_type_id: 0x48b5725f parameter_id: 0x06835e9c @@ -282249,6 +287803,16 @@ function { parameter_id: 0x07f2af49 } function { + id: 0x11673bbb + return_type_id: 0x48b5725f + parameter_id: 0x054f691a + parameter_id: 0x295c7202 + parameter_id: 0x295c7202 + parameter_id: 0xe62ebf07 + parameter_id: 0x3b461cc8 + parameter_id: 0x346c7967 +} +function { id: 0x11691052 return_type_id: 0x48b5725f parameter_id: 0x0665e6b6 @@ -282528,9 +288092,10 @@ function { parameter_id: 0x049d4e97 } function { - id: 0x11c00471 + id: 0x11bf8d42 return_type_id: 0x48b5725f - parameter_id: 0x0561578b + parameter_id: 0x00c72527 + parameter_id: 0x4585663f } function { id: 0x11c013b1 @@ -282743,6 +288308,13 @@ function { parameter_id: 0x3e10b518 } function { + id: 0x11f98eff + return_type_id: 0x48b5725f + parameter_id: 0x06835e9c + parameter_id: 0x33756485 + parameter_id: 0x33756485 +} +function { id: 0x11fe33ba return_type_id: 0x48b5725f parameter_id: 0x059988a7 @@ -282785,6 +288357,23 @@ function { parameter_id: 0x0379c823 } function { + id: 0x12101463 + return_type_id: 0x1b8590a8 + parameter_id: 0x26ee682a + parameter_id: 0x33756485 + parameter_id: 0x2c50e503 + parameter_id: 0x18bd6530 +} +function { + id: 0x1210c1fa + return_type_id: 0x1b8590a8 + parameter_id: 0x26ee682a + parameter_id: 0x33756485 + parameter_id: 0x2c50e503 + parameter_id: 0x2c50e503 + parameter_id: 0x18bd6530 +} +function { id: 0x1210f89b return_type_id: 0x48b5725f parameter_id: 0x0a22a423 @@ -282814,6 +288403,13 @@ function { parameter_id: 0x0a134144 } function { + id: 0x12201786 + return_type_id: 0x48b5725f + parameter_id: 0x06835e9c + parameter_id: 0xc93e017b + parameter_id: 0xf1a6dfed +} +function { id: 0x12217922 return_type_id: 0x48b5725f parameter_id: 0x0ae4a2c7 @@ -283011,6 +288607,12 @@ function { parameter_id: 0x0bb0c019 } function { + id: 0x1276a8bd + return_type_id: 0x48b5725f + parameter_id: 0x0dc9e98b + parameter_id: 0x6720d32f +} +function { id: 0x1277c151 return_type_id: 0x48b5725f parameter_id: 0x0beab59b @@ -283022,6 +288624,15 @@ function { parameter_id: 0x0bbe1c3e } function { + id: 0x1277e3bd + return_type_id: 0x48b5725f + parameter_id: 0x0a70ce1b + parameter_id: 0x18bd6530 + parameter_id: 0x4585663f + parameter_id: 0x051414e1 + parameter_id: 0x04d7fcdd +} +function { id: 0x127987a5 return_type_id: 0x48b5725f parameter_id: 0x0b8758d9 @@ -283236,6 +288847,11 @@ function { parameter_id: 0x09427c40 } function { + id: 0x12c92116 + return_type_id: 0x48b5725f + parameter_id: 0x0945c216 +} +function { id: 0x12ca5ec4 return_type_id: 0x48b5725f parameter_id: 0x09483d5e @@ -283283,14 +288899,6 @@ function { parameter_id: 0x4585663f } function { - id: 0x12d3ed44 - return_type_id: 0x48b5725f - parameter_id: 0x08dcfb76 - parameter_id: 0x1b4ba19a - parameter_id: 0x4585663f - parameter_id: 0x33756485 -} -function { id: 0x12d43657 return_type_id: 0x48b5725f parameter_id: 0x09319f13 @@ -283381,6 +288989,15 @@ function { parameter_id: 0x0858434c } function { + id: 0x12ed274e + return_type_id: 0x48b5725f + parameter_id: 0x0ae4a2c7 + parameter_id: 0x33756485 + parameter_id: 0x064d6086 + parameter_id: 0x064d6086 + parameter_id: 0x064d6086 +} +function { id: 0x12efab79 return_type_id: 0x48b5725f parameter_id: 0x054f691a @@ -283446,6 +289063,21 @@ function { parameter_id: 0x0e2680c2 } function { + id: 0x13129118 + return_type_id: 0x48b5725f + parameter_id: 0x0fabaf3b + parameter_id: 0x1b8590a8 + parameter_id: 0x39d1288c + parameter_id: 0x1253769c +} +function { + id: 0x13184981 + return_type_id: 0x48b5725f + parameter_id: 0x0fabaf3b + parameter_id: 0x1b8590a8 + parameter_id: 0x1396794c +} +function { id: 0x1327a0fb return_type_id: 0x48b5725f parameter_id: 0x0effc5a1 @@ -283555,6 +289187,22 @@ function { parameter_id: 0x391f15ea } function { + id: 0x1353a05d + return_type_id: 0x48b5725f + parameter_id: 0x0cf3d8fe + parameter_id: 0x3e10b518 + parameter_id: 0x3e10b518 + parameter_id: 0x33756485 + parameter_id: 0x33756485 +} +function { + id: 0x1353c771 + return_type_id: 0x48b5725f + parameter_id: 0x0cf3d8fe + parameter_id: 0x3c53e119 + parameter_id: 0x18bd6530 +} +function { id: 0x13544dcf return_type_id: 0x48b5725f parameter_id: 0x09427c40 @@ -283687,6 +289335,12 @@ function { parameter_id: 0x6720d32f } function { + id: 0x137915b0 + return_type_id: 0x48b5725f + parameter_id: 0x0cf3d8fe + parameter_id: 0x376c8705 +} +function { id: 0x13797fb7 return_type_id: 0x48b5725f parameter_id: 0x078316ff @@ -283694,6 +289348,13 @@ function { parameter_id: 0x18bd6530 } function { + id: 0x137a1cdc + return_type_id: 0x48b5725f + parameter_id: 0x0de4c6b1 + parameter_id: 0x2eab5b8a + parameter_id: 0x87463428 +} +function { id: 0x137d1ffc return_type_id: 0x48b5725f parameter_id: 0x09451098 @@ -283707,6 +289368,12 @@ function { parameter_id: 0x6d7f5ff6 } function { + id: 0x137f5862 + return_type_id: 0x48b5725f + parameter_id: 0x0ca27481 + parameter_id: 0x33e53462 +} +function { id: 0x1382dd85 return_type_id: 0x48b5725f parameter_id: 0x08326638 @@ -283766,6 +289433,11 @@ function { parameter_id: 0x6720d32f } function { + id: 0x1393d7c4 + return_type_id: 0x48b5725f + parameter_id: 0x0c2e195c +} +function { id: 0x139c8318 return_type_id: 0x48b5725f parameter_id: 0x0e5eb556 @@ -283792,6 +289464,11 @@ function { parameter_id: 0xf435685e } function { + id: 0x13a4a7ac + return_type_id: 0x48b5725f + parameter_id: 0x0cf3d8fe +} +function { id: 0x13a62397 return_type_id: 0x48b5725f parameter_id: 0x0effc5a1 @@ -284010,6 +289687,12 @@ function { parameter_id: 0x0d8bad22 } function { + id: 0x13ff1655 + return_type_id: 0x48b5725f + parameter_id: 0x0dc9e98b + parameter_id: 0x054f691a +} +function { id: 0x1401698f return_type_id: 0x48b5725f parameter_id: 0x1285100d @@ -284123,6 +289806,13 @@ function { parameter_id: 0xfc0e1dbd } function { + id: 0x142e1753 + return_type_id: 0x48b5725f + parameter_id: 0x12e24ee1 + parameter_id: 0x019dcb45 + parameter_id: 0x228954ca +} +function { id: 0x142e3633 return_type_id: 0x48b5725f parameter_id: 0x12191e2a @@ -284134,6 +289824,12 @@ function { parameter_id: 0x1285100d } function { + id: 0x143955b1 + return_type_id: 0x48b5725f + parameter_id: 0x12e24ee1 + parameter_id: 0x0665e6b6 +} +function { id: 0x1439657e return_type_id: 0x48b5725f parameter_id: 0x1d44326e @@ -284271,6 +289967,19 @@ function { parameter_id: 0x1582ab06 } function { + id: 0x1462512b + return_type_id: 0x48b5725f + parameter_id: 0x1344d43c + parameter_id: 0x0cbf60eb + parameter_id: 0x6720d32f +} +function { + id: 0x1464781e + return_type_id: 0x48b5725f + parameter_id: 0x1582ab06 + parameter_id: 0x6720d32f +} +function { id: 0x14667c52 return_type_id: 0x48b5725f parameter_id: 0x13f8b706 @@ -284337,6 +290046,12 @@ function { parameter_id: 0xd41e888f } function { + id: 0x14827bad + return_type_id: 0xee72cbfc + parameter_id: 0x26ee682a + parameter_id: 0xee72cbfc +} +function { id: 0x14830594 return_type_id: 0x48b5725f parameter_id: 0x11e6864c @@ -284480,6 +290195,13 @@ function { parameter_id: 0x13580d6c } function { + id: 0x14b8ca3b + return_type_id: 0x48b5725f + parameter_id: 0x1285100d + parameter_id: 0x242fbc95 + parameter_id: 0x4585663f +} +function { id: 0x14b97b66 return_type_id: 0x48b5725f parameter_id: 0x1084abd6 @@ -284503,6 +290225,12 @@ function { parameter_id: 0x116785ed } function { + id: 0x14c2c0fe + return_type_id: 0x48b5725f + parameter_id: 0x1285100d + parameter_id: 0x3ef55b88 +} +function { id: 0x14c5cbad return_type_id: 0x48b5725f parameter_id: 0x12eaeaa5 @@ -284519,6 +290247,11 @@ function { parameter_id: 0x117e2995 } function { + id: 0x14c7f0ee + return_type_id: 0x48b5725f + parameter_id: 0x117e85f5 +} +function { id: 0x14c81bbb return_type_id: 0x48b5725f parameter_id: 0x10617cac @@ -284611,12 +290344,26 @@ function { parameter_id: 0x11c449ec } function { + id: 0x14ea4bc0 + return_type_id: 0x48b5725f + parameter_id: 0x1285100d + parameter_id: 0x34d79405 +} +function { id: 0x14ed7da4 return_type_id: 0x48b5725f parameter_id: 0x1d44326e parameter_id: 0xc9082b19 } function { + id: 0x14f0456f + return_type_id: 0x48b5725f + parameter_id: 0x1285100d + parameter_id: 0x34d79405 + parameter_id: 0x6720d32f + parameter_id: 0xf1a6dfed +} +function { id: 0x14f27dac return_type_id: 0x48b5725f parameter_id: 0x17dabdcd @@ -284712,6 +290459,13 @@ function { parameter_id: 0x92233392 } function { + id: 0x1527b6ea + return_type_id: 0x48b5725f + parameter_id: 0x12e24ee1 + parameter_id: 0x4585663f + parameter_id: 0x4585663f +} +function { id: 0x152d3031 return_type_id: 0x48b5725f parameter_id: 0x10a78bb8 @@ -284738,6 +290492,13 @@ function { parameter_id: 0x4585663f } function { + id: 0x1539f399 + return_type_id: 0x48b5725f + parameter_id: 0x1582ab06 + parameter_id: 0x33756485 + parameter_id: 0x33756485 +} +function { id: 0x153d1e98 return_type_id: 0x48b5725f parameter_id: 0x1042c9d1 @@ -284841,6 +290602,12 @@ function { parameter_id: 0x6720d32f } function { + id: 0x155cca9b + return_type_id: 0x48b5725f + parameter_id: 0x15a30023 + parameter_id: 0x2b16c036 +} +function { id: 0x156275ac return_type_id: 0x48b5725f parameter_id: 0x118d97cb @@ -284858,6 +290625,12 @@ function { parameter_id: 0x13580d6c } function { + id: 0x1566644a + return_type_id: 0x48b5725f + parameter_id: 0x1582ab06 + parameter_id: 0x27a7c613 +} +function { id: 0x1566db85 return_type_id: 0x48b5725f parameter_id: 0x17fa285b @@ -285041,12 +290814,25 @@ function { parameter_id: 0x4585663f } function { + id: 0x15976e28 + return_type_id: 0x48b5725f + parameter_id: 0x15a30023 + parameter_id: 0x1b8590a8 + parameter_id: 0x27a7c613 +} +function { id: 0x159d827c return_type_id: 0x48b5725f parameter_id: 0x12c0ba43 parameter_id: 0x6d7f5ff6 } function { + id: 0x159ef67f + return_type_id: 0x48b5725f + parameter_id: 0x1042c9d1 + parameter_id: 0x4585663f +} +function { id: 0x159f9b02 return_type_id: 0x48b5725f parameter_id: 0x18bd6530 @@ -285067,12 +290853,6 @@ function { parameter_id: 0x052fac00 } function { - id: 0x15a35eaa - return_type_id: 0x48b5725f - parameter_id: 0x1dce0fdd - parameter_id: 0x92233392 -} -function { id: 0x15a61d9b return_type_id: 0x48b5725f parameter_id: 0x15a30023 @@ -285189,6 +290969,13 @@ function { parameter_id: 0x15a30023 } function { + id: 0x15f1cac1 + return_type_id: 0x48b5725f + parameter_id: 0x11e6864c + parameter_id: 0x4585663f + parameter_id: 0x18bd6530 +} +function { id: 0x15f330e3 return_type_id: 0x48b5725f parameter_id: 0x1479c6e7 @@ -285239,6 +291026,13 @@ function { parameter_id: 0xf435685e } function { + id: 0x160abbb8 + return_type_id: 0x48b5725f + parameter_id: 0x1b8590a8 + parameter_id: 0x1253769c + parameter_id: 0xeb0f6de6 +} +function { id: 0x161199c0 return_type_id: 0x48b5725f parameter_id: 0x1c34b0f2 @@ -285324,6 +291118,11 @@ function { parameter_id: 0x1b7b196f } function { + id: 0x164ad64e + return_type_id: 0x48b5725f + parameter_id: 0x1b4a1f75 +} +function { id: 0x164c5933 return_type_id: 0x48b5725f parameter_id: 0x1b55a8f2 @@ -285363,6 +291162,14 @@ function { parameter_id: 0x1b36c7a2 } function { + id: 0x1656fc12 + return_type_id: 0x48b5725f + parameter_id: 0x126add1c + parameter_id: 0x914dbfdc + parameter_id: 0x4585663f + parameter_id: 0x13580d6c +} +function { id: 0x1658716c return_type_id: 0x48b5725f parameter_id: 0x1b55a8f2 @@ -285601,6 +291408,12 @@ function { parameter_id: 0x24706e28 } function { + id: 0x16949287 + return_type_id: 0x08113aaf + parameter_id: 0x0258f96e + parameter_id: 0x396fe4f8 +} +function { id: 0x16983453 return_type_id: 0x48b5725f parameter_id: 0x18019702 @@ -285664,6 +291477,12 @@ function { parameter_id: 0x6720d32f } function { + id: 0x16a7bffa + return_type_id: 0x48b5725f + parameter_id: 0x1a1051a0 + parameter_id: 0x2efe8065 +} +function { id: 0x16a99695 return_type_id: 0x48b5725f parameter_id: 0x18e64f74 @@ -285683,6 +291502,24 @@ function { parameter_id: 0x18a2fb63 } function { + id: 0x16b316ef + return_type_id: 0xd5cc9c9a + parameter_id: 0x08bd7371 + parameter_id: 0x1b8590a8 + parameter_id: 0x0c2e195c + parameter_id: 0x2f73da3b + parameter_id: 0x2cacacc0 + parameter_id: 0x24a22acc + parameter_id: 0x06a428cc + parameter_id: 0x6720d32f +} +function { + id: 0x16b4e02b + return_type_id: 0x48b5725f + parameter_id: 0x1b8590a8 + parameter_id: 0x33756485 +} +function { id: 0x16b50572 return_type_id: 0x48b5725f parameter_id: 0x18bd6530 @@ -285766,6 +291603,13 @@ function { parameter_id: 0x914dbfdc } function { + id: 0x16cab29d + return_type_id: 0x48b5725f + parameter_id: 0x1a1051a0 + parameter_id: 0x31e58fe0 + parameter_id: 0x4585663f +} +function { id: 0x16cc357f return_type_id: 0x48b5725f parameter_id: 0x18bd6530 @@ -285880,6 +291724,12 @@ function { parameter_id: 0x19fa9e98 } function { + id: 0x16e7aaa1 + return_type_id: 0x48b5725f + parameter_id: 0x1b8590a8 + parameter_id: 0x27a7c613 +} +function { id: 0x16e9508e return_type_id: 0x48b5725f parameter_id: 0x19c40476 @@ -285996,12 +291846,25 @@ function { parameter_id: 0x310ec01d } function { + id: 0x171a1012 + return_type_id: 0x48b5725f + parameter_id: 0x1d44326e + parameter_id: 0x34d3469d +} +function { id: 0x171c8621 return_type_id: 0xd5cc9c9a parameter_id: 0x09626b7f parameter_id: 0x6d7f5ff6 } function { + id: 0x17256acc + return_type_id: 0x48b5725f + parameter_id: 0x1d44326e + parameter_id: 0x3bfbd7cf + parameter_id: 0x0f626ee5 +} +function { id: 0x172842ec return_type_id: 0x48b5725f parameter_id: 0x1d19a9d5 @@ -286053,6 +291916,12 @@ function { parameter_id: 0x18bd6530 } function { + id: 0x1730d353 + return_type_id: 0x48b5725f + parameter_id: 0x1d44326e + parameter_id: 0x3e6396e0 +} +function { id: 0x1731208f return_type_id: 0x48b5725f parameter_id: 0x1ea5c473 @@ -286184,12 +292053,23 @@ function { parameter_id: 0x2e18f543 } function { + id: 0x176f2021 + return_type_id: 0x48b5725f + parameter_id: 0x1b8590a8 + parameter_id: 0x4585663f +} +function { id: 0x176fe039 return_type_id: 0x48b5725f parameter_id: 0x1c2f6323 parameter_id: 0x3f1a5886 } function { + id: 0x1776cedc + return_type_id: 0x48b5725f + parameter_id: 0x1fba7d3d +} +function { id: 0x177cb160 return_type_id: 0x48b5725f parameter_id: 0x1333434c @@ -286198,6 +292078,13 @@ function { parameter_id: 0x33756485 } function { + id: 0x177e4178 + return_type_id: 0x48b5725f + parameter_id: 0x1b8590a8 + parameter_id: 0x4585663f + parameter_id: 0x4585663f +} +function { id: 0x177f3bf9 return_type_id: 0x48b5725f parameter_id: 0x1f9da9a8 @@ -286348,12 +292235,6 @@ function { parameter_id: 0x4585663f } function { - id: 0x17b61d24 - return_type_id: 0x48b5725f - parameter_id: 0x1d65d221 - parameter_id: 0x1dce0fdd -} -function { id: 0x17b79b8a return_type_id: 0x48b5725f parameter_id: 0x18a2fb63 @@ -286425,6 +292306,12 @@ function { parameter_id: 0x1d25f132 } function { + id: 0x17d74917 + return_type_id: 0x48b5725f + parameter_id: 0x1e820193 + parameter_id: 0x3be6380c +} +function { id: 0x17d8b994 return_type_id: 0x48b5725f parameter_id: 0x1e9f31fe @@ -286535,6 +292422,12 @@ function { parameter_id: 0x4585663f } function { + id: 0x18159e1c + return_type_id: 0x48b5725f + parameter_id: 0x21069feb + parameter_id: 0x331a1d7a +} +function { id: 0x1817bd12 return_type_id: 0x48b5725f parameter_id: 0x223fb206 @@ -286583,6 +292476,11 @@ function { parameter_id: 0x22cee855 } function { + id: 0x183a04a1 + return_type_id: 0x48b5725f + parameter_id: 0x228954ca +} +function { id: 0x184069d1 return_type_id: 0x48b5725f parameter_id: 0x2360e10b @@ -286680,6 +292578,21 @@ function { parameter_id: 0x238b8721 } function { + id: 0x187c3067 + return_type_id: 0x48b5725f + parameter_id: 0x239187d3 +} +function { + id: 0x187ccd99 + return_type_id: 0x17b5cc93 + parameter_id: 0x0ca27481 + parameter_id: 0x3b461cc8 + parameter_id: 0x3b461cc8 + parameter_id: 0x6720d32f + parameter_id: 0x3e6396e0 + parameter_id: 0x6720d32f +} +function { id: 0x187d7a7f return_type_id: 0x48b5725f parameter_id: 0x23f09c34 @@ -286945,6 +292858,11 @@ function { parameter_id: 0x18bd6530 } function { + id: 0x18f4e52e + return_type_id: 0x48b5725f + parameter_id: 0x21b2d2f4 +} +function { id: 0x18f8b885 return_type_id: 0x48b5725f parameter_id: 0x2208f89a @@ -287275,6 +293193,12 @@ function { parameter_id: 0x24d8c7ab } function { + id: 0x19af92ca + return_type_id: 0x48b5725f + parameter_id: 0x2208f89a + parameter_id: 0x6d7f5ff6 +} +function { id: 0x19b6a09f return_type_id: 0x48b5725f parameter_id: 0x24bbc433 @@ -287365,6 +293289,12 @@ function { parameter_id: 0x6720d32f } function { + id: 0x19e2f0b6 + return_type_id: 0x48b5725f + parameter_id: 0x21b2d2f4 + parameter_id: 0x4585663f +} +function { id: 0x19e4b813 return_type_id: 0x48b5725f parameter_id: 0x246dc7d4 @@ -287393,6 +293323,12 @@ function { parameter_id: 0x25b73daa } function { + id: 0x19fc4f29 + return_type_id: 0x48b5725f + parameter_id: 0x275ab027 + parameter_id: 0x2cacacc0 +} +function { id: 0x19fe25be return_type_id: 0x48b5725f parameter_id: 0x2599d0b6 @@ -287428,12 +293364,6 @@ function { parameter_id: 0x33756485 } function { - id: 0x1a162f77 - return_type_id: 0x48b5725f - parameter_id: 0x2b8a97e8 - parameter_id: 0x1b36c7a2 -} -function { id: 0x1a1815c7 return_type_id: 0x48b5725f parameter_id: 0x291e8a5b @@ -287451,20 +293381,10 @@ function { parameter_id: 0x6d7f5ff6 } function { - id: 0x1a1970c3 - return_type_id: 0x48b5725f - parameter_id: 0x2b8a97e8 - parameter_id: 0x1b36c7a2 - parameter_id: 0x33756485 - parameter_id: 0xe0bb64fa -} -function { - id: 0x1a1a3ffb - return_type_id: 0x48b5725f - parameter_id: 0x2b8a97e8 - parameter_id: 0x1b36c7a2 - parameter_id: 0x33756485 - parameter_id: 0x33756485 + id: 0x1a1c4881 + return_type_id: 0x0400f16a + parameter_id: 0x1b55a8f2 + parameter_id: 0x4585663f } function { id: 0x1a27e882 @@ -287518,6 +293438,13 @@ function { parameter_id: 0x2b603afb } function { + id: 0x1a42044c + return_type_id: 0xd5cc9c9a + parameter_id: 0x3bb0740c + parameter_id: 0x18bd6530 + parameter_id: 0xf435685e +} +function { id: 0x1a450083 return_type_id: 0x48b5725f parameter_id: 0x2b754442 @@ -287593,11 +293520,6 @@ function { parameter_id: 0x02128e8a } function { - id: 0x1a7af469 - return_type_id: 0x48b5725f - parameter_id: 0x2b8a97e8 -} -function { id: 0x1a7b957f return_type_id: 0x48b5725f parameter_id: 0x2b8f13b3 @@ -287661,6 +293583,11 @@ function { parameter_id: 0x2859d899 } function { + id: 0x1a8f9ccc + return_type_id: 0x48b5725f + parameter_id: 0x285f357e +} +function { id: 0x1a902728 return_type_id: 0x48b5725f parameter_id: 0x2821daec @@ -287718,12 +293645,6 @@ function { parameter_id: 0xe276adef } function { - id: 0x1aa50604 - return_type_id: 0x48b5725f - parameter_id: 0x2b8a97e8 - parameter_id: 0x37fc9b61 -} -function { id: 0x1aa56a0d return_type_id: 0x48b5725f parameter_id: 0x28f4ee78 @@ -287821,15 +293742,15 @@ function { parameter_id: 0x292cb268 } function { - id: 0x1ad45e5f + id: 0x1ad5d81c return_type_id: 0x48b5725f - parameter_id: 0x28e1a5ae - parameter_id: 0x1d19a9d5 + parameter_id: 0x2936263d } function { - id: 0x1ad5d81c + id: 0x1ad943f1 return_type_id: 0x48b5725f - parameter_id: 0x2936263d + parameter_id: 0x2a5e3596 + parameter_id: 0x35a7c1c3 } function { id: 0x1ad9d0a2 @@ -287849,6 +293770,11 @@ function { parameter_id: 0x7f7172c7 } function { + id: 0x1ae9c33f + return_type_id: 0x48b5725f + parameter_id: 0x29c64ab1 +} +function { id: 0x1ae9d1bd return_type_id: 0x48b5725f parameter_id: 0x29c600bb @@ -287894,6 +293820,12 @@ function { parameter_id: 0x2e60a6b2 } function { + id: 0x1b05453e + return_type_id: 0x48b5725f + parameter_id: 0x28a3a74b + parameter_id: 0x6d7f5ff6 +} +function { id: 0x1b0d4d60 return_type_id: 0x48b5725f parameter_id: 0x2e5473cd @@ -287916,6 +293848,12 @@ function { parameter_id: 0x0ab1f084 } function { + id: 0x1b18b5bc + return_type_id: 0x48b5725f + parameter_id: 0x2e94a1e1 + parameter_id: 0x097315c2 +} +function { id: 0x1b18f64e return_type_id: 0x48b5725f parameter_id: 0x2e029f76 @@ -288008,12 +293946,6 @@ function { parameter_id: 0x2e8ed696 } function { - id: 0x1b3cbbb4 - return_type_id: 0x48b5725f - parameter_id: 0x28e1a5ae - parameter_id: 0x6720d32f -} -function { id: 0x1b3d79eb return_type_id: 0x48b5725f parameter_id: 0x2e94a1e1 @@ -288103,6 +294035,12 @@ function { parameter_id: 0x27a7c613 } function { + id: 0x1b603ccd + return_type_id: 0x48b5725f + parameter_id: 0x285f357e + parameter_id: 0x7be80061 +} +function { id: 0x1b6452d7 return_type_id: 0x48b5725f parameter_id: 0x2ca8f248 @@ -288132,6 +294070,13 @@ function { parameter_id: 0x3e6239e1 } function { + id: 0x1b6dacf7 + return_type_id: 0x48b5725f + parameter_id: 0x2c32dd96 + parameter_id: 0x3e6239e1 + parameter_id: 0x030b9acf +} +function { id: 0x1b71ad71 return_type_id: 0x48b5725f parameter_id: 0x2fa7f388 @@ -288186,6 +294131,12 @@ function { parameter_id: 0x6d7f5ff6 } function { + id: 0x1b90a8d8 + return_type_id: 0x48b5725f + parameter_id: 0x26ee682a + parameter_id: 0xacd8d043 +} +function { id: 0x1b939067 return_type_id: 0x48b5725f parameter_id: 0x2c2f07d2 @@ -288390,6 +294341,11 @@ function { parameter_id: 0xc0a0d1f0 } function { + id: 0x1bd82ebd + return_type_id: 0x48b5725f + parameter_id: 0x2d01fcba +} +function { id: 0x1bdaff5e return_type_id: 0x48b5725f parameter_id: 0x2cdbb77a @@ -288475,6 +294431,12 @@ function { parameter_id: 0x326c4938 } function { + id: 0x1c03dd76 + return_type_id: 0x48b5725f + parameter_id: 0x33756485 + parameter_id: 0x11b57133 +} +function { id: 0x1c048955 return_type_id: 0x48b5725f parameter_id: 0x33f8b54b @@ -288526,11 +294488,6 @@ function { parameter_id: 0x3d2ef874 } function { - id: 0x1c1113fb - return_type_id: 0x48b5725f - parameter_id: 0x322509a0 -} -function { id: 0x1c155f01 return_type_id: 0x48b5725f parameter_id: 0x32343a4a @@ -288630,6 +294587,12 @@ function { parameter_id: 0x2e18f543 } function { + id: 0x1c32c5f2 + return_type_id: 0x48b5725f + parameter_id: 0x32a623d7 + parameter_id: 0x00c72527 +} +function { id: 0x1c362eb2 return_type_id: 0x48b5725f parameter_id: 0x32a623d7 @@ -288759,9 +294722,9 @@ function { parameter_id: 0x2a670b41 } function { - id: 0x1c5e9ece + id: 0x1c5eb40a return_type_id: 0x48b5725f - parameter_id: 0x331b3d77 + parameter_id: 0x331b9666 } function { id: 0x1c5ec399 @@ -288884,12 +294847,30 @@ function { parameter_id: 0x7194a543 } function { + id: 0x1c86b5f0 + return_type_id: 0x48b5725f + parameter_id: 0x3176a085 + parameter_id: 0x11cfee5a + parameter_id: 0x11cfee5a +} +function { + id: 0x1c88728f + return_type_id: 0x48b5725f + parameter_id: 0x30408c71 +} +function { id: 0x1c88dd20 return_type_id: 0x48b5725f parameter_id: 0x33756485 parameter_id: 0x33756485 } function { + id: 0x1c93cad8 + return_type_id: 0x48b5725f + parameter_id: 0x36f998d3 + parameter_id: 0x6d7f5ff6 +} +function { id: 0x1c941374 return_type_id: 0x2060db23 parameter_id: 0x101b9aaa @@ -288930,6 +294911,12 @@ function { parameter_id: 0x6720d32f } function { + id: 0x1ca44d8a + return_type_id: 0x48b5725f + parameter_id: 0x32a623d7 + parameter_id: 0x25653b02 +} +function { id: 0x1ca75909 return_type_id: 0x48b5725f parameter_id: 0x32a623d7 @@ -288937,6 +294924,13 @@ function { parameter_id: 0x2e18f543 } function { + id: 0x1caa303b + return_type_id: 0x48b5725f + parameter_id: 0x331b9666 + parameter_id: 0x3e10b518 + parameter_id: 0x331b9666 +} +function { id: 0x1cab6a11 return_type_id: 0x48b5725f parameter_id: 0x30ccee09 @@ -288977,6 +294971,11 @@ function { parameter_id: 0x18bd6530 } function { + id: 0x1cb3a26f + return_type_id: 0x48b5725f + parameter_id: 0x30afcff2 +} +function { id: 0x1cb4b808 return_type_id: 0x48b5725f parameter_id: 0x3399c453 @@ -289305,6 +295304,11 @@ function { parameter_id: 0xf435685e } function { + id: 0x1d10ef19 + return_type_id: 0x48b5725f + parameter_id: 0x3622fa2a +} +function { id: 0x1d1662fd return_type_id: 0x48b5725f parameter_id: 0x3638cdb9 @@ -289316,6 +295320,11 @@ function { parameter_id: 0x026525e9 } function { + id: 0x1d1a000c + return_type_id: 0x48b5725f + parameter_id: 0x3609467c +} +function { id: 0x1d1cf212 return_type_id: 0x48b5725f parameter_id: 0x3fab28c8 @@ -289369,6 +295378,11 @@ function { parameter_id: 0x335d253d } function { + id: 0x1d2637a7 + return_type_id: 0x48b5725f + parameter_id: 0x36f998d3 +} +function { id: 0x1d27ccfe return_type_id: 0x48b5725f parameter_id: 0x32a623d7 @@ -289430,6 +295444,12 @@ function { parameter_id: 0x368daf92 } function { + id: 0x1d3cefc2 + return_type_id: 0x48b5725f + parameter_id: 0x32caaf24 + parameter_id: 0x4585663f +} +function { id: 0x1d3f8bd2 return_type_id: 0x48b5725f parameter_id: 0x3674251b @@ -289503,6 +295523,13 @@ function { parameter_id: 0x3e10b518 } function { + id: 0x1d657c6d + return_type_id: 0x48b5725f + parameter_id: 0x36d15200 + parameter_id: 0x1d44326e + parameter_id: 0xf1a6dfed +} +function { id: 0x1d6aeee7 return_type_id: 0x48b5725f parameter_id: 0x3176a085 @@ -289594,6 +295621,11 @@ function { parameter_id: 0xa52a0930 } function { + id: 0x1d8c491d + return_type_id: 0x1b8590a8 + parameter_id: 0x1b8590a8 +} +function { id: 0x1d8d431c return_type_id: 0x48b5725f parameter_id: 0x34544a3f @@ -289747,15 +295779,6 @@ function { parameter_id: 0x3518a6ab } function { - id: 0x1de0d842 - return_type_id: 0x48b5725f - parameter_id: 0x363b9249 - parameter_id: 0x3c6958c4 - parameter_id: 0x1b4ba19a - parameter_id: 0x4585663f - parameter_id: 0x33756485 -} -function { id: 0x1de33115 return_type_id: 0x48b5725f parameter_id: 0x397d00ab @@ -290146,6 +296169,18 @@ function { parameter_id: 0x18bd6530 } function { + id: 0x1e3bdb22 + return_type_id: 0x48b5725f + parameter_id: 0x3a8e2ac6 +} +function { + id: 0x1e3db1e5 + return_type_id: 0x48b5725f + parameter_id: 0x3e10b518 + parameter_id: 0x49f89a6d + parameter_id: 0x18bd6530 +} +function { id: 0x1e3f491e return_type_id: 0x48b5725f parameter_id: 0x3ea31487 @@ -290153,6 +296188,13 @@ function { parameter_id: 0x6720d32f } function { + id: 0x1e4106e1 + return_type_id: 0x48b5725f + parameter_id: 0x3b04bead + parameter_id: 0x07027638 + parameter_id: 0x11c404ba +} +function { id: 0x1e4577e0 return_type_id: 0x48b5725f parameter_id: 0x3b04bead @@ -290295,11 +296337,23 @@ function { parameter_id: 0xac0d3a85 } function { + id: 0x1e704726 + return_type_id: 0x48b5725f + parameter_id: 0x3ba05ad7 +} +function { id: 0x1e70c9ff return_type_id: 0x48b5725f parameter_id: 0x3ba261b0 } function { + id: 0x1e768676 + return_type_id: 0x48b5725f + parameter_id: 0x39182992 + parameter_id: 0x2c456d6d + parameter_id: 0x6720d32f +} +function { id: 0x1e7a9dc2 return_type_id: 0x48b5725f parameter_id: 0x38bc670e @@ -290450,6 +296504,11 @@ function { parameter_id: 0x3806390a } function { + id: 0x1e9b5d67 + return_type_id: 0x48b5725f + parameter_id: 0x380c33d1 +} +function { id: 0x1e9be71c return_type_id: 0xd5cc9c9a parameter_id: 0x2a4c6b85 @@ -290470,6 +296529,11 @@ function { parameter_id: 0x12eaeaa5 } function { + id: 0x1ea499af + return_type_id: 0x48b5725f + parameter_id: 0x38f320f1 +} +function { id: 0x1ea724c3 return_type_id: 0x48b5725f parameter_id: 0x38fdd541 @@ -290725,6 +296789,14 @@ function { parameter_id: 0x39a4e83f } function { + id: 0x1ef25648 + return_type_id: 0x48b5725f + parameter_id: 0x39182992 + parameter_id: 0x0d164218 + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f +} +function { id: 0x1ef27e10 return_type_id: 0x48b5725f parameter_id: 0x39a8be0c @@ -290771,15 +296843,22 @@ function { parameter_id: 0x3e6239e1 } function { + id: 0x1f01387c + return_type_id: 0x48b5725f + parameter_id: 0x3fca7642 + parameter_id: 0x1afd1fe8 +} +function { id: 0x1f060fb8 return_type_id: 0x48b5725f parameter_id: 0x3f222c68 parameter_id: 0x15b54c6f } function { - id: 0x1f07d2c7 + id: 0x1f0b238f return_type_id: 0x48b5725f - parameter_id: 0x3e7e0d52 + parameter_id: 0x3df0a7d3 + parameter_id: 0x3bd6fa3a } function { id: 0x1f0d7714 @@ -290790,6 +296869,15 @@ function { parameter_id: 0x0b8758d9 } function { + id: 0x1f0df99a + return_type_id: 0x48b5725f + parameter_id: 0x3eee6a0e + parameter_id: 0x054f691a + parameter_id: 0xe276adef + parameter_id: 0xe276adef + parameter_id: 0x6d7f5ff6 +} +function { id: 0x1f0fd39d return_type_id: 0x48b5725f parameter_id: 0x3c0e9e79 @@ -290801,6 +296889,11 @@ function { parameter_id: 0x095a3c37 } function { + id: 0x1f121b27 + return_type_id: 0x48b5725f + parameter_id: 0x3e292ad1 +} +function { id: 0x1f15c803 return_type_id: 0x48b5725f parameter_id: 0x32a623d7 @@ -290856,12 +296949,28 @@ function { parameter_id: 0x3ee88c45 } function { + id: 0x1f269fb6 + return_type_id: 0x48b5725f + parameter_id: 0x3df0a7d3 + parameter_id: 0x34e17987 + parameter_id: 0x4585663f + parameter_id: 0x0483e6f8 + parameter_id: 0x4585663f +} +function { id: 0x1f26df83 return_type_id: 0x48b5725f parameter_id: 0x31b96ec5 parameter_id: 0xf435685e } function { + id: 0x1f2853af + return_type_id: 0x48b5725f + parameter_id: 0x3806390a + parameter_id: 0x6d7f5ff6 + parameter_id: 0x11c404ba +} +function { id: 0x1f29471f return_type_id: 0xd5cc9c9a parameter_id: 0x2efe8065 @@ -290944,6 +297053,15 @@ function { parameter_id: 0x3054f2d7 } function { + id: 0x1f3dc21f + return_type_id: 0xd5cc9c9a + parameter_id: 0x2f73da3b + parameter_id: 0x0b30ee00 + parameter_id: 0xf435685e + parameter_id: 0x4585663f + parameter_id: 0x379d63b0 +} +function { id: 0x1f458cf4 return_type_id: 0x48b5725f parameter_id: 0x3ea2e6c1 @@ -290956,6 +297074,12 @@ function { parameter_id: 0x8167e73b } function { + id: 0x1f45db81 + return_type_id: 0x48b5725f + parameter_id: 0x3c417e01 + parameter_id: 0x33756485 +} +function { id: 0x1f4af633 return_type_id: 0x48b5725f parameter_id: 0x3b12c8e0 @@ -291129,6 +297253,11 @@ function { parameter_id: 0x3fc475cd } function { + id: 0x1f6acc03 + return_type_id: 0x48b5725f + parameter_id: 0x3fca7642 +} +function { id: 0x1f729ba1 return_type_id: 0x48b5725f parameter_id: 0x3fab28c8 @@ -291360,6 +297489,14 @@ function { parameter_id: 0xa52a0930 } function { + id: 0x1fcbfdc9 + return_type_id: 0x48b5725f + parameter_id: 0x3ef55b88 + parameter_id: 0x3ef55b88 + parameter_id: 0x5268af9d + parameter_id: 0x6d7f5ff6 +} +function { id: 0x1fcd1693 return_type_id: 0x48b5725f parameter_id: 0x3d551c03 @@ -291441,6 +297578,19 @@ function { parameter_id: 0xc9082b19 } function { + id: 0x1fe47867 + return_type_id: 0x48b5725f + parameter_id: 0x3df0a7d3 +} +function { + id: 0x1fe91863 + return_type_id: 0x48b5725f + parameter_id: 0x3e10b518 + parameter_id: 0x3e10b518 + parameter_id: 0x324e7f0f + parameter_id: 0x6d7f5ff6 +} +function { id: 0x1feaaebf return_type_id: 0x48b5725f parameter_id: 0x315b7e01 @@ -291475,6 +297625,11 @@ function { parameter_id: 0xa52a0930 } function { + id: 0x1ff04410 + return_type_id: 0x48b5725f + parameter_id: 0x3da0560e +} +function { id: 0x1ff204c3 return_type_id: 0x48b5725f parameter_id: 0x3d2ef874 @@ -291518,6 +297673,12 @@ function { parameter_id: 0xf641dd8a } function { + id: 0x20151959 + return_type_id: 0x2b8f13b3 + parameter_id: 0x33f8b54b + parameter_id: 0x0bf1a65b +} +function { id: 0x209ae488 return_type_id: 0x37f9fd94 parameter_id: 0xc9082b19 @@ -291721,6 +297882,14 @@ function { parameter_id: 0x6720d32f } function { + id: 0x2720cd28 + return_type_id: 0x3fca7642 + parameter_id: 0x0cf3d8fe + parameter_id: 0x307eba5c + parameter_id: 0x92233392 + parameter_id: 0x18bd6530 +} +function { id: 0x27d025a4 return_type_id: 0x40e51470 parameter_id: 0x14528516 @@ -291800,6 +297969,14 @@ function { parameter_id: 0x0258f96e } function { + id: 0x299442f2 + return_type_id: 0x0490bb4a + parameter_id: 0x4585663f + parameter_id: 0x6720d32f + parameter_id: 0x3e10b518 + parameter_id: 0x25e45be7 +} +function { id: 0x29da83bb return_type_id: 0x042af17e parameter_id: 0x2668e644 @@ -291865,11 +298042,6 @@ function { parameter_id: 0x4585663f } function { - id: 0x2b6ce96f - return_type_id: 0x2b8a97e8 - parameter_id: 0x1b36c7a2 -} -function { id: 0x2b7baaf7 return_type_id: 0x002136b3 parameter_id: 0x2e8ed696 @@ -292026,11 +298198,6 @@ function { parameter_id: 0x1b8590a8 } function { - id: 0x2e024bbc - return_type_id: 0x40e51470 - parameter_id: 0x331b3d77 -} -function { id: 0x2e14bb87 return_type_id: 0xa8fff47c parameter_id: 0x116785ed @@ -292335,13 +298502,6 @@ function { parameter_id: 0x33756485 } function { - id: 0x33e7bc51 - return_type_id: 0x33756485 - parameter_id: 0x08dcfb76 - parameter_id: 0x1b4ba19a - parameter_id: 0x4585663f -} -function { id: 0x340d6f59 return_type_id: 0x33756485 parameter_id: 0x1582ab06 @@ -292354,6 +298514,12 @@ function { parameter_id: 0x92233392 } function { + id: 0x34270f0c + return_type_id: 0x0490bb4a + parameter_id: 0x36e75420 + parameter_id: 0x3e146274 +} +function { id: 0x345f1809 return_type_id: 0xa9403390 parameter_id: 0x3e6396e0 @@ -292835,6 +299001,11 @@ function { parameter_id: 0x37b4f743 } function { + id: 0x3c97e3d9 + return_type_id: 0x33756485 + parameter_id: 0x34ecba28 +} +function { id: 0x3cc96bbe return_type_id: 0x0483e6f8 parameter_id: 0x0483e6f8 @@ -292842,14 +299013,6 @@ function { parameter_id: 0x1d19a9d5 } function { - id: 0x3cd4485f - return_type_id: 0x33756485 - parameter_id: 0x363b9249 - parameter_id: 0x3c6958c4 - parameter_id: 0x1b4ba19a - parameter_id: 0x4585663f -} -function { id: 0x3d0f6874 return_type_id: 0x1c3dbe5a parameter_id: 0x3b04bead @@ -292948,6 +299111,14 @@ function { parameter_id: 0xf1a6dfed } function { + id: 0x3e8d4bea + return_type_id: 0x33756485 + parameter_id: 0x3f84ee3c + parameter_id: 0x33756485 + parameter_id: 0x33756485 + parameter_id: 0x6d7f5ff6 +} +function { id: 0x3e902c00 return_type_id: 0x0483e6f8 parameter_id: 0x0258f96e @@ -293067,6 +299238,12 @@ function { parameter_id: 0xf435685e } function { + id: 0x4022c156 + return_type_id: 0xc9082b19 + parameter_id: 0x1bfb2a60 + parameter_id: 0xc9082b19 +} +function { id: 0x40326129 return_type_id: 0x31675062 parameter_id: 0x3e10b518 @@ -293109,6 +299286,12 @@ function { parameter_id: 0x38d23361 } function { + id: 0x4132c986 + return_type_id: 0x04ca9246 + parameter_id: 0x276a1779 + parameter_id: 0x162ee618 +} +function { id: 0x416927bc return_type_id: 0x00c83ba6 parameter_id: 0x2cac4c27 @@ -293155,6 +299338,11 @@ function { parameter_id: 0x27a7c613 } function { + id: 0x429ad182 + return_type_id: 0x18bd6530 + parameter_id: 0x503181cf +} +function { id: 0x42a927f9 return_type_id: 0xc9082b19 parameter_id: 0x1d44326e @@ -293245,6 +299433,12 @@ function { parameter_id: 0x2b20aa80 } function { + id: 0x44b624d1 + return_type_id: 0x00c83ba6 + parameter_id: 0x3b04bead + parameter_id: 0x16c5c0ab +} +function { id: 0x44ddb78b return_type_id: 0x356691bc parameter_id: 0x3b04bead @@ -293278,12 +299472,24 @@ function { parameter_id: 0x3f54a013 } function { + id: 0x45846d91 + return_type_id: 0xc9082b19 + parameter_id: 0x078316ff + parameter_id: 0x6720d32f +} +function { id: 0x45a8a3c4 return_type_id: 0x00c83ba6 parameter_id: 0x3860f3c0 parameter_id: 0x6720d32f } function { + id: 0x45df5dd3 + return_type_id: 0x315b7e01 + parameter_id: 0x3b04bead + parameter_id: 0x6720d32f +} +function { id: 0x45f82b62 return_type_id: 0xc9082b19 } @@ -293338,6 +299544,11 @@ function { parameter_id: 0x0c0dfa25 } function { + id: 0x47570b9f + return_type_id: 0x2131312a + parameter_id: 0x2d77f22a +} +function { id: 0x4759fa3a return_type_id: 0x04ca9246 parameter_id: 0x3e10b518 @@ -293362,6 +299573,13 @@ function { parameter_id: 0x4585663f } function { + id: 0x48135354 + return_type_id: 0x35304fb1 + parameter_id: 0x3f84ee3c + parameter_id: 0x33756485 + parameter_id: 0x33756485 +} +function { id: 0x48834be4 return_type_id: 0xc9082b19 parameter_id: 0x397d00ab @@ -293440,6 +299658,11 @@ function { parameter_id: 0x33756485 } function { + id: 0x4a02979c + return_type_id: 0xf1a6dfed + parameter_id: 0x1582ab06 +} +function { id: 0x4a279a3e return_type_id: 0x3d4280e0 parameter_id: 0x3fc475cd @@ -293451,6 +299674,11 @@ function { parameter_id: 0x6720d32f } function { + id: 0x4a818b9c + return_type_id: 0x18bd6530 + parameter_id: 0x705ce9b7 +} +function { id: 0x4abfefa4 return_type_id: 0x0cbf60eb parameter_id: 0x359862c8 @@ -293480,6 +299708,17 @@ function { parameter_id: 0x4585663f } function { + id: 0x4b6ec637 + return_type_id: 0x2d01fcba + parameter_id: 0x0c2e195c + parameter_id: 0x4585663f + parameter_id: 0x4585663f + parameter_id: 0x4585663f + parameter_id: 0x0c33de94 + parameter_id: 0x0c33de94 + parameter_id: 0x4585663f +} +function { id: 0x4bbafb54 return_type_id: 0x00c72527 parameter_id: 0x04f7a60d @@ -293515,6 +299754,12 @@ function { parameter_id: 0x3668642a } function { + id: 0x4d306964 + return_type_id: 0x21069feb + parameter_id: 0x3c9a9fb2 + parameter_id: 0x6720d32f +} +function { id: 0x4d878509 return_type_id: 0x21069feb parameter_id: 0x3c6f7555 @@ -293543,6 +299788,11 @@ function { parameter_id: 0x2e8d5f05 } function { + id: 0x4e6eaff2 + return_type_id: 0x00daeb4b + parameter_id: 0x0483e6f8 +} +function { id: 0x4e848709 return_type_id: 0x18ea6ae3 parameter_id: 0x3e10b518 @@ -293582,6 +299832,10 @@ function { parameter_id: 0x038de60c } function { + id: 0x4f4e564c + return_type_id: 0x00daeb4b +} +function { id: 0x4f645cab return_type_id: 0x00a43052 parameter_id: 0x3860f3c0 @@ -293677,21 +299931,11 @@ function { parameter_id: 0x18150d9f } function { - id: 0x50a850bc - return_type_id: 0x92233392 - parameter_id: 0x1dce0fdd -} -function { id: 0x50af222c return_type_id: 0x18bd6530 parameter_id: 0x18e64f74 } function { - id: 0x50b9e8bd - return_type_id: 0x18bd6530 - parameter_id: 0x18bd6530 -} -function { id: 0x50f3b181 return_type_id: 0x18ea6ae3 parameter_id: 0x4585663f @@ -293786,6 +300030,13 @@ function { parameter_id: 0x6720d32f } function { + id: 0x5274946d + return_type_id: 0x1c898f28 + parameter_id: 0x356691bc + parameter_id: 0x6720d32f + parameter_id: 0x4585663f +} +function { id: 0x5281433c return_type_id: 0x92233392 parameter_id: 0x156a41de @@ -293827,6 +300078,12 @@ function { return_type_id: 0x295c7202 } function { + id: 0x5373932e + return_type_id: 0x18bd6530 + parameter_id: 0x11e6864c + parameter_id: 0x6720d32f +} +function { id: 0x537f4e77 return_type_id: 0x18bd6530 parameter_id: 0x11e6864c @@ -293959,6 +300216,13 @@ function { parameter_id: 0x11e6864c } function { + id: 0x553ed14c + return_type_id: 0xba990d57 + parameter_id: 0x0cf3d8fe + parameter_id: 0x4585663f + parameter_id: 0x07dcdbe1 +} +function { id: 0x55423178 return_type_id: 0x18bd6530 parameter_id: 0x0b30ee00 @@ -293984,6 +300248,11 @@ function { parameter_id: 0x0c48c037 } function { + id: 0x55aa47ce + return_type_id: 0x18bd6530 + parameter_id: 0x0cf3d8fe +} +function { id: 0x55afd20f return_type_id: 0x2131312a parameter_id: 0x6720d32f @@ -294167,6 +300436,12 @@ function { parameter_id: 0x210b9681 } function { + id: 0x56edbc2a + return_type_id: 0x18bd6530 + parameter_id: 0x0258f96e + parameter_id: 0x3b4ce03a +} +function { id: 0x56f10608 return_type_id: 0x18bd6530 parameter_id: 0x0258f96e @@ -294389,6 +300664,11 @@ function { parameter_id: 0xf1a6dfed } function { + id: 0x59642c61 + return_type_id: 0x18bd6530 + parameter_id: 0x3fca7642 +} +function { id: 0x596454e5 return_type_id: 0x92233392 parameter_id: 0x391f15ea @@ -294537,6 +300817,11 @@ function { parameter_id: 0xf435685e } function { + id: 0x5b0b198d + return_type_id: 0x295c7202 + parameter_id: 0x21069feb +} +function { id: 0x5b3d7cd1 return_type_id: 0x18bd6530 parameter_id: 0x359862c8 @@ -294637,6 +300922,14 @@ function { parameter_id: 0x6720d32f } function { + id: 0x5bbe2188 + return_type_id: 0x0cf3d8fe + parameter_id: 0x3121a074 + parameter_id: 0xf435685e + parameter_id: 0x0ca27481 + parameter_id: 0x0258f96e +} +function { id: 0x5bd76b9c return_type_id: 0x18bd6530 parameter_id: 0x33756485 @@ -294823,6 +301116,13 @@ function { parameter_id: 0x18bd6530 } function { + id: 0x5de26741 + return_type_id: 0x18bd6530 + parameter_id: 0x2efd5036 + parameter_id: 0x3dfac2ad + parameter_id: 0xf1a6dfed +} +function { id: 0x5de7952d return_type_id: 0x18bd6530 parameter_id: 0x2e8ad82b @@ -294866,6 +301166,19 @@ function { parameter_id: 0x11cfee5a } function { + id: 0x5e9421aa + return_type_id: 0x18bd6530 + parameter_id: 0x2d01fcba + parameter_id: 0xd0b3a203 + parameter_id: 0x0087f4f8 +} +function { + id: 0x5ebf0597 + return_type_id: 0x18bd6530 + parameter_id: 0x239187d3 + parameter_id: 0x33756485 +} +function { id: 0x5ed273d9 return_type_id: 0x18bd6530 parameter_id: 0x2efd5036 @@ -294893,6 +301206,13 @@ function { parameter_id: 0xf435685e } function { + id: 0x5ef6b6b7 + return_type_id: 0x18bd6530 + parameter_id: 0x2efd5036 + parameter_id: 0xf1a6dfed + parameter_id: 0x6720d32f +} +function { id: 0x5f133b10 return_type_id: 0x18a2fb63 parameter_id: 0x0490bb4a @@ -294980,11 +301300,29 @@ function { parameter_id: 0x6720d32f } function { + id: 0x61257a20 + return_type_id: 0x2170d06d + parameter_id: 0xf1a6dfed + parameter_id: 0x4585663f + parameter_id: 0x6720d32f + parameter_id: 0x2fb2b385 +} +function { id: 0x619a645f return_type_id: 0x249959de parameter_id: 0x347303b4 } function { + id: 0x6240298a + return_type_id: 0x1d44326e + parameter_id: 0x3861403d + parameter_id: 0x054f691a + parameter_id: 0x27847a9a + parameter_id: 0x1259e377 + parameter_id: 0x27847a9a + parameter_id: 0x11cfee5a +} +function { id: 0x624b0f22 return_type_id: 0x0537fb37 parameter_id: 0x0ca27481 @@ -295025,6 +301363,11 @@ function { parameter_id: 0x31b5a66f } function { + id: 0x637004ab + return_type_id: 0x1582ab06 + parameter_id: 0x2170d06d +} +function { id: 0x6408a046 return_type_id: 0x054f691a parameter_id: 0x32a623d7 @@ -295077,6 +301420,13 @@ function { parameter_id: 0x0130219f } function { + id: 0x65a73fe6 + return_type_id: 0x3ccb45d9 + parameter_id: 0x0ca27481 + parameter_id: 0x3b19594b + parameter_id: 0x3fd547b8 +} +function { id: 0x65d68df5 return_type_id: 0x1977e57b parameter_id: 0x0c2e195c @@ -295107,6 +301457,12 @@ function { parameter_id: 0x1c3dbe5a } function { + id: 0x66525607 + return_type_id: 0x82bc7069 + parameter_id: 0x347303b4 + parameter_id: 0x6720d32f +} +function { id: 0x6680517a return_type_id: 0x054f691a parameter_id: 0x3e6396e0 @@ -295115,6 +301471,19 @@ function { parameter_id: 0xf1a6dfed } function { + id: 0x66880871 + return_type_id: 0x054f691a + parameter_id: 0x380c33d1 + parameter_id: 0x054f691a +} +function { + id: 0x66cc4765 + return_type_id: 0x28a3a74b + parameter_id: 0x1684c624 + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f +} +function { id: 0x66e18f45 return_type_id: 0x2c8c423d parameter_id: 0x32ec08f2 @@ -295216,6 +301585,20 @@ function { parameter_id: 0x6d7f5ff6 } function { + id: 0x69b2a88c + return_type_id: 0x0945c216 + parameter_id: 0x3e10b518 + parameter_id: 0xc9082b19 + parameter_id: 0xc9082b19 +} +function { + id: 0x69be77aa + return_type_id: 0x054f691a + parameter_id: 0x054f691a + parameter_id: 0x18bd6530 + parameter_id: 0x4585663f +} +function { id: 0x69cde367 return_type_id: 0x054f691a parameter_id: 0x054f691a @@ -295318,11 +301701,6 @@ function { parameter_id: 0x6720d32f } function { - id: 0x6b9bebe6 - return_type_id: 0x18bd6530 - parameter_id: 0xf435685e -} -function { id: 0x6bb7aee3 return_type_id: 0x7b6559c5 } @@ -295334,6 +301712,13 @@ function { parameter_id: 0xf1a6dfed } function { + id: 0x6bfb947b + return_type_id: 0x054f691a + parameter_id: 0x0dc9e98b + parameter_id: 0x054f691a + parameter_id: 0x0baa70a7 +} +function { id: 0x6c109ae9 return_type_id: 0x249959de parameter_id: 0x0258f96e @@ -295989,6 +302374,11 @@ function { parameter_id: 0xf1a6dfed } function { + id: 0x8039c229 + return_type_id: 0x2e19617e + parameter_id: 0x1285100d +} +function { id: 0x80cf4911 return_type_id: 0x6720d32f parameter_id: 0x732d9646 @@ -296079,6 +302469,15 @@ function { parameter_id: 0x18bd6530 } function { + id: 0x81599f70 + return_type_id: 0x120540d1 + parameter_id: 0x32ec08f2 + parameter_id: 0x6720d32f + parameter_id: 0x3e10b518 + parameter_id: 0x18bd6530 + parameter_id: 0x2f802886 +} +function { id: 0x81a9f9cd return_type_id: 0x09a83f1c parameter_id: 0x347303b4 @@ -296536,6 +302935,14 @@ function { parameter_id: 0x21530c77 } function { + id: 0x876cb04d + return_type_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0xca283f54 + parameter_id: 0x33756485 + parameter_id: 0x06835e9c +} +function { id: 0x87739e97 return_type_id: 0x3a583251 parameter_id: 0x0258f96e @@ -296589,6 +302996,13 @@ function { parameter_id: 0x3912ab06 } function { + id: 0x889f851e + return_type_id: 0x120540d1 + parameter_id: 0x120540d1 + parameter_id: 0x1b8590a8 + parameter_id: 0x04c1427f +} +function { id: 0x88bccf1d return_type_id: 0x120540d1 parameter_id: 0x120540d1 @@ -296682,6 +303096,12 @@ function { parameter_id: 0x4585663f } function { + id: 0x8ad88211 + return_type_id: 0x120540d1 + parameter_id: 0x1b8590a8 + parameter_id: 0x120540d1 +} +function { id: 0x8ae0b646 return_type_id: 0x6720d32f parameter_id: 0x5d8155a5 @@ -297024,11 +303444,21 @@ function { parameter_id: 0x18bd6530 } function { + id: 0x9002b2b0 + return_type_id: 0x6720d32f + parameter_id: 0x3609467c +} +function { id: 0x9006b123 return_type_id: 0x6720d32f parameter_id: 0x36194830 } function { + id: 0x90085da5 + return_type_id: 0x6720d32f + parameter_id: 0x3622fa2a +} +function { id: 0x9009411d return_type_id: 0x6720d32f parameter_id: 0x326663cd @@ -297134,6 +303564,12 @@ function { parameter_id: 0x3668642a } function { + id: 0x901c3c62 + return_type_id: 0x6720d32f + parameter_id: 0x3ae3ff84 + parameter_id: 0xc9082b19 +} +function { id: 0x90208300 return_type_id: 0x6720d32f parameter_id: 0x374090df @@ -297212,6 +303648,14 @@ function { parameter_id: 0x2e0f9112 } function { + id: 0x9038705c + return_type_id: 0x6720d32f + parameter_id: 0x347303b4 + parameter_id: 0x2afee447 + parameter_id: 0x38d23361 + parameter_id: 0x6720d32f +} +function { id: 0x9038edd5 return_type_id: 0x6720d32f parameter_id: 0x36337082 @@ -297596,6 +304040,13 @@ function { parameter_id: 0x7584e7da } function { + id: 0x90917599 + return_type_id: 0x6720d32f + parameter_id: 0x3df0a7d3 + parameter_id: 0x9ae406d4 + parameter_id: 0x18bd6530 +} +function { id: 0x9093971b return_type_id: 0x6720d32f parameter_id: 0x3053e2de @@ -297688,12 +304139,6 @@ function { parameter_id: 0x6720d32f } function { - id: 0x90ad44c2 - return_type_id: 0x6720d32f - parameter_id: 0x36f0529f - parameter_id: 0x246cd286 -} -function { id: 0x90adbc21 return_type_id: 0x6720d32f parameter_id: 0x32a623d7 @@ -297793,6 +304238,14 @@ function { parameter_id: 0x34e62f02 } function { + id: 0x90bd2dd7 + return_type_id: 0x6720d32f + parameter_id: 0x376789dd + parameter_id: 0x3bcd0c02 + parameter_id: 0x2de928d9 + parameter_id: 0x18bd6530 +} +function { id: 0x90bfa7c3 return_type_id: 0x6720d32f parameter_id: 0x32a623d7 @@ -297950,15 +304403,6 @@ function { parameter_id: 0x35d510c3 } function { - id: 0x90f86afe - return_type_id: 0x6720d32f - parameter_id: 0x363b9249 - parameter_id: 0x3c6958c4 - parameter_id: 0x1b4ba19a - parameter_id: 0x4585663f - parameter_id: 0x33756485 -} -function { id: 0x90fb83a9 return_type_id: 0x6720d32f parameter_id: 0x397d00ab @@ -298102,6 +304546,11 @@ function { parameter_id: 0x0ab1f084 } function { + id: 0x910fbd4c + return_type_id: 0x6720d32f + parameter_id: 0x323d798e +} +function { id: 0x91117703 return_type_id: 0x6720d32f parameter_id: 0x33756485 @@ -298207,10 +304656,11 @@ function { parameter_id: 0x07dcdbe1 } function { - id: 0x9121ec42 + id: 0x9122ac75 return_type_id: 0x6720d32f - parameter_id: 0x322509a0 - parameter_id: 0x0a134144 + parameter_id: 0x32a623d7 + parameter_id: 0x0483e6f8 + parameter_id: 0x6720d32f } function { id: 0x91239923 @@ -298278,6 +304728,13 @@ function { parameter_id: 0x32caaf24 } function { + id: 0x9133c6a6 + return_type_id: 0x6720d32f + parameter_id: 0x31790b1e + parameter_id: 0x3f0185ef + parameter_id: 0x4585663f +} +function { id: 0x913618b5 return_type_id: 0x6720d32f parameter_id: 0x32a623d7 @@ -298875,6 +305332,12 @@ function { parameter_id: 0xc9082b19 } function { + id: 0x91a5f8da + return_type_id: 0x6720d32f + parameter_id: 0x33756485 + parameter_id: 0x3e10b518 +} +function { id: 0x91a610ef return_type_id: 0x6720d32f parameter_id: 0x33b77109 @@ -298943,6 +305406,11 @@ function { parameter_id: 0x0483e6f8 } function { + id: 0x91ab10d3 + return_type_id: 0x6720d32f + parameter_id: 0x30afcff2 +} +function { id: 0x91adf8fd return_type_id: 0x6720d32f parameter_id: 0x32a623d7 @@ -299219,6 +305687,13 @@ function { parameter_id: 0x384c5795 } function { + id: 0x91c8e13a + return_type_id: 0x6720d32f + parameter_id: 0x32a623d7 + parameter_id: 0x3e10b518 + parameter_id: 0x6720d32f +} +function { id: 0x91ca11c2 return_type_id: 0x6720d32f parameter_id: 0x32a623d7 @@ -299299,6 +305774,12 @@ function { parameter_id: 0x3e10b518 } function { + id: 0x91d35e28 + return_type_id: 0x6720d32f + parameter_id: 0x32a623d7 + parameter_id: 0x3e8d7c9a +} +function { id: 0x91d5541c return_type_id: 0x6720d32f parameter_id: 0x32a623d7 @@ -299431,12 +305912,6 @@ function { parameter_id: 0x07dcdbe1 } function { - id: 0x91e5f6bf - return_type_id: 0x6720d32f - parameter_id: 0x322509a0 - parameter_id: 0x3b15fe1d -} -function { id: 0x91e70ccb return_type_id: 0x6720d32f parameter_id: 0x32a623d7 @@ -299497,6 +305972,14 @@ function { parameter_id: 0x31ad3cde } function { + id: 0x91ec6dfe + return_type_id: 0x6720d32f + parameter_id: 0x32a623d7 + parameter_id: 0x3176a085 + parameter_id: 0x0d9c4ffe + parameter_id: 0xeeed68e6 +} +function { id: 0x91ed8ab4 return_type_id: 0x6720d32f parameter_id: 0x31b5a66f @@ -299778,6 +306261,25 @@ function { parameter_id: 0xc9082b19 } function { + id: 0x920aa99b + return_type_id: 0x6720d32f + parameter_id: 0x3e292ad1 +} +function { + id: 0x920c1213 + return_type_id: 0x6720d32f + parameter_id: 0x3df0a7d3 + parameter_id: 0x33756485 + parameter_id: 0xf435685e +} +function { + id: 0x920d0e3f + return_type_id: 0x6720d32f + parameter_id: 0x384c5795 + parameter_id: 0x6720d32f + parameter_id: 0x09eee7e5 +} +function { id: 0x920d4b76 return_type_id: 0x6720d32f parameter_id: 0x32a623d7 @@ -299789,6 +306291,13 @@ function { parameter_id: 0x3e360385 } function { + id: 0x92117c1d + return_type_id: 0x6720d32f + parameter_id: 0x3fca7642 + parameter_id: 0x18bd6530 + parameter_id: 0x07dcdbe1 +} +function { id: 0x92121eb9 return_type_id: 0x6720d32f parameter_id: 0x3e02e685 @@ -299805,6 +306314,13 @@ function { parameter_id: 0xf435685e } function { + id: 0x921502fa + return_type_id: 0x6720d32f + parameter_id: 0x3df0a7d3 + parameter_id: 0x3e2a5e3d + parameter_id: 0x4585663f +} +function { id: 0x92153e12 return_type_id: 0xf435685e parameter_id: 0x14abdd00 @@ -299851,14 +306367,17 @@ function { parameter_id: 0x0efc9002 } function { - id: 0x921f607b + id: 0x9220b9bd return_type_id: 0x6720d32f - parameter_id: 0x3e7e0d52 + parameter_id: 0x3e816a4b } function { - id: 0x9220b9bd + id: 0x9221eee3 return_type_id: 0x6720d32f - parameter_id: 0x3e816a4b + parameter_id: 0x3df0a7d3 + parameter_id: 0x3e10b518 + parameter_id: 0x9547a3da + parameter_id: 0x0dc11255 } function { id: 0x92222c71 @@ -299913,12 +306432,6 @@ function { parameter_id: 0x0a134144 } function { - id: 0x922d81eb - return_type_id: 0x6720d32f - parameter_id: 0x322509a0 - parameter_id: 0xc9082b19 -} -function { id: 0x922dbdf3 return_type_id: 0x6720d32f parameter_id: 0x3f222c68 @@ -300109,6 +306622,13 @@ function { parameter_id: 0x4585663f } function { + id: 0x9258444e + return_type_id: 0x6720d32f + parameter_id: 0x3b04bead + parameter_id: 0x4585663f + parameter_id: 0x3e75499e +} +function { id: 0x925d3e48 return_type_id: 0x6720d32f parameter_id: 0x3ea2e6c1 @@ -300161,6 +306681,11 @@ function { parameter_id: 0x38d23361 } function { + id: 0x9261d8a0 + return_type_id: 0x6720d32f + parameter_id: 0x3f84ee3c +} +function { id: 0x92625532 return_type_id: 0x6720d32f parameter_id: 0x3c07fb40 @@ -300191,6 +306716,23 @@ function { parameter_id: 0xeeed68e6 } function { + id: 0x926873bc + return_type_id: 0x6720d32f + parameter_id: 0x3b68ec61 + parameter_id: 0x4585663f + parameter_id: 0x914dbfdc + parameter_id: 0x38d23361 + parameter_id: 0x38d23361 +} +function { + id: 0x92687d88 + return_type_id: 0x6720d32f + parameter_id: 0x3b68ec61 + parameter_id: 0x4585663f + parameter_id: 0x914dbfdc + parameter_id: 0x38d23361 +} +function { id: 0x92697f90 return_type_id: 0x6720d32f parameter_id: 0x3fa672fd @@ -300201,11 +306743,65 @@ function { parameter_id: 0x00b7947f } function { + id: 0x926a0987 + return_type_id: 0x6720d32f + parameter_id: 0x3b68ec61 + parameter_id: 0x4585663f + parameter_id: 0x914dbfdc + parameter_id: 0xa7051d2f + parameter_id: 0x2ec35650 + parameter_id: 0x38d23361 +} +function { + id: 0x926a0c03 + return_type_id: 0x6720d32f + parameter_id: 0x3b68ec61 + parameter_id: 0x4585663f + parameter_id: 0x914dbfdc + parameter_id: 0xa7051d2f + parameter_id: 0x38d23361 + parameter_id: 0x38d23361 +} +function { + id: 0x926a25a2 + return_type_id: 0x6720d32f + parameter_id: 0x3b68ec61 + parameter_id: 0x4585663f + parameter_id: 0x914dbfdc + parameter_id: 0xa7051d2f + parameter_id: 0x914dbfdc + parameter_id: 0xc9082b19 + parameter_id: 0x07dcdbe1 +} +function { + id: 0x926bbb17 + return_type_id: 0x6720d32f + parameter_id: 0x3b68ec61 + parameter_id: 0x4585663f + parameter_id: 0x914dbfdc + parameter_id: 0xc9082b19 + parameter_id: 0x07dcdbe1 +} +function { id: 0x926be467 return_type_id: 0x6720d32f parameter_id: 0x3fac1d22 } function { + id: 0x926c5025 + return_type_id: 0x6720d32f + parameter_id: 0x3d1364e9 + parameter_id: 0x2bae2afe + parameter_id: 0x1bf16028 + parameter_id: 0x0bb0c019 +} +function { + id: 0x926d0dd0 + return_type_id: 0x6720d32f + parameter_id: 0x3fca7642 + parameter_id: 0x07dcdbe1 +} +function { id: 0x926dcbb0 return_type_id: 0x6720d32f parameter_id: 0x3c0e9e79 @@ -300361,6 +306957,21 @@ function { parameter_id: 0x32a063f3 } function { + id: 0x92880f91 + return_type_id: 0x6720d32f + parameter_id: 0x3df0a7d3 + parameter_id: 0x1e820193 + parameter_id: 0x3be6380c + parameter_id: 0x0d30b9c3 +} +function { + id: 0x928c1332 + return_type_id: 0x6720d32f + parameter_id: 0x3fca7642 + parameter_id: 0x3e10b518 + parameter_id: 0x18bd6530 +} +function { id: 0x928d6faf return_type_id: 0x6720d32f parameter_id: 0x33756485 @@ -300411,6 +307022,14 @@ function { parameter_id: 0x3c5f865b } function { + id: 0x9298d745 + return_type_id: 0x6720d32f + parameter_id: 0x3df0a7d3 + parameter_id: 0x1e820193 + parameter_id: 0x7be80061 + parameter_id: 0x3be6380c +} +function { id: 0x929a4d8e return_type_id: 0x6720d32f parameter_id: 0x3c6aba87 @@ -300501,6 +307120,12 @@ function { parameter_id: 0x3ca2533c } function { + id: 0x92aa46db + return_type_id: 0x6720d32f + parameter_id: 0x3df0a7d3 + parameter_id: 0x15a30023 +} +function { id: 0x92ab09cb return_type_id: 0x6720d32f parameter_id: 0x3d435d11 @@ -300508,6 +307133,15 @@ function { parameter_id: 0x6720d32f } function { + id: 0x92ab0d8f + return_type_id: 0x6720d32f + parameter_id: 0x351641b0 + parameter_id: 0x92233392 + parameter_id: 0x92233392 + parameter_id: 0x92233392 + parameter_id: 0xc9082b19 +} +function { id: 0x92acc8e1 return_type_id: 0x6720d32f parameter_id: 0x3ac2a209 @@ -300520,6 +307154,13 @@ function { parameter_id: 0x2124c9f1 } function { + id: 0x92af5c55 + return_type_id: 0x6720d32f + parameter_id: 0x3df0a7d3 + parameter_id: 0x15a30023 + parameter_id: 0x146a39bf +} +function { id: 0x92b5578e return_type_id: 0x6720d32f parameter_id: 0x3f37d9d5 @@ -300539,6 +307180,15 @@ function { parameter_id: 0x3c2dd1ca } function { + id: 0x92beb06d + return_type_id: 0x6720d32f + parameter_id: 0x3df0a7d3 + parameter_id: 0x1d44afc8 + parameter_id: 0xd0b3a203 + parameter_id: 0xd0b3a203 + parameter_id: 0x18bd6530 +} +function { id: 0x92bf7ef1 return_type_id: 0x6720d32f parameter_id: 0x3cfe7778 @@ -300578,6 +307228,13 @@ function { parameter_id: 0x38040a6c } function { + id: 0x92c286e9 + return_type_id: 0x6720d32f + parameter_id: 0x3b68ec61 + parameter_id: 0x666a7a1b + parameter_id: 0x07dcdbe1 +} +function { id: 0x92c2d86d return_type_id: 0x6720d32f parameter_id: 0x3e10b518 @@ -300647,6 +307304,14 @@ function { parameter_id: 0x3d3b5dd7 } function { + id: 0x92d2af21 + return_type_id: 0x6720d32f + parameter_id: 0x3e10b518 + parameter_id: 0x3185812b + parameter_id: 0x4585663f + parameter_id: 0x4585663f +} +function { id: 0x92d3b873 return_type_id: 0x6720d32f parameter_id: 0x3dcae1c0 @@ -300687,6 +307352,12 @@ function { parameter_id: 0x0db138df } function { + id: 0x92daa424 + return_type_id: 0x6720d32f + parameter_id: 0x3df0a7d3 + parameter_id: 0x099bbff0 +} +function { id: 0x92dc6e62 return_type_id: 0x6720d32f parameter_id: 0x3d723536 @@ -300836,6 +307507,14 @@ function { parameter_id: 0x386badcf } function { + id: 0x92fb2e1e + return_type_id: 0x6720d32f + parameter_id: 0x3fca7642 + parameter_id: 0x23d822f9 + parameter_id: 0x18bd6530 + parameter_id: 0x07dcdbe1 +} +function { id: 0x92fc5924 return_type_id: 0x6720d32f parameter_id: 0x3b49ed35 @@ -300849,6 +307528,18 @@ function { parameter_id: 0x3e10b518 } function { + id: 0x92fccadb + return_type_id: 0x6720d32f + parameter_id: 0x3df0a7d3 +} +function { + id: 0x92fce902 + return_type_id: 0x6720d32f + parameter_id: 0x3fca7642 + parameter_id: 0x23d822f9 + parameter_id: 0x07dcdbe1 +} +function { id: 0x92fcfc63 return_type_id: 0x6720d32f parameter_id: 0x3e146274 @@ -300950,6 +307641,13 @@ function { parameter_id: 0x6720d32f } function { + id: 0x9312e40f + return_type_id: 0x6720d32f + parameter_id: 0x3e10b518 + parameter_id: 0x4585663f + parameter_id: 0x00fff809 +} +function { id: 0x9312e488 return_type_id: 0x6720d32f parameter_id: 0x3e10b518 @@ -300964,6 +307662,14 @@ function { parameter_id: 0x00c72527 } function { + id: 0x9313207d + return_type_id: 0x6720d32f + parameter_id: 0x3b68ec61 + parameter_id: 0x130aa721 + parameter_id: 0x173696bc + parameter_id: 0x07dcdbe1 +} +function { id: 0x9313a933 return_type_id: 0x6720d32f parameter_id: 0x3b04bead @@ -301059,6 +307765,12 @@ function { parameter_id: 0x3e6239e1 } function { + id: 0x931afda4 + return_type_id: 0x6720d32f + parameter_id: 0x3b68ec61 + parameter_id: 0x100964d4 +} +function { id: 0x931d2209 return_type_id: 0x6720d32f parameter_id: 0x3e10b518 @@ -301250,6 +307962,24 @@ function { parameter_id: 0x4585663f } function { + id: 0x935d0dd3 + return_type_id: 0x6720d32f + parameter_id: 0x3b68ec61 + parameter_id: 0x00c72527 + parameter_id: 0x13580d6c + parameter_id: 0x07dcdbe1 +} +function { + id: 0x93625762 + return_type_id: 0x6720d32f + parameter_id: 0x3b04bead + parameter_id: 0x079f969f + parameter_id: 0xf435685e + parameter_id: 0x391f15ea + parameter_id: 0x30ccee09 + parameter_id: 0x2a670b41 +} +function { id: 0x93627fe0 return_type_id: 0x6720d32f parameter_id: 0x3a583251 @@ -301273,6 +308003,12 @@ function { parameter_id: 0x3ba261b0 } function { + id: 0x936a3614 + return_type_id: 0x6720d32f + parameter_id: 0x39d1288c + parameter_id: 0x27a7c613 +} +function { id: 0x936c5d25 return_type_id: 0x6720d32f parameter_id: 0x32a623d7 @@ -301284,6 +308020,19 @@ function { parameter_id: 0x3bb11c92 } function { + id: 0x936fda74 + return_type_id: 0x6720d32f + parameter_id: 0x3dcee85d + parameter_id: 0x6720d32f +} +function { + id: 0x9377de98 + return_type_id: 0x6720d32f + parameter_id: 0x380882e7 + parameter_id: 0x391f15ea + parameter_id: 0x4585663f +} +function { id: 0x93788ff8 return_type_id: 0x6720d32f parameter_id: 0x3a8e2ac6 @@ -301345,6 +308094,15 @@ function { parameter_id: 0xa52a0930 } function { + id: 0x938283cb + return_type_id: 0x6720d32f + parameter_id: 0x3b04bead + parameter_id: 0x31c8b544 + parameter_id: 0x12e6ffae + parameter_id: 0x36d2de0e + parameter_id: 0x3db894b0 +} +function { id: 0x93833601 return_type_id: 0x6720d32f parameter_id: 0x3e6396e0 @@ -301416,6 +308174,12 @@ function { parameter_id: 0x33756485 } function { + id: 0x938d8e84 + return_type_id: 0x6720d32f + parameter_id: 0x3861403d + parameter_id: 0x054f691a +} +function { id: 0x938ec5ae return_type_id: 0x6720d32f parameter_id: 0x3e6396e0 @@ -301442,6 +308206,21 @@ function { parameter_id: 0x1e8e5a79 } function { + id: 0x93910e88 + return_type_id: 0x6720d32f + parameter_id: 0x380c33d1 + parameter_id: 0x054f691a + parameter_id: 0x1f73dead +} +function { + id: 0x9394f11e + return_type_id: 0x6720d32f + parameter_id: 0x3b68ec61 + parameter_id: 0x33fd261b + parameter_id: 0x07dcdbe1 + parameter_id: 0x0aa1f0ee +} +function { id: 0x93980968 return_type_id: 0x6720d32f parameter_id: 0x3863a91c @@ -301502,6 +308281,13 @@ function { parameter_id: 0x0b27dc43 } function { + id: 0x939f8199 + return_type_id: 0x6720d32f + parameter_id: 0x3b04bead + parameter_id: 0x36d2de0e + parameter_id: 0x14199568 +} +function { id: 0x93a2a3d7 return_type_id: 0x6720d32f parameter_id: 0x382837f5 @@ -301587,6 +308373,14 @@ function { parameter_id: 0x3b4ce03a } function { + id: 0x93bf0967 + return_type_id: 0x6720d32f + parameter_id: 0x3b68ec61 + parameter_id: 0x3f0185ef + parameter_id: 0x6720d32f + parameter_id: 0x07dcdbe1 +} +function { id: 0x93bf967f return_type_id: 0x6720d32f parameter_id: 0x38fdd541 @@ -301716,6 +308510,22 @@ function { parameter_id: 0x33756485 } function { + id: 0x93e8301d + return_type_id: 0x6720d32f + parameter_id: 0x3df0a7d3 + parameter_id: 0x4585663f + parameter_id: 0x0bb0c019 + parameter_id: 0x0483e6f8 + parameter_id: 0x4585663f +} +function { + id: 0x93e83373 + return_type_id: 0x6720d32f + parameter_id: 0x3df0a7d3 + parameter_id: 0x4585663f + parameter_id: 0x0bb0c019 +} +function { id: 0x93e8e7b0 return_type_id: 0x6720d32f parameter_id: 0x3a534a58 @@ -301917,6 +308727,17 @@ function { parameter_id: 0x3e10b518 } function { + id: 0x941967cc + return_type_id: 0x6720d32f + parameter_id: 0x22561ecb + parameter_id: 0x4585663f + parameter_id: 0x6720d32f + parameter_id: 0xf1a6dfed + parameter_id: 0x6720d32f + parameter_id: 0x6d7f5ff6 + parameter_id: 0x6d7f5ff6 +} +function { id: 0x941d79a6 return_type_id: 0x6720d32f parameter_id: 0x246dc7d4 @@ -302006,6 +308827,18 @@ function { parameter_id: 0x396f8ae8 } function { + id: 0x94404485 + return_type_id: 0x6720d32f + parameter_id: 0x26ee682a + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f +} +function { + id: 0x94418fe1 + return_type_id: 0x6720d32f + parameter_id: 0x2705b338 +} +function { id: 0x9441b35b return_type_id: 0x6720d32f parameter_id: 0x26ee682a @@ -302018,12 +308851,29 @@ function { parameter_id: 0x064d6086 } function { + id: 0x94459100 + return_type_id: 0x6720d32f + parameter_id: 0x21069feb + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x08ba388c +} +function { id: 0x9445ee80 return_type_id: 0x6720d32f parameter_id: 0x234c60dd parameter_id: 0x4585663f } function { + id: 0x94471ba6 + return_type_id: 0x6720d32f + parameter_id: 0x2170d06d + parameter_id: 0x6720d32f + parameter_id: 0x1d5bae2a + parameter_id: 0x064d6086 +} +function { id: 0x944726c2 return_type_id: 0x6720d32f parameter_id: 0x25ffeea5 @@ -302185,6 +309035,13 @@ function { parameter_id: 0xcddc4fff } function { + id: 0x946d2b92 + return_type_id: 0x6720d32f + parameter_id: 0x24f9cd24 + parameter_id: 0x323908e0 + parameter_id: 0x6d7f5ff6 +} +function { id: 0x946eaca9 return_type_id: 0x52658204 parameter_id: 0x0258f96e @@ -302414,6 +309271,13 @@ function { parameter_id: 0x25520d15 } function { + id: 0x94d5972f + return_type_id: 0x6720d32f + parameter_id: 0x24f9cd24 + parameter_id: 0x1c1627b0 + parameter_id: 0x6d7f5ff6 +} +function { id: 0x94d8cba3 return_type_id: 0x6720d32f parameter_id: 0x2560a232 @@ -302584,6 +309448,12 @@ function { parameter_id: 0x1dd302e9 } function { + id: 0x950d2ca0 + return_type_id: 0x6720d32f + parameter_id: 0x21069feb + parameter_id: 0x331a1d7a +} +function { id: 0x950f0fae return_type_id: 0x6720d32f parameter_id: 0x223fb206 @@ -302602,6 +309472,12 @@ function { parameter_id: 0x38040a6c } function { + id: 0x9522132a + return_type_id: 0x6720d32f + parameter_id: 0x24f9cd24 + parameter_id: 0x6720d32f +} +function { id: 0x952ae349 return_type_id: 0x6720d32f parameter_id: 0x221a7c5c @@ -302623,6 +309499,13 @@ function { parameter_id: 0x4585663f } function { + id: 0x95353072 + return_type_id: 0x6720d32f + parameter_id: 0x246dc7d4 + parameter_id: 0x6d7f5ff6 + parameter_id: 0x6d7f5ff6 +} +function { id: 0x9535de1a return_type_id: 0x6720d32f parameter_id: 0x2e8d5f05 @@ -302819,6 +309702,12 @@ function { parameter_id: 0x6d7f5ff6 } function { + id: 0x956e6587 + return_type_id: 0x6720d32f + parameter_id: 0x2170d06d + parameter_id: 0x2cacacc0 +} +function { id: 0x957149c4 return_type_id: 0x6720d32f parameter_id: 0x2208f89a @@ -302833,6 +309722,11 @@ function { parameter_id: 0x2ac2dd67 } function { + id: 0x9576eb91 + return_type_id: 0x6720d32f + parameter_id: 0x23d822f9 +} +function { id: 0x957964bc return_type_id: 0x6720d32f parameter_id: 0x2259084f @@ -302908,6 +309802,12 @@ function { parameter_id: 0x3e10b518 } function { + id: 0x958ea945 + return_type_id: 0x6720d32f + parameter_id: 0x23d822f9 + parameter_id: 0x3e10b518 +} +function { id: 0x958f9102 return_type_id: 0x6720d32f parameter_id: 0x23f09c34 @@ -302995,6 +309895,13 @@ function { parameter_id: 0x13580d6c } function { + id: 0x95a406a6 + return_type_id: 0x6720d32f + parameter_id: 0x26e55184 + parameter_id: 0x6720d32f + parameter_id: 0x04ca9246 +} +function { id: 0x95a45e65 return_type_id: 0xb3e7bac9 parameter_id: 0x6720d32f @@ -303098,6 +310005,13 @@ function { parameter_id: 0x334c07d5 } function { + id: 0x95b6c4a9 + return_type_id: 0x6720d32f + parameter_id: 0x23d822f9 + parameter_id: 0x391f15ea + parameter_id: 0x914dbfdc +} +function { id: 0x95b74be6 return_type_id: 0x6720d32f parameter_id: 0x2060db23 @@ -303271,6 +310185,14 @@ function { parameter_id: 0x78d7d113 } function { + id: 0x95fc7a3d + return_type_id: 0x6720d32f + parameter_id: 0x23f09c34 + parameter_id: 0x23f09c34 + parameter_id: 0x3e10b518 + parameter_id: 0x3e10b518 +} +function { id: 0x95fc827f return_type_id: 0x6720d32f parameter_id: 0x23f09c34 @@ -303735,6 +310657,11 @@ function { parameter_id: 0x914dbfdc } function { + id: 0x96c09c01 + return_type_id: 0x6720d32f + parameter_id: 0x2d01fcba +} +function { id: 0x96c3b4e1 return_type_id: 0x6720d32f parameter_id: 0x221732c5 @@ -303985,21 +310912,6 @@ function { parameter_id: 0x32a623d7 } function { - id: 0x97024092 - return_type_id: 0x6720d32f - parameter_id: 0x2b8a97e8 - parameter_id: 0x1b36c7a2 - parameter_id: 0x33756485 -} -function { - id: 0x97028d47 - return_type_id: 0x6720d32f - parameter_id: 0x2b8a97e8 - parameter_id: 0x1b36c7a2 - parameter_id: 0x33756485 - parameter_id: 0x33756485 -} -function { id: 0x9702dcaf return_type_id: 0x2668e644 parameter_id: 0x347303b4 @@ -304188,6 +311100,12 @@ function { parameter_id: 0x18bd6530 } function { + id: 0x974e1bca + return_type_id: 0x6720d32f + parameter_id: 0x2953a412 + parameter_id: 0x26847863 +} +function { id: 0x975a548f return_type_id: 0x6720d32f parameter_id: 0x2f3288e0 @@ -304292,6 +311210,11 @@ function { parameter_id: 0x28136e4b } function { + id: 0x97889594 + return_type_id: 0x6720d32f + parameter_id: 0x2821daec +} +function { id: 0x978bc97a return_type_id: 0x6720d32f parameter_id: 0x29a77f06 @@ -304331,6 +311254,14 @@ function { parameter_id: 0x35f82503 } function { + id: 0x97a0d8a7 + return_type_id: 0x15a30023 + parameter_id: 0x15a30023 + parameter_id: 0x6720d32f + parameter_id: 0xf1a6dfed + parameter_id: 0x0292b875 +} +function { id: 0x97a3c07a return_type_id: 0x6720d32f parameter_id: 0x2efe8065 @@ -304359,6 +311290,14 @@ function { parameter_id: 0xdb6afbca } function { + id: 0x97b4bbf8 + return_type_id: 0xf435685e + parameter_id: 0x06835e9c + parameter_id: 0x4585663f + parameter_id: 0xf435685e + parameter_id: 0x2f73da3b +} +function { id: 0x97b9c78c return_type_id: 0x6720d32f parameter_id: 0x2a9beac2 @@ -304366,12 +311305,6 @@ function { parameter_id: 0x6d7f5ff6 } function { - id: 0x97bdb4b8 - return_type_id: 0x6720d32f - parameter_id: 0x2b8a97e8 - parameter_id: 0x37fc9b61 -} -function { id: 0x97c10137 return_type_id: 0x0611572c parameter_id: 0x3eb4196d @@ -304709,6 +311642,13 @@ function { parameter_id: 0x1d2416d3 } function { + id: 0x98214125 + return_type_id: 0x6720d32f + parameter_id: 0x1582ab06 + parameter_id: 0x33756485 + parameter_id: 0x33756485 +} +function { id: 0x982246a7 return_type_id: 0x6720d32f parameter_id: 0x153f0b1a @@ -304721,6 +311661,14 @@ function { parameter_id: 0xfc0e1dbd } function { + id: 0x982488f7 + return_type_id: 0x6720d32f + parameter_id: 0x1b8590a8 + parameter_id: 0xd0b3a203 + parameter_id: 0x1977e57b + parameter_id: 0x6720d32f +} +function { id: 0x98249b1d return_type_id: 0x6720d32f parameter_id: 0x16239d0c @@ -304762,6 +311710,22 @@ function { parameter_id: 0x18bd6530 } function { + id: 0x98362533 + return_type_id: 0x6720d32f + parameter_id: 0x12e24ee1 + parameter_id: 0x4585663f + parameter_id: 0x6720d32f + parameter_id: 0x6d7f5ff6 + parameter_id: 0xf1a6dfed + parameter_id: 0x6720d32f +} +function { + id: 0x9837b2b4 + return_type_id: 0x6720d32f + parameter_id: 0x1285100d + parameter_id: 0x4585663f +} +function { id: 0x983c5682 return_type_id: 0x6720d32f parameter_id: 0x1dc3d428 @@ -305012,6 +311976,14 @@ function { parameter_id: 0x3e10b518 } function { + id: 0x986a916d + return_type_id: 0x6720d32f + parameter_id: 0x1582ab06 + parameter_id: 0x2170d06d + parameter_id: 0x33756485 + parameter_id: 0xf1a6dfed +} +function { id: 0x986ccce1 return_type_id: 0x6720d32f parameter_id: 0x1582ab06 @@ -305065,6 +312037,21 @@ function { parameter_id: 0x0d7d7298 } function { + id: 0x98773f07 + return_type_id: 0x6720d32f + parameter_id: 0x1582ab06 + parameter_id: 0x27a7c613 + parameter_id: 0x27a7c613 +} +function { + id: 0x98788d90 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0xf1a6dfed + parameter_id: 0x4585663f + parameter_id: 0x33756485 +} +function { id: 0x98792c3d return_type_id: 0x3e10b518 parameter_id: 0x28f4ee78 @@ -305218,6 +312205,15 @@ function { parameter_id: 0xc93e017b } function { + id: 0x988bc164 + return_type_id: 0xf435685e + parameter_id: 0x3df0a7d3 + parameter_id: 0x33756485 + parameter_id: 0x18bd6530 + parameter_id: 0xf435685e + parameter_id: 0x2f73da3b +} +function { id: 0x988f2c1b return_type_id: 0x6720d32f parameter_id: 0x100a15ee @@ -305386,6 +312382,11 @@ function { parameter_id: 0x14b9453b } function { + id: 0x98af9d1c + return_type_id: 0x3e10b518 + parameter_id: 0x2bae2afe +} +function { id: 0x98b3c900 return_type_id: 0x6720d32f parameter_id: 0x10a78bb8 @@ -305432,6 +312433,12 @@ function { parameter_id: 0x0b0dddba } function { + id: 0x98c001f4 + return_type_id: 0x3225ac75 + parameter_id: 0x1285100d + parameter_id: 0x34d79405 +} +function { id: 0x98c44e7d return_type_id: 0x6720d32f parameter_id: 0x1769c4d8 @@ -305520,6 +312527,17 @@ function { parameter_id: 0x156a41de } function { + id: 0x98da7fb1 + return_type_id: 0x6720d32f + parameter_id: 0x11e6864c + parameter_id: 0x4585663f + parameter_id: 0xd92b1d75 + parameter_id: 0xd92b1d75 + parameter_id: 0x18bd6530 + parameter_id: 0x3e10b518 + parameter_id: 0xa52a0930 +} +function { id: 0x98de7695 return_type_id: 0x6720d32f parameter_id: 0x116785ed @@ -305560,6 +312578,13 @@ function { parameter_id: 0x295c7202 } function { + id: 0x98e6779b + return_type_id: 0x6720d32f + parameter_id: 0x15b54c6f + parameter_id: 0x0483e6f8 + parameter_id: 0x6720d32f +} +function { id: 0x98e6a470 return_type_id: 0x6720d32f parameter_id: 0x14b9453b @@ -305806,6 +312831,21 @@ function { parameter_id: 0x3e10b518 } function { + id: 0x9921a72c + return_type_id: 0x6720d32f + parameter_id: 0x1285100d +} +function { + id: 0x992241b9 + return_type_id: 0x6720d32f + parameter_id: 0x128a8a58 +} +function { + id: 0x9927995d + return_type_id: 0xf435685e + parameter_id: 0x3861403d +} +function { id: 0x9927b218 return_type_id: 0x6720d32f parameter_id: 0x104d069a @@ -305909,6 +312949,11 @@ function { parameter_id: 0x295c7202 } function { + id: 0x99387097 + return_type_id: 0x6720d32f + parameter_id: 0x12e24ee1 +} +function { id: 0x9939118b return_type_id: 0x6720d32f parameter_id: 0x126ba7e3 @@ -306319,6 +313364,12 @@ function { parameter_id: 0x6720d32f } function { + id: 0x99ae995e + return_type_id: 0x6720d32f + parameter_id: 0x1042c9d1 + parameter_id: 0x0fb2015e +} +function { id: 0x99aea96e return_type_id: 0x6720d32f parameter_id: 0x10134e31 @@ -306498,6 +313549,12 @@ function { parameter_id: 0x111ee6f8 } function { + id: 0x99c882b3 + return_type_id: 0x6720d32f + parameter_id: 0x1e62d0f5 + parameter_id: 0xf435685e +} +function { id: 0x99c885a2 return_type_id: 0x6720d32f parameter_id: 0x12191e2a @@ -306544,6 +313601,12 @@ function { parameter_id: 0x0db25a6d } function { + id: 0x99d43279 + return_type_id: 0xf435685e + parameter_id: 0x34ecba28 + parameter_id: 0xf435685e +} +function { id: 0x99d6eb87 return_type_id: 0x6720d32f parameter_id: 0x12e6ffae @@ -306593,6 +313656,11 @@ function { parameter_id: 0x2d1f457b } function { + id: 0x99df4252 + return_type_id: 0x6720d32f + parameter_id: 0x117e85f5 +} +function { id: 0x99e0f6e0 return_type_id: 0x6720d32f parameter_id: 0x106029c6 @@ -306622,6 +313690,14 @@ function { parameter_id: 0xf017819f } function { + id: 0x99e4a009 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x92233392 + parameter_id: 0x0ed82db2 + parameter_id: 0x082be49e +} +function { id: 0x99e6ede5 return_type_id: 0x6720d32f parameter_id: 0x129a6a0a @@ -306636,6 +313712,14 @@ function { parameter_id: 0x92233392 } function { + id: 0x99e7b457 + return_type_id: 0x6720d32f + parameter_id: 0x12e6ffae + parameter_id: 0x3b04bead + parameter_id: 0xc9082b19 + parameter_id: 0x2e18f543 +} +function { id: 0x99eacf10 return_type_id: 0x6720d32f parameter_id: 0x17dabdcd @@ -306654,6 +313738,15 @@ function { parameter_id: 0x3c2fe980 } function { + id: 0x99ecdba4 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x92233392 + parameter_id: 0x2e029f76 + parameter_id: 0x1d19a9d5 + parameter_id: 0x6720d32f +} +function { id: 0x99ed1149 return_type_id: 0x6720d32f parameter_id: 0x120540d1 @@ -306762,6 +313855,11 @@ function { parameter_id: 0x348ad8b0 } function { + id: 0x9a04e7d8 + return_type_id: 0xf435685e + parameter_id: 0x34ecba28 +} +function { id: 0x9a077ed2 return_type_id: 0x6720d32f parameter_id: 0x1e9745d3 @@ -306857,6 +313955,12 @@ function { parameter_id: 0x4585663f } function { + id: 0x9a1d7c68 + return_type_id: 0x6720d32f + parameter_id: 0x12e6ffae + parameter_id: 0xc9082b19 +} +function { id: 0x9a1e34e7 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -306888,6 +313992,15 @@ function { parameter_id: 0x34a05394 } function { + id: 0x9a235f02 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f + parameter_id: 0x4585663f + parameter_id: 0x4585663f + parameter_id: 0x4585663f +} +function { id: 0x9a23bd25 return_type_id: 0xcc33625b parameter_id: 0x3a6106d5 @@ -306904,6 +314017,11 @@ function { parameter_id: 0x1e9705eb } function { + id: 0x9a25325b + return_type_id: 0x6720d32f + parameter_id: 0x1e9745d3 +} +function { id: 0x9a299233 return_type_id: 0x6720d32f parameter_id: 0x1ea5c473 @@ -306916,6 +314034,14 @@ function { parameter_id: 0x3c2755a3 } function { + id: 0x9a2abc7b + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x13580d6c +} +function { id: 0x9a2af11b return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -306932,6 +314058,21 @@ function { parameter_id: 0x1d19a9d5 } function { + id: 0x9a2b6d98 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f +} +function { + id: 0x9a2d8ab0 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x63bb62a2 + parameter_id: 0x33756485 +} +function { id: 0x9a2dc3fa return_type_id: 0x6720d32f parameter_id: 0x18a2fb63 @@ -306950,6 +314091,12 @@ function { parameter_id: 0x37f5d3d4 } function { + id: 0x9a308be1 + return_type_id: 0x6720d32f + parameter_id: 0x1977e57b + parameter_id: 0x7b64642a +} +function { id: 0x9a32aa77 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -307161,6 +314308,13 @@ function { parameter_id: 0x6720d32f } function { + id: 0x9a3fe476 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f + parameter_id: 0x33756485 +} +function { id: 0x9a403d53 return_type_id: 0x6720d32f parameter_id: 0x1dce0fdd @@ -307333,6 +314487,11 @@ function { parameter_id: 0x6720d32f } function { + id: 0x9a6e7c60 + return_type_id: 0x6720d32f + parameter_id: 0x1fba7d3d +} +function { id: 0x9a702edf return_type_id: 0x6720d32f parameter_id: 0x1d7ca769 @@ -307471,6 +314630,14 @@ function { parameter_id: 0x1c50c4ad } function { + id: 0x9a96d2a1 + return_type_id: 0x6720d32f + parameter_id: 0x120540d1 + parameter_id: 0xe62ebf07 + parameter_id: 0x391f15ea + parameter_id: 0x6720d32f +} +function { id: 0x9a9d1e6d return_type_id: 0xf435685e parameter_id: 0x35abdbf6 @@ -307602,12 +314769,6 @@ function { parameter_id: 0x6d7f5ff6 } function { - id: 0x9aaeaf98 - return_type_id: 0x6720d32f - parameter_id: 0x1d65d221 - parameter_id: 0x1dce0fdd -} -function { id: 0x9aaf4bc3 return_type_id: 0x6720d32f parameter_id: 0x18a2fb63 @@ -307622,6 +314783,12 @@ function { parameter_id: 0x4585663f } function { + id: 0x9aaf7e51 + return_type_id: 0x6720d32f + parameter_id: 0x1fba7d3d + parameter_id: 0x30408c71 +} +function { id: 0x9ab24357 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -307697,6 +314864,12 @@ function { parameter_id: 0x1ce51dde } function { + id: 0x9ab9affb + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x4585663f +} +function { id: 0x9abc5077 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -307720,6 +314893,15 @@ function { parameter_id: 0x1bf16028 } function { + id: 0x9abe9677 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x4585663f + parameter_id: 0x1d19a9d5 + parameter_id: 0x1d19a9d5 + parameter_id: 0x2e029f76 +} +function { id: 0x9abf53a3 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -307957,12 +315139,33 @@ function { parameter_id: 0x1df06cce } function { + id: 0x9afd0449 + return_type_id: 0x6720d32f + parameter_id: 0x1b8590a8 + parameter_id: 0x6720d32f +} +function { id: 0x9b022eae return_type_id: 0x6720d32f parameter_id: 0x1b8590a8 parameter_id: 0x18ea6ae3 } function { + id: 0x9b034295 + return_type_id: 0x6720d32f + parameter_id: 0x1b8590a8 + parameter_id: 0x1b8590a8 + parameter_id: 0x3e001c39 + parameter_id: 0xd57eb7ba + parameter_id: 0x18bd6530 +} +function { + id: 0x9b037291 + return_type_id: 0x6720d32f + parameter_id: 0x1b8590a8 + parameter_id: 0x18bd6530 +} +function { id: 0x9b03e163 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -308156,6 +315359,13 @@ function { parameter_id: 0x1d19a9d5 } function { + id: 0x9b15020e + return_type_id: 0x6720d32f + parameter_id: 0x188b9e81 + parameter_id: 0x2f3288e0 + parameter_id: 0x2f3288e0 +} +function { id: 0x9b153afe return_type_id: 0x6720d32f parameter_id: 0x1aee9939 @@ -308271,6 +315481,13 @@ function { parameter_id: 0x107606b0 } function { + id: 0x9b222516 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x2170d06d + parameter_id: 0x2170d06d +} +function { id: 0x9b2239e7 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -308417,6 +315634,13 @@ function { parameter_id: 0x1a6ea392 } function { + id: 0x9b2eaf21 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x2170d06d + parameter_id: 0x13580d6c +} +function { id: 0x9b2eba1d return_type_id: 0x6720d32f parameter_id: 0x1b8590a8 @@ -308426,6 +315650,12 @@ function { parameter_id: 0x1253769c } function { + id: 0x9b2efcfe + return_type_id: 0x6720d32f + parameter_id: 0x19e66c71 + parameter_id: 0x35e13364 +} +function { id: 0x9b2f1182 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -308477,6 +315707,12 @@ function { parameter_id: 0x26e55184 } function { + id: 0x9b35e16b + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x2696c21b +} +function { id: 0x9b37fa13 return_type_id: 0x6720d32f parameter_id: 0x18ea6ae3 @@ -308547,6 +315783,13 @@ function { parameter_id: 0x07dcdbe1 } function { + id: 0x9b3e4950 + return_type_id: 0x6720d32f + parameter_id: 0x191de370 + parameter_id: 0x3806a5e7 + parameter_id: 0x6720d32f +} +function { id: 0x9b3e6548 return_type_id: 0x6720d32f parameter_id: 0x156a41de @@ -308817,6 +316060,13 @@ function { parameter_id: 0x4585663f } function { + id: 0x9b4f443a + return_type_id: 0x6720d32f + parameter_id: 0x1d2bb1b6 + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f +} +function { id: 0x9b4f857e return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -308874,6 +316124,13 @@ function { parameter_id: 0x1a5d0549 } function { + id: 0x9b52c397 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x3c692b7e + parameter_id: 0x33756485 +} +function { id: 0x9b5377a8 return_type_id: 0x6720d32f parameter_id: 0x1aeeade4 @@ -309004,6 +316261,13 @@ function { parameter_id: 0x3ea31487 } function { + id: 0x9b5a0fe0 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x3df7e337 + parameter_id: 0x09a83f1c +} +function { id: 0x9b5aa874 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -309141,6 +316405,13 @@ function { parameter_id: 0xc9082b19 } function { + id: 0x9b6602ad + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x33756485 + parameter_id: 0x11b57133 +} +function { id: 0x9b660b2c return_type_id: 0x6720d32f parameter_id: 0x1aeeade4 @@ -309230,6 +316501,12 @@ function { parameter_id: 0xf435685e } function { + id: 0x9b6b31b5 + return_type_id: 0xf435685e + parameter_id: 0x3e10b518 + parameter_id: 0xf435685e +} +function { id: 0x9b6b9392 return_type_id: 0x6720d32f parameter_id: 0x1b8590a8 @@ -309290,6 +316567,13 @@ function { parameter_id: 0x11cfee5a } function { + id: 0x9b6eb2a8 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x33756485 + parameter_id: 0x33756485 +} +function { id: 0x9b6eb620 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -309316,6 +316600,14 @@ function { parameter_id: 0x17b3f4e8 } function { + id: 0x9b723218 + return_type_id: 0x2a670b41 + parameter_id: 0x3b04bead + parameter_id: 0xc9082b19 + parameter_id: 0x3e10b518 + parameter_id: 0x1c3dbe5a +} +function { id: 0x9b7237ea return_type_id: 0x2a670b41 parameter_id: 0x3b04bead @@ -309499,6 +316791,12 @@ function { parameter_id: 0x13580d6c } function { + id: 0x9b79f498 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x3593bec8 +} +function { id: 0x9b79f513 return_type_id: 0x6720d32f parameter_id: 0x188b9e81 @@ -309508,6 +316806,13 @@ function { parameter_id: 0xfc0e1dbd } function { + id: 0x9b7ba7c5 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x33756485 + parameter_id: 0x6720d32f +} +function { id: 0x9b7bfb3b return_type_id: 0x6720d32f parameter_id: 0x1bd69199 @@ -309552,6 +316857,15 @@ function { parameter_id: 0x92233392 } function { + id: 0x9b80645e + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x0b30ee00 + parameter_id: 0x0a63398f + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f +} +function { id: 0x9b82fce2 return_type_id: 0x6720d32f parameter_id: 0x1bc6afb1 @@ -309593,6 +316907,12 @@ function { parameter_id: 0x18150d9f } function { + id: 0x9b85c291 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x0a9e3ca3 +} +function { id: 0x9b85c36d return_type_id: 0x6720d32f parameter_id: 0x1b55a8f2 @@ -309710,6 +317030,16 @@ function { parameter_id: 0x082be49e } function { + id: 0x9b8fbd40 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x0b7c4f67 + parameter_id: 0x310ec01d + parameter_id: 0x6d7f5ff6 + parameter_id: 0x00c72527 + parameter_id: 0x18bd6530 +} +function { id: 0x9b91093a return_type_id: 0x6720d32f parameter_id: 0x1847a854 @@ -309723,6 +317053,15 @@ function { parameter_id: 0x30c17c17 } function { + id: 0x9b91dcee + return_type_id: 0x6720d32f + parameter_id: 0x1b8590a8 + parameter_id: 0x351641b0 + parameter_id: 0x92233392 + parameter_id: 0x2e18f543 + parameter_id: 0xc9082b19 +} +function { id: 0x9b922d94 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -309754,6 +317093,12 @@ function { parameter_id: 0x0db25a6d } function { + id: 0x9b94dad5 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x0ed82db2 +} +function { id: 0x9b957b56 return_type_id: 0x6720d32f parameter_id: 0x18ea6ae3 @@ -309891,6 +317236,27 @@ function { parameter_id: 0x1d19a9d5 } function { + id: 0x9ba26d2b + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x02a8d0c9 + parameter_id: 0x1f8dbf97 + parameter_id: 0x24373219 + parameter_id: 0x1d6b5d95 + parameter_id: 0x3e6239e1 + parameter_id: 0x6d7f5ff6 + parameter_id: 0x11cfee5a +} +function { + id: 0x9ba26d9c + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x02a8d0c9 + parameter_id: 0x1f8dbf97 + parameter_id: 0x24373219 + parameter_id: 0x1c3dbe5a +} +function { id: 0x9ba2e939 return_type_id: 0x6720d32f parameter_id: 0x18150d9f @@ -309904,12 +317270,30 @@ function { parameter_id: 0x07f5d8a3 } function { + id: 0x9ba346af + return_type_id: 0x6720d32f + parameter_id: 0x1b55a8f2 + parameter_id: 0x3e10b518 + parameter_id: 0x3e75499e + parameter_id: 0x4585663f + parameter_id: 0x18bd6530 +} +function { id: 0x9ba39408 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 parameter_id: 0x030b9acf } function { + id: 0x9ba3940a + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x054f691a + parameter_id: 0x6720d32f + parameter_id: 0x32a623d7 + parameter_id: 0x4585663f +} +function { id: 0x9ba399e4 return_type_id: 0x6720d32f parameter_id: 0x1b084782 @@ -310173,6 +317557,12 @@ function { parameter_id: 0x11cfee5a } function { + id: 0x9bb5b719 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x06835e9c +} +function { id: 0x9bb5c5c3 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -310208,6 +317598,17 @@ function { parameter_id: 0x064d6086 } function { + id: 0x9bb6ab04 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x06835e9c + parameter_id: 0x0a63398f + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x11cfee5a +} +function { id: 0x9bb6c325 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -310301,6 +317702,12 @@ function { parameter_id: 0x18ea6ae3 } function { + id: 0x9bba87c7 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x054f691a +} +function { id: 0x9bbb9163 return_type_id: 0x6720d32f parameter_id: 0x11cffa09 @@ -310364,6 +317771,13 @@ function { parameter_id: 0x13580d6c } function { + id: 0x9bbe37da + return_type_id: 0x6720d32f + parameter_id: 0x1b8590a8 + parameter_id: 0x3667e19e + parameter_id: 0x18bd6530 +} +function { id: 0x9bbe6322 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -310636,6 +318050,14 @@ function { parameter_id: 0x370ed8aa } function { + id: 0x9bcdfb6a + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1bf16028 + parameter_id: 0x370ed8aa + parameter_id: 0x11cfee5a +} +function { id: 0x9bcfc1f5 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -310648,6 +318070,14 @@ function { parameter_id: 0x21003da7 } function { + id: 0x9bd01103 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x2e029f76 + parameter_id: 0x13580d6c +} +function { id: 0x9bd01b5c return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -310656,6 +318086,12 @@ function { parameter_id: 0x11cfee5a } function { + id: 0x9bd09cc2 + return_type_id: 0x6720d32f + parameter_id: 0x1d19a9d5 + parameter_id: 0x4585663f +} +function { id: 0x9bd130b8 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -310747,6 +318183,16 @@ function { parameter_id: 0x3332797f } function { + id: 0x9bd44256 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x38bffa98 + parameter_id: 0x6d7f5ff6 + parameter_id: 0x13580d6c + parameter_id: 0x11cfee5a +} +function { id: 0x9bd444ea return_type_id: 0x6720d32f parameter_id: 0x18ea6ae3 @@ -310971,6 +318417,14 @@ function { parameter_id: 0x1c898f28 } function { + id: 0x9bd8639c + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1f8dbf97 + parameter_id: 0x24373219 + parameter_id: 0x38b368bf +} +function { id: 0x9bd88151 return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -311029,6 +318483,12 @@ function { parameter_id: 0x0b3476b2 } function { + id: 0x9bdaaaaa + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d44326e +} +function { id: 0x9bdad4db return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -311078,14 +318538,6 @@ function { parameter_id: 0x1d19a9d5 } function { - id: 0x9bdc22a4 - return_type_id: 0x6720d32f - parameter_id: 0x18bd6530 - parameter_id: 0x1d19a9d5 - parameter_id: 0x1d19a9d5 - parameter_id: 0x2e029f76 -} -function { id: 0x9bdc44e8 return_type_id: 0x6720d32f parameter_id: 0x18ea6ae3 @@ -311128,6 +318580,22 @@ function { parameter_id: 0x1c3dbe5a } function { + id: 0x9bdcd7ce + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x1d19a9d5 + parameter_id: 0x13580d6c +} +function { + id: 0x9bdcdd91 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x1d19a9d5 + parameter_id: 0x11cfee5a +} +function { id: 0x9bdcf60d return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -311139,6 +318607,11 @@ function { parameter_id: 0x6d7f5ff6 } function { + id: 0x9bdd1a71 + return_type_id: 0x6720d32f + parameter_id: 0x1977e57b +} +function { id: 0x9bdd30f1 return_type_id: 0x6720d32f parameter_id: 0x18ea6ae3 @@ -311176,6 +318649,14 @@ function { parameter_id: 0x141e84b4 } function { + id: 0x9bddb3a2 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x18a16691 + parameter_id: 0x11cfee5a +} +function { id: 0x9bddb929 return_type_id: 0x6720d32f parameter_id: 0x18ea6ae3 @@ -311234,6 +318715,13 @@ function { parameter_id: 0x11cfee5a } function { + id: 0x9bdf0ac7 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1d19a9d5 + parameter_id: 0x13580d6c +} +function { id: 0x9bdfa419 return_type_id: 0x6720d32f parameter_id: 0x18ea6ae3 @@ -311328,6 +318816,16 @@ function { parameter_id: 0x1c898f28 } function { + id: 0x9be67f35 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x1013df15 + parameter_id: 0x27d4bd81 + parameter_id: 0x1d19a9d5 + parameter_id: 0x2c32dd96 + parameter_id: 0x1bf16028 +} +function { id: 0x9be6a9ad return_type_id: 0x6720d32f parameter_id: 0x18bd6530 @@ -311377,6 +318875,14 @@ function { parameter_id: 0x92233392 } function { + id: 0x9bec16df + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x10de2fab + parameter_id: 0x02a8d0c9 + parameter_id: 0x1f8dbf97 +} +function { id: 0x9bee7944 return_type_id: 0x6720d32f parameter_id: 0x1b8590a8 @@ -311408,12 +318914,28 @@ function { parameter_id: 0x19c40476 } function { + id: 0x9bf23070 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x11b57133 + parameter_id: 0x6d7f5ff6 +} +function { id: 0x9bf37946 return_type_id: 0x6720d32f parameter_id: 0x1b2ca025 parameter_id: 0x2e2c982d } function { + id: 0x9bf40739 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x14f37d47 + parameter_id: 0x2170d06d + parameter_id: 0x0a134144 + parameter_id: 0x13580d6c +} +function { id: 0x9bf6c118 return_type_id: 0x6720d32f parameter_id: 0x1b3398cc @@ -311939,6 +319461,12 @@ function { parameter_id: 0xe5e56f65 } function { + id: 0x9c639284 + return_type_id: 0x6720d32f + parameter_id: 0x0665e6b6 + parameter_id: 0x1e820193 +} +function { id: 0x9c660c95 return_type_id: 0x6720d32f parameter_id: 0x0483e6f8 @@ -312119,6 +319647,15 @@ function { parameter_id: 0x33756485 } function { + id: 0x9c7facb4 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0xb38a8bec + parameter_id: 0x35c4d162 + parameter_id: 0x38d23361 + parameter_id: 0x07dcdbe1 +} +function { id: 0x9c814f78 return_type_id: 0x6720d32f parameter_id: 0x0483e6f8 @@ -312324,6 +319861,13 @@ function { parameter_id: 0x34c92288 } function { + id: 0x9c9b15ff + return_type_id: 0x6720d32f + parameter_id: 0x0d7ce7cc + parameter_id: 0x9741c5fc + parameter_id: 0x6720d32f +} +function { id: 0x9c9c5425 return_type_id: 0x6720d32f parameter_id: 0x054f691a @@ -312447,6 +319991,12 @@ function { parameter_id: 0x06ef24ac } function { + id: 0x9cb7a3ee + return_type_id: 0x6720d32f + parameter_id: 0x0f78474f + parameter_id: 0xba5444a6 +} +function { id: 0x9cb7cef1 return_type_id: 0x6720d32f parameter_id: 0x00b7947f @@ -312806,6 +320356,13 @@ function { parameter_id: 0x33d0e528 } function { + id: 0x9cf8d4d9 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x914dbfdc + parameter_id: 0x07dcdbe1 +} +function { id: 0x9cf9beaa return_type_id: 0x6720d32f parameter_id: 0x054f691a @@ -313086,6 +320643,11 @@ function { parameter_id: 0xc9082b19 } function { + id: 0x9d251990 + return_type_id: 0x6720d32f + parameter_id: 0x0297eaff +} +function { id: 0x9d25c351 return_type_id: 0x6720d32f parameter_id: 0x0258f96e @@ -313190,6 +320752,12 @@ function { parameter_id: 0x30600191 } function { + id: 0x9d30566e + return_type_id: 0x6720d32f + parameter_id: 0x026c3dea + parameter_id: 0x0aee8ed6 +} +function { id: 0x9d30fa23 return_type_id: 0x6720d32f parameter_id: 0x00dd92af @@ -313416,6 +320984,12 @@ function { parameter_id: 0x6720d32f } function { + id: 0x9d4713e6 + return_type_id: 0x6720d32f + parameter_id: 0x034b35b4 + parameter_id: 0x054f691a +} +function { id: 0x9d475de3 return_type_id: 0x6720d32f parameter_id: 0x056cf603 @@ -313514,6 +321088,13 @@ function { parameter_id: 0x6720d32f } function { + id: 0x9d50188a + return_type_id: 0x6720d32f + parameter_id: 0x0258f96e + parameter_id: 0x100a15ee + parameter_id: 0x1bb6a471 +} +function { id: 0x9d51e53b return_type_id: 0x6720d32f parameter_id: 0x04c27a37 @@ -313734,6 +321315,13 @@ function { parameter_id: 0x368ec5cb } function { + id: 0x9d760cc4 + return_type_id: 0x6720d32f + parameter_id: 0x0357d2dd + parameter_id: 0x0b27dc43 + parameter_id: 0x3e10b518 +} +function { id: 0x9d763af9 return_type_id: 0x6720d32f parameter_id: 0x0258f96e @@ -313979,6 +321567,19 @@ function { parameter_id: 0x13bdf349 } function { + id: 0x9da1e0c3 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0xc700b957 + parameter_id: 0x07dcdbe1 +} +function { + id: 0x9da46876 + return_type_id: 0x6720d32f + parameter_id: 0x01e0b0cf + parameter_id: 0x1729da91 +} +function { id: 0x9da4bde5 return_type_id: 0x6720d32f parameter_id: 0x0258f96e @@ -314063,6 +321664,11 @@ function { parameter_id: 0x4585663f } function { + id: 0x9db75c24 + return_type_id: 0x6720d32f + parameter_id: 0x00defc2c +} +function { id: 0x9db78784 return_type_id: 0x6720d32f parameter_id: 0x00dd92af @@ -314399,6 +322005,12 @@ function { parameter_id: 0x4585663f } function { + id: 0x9dd4624b + return_type_id: 0x6720d32f + parameter_id: 0x0258f96e + parameter_id: 0x30afcff2 +} +function { id: 0x9dd5dbef return_type_id: 0x6720d32f parameter_id: 0x078316ff @@ -314475,6 +322087,12 @@ function { parameter_id: 0xf435685e } function { + id: 0x9ddc45fb + return_type_id: 0x6720d32f + parameter_id: 0x0258f96e + parameter_id: 0x32a623d7 +} +function { id: 0x9ddc5532 return_type_id: 0x6720d32f parameter_id: 0x01c5a749 @@ -314560,6 +322178,12 @@ function { parameter_id: 0x0c45539b } function { + id: 0x9de1e6d5 + return_type_id: 0x6720d32f + parameter_id: 0x0258f96e + parameter_id: 0x3dcee85d +} +function { id: 0x9de31a69 return_type_id: 0x6720d32f parameter_id: 0x000fdfa4 @@ -314671,6 +322295,14 @@ function { parameter_id: 0x01ae1e33 } function { + id: 0x9dec0a70 + return_type_id: 0x6720d32f + parameter_id: 0x0258f96e + parameter_id: 0x3e10b518 + parameter_id: 0x051414e1 + parameter_id: 0xf435685e +} +function { id: 0x9dec5d8d return_type_id: 0x6720d32f parameter_id: 0x0258f96e @@ -314692,12 +322324,6 @@ function { parameter_id: 0x3e10b518 } function { - id: 0x9def2541 - return_type_id: 0x6720d32f - parameter_id: 0x0258f96e - parameter_id: 0x3e7e0d52 -} -function { id: 0x9defdaa5 return_type_id: 0x6720d32f parameter_id: 0x0258f96e @@ -314777,6 +322403,14 @@ function { parameter_id: 0x01f1fcec } function { + id: 0x9dfe4183 + return_type_id: 0x6720d32f + parameter_id: 0x0c2e195c + parameter_id: 0xd0b3a203 + parameter_id: 0xd0b3a203 + parameter_id: 0xf1a6dfed +} +function { id: 0x9dfe427d return_type_id: 0x6720d32f parameter_id: 0x0c2e195c @@ -314883,6 +322517,17 @@ function { parameter_id: 0xf1a6dfed } function { + id: 0x9e071849 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x2ec35650 +} +function { + id: 0x9e08a6b2 + return_type_id: 0x6720d32f + parameter_id: 0x0e211675 +} +function { id: 0x9e08dfbb return_type_id: 0x6720d32f parameter_id: 0x0c467c34 @@ -314918,6 +322563,21 @@ function { parameter_id: 0x6720d32f } function { + id: 0x9e15f25c + return_type_id: 0x6720d32f + parameter_id: 0x0f4dcd61 + parameter_id: 0x18bd6530 + parameter_id: 0x92233392 + parameter_id: 0x07dcdbe1 +} +function { + id: 0x9e1893ee + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x295c7202 + parameter_id: 0x07dcdbe1 +} +function { id: 0x9e19651e return_type_id: 0x6720d32f parameter_id: 0x0e6618c4 @@ -314940,6 +322600,13 @@ function { parameter_id: 0x3d8951f4 } function { + id: 0x9e1a5c22 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x29ef8105 + parameter_id: 0x07dcdbe1 +} +function { id: 0x9e1dd697 return_type_id: 0x6720d32f parameter_id: 0x0fabaf3b @@ -314966,6 +322633,14 @@ function { parameter_id: 0x0b756bd6 } function { + id: 0x9e20f17d + return_type_id: 0x6720d32f + parameter_id: 0x0fabaf3b + parameter_id: 0x120540d1 + parameter_id: 0x0b756bd6 + parameter_id: 0x0c715d8d +} +function { id: 0x9e215925 return_type_id: 0x6720d32f parameter_id: 0x0ab9fa4c @@ -315044,6 +322719,13 @@ function { parameter_id: 0x07dcdbe1 } function { + id: 0x9e3092d5 + return_type_id: 0x6720d32f + parameter_id: 0x0f4dcd61 + parameter_id: 0x18bd6530 + parameter_id: 0x07dcdbe1 +} +function { id: 0x9e31377c return_type_id: 0x6720d32f parameter_id: 0x0f78474f @@ -315078,6 +322760,38 @@ function { parameter_id: 0x0effc5a1 } function { + id: 0x9e40b36c + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x3c0cf46a + parameter_id: 0x322b7a90 + parameter_id: 0x07dcdbe1 +} +function { + id: 0x9e40c88b + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x3b68ec61 + parameter_id: 0x4585663f + parameter_id: 0x07dcdbe1 +} +function { + id: 0x9e41cf39 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x3c53e119 + parameter_id: 0x322b7a90 + parameter_id: 0x07dcdbe1 +} +function { + id: 0x9e41e293 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x3c0cf46a + parameter_id: 0x376c8705 + parameter_id: 0x07dcdbe1 +} +function { id: 0x9e41ea47 return_type_id: 0x6720d32f parameter_id: 0x0f627bc8 @@ -315099,12 +322813,62 @@ function { parameter_id: 0x6720d32f } function { + id: 0x9e46dca9 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x3c53e119 + parameter_id: 0x2e18f543 +} +function { + id: 0x9e4766bb + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x376c8705 + parameter_id: 0x92233392 + parameter_id: 0x92233392 + parameter_id: 0x07dcdbe1 +} +function { id: 0x9e49e56e return_type_id: 0x6720d32f parameter_id: 0x0b7c4f67 parameter_id: 0x4585663f } function { + id: 0x9e4b75cd + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x3c53e119 + parameter_id: 0x18bd6530 +} +function { + id: 0x9e4c26c1 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x3c0cf46a +} +function { + id: 0x9e504197 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x3b68ec61 + parameter_id: 0x07dcdbe1 +} +function { + id: 0x9e51554f + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x3b5017f2 +} +function { + id: 0x9e51dd03 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x3b143836 + parameter_id: 0x07dcdbe1 + parameter_id: 0x1bf16028 +} +function { id: 0x9e52789b return_type_id: 0x6720d32f parameter_id: 0x0de4c6b1 @@ -315126,6 +322890,13 @@ function { parameter_id: 0x2d8ee262 } function { + id: 0x9e590019 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x39388fd3 + parameter_id: 0x07dcdbe1 +} +function { id: 0x9e5980cd return_type_id: 0x6720d32f parameter_id: 0x0f6ef6cc @@ -315155,6 +322926,41 @@ function { parameter_id: 0x0f78474f } function { + id: 0x9e5fde3c + return_type_id: 0x6720d32f + parameter_id: 0x0dc9e98b + parameter_id: 0x295c7202 + parameter_id: 0x295c7202 + parameter_id: 0x914dbfdc + parameter_id: 0x914dbfdc + parameter_id: 0x391f15ea + parameter_id: 0x914dbfdc +} +function { + id: 0x9e5fdeba + return_type_id: 0x6720d32f + parameter_id: 0x0dc9e98b + parameter_id: 0x295c7202 + parameter_id: 0x295c7202 + parameter_id: 0x914dbfdc + parameter_id: 0x914dbfdc + parameter_id: 0x18bd6530 + parameter_id: 0x914dbfdc +} +function { + id: 0x9e609ac2 + return_type_id: 0x6720d32f + parameter_id: 0x0f4dcd61 + parameter_id: 0x0cbf60eb + parameter_id: 0x07dcdbe1 +} +function { + id: 0x9e61a70c + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x376c8705 +} +function { id: 0x9e61ffc7 return_type_id: 0x6720d32f parameter_id: 0x00c72527 @@ -315179,6 +322985,12 @@ function { parameter_id: 0x07dcdbe1 } function { + id: 0x9e65fffe + return_type_id: 0x6720d32f + parameter_id: 0x09e67e75 + parameter_id: 0x6720d32f +} +function { id: 0x9e663e24 return_type_id: 0x6720d32f parameter_id: 0x0ca27481 @@ -315186,6 +322998,37 @@ function { parameter_id: 0x0277bf8a } function { + id: 0x9e67eade + return_type_id: 0x6720d32f + parameter_id: 0x0ca27481 + parameter_id: 0x33e53462 +} +function { + id: 0x9e68eb19 + return_type_id: 0x6720d32f + parameter_id: 0x0f4dcd61 + parameter_id: 0x0f4dcd61 + parameter_id: 0x18bd6530 + parameter_id: 0x18bd6530 + parameter_id: 0x07dcdbe1 +} +function { + id: 0x9e69dafa + return_type_id: 0x6720d32f + parameter_id: 0x0ca27481 + parameter_id: 0x3399c453 + parameter_id: 0x3b461cc8 + parameter_id: 0x4585663f + parameter_id: 0x11d941b8 +} +function { + id: 0x9e6a2131 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x376c8705 + parameter_id: 0x2e18f543 +} +function { id: 0x9e6bce91 return_type_id: 0x6720d32f parameter_id: 0x09e67e75 @@ -315223,6 +323066,13 @@ function { parameter_id: 0x0e656e5d } function { + id: 0x9e6f0e68 + return_type_id: 0x6720d32f + parameter_id: 0x09e67e75 + parameter_id: 0x6720d32f + parameter_id: 0x2bc65a97 +} +function { id: 0x9e711486 return_type_id: 0x6720d32f parameter_id: 0x0de4c6b1 @@ -315281,6 +323131,28 @@ function { parameter_id: 0x25653b02 } function { + id: 0x9e7aaf3f + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x31d9e79a + parameter_id: 0x07dcdbe1 + parameter_id: 0x0aa1f0ee +} +function { + id: 0x9e7bd8f3 + return_type_id: 0x6720d32f + parameter_id: 0x05c2a3ca + parameter_id: 0xa2e4cbbb +} +function { + id: 0x9e7d48ad + return_type_id: 0x6720d32f + parameter_id: 0x0dc9e98b + parameter_id: 0x21069feb + parameter_id: 0x295c7202 + parameter_id: 0x6720d32f +} +function { id: 0x9e7f936c return_type_id: 0x6720d32f parameter_id: 0x0c485c36 @@ -315365,6 +323237,13 @@ function { parameter_id: 0xc9082b19 } function { + id: 0x9e9034ea + return_type_id: 0x6720d32f + parameter_id: 0x0dfb7909 + parameter_id: 0x1df06cce + parameter_id: 0x6720d32f +} +function { id: 0x9e917c22 return_type_id: 0x6720d32f parameter_id: 0x0c467c34 @@ -315395,6 +323274,12 @@ function { parameter_id: 0x0c56e1ee } function { + id: 0x9e960f96 + return_type_id: 0x6720d32f + parameter_id: 0x054f691a + parameter_id: 0x914dbfdc +} +function { id: 0x9e9a6f39 return_type_id: 0x6720d32f parameter_id: 0x08326638 @@ -315457,6 +323342,12 @@ function { parameter_id: 0x07dcdbe1 } function { + id: 0x9eb7f57a + return_type_id: 0x6720d32f + parameter_id: 0x0e211675 + parameter_id: 0x2fd4f232 +} +function { id: 0x9eb8629a return_type_id: 0x6720d32f parameter_id: 0x0cc78943 @@ -315475,6 +323366,12 @@ function { parameter_id: 0x2060db23 } function { + id: 0x9ebf0984 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x00c72527 +} +function { id: 0x9ebfed71 return_type_id: 0x6720d32f parameter_id: 0x0ca27481 @@ -315488,6 +323385,14 @@ function { parameter_id: 0x07dcdbe1 } function { + id: 0x9ec13de2 + return_type_id: 0x6720d32f + parameter_id: 0x0d7ce7cc + parameter_id: 0x01ace255 + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f +} +function { id: 0x9ec5d248 return_type_id: 0x6720d32f parameter_id: 0x0db5f18a @@ -315850,6 +323755,14 @@ function { parameter_id: 0xf435685e } function { + id: 0x9f043139 + return_type_id: 0x6720d32f + parameter_id: 0x08bd7371 + parameter_id: 0x27a7c613 + parameter_id: 0xd5cc9c9a + parameter_id: 0x18bd6530 +} +function { id: 0x9f04337e return_type_id: 0x6720d32f parameter_id: 0x0a134144 @@ -315968,6 +323881,22 @@ function { parameter_id: 0x3e10b518 } function { + id: 0x9f248ea4 + return_type_id: 0x6720d32f + parameter_id: 0x0945c216 + parameter_id: 0x391f15ea + parameter_id: 0x4585663f +} +function { + id: 0x9f25dc29 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x6d7f5ff6 + parameter_id: 0xb38a8bec + parameter_id: 0x35c4d162 + parameter_id: 0x07dcdbe1 +} +function { id: 0x9f25fe02 return_type_id: 0x6720d32f parameter_id: 0x0ee13889 @@ -316264,6 +324193,11 @@ function { parameter_id: 0x6720d32f } function { + id: 0x9f67ec8c + return_type_id: 0x3e10b518 + parameter_id: 0x348fecbf +} +function { id: 0x9f6a0f7c return_type_id: 0x6720d32f parameter_id: 0x0930c6d9 @@ -316297,6 +324231,15 @@ function { parameter_id: 0x054f691a } function { + id: 0x9f71449b + return_type_id: 0x6720d32f + parameter_id: 0x0a70ce1b + parameter_id: 0x18bd6530 + parameter_id: 0x3e10b518 + parameter_id: 0x391f15ea + parameter_id: 0x07dcdbe1 +} +function { id: 0x9f72f53e return_type_id: 0x6720d32f parameter_id: 0x0258f96e @@ -316347,6 +324290,13 @@ function { parameter_id: 0x0bfc9031 } function { + id: 0x9f7fd20b + return_type_id: 0x6720d32f + parameter_id: 0x0a70ce1b + parameter_id: 0x18bd6530 + parameter_id: 0x07dcdbe1 +} +function { id: 0x9f808c95 return_type_id: 0x6720d32f parameter_id: 0x0c6c61ad @@ -316399,6 +324349,16 @@ function { parameter_id: 0x6720d32f } function { + id: 0x9f85a1ff + return_type_id: 0x6720d32f + parameter_id: 0x0de4c6b1 + parameter_id: 0x5d8155a5 + parameter_id: 0x2669d715 + parameter_id: 0xf435685e + parameter_id: 0xfa5f37bb + parameter_id: 0x87463428 +} +function { id: 0x9f87b817 return_type_id: 0x6720d32f parameter_id: 0x0917901f @@ -316419,6 +324379,24 @@ function { parameter_id: 0x3e10b518 } function { + id: 0x9f8d452b + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x4585663f + parameter_id: 0x914dbfdc + parameter_id: 0xc9082b19 + parameter_id: 0xcbcc8512 + parameter_id: 0x07dcdbe1 +} +function { + id: 0x9f8e9af9 + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x4585663f + parameter_id: 0x914dbfdc + parameter_id: 0x3247ae94 +} +function { id: 0x9f93bc17 return_type_id: 0x6720d32f parameter_id: 0x04f7a60d @@ -316510,22 +324488,10 @@ function { parameter_id: 0x0258f96e } function { - id: 0x9fa510e8 - return_type_id: 0x6720d32f - parameter_id: 0x08dcfb76 - parameter_id: 0x0561578b - parameter_id: 0x1b4ba19a - parameter_id: 0x6720d32f - parameter_id: 0x18bd6530 -} -function { - id: 0x9fa51880 + id: 0x9faa0088 return_type_id: 0x6720d32f - parameter_id: 0x08dcfb76 - parameter_id: 0x0561578b - parameter_id: 0x1b4ba19a - parameter_id: 0x6720d32f - parameter_id: 0x391f15ea + parameter_id: 0x0cf3d8fe + parameter_id: 0x4585663f } function { id: 0x9fab680a @@ -316535,6 +324501,13 @@ function { parameter_id: 0xc9082b19 } function { + id: 0x9fabf7be + return_type_id: 0x6720d32f + parameter_id: 0x0cf3d8fe + parameter_id: 0x4585663f + parameter_id: 0x07dcdbe1 +} +function { id: 0x9fac2fbc return_type_id: 0x6720d32f parameter_id: 0x04b193cc @@ -316753,14 +324726,6 @@ function { parameter_id: 0xeab68ea2 } function { - id: 0x9fcb5ff8 - return_type_id: 0x6720d32f - parameter_id: 0x08dcfb76 - parameter_id: 0x1b4ba19a - parameter_id: 0x4585663f - parameter_id: 0x33756485 -} -function { id: 0x9fcca68f return_type_id: 0x6720d32f parameter_id: 0x09483d5e @@ -316822,6 +324787,11 @@ function { return_type_id: 0x11c404ba } function { + id: 0x9fd193aa + return_type_id: 0x6720d32f + parameter_id: 0x0945c216 +} +function { id: 0x9fd1a709 return_type_id: 0x6720d32f parameter_id: 0x09451098 @@ -317004,6 +324974,13 @@ function { parameter_id: 0x340bec45 } function { + id: 0xa040d060 + return_type_id: 0x0258f96e + parameter_id: 0x31e58fe0 + parameter_id: 0x4585663f + parameter_id: 0x0258f96e +} +function { id: 0xa075fe88 return_type_id: 0xfc0e1dbd parameter_id: 0x1dce0fdd @@ -317018,6 +324995,11 @@ function { parameter_id: 0x33756485 } function { + id: 0xa08db938 + return_type_id: 0x6720d32f + parameter_id: 0xf435685e +} +function { id: 0xa08f5503 return_type_id: 0xfc0e1dbd parameter_id: 0x18ea6ae3 @@ -317098,6 +325080,14 @@ function { parameter_id: 0x2b8f13b3 } function { + id: 0xa22a22cc + return_type_id: 0x1259e377 + parameter_id: 0x0ca27481 + parameter_id: 0x3861403d + parameter_id: 0x270c2906 + parameter_id: 0x6720d32f +} +function { id: 0xa22b5357 return_type_id: 0x1259e377 parameter_id: 0x0ca27481 @@ -317193,6 +325183,17 @@ function { parameter_id: 0x3e10b518 } function { + id: 0xa4f69947 + return_type_id: 0x6720d32f + parameter_id: 0xe62ebf07 + parameter_id: 0x391f15ea + parameter_id: 0x6720d32f + parameter_id: 0x1b8590a8 + parameter_id: 0x3e001c39 + parameter_id: 0x1b8590a8 + parameter_id: 0xc9082b19 +} +function { id: 0xa52e0ac1 return_type_id: 0x3dcee85d parameter_id: 0x0cc78943 @@ -317421,6 +325422,11 @@ function { parameter_id: 0x2584a3b9 } function { + id: 0xa7436d37 + return_type_id: 0x2d77f22a + parameter_id: 0x2f24a589 +} +function { id: 0xa780332f return_type_id: 0x6720d32f parameter_id: 0xe8034002 @@ -317455,6 +325461,12 @@ function { parameter_id: 0x2dec91ef } function { + id: 0xa7ea77a4 + return_type_id: 0xfc0e1dbd + parameter_id: 0x00c83ba6 + parameter_id: 0x3e10b518 +} +function { id: 0xa7f54c85 return_type_id: 0xfc0e1dbd parameter_id: 0x0355dc72 @@ -317514,6 +325526,16 @@ function { parameter_id: 0x6720d32f } function { + id: 0xa8ae6b7a + return_type_id: 0xfc0e1dbd + parameter_id: 0x3df0a7d3 + parameter_id: 0x33756485 + parameter_id: 0xfc0e1dbd + parameter_id: 0x2b23aa9d + parameter_id: 0x0cbf60eb + parameter_id: 0x28eb23d4 +} +function { id: 0xa8d53dcc return_type_id: 0x1253769c parameter_id: 0x23f09c34 @@ -317573,6 +325595,13 @@ function { parameter_id: 0xf1a6dfed } function { + id: 0xaa27b09c + return_type_id: 0x0e211675 + parameter_id: 0x0258f96e + parameter_id: 0x3e10b518 + parameter_id: 0x6720d32f +} +function { id: 0xaa55ab2e return_type_id: 0x31b5a66f parameter_id: 0x2668e644 @@ -317597,6 +325626,12 @@ function { parameter_id: 0x3e10b518 } function { + id: 0xaa9ceb0d + return_type_id: 0x0e211675 + parameter_id: 0x0258f96e + parameter_id: 0x16b45c7f +} +function { id: 0xaa9fab30 return_type_id: 0x3dcee85d parameter_id: 0x347303b4 @@ -317609,13 +325644,6 @@ function { parameter_id: 0x3fe8ca70 } function { - id: 0xaab3b130 - return_type_id: 0xfc0e1dbd - parameter_id: 0x322509a0 - parameter_id: 0x4585663f - parameter_id: 0x33756485 -} -function { id: 0xaab8b473 return_type_id: 0xfc0e1dbd parameter_id: 0x35abdbf6 @@ -317694,6 +325722,15 @@ function { parameter_id: 0x292ab2e2 } function { + id: 0xabe6a73e + return_type_id: 0x21b2d2f4 + parameter_id: 0x1285100d + parameter_id: 0xc9082b19 + parameter_id: 0x5268af9d + parameter_id: 0x4585663f + parameter_id: 0xf1a6dfed +} +function { id: 0xabfb6aa8 return_type_id: 0x3dcee85d parameter_id: 0x347303b4 @@ -317932,6 +325969,12 @@ function { parameter_id: 0xb0ddb211 } function { + id: 0xb28c48b5 + return_type_id: 0x067c4b9a + parameter_id: 0x358ff5b7 + parameter_id: 0x31b5a66f +} +function { id: 0xb2be15b9 return_type_id: 0x6720d32f parameter_id: 0xbdd18903 @@ -317962,6 +326005,13 @@ function { parameter_id: 0x358ff5b7 } function { + id: 0xb3cfd554 + return_type_id: 0x067c4b9a + parameter_id: 0x358ff5b7 + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f +} +function { id: 0xb3df35fa return_type_id: 0x06835e9c parameter_id: 0x391f15ea @@ -317995,6 +326045,12 @@ function { parameter_id: 0xf017819f } function { + id: 0xb55dce02 + return_type_id: 0x160ba102 + parameter_id: 0x0f12d1e7 + parameter_id: 0x6720d32f +} +function { id: 0xb649ac13 return_type_id: 0x067c4b9a parameter_id: 0x2668e644 @@ -318020,6 +326076,14 @@ function { parameter_id: 0xf1a6dfed } function { + id: 0xb82f817c + return_type_id: 0x06835e9c + parameter_id: 0x1582ab06 + parameter_id: 0x33756485 + parameter_id: 0x6720d32f + parameter_id: 0xf1a6dfed +} +function { id: 0xb8307855 return_type_id: 0x06835e9c parameter_id: 0x1582ab06 @@ -318028,6 +326092,12 @@ function { parameter_id: 0x18ea6ae3 } function { + id: 0xb8358fd3 + return_type_id: 0x06835e9c + parameter_id: 0x1582ab06 + parameter_id: 0x33756485 +} +function { id: 0xb87b745c return_type_id: 0x06835e9c parameter_id: 0x14b9453b @@ -318102,6 +326172,12 @@ function { parameter_id: 0x6d7f5ff6 } function { + id: 0xb98ee524 + return_type_id: 0x399c459b + parameter_id: 0x399c459b + parameter_id: 0x1b8590a8 +} +function { id: 0xb996d78c return_type_id: 0xc4cf348e parameter_id: 0x03f70c68 @@ -318114,6 +326190,15 @@ function { parameter_id: 0x33756485 } function { + id: 0xb9f52377 + return_type_id: 0x6720d32f + parameter_id: 0x92233392 + parameter_id: 0x3c417e01 + parameter_id: 0x33756485 + parameter_id: 0x33756485 + parameter_id: 0x6720d32f +} +function { id: 0xba11bc6a return_type_id: 0x06835e9c parameter_id: 0x1e2533ab @@ -318130,6 +326215,14 @@ function { parameter_id: 0xf1a6dfed } function { + id: 0xba97bb1d + return_type_id: 0x6720d32f + parameter_id: 0x9565759f + parameter_id: 0x9565759f + parameter_id: 0x6d7f5ff6 + parameter_id: 0x33d50b40 +} +function { id: 0xbb40a305 return_type_id: 0x6720d32f parameter_id: 0x92233392 @@ -318265,6 +326358,11 @@ function { parameter_id: 0x315b7e01 } function { + id: 0xbeab1c63 + return_type_id: 0x3176a085 + parameter_id: 0x35d510c3 +} +function { id: 0xbec298be return_type_id: 0x3176a085 parameter_id: 0x347303b4 @@ -318494,6 +326592,11 @@ function { parameter_id: 0x310ec01d } function { + id: 0xc272f60e + return_type_id: 0x4585663f + parameter_id: 0x32a623d7 +} +function { id: 0xc29f6b92 return_type_id: 0x3b399f9e parameter_id: 0x31fe2b41 @@ -318825,6 +326928,12 @@ function { parameter_id: 0x12e75923 } function { + id: 0xcaae52cc + return_type_id: 0x4585663f + parameter_id: 0x1d44326e + parameter_id: 0xc9082b19 +} +function { id: 0xcabd891e return_type_id: 0x4585663f parameter_id: 0x15c389f6 @@ -318869,6 +326978,13 @@ function { parameter_id: 0x0258f96e } function { + id: 0xcbd33190 + return_type_id: 0x2718fd24 + parameter_id: 0x1285100d + parameter_id: 0x34d79405 + parameter_id: 0x4585663f +} +function { id: 0xcbea3bfa return_type_id: 0x65d74a06 parameter_id: 0x246dc7d4 @@ -318887,6 +327003,12 @@ function { parameter_id: 0x3360dff4 } function { + id: 0xcc25b8e9 + return_type_id: 0x4585663f + parameter_id: 0x0a70ce1b + parameter_id: 0x18bd6530 +} +function { id: 0xcc787cc3 return_type_id: 0x2efe8065 parameter_id: 0x1a1051a0 @@ -318900,6 +327022,11 @@ function { parameter_id: 0x6720d32f } function { + id: 0xcc8a0e7e + return_type_id: 0x4585663f + parameter_id: 0x0945c216 +} +function { id: 0xcc9736e7 return_type_id: 0x65d74a06 parameter_id: 0x3360dff4 @@ -318938,6 +327065,11 @@ function { parameter_id: 0x6720d32f } function { + id: 0xcd844708 + return_type_id: 0x4585663f + parameter_id: 0x0d7ce7cc +} +function { id: 0xcd8cb8f5 return_type_id: 0x4585663f parameter_id: 0x0d5f1839 @@ -319035,6 +327167,14 @@ function { parameter_id: 0x01241c02 } function { + id: 0xce9ab7ea + return_type_id: 0x4585663f + parameter_id: 0x01222f7d + parameter_id: 0x064d6086 + parameter_id: 0x4585663f + parameter_id: 0x4585663f +} +function { id: 0xceb0f977 return_type_id: 0x4585663f parameter_id: 0x01ae1e33 @@ -319108,6 +327248,15 @@ function { parameter_id: 0x4585663f } function { + id: 0xcfac76b5 + return_type_id: 0x4585663f + parameter_id: 0x04810ecd + parameter_id: 0x1582ab06 + parameter_id: 0x064d6086 + parameter_id: 0x33756485 + parameter_id: 0x7f7172c7 +} +function { id: 0xcfc2716e return_type_id: 0x6d7f5ff6 parameter_id: 0xc9082b19 @@ -319127,6 +327276,14 @@ function { parameter_id: 0x1bf16028 } function { + id: 0xd001e6e1 + return_type_id: 0x36f998d3 + parameter_id: 0x072e5f93 + parameter_id: 0xf435685e + parameter_id: 0x914dbfdc + parameter_id: 0x295c7202 +} +function { id: 0xd015e7bc return_type_id: 0x0ae4a2c7 parameter_id: 0x3d896417 @@ -319224,6 +327381,12 @@ function { parameter_id: 0x0a193bb7 } function { + id: 0xd655ba3d + return_type_id: 0x3b0b4c9d + parameter_id: 0x1285100d + parameter_id: 0xf1a6dfed +} +function { id: 0xd673de47 return_type_id: 0x02eb105a parameter_id: 0x02eb105a @@ -319250,6 +327413,12 @@ function { return_type_id: 0x02eb105a } function { + id: 0xd6e94dc1 + return_type_id: 0x36f998d3 + parameter_id: 0x105c8027 + parameter_id: 0x300fdc99 +} +function { id: 0xd742e545 return_type_id: 0x26ad5dc1 parameter_id: 0xf1a6dfed @@ -319270,24 +327439,27 @@ function { parameter_id: 0x6d7f5ff6 } function { - id: 0xd8625902 - return_type_id: 0x6d7f5ff6 - parameter_id: 0x92233392 - parameter_id: 0x92233392 - parameter_id: 0x1908b154 -} -function { id: 0xd88df0fd return_type_id: 0x2309ad3e parameter_id: 0x6720d32f parameter_id: 0x6720d32f } function { + id: 0xd8e8dad0 + return_type_id: 0x33558def + parameter_id: 0x4585663f +} +function { id: 0xd94d3717 return_type_id: 0x02eb105a parameter_id: 0x3e10b518 } function { + id: 0xd9bb2b92 + return_type_id: 0x4585663f + parameter_id: 0x5d8155a5 +} +function { id: 0xd9de6af9 return_type_id: 0x1e93567a parameter_id: 0x09427c40 @@ -319503,6 +327675,12 @@ function { parameter_id: 0x4585663f } function { + id: 0xdf267053 + return_type_id: 0x36f998d3 + parameter_id: 0x3760766d + parameter_id: 0x300fdc99 +} +function { id: 0xdf475327 return_type_id: 0x030b9acf } @@ -319552,6 +327730,15 @@ function { parameter_id: 0x4585663f } function { + id: 0xe10f9802 + return_type_id: 0x2eab5b8a + parameter_id: 0x0de4c6b1 + parameter_id: 0xfa5f37bb + parameter_id: 0x4585663f + parameter_id: 0x4585663f + parameter_id: 0x4585663f +} +function { id: 0xe12a6d4e return_type_id: 0x07450c2a parameter_id: 0x3760766d @@ -319580,6 +327767,11 @@ function { parameter_id: 0x187ed209 } function { + id: 0xe2abbe2e + return_type_id: 0x1b55a8f2 + parameter_id: 0x347303b4 +} +function { id: 0xe2c8401b return_type_id: 0x3ea2e6c1 parameter_id: 0x3518a6ab @@ -319741,12 +327933,6 @@ function { parameter_id: 0x33756485 } function { - id: 0xe6385497 - return_type_id: 0x6d7f5ff6 - parameter_id: 0x6ee0bcff - parameter_id: 0xc9082b19 -} -function { id: 0xe63fffaa return_type_id: 0x2e8ad82b parameter_id: 0x3a583251 @@ -319863,6 +328049,14 @@ function { parameter_id: 0x23e856d0 } function { + id: 0xe97c10c0 + return_type_id: 0x1b4a1f75 + parameter_id: 0x0cf3d8fe + parameter_id: 0x31d9e79a + parameter_id: 0xc9082b19 + parameter_id: 0x92233392 +} +function { id: 0xea3d26bb return_type_id: 0x2e8ed696 parameter_id: 0x0e6618c4 @@ -319988,6 +328182,15 @@ function { parameter_id: 0x18bd6530 } function { + id: 0xf0122aeb + return_type_id: 0x6d7f5ff6 + parameter_id: 0x3e6396e0 + parameter_id: 0x4585663f + parameter_id: 0xe2ce8d42 + parameter_id: 0x0ca27481 + parameter_id: 0x03942c7a +} +function { id: 0xf0196dc4 return_type_id: 0x32a623d7 parameter_id: 0x30da8694 @@ -320120,6 +328323,11 @@ function { parameter_id: 0x358ff5b7 } function { + id: 0xf10ce2b4 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x3ea2e6c1 +} +function { id: 0xf1208847 return_type_id: 0x6d7f5ff6 parameter_id: 0x3861403d @@ -320137,6 +328345,13 @@ function { parameter_id: 0x00c72527 } function { + id: 0xf12845f8 + return_type_id: 0x32a623d7 + parameter_id: 0x32a623d7 + parameter_id: 0x7584e7da + parameter_id: 0x914dbfdc +} +function { id: 0xf1329f23 return_type_id: 0x6d7f5ff6 parameter_id: 0x3dcae1c0 @@ -320193,6 +328408,12 @@ function { parameter_id: 0x3c2755a3 } function { + id: 0xf1ae1eac + return_type_id: 0x3e6239e1 + parameter_id: 0x3e6239e1 + parameter_id: 0x27a7c613 +} +function { id: 0xf1b060ff return_type_id: 0x6d7f5ff6 parameter_id: 0x3f59ee8d @@ -320334,6 +328555,12 @@ function { parameter_id: 0x33d0e528 } function { + id: 0xf2553153 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x324e7f0f + parameter_id: 0x18bd6530 +} +function { id: 0xf25d597f return_type_id: 0x6d7f5ff6 parameter_id: 0x3399c453 @@ -320346,6 +328573,17 @@ function { parameter_id: 0x4585663f } function { + id: 0xf2708109 + return_type_id: 0x32a623d7 + parameter_id: 0x380c33d1 +} +function { + id: 0xf272e262 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x31b5a66f + parameter_id: 0x2ef43f67 +} +function { id: 0xf275a972 return_type_id: 0x6d7f5ff6 parameter_id: 0x3043f6b1 @@ -320370,6 +328608,14 @@ function { parameter_id: 0x3e10b518 } function { + id: 0xf2d3e848 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x324e7f0f + parameter_id: 0x3bcd0c02 + parameter_id: 0x2de928d9 + parameter_id: 0x18bd6530 +} +function { id: 0xf2d73ac2 return_type_id: 0x6d7f5ff6 parameter_id: 0x322c8c4b @@ -320391,6 +328637,19 @@ function { parameter_id: 0x31fe2b41 } function { + id: 0xf2e4f0d1 + return_type_id: 0x26e55184 + parameter_id: 0x3e10b518 + parameter_id: 0x0b4ebfc7 + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x28b7a3b7 + parameter_id: 0x043574da + parameter_id: 0x6720d32f + parameter_id: 0x6720d32f +} +function { id: 0xf2ee299f return_type_id: 0x6d7f5ff6 parameter_id: 0x324e7f0f @@ -320445,6 +328704,15 @@ function { parameter_id: 0x36194830 } function { + id: 0xf3248c4f + return_type_id: 0x6d7f5ff6 + parameter_id: 0x35f8cea5 + parameter_id: 0x3bcd0c02 + parameter_id: 0x4585663f + parameter_id: 0x2de928d9 + parameter_id: 0x18bd6530 +} +function { id: 0xf334abb2 return_type_id: 0x6d7f5ff6 parameter_id: 0x34bb6aad @@ -320470,6 +328738,11 @@ function { parameter_id: 0x358ff5b7 } function { + id: 0xf34d29c1 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x37a5cb14 +} +function { id: 0xf354bbbc return_type_id: 0x26e55184 parameter_id: 0x3e10b518 @@ -320571,6 +328844,11 @@ function { parameter_id: 0xd0b3a203 } function { + id: 0xf3f7a0bb + return_type_id: 0x32a623d7 + parameter_id: 0x3e10b518 +} +function { id: 0xf44fff9f return_type_id: 0x6d7f5ff6 parameter_id: 0x2936263d @@ -320756,6 +329034,12 @@ function { parameter_id: 0x3654c061 } function { + id: 0xf6be4a6e + return_type_id: 0x6d7f5ff6 + parameter_id: 0x20007040 + parameter_id: 0x06835e9c +} +function { id: 0xf6c0819f return_type_id: 0x6d7f5ff6 parameter_id: 0x21936a6e @@ -320872,6 +329156,12 @@ function { parameter_id: 0x1b8590a8 } function { + id: 0xf846d7da + return_type_id: 0x6d7f5ff6 + parameter_id: 0x18bd6530 + parameter_id: 0x33756485 +} +function { id: 0xf857e1a7 return_type_id: 0x6d7f5ff6 parameter_id: 0x1d12e85e @@ -320904,6 +329194,13 @@ function { parameter_id: 0x3ea31487 } function { + id: 0xf87e0015 + return_type_id: 0x3e6239e1 + parameter_id: 0x18bd6530 + parameter_id: 0x3e6239e1 + parameter_id: 0x0379c823 +} +function { id: 0xf87eb23d return_type_id: 0x6d7f5ff6 parameter_id: 0x1d19a9d5 @@ -320932,6 +329229,12 @@ function { parameter_id: 0x39a83127 } function { + id: 0xf8e4b6f7 + return_type_id: 0x172847a8 + parameter_id: 0x18bd6530 + parameter_id: 0x6720d32f +} +function { id: 0xf8fa1a38 return_type_id: 0x6d7f5ff6 parameter_id: 0x1e820193 @@ -320982,11 +329285,23 @@ function { parameter_id: 0x1d25f132 } function { + id: 0xf9f0c251 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x1b8590a8 + parameter_id: 0x6d7f5ff6 +} +function { id: 0xf9f5579f return_type_id: 0x6d7f5ff6 parameter_id: 0x1d44326e } function { + id: 0xfa01df81 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x1285100d + parameter_id: 0x0130219f +} +function { id: 0xfa126b6a return_type_id: 0x6d7f5ff6 parameter_id: 0x104d069a @@ -321019,6 +329334,13 @@ function { parameter_id: 0x33756485 } function { + id: 0xfa84c0ac + return_type_id: 0x6d7f5ff6 + parameter_id: 0x1285100d + parameter_id: 0x242fbc95 + parameter_id: 0x4585663f +} +function { id: 0xfaa21496 return_type_id: 0x6d7f5ff6 parameter_id: 0x10193e4a @@ -321035,6 +329357,11 @@ function { parameter_id: 0x064d6086 } function { + id: 0xfad7a092 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x11cfee5a +} +function { id: 0xfaddfa97 return_type_id: 0x6d7f5ff6 parameter_id: 0x11e6864c @@ -321106,6 +329433,14 @@ function { parameter_id: 0x4585663f } function { + id: 0xfc093226 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x09427c40 + parameter_id: 0x3e6239e1 + parameter_id: 0x15a30023 + parameter_id: 0x4585663f +} +function { id: 0xfc2e3179 return_type_id: 0x6d7f5ff6 parameter_id: 0x030b9acf @@ -321117,6 +329452,14 @@ function { parameter_id: 0x368487be } function { + id: 0xfc55fd47 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x0a70ce1b + parameter_id: 0x18bd6530 + parameter_id: 0x3e10b518 + parameter_id: 0x391f15ea +} +function { id: 0xfc59f36a return_type_id: 0x26e55184 parameter_id: 0x0258f96e @@ -321169,6 +329512,13 @@ function { parameter_id: 0x15a30023 } function { + id: 0xfc8f4f95 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x0cf3d8fe + parameter_id: 0x4585663f + parameter_id: 0x07dcdbe1 +} +function { id: 0xfca015af return_type_id: 0x6d7f5ff6 parameter_id: 0x08113aaf @@ -321288,6 +329638,19 @@ function { parameter_id: 0xe5b69de1 } function { + id: 0xfdb03c5c + return_type_id: 0x6d7f5ff6 + parameter_id: 0x0fabaf3b + parameter_id: 0x39d1288c + parameter_id: 0x6720d32f +} +function { + id: 0xfdb2dd0c + return_type_id: 0x6d7f5ff6 + parameter_id: 0x0258f96e + parameter_id: 0xe02e14d6 +} +function { id: 0xfdd651d2 return_type_id: 0x6d7f5ff6 parameter_id: 0x09a83f1c @@ -321380,6 +329743,18 @@ function { return_type_id: 0x6d7f5ff6 } function { + id: 0xfebe0504 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x03942c7a + parameter_id: 0x3fd547b8 +} +function { + id: 0xfec047b0 + return_type_id: 0x6d7f5ff6 + parameter_id: 0x0258f96e + parameter_id: 0x3c88bbfa +} +function { id: 0xfec3d248 return_type_id: 0x6d7f5ff6 parameter_id: 0x019e2530 @@ -321410,6 +329785,12 @@ function { parameter_id: 0x3f063da2 } function { + id: 0xfee76c7c + return_type_id: 0x1b2ca025 + parameter_id: 0x3b04bead + parameter_id: 0x6720d32f +} +function { id: 0xfeedb339 return_type_id: 0x6d7f5ff6 parameter_id: 0x02ed0755 @@ -321494,6 +329875,16 @@ function { parameter_id: 0x040d1b01 } function { + id: 0xffb4ff33 + return_type_id: 0x32a623d7 + parameter_id: 0x0ca27481 + parameter_id: 0x3e10b518 + parameter_id: 0x5d8155a5 + parameter_id: 0x337b7b81 + parameter_id: 0x0277bf8a + parameter_id: 0x07dcdbe1 +} +function { id: 0xffbaa126 return_type_id: 0x32a623d7 parameter_id: 0x0ca27481 @@ -321567,7 +329958,7 @@ elf_symbol { name: "___pskb_trim" is_defined: true symbol_type: FUNCTION - crc: 0xb8fdf4c6 + crc: 0x45b20f13 type_id: 0x9dc52cf1 full_name: "___pskb_trim" } @@ -321581,6 +329972,24 @@ elf_symbol { full_name: "___ratelimit" } elf_symbol { + id: 0x98179c82 + name: "___update_load_avg" + is_defined: true + symbol_type: FUNCTION + crc: 0xc8b1b72f + type_id: 0x1f45db81 + full_name: "___update_load_avg" +} +elf_symbol { + id: 0xfa979d99 + name: "___update_load_sum" + is_defined: true + symbol_type: FUNCTION + crc: 0xd667f721 + type_id: 0xb9f52377 + full_name: "___update_load_sum" +} +elf_symbol { id: 0x6e1bc82e name: "__alloc_pages" is_defined: true @@ -321612,7 +330021,7 @@ elf_symbol { name: "__alloc_skb" is_defined: true symbol_type: FUNCTION - crc: 0x34355489 + crc: 0x19dd35ba type_id: 0x7a21af66 full_name: "__alloc_skb" } @@ -321672,11 +330081,29 @@ elf_symbol { name: "__balance_callbacks" is_defined: true symbol_type: FUNCTION - crc: 0x76a1a2f4 + crc: 0x2af1f39a type_id: 0x1b18f64e full_name: "__balance_callbacks" } elf_symbol { + id: 0xac51df48 + name: "__bforget" + is_defined: true + symbol_type: FUNCTION + crc: 0x364b830b + type_id: 0x16c5a8cd + full_name: "__bforget" +} +elf_symbol { + id: 0x2c42b675 + name: "__bh_read_batch" + is_defined: true + symbol_type: FUNCTION + crc: 0xa59bae72 + type_id: 0x097c3ebf + full_name: "__bh_read_batch" +} +elf_symbol { id: 0x8920b575 name: "__bitmap_and" is_defined: true @@ -321803,6 +330230,15 @@ elf_symbol { full_name: "__blk_mq_alloc_disk" } elf_symbol { + id: 0xcc33f78c + name: "__blk_mq_debugfs_rq_show" + is_defined: true + symbol_type: FUNCTION + crc: 0xe3d3f445 + type_id: 0x9c639284 + full_name: "__blk_mq_debugfs_rq_show" +} +elf_symbol { id: 0x01badff0 name: "__blk_mq_end_request" is_defined: true @@ -321866,6 +330302,42 @@ elf_symbol { full_name: "__blkg_prfill_u64" } elf_symbol { + id: 0x2d1c1f2d + name: "__blockdev_direct_IO" + is_defined: true + symbol_type: FUNCTION + crc: 0x02673f92 + type_id: 0x16b316ef + full_name: "__blockdev_direct_IO" +} +elf_symbol { + id: 0x9bed4545 + name: "__bread_gfp" + is_defined: true + symbol_type: FUNCTION + crc: 0xe44aece3 + type_id: 0x65d68df5 + full_name: "__bread_gfp" +} +elf_symbol { + id: 0xefdcf4c1 + name: "__breadahead" + is_defined: true + symbol_type: FUNCTION + crc: 0x6b1f432a + type_id: 0x10c07815 + full_name: "__breadahead" +} +elf_symbol { + id: 0x2f449b9e + name: "__brelse" + is_defined: true + symbol_type: FUNCTION + crc: 0x40b1280f + type_id: 0x16c5a8cd + full_name: "__brelse" +} +elf_symbol { id: 0x2057d4fc name: "__check_object_size" is_defined: true @@ -322131,16 +330603,25 @@ elf_symbol { name: "__dev_change_net_namespace" is_defined: true symbol_type: FUNCTION - crc: 0x0e533ece + crc: 0x80432a75 type_id: 0x9115faa6 full_name: "__dev_change_net_namespace" } elf_symbol { + id: 0x8f70cdad + name: "__dev_direct_xmit" + is_defined: true + symbol_type: FUNCTION + crc: 0x1f8aaf23 + type_id: 0x9e960f96 + full_name: "__dev_direct_xmit" +} +elf_symbol { id: 0x2d91cc56 name: "__dev_get_by_index" is_defined: true symbol_type: FUNCTION - crc: 0x5da6d8a7 + crc: 0xecfcb475 type_id: 0xfec79391 full_name: "__dev_get_by_index" } @@ -322149,7 +330630,7 @@ elf_symbol { name: "__dev_get_by_name" is_defined: true symbol_type: FUNCTION - crc: 0x5af1a5cc + crc: 0xd26df809 type_id: 0xffa35209 full_name: "__dev_get_by_name" } @@ -322158,7 +330639,7 @@ elf_symbol { name: "__dev_kfree_skb_any" is_defined: true symbol_type: FUNCTION - crc: 0x4d97fb5a + crc: 0x28b967c1 type_id: 0x1028d82e full_name: "__dev_kfree_skb_any" } @@ -322167,7 +330648,7 @@ elf_symbol { name: "__dev_kfree_skb_irq" is_defined: true symbol_type: FUNCTION - crc: 0xf962a3ac + crc: 0xad728207 type_id: 0x1028d82e full_name: "__dev_kfree_skb_irq" } @@ -322176,7 +330657,7 @@ elf_symbol { name: "__dev_queue_xmit" is_defined: true symbol_type: FUNCTION - crc: 0x1158bb66 + crc: 0xf4b25665 type_id: 0x9c19a1e6 full_name: "__dev_queue_xmit" } @@ -322469,6 +330950,15 @@ elf_symbol { full_name: "__drm_atomic_helper_crtc_reset" } elf_symbol { + id: 0xa061e45d + name: "__drm_atomic_helper_disable_plane" + is_defined: true + symbol_type: FUNCTION + crc: 0x3695d680 + type_id: 0x9bf37946 + full_name: "__drm_atomic_helper_disable_plane" +} +elf_symbol { id: 0xec903c93 name: "__drm_atomic_helper_plane_destroy_state" is_defined: true @@ -322689,7 +331179,7 @@ elf_symbol { name: "__dynamic_dev_dbg" is_defined: true symbol_type: FUNCTION - crc: 0xa75aa551 + crc: 0xc375500c type_id: 0x17cc14a2 full_name: "__dynamic_dev_dbg" } @@ -322698,7 +331188,7 @@ elf_symbol { name: "__dynamic_netdev_dbg" is_defined: true symbol_type: FUNCTION - crc: 0x2e99bf04 + crc: 0x9eb377ed type_id: 0x17fcea78 full_name: "__dynamic_netdev_dbg" } @@ -322716,7 +331206,7 @@ elf_symbol { name: "__ethtool_get_link_ksettings" is_defined: true symbol_type: FUNCTION - crc: 0x26e93151 + crc: 0xae545be3 type_id: 0x914dbe16 full_name: "__ethtool_get_link_ksettings" } @@ -322730,6 +331220,24 @@ elf_symbol { full_name: "__fdget" } elf_symbol { + id: 0x6036d483 + name: "__filemap_set_wb_err" + is_defined: true + symbol_type: FUNCTION + crc: 0xf59ce848 + type_id: 0x1464781e + full_name: "__filemap_set_wb_err" +} +elf_symbol { + id: 0xaf8ee687 + name: "__find_nth_bit" + is_defined: true + symbol_type: FUNCTION + crc: 0x3eccbe2c + type_id: 0x3ec500b9 + full_name: "__find_nth_bit" +} +elf_symbol { id: 0x746a66fc name: "__flush_workqueue" is_defined: true @@ -322739,6 +331247,24 @@ elf_symbol { full_name: "__flush_workqueue" } elf_symbol { + id: 0x6a92cb2d + name: "__folio_alloc" + is_defined: true + symbol_type: FUNCTION + crc: 0xfcda658e + type_id: 0x61257a20 + full_name: "__folio_alloc" +} +elf_symbol { + id: 0x6fc34fdb + name: "__folio_cancel_dirty" + is_defined: true + symbol_type: FUNCTION + crc: 0x6b54d941 + type_id: 0x18c46588 + full_name: "__folio_cancel_dirty" +} +elf_symbol { id: 0x47a334c4 name: "__folio_lock" is_defined: true @@ -322766,11 +331292,20 @@ elf_symbol { full_name: "__free_pages" } elf_symbol { + id: 0xe458ae39 + name: "__fsnotify_parent" + is_defined: true + symbol_type: FUNCTION + crc: 0x2aa72d57 + type_id: 0x9a96d2a1 + full_name: "__fsnotify_parent" +} +elf_symbol { id: 0x129eb7ed name: "__genphy_config_aneg" is_defined: true symbol_type: FUNCTION - crc: 0x37458595 + crc: 0xcdd0498d type_id: 0x9068b671 full_name: "__genphy_config_aneg" } @@ -322824,7 +331359,7 @@ elf_symbol { name: "__hci_cmd_send" is_defined: true symbol_type: FUNCTION - crc: 0x5da3c5af + crc: 0x33702bd1 type_id: 0x988786ac full_name: "__hci_cmd_send" } @@ -322833,7 +331368,7 @@ elf_symbol { name: "__hci_cmd_sync" is_defined: true symbol_type: FUNCTION - crc: 0xe8411b1b + crc: 0xb54a31a9 type_id: 0x6d996ee0 full_name: "__hci_cmd_sync" } @@ -322842,7 +331377,7 @@ elf_symbol { name: "__hci_cmd_sync_ev" is_defined: true symbol_type: FUNCTION - crc: 0x445b0c53 + crc: 0xda29db0c type_id: 0x6d9955d1 full_name: "__hci_cmd_sync_ev" } @@ -322851,7 +331386,7 @@ elf_symbol { name: "__hci_cmd_sync_sk" is_defined: true symbol_type: FUNCTION - crc: 0x834b6dd6 + crc: 0x2c2ce580 type_id: 0x6d9955d6 full_name: "__hci_cmd_sync_sk" } @@ -322860,7 +331395,7 @@ elf_symbol { name: "__hci_cmd_sync_status" is_defined: true symbol_type: FUNCTION - crc: 0x9cee931c + crc: 0x06baed2b type_id: 0x9887b4ee full_name: "__hci_cmd_sync_status" } @@ -322869,11 +331404,20 @@ elf_symbol { name: "__hci_cmd_sync_status_sk" is_defined: true symbol_type: FUNCTION - crc: 0x1186447f + crc: 0xb243b785 type_id: 0x98878fd8 full_name: "__hci_cmd_sync_status_sk" } elf_symbol { + id: 0xb3d97fa3 + name: "__hid_register_driver" + is_defined: true + symbol_type: FUNCTION + crc: 0xe11057d9 + type_id: 0x9d760cc4 + full_name: "__hid_register_driver" +} +elf_symbol { id: 0xf245d4a3 name: "__hrtimer_get_remaining" is_defined: true @@ -322977,7 +331521,7 @@ elf_symbol { name: "__inet6_lookup_established" is_defined: true symbol_type: FUNCTION - crc: 0xcd20d4e4 + crc: 0x7f82e930 type_id: 0x6f1e53de full_name: "__inet6_lookup_established" } @@ -322986,7 +331530,7 @@ elf_symbol { name: "__inet_lookup_established" is_defined: true symbol_type: FUNCTION - crc: 0x2a7ec835 + crc: 0x63c135e0 type_id: 0x6f2829be full_name: "__inet_lookup_established" } @@ -323018,6 +331562,15 @@ elf_symbol { full_name: "__init_waitqueue_head" } elf_symbol { + id: 0xd02fc75b + name: "__insert_inode_hash" + is_defined: true + symbol_type: FUNCTION + crc: 0x25021594 + type_id: 0x16b4e02b + full_name: "__insert_inode_hash" +} +elf_symbol { id: 0xe97034af name: "__ioread32_copy" is_defined: true @@ -323041,7 +331594,7 @@ elf_symbol { name: "__ip_dev_find" is_defined: true symbol_type: FUNCTION - crc: 0x5f1b4c60 + crc: 0x9223cda1 type_id: 0xfcc995bd full_name: "__ip_dev_find" } @@ -323050,7 +331603,7 @@ elf_symbol { name: "__ip_select_ident" is_defined: true symbol_type: FUNCTION - crc: 0x5fce785b + crc: 0x51a34ed2 type_id: 0x13a0751a full_name: "__ip_select_ident" } @@ -323100,6 +331653,15 @@ elf_symbol { full_name: "__irq_domain_add" } elf_symbol { + id: 0xc37fd40e + name: "__irq_domain_alloc_fwnode" + is_defined: true + symbol_type: FUNCTION + crc: 0xdc739bfc + type_id: 0x299442f2 + full_name: "__irq_domain_alloc_fwnode" +} +elf_symbol { id: 0xe064ac65 name: "__irq_resolve_mapping" is_defined: true @@ -323239,7 +331801,7 @@ elf_symbol { name: "__kfree_skb" is_defined: true symbol_type: FUNCTION - crc: 0xc4c8c8ef + crc: 0x7bb0184e type_id: 0x11cb8bd5 full_name: "__kfree_skb" } @@ -323316,11 +331878,20 @@ elf_symbol { full_name: "__lock_buffer" } elf_symbol { + id: 0x0b9d6bbc + name: "__mark_inode_dirty" + is_defined: true + symbol_type: FUNCTION + crc: 0x2370c1c0 + type_id: 0x17e5b6f5 + full_name: "__mark_inode_dirty" +} +elf_symbol { id: 0x040ec563 name: "__mdiobus_read" is_defined: true symbol_type: FUNCTION - crc: 0xd579b351 + crc: 0xa3d576c4 type_id: 0x915b6659 full_name: "__mdiobus_read" } @@ -323329,7 +331900,7 @@ elf_symbol { name: "__mdiobus_register" is_defined: true symbol_type: FUNCTION - crc: 0xf5a90aa6 + crc: 0xa19883f4 type_id: 0x90d9386e full_name: "__mdiobus_register" } @@ -323338,7 +331909,7 @@ elf_symbol { name: "__mdiobus_write" is_defined: true symbol_type: FUNCTION - crc: 0xb679778f + crc: 0x3d72b5fc type_id: 0x9159236f full_name: "__mdiobus_write" } @@ -323401,7 +331972,7 @@ elf_symbol { name: "__migrate_task" is_defined: true symbol_type: FUNCTION - crc: 0x5bdb0ad4 + crc: 0xaaa6dd7d type_id: 0x81bed9bb full_name: "__migrate_task" } @@ -323460,6 +332031,24 @@ elf_symbol { full_name: "__mmdrop" } elf_symbol { + id: 0x68d1b187 + name: "__mod_lruvec_state" + is_defined: true + symbol_type: FUNCTION + crc: 0x0ab46d8d + type_id: 0x1e768676 + full_name: "__mod_lruvec_state" +} +elf_symbol { + id: 0x9de4c040 + name: "__mod_zone_page_state" + is_defined: true + symbol_type: FUNCTION + crc: 0x0683f992 + type_id: 0x11584934 + full_name: "__mod_zone_page_state" +} +elf_symbol { id: 0x89d01efd name: "__module_get" is_defined: true @@ -323500,7 +332089,7 @@ elf_symbol { name: "__napi_alloc_skb" is_defined: true symbol_type: FUNCTION - crc: 0x1d74b18d + crc: 0xc5fa677d type_id: 0x6fb420ce full_name: "__napi_alloc_skb" } @@ -323509,7 +332098,7 @@ elf_symbol { name: "__napi_schedule" is_defined: true symbol_type: FUNCTION - crc: 0xaa0337c0 + crc: 0xf5221e2b type_id: 0x16983453 full_name: "__napi_schedule" } @@ -323518,7 +332107,7 @@ elf_symbol { name: "__napi_schedule_irqoff" is_defined: true symbol_type: FUNCTION - crc: 0x0d3a570a + crc: 0x7096c85f type_id: 0x16983453 full_name: "__napi_schedule_irqoff" } @@ -323536,7 +332125,7 @@ elf_symbol { name: "__ndisc_fill_addr_option" is_defined: true symbol_type: FUNCTION - crc: 0xe8a9b6b6 + crc: 0x07cb9d0f type_id: 0x1058ca17 full_name: "__ndisc_fill_addr_option" } @@ -323554,7 +332143,7 @@ elf_symbol { name: "__netdev_alloc_skb" is_defined: true symbol_type: FUNCTION - crc: 0x5f4db0c2 + crc: 0x1ba22d8b type_id: 0x651dcdfb full_name: "__netdev_alloc_skb" } @@ -323563,7 +332152,7 @@ elf_symbol { name: "__netif_napi_del" is_defined: true symbol_type: FUNCTION - crc: 0x22022f2a + crc: 0xf7cce469 type_id: 0x16983453 full_name: "__netif_napi_del" } @@ -323572,7 +332161,7 @@ elf_symbol { name: "__netif_set_xps_queue" is_defined: true symbol_type: FUNCTION - crc: 0xe8d93c40 + crc: 0x74943dbf type_id: 0x91f45efa full_name: "__netif_set_xps_queue" } @@ -323581,7 +332170,7 @@ elf_symbol { name: "__netlink_dump_start" is_defined: true symbol_type: FUNCTION - crc: 0x0378d49b + crc: 0x53d7f503 type_id: 0x9acae612 full_name: "__netlink_dump_start" } @@ -323590,7 +332179,7 @@ elf_symbol { name: "__netlink_kernel_create" is_defined: true symbol_type: FUNCTION - crc: 0xd680bb92 + crc: 0x9f3fe1fe type_id: 0x6ef28827 full_name: "__netlink_kernel_create" } @@ -323599,7 +332188,7 @@ elf_symbol { name: "__nfc_alloc_vendor_cmd_reply_skb" is_defined: true symbol_type: FUNCTION - crc: 0xf3675f03 + crc: 0x796b3c91 type_id: 0x6b55cd91 full_name: "__nfc_alloc_vendor_cmd_reply_skb" } @@ -323626,7 +332215,7 @@ elf_symbol { name: "__nlmsg_put" is_defined: true symbol_type: FUNCTION - crc: 0x6fc7cc81 + crc: 0x899805b0 type_id: 0x16d62662 full_name: "__nlmsg_put" } @@ -323653,7 +332242,7 @@ elf_symbol { name: "__of_mdiobus_register" is_defined: true symbol_type: FUNCTION - crc: 0x3c10a66b + crc: 0xa014553c type_id: 0x9026a2e6 full_name: "__of_mdiobus_register" } @@ -323896,7 +332485,7 @@ elf_symbol { name: "__pskb_copy_fclone" is_defined: true symbol_type: FUNCTION - crc: 0x69b0fbf3 + crc: 0xccd67e8e type_id: 0x686cbc61 full_name: "__pskb_copy_fclone" } @@ -323905,7 +332494,7 @@ elf_symbol { name: "__pskb_pull_tail" is_defined: true symbol_type: FUNCTION - crc: 0xfe9cb4c4 + crc: 0x263e8160 type_id: 0x5659e8fb full_name: "__pskb_pull_tail" } @@ -323923,7 +332512,7 @@ elf_symbol { name: "__put_net" is_defined: true symbol_type: FUNCTION - crc: 0xc00df7e0 + crc: 0x64b548b6 type_id: 0x13b0ccb3 full_name: "__put_net" } @@ -324036,6 +332625,15 @@ elf_symbol { full_name: "__release_region" } elf_symbol { + id: 0x9d948fe1 + name: "__remove_inode_hash" + is_defined: true + symbol_type: FUNCTION + crc: 0x152cf8f0 + type_id: 0x167935b9 + full_name: "__remove_inode_hash" +} +elf_symbol { id: 0xf7c2da07 name: "__request_module" is_defined: true @@ -324085,7 +332683,7 @@ elf_symbol { name: "__root_device_register" is_defined: true symbol_type: FUNCTION - crc: 0x1b375822 + crc: 0xd89e0766 type_id: 0xa2878209 full_name: "__root_device_register" } @@ -324099,6 +332697,24 @@ elf_symbol { full_name: "__rt_mutex_init" } elf_symbol { + id: 0x31b4eed9 + name: "__rtnl_link_unregister" + is_defined: true + symbol_type: FUNCTION + crc: 0x139f3c01 + type_id: 0x1cd366b4 + full_name: "__rtnl_link_unregister" +} +elf_symbol { + id: 0x99aa632e + name: "__sbitmap_queue_get" + is_defined: true + symbol_type: FUNCTION + crc: 0x0a991166 + type_id: 0x99387097 + full_name: "__sbitmap_queue_get" +} +elf_symbol { id: 0xe68925b8 name: "__scsi_add_device" is_defined: true @@ -324189,6 +332805,24 @@ elf_symbol { full_name: "__serio_register_port" } elf_symbol { + id: 0xa2cf1eee + name: "__set_page_dirty_nobuffers" + is_defined: true + symbol_type: FUNCTION + crc: 0x924fff08 + type_id: 0x9c203488 + full_name: "__set_page_dirty_nobuffers" +} +elf_symbol { + id: 0xeaddb422 + name: "__set_page_owner" + is_defined: true + symbol_type: FUNCTION + crc: 0xe501529f + type_id: 0x12201786 + full_name: "__set_page_owner" +} +elf_symbol { id: 0x29a11d8a name: "__sg_page_iter_dma_next" is_defined: true @@ -324220,7 +332854,7 @@ elf_symbol { name: "__sk_receive_skb" is_defined: true symbol_type: FUNCTION - crc: 0xd5b75ac0 + crc: 0x6048e9c0 type_id: 0x9adc176e full_name: "__sk_receive_skb" } @@ -324229,7 +332863,7 @@ elf_symbol { name: "__skb_checksum_complete" is_defined: true symbol_type: FUNCTION - crc: 0x4cf67962 + crc: 0xc7a0d4d4 type_id: 0x1bdfb83f full_name: "__skb_checksum_complete" } @@ -324247,7 +332881,7 @@ elf_symbol { name: "__skb_flow_dissect" is_defined: true symbol_type: FUNCTION - crc: 0x124b303a + crc: 0x23dc8f6e type_id: 0xf1510018 full_name: "__skb_flow_dissect" } @@ -324256,7 +332890,7 @@ elf_symbol { name: "__skb_get_hash" is_defined: true symbol_type: FUNCTION - crc: 0xc6e7784a + crc: 0x1ddd1883 type_id: 0x11cb8bd5 full_name: "__skb_get_hash" } @@ -324265,7 +332899,7 @@ elf_symbol { name: "__skb_gso_segment" is_defined: true symbol_type: FUNCTION - crc: 0xac29444c + crc: 0x69420fe8 type_id: 0x6940ae3e full_name: "__skb_gso_segment" } @@ -324274,7 +332908,7 @@ elf_symbol { name: "__skb_pad" is_defined: true symbol_type: FUNCTION - crc: 0xa899707f + crc: 0x036615f2 type_id: 0x9d54e5f2 full_name: "__skb_pad" } @@ -324283,7 +332917,7 @@ elf_symbol { name: "__sock_create" is_defined: true symbol_type: FUNCTION - crc: 0x5d1f6314 + crc: 0x7265e465 type_id: 0x9f2cabca full_name: "__sock_create" } @@ -324292,7 +332926,7 @@ elf_symbol { name: "__sock_queue_rcv_skb" is_defined: true symbol_type: FUNCTION - crc: 0x9597cc37 + crc: 0x9d9799e5 type_id: 0x9ac4d210 full_name: "__sock_queue_rcv_skb" } @@ -324301,7 +332935,7 @@ elf_symbol { name: "__sock_recv_cmsgs" is_defined: true symbol_type: FUNCTION - crc: 0xeb3aae86 + crc: 0xd32b6582 type_id: 0x1bdaff5e full_name: "__sock_recv_cmsgs" } @@ -324310,7 +332944,7 @@ elf_symbol { name: "__sock_recv_timestamp" is_defined: true symbol_type: FUNCTION - crc: 0xdd808e58 + crc: 0xcdc149a2 type_id: 0x1bdaff5e full_name: "__sock_recv_timestamp" } @@ -324319,7 +332953,7 @@ elf_symbol { name: "__sock_recv_wifi_status" is_defined: true symbol_type: FUNCTION - crc: 0xf1ef6440 + crc: 0xd80f3e2d type_id: 0x1bdaff5e full_name: "__sock_recv_wifi_status" } @@ -324432,6 +333066,15 @@ elf_symbol { full_name: "__sw_hweight8" } elf_symbol { + id: 0xd8a7d75e + name: "__sync_dirty_buffer" + is_defined: true + symbol_type: FUNCTION + crc: 0xc6ed2a41 + type_id: 0x9a308be1 + full_name: "__sync_dirty_buffer" +} +elf_symbol { id: 0x04e4f57e name: "__sysfs_match_string" is_defined: true @@ -324445,7 +333088,7 @@ elf_symbol { name: "__task_pid_nr_ns" is_defined: true symbol_type: FUNCTION - crc: 0x9e5fe7f4 + crc: 0x29757059 type_id: 0xd59c1ab2 full_name: "__task_pid_nr_ns" } @@ -324454,7 +333097,7 @@ elf_symbol { name: "__task_rq_lock" is_defined: true symbol_type: FUNCTION - crc: 0xa3f2ad1c + crc: 0xd3cf4618 type_id: 0x8d7ecefa full_name: "__task_rq_lock" } @@ -324486,6 +333129,15 @@ elf_symbol { full_name: "__trace_bprintk" } elf_symbol { + id: 0x46adfea4 + name: "__trace_bputs" + is_defined: true + symbol_type: FUNCTION + crc: 0xb1e25684 + type_id: 0x91a5f8da + full_name: "__trace_bputs" +} +elf_symbol { id: 0x233d8b34 name: "__trace_puts" is_defined: true @@ -324540,6 +333192,15 @@ elf_symbol { full_name: "__traceiter_android_rvh_arm64_serror_panic" } elf_symbol { + id: 0x6d4cc1a2 + name: "__traceiter_android_rvh_attach_entity_load_avg" + is_defined: true + symbol_type: FUNCTION + crc: 0xb9a0b097 + type_id: 0x9b96d02c + full_name: "__traceiter_android_rvh_attach_entity_load_avg" +} +elf_symbol { id: 0x48420da9 name: "__traceiter_android_rvh_audio_usb_offload_disconnect" is_defined: true @@ -324549,6 +333210,15 @@ elf_symbol { full_name: "__traceiter_android_rvh_audio_usb_offload_disconnect" } elf_symbol { + id: 0x144db0a1 + name: "__traceiter_android_rvh_before_do_sched_yield" + is_defined: true + symbol_type: FUNCTION + crc: 0xce266c8e + type_id: 0x9b79f498 + full_name: "__traceiter_android_rvh_before_do_sched_yield" +} +elf_symbol { id: 0x192bbbd5 name: "__traceiter_android_rvh_build_perf_domains" is_defined: true @@ -324567,6 +333237,15 @@ elf_symbol { full_name: "__traceiter_android_rvh_can_migrate_task" } elf_symbol { + id: 0xbbd04d50 + name: "__traceiter_android_rvh_cgroup_force_kthread_migration" + is_defined: true + symbol_type: FUNCTION + crc: 0x94b3e68f + type_id: 0x9bddb3a2 + full_name: "__traceiter_android_rvh_cgroup_force_kthread_migration" +} +elf_symbol { id: 0xc93c7d6d name: "__traceiter_android_rvh_check_preempt_tick" is_defined: true @@ -324684,6 +333363,15 @@ elf_symbol { full_name: "__traceiter_android_rvh_dequeue_task_fair" } elf_symbol { + id: 0xa0a77bb8 + name: "__traceiter_android_rvh_detach_entity_load_avg" + is_defined: true + symbol_type: FUNCTION + crc: 0x477c169e + type_id: 0x9b96d02c + full_name: "__traceiter_android_rvh_detach_entity_load_avg" +} +elf_symbol { id: 0xa3b41867 name: "__traceiter_android_rvh_die_kernel_fault" is_defined: true @@ -324918,6 +333606,24 @@ elf_symbol { full_name: "__traceiter_android_rvh_iommu_setup_dma_ops" } elf_symbol { + id: 0xfc83b254 + name: "__traceiter_android_rvh_irqs_disable" + is_defined: true + symbol_type: FUNCTION + crc: 0x707d1f10 + type_id: 0x9b6eb2a8 + full_name: "__traceiter_android_rvh_irqs_disable" +} +elf_symbol { + id: 0x7e99bc71 + name: "__traceiter_android_rvh_irqs_enable" + is_defined: true + symbol_type: FUNCTION + crc: 0x7a345722 + type_id: 0x9b6eb2a8 + full_name: "__traceiter_android_rvh_irqs_enable" +} +elf_symbol { id: 0x7c212080 name: "__traceiter_android_rvh_is_cpu_allowed" is_defined: true @@ -325008,6 +333714,24 @@ elf_symbol { full_name: "__traceiter_android_rvh_post_init_entity_util_avg" } elf_symbol { + id: 0x167fc668 + name: "__traceiter_android_rvh_preempt_disable" + is_defined: true + symbol_type: FUNCTION + crc: 0x1585c762 + type_id: 0x9b6eb2a8 + full_name: "__traceiter_android_rvh_preempt_disable" +} +elf_symbol { + id: 0xd6a514f5 + name: "__traceiter_android_rvh_preempt_enable" + is_defined: true + symbol_type: FUNCTION + crc: 0x3235e37a + type_id: 0x9b6eb2a8 + full_name: "__traceiter_android_rvh_preempt_enable" +} +elf_symbol { id: 0xeccbc3c1 name: "__traceiter_android_rvh_prepare_prio_fork" is_defined: true @@ -325044,6 +333768,15 @@ elf_symbol { full_name: "__traceiter_android_rvh_refrigerator" } elf_symbol { + id: 0xc191b2f6 + name: "__traceiter_android_rvh_remove_entity_load_avg" + is_defined: true + symbol_type: FUNCTION + crc: 0x4a7a0801 + type_id: 0x9b96d02c + full_name: "__traceiter_android_rvh_remove_entity_load_avg" +} +elf_symbol { id: 0xe3e24295 name: "__traceiter_android_rvh_replace_next_task_fair" is_defined: true @@ -325071,6 +333804,15 @@ elf_symbol { full_name: "__traceiter_android_rvh_revert_creds" } elf_symbol { + id: 0xf0ffb4d4 + name: "__traceiter_android_rvh_rtmutex_force_update" + is_defined: true + symbol_type: FUNCTION + crc: 0xe3eba434 + type_id: 0x9bdcd7ce + full_name: "__traceiter_android_rvh_rtmutex_force_update" +} +elf_symbol { id: 0xd90a9a58 name: "__traceiter_android_rvh_rtmutex_prepare_setprio" is_defined: true @@ -325192,8 +333934,8 @@ elf_symbol { name: "__traceiter_android_rvh_schedule" is_defined: true symbol_type: FUNCTION - crc: 0x6be67582 - type_id: 0x9bdc22a4 + crc: 0x5597e05e + type_id: 0x9abe9677 full_name: "__traceiter_android_rvh_schedule" } elf_symbol { @@ -325314,6 +334056,15 @@ elf_symbol { full_name: "__traceiter_android_rvh_set_gfp_zone_flags" } elf_symbol { + id: 0x9c2c2d71 + name: "__traceiter_android_rvh_set_iowait" + is_defined: true + symbol_type: FUNCTION + crc: 0xd1ed6c7e + type_id: 0x9bd01103 + full_name: "__traceiter_android_rvh_set_iowait" +} +elf_symbol { id: 0xcac6b03d name: "__traceiter_android_rvh_set_module_core_rw_nx" is_defined: true @@ -325404,6 +334155,24 @@ elf_symbol { full_name: "__traceiter_android_rvh_show_max_freq" } elf_symbol { + id: 0x955e6fc1 + name: "__traceiter_android_rvh_sk_alloc" + is_defined: true + symbol_type: FUNCTION + crc: 0x25e47a00 + type_id: 0x9bdaaaaa + full_name: "__traceiter_android_rvh_sk_alloc" +} +elf_symbol { + id: 0xfe20c6e3 + name: "__traceiter_android_rvh_sk_free" + is_defined: true + symbol_type: FUNCTION + crc: 0xd0de15c8 + type_id: 0x9bdaaaaa + full_name: "__traceiter_android_rvh_sk_free" +} +elf_symbol { id: 0x7b07c7f1 name: "__traceiter_android_rvh_tick_entry" is_defined: true @@ -325458,6 +334227,15 @@ elf_symbol { full_name: "__traceiter_android_rvh_uclamp_eff_get" } elf_symbol { + id: 0xa63eb82a + name: "__traceiter_android_rvh_update_blocked_fair" + is_defined: true + symbol_type: FUNCTION + crc: 0x0484f45c + type_id: 0x9b17b01e + full_name: "__traceiter_android_rvh_update_blocked_fair" +} +elf_symbol { id: 0xcd824552 name: "__traceiter_android_rvh_update_cpu_capacity" is_defined: true @@ -325467,6 +334245,15 @@ elf_symbol { full_name: "__traceiter_android_rvh_update_cpu_capacity" } elf_symbol { + id: 0xb6d1fa25 + name: "__traceiter_android_rvh_update_load_avg" + is_defined: true + symbol_type: FUNCTION + crc: 0xa1719b21 + type_id: 0x99e4a009 + full_name: "__traceiter_android_rvh_update_load_avg" +} +elf_symbol { id: 0x16809a5a name: "__traceiter_android_rvh_update_misfit_status" is_defined: true @@ -325476,6 +334263,15 @@ elf_symbol { full_name: "__traceiter_android_rvh_update_misfit_status" } elf_symbol { + id: 0xfaa2e0a4 + name: "__traceiter_android_rvh_update_rt_rq_load_avg" + is_defined: true + symbol_type: FUNCTION + crc: 0x4748df7a + type_id: 0x99ecdba4 + full_name: "__traceiter_android_rvh_update_rt_rq_load_avg" +} +elf_symbol { id: 0xc1ba0eb6 name: "__traceiter_android_rvh_update_thermal_stats" is_defined: true @@ -325521,6 +334317,15 @@ elf_symbol { full_name: "__traceiter_android_vh_account_task_time" } elf_symbol { + id: 0xd0b4a794 + name: "__traceiter_android_vh_alloc_oem_binder_struct" + is_defined: true + symbol_type: FUNCTION + crc: 0x72653196 + type_id: 0x9bec16df + full_name: "__traceiter_android_vh_alloc_oem_binder_struct" +} +elf_symbol { id: 0x33f9278c name: "__traceiter_android_vh_alloc_pages_failure_bypass" is_defined: true @@ -325539,6 +334344,15 @@ elf_symbol { full_name: "__traceiter_android_vh_alloc_pages_reclaim_bypass" } elf_symbol { + id: 0xa6e329cd + name: "__traceiter_android_vh_alloc_pages_slowpath" + is_defined: true + symbol_type: FUNCTION + crc: 0xd7a24d94 + type_id: 0x98788d90 + full_name: "__traceiter_android_vh_alloc_pages_slowpath" +} +elf_symbol { id: 0x9c240ef1 name: "__traceiter_android_vh_alloc_uid" is_defined: true @@ -325611,6 +334425,15 @@ elf_symbol { full_name: "__traceiter_android_vh_binder_del_ref" } elf_symbol { + id: 0xcb807696 + name: "__traceiter_android_vh_binder_free_buf" + is_defined: true + symbol_type: FUNCTION + crc: 0x71365aee + type_id: 0x9bd8639c + full_name: "__traceiter_android_vh_binder_free_buf" +} +elf_symbol { id: 0xbebf7d98 name: "__traceiter_android_vh_binder_free_proc" is_defined: true @@ -325737,6 +334560,15 @@ elf_symbol { full_name: "__traceiter_android_vh_binder_set_priority" } elf_symbol { + id: 0x6bce867e + name: "__traceiter_android_vh_binder_special_task" + is_defined: true + symbol_type: FUNCTION + crc: 0x93949f33 + type_id: 0x9ba26d2b + full_name: "__traceiter_android_vh_binder_special_task" +} +elf_symbol { id: 0x4785a3dd name: "__traceiter_android_vh_binder_thread_read" is_defined: true @@ -325773,6 +334605,15 @@ elf_symbol { full_name: "__traceiter_android_vh_binder_transaction_init" } elf_symbol { + id: 0xcc2edef9 + name: "__traceiter_android_vh_binder_transaction_received" + is_defined: true + symbol_type: FUNCTION + crc: 0xffec96fd + type_id: 0x9ba26d9c + full_name: "__traceiter_android_vh_binder_transaction_received" +} +elf_symbol { id: 0x61c82fb5 name: "__traceiter_android_vh_binder_wait_for_work" is_defined: true @@ -325836,6 +334677,15 @@ elf_symbol { full_name: "__traceiter_android_vh_check_file_open" } elf_symbol { + id: 0x6aac0cf8 + name: "__traceiter_android_vh_check_folio_look_around_ref" + is_defined: true + symbol_type: FUNCTION + crc: 0xa2856bd1 + type_id: 0x9b2eaf21 + full_name: "__traceiter_android_vh_check_folio_look_around_ref" +} +elf_symbol { id: 0x96d1c9c4 name: "__traceiter_android_vh_check_hibernation_swap" is_defined: true @@ -325881,6 +334731,24 @@ elf_symbol { full_name: "__traceiter_android_vh_cleanup_old_buffers_bypass" } elf_symbol { + id: 0xa4527895 + name: "__traceiter_android_vh_compaction_exit" + is_defined: true + symbol_type: FUNCTION + crc: 0x5de850c2 + type_id: 0x9a2b6d98 + full_name: "__traceiter_android_vh_compaction_exit" +} +elf_symbol { + id: 0x3644fdcd + name: "__traceiter_android_vh_compaction_try_to_compact_pages_exit" + is_defined: true + symbol_type: FUNCTION + crc: 0xcca408f4 + type_id: 0x9b35e16b + full_name: "__traceiter_android_vh_compaction_try_to_compact_pages_exit" +} +elf_symbol { id: 0x9247dcb1 name: "__traceiter_android_vh_cpu_idle_enter" is_defined: true @@ -326025,6 +334893,24 @@ elf_symbol { full_name: "__traceiter_android_vh_dup_task_struct" } elf_symbol { + id: 0xdcaa59a3 + name: "__traceiter_android_vh_enable_thermal_genl_check" + is_defined: true + symbol_type: FUNCTION + crc: 0xc39a1e16 + type_id: 0x9a2abc7b + full_name: "__traceiter_android_vh_enable_thermal_genl_check" +} +elf_symbol { + id: 0x7ebac47a + name: "__traceiter_android_vh_enable_thermal_power_throttle" + is_defined: true + symbol_type: FUNCTION + crc: 0xc7fd7b7d + type_id: 0x9be885da + full_name: "__traceiter_android_vh_enable_thermal_power_throttle" +} +elf_symbol { id: 0xf586d5b6 name: "__traceiter_android_vh_encrypt_page" is_defined: true @@ -326034,6 +334920,15 @@ elf_symbol { full_name: "__traceiter_android_vh_encrypt_page" } elf_symbol { + id: 0x1921d10d + name: "__traceiter_android_vh_exit_check" + is_defined: true + symbol_type: FUNCTION + crc: 0x73fa852b + type_id: 0x9bdbdcc4 + full_name: "__traceiter_android_vh_exit_check" +} +elf_symbol { id: 0x1f554c2a name: "__traceiter_android_vh_exit_signal" is_defined: true @@ -326043,6 +334938,15 @@ elf_symbol { full_name: "__traceiter_android_vh_exit_signal" } elf_symbol { + id: 0x343adff1 + name: "__traceiter_android_vh_exit_signal_whether_wake" + is_defined: true + symbol_type: FUNCTION + crc: 0x003a6b81 + type_id: 0x9bdfaf3f + full_name: "__traceiter_android_vh_exit_signal_whether_wake" +} +elf_symbol { id: 0x93a4717b name: "__traceiter_android_vh_file_is_tiny_bypass" is_defined: true @@ -326052,6 +334956,24 @@ elf_symbol { full_name: "__traceiter_android_vh_file_is_tiny_bypass" } elf_symbol { + id: 0x9e91661b + name: "__traceiter_android_vh_free_oem_binder_struct" + is_defined: true + symbol_type: FUNCTION + crc: 0xe3c92b7e + type_id: 0x9ba51920 + full_name: "__traceiter_android_vh_free_oem_binder_struct" +} +elf_symbol { + id: 0xc189c2a7 + name: "__traceiter_android_vh_free_one_page_bypass" + is_defined: true + symbol_type: FUNCTION + crc: 0x790c91fa + type_id: 0x9bb6ab04 + full_name: "__traceiter_android_vh_free_one_page_bypass" +} +elf_symbol { id: 0x5ecff02f name: "__traceiter_android_vh_free_task" is_defined: true @@ -326070,6 +334992,15 @@ elf_symbol { full_name: "__traceiter_android_vh_free_user" } elf_symbol { + id: 0x4d354aab + name: "__traceiter_android_vh_freeze_whether_wake" + is_defined: true + symbol_type: FUNCTION + crc: 0xefd9d739 + type_id: 0x9bdfaf3f + full_name: "__traceiter_android_vh_freeze_whether_wake" +} +elf_symbol { id: 0x3272ce60 name: "__traceiter_android_vh_freq_qos_add_request" is_defined: true @@ -326214,6 +335145,15 @@ elf_symbol { full_name: "__traceiter_android_vh_get_thermal_zone_device" } elf_symbol { + id: 0xdbe4202a + name: "__traceiter_android_vh_gic_set_affinity" + is_defined: true + symbol_type: FUNCTION + crc: 0xc710bc43 + type_id: 0x9b8fbd40 + full_name: "__traceiter_android_vh_gic_set_affinity" +} +elf_symbol { id: 0x88586647 name: "__traceiter_android_vh_gic_v3_suspend" is_defined: true @@ -326295,6 +335235,15 @@ elf_symbol { full_name: "__traceiter_android_vh_jiffies_update" } elf_symbol { + id: 0xe261e8cc + name: "__traceiter_android_vh_killed_process" + is_defined: true + symbol_type: FUNCTION + crc: 0x593713f5 + type_id: 0x9bdcdd91 + full_name: "__traceiter_android_vh_killed_process" +} +elf_symbol { id: 0x18fde973 name: "__traceiter_android_vh_kswapd_per_node" is_defined: true @@ -326304,6 +335253,24 @@ elf_symbol { full_name: "__traceiter_android_vh_kswapd_per_node" } elf_symbol { + id: 0xe19d2bf8 + name: "__traceiter_android_vh_look_around" + is_defined: true + symbol_type: FUNCTION + crc: 0x4d18aae7 + type_id: 0x9bf40739 + full_name: "__traceiter_android_vh_look_around" +} +elf_symbol { + id: 0x993f42ff + name: "__traceiter_android_vh_look_around_migrate_folio" + is_defined: true + symbol_type: FUNCTION + crc: 0xbed1988a + type_id: 0x9b222516 + full_name: "__traceiter_android_vh_look_around_migrate_folio" +} +elf_symbol { id: 0xfb6a92a8 name: "__traceiter_android_vh_madvise_cold_pageout_skip" is_defined: true @@ -326394,6 +335361,42 @@ elf_symbol { full_name: "__traceiter_android_vh_meminfo_cache_adjust" } elf_symbol { + id: 0xea8ce2b0 + name: "__traceiter_android_vh_meminfo_proc_show" + is_defined: true + symbol_type: FUNCTION + crc: 0xbe919740 + type_id: 0x9bb62df9 + full_name: "__traceiter_android_vh_meminfo_proc_show" +} +elf_symbol { + id: 0x295c28cd + name: "__traceiter_android_vh_mm_alloc_pages_direct_reclaim_enter" + is_defined: true + symbol_type: FUNCTION + crc: 0xe4da6100 + type_id: 0x9ab9affb + full_name: "__traceiter_android_vh_mm_alloc_pages_direct_reclaim_enter" +} +elf_symbol { + id: 0x10e93e46 + name: "__traceiter_android_vh_mm_alloc_pages_direct_reclaim_exit" + is_defined: true + symbol_type: FUNCTION + crc: 0x61d4882e + type_id: 0x9b7ba7c5 + full_name: "__traceiter_android_vh_mm_alloc_pages_direct_reclaim_exit" +} +elf_symbol { + id: 0x49cebcae + name: "__traceiter_android_vh_mm_alloc_pages_may_oom_exit" + is_defined: true + symbol_type: FUNCTION + crc: 0x91a9d265 + type_id: 0x9b52c397 + full_name: "__traceiter_android_vh_mm_alloc_pages_may_oom_exit" +} +elf_symbol { id: 0xe44dacb1 name: "__traceiter_android_vh_mmap_region" is_defined: true @@ -326520,6 +335523,15 @@ elf_symbol { full_name: "__traceiter_android_vh_page_add_new_anon_rmap" } elf_symbol { + id: 0xd14f3adb + name: "__traceiter_android_vh_percpu_rwsem_wq_add" + is_defined: true + symbol_type: FUNCTION + crc: 0xf0301f63 + type_id: 0x9bf23070 + full_name: "__traceiter_android_vh_percpu_rwsem_wq_add" +} +elf_symbol { id: 0x5983841b name: "__traceiter_android_vh_post_image_save" is_defined: true @@ -326592,6 +335604,15 @@ elf_symbol { full_name: "__traceiter_android_vh_record_pcpu_rwsem_starttime" } elf_symbol { + id: 0x1a91ec8c + name: "__traceiter_android_vh_record_pcpu_rwsem_time_early" + is_defined: true + symbol_type: FUNCTION + crc: 0xeeef021b + type_id: 0x9b6602ad + full_name: "__traceiter_android_vh_record_pcpu_rwsem_time_early" +} +elf_symbol { id: 0x92518ec5 name: "__traceiter_android_vh_record_rtmutex_lock_starttime" is_defined: true @@ -326610,6 +335631,24 @@ elf_symbol { full_name: "__traceiter_android_vh_record_rwsem_lock_starttime" } elf_symbol { + id: 0xe2d75052 + name: "__traceiter_android_vh_regmap_update" + is_defined: true + symbol_type: FUNCTION + crc: 0x70e6bb0c + type_id: 0x9b5a0fe0 + full_name: "__traceiter_android_vh_regmap_update" +} +elf_symbol { + id: 0x8d62858f + name: "__traceiter_android_vh_rmqueue_smallest_bypass" + is_defined: true + symbol_type: FUNCTION + crc: 0x9969b000 + type_id: 0x9b80645e + full_name: "__traceiter_android_vh_rmqueue_smallest_bypass" +} +elf_symbol { id: 0xcef5d79f name: "__traceiter_android_vh_rproc_recovery" is_defined: true @@ -326646,6 +335685,15 @@ elf_symbol { full_name: "__traceiter_android_vh_rtmutex_wait_start" } elf_symbol { + id: 0xc56d7179 + name: "__traceiter_android_vh_rtmutex_waiter_prio" + is_defined: true + symbol_type: FUNCTION + crc: 0x40a0002c + type_id: 0x9bdf0ac7 + full_name: "__traceiter_android_vh_rtmutex_waiter_prio" +} +elf_symbol { id: 0x5858f827 name: "__traceiter_android_vh_rwsem_can_spin_on_owner" is_defined: true @@ -326763,6 +335811,15 @@ elf_symbol { full_name: "__traceiter_android_vh_save_hib_resume_bdev" } elf_symbol { + id: 0x06c7b387 + name: "__traceiter_android_vh_scan_abort_check_wmarks" + is_defined: true + symbol_type: FUNCTION + crc: 0x48b7d14f + type_id: 0x9be885da + full_name: "__traceiter_android_vh_scan_abort_check_wmarks" +} +elf_symbol { id: 0x3a4e20d6 name: "__traceiter_android_vh_sched_pelt_multiplier" is_defined: true @@ -326952,6 +336009,24 @@ elf_symbol { full_name: "__traceiter_android_vh_sysrq_crash" } elf_symbol { + id: 0xdd9dd67b + name: "__traceiter_android_vh_task_blocks_on_rtmutex" + is_defined: true + symbol_type: FUNCTION + crc: 0x698af67b + type_id: 0x9be67f35 + full_name: "__traceiter_android_vh_task_blocks_on_rtmutex" +} +elf_symbol { + id: 0x48f0cf25 + name: "__traceiter_android_vh_test_clear_look_around_ref" + is_defined: true + symbol_type: FUNCTION + crc: 0x6a7e50c3 + type_id: 0x9bb5b719 + full_name: "__traceiter_android_vh_test_clear_look_around_ref" +} +elf_symbol { id: 0x6befbf23 name: "__traceiter_android_vh_thermal_power_cap" is_defined: true @@ -327015,6 +336090,24 @@ elf_symbol { full_name: "__traceiter_android_vh_try_to_unmap_one" } elf_symbol { + id: 0x39155e73 + name: "__traceiter_android_vh_tune_scan_type" + is_defined: true + symbol_type: FUNCTION + crc: 0x24602ed2 + type_id: 0x9b85c291 + full_name: "__traceiter_android_vh_tune_scan_type" +} +elf_symbol { + id: 0x3947ecb4 + name: "__traceiter_android_vh_tune_swappiness" + is_defined: true + symbol_type: FUNCTION + crc: 0xd2ac8d57 + type_id: 0x9be2da56 + full_name: "__traceiter_android_vh_tune_swappiness" +} +elf_symbol { id: 0x8a773cc3 name: "__traceiter_android_vh_typec_store_partner_src_caps" is_defined: true @@ -327051,6 +336144,24 @@ elf_symbol { full_name: "__traceiter_android_vh_typec_tcpm_log" } elf_symbol { + id: 0x5ab5402f + name: "__traceiter_android_vh_typec_tcpm_modify_src_caps" + is_defined: true + symbol_type: FUNCTION + crc: 0xd505a0db + type_id: 0x9bcdfb6a + full_name: "__traceiter_android_vh_typec_tcpm_modify_src_caps" +} +elf_symbol { + id: 0xaa213206 + name: "__traceiter_android_vh_uclamp_validate" + is_defined: true + symbol_type: FUNCTION + crc: 0xd05b7a41 + type_id: 0x9bd44256 + full_name: "__traceiter_android_vh_uclamp_validate" +} +elf_symbol { id: 0xe31bb308 name: "__traceiter_android_vh_ufs_check_int_errors" is_defined: true @@ -327168,6 +336279,24 @@ elf_symbol { full_name: "__traceiter_android_vh_update_topology_flags_workfn" } elf_symbol { + id: 0x08824ed3 + name: "__traceiter_android_vh_use_amu_fie" + is_defined: true + symbol_type: FUNCTION + crc: 0xb22c3cda + type_id: 0x9be885da + full_name: "__traceiter_android_vh_use_amu_fie" +} +elf_symbol { + id: 0xcbec9d66 + name: "__traceiter_android_vh_vmscan_kswapd_done" + is_defined: true + symbol_type: FUNCTION + crc: 0x96191a01 + type_id: 0x9a235f02 + full_name: "__traceiter_android_vh_vmscan_kswapd_done" +} +elf_symbol { id: 0xb0bf7fd6 name: "__traceiter_android_vh_watchdog_timer_softlockup" is_defined: true @@ -327177,6 +336306,15 @@ elf_symbol { full_name: "__traceiter_android_vh_watchdog_timer_softlockup" } elf_symbol { + id: 0xae5e5469 + name: "__traceiter_android_vh_wq_lockup_pool" + is_defined: true + symbol_type: FUNCTION + crc: 0x62c05483 + type_id: 0x9a3fe476 + full_name: "__traceiter_android_vh_wq_lockup_pool" +} +elf_symbol { id: 0x6911084f name: "__traceiter_binder_transaction_received" is_defined: true @@ -327321,6 +336459,15 @@ elf_symbol { full_name: "__traceiter_dma_fence_emit" } elf_symbol { + id: 0x5e5d9a70 + name: "__traceiter_error_report_end" + is_defined: true + symbol_type: FUNCTION + crc: 0xd29c1f10 + type_id: 0x9a2d8ab0 + full_name: "__traceiter_error_report_end" +} +elf_symbol { id: 0x104ffeec name: "__traceiter_gpu_mem_total" is_defined: true @@ -327397,7 +336544,7 @@ elf_symbol { name: "__traceiter_kfree_skb" is_defined: true symbol_type: FUNCTION - crc: 0x48ea9536 + crc: 0x7c293d40 type_id: 0x9bbccaf3 full_name: "__traceiter_kfree_skb" } @@ -327429,11 +336576,74 @@ elf_symbol { full_name: "__traceiter_mmap_lock_start_locking" } elf_symbol { + id: 0x16d7641f + name: "__traceiter_net_dev_queue" + is_defined: true + symbol_type: FUNCTION + crc: 0x51ca976f + type_id: 0x9bba87c7 + full_name: "__traceiter_net_dev_queue" +} +elf_symbol { + id: 0xc8ec671c + name: "__traceiter_net_dev_xmit" + is_defined: true + symbol_type: FUNCTION + crc: 0x7a8f0110 + type_id: 0x9ba3940a + full_name: "__traceiter_net_dev_xmit" +} +elf_symbol { + id: 0x60c24c4f + name: "__traceiter_netif_receive_skb" + is_defined: true + symbol_type: FUNCTION + crc: 0x6957530d + type_id: 0x9bba87c7 + full_name: "__traceiter_netif_receive_skb" +} +elf_symbol { + id: 0xa7548418 + name: "__traceiter_netif_rx" + is_defined: true + symbol_type: FUNCTION + crc: 0x76d09323 + type_id: 0x9bba87c7 + full_name: "__traceiter_netif_rx" +} +elf_symbol { + id: 0xbbfa35c3 + name: "__traceiter_pelt_cfs_tp" + is_defined: true + symbol_type: FUNCTION + crc: 0x53dcc117 + type_id: 0x9b94dad5 + full_name: "__traceiter_pelt_cfs_tp" +} +elf_symbol { + id: 0x328bf22b + name: "__traceiter_pelt_dl_tp" + is_defined: true + symbol_type: FUNCTION + crc: 0x977e9245 + type_id: 0x9b17b01e + full_name: "__traceiter_pelt_dl_tp" +} +elf_symbol { + id: 0xbdceccc2 + name: "__traceiter_pelt_irq_tp" + is_defined: true + symbol_type: FUNCTION + crc: 0xb26f5140 + type_id: 0x9b17b01e + full_name: "__traceiter_pelt_irq_tp" +} +elf_symbol { id: 0x3e69b303 name: "__traceiter_pelt_rt_tp" is_defined: true symbol_type: FUNCTION - crc: 0xd16a1974 + crc: 0x866c127e type_id: 0x9b17b01e full_name: "__traceiter_pelt_rt_tp" } @@ -327442,7 +336652,7 @@ elf_symbol { name: "__traceiter_pelt_se_tp" is_defined: true symbol_type: FUNCTION - crc: 0x05399b39 + crc: 0x56fb997c type_id: 0x9b8f15f1 full_name: "__traceiter_pelt_se_tp" } @@ -327474,11 +336684,20 @@ elf_symbol { full_name: "__traceiter_rwmmio_write" } elf_symbol { + id: 0x1e8ffa55 + name: "__traceiter_sched_cpu_capacity_tp" + is_defined: true + symbol_type: FUNCTION + crc: 0xf30b3e42 + type_id: 0x9b17b01e + full_name: "__traceiter_sched_cpu_capacity_tp" +} +elf_symbol { id: 0xb614ca1f name: "__traceiter_sched_overutilized_tp" is_defined: true symbol_type: FUNCTION - crc: 0x44c77cdd + crc: 0x53e5ed7e type_id: 0x9b506e5c full_name: "__traceiter_sched_overutilized_tp" } @@ -327487,7 +336706,7 @@ elf_symbol { name: "__traceiter_sched_stat_blocked" is_defined: true symbol_type: FUNCTION - crc: 0xe8d5b998 + crc: 0xc7803553 type_id: 0x9bff5408 full_name: "__traceiter_sched_stat_blocked" } @@ -327496,7 +336715,7 @@ elf_symbol { name: "__traceiter_sched_stat_iowait" is_defined: true symbol_type: FUNCTION - crc: 0x6eb33d7c + crc: 0x72d60583 type_id: 0x9bff5408 full_name: "__traceiter_sched_stat_iowait" } @@ -327514,7 +336733,7 @@ elf_symbol { name: "__traceiter_sched_stat_sleep" is_defined: true symbol_type: FUNCTION - crc: 0xfdcf4baa + crc: 0x075f4e0e type_id: 0x9bff5408 full_name: "__traceiter_sched_stat_sleep" } @@ -327523,7 +336742,7 @@ elf_symbol { name: "__traceiter_sched_stat_wait" is_defined: true symbol_type: FUNCTION - crc: 0xf24747ec + crc: 0x8faa3c47 type_id: 0x9bff5408 full_name: "__traceiter_sched_stat_wait" } @@ -327532,7 +336751,7 @@ elf_symbol { name: "__traceiter_sched_switch" is_defined: true symbol_type: FUNCTION - crc: 0x43ab9848 + crc: 0x837ccc37 type_id: 0x9a1d6471 full_name: "__traceiter_sched_switch" } @@ -327541,16 +336760,34 @@ elf_symbol { name: "__traceiter_sched_update_nr_running_tp" is_defined: true symbol_type: FUNCTION - crc: 0x2c643a00 + crc: 0xfd425f55 type_id: 0x9b0e782a full_name: "__traceiter_sched_update_nr_running_tp" } elf_symbol { + id: 0x00296361 + name: "__traceiter_sched_util_est_cfs_tp" + is_defined: true + symbol_type: FUNCTION + crc: 0xa50436b4 + type_id: 0x9b94dad5 + full_name: "__traceiter_sched_util_est_cfs_tp" +} +elf_symbol { + id: 0xf574f9d9 + name: "__traceiter_sched_util_est_se_tp" + is_defined: true + symbol_type: FUNCTION + crc: 0xbbb17097 + type_id: 0x9b8f15f1 + full_name: "__traceiter_sched_util_est_se_tp" +} +elf_symbol { id: 0x20097074 name: "__traceiter_sched_waking" is_defined: true symbol_type: FUNCTION - crc: 0xcee9603a + crc: 0x52a13f40 type_id: 0x9bdbdcc4 full_name: "__traceiter_sched_waking" } @@ -327604,7 +336841,7 @@ elf_symbol { name: "__traceiter_xdp_exception" is_defined: true symbol_type: FUNCTION - crc: 0x14f27516 + crc: 0x18a41e69 type_id: 0x9b6e0d6b full_name: "__traceiter_xdp_exception" } @@ -327645,6 +336882,15 @@ elf_symbol { full_name: "__tracepoint_android_rvh_arm64_serror_panic" } elf_symbol { + id: 0xc9400cec + name: "__tracepoint_android_rvh_attach_entity_load_avg" + is_defined: true + symbol_type: OBJECT + crc: 0x9476c5e4 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_attach_entity_load_avg" +} +elf_symbol { id: 0xaf461bff name: "__tracepoint_android_rvh_audio_usb_offload_disconnect" is_defined: true @@ -327654,6 +336900,15 @@ elf_symbol { full_name: "__tracepoint_android_rvh_audio_usb_offload_disconnect" } elf_symbol { + id: 0xd7757253 + name: "__tracepoint_android_rvh_before_do_sched_yield" + is_defined: true + symbol_type: OBJECT + crc: 0x94abc138 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_before_do_sched_yield" +} +elf_symbol { id: 0x1e8a7e23 name: "__tracepoint_android_rvh_build_perf_domains" is_defined: true @@ -327672,6 +336927,15 @@ elf_symbol { full_name: "__tracepoint_android_rvh_can_migrate_task" } elf_symbol { + id: 0xb208306e + name: "__tracepoint_android_rvh_cgroup_force_kthread_migration" + is_defined: true + symbol_type: OBJECT + crc: 0x0c180285 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_cgroup_force_kthread_migration" +} +elf_symbol { id: 0x60b5a917 name: "__tracepoint_android_rvh_check_preempt_tick" is_defined: true @@ -327789,6 +337053,15 @@ elf_symbol { full_name: "__tracepoint_android_rvh_dequeue_task_fair" } elf_symbol { + id: 0x5029bb46 + name: "__tracepoint_android_rvh_detach_entity_load_avg" + is_defined: true + symbol_type: OBJECT + crc: 0xb186a022 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_detach_entity_load_avg" +} +elf_symbol { id: 0x11f903b1 name: "__tracepoint_android_rvh_die_kernel_fault" is_defined: true @@ -328023,6 +337296,24 @@ elf_symbol { full_name: "__tracepoint_android_rvh_iommu_setup_dma_ops" } elf_symbol { + id: 0x4fd98142 + name: "__tracepoint_android_rvh_irqs_disable" + is_defined: true + symbol_type: OBJECT + crc: 0x44ac9f4b + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_irqs_disable" +} +elf_symbol { + id: 0x695c4baf + name: "__tracepoint_android_rvh_irqs_enable" + is_defined: true + symbol_type: OBJECT + crc: 0xc9d53b36 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_irqs_enable" +} +elf_symbol { id: 0x99d57c12 name: "__tracepoint_android_rvh_is_cpu_allowed" is_defined: true @@ -328113,6 +337404,24 @@ elf_symbol { full_name: "__tracepoint_android_rvh_post_init_entity_util_avg" } elf_symbol { + id: 0x817c415a + name: "__tracepoint_android_rvh_preempt_disable" + is_defined: true + symbol_type: OBJECT + crc: 0xb4ec0da4 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_preempt_disable" +} +elf_symbol { + id: 0x3fe8bcd7 + name: "__tracepoint_android_rvh_preempt_enable" + is_defined: true + symbol_type: OBJECT + crc: 0x86d490a6 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_preempt_enable" +} +elf_symbol { id: 0x50605d97 name: "__tracepoint_android_rvh_prepare_prio_fork" is_defined: true @@ -328149,6 +337458,15 @@ elf_symbol { full_name: "__tracepoint_android_rvh_refrigerator" } elf_symbol { + id: 0x5ac6bcbc + name: "__tracepoint_android_rvh_remove_entity_load_avg" + is_defined: true + symbol_type: OBJECT + crc: 0x6b69fe2c + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_remove_entity_load_avg" +} +elf_symbol { id: 0x18bac297 name: "__tracepoint_android_rvh_replace_next_task_fair" is_defined: true @@ -328176,6 +337494,15 @@ elf_symbol { full_name: "__tracepoint_android_rvh_revert_creds" } elf_symbol { + id: 0xf2fd13ea + name: "__tracepoint_android_rvh_rtmutex_force_update" + is_defined: true + symbol_type: OBJECT + crc: 0xa86a5262 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_rtmutex_force_update" +} +elf_symbol { id: 0x69e37d02 name: "__tracepoint_android_rvh_rtmutex_prepare_setprio" is_defined: true @@ -328419,6 +337746,15 @@ elf_symbol { full_name: "__tracepoint_android_rvh_set_gfp_zone_flags" } elf_symbol { + id: 0xbe9f9d4f + name: "__tracepoint_android_rvh_set_iowait" + is_defined: true + symbol_type: OBJECT + crc: 0x343470a7 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_set_iowait" +} +elf_symbol { id: 0xda52fd4f name: "__tracepoint_android_rvh_set_module_core_rw_nx" is_defined: true @@ -328509,6 +337845,24 @@ elf_symbol { full_name: "__tracepoint_android_rvh_show_max_freq" } elf_symbol { + id: 0xad588d93 + name: "__tracepoint_android_rvh_sk_alloc" + is_defined: true + symbol_type: OBJECT + crc: 0xda71608c + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_sk_alloc" +} +elf_symbol { + id: 0x05463d55 + name: "__tracepoint_android_rvh_sk_free" + is_defined: true + symbol_type: OBJECT + crc: 0x06bf13fe + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_sk_free" +} +elf_symbol { id: 0x8db62b4f name: "__tracepoint_android_rvh_tick_entry" is_defined: true @@ -328563,6 +337917,15 @@ elf_symbol { full_name: "__tracepoint_android_rvh_uclamp_eff_get" } elf_symbol { + id: 0xc3add2dc + name: "__tracepoint_android_rvh_update_blocked_fair" + is_defined: true + symbol_type: OBJECT + crc: 0x6d3cb3aa + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_update_blocked_fair" +} +elf_symbol { id: 0xdc2af26c name: "__tracepoint_android_rvh_update_cpu_capacity" is_defined: true @@ -328572,6 +337935,15 @@ elf_symbol { full_name: "__tracepoint_android_rvh_update_cpu_capacity" } elf_symbol { + id: 0xcc5017b7 + name: "__tracepoint_android_rvh_update_load_avg" + is_defined: true + symbol_type: OBJECT + crc: 0x8ae1dc28 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_update_load_avg" +} +elf_symbol { id: 0x1362c5b0 name: "__tracepoint_android_rvh_update_misfit_status" is_defined: true @@ -328581,6 +337953,15 @@ elf_symbol { full_name: "__tracepoint_android_rvh_update_misfit_status" } elf_symbol { + id: 0xaa2da792 + name: "__tracepoint_android_rvh_update_rt_rq_load_avg" + is_defined: true + symbol_type: OBJECT + crc: 0x4bcdd224 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_rvh_update_rt_rq_load_avg" +} +elf_symbol { id: 0x0e614ab0 name: "__tracepoint_android_rvh_update_thermal_stats" is_defined: true @@ -328626,6 +338007,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_account_task_time" } elf_symbol { + id: 0xd7f9868e + name: "__tracepoint_android_vh_alloc_oem_binder_struct" + is_defined: true + symbol_type: OBJECT + crc: 0xf8d28f05 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_alloc_oem_binder_struct" +} +elf_symbol { id: 0x37776872 name: "__tracepoint_android_vh_alloc_pages_failure_bypass" is_defined: true @@ -328644,6 +338034,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_alloc_pages_reclaim_bypass" } elf_symbol { + id: 0x1ebb872f + name: "__tracepoint_android_vh_alloc_pages_slowpath" + is_defined: true + symbol_type: OBJECT + crc: 0x08e2839b + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_alloc_pages_slowpath" +} +elf_symbol { id: 0xea695d5b name: "__tracepoint_android_vh_alloc_uid" is_defined: true @@ -328716,6 +338115,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_binder_del_ref" } elf_symbol { + id: 0x19dded7c + name: "__tracepoint_android_vh_binder_free_buf" + is_defined: true + symbol_type: OBJECT + crc: 0xf64d3ead + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_binder_free_buf" +} +elf_symbol { id: 0xf32898c6 name: "__tracepoint_android_vh_binder_free_proc" is_defined: true @@ -328842,6 +338250,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_binder_set_priority" } elf_symbol { + id: 0xdda667b0 + name: "__tracepoint_android_vh_binder_special_task" + is_defined: true + symbol_type: OBJECT + crc: 0x46cb2346 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_binder_special_task" +} +elf_symbol { id: 0x306b5ff7 name: "__tracepoint_android_vh_binder_thread_read" is_defined: true @@ -328878,6 +338295,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_binder_transaction_init" } elf_symbol { + id: 0xabc729f7 + name: "__tracepoint_android_vh_binder_transaction_received" + is_defined: true + symbol_type: OBJECT + crc: 0x73e426b8 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_binder_transaction_received" +} +elf_symbol { id: 0x75b174bb name: "__tracepoint_android_vh_binder_wait_for_work" is_defined: true @@ -328941,6 +338367,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_check_file_open" } elf_symbol { + id: 0xca5cbc9a + name: "__tracepoint_android_vh_check_folio_look_around_ref" + is_defined: true + symbol_type: OBJECT + crc: 0xdaaccf03 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_check_folio_look_around_ref" +} +elf_symbol { id: 0xaa072f92 name: "__tracepoint_android_vh_check_hibernation_swap" is_defined: true @@ -328986,6 +338421,24 @@ elf_symbol { full_name: "__tracepoint_android_vh_cleanup_old_buffers_bypass" } elf_symbol { + id: 0x9d49459f + name: "__tracepoint_android_vh_compaction_exit" + is_defined: true + symbol_type: OBJECT + crc: 0x69025433 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_compaction_exit" +} +elf_symbol { + id: 0x759240ef + name: "__tracepoint_android_vh_compaction_try_to_compact_pages_exit" + is_defined: true + symbol_type: OBJECT + crc: 0x85c1c35f + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_compaction_try_to_compact_pages_exit" +} +elf_symbol { id: 0x26324a1f name: "__tracepoint_android_vh_cpu_idle_enter" is_defined: true @@ -329130,6 +338583,24 @@ elf_symbol { full_name: "__tracepoint_android_vh_dup_task_struct" } elf_symbol { + id: 0x54b2cd01 + name: "__tracepoint_android_vh_enable_thermal_genl_check" + is_defined: true + symbol_type: OBJECT + crc: 0x29cc54bf + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_enable_thermal_genl_check" +} +elf_symbol { + id: 0x188eab44 + name: "__tracepoint_android_vh_enable_thermal_power_throttle" + is_defined: true + symbol_type: OBJECT + crc: 0x13db5a5d + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_enable_thermal_power_throttle" +} +elf_symbol { id: 0xe7584e1c name: "__tracepoint_android_vh_encrypt_page" is_defined: true @@ -329139,6 +338610,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_encrypt_page" } elf_symbol { + id: 0x684e5f4f + name: "__tracepoint_android_vh_exit_check" + is_defined: true + symbol_type: OBJECT + crc: 0x49c49792 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_exit_check" +} +elf_symbol { id: 0x0d418d38 name: "__tracepoint_android_vh_exit_signal" is_defined: true @@ -329148,6 +338628,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_exit_signal" } elf_symbol { + id: 0x2121385f + name: "__tracepoint_android_vh_exit_signal_whether_wake" + is_defined: true + symbol_type: OBJECT + crc: 0xfc31d092 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_exit_signal_whether_wake" +} +elf_symbol { id: 0x50a83025 name: "__tracepoint_android_vh_file_is_tiny_bypass" is_defined: true @@ -329157,6 +338646,24 @@ elf_symbol { full_name: "__tracepoint_android_vh_file_is_tiny_bypass" } elf_symbol { + id: 0x901d0e89 + name: "__tracepoint_android_vh_free_oem_binder_struct" + is_defined: true + symbol_type: OBJECT + crc: 0xc924dc00 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_free_oem_binder_struct" +} +elf_symbol { + id: 0x04a824b5 + name: "__tracepoint_android_vh_free_one_page_bypass" + is_defined: true + symbol_type: OBJECT + crc: 0xb8e1bbb2 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_free_one_page_bypass" +} +elf_symbol { id: 0xe6918e09 name: "__tracepoint_android_vh_free_task" is_defined: true @@ -329175,6 +338682,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_free_user" } elf_symbol { + id: 0x888dea6d + name: "__tracepoint_android_vh_freeze_whether_wake" + is_defined: true + symbol_type: OBJECT + crc: 0x8e4434ef + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_freeze_whether_wake" +} +elf_symbol { id: 0xace80c56 name: "__tracepoint_android_vh_freq_qos_add_request" is_defined: true @@ -329319,6 +338835,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_get_thermal_zone_device" } elf_symbol { + id: 0x60a121b4 + name: "__tracepoint_android_vh_gic_set_affinity" + is_defined: true + symbol_type: OBJECT + crc: 0x2b46dd56 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_gic_set_affinity" +} +elf_symbol { id: 0xf18e312d name: "__tracepoint_android_vh_gic_v3_suspend" is_defined: true @@ -329400,6 +338925,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_jiffies_update" } elf_symbol { + id: 0xa48390ca + name: "__tracepoint_android_vh_killed_process" + is_defined: true + symbol_type: OBJECT + crc: 0xe41a7380 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_killed_process" +} +elf_symbol { id: 0x586a06d1 name: "__tracepoint_android_vh_kswapd_per_node" is_defined: true @@ -329409,6 +338943,24 @@ elf_symbol { full_name: "__tracepoint_android_vh_kswapd_per_node" } elf_symbol { + id: 0xda2d53f2 + name: "__tracepoint_android_vh_look_around" + is_defined: true + symbol_type: OBJECT + crc: 0x738994e9 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_look_around" +} +elf_symbol { + id: 0x50a5a949 + name: "__tracepoint_android_vh_look_around_migrate_folio" + is_defined: true + symbol_type: OBJECT + crc: 0x8b32227d + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_look_around_migrate_folio" +} +elf_symbol { id: 0xcb34ca12 name: "__tracepoint_android_vh_madvise_cold_pageout_skip" is_defined: true @@ -329499,6 +339051,42 @@ elf_symbol { full_name: "__tracepoint_android_vh_meminfo_cache_adjust" } elf_symbol { + id: 0xa5b4e5b2 + name: "__tracepoint_android_vh_meminfo_proc_show" + is_defined: true + symbol_type: OBJECT + crc: 0xd7997ac2 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_meminfo_proc_show" +} +elf_symbol { + id: 0xce7e7dff + name: "__tracepoint_android_vh_mm_alloc_pages_direct_reclaim_enter" + is_defined: true + symbol_type: OBJECT + crc: 0xa744fbcb + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_mm_alloc_pages_direct_reclaim_enter" +} +elf_symbol { + id: 0x1a1d0854 + name: "__tracepoint_android_vh_mm_alloc_pages_direct_reclaim_exit" + is_defined: true + symbol_type: OBJECT + crc: 0xaf85b82e + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_mm_alloc_pages_direct_reclaim_exit" +} +elf_symbol { + id: 0xf2890610 + name: "__tracepoint_android_vh_mm_alloc_pages_may_oom_exit" + is_defined: true + symbol_type: OBJECT + crc: 0xde5036e1 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_mm_alloc_pages_may_oom_exit" +} +elf_symbol { id: 0xb6da564f name: "__tracepoint_android_vh_mmap_region" is_defined: true @@ -329625,6 +339213,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_page_add_new_anon_rmap" } elf_symbol { + id: 0x3d63616d + name: "__tracepoint_android_vh_percpu_rwsem_wq_add" + is_defined: true + symbol_type: OBJECT + crc: 0x036f4a0a + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_percpu_rwsem_wq_add" +} +elf_symbol { id: 0xab37fc55 name: "__tracepoint_android_vh_post_image_save" is_defined: true @@ -329697,6 +339294,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_record_pcpu_rwsem_starttime" } elf_symbol { + id: 0x158c4cfa + name: "__tracepoint_android_vh_record_pcpu_rwsem_time_early" + is_defined: true + symbol_type: OBJECT + crc: 0xfb2f7ea7 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_record_pcpu_rwsem_time_early" +} +elf_symbol { id: 0x4568ff8f name: "__tracepoint_android_vh_record_rtmutex_lock_starttime" is_defined: true @@ -329715,6 +339321,24 @@ elf_symbol { full_name: "__tracepoint_android_vh_record_rwsem_lock_starttime" } elf_symbol { + id: 0x13b2fb38 + name: "__tracepoint_android_vh_regmap_update" + is_defined: true + symbol_type: OBJECT + crc: 0xcf37e88a + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_regmap_update" +} +elf_symbol { + id: 0x04365139 + name: "__tracepoint_android_vh_rmqueue_smallest_bypass" + is_defined: true + symbol_type: OBJECT + crc: 0x48db8869 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_rmqueue_smallest_bypass" +} +elf_symbol { id: 0xd94bc301 name: "__tracepoint_android_vh_rproc_recovery" is_defined: true @@ -329751,6 +339375,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_rtmutex_wait_start" } elf_symbol { + id: 0xeaebbadf + name: "__tracepoint_android_vh_rtmutex_waiter_prio" + is_defined: true + symbol_type: OBJECT + crc: 0x0fbb21e2 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_rtmutex_waiter_prio" +} +elf_symbol { id: 0xe471b8d5 name: "__tracepoint_android_vh_rwsem_can_spin_on_owner" is_defined: true @@ -329868,6 +339501,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_save_hib_resume_bdev" } elf_symbol { + id: 0x8b4c2f61 + name: "__tracepoint_android_vh_scan_abort_check_wmarks" + is_defined: true + symbol_type: OBJECT + crc: 0x814e8595 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_scan_abort_check_wmarks" +} +elf_symbol { id: 0xb3b18fc4 name: "__tracepoint_android_vh_sched_pelt_multiplier" is_defined: true @@ -330057,6 +339699,24 @@ elf_symbol { full_name: "__tracepoint_android_vh_sysrq_crash" } elf_symbol { + id: 0xe5bf742d + name: "__tracepoint_android_vh_task_blocks_on_rtmutex" + is_defined: true + symbol_type: OBJECT + crc: 0x5494b8bf + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_task_blocks_on_rtmutex" +} +elf_symbol { + id: 0x4ef2c337 + name: "__tracepoint_android_vh_test_clear_look_around_ref" + is_defined: true + symbol_type: OBJECT + crc: 0x4ffca4ae + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_test_clear_look_around_ref" +} +elf_symbol { id: 0x6f25dd05 name: "__tracepoint_android_vh_thermal_power_cap" is_defined: true @@ -330120,6 +339780,24 @@ elf_symbol { full_name: "__tracepoint_android_vh_try_to_unmap_one" } elf_symbol { + id: 0x49b955bd + name: "__tracepoint_android_vh_tune_scan_type" + is_defined: true + symbol_type: OBJECT + crc: 0x45da6384 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_tune_scan_type" +} +elf_symbol { + id: 0xfe6b6962 + name: "__tracepoint_android_vh_tune_swappiness" + is_defined: true + symbol_type: OBJECT + crc: 0x88fcdb6c + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_tune_swappiness" +} +elf_symbol { id: 0x18e67da1 name: "__tracepoint_android_vh_typec_store_partner_src_caps" is_defined: true @@ -330156,6 +339834,24 @@ elf_symbol { full_name: "__tracepoint_android_vh_typec_tcpm_log" } elf_symbol { + id: 0x1f1a25bd + name: "__tracepoint_android_vh_typec_tcpm_modify_src_caps" + is_defined: true + symbol_type: OBJECT + crc: 0x0c9ea609 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_typec_tcpm_modify_src_caps" +} +elf_symbol { + id: 0xf09ef4d0 + name: "__tracepoint_android_vh_uclamp_validate" + is_defined: true + symbol_type: OBJECT + crc: 0xb9255a9f + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_uclamp_validate" +} +elf_symbol { id: 0x609a86da name: "__tracepoint_android_vh_ufs_check_int_errors" is_defined: true @@ -330273,6 +339969,24 @@ elf_symbol { full_name: "__tracepoint_android_vh_update_topology_flags_workfn" } elf_symbol { + id: 0xe100c3ad + name: "__tracepoint_android_vh_use_amu_fie" + is_defined: true + symbol_type: OBJECT + crc: 0x8ea85bac + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_use_amu_fie" +} +elf_symbol { + id: 0x55476a7c + name: "__tracepoint_android_vh_vmscan_kswapd_done" + is_defined: true + symbol_type: OBJECT + crc: 0x46714dec + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_vmscan_kswapd_done" +} +elf_symbol { id: 0x42dbeb24 name: "__tracepoint_android_vh_watchdog_timer_softlockup" is_defined: true @@ -330282,6 +339996,15 @@ elf_symbol { full_name: "__tracepoint_android_vh_watchdog_timer_softlockup" } elf_symbol { + id: 0xa13f65ff + name: "__tracepoint_android_vh_wq_lockup_pool" + is_defined: true + symbol_type: OBJECT + crc: 0x4fd35a54 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_wq_lockup_pool" +} +elf_symbol { id: 0xf57e8f65 name: "__tracepoint_binder_transaction_received" is_defined: true @@ -330426,6 +340149,15 @@ elf_symbol { full_name: "__tracepoint_dma_fence_emit" } elf_symbol { + id: 0x3b13741e + name: "__tracepoint_error_report_end" + is_defined: true + symbol_type: OBJECT + crc: 0x0a463293 + type_id: 0x18ccbd2c + full_name: "__tracepoint_error_report_end" +} +elf_symbol { id: 0xd8f3ca82 name: "__tracepoint_gpu_mem_total" is_defined: true @@ -330534,6 +340266,69 @@ elf_symbol { full_name: "__tracepoint_mmap_lock_start_locking" } elf_symbol { + id: 0xd21276a5 + name: "__tracepoint_net_dev_queue" + is_defined: true + symbol_type: OBJECT + crc: 0x0f304d20 + type_id: 0x18ccbd2c + full_name: "__tracepoint_net_dev_queue" +} +elf_symbol { + id: 0x4a43bdfe + name: "__tracepoint_net_dev_xmit" + is_defined: true + symbol_type: OBJECT + crc: 0xb1d40474 + type_id: 0x18ccbd2c + full_name: "__tracepoint_net_dev_xmit" +} +elf_symbol { + id: 0xd224caa5 + name: "__tracepoint_netif_receive_skb" + is_defined: true + symbol_type: OBJECT + crc: 0x8ee83e85 + type_id: 0x18ccbd2c + full_name: "__tracepoint_netif_receive_skb" +} +elf_symbol { + id: 0xcbc5fd52 + name: "__tracepoint_netif_rx" + is_defined: true + symbol_type: OBJECT + crc: 0x8aa12be4 + type_id: 0x18ccbd2c + full_name: "__tracepoint_netif_rx" +} +elf_symbol { + id: 0x0ab12991 + name: "__tracepoint_pelt_cfs_tp" + is_defined: true + symbol_type: OBJECT + crc: 0x64f74abf + type_id: 0x18ccbd2c + full_name: "__tracepoint_pelt_cfs_tp" +} +elf_symbol { + id: 0x12df1a91 + name: "__tracepoint_pelt_dl_tp" + is_defined: true + symbol_type: OBJECT + crc: 0x15c60a71 + type_id: 0x18ccbd2c + full_name: "__tracepoint_pelt_dl_tp" +} +elf_symbol { + id: 0x67e2af24 + name: "__tracepoint_pelt_irq_tp" + is_defined: true + symbol_type: OBJECT + crc: 0x2200061c + type_id: 0x18ccbd2c + full_name: "__tracepoint_pelt_irq_tp" +} +elf_symbol { id: 0xf3cb5921 name: "__tracepoint_pelt_rt_tp" is_defined: true @@ -330579,6 +340374,15 @@ elf_symbol { full_name: "__tracepoint_rwmmio_write" } elf_symbol { + id: 0x191846a3 + name: "__tracepoint_sched_cpu_capacity_tp" + is_defined: true + symbol_type: OBJECT + crc: 0x3b610584 + type_id: 0x18ccbd2c + full_name: "__tracepoint_sched_cpu_capacity_tp" +} +elf_symbol { id: 0x2497fb4d name: "__tracepoint_sched_overutilized_tp" is_defined: true @@ -330651,6 +340455,24 @@ elf_symbol { full_name: "__tracepoint_sched_update_nr_running_tp" } elf_symbol { + id: 0x2160e0b7 + name: "__tracepoint_sched_util_est_cfs_tp" + is_defined: true + symbol_type: OBJECT + crc: 0x2c790d4a + type_id: 0x18ccbd2c + full_name: "__tracepoint_sched_util_est_cfs_tp" +} +elf_symbol { + id: 0xf586b3bb + name: "__tracepoint_sched_util_est_se_tp" + is_defined: true + symbol_type: OBJECT + crc: 0x3a74e484 + type_id: 0x18ccbd2c + full_name: "__tracepoint_sched_util_est_se_tp" +} +elf_symbol { id: 0xa70e8cd2 name: "__tracepoint_sched_waking" is_defined: true @@ -330745,7 +340567,7 @@ elf_symbol { name: "__udp4_lib_lookup" is_defined: true symbol_type: FUNCTION - crc: 0x97ac7d72 + crc: 0x53d5595d type_id: 0x6cfb566e full_name: "__udp4_lib_lookup" } @@ -330754,7 +340576,7 @@ elf_symbol { name: "__udp6_lib_lookup" is_defined: true symbol_type: FUNCTION - crc: 0x24cf96c3 + crc: 0xb60b1290 type_id: 0x6f9cf068 full_name: "__udp6_lib_lookup" } @@ -330781,7 +340603,7 @@ elf_symbol { name: "__usb_create_hcd" is_defined: true symbol_type: FUNCTION - crc: 0x0ab3fbd7 + crc: 0x44b8d338 type_id: 0xab9a208d full_name: "__usb_create_hcd" } @@ -330795,6 +340617,15 @@ elf_symbol { full_name: "__usecs_to_jiffies" } elf_symbol { + id: 0x4c0a941a + name: "__v4l2_ctrl_handler_setup" + is_defined: true + symbol_type: FUNCTION + crc: 0x3ae35349 + type_id: 0x9d1bec55 + full_name: "__v4l2_ctrl_handler_setup" +} +elf_symbol { id: 0xfc85c168 name: "__v4l2_ctrl_modify_range" is_defined: true @@ -330867,6 +340698,15 @@ elf_symbol { full_name: "__video_register_device" } elf_symbol { + id: 0x6b7624f1 + name: "__vlan_find_dev_deep_rcu" + is_defined: true + symbol_type: FUNCTION + crc: 0xa50a5b08 + type_id: 0xf12845f8 + full_name: "__vlan_find_dev_deep_rcu" +} +elf_symbol { id: 0x97d65f20 name: "__vmalloc" is_defined: true @@ -330975,6 +340815,15 @@ elf_symbol { full_name: "__xa_alloc_cyclic" } elf_symbol { + id: 0x4b52e164 + name: "__xa_erase" + is_defined: true + symbol_type: FUNCTION + crc: 0xe02c9c92 + type_id: 0x5cf34a0d + full_name: "__xa_erase" +} +elf_symbol { id: 0xd6e3f912 name: "__xa_insert" is_defined: true @@ -330984,11 +340833,20 @@ elf_symbol { full_name: "__xa_insert" } elf_symbol { + id: 0x52069d2d + name: "__xa_store" + is_defined: true + symbol_type: FUNCTION + crc: 0xca9beaa4 + type_id: 0x5cf6a3cf + full_name: "__xa_store" +} +elf_symbol { id: 0x640280c1 name: "__xdp_rxq_info_reg" is_defined: true symbol_type: FUNCTION - crc: 0x91b7d22b + crc: 0x43bf6f7c type_id: 0x954d9028 full_name: "__xdp_rxq_info_reg" } @@ -330997,11 +340855,29 @@ elf_symbol { name: "__xfrm_state_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x935463fd + crc: 0xfed7e612 type_id: 0x10605221 full_name: "__xfrm_state_destroy" } elf_symbol { + id: 0xda249832 + name: "_bcd2bin" + is_defined: true + symbol_type: FUNCTION + crc: 0xb6936ffe + type_id: 0xd9bb2b92 + full_name: "_bcd2bin" +} +elf_symbol { + id: 0x206fe2ef + name: "_bin2bcd" + is_defined: true + symbol_type: FUNCTION + crc: 0x80ca5026 + type_id: 0xdcb8e234 + full_name: "_bin2bcd" +} +elf_symbol { id: 0x5693f2df name: "_copy_from_iter" is_defined: true @@ -331033,7 +340909,7 @@ elf_symbol { name: "_dev_alert" is_defined: true symbol_type: FUNCTION - crc: 0x5b0a1524 + crc: 0x094d64f0 type_id: 0x1fa0c57a full_name: "_dev_alert" } @@ -331042,7 +340918,7 @@ elf_symbol { name: "_dev_crit" is_defined: true symbol_type: FUNCTION - crc: 0xec6ba642 + crc: 0xd5a2398e type_id: 0x1fa0c57a full_name: "_dev_crit" } @@ -331051,7 +340927,7 @@ elf_symbol { name: "_dev_emerg" is_defined: true symbol_type: FUNCTION - crc: 0x27b4b33a + crc: 0x6b04cd3e type_id: 0x1fa0c57a full_name: "_dev_emerg" } @@ -331060,7 +340936,7 @@ elf_symbol { name: "_dev_err" is_defined: true symbol_type: FUNCTION - crc: 0x719e0d04 + crc: 0xf27ed00b type_id: 0x1fa0c57a full_name: "_dev_err" } @@ -331069,7 +340945,7 @@ elf_symbol { name: "_dev_info" is_defined: true symbol_type: FUNCTION - crc: 0x0c84d1d1 + crc: 0xef3cb484 type_id: 0x1fa0c57a full_name: "_dev_info" } @@ -331078,7 +340954,7 @@ elf_symbol { name: "_dev_notice" is_defined: true symbol_type: FUNCTION - crc: 0xf17d22cc + crc: 0x7436d39e type_id: 0x1fa0c57a full_name: "_dev_notice" } @@ -331087,7 +340963,7 @@ elf_symbol { name: "_dev_printk" is_defined: true symbol_type: FUNCTION - crc: 0x2379dc74 + crc: 0x7d4d96b8 type_id: 0x1feff59b full_name: "_dev_printk" } @@ -331096,7 +340972,7 @@ elf_symbol { name: "_dev_warn" is_defined: true symbol_type: FUNCTION - crc: 0x816cb52d + crc: 0x0f55bd9b type_id: 0x1fa0c57a full_name: "_dev_warn" } @@ -331470,6 +341346,15 @@ elf_symbol { full_name: "_trace_android_vh_record_pcpu_rwsem_starttime" } elf_symbol { + id: 0x874fa015 + name: "_trace_android_vh_record_pcpu_rwsem_time_early" + is_defined: true + symbol_type: FUNCTION + crc: 0x2ea4d65a + type_id: 0x1c03dd76 + full_name: "_trace_android_vh_record_pcpu_rwsem_time_early" +} +elf_symbol { id: 0x86a88093 name: "_vb2_fop_release" is_defined: true @@ -331492,7 +341377,7 @@ elf_symbol { name: "activate_task" is_defined: true symbol_type: FUNCTION - crc: 0xdf8745f0 + crc: 0xe4134e16 type_id: 0x1b7558dd full_name: "activate_task" } @@ -331582,7 +341467,7 @@ elf_symbol { name: "addrconf_add_linklocal" is_defined: true symbol_type: FUNCTION - crc: 0x12858eef + crc: 0x49969074 type_id: 0x1eaf1d5f full_name: "addrconf_add_linklocal" } @@ -331591,7 +341476,7 @@ elf_symbol { name: "addrconf_prefix_rcv_add_addr" is_defined: true symbol_type: FUNCTION - crc: 0xbad4fe13 + crc: 0x1da1aeb9 type_id: 0x9e6d2eab full_name: "addrconf_prefix_rcv_add_addr" } @@ -331717,7 +341602,7 @@ elf_symbol { name: "alloc_can_err_skb" is_defined: true symbol_type: FUNCTION - crc: 0xfa16caa3 + crc: 0x6b6e2d02 type_id: 0x6408a046 full_name: "alloc_can_err_skb" } @@ -331726,7 +341611,7 @@ elf_symbol { name: "alloc_can_skb" is_defined: true symbol_type: FUNCTION - crc: 0xfd55b11e + crc: 0x2913955d type_id: 0x6408a046 full_name: "alloc_can_skb" } @@ -331735,7 +341620,7 @@ elf_symbol { name: "alloc_candev_mqs" is_defined: true symbol_type: FUNCTION - crc: 0xc089e18d + crc: 0x18246485 type_id: 0xe4bddbe2 full_name: "alloc_candev_mqs" } @@ -331744,7 +341629,7 @@ elf_symbol { name: "alloc_canfd_skb" is_defined: true symbol_type: FUNCTION - crc: 0xfeb622ba + crc: 0x903fec4b type_id: 0x643d13df full_name: "alloc_canfd_skb" } @@ -331753,7 +341638,7 @@ elf_symbol { name: "alloc_canxl_skb" is_defined: true symbol_type: FUNCTION - crc: 0xa6687946 + crc: 0xf4740e30 type_id: 0x641b717f full_name: "alloc_canxl_skb" } @@ -331771,7 +341656,7 @@ elf_symbol { name: "alloc_etherdev_mqs" is_defined: true symbol_type: FUNCTION - crc: 0xb3df8102 + crc: 0x4489db23 type_id: 0xe4bccdf7 full_name: "alloc_etherdev_mqs" } @@ -331785,11 +341670,20 @@ elf_symbol { full_name: "alloc_io_pgtable_ops" } elf_symbol { + id: 0x9cff6ebf + name: "alloc_iova_fast" + is_defined: true + symbol_type: FUNCTION + crc: 0x1565176f + type_id: 0x3e8d4bea + full_name: "alloc_iova_fast" +} +elf_symbol { id: 0xcf6df527 name: "alloc_netdev_mqs" is_defined: true symbol_type: FUNCTION - crc: 0xedd87aed + crc: 0xa8cf71ff type_id: 0xe554bdb1 full_name: "alloc_netdev_mqs" } @@ -331807,7 +341701,7 @@ elf_symbol { name: "alloc_skb_with_frags" is_defined: true symbol_type: FUNCTION - crc: 0x1970c5d5 + crc: 0xc87863cb type_id: 0x64970caf full_name: "alloc_skb_with_frags" } @@ -331884,6 +341778,26 @@ elf_symbol { full_name: "amba_request_regions" } elf_symbol { + id: 0x5653e7da + name: "android_debug_per_cpu_symbol" + is_defined: true + symbol_type: FUNCTION + crc: 0x8ee3d8d9 + namespace: "MINIDUMP" + type_id: 0x429ad182 + full_name: "android_debug_per_cpu_symbol" +} +elf_symbol { + id: 0xffaebc56 + name: "android_debug_symbol" + is_defined: true + symbol_type: FUNCTION + crc: 0x1d505a43 + namespace: "MINIDUMP" + type_id: 0x4a818b9c + full_name: "android_debug_symbol" +} +elf_symbol { id: 0xd8dbec6e name: "android_rvh_probe_register" is_defined: true @@ -332010,7 +341924,7 @@ elf_symbol { name: "arp_tbl" is_defined: true symbol_type: OBJECT - crc: 0xf9e7723e + crc: 0x228f026d type_id: 0x77670b3b full_name: "arp_tbl" } @@ -332105,6 +342019,15 @@ elf_symbol { full_name: "available_idle_cpu" } elf_symbol { + id: 0x3eb51b20 + name: "avenrun" + is_defined: true + symbol_type: OBJECT + crc: 0xf1e98c74 + type_id: 0x1e18ac15 + full_name: "avenrun" +} +elf_symbol { id: 0xb9c34cbd name: "backlight_device_get_by_type" is_defined: true @@ -332208,7 +342131,7 @@ elf_symbol { name: "balance_push_callback" is_defined: true symbol_type: OBJECT - crc: 0xae979d07 + crc: 0xa6209c0c type_id: 0x3e2562ef full_name: "balance_push_callback" } @@ -332384,6 +342307,15 @@ elf_symbol { full_name: "bio_associate_blkg" } elf_symbol { + id: 0xaa6c907e + name: "bio_associate_blkg_from_css" + is_defined: true + symbol_type: FUNCTION + crc: 0x73f8f3ea + type_id: 0x155cca9b + full_name: "bio_associate_blkg_from_css" +} +elf_symbol { id: 0xb2553250 name: "bio_chain" is_defined: true @@ -332438,6 +342370,15 @@ elf_symbol { full_name: "bio_put" } elf_symbol { + id: 0xa8878d9e + name: "bio_split" + is_defined: true + symbol_type: FUNCTION + crc: 0x8e0ebb54 + type_id: 0x97a0d8a7 + full_name: "bio_split" +} +elf_symbol { id: 0x1cb0de6c name: "bio_start_io_acct" is_defined: true @@ -332465,6 +342406,15 @@ elf_symbol { full_name: "bit_wait_timeout" } elf_symbol { + id: 0x00f38540 + name: "bit_waitqueue" + is_defined: true + symbol_type: FUNCTION + crc: 0xad9901ae + type_id: 0xf8e4b6f7 + full_name: "bit_waitqueue" +} +elf_symbol { id: 0x181f78de name: "bitmap_alloc" is_defined: true @@ -332582,6 +342532,24 @@ elf_symbol { full_name: "blk_abort_request" } elf_symbol { + id: 0x1516f6b7 + name: "blk_bio_list_merge" + is_defined: true + symbol_type: FUNCTION + crc: 0x693f756e + type_id: 0xfc093226 + full_name: "blk_bio_list_merge" +} +elf_symbol { + id: 0x650319ec + name: "blk_check_plugged" + is_defined: true + symbol_type: FUNCTION + crc: 0xd27b25dd + type_id: 0x66cc4765 + full_name: "blk_check_plugged" +} +elf_symbol { id: 0x4ffac461 name: "blk_crypto_keyslot_index" is_defined: true @@ -332627,6 +342595,15 @@ elf_symbol { full_name: "blk_execute_rq_nowait" } elf_symbol { + id: 0x9eda4f26 + name: "blk_fill_rwbs" + is_defined: true + symbol_type: FUNCTION + crc: 0x2bd8a8bb + type_id: 0x105539bd + full_name: "blk_fill_rwbs" +} +elf_symbol { id: 0xc0d4821a name: "blk_finish_plug" is_defined: true @@ -332672,6 +342649,15 @@ elf_symbol { full_name: "blk_mq_complete_request" } elf_symbol { + id: 0x0467bac1 + name: "blk_mq_debugfs_rq_show" + is_defined: true + symbol_type: FUNCTION + crc: 0xec127399 + type_id: 0x9c7b6f16 + full_name: "blk_mq_debugfs_rq_show" +} +elf_symbol { id: 0x6458d26a name: "blk_mq_destroy_queue" is_defined: true @@ -332771,6 +342757,24 @@ elf_symbol { full_name: "blk_mq_rq_cpu" } elf_symbol { + id: 0xff90ba37 + name: "blk_mq_run_hw_queue" + is_defined: true + symbol_type: FUNCTION + crc: 0x46c2c44f + type_id: 0x19af92ca + full_name: "blk_mq_run_hw_queue" +} +elf_symbol { + id: 0xff19eaec + name: "blk_mq_run_hw_queues" + is_defined: true + symbol_type: FUNCTION + crc: 0x7400eefe + type_id: 0x137d33fc + full_name: "blk_mq_run_hw_queues" +} +elf_symbol { id: 0x49ee3f1e name: "blk_mq_sched_mark_restart_hctx" is_defined: true @@ -333185,6 +343189,15 @@ elf_symbol { full_name: "blk_start_plug" } elf_symbol { + id: 0x163b934e + name: "blk_stat_disable_accounting" + is_defined: true + symbol_type: FUNCTION + crc: 0x24fe2120 + type_id: 0x12c8ce83 + full_name: "blk_stat_disable_accounting" +} +elf_symbol { id: 0xb78983c5 name: "blk_stat_enable_accounting" is_defined: true @@ -333293,6 +343306,15 @@ elf_symbol { full_name: "blkdev_get_by_path" } elf_symbol { + id: 0x4d722bb5 + name: "blkdev_issue_discard" + is_defined: true + symbol_type: FUNCTION + crc: 0x992b458f + type_id: 0x9dfe4183 + full_name: "blkdev_issue_discard" +} +elf_symbol { id: 0x2a322266 name: "blkdev_issue_flush" is_defined: true @@ -333365,6 +343387,33 @@ elf_symbol { full_name: "blkg_rwstat_recursive_sum" } elf_symbol { + id: 0xd289c43d + name: "block_dirty_folio" + is_defined: true + symbol_type: FUNCTION + crc: 0x77ada257 + type_id: 0xfb413284 + full_name: "block_dirty_folio" +} +elf_symbol { + id: 0x6efa206d + name: "block_invalidate_folio" + is_defined: true + symbol_type: FUNCTION + crc: 0x3045fd1d + type_id: 0x1b29bd73 + full_name: "block_invalidate_folio" +} +elf_symbol { + id: 0x5cf37146 + name: "block_is_partially_uptodate" + is_defined: true + symbol_type: FUNCTION + crc: 0x5e5d36ff + type_id: 0xf515b7e4 + full_name: "block_is_partially_uptodate" +} +elf_symbol { id: 0x427cedc9 name: "blockdev_superblock" is_defined: true @@ -333410,6 +343459,24 @@ elf_symbol { full_name: "bpf_dispatcher_xdp_func" } elf_symbol { + id: 0xd1f054c0 + name: "bpf_map_inc" + is_defined: true + symbol_type: FUNCTION + crc: 0xb21c378c + type_id: 0x11b43560 + full_name: "bpf_map_inc" +} +elf_symbol { + id: 0x2e575a11 + name: "bpf_map_put" + is_defined: true + symbol_type: FUNCTION + crc: 0xc1113f69 + type_id: 0x11b43560 + full_name: "bpf_map_put" +} +elf_symbol { id: 0xf737e767 name: "bpf_master_redirect_enabled_key" is_defined: true @@ -333423,7 +343490,7 @@ elf_symbol { name: "bpf_prog_add" is_defined: true symbol_type: FUNCTION - crc: 0x4393cd01 + crc: 0x6a2296c2 type_id: 0x1de47b51 full_name: "bpf_prog_add" } @@ -333432,7 +343499,7 @@ elf_symbol { name: "bpf_prog_put" is_defined: true symbol_type: FUNCTION - crc: 0xe041145f + crc: 0x5ff8b2b7 type_id: 0x1c78f81d full_name: "bpf_prog_put" } @@ -333441,11 +343508,20 @@ elf_symbol { name: "bpf_prog_sub" is_defined: true symbol_type: FUNCTION - crc: 0x9b7eefdc + crc: 0xf8eeef85 type_id: 0x1de47b51 full_name: "bpf_prog_sub" } elf_symbol { + id: 0x56b332ad + name: "bpf_redirect_info" + is_defined: true + symbol_type: OBJECT + crc: 0x33823370 + type_id: 0x212d37a1 + full_name: "bpf_redirect_info" +} +elf_symbol { id: 0x6a712ee1 name: "bpf_stats_enabled_key" is_defined: true @@ -333459,7 +343535,7 @@ elf_symbol { name: "bpf_trace_run1" is_defined: true symbol_type: FUNCTION - crc: 0xe7e639e8 + crc: 0xe6643531 type_id: 0x1e3074d3 full_name: "bpf_trace_run1" } @@ -333468,7 +343544,7 @@ elf_symbol { name: "bpf_trace_run10" is_defined: true symbol_type: FUNCTION - crc: 0xd18ad3cf + crc: 0xb2057ce2 type_id: 0x1e169275 full_name: "bpf_trace_run10" } @@ -333477,7 +343553,7 @@ elf_symbol { name: "bpf_trace_run11" is_defined: true symbol_type: FUNCTION - crc: 0x80d8708a + crc: 0x11d6a547 type_id: 0x1e169276 full_name: "bpf_trace_run11" } @@ -333486,7 +343562,7 @@ elf_symbol { name: "bpf_trace_run12" is_defined: true symbol_type: FUNCTION - crc: 0x25e3f87c + crc: 0x7e34c48d type_id: 0x1e169277 full_name: "bpf_trace_run12" } @@ -333495,7 +343571,7 @@ elf_symbol { name: "bpf_trace_run2" is_defined: true symbol_type: FUNCTION - crc: 0x7ab61490 + crc: 0xc4b28304 type_id: 0x1e14fc1f full_name: "bpf_trace_run2" } @@ -333504,7 +343580,7 @@ elf_symbol { name: "bpf_trace_run3" is_defined: true symbol_type: FUNCTION - crc: 0xcca88298 + crc: 0x1f7600cb type_id: 0x1e16b493 full_name: "bpf_trace_run3" } @@ -333513,7 +343589,7 @@ elf_symbol { name: "bpf_trace_run4" is_defined: true symbol_type: FUNCTION - crc: 0x978156ed + crc: 0xc7b92fda type_id: 0x1e16901b full_name: "bpf_trace_run4" } @@ -333522,7 +343598,7 @@ elf_symbol { name: "bpf_trace_run5" is_defined: true symbol_type: FUNCTION - crc: 0x2794ce97 + crc: 0x267d05bf type_id: 0x1e169253 full_name: "bpf_trace_run5" } @@ -333531,7 +343607,7 @@ elf_symbol { name: "bpf_trace_run6" is_defined: true symbol_type: FUNCTION - crc: 0x2c7a0edd + crc: 0xa69c2a3c type_id: 0x1e169278 full_name: "bpf_trace_run6" } @@ -333540,7 +343616,7 @@ elf_symbol { name: "bpf_trace_run7" is_defined: true symbol_type: FUNCTION - crc: 0x986470ec + crc: 0xb5e91f0b type_id: 0x1e169279 full_name: "bpf_trace_run7" } @@ -333549,7 +343625,7 @@ elf_symbol { name: "bpf_trace_run8" is_defined: true symbol_type: FUNCTION - crc: 0xbfce4563 + crc: 0x63b71df2 type_id: 0x1e16927a full_name: "bpf_trace_run8" } @@ -333558,7 +343634,7 @@ elf_symbol { name: "bpf_trace_run9" is_defined: true symbol_type: FUNCTION - crc: 0x7f009284 + crc: 0x486596c9 type_id: 0x1e16927b full_name: "bpf_trace_run9" } @@ -333567,7 +343643,7 @@ elf_symbol { name: "bpf_warn_invalid_xdp_action" is_defined: true symbol_type: FUNCTION - crc: 0x3bb48053 + crc: 0xa7f1716a type_id: 0x1ccd91f4 full_name: "bpf_warn_invalid_xdp_action" } @@ -333612,7 +343688,7 @@ elf_symbol { name: "bt_accept_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0x360903f5 + crc: 0xa0c2214c type_id: 0x6b5469c2 full_name: "bt_accept_dequeue" } @@ -333621,7 +343697,7 @@ elf_symbol { name: "bt_accept_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0x590164df + crc: 0xd1448dc5 type_id: 0x17a71216 full_name: "bt_accept_enqueue" } @@ -333630,7 +343706,7 @@ elf_symbol { name: "bt_accept_unlink" is_defined: true symbol_type: FUNCTION - crc: 0x6d0d42a0 + crc: 0xec5c7e14 type_id: 0x17c95d08 full_name: "bt_accept_unlink" } @@ -333639,7 +343715,7 @@ elf_symbol { name: "bt_debugfs" is_defined: true symbol_type: OBJECT - crc: 0x584616a7 + crc: 0xbb89b7e0 type_id: 0x120540d1 full_name: "bt_debugfs" } @@ -333675,7 +343751,7 @@ elf_symbol { name: "bt_procfs_cleanup" is_defined: true symbol_type: FUNCTION - crc: 0x2a0b389e + crc: 0x17602ecb type_id: 0x13488e67 full_name: "bt_procfs_cleanup" } @@ -333684,7 +343760,7 @@ elf_symbol { name: "bt_procfs_init" is_defined: true symbol_type: FUNCTION - crc: 0x079ce819 + crc: 0xe1369968 type_id: 0x9e559491 full_name: "bt_procfs_init" } @@ -333693,7 +343769,7 @@ elf_symbol { name: "bt_sock_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0xc03d1eb7 + crc: 0x66286463 type_id: 0x9882219f full_name: "bt_sock_ioctl" } @@ -333702,7 +343778,7 @@ elf_symbol { name: "bt_sock_link" is_defined: true symbol_type: FUNCTION - crc: 0x44d968a0 + crc: 0x3db15e11 type_id: 0x15f330e3 full_name: "bt_sock_link" } @@ -333711,7 +343787,7 @@ elf_symbol { name: "bt_sock_poll" is_defined: true symbol_type: FUNCTION - crc: 0xe2defd2b + crc: 0xeb896aef type_id: 0x2545d8c8 full_name: "bt_sock_poll" } @@ -333720,7 +343796,7 @@ elf_symbol { name: "bt_sock_reclassify_lock" is_defined: true symbol_type: FUNCTION - crc: 0xaf0fda82 + crc: 0x76a49bad type_id: 0x1655de44 full_name: "bt_sock_reclassify_lock" } @@ -333729,7 +343805,7 @@ elf_symbol { name: "bt_sock_recvmsg" is_defined: true symbol_type: FUNCTION - crc: 0xa22c0ddd + crc: 0x7d81de51 type_id: 0x9917165a full_name: "bt_sock_recvmsg" } @@ -333738,7 +343814,7 @@ elf_symbol { name: "bt_sock_register" is_defined: true symbol_type: FUNCTION - crc: 0x599b8a85 + crc: 0x5ba40f91 type_id: 0x84acfa74 full_name: "bt_sock_register" } @@ -333747,7 +343823,7 @@ elf_symbol { name: "bt_sock_stream_recvmsg" is_defined: true symbol_type: FUNCTION - crc: 0xb5c6fdf6 + crc: 0x25c780fa type_id: 0x9917165a full_name: "bt_sock_stream_recvmsg" } @@ -333756,7 +343832,7 @@ elf_symbol { name: "bt_sock_unlink" is_defined: true symbol_type: FUNCTION - crc: 0x878fccf4 + crc: 0x90793c60 type_id: 0x15f330e3 full_name: "bt_sock_unlink" } @@ -333774,7 +343850,7 @@ elf_symbol { name: "bt_sock_wait_ready" is_defined: true symbol_type: FUNCTION - crc: 0xe615bd41 + crc: 0x09c198d9 type_id: 0x9bc7fa2c full_name: "bt_sock_wait_ready" } @@ -333783,7 +343859,7 @@ elf_symbol { name: "bt_sock_wait_state" is_defined: true symbol_type: FUNCTION - crc: 0xdf3b783d + crc: 0x93aa13a6 type_id: 0x9b41b1a1 full_name: "bt_sock_wait_state" } @@ -333828,7 +343904,7 @@ elf_symbol { name: "btbcm_check_bdaddr" is_defined: true symbol_type: FUNCTION - crc: 0xc3ccf4c7 + crc: 0x4ad61208 type_id: 0x9af01625 full_name: "btbcm_check_bdaddr" } @@ -333837,7 +343913,7 @@ elf_symbol { name: "btbcm_finalize" is_defined: true symbol_type: FUNCTION - crc: 0x3b480cd4 + crc: 0xde741d81 type_id: 0x9aac764b full_name: "btbcm_finalize" } @@ -333846,7 +343922,7 @@ elf_symbol { name: "btbcm_initialize" is_defined: true symbol_type: FUNCTION - crc: 0x6ab5d6e3 + crc: 0x6122bec3 type_id: 0x9aac764b full_name: "btbcm_initialize" } @@ -333855,7 +343931,7 @@ elf_symbol { name: "btbcm_patchram" is_defined: true symbol_type: FUNCTION - crc: 0x51434e63 + crc: 0x2ff19ae7 type_id: 0x9a3c1260 full_name: "btbcm_patchram" } @@ -333864,7 +343940,7 @@ elf_symbol { name: "btbcm_read_pcm_int_params" is_defined: true symbol_type: FUNCTION - crc: 0x2b6afaef + crc: 0x9810f488 type_id: 0x9a4917d6 full_name: "btbcm_read_pcm_int_params" } @@ -333873,7 +343949,7 @@ elf_symbol { name: "btbcm_set_bdaddr" is_defined: true symbol_type: FUNCTION - crc: 0x456dd851 + crc: 0xbc528922 type_id: 0x9a2fc16a full_name: "btbcm_set_bdaddr" } @@ -333882,7 +343958,7 @@ elf_symbol { name: "btbcm_setup_apple" is_defined: true symbol_type: FUNCTION - crc: 0xe278b473 + crc: 0x961dc512 type_id: 0x9af01625 full_name: "btbcm_setup_apple" } @@ -333891,7 +343967,7 @@ elf_symbol { name: "btbcm_setup_patchram" is_defined: true symbol_type: FUNCTION - crc: 0x3b4985db + crc: 0x75ffcb84 type_id: 0x9af01625 full_name: "btbcm_setup_patchram" } @@ -333900,20 +343976,38 @@ elf_symbol { name: "btbcm_write_pcm_int_params" is_defined: true symbol_type: FUNCTION - crc: 0xbdf76b76 + crc: 0xba4441a0 type_id: 0x9a22976b full_name: "btbcm_write_pcm_int_params" } elf_symbol { + id: 0x6bb6d4ca + name: "buffer_migrate_folio" + is_defined: true + symbol_type: FUNCTION + crc: 0x697d2102 + type_id: 0x986ccce1 + full_name: "buffer_migrate_folio" +} +elf_symbol { id: 0x8ea00f54 name: "build_skb" is_defined: true symbol_type: FUNCTION - crc: 0x06233f92 + crc: 0xb7cab24f type_id: 0x6fa775f5 full_name: "build_skb" } elf_symbol { + id: 0x521ad765 + name: "build_skb_around" + is_defined: true + symbol_type: FUNCTION + crc: 0xcdb7b9ec + type_id: 0x69be77aa + full_name: "build_skb_around" +} +elf_symbol { id: 0x0f9d7b5e name: "bus_find_device" is_defined: true @@ -333997,7 +344091,7 @@ elf_symbol { name: "call_netdevice_notifiers" is_defined: true symbol_type: FUNCTION - crc: 0x8543b60f + crc: 0x1264cbde type_id: 0x91972281 full_name: "call_netdevice_notifiers" } @@ -334042,7 +344136,7 @@ elf_symbol { name: "can_bus_off" is_defined: true symbol_type: FUNCTION - crc: 0x7e94da20 + crc: 0x8b0135b3 type_id: 0x1c31d966 full_name: "can_bus_off" } @@ -334051,7 +344145,7 @@ elf_symbol { name: "can_change_mtu" is_defined: true symbol_type: FUNCTION - crc: 0xba91c544 + crc: 0x99a240b0 type_id: 0x90b5e896 full_name: "can_change_mtu" } @@ -334060,7 +344154,7 @@ elf_symbol { name: "can_change_state" is_defined: true symbol_type: FUNCTION - crc: 0xdbbda6e8 + crc: 0xf30870d5 type_id: 0x1c6ae2fd full_name: "can_change_state" } @@ -334069,7 +344163,7 @@ elf_symbol { name: "can_dropped_invalid_skb" is_defined: true symbol_type: FUNCTION - crc: 0x6b183601 + crc: 0xd5058dc1 type_id: 0xf218ee55 full_name: "can_dropped_invalid_skb" } @@ -334078,7 +344172,7 @@ elf_symbol { name: "can_eth_ioctl_hwts" is_defined: true symbol_type: FUNCTION - crc: 0x8acbc55a + crc: 0x1b85db72 type_id: 0x91e86e2c full_name: "can_eth_ioctl_hwts" } @@ -334087,7 +344181,7 @@ elf_symbol { name: "can_ethtool_op_get_ts_info_hwts" is_defined: true symbol_type: FUNCTION - crc: 0x05e38aae + crc: 0x10d5effc type_id: 0x916bd4e5 full_name: "can_ethtool_op_get_ts_info_hwts" } @@ -334114,7 +344208,7 @@ elf_symbol { name: "can_free_echo_skb" is_defined: true symbol_type: FUNCTION - crc: 0xf2079879 + crc: 0x12d5f8bd type_id: 0x1d2130a6 full_name: "can_free_echo_skb" } @@ -334123,7 +344217,7 @@ elf_symbol { name: "can_get_echo_skb" is_defined: true symbol_type: FUNCTION - crc: 0x951af08a + crc: 0xbe9832d7 type_id: 0xc3621fce full_name: "can_get_echo_skb" } @@ -334141,7 +344235,7 @@ elf_symbol { name: "can_proto_register" is_defined: true symbol_type: FUNCTION - crc: 0x6f260f60 + crc: 0xcf3cfa9e type_id: 0x93fb658b full_name: "can_proto_register" } @@ -334150,7 +344244,7 @@ elf_symbol { name: "can_proto_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xfd89bd81 + crc: 0x2f0640d2 type_id: 0x1ee3d737 full_name: "can_proto_unregister" } @@ -334159,7 +344253,7 @@ elf_symbol { name: "can_put_echo_skb" is_defined: true symbol_type: FUNCTION - crc: 0x25153947 + crc: 0xa22906af type_id: 0x9c09d6aa full_name: "can_put_echo_skb" } @@ -334168,7 +344262,7 @@ elf_symbol { name: "can_rx_offload_add_fifo" is_defined: true symbol_type: FUNCTION - crc: 0x31f80e98 + crc: 0xd61089d0 type_id: 0x91c43545 full_name: "can_rx_offload_add_fifo" } @@ -334177,7 +344271,7 @@ elf_symbol { name: "can_rx_offload_add_manual" is_defined: true symbol_type: FUNCTION - crc: 0x2edd7e4a + crc: 0x9d723f0c type_id: 0x91c43545 full_name: "can_rx_offload_add_manual" } @@ -334186,7 +344280,7 @@ elf_symbol { name: "can_rx_offload_add_timestamp" is_defined: true symbol_type: FUNCTION - crc: 0x7bba8d93 + crc: 0x9fca72e0 type_id: 0x91d5541c full_name: "can_rx_offload_add_timestamp" } @@ -334195,7 +344289,7 @@ elf_symbol { name: "can_rx_offload_del" is_defined: true symbol_type: FUNCTION - crc: 0x1c8de286 + crc: 0xc311da22 type_id: 0x1f5badff full_name: "can_rx_offload_del" } @@ -334204,7 +344298,7 @@ elf_symbol { name: "can_rx_offload_enable" is_defined: true symbol_type: FUNCTION - crc: 0xeb8e13ac + crc: 0x5e717c7e type_id: 0x1f5badff full_name: "can_rx_offload_enable" } @@ -334213,7 +344307,7 @@ elf_symbol { name: "can_rx_offload_get_echo_skb" is_defined: true symbol_type: FUNCTION - crc: 0x99ae8b0c + crc: 0x6a6f51f0 type_id: 0xc03cbac0 full_name: "can_rx_offload_get_echo_skb" } @@ -334222,7 +344316,7 @@ elf_symbol { name: "can_rx_offload_irq_finish" is_defined: true symbol_type: FUNCTION - crc: 0x3d001f71 + crc: 0x9c6a8710 type_id: 0x1f5badff full_name: "can_rx_offload_irq_finish" } @@ -334231,7 +344325,7 @@ elf_symbol { name: "can_rx_offload_irq_offload_fifo" is_defined: true symbol_type: FUNCTION - crc: 0x2e7e53b5 + crc: 0xe0ac9bd8 type_id: 0x92431f43 full_name: "can_rx_offload_irq_offload_fifo" } @@ -334240,7 +344334,7 @@ elf_symbol { name: "can_rx_offload_irq_offload_timestamp" is_defined: true symbol_type: FUNCTION - crc: 0x96384578 + crc: 0x35637c7c type_id: 0x900b938d full_name: "can_rx_offload_irq_offload_timestamp" } @@ -334249,7 +344343,7 @@ elf_symbol { name: "can_rx_offload_queue_tail" is_defined: true symbol_type: FUNCTION - crc: 0x880deb2d + crc: 0x03270238 type_id: 0x925622e7 full_name: "can_rx_offload_queue_tail" } @@ -334258,7 +344352,7 @@ elf_symbol { name: "can_rx_offload_queue_timestamp" is_defined: true symbol_type: FUNCTION - crc: 0xa7e3656e + crc: 0x86f09600 type_id: 0x926460ed full_name: "can_rx_offload_queue_timestamp" } @@ -334267,7 +344361,7 @@ elf_symbol { name: "can_rx_offload_threaded_irq_finish" is_defined: true symbol_type: FUNCTION - crc: 0x541fab87 + crc: 0x9fa015d3 type_id: 0x1f5badff full_name: "can_rx_offload_threaded_irq_finish" } @@ -334276,7 +344370,7 @@ elf_symbol { name: "can_rx_register" is_defined: true symbol_type: FUNCTION - crc: 0x7e9806e7 + crc: 0x79473a3e type_id: 0x9e789129 full_name: "can_rx_register" } @@ -334285,7 +344379,7 @@ elf_symbol { name: "can_rx_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x5290905b + crc: 0xc6d395bb type_id: 0x13602394 full_name: "can_rx_unregister" } @@ -334294,7 +344388,7 @@ elf_symbol { name: "can_send" is_defined: true symbol_type: FUNCTION - crc: 0xf0aadc7d + crc: 0x9b9a1272 type_id: 0x9d4fba25 full_name: "can_send" } @@ -334303,7 +344397,7 @@ elf_symbol { name: "can_skb_get_frame_len" is_defined: true symbol_type: FUNCTION - crc: 0xddcf2939 + crc: 0xb9941f27 type_id: 0xc1439b43 full_name: "can_skb_get_frame_len" } @@ -334312,7 +344406,7 @@ elf_symbol { name: "can_sock_destruct" is_defined: true symbol_type: FUNCTION - crc: 0xd1b9e893 + crc: 0xad6f5038 type_id: 0x17c95d08 full_name: "can_sock_destruct" } @@ -334353,6 +344447,78 @@ elf_symbol { full_name: "capable" } elf_symbol { + id: 0x61aaf300 + name: "capable_wrt_inode_uidgid" + is_defined: true + symbol_type: FUNCTION + crc: 0xaa02669a + type_id: 0xfdb03c5c + full_name: "capable_wrt_inode_uidgid" +} +elf_symbol { + id: 0x0d8df2d6 + name: "cdc_ncm_bind_common" + is_defined: true + symbol_type: FUNCTION + crc: 0xa165232f + type_id: 0x9e7d48ad + full_name: "cdc_ncm_bind_common" +} +elf_symbol { + id: 0xbe895b99 + name: "cdc_ncm_change_mtu" + is_defined: true + symbol_type: FUNCTION + crc: 0xe9dd0df4 + type_id: 0x90b5e896 + full_name: "cdc_ncm_change_mtu" +} +elf_symbol { + id: 0x438a802b + name: "cdc_ncm_fill_tx_frame" + is_defined: true + symbol_type: FUNCTION + crc: 0x3e5e696a + type_id: 0x6bfb947b + full_name: "cdc_ncm_fill_tx_frame" +} +elf_symbol { + id: 0xe05cfed6 + name: "cdc_ncm_rx_verify_ndp16" + is_defined: true + symbol_type: FUNCTION + crc: 0xbeac75e1 + type_id: 0x9d4fba25 + full_name: "cdc_ncm_rx_verify_ndp16" +} +elf_symbol { + id: 0xb0d627f0 + name: "cdc_ncm_rx_verify_nth16" + is_defined: true + symbol_type: FUNCTION + crc: 0x0c8f8ef8 + type_id: 0x9d4713e6 + full_name: "cdc_ncm_rx_verify_nth16" +} +elf_symbol { + id: 0x3b573ab8 + name: "cdc_ncm_select_altsetting" + is_defined: true + symbol_type: FUNCTION + crc: 0x0bd5ab5f + type_id: 0x5b0b198d + full_name: "cdc_ncm_select_altsetting" +} +elf_symbol { + id: 0xb4ff03eb + name: "cdc_ncm_unbind" + is_defined: true + symbol_type: FUNCTION + crc: 0xb2a5cb89 + type_id: 0x136e318e + full_name: "cdc_ncm_unbind" +} +elf_symbol { id: 0xb2bfcc0c name: "cdc_parse_cdc_header" is_defined: true @@ -334416,6 +344582,15 @@ elf_symbol { full_name: "cdev_init" } elf_symbol { + id: 0x1ae20002 + name: "ce_aes_expandkey" + is_defined: true + symbol_type: FUNCTION + crc: 0x68f275ad + type_id: 0x982246a7 + full_name: "ce_aes_expandkey" +} +elf_symbol { id: 0xc8e5adc6 name: "cec_allocate_adapter" is_defined: true @@ -334497,6 +344672,15 @@ elf_symbol { full_name: "cec_notifier_set_phys_addr_from_edid" } elf_symbol { + id: 0xa383a6c1 + name: "cec_queue_pin_hpd_event" + is_defined: true + symbol_type: FUNCTION + crc: 0xafee3a98 + type_id: 0x1f2853af + full_name: "cec_queue_pin_hpd_event" +} +elf_symbol { id: 0x1ff124cb name: "cec_received_msg_ts" is_defined: true @@ -334569,11 +344753,20 @@ elf_symbol { full_name: "cec_unregister_adapter" } elf_symbol { + id: 0x4d06ba53 + name: "cgroup_add_dfl_cftypes" + is_defined: true + symbol_type: FUNCTION + crc: 0x86093f58 + type_id: 0x9f4f3809 + full_name: "cgroup_add_dfl_cftypes" +} +elf_symbol { id: 0x3c85cae0 name: "cgroup_add_legacy_cftypes" is_defined: true symbol_type: FUNCTION - crc: 0x339dcf29 + crc: 0x2677d819 type_id: 0x9f4f3809 full_name: "cgroup_add_legacy_cftypes" } @@ -334582,7 +344775,7 @@ elf_symbol { name: "cgroup_path_ns" is_defined: true symbol_type: FUNCTION - crc: 0xacbfb776 + crc: 0x84c7051f type_id: 0x9b87e6ee full_name: "cgroup_path_ns" } @@ -334591,7 +344784,7 @@ elf_symbol { name: "cgroup_taskset_first" is_defined: true symbol_type: FUNCTION - crc: 0x5aad35ea + crc: 0xc815fe12 type_id: 0x751b5661 full_name: "cgroup_taskset_first" } @@ -334600,11 +344793,20 @@ elf_symbol { name: "cgroup_taskset_next" is_defined: true symbol_type: FUNCTION - crc: 0xc87e1caa + crc: 0xa23b7f66 type_id: 0x751b5661 full_name: "cgroup_taskset_next" } elf_symbol { + id: 0xb7533de5 + name: "cgroup_threadgroup_rwsem" + is_defined: true + symbol_type: OBJECT + crc: 0x4e1c73cb + type_id: 0x6c952252 + full_name: "cgroup_threadgroup_rwsem" +} +elf_symbol { id: 0x7a871d1c name: "check_move_unevictable_pages" is_defined: true @@ -334618,7 +344820,7 @@ elf_symbol { name: "check_preempt_curr" is_defined: true symbol_type: FUNCTION - crc: 0xe00ffd83 + crc: 0xd9ade0b0 type_id: 0x1b7558dd full_name: "check_preempt_curr" } @@ -334722,6 +344924,24 @@ elf_symbol { full_name: "class_unregister" } elf_symbol { + id: 0xb242a940 + name: "clean_bdev_aliases" + is_defined: true + symbol_type: FUNCTION + crc: 0xa36f5732 + type_id: 0x10e535a4 + full_name: "clean_bdev_aliases" +} +elf_symbol { + id: 0xd156aa2c + name: "cleancache_register_ops" + is_defined: true + symbol_type: FUNCTION + crc: 0x5fa588cd + type_id: 0x910fbd4c + full_name: "cleancache_register_ops" +} +elf_symbol { id: 0x00d9abe7 name: "cleanup_srcu_struct" is_defined: true @@ -334731,6 +344951,15 @@ elf_symbol { full_name: "cleanup_srcu_struct" } elf_symbol { + id: 0xfa95bdc1 + name: "clear_inode" + is_defined: true + symbol_type: FUNCTION + crc: 0x89b4e8c0 + type_id: 0x167935b9 + full_name: "clear_inode" +} +elf_symbol { id: 0xb63845e5 name: "clear_page" is_defined: true @@ -334738,6 +344967,15 @@ elf_symbol { crc: 0x3d9ee9f0 } elf_symbol { + id: 0x52eaa51b + name: "clear_page_dirty_for_io" + is_defined: true + symbol_type: FUNCTION + crc: 0x20bc8096 + type_id: 0xff048ca3 + full_name: "clear_page_dirty_for_io" +} +elf_symbol { id: 0x5332f89b name: "clk_bulk_disable" is_defined: true @@ -334855,6 +345093,15 @@ elf_symbol { full_name: "clk_fixed_rate_ops" } elf_symbol { + id: 0xf42e28c4 + name: "clk_fractional_divider_general_approximation" + is_defined: true + symbol_type: FUNCTION + crc: 0xc8861ced + type_id: 0x12ed274e + full_name: "clk_fractional_divider_general_approximation" +} +elf_symbol { id: 0x8a96e88d name: "clk_fractional_divider_ops" is_defined: true @@ -334900,6 +345147,15 @@ elf_symbol { full_name: "clk_get_parent" } elf_symbol { + id: 0x04880ada + name: "clk_get_phase" + is_defined: true + symbol_type: FUNCTION + crc: 0x1c5ff742 + type_id: 0x92f35938 + full_name: "clk_get_phase" +} +elf_symbol { id: 0x25ef9f7a name: "clk_get_rate" is_defined: true @@ -335071,6 +345327,15 @@ elf_symbol { full_name: "clk_hw_unregister" } elf_symbol { + id: 0x91507af8 + name: "clk_hw_unregister_composite" + is_defined: true + symbol_type: FUNCTION + crc: 0xa5812f72 + type_id: 0x12217922 + full_name: "clk_hw_unregister_composite" +} +elf_symbol { id: 0xd2c17be4 name: "clk_is_match" is_defined: true @@ -335251,6 +345516,15 @@ elf_symbol { full_name: "clk_set_parent" } elf_symbol { + id: 0x98850f9d + name: "clk_set_phase" + is_defined: true + symbol_type: FUNCTION + crc: 0xb7329c06 + type_id: 0x936fda74 + full_name: "clk_set_phase" +} +elf_symbol { id: 0x495f0223 name: "clk_set_rate" is_defined: true @@ -335327,7 +345601,7 @@ elf_symbol { name: "close_candev" is_defined: true symbol_type: FUNCTION - crc: 0xbf17abcb + crc: 0x75b20ea5 type_id: 0x1c31d966 full_name: "close_candev" } @@ -335377,6 +345651,15 @@ elf_symbol { full_name: "cma_release" } elf_symbol { + id: 0xfb23b117 + name: "compat_only_sysfs_link_entry_to_kobj" + is_defined: true + symbol_type: FUNCTION + crc: 0x256e3ace + type_id: 0x95fc7a3d + full_name: "compat_only_sysfs_link_entry_to_kobj" +} +elf_symbol { id: 0x4f627b39 name: "compat_ptr_ioctl" is_defined: true @@ -335440,6 +345723,15 @@ elf_symbol { full_name: "component_bind_all" } elf_symbol { + id: 0x9901e8ee + name: "component_compare_dev" + is_defined: true + symbol_type: FUNCTION + crc: 0x0b549846 + type_id: 0x9d7428e0 + full_name: "component_compare_dev" +} +elf_symbol { id: 0x4bc5faef name: "component_compare_dev_name" is_defined: true @@ -335723,7 +346015,7 @@ elf_symbol { name: "consume_skb" is_defined: true symbol_type: FUNCTION - crc: 0xabb8cf3a + crc: 0x925b1655 type_id: 0x11cb8bd5 full_name: "consume_skb" } @@ -335746,6 +346038,31 @@ elf_symbol { full_name: "copy_from_kernel_nofault" } elf_symbol { + id: 0xd71898b4 + name: "copy_highpage" + is_defined: true + symbol_type: FUNCTION + crc: 0x54d1223a + type_id: 0x11228b4e + full_name: "copy_highpage" +} +elf_symbol { + id: 0xc1167624 + name: "copy_page" + is_defined: true + symbol_type: FUNCTION + crc: 0x4d0d163d +} +elf_symbol { + id: 0x9f1f7cee + name: "copy_page_from_iter_atomic" + is_defined: true + symbol_type: FUNCTION + crc: 0xc8b6f813 + type_id: 0x97b4bbf8 + full_name: "copy_page_from_iter_atomic" +} +elf_symbol { id: 0xd89255c2 name: "cpu_all_bits" is_defined: true @@ -335764,6 +346081,15 @@ elf_symbol { full_name: "cpu_bit_bitmap" } elf_symbol { + id: 0x15e1667b + name: "cpu_have_feature" + is_defined: true + symbol_type: FUNCTION + crc: 0x41237f71 + type_id: 0xefc5028b + full_name: "cpu_have_feature" +} +elf_symbol { id: 0x33bbeca6 name: "cpu_hotplug_disable" is_defined: true @@ -336268,6 +346594,15 @@ elf_symbol { full_name: "cpufreq_update_limits" } elf_symbol { + id: 0x4b049d5c + name: "cpufreq_update_policy" + is_defined: true + symbol_type: FUNCTION + crc: 0xc37f9c6e + type_id: 0x01f9081c + full_name: "cpufreq_update_policy" +} +elf_symbol { id: 0x0c67e2fe name: "cpufreq_update_util_data" is_defined: true @@ -336358,6 +346693,15 @@ elf_symbol { full_name: "cpumask_any_and_distribute" } elf_symbol { + id: 0xd53a5822 + name: "cpumask_local_spread" + is_defined: true + symbol_type: FUNCTION + crc: 0xc8a91f5b + type_id: 0xde26a438 + full_name: "cpumask_local_spread" +} +elf_symbol { id: 0xb1469ae6 name: "cpumask_next_wrap" is_defined: true @@ -336453,6 +346797,15 @@ elf_symbol { full_name: "crc_ccitt" } elf_symbol { + id: 0xd5cc5ce2 + name: "create_empty_buffers" + is_defined: true + symbol_type: FUNCTION + crc: 0x9b40f91e + type_id: 0x11f98eff + full_name: "create_empty_buffers" +} +elf_symbol { id: 0xc3e46036 name: "create_function_device" is_defined: true @@ -336507,6 +346860,24 @@ elf_symbol { full_name: "crypto_ahash_digest" } elf_symbol { + id: 0xf8751b15 + name: "crypto_ahash_final" + is_defined: true + symbol_type: FUNCTION + crc: 0x1af67977 + type_id: 0x911583bf + full_name: "crypto_ahash_final" +} +elf_symbol { + id: 0xdd9947d5 + name: "crypto_ahash_finup" + is_defined: true + symbol_type: FUNCTION + crc: 0x095c49bc + type_id: 0x911583bf + full_name: "crypto_ahash_finup" +} +elf_symbol { id: 0xff08526f name: "crypto_ahash_setkey" is_defined: true @@ -336534,6 +346905,15 @@ elf_symbol { full_name: "crypto_alloc_ahash" } elf_symbol { + id: 0x5d9de9a7 + name: "crypto_alloc_akcipher" + is_defined: true + symbol_type: FUNCTION + crc: 0xdc2b9dfc + type_id: 0x69b2a88c + full_name: "crypto_alloc_akcipher" +} +elf_symbol { id: 0x1d1f6717 name: "crypto_alloc_base" is_defined: true @@ -336565,7 +346945,7 @@ elf_symbol { name: "crypto_alloc_skcipher" is_defined: true symbol_type: FUNCTION - crc: 0x13e3aa33 + crc: 0xb786e327 type_id: 0x2d1647d4 full_name: "crypto_alloc_skcipher" } @@ -336574,11 +346954,21 @@ elf_symbol { name: "crypto_alloc_sync_skcipher" is_defined: true symbol_type: FUNCTION - crc: 0x7d8687af + crc: 0xdea2eaf0 type_id: 0x329319f8 full_name: "crypto_alloc_sync_skcipher" } elf_symbol { + id: 0xa3db58f1 + name: "crypto_cipher_encrypt_one" + is_defined: true + symbol_type: FUNCTION + crc: 0x1f362def + namespace: "CRYPTO_INTERNAL" + type_id: 0x114c448e + full_name: "crypto_cipher_encrypt_one" +} +elf_symbol { id: 0x1257590d name: "crypto_comp_compress" is_defined: true @@ -336610,7 +347000,7 @@ elf_symbol { name: "crypto_dequeue_request" is_defined: true symbol_type: FUNCTION - crc: 0x9c81d45b + crc: 0x6667eee7 type_id: 0x2d2c7d0b full_name: "crypto_dequeue_request" } @@ -336646,7 +347036,7 @@ elf_symbol { name: "crypto_enqueue_request" is_defined: true symbol_type: FUNCTION - crc: 0x939c1273 + crc: 0xf7c5c1d7 type_id: 0x9a78591e full_name: "crypto_enqueue_request" } @@ -336678,6 +347068,15 @@ elf_symbol { full_name: "crypto_has_alg" } elf_symbol { + id: 0x80e1f666 + name: "crypto_inc" + is_defined: true + symbol_type: FUNCTION + crc: 0x3ef051c8 + type_id: 0x11bf8d42 + full_name: "crypto_inc" +} +elf_symbol { id: 0x62173925 name: "crypto_init_queue" is_defined: true @@ -336714,6 +347113,24 @@ elf_symbol { full_name: "crypto_register_ahash" } elf_symbol { + id: 0xc60881ee + name: "crypto_register_akcipher" + is_defined: true + symbol_type: FUNCTION + crc: 0x44f8c5fe + type_id: 0x99df4252 + full_name: "crypto_register_akcipher" +} +elf_symbol { + id: 0xd9005076 + name: "crypto_register_alg" + is_defined: true + symbol_type: FUNCTION + crc: 0x4a1204f0 + type_id: 0x9db75c24 + full_name: "crypto_register_alg" +} +elf_symbol { id: 0xcb0ffe5b name: "crypto_register_notifier" is_defined: true @@ -336754,11 +347171,20 @@ elf_symbol { name: "crypto_register_skcipher" is_defined: true symbol_type: FUNCTION - crc: 0xe302e076 + crc: 0x70b27b3c type_id: 0x928f1946 full_name: "crypto_register_skcipher" } elf_symbol { + id: 0x8e0112d7 + name: "crypto_register_template" + is_defined: true + symbol_type: FUNCTION + crc: 0xf1da2be6 + type_id: 0x9a6e7c60 + full_name: "crypto_register_template" +} +elf_symbol { id: 0x0e52d725 name: "crypto_req_done" is_defined: true @@ -336768,6 +347194,24 @@ elf_symbol { full_name: "crypto_req_done" } elf_symbol { + id: 0x162a73f7 + name: "crypto_sha1_finup" + is_defined: true + symbol_type: FUNCTION + crc: 0xe1737405 + type_id: 0x9fb1dc71 + full_name: "crypto_sha1_finup" +} +elf_symbol { + id: 0x7dcc32e4 + name: "crypto_sha1_update" + is_defined: true + symbol_type: FUNCTION + crc: 0xb7dbc187 + type_id: 0x9fb1df6d + full_name: "crypto_sha1_update" +} +elf_symbol { id: 0x91309df9 name: "crypto_shash_digest" is_defined: true @@ -336826,7 +347270,7 @@ elf_symbol { name: "crypto_skcipher_decrypt" is_defined: true symbol_type: FUNCTION - crc: 0x3dafd0f9 + crc: 0x5528f6cb type_id: 0x9a856ac3 full_name: "crypto_skcipher_decrypt" } @@ -336835,7 +347279,7 @@ elf_symbol { name: "crypto_skcipher_encrypt" is_defined: true symbol_type: FUNCTION - crc: 0x67308a55 + crc: 0xcfad4135 type_id: 0x9a856ac3 full_name: "crypto_skcipher_encrypt" } @@ -336844,7 +347288,7 @@ elf_symbol { name: "crypto_skcipher_setkey" is_defined: true symbol_type: FUNCTION - crc: 0xcace9873 + crc: 0x26a098fc type_id: 0x9e7f936c full_name: "crypto_skcipher_setkey" } @@ -336867,6 +347311,24 @@ elf_symbol { full_name: "crypto_unregister_ahash" } elf_symbol { + id: 0xdb6ddedf + name: "crypto_unregister_akcipher" + is_defined: true + symbol_type: FUNCTION + crc: 0xbfd52d96 + type_id: 0x14c7f0ee + full_name: "crypto_unregister_akcipher" +} +elf_symbol { + id: 0x883df740 + name: "crypto_unregister_alg" + is_defined: true + symbol_type: FUNCTION + crc: 0xa0dbb600 + type_id: 0x10afee98 + full_name: "crypto_unregister_alg" +} +elf_symbol { id: 0x551c18d1 name: "crypto_unregister_notifier" is_defined: true @@ -336907,16 +347369,25 @@ elf_symbol { name: "crypto_unregister_skcipher" is_defined: true symbol_type: FUNCTION - crc: 0x0f6352af + crc: 0x72f284fd type_id: 0x1f97abfa full_name: "crypto_unregister_skcipher" } elf_symbol { + id: 0x801e3d5d + name: "crypto_unregister_template" + is_defined: true + symbol_type: FUNCTION + crc: 0xd6fa098b + type_id: 0x1776cedc + full_name: "crypto_unregister_template" +} +elf_symbol { id: 0xd36400de name: "css_next_child" is_defined: true symbol_type: FUNCTION - crc: 0xff552960 + crc: 0xd19a6c6f type_id: 0xc867c639 full_name: "css_next_child" } @@ -336925,7 +347396,7 @@ elf_symbol { name: "css_next_descendant_pre" is_defined: true symbol_type: FUNCTION - crc: 0x24bff92f + crc: 0x9d887153 type_id: 0xc867c639 full_name: "css_next_descendant_pre" } @@ -336984,6 +347455,15 @@ elf_symbol { full_name: "current_time" } elf_symbol { + id: 0x4c090f07 + name: "current_umask" + is_defined: true + symbol_type: FUNCTION + crc: 0x5e95b1cd + type_id: 0x9d80e32f + full_name: "current_umask" +} +elf_symbol { id: 0x171eca8a name: "d_add" is_defined: true @@ -336993,6 +347473,15 @@ elf_symbol { full_name: "d_add" } elf_symbol { + id: 0x82537a82 + name: "d_add_ci" + is_defined: true + symbol_type: FUNCTION + crc: 0x09ad89bb + type_id: 0x889f851e + full_name: "d_add_ci" +} +elf_symbol { id: 0x79187969 name: "d_alloc_name" is_defined: true @@ -337002,6 +347491,15 @@ elf_symbol { full_name: "d_alloc_name" } elf_symbol { + id: 0x04f5a6e5 + name: "d_instantiate" + is_defined: true + symbol_type: FUNCTION + crc: 0xff9152a3 + type_id: 0x147717e5 + full_name: "d_instantiate" +} +elf_symbol { id: 0x52864a7e name: "d_make_root" is_defined: true @@ -337011,6 +347509,15 @@ elf_symbol { full_name: "d_make_root" } elf_symbol { + id: 0x8d5ab7b4 + name: "d_obtain_alias" + is_defined: true + symbol_type: FUNCTION + crc: 0x3e22d08f + type_id: 0x8a909712 + full_name: "d_obtain_alias" +} +elf_symbol { id: 0xccc25fc1 name: "d_path" is_defined: true @@ -337020,6 +347527,15 @@ elf_symbol { full_name: "d_path" } elf_symbol { + id: 0xb96af991 + name: "d_splice_alias" + is_defined: true + symbol_type: FUNCTION + crc: 0x2dc0ecfe + type_id: 0x8ad88211 + full_name: "d_splice_alias" +} +elf_symbol { id: 0xb771d13e name: "dapm_clock_event" is_defined: true @@ -337060,7 +347576,7 @@ elf_symbol { name: "datagram_poll" is_defined: true symbol_type: FUNCTION - crc: 0xa4bf0adb + crc: 0x4cdae0ba type_id: 0x2545d8c8 full_name: "datagram_poll" } @@ -337087,7 +347603,7 @@ elf_symbol { name: "deactivate_task" is_defined: true symbol_type: FUNCTION - crc: 0xed10361a + crc: 0xab0c473a type_id: 0x1b7558dd full_name: "deactivate_task" } @@ -337425,6 +347941,15 @@ elf_symbol { full_name: "delayed_work_timer_fn" } elf_symbol { + id: 0x1ef313dc + name: "des_expand_key" + is_defined: true + symbol_type: FUNCTION + crc: 0xa8fb743d + type_id: 0x9133c6a6 + full_name: "des_expand_key" +} +elf_symbol { id: 0x67daf3cf name: "desc_to_gpio" is_defined: true @@ -337447,7 +347972,7 @@ elf_symbol { name: "dev_add_pack" is_defined: true symbol_type: FUNCTION - crc: 0x83d6e318 + crc: 0x609b674f type_id: 0x15cafbab full_name: "dev_add_pack" } @@ -337456,7 +347981,7 @@ elf_symbol { name: "dev_addr_mod" is_defined: true symbol_type: FUNCTION - crc: 0x4954a8b2 + crc: 0x08cfab32 type_id: 0x1d2a5bee full_name: "dev_addr_mod" } @@ -337465,7 +347990,7 @@ elf_symbol { name: "dev_alloc_name" is_defined: true symbol_type: FUNCTION - crc: 0xa666db99 + crc: 0xf1291097 type_id: 0x91d1290e full_name: "dev_alloc_name" } @@ -337483,7 +348008,7 @@ elf_symbol { name: "dev_change_flags" is_defined: true symbol_type: FUNCTION - crc: 0xb559e929 + crc: 0x585c1f37 type_id: 0x903e8974 full_name: "dev_change_flags" } @@ -337492,7 +348017,7 @@ elf_symbol { name: "dev_close" is_defined: true symbol_type: FUNCTION - crc: 0x79be2837 + crc: 0x30a3c21b type_id: 0x1c31d966 full_name: "dev_close" } @@ -337528,7 +348053,7 @@ elf_symbol { name: "dev_driver_string" is_defined: true symbol_type: FUNCTION - crc: 0x4396756f + crc: 0x992067ae type_id: 0x9dad8b1c full_name: "dev_driver_string" } @@ -337537,7 +348062,7 @@ elf_symbol { name: "dev_err_probe" is_defined: true symbol_type: FUNCTION - crc: 0xa7bd9f64 + crc: 0x84311b34 type_id: 0x93f8ec59 full_name: "dev_err_probe" } @@ -337564,7 +348089,7 @@ elf_symbol { name: "dev_get_by_index" is_defined: true symbol_type: FUNCTION - crc: 0xee8e3d83 + crc: 0xb5783cb2 type_id: 0xfec79391 full_name: "dev_get_by_index" } @@ -337573,7 +348098,7 @@ elf_symbol { name: "dev_get_by_index_rcu" is_defined: true symbol_type: FUNCTION - crc: 0x6fbaebc4 + crc: 0x98b0d070 type_id: 0xfec79391 full_name: "dev_get_by_index_rcu" } @@ -337582,7 +348107,7 @@ elf_symbol { name: "dev_get_by_name" is_defined: true symbol_type: FUNCTION - crc: 0xcacdb54f + crc: 0xa9d5e9c6 type_id: 0xffa35209 full_name: "dev_get_by_name" } @@ -337591,7 +348116,7 @@ elf_symbol { name: "dev_get_by_name_rcu" is_defined: true symbol_type: FUNCTION - crc: 0xc6c0df24 + crc: 0x659759fa type_id: 0xffa35209 full_name: "dev_get_by_name_rcu" } @@ -337600,7 +348125,7 @@ elf_symbol { name: "dev_get_flags" is_defined: true symbol_type: FUNCTION - crc: 0xb3914e95 + crc: 0x80faba5e type_id: 0xc23d0fef full_name: "dev_get_flags" } @@ -337618,7 +348143,7 @@ elf_symbol { name: "dev_get_stats" is_defined: true symbol_type: FUNCTION - crc: 0xcf15bbd9 + crc: 0x6ee4ba67 type_id: 0x7370e0bf full_name: "dev_get_stats" } @@ -337627,7 +348152,7 @@ elf_symbol { name: "dev_get_tstats64" is_defined: true symbol_type: FUNCTION - crc: 0x2cd6133c + crc: 0x2aeaf871 type_id: 0x1c378d7a full_name: "dev_get_tstats64" } @@ -337636,7 +348161,7 @@ elf_symbol { name: "dev_getbyhwaddr_rcu" is_defined: true symbol_type: FUNCTION - crc: 0x375a35a2 + crc: 0xae67278c type_id: 0xfc706cf5 full_name: "dev_getbyhwaddr_rcu" } @@ -337645,7 +348170,7 @@ elf_symbol { name: "dev_getfirstbyhwtype" is_defined: true symbol_type: FUNCTION - crc: 0x546f0ca0 + crc: 0x4baeefa3 type_id: 0xfc7fe8d8 full_name: "dev_getfirstbyhwtype" } @@ -337654,7 +348179,7 @@ elf_symbol { name: "dev_load" is_defined: true symbol_type: FUNCTION - crc: 0x80f90e9e + crc: 0x1aa37d86 type_id: 0x13488e67 full_name: "dev_load" } @@ -337663,7 +348188,7 @@ elf_symbol { name: "dev_mc_sync" is_defined: true symbol_type: FUNCTION - crc: 0x17778d52 + crc: 0x19c1118d type_id: 0x91e3f355 full_name: "dev_mc_sync" } @@ -337672,7 +348197,7 @@ elf_symbol { name: "dev_mc_sync_multiple" is_defined: true symbol_type: FUNCTION - crc: 0x0e6112cc + crc: 0x6368fe1b type_id: 0x91e3f355 full_name: "dev_mc_sync_multiple" } @@ -337681,7 +348206,7 @@ elf_symbol { name: "dev_mc_unsync" is_defined: true symbol_type: FUNCTION - crc: 0x4d6d3f97 + crc: 0x06accf73 type_id: 0x1cfb41e9 full_name: "dev_mc_unsync" } @@ -337690,7 +348215,7 @@ elf_symbol { name: "dev_nit_active" is_defined: true symbol_type: FUNCTION - crc: 0xec2a2604 + crc: 0x897fd5d9 type_id: 0xf20dd3f1 full_name: "dev_nit_active" } @@ -337699,7 +348224,7 @@ elf_symbol { name: "dev_open" is_defined: true symbol_type: FUNCTION - crc: 0x2b5451d5 + crc: 0x0b48e272 type_id: 0x913618b5 full_name: "dev_open" } @@ -337938,6 +348463,15 @@ elf_symbol { full_name: "dev_pm_opp_get_sharing_cpus" } elf_symbol { + id: 0xe1beb7e3 + name: "dev_pm_opp_get_supplies" + is_defined: true + symbol_type: FUNCTION + crc: 0xa27bcff7 + type_id: 0x9b2efcfe + full_name: "dev_pm_opp_get_supplies" +} +elf_symbol { id: 0x0d97ed87 name: "dev_pm_opp_get_suspend_opp_freq" is_defined: true @@ -338194,7 +348728,7 @@ elf_symbol { name: "dev_printk_emit" is_defined: true symbol_type: FUNCTION - crc: 0x02fac0bf + crc: 0x4aa5e88c type_id: 0x84bb5eaa full_name: "dev_printk_emit" } @@ -338203,7 +348737,7 @@ elf_symbol { name: "dev_remove_pack" is_defined: true symbol_type: FUNCTION - crc: 0xcda14365 + crc: 0x2bfff2a4 type_id: 0x15cafbab full_name: "dev_remove_pack" } @@ -338212,7 +348746,7 @@ elf_symbol { name: "dev_set_allmulti" is_defined: true symbol_type: FUNCTION - crc: 0xb40a9bc8 + crc: 0x4ecd66ce type_id: 0x90b5e896 full_name: "dev_set_allmulti" } @@ -338221,7 +348755,7 @@ elf_symbol { name: "dev_set_mac_address" is_defined: true symbol_type: FUNCTION - crc: 0xb5e74cb1 + crc: 0x0d98be8b type_id: 0x91fbd1f6 full_name: "dev_set_mac_address" } @@ -338230,7 +348764,7 @@ elf_symbol { name: "dev_set_mtu" is_defined: true symbol_type: FUNCTION - crc: 0xe9ca7b84 + crc: 0x0793a2a4 type_id: 0x90b5e896 full_name: "dev_set_mtu" } @@ -338239,7 +348773,7 @@ elf_symbol { name: "dev_set_name" is_defined: true symbol_type: FUNCTION - crc: 0x84643373 + crc: 0x0784f05c type_id: 0x9dc7d522 full_name: "dev_set_name" } @@ -338248,7 +348782,7 @@ elf_symbol { name: "dev_set_promiscuity" is_defined: true symbol_type: FUNCTION - crc: 0x0fe0d363 + crc: 0xce576468 type_id: 0x90b5e896 full_name: "dev_set_promiscuity" } @@ -338257,7 +348791,7 @@ elf_symbol { name: "dev_set_threaded" is_defined: true symbol_type: FUNCTION - crc: 0x25e5c59c + crc: 0x91ca7518 type_id: 0x909c96a5 full_name: "dev_set_threaded" } @@ -338275,7 +348809,7 @@ elf_symbol { name: "dev_uc_add" is_defined: true symbol_type: FUNCTION - crc: 0xa374269a + crc: 0x9ae58f51 type_id: 0x91c85a84 full_name: "dev_uc_add" } @@ -338284,7 +348818,7 @@ elf_symbol { name: "dev_uc_del" is_defined: true symbol_type: FUNCTION - crc: 0x19962806 + crc: 0xa8dd16a5 type_id: 0x91c85a84 full_name: "dev_uc_del" } @@ -338293,7 +348827,7 @@ elf_symbol { name: "dev_uc_sync" is_defined: true symbol_type: FUNCTION - crc: 0xdab2afe8 + crc: 0x0be53878 type_id: 0x91e3f355 full_name: "dev_uc_sync" } @@ -338302,7 +348836,7 @@ elf_symbol { name: "dev_uc_sync_multiple" is_defined: true symbol_type: FUNCTION - crc: 0x5b2b80a2 + crc: 0x2cdcbfac type_id: 0x91e3f355 full_name: "dev_uc_sync_multiple" } @@ -338311,7 +348845,7 @@ elf_symbol { name: "dev_uc_unsync" is_defined: true symbol_type: FUNCTION - crc: 0x8627f584 + crc: 0x2dd550c3 type_id: 0x1cfb41e9 full_name: "dev_uc_unsync" } @@ -338320,7 +348854,7 @@ elf_symbol { name: "dev_vprintk_emit" is_defined: true symbol_type: FUNCTION - crc: 0xc32c3e3b + crc: 0x629eb098 type_id: 0x84ba5d97 full_name: "dev_vprintk_emit" } @@ -338343,6 +348877,15 @@ elf_symbol { full_name: "devfreq_add_governor" } elf_symbol { + id: 0x15eb01e7 + name: "devfreq_cooling_em_register" + is_defined: true + symbol_type: FUNCTION + crc: 0xa153b759 + type_id: 0x4132c986 + full_name: "devfreq_cooling_em_register" +} +elf_symbol { id: 0x647c0881 name: "devfreq_cooling_unregister" is_defined: true @@ -338352,6 +348895,51 @@ elf_symbol { full_name: "devfreq_cooling_unregister" } elf_symbol { + id: 0x349b4e0a + name: "devfreq_event_disable_edev" + is_defined: true + symbol_type: FUNCTION + crc: 0xf7add401 + type_id: 0x9e08a6b2 + full_name: "devfreq_event_disable_edev" +} +elf_symbol { + id: 0x11f117af + name: "devfreq_event_enable_edev" + is_defined: true + symbol_type: FUNCTION + crc: 0x1a88e996 + type_id: 0x9e08a6b2 + full_name: "devfreq_event_enable_edev" +} +elf_symbol { + id: 0x781fabb2 + name: "devfreq_event_get_edev_by_phandle" + is_defined: true + symbol_type: FUNCTION + crc: 0x37666b78 + type_id: 0xaa27b09c + full_name: "devfreq_event_get_edev_by_phandle" +} +elf_symbol { + id: 0xe2544e4d + name: "devfreq_event_get_edev_count" + is_defined: true + symbol_type: FUNCTION + crc: 0x2e31dce9 + type_id: 0x9dee9fa0 + full_name: "devfreq_event_get_edev_count" +} +elf_symbol { + id: 0xdd8da0cf + name: "devfreq_event_get_event" + is_defined: true + symbol_type: FUNCTION + crc: 0x9719d881 + type_id: 0x9eb7f57a + full_name: "devfreq_event_get_event" +} +elf_symbol { id: 0x19e74e36 name: "devfreq_get_devfreq_by_node" is_defined: true @@ -338482,7 +349070,7 @@ elf_symbol { name: "device_add" is_defined: true symbol_type: FUNCTION - crc: 0xddafb2b2 + crc: 0xc47219a9 type_id: 0x9d16dd74 full_name: "device_add" } @@ -338500,7 +349088,7 @@ elf_symbol { name: "device_add_groups" is_defined: true symbol_type: FUNCTION - crc: 0x5f636a09 + crc: 0x74fd2cab type_id: 0x9d0fd195 full_name: "device_add_groups" } @@ -338527,7 +349115,7 @@ elf_symbol { name: "device_create" is_defined: true symbol_type: FUNCTION - crc: 0xe90fab74 + crc: 0x6bc6324b type_id: 0xa78fe504 full_name: "device_create" } @@ -338536,7 +349124,7 @@ elf_symbol { name: "device_create_bin_file" is_defined: true symbol_type: FUNCTION - crc: 0x769e552e + crc: 0x0b968d79 type_id: 0x9df7985b full_name: "device_create_bin_file" } @@ -338545,7 +349133,7 @@ elf_symbol { name: "device_create_file" is_defined: true symbol_type: FUNCTION - crc: 0x37fac942 + crc: 0xe25f59ab type_id: 0x9de4ff9b full_name: "device_create_file" } @@ -338563,7 +349151,7 @@ elf_symbol { name: "device_create_with_groups" is_defined: true symbol_type: FUNCTION - crc: 0xb16dc129 + crc: 0xa2675780 type_id: 0xa78fe955 full_name: "device_create_with_groups" } @@ -338572,7 +349160,7 @@ elf_symbol { name: "device_del" is_defined: true symbol_type: FUNCTION - crc: 0xde4771c7 + crc: 0x9a53602b type_id: 0x100e6fc8 full_name: "device_del" } @@ -338581,7 +349169,7 @@ elf_symbol { name: "device_destroy" is_defined: true symbol_type: FUNCTION - crc: 0xf6d827f6 + crc: 0xc2569e41 type_id: 0x19a776c5 full_name: "device_destroy" } @@ -338590,16 +349178,25 @@ elf_symbol { name: "device_find_child" is_defined: true symbol_type: FUNCTION - crc: 0x2d83d57e + crc: 0x07583eb2 type_id: 0xadd088bd full_name: "device_find_child" } elf_symbol { + id: 0x01805ccc + name: "device_find_child_by_name" + is_defined: true + symbol_type: FUNCTION + crc: 0xfe92284a + type_id: 0xad414cb1 + full_name: "device_find_child_by_name" +} +elf_symbol { id: 0xd81e7ab3 name: "device_for_each_child" is_defined: true symbol_type: FUNCTION - crc: 0xaeb11fbd + crc: 0xe22fac99 type_id: 0x9d7f5bac full_name: "device_for_each_child" } @@ -338608,7 +349205,7 @@ elf_symbol { name: "device_for_each_child_reverse" is_defined: true symbol_type: FUNCTION - crc: 0x19934c94 + crc: 0x7d20bee7 type_id: 0x9d7f5bac full_name: "device_for_each_child_reverse" } @@ -338635,7 +349232,7 @@ elf_symbol { name: "device_get_mac_address" is_defined: true symbol_type: FUNCTION - crc: 0xafc7ee00 + crc: 0x682d72f7 type_id: 0x9d04d2ef full_name: "device_get_mac_address" } @@ -338680,7 +349277,7 @@ elf_symbol { name: "device_initialize" is_defined: true symbol_type: FUNCTION - crc: 0xbfe3934b + crc: 0x554e3ff5 type_id: 0x100e6fc8 full_name: "device_initialize" } @@ -338689,7 +349286,7 @@ elf_symbol { name: "device_link_add" is_defined: true symbol_type: FUNCTION - crc: 0x1c1d0dfd + crc: 0x17336304 type_id: 0x60262630 full_name: "device_link_add" } @@ -338698,7 +349295,7 @@ elf_symbol { name: "device_link_del" is_defined: true symbol_type: FUNCTION - crc: 0x1047dc7e + crc: 0xd99a7e16 type_id: 0x19ba6fc0 full_name: "device_link_del" } @@ -338707,7 +349304,7 @@ elf_symbol { name: "device_link_remove" is_defined: true symbol_type: FUNCTION - crc: 0x489690f8 + crc: 0x421ad161 type_id: 0x16be6b3a full_name: "device_link_remove" } @@ -338716,7 +349313,7 @@ elf_symbol { name: "device_match_any" is_defined: true symbol_type: FUNCTION - crc: 0x27b81d05 + crc: 0x79bc2c09 type_id: 0x9df2a123 full_name: "device_match_any" } @@ -338725,7 +349322,7 @@ elf_symbol { name: "device_match_fwnode" is_defined: true symbol_type: FUNCTION - crc: 0xf5d48fb3 + crc: 0x18ab672f type_id: 0x9df2a123 full_name: "device_match_fwnode" } @@ -338734,7 +349331,7 @@ elf_symbol { name: "device_match_name" is_defined: true symbol_type: FUNCTION - crc: 0xfe556a46 + crc: 0x4291b3e0 type_id: 0x9df2a123 full_name: "device_match_name" } @@ -338743,7 +349340,7 @@ elf_symbol { name: "device_match_of_node" is_defined: true symbol_type: FUNCTION - crc: 0xb442a4e3 + crc: 0x8afa5784 type_id: 0x9df2a123 full_name: "device_match_of_node" } @@ -338752,7 +349349,7 @@ elf_symbol { name: "device_move" is_defined: true symbol_type: FUNCTION - crc: 0x8cff37e4 + crc: 0xa20b010c type_id: 0x9d26cfef full_name: "device_move" } @@ -338793,6 +349390,15 @@ elf_symbol { full_name: "device_property_read_string" } elf_symbol { + id: 0xe592ed14 + name: "device_property_read_string_array" + is_defined: true + symbol_type: FUNCTION + crc: 0x1caa071f + type_id: 0x9dec0a70 + full_name: "device_property_read_string_array" +} +elf_symbol { id: 0x90a9db6c name: "device_property_read_u16_array" is_defined: true @@ -338824,7 +349430,7 @@ elf_symbol { name: "device_register" is_defined: true symbol_type: FUNCTION - crc: 0x13058457 + crc: 0x0fa063de type_id: 0x9d16dd74 full_name: "device_register" } @@ -338842,7 +349448,7 @@ elf_symbol { name: "device_remove_bin_file" is_defined: true symbol_type: FUNCTION - crc: 0x83d058f5 + crc: 0x4a5f012e type_id: 0x10ef2ae7 full_name: "device_remove_bin_file" } @@ -338851,16 +349457,25 @@ elf_symbol { name: "device_remove_file" is_defined: true symbol_type: FUNCTION - crc: 0xadb04226 + crc: 0x17678b2a type_id: 0x10fc4d27 full_name: "device_remove_file" } elf_symbol { + id: 0x22e51db4 + name: "device_remove_file_self" + is_defined: true + symbol_type: FUNCTION + crc: 0x7f6f4aa9 + type_id: 0xfec047b0 + full_name: "device_remove_file_self" +} +elf_symbol { id: 0x5a62c5df name: "device_remove_groups" is_defined: true symbol_type: FUNCTION - crc: 0xf700666d + crc: 0x702e1d06 type_id: 0x10176329 full_name: "device_remove_groups" } @@ -338869,16 +349484,25 @@ elf_symbol { name: "device_rename" is_defined: true symbol_type: FUNCTION - crc: 0x0226bd30 + crc: 0x7033f9f3 type_id: 0x9dee9fa0 full_name: "device_rename" } elf_symbol { + id: 0xa09675ab + name: "device_set_node" + is_defined: true + symbol_type: FUNCTION + crc: 0x3fd03b85 + type_id: 0x101c2d25 + full_name: "device_set_node" +} +elf_symbol { id: 0xcdcce9e8 name: "device_set_of_node_from_dev" is_defined: true symbol_type: FUNCTION - crc: 0xc04f47fe + crc: 0xdadf3a62 type_id: 0x10f0f603 full_name: "device_set_of_node_from_dev" } @@ -338905,7 +349529,7 @@ elf_symbol { name: "device_show_bool" is_defined: true symbol_type: FUNCTION - crc: 0xcddd5adf + crc: 0xe3983df5 type_id: 0x145d7056 full_name: "device_show_bool" } @@ -338914,7 +349538,7 @@ elf_symbol { name: "device_show_int" is_defined: true symbol_type: FUNCTION - crc: 0xf8f4b0e2 + crc: 0x7fdafadd type_id: 0x145d7056 full_name: "device_show_int" } @@ -338923,7 +349547,7 @@ elf_symbol { name: "device_store_bool" is_defined: true symbol_type: FUNCTION - crc: 0x404f9448 + crc: 0xde719222 type_id: 0x14500457 full_name: "device_store_bool" } @@ -338932,7 +349556,7 @@ elf_symbol { name: "device_store_int" is_defined: true symbol_type: FUNCTION - crc: 0xdc58b799 + crc: 0xc054eae6 type_id: 0x14500457 full_name: "device_store_int" } @@ -338941,7 +349565,7 @@ elf_symbol { name: "device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xb80da811 + crc: 0xd6b17cf1 type_id: 0x100e6fc8 full_name: "device_unregister" } @@ -338964,6 +349588,150 @@ elf_symbol { full_name: "device_wakeup_enable" } elf_symbol { + id: 0x884a3a76 + name: "devlink_alloc_ns" + is_defined: true + symbol_type: FUNCTION + crc: 0x81bd8c7b + type_id: 0x5bbe2188 + full_name: "devlink_alloc_ns" +} +elf_symbol { + id: 0xb54be30e + name: "devlink_flash_update_status_notify" + is_defined: true + symbol_type: FUNCTION + crc: 0x04c41c60 + type_id: 0x1353a05d + full_name: "devlink_flash_update_status_notify" +} +elf_symbol { + id: 0xead962b7 + name: "devlink_fmsg_binary_pair_nest_end" + is_defined: true + symbol_type: FUNCTION + crc: 0x5358864e + type_id: 0x9576eb91 + full_name: "devlink_fmsg_binary_pair_nest_end" +} +elf_symbol { + id: 0xfb50f564 + name: "devlink_fmsg_binary_pair_nest_start" + is_defined: true + symbol_type: FUNCTION + crc: 0x11df0e75 + type_id: 0x958ea945 + full_name: "devlink_fmsg_binary_pair_nest_start" +} +elf_symbol { + id: 0xff600ca5 + name: "devlink_fmsg_binary_put" + is_defined: true + symbol_type: FUNCTION + crc: 0x15510a89 + type_id: 0x95b6c4a9 + full_name: "devlink_fmsg_binary_put" +} +elf_symbol { + id: 0x266ac51c + name: "devlink_free" + is_defined: true + symbol_type: FUNCTION + crc: 0x660eb6bd + type_id: 0x13a4a7ac + full_name: "devlink_free" +} +elf_symbol { + id: 0xa8e06dd7 + name: "devlink_health_report" + is_defined: true + symbol_type: FUNCTION + crc: 0x93edef07 + type_id: 0x928c1332 + full_name: "devlink_health_report" +} +elf_symbol { + id: 0x52e65741 + name: "devlink_health_reporter_create" + is_defined: true + symbol_type: FUNCTION + crc: 0x0d26f5c4 + type_id: 0x2720cd28 + full_name: "devlink_health_reporter_create" +} +elf_symbol { + id: 0x2069fc41 + name: "devlink_health_reporter_destroy" + is_defined: true + symbol_type: FUNCTION + crc: 0x850bb6db + type_id: 0x1f6acc03 + full_name: "devlink_health_reporter_destroy" +} +elf_symbol { + id: 0x0abe7457 + name: "devlink_health_reporter_priv" + is_defined: true + symbol_type: FUNCTION + crc: 0xe40bb23e + type_id: 0x59642c61 + full_name: "devlink_health_reporter_priv" +} +elf_symbol { + id: 0x70ca4fad + name: "devlink_health_reporter_state_update" + is_defined: true + symbol_type: FUNCTION + crc: 0x2b4509dd + type_id: 0x1f01387c + full_name: "devlink_health_reporter_state_update" +} +elf_symbol { + id: 0xa164371a + name: "devlink_priv" + is_defined: true + symbol_type: FUNCTION + crc: 0x6e3347ec + type_id: 0x55aa47ce + full_name: "devlink_priv" +} +elf_symbol { + id: 0xb4634233 + name: "devlink_region_create" + is_defined: true + symbol_type: FUNCTION + crc: 0x6110ed39 + type_id: 0xe97c10c0 + full_name: "devlink_region_create" +} +elf_symbol { + id: 0x0a058c0b + name: "devlink_region_destroy" + is_defined: true + symbol_type: FUNCTION + crc: 0xa410a295 + type_id: 0x164ad64e + full_name: "devlink_region_destroy" +} +elf_symbol { + id: 0x5603c10b + name: "devlink_register" + is_defined: true + symbol_type: FUNCTION + crc: 0xc498bdc9 + type_id: 0x13a4a7ac + full_name: "devlink_register" +} +elf_symbol { + id: 0x7520d018 + name: "devlink_unregister" + is_defined: true + symbol_type: FUNCTION + crc: 0x946c0028 + type_id: 0x13a4a7ac + full_name: "devlink_unregister" +} +elf_symbol { id: 0xde9ec7ca name: "devm_add_action" is_defined: true @@ -338977,7 +349745,7 @@ elf_symbol { name: "devm_alloc_etherdev_mqs" is_defined: true symbol_type: FUNCTION - crc: 0xd4186ec9 + crc: 0x86360a75 type_id: 0xfd6947a6 full_name: "devm_alloc_etherdev_mqs" } @@ -339063,6 +349831,15 @@ elf_symbol { full_name: "devm_clk_get_optional" } elf_symbol { + id: 0x8837a38c + name: "devm_clk_get_optional_enabled" + is_defined: true + symbol_type: FUNCTION + crc: 0xab66b87e + type_id: 0xa671941e + full_name: "devm_clk_get_optional_enabled" +} +elf_symbol { id: 0x0d9ec99a name: "devm_clk_hw_register" is_defined: true @@ -339108,6 +349885,15 @@ elf_symbol { full_name: "devm_devfreq_add_device" } elf_symbol { + id: 0xa4692a70 + name: "devm_devfreq_event_add_edev" + is_defined: true + symbol_type: FUNCTION + crc: 0x5d86691d + type_id: 0xaa9ceb0d + full_name: "devm_devfreq_event_add_edev" +} +elf_symbol { id: 0x3afde7ec name: "devm_devfreq_register_notifier" is_defined: true @@ -339117,6 +349903,15 @@ elf_symbol { full_name: "devm_devfreq_register_notifier" } elf_symbol { + id: 0x6415475c + name: "devm_devfreq_register_opp_notifier" + is_defined: true + symbol_type: FUNCTION + crc: 0x7d3273ad + type_id: 0x9d8b7529 + full_name: "devm_devfreq_register_opp_notifier" +} +elf_symbol { id: 0x2bf23b7c name: "devm_devfreq_remove_device" is_defined: true @@ -339139,7 +349934,7 @@ elf_symbol { name: "devm_device_add_group" is_defined: true symbol_type: FUNCTION - crc: 0x3d592c9d + crc: 0xa6f886af type_id: 0x9ddbed6b full_name: "devm_device_add_group" } @@ -339148,7 +349943,7 @@ elf_symbol { name: "devm_device_add_groups" is_defined: true symbol_type: FUNCTION - crc: 0x50aa8ec9 + crc: 0xbde0d8e2 type_id: 0x9d0fd195 full_name: "devm_device_add_groups" } @@ -339157,7 +349952,7 @@ elf_symbol { name: "devm_device_remove_group" is_defined: true symbol_type: FUNCTION - crc: 0x01104e78 + crc: 0xec7eb28b type_id: 0x10c35fd7 full_name: "devm_device_remove_group" } @@ -339225,6 +350020,15 @@ elf_symbol { full_name: "devm_extcon_register_notifier" } elf_symbol { + id: 0xf4b697c0 + name: "devm_extcon_register_notifier_all" + is_defined: true + symbol_type: FUNCTION + crc: 0xa0b271d0 + type_id: 0x9d50188a + full_name: "devm_extcon_register_notifier_all" +} +elf_symbol { id: 0x9218e37d name: "devm_free_irq" is_defined: true @@ -339283,8 +350087,8 @@ elf_symbol { name: "devm_gh_rm_register_platform_ops" is_defined: true symbol_type: FUNCTION - crc: 0xec193d82 - type_id: 0x9def2541 + crc: 0xe82ea1f9 + type_id: 0x9dd4624b full_name: "devm_gh_rm_register_platform_ops" } elf_symbol { @@ -339342,6 +350146,15 @@ elf_symbol { full_name: "devm_gpiod_get_index" } elf_symbol { + id: 0x241e9d4d + name: "devm_gpiod_get_index_optional" + is_defined: true + symbol_type: FUNCTION + crc: 0xf71fb74b + type_id: 0x5f3cfa16 + full_name: "devm_gpiod_get_index_optional" +} +elf_symbol { id: 0xf6b9516e name: "devm_gpiod_get_optional" is_defined: true @@ -339513,6 +350326,15 @@ elf_symbol { full_name: "devm_kasprintf" } elf_symbol { + id: 0x0abc683e + name: "devm_kasprintf_strarray" + is_defined: true + symbol_type: FUNCTION + crc: 0xd205a636 + type_id: 0x0c5cd477 + full_name: "devm_kasprintf_strarray" +} +elf_symbol { id: 0x7c053015 name: "devm_kfree" is_defined: true @@ -339630,6 +350452,15 @@ elf_symbol { full_name: "devm_memremap" } elf_symbol { + id: 0x86c1623f + name: "devm_memunmap" + is_defined: true + symbol_type: FUNCTION + crc: 0xd7fbf31f + type_id: 0x106c9a5c + full_name: "devm_memunmap" +} +elf_symbol { id: 0x36e39cf6 name: "devm_mfd_add_devices" is_defined: true @@ -339747,6 +350578,15 @@ elf_symbol { full_name: "devm_pci_alloc_host_bridge" } elf_symbol { + id: 0x92ffc2e2 + name: "devm_pci_remap_cfg_resource" + is_defined: true + symbol_type: FUNCTION + crc: 0x029de2b5 + type_id: 0x56edbc2a + full_name: "devm_pci_remap_cfg_resource" +} +elf_symbol { id: 0xd6e5f7c7 name: "devm_phy_create" is_defined: true @@ -339778,7 +350618,7 @@ elf_symbol { name: "devm_phy_package_join" is_defined: true symbol_type: FUNCTION - crc: 0x99b8f039 + crc: 0xa13a8f37 type_id: 0x9dc91f17 full_name: "devm_phy_package_join" } @@ -340228,7 +351068,7 @@ elf_symbol { name: "devm_usb_get_phy" is_defined: true symbol_type: FUNCTION - crc: 0x976fe01c + crc: 0x3b6c04cd type_id: 0x8d63c458 full_name: "devm_usb_get_phy" } @@ -340237,7 +351077,7 @@ elf_symbol { name: "devm_usb_get_phy_by_node" is_defined: true symbol_type: FUNCTION - crc: 0xaaf602d1 + crc: 0x9225cdfb type_id: 0x8f3f76d1 full_name: "devm_usb_get_phy_by_node" } @@ -340246,7 +351086,7 @@ elf_symbol { name: "devm_usb_get_phy_by_phandle" is_defined: true symbol_type: FUNCTION - crc: 0x0093df2b + crc: 0x34248b5d type_id: 0x8f1a42be full_name: "devm_usb_get_phy_by_phandle" } @@ -340323,6 +351163,15 @@ elf_symbol { full_name: "devres_remove_group" } elf_symbol { + id: 0x30dd6796 + name: "disable_hardirq" + is_defined: true + symbol_type: FUNCTION + crc: 0xbd3fe1e3 + type_id: 0xefc5028b + full_name: "disable_hardirq" +} +elf_symbol { id: 0x573e2956 name: "disable_irq" is_defined: true @@ -340395,6 +351244,150 @@ elf_symbol { full_name: "divider_round_rate_parent" } elf_symbol { + id: 0xf4cef372 + name: "dm_bufio_client_create" + is_defined: true + symbol_type: FUNCTION + crc: 0xb08df2d2 + type_id: 0x4b6ec637 + full_name: "dm_bufio_client_create" +} +elf_symbol { + id: 0xa2bba96c + name: "dm_bufio_client_destroy" + is_defined: true + symbol_type: FUNCTION + crc: 0xeca7949e + type_id: 0x1bd82ebd + full_name: "dm_bufio_client_destroy" +} +elf_symbol { + id: 0x7848fa66 + name: "dm_bufio_mark_buffer_dirty" + is_defined: true + symbol_type: FUNCTION + crc: 0x0ad0dc4f + type_id: 0x1a8f9ccc + full_name: "dm_bufio_mark_buffer_dirty" +} +elf_symbol { + id: 0x0db19b7a + name: "dm_bufio_new" + is_defined: true + symbol_type: FUNCTION + crc: 0xc0d7df85 + type_id: 0x5e9421aa + full_name: "dm_bufio_new" +} +elf_symbol { + id: 0xed0adecd + name: "dm_bufio_read" + is_defined: true + symbol_type: FUNCTION + crc: 0xb04f56ab + type_id: 0x5e9421aa + full_name: "dm_bufio_read" +} +elf_symbol { + id: 0xd3ad47e6 + name: "dm_bufio_release" + is_defined: true + symbol_type: FUNCTION + crc: 0xe6024e59 + type_id: 0x1a8f9ccc + full_name: "dm_bufio_release" +} +elf_symbol { + id: 0x042d9e44 + name: "dm_bufio_write_dirty_buffers" + is_defined: true + symbol_type: FUNCTION + crc: 0xa82b2066 + type_id: 0x96c09c01 + full_name: "dm_bufio_write_dirty_buffers" +} +elf_symbol { + id: 0x0991ae07 + name: "dm_disk" + is_defined: true + symbol_type: FUNCTION + crc: 0x6c18061f + type_id: 0x47570b9f + full_name: "dm_disk" +} +elf_symbol { + id: 0x650e9b1f + name: "dm_get_device" + is_defined: true + symbol_type: FUNCTION + crc: 0x1e1791d7 + type_id: 0x9221eee3 + full_name: "dm_get_device" +} +elf_symbol { + id: 0xd360b11b + name: "dm_kobject_release" + is_defined: true + symbol_type: FUNCTION + crc: 0x41e9f737 + type_id: 0x1864769e + full_name: "dm_kobject_release" +} +elf_symbol { + id: 0x8c40514f + name: "dm_read_arg_group" + is_defined: true + symbol_type: FUNCTION + crc: 0x39c74235 + type_id: 0x926c5025 + full_name: "dm_read_arg_group" +} +elf_symbol { + id: 0xe7718d4e + name: "dm_register_target" + is_defined: true + symbol_type: FUNCTION + crc: 0x99f64a0c + type_id: 0x90085da5 + full_name: "dm_register_target" +} +elf_symbol { + id: 0xb61b1afb + name: "dm_shift_arg" + is_defined: true + symbol_type: FUNCTION + crc: 0x7d27e504 + type_id: 0x98af9d1c + full_name: "dm_shift_arg" +} +elf_symbol { + id: 0xe96fb6a0 + name: "dm_table_get_md" + is_defined: true + symbol_type: FUNCTION + crc: 0xeba2f002 + type_id: 0xa7436d37 + full_name: "dm_table_get_md" +} +elf_symbol { + id: 0xf99054ab + name: "dm_table_get_mode" + is_defined: true + symbol_type: FUNCTION + crc: 0x925f0075 + type_id: 0x11508453 + full_name: "dm_table_get_mode" +} +elf_symbol { + id: 0x76f0e551 + name: "dm_unregister_target" + is_defined: true + symbol_type: FUNCTION + crc: 0x28405c27 + type_id: 0x1d10ef19 + full_name: "dm_unregister_target" +} +elf_symbol { id: 0x6cb15207 name: "dma_alloc_attrs" is_defined: true @@ -340616,6 +351609,15 @@ elf_symbol { full_name: "dma_buf_put" } elf_symbol { + id: 0x77d18a9c + name: "dma_buf_set_name" + is_defined: true + symbol_type: FUNCTION + crc: 0x752c3098 + type_id: 0xa7ea77a4 + full_name: "dma_buf_set_name" +} +elf_symbol { id: 0xd0deb542 name: "dma_buf_unmap_attachment" is_defined: true @@ -341052,6 +352054,15 @@ elf_symbol { full_name: "dma_mmap_pages" } elf_symbol { + id: 0x843aec6c + name: "dma_need_sync" + is_defined: true + symbol_type: FUNCTION + crc: 0xcec723d1 + type_id: 0xfdb2dd0c + full_name: "dma_need_sync" +} +elf_symbol { id: 0xeb70c9c5 name: "dma_pool_alloc" is_defined: true @@ -341461,7 +352472,7 @@ elf_symbol { name: "double_rq_lock" is_defined: true symbol_type: FUNCTION - crc: 0xb7b37d6f + crc: 0xdb32b18f type_id: 0x1ba0fc33 full_name: "double_rq_lock" } @@ -341556,6 +352567,15 @@ elf_symbol { full_name: "down_write_killable" } elf_symbol { + id: 0x626b81c7 + name: "down_write_trylock" + is_defined: true + symbol_type: FUNCTION + crc: 0xd0e551cc + type_id: 0x9daf738f + full_name: "down_write_trylock" +} +elf_symbol { id: 0x4a57b168 name: "downgrade_write" is_defined: true @@ -341691,6 +352711,15 @@ elf_symbol { full_name: "drm_add_modes_noedid" } elf_symbol { + id: 0x7e8263f6 + name: "drm_aperture_remove_conflicting_framebuffers" + is_defined: true + symbol_type: FUNCTION + crc: 0xa5abe6ba + type_id: 0xba97bb1d + full_name: "drm_aperture_remove_conflicting_framebuffers" +} +elf_symbol { id: 0x588ab3fd name: "drm_aperture_remove_conflicting_pci_framebuffers" is_defined: true @@ -342537,6 +353566,24 @@ elf_symbol { full_name: "drm_bridge_detect" } elf_symbol { + id: 0x3ef0db06 + name: "drm_bridge_get_edid" + is_defined: true + symbol_type: FUNCTION + crc: 0xdeb653ce + type_id: 0xc7bc0e4a + full_name: "drm_bridge_get_edid" +} +elf_symbol { + id: 0xc72378aa + name: "drm_bridge_get_modes" + is_defined: true + symbol_type: FUNCTION + crc: 0x8446a07e + type_id: 0x94dc0c27 + full_name: "drm_bridge_get_modes" +} +elf_symbol { id: 0xd82232b3 name: "drm_bridge_hpd_notify" is_defined: true @@ -342672,6 +353719,15 @@ elf_symbol { full_name: "drm_connector_cleanup" } elf_symbol { + id: 0xf8bd92c8 + name: "drm_connector_has_possible_encoder" + is_defined: true + symbol_type: FUNCTION + crc: 0x2e4b4a64 + type_id: 0xf272e262 + full_name: "drm_connector_has_possible_encoder" +} +elf_symbol { id: 0x70b7d94b name: "drm_connector_init" is_defined: true @@ -342816,6 +353872,15 @@ elf_symbol { full_name: "drm_crtc_enable_color_mgmt" } elf_symbol { + id: 0x08309f5e + name: "drm_crtc_from_index" + is_defined: true + symbol_type: FUNCTION + crc: 0x34429a5e + type_id: 0x45df5dd3 + full_name: "drm_crtc_from_index" +} +elf_symbol { id: 0x11e9361c name: "drm_crtc_handle_vblank" is_defined: true @@ -343320,6 +354385,15 @@ elf_symbol { full_name: "drm_format_info_block_width" } elf_symbol { + id: 0x4b9e6227 + name: "drm_format_info_min_pitch" + is_defined: true + symbol_type: FUNCTION + crc: 0x6910e4cd + type_id: 0x5274946d + full_name: "drm_format_info_min_pitch" +} +elf_symbol { id: 0x9c6b68f2 name: "drm_framebuffer_cleanup" is_defined: true @@ -343383,6 +354457,15 @@ elf_symbol { full_name: "drm_gem_create_mmap_offset" } elf_symbol { + id: 0xd4d38d4c + name: "drm_gem_dmabuf_export" + is_defined: true + symbol_type: FUNCTION + crc: 0x9af5812d + type_id: 0x44b624d1 + full_name: "drm_gem_dmabuf_export" +} +elf_symbol { id: 0x81bdff8a name: "drm_gem_dmabuf_mmap" is_defined: true @@ -343419,6 +354502,24 @@ elf_symbol { full_name: "drm_gem_dmabuf_vunmap" } elf_symbol { + id: 0xac1aeaf0 + name: "drm_gem_dumb_map_offset" + is_defined: true + symbol_type: FUNCTION + crc: 0x8220a182 + type_id: 0x99e7b457 + full_name: "drm_gem_dumb_map_offset" +} +elf_symbol { + id: 0x622cdd92 + name: "drm_gem_fb_afbc_init" + is_defined: true + symbol_type: FUNCTION + crc: 0x38ebad6a + type_id: 0x939f8199 + full_name: "drm_gem_fb_afbc_init" +} +elf_symbol { id: 0xc7970f23 name: "drm_gem_fb_begin_cpu_access" is_defined: true @@ -343464,6 +354565,15 @@ elf_symbol { full_name: "drm_gem_fb_get_obj" } elf_symbol { + id: 0x585410d0 + name: "drm_gem_fb_init_with_funcs" + is_defined: true + symbol_type: FUNCTION + crc: 0x882550af + type_id: 0x938283cb + full_name: "drm_gem_fb_init_with_funcs" +} +elf_symbol { id: 0xd4a13963 name: "drm_gem_fb_vmap" is_defined: true @@ -343509,6 +354619,15 @@ elf_symbol { full_name: "drm_gem_handle_create" } elf_symbol { + id: 0xd32d7c35 + name: "drm_gem_handle_delete" + is_defined: true + symbol_type: FUNCTION + crc: 0x855a2628 + type_id: 0x9a1d7c68 + full_name: "drm_gem_handle_delete" +} +elf_symbol { id: 0xf76bbee4 name: "drm_gem_lock_reservations" is_defined: true @@ -344139,6 +355258,15 @@ elf_symbol { full_name: "drm_mm_remove_node" } elf_symbol { + id: 0xd0dd3133 + name: "drm_mm_reserve_node" + is_defined: true + symbol_type: FUNCTION + crc: 0x2754dad8 + type_id: 0x974e1bca + full_name: "drm_mm_reserve_node" +} +elf_symbol { id: 0x3b867568 name: "drm_mm_scan_add_block" is_defined: true @@ -344283,6 +355411,15 @@ elf_symbol { full_name: "drm_mode_create_tile_group" } elf_symbol { + id: 0x0d3b6723 + name: "drm_mode_create_tv_properties" + is_defined: true + symbol_type: FUNCTION + crc: 0x30d9d722 + type_id: 0x9258444e + full_name: "drm_mode_create_tv_properties" +} +elf_symbol { id: 0x58b810bd name: "drm_mode_crtc_set_gamma_size" is_defined: true @@ -344346,6 +355483,15 @@ elf_symbol { full_name: "drm_mode_find_dmt" } elf_symbol { + id: 0xc3ae75b9 + name: "drm_mode_is_420" + is_defined: true + symbol_type: FUNCTION + crc: 0x8c35d2cf + type_id: 0xf10b3730 + full_name: "drm_mode_is_420" +} +elf_symbol { id: 0xca851619 name: "drm_mode_is_420_also" is_defined: true @@ -344445,6 +355591,33 @@ elf_symbol { full_name: "drm_mode_sort" } elf_symbol { + id: 0x003f0aec + name: "drm_mode_validate_driver" + is_defined: true + symbol_type: FUNCTION + crc: 0x952d25ca + type_id: 0xb13e733c + full_name: "drm_mode_validate_driver" +} +elf_symbol { + id: 0x43bb72ae + name: "drm_mode_validate_size" + is_defined: true + symbol_type: FUNCTION + crc: 0xd7a9cf42 + type_id: 0xb3cfd554 + full_name: "drm_mode_validate_size" +} +elf_symbol { + id: 0x49fd657a + name: "drm_mode_validate_ycbcr420" + is_defined: true + symbol_type: FUNCTION + crc: 0xcb2c6fb3 + type_id: 0xb28c48b5 + full_name: "drm_mode_validate_ycbcr420" +} +elf_symbol { id: 0x4e6bfabc name: "drm_mode_vrefresh" is_defined: true @@ -344589,6 +355762,15 @@ elf_symbol { full_name: "drm_of_component_probe" } elf_symbol { + id: 0xdb6eae3a + name: "drm_of_crtc_port_mask" + is_defined: true + symbol_type: FUNCTION + crc: 0xf557a5fd + type_id: 0x3d0f6874 + full_name: "drm_of_crtc_port_mask" +} +elf_symbol { id: 0x122e3e9f name: "drm_of_encoder_active_endpoint" is_defined: true @@ -344823,6 +356005,15 @@ elf_symbol { full_name: "drm_plane_enable_fb_damage_clips" } elf_symbol { + id: 0xf06cd4b3 + name: "drm_plane_from_index" + is_defined: true + symbol_type: FUNCTION + crc: 0x1555a37a + type_id: 0xfee76c7c + full_name: "drm_plane_from_index" +} +elf_symbol { id: 0x8984b2e1 name: "drm_poll" is_defined: true @@ -344967,6 +356158,15 @@ elf_symbol { full_name: "drm_property_create_enum" } elf_symbol { + id: 0x8d62d3e1 + name: "drm_property_create_object" + is_defined: true + symbol_type: FUNCTION + crc: 0x6e0229f2 + type_id: 0x9b723218 + full_name: "drm_property_create_object" +} +elf_symbol { id: 0x7a4db2f9 name: "drm_property_create_range" is_defined: true @@ -345012,6 +356212,15 @@ elf_symbol { full_name: "drm_property_replace_blob" } elf_symbol { + id: 0x4cf5ba17 + name: "drm_property_replace_global_blob" + is_defined: true + symbol_type: FUNCTION + crc: 0xd2ff27b8 + type_id: 0x93625762 + full_name: "drm_property_replace_global_blob" +} +elf_symbol { id: 0x9718e72e name: "drm_puts" is_defined: true @@ -345129,6 +356338,15 @@ elf_symbol { full_name: "drm_send_event_locked" } elf_symbol { + id: 0xb701b4b1 + name: "drm_send_event_timestamp_locked" + is_defined: true + symbol_type: FUNCTION + crc: 0x2e16a8ee + type_id: 0x1e4106e1 + full_name: "drm_send_event_timestamp_locked" +} +elf_symbol { id: 0x19652f5f name: "drm_set_preferred_mode" is_defined: true @@ -345354,6 +356572,15 @@ elf_symbol { full_name: "drmm_mode_config_init" } elf_symbol { + id: 0x4dae13e9 + name: "drop_nlink" + is_defined: true + symbol_type: FUNCTION + crc: 0x4c7bc8cb + type_id: 0x167935b9 + full_name: "drop_nlink" +} +elf_symbol { id: 0xe2b96ffd name: "dst_cache_destroy" is_defined: true @@ -345367,7 +356594,7 @@ elf_symbol { name: "dst_cache_get" is_defined: true symbol_type: FUNCTION - crc: 0xd7e92c4a + crc: 0x6afc552f type_id: 0xaba1c9dd full_name: "dst_cache_get" } @@ -345385,7 +356612,7 @@ elf_symbol { name: "dst_cache_set_ip4" is_defined: true symbol_type: FUNCTION - crc: 0xb7a6c8fe + crc: 0x633308af type_id: 0x1aa3070d full_name: "dst_cache_set_ip4" } @@ -345394,7 +356621,7 @@ elf_symbol { name: "dst_cache_set_ip6" is_defined: true symbol_type: FUNCTION - crc: 0x7fb4e4c7 + crc: 0x36de37e2 type_id: 0x1a954b21 full_name: "dst_cache_set_ip6" } @@ -345403,11 +356630,20 @@ elf_symbol { name: "dst_release" is_defined: true symbol_type: FUNCTION - crc: 0x65c33bca + crc: 0x5fc9451b type_id: 0x140e294e full_name: "dst_release" } elf_symbol { + id: 0xe09fd784 + name: "dummy_irq_chip" + is_defined: true + symbol_type: OBJECT + crc: 0x06ae18cc + type_id: 0xadd7ccb6 + full_name: "dummy_irq_chip" +} +elf_symbol { id: 0xded28924 name: "dump_backtrace" is_defined: true @@ -345480,6 +356716,15 @@ elf_symbol { full_name: "dw_pcie_find_capability" } elf_symbol { + id: 0xdc24b796 + name: "dw_pcie_find_ext_capability" + is_defined: true + symbol_type: FUNCTION + crc: 0x8adbc3f0 + type_id: 0x0ec08f0d + full_name: "dw_pcie_find_ext_capability" +} +elf_symbol { id: 0xb8395a3e name: "dw_pcie_host_init" is_defined: true @@ -345489,6 +356734,15 @@ elf_symbol { full_name: "dw_pcie_host_init" } elf_symbol { + id: 0xa625950b + name: "dw_pcie_link_up" + is_defined: true + symbol_type: FUNCTION + crc: 0x9b8ebc8e + type_id: 0x92ce345a + full_name: "dw_pcie_link_up" +} +elf_symbol { id: 0x9d898d75 name: "dw_pcie_own_conf_map_bus" is_defined: true @@ -345628,7 +356882,7 @@ elf_symbol { name: "ehci_hub_control" is_defined: true symbol_type: FUNCTION - crc: 0xf1b90003 + crc: 0xe3d27c64 type_id: 0x96bdc834 full_name: "ehci_hub_control" } @@ -345637,7 +356891,7 @@ elf_symbol { name: "ehci_init_driver" is_defined: true symbol_type: FUNCTION - crc: 0xac1a1e84 + crc: 0xa8b764d0 type_id: 0x14fbfe19 full_name: "ehci_init_driver" } @@ -345646,7 +356900,7 @@ elf_symbol { name: "ehci_setup" is_defined: true symbol_type: FUNCTION - crc: 0x6864e54e + crc: 0xd2d2139c type_id: 0x94deebf7 full_name: "ehci_setup" } @@ -345804,6 +357058,24 @@ elf_symbol { full_name: "end_buffer_read_sync" } elf_symbol { + id: 0x45c0e0ad + name: "end_buffer_write_sync" + is_defined: true + symbol_type: FUNCTION + crc: 0x7207a9fa + type_id: 0x17592b81 + full_name: "end_buffer_write_sync" +} +elf_symbol { + id: 0xf7fd2915 + name: "end_page_writeback" + is_defined: true + symbol_type: FUNCTION + crc: 0xd203f7c4 + type_id: 0x11388634 + full_name: "end_page_writeback" +} +elf_symbol { id: 0x7b9ffce9 name: "errno_to_blk_status" is_defined: true @@ -345813,11 +357085,20 @@ elf_symbol { full_name: "errno_to_blk_status" } elf_symbol { + id: 0xe506b877 + name: "errseq_set" + is_defined: true + symbol_type: FUNCTION + crc: 0x2ec6bba0 + type_id: 0xb55dce02 + full_name: "errseq_set" +} +elf_symbol { id: 0xda116c83 name: "eth_commit_mac_addr_change" is_defined: true symbol_type: FUNCTION - crc: 0x316fa371 + crc: 0x87ccc33e type_id: 0x1c532cf2 full_name: "eth_commit_mac_addr_change" } @@ -345826,7 +357107,7 @@ elf_symbol { name: "eth_header" is_defined: true symbol_type: FUNCTION - crc: 0x7f371071 + crc: 0x4e4cbc45 type_id: 0x9c2b054b full_name: "eth_header" } @@ -345835,7 +357116,7 @@ elf_symbol { name: "eth_header_cache" is_defined: true symbol_type: FUNCTION - crc: 0x552c2d8e + crc: 0x0d78f33b type_id: 0x92d3b873 full_name: "eth_header_cache" } @@ -345844,7 +357125,7 @@ elf_symbol { name: "eth_header_cache_update" is_defined: true symbol_type: FUNCTION - crc: 0x68c5a39e + crc: 0x8fab9a49 type_id: 0x139004c0 full_name: "eth_header_cache_update" } @@ -345853,7 +357134,7 @@ elf_symbol { name: "eth_header_parse" is_defined: true symbol_type: FUNCTION - crc: 0xc242e7a9 + crc: 0xf081da3d type_id: 0x926fc724 full_name: "eth_header_parse" } @@ -345862,7 +357143,7 @@ elf_symbol { name: "eth_mac_addr" is_defined: true symbol_type: FUNCTION - crc: 0x76c483a0 + crc: 0x6f314653 type_id: 0x914b9e4e full_name: "eth_mac_addr" } @@ -345871,7 +357152,7 @@ elf_symbol { name: "eth_platform_get_mac_address" is_defined: true symbol_type: FUNCTION - crc: 0x33a1bc7f + crc: 0x9576cab2 type_id: 0x9d15c1e0 full_name: "eth_platform_get_mac_address" } @@ -345880,7 +357161,7 @@ elf_symbol { name: "eth_prepare_mac_addr_change" is_defined: true symbol_type: FUNCTION - crc: 0x8357eae7 + crc: 0xe16ceb0a type_id: 0x914b9e4e full_name: "eth_prepare_mac_addr_change" } @@ -345889,7 +357170,7 @@ elf_symbol { name: "eth_type_trans" is_defined: true symbol_type: FUNCTION - crc: 0x9598ecff + crc: 0xa3a49e39 type_id: 0xe323faf8 full_name: "eth_type_trans" } @@ -345898,7 +357179,7 @@ elf_symbol { name: "eth_validate_addr" is_defined: true symbol_type: FUNCTION - crc: 0x2fc97ef0 + crc: 0xd0c4e253 type_id: 0x91296bda full_name: "eth_validate_addr" } @@ -345907,7 +357188,7 @@ elf_symbol { name: "ether_setup" is_defined: true symbol_type: FUNCTION - crc: 0x718cef00 + crc: 0x46c7e5b5 type_id: 0x1c31d966 full_name: "ether_setup" } @@ -345916,7 +357197,7 @@ elf_symbol { name: "ethnl_cable_test_fault_length" is_defined: true symbol_type: FUNCTION - crc: 0x26021597 + crc: 0x8f057bce type_id: 0x914a78cc full_name: "ethnl_cable_test_fault_length" } @@ -345925,7 +357206,7 @@ elf_symbol { name: "ethnl_cable_test_result" is_defined: true symbol_type: FUNCTION - crc: 0x5f7e0d4b + crc: 0x1c546292 type_id: 0x91726dda full_name: "ethnl_cable_test_result" } @@ -345952,7 +357233,7 @@ elf_symbol { name: "ethtool_op_get_link" is_defined: true symbol_type: FUNCTION - crc: 0x7246bc6c + crc: 0xb5a62b42 type_id: 0x4951a397 full_name: "ethtool_op_get_link" } @@ -345961,7 +357242,7 @@ elf_symbol { name: "ethtool_op_get_ts_info" is_defined: true symbol_type: FUNCTION - crc: 0x256a0525 + crc: 0x59d7903f type_id: 0x916bd4e5 full_name: "ethtool_op_get_ts_info" } @@ -345979,7 +357260,7 @@ elf_symbol { name: "ethtool_virtdev_set_link_ksettings" is_defined: true symbol_type: FUNCTION - crc: 0x079139fd + crc: 0xc50f93aa type_id: 0x91c2a80b full_name: "ethtool_virtdev_set_link_ksettings" } @@ -346119,6 +357400,15 @@ elf_symbol { full_name: "extcon_set_property_capability" } elf_symbol { + id: 0xb1dfbb02 + name: "extcon_set_property_sync" + is_defined: true + symbol_type: FUNCTION + crc: 0x710595c3 + type_id: 0x98850898 + full_name: "extcon_set_property_sync" +} +elf_symbol { id: 0xacc42253 name: "extcon_set_state" is_defined: true @@ -346137,6 +357427,15 @@ elf_symbol { full_name: "extcon_set_state_sync" } elf_symbol { + id: 0xad3eb214 + name: "extcon_sync" + is_defined: true + symbol_type: FUNCTION + crc: 0x7893b9d4 + type_id: 0x989473cc + full_name: "extcon_sync" +} +elf_symbol { id: 0xb107d2cd name: "extcon_unregister_notifier" is_defined: true @@ -346155,6 +357454,24 @@ elf_symbol { full_name: "fasync_helper" } elf_symbol { + id: 0xc56006c7 + name: "fault_in_iov_iter_readable" + is_defined: true + symbol_type: FUNCTION + crc: 0xd085a60d + type_id: 0x99d43279 + full_name: "fault_in_iov_iter_readable" +} +elf_symbol { + id: 0x639b2403 + name: "fault_in_safe_writeable" + is_defined: true + symbol_type: FUNCTION + crc: 0xf394f7da + type_id: 0x9b6b31b5 + full_name: "fault_in_safe_writeable" +} +elf_symbol { id: 0xbbfb394e name: "fb_get_options" is_defined: true @@ -346177,7 +357494,7 @@ elf_symbol { name: "fd_install" is_defined: true symbol_type: FUNCTION - crc: 0x66037067 + crc: 0xd94e18fc type_id: 0x019aa1b7 full_name: "fd_install" } @@ -346186,11 +357503,38 @@ elf_symbol { name: "fget" is_defined: true symbol_type: FUNCTION - crc: 0x8f62589f + crc: 0x314a6896 type_id: 0x50f3b181 full_name: "fget" } elf_symbol { + id: 0xab45f2a8 + name: "fiemap_fill_next_extent" + is_defined: true + symbol_type: FUNCTION + crc: 0x970a3f8f + type_id: 0x92ab0d8f + full_name: "fiemap_fill_next_extent" +} +elf_symbol { + id: 0x41eed79f + name: "fiemap_prep" + is_defined: true + symbol_type: FUNCTION + crc: 0x12888fc3 + type_id: 0x9b91dcee + full_name: "fiemap_prep" +} +elf_symbol { + id: 0xcdc0fffd + name: "file_check_and_advance_wb_err" + is_defined: true + symbol_type: FUNCTION + crc: 0x247050da + type_id: 0x9bba7997 + full_name: "file_check_and_advance_wb_err" +} +elf_symbol { id: 0xe7aacfe5 name: "file_path" is_defined: true @@ -346209,6 +357553,24 @@ elf_symbol { full_name: "file_ra_state_init" } elf_symbol { + id: 0x99b0f07b + name: "file_remove_privs" + is_defined: true + symbol_type: FUNCTION + crc: 0x7adb4755 + type_id: 0x9bba7997 + full_name: "file_remove_privs" +} +elf_symbol { + id: 0xffbe24f4 + name: "file_update_time" + is_defined: true + symbol_type: FUNCTION + crc: 0xf206510a + type_id: 0x9bba7997 + full_name: "file_update_time" +} +elf_symbol { id: 0x46b6e531 name: "file_write_and_wait_range" is_defined: true @@ -346218,6 +357580,78 @@ elf_symbol { full_name: "file_write_and_wait_range" } elf_symbol { + id: 0xbe28ee32 + name: "filemap_add_folio" + is_defined: true + symbol_type: FUNCTION + crc: 0x42f25711 + type_id: 0x986a916d + full_name: "filemap_add_folio" +} +elf_symbol { + id: 0x4927c9f3 + name: "filemap_dirty_folio" + is_defined: true + symbol_type: FUNCTION + crc: 0xa4ca0b75 + type_id: 0xfb413284 + full_name: "filemap_dirty_folio" +} +elf_symbol { + id: 0x50a5072e + name: "filemap_fault" + is_defined: true + symbol_type: FUNCTION + crc: 0x6ea71511 + type_id: 0xcee4fe8d + full_name: "filemap_fault" +} +elf_symbol { + id: 0xef606c3f + name: "filemap_fdatawait_range" + is_defined: true + symbol_type: FUNCTION + crc: 0x021f318f + type_id: 0x98773f07 + full_name: "filemap_fdatawait_range" +} +elf_symbol { + id: 0x3289d59f + name: "filemap_fdatawrite" + is_defined: true + symbol_type: FUNCTION + crc: 0xd20a8cfb + type_id: 0x98e049ee + full_name: "filemap_fdatawrite" +} +elf_symbol { + id: 0x82b19820 + name: "filemap_fdatawrite_range" + is_defined: true + symbol_type: FUNCTION + crc: 0x99f56961 + type_id: 0x98773f07 + full_name: "filemap_fdatawrite_range" +} +elf_symbol { + id: 0x7c937fc2 + name: "filemap_flush" + is_defined: true + symbol_type: FUNCTION + crc: 0x12f67935 + type_id: 0x98e049ee + full_name: "filemap_flush" +} +elf_symbol { + id: 0xc7c68a05 + name: "filemap_write_and_wait_range" + is_defined: true + symbol_type: FUNCTION + crc: 0x44a9ebe6 + type_id: 0x98773f07 + full_name: "filemap_write_and_wait_range" +} +elf_symbol { id: 0xb9dc79d0 name: "filp_close" is_defined: true @@ -346249,7 +357683,7 @@ elf_symbol { name: "find_get_pid" is_defined: true symbol_type: FUNCTION - crc: 0x69763433 + crc: 0xa1aafdfe type_id: 0x3a251008 full_name: "find_get_pid" } @@ -346258,7 +357692,7 @@ elf_symbol { name: "find_pid_ns" is_defined: true symbol_type: FUNCTION - crc: 0x7d0cb4c1 + crc: 0x93c5ba17 type_id: 0x31ab6254 full_name: "find_pid_ns" } @@ -346267,7 +357701,7 @@ elf_symbol { name: "find_task_by_vpid" is_defined: true symbol_type: FUNCTION - crc: 0x8bca0f66 + crc: 0x5cd583b1 type_id: 0x69238486 full_name: "find_task_by_vpid" } @@ -346303,7 +357737,7 @@ elf_symbol { name: "find_vpid" is_defined: true symbol_type: FUNCTION - crc: 0x546f0f9d + crc: 0xaf95aaf5 type_id: 0x318306ba full_name: "find_vpid" } @@ -346348,7 +357782,7 @@ elf_symbol { name: "flow_block_cb_setup_simple" is_defined: true symbol_type: FUNCTION - crc: 0x6168a7e6 + crc: 0x3a4f824a type_id: 0x9c25419d full_name: "flow_block_cb_setup_simple" } @@ -346366,7 +357800,7 @@ elf_symbol { name: "flow_rule_match_basic" is_defined: true symbol_type: FUNCTION - crc: 0x524409f8 + crc: 0x8668d6e5 type_id: 0x1de80b22 full_name: "flow_rule_match_basic" } @@ -346375,7 +357809,7 @@ elf_symbol { name: "flow_rule_match_ipv4_addrs" is_defined: true symbol_type: FUNCTION - crc: 0x19d53c1f + crc: 0x97a50d1a type_id: 0x1d3f8bd2 full_name: "flow_rule_match_ipv4_addrs" } @@ -346384,7 +357818,7 @@ elf_symbol { name: "flow_rule_match_ports" is_defined: true symbol_type: FUNCTION - crc: 0x7300b876 + crc: 0x8a2974d9 type_id: 0x1d4e9dab full_name: "flow_rule_match_ports" } @@ -346393,7 +357827,7 @@ elf_symbol { name: "flow_rule_match_vlan" is_defined: true symbol_type: FUNCTION - crc: 0x13572ff9 + crc: 0x7fd7364a type_id: 0x1d4435ec full_name: "flow_rule_match_vlan" } @@ -346434,6 +357868,33 @@ elf_symbol { full_name: "flush_work" } elf_symbol { + id: 0x06c58be7 + name: "folio_add_lru" + is_defined: true + symbol_type: FUNCTION + crc: 0x42a88286 + type_id: 0x18c46588 + full_name: "folio_add_lru" +} +elf_symbol { + id: 0x159a69a3 + name: "folio_mapping" + is_defined: true + symbol_type: FUNCTION + crc: 0xad0ae85f + type_id: 0x637004ab + full_name: "folio_mapping" +} +elf_symbol { + id: 0x39840ab2 + name: "folio_referenced" + is_defined: true + symbol_type: FUNCTION + crc: 0x6114128f + type_id: 0x94471ba6 + full_name: "folio_referenced" +} +elf_symbol { id: 0x3dca9a13 name: "folio_wait_bit" is_defined: true @@ -346443,6 +357904,15 @@ elf_symbol { full_name: "folio_wait_bit" } elf_symbol { + id: 0x07508208 + name: "folio_write_one" + is_defined: true + symbol_type: FUNCTION + crc: 0x198f6eb0 + type_id: 0x95dcd734 + full_name: "folio_write_one" +} +elf_symbol { id: 0xcb14b5cc name: "follow_pfn" is_defined: true @@ -346479,6 +357949,15 @@ elf_symbol { full_name: "fortify_panic" } elf_symbol { + id: 0x5c388f41 + name: "fpsimd_context_busy" + is_defined: true + symbol_type: OBJECT + crc: 0x535be82a + type_id: 0x6d7f5ff6 + full_name: "fpsimd_context_busy" +} +elf_symbol { id: 0x93b9959a name: "fput" is_defined: true @@ -346492,7 +357971,7 @@ elf_symbol { name: "fqdir_exit" is_defined: true symbol_type: FUNCTION - crc: 0xcce67b0f + crc: 0x09580062 type_id: 0x13c2822b full_name: "fqdir_exit" } @@ -346501,7 +357980,7 @@ elf_symbol { name: "fqdir_init" is_defined: true symbol_type: FUNCTION - crc: 0x75215dfe + crc: 0x2f71efdb type_id: 0x9ffb698d full_name: "fqdir_init" } @@ -346546,7 +358025,7 @@ elf_symbol { name: "free_candev" is_defined: true symbol_type: FUNCTION - crc: 0xe5ba89d4 + crc: 0x97d0a2dd type_id: 0x1c31d966 full_name: "free_candev" } @@ -346560,6 +358039,15 @@ elf_symbol { full_name: "free_io_pgtable_ops" } elf_symbol { + id: 0x998ad938 + name: "free_iova_fast" + is_defined: true + symbol_type: FUNCTION + crc: 0xdd8c10f6 + type_id: 0x1fb862d7 + full_name: "free_iova_fast" +} +elf_symbol { id: 0x27e49ce0 name: "free_irq" is_defined: true @@ -346573,7 +358061,7 @@ elf_symbol { name: "free_netdev" is_defined: true symbol_type: FUNCTION - crc: 0x4a4ba2c9 + crc: 0xb5769105 type_id: 0x1c31d966 full_name: "free_netdev" } @@ -346758,6 +358246,15 @@ elf_symbol { full_name: "fsg_config_from_params" } elf_symbol { + id: 0xe7fde0db + name: "fsnotify" + is_defined: true + symbol_type: FUNCTION + crc: 0x382d8219 + type_id: 0xa4f69947 + full_name: "fsnotify" +} +elf_symbol { id: 0xee139066 name: "fsync_bdev" is_defined: true @@ -346785,6 +358282,15 @@ elf_symbol { full_name: "full_name_hash" } elf_symbol { + id: 0xc35e482b + name: "fwnode_create_software_node" + is_defined: true + symbol_type: FUNCTION + crc: 0xf7a29e9c + type_id: 0x34270f0c + full_name: "fwnode_create_software_node" +} +elf_symbol { id: 0x53816b02 name: "fwnode_device_is_available" is_defined: true @@ -346830,6 +358336,15 @@ elf_symbol { full_name: "fwnode_get_next_child_node" } elf_symbol { + id: 0xff713254 + name: "fwnode_get_phy_node" + is_defined: true + symbol_type: FUNCTION + crc: 0xd42ed8cf + type_id: 0x3842a55f + full_name: "fwnode_get_phy_node" +} +elf_symbol { id: 0x02e45228 name: "fwnode_gpiod_get_index" is_defined: true @@ -347163,6 +358678,24 @@ elf_symbol { full_name: "generic_device_group" } elf_symbol { + id: 0xe21d8d05 + name: "generic_error_remove_page" + is_defined: true + symbol_type: FUNCTION + crc: 0xae4d8a76 + type_id: 0x98fa4494 + full_name: "generic_error_remove_page" +} +elf_symbol { + id: 0x338cfb0f + name: "generic_file_direct_write" + is_defined: true + symbol_type: FUNCTION + crc: 0x552bc0af + type_id: 0x16637235 + full_name: "generic_file_direct_write" +} +elf_symbol { id: 0x94b60724 name: "generic_file_llseek" is_defined: true @@ -347172,6 +358705,24 @@ elf_symbol { full_name: "generic_file_llseek" } elf_symbol { + id: 0x6ac5d61b + name: "generic_file_mmap" + is_defined: true + symbol_type: FUNCTION + crc: 0xe3415064 + type_id: 0x9b923492 + full_name: "generic_file_mmap" +} +elf_symbol { + id: 0x54756210 + name: "generic_file_open" + is_defined: true + symbol_type: FUNCTION + crc: 0x62233d3d + type_id: 0x9b022eae + full_name: "generic_file_open" +} +elf_symbol { id: 0x5ec3daa8 name: "generic_file_read_iter" is_defined: true @@ -347181,6 +358732,24 @@ elf_symbol { full_name: "generic_file_read_iter" } elf_symbol { + id: 0x5530f759 + name: "generic_file_splice_read" + is_defined: true + symbol_type: FUNCTION + crc: 0xa2e84b5f + type_id: 0x12c79320 + full_name: "generic_file_splice_read" +} +elf_symbol { + id: 0x3812bb22 + name: "generic_fillattr" + is_defined: true + symbol_type: FUNCTION + crc: 0xb418cdc6 + type_id: 0x13184981 + full_name: "generic_fillattr" +} +elf_symbol { id: 0x2f7205ee name: "generic_handle_domain_irq" is_defined: true @@ -347203,7 +358772,7 @@ elf_symbol { name: "generic_mii_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0x2b86aba5 + crc: 0x47ee41ec type_id: 0x99c885a2 full_name: "generic_mii_ioctl" } @@ -347217,6 +358786,15 @@ elf_symbol { full_name: "generic_perform_write" } elf_symbol { + id: 0x4c4073c3 + name: "generic_read_dir" + is_defined: true + symbol_type: FUNCTION + crc: 0x91cfdae1 + type_id: 0x12e4741f + full_name: "generic_read_dir" +} +elf_symbol { id: 0x798f83da name: "generic_shutdown_super" is_defined: true @@ -347374,7 +358952,7 @@ elf_symbol { name: "genl_notify" is_defined: true symbol_type: FUNCTION - crc: 0x64dc741f + crc: 0x152db970 type_id: 0x1c9aeba3 full_name: "genl_notify" } @@ -347383,7 +358961,7 @@ elf_symbol { name: "genl_register_family" is_defined: true symbol_type: FUNCTION - crc: 0x24a941c5 + crc: 0x1b998c98 type_id: 0x92d3febd full_name: "genl_register_family" } @@ -347392,7 +358970,7 @@ elf_symbol { name: "genl_unregister_family" is_defined: true symbol_type: FUNCTION - crc: 0x40ab01d8 + crc: 0xfc6fbbba type_id: 0x91983762 full_name: "genl_unregister_family" } @@ -347401,7 +358979,7 @@ elf_symbol { name: "genlmsg_multicast_allns" is_defined: true symbol_type: FUNCTION - crc: 0x5c159fe7 + crc: 0xa112607c type_id: 0x91be62b0 full_name: "genlmsg_multicast_allns" } @@ -347410,7 +358988,7 @@ elf_symbol { name: "genlmsg_put" is_defined: true symbol_type: FUNCTION - crc: 0x935611e8 + crc: 0x21eefe5b type_id: 0x54d3d1f1 full_name: "genlmsg_put" } @@ -347419,7 +358997,7 @@ elf_symbol { name: "genphy_c37_config_aneg" is_defined: true symbol_type: FUNCTION - crc: 0xcddb894a + crc: 0x1ec7e28e type_id: 0x91dd4b0e full_name: "genphy_c37_config_aneg" } @@ -347428,7 +359006,7 @@ elf_symbol { name: "genphy_c37_read_status" is_defined: true symbol_type: FUNCTION - crc: 0xbffd78de + crc: 0x3f51f348 type_id: 0x91dd4b0e full_name: "genphy_c37_read_status" } @@ -347455,7 +359033,7 @@ elf_symbol { name: "genphy_handle_interrupt_no_ack" is_defined: true symbol_type: FUNCTION - crc: 0xe7eddfc5 + crc: 0x3dab897c type_id: 0x2e992cc0 full_name: "genphy_handle_interrupt_no_ack" } @@ -347464,7 +359042,7 @@ elf_symbol { name: "genphy_read_abilities" is_defined: true symbol_type: FUNCTION - crc: 0x76887cc2 + crc: 0x4675693b type_id: 0x91dd4b0e full_name: "genphy_read_abilities" } @@ -347473,7 +359051,7 @@ elf_symbol { name: "genphy_read_lpa" is_defined: true symbol_type: FUNCTION - crc: 0xcd4462ad + crc: 0x812c058e type_id: 0x91dd4b0e full_name: "genphy_read_lpa" } @@ -347482,7 +359060,7 @@ elf_symbol { name: "genphy_read_mmd_unsupported" is_defined: true symbol_type: FUNCTION - crc: 0x3c5544b7 + crc: 0x4e73c6ff type_id: 0x90659b2d full_name: "genphy_read_mmd_unsupported" } @@ -347491,7 +359069,7 @@ elf_symbol { name: "genphy_read_status" is_defined: true symbol_type: FUNCTION - crc: 0xb6097491 + crc: 0x7d119744 type_id: 0x91dd4b0e full_name: "genphy_read_status" } @@ -347500,7 +359078,7 @@ elf_symbol { name: "genphy_restart_aneg" is_defined: true symbol_type: FUNCTION - crc: 0x86be4593 + crc: 0x7fdf7cab type_id: 0x91dd4b0e full_name: "genphy_restart_aneg" } @@ -347509,7 +359087,7 @@ elf_symbol { name: "genphy_resume" is_defined: true symbol_type: FUNCTION - crc: 0x9a21588b + crc: 0x8ca306fa type_id: 0x91dd4b0e full_name: "genphy_resume" } @@ -347518,7 +359096,7 @@ elf_symbol { name: "genphy_setup_forced" is_defined: true symbol_type: FUNCTION - crc: 0x91ced987 + crc: 0xb8fd2b35 type_id: 0x91dd4b0e full_name: "genphy_setup_forced" } @@ -347527,7 +359105,7 @@ elf_symbol { name: "genphy_soft_reset" is_defined: true symbol_type: FUNCTION - crc: 0x5b000ce4 + crc: 0xcceac2c4 type_id: 0x91dd4b0e full_name: "genphy_soft_reset" } @@ -347536,7 +359114,7 @@ elf_symbol { name: "genphy_suspend" is_defined: true symbol_type: FUNCTION - crc: 0x21cc44f7 + crc: 0x6af8794f type_id: 0x91dd4b0e full_name: "genphy_suspend" } @@ -347545,7 +359123,7 @@ elf_symbol { name: "genphy_update_link" is_defined: true symbol_type: FUNCTION - crc: 0x68426b4a + crc: 0x8d9089a9 type_id: 0x91dd4b0e full_name: "genphy_update_link" } @@ -347554,7 +359132,7 @@ elf_symbol { name: "genphy_write_mmd_unsupported" is_defined: true symbol_type: FUNCTION - crc: 0xa0515689 + crc: 0xcc12e733 type_id: 0x9067de1b full_name: "genphy_write_mmd_unsupported" } @@ -347608,7 +359186,7 @@ elf_symbol { name: "get_device" is_defined: true symbol_type: FUNCTION - crc: 0x89ef29d6 + crc: 0xf181d237 type_id: 0xadb90e65 full_name: "get_device" } @@ -347654,7 +359232,7 @@ elf_symbol { name: "get_net_ns_by_fd" is_defined: true symbol_type: FUNCTION - crc: 0x100efc45 + crc: 0x6e5208e9 type_id: 0x5102ac9f full_name: "get_net_ns_by_fd" } @@ -347663,7 +359241,7 @@ elf_symbol { name: "get_net_ns_by_pid" is_defined: true symbol_type: FUNCTION - crc: 0x69d4786d + crc: 0xabbbe571 type_id: 0x5aa4ba2d full_name: "get_net_ns_by_pid" } @@ -347718,7 +359296,7 @@ elf_symbol { name: "get_pid_task" is_defined: true symbol_type: FUNCTION - crc: 0x2bf8d331 + crc: 0xecd5f222 type_id: 0x7f0f4bf3 full_name: "get_pid_task" } @@ -347809,7 +359387,7 @@ elf_symbol { name: "get_task_cred" is_defined: true symbol_type: FUNCTION - crc: 0xd8aeec40 + crc: 0xd90bd095 type_id: 0x0adc3a0d full_name: "get_task_cred" } @@ -347827,7 +359405,7 @@ elf_symbol { name: "get_task_pid" is_defined: true symbol_type: FUNCTION - crc: 0x11d2a631 + crc: 0x168e2c1a type_id: 0x2d5eecc4 full_name: "get_task_pid" } @@ -347940,6 +359518,150 @@ elf_symbol { full_name: "getboottime64" } elf_symbol { + id: 0xa7339c42 + name: "gether_cleanup" + is_defined: true + symbol_type: FUNCTION + crc: 0x8878cfa6 + type_id: 0x1ae9c33f + full_name: "gether_cleanup" +} +elf_symbol { + id: 0x23fbc3f8 + name: "gether_connect" + is_defined: true + symbol_type: FUNCTION + crc: 0xea64e647 + type_id: 0xf2708109 + full_name: "gether_connect" +} +elf_symbol { + id: 0x46e18dbd + name: "gether_disconnect" + is_defined: true + symbol_type: FUNCTION + crc: 0x1bf99a25 + type_id: 0x1e9b5d67 + full_name: "gether_disconnect" +} +elf_symbol { + id: 0xf5970852 + name: "gether_get_dev_addr" + is_defined: true + symbol_type: FUNCTION + crc: 0x557d0eb6 + type_id: 0x9122ac75 + full_name: "gether_get_dev_addr" +} +elf_symbol { + id: 0x0a3cdb4a + name: "gether_get_host_addr" + is_defined: true + symbol_type: FUNCTION + crc: 0xb4ae8361 + type_id: 0x9122ac75 + full_name: "gether_get_host_addr" +} +elf_symbol { + id: 0xdb6a18dc + name: "gether_get_host_addr_u8" + is_defined: true + symbol_type: FUNCTION + crc: 0xf8b424a5 + type_id: 0x1c32c5f2 + full_name: "gether_get_host_addr_u8" +} +elf_symbol { + id: 0x412252a6 + name: "gether_get_ifname" + is_defined: true + symbol_type: FUNCTION + crc: 0x5bd0d402 + type_id: 0x9122ac75 + full_name: "gether_get_ifname" +} +elf_symbol { + id: 0x9c589482 + name: "gether_get_qmult" + is_defined: true + symbol_type: FUNCTION + crc: 0xb460cb61 + type_id: 0xc272f60e + full_name: "gether_get_qmult" +} +elf_symbol { + id: 0x0400c852 + name: "gether_register_netdev" + is_defined: true + symbol_type: FUNCTION + crc: 0x1d6ccbe0 + type_id: 0x91296bda + full_name: "gether_register_netdev" +} +elf_symbol { + id: 0xcdcde62d + name: "gether_set_dev_addr" + is_defined: true + symbol_type: FUNCTION + crc: 0x3c2aa803 + type_id: 0x91d1290e + full_name: "gether_set_dev_addr" +} +elf_symbol { + id: 0xba5f9a53 + name: "gether_set_gadget" + is_defined: true + symbol_type: FUNCTION + crc: 0x95a29c7a + type_id: 0x1ca44d8a + full_name: "gether_set_gadget" +} +elf_symbol { + id: 0x8802e047 + name: "gether_set_host_addr" + is_defined: true + symbol_type: FUNCTION + crc: 0x0d98da0f + type_id: 0x91d1290e + full_name: "gether_set_host_addr" +} +elf_symbol { + id: 0xf7264f57 + name: "gether_set_ifname" + is_defined: true + symbol_type: FUNCTION + crc: 0xddaa7799 + type_id: 0x91c8e13a + full_name: "gether_set_ifname" +} +elf_symbol { + id: 0x370e3283 + name: "gether_set_qmult" + is_defined: true + symbol_type: FUNCTION + crc: 0xae8e571d + type_id: 0x1d27ccfe + full_name: "gether_set_qmult" +} +elf_symbol { + id: 0xe87161bc + name: "gether_setup_name_default" + is_defined: true + symbol_type: FUNCTION + crc: 0x5d7e340b + type_id: 0xf3f7a0bb + full_name: "gether_setup_name_default" +} +elf_symbol { + id: 0x112db471 + name: "gf128mul_lle" + is_defined: true + symbol_type: FUNCTION + crc: 0x9e13f6f6 + type_id: 0x1ad943f1 + full_name: "gf128mul_lle" +} +elf_symbol { id: 0xfe79963a name: "gfn_to_pfn_memslot" is_defined: true @@ -347980,8 +359702,8 @@ elf_symbol { name: "gh_rm_register_platform_ops" is_defined: true symbol_type: FUNCTION - crc: 0xc34a7803 - type_id: 0x921f607b + crc: 0xfd11885c + type_id: 0x91ab10d3 full_name: "gh_rm_register_platform_ops" } elf_symbol { @@ -347989,8 +359711,8 @@ elf_symbol { name: "gh_rm_unregister_platform_ops" is_defined: true symbol_type: FUNCTION - crc: 0xc1f09d18 - type_id: 0x1f07d2c7 + crc: 0x057f483b + type_id: 0x1cb3a26f full_name: "gh_rm_unregister_platform_ops" } elf_symbol { @@ -348264,6 +359986,15 @@ elf_symbol { full_name: "gpiochip_populate_parent_fwspec_fourcell" } elf_symbol { + id: 0x14b7a009 + name: "gpiochip_relres_irq" + is_defined: true + symbol_type: FUNCTION + crc: 0x9c82d602 + type_id: 0x17b7d7d6 + full_name: "gpiochip_relres_irq" +} +elf_symbol { id: 0x7dd9e61e name: "gpiochip_remove" is_defined: true @@ -348273,6 +360004,15 @@ elf_symbol { full_name: "gpiochip_remove" } elf_symbol { + id: 0x30903940 + name: "gpiochip_reqres_irq" + is_defined: true + symbol_type: FUNCTION + crc: 0x920467d8 + type_id: 0x9aaf656a + full_name: "gpiochip_reqres_irq" +} +elf_symbol { id: 0x77a0ab63 name: "gpiochip_unlock_as_irq" is_defined: true @@ -348489,11 +360229,20 @@ elf_symbol { full_name: "gpiod_to_irq" } elf_symbol { + id: 0x085aa99f + name: "grab_cache_page_write_begin" + is_defined: true + symbol_type: FUNCTION + crc: 0xb2975faa + type_id: 0xb8358fd3 + full_name: "grab_cache_page_write_begin" +} +elf_symbol { id: 0x4dcdd24d name: "gre_add_protocol" is_defined: true symbol_type: FUNCTION - crc: 0xb5a0942b + crc: 0x06b80249 type_id: 0x92801eb4 full_name: "gre_add_protocol" } @@ -348502,7 +360251,7 @@ elf_symbol { name: "gre_del_protocol" is_defined: true symbol_type: FUNCTION - crc: 0xfb0887b8 + crc: 0xdc8308a3 type_id: 0x92801eb4 full_name: "gre_del_protocol" } @@ -348520,7 +360269,7 @@ elf_symbol { name: "gro_cells_init" is_defined: true symbol_type: FUNCTION - crc: 0xfce9f3ec + crc: 0xadf066b5 type_id: 0x96fd9031 full_name: "gro_cells_init" } @@ -348529,7 +360278,7 @@ elf_symbol { name: "gro_cells_receive" is_defined: true symbol_type: FUNCTION - crc: 0xf76d626d + crc: 0x7ec2e930 type_id: 0x9622351a full_name: "gro_cells_receive" } @@ -348628,7 +360377,7 @@ elf_symbol { name: "h4_recv_buf" is_defined: true symbol_type: FUNCTION - crc: 0x2f64af89 + crc: 0x348e0aad type_id: 0x6ff47396 full_name: "h4_recv_buf" } @@ -348727,7 +360476,7 @@ elf_symbol { name: "hci_alloc_dev_priv" is_defined: true symbol_type: FUNCTION - crc: 0xc84f9792 + crc: 0x75e4ad4d type_id: 0x9502ce9c full_name: "hci_alloc_dev_priv" } @@ -348736,7 +360485,7 @@ elf_symbol { name: "hci_cmd_sync" is_defined: true symbol_type: FUNCTION - crc: 0xdd03ce38 + crc: 0x8c23a80e type_id: 0x6d996ee0 full_name: "hci_cmd_sync" } @@ -348745,7 +360494,7 @@ elf_symbol { name: "hci_cmd_sync_cancel" is_defined: true symbol_type: FUNCTION - crc: 0xdb844181 + crc: 0x04743a79 type_id: 0x167427d5 full_name: "hci_cmd_sync_cancel" } @@ -348754,7 +360503,7 @@ elf_symbol { name: "hci_cmd_sync_queue" is_defined: true symbol_type: FUNCTION - crc: 0xe5212750 + crc: 0x6dd2fc21 type_id: 0x9b91c1d8 full_name: "hci_cmd_sync_queue" } @@ -348763,7 +360512,7 @@ elf_symbol { name: "hci_conn_check_secure" is_defined: true symbol_type: FUNCTION - crc: 0x3bf47fef + crc: 0xc9c8c6fe type_id: 0x958cf238 full_name: "hci_conn_check_secure" } @@ -348772,7 +360521,7 @@ elf_symbol { name: "hci_conn_security" is_defined: true symbol_type: FUNCTION - crc: 0xd7c8479f + crc: 0x52e1a228 type_id: 0x95a1be2b full_name: "hci_conn_security" } @@ -348781,7 +360530,7 @@ elf_symbol { name: "hci_conn_switch_role" is_defined: true symbol_type: FUNCTION - crc: 0x26392ef5 + crc: 0x78bdce3f type_id: 0x958cf238 full_name: "hci_conn_switch_role" } @@ -348790,7 +360539,7 @@ elf_symbol { name: "hci_free_dev" is_defined: true symbol_type: FUNCTION - crc: 0x8a2bb2f8 + crc: 0x46b3e1b5 type_id: 0x17e8a499 full_name: "hci_free_dev" } @@ -348799,7 +360548,7 @@ elf_symbol { name: "hci_get_route" is_defined: true symbol_type: FUNCTION - crc: 0xb7fb5c92 + crc: 0x8b6af8db type_id: 0x8493c696 full_name: "hci_get_route" } @@ -348808,7 +360557,7 @@ elf_symbol { name: "hci_mgmt_chan_register" is_defined: true symbol_type: FUNCTION - crc: 0x4d715f3d + crc: 0xd2e8db95 type_id: 0x9a299233 full_name: "hci_mgmt_chan_register" } @@ -348817,7 +360566,7 @@ elf_symbol { name: "hci_mgmt_chan_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x3e947308 + crc: 0x1deb2107 type_id: 0x1731208f full_name: "hci_mgmt_chan_unregister" } @@ -348826,7 +360575,7 @@ elf_symbol { name: "hci_recv_diag" is_defined: true symbol_type: FUNCTION - crc: 0x0f3f86bc + crc: 0xac3e019a type_id: 0x9ae52b81 full_name: "hci_recv_diag" } @@ -348835,7 +360584,7 @@ elf_symbol { name: "hci_recv_frame" is_defined: true symbol_type: FUNCTION - crc: 0x5eddccf3 + crc: 0x2f0004dc type_id: 0x9ae52b81 full_name: "hci_recv_frame" } @@ -348844,7 +360593,7 @@ elf_symbol { name: "hci_register_cb" is_defined: true symbol_type: FUNCTION - crc: 0xde12775c + crc: 0xc0fef9b8 type_id: 0x9684db0e full_name: "hci_register_cb" } @@ -348853,7 +360602,7 @@ elf_symbol { name: "hci_register_dev" is_defined: true symbol_type: FUNCTION - crc: 0x584400c2 + crc: 0xeafcc152 type_id: 0x9af01625 full_name: "hci_register_dev" } @@ -348862,7 +360611,7 @@ elf_symbol { name: "hci_release_dev" is_defined: true symbol_type: FUNCTION - crc: 0x19527a31 + crc: 0x83de4b95 type_id: 0x17e8a499 full_name: "hci_release_dev" } @@ -348871,7 +360620,7 @@ elf_symbol { name: "hci_reset_dev" is_defined: true symbol_type: FUNCTION - crc: 0x962b4381 + crc: 0xd0999dcb type_id: 0x9af01625 full_name: "hci_reset_dev" } @@ -348880,7 +360629,7 @@ elf_symbol { name: "hci_resume_dev" is_defined: true symbol_type: FUNCTION - crc: 0xfaa0ac4b + crc: 0x3d17515f type_id: 0x9af01625 full_name: "hci_resume_dev" } @@ -348889,7 +360638,7 @@ elf_symbol { name: "hci_set_fw_info" is_defined: true symbol_type: FUNCTION - crc: 0xfb46de1b + crc: 0xb45bfbb5 type_id: 0x1739accf full_name: "hci_set_fw_info" } @@ -348898,7 +360647,7 @@ elf_symbol { name: "hci_set_hw_info" is_defined: true symbol_type: FUNCTION - crc: 0x9e3d051e + crc: 0xb5477294 type_id: 0x1739accf full_name: "hci_set_hw_info" } @@ -348907,7 +360656,7 @@ elf_symbol { name: "hci_suspend_dev" is_defined: true symbol_type: FUNCTION - crc: 0xeb351e09 + crc: 0xcdd6b9d0 type_id: 0x9af01625 full_name: "hci_suspend_dev" } @@ -348916,7 +360665,7 @@ elf_symbol { name: "hci_uart_register_device" is_defined: true symbol_type: FUNCTION - crc: 0x6fc1cbe3 + crc: 0x5d81e7f6 type_id: 0x959a93b5 full_name: "hci_uart_register_device" } @@ -348925,7 +360674,7 @@ elf_symbol { name: "hci_uart_tx_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0xa10e20ef + crc: 0xec73ca35 type_id: 0x9553fb18 full_name: "hci_uart_tx_wakeup" } @@ -348934,7 +360683,7 @@ elf_symbol { name: "hci_uart_unregister_device" is_defined: true symbol_type: FUNCTION - crc: 0x04ca1783 + crc: 0x7ca9fad0 type_id: 0x184b49a4 full_name: "hci_uart_unregister_device" } @@ -348943,7 +360692,7 @@ elf_symbol { name: "hci_unregister_cb" is_defined: true symbol_type: FUNCTION - crc: 0x80eec84d + crc: 0x8b90629a type_id: 0x9684db0e full_name: "hci_unregister_cb" } @@ -348952,7 +360701,7 @@ elf_symbol { name: "hci_unregister_dev" is_defined: true symbol_type: FUNCTION - crc: 0x69376833 + crc: 0x6554264c type_id: 0x17e8a499 full_name: "hci_unregister_dev" } @@ -349002,6 +360751,15 @@ elf_symbol { full_name: "hdmi_avi_infoframe_pack" } elf_symbol { + id: 0x4e8277c6 + name: "hdmi_avi_infoframe_pack_only" + is_defined: true + symbol_type: FUNCTION + crc: 0x2ee4c2b1 + type_id: 0x1a42044c + full_name: "hdmi_avi_infoframe_pack_only" +} +elf_symbol { id: 0x7ec10e18 name: "hdmi_drm_infoframe_init" is_defined: true @@ -349110,6 +360868,15 @@ elf_symbol { full_name: "hid_allocate_device" } elf_symbol { + id: 0xa832c6f3 + name: "hid_debug" + is_defined: true + symbol_type: OBJECT + crc: 0x05495392 + type_id: 0x6720d32f + full_name: "hid_debug" +} +elf_symbol { id: 0x2ffc7c7e name: "hid_destroy_device" is_defined: true @@ -349119,6 +360886,87 @@ elf_symbol { full_name: "hid_destroy_device" } elf_symbol { + id: 0x1706be22 + name: "hid_driver_reset_resume" + is_defined: true + symbol_type: FUNCTION + crc: 0x38266a07 + type_id: 0x9ef9d283 + full_name: "hid_driver_reset_resume" +} +elf_symbol { + id: 0x4c3911f0 + name: "hid_driver_suspend" + is_defined: true + symbol_type: FUNCTION + crc: 0x63c99127 + type_id: 0x9d398c85 + full_name: "hid_driver_suspend" +} +elf_symbol { + id: 0x8717f26f + name: "hid_hw_close" + is_defined: true + symbol_type: FUNCTION + crc: 0xffa28586 + type_id: 0x13e1603f + full_name: "hid_hw_close" +} +elf_symbol { + id: 0x361004c8 + name: "hid_hw_open" + is_defined: true + symbol_type: FUNCTION + crc: 0x83abbb03 + type_id: 0x9ef9d283 + full_name: "hid_hw_open" +} +elf_symbol { + id: 0xcf5ea9a2 + name: "hid_hw_output_report" + is_defined: true + symbol_type: FUNCTION + crc: 0x8f5731d2 + type_id: 0x9e5d7885 + full_name: "hid_hw_output_report" +} +elf_symbol { + id: 0x6c303862 + name: "hid_hw_raw_request" + is_defined: true + symbol_type: FUNCTION + crc: 0x1754ea42 + type_id: 0x9f85a1ff + full_name: "hid_hw_raw_request" +} +elf_symbol { + id: 0x553bc5f3 + name: "hid_hw_request" + is_defined: true + symbol_type: FUNCTION + crc: 0xe88265d4 + type_id: 0x137a1cdc + full_name: "hid_hw_request" +} +elf_symbol { + id: 0xfba34655 + name: "hid_hw_start" + is_defined: true + symbol_type: FUNCTION + crc: 0x80c181b3 + type_id: 0x9fefc71b + full_name: "hid_hw_start" +} +elf_symbol { + id: 0x52d444b1 + name: "hid_hw_stop" + is_defined: true + symbol_type: FUNCTION + crc: 0x109cf170 + type_id: 0x13e1603f + full_name: "hid_hw_stop" +} +elf_symbol { id: 0x7d0e44ca name: "hid_ignore" is_defined: true @@ -349137,6 +360985,15 @@ elf_symbol { full_name: "hid_input_report" } elf_symbol { + id: 0x0eb11e95 + name: "hid_open_report" + is_defined: true + symbol_type: FUNCTION + crc: 0x99072c9a + type_id: 0x9ef9d283 + full_name: "hid_open_report" +} +elf_symbol { id: 0x6ca4d0ed name: "hid_parse_report" is_defined: true @@ -349146,11 +361003,38 @@ elf_symbol { full_name: "hid_parse_report" } elf_symbol { + id: 0x741d5af7 + name: "hid_report_raw_event" + is_defined: true + symbol_type: FUNCTION + crc: 0x358ef5ff + type_id: 0x9d13a27c + full_name: "hid_report_raw_event" +} +elf_symbol { + id: 0x6e37f09d + name: "hid_unregister_driver" + is_defined: true + symbol_type: FUNCTION + crc: 0xe1767c20 + type_id: 0x104da524 + full_name: "hid_unregister_driver" +} +elf_symbol { + id: 0x29d6d842 + name: "hid_validate_values" + is_defined: true + symbol_type: FUNCTION + crc: 0x67c1cd41 + type_id: 0xe10f9802 + full_name: "hid_validate_values" +} +elf_symbol { id: 0x21d35235 name: "hidp_hid_driver" is_defined: true symbol_type: OBJECT - crc: 0x3c457fad + crc: 0xddb0b03b type_id: 0x2def15e8 full_name: "hidp_hid_driver" } @@ -350046,6 +361930,15 @@ elf_symbol { full_name: "icc_sync_state" } elf_symbol { + id: 0x309b98f1 + name: "icmp6_send" + is_defined: true + symbol_type: FUNCTION + crc: 0xa41c6eed + type_id: 0x11673bbb + full_name: "icmp6_send" +} +elf_symbol { id: 0x58de8ff6 name: "ida_alloc_range" is_defined: true @@ -350176,7 +362069,7 @@ elf_symbol { name: "ieee802154_alloc_hw" is_defined: true symbol_type: FUNCTION - crc: 0x8143e10c + crc: 0xb6142068 type_id: 0x53d7cb1d full_name: "ieee802154_alloc_hw" } @@ -350185,7 +362078,7 @@ elf_symbol { name: "ieee802154_configure_durations" is_defined: true symbol_type: FUNCTION - crc: 0x2c0bd04c + crc: 0x94de3220 type_id: 0x1af18e52 full_name: "ieee802154_configure_durations" } @@ -350194,7 +362087,7 @@ elf_symbol { name: "ieee802154_free_hw" is_defined: true symbol_type: FUNCTION - crc: 0x86dab361 + crc: 0xd51b4e71 type_id: 0x12d46025 full_name: "ieee802154_free_hw" } @@ -350203,7 +362096,7 @@ elf_symbol { name: "ieee802154_hdr_peek" is_defined: true symbol_type: FUNCTION - crc: 0xbc36d5af + crc: 0xe130fb3d type_id: 0x92f9a820 full_name: "ieee802154_hdr_peek" } @@ -350212,7 +362105,7 @@ elf_symbol { name: "ieee802154_hdr_peek_addrs" is_defined: true symbol_type: FUNCTION - crc: 0x8a32d151 + crc: 0xe67ef397 type_id: 0x92f9a820 full_name: "ieee802154_hdr_peek_addrs" } @@ -350221,7 +362114,7 @@ elf_symbol { name: "ieee802154_hdr_pull" is_defined: true symbol_type: FUNCTION - crc: 0xbe7fcedf + crc: 0xc5b881fe type_id: 0x9c3297de full_name: "ieee802154_hdr_pull" } @@ -350230,7 +362123,7 @@ elf_symbol { name: "ieee802154_hdr_push" is_defined: true symbol_type: FUNCTION - crc: 0x42c85632 + crc: 0xcba810a5 type_id: 0x9c3297de full_name: "ieee802154_hdr_push" } @@ -350248,7 +362141,7 @@ elf_symbol { name: "ieee802154_register_hw" is_defined: true symbol_type: FUNCTION - crc: 0x9379a7fb + crc: 0x0e635775 type_id: 0x9fccd299 full_name: "ieee802154_register_hw" } @@ -350257,7 +362150,7 @@ elf_symbol { name: "ieee802154_rx_irqsafe" is_defined: true symbol_type: FUNCTION - crc: 0x386008f9 + crc: 0x46b6ad46 type_id: 0x12cb0a9d full_name: "ieee802154_rx_irqsafe" } @@ -350266,7 +362159,7 @@ elf_symbol { name: "ieee802154_stop_queue" is_defined: true symbol_type: FUNCTION - crc: 0x2c692ac8 + crc: 0xe8864751 type_id: 0x12d46025 full_name: "ieee802154_stop_queue" } @@ -350275,7 +362168,7 @@ elf_symbol { name: "ieee802154_unregister_hw" is_defined: true symbol_type: FUNCTION - crc: 0x4ba52ece + crc: 0x4c1a0b7f type_id: 0x12d46025 full_name: "ieee802154_unregister_hw" } @@ -350284,7 +362177,7 @@ elf_symbol { name: "ieee802154_wake_queue" is_defined: true symbol_type: FUNCTION - crc: 0x635ec1b3 + crc: 0x009f6ef2 type_id: 0x12d46025 full_name: "ieee802154_wake_queue" } @@ -350293,7 +362186,7 @@ elf_symbol { name: "ieee802154_xmit_complete" is_defined: true symbol_type: FUNCTION - crc: 0x2ca73e2d + crc: 0xf1cb8c75 type_id: 0x12da0256 full_name: "ieee802154_xmit_complete" } @@ -350302,7 +362195,7 @@ elf_symbol { name: "ieee802154_xmit_error" is_defined: true symbol_type: FUNCTION - crc: 0xb7a36c07 + crc: 0x8e499608 type_id: 0x12d895b5 full_name: "ieee802154_xmit_error" } @@ -350311,11 +362204,20 @@ elf_symbol { name: "ieee802154_xmit_hw_error" is_defined: true symbol_type: FUNCTION - crc: 0xc0b0c68b + crc: 0xe18257bc type_id: 0x12c15d81 full_name: "ieee802154_xmit_hw_error" } elf_symbol { + id: 0xb9f64e9d + name: "iget5_locked" + is_defined: true + symbol_type: FUNCTION + crc: 0xcccf338c + type_id: 0x1210c1fa + full_name: "iget5_locked" +} +elf_symbol { id: 0x4a5f3d41 name: "ignore_console_lock_warning" is_defined: true @@ -350325,6 +362227,24 @@ elf_symbol { full_name: "ignore_console_lock_warning" } elf_symbol { + id: 0x4292b79d + name: "igrab" + is_defined: true + symbol_type: FUNCTION + crc: 0x49b765c7 + type_id: 0x1d8c491d + full_name: "igrab" +} +elf_symbol { + id: 0xb779176d + name: "ihold" + is_defined: true + symbol_type: FUNCTION + crc: 0xaafc22eb + type_id: 0x167935b9 + full_name: "ihold" +} +elf_symbol { id: 0x98a39db9 name: "iio_alloc_pollfunc" is_defined: true @@ -350379,6 +362299,15 @@ elf_symbol { full_name: "iio_channel_get" } elf_symbol { + id: 0x0b446726 + name: "iio_channel_get_all" + is_defined: true + symbol_type: FUNCTION + crc: 0x30387314 + type_id: 0xa974af20 + full_name: "iio_channel_get_all" +} +elf_symbol { id: 0x8aa99af0 name: "iio_channel_release" is_defined: true @@ -350388,6 +362317,15 @@ elf_symbol { full_name: "iio_channel_release" } elf_symbol { + id: 0x5ecdc560 + name: "iio_channel_release_all" + is_defined: true + symbol_type: FUNCTION + crc: 0x47935be9 + type_id: 0x1ef16b9c + full_name: "iio_channel_release_all" +} +elf_symbol { id: 0x7ee06725 name: "iio_dealloc_pollfunc" is_defined: true @@ -350631,6 +362569,15 @@ elf_symbol { full_name: "iio_trigger_unregister" } elf_symbol { + id: 0xdf3e8655 + name: "iio_update_buffers" + is_defined: true + symbol_type: FUNCTION + crc: 0x7cc9b292 + type_id: 0x9b15020e + full_name: "iio_update_buffers" +} +elf_symbol { id: 0x6f2f4bd1 name: "iio_write_channel_raw" is_defined: true @@ -350640,6 +362587,15 @@ elf_symbol { full_name: "iio_write_channel_raw" } elf_symbol { + id: 0xf87ecda4 + name: "ilookup5" + is_defined: true + symbol_type: FUNCTION + crc: 0x3c5a783a + type_id: 0x12101463 + full_name: "ilookup5" +} +elf_symbol { id: 0x00b4d2da name: "import_iovec" is_defined: true @@ -350658,6 +362614,15 @@ elf_symbol { full_name: "in4_pton" } elf_symbol { + id: 0xcc6510bd + name: "in6_dev_finish_destroy" + is_defined: true + symbol_type: FUNCTION + crc: 0x71b83d03 + type_id: 0x1e704726 + full_name: "in6_dev_finish_destroy" +} +elf_symbol { id: 0xc93c3b7d name: "in6_pton" is_defined: true @@ -350694,6 +362659,24 @@ elf_symbol { full_name: "in_egroup_p" } elf_symbol { + id: 0x63d665a4 + name: "in_group_p" + is_defined: true + symbol_type: FUNCTION + crc: 0x8b8059bd + type_id: 0xb1b78fab + full_name: "in_group_p" +} +elf_symbol { + id: 0x8efc83b2 + name: "inc_nlink" + is_defined: true + symbol_type: FUNCTION + crc: 0xd16fc9d0 + type_id: 0x167935b9 + full_name: "inc_nlink" +} +elf_symbol { id: 0x53baed4c name: "inc_node_page_state" is_defined: true @@ -350716,7 +362699,7 @@ elf_symbol { name: "inet6_csk_xmit" is_defined: true symbol_type: FUNCTION - crc: 0x2456f61e + crc: 0x133c1612 type_id: 0x9ac293c4 full_name: "inet6_csk_xmit" } @@ -350725,7 +362708,7 @@ elf_symbol { name: "inet6_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0x6883195e + crc: 0x81d46c70 type_id: 0x9882219f full_name: "inet6_ioctl" } @@ -350734,7 +362717,7 @@ elf_symbol { name: "inet_csk_get_port" is_defined: true symbol_type: FUNCTION - crc: 0x5ca3114e + crc: 0x2a4d24d9 type_id: 0x99f517b1 full_name: "inet_csk_get_port" } @@ -350743,7 +362726,7 @@ elf_symbol { name: "inet_frag_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x01db2005 + crc: 0xfe4dc306 type_id: 0x1edcf3e9 full_name: "inet_frag_destroy" } @@ -350752,7 +362735,7 @@ elf_symbol { name: "inet_frag_find" is_defined: true symbol_type: FUNCTION - crc: 0xaec86066 + crc: 0x87588b1d type_id: 0x51a0e42b full_name: "inet_frag_find" } @@ -350761,7 +362744,7 @@ elf_symbol { name: "inet_frag_kill" is_defined: true symbol_type: FUNCTION - crc: 0xe7968505 + crc: 0x39fd139c type_id: 0x1edcf3e9 full_name: "inet_frag_kill" } @@ -350770,7 +362753,7 @@ elf_symbol { name: "inet_frag_queue_insert" is_defined: true symbol_type: FUNCTION - crc: 0xca625092 + crc: 0x8ee8b549 type_id: 0x93c92846 full_name: "inet_frag_queue_insert" } @@ -350779,7 +362762,7 @@ elf_symbol { name: "inet_frag_reasm_finish" is_defined: true symbol_type: FUNCTION - crc: 0xc238dab1 + crc: 0xb88cfb0e type_id: 0x1ece54e9 full_name: "inet_frag_reasm_finish" } @@ -350788,7 +362771,7 @@ elf_symbol { name: "inet_frag_reasm_prepare" is_defined: true symbol_type: FUNCTION - crc: 0xb89ac7cf + crc: 0x478dbb9a type_id: 0x58c67df5 full_name: "inet_frag_reasm_prepare" } @@ -350797,7 +362780,7 @@ elf_symbol { name: "inet_frags_fini" is_defined: true symbol_type: FUNCTION - crc: 0xa3068d66 + crc: 0x970d6b0a type_id: 0x1039da16 full_name: "inet_frags_fini" } @@ -350806,7 +362789,7 @@ elf_symbol { name: "inet_frags_init" is_defined: true symbol_type: FUNCTION - crc: 0xd2f58177 + crc: 0xba6f3ff6 type_id: 0x9d2168aa full_name: "inet_frags_init" } @@ -350815,16 +362798,34 @@ elf_symbol { name: "inet_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0x5a525c29 + crc: 0x4a5645e2 type_id: 0x9882219f full_name: "inet_ioctl" } elf_symbol { + id: 0x601b2cac + name: "inet_proto_csum_replace4" + is_defined: true + symbol_type: FUNCTION + crc: 0x8ea3f5f8 + type_id: 0x1f0df99a + full_name: "inet_proto_csum_replace4" +} +elf_symbol { + id: 0xea35f0d0 + name: "inet_select_addr" + is_defined: true + symbol_type: FUNCTION + crc: 0xb4915426 + type_id: 0x03ec98c8 + full_name: "inet_select_addr" +} +elf_symbol { id: 0x7ded1ffe name: "init_dummy_netdev" is_defined: true symbol_type: FUNCTION - crc: 0x9cf4f680 + crc: 0xc87c64e6 type_id: 0x91296bda full_name: "init_dummy_netdev" } @@ -350842,7 +362843,7 @@ elf_symbol { name: "init_net" is_defined: true symbol_type: OBJECT - crc: 0x4122bee9 + crc: 0xe139b2bb type_id: 0x18c93498 full_name: "init_net" } @@ -350860,7 +362861,7 @@ elf_symbol { name: "init_pid_ns" is_defined: true symbol_type: OBJECT - crc: 0xdddd7433 + crc: 0x02820c79 type_id: 0x02240842 full_name: "init_pid_ns" } @@ -350874,6 +362875,15 @@ elf_symbol { full_name: "init_pseudo" } elf_symbol { + id: 0xa64f3c31 + name: "init_special_inode" + is_defined: true + symbol_type: FUNCTION + crc: 0x0b1432c5 + type_id: 0x160abbb8 + full_name: "init_special_inode" +} +elf_symbol { id: 0x7dce8737 name: "init_srcu_struct" is_defined: true @@ -350887,7 +362897,7 @@ elf_symbol { name: "init_task" is_defined: true symbol_type: OBJECT - crc: 0x999445fa + crc: 0xd567d551 type_id: 0x5e2641cb full_name: "init_task" } @@ -350937,6 +362947,60 @@ elf_symbol { full_name: "init_wait_var_entry" } elf_symbol { + id: 0x7a805e08 + name: "inode_dio_wait" + is_defined: true + symbol_type: FUNCTION + crc: 0xe5edf4d7 + type_id: 0x167935b9 + full_name: "inode_dio_wait" +} +elf_symbol { + id: 0x318d9226 + name: "inode_init_once" + is_defined: true + symbol_type: FUNCTION + crc: 0xfcba10c7 + type_id: 0x167935b9 + full_name: "inode_init_once" +} +elf_symbol { + id: 0x4e9dfa3b + name: "inode_init_owner" + is_defined: true + symbol_type: FUNCTION + crc: 0x2924f2e6 + type_id: 0x13129118 + full_name: "inode_init_owner" +} +elf_symbol { + id: 0x7c74ccbc + name: "inode_maybe_inc_iversion" + is_defined: true + symbol_type: FUNCTION + crc: 0xb431e564 + type_id: 0xf9f0c251 + full_name: "inode_maybe_inc_iversion" +} +elf_symbol { + id: 0xf4ae7c22 + name: "inode_newsize_ok" + is_defined: true + symbol_type: FUNCTION + crc: 0x3ee4bf76 + type_id: 0x936a3614 + full_name: "inode_newsize_ok" +} +elf_symbol { + id: 0x2b7e86c2 + name: "inode_set_flags" + is_defined: true + symbol_type: FUNCTION + crc: 0x6d364533 + type_id: 0x177e4178 + full_name: "inode_set_flags" +} +elf_symbol { id: 0x18eeb52f name: "input_alloc_absinfo" is_defined: true @@ -351153,6 +363217,15 @@ elf_symbol { full_name: "input_set_capability" } elf_symbol { + id: 0x31a5a9d7 + name: "input_set_poll_interval" + is_defined: true + symbol_type: FUNCTION + crc: 0xaf8d6e4f + type_id: 0x159ef67f + full_name: "input_set_poll_interval" +} +elf_symbol { id: 0xfa66175a name: "input_set_timestamp" is_defined: true @@ -351162,6 +363235,15 @@ elf_symbol { full_name: "input_set_timestamp" } elf_symbol { + id: 0x3975a1c8 + name: "input_setup_polling" + is_defined: true + symbol_type: FUNCTION + crc: 0xe6795292 + type_id: 0x99ae995e + full_name: "input_setup_polling" +} +elf_symbol { id: 0x6a48a444 name: "input_unregister_device" is_defined: true @@ -351198,6 +363280,15 @@ elf_symbol { full_name: "insert_resource" } elf_symbol { + id: 0xcec28ada + name: "int_active_memcg" + is_defined: true + symbol_type: OBJECT + crc: 0x6f91b30c + type_id: 0x1d5bae2a + full_name: "int_active_memcg" +} +elf_symbol { id: 0xbd83f7de name: "int_pow" is_defined: true @@ -351261,6 +363352,24 @@ elf_symbol { full_name: "interval_tree_remove" } elf_symbol { + id: 0x22167fe7 + name: "invalidate_bdev" + is_defined: true + symbol_type: FUNCTION + crc: 0xe6a5cbed + type_id: 0x1393d7c4 + full_name: "invalidate_bdev" +} +elf_symbol { + id: 0x38472bf4 + name: "invalidate_inode_pages2_range" + is_defined: true + symbol_type: FUNCTION + crc: 0x91936719 + type_id: 0x98214125 + full_name: "invalidate_inode_pages2_range" +} +elf_symbol { id: 0xc3e2d4ae name: "invalidate_mapping_pages" is_defined: true @@ -351297,6 +363406,15 @@ elf_symbol { full_name: "io_schedule_timeout" } elf_symbol { + id: 0xfe45d0d9 + name: "ioc_find_get_icq" + is_defined: true + symbol_type: FUNCTION + crc: 0x91ab2f0b + type_id: 0xd9de6af9 + full_name: "ioc_find_get_icq" +} +elf_symbol { id: 0xffca97cd name: "ioc_lookup_icq" is_defined: true @@ -351369,6 +363487,15 @@ elf_symbol { full_name: "iommu_detach_device_pasid" } elf_symbol { + id: 0xc578c7af + name: "iommu_detach_group" + is_defined: true + symbol_type: FUNCTION + crc: 0x41cce3f8 + type_id: 0x1b18b5bc + full_name: "iommu_detach_group" +} +elf_symbol { id: 0x4c05b91e name: "iommu_dev_disable_feature" is_defined: true @@ -351549,6 +363676,15 @@ elf_symbol { full_name: "iommu_group_ref_get" } elf_symbol { + id: 0x87342c78 + name: "iommu_group_remove_device" + is_defined: true + symbol_type: FUNCTION + crc: 0x65e2cdf3 + type_id: 0x100e6fc8 + full_name: "iommu_group_remove_device" +} +elf_symbol { id: 0x1f9ceb72 name: "iommu_group_set_iommudata" is_defined: true @@ -351585,6 +363721,15 @@ elf_symbol { full_name: "iommu_map" } elf_symbol { + id: 0x3d770021 + name: "iommu_map_atomic" + is_defined: true + symbol_type: FUNCTION + crc: 0xf6ea81c3 + type_id: 0x96c4a3ba + full_name: "iommu_map_atomic" +} +elf_symbol { id: 0x21c33dfe name: "iommu_map_sg" is_defined: true @@ -351684,6 +363829,33 @@ elf_symbol { full_name: "iounmap" } elf_symbol { + id: 0x382b3272 + name: "iov_iter_advance" + is_defined: true + symbol_type: FUNCTION + crc: 0x4a850157 + type_id: 0x189472bc + full_name: "iov_iter_advance" +} +elf_symbol { + id: 0x29ecb8e9 + name: "iov_iter_alignment" + is_defined: true + symbol_type: FUNCTION + crc: 0xd13c0fd5 + type_id: 0x3c97e3d9 + full_name: "iov_iter_alignment" +} +elf_symbol { + id: 0x3d6623cb + name: "iov_iter_get_pages2" + is_defined: true + symbol_type: FUNCTION + crc: 0x43784624 + type_id: 0x1f3dc21f + full_name: "iov_iter_get_pages2" +} +elf_symbol { id: 0x71726a83 name: "iov_iter_init" is_defined: true @@ -351711,20 +363883,47 @@ elf_symbol { full_name: "iov_iter_revert" } elf_symbol { + id: 0x1c2c7614 + name: "iov_iter_single_seg_count" + is_defined: true + symbol_type: FUNCTION + crc: 0x1c396b24 + type_id: 0x9a04e7d8 + full_name: "iov_iter_single_seg_count" +} +elf_symbol { + id: 0x6c6beb07 + name: "iova_domain_init_rcaches" + is_defined: true + symbol_type: FUNCTION + crc: 0x0ff6a3a3 + type_id: 0x9261d8a0 + full_name: "iova_domain_init_rcaches" +} +elf_symbol { id: 0x1be0f35f name: "ip6_dst_hoplimit" is_defined: true symbol_type: FUNCTION - crc: 0x617935ee + crc: 0x2574d8a8 type_id: 0x99169bf2 full_name: "ip6_dst_hoplimit" } elf_symbol { + id: 0xd9fe9b1d + name: "ip6_find_1stfragopt" + is_defined: true + symbol_type: FUNCTION + crc: 0xf459168d + type_id: 0x9cf9beaa + full_name: "ip6_find_1stfragopt" +} +elf_symbol { id: 0x5a7fbd45 name: "ip6_local_out" is_defined: true symbol_type: FUNCTION - crc: 0xa29e48e5 + crc: 0x33d05c76 type_id: 0x9edc3d1c full_name: "ip6_local_out" } @@ -351733,11 +363932,20 @@ elf_symbol { name: "ip6_route_me_harder" is_defined: true symbol_type: FUNCTION - crc: 0x4a76287a + crc: 0x8ddb6625 type_id: 0x9edc3d1c full_name: "ip6_route_me_harder" } elf_symbol { + id: 0x807f9d22 + name: "ip6_route_output_flags" + is_defined: true + symbol_type: FUNCTION + crc: 0xc7f6396b + type_id: 0xa22a22cc + full_name: "ip6_route_output_flags" +} +elf_symbol { id: 0x6cd920cf name: "ip_compute_csum" is_defined: true @@ -351747,11 +363955,20 @@ elf_symbol { full_name: "ip_compute_csum" } elf_symbol { + id: 0x333700e4 + name: "ip_local_deliver" + is_defined: true + symbol_type: FUNCTION + crc: 0x20dcb3a1 + type_id: 0x9cd33969 + full_name: "ip_local_deliver" +} +elf_symbol { id: 0x5234b1b5 name: "ip_local_out" is_defined: true symbol_type: FUNCTION - crc: 0xd4c65a83 + crc: 0x81daeed1 type_id: 0x9edc3d1c full_name: "ip_local_out" } @@ -351760,7 +363977,7 @@ elf_symbol { name: "ip_mc_join_group" is_defined: true symbol_type: FUNCTION - crc: 0x96205ed5 + crc: 0xf307233c type_id: 0x9a03c4d6 full_name: "ip_mc_join_group" } @@ -351769,7 +363986,7 @@ elf_symbol { name: "ip_queue_xmit" is_defined: true symbol_type: FUNCTION - crc: 0xe1cf130e + crc: 0x297b2874 type_id: 0x9ac293c4 full_name: "ip_queue_xmit" } @@ -351778,7 +363995,7 @@ elf_symbol { name: "ip_route_me_harder" is_defined: true symbol_type: FUNCTION - crc: 0x13cf933b + crc: 0xd7a7733e type_id: 0x9edd2b09 full_name: "ip_route_me_harder" } @@ -351787,7 +364004,7 @@ elf_symbol { name: "ip_route_output_flow" is_defined: true symbol_type: FUNCTION - crc: 0x52981a17 + crc: 0x63d17c67 type_id: 0x7b5e948b full_name: "ip_route_output_flow" } @@ -351823,11 +364040,20 @@ elf_symbol { name: "ipv6_dev_find" is_defined: true symbol_type: FUNCTION - crc: 0x1e08a8d3 + crc: 0xfe50985e type_id: 0xffbaa126 full_name: "ipv6_dev_find" } elf_symbol { + id: 0x1e69bfb6 + name: "ipv6_dev_get_saddr" + is_defined: true + symbol_type: FUNCTION + crc: 0x255a1a5c + type_id: 0x9e69dafa + full_name: "ipv6_dev_get_saddr" +} +elf_symbol { id: 0x274071bc name: "ipv6_ext_hdr" is_defined: true @@ -351841,16 +364067,25 @@ elf_symbol { name: "ipv6_find_hdr" is_defined: true symbol_type: FUNCTION - crc: 0xfeda9872 + crc: 0x5ca4ba9e type_id: 0x926eec8b full_name: "ipv6_find_hdr" } elf_symbol { + id: 0xd70b3ff0 + name: "ipv6_select_ident" + is_defined: true + symbol_type: FUNCTION + crc: 0xfb276934 + type_id: 0x0f51af8b + full_name: "ipv6_select_ident" +} +elf_symbol { id: 0x1f294d29 name: "ipv6_skip_exthdr" is_defined: true symbol_type: FUNCTION - crc: 0x1e7ff6cb + crc: 0x2fbf103d type_id: 0x9384ebd6 full_name: "ipv6_skip_exthdr" } @@ -351859,7 +364094,7 @@ elf_symbol { name: "ipv6_stub" is_defined: true symbol_type: OBJECT - crc: 0x3fcfdb99 + crc: 0x69417d20 type_id: 0x3d278a00 full_name: "ipv6_stub" } @@ -352080,6 +364315,15 @@ elf_symbol { full_name: "irq_domain_disconnect_hierarchy" } elf_symbol { + id: 0x3fa49947 + name: "irq_domain_free_fwnode" + is_defined: true + symbol_type: FUNCTION + crc: 0x36fc4cbc + type_id: 0x11bc7f41 + full_name: "irq_domain_free_fwnode" +} +elf_symbol { id: 0x327b1cbb name: "irq_domain_free_irqs_common" is_defined: true @@ -352233,6 +364477,15 @@ elf_symbol { full_name: "irq_gc_mask_set_bit" } elf_symbol { + id: 0x508904bc + name: "irq_gc_set_wake" + is_defined: true + symbol_type: FUNCTION + crc: 0x12d2b40d + type_id: 0x9e49e56e + full_name: "irq_gc_set_wake" +} +elf_symbol { id: 0xe8b2d7a6 name: "irq_generic_chip_ops" is_defined: true @@ -352386,6 +364639,15 @@ elf_symbol { full_name: "irq_set_parent" } elf_symbol { + id: 0x3b8e2bac + name: "irq_stat" + is_defined: true + symbol_type: OBJECT + crc: 0xcc365d07 + type_id: 0x0b098126 + full_name: "irq_stat" +} +elf_symbol { id: 0xc89a8e29 name: "irq_to_desc" is_defined: true @@ -352440,6 +364702,15 @@ elf_symbol { full_name: "is_ashmem_file" } elf_symbol { + id: 0x65d49acf + name: "is_bad_inode" + is_defined: true + symbol_type: FUNCTION + crc: 0x11395a73 + type_id: 0xf8453f2e + full_name: "is_bad_inode" +} +elf_symbol { id: 0x064a6e13 name: "is_console_locked" is_defined: true @@ -352495,6 +364766,15 @@ elf_symbol { full_name: "isolate_anon_lru_page" } elf_symbol { + id: 0xbb7edccb + name: "iter_file_splice_write" + is_defined: true + symbol_type: FUNCTION + crc: 0x4d5b9d7d + type_id: 0x165fda2d + full_name: "iter_file_splice_write" +} +elf_symbol { id: 0xd4b34ea6 name: "iterate_dir" is_defined: true @@ -352508,16 +364788,25 @@ elf_symbol { name: "iterate_fd" is_defined: true symbol_type: FUNCTION - crc: 0x1886cee2 + crc: 0x3204fe7a type_id: 0x9659ea27 full_name: "iterate_fd" } elf_symbol { + id: 0xca27ab6b + name: "iunique" + is_defined: true + symbol_type: FUNCTION + crc: 0x371ada39 + type_id: 0x14827bad + full_name: "iunique" +} +elf_symbol { id: 0x124d42c2 name: "iw_handler_get_spy" is_defined: true symbol_type: FUNCTION - crc: 0x15402b41 + crc: 0xfde0f341 type_id: 0x91aa9fd5 full_name: "iw_handler_get_spy" } @@ -352526,7 +364815,7 @@ elf_symbol { name: "iw_handler_get_thrspy" is_defined: true symbol_type: FUNCTION - crc: 0xcbe79505 + crc: 0x23474d05 type_id: 0x91aa9fd5 full_name: "iw_handler_get_thrspy" } @@ -352535,7 +364824,7 @@ elf_symbol { name: "iw_handler_set_spy" is_defined: true symbol_type: FUNCTION - crc: 0xcf7a25ef + crc: 0x27dafdef type_id: 0x91aa9fd5 full_name: "iw_handler_set_spy" } @@ -352544,7 +364833,7 @@ elf_symbol { name: "iw_handler_set_thrspy" is_defined: true symbol_type: FUNCTION - crc: 0x408e1189 + crc: 0xa82ec989 type_id: 0x91aa9fd5 full_name: "iw_handler_set_thrspy" } @@ -352679,7 +364968,7 @@ elf_symbol { name: "kernel_accept" is_defined: true symbol_type: FUNCTION - crc: 0xadcb7c34 + crc: 0x0e131c4a type_id: 0x99bb01a5 full_name: "kernel_accept" } @@ -352688,7 +364977,7 @@ elf_symbol { name: "kernel_bind" is_defined: true symbol_type: FUNCTION - crc: 0xd9827633 + crc: 0xf28ec505 type_id: 0x99526c70 full_name: "kernel_bind" } @@ -352697,7 +364986,7 @@ elf_symbol { name: "kernel_connect" is_defined: true symbol_type: FUNCTION - crc: 0x2457f7c9 + crc: 0x6f9153a5 type_id: 0x9953f0f3 full_name: "kernel_connect" } @@ -352715,7 +365004,7 @@ elf_symbol { name: "kernel_getsockname" is_defined: true symbol_type: FUNCTION - crc: 0xf3abf666 + crc: 0x4a997980 type_id: 0x994ba444 full_name: "kernel_getsockname" } @@ -352733,11 +365022,29 @@ elf_symbol { name: "kernel_listen" is_defined: true symbol_type: FUNCTION - crc: 0x44592339 + crc: 0x564aa2e8 type_id: 0x98046a12 full_name: "kernel_listen" } elf_symbol { + id: 0x52f17879 + name: "kernel_neon_begin" + is_defined: true + symbol_type: FUNCTION + crc: 0x8fd180e7 + type_id: 0x10985193 + full_name: "kernel_neon_begin" +} +elf_symbol { + id: 0xa84cb89b + name: "kernel_neon_end" + is_defined: true + symbol_type: FUNCTION + crc: 0xa8a8110c + type_id: 0x10985193 + full_name: "kernel_neon_end" +} +elf_symbol { id: 0xff4a14be name: "kernel_param_lock" is_defined: true @@ -352769,7 +365076,7 @@ elf_symbol { name: "kernel_recvmsg" is_defined: true symbol_type: FUNCTION - crc: 0x480deab9 + crc: 0xed5d2c06 type_id: 0x992e9bfb full_name: "kernel_recvmsg" } @@ -352787,7 +365094,7 @@ elf_symbol { name: "kernel_sendmsg" is_defined: true symbol_type: FUNCTION - crc: 0x6ec315f6 + crc: 0xb240b296 type_id: 0x992e9a67 full_name: "kernel_sendmsg" } @@ -352805,7 +365112,7 @@ elf_symbol { name: "kernel_sock_shutdown" is_defined: true symbol_type: FUNCTION - crc: 0x775f65d1 + crc: 0xbb70ed39 type_id: 0x9b768ae0 full_name: "kernel_sock_shutdown" } @@ -352868,7 +365175,7 @@ elf_symbol { name: "keyring_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x1029234d + crc: 0x6fd638fd type_id: 0x8f04b264 full_name: "keyring_alloc" } @@ -352904,7 +365211,7 @@ elf_symbol { name: "kfree_skb_list_reason" is_defined: true symbol_type: FUNCTION - crc: 0xf9726a31 + crc: 0x441d50a3 type_id: 0x11a9e681 full_name: "kfree_skb_list_reason" } @@ -352913,7 +365220,7 @@ elf_symbol { name: "kfree_skb_partial" is_defined: true symbol_type: FUNCTION - crc: 0xc1cd5980 + crc: 0x84305e73 type_id: 0x107e76aa full_name: "kfree_skb_partial" } @@ -352922,7 +365229,7 @@ elf_symbol { name: "kfree_skb_reason" is_defined: true symbol_type: FUNCTION - crc: 0xf6affdf9 + crc: 0x234cc6c0 type_id: 0x11a9e681 full_name: "kfree_skb_reason" } @@ -352936,6 +365243,15 @@ elf_symbol { full_name: "kick_all_cpus_sync" } elf_symbol { + id: 0xe4128490 + name: "kick_process" + is_defined: true + symbol_type: FUNCTION + crc: 0xf7f30b89 + type_id: 0x17de3be6 + full_name: "kick_process" +} +elf_symbol { id: 0xb1072fb1 name: "kill_anon_super" is_defined: true @@ -352945,6 +365261,15 @@ elf_symbol { full_name: "kill_anon_super" } elf_symbol { + id: 0xe657d525 + name: "kill_block_super" + is_defined: true + symbol_type: FUNCTION + crc: 0x0ae50695 + type_id: 0x1923cb99 + full_name: "kill_block_super" +} +elf_symbol { id: 0x661955d6 name: "kill_fasync" is_defined: true @@ -353035,6 +365360,24 @@ elf_symbol { full_name: "kmem_cache_alloc" } elf_symbol { + id: 0x3b959429 + name: "kmem_cache_alloc_lru" + is_defined: true + symbol_type: FUNCTION + crc: 0x390004c6 + type_id: 0x5de26741 + full_name: "kmem_cache_alloc_lru" +} +elf_symbol { + id: 0x86921e4b + name: "kmem_cache_alloc_node" + is_defined: true + symbol_type: FUNCTION + crc: 0xf1e19a13 + type_id: 0x5ef6b6b7 + full_name: "kmem_cache_alloc_node" +} +elf_symbol { id: 0x56f23732 name: "kmem_cache_create" is_defined: true @@ -353237,7 +365580,7 @@ elf_symbol { name: "kobject_uevent" is_defined: true symbol_type: FUNCTION - crc: 0xd1800c97 + crc: 0x5aac7c29 type_id: 0x950b8829 full_name: "kobject_uevent" } @@ -353246,7 +365589,7 @@ elf_symbol { name: "kobject_uevent_env" is_defined: true symbol_type: FUNCTION - crc: 0x610a262c + crc: 0x857f14bd type_id: 0x95096419 full_name: "kobject_uevent_env" } @@ -353422,6 +365765,15 @@ elf_symbol { full_name: "kstrtoll" } elf_symbol { + id: 0xf44e0659 + name: "kstrtos16" + is_defined: true + symbol_type: FUNCTION + crc: 0xe0419ac4 + type_id: 0x9312e40f + full_name: "kstrtos16" +} +elf_symbol { id: 0x9c1bb84e name: "kstrtos8" is_defined: true @@ -353647,6 +365999,15 @@ elf_symbol { full_name: "kthread_flush_worker" } elf_symbol { + id: 0x2fbecafd + name: "kthread_freezable_should_stop" + is_defined: true + symbol_type: FUNCTION + crc: 0xca7d8764 + type_id: 0xfad7a092 + full_name: "kthread_freezable_should_stop" +} +elf_symbol { id: 0x49232ca9 name: "kthread_mod_delayed_work" is_defined: true @@ -353948,7 +366309,7 @@ elf_symbol { name: "l2cap_add_psm" is_defined: true symbol_type: FUNCTION - crc: 0xf4929b1e + crc: 0x5309dac2 type_id: 0x9dff38c4 full_name: "l2cap_add_psm" } @@ -353957,7 +366318,7 @@ elf_symbol { name: "l2cap_chan_close" is_defined: true symbol_type: FUNCTION - crc: 0x71fa79cb + crc: 0xbc04cc40 type_id: 0x11d1a5c3 full_name: "l2cap_chan_close" } @@ -353966,7 +366327,7 @@ elf_symbol { name: "l2cap_chan_connect" is_defined: true symbol_type: FUNCTION - crc: 0x76ce9e2c + crc: 0x7b272ac4 type_id: 0x9f1e1154 full_name: "l2cap_chan_connect" } @@ -353975,7 +366336,7 @@ elf_symbol { name: "l2cap_chan_create" is_defined: true symbol_type: FUNCTION - crc: 0x6dbadb0d + crc: 0x0cf226d7 type_id: 0xedba1f63 full_name: "l2cap_chan_create" } @@ -353984,7 +366345,7 @@ elf_symbol { name: "l2cap_chan_del" is_defined: true symbol_type: FUNCTION - crc: 0x08e84bfa + crc: 0xdacaf929 type_id: 0x11d1a5c3 full_name: "l2cap_chan_del" } @@ -353993,7 +366354,7 @@ elf_symbol { name: "l2cap_chan_list" is_defined: true symbol_type: FUNCTION - crc: 0x236dcc5a + crc: 0x0318963b type_id: 0x1caf5700 full_name: "l2cap_chan_list" } @@ -354002,7 +366363,7 @@ elf_symbol { name: "l2cap_chan_put" is_defined: true symbol_type: FUNCTION - crc: 0x4e1c817c + crc: 0xadbe7195 type_id: 0x104d268f full_name: "l2cap_chan_put" } @@ -354011,7 +366372,7 @@ elf_symbol { name: "l2cap_chan_send" is_defined: true symbol_type: FUNCTION - crc: 0x185ebace + crc: 0x20f36f9d type_id: 0x9ddbf7b4 full_name: "l2cap_chan_send" } @@ -354020,7 +366381,7 @@ elf_symbol { name: "l2cap_chan_set_defaults" is_defined: true symbol_type: FUNCTION - crc: 0x7f7ea9cc + crc: 0x4640d465 type_id: 0x104d268f full_name: "l2cap_chan_set_defaults" } @@ -354029,7 +366390,7 @@ elf_symbol { name: "l2cap_conn_get" is_defined: true symbol_type: FUNCTION - crc: 0x14ba992b + crc: 0xe4c0d4ae type_id: 0xa6fe7077 full_name: "l2cap_conn_get" } @@ -354038,7 +366399,7 @@ elf_symbol { name: "l2cap_conn_put" is_defined: true symbol_type: FUNCTION - crc: 0xc3a46e39 + crc: 0x611a22ca type_id: 0x1ef27e10 full_name: "l2cap_conn_put" } @@ -354047,7 +366408,7 @@ elf_symbol { name: "l2cap_is_socket" is_defined: true symbol_type: FUNCTION - crc: 0xaf25f3c6 + crc: 0x31b3bf78 type_id: 0xfabc5175 full_name: "l2cap_is_socket" } @@ -354056,7 +366417,7 @@ elf_symbol { name: "l2cap_register_user" is_defined: true symbol_type: FUNCTION - crc: 0x57823900 + crc: 0xd817a750 type_id: 0x9390f5c5 full_name: "l2cap_register_user" } @@ -354065,7 +366426,7 @@ elf_symbol { name: "l2cap_unregister_user" is_defined: true symbol_type: FUNCTION - crc: 0x091d9ab0 + crc: 0xb8a79e98 type_id: 0x1e884779 full_name: "l2cap_unregister_user" } @@ -354074,7 +366435,7 @@ elf_symbol { name: "l2tp_recv_common" is_defined: true symbol_type: FUNCTION - crc: 0xe3da9d60 + crc: 0xd7b67f90 type_id: 0x15503314 full_name: "l2tp_recv_common" } @@ -354083,7 +366444,7 @@ elf_symbol { name: "l2tp_session_create" is_defined: true symbol_type: FUNCTION - crc: 0x5655af24 + crc: 0xa99e8f9e type_id: 0xf6e0960a full_name: "l2tp_session_create" } @@ -354092,7 +366453,7 @@ elf_symbol { name: "l2tp_session_dec_refcount" is_defined: true symbol_type: FUNCTION - crc: 0x939f7280 + crc: 0x044f87d8 type_id: 0x154220a5 full_name: "l2tp_session_dec_refcount" } @@ -354101,7 +366462,7 @@ elf_symbol { name: "l2tp_session_delete" is_defined: true symbol_type: FUNCTION - crc: 0x83970d8f + crc: 0x329487cb type_id: 0x154220a5 full_name: "l2tp_session_delete" } @@ -354110,7 +366471,7 @@ elf_symbol { name: "l2tp_session_get" is_defined: true symbol_type: FUNCTION - crc: 0x05af0723 + crc: 0x5591b1e7 type_id: 0xe3a506be full_name: "l2tp_session_get" } @@ -354119,7 +366480,7 @@ elf_symbol { name: "l2tp_session_get_by_ifname" is_defined: true symbol_type: FUNCTION - crc: 0x1e9f3417 + crc: 0x439328d4 type_id: 0xe07964c6 full_name: "l2tp_session_get_by_ifname" } @@ -354128,7 +366489,7 @@ elf_symbol { name: "l2tp_session_get_nth" is_defined: true symbol_type: FUNCTION - crc: 0xca82e0c9 + crc: 0xa334e0fd type_id: 0xe7f6577b full_name: "l2tp_session_get_nth" } @@ -354137,7 +366498,7 @@ elf_symbol { name: "l2tp_session_inc_refcount" is_defined: true symbol_type: FUNCTION - crc: 0x3b05a2e8 + crc: 0x1b7d2a94 type_id: 0x154220a5 full_name: "l2tp_session_inc_refcount" } @@ -354146,7 +366507,7 @@ elf_symbol { name: "l2tp_session_register" is_defined: true symbol_type: FUNCTION - crc: 0x96ef7e2e + crc: 0x3e42889a type_id: 0x98c44e7d full_name: "l2tp_session_register" } @@ -354155,7 +366516,7 @@ elf_symbol { name: "l2tp_session_set_header_len" is_defined: true symbol_type: FUNCTION - crc: 0x8992ee59 + crc: 0xd462b4a4 type_id: 0x14dea3e9 full_name: "l2tp_session_set_header_len" } @@ -354164,7 +366525,7 @@ elf_symbol { name: "l2tp_sk_to_tunnel" is_defined: true symbol_type: FUNCTION - crc: 0xae8de754 + crc: 0x788257b9 type_id: 0x30b12c32 full_name: "l2tp_sk_to_tunnel" } @@ -354173,7 +366534,7 @@ elf_symbol { name: "l2tp_tunnel_create" is_defined: true symbol_type: FUNCTION - crc: 0x85164717 + crc: 0x5699f3d2 type_id: 0x85e53152 full_name: "l2tp_tunnel_create" } @@ -354182,7 +366543,7 @@ elf_symbol { name: "l2tp_tunnel_dec_refcount" is_defined: true symbol_type: FUNCTION - crc: 0x4fafa7a4 + crc: 0xd559bd1d type_id: 0x197597d7 full_name: "l2tp_tunnel_dec_refcount" } @@ -354191,7 +366552,7 @@ elf_symbol { name: "l2tp_tunnel_delete" is_defined: true symbol_type: FUNCTION - crc: 0x0c233334 + crc: 0x0e742a21 type_id: 0x197597d7 full_name: "l2tp_tunnel_delete" } @@ -354200,7 +366561,7 @@ elf_symbol { name: "l2tp_tunnel_get" is_defined: true symbol_type: FUNCTION - crc: 0x96e61861 + crc: 0xb94627a1 type_id: 0x3bc23464 full_name: "l2tp_tunnel_get" } @@ -354209,7 +366570,7 @@ elf_symbol { name: "l2tp_tunnel_get_nth" is_defined: true symbol_type: FUNCTION - crc: 0x76b5a30e + crc: 0x2a196e15 type_id: 0x397a9784 full_name: "l2tp_tunnel_get_nth" } @@ -354218,7 +366579,7 @@ elf_symbol { name: "l2tp_tunnel_get_session" is_defined: true symbol_type: FUNCTION - crc: 0xb6b49b44 + crc: 0xb7d4c0d8 type_id: 0xe54ef49b full_name: "l2tp_tunnel_get_session" } @@ -354227,7 +366588,7 @@ elf_symbol { name: "l2tp_tunnel_inc_refcount" is_defined: true symbol_type: FUNCTION - crc: 0x88738bfb + crc: 0x3a672d09 type_id: 0x197597d7 full_name: "l2tp_tunnel_inc_refcount" } @@ -354236,7 +366597,7 @@ elf_symbol { name: "l2tp_tunnel_register" is_defined: true symbol_type: FUNCTION - crc: 0x210b930c + crc: 0x2ef77e74 type_id: 0x945c71bc full_name: "l2tp_tunnel_register" } @@ -354245,7 +366606,7 @@ elf_symbol { name: "l2tp_udp_encap_recv" is_defined: true symbol_type: FUNCTION - crc: 0xedc45c7f + crc: 0x1167335b type_id: 0x9ac4d210 full_name: "l2tp_udp_encap_recv" } @@ -354254,7 +366615,7 @@ elf_symbol { name: "l2tp_xmit_skb" is_defined: true symbol_type: FUNCTION - crc: 0x0db48fbe + crc: 0x9ddbf6c3 type_id: 0x984fafbd full_name: "l2tp_xmit_skb" } @@ -354322,6 +366683,15 @@ elf_symbol { full_name: "led_mc_calc_color_components" } elf_symbol { + id: 0xbea2c272 + name: "led_set_brightness_nosleep" + is_defined: true + symbol_type: FUNCTION + crc: 0x8d7fee8c + type_id: 0x1d3cefc2 + full_name: "led_set_brightness_nosleep" +} +elf_symbol { id: 0x2e74d698 name: "led_set_brightness_sync" is_defined: true @@ -354461,7 +366831,7 @@ elf_symbol { name: "linkwatch_fire_event" is_defined: true symbol_type: FUNCTION - crc: 0x4ae2d4a9 + crc: 0x2d9e0ed8 type_id: 0x1c31d966 full_name: "linkwatch_fire_event" } @@ -354493,11 +366863,29 @@ elf_symbol { full_name: "llist_reverse_order" } elf_symbol { + id: 0x6b29ddfb + name: "load_nls" + is_defined: true + symbol_type: FUNCTION + crc: 0x14646232 + type_id: 0x4e6eaff2 + full_name: "load_nls" +} +elf_symbol { + id: 0xc05c2da4 + name: "load_nls_default" + is_defined: true + symbol_type: FUNCTION + crc: 0xbeb78729 + type_id: 0x4f4e564c + full_name: "load_nls_default" +} +elf_symbol { id: 0xaaab26df name: "lock_sock_nested" is_defined: true symbol_type: FUNCTION - crc: 0x98d12cb1 + crc: 0x94a1d0ed type_id: 0x1655de44 full_name: "lock_sock_nested" } @@ -354569,7 +366957,7 @@ elf_symbol { name: "logfc" is_defined: true symbol_type: FUNCTION - crc: 0xc9a13f3b + crc: 0x5c5971c8 type_id: 0x11cf2aed full_name: "logfc" } @@ -354596,7 +366984,7 @@ elf_symbol { name: "lowpan_header_compress" is_defined: true symbol_type: FUNCTION - crc: 0xbe2a3685 + crc: 0xad31bd5d type_id: 0x9c13fdc1 full_name: "lowpan_header_compress" } @@ -354605,7 +366993,7 @@ elf_symbol { name: "lowpan_header_decompress" is_defined: true symbol_type: FUNCTION - crc: 0xf002f366 + crc: 0x8c56cba6 type_id: 0x9c13fdc1 full_name: "lowpan_header_decompress" } @@ -354614,7 +367002,7 @@ elf_symbol { name: "lowpan_nhc_add" is_defined: true symbol_type: FUNCTION - crc: 0x9e0bdfd6 + crc: 0x9fd87e04 type_id: 0x9286d894 full_name: "lowpan_nhc_add" } @@ -354623,7 +367011,7 @@ elf_symbol { name: "lowpan_nhc_del" is_defined: true symbol_type: FUNCTION - crc: 0xc4906d43 + crc: 0xa20a9587 type_id: 0x1f9e6a28 full_name: "lowpan_nhc_del" } @@ -354632,7 +367020,7 @@ elf_symbol { name: "lowpan_register_netdev" is_defined: true symbol_type: FUNCTION - crc: 0x487ce52d + crc: 0xaec2b9fa type_id: 0x92a49dbe full_name: "lowpan_register_netdev" } @@ -354641,7 +367029,7 @@ elf_symbol { name: "lowpan_register_netdevice" is_defined: true symbol_type: FUNCTION - crc: 0xd67d70ee + crc: 0x9e24b052 type_id: 0x92a49dbe full_name: "lowpan_register_netdevice" } @@ -354650,7 +367038,7 @@ elf_symbol { name: "lowpan_unregister_netdev" is_defined: true symbol_type: FUNCTION - crc: 0xebecaf9c + crc: 0xa3191ad6 type_id: 0x1c31d966 full_name: "lowpan_unregister_netdev" } @@ -354659,7 +367047,7 @@ elf_symbol { name: "lowpan_unregister_netdevice" is_defined: true symbol_type: FUNCTION - crc: 0x581b4d9e + crc: 0x71e189c1 type_id: 0x1c31d966 full_name: "lowpan_unregister_netdevice" } @@ -354673,6 +367061,51 @@ elf_symbol { full_name: "mac_pton" } elf_symbol { + id: 0xf4530070 + name: "make_bad_inode" + is_defined: true + symbol_type: FUNCTION + crc: 0xfc3a4c5b + type_id: 0x167935b9 + full_name: "make_bad_inode" +} +elf_symbol { + id: 0x7ee18475 + name: "mark_buffer_async_write" + is_defined: true + symbol_type: FUNCTION + crc: 0x747d8323 + type_id: 0x16c5a8cd + full_name: "mark_buffer_async_write" +} +elf_symbol { + id: 0x18bd1341 + name: "mark_buffer_dirty" + is_defined: true + symbol_type: FUNCTION + crc: 0xeebcd79e + type_id: 0x16c5a8cd + full_name: "mark_buffer_dirty" +} +elf_symbol { + id: 0xac8ea5a3 + name: "mark_buffer_write_io_error" + is_defined: true + symbol_type: FUNCTION + crc: 0x1161eeb7 + type_id: 0x16c5a8cd + full_name: "mark_buffer_write_io_error" +} +elf_symbol { + id: 0x5a1c51ee + name: "mark_page_accessed" + is_defined: true + symbol_type: FUNCTION + crc: 0x1265d1cb + type_id: 0x11388634 + full_name: "mark_page_accessed" +} +elf_symbol { id: 0xe4eac6bd name: "mas_empty_area_rev" is_defined: true @@ -354884,7 +367317,7 @@ elf_symbol { name: "mdiobus_alloc_size" is_defined: true symbol_type: FUNCTION - crc: 0xc5e1f9a7 + crc: 0xa8c549aa type_id: 0x9384eeb1 full_name: "mdiobus_alloc_size" } @@ -354893,7 +367326,7 @@ elf_symbol { name: "mdiobus_free" is_defined: true symbol_type: FUNCTION - crc: 0xac4e1b64 + crc: 0x3f19d564 type_id: 0x1ded15a3 full_name: "mdiobus_free" } @@ -354902,7 +367335,7 @@ elf_symbol { name: "mdiobus_get_phy" is_defined: true symbol_type: FUNCTION - crc: 0x74ee4db4 + crc: 0x88535ab3 type_id: 0xbf379f2f full_name: "mdiobus_get_phy" } @@ -354911,7 +367344,7 @@ elf_symbol { name: "mdiobus_is_registered_device" is_defined: true symbol_type: FUNCTION - crc: 0x252b58c3 + crc: 0x044681d0 type_id: 0xf24d9c78 full_name: "mdiobus_is_registered_device" } @@ -354920,7 +367353,7 @@ elf_symbol { name: "mdiobus_modify_changed" is_defined: true symbol_type: FUNCTION - crc: 0xf434b095 + crc: 0x22bae055 type_id: 0x9159073c full_name: "mdiobus_modify_changed" } @@ -354929,7 +367362,7 @@ elf_symbol { name: "mdiobus_read" is_defined: true symbol_type: FUNCTION - crc: 0x76fd4046 + crc: 0x9b2615a6 type_id: 0x915b6659 full_name: "mdiobus_read" } @@ -354938,7 +367371,7 @@ elf_symbol { name: "mdiobus_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x48f64a20 + crc: 0x89879ae8 type_id: 0x1ded15a3 full_name: "mdiobus_unregister" } @@ -354947,7 +367380,7 @@ elf_symbol { name: "mdiobus_write" is_defined: true symbol_type: FUNCTION - crc: 0x9cbe1ec1 + crc: 0x95306f07 type_id: 0x9159236f full_name: "mdiobus_write" } @@ -355051,6 +367484,15 @@ elf_symbol { full_name: "media_entity_remove_links" } elf_symbol { + id: 0xda5dc517 + name: "media_entity_setup_link" + is_defined: true + symbol_type: FUNCTION + crc: 0xe5982bfb + type_id: 0x901c3c62 + full_name: "media_entity_setup_link" +} +elf_symbol { id: 0x84278a73 name: "media_graph_walk_cleanup" is_defined: true @@ -355154,11 +367596,20 @@ elf_symbol { name: "mem_cgroup_from_id" is_defined: true symbol_type: FUNCTION - crc: 0xbbd10a79 + crc: 0xd0c2ea0e type_id: 0x59f18b0b full_name: "mem_cgroup_from_id" } elf_symbol { + id: 0x6da682ae + name: "mem_cgroup_update_lru_size" + is_defined: true + symbol_type: FUNCTION + crc: 0x351f9cbb + type_id: 0x1ef25648 + full_name: "mem_cgroup_update_lru_size" +} +elf_symbol { id: 0x7f797603 name: "mem_dump_obj" is_defined: true @@ -355277,7 +367728,7 @@ elf_symbol { name: "memory_cgrp_subsys" is_defined: true symbol_type: OBJECT - crc: 0x286773fd + crc: 0x06703019 type_id: 0x00571446 full_name: "memory_cgrp_subsys" } @@ -355501,7 +367952,7 @@ elf_symbol { name: "migrate_swap" is_defined: true symbol_type: FUNCTION - crc: 0xe91e4658 + crc: 0xb3b01563 type_id: 0x9aaabb4a full_name: "migrate_swap" } @@ -355510,7 +367961,7 @@ elf_symbol { name: "mii_check_media" is_defined: true symbol_type: FUNCTION - crc: 0x337e871e + crc: 0x0b839173 type_id: 0xcb5a4db0 full_name: "mii_check_media" } @@ -355519,16 +367970,25 @@ elf_symbol { name: "mii_ethtool_gset" is_defined: true symbol_type: FUNCTION - crc: 0x658cc2e6 + crc: 0xc42b22b3 type_id: 0x142e3633 full_name: "mii_ethtool_gset" } elf_symbol { + id: 0x863e9436 + name: "mii_link_ok" + is_defined: true + symbol_type: FUNCTION + crc: 0x957e09ab + type_id: 0x9906a4a5 + full_name: "mii_link_ok" +} +elf_symbol { id: 0x1579ecd2 name: "mii_nway_restart" is_defined: true symbol_type: FUNCTION - crc: 0x2058293b + crc: 0x82a00e5c type_id: 0x9906a4a5 full_name: "mii_nway_restart" } @@ -355794,6 +368254,15 @@ elf_symbol { full_name: "mipi_dsi_packet_format_is_long" } elf_symbol { + id: 0xb6dbcbcc + name: "mipi_dsi_packet_format_is_short" + is_defined: true + symbol_type: FUNCTION + crc: 0x238b099f + type_id: 0xf4f34784 + full_name: "mipi_dsi_packet_format_is_short" +} +elf_symbol { id: 0xdca2a3c4 name: "mipi_dsi_picture_parameter_set" is_defined: true @@ -355803,6 +368272,15 @@ elf_symbol { full_name: "mipi_dsi_picture_parameter_set" } elf_symbol { + id: 0x6d579aaf + name: "mipi_dsi_set_maximum_return_packet_size" + is_defined: true + symbol_type: FUNCTION + crc: 0x24bb881a + type_id: 0x9d9d4f0f + full_name: "mipi_dsi_set_maximum_return_packet_size" +} +elf_symbol { id: 0xe4059d72 name: "misc_deregister" is_defined: true @@ -356262,6 +368740,15 @@ elf_symbol { full_name: "mmc_set_timing" } elf_symbol { + id: 0xa6d8e105 + name: "mmc_sw_reset" + is_defined: true + symbol_type: FUNCTION + crc: 0x59a1e31f + type_id: 0x9d19aa55 + full_name: "mmc_sw_reset" +} +elf_symbol { id: 0x44bb49dc name: "mmc_switch" is_defined: true @@ -356307,6 +368794,24 @@ elf_symbol { full_name: "mmu_notifier_synchronize" } elf_symbol { + id: 0x8ba1a556 + name: "mnt_drop_write_file" + is_defined: true + symbol_type: FUNCTION + crc: 0x85bbfbfb + type_id: 0x16a2cb2b + full_name: "mnt_drop_write_file" +} +elf_symbol { + id: 0xa5e98cbe + name: "mnt_want_write_file" + is_defined: true + symbol_type: FUNCTION + crc: 0xd1d02e22 + type_id: 0x9bba7997 + full_name: "mnt_want_write_file" +} +elf_symbol { id: 0xdf7b9a78 name: "mod_delayed_work_on" is_defined: true @@ -356361,6 +368866,33 @@ elf_symbol { full_name: "module_put" } elf_symbol { + id: 0x18e8ea11 + name: "mount_bdev" + is_defined: true + symbol_type: FUNCTION + crc: 0x60df2cf1 + type_id: 0x81599f70 + full_name: "mount_bdev" +} +elf_symbol { + id: 0x1405e8c0 + name: "mpage_read_folio" + is_defined: true + symbol_type: FUNCTION + crc: 0xec56bcef + type_id: 0x956e6587 + full_name: "mpage_read_folio" +} +elf_symbol { + id: 0x84babda3 + name: "mpage_readahead" + is_defined: true + symbol_type: FUNCTION + crc: 0x6659babe + type_id: 0x19fc4f29 + full_name: "mpage_readahead" +} +elf_symbol { id: 0xbedab58b name: "msi_first_desc" is_defined: true @@ -356509,16 +369041,25 @@ elf_symbol { name: "napi_build_skb" is_defined: true symbol_type: FUNCTION - crc: 0x7e2ae2e2 + crc: 0x4b91433a type_id: 0x6fa775f5 full_name: "napi_build_skb" } elf_symbol { + id: 0x760780be + name: "napi_busy_loop" + is_defined: true + symbol_type: FUNCTION + crc: 0x29604158 + type_id: 0x012cb0da + full_name: "napi_busy_loop" +} +elf_symbol { id: 0xc258a893 name: "napi_complete_done" is_defined: true symbol_type: FUNCTION - crc: 0x5aec927a + crc: 0xdfaca303 type_id: 0xf938bd88 full_name: "napi_complete_done" } @@ -356527,7 +369068,7 @@ elf_symbol { name: "napi_consume_skb" is_defined: true symbol_type: FUNCTION - crc: 0xe2ddf782 + crc: 0xb26a8708 type_id: 0x10570899 full_name: "napi_consume_skb" } @@ -356536,7 +369077,7 @@ elf_symbol { name: "napi_disable" is_defined: true symbol_type: FUNCTION - crc: 0x514c5830 + crc: 0x7f9a71db type_id: 0x16983453 full_name: "napi_disable" } @@ -356545,7 +369086,7 @@ elf_symbol { name: "napi_enable" is_defined: true symbol_type: FUNCTION - crc: 0xc3c1cb79 + crc: 0x39b1be5a type_id: 0x16983453 full_name: "napi_enable" } @@ -356554,7 +369095,7 @@ elf_symbol { name: "napi_gro_flush" is_defined: true symbol_type: FUNCTION - crc: 0x21d6e727 + crc: 0x20d9ab00 type_id: 0x172dc92c full_name: "napi_gro_flush" } @@ -356563,7 +369104,7 @@ elf_symbol { name: "napi_gro_receive" is_defined: true symbol_type: FUNCTION - crc: 0xe1addd23 + crc: 0xa02f0ec2 type_id: 0x091a93fa full_name: "napi_gro_receive" } @@ -356572,7 +369113,7 @@ elf_symbol { name: "napi_schedule_prep" is_defined: true symbol_type: FUNCTION - crc: 0xbfad3c2a + crc: 0x74dc6705 type_id: 0xf8a43ec4 full_name: "napi_schedule_prep" } @@ -356581,7 +369122,7 @@ elf_symbol { name: "nd_tbl" is_defined: true symbol_type: OBJECT - crc: 0xd9c7afdd + crc: 0x137f0168 type_id: 0x77670b3b full_name: "nd_tbl" } @@ -356590,7 +369131,7 @@ elf_symbol { name: "neigh_destroy" is_defined: true symbol_type: FUNCTION - crc: 0x3694808b + crc: 0xf9a35910 type_id: 0x1262fcf5 full_name: "neigh_destroy" } @@ -356599,7 +369140,7 @@ elf_symbol { name: "neigh_lookup" is_defined: true symbol_type: FUNCTION - crc: 0x9fdaaa09 + crc: 0x58bcf44b type_id: 0x189b5d05 full_name: "neigh_lookup" } @@ -356608,7 +369149,7 @@ elf_symbol { name: "neigh_resolve_output" is_defined: true symbol_type: FUNCTION - crc: 0xca234455 + crc: 0x77f910e9 type_id: 0x9f6f73ed full_name: "neigh_resolve_output" } @@ -356626,7 +369167,7 @@ elf_symbol { name: "net_ns_type_operations" is_defined: true symbol_type: OBJECT - crc: 0xc517a654 + crc: 0x8896b0fb type_id: 0xeabee0bd full_name: "net_ns_type_operations" } @@ -356644,7 +369185,7 @@ elf_symbol { name: "net_selftest" is_defined: true symbol_type: FUNCTION - crc: 0x193a45f8 + crc: 0xfd587d2a type_id: 0x1c31f969 full_name: "net_selftest" } @@ -356671,7 +369212,7 @@ elf_symbol { name: "netdev_alert" is_defined: true symbol_type: FUNCTION - crc: 0x8c5176d0 + crc: 0xb316f0fe type_id: 0x1caf28d1 full_name: "netdev_alert" } @@ -356680,7 +369221,7 @@ elf_symbol { name: "netdev_change_features" is_defined: true symbol_type: FUNCTION - crc: 0x0981ec68 + crc: 0xa5404d0d type_id: 0x1c31d966 full_name: "netdev_change_features" } @@ -356689,7 +369230,7 @@ elf_symbol { name: "netdev_core_stats_alloc" is_defined: true symbol_type: FUNCTION - crc: 0xc2a6edad + crc: 0x2d3f14aa type_id: 0x9286ca40 full_name: "netdev_core_stats_alloc" } @@ -356698,7 +369239,7 @@ elf_symbol { name: "netdev_err" is_defined: true symbol_type: FUNCTION - crc: 0x8bd1d004 + crc: 0xb16a3d6d type_id: 0x1caf28d1 full_name: "netdev_err" } @@ -356716,7 +369257,7 @@ elf_symbol { name: "netdev_info" is_defined: true symbol_type: FUNCTION - crc: 0x77c7ecd4 + crc: 0x10ea702c type_id: 0x1caf28d1 full_name: "netdev_info" } @@ -356725,7 +369266,7 @@ elf_symbol { name: "netdev_lower_state_changed" is_defined: true symbol_type: FUNCTION - crc: 0x07c31ad1 + crc: 0xa5d29cdc type_id: 0x1c532cf2 full_name: "netdev_lower_state_changed" } @@ -356734,7 +369275,7 @@ elf_symbol { name: "netdev_master_upper_dev_link" is_defined: true symbol_type: FUNCTION - crc: 0xaa599ee9 + crc: 0x8fabd7e3 type_id: 0x91e5bf0e full_name: "netdev_master_upper_dev_link" } @@ -356743,7 +369284,7 @@ elf_symbol { name: "netdev_name_in_use" is_defined: true symbol_type: FUNCTION - crc: 0x8d118fe3 + crc: 0x3b26056f type_id: 0xfd7484f0 full_name: "netdev_name_in_use" } @@ -356752,7 +369293,7 @@ elf_symbol { name: "netdev_notice" is_defined: true symbol_type: FUNCTION - crc: 0x026506a2 + crc: 0xe416664f type_id: 0x1caf28d1 full_name: "netdev_notice" } @@ -356761,7 +369302,7 @@ elf_symbol { name: "netdev_notify_peers" is_defined: true symbol_type: FUNCTION - crc: 0xd8d15e4f + crc: 0x84dace7d type_id: 0x1c31d966 full_name: "netdev_notify_peers" } @@ -356770,7 +369311,7 @@ elf_symbol { name: "netdev_pick_tx" is_defined: true symbol_type: FUNCTION - crc: 0x56fd939c + crc: 0x10ab015f type_id: 0x0d9b3569 full_name: "netdev_pick_tx" } @@ -356779,7 +369320,7 @@ elf_symbol { name: "netdev_printk" is_defined: true symbol_type: FUNCTION - crc: 0x5ab187a1 + crc: 0xd7cebfd3 type_id: 0x1fdf0b41 full_name: "netdev_printk" } @@ -356797,7 +369338,7 @@ elf_symbol { name: "netdev_rx_handler_register" is_defined: true symbol_type: FUNCTION - crc: 0x734c6b5b + crc: 0xf203f1f4 type_id: 0x913b542f full_name: "netdev_rx_handler_register" } @@ -356806,7 +369347,7 @@ elf_symbol { name: "netdev_rx_handler_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x81dcd7b1 + crc: 0x5560536e type_id: 0x1c31d966 full_name: "netdev_rx_handler_unregister" } @@ -356815,7 +369356,7 @@ elf_symbol { name: "netdev_set_default_ethtool_ops" is_defined: true symbol_type: FUNCTION - crc: 0x8109bcbe + crc: 0x83fe02f2 type_id: 0x1cd08481 full_name: "netdev_set_default_ethtool_ops" } @@ -356824,7 +369365,7 @@ elf_symbol { name: "netdev_state_change" is_defined: true symbol_type: FUNCTION - crc: 0x40ccadde + crc: 0xc2ed97e1 type_id: 0x1c31d966 full_name: "netdev_state_change" } @@ -356833,7 +369374,7 @@ elf_symbol { name: "netdev_update_features" is_defined: true symbol_type: FUNCTION - crc: 0x4fdc8bcb + crc: 0xe23f3795 type_id: 0x1c31d966 full_name: "netdev_update_features" } @@ -356842,7 +369383,7 @@ elf_symbol { name: "netdev_upper_dev_link" is_defined: true symbol_type: FUNCTION - crc: 0x5669a1e6 + crc: 0x201c1c74 type_id: 0x91e20463 full_name: "netdev_upper_dev_link" } @@ -356851,7 +369392,7 @@ elf_symbol { name: "netdev_upper_dev_unlink" is_defined: true symbol_type: FUNCTION - crc: 0x92fc3f55 + crc: 0x52637a4b type_id: 0x1cfb41e9 full_name: "netdev_upper_dev_unlink" } @@ -356860,7 +369401,7 @@ elf_symbol { name: "netdev_warn" is_defined: true symbol_type: FUNCTION - crc: 0x89baa536 + crc: 0x727ebc1b type_id: 0x1caf28d1 full_name: "netdev_warn" } @@ -356869,7 +369410,7 @@ elf_symbol { name: "netif_carrier_off" is_defined: true symbol_type: FUNCTION - crc: 0xedb66131 + crc: 0x6508739f type_id: 0x1c31d966 full_name: "netif_carrier_off" } @@ -356878,7 +369419,7 @@ elf_symbol { name: "netif_carrier_on" is_defined: true symbol_type: FUNCTION - crc: 0x2e03789f + crc: 0x560a9ddb type_id: 0x1c31d966 full_name: "netif_carrier_on" } @@ -356887,7 +369428,7 @@ elf_symbol { name: "netif_device_attach" is_defined: true symbol_type: FUNCTION - crc: 0xc6c81724 + crc: 0x97bc586d type_id: 0x1c31d966 full_name: "netif_device_attach" } @@ -356896,7 +369437,7 @@ elf_symbol { name: "netif_device_detach" is_defined: true symbol_type: FUNCTION - crc: 0x7aded299 + crc: 0x6b79f44e type_id: 0x1c31d966 full_name: "netif_device_detach" } @@ -356905,7 +369446,7 @@ elf_symbol { name: "netif_inherit_tso_max" is_defined: true symbol_type: FUNCTION - crc: 0x886d2210 + crc: 0xb61316b4 type_id: 0x1cffbe77 full_name: "netif_inherit_tso_max" } @@ -356914,7 +369455,7 @@ elf_symbol { name: "netif_napi_add_weight" is_defined: true symbol_type: FUNCTION - crc: 0xc2077924 + crc: 0x9d31b4d5 type_id: 0x1c5b4677 full_name: "netif_napi_add_weight" } @@ -356923,7 +369464,7 @@ elf_symbol { name: "netif_receive_skb" is_defined: true symbol_type: FUNCTION - crc: 0x8d6ee980 + crc: 0x373b061c type_id: 0x9cd33969 full_name: "netif_receive_skb" } @@ -356941,7 +369482,7 @@ elf_symbol { name: "netif_rx" is_defined: true symbol_type: FUNCTION - crc: 0x9900b75f + crc: 0x67e9e82a type_id: 0x9cd33969 full_name: "netif_rx" } @@ -356950,7 +369491,7 @@ elf_symbol { name: "netif_schedule_queue" is_defined: true symbol_type: FUNCTION - crc: 0xa6c4b461 + crc: 0xeb2a2366 type_id: 0x1604193e full_name: "netif_schedule_queue" } @@ -356959,7 +369500,7 @@ elf_symbol { name: "netif_set_real_num_rx_queues" is_defined: true symbol_type: FUNCTION - crc: 0x62bf8f01 + crc: 0x388fe7b3 type_id: 0x903f7e42 full_name: "netif_set_real_num_rx_queues" } @@ -356968,7 +369509,7 @@ elf_symbol { name: "netif_set_real_num_tx_queues" is_defined: true symbol_type: FUNCTION - crc: 0x2027c077 + crc: 0x36fc53cb type_id: 0x903f7e42 full_name: "netif_set_real_num_tx_queues" } @@ -356977,7 +369518,7 @@ elf_symbol { name: "netif_set_tso_max_segs" is_defined: true symbol_type: FUNCTION - crc: 0xb3f8c200 + crc: 0xb492c97e type_id: 0x1d27ccfe full_name: "netif_set_tso_max_segs" } @@ -356986,7 +369527,7 @@ elf_symbol { name: "netif_set_tso_max_size" is_defined: true symbol_type: FUNCTION - crc: 0x7d5257d0 + crc: 0x09ce7baa type_id: 0x1d27ccfe full_name: "netif_set_tso_max_size" } @@ -356995,7 +369536,7 @@ elf_symbol { name: "netif_stacked_transfer_operstate" is_defined: true symbol_type: FUNCTION - crc: 0x1b5b2099 + crc: 0xe1c8c3b8 type_id: 0x1cb4b808 full_name: "netif_stacked_transfer_operstate" } @@ -357004,7 +369545,7 @@ elf_symbol { name: "netif_tx_lock" is_defined: true symbol_type: FUNCTION - crc: 0x94cb2e96 + crc: 0xa0493d72 type_id: 0x1c31d966 full_name: "netif_tx_lock" } @@ -357013,7 +369554,7 @@ elf_symbol { name: "netif_tx_stop_all_queues" is_defined: true symbol_type: FUNCTION - crc: 0x7cf27fec + crc: 0x926aa810 type_id: 0x1c31d966 full_name: "netif_tx_stop_all_queues" } @@ -357022,7 +369563,7 @@ elf_symbol { name: "netif_tx_unlock" is_defined: true symbol_type: FUNCTION - crc: 0x12521758 + crc: 0xfc1a4b98 type_id: 0x1c31d966 full_name: "netif_tx_unlock" } @@ -357031,7 +369572,7 @@ elf_symbol { name: "netif_tx_wake_queue" is_defined: true symbol_type: FUNCTION - crc: 0xf3ccdcf6 + crc: 0xd329fbdd type_id: 0x1604193e full_name: "netif_tx_wake_queue" } @@ -357040,7 +369581,7 @@ elf_symbol { name: "netlink_ack" is_defined: true symbol_type: FUNCTION - crc: 0x88a23004 + crc: 0xf0e9e509 type_id: 0x119c2286 full_name: "netlink_ack" } @@ -357049,7 +369590,7 @@ elf_symbol { name: "netlink_broadcast" is_defined: true symbol_type: FUNCTION - crc: 0xd8724df0 + crc: 0x65ceed0f type_id: 0x9af58853 full_name: "netlink_broadcast" } @@ -357058,7 +369599,7 @@ elf_symbol { name: "netlink_capable" is_defined: true symbol_type: FUNCTION - crc: 0x78c0a12a + crc: 0xbfa0b419 type_id: 0xf0a03df0 full_name: "netlink_capable" } @@ -357067,7 +369608,7 @@ elf_symbol { name: "netlink_kernel_release" is_defined: true symbol_type: FUNCTION - crc: 0x52220596 + crc: 0x34aa9854 type_id: 0x17c95d08 full_name: "netlink_kernel_release" } @@ -357076,7 +369617,7 @@ elf_symbol { name: "netlink_net_capable" is_defined: true symbol_type: FUNCTION - crc: 0xe0b05fc0 + crc: 0xa30ee563 type_id: 0xf0a03df0 full_name: "netlink_net_capable" } @@ -357094,7 +369635,7 @@ elf_symbol { name: "netlink_unicast" is_defined: true symbol_type: FUNCTION - crc: 0x011e2e4c + crc: 0xd0083f21 type_id: 0x9af70c99 full_name: "netlink_unicast" } @@ -357126,11 +369667,20 @@ elf_symbol { full_name: "nf_conntrack_destroy" } elf_symbol { + id: 0x8b0d44a9 + name: "nf_conntrack_find_get" + is_defined: true + symbol_type: FUNCTION + crc: 0x1c96002d + type_id: 0x65a73fe6 + full_name: "nf_conntrack_find_get" +} +elf_symbol { id: 0xb2e54d47 name: "nf_ct_attach" is_defined: true symbol_type: FUNCTION - crc: 0x9be607ca + crc: 0xb074af92 type_id: 0x1132058e full_name: "nf_ct_attach" } @@ -357139,25 +369689,70 @@ elf_symbol { name: "nf_ct_delete" is_defined: true symbol_type: FUNCTION - crc: 0x2bf8328f + crc: 0xe0ad83f9 type_id: 0xf33b99db full_name: "nf_ct_delete" } elf_symbol { + id: 0xb4e99805 + name: "nf_ct_destroy" + is_defined: true + symbol_type: FUNCTION + crc: 0x3b08a8f0 + type_id: 0x104c9db8 + full_name: "nf_ct_destroy" +} +elf_symbol { + id: 0x471faa17 + name: "nf_ct_get_tuplepr" + is_defined: true + symbol_type: FUNCTION + crc: 0xa5fac5ac + type_id: 0xf0122aeb + full_name: "nf_ct_get_tuplepr" +} +elf_symbol { + id: 0x82e37620 + name: "nf_ct_invert_tuple" + is_defined: true + symbol_type: FUNCTION + crc: 0xfe731af8 + type_id: 0xfebe0504 + full_name: "nf_ct_invert_tuple" +} +elf_symbol { + id: 0x8b1dfb41 + name: "nf_register_net_hook" + is_defined: true + symbol_type: FUNCTION + crc: 0x10b94e6c + type_id: 0x9e67eade + full_name: "nf_register_net_hook" +} +elf_symbol { id: 0x43078d96 name: "nf_register_net_hooks" is_defined: true symbol_type: FUNCTION - crc: 0x7ca541e2 + crc: 0x2adc0ac4 type_id: 0x9e768b87 full_name: "nf_register_net_hooks" } elf_symbol { + id: 0x840dad92 + name: "nf_unregister_net_hook" + is_defined: true + symbol_type: FUNCTION + crc: 0xd4486d5d + type_id: 0x137f5862 + full_name: "nf_unregister_net_hook" +} +elf_symbol { id: 0x619db28f name: "nf_unregister_net_hooks" is_defined: true symbol_type: FUNCTION - crc: 0xb4283c80 + crc: 0xc559e9aa type_id: 0x136e393b full_name: "nf_unregister_net_hooks" } @@ -357166,7 +369761,7 @@ elf_symbol { name: "nfc_add_se" is_defined: true symbol_type: FUNCTION - crc: 0x59b45748 + crc: 0x14914414 type_id: 0x9fbd796f full_name: "nfc_add_se" } @@ -357175,7 +369770,7 @@ elf_symbol { name: "nfc_alloc_recv_skb" is_defined: true symbol_type: FUNCTION - crc: 0xea57cfa3 + crc: 0xc0fa23ef type_id: 0x7a39fbd1 full_name: "nfc_alloc_recv_skb" } @@ -357184,7 +369779,7 @@ elf_symbol { name: "nfc_allocate_device" is_defined: true symbol_type: FUNCTION - crc: 0xb0d42038 + crc: 0xc5f0e6eb type_id: 0x5daa055b full_name: "nfc_allocate_device" } @@ -357193,7 +369788,7 @@ elf_symbol { name: "nfc_class" is_defined: true symbol_type: OBJECT - crc: 0x67ac1270 + crc: 0x7423189d type_id: 0x83714889 full_name: "nfc_class" } @@ -357202,7 +369797,7 @@ elf_symbol { name: "nfc_dep_link_is_up" is_defined: true symbol_type: FUNCTION - crc: 0x9153425b + crc: 0x300fe2d7 type_id: 0x9f93d86d full_name: "nfc_dep_link_is_up" } @@ -357211,7 +369806,7 @@ elf_symbol { name: "nfc_driver_failure" is_defined: true symbol_type: FUNCTION - crc: 0x622a5a02 + crc: 0x553f53fa type_id: 0x10393b5c full_name: "nfc_driver_failure" } @@ -357220,7 +369815,7 @@ elf_symbol { name: "nfc_find_se" is_defined: true symbol_type: FUNCTION - crc: 0xd58a2fb2 + crc: 0xdae3261e type_id: 0xee085698 full_name: "nfc_find_se" } @@ -357229,7 +369824,7 @@ elf_symbol { name: "nfc_fw_download_done" is_defined: true symbol_type: FUNCTION - crc: 0x1684d9d7 + crc: 0xd98e9e33 type_id: 0x9c770a72 full_name: "nfc_fw_download_done" } @@ -357238,7 +369833,7 @@ elf_symbol { name: "nfc_get_local_general_bytes" is_defined: true symbol_type: FUNCTION - crc: 0xc6796ba1 + crc: 0x30d3b7b5 type_id: 0x4bbafb54 full_name: "nfc_get_local_general_bytes" } @@ -357247,7 +369842,7 @@ elf_symbol { name: "nfc_proto_register" is_defined: true symbol_type: FUNCTION - crc: 0x9f47f821 + crc: 0x0e81e449 type_id: 0x9095ed8c full_name: "nfc_proto_register" } @@ -357256,7 +369851,7 @@ elf_symbol { name: "nfc_proto_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xef821bb7 + crc: 0xbda3533d type_id: 0x1d8d5f30 full_name: "nfc_proto_unregister" } @@ -357265,7 +369860,7 @@ elf_symbol { name: "nfc_register_device" is_defined: true symbol_type: FUNCTION - crc: 0x51815363 + crc: 0x95bc479d type_id: 0x9cbd0aac full_name: "nfc_register_device" } @@ -357274,7 +369869,7 @@ elf_symbol { name: "nfc_remove_se" is_defined: true symbol_type: FUNCTION - crc: 0xc0006b80 + crc: 0x22ef28f4 type_id: 0x9f992a00 full_name: "nfc_remove_se" } @@ -357283,7 +369878,7 @@ elf_symbol { name: "nfc_se_connectivity" is_defined: true symbol_type: FUNCTION - crc: 0x1b7bae30 + crc: 0x6c4c75fe type_id: 0x9c187b64 full_name: "nfc_se_connectivity" } @@ -357292,7 +369887,7 @@ elf_symbol { name: "nfc_se_transaction" is_defined: true symbol_type: FUNCTION - crc: 0x9fde8658 + crc: 0x0972f982 type_id: 0x9c1fae0d full_name: "nfc_se_transaction" } @@ -357301,7 +369896,7 @@ elf_symbol { name: "nfc_send_to_raw_sock" is_defined: true symbol_type: FUNCTION - crc: 0xdebda977 + crc: 0x3cfec4e6 type_id: 0x11ba77d9 full_name: "nfc_send_to_raw_sock" } @@ -357310,7 +369905,7 @@ elf_symbol { name: "nfc_set_remote_general_bytes" is_defined: true symbol_type: FUNCTION - crc: 0xecb6298a + crc: 0x793bfe07 type_id: 0x9c4b5ba7 full_name: "nfc_set_remote_general_bytes" } @@ -357319,7 +369914,7 @@ elf_symbol { name: "nfc_target_lost" is_defined: true symbol_type: FUNCTION - crc: 0x1d89e2a8 + crc: 0xfb95b9e9 type_id: 0x9f992a00 full_name: "nfc_target_lost" } @@ -357328,7 +369923,7 @@ elf_symbol { name: "nfc_targets_found" is_defined: true symbol_type: FUNCTION - crc: 0x892ee54e + crc: 0x0b682880 type_id: 0x9c908368 full_name: "nfc_targets_found" } @@ -357337,7 +369932,7 @@ elf_symbol { name: "nfc_tm_activated" is_defined: true symbol_type: FUNCTION - crc: 0x8e5c1c85 + crc: 0xf614a521 type_id: 0x9f93bc17 full_name: "nfc_tm_activated" } @@ -357346,7 +369941,7 @@ elf_symbol { name: "nfc_tm_data_received" is_defined: true symbol_type: FUNCTION - crc: 0x7c16d6ad + crc: 0xa3cf6558 type_id: 0x9ca83708 full_name: "nfc_tm_data_received" } @@ -357355,7 +369950,7 @@ elf_symbol { name: "nfc_tm_deactivated" is_defined: true symbol_type: FUNCTION - crc: 0x1a063cad + crc: 0x99db2fa9 type_id: 0x9cbd0aac full_name: "nfc_tm_deactivated" } @@ -357364,7 +369959,7 @@ elf_symbol { name: "nfc_unregister_device" is_defined: true symbol_type: FUNCTION - crc: 0x49cb65a8 + crc: 0xc23bba80 type_id: 0x11a5b810 full_name: "nfc_unregister_device" } @@ -357373,7 +369968,7 @@ elf_symbol { name: "nfc_vendor_cmd_reply" is_defined: true symbol_type: FUNCTION - crc: 0x8f1c7cd1 + crc: 0x28a74112 type_id: 0x9cd33969 full_name: "nfc_vendor_cmd_reply" } @@ -357450,6 +370045,15 @@ elf_symbol { full_name: "nla_strscpy" } elf_symbol { + id: 0x39787440 + name: "node_states" + is_defined: true + symbol_type: OBJECT + crc: 0xe7b7da04 + type_id: 0x8483d98a + full_name: "node_states" +} +elf_symbol { id: 0x7f258c4e name: "nonseekable_open" is_defined: true @@ -357468,6 +370072,15 @@ elf_symbol { full_name: "noop_llseek" } elf_symbol { + id: 0x16059afd + name: "notify_change" + is_defined: true + symbol_type: FUNCTION + crc: 0x1869b2a0 + type_id: 0x9e20f17d + full_name: "notify_change" +} +elf_symbol { id: 0x1560f116 name: "nr_cpu_ids" is_defined: true @@ -357495,6 +370108,15 @@ elf_symbol { full_name: "nr_irqs" } elf_symbol { + id: 0xea37502b + name: "nr_running" + is_defined: true + symbol_type: FUNCTION + crc: 0x909a8abf + type_id: 0xcedb7efb + full_name: "nr_running" +} +elf_symbol { id: 0x0bb7f730 name: "nr_swap_pages" is_defined: true @@ -357733,7 +370355,7 @@ elf_symbol { name: "of_can_transceiver" is_defined: true symbol_type: FUNCTION - crc: 0xac3ba136 + crc: 0x9b5bbda7 type_id: 0x1c31d966 full_name: "of_can_transceiver" } @@ -357895,7 +370517,7 @@ elf_symbol { name: "of_css" is_defined: true symbol_type: FUNCTION - crc: 0x5cf2d909 + crc: 0x53833923 type_id: 0xcde52a7c full_name: "of_css" } @@ -358053,6 +370675,15 @@ elf_symbol { full_name: "of_drm_get_panel_orientation" } elf_symbol { + id: 0x33b9622b + name: "of_find_all_nodes" + is_defined: true + symbol_type: FUNCTION + crc: 0x65267db7 + type_id: 0x7bef1e3b + full_name: "of_find_all_nodes" +} +elf_symbol { id: 0x985c43d8 name: "of_find_backlight_by_node" is_defined: true @@ -358269,6 +370900,15 @@ elf_symbol { full_name: "of_get_display_timing" } elf_symbol { + id: 0x05a46d27 + name: "of_get_drm_display_mode" + is_defined: true + symbol_type: FUNCTION + crc: 0x884bdf07 + type_id: 0x9038705c + full_name: "of_get_drm_display_mode" +} +elf_symbol { id: 0xe3de7018 name: "of_get_i2c_adapter_by_node" is_defined: true @@ -358282,7 +370922,7 @@ elf_symbol { name: "of_get_mac_address" is_defined: true symbol_type: FUNCTION - crc: 0xcacf8764 + crc: 0x3ae64267 type_id: 0x909f3f56 full_name: "of_get_mac_address" } @@ -358345,7 +370985,7 @@ elf_symbol { name: "of_get_phy_mode" is_defined: true symbol_type: FUNCTION - crc: 0x4fce9b2d + crc: 0xdd4a48d8 type_id: 0x90588e4c full_name: "of_get_phy_mode" } @@ -358440,6 +371080,15 @@ elf_symbol { full_name: "of_graph_get_remote_node" } elf_symbol { + id: 0x9539ac95 + name: "of_graph_get_remote_port" + is_defined: true + symbol_type: FUNCTION + crc: 0xc8fcc975 + type_id: 0x7a78fdc4 + full_name: "of_graph_get_remote_port" +} +elf_symbol { id: 0xc699a239 name: "of_graph_get_remote_port_parent" is_defined: true @@ -358687,7 +371336,7 @@ elf_symbol { name: "of_phy_connect" is_defined: true symbol_type: FUNCTION - crc: 0x2f9c3853 + crc: 0xec6d7f86 type_id: 0xbfa66420 full_name: "of_phy_connect" } @@ -358696,7 +371345,7 @@ elf_symbol { name: "of_phy_deregister_fixed_link" is_defined: true symbol_type: FUNCTION - crc: 0xce61dda2 + crc: 0x66292e86 type_id: 0x1d84917e full_name: "of_phy_deregister_fixed_link" } @@ -358705,7 +371354,7 @@ elf_symbol { name: "of_phy_find_device" is_defined: true symbol_type: FUNCTION - crc: 0xaa17d52e + crc: 0xc0e75a06 type_id: 0xbec298be full_name: "of_phy_find_device" } @@ -358723,7 +371372,7 @@ elf_symbol { name: "of_phy_is_fixed_link" is_defined: true symbol_type: FUNCTION - crc: 0x1a089418 + crc: 0xb45076e5 type_id: 0xf3b89be9 full_name: "of_phy_is_fixed_link" } @@ -358732,7 +371381,7 @@ elf_symbol { name: "of_phy_register_fixed_link" is_defined: true symbol_type: FUNCTION - crc: 0x9c349953 + crc: 0x5b8fe935 type_id: 0x909c23c2 full_name: "of_phy_register_fixed_link" } @@ -358746,6 +371395,15 @@ elf_symbol { full_name: "of_phy_simple_xlate" } elf_symbol { + id: 0xb27a823c + name: "of_pinctrl_get" + is_defined: true + symbol_type: FUNCTION + crc: 0xdcb4edab + type_id: 0xe2abbe2e + full_name: "of_pinctrl_get" +} +elf_symbol { id: 0x840bde05 name: "of_platform_depopulate" is_defined: true @@ -359016,6 +371674,15 @@ elf_symbol { full_name: "of_translate_address" } elf_symbol { + id: 0xee187039 + name: "of_usb_get_dr_mode_by_phy" + is_defined: true + symbol_type: FUNCTION + crc: 0x2ea7a3cd + type_id: 0x66525607 + full_name: "of_usb_get_dr_mode_by_phy" +} +elf_symbol { id: 0x7d8fe18b name: "of_usb_get_phy_mode" is_defined: true @@ -359074,11 +371741,20 @@ elf_symbol { name: "open_candev" is_defined: true symbol_type: FUNCTION - crc: 0x4d95ed99 + crc: 0x0dd3afa3 type_id: 0x91296bda full_name: "open_candev" } elf_symbol { + id: 0x67bce5b1 + name: "orderly_poweroff" + is_defined: true + symbol_type: FUNCTION + crc: 0x56256e8a + type_id: 0x0bc7866e + full_name: "orderly_poweroff" +} +elf_symbol { id: 0x57ecab02 name: "out_of_line_wait_on_bit" is_defined: true @@ -359106,6 +371782,24 @@ elf_symbol { full_name: "overflowuid" } elf_symbol { + id: 0xdea2b008 + name: "page_cache_next_miss" + is_defined: true + symbol_type: FUNCTION + crc: 0x8865f190 + type_id: 0x340d6f59 + full_name: "page_cache_next_miss" +} +elf_symbol { + id: 0xdf2c83f5 + name: "page_cache_prev_miss" + is_defined: true + symbol_type: FUNCTION + crc: 0x01049f80 + type_id: 0x340d6f59 + full_name: "page_cache_prev_miss" +} +elf_symbol { id: 0x60d84cc3 name: "page_endio" is_defined: true @@ -359172,6 +371866,15 @@ elf_symbol { full_name: "page_mapping" } elf_symbol { + id: 0x8cc91d1b + name: "page_owner_inited" + is_defined: true + symbol_type: OBJECT + crc: 0xda1512e5 + type_id: 0x8e47c273 + full_name: "page_owner_inited" +} +elf_symbol { id: 0x44e50ff8 name: "page_pinner_inited" is_defined: true @@ -359217,6 +371920,15 @@ elf_symbol { full_name: "page_pool_put_defragged_page" } elf_symbol { + id: 0x7490fd3a + name: "page_pool_put_page_bulk" + is_defined: true + symbol_type: FUNCTION + crc: 0x898d9639 + type_id: 0x1462512b + full_name: "page_pool_put_page_bulk" +} +elf_symbol { id: 0xfdf9f7ee name: "page_pool_release_page" is_defined: true @@ -359253,6 +371965,33 @@ elf_symbol { full_name: "page_reporting_unregister" } elf_symbol { + id: 0x4271852e + name: "page_zero_new_buffers" + is_defined: true + symbol_type: FUNCTION + crc: 0x670fcbd9 + type_id: 0x103ff2f5 + full_name: "page_zero_new_buffers" +} +elf_symbol { + id: 0x0fe80546 + name: "pagecache_get_page" + is_defined: true + symbol_type: FUNCTION + crc: 0xcba46f3c + type_id: 0xb82f817c + full_name: "pagecache_get_page" +} +elf_symbol { + id: 0x9b003f99 + name: "pagevec_lookup_range_tag" + is_defined: true + symbol_type: FUNCTION + crc: 0xb9dae17e + type_id: 0xcfac76b5 + full_name: "pagevec_lookup_range_tag" +} +elf_symbol { id: 0x37d86bb7 name: "panic" is_defined: true @@ -359496,6 +372235,15 @@ elf_symbol { full_name: "param_set_uint" } elf_symbol { + id: 0xe48076c0 + name: "param_set_uint_minmax" + is_defined: true + symbol_type: FUNCTION + crc: 0x4d337ca1 + type_id: 0x92d2af21 + full_name: "param_set_uint_minmax" +} +elf_symbol { id: 0x1eafdf64 name: "param_set_ulong" is_defined: true @@ -359509,7 +372257,7 @@ elf_symbol { name: "passthru_features_check" is_defined: true symbol_type: FUNCTION - crc: 0xcec52659 + crc: 0x66386708 type_id: 0xa739c6fb full_name: "passthru_features_check" } @@ -359685,6 +372433,15 @@ elf_symbol { full_name: "pci_disable_msix" } elf_symbol { + id: 0xc3f9d559 + name: "pci_disable_pcie_error_reporting" + is_defined: true + symbol_type: FUNCTION + crc: 0xb4006e89 + type_id: 0x99f942bc + full_name: "pci_disable_pcie_error_reporting" +} +elf_symbol { id: 0xb9d0b3a8 name: "pci_disable_sriov" is_defined: true @@ -359802,6 +372559,15 @@ elf_symbol { full_name: "pci_find_next_capability" } elf_symbol { + id: 0x08190210 + name: "pci_free_irq" + is_defined: true + symbol_type: FUNCTION + crc: 0xdaf171ab + type_id: 0x15f1cac1 + full_name: "pci_free_irq" +} +elf_symbol { id: 0x8ffabaa9 name: "pci_free_irq_vectors" is_defined: true @@ -359901,6 +372667,15 @@ elf_symbol { full_name: "pci_iomap_range" } elf_symbol { + id: 0x1c994923 + name: "pci_ioremap_bar" + is_defined: true + symbol_type: FUNCTION + crc: 0xccd07b76 + type_id: 0x5373932e + full_name: "pci_ioremap_bar" +} +elf_symbol { id: 0xec861eec name: "pci_iounmap" is_defined: true @@ -360099,6 +372874,15 @@ elf_symbol { full_name: "pci_remove_root_bus" } elf_symbol { + id: 0xf6896e34 + name: "pci_request_irq" + is_defined: true + symbol_type: FUNCTION + crc: 0x17161b4b + type_id: 0x98da7fb1 + full_name: "pci_request_irq" +} +elf_symbol { id: 0x324ff23b name: "pci_request_region" is_defined: true @@ -360405,6 +373189,15 @@ elf_symbol { full_name: "percpu_counter_add_batch" } elf_symbol { + id: 0x7efbd192 + name: "percpu_counter_batch" + is_defined: true + symbol_type: OBJECT + crc: 0x05240ee7 + type_id: 0x6720d32f + full_name: "percpu_counter_batch" +} +elf_symbol { id: 0x22f7748e name: "percpu_down_write" is_defined: true @@ -360463,7 +373256,7 @@ elf_symbol { name: "perf_event_addr_filters_sync" is_defined: true symbol_type: FUNCTION - crc: 0x6872ac06 + crc: 0x38179b01 type_id: 0x17ebd264 full_name: "perf_event_addr_filters_sync" } @@ -360472,7 +373265,7 @@ elf_symbol { name: "perf_event_create_kernel_counter" is_defined: true symbol_type: FUNCTION - crc: 0xab234d3c + crc: 0xec670350 type_id: 0x86d5804d full_name: "perf_event_create_kernel_counter" } @@ -360481,7 +373274,7 @@ elf_symbol { name: "perf_event_disable" is_defined: true symbol_type: FUNCTION - crc: 0x70efd5dd + crc: 0x122937d6 type_id: 0x17ebd264 full_name: "perf_event_disable" } @@ -360490,7 +373283,7 @@ elf_symbol { name: "perf_event_enable" is_defined: true symbol_type: FUNCTION - crc: 0x13cdc4a6 + crc: 0x365495cb type_id: 0x17ebd264 full_name: "perf_event_enable" } @@ -360499,7 +373292,7 @@ elf_symbol { name: "perf_event_pause" is_defined: true symbol_type: FUNCTION - crc: 0x70c2bdee + crc: 0x3893a7ad type_id: 0x511dadc3 full_name: "perf_event_pause" } @@ -360508,7 +373301,7 @@ elf_symbol { name: "perf_event_read_local" is_defined: true symbol_type: FUNCTION - crc: 0x428ea30b + crc: 0x92d2a53c type_id: 0x9a403d53 full_name: "perf_event_read_local" } @@ -360517,7 +373310,7 @@ elf_symbol { name: "perf_event_read_value" is_defined: true symbol_type: FUNCTION - crc: 0x9590abf2 + crc: 0xf865847b type_id: 0x501bb554 full_name: "perf_event_read_value" } @@ -360526,7 +373319,7 @@ elf_symbol { name: "perf_event_release_kernel" is_defined: true symbol_type: FUNCTION - crc: 0x9311703f + crc: 0x8f87c75e type_id: 0x9af360d8 full_name: "perf_event_release_kernel" } @@ -360535,7 +373328,7 @@ elf_symbol { name: "perf_event_update_userpage" is_defined: true symbol_type: FUNCTION - crc: 0xb32b65ee + crc: 0xda17a52b type_id: 0x17ebd264 full_name: "perf_event_update_userpage" } @@ -360553,7 +373346,7 @@ elf_symbol { name: "perf_pmu_migrate_context" is_defined: true symbol_type: FUNCTION - crc: 0x1c185e02 + crc: 0xa1cef50f type_id: 0x1fd9a8d3 full_name: "perf_pmu_migrate_context" } @@ -360562,7 +373355,7 @@ elf_symbol { name: "perf_pmu_register" is_defined: true symbol_type: FUNCTION - crc: 0xfe3e6e79 + crc: 0x6c4d6bcb type_id: 0x93a5dbf7 full_name: "perf_pmu_register" } @@ -360571,7 +373364,7 @@ elf_symbol { name: "perf_pmu_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x7508a4ad + crc: 0x0551ee8a type_id: 0x1e5ce3ab full_name: "perf_pmu_unregister" } @@ -360589,7 +373382,7 @@ elf_symbol { name: "perf_trace_run_bpf_submit" is_defined: true symbol_type: FUNCTION - crc: 0x1df68558 + crc: 0xd1fcd174 type_id: 0x1732fd5e full_name: "perf_trace_run_bpf_submit" } @@ -360607,7 +373400,7 @@ elf_symbol { name: "phy_attached_info" is_defined: true symbol_type: FUNCTION - crc: 0xd2337305 + crc: 0x2cbec35d type_id: 0x1cc5f9b2 full_name: "phy_attached_info" } @@ -360643,16 +373436,25 @@ elf_symbol { name: "phy_connect" is_defined: true symbol_type: FUNCTION - crc: 0x5962de34 + crc: 0x722009c6 type_id: 0xbf8f4ed4 full_name: "phy_connect" } elf_symbol { + id: 0x866cf90c + name: "phy_connect_direct" + is_defined: true + symbol_type: FUNCTION + crc: 0xa779f726 + type_id: 0x91ec6dfe + full_name: "phy_connect_direct" +} +elf_symbol { id: 0x5ebc16d0 name: "phy_disconnect" is_defined: true symbol_type: FUNCTION - crc: 0xa958800f + crc: 0xf6666797 type_id: 0x1cc5f9b2 full_name: "phy_disconnect" } @@ -360661,7 +373463,7 @@ elf_symbol { name: "phy_do_ioctl_running" is_defined: true symbol_type: FUNCTION - crc: 0x3963ca54 + crc: 0x27a5d553 type_id: 0x91e86e2c full_name: "phy_do_ioctl_running" } @@ -360670,7 +373472,7 @@ elf_symbol { name: "phy_drivers_register" is_defined: true symbol_type: FUNCTION - crc: 0xada98dbd + crc: 0x3b3379dd type_id: 0x9c907da6 full_name: "phy_drivers_register" } @@ -360679,7 +373481,7 @@ elf_symbol { name: "phy_drivers_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xe9564e3a + crc: 0x7fc6f5a5 type_id: 0x118a06ed full_name: "phy_drivers_unregister" } @@ -360688,7 +373490,7 @@ elf_symbol { name: "phy_error" is_defined: true symbol_type: FUNCTION - crc: 0xcc9696db + crc: 0x323b8b1b type_id: 0x1cc5f9b2 full_name: "phy_error" } @@ -360697,7 +373499,7 @@ elf_symbol { name: "phy_ethtool_get_eee" is_defined: true symbol_type: FUNCTION - crc: 0xb3d11e9d + crc: 0xb57b5d86 type_id: 0x9143ff1f full_name: "phy_ethtool_get_eee" } @@ -360706,7 +373508,7 @@ elf_symbol { name: "phy_ethtool_get_link_ksettings" is_defined: true symbol_type: FUNCTION - crc: 0xbd8f92ca + crc: 0x8f5b2672 type_id: 0x914dbe16 full_name: "phy_ethtool_get_link_ksettings" } @@ -360715,7 +373517,7 @@ elf_symbol { name: "phy_ethtool_get_wol" is_defined: true symbol_type: FUNCTION - crc: 0xd39d149e + crc: 0xafd590df type_id: 0x1c416a95 full_name: "phy_ethtool_get_wol" } @@ -360724,7 +373526,7 @@ elf_symbol { name: "phy_ethtool_nway_reset" is_defined: true symbol_type: FUNCTION - crc: 0x28ff8f38 + crc: 0x48c1184b type_id: 0x91296bda full_name: "phy_ethtool_nway_reset" } @@ -360733,7 +373535,7 @@ elf_symbol { name: "phy_ethtool_set_eee" is_defined: true symbol_type: FUNCTION - crc: 0x7717dcfc + crc: 0x264f1d18 type_id: 0x9143ff1f full_name: "phy_ethtool_set_eee" } @@ -360742,7 +373544,7 @@ elf_symbol { name: "phy_ethtool_set_link_ksettings" is_defined: true symbol_type: FUNCTION - crc: 0xc22427b5 + crc: 0x04728e16 type_id: 0x91cc9f9b full_name: "phy_ethtool_set_link_ksettings" } @@ -360751,7 +373553,7 @@ elf_symbol { name: "phy_ethtool_set_wol" is_defined: true symbol_type: FUNCTION - crc: 0x94935ebb + crc: 0x47da9c22 type_id: 0x9159d829 full_name: "phy_ethtool_set_wol" } @@ -360765,6 +373567,15 @@ elf_symbol { full_name: "phy_exit" } elf_symbol { + id: 0x6cf83bd0 + name: "phy_find_first" + is_defined: true + symbol_type: FUNCTION + crc: 0x8d92c7a5 + type_id: 0xbeab1c63 + full_name: "phy_find_first" +} +elf_symbol { id: 0x0dfe21ad name: "phy_get" is_defined: true @@ -360774,6 +373585,15 @@ elf_symbol { full_name: "phy_get" } elf_symbol { + id: 0x7de90fab + name: "phy_get_pause" + is_defined: true + symbol_type: FUNCTION + crc: 0x7d110178 + type_id: 0x1c86b5f0 + full_name: "phy_get_pause" +} +elf_symbol { id: 0x30e87de6 name: "phy_init" is_defined: true @@ -360787,7 +373607,7 @@ elf_symbol { name: "phy_init_eee" is_defined: true symbol_type: FUNCTION - crc: 0x16ab32e7 + crc: 0xdfdacaab type_id: 0x9068b671 full_name: "phy_init_eee" } @@ -360796,7 +373616,7 @@ elf_symbol { name: "phy_init_hw" is_defined: true symbol_type: FUNCTION - crc: 0x9700b256 + crc: 0xc023e570 type_id: 0x91dd4b0e full_name: "phy_init_hw" } @@ -360805,7 +373625,7 @@ elf_symbol { name: "phy_mac_interrupt" is_defined: true symbol_type: FUNCTION - crc: 0x94ac8cdc + crc: 0x27f43e0b type_id: 0x1cc5f9b2 full_name: "phy_mac_interrupt" } @@ -360814,11 +373634,20 @@ elf_symbol { name: "phy_mii_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0x56f710d5 + crc: 0xd5c9bdfb type_id: 0x911c4ef8 full_name: "phy_mii_ioctl" } elf_symbol { + id: 0xce039362 + name: "phy_mipi_dphy_config_validate" + is_defined: true + symbol_type: FUNCTION + crc: 0x881bad5e + type_id: 0x94418fe1 + full_name: "phy_mipi_dphy_config_validate" +} +elf_symbol { id: 0x890d0269 name: "phy_mipi_dphy_get_default_config" is_defined: true @@ -360922,7 +373751,7 @@ elf_symbol { name: "phy_print_status" is_defined: true symbol_type: FUNCTION - crc: 0x64224132 + crc: 0x1f2f9e6c type_id: 0x1cc5f9b2 full_name: "phy_print_status" } @@ -360958,7 +373787,7 @@ elf_symbol { name: "phy_remove_link_mode" is_defined: true symbol_type: FUNCTION - crc: 0x2e51edc1 + crc: 0xf2f81652 type_id: 0x1fe1d91e full_name: "phy_remove_link_mode" } @@ -360976,7 +373805,7 @@ elf_symbol { name: "phy_reset_after_clk_enable" is_defined: true symbol_type: FUNCTION - crc: 0x9980f451 + crc: 0x9bedd078 type_id: 0x91dd4b0e full_name: "phy_reset_after_clk_enable" } @@ -361039,7 +373868,7 @@ elf_symbol { name: "phy_set_sym_pause" is_defined: true symbol_type: FUNCTION - crc: 0x3c9947cc + crc: 0xcc9f86fe type_id: 0x1d6aeee7 full_name: "phy_set_sym_pause" } @@ -361066,7 +373895,7 @@ elf_symbol { name: "phy_sfp_probe" is_defined: true symbol_type: FUNCTION - crc: 0xf0e247e0 + crc: 0x6d414d50 type_id: 0x9109cd4f full_name: "phy_sfp_probe" } @@ -361075,7 +373904,7 @@ elf_symbol { name: "phy_start" is_defined: true symbol_type: FUNCTION - crc: 0x85576d4f + crc: 0x6437d5ef type_id: 0x1cc5f9b2 full_name: "phy_start" } @@ -361084,7 +373913,7 @@ elf_symbol { name: "phy_start_aneg" is_defined: true symbol_type: FUNCTION - crc: 0x376df60d + crc: 0xd1def3dd type_id: 0x91dd4b0e full_name: "phy_start_aneg" } @@ -361093,7 +373922,7 @@ elf_symbol { name: "phy_stop" is_defined: true symbol_type: FUNCTION - crc: 0xe239bdda + crc: 0x535c4112 type_id: 0x1cc5f9b2 full_name: "phy_stop" } @@ -361102,7 +373931,7 @@ elf_symbol { name: "phy_support_sym_pause" is_defined: true symbol_type: FUNCTION - crc: 0x5fe92db2 + crc: 0xfeed8142 type_id: 0x1cc5f9b2 full_name: "phy_support_sym_pause" } @@ -361111,7 +373940,7 @@ elf_symbol { name: "phy_suspend" is_defined: true symbol_type: FUNCTION - crc: 0x3293c626 + crc: 0x59e2fe57 type_id: 0x91dd4b0e full_name: "phy_suspend" } @@ -361120,7 +373949,7 @@ elf_symbol { name: "phy_trigger_machine" is_defined: true symbol_type: FUNCTION - crc: 0xc39088da + crc: 0x7a84fa9c type_id: 0x1cc5f9b2 full_name: "phy_trigger_machine" } @@ -361156,7 +373985,7 @@ elf_symbol { name: "phylink_connect_phy" is_defined: true symbol_type: FUNCTION - crc: 0x43a0588c + crc: 0x8499b592 type_id: 0x92ed801d full_name: "phylink_connect_phy" } @@ -361165,7 +373994,7 @@ elf_symbol { name: "phylink_create" is_defined: true symbol_type: FUNCTION - crc: 0xb2168894 + crc: 0xbf6f5524 type_id: 0xe2c8401b full_name: "phylink_create" } @@ -361269,11 +374098,20 @@ elf_symbol { full_name: "phylink_ethtool_set_wol" } elf_symbol { + id: 0x03646fd6 + name: "phylink_expects_phy" + is_defined: true + symbol_type: FUNCTION + crc: 0x4278d56a + type_id: 0xf10ce2b4 + full_name: "phylink_expects_phy" +} +elf_symbol { id: 0x2c092465 name: "phylink_fwnode_phy_connect" is_defined: true symbol_type: FUNCTION - crc: 0xcd5ea1c0 + crc: 0xa593752f type_id: 0x92085a78 full_name: "phylink_fwnode_phy_connect" } @@ -361282,7 +374120,7 @@ elf_symbol { name: "phylink_generic_validate" is_defined: true symbol_type: FUNCTION - crc: 0xbf4ce266 + crc: 0xfba18256 type_id: 0x1dc83ab4 full_name: "phylink_generic_validate" } @@ -361336,7 +374174,7 @@ elf_symbol { name: "phylink_of_phy_connect" is_defined: true symbol_type: FUNCTION - crc: 0x5c721acf + crc: 0xc5b3292e type_id: 0x92cbd49b full_name: "phylink_of_phy_connect" } @@ -361417,7 +374255,7 @@ elf_symbol { name: "pick_migrate_task" is_defined: true symbol_type: FUNCTION - crc: 0x08f5780c + crc: 0x8549348b type_id: 0x70cd0122 full_name: "pick_migrate_task" } @@ -361426,7 +374264,7 @@ elf_symbol { name: "pid_nr_ns" is_defined: true symbol_type: FUNCTION - crc: 0xa391f696 + crc: 0x6e76f179 type_id: 0xd6b27f6b full_name: "pid_nr_ns" } @@ -361435,7 +374273,7 @@ elf_symbol { name: "pid_task" is_defined: true symbol_type: FUNCTION - crc: 0xf5c2b04a + crc: 0x564f2dac type_id: 0x7f0f4bf3 full_name: "pid_task" } @@ -361530,6 +374368,15 @@ elf_symbol { full_name: "pinctrl_enable" } elf_symbol { + id: 0x35b1ed7b + name: "pinctrl_find_gpio_range_from_pin" + is_defined: true + symbol_type: FUNCTION + crc: 0x25629e8a + type_id: 0x1a1c4881 + full_name: "pinctrl_find_gpio_range_from_pin" +} +elf_symbol { id: 0xf8bcc2db name: "pinctrl_force_default" is_defined: true @@ -361755,6 +374602,15 @@ elf_symbol { full_name: "pinctrl_utils_reserve_map" } elf_symbol { + id: 0x62c010b9 + name: "pinmux_generic_add_function" + is_defined: true + symbol_type: FUNCTION + crc: 0x6264567f + type_id: 0x9ba346af + full_name: "pinmux_generic_add_function" +} +elf_symbol { id: 0x013abbf5 name: "pinmux_generic_get_function" is_defined: true @@ -361813,7 +374669,7 @@ elf_symbol { name: "pktgen_xfrm_outer_mode_output" is_defined: true symbol_type: FUNCTION - crc: 0xd2c0afff + crc: 0x72b73c41 type_id: 0x9cd82046 full_name: "pktgen_xfrm_outer_mode_output" } @@ -361980,6 +374836,15 @@ elf_symbol { full_name: "platform_find_device_by_driver" } elf_symbol { + id: 0x072cf683 + name: "platform_get_ethdev_address" + is_defined: true + symbol_type: FUNCTION + crc: 0x89592771 + type_id: 0x9ddc45fb + full_name: "platform_get_ethdev_address" +} +elf_symbol { id: 0xb11c92aa name: "platform_get_irq" is_defined: true @@ -362097,6 +374962,15 @@ elf_symbol { full_name: "pm_clk_add" } elf_symbol { + id: 0x5b13a53d + name: "pm_clk_add_clk" + is_defined: true + symbol_type: FUNCTION + crc: 0x319b67c2 + type_id: 0x9de1e6d5 + full_name: "pm_clk_add_clk" +} +elf_symbol { id: 0xaba73bf2 name: "pm_clk_create" is_defined: true @@ -362349,6 +375223,15 @@ elf_symbol { full_name: "pm_runtime_set_autosuspend_delay" } elf_symbol { + id: 0xe263dcb4 + name: "pm_schedule_suspend" + is_defined: true + symbol_type: FUNCTION + crc: 0xe5c44150 + type_id: 0x9c00c8ec + full_name: "pm_schedule_suspend" +} +elf_symbol { id: 0x59caaeac name: "pm_stay_awake" is_defined: true @@ -362457,6 +375340,15 @@ elf_symbol { full_name: "power_supply_changed" } elf_symbol { + id: 0x50bfe1d8 + name: "power_supply_class" + is_defined: true + symbol_type: OBJECT + crc: 0x3e11d97d + type_id: 0x2a4c6b85 + full_name: "power_supply_class" +} +elf_symbol { id: 0xa9ebbb66 name: "power_supply_find_ocv2cap_table" is_defined: true @@ -362520,6 +375412,15 @@ elf_symbol { full_name: "power_supply_get_property" } elf_symbol { + id: 0xf20efe74 + name: "power_supply_get_property_from_supplier" + is_defined: true + symbol_type: FUNCTION + crc: 0xf188af38 + type_id: 0x9ba3144f + full_name: "power_supply_get_property_from_supplier" +} +elf_symbol { id: 0xd28bb85a name: "power_supply_is_system_supplied" is_defined: true @@ -362614,7 +375515,7 @@ elf_symbol { name: "ppp_channel_index" is_defined: true symbol_type: FUNCTION - crc: 0x1a60aaa1 + crc: 0x327e4f33 type_id: 0x99a901c1 full_name: "ppp_channel_index" } @@ -362623,7 +375524,7 @@ elf_symbol { name: "ppp_dev_name" is_defined: true symbol_type: FUNCTION - crc: 0xe0f005ad + crc: 0x2a0f447d type_id: 0x3a17e325 full_name: "ppp_dev_name" } @@ -362632,7 +375533,7 @@ elf_symbol { name: "ppp_input" is_defined: true symbol_type: FUNCTION - crc: 0xfa82e0c5 + crc: 0x5718e0ba type_id: 0x14a48ed9 full_name: "ppp_input" } @@ -362641,7 +375542,7 @@ elf_symbol { name: "ppp_input_error" is_defined: true symbol_type: FUNCTION - crc: 0x276ab59d + crc: 0xbdaf528c type_id: 0x152d3031 full_name: "ppp_input_error" } @@ -362650,7 +375551,7 @@ elf_symbol { name: "ppp_output_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0x5049d24a + crc: 0x601b0da8 type_id: 0x14b1b37d full_name: "ppp_output_wakeup" } @@ -362659,7 +375560,7 @@ elf_symbol { name: "ppp_register_channel" is_defined: true symbol_type: FUNCTION - crc: 0x524dfd11 + crc: 0x621da830 type_id: 0x99a901c1 full_name: "ppp_register_channel" } @@ -362668,7 +375569,7 @@ elf_symbol { name: "ppp_register_compressor" is_defined: true symbol_type: FUNCTION - crc: 0x7c012982 + crc: 0x8433847c type_id: 0x90dc3d3e full_name: "ppp_register_compressor" } @@ -362677,7 +375578,7 @@ elf_symbol { name: "ppp_register_net_channel" is_defined: true symbol_type: FUNCTION - crc: 0xfa813624 + crc: 0x2f4ffc7e type_id: 0x9eeae021 full_name: "ppp_register_net_channel" } @@ -362686,7 +375587,7 @@ elf_symbol { name: "ppp_unit_number" is_defined: true symbol_type: FUNCTION - crc: 0x2e9c1e6a + crc: 0x602b6e54 type_id: 0x99a901c1 full_name: "ppp_unit_number" } @@ -362695,7 +375596,7 @@ elf_symbol { name: "ppp_unregister_channel" is_defined: true symbol_type: FUNCTION - crc: 0xebf93d27 + crc: 0x5964a2a8 type_id: 0x14b1b37d full_name: "ppp_unregister_channel" } @@ -362704,7 +375605,7 @@ elf_symbol { name: "ppp_unregister_compressor" is_defined: true symbol_type: FUNCTION - crc: 0xa26eaaf7 + crc: 0x6e8c0e61 type_id: 0x1dc48f82 full_name: "ppp_unregister_compressor" } @@ -362713,7 +375614,7 @@ elf_symbol { name: "pppox_compat_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0x432a1d46 + crc: 0x96106b85 type_id: 0x9882219f full_name: "pppox_compat_ioctl" } @@ -362722,7 +375623,7 @@ elf_symbol { name: "pppox_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0x5abce76e + crc: 0xbe91e020 type_id: 0x9882219f full_name: "pppox_ioctl" } @@ -362731,7 +375632,7 @@ elf_symbol { name: "pppox_unbind_sock" is_defined: true symbol_type: FUNCTION - crc: 0x1593eb15 + crc: 0x35a33ed7 type_id: 0x17c95d08 full_name: "pppox_unbind_sock" } @@ -362848,7 +375749,7 @@ elf_symbol { name: "proc_create_net_data" is_defined: true symbol_type: FUNCTION - crc: 0x806744a0 + crc: 0x7551a863 type_id: 0x3943cd14 full_name: "proc_create_net_data" } @@ -362857,7 +375758,7 @@ elf_symbol { name: "proc_create_net_single" is_defined: true symbol_type: FUNCTION - crc: 0x9e34c6ce + crc: 0xb513532d type_id: 0x39439154 full_name: "proc_create_net_single" } @@ -362992,7 +375893,7 @@ elf_symbol { name: "proto_register" is_defined: true symbol_type: FUNCTION - crc: 0x7560535f + crc: 0x4feb4ee3 type_id: 0x92e29590 full_name: "proto_register" } @@ -363001,7 +375902,7 @@ elf_symbol { name: "proto_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x72f2f9f9 + crc: 0xa56e6382 type_id: 0x1e66a460 full_name: "proto_unregister" } @@ -363100,7 +376001,7 @@ elf_symbol { name: "pskb_expand_head" is_defined: true symbol_type: FUNCTION - crc: 0x3c897f06 + crc: 0x4d1a048c type_id: 0x9d55b48a full_name: "pskb_expand_head" } @@ -363109,11 +376010,20 @@ elf_symbol { name: "pskb_put" is_defined: true symbol_type: FUNCTION - crc: 0xa5073e19 + crc: 0xd6916a65 type_id: 0x57c99e27 full_name: "pskb_put" } elf_symbol { + id: 0x3758c51f + name: "pskb_trim_rcsum_slow" + is_defined: true + symbol_type: FUNCTION + crc: 0xda1052b5 + type_id: 0x9dc52cf1 + full_name: "pskb_trim_rcsum_slow" +} +elf_symbol { id: 0xea6abe92 name: "pstore_register" is_defined: true @@ -363145,7 +376055,7 @@ elf_symbol { name: "ptp_classify_raw" is_defined: true symbol_type: FUNCTION - crc: 0x6ee5b96a + crc: 0x2430337c type_id: 0xc1439b43 full_name: "ptp_classify_raw" } @@ -363190,7 +376100,7 @@ elf_symbol { name: "ptp_parse_header" is_defined: true symbol_type: FUNCTION - crc: 0xa5fa15e0 + crc: 0x6c082b04 type_id: 0x9587d027 full_name: "ptp_parse_header" } @@ -363204,11 +376114,20 @@ elf_symbol { full_name: "public_key_verify_signature" } elf_symbol { + id: 0xd38a2f2a + name: "push_cpu_stop" + is_defined: true + symbol_type: FUNCTION + crc: 0x99bd5133 + type_id: 0x9bafba63 + full_name: "push_cpu_stop" +} +elf_symbol { id: 0x11d4227b name: "put_cmsg" is_defined: true symbol_type: FUNCTION - crc: 0xd78e9dd8 + crc: 0x31108fe3 type_id: 0x9732df25 full_name: "put_cmsg" } @@ -363217,7 +376136,7 @@ elf_symbol { name: "put_device" is_defined: true symbol_type: FUNCTION - crc: 0x46cf073a + crc: 0xc0052169 type_id: 0x100e6fc8 full_name: "put_device" } @@ -363231,6 +376150,15 @@ elf_symbol { full_name: "put_disk" } elf_symbol { + id: 0x5db8ecdc + name: "put_io_context" + is_defined: true + symbol_type: FUNCTION + crc: 0xc9e0a706 + type_id: 0x1ea499af + full_name: "put_io_context" +} +elf_symbol { id: 0x01768311 name: "put_iova_domain" is_defined: true @@ -363240,11 +376168,20 @@ elf_symbol { full_name: "put_iova_domain" } elf_symbol { + id: 0xb9bfc7b9 + name: "put_pages_list" + is_defined: true + symbol_type: FUNCTION + crc: 0xf0009fee + type_id: 0x1f00dfeb + full_name: "put_pages_list" +} +elf_symbol { id: 0x1744651d name: "put_pid" is_defined: true symbol_type: FUNCTION - crc: 0x456baca6 + crc: 0x354db4c3 type_id: 0x1689085f full_name: "put_pid" } @@ -363294,6 +376231,24 @@ elf_symbol { full_name: "putback_movable_pages" } elf_symbol { + id: 0x8dafa617 + name: "pvclock_gtod_register_notifier" + is_defined: true + symbol_type: FUNCTION + crc: 0xb4b97c90 + type_id: 0x9b6d4a33 + full_name: "pvclock_gtod_register_notifier" +} +elf_symbol { + id: 0x5ae13553 + name: "pwm_adjust_config" + is_defined: true + symbol_type: FUNCTION + crc: 0x22bed5ce + type_id: 0x97889594 + full_name: "pwm_adjust_config" +} +elf_symbol { id: 0x53ee2234 name: "pwm_apply_state" is_defined: true @@ -363361,7 +376316,7 @@ elf_symbol { name: "qca_read_soc_version" is_defined: true symbol_type: FUNCTION - crc: 0xd28ab2f2 + crc: 0x123214f3 type_id: 0x9a4d0c6c full_name: "qca_read_soc_version" } @@ -363370,7 +376325,7 @@ elf_symbol { name: "qca_send_pre_shutdown_cmd" is_defined: true symbol_type: FUNCTION - crc: 0xf49b1cad + crc: 0xec434633 type_id: 0x9af01625 full_name: "qca_send_pre_shutdown_cmd" } @@ -363379,7 +376334,7 @@ elf_symbol { name: "qca_set_bdaddr" is_defined: true symbol_type: FUNCTION - crc: 0xaf846ded + crc: 0x2586a331 type_id: 0x9a2fc16a full_name: "qca_set_bdaddr" } @@ -363388,7 +376343,7 @@ elf_symbol { name: "qca_set_bdaddr_rome" is_defined: true symbol_type: FUNCTION - crc: 0xa2c7b7db + crc: 0x5284d1b3 type_id: 0x9a2fc16a full_name: "qca_set_bdaddr_rome" } @@ -363397,7 +376352,7 @@ elf_symbol { name: "qca_uart_setup" is_defined: true symbol_type: FUNCTION - crc: 0xaceb905b + crc: 0x1cbf5582 type_id: 0x9bc09b7f full_name: "qca_uart_setup" } @@ -363631,7 +376586,7 @@ elf_symbol { name: "raw_spin_rq_lock_nested" is_defined: true symbol_type: FUNCTION - crc: 0x5bb1b468 + crc: 0x2ffca154 type_id: 0x1a847502 full_name: "raw_spin_rq_lock_nested" } @@ -363640,7 +376595,7 @@ elf_symbol { name: "raw_spin_rq_unlock" is_defined: true symbol_type: FUNCTION - crc: 0x57869b06 + crc: 0xb93cb4ae type_id: 0x1b18f64e full_name: "raw_spin_rq_unlock" } @@ -363955,7 +376910,7 @@ elf_symbol { name: "rcuwait_wake_up" is_defined: true symbol_type: FUNCTION - crc: 0x07e89eda + crc: 0xe112cd72 type_id: 0x929ea9e9 full_name: "rcuwait_wake_up" } @@ -364005,6 +376960,15 @@ elf_symbol { full_name: "read_cache_page" } elf_symbol { + id: 0x2886690b + name: "readahead_gfp_mask" + is_defined: true + symbol_type: FUNCTION + crc: 0x74cada1a + type_id: 0x4a02979c + full_name: "readahead_gfp_mask" +} +elf_symbol { id: 0x46082c90 name: "reboot_mode" is_defined: true @@ -364041,6 +377005,15 @@ elf_symbol { full_name: "reclaim_shmem_address_space" } elf_symbol { + id: 0x8fe1956e + name: "redirty_page_for_writepage" + is_defined: true + symbol_type: FUNCTION + crc: 0x9d126bc3 + type_id: 0xf6be4a6e + full_name: "redirty_page_for_writepage" +} +elf_symbol { id: 0x3b03aaea name: "refcount_dec_and_lock" is_defined: true @@ -364153,7 +377126,7 @@ elf_symbol { name: "register_candev" is_defined: true symbol_type: FUNCTION - crc: 0x2744db2a + crc: 0xbd0e584d type_id: 0x91296bda full_name: "register_candev" } @@ -364270,7 +377243,7 @@ elf_symbol { name: "register_net_sysctl" is_defined: true symbol_type: FUNCTION - crc: 0xf2f28ae6 + crc: 0x883aa38a type_id: 0x0d4395f8 full_name: "register_net_sysctl" } @@ -364279,7 +377252,7 @@ elf_symbol { name: "register_netdev" is_defined: true symbol_type: FUNCTION - crc: 0xcbe773ee + crc: 0xa5940962 type_id: 0x91296bda full_name: "register_netdev" } @@ -364288,7 +377261,7 @@ elf_symbol { name: "register_netdevice" is_defined: true symbol_type: FUNCTION - crc: 0x5f32695e + crc: 0xb4bdff70 type_id: 0x91296bda full_name: "register_netdevice" } @@ -364324,7 +377297,7 @@ elf_symbol { name: "register_pernet_device" is_defined: true symbol_type: FUNCTION - crc: 0xd78b1b65 + crc: 0x5b6b7163 type_id: 0x97969509 full_name: "register_pernet_device" } @@ -364333,7 +377306,7 @@ elf_symbol { name: "register_pernet_subsys" is_defined: true symbol_type: FUNCTION - crc: 0x1a92bd31 + crc: 0xcf7dd4ce type_id: 0x97969509 full_name: "register_pernet_subsys" } @@ -364351,7 +377324,7 @@ elf_symbol { name: "register_pppox_proto" is_defined: true symbol_type: FUNCTION - crc: 0x97055cc4 + crc: 0x72976f06 type_id: 0x84a4d3f7 full_name: "register_pppox_proto" } @@ -364360,7 +377333,7 @@ elf_symbol { name: "register_qdisc" is_defined: true symbol_type: FUNCTION - crc: 0x59d9fa9d + crc: 0x39fad39c type_id: 0x927a4e4f full_name: "register_qdisc" } @@ -364423,7 +377396,7 @@ elf_symbol { name: "register_tcf_proto_ops" is_defined: true symbol_type: FUNCTION - crc: 0xe5c31bb1 + crc: 0xb3f827e3 type_id: 0x9afc1632 full_name: "register_tcf_proto_ops" } @@ -364554,6 +377527,15 @@ elf_symbol { full_name: "regmap_get_device" } elf_symbol { + id: 0x700d1b28 + name: "regmap_get_reg_stride" + is_defined: true + symbol_type: FUNCTION + crc: 0xb435d7cf + type_id: 0x9feaece8 + full_name: "regmap_get_reg_stride" +} +elf_symbol { id: 0x248856c2 name: "regmap_get_val_bytes" is_defined: true @@ -364824,6 +377806,15 @@ elf_symbol { full_name: "regulator_get" } elf_symbol { + id: 0x90e2334a + name: "regulator_get_current_limit" + is_defined: true + symbol_type: FUNCTION + crc: 0xf9e34a3c + type_id: 0x9deb64a3 + full_name: "regulator_get_current_limit" +} +elf_symbol { id: 0xfd198070 name: "regulator_get_current_limit_regmap" is_defined: true @@ -365013,6 +378004,15 @@ elf_symbol { full_name: "regulator_put" } elf_symbol { + id: 0xfd977d86 + name: "regulator_register" + is_defined: true + symbol_type: FUNCTION + crc: 0xa01989d0 + type_id: 0xf5978397 + full_name: "regulator_register" +} +elf_symbol { id: 0xddb9ed35 name: "regulator_register_notifier" is_defined: true @@ -365121,6 +378121,15 @@ elf_symbol { full_name: "regulator_set_voltage_time_sel" } elf_symbol { + id: 0x12ab7c99 + name: "regulator_suspend_enable" + is_defined: true + symbol_type: FUNCTION + crc: 0x668c29cc + type_id: 0x9cb7a3ee + full_name: "regulator_suspend_enable" +} +elf_symbol { id: 0x21b06e02 name: "regulator_sync_voltage" is_defined: true @@ -365170,7 +378179,7 @@ elf_symbol { name: "release_sock" is_defined: true symbol_type: FUNCTION - crc: 0xc114bef0 + crc: 0xb1342d9c type_id: 0x17c95d08 full_name: "release_sock" } @@ -365314,7 +378323,7 @@ elf_symbol { name: "resched_curr" is_defined: true symbol_type: FUNCTION - crc: 0xb5a6fc28 + crc: 0x21218e67 type_id: 0x1b18f64e full_name: "resched_curr" } @@ -365328,6 +378337,15 @@ elf_symbol { full_name: "reservation_ww_class" } elf_symbol { + id: 0xb15014ad + name: "reserve_iova" + is_defined: true + symbol_type: FUNCTION + crc: 0x207ae624 + type_id: 0x48135354 + full_name: "reserve_iova" +} +elf_symbol { id: 0x089f5fe6 name: "reset_control_acquire" is_defined: true @@ -365427,6 +378445,15 @@ elf_symbol { full_name: "return_address" } elf_symbol { + id: 0xd8c7c137 + name: "reweight_task" + is_defined: true + symbol_type: FUNCTION + crc: 0x3a6ca281 + type_id: 0x1642b8aa + full_name: "reweight_task" +} +elf_symbol { id: 0xa3f52060 name: "rfkill_alloc" is_defined: true @@ -365674,16 +378701,25 @@ elf_symbol { name: "root_device_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xa090023e + crc: 0xfc5c2426 type_id: 0x100e6fc8 full_name: "root_device_unregister" } elf_symbol { + id: 0xbd83c333 + name: "root_mem_cgroup" + is_defined: true + symbol_type: OBJECT + crc: 0x9ab36151 + type_id: 0x1d5bae2a + full_name: "root_mem_cgroup" +} +elf_symbol { id: 0x7d858174 name: "root_task_group" is_defined: true symbol_type: OBJECT - crc: 0x2ccfef48 + crc: 0xca81e0d0 type_id: 0x84d533ac full_name: "root_task_group" } @@ -366093,6 +379129,33 @@ elf_symbol { full_name: "rps_needed" } elf_symbol { + id: 0xde4d20e6 + name: "rsa_parse_priv_key" + is_defined: true + symbol_type: FUNCTION + crc: 0xd75b20aa + type_id: 0x9377de98 + full_name: "rsa_parse_priv_key" +} +elf_symbol { + id: 0x6a82e2a4 + name: "rsa_parse_pub_key" + is_defined: true + symbol_type: FUNCTION + crc: 0x89ae7aa0 + type_id: 0x9377de98 + full_name: "rsa_parse_pub_key" +} +elf_symbol { + id: 0xec5e9065 + name: "rt6_lookup" + is_defined: true + symbol_type: FUNCTION + crc: 0x1ea53a03 + type_id: 0x187ccd99 + full_name: "rt6_lookup" +} +elf_symbol { id: 0x264c5308 name: "rt_mutex_lock" is_defined: true @@ -366228,6 +379291,24 @@ elf_symbol { full_name: "rtc_valid_tm" } elf_symbol { + id: 0x19b7aeab + name: "rtnl_configure_link" + is_defined: true + symbol_type: FUNCTION + crc: 0x85c289df + type_id: 0x91d35e28 + full_name: "rtnl_configure_link" +} +elf_symbol { + id: 0xfccc22f4 + name: "rtnl_create_link" + is_defined: true + symbol_type: FUNCTION + crc: 0x817f3567 + type_id: 0xffb4ff33 + full_name: "rtnl_create_link" +} +elf_symbol { id: 0x50b92bc4 name: "rtnl_is_locked" is_defined: true @@ -366241,7 +379322,7 @@ elf_symbol { name: "rtnl_link_register" is_defined: true symbol_type: FUNCTION - crc: 0x3679e6e6 + crc: 0x17ff0acb type_id: 0x91cbd408 full_name: "rtnl_link_register" } @@ -366250,7 +379331,7 @@ elf_symbol { name: "rtnl_link_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xd0a0f3e8 + crc: 0x30b80c16 type_id: 0x1cd366b4 full_name: "rtnl_link_unregister" } @@ -366268,7 +379349,7 @@ elf_symbol { name: "rtnl_register_module" is_defined: true symbol_type: FUNCTION - crc: 0x20bfe1ad + crc: 0x65278a71 type_id: 0x9ece22e0 full_name: "rtnl_register_module" } @@ -366286,7 +379367,7 @@ elf_symbol { name: "rtnl_unicast" is_defined: true symbol_type: FUNCTION - crc: 0xd1b65cc5 + crc: 0x89f6462c type_id: 0x9cd3f2b1 full_name: "rtnl_unicast" } @@ -366322,7 +379403,7 @@ elf_symbol { name: "runqueues" is_defined: true symbol_type: OBJECT - crc: 0x30134f71 + crc: 0x5fc45fe1 type_id: 0x924a9b47 full_name: "runqueues" } @@ -366331,7 +379412,7 @@ elf_symbol { name: "safe_candev_priv" is_defined: true symbol_type: FUNCTION - crc: 0xeb9f91a3 + crc: 0x4054bd25 type_id: 0x8426e149 full_name: "safe_candev_priv" } @@ -366354,6 +379435,78 @@ elf_symbol { full_name: "sb800_prefetch" } elf_symbol { + id: 0x75781cce + name: "sb_min_blocksize" + is_defined: true + symbol_type: FUNCTION + crc: 0xe004c464 + type_id: 0x95a7fa69 + full_name: "sb_min_blocksize" +} +elf_symbol { + id: 0xd3eab591 + name: "sb_set_blocksize" + is_defined: true + symbol_type: FUNCTION + crc: 0x94ed96ed + type_id: 0x95a7fa69 + full_name: "sb_set_blocksize" +} +elf_symbol { + id: 0x806f167c + name: "sbitmap_add_wait_queue" + is_defined: true + symbol_type: FUNCTION + crc: 0x4981b0e2 + type_id: 0x142e1753 + full_name: "sbitmap_add_wait_queue" +} +elf_symbol { + id: 0xf13ba64e + name: "sbitmap_any_bit_set" + is_defined: true + symbol_type: FUNCTION + crc: 0x499f6a97 + type_id: 0xf34d29c1 + full_name: "sbitmap_any_bit_set" +} +elf_symbol { + id: 0xe4f77cb7 + name: "sbitmap_del_wait_queue" + is_defined: true + symbol_type: FUNCTION + crc: 0xfab6c92b + type_id: 0x183a04a1 + full_name: "sbitmap_del_wait_queue" +} +elf_symbol { + id: 0x12f98f54 + name: "sbitmap_init_node" + is_defined: true + symbol_type: FUNCTION + crc: 0x8be9a5cf + type_id: 0x941967cc + full_name: "sbitmap_init_node" +} +elf_symbol { + id: 0x85d0ffae + name: "sbitmap_queue_clear" + is_defined: true + symbol_type: FUNCTION + crc: 0xcfb42d08 + type_id: 0x1527b6ea + full_name: "sbitmap_queue_clear" +} +elf_symbol { + id: 0xe160a711 + name: "sbitmap_queue_init_node" + is_defined: true + symbol_type: FUNCTION + crc: 0xe4bd68f7 + type_id: 0x98362533 + full_name: "sbitmap_queue_init_node" +} +elf_symbol { id: 0x4513114c name: "sbitmap_queue_min_shallow_depth" is_defined: true @@ -366363,6 +379516,24 @@ elf_symbol { full_name: "sbitmap_queue_min_shallow_depth" } elf_symbol { + id: 0x3af97828 + name: "sbitmap_queue_resize" + is_defined: true + symbol_type: FUNCTION + crc: 0x67a07059 + type_id: 0x1536d7b3 + full_name: "sbitmap_queue_resize" +} +elf_symbol { + id: 0x6375c31d + name: "sbitmap_queue_show" + is_defined: true + symbol_type: FUNCTION + crc: 0xee37b200 + type_id: 0x143955b1 + full_name: "sbitmap_queue_show" +} +elf_symbol { id: 0x56cb7a36 name: "sbitmap_weight" is_defined: true @@ -366430,7 +379601,7 @@ elf_symbol { name: "sched_set_fifo" is_defined: true symbol_type: FUNCTION - crc: 0x4845e7d9 + crc: 0x2df40890 type_id: 0x17de3be6 full_name: "sched_set_fifo" } @@ -366439,7 +379610,7 @@ elf_symbol { name: "sched_set_fifo_low" is_defined: true symbol_type: FUNCTION - crc: 0x3cf56efa + crc: 0x2cafb113 type_id: 0x17de3be6 full_name: "sched_set_fifo_low" } @@ -366448,7 +379619,7 @@ elf_symbol { name: "sched_set_normal" is_defined: true symbol_type: FUNCTION - crc: 0xdbde07ef + crc: 0xf37369e7 type_id: 0x1642b8aa full_name: "sched_set_normal" } @@ -366457,7 +379628,7 @@ elf_symbol { name: "sched_setattr" is_defined: true symbol_type: FUNCTION - crc: 0x52a5b2bb + crc: 0x5b3e64b8 type_id: 0x9a2476b0 full_name: "sched_setattr" } @@ -366466,7 +379637,7 @@ elf_symbol { name: "sched_setattr_nocheck" is_defined: true symbol_type: FUNCTION - crc: 0x5c1486f2 + crc: 0x31821fb0 type_id: 0x9a2476b0 full_name: "sched_setattr_nocheck" } @@ -366475,7 +379646,7 @@ elf_symbol { name: "sched_setscheduler" is_defined: true symbol_type: FUNCTION - crc: 0x7f9998bc + crc: 0xc67465ed type_id: 0x9b56b28e full_name: "sched_setscheduler" } @@ -366484,7 +379655,7 @@ elf_symbol { name: "sched_setscheduler_nocheck" is_defined: true symbol_type: FUNCTION - crc: 0x5f3af984 + crc: 0x0a90ee98 type_id: 0x9b56b28e full_name: "sched_setscheduler_nocheck" } @@ -366493,7 +379664,7 @@ elf_symbol { name: "sched_show_task" is_defined: true symbol_type: FUNCTION - crc: 0x2632334d + crc: 0x31267b07 type_id: 0x17de3be6 full_name: "sched_show_task" } @@ -366912,6 +380083,15 @@ elf_symbol { full_name: "sdhci_add_host" } elf_symbol { + id: 0xf399cd48 + name: "sdhci_adma_write_desc" + is_defined: true + symbol_type: FUNCTION + crc: 0x01560eef + type_id: 0x1ecc6a5d + full_name: "sdhci_adma_write_desc" +} +elf_symbol { id: 0x05840f35 name: "sdhci_cleanup_host" is_defined: true @@ -366993,6 +380173,15 @@ elf_symbol { full_name: "sdhci_get_property" } elf_symbol { + id: 0x15f1b772 + name: "sdhci_pltfm_clk_get_max_clock" + is_defined: true + symbol_type: FUNCTION + crc: 0x91fe6c0a + type_id: 0xc0843ed1 + full_name: "sdhci_pltfm_clk_get_max_clock" +} +elf_symbol { id: 0x38940a34 name: "sdhci_pltfm_free" is_defined: true @@ -367011,6 +380200,15 @@ elf_symbol { full_name: "sdhci_pltfm_init" } elf_symbol { + id: 0x9f8a16f0 + name: "sdhci_pltfm_unregister" + is_defined: true + symbol_type: FUNCTION + crc: 0xca4fab1b + type_id: 0x924d155a + full_name: "sdhci_pltfm_unregister" +} +elf_symbol { id: 0xad3b5931 name: "sdhci_remove_host" is_defined: true @@ -367083,6 +380281,24 @@ elf_symbol { full_name: "sdhci_set_bus_width" } elf_symbol { + id: 0x92732196 + name: "sdhci_set_clock" + is_defined: true + symbol_type: FUNCTION + crc: 0xefd8b1a4 + type_id: 0x1fd10421 + full_name: "sdhci_set_clock" +} +elf_symbol { + id: 0xd29660d9 + name: "sdhci_set_power_and_bus_voltage" + is_defined: true + symbol_type: FUNCTION + crc: 0x3726c8e5 + type_id: 0x1f835b6f + full_name: "sdhci_set_power_and_bus_voltage" +} +elf_symbol { id: 0xa6c906b5 name: "sdhci_set_power_noreg" is_defined: true @@ -367092,6 +380308,15 @@ elf_symbol { full_name: "sdhci_set_power_noreg" } elf_symbol { + id: 0x77dba918 + name: "sdhci_set_uhs_signaling" + is_defined: true + symbol_type: FUNCTION + crc: 0x30232005 + type_id: 0x1fd10421 + full_name: "sdhci_set_uhs_signaling" +} +elf_symbol { id: 0x5cc4535c name: "sdhci_setup_host" is_defined: true @@ -367218,6 +380443,15 @@ elf_symbol { full_name: "sdio_readsb" } elf_symbol { + id: 0xe1092bbd + name: "sdio_readw" + is_defined: true + symbol_type: FUNCTION + crc: 0xf956e25f + type_id: 0x04a35d6c + full_name: "sdio_readw" +} +elf_symbol { id: 0x3003f174 name: "sdio_register_driver" is_defined: true @@ -367317,6 +380551,15 @@ elf_symbol { full_name: "sdio_writesb" } elf_symbol { + id: 0xb3b8cbe2 + name: "sdio_writew" + is_defined: true + symbol_type: FUNCTION + crc: 0xc72a8a38 + type_id: 0x1656fc12 + full_name: "sdio_writew" +} +elf_symbol { id: 0xec171799 name: "security_file_ioctl" is_defined: true @@ -367326,6 +380569,15 @@ elf_symbol { full_name: "security_file_ioctl" } elf_symbol { + id: 0xb7265b03 + name: "security_inode_init_security" + is_defined: true + symbol_type: FUNCTION + crc: 0x1e6fb814 + type_id: 0x9b034295 + full_name: "security_inode_init_security" +} +elf_symbol { id: 0x24b9d7ed name: "security_sk_classify_flow" is_defined: true @@ -367357,7 +380609,7 @@ elf_symbol { name: "select_fallback_rq" is_defined: true symbol_type: FUNCTION - crc: 0x21591573 + crc: 0x37c45c03 type_id: 0x843cb143 full_name: "select_fallback_rq" } @@ -367416,6 +380668,24 @@ elf_symbol { full_name: "seq_hlist_start_head" } elf_symbol { + id: 0xe5f1a4c5 + name: "seq_list_next" + is_defined: true + symbol_type: FUNCTION + crc: 0xe7d4daac + type_id: 0xf87e0015 + full_name: "seq_list_next" +} +elf_symbol { + id: 0x1405c2fb + name: "seq_list_start" + is_defined: true + symbol_type: FUNCTION + crc: 0xff1e9dd8 + type_id: 0xf1ae1eac + full_name: "seq_list_start" +} +elf_symbol { id: 0xe0349007 name: "seq_lseek" is_defined: true @@ -367789,7 +381059,7 @@ elf_symbol { name: "set_cpus_allowed_ptr" is_defined: true symbol_type: FUNCTION - crc: 0xb3c10b94 + crc: 0x6c4198dc type_id: 0x9a02b25a full_name: "set_cpus_allowed_ptr" } @@ -367830,6 +381100,15 @@ elf_symbol { full_name: "set_next_entity" } elf_symbol { + id: 0x7e3fb039 + name: "set_nlink" + is_defined: true + symbol_type: FUNCTION + crc: 0x190daaac + type_id: 0x176f2021 + full_name: "set_nlink" +} +elf_symbol { id: 0xaae00157 name: "set_normalized_timespec64" is_defined: true @@ -367857,11 +381136,20 @@ elf_symbol { full_name: "set_page_dirty_lock" } elf_symbol { + id: 0x500f328c + name: "set_page_writeback" + is_defined: true + symbol_type: FUNCTION + crc: 0x7c2bfc58 + type_id: 0xff048ca3 + full_name: "set_page_writeback" +} +elf_symbol { id: 0xe19d98a9 name: "set_task_cpu" is_defined: true symbol_type: FUNCTION - crc: 0x8f11940e + crc: 0xb4809261 type_id: 0x16c82e7e full_name: "set_task_cpu" } @@ -367870,16 +381158,25 @@ elf_symbol { name: "set_user_nice" is_defined: true symbol_type: FUNCTION - crc: 0x8bd8606c + crc: 0x81bb3e77 type_id: 0x142e0390 full_name: "set_user_nice" } elf_symbol { + id: 0x7d05df74 + name: "setattr_prepare" + is_defined: true + symbol_type: FUNCTION + crc: 0xd880e38e + type_id: 0x9e20c0b8 + full_name: "setattr_prepare" +} +elf_symbol { id: 0x5d6d169f name: "setup_udp_tunnel_sock" is_defined: true symbol_type: FUNCTION - crc: 0x3dfba0e6 + crc: 0xcfb61ede type_id: 0x13f4af03 full_name: "setup_udp_tunnel_sock" } @@ -368073,6 +381370,24 @@ elf_symbol { full_name: "sget_fc" } elf_symbol { + id: 0x0b4df89e + name: "sha1_init" + is_defined: true + symbol_type: FUNCTION + crc: 0x50624917 + type_id: 0x1c5eb40a + full_name: "sha1_init" +} +elf_symbol { + id: 0x7996527c + name: "sha1_transform" + is_defined: true + symbol_type: FUNCTION + crc: 0x5e0ccb9f + type_id: 0x1caa303b + full_name: "sha1_transform" +} +elf_symbol { id: 0x7f3b48aa name: "shmem_file_setup" is_defined: true @@ -368321,16 +381636,25 @@ elf_symbol { name: "sk_alloc" is_defined: true symbol_type: FUNCTION - crc: 0x14b31517 + crc: 0x6cad6404 type_id: 0x6ecc6402 full_name: "sk_alloc" } elf_symbol { + id: 0x1295815b + name: "sk_capable" + is_defined: true + symbol_type: FUNCTION + crc: 0x9bced1ab + type_id: 0xf1208847 + full_name: "sk_capable" +} +elf_symbol { id: 0xd7cc5056 name: "sk_common_release" is_defined: true symbol_type: FUNCTION - crc: 0x16416617 + crc: 0x014477ca type_id: 0x17c95d08 full_name: "sk_common_release" } @@ -368339,7 +381663,7 @@ elf_symbol { name: "sk_error_report" is_defined: true symbol_type: FUNCTION - crc: 0x87456c01 + crc: 0x0b28e75b type_id: 0x17c95d08 full_name: "sk_error_report" } @@ -368348,7 +381672,7 @@ elf_symbol { name: "sk_filter_trim_cap" is_defined: true symbol_type: FUNCTION - crc: 0xd643506a + crc: 0xf5845708 type_id: 0x9ad5b349 full_name: "sk_filter_trim_cap" } @@ -368357,7 +381681,7 @@ elf_symbol { name: "sk_free" is_defined: true symbol_type: FUNCTION - crc: 0xd6b42cbe + crc: 0x052a5c8f type_id: 0x17c95d08 full_name: "sk_free" } @@ -368366,7 +381690,7 @@ elf_symbol { name: "sk_reset_timer" is_defined: true symbol_type: FUNCTION - crc: 0xa3377a1e + crc: 0x35dc5f2e type_id: 0x173d585f full_name: "sk_reset_timer" } @@ -368375,7 +381699,7 @@ elf_symbol { name: "sk_setup_caps" is_defined: true symbol_type: FUNCTION - crc: 0xed767c7b + crc: 0xea742b43 type_id: 0x17803a85 full_name: "sk_setup_caps" } @@ -368384,7 +381708,7 @@ elf_symbol { name: "sk_stop_timer" is_defined: true symbol_type: FUNCTION - crc: 0xbf69ab47 + crc: 0x37886892 type_id: 0x17318506 full_name: "sk_stop_timer" } @@ -368393,7 +381717,7 @@ elf_symbol { name: "skb_add_rx_frag" is_defined: true symbol_type: FUNCTION - crc: 0x9768c0c6 + crc: 0x79586ffa type_id: 0x10572c13 full_name: "skb_add_rx_frag" } @@ -368402,7 +381726,7 @@ elf_symbol { name: "skb_append_pagefrags" is_defined: true symbol_type: FUNCTION - crc: 0xea7667ff + crc: 0x26105e29 type_id: 0x9cd32cf2 full_name: "skb_append_pagefrags" } @@ -368411,7 +381735,7 @@ elf_symbol { name: "skb_checksum" is_defined: true symbol_type: FUNCTION - crc: 0x6936f0dd + crc: 0xefe8d364 type_id: 0x345f1809 full_name: "skb_checksum" } @@ -368420,7 +381744,7 @@ elf_symbol { name: "skb_checksum_help" is_defined: true symbol_type: FUNCTION - crc: 0x3744d44c + crc: 0xbcac167c type_id: 0x9cd33969 full_name: "skb_checksum_help" } @@ -368429,7 +381753,7 @@ elf_symbol { name: "skb_clone" is_defined: true symbol_type: FUNCTION - crc: 0x36210e0c + crc: 0xe48b1404 type_id: 0x6a0b7818 full_name: "skb_clone" } @@ -368438,7 +381762,7 @@ elf_symbol { name: "skb_clone_sk" is_defined: true symbol_type: FUNCTION - crc: 0x31a97ef2 + crc: 0xed2a513b type_id: 0x69cde367 full_name: "skb_clone_sk" } @@ -368447,7 +381771,7 @@ elf_symbol { name: "skb_coalesce_rx_frag" is_defined: true symbol_type: FUNCTION - crc: 0x38cc4bd4 + crc: 0x98ad7d34 type_id: 0x104fd6b8 full_name: "skb_coalesce_rx_frag" } @@ -368456,7 +381780,7 @@ elf_symbol { name: "skb_complete_tx_timestamp" is_defined: true symbol_type: FUNCTION - crc: 0xa505fe02 + crc: 0x84152f15 type_id: 0x11d3a4b4 full_name: "skb_complete_tx_timestamp" } @@ -368465,7 +381789,7 @@ elf_symbol { name: "skb_complete_wifi_ack" is_defined: true symbol_type: FUNCTION - crc: 0x1abd0377 + crc: 0x9a7f42c9 type_id: 0x107e76aa full_name: "skb_complete_wifi_ack" } @@ -368474,7 +381798,7 @@ elf_symbol { name: "skb_copy" is_defined: true symbol_type: FUNCTION - crc: 0xf9d2e4ef + crc: 0x91e767fe type_id: 0x64c047e6 full_name: "skb_copy" } @@ -368483,7 +381807,7 @@ elf_symbol { name: "skb_copy_bits" is_defined: true symbol_type: FUNCTION - crc: 0x60d6f91d + crc: 0xdaa46a17 type_id: 0x93833601 full_name: "skb_copy_bits" } @@ -368492,7 +381816,7 @@ elf_symbol { name: "skb_copy_datagram_from_iter" is_defined: true symbol_type: FUNCTION - crc: 0xc702ee7e + crc: 0x38f86852 type_id: 0x9d45fa50 full_name: "skb_copy_datagram_from_iter" } @@ -368501,7 +381825,7 @@ elf_symbol { name: "skb_copy_datagram_iter" is_defined: true symbol_type: FUNCTION - crc: 0x0e9e1c61 + crc: 0xe274a30f type_id: 0x938ec5ae full_name: "skb_copy_datagram_iter" } @@ -368510,7 +381834,7 @@ elf_symbol { name: "skb_copy_expand" is_defined: true symbol_type: FUNCTION - crc: 0x2547663f + crc: 0x2204b34d type_id: 0x6680517a full_name: "skb_copy_expand" } @@ -368519,7 +381843,7 @@ elf_symbol { name: "skb_copy_ubufs" is_defined: true symbol_type: FUNCTION - crc: 0x1657a585 + crc: 0x738276d2 type_id: 0x9f15a216 full_name: "skb_copy_ubufs" } @@ -368528,7 +381852,7 @@ elf_symbol { name: "skb_cow_data" is_defined: true symbol_type: FUNCTION - crc: 0xc4175eb0 + crc: 0x141b1684 type_id: 0x9d4d4add full_name: "skb_cow_data" } @@ -368537,7 +381861,7 @@ elf_symbol { name: "skb_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0x9d0f7505 + crc: 0x3a908023 type_id: 0x6f42ce8a full_name: "skb_dequeue" } @@ -368546,7 +381870,7 @@ elf_symbol { name: "skb_dequeue_tail" is_defined: true symbol_type: FUNCTION - crc: 0x4da109bd + crc: 0xa591e06f type_id: 0x6f42ce8a full_name: "skb_dequeue_tail" } @@ -368555,7 +381879,7 @@ elf_symbol { name: "skb_ensure_writable" is_defined: true symbol_type: FUNCTION - crc: 0xe6e990d7 + crc: 0xeea1ccc8 type_id: 0x9dc52cf1 full_name: "skb_ensure_writable" } @@ -368564,7 +381888,7 @@ elf_symbol { name: "skb_free_datagram" is_defined: true symbol_type: FUNCTION - crc: 0xbef03783 + crc: 0x92888700 type_id: 0x17dc60ac full_name: "skb_free_datagram" } @@ -368573,7 +381897,7 @@ elf_symbol { name: "skb_page_frag_refill" is_defined: true symbol_type: FUNCTION - crc: 0xb2b8ea83 + crc: 0x58fad65c type_id: 0xef54849c full_name: "skb_page_frag_refill" } @@ -368582,7 +381906,7 @@ elf_symbol { name: "skb_partial_csum_set" is_defined: true symbol_type: FUNCTION - crc: 0x0a71f0f6 + crc: 0x3f03a4aa type_id: 0xfd96e4d2 full_name: "skb_partial_csum_set" } @@ -368591,7 +381915,7 @@ elf_symbol { name: "skb_pull" is_defined: true symbol_type: FUNCTION - crc: 0x5bda640f + crc: 0xbe5e92c9 type_id: 0x56d37e2f full_name: "skb_pull" } @@ -368600,7 +381924,7 @@ elf_symbol { name: "skb_pull_data" is_defined: true symbol_type: FUNCTION - crc: 0xd7e724c4 + crc: 0xc5f73848 type_id: 0x5415be16 full_name: "skb_pull_data" } @@ -368609,7 +381933,7 @@ elf_symbol { name: "skb_pull_rcsum" is_defined: true symbol_type: FUNCTION - crc: 0x700129d4 + crc: 0x4ecfcf3d type_id: 0x56d37e2f full_name: "skb_pull_rcsum" } @@ -368618,7 +381942,7 @@ elf_symbol { name: "skb_push" is_defined: true symbol_type: FUNCTION - crc: 0x3c81168a + crc: 0xb0cdde42 type_id: 0x56d37e2f full_name: "skb_push" } @@ -368627,7 +381951,7 @@ elf_symbol { name: "skb_put" is_defined: true symbol_type: FUNCTION - crc: 0x4936308f + crc: 0xac7a3881 type_id: 0x56d37e2f full_name: "skb_put" } @@ -368636,7 +381960,7 @@ elf_symbol { name: "skb_queue_head" is_defined: true symbol_type: FUNCTION - crc: 0xf5a38609 + crc: 0x73234170 type_id: 0x17519b9c full_name: "skb_queue_head" } @@ -368645,7 +381969,7 @@ elf_symbol { name: "skb_queue_purge" is_defined: true symbol_type: FUNCTION - crc: 0x8b556d73 + crc: 0xbf2d8fce type_id: 0x1744a638 full_name: "skb_queue_purge" } @@ -368654,7 +381978,7 @@ elf_symbol { name: "skb_queue_tail" is_defined: true symbol_type: FUNCTION - crc: 0xfd068d9e + crc: 0xfd2a2296 type_id: 0x17519b9c full_name: "skb_queue_tail" } @@ -368663,7 +381987,7 @@ elf_symbol { name: "skb_realloc_headroom" is_defined: true symbol_type: FUNCTION - crc: 0x34c354d1 + crc: 0xd1063544 type_id: 0x68dbf6ff full_name: "skb_realloc_headroom" } @@ -368672,7 +381996,7 @@ elf_symbol { name: "skb_recv_datagram" is_defined: true symbol_type: FUNCTION - crc: 0x57a7a18a + crc: 0x61bca68c type_id: 0x6eddf621 full_name: "skb_recv_datagram" } @@ -368681,7 +382005,7 @@ elf_symbol { name: "skb_scrub_packet" is_defined: true symbol_type: FUNCTION - crc: 0x89f4c550 + crc: 0xa01713cf type_id: 0x107e76aa full_name: "skb_scrub_packet" } @@ -368690,7 +382014,7 @@ elf_symbol { name: "skb_set_owner_w" is_defined: true symbol_type: FUNCTION - crc: 0xe857583b + crc: 0x344ead72 type_id: 0x11be9b1c full_name: "skb_set_owner_w" } @@ -368699,7 +382023,7 @@ elf_symbol { name: "skb_split" is_defined: true symbol_type: FUNCTION - crc: 0x2e8f0a1d + crc: 0x9fb1a84a type_id: 0x11ecf47b full_name: "skb_split" } @@ -368708,7 +382032,7 @@ elf_symbol { name: "skb_store_bits" is_defined: true symbol_type: FUNCTION - crc: 0x891c7e96 + crc: 0x38428244 type_id: 0x9d406163 full_name: "skb_store_bits" } @@ -368717,7 +382041,7 @@ elf_symbol { name: "skb_to_sgvec" is_defined: true symbol_type: FUNCTION - crc: 0x1fd22689 + crc: 0x9201603f type_id: 0x9c8c5236 full_name: "skb_to_sgvec" } @@ -368726,7 +382050,7 @@ elf_symbol { name: "skb_trim" is_defined: true symbol_type: FUNCTION - crc: 0x2405c9c5 + crc: 0x584525af type_id: 0x10dd9e4d full_name: "skb_trim" } @@ -368735,7 +382059,7 @@ elf_symbol { name: "skb_try_coalesce" is_defined: true symbol_type: FUNCTION - crc: 0xdf86b1a9 + crc: 0xf71caf48 type_id: 0xffe6827d full_name: "skb_try_coalesce" } @@ -368744,7 +382068,7 @@ elf_symbol { name: "skb_tstamp_tx" is_defined: true symbol_type: FUNCTION - crc: 0x340144cb + crc: 0x9028251a type_id: 0x11d3a4b4 full_name: "skb_tstamp_tx" } @@ -368753,11 +382077,65 @@ elf_symbol { name: "skb_unlink" is_defined: true symbol_type: FUNCTION - crc: 0xe204ae8f + crc: 0x9451ec1c type_id: 0x11b644af full_name: "skb_unlink" } elf_symbol { + id: 0x706a5214 + name: "skcipher_alloc_instance_simple" + is_defined: true + symbol_type: FUNCTION + crc: 0xae8e9e95 + type_id: 0x034a2603 + full_name: "skcipher_alloc_instance_simple" +} +elf_symbol { + id: 0x56fe28ac + name: "skcipher_register_instance" + is_defined: true + symbol_type: FUNCTION + crc: 0xd2b42989 + type_id: 0x9aaf7e51 + full_name: "skcipher_register_instance" +} +elf_symbol { + id: 0xfb0d7eaf + name: "skcipher_walk_aead_decrypt" + is_defined: true + symbol_type: FUNCTION + crc: 0x9356d0fe + type_id: 0x946d2b92 + full_name: "skcipher_walk_aead_decrypt" +} +elf_symbol { + id: 0x910f3594 + name: "skcipher_walk_aead_encrypt" + is_defined: true + symbol_type: FUNCTION + crc: 0x4e121a7c + type_id: 0x946d2b92 + full_name: "skcipher_walk_aead_encrypt" +} +elf_symbol { + id: 0x6a015d4f + name: "skcipher_walk_done" + is_defined: true + symbol_type: FUNCTION + crc: 0xe799e196 + type_id: 0x9522132a + full_name: "skcipher_walk_done" +} +elf_symbol { + id: 0xcb37c2fd + name: "skcipher_walk_virt" + is_defined: true + symbol_type: FUNCTION + crc: 0xa1045e95 + type_id: 0x94d5972f + full_name: "skcipher_walk_virt" +} +elf_symbol { id: 0x57adf54a name: "skip_spaces" is_defined: true @@ -368875,6 +382253,24 @@ elf_symbol { full_name: "smp_call_on_cpu" } elf_symbol { + id: 0xd7393cd7 + name: "smpboot_register_percpu_thread" + is_defined: true + symbol_type: FUNCTION + crc: 0xed22557a + type_id: 0x9002b2b0 + full_name: "smpboot_register_percpu_thread" +} +elf_symbol { + id: 0xbf61e6bf + name: "smpboot_unregister_percpu_thread" + is_defined: true + symbol_type: FUNCTION + crc: 0x62650cbc + type_id: 0x1d1a000c + full_name: "smpboot_unregister_percpu_thread" +} +elf_symbol { id: 0x675bcd74 name: "snapshot_get_image_size" is_defined: true @@ -368974,6 +382370,15 @@ elf_symbol { full_name: "snd_ctl_enum_info" } elf_symbol { + id: 0xfc7ac85d + name: "snd_ctl_find_id" + is_defined: true + symbol_type: FUNCTION + crc: 0x0f5523c6 + type_id: 0x20151959 + full_name: "snd_ctl_find_id" +} +elf_symbol { id: 0x6aca9744 name: "snd_ctl_new1" is_defined: true @@ -369118,6 +382523,15 @@ elf_symbol { full_name: "snd_info_free_entry" } elf_symbol { + id: 0x257f1e06 + name: "snd_info_get_line" + is_defined: true + symbol_type: FUNCTION + crc: 0x24a94b26 + type_id: 0x98e6779b + full_name: "snd_info_get_line" +} +elf_symbol { id: 0x5e6e4a8e name: "snd_info_register" is_defined: true @@ -369190,6 +382604,15 @@ elf_symbol { full_name: "snd_pcm_create_iec958_consumer_default" } elf_symbol { + id: 0xa4da49fe + name: "snd_pcm_create_iec958_consumer_hw_params" + is_defined: true + symbol_type: FUNCTION + crc: 0x11eba48e + type_id: 0x96d423b4 + full_name: "snd_pcm_create_iec958_consumer_hw_params" +} +elf_symbol { id: 0xb9a87429 name: "snd_pcm_fill_iec958_consumer" is_defined: true @@ -369397,6 +382820,24 @@ elf_symbol { full_name: "snd_pcm_period_elapsed" } elf_symbol { + id: 0x11b8b797 + name: "snd_pcm_rate_bit_to_rate" + is_defined: true + symbol_type: FUNCTION + crc: 0xff6104d0 + type_id: 0xdfba2774 + full_name: "snd_pcm_rate_bit_to_rate" +} +elf_symbol { + id: 0x19ea44b2 + name: "snd_pcm_rate_to_rate_bit" + is_defined: true + symbol_type: FUNCTION + crc: 0xb9638db4 + type_id: 0xdfba2774 + full_name: "snd_pcm_rate_to_rate_bit" +} +elf_symbol { id: 0xba998ee2 name: "snd_pcm_set_managed_buffer" is_defined: true @@ -369442,6 +382883,15 @@ elf_symbol { full_name: "snd_pcm_stop" } elf_symbol { + id: 0xc26d0753 + name: "snd_pcm_stop_xrun" + is_defined: true + symbol_type: FUNCTION + crc: 0x789b9ad6 + type_id: 0x98aeb261 + full_name: "snd_pcm_stop_xrun" +} +elf_symbol { id: 0x1f5649eb name: "snd_sgbuf_get_addr" is_defined: true @@ -369451,6 +382901,15 @@ elf_symbol { full_name: "snd_sgbuf_get_addr" } elf_symbol { + id: 0x31ef5894 + name: "snd_soc_add_card_controls" + is_defined: true + symbol_type: FUNCTION + crc: 0x3e965e80 + type_id: 0x9b3e4950 + full_name: "snd_soc_add_card_controls" +} +elf_symbol { id: 0x0af8ff72 name: "snd_soc_add_component_controls" is_defined: true @@ -370234,6 +383693,24 @@ elf_symbol { full_name: "snd_soc_jack_add_gpios" } elf_symbol { + id: 0xc92a02ef + name: "snd_soc_jack_add_zones" + is_defined: true + symbol_type: FUNCTION + crc: 0x1e0a39c0 + type_id: 0x9e6f0e68 + full_name: "snd_soc_jack_add_zones" +} +elf_symbol { + id: 0x804bafc3 + name: "snd_soc_jack_get_type" + is_defined: true + symbol_type: FUNCTION + crc: 0x0056842b + type_id: 0x9e65fffe + full_name: "snd_soc_jack_get_type" +} +elf_symbol { id: 0xabad0839 name: "snd_soc_jack_notifier_register" is_defined: true @@ -370630,6 +384107,15 @@ elf_symbol { full_name: "snd_usb_power_domain_set" } elf_symbol { + id: 0x25a85408 + name: "snd_vendor_set_ops" + is_defined: true + symbol_type: FUNCTION + crc: 0xadf3f0b9 + type_id: 0x9d251990 + full_name: "snd_vendor_set_ops" +} +elf_symbol { id: 0x32cae5ee name: "snprintf" is_defined: true @@ -370670,7 +384156,7 @@ elf_symbol { name: "sock_alloc_send_pskb" is_defined: true symbol_type: FUNCTION - crc: 0xf5630dde + crc: 0x6dea6a3b type_id: 0x6f0fa4b8 full_name: "sock_alloc_send_pskb" } @@ -370679,7 +384165,7 @@ elf_symbol { name: "sock_cmsg_send" is_defined: true symbol_type: FUNCTION - crc: 0xa704af1a + crc: 0xc2fae2af type_id: 0x9a66b93e full_name: "sock_cmsg_send" } @@ -370688,7 +384174,7 @@ elf_symbol { name: "sock_common_getsockopt" is_defined: true symbol_type: FUNCTION - crc: 0xd4e49119 + crc: 0x96aa0aa6 type_id: 0x981db4ff full_name: "sock_common_getsockopt" } @@ -370697,7 +384183,7 @@ elf_symbol { name: "sock_common_recvmsg" is_defined: true symbol_type: FUNCTION - crc: 0x0d3879ac + crc: 0x7f6ed9f9 type_id: 0x9917165a full_name: "sock_common_recvmsg" } @@ -370706,7 +384192,7 @@ elf_symbol { name: "sock_common_setsockopt" is_defined: true symbol_type: FUNCTION - crc: 0x0f672bf6 + crc: 0x7392419d type_id: 0x981e2b3a full_name: "sock_common_setsockopt" } @@ -370715,7 +384201,7 @@ elf_symbol { name: "sock_create_kern" is_defined: true symbol_type: FUNCTION - crc: 0xebb16500 + crc: 0x147b171c type_id: 0x9f2caa56 full_name: "sock_create_kern" } @@ -370724,7 +384210,7 @@ elf_symbol { name: "sock_diag_register" is_defined: true symbol_type: FUNCTION - crc: 0x2c196030 + crc: 0xa72c8e69 type_id: 0x9041c735 full_name: "sock_diag_register" } @@ -370733,7 +384219,7 @@ elf_symbol { name: "sock_diag_save_cookie" is_defined: true symbol_type: FUNCTION - crc: 0x347c9000 + crc: 0xf481d935 type_id: 0x17053351 full_name: "sock_diag_save_cookie" } @@ -370742,7 +384228,7 @@ elf_symbol { name: "sock_diag_unregister" is_defined: true symbol_type: FUNCTION - crc: 0xecbbb7db + crc: 0xa2a0e3d7 type_id: 0x1d597589 full_name: "sock_diag_unregister" } @@ -370751,7 +384237,7 @@ elf_symbol { name: "sock_edemux" is_defined: true symbol_type: FUNCTION - crc: 0xd8005670 + crc: 0x01d98814 type_id: 0x11cb8bd5 full_name: "sock_edemux" } @@ -370760,7 +384246,7 @@ elf_symbol { name: "sock_efree" is_defined: true symbol_type: FUNCTION - crc: 0xbbc475b4 + crc: 0xc58baa56 type_id: 0x11cb8bd5 full_name: "sock_efree" } @@ -370769,7 +384255,7 @@ elf_symbol { name: "sock_gen_put" is_defined: true symbol_type: FUNCTION - crc: 0x652da769 + crc: 0x1c0448b8 type_id: 0x17c95d08 full_name: "sock_gen_put" } @@ -370778,7 +384264,7 @@ elf_symbol { name: "sock_gettstamp" is_defined: true symbol_type: FUNCTION - crc: 0x501c4c9f + crc: 0x8a4df5ef type_id: 0x99e0f6e0 full_name: "sock_gettstamp" } @@ -370787,7 +384273,7 @@ elf_symbol { name: "sock_i_ino" is_defined: true symbol_type: FUNCTION - crc: 0x01459ed9 + crc: 0x6748dc4a type_id: 0x36fdc1c8 full_name: "sock_i_ino" } @@ -370796,7 +384282,7 @@ elf_symbol { name: "sock_i_uid" is_defined: true symbol_type: FUNCTION - crc: 0x807d843e + crc: 0xaf6d7db2 type_id: 0x7be897ce full_name: "sock_i_uid" } @@ -370805,7 +384291,7 @@ elf_symbol { name: "sock_init_data" is_defined: true symbol_type: FUNCTION - crc: 0x48865200 + crc: 0x60225859 type_id: 0x14f54b2b full_name: "sock_init_data" } @@ -370814,7 +384300,7 @@ elf_symbol { name: "sock_no_accept" is_defined: true symbol_type: FUNCTION - crc: 0x80d3ddd4 + crc: 0x42f44792 type_id: 0x99c11430 full_name: "sock_no_accept" } @@ -370823,7 +384309,7 @@ elf_symbol { name: "sock_no_bind" is_defined: true symbol_type: FUNCTION - crc: 0x7facc416 + crc: 0xd33a9cd9 type_id: 0x99526c70 full_name: "sock_no_bind" } @@ -370832,7 +384318,7 @@ elf_symbol { name: "sock_no_connect" is_defined: true symbol_type: FUNCTION - crc: 0x55cf3774 + crc: 0x74bf31f1 type_id: 0x9953f0f3 full_name: "sock_no_connect" } @@ -370841,7 +384327,7 @@ elf_symbol { name: "sock_no_getname" is_defined: true symbol_type: FUNCTION - crc: 0x79eb94ec + crc: 0x16879b58 type_id: 0x99526c70 full_name: "sock_no_getname" } @@ -370850,7 +384336,7 @@ elf_symbol { name: "sock_no_ioctl" is_defined: true symbol_type: FUNCTION - crc: 0xb74aef99 + crc: 0x6c24b62b type_id: 0x9882219f full_name: "sock_no_ioctl" } @@ -370859,7 +384345,7 @@ elf_symbol { name: "sock_no_listen" is_defined: true symbol_type: FUNCTION - crc: 0x601d3ae4 + crc: 0xb92c397b type_id: 0x98046a12 full_name: "sock_no_listen" } @@ -370868,7 +384354,7 @@ elf_symbol { name: "sock_no_mmap" is_defined: true symbol_type: FUNCTION - crc: 0x968dcaed + crc: 0xd3197c4c type_id: 0x9bf97de0 full_name: "sock_no_mmap" } @@ -370877,7 +384363,7 @@ elf_symbol { name: "sock_no_recvmsg" is_defined: true symbol_type: FUNCTION - crc: 0x29a24e8b + crc: 0x342df4d7 type_id: 0x9917165a full_name: "sock_no_recvmsg" } @@ -370886,7 +384372,7 @@ elf_symbol { name: "sock_no_sendmsg" is_defined: true symbol_type: FUNCTION - crc: 0xeb803c42 + crc: 0xca6cd3ce type_id: 0x99168ad9 full_name: "sock_no_sendmsg" } @@ -370895,7 +384381,7 @@ elf_symbol { name: "sock_no_sendpage" is_defined: true symbol_type: FUNCTION - crc: 0x0da10de5 + crc: 0xe33f0566 type_id: 0x10e9e7a3 full_name: "sock_no_sendpage" } @@ -370904,7 +384390,7 @@ elf_symbol { name: "sock_no_shutdown" is_defined: true symbol_type: FUNCTION - crc: 0x6f6b1a86 + crc: 0x4a1b3404 type_id: 0x98046a12 full_name: "sock_no_shutdown" } @@ -370913,7 +384399,7 @@ elf_symbol { name: "sock_no_socketpair" is_defined: true symbol_type: FUNCTION - crc: 0xd878dff8 + crc: 0x2e9cfbff type_id: 0x99d969f9 full_name: "sock_no_socketpair" } @@ -370922,7 +384408,7 @@ elf_symbol { name: "sock_queue_rcv_skb_reason" is_defined: true symbol_type: FUNCTION - crc: 0xaae6bf49 + crc: 0xf6d98003 type_id: 0x9ac7ffab full_name: "sock_queue_rcv_skb_reason" } @@ -370931,7 +384417,7 @@ elf_symbol { name: "sock_recv_errqueue" is_defined: true symbol_type: FUNCTION - crc: 0x20cc21a1 + crc: 0x9f725e3d type_id: 0x9a7acc16 full_name: "sock_recv_errqueue" } @@ -370940,7 +384426,7 @@ elf_symbol { name: "sock_recvmsg" is_defined: true symbol_type: FUNCTION - crc: 0x8e3b219a + crc: 0x350084ff type_id: 0x99324fb7 full_name: "sock_recvmsg" } @@ -370949,7 +384435,7 @@ elf_symbol { name: "sock_register" is_defined: true symbol_type: FUNCTION - crc: 0x07d718a9 + crc: 0xcb131c31 type_id: 0x93c23a28 full_name: "sock_register" } @@ -370958,7 +384444,7 @@ elf_symbol { name: "sock_release" is_defined: true symbol_type: FUNCTION - crc: 0x77b4b8ea + crc: 0x6369852b type_id: 0x14805be2 full_name: "sock_release" } @@ -370967,7 +384453,7 @@ elf_symbol { name: "sock_rfree" is_defined: true symbol_type: FUNCTION - crc: 0x9afdcf77 + crc: 0xa5192714 type_id: 0x11cb8bd5 full_name: "sock_rfree" } @@ -370976,7 +384462,7 @@ elf_symbol { name: "sock_setsockopt" is_defined: true symbol_type: FUNCTION - crc: 0x452cb265 + crc: 0x58182ec6 type_id: 0x981e2b3a full_name: "sock_setsockopt" } @@ -370990,11 +384476,20 @@ elf_symbol { full_name: "sock_unregister" } elf_symbol { + id: 0xeab36c96 + name: "sock_wake_async" + is_defined: true + symbol_type: FUNCTION + crc: 0xc356c393 + type_id: 0x9b4f443a + full_name: "sock_wake_async" +} +elf_symbol { id: 0xba26b6a3 name: "sock_wfree" is_defined: true symbol_type: FUNCTION - crc: 0xb88c4003 + crc: 0x94ad4d47 type_id: 0x11cb8bd5 full_name: "sock_wfree" } @@ -371003,7 +384498,7 @@ elf_symbol { name: "sock_wmalloc" is_defined: true symbol_type: FUNCTION - crc: 0x6ec4ae1a + crc: 0xf4659a5d type_id: 0x6f18ee87 full_name: "sock_wmalloc" } @@ -371012,7 +384507,7 @@ elf_symbol { name: "sockfd_lookup" is_defined: true symbol_type: FUNCTION - crc: 0x6d1eb263 + crc: 0x36c8b5ac type_id: 0x3d20d65e full_name: "sockfd_lookup" } @@ -371021,7 +384516,7 @@ elf_symbol { name: "softnet_data" is_defined: true symbol_type: OBJECT - crc: 0xde84bb84 + crc: 0x7a9ece2b type_id: 0x06066110 full_name: "softnet_data" } @@ -371548,6 +385043,15 @@ elf_symbol { full_name: "stack_trace_save" } elf_symbol { + id: 0x9ae5b413 + name: "stack_trace_save_regs" + is_defined: true + symbol_type: FUNCTION + crc: 0x2731e15c + type_id: 0xce9ab7ea + full_name: "stack_trace_save_regs" +} +elf_symbol { id: 0xe69a5898 name: "stack_trace_save_tsk" is_defined: true @@ -371593,6 +385097,15 @@ elf_symbol { full_name: "static_key_disable" } elf_symbol { + id: 0x8ac195eb + name: "static_key_enable" + is_defined: true + symbol_type: FUNCTION + crc: 0x6b2b69f7 + type_id: 0x1b3aea40 + full_name: "static_key_enable" +} +elf_symbol { id: 0xd09568e0 name: "static_key_slow_dec" is_defined: true @@ -371956,6 +385469,15 @@ elf_symbol { full_name: "suspend_set_ops" } elf_symbol { + id: 0xd5e0987f + name: "swiotlb_max_segment" + is_defined: true + symbol_type: FUNCTION + crc: 0x5b6b0329 + type_id: 0xcedb7efb + full_name: "swiotlb_max_segment" +} +elf_symbol { id: 0x1fe11014 name: "sync_blockdev" is_defined: true @@ -371965,6 +385487,15 @@ elf_symbol { full_name: "sync_blockdev" } elf_symbol { + id: 0x75fe69c4 + name: "sync_dirty_buffer" + is_defined: true + symbol_type: FUNCTION + crc: 0xcedf4474 + type_id: 0x9bdd1a71 + full_name: "sync_dirty_buffer" +} +elf_symbol { id: 0x2a267913 name: "sync_file_create" is_defined: true @@ -371983,6 +385514,24 @@ elf_symbol { full_name: "sync_file_get_fence" } elf_symbol { + id: 0xfb2634da + name: "sync_filesystem" + is_defined: true + symbol_type: FUNCTION + crc: 0x9b53df8a + type_id: 0x943b7925 + full_name: "sync_filesystem" +} +elf_symbol { + id: 0xe7caa0b7 + name: "sync_inode_metadata" + is_defined: true + symbol_type: FUNCTION + crc: 0xf4644f98 + type_id: 0x9afd0449 + full_name: "sync_inode_metadata" +} +elf_symbol { id: 0x3da4fd63 name: "synchronize_irq" is_defined: true @@ -372136,6 +385685,15 @@ elf_symbol { full_name: "sysctl_sched_features" } elf_symbol { + id: 0x87812861 + name: "sysctl_sched_latency" + is_defined: true + symbol_type: OBJECT + crc: 0xceee0cb7 + type_id: 0x4585663f + full_name: "sysctl_sched_latency" +} +elf_symbol { id: 0x18d0dd21 name: "sysctl_vals" is_defined: true @@ -372460,11 +386018,20 @@ elf_symbol { full_name: "system_wq" } elf_symbol { + id: 0x5a86c789 + name: "tag_pages_for_writeback" + is_defined: true + symbol_type: FUNCTION + crc: 0x31d107da + type_id: 0x1539f399 + full_name: "tag_pages_for_writeback" +} +elf_symbol { id: 0x2eda3aae name: "task_active_pid_ns" is_defined: true symbol_type: FUNCTION - crc: 0x0ec88ead + crc: 0xb113afdd type_id: 0xac273de0 full_name: "task_active_pid_ns" } @@ -372482,7 +386049,7 @@ elf_symbol { name: "task_rq_lock" is_defined: true symbol_type: FUNCTION - crc: 0x537d6594 + crc: 0x244345e0 type_id: 0x8d7ecefa full_name: "task_rq_lock" } @@ -372536,7 +386103,7 @@ elf_symbol { name: "tcf_action_exec" is_defined: true symbol_type: FUNCTION - crc: 0x2f58f2e0 + crc: 0x54890127 type_id: 0x9cdfbc5a full_name: "tcf_action_exec" } @@ -372545,7 +386112,7 @@ elf_symbol { name: "tcf_exts_destroy" is_defined: true symbol_type: FUNCTION - crc: 0xc9f23612 + crc: 0xf6b73e2c type_id: 0x147c9fd8 full_name: "tcf_exts_destroy" } @@ -372554,7 +386121,7 @@ elf_symbol { name: "tcf_exts_dump" is_defined: true symbol_type: FUNCTION - crc: 0xb93ef56d + crc: 0x1a005bd2 type_id: 0x9c9d758d full_name: "tcf_exts_dump" } @@ -372563,7 +386130,7 @@ elf_symbol { name: "tcf_exts_dump_stats" is_defined: true symbol_type: FUNCTION - crc: 0x4205043a + crc: 0x19a4eaf0 type_id: 0x9c9d758d full_name: "tcf_exts_dump_stats" } @@ -372572,7 +386139,7 @@ elf_symbol { name: "tcf_exts_validate" is_defined: true symbol_type: FUNCTION - crc: 0x3ede0e0f + crc: 0x6e754c3f type_id: 0x9e8d7e1b full_name: "tcf_exts_validate" } @@ -372595,6 +386162,60 @@ elf_symbol { full_name: "tcp_hashinfo" } elf_symbol { + id: 0x5f96413a + name: "tcp_register_congestion_control" + is_defined: true + symbol_type: FUNCTION + crc: 0x6a326cc1 + type_id: 0x920aa99b + full_name: "tcp_register_congestion_control" +} +elf_symbol { + id: 0x34a062e9 + name: "tcp_reno_cong_avoid" + is_defined: true + symbol_type: FUNCTION + crc: 0x49080385 + type_id: 0x14df3fae + full_name: "tcp_reno_cong_avoid" +} +elf_symbol { + id: 0x97edc1c5 + name: "tcp_reno_ssthresh" + is_defined: true + symbol_type: FUNCTION + crc: 0xfc040e49 + type_id: 0x42a927f9 + full_name: "tcp_reno_ssthresh" +} +elf_symbol { + id: 0xdb8e8104 + name: "tcp_reno_undo_cwnd" + is_defined: true + symbol_type: FUNCTION + crc: 0x4dece522 + type_id: 0x42a927f9 + full_name: "tcp_reno_undo_cwnd" +} +elf_symbol { + id: 0xe6a46ba8 + name: "tcp_slow_start" + is_defined: true + symbol_type: FUNCTION + crc: 0x1cf8d7ac + type_id: 0x4022c156 + full_name: "tcp_slow_start" +} +elf_symbol { + id: 0xefab10bf + name: "tcp_unregister_congestion_control" + is_defined: true + symbol_type: FUNCTION + crc: 0xc80e5686 + type_id: 0x1f121b27 + full_name: "tcp_unregister_congestion_control" +} +elf_symbol { id: 0x857e5dc9 name: "tcpci_get_tcpm_port" is_defined: true @@ -372685,6 +386306,15 @@ elf_symbol { full_name: "tcpm_port_is_toggling" } elf_symbol { + id: 0xd2070626 + name: "tcpm_register_port" + is_defined: true + symbol_type: FUNCTION + crc: 0xd95cde3e + type_id: 0x16949287 + full_name: "tcpm_register_port" +} +elf_symbol { id: 0xdebe76ba name: "tcpm_sink_frs" is_defined: true @@ -372703,6 +386333,24 @@ elf_symbol { full_name: "tcpm_sourcing_vbus" } elf_symbol { + id: 0xfccd15d1 + name: "tcpm_tcpc_reset" + is_defined: true + symbol_type: FUNCTION + crc: 0xea220941 + type_id: 0x129c1f38 + full_name: "tcpm_tcpc_reset" +} +elf_symbol { + id: 0x591431f1 + name: "tcpm_unregister_port" + is_defined: true + symbol_type: FUNCTION + crc: 0x76eeda4b + type_id: 0x129c1f38 + full_name: "tcpm_unregister_port" +} +elf_symbol { id: 0x6869c83d name: "tcpm_vbus_change" is_defined: true @@ -372712,6 +386360,24 @@ elf_symbol { full_name: "tcpm_vbus_change" } elf_symbol { + id: 0x7cfd9233 + name: "teo_cpu_get_util_threshold" + is_defined: true + symbol_type: FUNCTION + crc: 0x0482d3ad + type_id: 0x2864f998 + full_name: "teo_cpu_get_util_threshold" +} +elf_symbol { + id: 0xbd25c7d0 + name: "teo_cpu_set_util_threshold" + is_defined: true + symbol_type: FUNCTION + crc: 0xba6e00b6 + type_id: 0x099db0ca + full_name: "teo_cpu_set_util_threshold" +} +elf_symbol { id: 0x5bbd3545 name: "thermal_cdev_update" is_defined: true @@ -372802,6 +386468,15 @@ elf_symbol { full_name: "thermal_zone_device_register" } elf_symbol { + id: 0xed549fd4 + name: "thermal_zone_device_register_with_trips" + is_defined: true + symbol_type: FUNCTION + crc: 0xfcd9aad1 + type_id: 0xf2e4f0d1 + full_name: "thermal_zone_device_register_with_trips" +} +elf_symbol { id: 0x73954c59 name: "thermal_zone_device_unregister" is_defined: true @@ -372838,6 +386513,15 @@ elf_symbol { full_name: "thermal_zone_get_zone_by_name" } elf_symbol { + id: 0x61ab1273 + name: "thermal_zone_unbind_cooling_device" + is_defined: true + symbol_type: FUNCTION + crc: 0x13f7391c + type_id: 0x95a406a6 + full_name: "thermal_zone_unbind_cooling_device" +} +elf_symbol { id: 0x68e98442 name: "thread_group_cputime_adjusted" is_defined: true @@ -372910,6 +386594,15 @@ elf_symbol { full_name: "timer_of_init" } elf_symbol { + id: 0x5da495c5 + name: "timer_reduce" + is_defined: true + symbol_type: FUNCTION + crc: 0x75c21753 + type_id: 0x92c0b65c + full_name: "timer_reduce" +} +elf_symbol { id: 0xdc3e523b name: "timer_unstable_counter_workaround" is_defined: true @@ -372928,11 +386621,20 @@ elf_symbol { full_name: "timespec64_to_jiffies" } elf_symbol { + id: 0xaed64d9d + name: "timestamp_truncate" + is_defined: true + symbol_type: FUNCTION + crc: 0xe6d28852 + type_id: 0xb98ee524 + full_name: "timestamp_truncate" +} +elf_symbol { id: 0xa603e7df name: "tipc_dump_done" is_defined: true symbol_type: FUNCTION - crc: 0xe44d4431 + crc: 0xdc43d984 type_id: 0x96b01a1d full_name: "tipc_dump_done" } @@ -372941,7 +386643,7 @@ elf_symbol { name: "tipc_dump_start" is_defined: true symbol_type: FUNCTION - crc: 0xadb723c7 + crc: 0x60da1d20 type_id: 0x96b01a1d full_name: "tipc_dump_start" } @@ -372950,7 +386652,7 @@ elf_symbol { name: "tipc_nl_sk_walk" is_defined: true symbol_type: FUNCTION - crc: 0x10cb8456 + crc: 0xf6b650cc type_id: 0x9c6b5433 full_name: "tipc_nl_sk_walk" } @@ -372959,7 +386661,7 @@ elf_symbol { name: "tipc_sk_fill_sock_diag" is_defined: true symbol_type: FUNCTION - crc: 0x50bf6749 + crc: 0x2a0945d7 type_id: 0x9c6f59d4 full_name: "tipc_sk_fill_sock_diag" } @@ -372991,6 +386693,15 @@ elf_symbol { full_name: "topology_update_thermal_pressure" } elf_symbol { + id: 0x3217f3a4 + name: "touch_atime" + is_defined: true + symbol_type: FUNCTION + crc: 0x838565c7 + type_id: 0x1e3bdb22 + full_name: "touch_atime" +} +elf_symbol { id: 0xf7dfdad1 name: "touch_softlockup_watchdog" is_defined: true @@ -373243,6 +386954,42 @@ elf_symbol { full_name: "tracing_off" } elf_symbol { + id: 0x3f07269b + name: "truncate_inode_pages" + is_defined: true + symbol_type: FUNCTION + crc: 0x30d50607 + type_id: 0x1566644a + full_name: "truncate_inode_pages" +} +elf_symbol { + id: 0x3c7c6ce9 + name: "truncate_inode_pages_final" + is_defined: true + symbol_type: FUNCTION + crc: 0xc3c0465a + type_id: 0x15f8fb52 + full_name: "truncate_inode_pages_final" +} +elf_symbol { + id: 0x7a43283c + name: "truncate_pagecache" + is_defined: true + symbol_type: FUNCTION + crc: 0x288af9d7 + type_id: 0x16e7aaa1 + full_name: "truncate_pagecache" +} +elf_symbol { + id: 0x44cd0751 + name: "truncate_setsize" + is_defined: true + symbol_type: FUNCTION + crc: 0x3a8f6a77 + type_id: 0x16e7aaa1 + full_name: "truncate_setsize" +} +elf_symbol { id: 0x3d986fb5 name: "try_module_get" is_defined: true @@ -373270,6 +387017,15 @@ elf_symbol { full_name: "try_to_free_mem_cgroup_pages" } elf_symbol { + id: 0x8fa1e478 + name: "try_to_writeback_inodes_sb" + is_defined: true + symbol_type: FUNCTION + crc: 0xaa6bae3f + type_id: 0x1b90a8d8 + full_name: "try_to_writeback_inodes_sb" +} +elf_symbol { id: 0xe54aec5b name: "try_wait_for_completion" is_defined: true @@ -373283,7 +387039,7 @@ elf_symbol { name: "tso_build_data" is_defined: true symbol_type: FUNCTION - crc: 0xeb47c5df + crc: 0x04fc9d12 type_id: 0x1fdd6fd2 full_name: "tso_build_data" } @@ -373292,7 +387048,7 @@ elf_symbol { name: "tso_build_hdr" is_defined: true symbol_type: FUNCTION - crc: 0xbea998bc + crc: 0x66be5638 type_id: 0x1f1f7d50 full_name: "tso_build_hdr" } @@ -373301,7 +387057,7 @@ elf_symbol { name: "tso_count_descs" is_defined: true symbol_type: FUNCTION - crc: 0x34cb5b12 + crc: 0x4a333dc6 type_id: 0x92180697 full_name: "tso_count_descs" } @@ -373310,7 +387066,7 @@ elf_symbol { name: "tso_start" is_defined: true symbol_type: FUNCTION - crc: 0x22ca21c7 + crc: 0x3d491a47 type_id: 0x9c172aa4 full_name: "tso_start" } @@ -373441,6 +387197,15 @@ elf_symbol { full_name: "ttm_bo_unlock_delayed_workqueue" } elf_symbol { + id: 0xf35fc966 + name: "ttm_bo_unmap_virtual" + is_defined: true + symbol_type: FUNCTION + crc: 0xb6ff6422 + type_id: 0x19832066 + full_name: "ttm_bo_unmap_virtual" +} +elf_symbol { id: 0x05d29e21 name: "ttm_bo_unpin" is_defined: true @@ -373531,6 +387296,15 @@ elf_symbol { full_name: "ttm_bo_vunmap" } elf_symbol { + id: 0x46252c06 + name: "ttm_bo_wait" + is_defined: true + symbol_type: FUNCTION + crc: 0xe6de126c + type_id: 0x95353072 + full_name: "ttm_bo_wait" +} +elf_symbol { id: 0x7d656c6a name: "ttm_device_fini" is_defined: true @@ -373558,6 +387332,15 @@ elf_symbol { full_name: "ttm_eu_backoff_reservation" } elf_symbol { + id: 0x42083e9a + name: "ttm_eu_fence_buffer_objects" + is_defined: true + symbol_type: FUNCTION + crc: 0x844d1fc4 + type_id: 0x1b6dacf7 + full_name: "ttm_eu_fence_buffer_objects" +} +elf_symbol { id: 0x697b29f0 name: "ttm_eu_reserve_buffers" is_defined: true @@ -373702,6 +387485,15 @@ elf_symbol { full_name: "ttm_tt_fini" } elf_symbol { + id: 0xcbabaff3 + name: "ttm_tt_unpopulate" + is_defined: true + symbol_type: FUNCTION + crc: 0xa5cacfb1 + type_id: 0x14b4088f + full_name: "ttm_tt_unpopulate" +} +elf_symbol { id: 0x0b4dd20d name: "tty_chars_in_buffer" is_defined: true @@ -373783,6 +387575,15 @@ elf_symbol { full_name: "tty_hangup" } elf_symbol { + id: 0xfdbc073c + name: "tty_hung_up_p" + is_defined: true + symbol_type: FUNCTION + crc: 0xeefa4457 + type_id: 0x9bba7997 + full_name: "tty_hung_up_p" +} +elf_symbol { id: 0x59f7bc61 name: "tty_insert_flip_string_fixed_flag" is_defined: true @@ -373864,6 +387665,24 @@ elf_symbol { full_name: "tty_mode_ioctl" } elf_symbol { + id: 0xe5875746 + name: "tty_name" + is_defined: true + symbol_type: FUNCTION + crc: 0x243bde31 + type_id: 0x9f67ec8c + full_name: "tty_name" +} +elf_symbol { + id: 0x44728108 + name: "tty_port_block_til_ready" + is_defined: true + symbol_type: FUNCTION + crc: 0x4fd52fc4 + type_id: 0x9bb937dc + full_name: "tty_port_block_til_ready" +} +elf_symbol { id: 0x2a899db0 name: "tty_port_close" is_defined: true @@ -373873,6 +387692,24 @@ elf_symbol { full_name: "tty_port_close" } elf_symbol { + id: 0x41fc53b5 + name: "tty_port_close_end" + is_defined: true + symbol_type: FUNCTION + crc: 0x07fcb1b2 + type_id: 0x16a7bffa + full_name: "tty_port_close_end" +} +elf_symbol { + id: 0xb7985539 + name: "tty_port_close_start" + is_defined: true + symbol_type: FUNCTION + crc: 0xee77b72e + type_id: 0x9bb937dc + full_name: "tty_port_close_start" +} +elf_symbol { id: 0x954d57e8 name: "tty_port_destroy" is_defined: true @@ -373909,6 +387746,24 @@ elf_symbol { full_name: "tty_port_install" } elf_symbol { + id: 0x3ed74db1 + name: "tty_port_link_device" + is_defined: true + symbol_type: FUNCTION + crc: 0xebd3061e + type_id: 0x16cab29d + full_name: "tty_port_link_device" +} +elf_symbol { + id: 0x8c3087ea + name: "tty_port_lower_dtr_rts" + is_defined: true + symbol_type: FUNCTION + crc: 0x8d16eae7 + type_id: 0x161c45fb + full_name: "tty_port_lower_dtr_rts" +} +elf_symbol { id: 0x4e9dfcab name: "tty_port_open" is_defined: true @@ -373954,6 +387809,15 @@ elf_symbol { full_name: "tty_port_tty_hangup" } elf_symbol { + id: 0x99f6096a + name: "tty_port_tty_set" + is_defined: true + symbol_type: FUNCTION + crc: 0x1c5d6934 + type_id: 0x16a7bffa + full_name: "tty_port_tty_set" +} +elf_symbol { id: 0x1f87b736 name: "tty_port_tty_wakeup" is_defined: true @@ -373963,6 +387827,15 @@ elf_symbol { full_name: "tty_port_tty_wakeup" } elf_symbol { + id: 0x74487c98 + name: "tty_register_device" + is_defined: true + symbol_type: FUNCTION + crc: 0xa1b48c8f + type_id: 0xa040d060 + full_name: "tty_register_device" +} +elf_symbol { id: 0x727ea003 name: "tty_register_driver" is_defined: true @@ -374116,6 +387989,42 @@ elf_symbol { full_name: "tty_write_room" } elf_symbol { + id: 0xfb5efe2e + name: "typec_altmode_attention" + is_defined: true + symbol_type: FUNCTION + crc: 0x398e7f4f + type_id: 0x1e02170b + full_name: "typec_altmode_attention" +} +elf_symbol { + id: 0x58687602 + name: "typec_altmode_notify" + is_defined: true + symbol_type: FUNCTION + crc: 0xabc1a359 + type_id: 0x90f57fd0 + full_name: "typec_altmode_notify" +} +elf_symbol { + id: 0xe7fb597f + name: "typec_altmode_update_active" + is_defined: true + symbol_type: FUNCTION + crc: 0xa9986484 + type_id: 0x1c93cad8 + full_name: "typec_altmode_update_active" +} +elf_symbol { + id: 0xe6cbb47e + name: "typec_altmode_vdm" + is_defined: true + symbol_type: FUNCTION + crc: 0xe01054ea + type_id: 0x93177804 + full_name: "typec_altmode_vdm" +} +elf_symbol { id: 0x0d23e13a name: "typec_find_port_data_role" is_defined: true @@ -374134,6 +388043,15 @@ elf_symbol { full_name: "typec_find_port_power_role" } elf_symbol { + id: 0xe9d634b5 + name: "typec_find_power_role" + is_defined: true + symbol_type: FUNCTION + crc: 0x2d1e301d + type_id: 0x9204ce69 + full_name: "typec_find_power_role" +} +elf_symbol { id: 0x84b20708 name: "typec_get_drvdata" is_defined: true @@ -374143,6 +388061,15 @@ elf_symbol { full_name: "typec_get_drvdata" } elf_symbol { + id: 0xb8c4fc82 + name: "typec_match_altmode" + is_defined: true + symbol_type: FUNCTION + crc: 0x3fa48e72 + type_id: 0xd001e6e1 + full_name: "typec_match_altmode" +} +elf_symbol { id: 0x8fafe0a6 name: "typec_mux_get_drvdata" is_defined: true @@ -374188,6 +388115,15 @@ elf_symbol { full_name: "typec_mux_unregister" } elf_symbol { + id: 0x6dffcd52 + name: "typec_partner_register_altmode" + is_defined: true + symbol_type: FUNCTION + crc: 0x853b52c9 + type_id: 0xd6e94dc1 + full_name: "typec_partner_register_altmode" +} +elf_symbol { id: 0xe9bfa224 name: "typec_partner_set_identity" is_defined: true @@ -374215,6 +388151,15 @@ elf_symbol { full_name: "typec_partner_set_svdm_version" } elf_symbol { + id: 0x4fe4e1e0 + name: "typec_port_register_altmode" + is_defined: true + symbol_type: FUNCTION + crc: 0x545d0306 + type_id: 0xdf267053 + full_name: "typec_port_register_altmode" +} +elf_symbol { id: 0x22d09ebb name: "typec_register_partner" is_defined: true @@ -374242,6 +388187,15 @@ elf_symbol { full_name: "typec_set_data_role" } elf_symbol { + id: 0x7e6ad5ea + name: "typec_set_mode" + is_defined: true + symbol_type: FUNCTION + crc: 0x8519551e + type_id: 0x91c47df8 + full_name: "typec_set_mode" +} +elf_symbol { id: 0xfb60a10e name: "typec_set_orientation" is_defined: true @@ -374305,6 +388259,15 @@ elf_symbol { full_name: "typec_switch_unregister" } elf_symbol { + id: 0xcbaf28c3 + name: "typec_unregister_altmode" + is_defined: true + symbol_type: FUNCTION + crc: 0x308ea05e + type_id: 0x1d2637a7 + full_name: "typec_unregister_altmode" +} +elf_symbol { id: 0x098b2c4d name: "typec_unregister_partner" is_defined: true @@ -374498,7 +388461,7 @@ elf_symbol { name: "uclamp_eff_value" is_defined: true symbol_type: FUNCTION - crc: 0x57dee79e + crc: 0xb35eaea1 type_id: 0x37f8837e full_name: "uclamp_eff_value" } @@ -374579,7 +388542,7 @@ elf_symbol { name: "udp4_hwcsum" is_defined: true symbol_type: FUNCTION - crc: 0x444ed4fa + crc: 0xa1b5298e type_id: 0x127accc9 full_name: "udp4_hwcsum" } @@ -374588,7 +388551,7 @@ elf_symbol { name: "udp6_set_csum" is_defined: true symbol_type: FUNCTION - crc: 0x052a9ec6 + crc: 0x2b6945b5 type_id: 0x0bdc9e9d full_name: "udp6_set_csum" } @@ -374597,7 +388560,7 @@ elf_symbol { name: "udp_set_csum" is_defined: true symbol_type: FUNCTION - crc: 0x135d2347 + crc: 0xa61148a7 type_id: 0x0be9b673 full_name: "udp_set_csum" } @@ -374606,7 +388569,7 @@ elf_symbol { name: "udp_sock_create4" is_defined: true symbol_type: FUNCTION - crc: 0xdfd29b5b + crc: 0x37d2c34f type_id: 0x9ea1fe03 full_name: "udp_sock_create4" } @@ -374615,7 +388578,7 @@ elf_symbol { name: "udp_sock_create6" is_defined: true symbol_type: FUNCTION - crc: 0x70ac4bc2 + crc: 0xec652a9e type_id: 0x9ea1fe03 full_name: "udp_sock_create6" } @@ -374633,7 +388596,7 @@ elf_symbol { name: "udp_tunnel6_xmit_skb" is_defined: true symbol_type: FUNCTION - crc: 0x98110076 + crc: 0x5106a9d0 type_id: 0x99621666 full_name: "udp_tunnel6_xmit_skb" } @@ -374642,7 +388605,7 @@ elf_symbol { name: "udp_tunnel_sock_release" is_defined: true symbol_type: FUNCTION - crc: 0xb2544353 + crc: 0x8d386e7d type_id: 0x14805be2 full_name: "udp_tunnel_sock_release" } @@ -374651,7 +388614,7 @@ elf_symbol { name: "udp_tunnel_xmit_skb" is_defined: true symbol_type: FUNCTION - crc: 0x07857593 + crc: 0xb583abe2 type_id: 0x14a305ea full_name: "udp_tunnel_xmit_skb" } @@ -374836,6 +388799,15 @@ elf_symbol { full_name: "ufshcd_mcq_config_esi" } elf_symbol { + id: 0x71dad1b2 + name: "ufshcd_mcq_config_mac" + is_defined: true + symbol_type: FUNCTION + crc: 0xd1787215 + type_id: 0x125cb480 + full_name: "ufshcd_mcq_config_mac" +} +elf_symbol { id: 0x051c0489 name: "ufshcd_mcq_enable_esi" is_defined: true @@ -374845,6 +388817,15 @@ elf_symbol { full_name: "ufshcd_mcq_enable_esi" } elf_symbol { + id: 0x562c9a11 + name: "ufshcd_mcq_make_queues_operational" + is_defined: true + symbol_type: FUNCTION + crc: 0x1d22bd73 + type_id: 0x1178942c + full_name: "ufshcd_mcq_make_queues_operational" +} +elf_symbol { id: 0x56d1da85 name: "ufshcd_mcq_poll_cqe_lock" is_defined: true @@ -374863,6 +388844,15 @@ elf_symbol { full_name: "ufshcd_mcq_poll_cqe_nolock" } elf_symbol { + id: 0xaefd3622 + name: "ufshcd_mcq_read_cqis" + is_defined: true + symbol_type: FUNCTION + crc: 0xeafc7b98 + type_id: 0x45846d91 + full_name: "ufshcd_mcq_read_cqis" +} +elf_symbol { id: 0x3ecd46f0 name: "ufshcd_mcq_write_cqis" is_defined: true @@ -375097,6 +389087,15 @@ elf_symbol { full_name: "uio_unregister_device" } elf_symbol { + id: 0xa13a99d8 + name: "unload_nls" + is_defined: true + symbol_type: FUNCTION + crc: 0xf632a6eb + type_id: 0x10aeeb41 + full_name: "unload_nls" +} +elf_symbol { id: 0x9f5197f0 name: "unlock_buffer" is_defined: true @@ -375106,6 +389105,15 @@ elf_symbol { full_name: "unlock_buffer" } elf_symbol { + id: 0x5ad67dea + name: "unlock_new_inode" + is_defined: true + symbol_type: FUNCTION + crc: 0x8e87ba89 + type_id: 0x167935b9 + full_name: "unlock_new_inode" +} +elf_symbol { id: 0x11fd8c82 name: "unlock_page" is_defined: true @@ -375164,7 +389172,7 @@ elf_symbol { name: "unregister_candev" is_defined: true symbol_type: FUNCTION - crc: 0x02cecd3b + crc: 0x9ae27a5a type_id: 0x1c31d966 full_name: "unregister_candev" } @@ -375281,7 +389289,7 @@ elf_symbol { name: "unregister_netdev" is_defined: true symbol_type: FUNCTION - crc: 0x055bc919 + crc: 0x4ab68b33 type_id: 0x1c31d966 full_name: "unregister_netdev" } @@ -375308,7 +389316,7 @@ elf_symbol { name: "unregister_netdevice_queue" is_defined: true symbol_type: FUNCTION - crc: 0x2aad467d + crc: 0xc7086c08 type_id: 0x1cc85181 full_name: "unregister_netdevice_queue" } @@ -375335,7 +389343,7 @@ elf_symbol { name: "unregister_pernet_device" is_defined: true symbol_type: FUNCTION - crc: 0xe7479758 + crc: 0x35887880 type_id: 0x1a8e27b5 full_name: "unregister_pernet_device" } @@ -375344,7 +389352,7 @@ elf_symbol { name: "unregister_pernet_subsys" is_defined: true symbol_type: FUNCTION - crc: 0x2a5e310c + crc: 0xa19edd2d type_id: 0x1a8e27b5 full_name: "unregister_pernet_subsys" } @@ -375371,7 +389379,7 @@ elf_symbol { name: "unregister_qdisc" is_defined: true symbol_type: FUNCTION - crc: 0x095e99c5 + crc: 0x2fc8474d type_id: 0x1f62fcf3 full_name: "unregister_qdisc" } @@ -375434,7 +389442,7 @@ elf_symbol { name: "unregister_tcf_proto_ops" is_defined: true symbol_type: FUNCTION - crc: 0x6d485c23 + crc: 0x2c8730c5 type_id: 0x17e4a48e full_name: "unregister_tcf_proto_ops" } @@ -375506,7 +389514,7 @@ elf_symbol { name: "update_rq_clock" is_defined: true symbol_type: FUNCTION - crc: 0xb89543a9 + crc: 0x7ff431ed type_id: 0x1b18f64e full_name: "update_rq_clock" } @@ -375551,16 +389559,25 @@ elf_symbol { name: "usb_add_hcd" is_defined: true symbol_type: FUNCTION - crc: 0x6247478f + crc: 0xa85ddb88 type_id: 0x95c42336 full_name: "usb_add_hcd" } elf_symbol { + id: 0xea314c1f + name: "usb_add_phy" + is_defined: true + symbol_type: FUNCTION + crc: 0xb3aac08b + type_id: 0x9e7bd8f3 + full_name: "usb_add_phy" +} +elf_symbol { id: 0xdc59a2d7 name: "usb_add_phy_dev" is_defined: true symbol_type: FUNCTION - crc: 0xf141f866 + crc: 0xce9b68c4 type_id: 0x9cf04bdd full_name: "usb_add_phy_dev" } @@ -375745,6 +389762,15 @@ elf_symbol { full_name: "usb_calc_bus_time" } elf_symbol { + id: 0x23a5ab99 + name: "usb_choose_configuration" + is_defined: true + symbol_type: FUNCTION + crc: 0xf7b90cc4 + type_id: 0x9edfdadc + full_name: "usb_choose_configuration" +} +elf_symbol { id: 0x2a589f64 name: "usb_clear_halt" is_defined: true @@ -375821,7 +389847,7 @@ elf_symbol { name: "usb_create_hcd" is_defined: true symbol_type: FUNCTION - crc: 0x8cadc222 + crc: 0xb28c2fa9 type_id: 0xab95c382 full_name: "usb_create_hcd" } @@ -375830,7 +389856,7 @@ elf_symbol { name: "usb_create_shared_hcd" is_defined: true symbol_type: FUNCTION - crc: 0x6dec386f + crc: 0xdd54bd2d type_id: 0xab955662 full_name: "usb_create_shared_hcd" } @@ -375880,6 +389906,15 @@ elf_symbol { full_name: "usb_deregister" } elf_symbol { + id: 0x201afca9 + name: "usb_deregister_dev" + is_defined: true + symbol_type: FUNCTION + crc: 0x6835cf09 + type_id: 0x18159e1c + full_name: "usb_deregister_dev" +} +elf_symbol { id: 0xd75ad246 name: "usb_device_match_id" is_defined: true @@ -376060,6 +390095,15 @@ elf_symbol { full_name: "usb_find_common_endpoints" } elf_symbol { + id: 0x899ff164 + name: "usb_find_interface" + is_defined: true + symbol_type: FUNCTION + crc: 0x8b21a5ec + type_id: 0x4d306964 + full_name: "usb_find_interface" +} +elf_symbol { id: 0x4ec99a42 name: "usb_free_all_descriptors" is_defined: true @@ -376343,7 +390387,7 @@ elf_symbol { name: "usb_hc_died" is_defined: true symbol_type: FUNCTION - crc: 0x38aa1c3c + crc: 0xcf36bf41 type_id: 0x19c6594b full_name: "usb_hc_died" } @@ -376352,7 +390396,7 @@ elf_symbol { name: "usb_hcd_check_unlink_urb" is_defined: true symbol_type: FUNCTION - crc: 0xa80137b0 + crc: 0x34c34625 type_id: 0x94c3e345 full_name: "usb_hcd_check_unlink_urb" } @@ -376370,7 +390414,7 @@ elf_symbol { name: "usb_hcd_giveback_urb" is_defined: true symbol_type: FUNCTION - crc: 0xea56a070 + crc: 0x0efbce6b type_id: 0x19db51f9 full_name: "usb_hcd_giveback_urb" } @@ -376388,7 +390432,7 @@ elf_symbol { name: "usb_hcd_is_primary_hcd" is_defined: true symbol_type: FUNCTION - crc: 0xbd67c348 + crc: 0x29906c2f type_id: 0x94deebf7 full_name: "usb_hcd_is_primary_hcd" } @@ -376397,7 +390441,7 @@ elf_symbol { name: "usb_hcd_link_urb_to_ep" is_defined: true symbol_type: FUNCTION - crc: 0xdd9ebcee + crc: 0xdeb2c756 type_id: 0x94da2b71 full_name: "usb_hcd_link_urb_to_ep" } @@ -376406,7 +390450,7 @@ elf_symbol { name: "usb_hcd_map_urb_for_dma" is_defined: true symbol_type: FUNCTION - crc: 0xcf8e99d6 + crc: 0x9fc35a66 type_id: 0x94e642c6 full_name: "usb_hcd_map_urb_for_dma" } @@ -376460,7 +390504,7 @@ elf_symbol { name: "usb_hcd_poll_rh_status" is_defined: true symbol_type: FUNCTION - crc: 0x2dd7f5fb + crc: 0xc9c702e0 type_id: 0x19c6594b full_name: "usb_hcd_poll_rh_status" } @@ -376469,7 +390513,7 @@ elf_symbol { name: "usb_hcd_resume_root_hub" is_defined: true symbol_type: FUNCTION - crc: 0x19d1a071 + crc: 0x18dfd09e type_id: 0x19c6594b full_name: "usb_hcd_resume_root_hub" } @@ -376487,7 +390531,7 @@ elf_symbol { name: "usb_hcd_unlink_urb_from_ep" is_defined: true symbol_type: FUNCTION - crc: 0x2f0d23c2 + crc: 0x2146f0f8 type_id: 0x19c299cd full_name: "usb_hcd_unlink_urb_from_ep" } @@ -376496,7 +390540,7 @@ elf_symbol { name: "usb_hcd_unmap_urb_for_dma" is_defined: true symbol_type: FUNCTION - crc: 0xb3df972e + crc: 0x6ed65a4b type_id: 0x19c299cd full_name: "usb_hcd_unmap_urb_for_dma" } @@ -376510,6 +390554,15 @@ elf_symbol { full_name: "usb_hcds_loaded" } elf_symbol { + id: 0x00a14c5c + name: "usb_hid_driver" + is_defined: true + symbol_type: OBJECT + crc: 0x06332c5c + type_id: 0x2def15e8 + full_name: "usb_hid_driver" +} +elf_symbol { id: 0x868c5f6e name: "usb_hub_clear_tt_buffer" is_defined: true @@ -376564,6 +390617,15 @@ elf_symbol { full_name: "usb_interface_id" } elf_symbol { + id: 0x83676405 + name: "usb_interrupt_msg" + is_defined: true + symbol_type: FUNCTION + crc: 0xc5e153c9 + type_id: 0x9fce79d4 + full_name: "usb_interrupt_msg" +} +elf_symbol { id: 0x89c78ea4 name: "usb_kill_anchored_urbs" is_defined: true @@ -376622,7 +390684,7 @@ elf_symbol { name: "usb_phy_get_charger_current" is_defined: true symbol_type: FUNCTION - crc: 0x04d5b762 + crc: 0xa4c06f8d type_id: 0x1181c0b9 full_name: "usb_phy_get_charger_current" } @@ -376631,7 +390693,7 @@ elf_symbol { name: "usb_phy_set_charger_current" is_defined: true symbol_type: FUNCTION - crc: 0xc48dd5bb + crc: 0x7da77357 type_id: 0x10feecf9 full_name: "usb_phy_set_charger_current" } @@ -376640,7 +390702,7 @@ elf_symbol { name: "usb_phy_set_charger_state" is_defined: true symbol_type: FUNCTION - crc: 0xdc6270fa + crc: 0xc9c6de2a type_id: 0x10a7df71 full_name: "usb_phy_set_charger_state" } @@ -376649,11 +390711,20 @@ elf_symbol { name: "usb_phy_set_event" is_defined: true symbol_type: FUNCTION - crc: 0x622816bd + crc: 0xe538692b type_id: 0x11252cf3 full_name: "usb_phy_set_event" } elf_symbol { + id: 0xbf06fcb7 + name: "usb_poison_anchored_urbs" + is_defined: true + symbol_type: FUNCTION + crc: 0x842f046d + type_id: 0x1d8d80fc + full_name: "usb_poison_anchored_urbs" +} +elf_symbol { id: 0xcaff4b1e name: "usb_poison_urb" is_defined: true @@ -376694,7 +390765,7 @@ elf_symbol { name: "usb_put_hcd" is_defined: true symbol_type: FUNCTION - crc: 0xecece866 + crc: 0x4174560b type_id: 0x19c6594b full_name: "usb_put_hcd" } @@ -376717,6 +390788,15 @@ elf_symbol { full_name: "usb_queue_reset_device" } elf_symbol { + id: 0xa60cf3b7 + name: "usb_register_dev" + is_defined: true + symbol_type: FUNCTION + crc: 0xf06b7687 + type_id: 0x950d2ca0 + full_name: "usb_register_dev" +} +elf_symbol { id: 0x944deaea name: "usb_register_driver" is_defined: true @@ -376748,7 +390828,7 @@ elf_symbol { name: "usb_remove_hcd" is_defined: true symbol_type: FUNCTION - crc: 0x7f72ca76 + crc: 0x39effec3 type_id: 0x19c6594b full_name: "usb_remove_hcd" } @@ -376757,7 +390837,7 @@ elf_symbol { name: "usb_remove_phy" is_defined: true symbol_type: FUNCTION - crc: 0x752c7b83 + crc: 0x6b13dee2 type_id: 0x11e8f961 full_name: "usb_remove_phy" } @@ -376816,6 +390896,15 @@ elf_symbol { full_name: "usb_role_switch_get_drvdata" } elf_symbol { + id: 0x9de82d32 + name: "usb_role_switch_get_role" + is_defined: true + symbol_type: FUNCTION + crc: 0xff42c374 + type_id: 0x9a23bd25 + full_name: "usb_role_switch_get_role" +} +elf_symbol { id: 0x09c05733 name: "usb_role_switch_put" is_defined: true @@ -377068,6 +391157,15 @@ elf_symbol { full_name: "usb_serial_suspend" } elf_symbol { + id: 0xedbb00b2 + name: "usb_set_configuration" + is_defined: true + symbol_type: FUNCTION + crc: 0x58ece092 + type_id: 0x9f435990 + full_name: "usb_set_configuration" +} +elf_symbol { id: 0x34af8a35 name: "usb_set_device_state" is_defined: true @@ -377185,6 +391283,15 @@ elf_symbol { full_name: "usb_unregister_notify" } elf_symbol { + id: 0x9ea1c58f + name: "usb_wakeup_enabled_descendants" + is_defined: true + symbol_type: FUNCTION + crc: 0xa1709c0c + type_id: 0xcd844708 + full_name: "usb_wakeup_enabled_descendants" +} +elf_symbol { id: 0x140d9164 name: "usb_wakeup_notification" is_defined: true @@ -377194,24 +391301,231 @@ elf_symbol { full_name: "usb_wakeup_notification" } elf_symbol { + id: 0xbbf007f4 + name: "usbnet_change_mtu" + is_defined: true + symbol_type: FUNCTION + crc: 0xdf1db1f5 + type_id: 0x90b5e896 + full_name: "usbnet_change_mtu" +} +elf_symbol { + id: 0xd28057f3 + name: "usbnet_defer_kevent" + is_defined: true + symbol_type: FUNCTION + crc: 0x6e3c218b + type_id: 0x1276a8bd + full_name: "usbnet_defer_kevent" +} +elf_symbol { + id: 0x580c56b8 + name: "usbnet_disconnect" + is_defined: true + symbol_type: FUNCTION + crc: 0xfe1e5ee6 + type_id: 0x18d9f669 + full_name: "usbnet_disconnect" +} +elf_symbol { + id: 0x8f0c866d + name: "usbnet_get_drvinfo" + is_defined: true + symbol_type: FUNCTION + crc: 0xa5701874 + type_id: 0x1cc68e0f + full_name: "usbnet_get_drvinfo" +} +elf_symbol { id: 0x52816b1c name: "usbnet_get_endpoints" is_defined: true symbol_type: FUNCTION - crc: 0xb81f75b2 + crc: 0xb30fc515 type_id: 0x9e768332 full_name: "usbnet_get_endpoints" } elf_symbol { + id: 0x4f4e9353 + name: "usbnet_get_link" + is_defined: true + symbol_type: FUNCTION + crc: 0xa8e792b0 + type_id: 0x4951a397 + full_name: "usbnet_get_link" +} +elf_symbol { + id: 0x3f51a906 + name: "usbnet_get_link_ksettings_mii" + is_defined: true + symbol_type: FUNCTION + crc: 0x2d9393b2 + type_id: 0x914dbe16 + full_name: "usbnet_get_link_ksettings_mii" +} +elf_symbol { + id: 0x6515c416 + name: "usbnet_get_msglevel" + is_defined: true + symbol_type: FUNCTION + crc: 0xaa53e6df + type_id: 0x4951a397 + full_name: "usbnet_get_msglevel" +} +elf_symbol { id: 0x19d80976 name: "usbnet_link_change" is_defined: true symbol_type: FUNCTION - crc: 0x64177fcb + crc: 0x8a855afb type_id: 0x12448959 full_name: "usbnet_link_change" } elf_symbol { + id: 0x6c854cb3 + name: "usbnet_nway_reset" + is_defined: true + symbol_type: FUNCTION + crc: 0x44c1d620 + type_id: 0x91296bda + full_name: "usbnet_nway_reset" +} +elf_symbol { + id: 0xcd021e80 + name: "usbnet_open" + is_defined: true + symbol_type: FUNCTION + crc: 0x37e3dac8 + type_id: 0x91296bda + full_name: "usbnet_open" +} +elf_symbol { + id: 0x147e4ad2 + name: "usbnet_probe" + is_defined: true + symbol_type: FUNCTION + crc: 0xa6db5d48 + type_id: 0x952154fc + full_name: "usbnet_probe" +} +elf_symbol { + id: 0x167360fc + name: "usbnet_read_cmd" + is_defined: true + symbol_type: FUNCTION + crc: 0xa46394ea + type_id: 0x9e5fdeba + full_name: "usbnet_read_cmd" +} +elf_symbol { + id: 0x69b1070f + name: "usbnet_read_cmd_nopm" + is_defined: true + symbol_type: FUNCTION + crc: 0x721f340d + type_id: 0x9e5fdeba + full_name: "usbnet_read_cmd_nopm" +} +elf_symbol { + id: 0x3be16591 + name: "usbnet_resume" + is_defined: true + symbol_type: FUNCTION + crc: 0xb279d24c + type_id: 0x95c144d5 + full_name: "usbnet_resume" +} +elf_symbol { + id: 0x6e3c0f91 + name: "usbnet_set_link_ksettings_mii" + is_defined: true + symbol_type: FUNCTION + crc: 0x3f50bb22 + type_id: 0x91cc9f9b + full_name: "usbnet_set_link_ksettings_mii" +} +elf_symbol { + id: 0x99cb2edf + name: "usbnet_set_msglevel" + is_defined: true + symbol_type: FUNCTION + crc: 0xcbf61848 + type_id: 0x1f15f9ca + full_name: "usbnet_set_msglevel" +} +elf_symbol { + id: 0x2325cd65 + name: "usbnet_skb_return" + is_defined: true + symbol_type: FUNCTION + crc: 0x7602f70e + type_id: 0x13ff1655 + full_name: "usbnet_skb_return" +} +elf_symbol { + id: 0x9cf79f8d + name: "usbnet_start_xmit" + is_defined: true + symbol_type: FUNCTION + crc: 0x64b56e3d + type_id: 0x5515f11d + full_name: "usbnet_start_xmit" +} +elf_symbol { + id: 0x2f365f93 + name: "usbnet_stop" + is_defined: true + symbol_type: FUNCTION + crc: 0x1328858d + type_id: 0x91296bda + full_name: "usbnet_stop" +} +elf_symbol { + id: 0x6229bd38 + name: "usbnet_suspend" + is_defined: true + symbol_type: FUNCTION + crc: 0xf5d2649e + type_id: 0x96011ad3 + full_name: "usbnet_suspend" +} +elf_symbol { + id: 0x90b81315 + name: "usbnet_tx_timeout" + is_defined: true + symbol_type: FUNCTION + crc: 0x93fad802 + type_id: 0x1d27ccfe + full_name: "usbnet_tx_timeout" +} +elf_symbol { + id: 0xb011e423 + name: "usbnet_write_cmd" + is_defined: true + symbol_type: FUNCTION + crc: 0xf6bbc53f + type_id: 0x9e5fde3c + full_name: "usbnet_write_cmd" +} +elf_symbol { + id: 0x27363bb6 + name: "usbnet_write_cmd_async" + is_defined: true + symbol_type: FUNCTION + crc: 0x54bea6a3 + type_id: 0x9e5fde3c + full_name: "usbnet_write_cmd_async" +} +elf_symbol { + id: 0x10932377 + name: "usbnet_write_cmd_nopm" + is_defined: true + symbol_type: FUNCTION + crc: 0xee57cfe4 + type_id: 0x9e5fde3c + full_name: "usbnet_write_cmd_nopm" +} +elf_symbol { id: 0xb5437ef4 name: "usleep_range_state" is_defined: true @@ -377518,6 +391832,15 @@ elf_symbol { full_name: "v4l2_device_unregister_subdev" } elf_symbol { + id: 0x5c266e47 + name: "v4l2_enum_dv_timings_cap" + is_defined: true + symbol_type: FUNCTION + crc: 0x922ecd29 + type_id: 0x90bd2dd7 + full_name: "v4l2_enum_dv_timings_cap" +} +elf_symbol { id: 0xd40ec4d6 name: "v4l2_event_dequeue" is_defined: true @@ -377644,6 +391967,15 @@ elf_symbol { full_name: "v4l2_fh_release" } elf_symbol { + id: 0x538ad5cc + name: "v4l2_find_dv_timings_cap" + is_defined: true + symbol_type: FUNCTION + crc: 0x3aa68d7a + type_id: 0xf3248c4f + full_name: "v4l2_find_dv_timings_cap" +} +elf_symbol { id: 0x2244c8f0 name: "v4l2_format_info" is_defined: true @@ -378103,6 +392435,42 @@ elf_symbol { full_name: "v4l2_pipeline_link_notify" } elf_symbol { + id: 0xb2eba8d7 + name: "v4l2_pipeline_pm_get" + is_defined: true + symbol_type: FUNCTION + crc: 0x12d08c2a + type_id: 0x9a25325b + full_name: "v4l2_pipeline_pm_get" +} +elf_symbol { + id: 0xa84f74e5 + name: "v4l2_pipeline_pm_put" + is_defined: true + symbol_type: FUNCTION + crc: 0xce6853d3 + type_id: 0x173d80e7 + full_name: "v4l2_pipeline_pm_put" +} +elf_symbol { + id: 0x64b2fdfd + name: "v4l2_print_dv_timings" + is_defined: true + symbol_type: FUNCTION + crc: 0x08402862 + type_id: 0x1fe91863 + full_name: "v4l2_print_dv_timings" +} +elf_symbol { + id: 0x34ad1913 + name: "v4l2_querymenu" + is_defined: true + symbol_type: FUNCTION + crc: 0x11003a10 + type_id: 0x9d30566e + full_name: "v4l2_querymenu" +} +elf_symbol { id: 0x5f3882d0 name: "v4l2_s_ctrl" is_defined: true @@ -378121,6 +392489,15 @@ elf_symbol { full_name: "v4l2_s_parm_cap" } elf_symbol { + id: 0x90eb49a1 + name: "v4l2_src_change_event_subdev_subscribe" + is_defined: true + symbol_type: FUNCTION + crc: 0xe05167de + type_id: 0x9d3b60fc + full_name: "v4l2_src_change_event_subdev_subscribe" +} +elf_symbol { id: 0xac8d7ab3 name: "v4l2_src_change_event_subscribe" is_defined: true @@ -378166,6 +392543,33 @@ elf_symbol { full_name: "v4l2_subdev_link_validate_default" } elf_symbol { + id: 0x5da8252d + name: "v4l2_subdev_notify_event" + is_defined: true + symbol_type: FUNCTION + crc: 0x9389db87 + type_id: 0x101d83a0 + full_name: "v4l2_subdev_notify_event" +} +elf_symbol { + id: 0x1e8152b6 + name: "v4l2_type_names" + is_defined: true + symbol_type: OBJECT + crc: 0x123959a1 + type_id: 0xf95ab7ac + full_name: "v4l2_type_names" +} +elf_symbol { + id: 0xd07f1826 + name: "v4l2_valid_dv_timings" + is_defined: true + symbol_type: FUNCTION + crc: 0x0af3d134 + type_id: 0xf2d3e848 + full_name: "v4l2_valid_dv_timings" +} +elf_symbol { id: 0x7733b651 name: "v4l_bound_align_image" is_defined: true @@ -378670,6 +393074,15 @@ elf_symbol { full_name: "vhost_dev_cleanup" } elf_symbol { + id: 0x14bde45c + name: "vhost_dev_flush" + is_defined: true + symbol_type: FUNCTION + crc: 0xdb5a9875 + type_id: 0x1eca8a34 + full_name: "vhost_dev_flush" +} +elf_symbol { id: 0x429eeda3 name: "vhost_dev_init" is_defined: true @@ -378778,6 +393191,24 @@ elf_symbol { full_name: "video_device_alloc" } elf_symbol { + id: 0x2e0c3fe5 + name: "video_device_pipeline_start" + is_defined: true + symbol_type: FUNCTION + crc: 0x7a4ef3ef + type_id: 0x9da46876 + full_name: "video_device_pipeline_start" +} +elf_symbol { + id: 0xae3c44c1 + name: "video_device_pipeline_stop" + is_defined: true + symbol_type: FUNCTION + crc: 0xc359213b + type_id: 0x10e07da0 + full_name: "video_device_pipeline_stop" +} +elf_symbol { id: 0xb1b42a22 name: "video_device_release" is_defined: true @@ -378890,7 +393321,7 @@ elf_symbol { name: "virtio_transport_connect" is_defined: true symbol_type: FUNCTION - crc: 0xb434b550 + crc: 0x1f53add3 type_id: 0x98da7358 full_name: "virtio_transport_connect" } @@ -378899,7 +393330,7 @@ elf_symbol { name: "virtio_transport_deliver_tap_pkt" is_defined: true symbol_type: FUNCTION - crc: 0xe5588a77 + crc: 0x87a17634 type_id: 0x10367ad4 full_name: "virtio_transport_deliver_tap_pkt" } @@ -378908,7 +393339,7 @@ elf_symbol { name: "virtio_transport_destruct" is_defined: true symbol_type: FUNCTION - crc: 0xcb140ce7 + crc: 0x61154d52 type_id: 0x15c2c1e4 full_name: "virtio_transport_destruct" } @@ -378926,7 +393357,7 @@ elf_symbol { name: "virtio_transport_dgram_bind" is_defined: true symbol_type: FUNCTION - crc: 0xb368d464 + crc: 0x0638a296 type_id: 0x98e450c7 full_name: "virtio_transport_dgram_bind" } @@ -378935,7 +393366,7 @@ elf_symbol { name: "virtio_transport_dgram_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0x8b572200 + crc: 0x1b3ca458 type_id: 0x98558c5c full_name: "virtio_transport_dgram_dequeue" } @@ -378944,7 +393375,7 @@ elf_symbol { name: "virtio_transport_dgram_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0x4b086a1d + crc: 0xf5b6a4ef type_id: 0x98ecb6ff full_name: "virtio_transport_dgram_enqueue" } @@ -378953,7 +393384,7 @@ elf_symbol { name: "virtio_transport_do_socket_init" is_defined: true symbol_type: FUNCTION - crc: 0xfbdf23c4 + crc: 0xd94b3c5d type_id: 0x988fda5f full_name: "virtio_transport_do_socket_init" } @@ -378962,7 +393393,7 @@ elf_symbol { name: "virtio_transport_free_pkt" is_defined: true symbol_type: FUNCTION - crc: 0xe7c3680d + crc: 0x833be086 type_id: 0x10367ad4 full_name: "virtio_transport_free_pkt" } @@ -378971,7 +393402,7 @@ elf_symbol { name: "virtio_transport_notify_buffer_size" is_defined: true symbol_type: FUNCTION - crc: 0xd23a73c1 + crc: 0x5db8e034 type_id: 0x157aa231 full_name: "virtio_transport_notify_buffer_size" } @@ -378980,7 +393411,7 @@ elf_symbol { name: "virtio_transport_notify_poll_in" is_defined: true symbol_type: FUNCTION - crc: 0x6a55c0a8 + crc: 0xae288e1f type_id: 0x9b0ed502 full_name: "virtio_transport_notify_poll_in" } @@ -378989,7 +393420,7 @@ elf_symbol { name: "virtio_transport_notify_poll_out" is_defined: true symbol_type: FUNCTION - crc: 0xdd50bf6e + crc: 0xf3c18d66 type_id: 0x9b0ed502 full_name: "virtio_transport_notify_poll_out" } @@ -378998,7 +393429,7 @@ elf_symbol { name: "virtio_transport_notify_recv_init" is_defined: true symbol_type: FUNCTION - crc: 0x5c6e9976 + crc: 0xc069b149 type_id: 0x9b0fcd09 full_name: "virtio_transport_notify_recv_init" } @@ -379007,7 +393438,7 @@ elf_symbol { name: "virtio_transport_notify_recv_post_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0x3a9db5b2 + crc: 0x9161bead type_id: 0x9b3e6548 full_name: "virtio_transport_notify_recv_post_dequeue" } @@ -379016,7 +393447,7 @@ elf_symbol { name: "virtio_transport_notify_recv_pre_block" is_defined: true symbol_type: FUNCTION - crc: 0x2910ab5f + crc: 0x4e0b6bd0 type_id: 0x9b0fcd09 full_name: "virtio_transport_notify_recv_pre_block" } @@ -379025,7 +393456,7 @@ elf_symbol { name: "virtio_transport_notify_recv_pre_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0x2c6974b6 + crc: 0x250baf3d type_id: 0x9b0fcd09 full_name: "virtio_transport_notify_recv_pre_dequeue" } @@ -379034,7 +393465,7 @@ elf_symbol { name: "virtio_transport_notify_send_init" is_defined: true symbol_type: FUNCTION - crc: 0x24e50d52 + crc: 0x947c5fad type_id: 0x98573499 full_name: "virtio_transport_notify_send_init" } @@ -379043,7 +393474,7 @@ elf_symbol { name: "virtio_transport_notify_send_post_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0x3643e7e3 + crc: 0x22b5ea8d type_id: 0x9b859556 full_name: "virtio_transport_notify_send_post_enqueue" } @@ -379052,7 +393483,7 @@ elf_symbol { name: "virtio_transport_notify_send_pre_block" is_defined: true symbol_type: FUNCTION - crc: 0xc1de1e13 + crc: 0x7ebf2725 type_id: 0x98573499 full_name: "virtio_transport_notify_send_pre_block" } @@ -379061,7 +393492,7 @@ elf_symbol { name: "virtio_transport_notify_send_pre_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0x2477ac41 + crc: 0x7fab1ecc type_id: 0x98573499 full_name: "virtio_transport_notify_send_pre_enqueue" } @@ -379070,7 +393501,7 @@ elf_symbol { name: "virtio_transport_recv_pkt" is_defined: true symbol_type: FUNCTION - crc: 0x12f6c069 + crc: 0xe67f7bfe type_id: 0x1966e93b full_name: "virtio_transport_recv_pkt" } @@ -379079,7 +393510,7 @@ elf_symbol { name: "virtio_transport_release" is_defined: true symbol_type: FUNCTION - crc: 0xd1b80574 + crc: 0xc8336cc6 type_id: 0x15c2c1e4 full_name: "virtio_transport_release" } @@ -379088,7 +393519,7 @@ elf_symbol { name: "virtio_transport_seqpacket_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0xbbbf0c17 + crc: 0x4aefed1b type_id: 0x1101d71f full_name: "virtio_transport_seqpacket_dequeue" } @@ -379097,7 +393528,7 @@ elf_symbol { name: "virtio_transport_seqpacket_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0x09da9b56 + crc: 0x4371e8ea type_id: 0x985410df full_name: "virtio_transport_seqpacket_enqueue" } @@ -379106,7 +393537,7 @@ elf_symbol { name: "virtio_transport_seqpacket_has_data" is_defined: true symbol_type: FUNCTION - crc: 0x514d96f5 + crc: 0x8717573e type_id: 0x40a2bb15 full_name: "virtio_transport_seqpacket_has_data" } @@ -379115,7 +393546,7 @@ elf_symbol { name: "virtio_transport_shutdown" is_defined: true symbol_type: FUNCTION - crc: 0xa7ae0ca2 + crc: 0x73bd1b60 type_id: 0x9946f014 full_name: "virtio_transport_shutdown" } @@ -379133,7 +393564,7 @@ elf_symbol { name: "virtio_transport_stream_dequeue" is_defined: true symbol_type: FUNCTION - crc: 0x936e2332 + crc: 0x93bb0691 type_id: 0x11248ef2 full_name: "virtio_transport_stream_dequeue" } @@ -379142,7 +393573,7 @@ elf_symbol { name: "virtio_transport_stream_enqueue" is_defined: true symbol_type: FUNCTION - crc: 0x45f49b0f + crc: 0x2066248f type_id: 0x11251271 full_name: "virtio_transport_stream_enqueue" } @@ -379151,7 +393582,7 @@ elf_symbol { name: "virtio_transport_stream_has_data" is_defined: true symbol_type: FUNCTION - crc: 0xabd4408c + crc: 0x55904d2c type_id: 0x835e595c full_name: "virtio_transport_stream_has_data" } @@ -379160,7 +393591,7 @@ elf_symbol { name: "virtio_transport_stream_has_space" is_defined: true symbol_type: FUNCTION - crc: 0x7680b9c9 + crc: 0x1ca28b82 type_id: 0x835e595c full_name: "virtio_transport_stream_has_space" } @@ -379169,7 +393600,7 @@ elf_symbol { name: "virtio_transport_stream_is_active" is_defined: true symbol_type: FUNCTION - crc: 0x28a93d08 + crc: 0x86146819 type_id: 0xfbfecb73 full_name: "virtio_transport_stream_is_active" } @@ -379178,7 +393609,7 @@ elf_symbol { name: "virtio_transport_stream_rcvhiwat" is_defined: true symbol_type: FUNCTION - crc: 0xad4a785d + crc: 0x9821949a type_id: 0x5281433c full_name: "virtio_transport_stream_rcvhiwat" } @@ -379385,7 +393816,7 @@ elf_symbol { name: "vlan_dev_vlan_id" is_defined: true symbol_type: FUNCTION - crc: 0xb3a9f342 + crc: 0x00a8dcc6 type_id: 0x0dcd58a4 full_name: "vlan_dev_vlan_id" } @@ -379394,7 +393825,7 @@ elf_symbol { name: "vlan_filter_drop_vids" is_defined: true symbol_type: FUNCTION - crc: 0x189d23aa + crc: 0x79c47dfd type_id: 0x1e4fc33a full_name: "vlan_filter_drop_vids" } @@ -379403,7 +393834,7 @@ elf_symbol { name: "vlan_filter_push_vids" is_defined: true symbol_type: FUNCTION - crc: 0xa0285c20 + crc: 0xd9d5c58f type_id: 0x93577186 full_name: "vlan_filter_push_vids" } @@ -379412,7 +393843,7 @@ elf_symbol { name: "vlan_ioctl_set" is_defined: true symbol_type: FUNCTION - crc: 0xb00ad1ef + crc: 0x2532dd75 type_id: 0x1bd0f743 full_name: "vlan_ioctl_set" } @@ -379421,7 +393852,7 @@ elf_symbol { name: "vlan_uses_dev" is_defined: true symbol_type: FUNCTION - crc: 0xe546e6d5 + crc: 0xbe5060e0 type_id: 0xf2422a10 full_name: "vlan_uses_dev" } @@ -379430,7 +393861,7 @@ elf_symbol { name: "vlan_vid_add" is_defined: true symbol_type: FUNCTION - crc: 0x57de5833 + crc: 0x8e8548fc type_id: 0x90db2b2a full_name: "vlan_vid_add" } @@ -379439,7 +393870,7 @@ elf_symbol { name: "vlan_vid_del" is_defined: true symbol_type: FUNCTION - crc: 0xa4aaa292 + crc: 0x45315ff3 type_id: 0x1dc39996 full_name: "vlan_vid_del" } @@ -379448,7 +393879,7 @@ elf_symbol { name: "vlan_vids_add_by_dev" is_defined: true symbol_type: FUNCTION - crc: 0xdaf59a82 + crc: 0xb5f227ec type_id: 0x91e70ccb full_name: "vlan_vids_add_by_dev" } @@ -379457,7 +393888,7 @@ elf_symbol { name: "vlan_vids_del_by_dev" is_defined: true symbol_type: FUNCTION - crc: 0x51b12f44 + crc: 0x6aef3ae5 type_id: 0x1cffbe77 full_name: "vlan_vids_del_by_dev" } @@ -379754,7 +394185,7 @@ elf_symbol { name: "vsock_core_register" is_defined: true symbol_type: FUNCTION - crc: 0x2e1c7ded + crc: 0x2cd67c57 type_id: 0x931e2c91 full_name: "vsock_core_register" } @@ -379763,7 +394194,7 @@ elf_symbol { name: "vsock_core_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x2b56b11f + crc: 0x05a47ec8 type_id: 0x1f9a1d61 full_name: "vsock_core_unregister" } @@ -379772,7 +394203,7 @@ elf_symbol { name: "vsock_for_each_connected_socket" is_defined: true symbol_type: FUNCTION - crc: 0x68e4df04 + crc: 0xa4eb6031 type_id: 0x139ca744 full_name: "vsock_for_each_connected_socket" } @@ -379903,6 +394334,15 @@ elf_symbol { full_name: "wait_woken" } elf_symbol { + id: 0x738279bf + name: "wake_bit_function" + is_defined: true + symbol_type: FUNCTION + crc: 0xca431c05 + type_id: 0x9d71353d + full_name: "wake_bit_function" +} +elf_symbol { id: 0x7540b5a8 name: "wake_up_bit" is_defined: true @@ -379925,11 +394365,20 @@ elf_symbol { name: "wake_up_process" is_defined: true symbol_type: FUNCTION - crc: 0x72aea0a3 + crc: 0x73e2bcf1 type_id: 0x9ac6895a full_name: "wake_up_process" } elf_symbol { + id: 0x63928faf + name: "wake_up_state" + is_defined: true + symbol_type: FUNCTION + crc: 0xecf43f83 + type_id: 0x9bd09cc2 + full_name: "wake_up_state" +} +elf_symbol { id: 0xecc7b6fc name: "wake_up_var" is_defined: true @@ -380078,7 +394527,7 @@ elf_symbol { name: "wireless_send_event" is_defined: true symbol_type: FUNCTION - crc: 0x3dc228eb + crc: 0xae6471d1 type_id: 0x1d250ee3 full_name: "wireless_send_event" } @@ -380114,7 +394563,7 @@ elf_symbol { name: "wpan_phy_find" is_defined: true symbol_type: FUNCTION - crc: 0xed32cabe + crc: 0x9f4d1913 type_id: 0xaacf82f6 full_name: "wpan_phy_find" } @@ -380123,7 +394572,7 @@ elf_symbol { name: "wpan_phy_for_each" is_defined: true symbol_type: FUNCTION - crc: 0xe0a074db + crc: 0xfe7e7bc9 type_id: 0x963ea445 full_name: "wpan_phy_for_each" } @@ -380132,7 +394581,7 @@ elf_symbol { name: "wpan_phy_free" is_defined: true symbol_type: FUNCTION - crc: 0x440eda77 + crc: 0x70eca563 type_id: 0x1af18e52 full_name: "wpan_phy_free" } @@ -380141,7 +394590,7 @@ elf_symbol { name: "wpan_phy_new" is_defined: true symbol_type: FUNCTION - crc: 0x61b971ca + crc: 0xff230c07 type_id: 0xab2f6439 full_name: "wpan_phy_new" } @@ -380150,7 +394599,7 @@ elf_symbol { name: "wpan_phy_register" is_defined: true symbol_type: FUNCTION - crc: 0xc88b3795 + crc: 0x267db43d type_id: 0x97e93cee full_name: "wpan_phy_register" } @@ -380159,7 +394608,7 @@ elf_symbol { name: "wpan_phy_unregister" is_defined: true symbol_type: FUNCTION - crc: 0x459e9479 + crc: 0x3bd3ad22 type_id: 0x1af18e52 full_name: "wpan_phy_unregister" } @@ -380173,6 +394622,15 @@ elf_symbol { full_name: "wq_worker_comm" } elf_symbol { + id: 0xa643ac3f + name: "write_inode_now" + is_defined: true + symbol_type: FUNCTION + crc: 0x627c55da + type_id: 0x9afd0449 + full_name: "write_inode_now" +} +elf_symbol { id: 0x61731bd0 name: "ww_mutex_lock" is_defined: true @@ -380290,11 +394748,29 @@ elf_symbol { full_name: "xa_store" } elf_symbol { + id: 0xb5ba02d4 + name: "xas_find" + is_defined: true + symbol_type: FUNCTION + crc: 0x39c9d88c + type_id: 0x5ebf0597 + full_name: "xas_find" +} +elf_symbol { + id: 0x0fe35b07 + name: "xas_pause" + is_defined: true + symbol_type: FUNCTION + crc: 0x0fbc0c0e + type_id: 0x187c3067 + full_name: "xas_pause" +} +elf_symbol { id: 0xebb799b4 name: "xdp_convert_zc_to_xdp_frame" is_defined: true symbol_type: FUNCTION - crc: 0x773b1e24 + crc: 0xcdfd1e71 type_id: 0x0a34c3a2 full_name: "xdp_convert_zc_to_xdp_frame" } @@ -380312,7 +394788,7 @@ elf_symbol { name: "xdp_do_redirect" is_defined: true symbol_type: FUNCTION - crc: 0xafd6941b + crc: 0x16930c8a type_id: 0x9115bc9b full_name: "xdp_do_redirect" } @@ -380321,7 +394797,7 @@ elf_symbol { name: "xdp_master_redirect" is_defined: true symbol_type: FUNCTION - crc: 0x695d6e76 + crc: 0xcd7c3b3b type_id: 0x46fb55eb full_name: "xdp_master_redirect" } @@ -380330,7 +394806,7 @@ elf_symbol { name: "xdp_return_frame" is_defined: true symbol_type: FUNCTION - crc: 0xbcb4d340 + crc: 0x97fa5ddb type_id: 0x1e92214d full_name: "xdp_return_frame" } @@ -380339,7 +394815,7 @@ elf_symbol { name: "xdp_return_frame_rx_napi" is_defined: true symbol_type: FUNCTION - crc: 0x77ab6b33 + crc: 0x6f7edc6f type_id: 0x1e92214d full_name: "xdp_return_frame_rx_napi" } @@ -380348,7 +394824,7 @@ elf_symbol { name: "xdp_rxq_info_is_reg" is_defined: true symbol_type: FUNCTION - crc: 0x8ff5cf19 + crc: 0xb8b3b99a type_id: 0xf690d6d1 full_name: "xdp_rxq_info_is_reg" } @@ -380357,7 +394833,7 @@ elf_symbol { name: "xdp_rxq_info_reg_mem_model" is_defined: true symbol_type: FUNCTION - crc: 0xdf97f6e5 + crc: 0xd7fa3ff0 type_id: 0x9448ad12 full_name: "xdp_rxq_info_reg_mem_model" } @@ -380366,7 +394842,7 @@ elf_symbol { name: "xdp_rxq_info_unreg" is_defined: true symbol_type: FUNCTION - crc: 0x4ebdd6b8 + crc: 0x31fd54d6 type_id: 0x18acdc46 full_name: "xdp_rxq_info_unreg" } @@ -380375,7 +394851,7 @@ elf_symbol { name: "xdp_rxq_info_unreg_mem_model" is_defined: true symbol_type: FUNCTION - crc: 0xcf0bad12 + crc: 0x4fa6e7d5 type_id: 0x18acdc46 full_name: "xdp_rxq_info_unreg_mem_model" } @@ -380393,16 +394869,25 @@ elf_symbol { name: "xfrm_lookup" is_defined: true symbol_type: FUNCTION - crc: 0xf1ecaaaa + crc: 0x404e7acd type_id: 0xa2843be3 full_name: "xfrm_lookup" } elf_symbol { + id: 0x6b55b9d2 + name: "xfrm_state_afinfo_get_rcu" + is_defined: true + symbol_type: FUNCTION + crc: 0xa60f4d57 + type_id: 0xd8e8dad0 + full_name: "xfrm_state_afinfo_get_rcu" +} +elf_symbol { id: 0xeb912db7 name: "xfrm_state_lookup_byspi" is_defined: true symbol_type: FUNCTION - crc: 0xeda9ff25 + crc: 0x3f28571e type_id: 0x624b0f22 full_name: "xfrm_state_lookup_byspi" } @@ -380411,11 +394896,29 @@ elf_symbol { name: "xfrm_stateonly_find" is_defined: true symbol_type: FUNCTION - crc: 0x1eabfccd + crc: 0x28950cb8 type_id: 0x62e6e159 full_name: "xfrm_stateonly_find" } elf_symbol { + id: 0x994cfb6c + name: "xhci_add_endpoint" + is_defined: true + symbol_type: FUNCTION + crc: 0x3a365b04 + type_id: 0x94ebfe13 + full_name: "xhci_add_endpoint" +} +elf_symbol { + id: 0x8c2045ca + name: "xhci_address_device" + is_defined: true + symbol_type: FUNCTION + crc: 0x945be478 + type_id: 0x94eb1868 + full_name: "xhci_address_device" +} +elf_symbol { id: 0xdf73207c name: "xhci_alloc_command" is_defined: true @@ -380434,6 +394937,33 @@ elf_symbol { full_name: "xhci_alloc_erst" } elf_symbol { + id: 0x209bd6b9 + name: "xhci_bus_resume" + is_defined: true + symbol_type: FUNCTION + crc: 0x1a9d5630 + type_id: 0x94deebf7 + full_name: "xhci_bus_resume" +} +elf_symbol { + id: 0x68d92b40 + name: "xhci_bus_suspend" + is_defined: true + symbol_type: FUNCTION + crc: 0x78c05195 + type_id: 0x94deebf7 + full_name: "xhci_bus_suspend" +} +elf_symbol { + id: 0x520c06c0 + name: "xhci_check_trb_in_td_math" + is_defined: true + symbol_type: FUNCTION + crc: 0x6a82fc7a + type_id: 0x9921a72c + full_name: "xhci_check_trb_in_td_math" +} +elf_symbol { id: 0xa6eac918 name: "xhci_free_command" is_defined: true @@ -380461,15 +394991,51 @@ elf_symbol { full_name: "xhci_get_endpoint_index" } elf_symbol { + id: 0xc9a9e8ab + name: "xhci_get_ep_ctx" + is_defined: true + symbol_type: FUNCTION + crc: 0xfb992afc + type_id: 0xcbd33190 + full_name: "xhci_get_ep_ctx" +} +elf_symbol { + id: 0xa2b73df4 + name: "xhci_get_slot_ctx" + is_defined: true + symbol_type: FUNCTION + crc: 0x5b7d19e7 + type_id: 0x98c001f4 + full_name: "xhci_get_slot_ctx" +} +elf_symbol { id: 0x71f2808e name: "xhci_init_driver" is_defined: true symbol_type: FUNCTION - crc: 0xea444667 + crc: 0x49b2abc6 type_id: 0x14d9dc3c full_name: "xhci_init_driver" } elf_symbol { + id: 0x246bf5fe + name: "xhci_initialize_ring_info" + is_defined: true + symbol_type: FUNCTION + crc: 0xdb8be866 + type_id: 0x19e2f0b6 + full_name: "xhci_initialize_ring_info" +} +elf_symbol { + id: 0x96be3ac9 + name: "xhci_link_segments" + is_defined: true + symbol_type: FUNCTION + crc: 0x9a727e20 + type_id: 0x1fcbfdc9 + full_name: "xhci_link_segments" +} +elf_symbol { id: 0xfa57b81b name: "xhci_queue_stop_endpoint" is_defined: true @@ -380479,6 +395045,15 @@ elf_symbol { full_name: "xhci_queue_stop_endpoint" } elf_symbol { + id: 0x9d21209c + name: "xhci_remove_stream_mapping" + is_defined: true + symbol_type: FUNCTION + crc: 0x462a6e6b + type_id: 0x18f4e52e + full_name: "xhci_remove_stream_mapping" +} +elf_symbol { id: 0x4603c1d4 name: "xhci_resume" is_defined: true @@ -380524,6 +395099,15 @@ elf_symbol { full_name: "xhci_run" } elf_symbol { + id: 0xcf411a0e + name: "xhci_segment_free" + is_defined: true + symbol_type: FUNCTION + crc: 0xd8efaa99 + type_id: 0x14c2c0fe + full_name: "xhci_segment_free" +} +elf_symbol { id: 0xb834cd77 name: "xhci_suspend" is_defined: true @@ -380542,11 +395126,20 @@ elf_symbol { full_name: "xhci_trb_virt_to_dma" } elf_symbol { + id: 0xd777027b + name: "xhci_vendor_get_ops" + is_defined: true + symbol_type: FUNCTION + crc: 0x773c097f + type_id: 0x8039c229 + full_name: "xhci_vendor_get_ops" +} +elf_symbol { id: 0x23b2a72a name: "xp_alloc" is_defined: true symbol_type: FUNCTION - crc: 0xac76459c + crc: 0xaea8a44b type_id: 0x13a974bf full_name: "xp_alloc" } @@ -380555,7 +395148,7 @@ elf_symbol { name: "xp_dma_map" is_defined: true symbol_type: FUNCTION - crc: 0x8860169e + crc: 0x040177c6 type_id: 0x9d04fab6 full_name: "xp_dma_map" } @@ -380564,7 +395157,7 @@ elf_symbol { name: "xp_dma_sync_for_cpu_slow" is_defined: true symbol_type: FUNCTION - crc: 0x8aab272f + crc: 0xf1c5729f type_id: 0x1265fe38 full_name: "xp_dma_sync_for_cpu_slow" } @@ -380573,7 +395166,7 @@ elf_symbol { name: "xp_dma_sync_for_device_slow" is_defined: true symbol_type: FUNCTION - crc: 0x074bd8a4 + crc: 0x5b390982 type_id: 0x13a45d3e full_name: "xp_dma_sync_for_device_slow" } @@ -380582,7 +395175,7 @@ elf_symbol { name: "xp_dma_unmap" is_defined: true symbol_type: FUNCTION - crc: 0x051dd30b + crc: 0x418c999a type_id: 0x10d43da5 full_name: "xp_dma_unmap" } @@ -380591,7 +395184,7 @@ elf_symbol { name: "xp_free" is_defined: true symbol_type: FUNCTION - crc: 0xcfd7906c + crc: 0xeafdd796 type_id: 0x1265fe38 full_name: "xp_free" } @@ -380600,7 +395193,7 @@ elf_symbol { name: "xp_raw_get_dma" is_defined: true symbol_type: FUNCTION - crc: 0xc5f08a33 + crc: 0x3377c899 type_id: 0xbed4cb96 full_name: "xp_raw_get_dma" } @@ -380609,7 +395202,7 @@ elf_symbol { name: "xp_set_rxq_info" is_defined: true symbol_type: FUNCTION - crc: 0x98330d94 + crc: 0xbe30b3f2 type_id: 0x109aa0ea full_name: "xp_set_rxq_info" } @@ -380618,7 +395211,7 @@ elf_symbol { name: "xsk_clear_rx_need_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0x5daaa6a3 + crc: 0x9a4c1342 type_id: 0x1019e837 full_name: "xsk_clear_rx_need_wakeup" } @@ -380627,7 +395220,7 @@ elf_symbol { name: "xsk_get_pool_from_qid" is_defined: true symbol_type: FUNCTION - crc: 0x8009e545 + crc: 0xf0bfdad5 type_id: 0x9634d583 full_name: "xsk_get_pool_from_qid" } @@ -380636,7 +395229,7 @@ elf_symbol { name: "xsk_set_rx_need_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0x8588815b + crc: 0x64231838 type_id: 0x1019e837 full_name: "xsk_set_rx_need_wakeup" } @@ -380645,7 +395238,7 @@ elf_symbol { name: "xsk_set_tx_need_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0x9ae53285 + crc: 0xdfcc3ff1 type_id: 0x1019e837 full_name: "xsk_set_tx_need_wakeup" } @@ -380654,7 +395247,7 @@ elf_symbol { name: "xsk_tx_completed" is_defined: true symbol_type: FUNCTION - crc: 0xa26ef049 + crc: 0x3dc0abc6 type_id: 0x133dc89b full_name: "xsk_tx_completed" } @@ -380663,7 +395256,7 @@ elf_symbol { name: "xsk_tx_peek_desc" is_defined: true symbol_type: FUNCTION - crc: 0x702346da + crc: 0xdf5bea7b type_id: 0xfec52a83 full_name: "xsk_tx_peek_desc" } @@ -380672,7 +395265,7 @@ elf_symbol { name: "xsk_tx_release" is_defined: true symbol_type: FUNCTION - crc: 0x2cc88e76 + crc: 0x054d479a type_id: 0x1019e837 full_name: "xsk_tx_release" } @@ -380681,7 +395274,7 @@ elf_symbol { name: "xsk_uses_need_wakeup" is_defined: true symbol_type: FUNCTION - crc: 0x92973eb4 + crc: 0xd22abe4f type_id: 0xfe25e2a0 full_name: "xsk_uses_need_wakeup" } @@ -380695,6 +395288,15 @@ elf_symbol { full_name: "zap_vma_ptes" } elf_symbol { + id: 0xe8e0ea6a + name: "zero_pfn" + is_defined: true + symbol_type: OBJECT + crc: 0x85efc7e0 + type_id: 0x33756485 + full_name: "zero_pfn" +} +elf_symbol { id: 0xa5d58813 name: "zlib_deflate" is_defined: true @@ -380882,6 +395484,8 @@ interface { symbol_id: 0x5b94e7ac symbol_id: 0x41de13f7 symbol_id: 0xe284f532 + symbol_id: 0x98179c82 + symbol_id: 0xfa979d99 symbol_id: 0x6e1bc82e symbol_id: 0x9fa51b33 symbol_id: 0x228f3ab6 @@ -380894,6 +395498,8 @@ interface { symbol_id: 0xeaf0b860 symbol_id: 0x1bc9d7cd symbol_id: 0xd97b055a + symbol_id: 0xac51df48 + symbol_id: 0x2c42b675 symbol_id: 0x8920b575 symbol_id: 0x149a28b5 symbol_id: 0x1709df48 @@ -380908,6 +395514,7 @@ interface { symbol_id: 0xbceb9c07 symbol_id: 0xe70766b6 symbol_id: 0xb339c336 + symbol_id: 0xcc33f78c symbol_id: 0x01badff0 symbol_id: 0x4df0b385 symbol_id: 0x35aa1afd @@ -380915,6 +395522,10 @@ interface { symbol_id: 0xc8eb813d symbol_id: 0x7bf707d4 symbol_id: 0xbf1d0365 + symbol_id: 0x2d1c1f2d + symbol_id: 0x9bed4545 + symbol_id: 0xefdcf4c1 + symbol_id: 0x2f449b9e symbol_id: 0x2057d4fc symbol_id: 0x4598418e symbol_id: 0x587f0c74 @@ -380945,6 +395556,7 @@ interface { symbol_id: 0x857a0e42 symbol_id: 0xe889d441 symbol_id: 0x087c7a06 + symbol_id: 0x8f70cdad symbol_id: 0x2d91cc56 symbol_id: 0xdc24797a symbol_id: 0xf2144a48 @@ -380982,6 +395594,7 @@ interface { symbol_id: 0x1c1ee265 symbol_id: 0x77466fa6 symbol_id: 0x0b0f732e + symbol_id: 0xa061e45d symbol_id: 0xec903c93 symbol_id: 0x7149b35b symbol_id: 0x04e4be20 @@ -381011,10 +395624,15 @@ interface { symbol_id: 0x80f1cf36 symbol_id: 0x3e32c80e symbol_id: 0x5298aa39 + symbol_id: 0x6036d483 + symbol_id: 0xaf8ee687 symbol_id: 0x746a66fc + symbol_id: 0x6a92cb2d + symbol_id: 0x6fc34fdb symbol_id: 0x47a334c4 symbol_id: 0xebf4b11f symbol_id: 0x5b1ea047 + symbol_id: 0xe458ae39 symbol_id: 0x129eb7ed symbol_id: 0x63083569 symbol_id: 0x46f82598 @@ -381027,6 +395645,7 @@ interface { symbol_id: 0x010ff5f2 symbol_id: 0xe3bb3be3 symbol_id: 0xdf924e64 + symbol_id: 0xb3d97fa3 symbol_id: 0xf245d4a3 symbol_id: 0x74b9825e symbol_id: 0xd672e937 @@ -381043,6 +395662,7 @@ interface { symbol_id: 0x88943e29 symbol_id: 0x1060f5aa symbol_id: 0x66da9aca + symbol_id: 0xd02fc75b symbol_id: 0xe97034af symbol_id: 0xdb78f816 symbol_id: 0x6db91312 @@ -381052,6 +395672,7 @@ interface { symbol_id: 0x1c57a05b symbol_id: 0xdf2d2827 symbol_id: 0x70f1b87e + symbol_id: 0xc37fd40e symbol_id: 0xe064ac65 symbol_id: 0xafc169af symbol_id: 0xcaf40f72 @@ -381076,6 +395697,7 @@ interface { symbol_id: 0xb3ed4cf9 symbol_id: 0x9f86f628 symbol_id: 0x22bd6642 + symbol_id: 0x0b9d6bbc symbol_id: 0x040ec563 symbol_id: 0xa5f70021 symbol_id: 0xc8acd38c @@ -381092,6 +395714,8 @@ interface { symbol_id: 0x0ba13d85 symbol_id: 0x479db511 symbol_id: 0x603dcc7d + symbol_id: 0x68d1b187 + symbol_id: 0x9de4c040 symbol_id: 0x89d01efd symbol_id: 0xf680e61c symbol_id: 0x4cfc63ca @@ -381156,6 +395780,7 @@ interface { symbol_id: 0x3f068dc8 symbol_id: 0x2a48bf7d symbol_id: 0xe3a7489a + symbol_id: 0x9d948fe1 symbol_id: 0xf7c2da07 symbol_id: 0x1141e9bb symbol_id: 0xf263b97f @@ -381163,6 +395788,8 @@ interface { symbol_id: 0x2b453adc symbol_id: 0xd5276fa4 symbol_id: 0x98379aaf + symbol_id: 0x31b4eed9 + symbol_id: 0x99aa632e symbol_id: 0xe68925b8 symbol_id: 0x6e3bb1cf symbol_id: 0x0166be18 @@ -381173,6 +395800,8 @@ interface { symbol_id: 0x55017671 symbol_id: 0x257c4bb9 symbol_id: 0x8aca43ec + symbol_id: 0xa2cf1eee + symbol_id: 0xeaddb422 symbol_id: 0x29a11d8a symbol_id: 0x208b66fa symbol_id: 0x4a440f54 @@ -381200,21 +395829,26 @@ interface { symbol_id: 0x7d0d7b3f symbol_id: 0xef62271a symbol_id: 0x243936f1 + symbol_id: 0xd8a7d75e symbol_id: 0x04e4f57e symbol_id: 0xb04d8b58 symbol_id: 0xd7d29ff4 symbol_id: 0xdb99fd00 symbol_id: 0xf7de9a97 symbol_id: 0x6356c7e1 + symbol_id: 0x46adfea4 symbol_id: 0x233d8b34 symbol_id: 0xa5905957 symbol_id: 0x17dfc6db symbol_id: 0xb42422d5 symbol_id: 0xb3d70eab symbol_id: 0x0b48afa1 + symbol_id: 0x6d4cc1a2 symbol_id: 0x48420da9 + symbol_id: 0x144db0a1 symbol_id: 0x192bbbd5 symbol_id: 0xadc13d20 + symbol_id: 0xbbd04d50 symbol_id: 0xc93c7d6d symbol_id: 0x9d00b8f0 symbol_id: 0x5e9397c4 @@ -381228,6 +395862,7 @@ interface { symbol_id: 0x8f1b1c1e symbol_id: 0xd6290b85 symbol_id: 0x3e4ab4f6 + symbol_id: 0xa0a77bb8 symbol_id: 0xa3b41867 symbol_id: 0x40034e11 symbol_id: 0x6e62463e @@ -381254,6 +395889,8 @@ interface { symbol_id: 0x7edcea8d symbol_id: 0x72c43156 symbol_id: 0x61e95c07 + symbol_id: 0xfc83b254 + symbol_id: 0x7e99bc71 symbol_id: 0x7c212080 symbol_id: 0x1ea5d323 symbol_id: 0xc1a482d8 @@ -381264,13 +395901,17 @@ interface { symbol_id: 0x88e9b222 symbol_id: 0x097e467e symbol_id: 0xfad1d9f5 + symbol_id: 0x167fc668 + symbol_id: 0xd6a514f5 symbol_id: 0xeccbc3c1 symbol_id: 0xbd2d27dc symbol_id: 0xe41b0c78 symbol_id: 0x13f466b7 + symbol_id: 0xc191b2f6 symbol_id: 0xe3e24295 symbol_id: 0xaedef3a2 symbol_id: 0xde725472 + symbol_id: 0xf0ffb4d4 symbol_id: 0xd90a9a58 symbol_id: 0xbf64b0b6 symbol_id: 0xb25ca194 @@ -381298,6 +395939,7 @@ interface { symbol_id: 0xbe8d73f2 symbol_id: 0xaf658447 symbol_id: 0xe56edb7a + symbol_id: 0x9c2c2d71 symbol_id: 0xcac6b03d symbol_id: 0x4a5f5242 symbol_id: 0x08cd7e9d @@ -381308,21 +395950,28 @@ interface { symbol_id: 0xa01b20ce symbol_id: 0x73c83ef4 symbol_id: 0x46515de8 + symbol_id: 0x955e6fc1 + symbol_id: 0xfe20c6e3 symbol_id: 0x7b07c7f1 symbol_id: 0x968833a5 symbol_id: 0x09f2fded symbol_id: 0x23097c08 symbol_id: 0xe3ee70ae symbol_id: 0xcce6f612 + symbol_id: 0xa63eb82a symbol_id: 0xcd824552 + symbol_id: 0xb6d1fa25 symbol_id: 0x16809a5a + symbol_id: 0xfaa2e0a4 symbol_id: 0xc1ba0eb6 symbol_id: 0x13c17b96 symbol_id: 0xebcd0234 symbol_id: 0xa3af7947 symbol_id: 0x86527a4e + symbol_id: 0xd0b4a794 symbol_id: 0x33f9278c symbol_id: 0x2e343246 + symbol_id: 0xa6e329cd symbol_id: 0x9c240ef1 symbol_id: 0x505f4289 symbol_id: 0xd5431a65 @@ -381331,6 +395980,7 @@ interface { symbol_id: 0x528da532 symbol_id: 0x530ad17d symbol_id: 0x6e0b473c + symbol_id: 0xcb807696 symbol_id: 0xbebf7d98 symbol_id: 0x6935b08b symbol_id: 0xd595bd2c @@ -381345,10 +395995,12 @@ interface { symbol_id: 0xc6c9353c symbol_id: 0xd738b678 symbol_id: 0x2a9c6616 + symbol_id: 0x6bce867e symbol_id: 0x4785a3dd symbol_id: 0x25f13dbe symbol_id: 0xf6faffcb symbol_id: 0x5cf60b10 + symbol_id: 0xcc2edef9 symbol_id: 0x61c82fb5 symbol_id: 0x53fba77d symbol_id: 0xe479b209 @@ -381356,11 +396008,14 @@ interface { symbol_id: 0x33c527ab symbol_id: 0x5012fcd8 symbol_id: 0x67bab494 + symbol_id: 0x6aac0cf8 symbol_id: 0x96d1c9c4 symbol_id: 0x42428033 symbol_id: 0x005c7625 symbol_id: 0xf3accb84 symbol_id: 0xef7737f8 + symbol_id: 0xa4527895 + symbol_id: 0x3644fdcd symbol_id: 0x9247dcb1 symbol_id: 0xfd04e27a symbol_id: 0xa124d3e0 @@ -381377,11 +396032,18 @@ interface { symbol_id: 0x9dbd7b92 symbol_id: 0x42312ccc symbol_id: 0xf432d1c9 + symbol_id: 0xdcaa59a3 + symbol_id: 0x7ebac47a symbol_id: 0xf586d5b6 + symbol_id: 0x1921d10d symbol_id: 0x1f554c2a + symbol_id: 0x343adff1 symbol_id: 0x93a4717b + symbol_id: 0x9e91661b + symbol_id: 0xc189c2a7 symbol_id: 0x5ecff02f symbol_id: 0xe3ce1f52 + symbol_id: 0x4d354aab symbol_id: 0x3272ce60 symbol_id: 0x4d900d32 symbol_id: 0xe6eff83f @@ -381398,6 +396060,7 @@ interface { symbol_id: 0x9fe60f0c symbol_id: 0x83b45f32 symbol_id: 0x1df03151 + symbol_id: 0xdbe4202a symbol_id: 0x88586647 symbol_id: 0xdb6662e8 symbol_id: 0x64c2fe7a @@ -381407,7 +396070,10 @@ interface { symbol_id: 0x0bf41403 symbol_id: 0x4dca46cc symbol_id: 0xf83fbd26 + symbol_id: 0xe261e8cc symbol_id: 0x18fde973 + symbol_id: 0xe19d2bf8 + symbol_id: 0x993f42ff symbol_id: 0xfb6a92a8 symbol_id: 0xa94ef105 symbol_id: 0x0e1f9e23 @@ -381418,6 +396084,10 @@ interface { symbol_id: 0x96b60e0b symbol_id: 0x3431d426 symbol_id: 0x8c174a7d + symbol_id: 0xea8ce2b0 + symbol_id: 0x295c28cd + symbol_id: 0x10e93e46 + symbol_id: 0x49cebcae symbol_id: 0xe44dacb1 symbol_id: 0x5612c9d1 symbol_id: 0xa77effd1 @@ -381432,6 +396102,7 @@ interface { symbol_id: 0xe17999f4 symbol_id: 0x721b87b7 symbol_id: 0xacaadcc9 + symbol_id: 0xd14f3adb symbol_id: 0x5983841b symbol_id: 0x7d499dab symbol_id: 0xa09f7a4b @@ -381440,12 +396111,16 @@ interface { symbol_id: 0x93303c51 symbol_id: 0x7d069e91 symbol_id: 0x0fa39b81 + symbol_id: 0x1a91ec8c symbol_id: 0x92518ec5 symbol_id: 0x9792c22e + symbol_id: 0xe2d75052 + symbol_id: 0x8d62858f symbol_id: 0xcef5d79f symbol_id: 0x91384eff symbol_id: 0x3ef508a2 symbol_id: 0xfb1b8d64 + symbol_id: 0xc56d7179 symbol_id: 0x5858f827 symbol_id: 0xb1847a6f symbol_id: 0x958d8cdb @@ -381459,6 +396134,7 @@ interface { symbol_id: 0x947bd437 symbol_id: 0xbdbb0c65 symbol_id: 0xa1325610 + symbol_id: 0x06c7b387 symbol_id: 0x3a4e20d6 symbol_id: 0x237634b3 symbol_id: 0xb5ed74f6 @@ -381480,6 +396156,8 @@ interface { symbol_id: 0x58e7556b symbol_id: 0x2ecf85e9 symbol_id: 0x34a01a22 + symbol_id: 0xdd9dd67b + symbol_id: 0x48f0cf25 symbol_id: 0x6befbf23 symbol_id: 0x226cc38b symbol_id: 0xeecc1529 @@ -381487,10 +396165,14 @@ interface { symbol_id: 0x2bc25325 symbol_id: 0x0119fc41 symbol_id: 0xd9f43028 + symbol_id: 0x39155e73 + symbol_id: 0x3947ecb4 symbol_id: 0x8a773cc3 symbol_id: 0x9545623c symbol_id: 0x558490b1 symbol_id: 0x8af2b51e + symbol_id: 0x5ab5402f + symbol_id: 0xaa213206 symbol_id: 0xe31bb308 symbol_id: 0x6a6dc806 symbol_id: 0xa56348c9 @@ -381504,7 +396186,10 @@ interface { symbol_id: 0xcc8dcd0c symbol_id: 0xcb4d15f3 symbol_id: 0x6a8145ff + symbol_id: 0x08824ed3 + symbol_id: 0xcbec9d66 symbol_id: 0xb0bf7fd6 + symbol_id: 0xae5e5469 symbol_id: 0x6911084f symbol_id: 0x8068eeb3 symbol_id: 0xfdf83a19 @@ -381521,6 +396206,7 @@ interface { symbol_id: 0x7e705ab7 symbol_id: 0x7b03aae7 symbol_id: 0x92373f85 + symbol_id: 0x5e5d9a70 symbol_id: 0x104ffeec symbol_id: 0x6d4f31c4 symbol_id: 0xcf61fd25 @@ -381533,11 +396219,19 @@ interface { symbol_id: 0x5c33446d symbol_id: 0x423dad0f symbol_id: 0xc630c439 + symbol_id: 0x16d7641f + symbol_id: 0xc8ec671c + symbol_id: 0x60c24c4f + symbol_id: 0xa7548418 + symbol_id: 0xbbfa35c3 + symbol_id: 0x328bf22b + symbol_id: 0xbdceccc2 symbol_id: 0x3e69b303 symbol_id: 0x7f1a363f symbol_id: 0x2c11fea4 symbol_id: 0x45e62871 symbol_id: 0x85a11e58 + symbol_id: 0x1e8ffa55 symbol_id: 0xb614ca1f symbol_id: 0x2de60b3e symbol_id: 0x9cf075c5 @@ -381546,6 +396240,8 @@ interface { symbol_id: 0x41fdc249 symbol_id: 0x570f3032 symbol_id: 0xc42d0053 + symbol_id: 0x00296361 + symbol_id: 0xf574f9d9 symbol_id: 0x20097074 symbol_id: 0x863777a0 symbol_id: 0xcac5a7d5 @@ -381557,9 +396253,12 @@ interface { symbol_id: 0x4b7a8fd7 symbol_id: 0xcd36f539 symbol_id: 0x748c1fd7 + symbol_id: 0xc9400cec symbol_id: 0xaf461bff + symbol_id: 0xd7757253 symbol_id: 0x1e8a7e23 symbol_id: 0xfe3875f6 + symbol_id: 0xb208306e symbol_id: 0x60b5a917 symbol_id: 0x1dd402e6 symbol_id: 0x070d1e2a @@ -381573,6 +396272,7 @@ interface { symbol_id: 0x3eb0f084 symbol_id: 0x832ab9cf symbol_id: 0xaa8affb8 + symbol_id: 0x5029bb46 symbol_id: 0x11f903b1 symbol_id: 0x25e320a3 symbol_id: 0xcd81b300 @@ -381599,6 +396299,8 @@ interface { symbol_id: 0x0991fcbf symbol_id: 0x693af5b0 symbol_id: 0x59d74b45 + symbol_id: 0x4fd98142 + symbol_id: 0x695c4baf symbol_id: 0x99d57c12 symbol_id: 0x3cb4db49 symbol_id: 0x3a6f3fb2 @@ -381609,13 +396311,17 @@ interface { symbol_id: 0x18752990 symbol_id: 0x448fc4e4 symbol_id: 0x121537db + symbol_id: 0x817c415a + symbol_id: 0x3fe8bcd7 symbol_id: 0x50605d97 symbol_id: 0xa5e991f6 symbol_id: 0x261c997e symbol_id: 0x3b6248c1 + symbol_id: 0x5ac6bcbc symbol_id: 0x18bac297 symbol_id: 0x1a849f34 symbol_id: 0x3f328d3c + symbol_id: 0xf2fd13ea symbol_id: 0x69e37d02 symbol_id: 0xeda5c5b0 symbol_id: 0x3cd58ada @@ -381643,6 +396349,7 @@ interface { symbol_id: 0x4bc6b114 symbol_id: 0x93751239 symbol_id: 0x70131d40 + symbol_id: 0xbe9f9d4f symbol_id: 0xda52fd4f symbol_id: 0x86f03c84 symbol_id: 0x498fea3f @@ -381653,21 +396360,28 @@ interface { symbol_id: 0xe48123a4 symbol_id: 0x00b7ed82 symbol_id: 0xe8cacf26 + symbol_id: 0xad588d93 + symbol_id: 0x05463d55 symbol_id: 0x8db62b4f symbol_id: 0xe9c87fab symbol_id: 0xdf07959f symbol_id: 0xafe46ece symbol_id: 0xe445d254 symbol_id: 0x64e2c288 + symbol_id: 0xc3add2dc symbol_id: 0xdc2af26c + symbol_id: 0xcc5017b7 symbol_id: 0x1362c5b0 + symbol_id: 0xaa2da792 symbol_id: 0x0e614ab0 symbol_id: 0xa68c0f10 symbol_id: 0xdcf22716 symbol_id: 0x4f980315 symbol_id: 0xe1489e0c + symbol_id: 0xd7f9868e symbol_id: 0x37776872 symbol_id: 0xfc735654 + symbol_id: 0x1ebb872f symbol_id: 0xea695d5b symbol_id: 0xd82141b7 symbol_id: 0xe520cb67 @@ -381676,6 +396390,7 @@ interface { symbol_id: 0xfb7cdd24 symbol_id: 0xc8703937 symbol_id: 0x61b56472 + symbol_id: 0x19dded7c symbol_id: 0xf32898c6 symbol_id: 0x332635cd symbol_id: 0xf06625d6 @@ -381690,10 +396405,12 @@ interface { symbol_id: 0x57a9a36a symbol_id: 0x21d8d29a symbol_id: 0x2e04cb9c + symbol_id: 0xdda667b0 symbol_id: 0x306b5ff7 symbol_id: 0x2fce8f78 symbol_id: 0xec7035fd symbol_id: 0xa9d55136 + symbol_id: 0xabc729f7 symbol_id: 0x75b174bb symbol_id: 0x506628ab symbol_id: 0x0d3c7607 @@ -381701,11 +396418,14 @@ interface { symbol_id: 0x6f146fe1 symbol_id: 0x678bb5ba symbol_id: 0xf1ec5ef2 + symbol_id: 0xca5cbc9a symbol_id: 0xaa072f92 symbol_id: 0x9620eac1 symbol_id: 0x5cc4ca5b symbol_id: 0x607a7f0a symbol_id: 0xca10f06e + symbol_id: 0x9d49459f + symbol_id: 0x759240ef symbol_id: 0x26324a1f symbol_id: 0x4ade2774 symbol_id: 0x704b9aae @@ -381722,11 +396442,18 @@ interface { symbol_id: 0xe2d7542c symbol_id: 0x988719fa symbol_id: 0x732a182b + symbol_id: 0x54b2cd01 + symbol_id: 0x188eab44 symbol_id: 0xe7584e1c + symbol_id: 0x684e5f4f symbol_id: 0x0d418d38 + symbol_id: 0x2121385f symbol_id: 0x50a83025 + symbol_id: 0x901d0e89 + symbol_id: 0x04a824b5 symbol_id: 0xe6918e09 symbol_id: 0x4d4fd1cc + symbol_id: 0x888dea6d symbol_id: 0xace80c56 symbol_id: 0xa0ce156c symbol_id: 0x46787271 @@ -381743,6 +396470,7 @@ interface { symbol_id: 0x828646be symbol_id: 0x4756cfec symbol_id: 0x8b7beb3b + symbol_id: 0x60a121b4 symbol_id: 0xf18e312d symbol_id: 0xf68497fa symbol_id: 0xb6603d58 @@ -381752,7 +396480,10 @@ interface { symbol_id: 0x31457bed symbol_id: 0x62c13726 symbol_id: 0xafbca760 + symbol_id: 0xa48390ca symbol_id: 0x586a06d1 + symbol_id: 0xda2d53f2 + symbol_id: 0x50a5a949 symbol_id: 0xcb34ca12 symbol_id: 0x2f768c2b symbol_id: 0xc34a5545 @@ -381763,6 +396494,10 @@ interface { symbol_id: 0x78341cfd symbol_id: 0xac62c748 symbol_id: 0xa2bd1edf + symbol_id: 0xa5b4e5b2 + symbol_id: 0xce7e7dff + symbol_id: 0x1a1d0854 + symbol_id: 0xf2890610 symbol_id: 0xb6da564f symbol_id: 0x41c8d09b symbol_id: 0xe2ad11db @@ -381777,6 +396512,7 @@ interface { symbol_id: 0x76e879b6 symbol_id: 0xae5bbde9 symbol_id: 0x20d2ceb3 + symbol_id: 0x3d63616d symbol_id: 0xab37fc55 symbol_id: 0x49b95a49 symbol_id: 0xb194c4c5 @@ -381785,12 +396521,16 @@ interface { symbol_id: 0xb0c197a3 symbol_id: 0x761f292f symbol_id: 0xef7ad117 + symbol_id: 0x158c4cfa symbol_id: 0x4568ff8f symbol_id: 0xe918e2ec + symbol_id: 0x13b2fb38 + symbol_id: 0x04365139 symbol_id: 0xd94bc301 symbol_id: 0x3fc5ffc9 symbol_id: 0xa3915d70 symbol_id: 0xf01f02ea + symbol_id: 0xeaebbadf symbol_id: 0xe471b8d5 symbol_id: 0x84628825 symbol_id: 0x8d0ce77d @@ -381804,6 +396544,7 @@ interface { symbol_id: 0xbe3d9b79 symbol_id: 0x30004003 symbol_id: 0xb91d18b6 + symbol_id: 0x8b4c2f61 symbol_id: 0xb3b18fc4 symbol_id: 0x40d6a8c5 symbol_id: 0x931fa088 @@ -381825,6 +396566,8 @@ interface { symbol_id: 0x39e68fed symbol_id: 0xefb9e5a3 symbol_id: 0x3fe0157c + symbol_id: 0xe5bf742d + symbol_id: 0x4ef2c337 symbol_id: 0x6f25dd05 symbol_id: 0xa5c71571 symbol_id: 0xfa3284c7 @@ -381832,10 +396575,14 @@ interface { symbol_id: 0xd9d2bcff symbol_id: 0x09ba106b symbol_id: 0xf9580976 + symbol_id: 0x49b955bd + symbol_id: 0xfe6b6962 symbol_id: 0x18e67da1 symbol_id: 0x75a2f39e symbol_id: 0x7b5c377f symbol_id: 0x6436c788 + symbol_id: 0x1f1a25bd + symbol_id: 0xf09ef4d0 symbol_id: 0x609a86da symbol_id: 0x08a49528 symbol_id: 0xa03a7d43 @@ -381849,7 +396596,10 @@ interface { symbol_id: 0xaf7a4dba symbol_id: 0x743ea36d symbol_id: 0xc09d36c9 + symbol_id: 0xe100c3ad + symbol_id: 0x55476a7c symbol_id: 0x42dbeb24 + symbol_id: 0xa13f65ff symbol_id: 0xf57e8f65 symbol_id: 0x18343f2d symbol_id: 0xef8c9bf3 @@ -381866,6 +396616,7 @@ interface { symbol_id: 0xbf086359 symbol_id: 0xef6e6795 symbol_id: 0xb2d6f207 + symbol_id: 0x3b13741e symbol_id: 0xd8f3ca82 symbol_id: 0xff315556 symbol_id: 0x6d72699f @@ -381878,11 +396629,19 @@ interface { symbol_id: 0x88a08d67 symbol_id: 0xe2682879 symbol_id: 0xdffbb8bf + symbol_id: 0xd21276a5 + symbol_id: 0x4a43bdfe + symbol_id: 0xd224caa5 + symbol_id: 0xcbc5fd52 + symbol_id: 0x0ab12991 + symbol_id: 0x12df1a91 + symbol_id: 0x67e2af24 symbol_id: 0xf3cb5921 symbol_id: 0xcb194ec9 symbol_id: 0x009c40ce symbol_id: 0x02473ce7 symbol_id: 0x65f99dde + symbol_id: 0x191846a3 symbol_id: 0x2497fb4d symbol_id: 0x37548d14 symbol_id: 0x6aa1a617 @@ -381891,6 +396650,8 @@ interface { symbol_id: 0x7d5529d3 symbol_id: 0xe10cee18 symbol_id: 0x477e3555 + symbol_id: 0x2160e0b7 + symbol_id: 0xf586b3bb symbol_id: 0xa70e8cd2 symbol_id: 0x5b327cd6 symbol_id: 0xe91cdbb3 @@ -381907,6 +396668,7 @@ interface { symbol_id: 0x7c261545 symbol_id: 0xf497de36 symbol_id: 0xf44f6a18 + symbol_id: 0x4c0a941a symbol_id: 0xfc85c168 symbol_id: 0xb6af2644 symbol_id: 0x96901dfb @@ -381915,6 +396677,7 @@ interface { symbol_id: 0x3f61ffe2 symbol_id: 0xab99b62a symbol_id: 0x4648ac0b + symbol_id: 0x6b7624f1 symbol_id: 0x97d65f20 symbol_id: 0xf84b240e symbol_id: 0xb63e140d @@ -381927,9 +396690,13 @@ interface { symbol_id: 0xcf1808d5 symbol_id: 0x01b711f3 symbol_id: 0xb0e141a3 + symbol_id: 0x4b52e164 symbol_id: 0xd6e3f912 + symbol_id: 0x52069d2d symbol_id: 0x640280c1 symbol_id: 0xb3b57b4d + symbol_id: 0xda249832 + symbol_id: 0x206fe2ef symbol_id: 0x5693f2df symbol_id: 0xb029aed0 symbol_id: 0xa762593e @@ -381982,6 +396749,7 @@ interface { symbol_id: 0xa5eaf571 symbol_id: 0x7c570dc6 symbol_id: 0x993e379e + symbol_id: 0x874fa015 symbol_id: 0x86a88093 symbol_id: 0xfbb6649f symbol_id: 0xa3514d5f @@ -382017,6 +396785,7 @@ interface { symbol_id: 0xc8c5af1c symbol_id: 0xdeecf7a4 symbol_id: 0xeba70df6 + symbol_id: 0x9cff6ebf symbol_id: 0xcf6df527 symbol_id: 0x00374dfe symbol_id: 0xb77c96c5 @@ -382028,6 +396797,8 @@ interface { symbol_id: 0x8480d9c1 symbol_id: 0xb7d7d836 symbol_id: 0xacb3d1d3 + symbol_id: 0x5653e7da + symbol_id: 0xffaebc56 symbol_id: 0xd8dbec6e symbol_id: 0x95eaf556 symbol_id: 0xf2d017ff @@ -382053,6 +396824,7 @@ interface { symbol_id: 0x82786c66 symbol_id: 0xd772fde3 symbol_id: 0x1abdc14f + symbol_id: 0x3eb51b20 symbol_id: 0xb9c34cbd symbol_id: 0x0bd7f049 symbol_id: 0xf54175ef @@ -382084,15 +396856,18 @@ interface { symbol_id: 0x49201db3 symbol_id: 0xacc709b0 symbol_id: 0x2b2698f0 + symbol_id: 0xaa6c907e symbol_id: 0xb2553250 symbol_id: 0xb389e6a5 symbol_id: 0x3a8604de symbol_id: 0x61a552c6 symbol_id: 0x5a9da856 symbol_id: 0x1d853176 + symbol_id: 0xa8878d9e symbol_id: 0x1cb0de6c symbol_id: 0xe0e9f920 symbol_id: 0xfba0da8c + symbol_id: 0x00f38540 symbol_id: 0x181f78de symbol_id: 0xbe6da55e symbol_id: 0x95792096 @@ -382106,16 +396881,20 @@ interface { symbol_id: 0xb5b2d835 symbol_id: 0x226328f4 symbol_id: 0x0b5d5f1c + symbol_id: 0x1516f6b7 + symbol_id: 0x650319ec symbol_id: 0x4ffac461 symbol_id: 0xad8bab96 symbol_id: 0x528ef002 symbol_id: 0x90bf9007 symbol_id: 0xd76a9123 + symbol_id: 0x9eda4f26 symbol_id: 0xc0d4821a symbol_id: 0xaea1564a symbol_id: 0x0d1fc920 symbol_id: 0xd34c6466 symbol_id: 0x51c471d6 + symbol_id: 0x0467bac1 symbol_id: 0x6458d26a symbol_id: 0x2e876bee symbol_id: 0x1996f188 @@ -382127,6 +396906,8 @@ interface { symbol_id: 0x1f81c0c0 symbol_id: 0xcebb0cec symbol_id: 0x27ae2b17 + symbol_id: 0xff90ba37 + symbol_id: 0xff19eaec symbol_id: 0x49ee3f1e symbol_id: 0x646a1dc6 symbol_id: 0xc40c1fbe @@ -382173,6 +396954,7 @@ interface { symbol_id: 0x835f3bf3 symbol_id: 0xdc30e4d6 symbol_id: 0xcb1ad79b + symbol_id: 0x163b934e symbol_id: 0xb78983c5 symbol_id: 0xe6192860 symbol_id: 0xf40ec9b3 @@ -382185,6 +396967,7 @@ interface { symbol_id: 0x4cb4702d symbol_id: 0x0b067d4b symbol_id: 0xc0201123 + symbol_id: 0x4d722bb5 symbol_id: 0x2a322266 symbol_id: 0x57e1cd01 symbol_id: 0xf0581d11 @@ -382193,15 +396976,21 @@ interface { symbol_id: 0xabd39b51 symbol_id: 0x6dfac71b symbol_id: 0xb0184730 + symbol_id: 0xd289c43d + symbol_id: 0x6efa206d + symbol_id: 0x5cf37146 symbol_id: 0x427cedc9 symbol_id: 0x11fbb9ce symbol_id: 0xd4a0f991 symbol_id: 0x864cb6b1 symbol_id: 0x55c7afec + symbol_id: 0xd1f054c0 + symbol_id: 0x2e575a11 symbol_id: 0xf737e767 symbol_id: 0x6ad917a1 symbol_id: 0xdeb1861d symbol_id: 0x7661d150 + symbol_id: 0x56b332ad symbol_id: 0x6a712ee1 symbol_id: 0xe594a242 symbol_id: 0x3afeb397 @@ -382253,7 +397042,9 @@ interface { symbol_id: 0xb47c5ffe symbol_id: 0xdded4dcd symbol_id: 0x9dea2dda + symbol_id: 0x6bb6d4ca symbol_id: 0x8ea00f54 + symbol_id: 0x521ad765 symbol_id: 0x0f9d7b5e symbol_id: 0x0be8da0e symbol_id: 0x921644f5 @@ -382303,6 +397094,14 @@ interface { symbol_id: 0x9c1662dc symbol_id: 0x9e7fc289 symbol_id: 0x0e419b40 + symbol_id: 0x61aaf300 + symbol_id: 0x0d8df2d6 + symbol_id: 0xbe895b99 + symbol_id: 0x438a802b + symbol_id: 0xe05cfed6 + symbol_id: 0xb0d627f0 + symbol_id: 0x3b573ab8 + symbol_id: 0xb4ff03eb symbol_id: 0xb2bfcc0c symbol_id: 0x06192615 symbol_id: 0x9e3deb49 @@ -382310,6 +397109,7 @@ interface { symbol_id: 0xa84b7a9c symbol_id: 0x1c488fd9 symbol_id: 0x4a75c450 + symbol_id: 0x1ae20002 symbol_id: 0xc8e5adc6 symbol_id: 0xa0a33b62 symbol_id: 0xc80b76b2 @@ -382319,6 +397119,7 @@ interface { symbol_id: 0xfe061fe6 symbol_id: 0xcda0bdad symbol_id: 0x3c28dcec + symbol_id: 0xa383a6c1 symbol_id: 0x1ff124cb symbol_id: 0x80b6d91d symbol_id: 0x229b68f6 @@ -382327,10 +397128,12 @@ interface { symbol_id: 0xc4e53e95 symbol_id: 0xba1a33c8 symbol_id: 0xe2dc88d9 + symbol_id: 0x4d06ba53 symbol_id: 0x3c85cae0 symbol_id: 0x4ce62869 symbol_id: 0x6d77f512 symbol_id: 0xb3cbf3c8 + symbol_id: 0xb7533de5 symbol_id: 0x7a871d1c symbol_id: 0x91718d34 symbol_id: 0x65e5fa26 @@ -382344,8 +397147,12 @@ interface { symbol_id: 0xb29100f2 symbol_id: 0xef9eb644 symbol_id: 0xf91cb171 + symbol_id: 0xb242a940 + symbol_id: 0xd156aa2c symbol_id: 0x00d9abe7 + symbol_id: 0xfa95bdc1 symbol_id: 0xb63845e5 + symbol_id: 0x52eaa51b symbol_id: 0x5332f89b symbol_id: 0xdfc28761 symbol_id: 0x75df86d2 @@ -382359,11 +397166,13 @@ interface { symbol_id: 0xdac60909 symbol_id: 0x39dbce1e symbol_id: 0x5a11b234 + symbol_id: 0xf42e28c4 symbol_id: 0x8a96e88d symbol_id: 0xbd2ef94c symbol_id: 0x580bab0e symbol_id: 0x48318742 symbol_id: 0xa11919c2 + symbol_id: 0x04880ada symbol_id: 0x25ef9f7a symbol_id: 0xd6393164 symbol_id: 0x6c7fb432 @@ -382383,6 +397192,7 @@ interface { symbol_id: 0x76052ea8 symbol_id: 0x754e3185 symbol_id: 0x72598679 + symbol_id: 0x91507af8 symbol_id: 0xd2c17be4 symbol_id: 0xc5d5f65e symbol_id: 0x6ca4b892 @@ -382403,6 +397213,7 @@ interface { symbol_id: 0xd84adb21 symbol_id: 0xed719736 symbol_id: 0x2b1e3d59 + symbol_id: 0x98850f9d symbol_id: 0x495f0223 symbol_id: 0x7fbd0d58 symbol_id: 0x06f2ea68 @@ -382417,6 +397228,7 @@ interface { symbol_id: 0x5f9864aa symbol_id: 0x966a7c42 symbol_id: 0xab62b21c + symbol_id: 0xfb23b117 symbol_id: 0x4f627b39 symbol_id: 0xda163e44 symbol_id: 0xb375007c @@ -382424,6 +397236,7 @@ interface { symbol_id: 0x0356dc1d symbol_id: 0x53eb2602 symbol_id: 0xcce97787 + symbol_id: 0x9901e8ee symbol_id: 0x4bc5faef symbol_id: 0xa06e08e9 symbol_id: 0x98bdb018 @@ -382458,8 +397271,12 @@ interface { symbol_id: 0xca337eb1 symbol_id: 0x9e7d8d76 symbol_id: 0x610edc84 + symbol_id: 0xd71898b4 + symbol_id: 0xc1167624 + symbol_id: 0x9f1f7cee symbol_id: 0xd89255c2 symbol_id: 0x962b6a68 + symbol_id: 0x15e1667b symbol_id: 0x33bbeca6 symbol_id: 0x4e0ae383 symbol_id: 0x81619b01 @@ -382516,6 +397333,7 @@ interface { symbol_id: 0x131ff67b symbol_id: 0xbbbf4eda symbol_id: 0xb6965ce8 + symbol_id: 0x4b049d5c symbol_id: 0x0c67e2fe symbol_id: 0xc6155c06 symbol_id: 0xce563c27 @@ -382526,6 +397344,7 @@ interface { symbol_id: 0x9b056e94 symbol_id: 0x2061f0ca symbol_id: 0xd878ab56 + symbol_id: 0xd53a5822 symbol_id: 0xb1469ae6 symbol_id: 0x3afbe534 symbol_id: 0x2cc0b276 @@ -382537,20 +397356,25 @@ interface { symbol_id: 0xec1b66f9 symbol_id: 0xac913841 symbol_id: 0x42676517 + symbol_id: 0xd5cc5ce2 symbol_id: 0xc3e46036 symbol_id: 0xcd2564d1 symbol_id: 0x2968f72a symbol_id: 0x0a2b21ec symbol_id: 0xbdd0f4c6 symbol_id: 0xe5e28fcd + symbol_id: 0xf8751b15 + symbol_id: 0xdd9947d5 symbol_id: 0xff08526f symbol_id: 0xc81e9eb3 symbol_id: 0x237a3562 + symbol_id: 0x5d9de9a7 symbol_id: 0x1d1f6717 symbol_id: 0x20c19184 symbol_id: 0xef67fe16 symbol_id: 0x9eca665b symbol_id: 0x3ea8bbd7 + symbol_id: 0xa3db58f1 symbol_id: 0x1257590d symbol_id: 0x833374c8 symbol_id: 0x717034d4 @@ -382562,16 +397386,22 @@ interface { symbol_id: 0xbf39e9a5 symbol_id: 0x4d4a15b0 symbol_id: 0xfc625698 + symbol_id: 0x80e1f666 symbol_id: 0x62173925 symbol_id: 0x053cd2eb symbol_id: 0xd1471c13 symbol_id: 0x3359f049 + symbol_id: 0xc60881ee + symbol_id: 0xd9005076 symbol_id: 0xcb0ffe5b symbol_id: 0xa79ba8cc symbol_id: 0x23b67585 symbol_id: 0x1e81ded9 symbol_id: 0xfca661a6 + symbol_id: 0x8e0112d7 symbol_id: 0x0e52d725 + symbol_id: 0x162a73f7 + symbol_id: 0x7dcc32e4 symbol_id: 0x91309df9 symbol_id: 0xfdca589d symbol_id: 0xb50ff8bd @@ -382583,11 +397413,14 @@ interface { symbol_id: 0xbb92068e symbol_id: 0x81600265 symbol_id: 0x57a4fa38 + symbol_id: 0xdb6ddedf + symbol_id: 0x883df740 symbol_id: 0x551c18d1 symbol_id: 0xeb9b8f1f symbol_id: 0x4d669c6d symbol_id: 0x6715c595 symbol_id: 0x9f75c77b + symbol_id: 0x801e3d5d symbol_id: 0xd36400de symbol_id: 0x2c08983d symbol_id: 0x81bdacc5 @@ -382596,10 +397429,15 @@ interface { symbol_id: 0x50e383fc symbol_id: 0x823aeba5 symbol_id: 0xde96cb2f + symbol_id: 0x4c090f07 symbol_id: 0x171eca8a + symbol_id: 0x82537a82 symbol_id: 0x79187969 + symbol_id: 0x04f5a6e5 symbol_id: 0x52864a7e + symbol_id: 0x8d5ab7b4 symbol_id: 0xccc25fc1 + symbol_id: 0xb96af991 symbol_id: 0xb771d13e symbol_id: 0x53d11a8d symbol_id: 0x5489a975 @@ -382645,6 +397483,7 @@ interface { symbol_id: 0xf666562b symbol_id: 0xa5179b7b symbol_id: 0xc1583575 + symbol_id: 0x1ef313dc symbol_id: 0x67daf3cf symbol_id: 0xe5161e20 symbol_id: 0x31d27334 @@ -382702,6 +397541,7 @@ interface { symbol_id: 0xf233a4f2 symbol_id: 0x5f8e5002 symbol_id: 0x4bb20cbc + symbol_id: 0xe1beb7e3 symbol_id: 0x0d97ed87 symbol_id: 0x0aa80467 symbol_id: 0x92dcd9e0 @@ -382747,7 +397587,13 @@ interface { symbol_id: 0xfc7749bc symbol_id: 0x55a1ee95 symbol_id: 0x04c32c7c + symbol_id: 0x15eb01e7 symbol_id: 0x647c0881 + symbol_id: 0x349b4e0a + symbol_id: 0x11f117af + symbol_id: 0x781fabb2 + symbol_id: 0xe2544e4d + symbol_id: 0xdd8da0cf symbol_id: 0x19e74e36 symbol_id: 0xdb9d4783 symbol_id: 0x4c5f0ec2 @@ -382775,6 +397621,7 @@ interface { symbol_id: 0xe85fa1f1 symbol_id: 0xe6df6df5 symbol_id: 0x0b165427 + symbol_id: 0x01805ccc symbol_id: 0xd81e7ab3 symbol_id: 0x3b013a69 symbol_id: 0x0576df29 @@ -382797,6 +397644,7 @@ interface { symbol_id: 0xd0ac64f7 symbol_id: 0xa1e3330b symbol_id: 0x85ab844f + symbol_id: 0xe592ed14 symbol_id: 0x90a9db6c symbol_id: 0xde1fbc57 symbol_id: 0xa161f29a @@ -382804,8 +397652,10 @@ interface { symbol_id: 0x589e892d symbol_id: 0x25bf4477 symbol_id: 0x5b8e8574 + symbol_id: 0x22e51db4 symbol_id: 0x5a62c5df symbol_id: 0x20c43211 + symbol_id: 0xa09675ab symbol_id: 0xcdcce9e8 symbol_id: 0x67a68b2f symbol_id: 0x89e08852 @@ -382816,6 +397666,22 @@ interface { symbol_id: 0x440b32de symbol_id: 0x96ffcda6 symbol_id: 0x4b1a4683 + symbol_id: 0x884a3a76 + symbol_id: 0xb54be30e + symbol_id: 0xead962b7 + symbol_id: 0xfb50f564 + symbol_id: 0xff600ca5 + symbol_id: 0x266ac51c + symbol_id: 0xa8e06dd7 + symbol_id: 0x52e65741 + symbol_id: 0x2069fc41 + symbol_id: 0x0abe7457 + symbol_id: 0x70ca4fad + symbol_id: 0xa164371a + symbol_id: 0xb4634233 + symbol_id: 0x0a058c0b + symbol_id: 0x5603c10b + symbol_id: 0x7520d018 symbol_id: 0xde9ec7ca symbol_id: 0xa2a47944 symbol_id: 0x97ae66e9 @@ -382827,12 +397693,15 @@ interface { symbol_id: 0xf770e060 symbol_id: 0xfe156c9a symbol_id: 0xf569682d + symbol_id: 0x8837a38c symbol_id: 0x0d9ec99a symbol_id: 0x61438d3a symbol_id: 0xdeeb802d symbol_id: 0x78407718 symbol_id: 0x88d6fe86 + symbol_id: 0xa4692a70 symbol_id: 0x3afde7ec + symbol_id: 0x6415475c symbol_id: 0x2bf23b7c symbol_id: 0x97301de5 symbol_id: 0x8ed64fa4 @@ -382845,6 +397714,7 @@ interface { symbol_id: 0xbcab4e4a symbol_id: 0xa77979a2 symbol_id: 0x56724950 + symbol_id: 0xf4b697c0 symbol_id: 0x9218e37d symbol_id: 0xc8de14e8 symbol_id: 0xaf5de696 @@ -382858,6 +397728,7 @@ interface { symbol_id: 0x097ab520 symbol_id: 0xccb2ecff symbol_id: 0xd0f2d980 + symbol_id: 0x241e9d4d symbol_id: 0xf6b9516e symbol_id: 0xa2b20c15 symbol_id: 0x0ea63f59 @@ -382877,6 +397748,7 @@ interface { symbol_id: 0xb08551d1 symbol_id: 0x5b0ad2ac symbol_id: 0xc576d59e + symbol_id: 0x0abc683e symbol_id: 0x7c053015 symbol_id: 0xff9fcdce symbol_id: 0xa34635ab @@ -382890,6 +397762,7 @@ interface { symbol_id: 0x92b974cd symbol_id: 0x57498e16 symbol_id: 0x888f691d + symbol_id: 0x86c1623f symbol_id: 0x36e39cf6 symbol_id: 0x6e37c2ad symbol_id: 0x91f58d29 @@ -382903,6 +397776,7 @@ interface { symbol_id: 0x6e7e1dc0 symbol_id: 0x1ed62a9d symbol_id: 0x5df7b359 + symbol_id: 0x92ffc2e2 symbol_id: 0xd6e5f7c7 symbol_id: 0x7695d1dd symbol_id: 0xcf6046cf @@ -382967,6 +397841,7 @@ interface { symbol_id: 0xabe60a33 symbol_id: 0x7ae5eeb4 symbol_id: 0x317870a4 + symbol_id: 0x30dd6796 symbol_id: 0x573e2956 symbol_id: 0xe5bfa8c8 symbol_id: 0xd48a6769 @@ -382975,6 +397850,22 @@ interface { symbol_id: 0xedd83590 symbol_id: 0x840989b2 symbol_id: 0x57325158 + symbol_id: 0xf4cef372 + symbol_id: 0xa2bba96c + symbol_id: 0x7848fa66 + symbol_id: 0x0db19b7a + symbol_id: 0xed0adecd + symbol_id: 0xd3ad47e6 + symbol_id: 0x042d9e44 + symbol_id: 0x0991ae07 + symbol_id: 0x650e9b1f + symbol_id: 0xd360b11b + symbol_id: 0x8c40514f + symbol_id: 0xe7718d4e + symbol_id: 0xb61b1afb + symbol_id: 0xe96fb6a0 + symbol_id: 0xf99054ab + symbol_id: 0x76f0e551 symbol_id: 0x6cb15207 symbol_id: 0x12eaf956 symbol_id: 0xac4ecea5 @@ -382998,6 +397889,7 @@ interface { symbol_id: 0xdcb8ed3c symbol_id: 0x4ec1de19 symbol_id: 0xe5cfd7ac + symbol_id: 0x77d18a9c symbol_id: 0xd0deb542 symbol_id: 0xe8233473 symbol_id: 0x710f1fc2 @@ -383046,6 +397938,7 @@ interface { symbol_id: 0xb989e3a2 symbol_id: 0xd140139f symbol_id: 0x009463a5 + symbol_id: 0x843aec6c symbol_id: 0xeb70c9c5 symbol_id: 0xafa3c498 symbol_id: 0x083d52da @@ -383102,6 +397995,7 @@ interface { symbol_id: 0x3d2d0ba2 symbol_id: 0x0d57c53d symbol_id: 0xab93a1ea + symbol_id: 0x626b81c7 symbol_id: 0x4a57b168 symbol_id: 0x8a417941 symbol_id: 0xb04874d2 @@ -383117,6 +398011,7 @@ interface { symbol_id: 0xe5349379 symbol_id: 0xb7abbec5 symbol_id: 0x573a436c + symbol_id: 0x7e8263f6 symbol_id: 0x588ab3fd symbol_id: 0x1389094c symbol_id: 0x098d4189 @@ -383211,6 +398106,8 @@ interface { symbol_id: 0x0dfe64b8 symbol_id: 0x51b726c8 symbol_id: 0x5d9f16f7 + symbol_id: 0x3ef0db06 + symbol_id: 0xc72378aa symbol_id: 0xd82232b3 symbol_id: 0x69a31cde symbol_id: 0xfbc28ac3 @@ -383226,6 +398123,7 @@ interface { symbol_id: 0x1cc3ba5d symbol_id: 0xf01aa08a symbol_id: 0x7fe4fd87 + symbol_id: 0xf8bd92c8 symbol_id: 0x70b7d94b symbol_id: 0x3b6d3ed0 symbol_id: 0xcda9ec73 @@ -383242,6 +398140,7 @@ interface { symbol_id: 0xc8580afc symbol_id: 0xbe89afca symbol_id: 0x3b7c3802 + symbol_id: 0x08309f5e symbol_id: 0x11e9361c symbol_id: 0x98de519f symbol_id: 0x49bf35a9 @@ -383298,6 +398197,7 @@ interface { symbol_id: 0xaad93a6e symbol_id: 0x820af79e symbol_id: 0xf5a866d4 + symbol_id: 0x4b9e6227 symbol_id: 0x9c6b68f2 symbol_id: 0x8ab89d74 symbol_id: 0x717f2784 @@ -383305,20 +398205,25 @@ interface { symbol_id: 0x88d310ca symbol_id: 0x596f41bc symbol_id: 0xcf21a814 + symbol_id: 0xd4d38d4c symbol_id: 0x81bdff8a symbol_id: 0xeba98304 symbol_id: 0x48e94357 symbol_id: 0x6cbff317 + symbol_id: 0xac1aeaf0 + symbol_id: 0x622cdd92 symbol_id: 0xc7970f23 symbol_id: 0x5758ca8d symbol_id: 0x8f687080 symbol_id: 0x128b55c8 symbol_id: 0xd2191311 + symbol_id: 0x585410d0 symbol_id: 0xd4a13963 symbol_id: 0xa09bde3a symbol_id: 0xaef6523a symbol_id: 0xef97e722 symbol_id: 0x026b095a + symbol_id: 0xd32d7c35 symbol_id: 0xf76bbee4 symbol_id: 0x91de51a1 symbol_id: 0x007e9802 @@ -383389,6 +398294,7 @@ interface { symbol_id: 0x93c0dba2 symbol_id: 0xd7cfff98 symbol_id: 0xecb4d16d + symbol_id: 0xd0dd3133 symbol_id: 0x3b867568 symbol_id: 0xc5806cb6 symbol_id: 0xd48e0164 @@ -383405,6 +398311,7 @@ interface { symbol_id: 0xbe3f1757 symbol_id: 0x64649d2c symbol_id: 0x51b5201f + symbol_id: 0x0d3b6723 symbol_id: 0x58b810bd symbol_id: 0x23e302cb symbol_id: 0x9a3d3812 @@ -383412,6 +398319,7 @@ interface { symbol_id: 0xa6782aae symbol_id: 0x648de106 symbol_id: 0xe96cf682 + symbol_id: 0xc3ae75b9 symbol_id: 0xca851619 symbol_id: 0x6a50bad9 symbol_id: 0x1183a93d @@ -383423,6 +398331,9 @@ interface { symbol_id: 0x76120529 symbol_id: 0x7a8a4736 symbol_id: 0x3f8952ab + symbol_id: 0x003f0aec + symbol_id: 0x43bb72ae + symbol_id: 0x49fd657a symbol_id: 0x4e6bfabc symbol_id: 0x935fb0ee symbol_id: 0xe5fad629 @@ -383439,6 +398350,7 @@ interface { symbol_id: 0x0cf86849 symbol_id: 0x6f8184d5 symbol_id: 0x8aa099dd + symbol_id: 0xdb6eae3a symbol_id: 0x122e3e9f symbol_id: 0xc0d6517a symbol_id: 0xd479c471 @@ -383465,6 +398377,7 @@ interface { symbol_id: 0xd08fdb4b symbol_id: 0x9082bb51 symbol_id: 0x87ced39a + symbol_id: 0xf06cd4b3 symbol_id: 0x8984b2e1 symbol_id: 0x22bf134d symbol_id: 0xee902d0d @@ -383481,11 +398394,13 @@ interface { symbol_id: 0x3bb33b54 symbol_id: 0x8da7c819 symbol_id: 0x808bdf9f + symbol_id: 0x8d62d3e1 symbol_id: 0x7a4db2f9 symbol_id: 0xb96f3f15 symbol_id: 0xafb178b7 symbol_id: 0xceb76dac symbol_id: 0xb1f5cc24 + symbol_id: 0x4cf5ba17 symbol_id: 0x9718e72e symbol_id: 0x8da70bb5 symbol_id: 0xc84875f6 @@ -383499,6 +398414,7 @@ interface { symbol_id: 0x879ed3f8 symbol_id: 0xd7bee2cf symbol_id: 0x7826a8f0 + symbol_id: 0xb701b4b1 symbol_id: 0x19652f5f symbol_id: 0x78ae9c1c symbol_id: 0x3e16ebdf @@ -383524,12 +398440,14 @@ interface { symbol_id: 0xdaf34c14 symbol_id: 0x1f1ab070 symbol_id: 0x66dcfd31 + symbol_id: 0x4dae13e9 symbol_id: 0xe2b96ffd symbol_id: 0x126bb89f symbol_id: 0x2e0e7810 symbol_id: 0x383fe893 symbol_id: 0xa9bf10bc symbol_id: 0xc70188be + symbol_id: 0xe09fd784 symbol_id: 0xded28924 symbol_id: 0xe3421d56 symbol_id: 0xda364c85 @@ -383538,7 +398456,9 @@ interface { symbol_id: 0x42636e32 symbol_id: 0x9bb960df symbol_id: 0xbf2af0d7 + symbol_id: 0xdc24b796 symbol_id: 0xb8395a3e + symbol_id: 0xa625950b symbol_id: 0x9d898d75 symbol_id: 0x9ec4a8cb symbol_id: 0x9b31fd86 @@ -383574,7 +398494,10 @@ interface { symbol_id: 0x8f99729e symbol_id: 0xb6a9c6f8 symbol_id: 0x309cb0fd + symbol_id: 0x45c0e0ad + symbol_id: 0xf7fd2915 symbol_id: 0x7b9ffce9 + symbol_id: 0xe506b877 symbol_id: 0xda116c83 symbol_id: 0xa279fd1d symbol_id: 0x134d07e5 @@ -383609,17 +398532,34 @@ interface { symbol_id: 0x3f648037 symbol_id: 0xc75616d8 symbol_id: 0x467358e5 + symbol_id: 0xb1dfbb02 symbol_id: 0xacc42253 symbol_id: 0x0a446897 + symbol_id: 0xad3eb214 symbol_id: 0xb107d2cd symbol_id: 0x8628f24d + symbol_id: 0xc56006c7 + symbol_id: 0x639b2403 symbol_id: 0xbbfb394e symbol_id: 0x79edfc56 symbol_id: 0xc3077f07 symbol_id: 0xedcfa797 + symbol_id: 0xab45f2a8 + symbol_id: 0x41eed79f + symbol_id: 0xcdc0fffd symbol_id: 0xe7aacfe5 symbol_id: 0x9e942fbe + symbol_id: 0x99b0f07b + symbol_id: 0xffbe24f4 symbol_id: 0x46b6e531 + symbol_id: 0xbe28ee32 + symbol_id: 0x4927c9f3 + symbol_id: 0x50a5072e + symbol_id: 0xef606c3f + symbol_id: 0x3289d59f + symbol_id: 0x82b19820 + symbol_id: 0x7c937fc2 + symbol_id: 0xc7c68a05 symbol_id: 0xb9dc79d0 symbol_id: 0x8bbdb127 symbol_id: 0xeaf15c9b @@ -383644,11 +398584,16 @@ interface { symbol_id: 0xb290a148 symbol_id: 0x09d08108 symbol_id: 0x3c7c2553 + symbol_id: 0x06c58be7 + symbol_id: 0x159a69a3 + symbol_id: 0x39840ab2 symbol_id: 0x3dca9a13 + symbol_id: 0x07508208 symbol_id: 0xcb14b5cc symbol_id: 0x1721c938 symbol_id: 0x1bf542c4 symbol_id: 0x5c93a483 + symbol_id: 0x5c388f41 symbol_id: 0x93b9959a symbol_id: 0x618f059e symbol_id: 0x48641588 @@ -383658,6 +398603,7 @@ interface { symbol_id: 0x0513219e symbol_id: 0x1b00ff86 symbol_id: 0x9b815cdc + symbol_id: 0x998ad938 symbol_id: 0x27e49ce0 symbol_id: 0xa0e729a5 symbol_id: 0xe330aff9 @@ -383680,14 +398626,17 @@ interface { symbol_id: 0x07715f1a symbol_id: 0x2c0dfd47 symbol_id: 0xb3bb06f4 + symbol_id: 0xe7fde0db symbol_id: 0xee139066 symbol_id: 0x613adcb1 symbol_id: 0x370e6f08 + symbol_id: 0xc35e482b symbol_id: 0x53816b02 symbol_id: 0xc9ddb79e symbol_id: 0x11780300 symbol_id: 0x183013c2 symbol_id: 0x55d636ec + symbol_id: 0xff713254 symbol_id: 0x02e45228 symbol_id: 0x90df3dac symbol_id: 0x98cceeb9 @@ -383725,12 +398674,19 @@ interface { symbol_id: 0xc5fee33e symbol_id: 0x7419d447 symbol_id: 0x30828743 + symbol_id: 0xe21d8d05 + symbol_id: 0x338cfb0f symbol_id: 0x94b60724 + symbol_id: 0x6ac5d61b + symbol_id: 0x54756210 symbol_id: 0x5ec3daa8 + symbol_id: 0x5530f759 + symbol_id: 0x3812bb22 symbol_id: 0x2f7205ee symbol_id: 0x7d577f86 symbol_id: 0x95a840b8 symbol_id: 0x7f639ef1 + symbol_id: 0x4c4073c3 symbol_id: 0x798f83da symbol_id: 0x542785af symbol_id: 0x86da67c0 @@ -383811,6 +398767,22 @@ interface { symbol_id: 0x4ba4e06f symbol_id: 0xbac82e84 symbol_id: 0xa8319a8c + symbol_id: 0xa7339c42 + symbol_id: 0x23fbc3f8 + symbol_id: 0x46e18dbd + symbol_id: 0xf5970852 + symbol_id: 0x0a3cdb4a + symbol_id: 0xdb6a18dc + symbol_id: 0x412252a6 + symbol_id: 0x9c589482 + symbol_id: 0x0400c852 + symbol_id: 0xcdcde62d + symbol_id: 0xba5f9a53 + symbol_id: 0x8802e047 + symbol_id: 0xf7264f57 + symbol_id: 0x370e3283 + symbol_id: 0xe87161bc + symbol_id: 0x112db471 symbol_id: 0xfe79963a symbol_id: 0xbc19d975 symbol_id: 0x6dc59ee7 @@ -383847,7 +398819,9 @@ interface { symbol_id: 0x65492c23 symbol_id: 0xa106a350 symbol_id: 0x59b3b64e + symbol_id: 0x14b7a009 symbol_id: 0x7dd9e61e + symbol_id: 0x30903940 symbol_id: 0x77a0ab63 symbol_id: 0x4825b485 symbol_id: 0xa448ac51 @@ -383872,6 +398846,7 @@ interface { symbol_id: 0x2bcde32a symbol_id: 0x65cf864e symbol_id: 0xc5a4a821 + symbol_id: 0x085aa99f symbol_id: 0x4dcdd24d symbol_id: 0x8df87722 symbol_id: 0x0ac30c0d @@ -383929,6 +398904,7 @@ interface { symbol_id: 0x0e1d2fa4 symbol_id: 0x306e3b3d symbol_id: 0x684435da + symbol_id: 0x4e8277c6 symbol_id: 0x7ec10e18 symbol_id: 0xe197ec6f symbol_id: 0x58069299 @@ -383941,10 +398917,24 @@ interface { symbol_id: 0x88f82161 symbol_id: 0xccc593d6 symbol_id: 0x97a02af0 + symbol_id: 0xa832c6f3 symbol_id: 0x2ffc7c7e + symbol_id: 0x1706be22 + symbol_id: 0x4c3911f0 + symbol_id: 0x8717f26f + symbol_id: 0x361004c8 + symbol_id: 0xcf5ea9a2 + symbol_id: 0x6c303862 + symbol_id: 0x553bc5f3 + symbol_id: 0xfba34655 + symbol_id: 0x52d444b1 symbol_id: 0x7d0e44ca symbol_id: 0x10de460f + symbol_id: 0x0eb11e95 symbol_id: 0x6ca4d0ed + symbol_id: 0x741d5af7 + symbol_id: 0x6e37f09d + symbol_id: 0x29d6d842 symbol_id: 0x21d35235 symbol_id: 0x334ff68f symbol_id: 0xd7ecf501 @@ -384045,6 +399035,7 @@ interface { symbol_id: 0x92a80b79 symbol_id: 0x17b1a06d symbol_id: 0x5e075973 + symbol_id: 0x309b98f1 symbol_id: 0x58de8ff6 symbol_id: 0xb9a0744d symbol_id: 0x9c458796 @@ -384075,14 +399066,19 @@ interface { symbol_id: 0x82d54cd2 symbol_id: 0xec107a09 symbol_id: 0x841218b7 + symbol_id: 0xb9f64e9d symbol_id: 0x4a5f3d41 + symbol_id: 0x4292b79d + symbol_id: 0xb779176d symbol_id: 0x98a39db9 symbol_id: 0xf9fd308c symbol_id: 0x5956f21f symbol_id: 0x76041d7e symbol_id: 0xd941beb8 symbol_id: 0xe4653a75 + symbol_id: 0x0b446726 symbol_id: 0x8aa99af0 + symbol_id: 0x5ecdc560 symbol_id: 0x7ee06725 symbol_id: 0xea065265 symbol_id: 0xd50bc6e1 @@ -384110,13 +399106,18 @@ interface { symbol_id: 0x7551a60b symbol_id: 0x08fd4b84 symbol_id: 0xc6d8f246 + symbol_id: 0xdf3e8655 symbol_id: 0x6f2f4bd1 + symbol_id: 0xf87ecda4 symbol_id: 0x00b4d2da symbol_id: 0xdf968210 + symbol_id: 0xcc6510bd symbol_id: 0xc93c3b7d symbol_id: 0xcae49fd9 symbol_id: 0x83940072 symbol_id: 0x511cdd52 + symbol_id: 0x63d665a4 + symbol_id: 0x8efc83b2 symbol_id: 0x53baed4c symbol_id: 0xaf4fc4b9 symbol_id: 0x2d6e1a71 @@ -384131,12 +399132,15 @@ interface { symbol_id: 0xbf4f0b58 symbol_id: 0x6e6a2ec5 symbol_id: 0xca2771be + symbol_id: 0x601b2cac + symbol_id: 0xea35f0d0 symbol_id: 0x7ded1ffe symbol_id: 0xe42479db symbol_id: 0xd8b14976 symbol_id: 0x86c8a137 symbol_id: 0x64e448f4 symbol_id: 0x4e874464 + symbol_id: 0xa64f3c31 symbol_id: 0x7dce8737 symbol_id: 0x3d6f5577 symbol_id: 0x2b35dbba @@ -384144,6 +399148,12 @@ interface { symbol_id: 0x5eecacc4 symbol_id: 0x215b5641 symbol_id: 0xbf6470f2 + symbol_id: 0x7a805e08 + symbol_id: 0x318d9226 + symbol_id: 0x4e9dfa3b + symbol_id: 0x7c74ccbc + symbol_id: 0xf4ae7c22 + symbol_id: 0x2b7e86c2 symbol_id: 0x18eeb52f symbol_id: 0xbc652525 symbol_id: 0x2336c16f @@ -384168,11 +399178,14 @@ interface { symbol_id: 0xdd50f291 symbol_id: 0xd2b5c87d symbol_id: 0xf58961c1 + symbol_id: 0x31a5a9d7 symbol_id: 0xfa66175a + symbol_id: 0x3975a1c8 symbol_id: 0x6a48a444 symbol_id: 0xc73383c1 symbol_id: 0x0ee6aecf symbol_id: 0x3c5daf32 + symbol_id: 0xcec28ada symbol_id: 0xbd83f7de symbol_id: 0xb6637ce6 symbol_id: 0x5ce8149d @@ -384180,10 +399193,13 @@ interface { symbol_id: 0x0d19106d symbol_id: 0xfe94820e symbol_id: 0xe7fc8dce + symbol_id: 0x22167fe7 + symbol_id: 0x38472bf4 symbol_id: 0xc3e2d4ae symbol_id: 0x6b8c216a symbol_id: 0x6f047c6e symbol_id: 0xd67bf9ed + symbol_id: 0xfe45d0d9 symbol_id: 0xffca97cd symbol_id: 0x99224733 symbol_id: 0xa4eabc87 @@ -384192,6 +399208,7 @@ interface { symbol_id: 0xe80863b1 symbol_id: 0xd81a7d03 symbol_id: 0x0566bca1 + symbol_id: 0xc578c7af symbol_id: 0x4c05b91e symbol_id: 0xa5459730 symbol_id: 0xe77a1ae2 @@ -384212,10 +399229,12 @@ interface { symbol_id: 0xadf1bba5 symbol_id: 0x1a299344 symbol_id: 0xe52a90e5 + symbol_id: 0x87342c78 symbol_id: 0x1f9ceb72 symbol_id: 0x119c23e5 symbol_id: 0x9aea043a symbol_id: 0xbfb0ba46 + symbol_id: 0x3d770021 symbol_id: 0x21c33dfe symbol_id: 0x6c972a39 symbol_id: 0x5334a8b4 @@ -384227,13 +399246,21 @@ interface { symbol_id: 0x42137268 symbol_id: 0xa0390871 symbol_id: 0xfb789e26 + symbol_id: 0x382b3272 + symbol_id: 0x29ecb8e9 + symbol_id: 0x3d6623cb symbol_id: 0x71726a83 symbol_id: 0xffb394c4 symbol_id: 0x48a6183b + symbol_id: 0x1c2c7614 + symbol_id: 0x6c6beb07 symbol_id: 0x1be0f35f + symbol_id: 0xd9fe9b1d symbol_id: 0x5a7fbd45 symbol_id: 0x7837fb7f + symbol_id: 0x807f9d22 symbol_id: 0x6cd920cf + symbol_id: 0x333700e4 symbol_id: 0x5234b1b5 symbol_id: 0xaed020d7 symbol_id: 0xc1d5ac06 @@ -384243,8 +399270,10 @@ interface { symbol_id: 0x39f87265 symbol_id: 0xd35aa56c symbol_id: 0xfd0a8a39 + symbol_id: 0x1e69bfb6 symbol_id: 0x274071bc symbol_id: 0x8b22b24d + symbol_id: 0xd70b3ff0 symbol_id: 0x1f294d29 symbol_id: 0xc610fcd6 symbol_id: 0x915bc321 @@ -384271,6 +399300,7 @@ interface { symbol_id: 0x5e13f2f1 symbol_id: 0x135db1d2 symbol_id: 0xba41ecd4 + symbol_id: 0x3fa49947 symbol_id: 0x327b1cbb symbol_id: 0x61a826d2 symbol_id: 0x3cc69c51 @@ -384288,6 +399318,7 @@ interface { symbol_id: 0x9ed1af8c symbol_id: 0xf030b866 symbol_id: 0x01f6343f + symbol_id: 0x508904bc symbol_id: 0xe8b2d7a6 symbol_id: 0x2ed6bfeb symbol_id: 0xa9c80d6c @@ -384305,20 +399336,24 @@ interface { symbol_id: 0x5904d735 symbol_id: 0xcb7dc482 symbol_id: 0xaed00f8c + symbol_id: 0x3b8e2bac symbol_id: 0xc89a8e29 symbol_id: 0x92dfef70 symbol_id: 0xd1f69ecb symbol_id: 0xdbb90310 symbol_id: 0x3d2a104d symbol_id: 0x9ba08730 + symbol_id: 0x65d49acf symbol_id: 0x064a6e13 symbol_id: 0x73ffe9a9 symbol_id: 0x03de6dc5 symbol_id: 0xe4e974b3 symbol_id: 0x2066c48d symbol_id: 0x1cd74592 + symbol_id: 0xbb7edccb symbol_id: 0xd4b34ea6 symbol_id: 0x3c6496cb + symbol_id: 0xca27ab6b symbol_id: 0x124d42c2 symbol_id: 0xd106aba0 symbol_id: 0x5cce6b17 @@ -384344,6 +399379,8 @@ interface { symbol_id: 0x1b2f5f11 symbol_id: 0x6746106c symbol_id: 0xc5f22a59 + symbol_id: 0x52f17879 + symbol_id: 0xa84cb89b symbol_id: 0xff4a14be symbol_id: 0x4e60d546 symbol_id: 0x0e6a648c @@ -384366,7 +399403,9 @@ interface { symbol_id: 0x6dc922be symbol_id: 0x5cdb4ea4 symbol_id: 0x6d575dad + symbol_id: 0xe4128490 symbol_id: 0xb1072fb1 + symbol_id: 0xe657d525 symbol_id: 0x661955d6 symbol_id: 0xd6a8ff16 symbol_id: 0x053e25cb @@ -384377,6 +399416,8 @@ interface { symbol_id: 0xa64fdec4 symbol_id: 0xcbec700e symbol_id: 0x394ce3dd + symbol_id: 0x3b959429 + symbol_id: 0x86921e4b symbol_id: 0x56f23732 symbol_id: 0xa5a4fafa symbol_id: 0xc37ba22c @@ -384420,6 +399461,7 @@ interface { symbol_id: 0x46063085 symbol_id: 0x8ab0e185 symbol_id: 0xbeb6fe53 + symbol_id: 0xf44e0659 symbol_id: 0x9c1bb84e symbol_id: 0xa656e08e symbol_id: 0x4c5f49dc @@ -384445,6 +399487,7 @@ interface { symbol_id: 0xeae01788 symbol_id: 0x84839142 symbol_id: 0xa9c37a1d + symbol_id: 0x2fbecafd symbol_id: 0x49232ca9 symbol_id: 0xec609d3e symbol_id: 0x44f92a6d @@ -384520,6 +399563,7 @@ interface { symbol_id: 0x62cd5012 symbol_id: 0xda95494e symbol_id: 0x76f00da5 + symbol_id: 0xbea2c272 symbol_id: 0x2e74d698 symbol_id: 0x7bbb8d5f symbol_id: 0xa18d331b @@ -384539,6 +399583,8 @@ interface { symbol_id: 0xf33d71ea symbol_id: 0xc50733a4 symbol_id: 0xc162c911 + symbol_id: 0x6b29ddfb + symbol_id: 0xc05c2da4 symbol_id: 0xaaab26df symbol_id: 0x42eaca18 symbol_id: 0x408fc274 @@ -384559,6 +399605,11 @@ interface { symbol_id: 0x01bea327 symbol_id: 0x4f31c756 symbol_id: 0x7bd17841 + symbol_id: 0xf4530070 + symbol_id: 0x7ee18475 + symbol_id: 0x18bd1341 + symbol_id: 0xac8ea5a3 + symbol_id: 0x5a1c51ee symbol_id: 0xe4eac6bd symbol_id: 0x602510fe symbol_id: 0x304a5133 @@ -384601,6 +399652,7 @@ interface { symbol_id: 0xd0b869bf symbol_id: 0x3e285e2f symbol_id: 0xf5924d9f + symbol_id: 0xda5dc517 symbol_id: 0x84278a73 symbol_id: 0xf5327fe3 symbol_id: 0x92649662 @@ -384613,6 +399665,7 @@ interface { symbol_id: 0xa848deda symbol_id: 0x8eadb5fd symbol_id: 0x140f40dd + symbol_id: 0x6da682ae symbol_id: 0x7f797603 symbol_id: 0x01e78001 symbol_id: 0x746374fa @@ -384654,6 +399707,7 @@ interface { symbol_id: 0xbad16ab3 symbol_id: 0x68c3a63b symbol_id: 0xbc90165b + symbol_id: 0x863e9436 symbol_id: 0x1579ecd2 symbol_id: 0xe4572a81 symbol_id: 0x07b15271 @@ -384684,7 +399738,9 @@ interface { symbol_id: 0xd08cb4e7 symbol_id: 0x596b8466 symbol_id: 0xd9f124cf + symbol_id: 0xb6dbcbcc symbol_id: 0xdca2a3c4 + symbol_id: 0x6d579aaf symbol_id: 0xe4059d72 symbol_id: 0x842903b7 symbol_id: 0x354e8904 @@ -384736,17 +399792,23 @@ interface { symbol_id: 0x2f332836 symbol_id: 0x165e673e symbol_id: 0xe8a26880 + symbol_id: 0xa6d8e105 symbol_id: 0x44bb49dc symbol_id: 0x6e71b72c symbol_id: 0x381bc1b0 symbol_id: 0x236a1277 symbol_id: 0xa062fd64 + symbol_id: 0x8ba1a556 + symbol_id: 0xa5e98cbe symbol_id: 0xdf7b9a78 symbol_id: 0xa259d75f symbol_id: 0x93f5b442 symbol_id: 0xe4008a83 symbol_id: 0x7eaf76f6 symbol_id: 0x65106d59 + symbol_id: 0x18e8ea11 + symbol_id: 0x1405e8c0 + symbol_id: 0x84babda3 symbol_id: 0xbedab58b symbol_id: 0x603dd7ca symbol_id: 0xc30a6d76 @@ -384764,6 +399826,7 @@ interface { symbol_id: 0x55bed293 symbol_id: 0xc1add767 symbol_id: 0x9a02788c + symbol_id: 0x760780be symbol_id: 0xc258a893 symbol_id: 0x2ce3e2c6 symbol_id: 0x04096200 @@ -384832,9 +399895,15 @@ interface { symbol_id: 0xbbd2a0ab symbol_id: 0x57abe80f symbol_id: 0xc8ea3547 + symbol_id: 0x8b0d44a9 symbol_id: 0xb2e54d47 symbol_id: 0x1b589c40 + symbol_id: 0xb4e99805 + symbol_id: 0x471faa17 + symbol_id: 0x82e37620 + symbol_id: 0x8b1dfb41 symbol_id: 0x43078d96 + symbol_id: 0x840dad92 symbol_id: 0x619db28f symbol_id: 0x36bc8d13 symbol_id: 0x38637341 @@ -384868,11 +399937,14 @@ interface { symbol_id: 0x49027247 symbol_id: 0x85e07b67 symbol_id: 0x6359420c + symbol_id: 0x39787440 symbol_id: 0x7f258c4e symbol_id: 0x64e6aa0b + symbol_id: 0x16059afd symbol_id: 0x1560f116 symbol_id: 0x1cfcf940 symbol_id: 0x3704ac3f + symbol_id: 0xea37502b symbol_id: 0x0bb7f730 symbol_id: 0xb65e3baf symbol_id: 0xf68f8b33 @@ -384935,6 +400007,7 @@ interface { symbol_id: 0xd37bdc53 symbol_id: 0x1d42003f symbol_id: 0xf3b2b115 + symbol_id: 0x33b9622b symbol_id: 0x985c43d8 symbol_id: 0xd5545a99 symbol_id: 0x9f89ff97 @@ -384959,6 +400032,7 @@ interface { symbol_id: 0xe2b0e5a5 symbol_id: 0xb8036e9c symbol_id: 0xe36e392a + symbol_id: 0x05a46d27 symbol_id: 0xe3de7018 symbol_id: 0x26fb2401 symbol_id: 0xec79392b @@ -384978,6 +400052,7 @@ interface { symbol_id: 0xd3bfa538 symbol_id: 0x1544acf1 symbol_id: 0xacdbe7cb + symbol_id: 0x9539ac95 symbol_id: 0xc699a239 symbol_id: 0xe63f0c53 symbol_id: 0x8be0e5f9 @@ -385012,6 +400087,7 @@ interface { symbol_id: 0x783e3f26 symbol_id: 0xeb2dab5b symbol_id: 0x5516ad40 + symbol_id: 0xb27a823c symbol_id: 0x840bde05 symbol_id: 0x923f5818 symbol_id: 0x41ba71c8 @@ -385042,6 +400118,7 @@ interface { symbol_id: 0x28517749 symbol_id: 0xdfe02c28 symbol_id: 0xdcce2e99 + symbol_id: 0xee187039 symbol_id: 0x7d8fe18b symbol_id: 0x02252ed7 symbol_id: 0xbfb07eec @@ -385049,9 +400126,12 @@ interface { symbol_id: 0xd9c8585e symbol_id: 0xa50d59b7 symbol_id: 0x224cb6b2 + symbol_id: 0x67bce5b1 symbol_id: 0x57ecab02 symbol_id: 0x27d0c7b6 symbol_id: 0x28b33064 + symbol_id: 0xdea2b008 + symbol_id: 0xdf2c83f5 symbol_id: 0x60d84cc3 symbol_id: 0xb613af5e symbol_id: 0xff029108 @@ -385059,15 +400139,20 @@ interface { symbol_id: 0x13dfcd3d symbol_id: 0xc2b69854 symbol_id: 0x4f3e5356 + symbol_id: 0x8cc91d1b symbol_id: 0x44e50ff8 symbol_id: 0xec5c680b symbol_id: 0xdc14ff55 symbol_id: 0x2616989d symbol_id: 0xc922a019 + symbol_id: 0x7490fd3a symbol_id: 0xfdf9f7ee symbol_id: 0x3c537500 symbol_id: 0x1b814fa6 symbol_id: 0x9ca2e070 + symbol_id: 0x4271852e + symbol_id: 0x0fe80546 + symbol_id: 0x9b003f99 symbol_id: 0x37d86bb7 symbol_id: 0x32ecd828 symbol_id: 0xe769f645 @@ -385095,6 +400180,7 @@ interface { symbol_id: 0x34de6be7 symbol_id: 0x9cc61d04 symbol_id: 0x07e4f5ea + symbol_id: 0xe48076c0 symbol_id: 0x1eafdf64 symbol_id: 0x67d6372c symbol_id: 0x0a48d5ac @@ -385116,6 +400202,7 @@ interface { symbol_id: 0x7cd4622d symbol_id: 0x5dfeb70f symbol_id: 0x01a00013 + symbol_id: 0xc3f9d559 symbol_id: 0xb9d0b3a8 symbol_id: 0x96b46225 symbol_id: 0x35a3d772 @@ -385129,6 +400216,7 @@ interface { symbol_id: 0x27f20808 symbol_id: 0x63876663 symbol_id: 0xdea420f5 + symbol_id: 0x08190210 symbol_id: 0x8ffabaa9 symbol_id: 0x50bce06e symbol_id: 0x133a7a3e @@ -385140,6 +400228,7 @@ interface { symbol_id: 0xbe6406c3 symbol_id: 0x9c6c58ea symbol_id: 0x2fefe933 + symbol_id: 0x1c994923 symbol_id: 0xec861eec symbol_id: 0x5810bdc3 symbol_id: 0x3cbd6214 @@ -385162,6 +400251,7 @@ interface { symbol_id: 0x5b0002a1 symbol_id: 0x2c8694e0 symbol_id: 0xa21a61f0 + symbol_id: 0xf6896e34 symbol_id: 0x324ff23b symbol_id: 0xde0961b5 symbol_id: 0x93ed1ac4 @@ -385196,6 +400286,7 @@ interface { symbol_id: 0x123cd197 symbol_id: 0xe57e5e73 symbol_id: 0x8ba9d028 + symbol_id: 0x7efbd192 symbol_id: 0x22f7748e symbol_id: 0x12951e5c symbol_id: 0xe4bc7703 @@ -385223,6 +400314,7 @@ interface { symbol_id: 0x81e2991f symbol_id: 0xc278f4fa symbol_id: 0x9c15bd7a + symbol_id: 0x866cf90c symbol_id: 0x5ebc16d0 symbol_id: 0xb39736f6 symbol_id: 0x9d35d830 @@ -385236,12 +400328,15 @@ interface { symbol_id: 0x992e8b3c symbol_id: 0xcd9e585e symbol_id: 0x69eeb51b + symbol_id: 0x6cf83bd0 symbol_id: 0x0dfe21ad + symbol_id: 0x7de90fab symbol_id: 0x30e87de6 symbol_id: 0x6fc1e83f symbol_id: 0x0e1df21c symbol_id: 0xac520589 symbol_id: 0x2eeef935 + symbol_id: 0xce039362 symbol_id: 0x890d0269 symbol_id: 0xa22df476 symbol_id: 0x3b5dbc43 @@ -385292,6 +400387,7 @@ interface { symbol_id: 0xeab149af symbol_id: 0x0a235dd5 symbol_id: 0xa92902da + symbol_id: 0x03646fd6 symbol_id: 0x2c092465 symbol_id: 0x161b2b54 symbol_id: 0x707a35cb @@ -385321,6 +400417,7 @@ interface { symbol_id: 0x9df74c73 symbol_id: 0x740c134e symbol_id: 0xacd66e9e + symbol_id: 0x35b1ed7b symbol_id: 0xf8bcc2db symbol_id: 0x3f5b9269 symbol_id: 0xdfa2e68a @@ -385346,6 +400443,7 @@ interface { symbol_id: 0xe59b51ac symbol_id: 0x82feb89e symbol_id: 0x417866a8 + symbol_id: 0x62c010b9 symbol_id: 0x013abbf5 symbol_id: 0x9542ffda symbol_id: 0xb1ded749 @@ -385371,6 +400469,7 @@ interface { symbol_id: 0xe8ed13a6 symbol_id: 0x2c91b5be symbol_id: 0xf8b12136 + symbol_id: 0x072cf683 symbol_id: 0xb11c92aa symbol_id: 0xaa322a74 symbol_id: 0x0d9f5d07 @@ -385384,6 +400483,7 @@ interface { symbol_id: 0x55fd0d76 symbol_id: 0x25e7db1a symbol_id: 0xb634bd54 + symbol_id: 0x5b13a53d symbol_id: 0xaba73bf2 symbol_id: 0xa2a45fe2 symbol_id: 0xe8ce7aa9 @@ -385412,6 +400512,7 @@ interface { symbol_id: 0x878b97bb symbol_id: 0x1f3f17bd symbol_id: 0x53f4166f + symbol_id: 0xe263dcb4 symbol_id: 0x59caaeac symbol_id: 0x64f92138 symbol_id: 0x2e13b831 @@ -385424,6 +400525,7 @@ interface { symbol_id: 0x324d8228 symbol_id: 0xd612789c symbol_id: 0x561323f1 + symbol_id: 0x50bfe1d8 symbol_id: 0xa9ebbb66 symbol_id: 0x2f21ba25 symbol_id: 0x81c5befa @@ -385431,6 +400533,7 @@ interface { symbol_id: 0xd1691fe4 symbol_id: 0x4804f611 symbol_id: 0x842fc505 + symbol_id: 0xf20efe74 symbol_id: 0xd28bb85a symbol_id: 0x9e62b4cc symbol_id: 0x26c5a1b9 @@ -385497,6 +400600,7 @@ interface { symbol_id: 0x7fc27c29 symbol_id: 0x9dc0e748 symbol_id: 0x2251af59 + symbol_id: 0x3758c51f symbol_id: 0xea6abe92 symbol_id: 0xbbb52558 symbol_id: 0x5b447f09 @@ -385507,16 +400611,21 @@ interface { symbol_id: 0xb36e22d3 symbol_id: 0x683db5bf symbol_id: 0x177fa0e0 + symbol_id: 0xd38a2f2a symbol_id: 0x11d4227b symbol_id: 0x71551ba9 symbol_id: 0x435b99c6 + symbol_id: 0x5db8ecdc symbol_id: 0x01768311 + symbol_id: 0xb9bfc7b9 symbol_id: 0x1744651d symbol_id: 0x9103dd70 symbol_id: 0xffdd03be symbol_id: 0x15848de9 symbol_id: 0xde695e5a symbol_id: 0x4e730977 + symbol_id: 0x8dafa617 + symbol_id: 0x5ae13553 symbol_id: 0x53ee2234 symbol_id: 0x227e051f symbol_id: 0x9a5fd229 @@ -385596,10 +400705,12 @@ interface { symbol_id: 0x85c7decb symbol_id: 0x87a9e1a0 symbol_id: 0x5b227eda + symbol_id: 0x2886690b symbol_id: 0x46082c90 symbol_id: 0x590d247f symbol_id: 0x91579542 symbol_id: 0x2a59e35c + symbol_id: 0x8fe1956e symbol_id: 0x3b03aaea symbol_id: 0xeeb1ddf9 symbol_id: 0x54bb98b3 @@ -385657,6 +400768,7 @@ interface { symbol_id: 0x6cde79b4 symbol_id: 0xd68bae0f symbol_id: 0x2b688ec7 + symbol_id: 0x700d1b28 symbol_id: 0x248856c2 symbol_id: 0x6ff192fd symbol_id: 0x3deea824 @@ -385687,6 +400799,7 @@ interface { symbol_id: 0xc91eefc6 symbol_id: 0x7511baca symbol_id: 0x29553efc + symbol_id: 0x90e2334a symbol_id: 0xfd198070 symbol_id: 0x4a781b7f symbol_id: 0xc92def38 @@ -385708,6 +400821,7 @@ interface { symbol_id: 0x2804801a symbol_id: 0x4893b166 symbol_id: 0xbf6a903f + symbol_id: 0xfd977d86 symbol_id: 0xddb9ed35 symbol_id: 0x21d8367b symbol_id: 0xce959ab5 @@ -385720,6 +400834,7 @@ interface { symbol_id: 0x0b03a904 symbol_id: 0x2bce772d symbol_id: 0x705777ef + symbol_id: 0x12ab7c99 symbol_id: 0x21b06e02 symbol_id: 0x70f8b485 symbol_id: 0x3a44a497 @@ -385743,6 +400858,7 @@ interface { symbol_id: 0x0d3c3e14 symbol_id: 0xe5340075 symbol_id: 0x6aab6dda + symbol_id: 0xb15014ad symbol_id: 0x089f5fe6 symbol_id: 0x0c73acc8 symbol_id: 0xace4bcdf @@ -385754,6 +400870,7 @@ interface { symbol_id: 0xd41c441b symbol_id: 0x8607d899 symbol_id: 0x1d945826 + symbol_id: 0xd8c7c137 symbol_id: 0xa3f52060 symbol_id: 0x001f1a24 symbol_id: 0x46d54e34 @@ -385782,6 +400899,7 @@ interface { symbol_id: 0x6af2dc93 symbol_id: 0x56f4af9c symbol_id: 0x93ee7a0f + symbol_id: 0xbd83c333 symbol_id: 0x7d858174 symbol_id: 0x0e66eaf7 symbol_id: 0x81bce56b @@ -385828,6 +400946,9 @@ interface { symbol_id: 0x74c27ecd symbol_id: 0x80913de9 symbol_id: 0xbffd1c46 + symbol_id: 0xde4d20e6 + symbol_id: 0x6a82e2a4 + symbol_id: 0xec5e9065 symbol_id: 0x264c5308 symbol_id: 0x205145e9 symbol_id: 0x0eff96d9 @@ -385843,6 +400964,8 @@ interface { symbol_id: 0xa4ad8391 symbol_id: 0x5c1197ba symbol_id: 0x22e1072c + symbol_id: 0x19b7aeab + symbol_id: 0xfccc22f4 symbol_id: 0x50b92bc4 symbol_id: 0x8c0dd14a symbol_id: 0x3480e8df @@ -385857,7 +400980,17 @@ interface { symbol_id: 0x8fb082a6 symbol_id: 0x570df167 symbol_id: 0x84f045c2 + symbol_id: 0x75781cce + symbol_id: 0xd3eab591 + symbol_id: 0x806f167c + symbol_id: 0xf13ba64e + symbol_id: 0xe4f77cb7 + symbol_id: 0x12f98f54 + symbol_id: 0x85d0ffae + symbol_id: 0xe160a711 symbol_id: 0x4513114c + symbol_id: 0x3af97828 + symbol_id: 0x6375c31d symbol_id: 0x56cb7a36 symbol_id: 0xe8c754b0 symbol_id: 0x12fb2fd6 @@ -385919,6 +401052,7 @@ interface { symbol_id: 0x9c54c873 symbol_id: 0x771aea1d symbol_id: 0x8d3c4841 + symbol_id: 0xf399cd48 symbol_id: 0x05840f35 symbol_id: 0xa6141872 symbol_id: 0x56b779c5 @@ -385928,8 +401062,10 @@ interface { symbol_id: 0x5ab300fb symbol_id: 0x33d40ef0 symbol_id: 0xeb6692c0 + symbol_id: 0x15f1b772 symbol_id: 0x38940a34 symbol_id: 0x322ca1cc + symbol_id: 0x9f8a16f0 symbol_id: 0xad3b5931 symbol_id: 0xdc85b8be symbol_id: 0xd1dc3f24 @@ -385938,7 +401074,10 @@ interface { symbol_id: 0x4e595f64 symbol_id: 0xd94e8fae symbol_id: 0xd2399e18 + symbol_id: 0x92732196 + symbol_id: 0xd29660d9 symbol_id: 0xa6c906b5 + symbol_id: 0x77dba918 symbol_id: 0x5cc4535c symbol_id: 0x7d2c4acc symbol_id: 0x1f593233 @@ -385953,6 +401092,7 @@ interface { symbol_id: 0xbd7218cd symbol_id: 0x8ef4fedc symbol_id: 0x4f956c89 + symbol_id: 0xe1092bbd symbol_id: 0x3003f174 symbol_id: 0xf85ae22f symbol_id: 0xcca4d1a0 @@ -385964,7 +401104,9 @@ interface { symbol_id: 0xbf0b0a4c symbol_id: 0x4a4e8bee symbol_id: 0x5b060b7d + symbol_id: 0xb3b8cbe2 symbol_id: 0xec171799 + symbol_id: 0xb7265b03 symbol_id: 0x24b9d7ed symbol_id: 0x25471057 symbol_id: 0xb77dc501 @@ -385975,6 +401117,8 @@ interface { symbol_id: 0xb2b0c8fa symbol_id: 0xfb710d3e symbol_id: 0x0af60b8b + symbol_id: 0xe5f1a4c5 + symbol_id: 0x1405c2fb symbol_id: 0xe0349007 symbol_id: 0xfae0b182 symbol_id: 0x9ef87854 @@ -386021,11 +401165,14 @@ interface { symbol_id: 0x1f625c64 symbol_id: 0x180ceb0c symbol_id: 0x19ed5e1a + symbol_id: 0x7e3fb039 symbol_id: 0xaae00157 symbol_id: 0x455375fa symbol_id: 0xc1ea8aaa + symbol_id: 0x500f328c symbol_id: 0xe19d98a9 symbol_id: 0xdebcf3e9 + symbol_id: 0x7d05df74 symbol_id: 0x5d6d169f symbol_id: 0x023858a0 symbol_id: 0x7b2c2128 @@ -386048,6 +401195,8 @@ interface { symbol_id: 0x7c74f0ec symbol_id: 0x8525915d symbol_id: 0x12402fa7 + symbol_id: 0x0b4df89e + symbol_id: 0x7996527c symbol_id: 0x7f3b48aa symbol_id: 0xf47010e0 symbol_id: 0x436ee92c @@ -386076,6 +401225,7 @@ interface { symbol_id: 0x4f6b19f1 symbol_id: 0xd4ea779d symbol_id: 0x67a38bc7 + symbol_id: 0x1295815b symbol_id: 0xd7cc5056 symbol_id: 0x40df740b symbol_id: 0x89a97545 @@ -386124,6 +401274,12 @@ interface { symbol_id: 0x745d77d7 symbol_id: 0xee44d535 symbol_id: 0xeedc57e1 + symbol_id: 0x706a5214 + symbol_id: 0x56fe28ac + symbol_id: 0xfb0d7eaf + symbol_id: 0x910f3594 + symbol_id: 0x6a015d4f + symbol_id: 0xcb37c2fd symbol_id: 0x57adf54a symbol_id: 0xcfc71fe1 symbol_id: 0xadfa8107 @@ -386137,6 +401293,8 @@ interface { symbol_id: 0x4c674d1e symbol_id: 0x1f9b728b symbol_id: 0x99a17453 + symbol_id: 0xd7393cd7 + symbol_id: 0xbf61e6bf symbol_id: 0x675bcd74 symbol_id: 0x35280a80 symbol_id: 0x03fd01bd @@ -386148,6 +401306,7 @@ interface { symbol_id: 0x83c5422c symbol_id: 0xff4bd5dc symbol_id: 0x1adae35c + symbol_id: 0xfc7ac85d symbol_id: 0x6aca9744 symbol_id: 0x6b08a95c symbol_id: 0x238c5442 @@ -386164,6 +401323,7 @@ interface { symbol_id: 0x8a143ba0 symbol_id: 0x47548cf4 symbol_id: 0xfa53e7be + symbol_id: 0x257f1e06 symbol_id: 0x5e6e4a8e symbol_id: 0x32ffb327 symbol_id: 0x3491ba62 @@ -386172,6 +401332,7 @@ interface { symbol_id: 0x5f29be60 symbol_id: 0xfd1fa5d2 symbol_id: 0x964dcd4d + symbol_id: 0xa4da49fe symbol_id: 0xb9a87429 symbol_id: 0xbfd5ebac symbol_id: 0x68c67cd0 @@ -386195,12 +401356,16 @@ interface { symbol_id: 0x2c61b358 symbol_id: 0x352feb2c symbol_id: 0xf21d6619 + symbol_id: 0x11b8b797 + symbol_id: 0x19ea44b2 symbol_id: 0xba998ee2 symbol_id: 0x74420600 symbol_id: 0x92edca7e symbol_id: 0xb2f7eb17 symbol_id: 0x8eb5b50d + symbol_id: 0xc26d0753 symbol_id: 0x1f5649eb + symbol_id: 0x31ef5894 symbol_id: 0x0af8ff72 symbol_id: 0xe3ec4d34 symbol_id: 0xf23ecd34 @@ -386288,6 +401453,8 @@ interface { symbol_id: 0xcd537f33 symbol_id: 0xef58928a symbol_id: 0x48726233 + symbol_id: 0xc92a02ef + symbol_id: 0x804bafc3 symbol_id: 0xabad0839 symbol_id: 0x6d4398fa symbol_id: 0xce618820 @@ -386332,6 +401499,7 @@ interface { symbol_id: 0xd2e3da2e symbol_id: 0x14184fbf symbol_id: 0x3b425caf + symbol_id: 0x25a85408 symbol_id: 0x32cae5ee symbol_id: 0x0651ce31 symbol_id: 0x194db723 @@ -386372,6 +401540,7 @@ interface { symbol_id: 0xeffe0f16 symbol_id: 0x7b771682 symbol_id: 0x39362be4 + symbol_id: 0xeab36c96 symbol_id: 0xba26b6a3 symbol_id: 0xfdaa1c0d symbol_id: 0xe86ce747 @@ -386434,11 +401603,13 @@ interface { symbol_id: 0xf4594c32 symbol_id: 0xa33694f6 symbol_id: 0x7e8e12de + symbol_id: 0x9ae5b413 symbol_id: 0xe69a5898 symbol_id: 0xbd07e567 symbol_id: 0xf304733e symbol_id: 0x153d2098 symbol_id: 0xc24d49e4 + symbol_id: 0x8ac195eb symbol_id: 0xd09568e0 symbol_id: 0xe4a0e986 symbol_id: 0x6dc2f0b4 @@ -386480,9 +401651,13 @@ interface { symbol_id: 0x0e1b0b82 symbol_id: 0xfb52ace2 symbol_id: 0x44e002a2 + symbol_id: 0xd5e0987f symbol_id: 0x1fe11014 + symbol_id: 0x75fe69c4 symbol_id: 0x2a267913 symbol_id: 0xf3c91dcd + symbol_id: 0xfb2634da + symbol_id: 0xe7caa0b7 symbol_id: 0x3da4fd63 symbol_id: 0xc49e9f39 symbol_id: 0x89663420 @@ -386500,6 +401675,7 @@ interface { symbol_id: 0x2f857527 symbol_id: 0x3e5f4f82 symbol_id: 0xbf1515af + symbol_id: 0x87812861 symbol_id: 0x18d0dd21 symbol_id: 0x92705587 symbol_id: 0xdbe66171 @@ -386536,6 +401712,7 @@ interface { symbol_id: 0xa64e4b1e symbol_id: 0xd143c302 symbol_id: 0xbf6d0a0f + symbol_id: 0x5a86c789 symbol_id: 0x2eda3aae symbol_id: 0x9891b743 symbol_id: 0x51f65372 @@ -386551,6 +401728,12 @@ interface { symbol_id: 0xd6adc7e6 symbol_id: 0xcc386657 symbol_id: 0xeb0e3e9b + symbol_id: 0x5f96413a + symbol_id: 0x34a062e9 + symbol_id: 0x97edc1c5 + symbol_id: 0xdb8e8104 + symbol_id: 0xe6a46ba8 + symbol_id: 0xefab10bf symbol_id: 0x857e5dc9 symbol_id: 0x85459353 symbol_id: 0x1ecfd7d9 @@ -386561,9 +401744,14 @@ interface { symbol_id: 0xbabc4102 symbol_id: 0x4c16a6b4 symbol_id: 0xc8ad19b6 + symbol_id: 0xd2070626 symbol_id: 0xdebe76ba symbol_id: 0xae3ea97c + symbol_id: 0xfccd15d1 + symbol_id: 0x591431f1 symbol_id: 0x6869c83d + symbol_id: 0x7cfd9233 + symbol_id: 0xbd25c7d0 symbol_id: 0x5bbd3545 symbol_id: 0xf4017fdd symbol_id: 0x2d1f2cdd @@ -386574,10 +401762,12 @@ interface { symbol_id: 0x96242237 symbol_id: 0x571b278c symbol_id: 0x3272fe14 + symbol_id: 0xed549fd4 symbol_id: 0x73954c59 symbol_id: 0x0f9699eb symbol_id: 0x66782435 symbol_id: 0x793a755b + symbol_id: 0x61ab1273 symbol_id: 0x68e98442 symbol_id: 0x1cf36c3c symbol_id: 0x9fc8421c @@ -386586,8 +401776,10 @@ interface { symbol_id: 0x6642e9e1 symbol_id: 0x4063e8a2 symbol_id: 0x78e97bdd + symbol_id: 0x5da495c5 symbol_id: 0xdc3e523b symbol_id: 0x3934d205 + symbol_id: 0xaed64d9d symbol_id: 0xa603e7df symbol_id: 0xfbbf21e2 symbol_id: 0xb08b0149 @@ -386595,6 +401787,7 @@ interface { symbol_id: 0x18c0f285 symbol_id: 0xd3e5c9bd symbol_id: 0x96be8568 + symbol_id: 0x3217f3a4 symbol_id: 0xf7dfdad1 symbol_id: 0x47d78ddb symbol_id: 0x961122f4 @@ -386623,9 +401816,14 @@ interface { symbol_id: 0x3df2f359 symbol_id: 0x33172d21 symbol_id: 0x54bbaa46 + symbol_id: 0x3f07269b + symbol_id: 0x3c7c6ce9 + symbol_id: 0x7a43283c + symbol_id: 0x44cd0751 symbol_id: 0x3d986fb5 symbol_id: 0x2f855953 symbol_id: 0x8814f5b8 + symbol_id: 0x8fa1e478 symbol_id: 0xe54aec5b symbol_id: 0xce4acc7b symbol_id: 0xe244df50 @@ -386645,6 +401843,7 @@ interface { symbol_id: 0xf57e37fe symbol_id: 0xb0b2d21a symbol_id: 0xd755dcd0 + symbol_id: 0xf35fc966 symbol_id: 0x05d29e21 symbol_id: 0x370666f8 symbol_id: 0xaf95f073 @@ -386655,9 +401854,11 @@ interface { symbol_id: 0x17314b18 symbol_id: 0xfa2cb6b6 symbol_id: 0xc4fae65d + symbol_id: 0x46252c06 symbol_id: 0x7d656c6a symbol_id: 0x19abe185 symbol_id: 0x07c1d025 + symbol_id: 0x42083e9a symbol_id: 0x697b29f0 symbol_id: 0x88860085 symbol_id: 0x27015d04 @@ -386674,6 +401875,7 @@ interface { symbol_id: 0x677985f3 symbol_id: 0x6c2259cd symbol_id: 0xacf009d6 + symbol_id: 0xcbabaff3 symbol_id: 0x0b4dd20d symbol_id: 0xae3ac3f6 symbol_id: 0xa7c71d5a @@ -386683,6 +401885,7 @@ interface { symbol_id: 0x000b201f symbol_id: 0x0b032f8d symbol_id: 0xeafeba4a + symbol_id: 0xfdbc073c symbol_id: 0x59f7bc61 symbol_id: 0xdeb902aa symbol_id: 0x43145b7f @@ -386692,17 +401895,25 @@ interface { symbol_id: 0x0b050f75 symbol_id: 0xf0c9c0bf symbol_id: 0x8a712bc6 + symbol_id: 0xe5875746 + symbol_id: 0x44728108 symbol_id: 0x2a899db0 + symbol_id: 0x41fc53b5 + symbol_id: 0xb7985539 symbol_id: 0x954d57e8 symbol_id: 0x604f0f0b symbol_id: 0x5b997ef3 symbol_id: 0x6a405f9b + symbol_id: 0x3ed74db1 + symbol_id: 0x8c3087ea symbol_id: 0x4e9dfcab symbol_id: 0x4a92dfd1 symbol_id: 0xb958a87a symbol_id: 0xdcd44915 symbol_id: 0xca491b5d + symbol_id: 0x99f6096a symbol_id: 0x1f87b736 + symbol_id: 0x74487c98 symbol_id: 0x727ea003 symbol_id: 0x2aefba25 symbol_id: 0xc2ec2319 @@ -386720,20 +401931,29 @@ interface { symbol_id: 0x6590f3a5 symbol_id: 0x8e95f895 symbol_id: 0x30438a62 + symbol_id: 0xfb5efe2e + symbol_id: 0x58687602 + symbol_id: 0xe7fb597f + symbol_id: 0xe6cbb47e symbol_id: 0x0d23e13a symbol_id: 0xd02d0c21 + symbol_id: 0xe9d634b5 symbol_id: 0x84b20708 + symbol_id: 0xb8c4fc82 symbol_id: 0x8fafe0a6 symbol_id: 0x6d4f7368 symbol_id: 0x29215b38 symbol_id: 0x1ee037b1 symbol_id: 0x13f409fa + symbol_id: 0x6dffcd52 symbol_id: 0xe9bfa224 symbol_id: 0x0df14bce symbol_id: 0xd6fc8732 + symbol_id: 0x4fe4e1e0 symbol_id: 0x22d09ebb symbol_id: 0xad69345e symbol_id: 0x381c401c + symbol_id: 0x7e6ad5ea symbol_id: 0xfb60a10e symbol_id: 0xc632b16e symbol_id: 0xe95b649e @@ -386741,6 +401961,7 @@ interface { symbol_id: 0xaab0b041 symbol_id: 0x5800606d symbol_id: 0xae69b1ad + symbol_id: 0xcbaf28c3 symbol_id: 0x098b2c4d symbol_id: 0x008276ec symbol_id: 0xe9c62c61 @@ -386800,9 +402021,12 @@ interface { symbol_id: 0xcd6f9634 symbol_id: 0xba7435fd symbol_id: 0xb59c5eaf + symbol_id: 0x71dad1b2 symbol_id: 0x051c0489 + symbol_id: 0x562c9a11 symbol_id: 0x56d1da85 symbol_id: 0xe74af45a + symbol_id: 0xaefd3622 symbol_id: 0x3ecd46f0 symbol_id: 0xde541a7b symbol_id: 0xe6e08555 @@ -386829,7 +402053,9 @@ interface { symbol_id: 0xc9fa7338 symbol_id: 0xb163f167 symbol_id: 0x439eff60 + symbol_id: 0xa13a99d8 symbol_id: 0x9f5197f0 + symbol_id: 0x5ad67dea symbol_id: 0x11fd8c82 symbol_id: 0xe41b8f90 symbol_id: 0x60ffe144 @@ -386880,6 +402106,7 @@ interface { symbol_id: 0x8f72141f symbol_id: 0x8dc26f05 symbol_id: 0xcb2698e3 + symbol_id: 0xea314c1f symbol_id: 0xdc59a2d7 symbol_id: 0xc8d57f30 symbol_id: 0xa1439ad9 @@ -386901,6 +402128,7 @@ interface { symbol_id: 0xb9dd1d1a symbol_id: 0x3d66dcb8 symbol_id: 0x1f68a496 + symbol_id: 0x23a5ab99 symbol_id: 0x2a589f64 symbol_id: 0x7da41bc7 symbol_id: 0x795a4305 @@ -386916,6 +402144,7 @@ interface { symbol_id: 0x27e59f46 symbol_id: 0x109adee2 symbol_id: 0x784d1cb4 + symbol_id: 0x201afca9 symbol_id: 0xd75ad246 symbol_id: 0xdefa9d60 symbol_id: 0x905187d4 @@ -386936,6 +402165,7 @@ interface { symbol_id: 0x792a6c04 symbol_id: 0xdc1a1266 symbol_id: 0x4a8ce807 + symbol_id: 0x899ff164 symbol_id: 0x4ec99a42 symbol_id: 0xf83f300d symbol_id: 0x57c3f1e7 @@ -386986,12 +402216,14 @@ interface { symbol_id: 0x700d3d6b symbol_id: 0xbdfbbc33 symbol_id: 0x1b3f668e + symbol_id: 0x00a14c5c symbol_id: 0x868c5f6e symbol_id: 0xb89dad0b symbol_id: 0x110008ad symbol_id: 0x5df193f7 symbol_id: 0x9b635032 symbol_id: 0x4048e514 + symbol_id: 0x83676405 symbol_id: 0x89c78ea4 symbol_id: 0x37cf2035 symbol_id: 0x2db08c33 @@ -387002,6 +402234,7 @@ interface { symbol_id: 0xe9d87e68 symbol_id: 0xf55bd7e0 symbol_id: 0xf3c1fd90 + symbol_id: 0xbf06fcb7 symbol_id: 0xcaff4b1e symbol_id: 0x92510f88 symbol_id: 0x1294ca70 @@ -387009,6 +402242,7 @@ interface { symbol_id: 0x214d76fa symbol_id: 0xa834737e symbol_id: 0x869e15d7 + symbol_id: 0xa60cf3b7 symbol_id: 0x944deaea symbol_id: 0x413dc89c symbol_id: 0xbc035d91 @@ -387020,6 +402254,7 @@ interface { symbol_id: 0xd5bd73b9 symbol_id: 0x951bfee9 symbol_id: 0x55fbd705 + symbol_id: 0x9de82d32 symbol_id: 0x09c05733 symbol_id: 0xf104e451 symbol_id: 0x282288bb @@ -387048,6 +402283,7 @@ interface { symbol_id: 0xbc49d007 symbol_id: 0xa20893c4 symbol_id: 0xf13a39cb + symbol_id: 0xedbb00b2 symbol_id: 0x34af8a35 symbol_id: 0x3cc50b4b symbol_id: 0x85997d50 @@ -387061,9 +402297,33 @@ interface { symbol_id: 0x0741c87d symbol_id: 0x3bf4fac5 symbol_id: 0xcac8f190 + symbol_id: 0x9ea1c58f symbol_id: 0x140d9164 + symbol_id: 0xbbf007f4 + symbol_id: 0xd28057f3 + symbol_id: 0x580c56b8 + symbol_id: 0x8f0c866d symbol_id: 0x52816b1c + symbol_id: 0x4f4e9353 + symbol_id: 0x3f51a906 + symbol_id: 0x6515c416 symbol_id: 0x19d80976 + symbol_id: 0x6c854cb3 + symbol_id: 0xcd021e80 + symbol_id: 0x147e4ad2 + symbol_id: 0x167360fc + symbol_id: 0x69b1070f + symbol_id: 0x3be16591 + symbol_id: 0x6e3c0f91 + symbol_id: 0x99cb2edf + symbol_id: 0x2325cd65 + symbol_id: 0x9cf79f8d + symbol_id: 0x2f365f93 + symbol_id: 0x6229bd38 + symbol_id: 0x90b81315 + symbol_id: 0xb011e423 + symbol_id: 0x27363bb6 + symbol_id: 0x10932377 symbol_id: 0xb5437ef4 symbol_id: 0x1473720a symbol_id: 0xa459c02b @@ -387098,6 +402358,7 @@ interface { symbol_id: 0xdc3fca57 symbol_id: 0x23051526 symbol_id: 0xad9b8781 + symbol_id: 0x5c266e47 symbol_id: 0xd40ec4d6 symbol_id: 0xcd00be9c symbol_id: 0xef302a24 @@ -387112,6 +402373,7 @@ interface { symbol_id: 0x592a4678 symbol_id: 0xff77e1ca symbol_id: 0xe66642fe + symbol_id: 0x538ad5cc symbol_id: 0x2244c8f0 symbol_id: 0x58330374 symbol_id: 0xdb18c924 @@ -387163,13 +402425,21 @@ interface { symbol_id: 0x906c5f61 symbol_id: 0xf40e82dd symbol_id: 0x9b29f9ed + symbol_id: 0xb2eba8d7 + symbol_id: 0xa84f74e5 + symbol_id: 0x64b2fdfd + symbol_id: 0x34ad1913 symbol_id: 0x5f3882d0 symbol_id: 0xe203e72f + symbol_id: 0x90eb49a1 symbol_id: 0xac8d7ab3 symbol_id: 0x2f159216 symbol_id: 0xb1da32d2 symbol_id: 0x354ec447 symbol_id: 0x28f5deaf + symbol_id: 0x5da8252d + symbol_id: 0x1e8152b6 + symbol_id: 0xd07f1826 symbol_id: 0x7733b651 symbol_id: 0x8e6a3c4a symbol_id: 0x3635e264 @@ -387226,6 +402496,7 @@ interface { symbol_id: 0xf33dadbd symbol_id: 0x743ba358 symbol_id: 0x9f33c2c6 + symbol_id: 0x14bde45c symbol_id: 0x429eeda3 symbol_id: 0x67d81c4b symbol_id: 0x5b1b7953 @@ -387238,6 +402509,8 @@ interface { symbol_id: 0x2f1da35c symbol_id: 0x47f90fd0 symbol_id: 0x969a2ec0 + symbol_id: 0x2e0c3fe5 + symbol_id: 0xae3c44c1 symbol_id: 0xb1b42a22 symbol_id: 0x689b6a95 symbol_id: 0xbd9fe5b6 @@ -387363,9 +402636,11 @@ interface { symbol_id: 0x60488ecf symbol_id: 0x9d727719 symbol_id: 0xa4027847 + symbol_id: 0x738279bf symbol_id: 0x7540b5a8 symbol_id: 0xb1036d49 symbol_id: 0x9a87f32b + symbol_id: 0x63928faf symbol_id: 0xecc7b6fc symbol_id: 0x5d14316b symbol_id: 0x0094f87c @@ -387393,6 +402668,7 @@ interface { symbol_id: 0x4e8c6206 symbol_id: 0x887e1dde symbol_id: 0x180eeaeb + symbol_id: 0xa643ac3f symbol_id: 0x61731bd0 symbol_id: 0x6f9f10f2 symbol_id: 0x99941051 @@ -387406,6 +402682,8 @@ interface { symbol_id: 0xb91fc02e symbol_id: 0xaa425530 symbol_id: 0x9b05d33a + symbol_id: 0xb5ba02d4 + symbol_id: 0x0fe35b07 symbol_id: 0xebb799b4 symbol_id: 0xcaf4c4fe symbol_id: 0x11080b78 @@ -387418,22 +402696,35 @@ interface { symbol_id: 0x248b3536 symbol_id: 0x950a62ac symbol_id: 0x8f8f2df9 + symbol_id: 0x6b55b9d2 symbol_id: 0xeb912db7 symbol_id: 0x64876ecd + symbol_id: 0x994cfb6c + symbol_id: 0x8c2045ca symbol_id: 0xdf73207c symbol_id: 0xd232cbb1 + symbol_id: 0x209bd6b9 + symbol_id: 0x68d92b40 + symbol_id: 0x520c06c0 symbol_id: 0xa6eac918 symbol_id: 0xc46f1f1f symbol_id: 0xf30af7b3 + symbol_id: 0xc9a9e8ab + symbol_id: 0xa2b73df4 symbol_id: 0x71f2808e + symbol_id: 0x246bf5fe + symbol_id: 0x96be3ac9 symbol_id: 0xfa57b81b + symbol_id: 0x9d21209c symbol_id: 0x4603c1d4 symbol_id: 0x54c09325 symbol_id: 0xf1838f43 symbol_id: 0x9324879f symbol_id: 0xcde37345 + symbol_id: 0xcf411a0e symbol_id: 0xb834cd77 symbol_id: 0x5827485d + symbol_id: 0xd777027b symbol_id: 0x23b2a72a symbol_id: 0xf407269f symbol_id: 0xe0308dad @@ -387451,6 +402742,7 @@ interface { symbol_id: 0xb73c4905 symbol_id: 0xbb650596 symbol_id: 0x0fc8c78d + symbol_id: 0xe8e0ea6a symbol_id: 0xa5d58813 symbol_id: 0xde6620d5 symbol_id: 0xdf18b1a9 diff --git a/android/abi_gki_aarch64_asus b/android/abi_gki_aarch64_asus new file mode 100644 index 000000000000..98ab875a5b2a --- /dev/null +++ b/android/abi_gki_aarch64_asus @@ -0,0 +1,11 @@ +[abi_symbol_list] +# aura sync + hid_unregister_driver + hid_hw_raw_request + hid_open_report + hid_hw_start + hid_hw_stop + __hid_register_driver + hid_hw_output_report + hid_hw_open + hid_hw_close diff --git a/android/abi_gki_aarch64_exynos b/android/abi_gki_aarch64_exynos index 19441f4ee7d8..d8c9ffac57b6 100644 --- a/android/abi_gki_aarch64_exynos +++ b/android/abi_gki_aarch64_exynos @@ -42,6 +42,7 @@ blocking_notifier_chain_register blocking_notifier_chain_unregister bpf_trace_run1 + bpf_trace_run10 bpf_trace_run2 bpf_trace_run3 bpf_trace_run4 @@ -220,6 +221,7 @@ dma_fence_release dma_fence_remove_callback dma_fence_signal + dma_fence_signal_locked dma_fence_wait_timeout dma_free_attrs dma_heap_buffer_alloc @@ -322,7 +324,9 @@ enable_irq eth_type_trans fd_install + fget _find_first_bit + _find_first_zero_bit _find_last_bit _find_next_and_bit _find_next_bit @@ -467,10 +471,12 @@ kmemdup kobject_add kobject_create_and_add + kobject_get kobject_init kobject_init_and_add kobject_put kobject_uevent_env + kobj_sysfs_ops krealloc kstrdup kstrndup @@ -605,6 +611,7 @@ of_reserved_mem_lookup of_root of_thermal_get_ntrips + on_each_cpu_cond_mask panic panic_notifier_list param_array_ops @@ -633,6 +640,7 @@ perf_trace_run_bpf_submit phy_power_off phy_power_on + phy_set_mode_ext pinconf_generic_dt_node_to_map pinctrl_dev_get_drvdata pinctrl_lookup_state @@ -646,6 +654,7 @@ platform_driver_unregister platform_get_irq platform_get_irq_byname + platform_get_irq_byname_optional platform_get_resource platform_get_resource_byname __platform_register_drivers @@ -655,6 +664,8 @@ __pm_runtime_disable pm_runtime_enable pm_runtime_forbid + pm_runtime_force_resume + pm_runtime_force_suspend __pm_runtime_idle pm_runtime_no_callbacks __pm_runtime_resume @@ -692,6 +703,7 @@ ___ratelimit raw_notifier_call_chain raw_notifier_chain_register + raw_notifier_chain_unregister _raw_read_lock _raw_read_unlock _raw_spin_lock @@ -934,9 +946,11 @@ up_write usb_add_function usb_copy_descriptors + usb_enable_autosuspend usb_ep_autoconfig usb_function_register usb_function_unregister + usb_hcd_is_primary_hcd usb_hub_find_child usb_interface_id usb_put_function_instance @@ -1014,7 +1028,6 @@ ww_mutex_unlock # required by cfg80211.ko - bpf_trace_run10 csum_partial debugfs_rename __dev_change_net_namespace @@ -1149,8 +1162,32 @@ __tracepoint_workqueue_execute_end __tracepoint_workqueue_execute_start +# required by dw_mmc-exynos.ko + mmc_wait_for_req + +# required by dw_mmc.ko + debugfs_create_x64 + device_property_read_string_array + dma_map_sg_attrs + 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 + sdio_signal_irq + # required by dwc3-exynos-usb.ko + device_create_managed_software_node platform_device_add + platform_device_add_resources platform_device_alloc platform_device_del platform_device_put @@ -1192,8 +1229,10 @@ match_string memory_read_from_buffer migrate_swap + perf_event_create_kernel_counter + perf_event_enable + perf_event_read_local pick_highest_pushable_task - raw_notifier_chain_unregister raw_spin_rq_lock_nested raw_spin_rq_unlock _raw_write_trylock @@ -1237,6 +1276,7 @@ __traceiter_android_vh_binder_restore_priority __traceiter_android_vh_binder_set_priority __traceiter_android_vh_binder_wakeup_ilocked + __traceiter_android_vh_jiffies_update __traceiter_android_vh_scheduler_tick __traceiter_android_vh_syscall_prctl_finished __traceiter_binder_transaction_received @@ -1267,6 +1307,7 @@ __tracepoint_android_vh_binder_restore_priority __tracepoint_android_vh_binder_set_priority __tracepoint_android_vh_binder_wakeup_ilocked + __tracepoint_android_vh_jiffies_update __tracepoint_android_vh_scheduler_tick __tracepoint_android_vh_syscall_prctl_finished __tracepoint_binder_transaction_received @@ -1377,7 +1418,6 @@ drm_crtc_enable_color_mgmt drm_crtc_handle_vblank drm_crtc_vblank_get - drm_dev_has_vblank drm_display_mode_to_videomode drm_edid_to_sad drm_format_info @@ -1452,6 +1492,7 @@ # required by exynos-hypervisor.ko __arm_smccc_hvc + kimage_vaddr __pkvm_load_el2_module __pkvm_register_el2_call @@ -1472,6 +1513,17 @@ # required by exynos-ssld.ko driver_register +# required by exynos-usb-audio-offloading.ko + snd_ctl_add + snd_ctl_new1 + snd_vendor_set_ops + __traceiter_android_rvh_audio_usb_offload_disconnect + __traceiter_android_vh_audio_usb_offload_connect + __tracepoint_android_rvh_audio_usb_offload_disconnect + __tracepoint_android_vh_audio_usb_offload_connect + usb_choose_configuration + usb_ifnum_to_if + # required by exynos9945_sound.ko clk_bulk_disable clk_bulk_enable @@ -1514,6 +1566,9 @@ __tracepoint_clock_set_rate update_devfreq +# required by exynos_esca.ko + debugfs_lookup + # required by exynos_mct_v3.ko clockevents_config_and_register __clocksource_register_scale @@ -1704,6 +1759,10 @@ __traceiter_android_rvh_gic_v3_set_affinity __tracepoint_android_rvh_gic_v3_set_affinity +# required by irq-gic-vh.ko + __traceiter_android_vh_gic_set_affinity + __tracepoint_android_vh_gic_set_affinity + # required by is-actuator-ak737x.ko v4l2_i2c_subdev_init @@ -1742,9 +1801,7 @@ # required by mpam_arch.ko bitmap_alloc - kobj_sysfs_ops kstrtou16 - on_each_cpu_cond_mask # required by nanohub.ko arch_timer_read_counter @@ -1767,8 +1824,6 @@ cpuidle_resume_and_unlock dev_pm_opp_find_freq_floor dma_fence_free - dma_fence_signal_locked - fget vsprintf # required by pablo-icpu.ko @@ -1829,7 +1884,6 @@ pci_generic_config_write pci_get_device pci_rescan_bus - platform_get_irq_byname_optional # required by pinctrl-samsung-core.ko fwnode_handle_put @@ -1981,7 +2035,6 @@ vprintk_emit # required by scsc_mx.ko - kobject_get kobject_uevent # required by scsc_platform_mif.ko @@ -2001,6 +2054,9 @@ # required by scsc_wlan.ko arp_tbl + __cpuhp_remove_state + __cpuhp_state_add_instance + __cpuhp_state_remove_instance dev_addr_mod dev_alloc_name __dev_queue_xmit @@ -2009,6 +2065,7 @@ dql_reset dst_release ether_setup + __find_nth_bit for_each_kernel_tracepoint in4_pton in6_pton @@ -2065,6 +2122,7 @@ backlight_device_unregister __bitmap_xor capable + copy_highpage devfreq_monitor_resume devfreq_monitor_start devfreq_monitor_stop @@ -2152,7 +2210,6 @@ drm_syncobj_get_handle drm_syncobj_replace_fence __fdget - _find_first_zero_bit __folio_put get_random_u32 __get_task_comm @@ -2165,12 +2222,15 @@ idr_get_next idr_replace jiffies64_to_msecs + mark_page_accessed memremap memunmap mmu_notifier_synchronize page_pinner_inited __page_pinner_put_page + param_get_charp param_ops_hexint + param_set_charp pci_assign_unassigned_bus_resources pci_bus_resource_n pcie_bandwidth_available @@ -2196,15 +2256,20 @@ rb_first_postorder __rb_insert_augmented rb_next_postorder + reclaim_shmem_address_space request_firmware_into_buf seq_putc seq_write + set_page_dirty sg_alloc_table_from_pages_segment + shmem_file_setup + shmem_read_mapping_page_gfp si_meminfo sysfs_remove_files + __traceiter_android_vh_meminfo_proc_show __traceiter_gpu_mem_total + __tracepoint_android_vh_meminfo_proc_show __tracepoint_gpu_mem_total - ttm_bo_eviction_valuable ttm_bo_init_reserved ttm_bo_kmap ttm_bo_kunmap @@ -2217,6 +2282,7 @@ ttm_bo_put ttm_bo_set_bulk_move ttm_bo_unlock_delayed_workqueue + ttm_bo_unmap_virtual ttm_bo_unpin ttm_bo_validate ttm_bo_vm_access @@ -2225,9 +2291,11 @@ ttm_bo_vm_fault_reserved ttm_bo_vm_open ttm_bo_vm_reserve + ttm_bo_wait ttm_device_fini ttm_device_init ttm_eu_backoff_reservation + ttm_eu_fence_buffer_objects ttm_eu_reserve_buffers ttm_glob ttm_lru_bulk_move_tail @@ -2244,6 +2312,7 @@ ttm_resource_manager_usage ttm_sg_tt_init ttm_tt_fini + ttm_tt_unpopulate vm_get_page_prot __wake_up_locked ww_mutex_lock_interruptible @@ -2392,7 +2461,7 @@ ufshcd_dme_get_attr ufshcd_dme_set_attr ufshcd_hold - ufshcd_mcq_poll_cqe_nolock + ufshcd_mcq_poll_cqe_lock ufshcd_mcq_write_cqis ufshcd_pltfrm_init ufshcd_release @@ -2416,6 +2485,25 @@ kthread_complete_and_exit usb_speed_string +# required by xhci-exynos-audio.ko + dma_pool_alloc + dma_pool_free + __kmalloc_node + kmalloc_node_trace + xhci_add_endpoint + xhci_address_device + xhci_check_trb_in_td_math + xhci_get_endpoint_index + xhci_get_ep_ctx + xhci_get_slot_ctx + xhci_initialize_ring_info + xhci_link_segments + xhci_remove_stream_mapping + xhci_ring_alloc + xhci_segment_free + xhci_trb_virt_to_dma + xhci_vendor_get_ops + # required by xhci-exynos.ko device_property_read_u32_array device_set_wakeup_enable @@ -2426,10 +2514,10 @@ usb_add_hcd __usb_create_hcd usb_disabled - usb_enable_autosuspend - usb_hcd_is_primary_hcd usb_put_hcd usb_remove_hcd + xhci_bus_resume + xhci_bus_suspend xhci_gen_setup xhci_init_driver xhci_resume @@ -2440,3 +2528,62 @@ cpufreq_quick_get_max kthread_bind_mask stpcpy + +# preserved by --additions-only + __alloc_percpu_gfp + arc4_crypt + arc4_setkey + __cpu_present_mask + crc32_be + crypto_aead_decrypt + crypto_aead_encrypt + crypto_aead_setauthsize + crypto_aead_setkey + crypto_alloc_aead + crypto_alloc_skcipher + __crypto_memneq + crypto_shash_finup + crypto_shash_setkey + crypto_skcipher_decrypt + crypto_skcipher_encrypt + crypto_skcipher_setkey + __crypto_xor + dev_fetch_sw_netstats + drm_dev_has_vblank + eth_mac_addr + ethtool_op_get_link + get_random_u16 + __hw_addr_init + __hw_addr_sync + __hw_addr_unsync + kernel_param_lock + kernel_param_unlock + kfree_skb_list_reason + ktime_get_seconds + memmove + netdev_info + netdev_set_default_ethtool_ops + netif_receive_skb_list + net_ratelimit + pskb_expand_head + ___pskb_trim + 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 + sg_init_one + skb_checksum_help + skb_clone_sk + skb_complete_wifi_ack + skb_ensure_writable + __skb_get_hash + __skb_gso_segment + tasklet_unlock_wait + ttm_bo_eviction_valuable + ufshcd_mcq_poll_cqe_nolock + unregister_netdevice_many diff --git a/android/abi_gki_aarch64_exynosauto b/android/abi_gki_aarch64_exynosauto new file mode 100644 index 000000000000..a26228697242 --- /dev/null +++ b/android/abi_gki_aarch64_exynosauto @@ -0,0 +1,556 @@ +[abi_symbol_list] +# commonly used symbols + alloc_workqueue + alt_cb_patch_nops + __arch_copy_from_user + __arch_copy_to_user + arm64_use_ng_mappings + blocking_notifier_call_chain + blocking_notifier_chain_register + cancel_delayed_work_sync + __check_object_size + __class_create + class_destroy + clk_disable + clk_enable + __clk_get_hw + clk_get_rate + clk_hw_get_parent + clk_prepare + clk_register + clk_register_clkdev + clk_register_fixed_factor + clk_register_fixed_rate + clk_set_rate + clk_unprepare + complete + __const_udelay + cpu_hwcaps + cpu_number + debugfs_create_dir + debugfs_create_file + debugfs_create_u32 + debugfs_remove + default_llseek + delayed_work_timer_fn + dev_driver_string + _dev_err + device_create + device_create_file + device_destroy + device_for_each_child + device_get_match_data + device_remove_file + device_set_wakeup_capable + device_wakeup_disable + device_wakeup_enable + _dev_info + devm_clk_get + devm_free_irq + devm_i2c_new_dummy_device + devm_ioremap + devm_ioremap_resource + devm_kfree + devm_kmalloc + devm_mfd_add_devices + devm_pinctrl_get + devm_regulator_register + devm_request_threaded_irq + _dev_warn + disable_irq + disable_irq_nosync + dma_alloc_attrs + dma_free_attrs + dma_map_page_attrs + dma_release_channel + dma_request_chan + dma_set_coherent_mask + dma_set_mask + dma_unmap_page_attrs + enable_irq + fortify_panic + free_irq + get_device + gic_nonsecure_priorities + gpiod_direction_input + gpiod_direction_output_raw + gpiod_get_raw_value + gpiod_set_raw_value + gpio_to_desc + handle_level_irq + i2c_add_numbered_adapter + i2c_del_driver + i2c_register_driver + i2c_unregister_device + __init_swait_queue_head + init_timer_key + ioremap_prot + iounmap + irq_get_irq_data + irq_modify_status + irq_of_parse_and_map + irq_set_chip_and_handler_name + irq_set_chip_data + irq_set_irq_wake + is_vmalloc_addr + jiffies + kfree + __kmalloc + kmalloc_caches + kmalloc_trace + kstrtoint + ktime_get + ktime_get_mono_fast_ns + __list_add_valid + __list_del_entry_valid + log_post_read_mmio + log_post_write_mmio + log_read_mmio + log_write_mmio + loops_per_jiffy + memcpy + memdup_user + memset + module_layout + __msecs_to_jiffies + msleep + __mutex_init + mutex_lock + mutex_unlock + of_address_to_resource + of_alias_get_id + of_clk_add_provider + of_clk_src_onecell_get + of_device_is_available + of_find_compatible_node + of_find_device_by_node + of_find_matching_node_and_match + of_find_node_by_name + of_find_property + of_get_child_by_name + of_get_named_gpio_flags + of_get_next_child + of_get_property + of_get_regulator_init_data + of_iomap + of_match_node + __of_parse_phandle_with_args + of_property_read_string + of_property_read_string_helper + of_property_read_variable_u32_array + of_root + panic + param_ops_int + param_ops_uint + pinctrl_lookup_state + pinctrl_select_state + __platform_driver_register + platform_driver_unregister + platform_get_irq + platform_get_irq_optional + platform_get_resource + platform_get_resource_byname + __pm_runtime_disable + pm_runtime_enable + __pm_runtime_idle + __pm_runtime_resume + pm_runtime_set_autosuspend_delay + __pm_runtime_suspend + __pm_runtime_use_autosuspend + _printk + put_device + __put_task_struct + queue_delayed_work_on + queue_work_on + _raw_spin_lock + _raw_spin_lock_irqsave + _raw_spin_unlock + _raw_spin_unlock_irqrestore + rdev_get_drvdata + rdev_get_id + register_pm_notifier + register_syscore_ops + regmap_read + regmap_update_bits_base + regmap_write + regulator_disable + regulator_enable + regulator_list_voltage_linear + regulator_map_voltage_linear + sched_clock + seq_lseek + seq_printf + seq_puts + seq_read + sg_init_table + simple_open + simple_read_from_buffer + simple_write_to_buffer + single_open + single_release + snprintf + sprintf + sscanf + __stack_chk_fail + strcasecmp + strcmp + strlcat + strlen + strncmp + strnlen + strscpy + strstr + syscon_regmap_lookup_by_phandle + sysfs_create_group + sysfs_emit + system_wq + __udelay + usleep_range_state + wait_for_completion_timeout + __warn_printk + +# required by cmupmucal.ko + debugfs_create_x32 + kernel_kobj + kobject_create_and_add + kstrtouint + of_find_node_by_type + +# required by dmatest.ko + __dma_request_channel + finish_wait + get_random_bytes + init_wait_entry + __init_waitqueue_head + kmem_cache_create + kmem_cache_destroy + kthread_create_on_node + kthread_should_stop + kthread_stop + mempool_alloc + mempool_alloc_slab + mempool_create + mempool_destroy + mempool_free + mempool_free_slab + param_get_bool + param_get_string + param_ops_bool + param_ops_string + param_set_bool + param_set_copystring + prepare_to_wait_event + refcount_warn_saturate + schedule + schedule_timeout + set_freezable + set_user_nice + strim + __wake_up + wake_up_process + +# required by dwc3-exynosauto-usb.ko + cancel_work_sync + device_create_managed_software_node + device_property_present + devm_phy_get + devm_regulator_get + of_match_device + of_platform_populate + phy_exit + phy_init + phy_power_off + phy_power_on + platform_device_add + platform_device_add_resources + platform_device_alloc + platform_device_del + platform_device_put + platform_device_unregister + platform_get_irq_byname_optional + __pm_relax + pm_runtime_allow + pm_runtime_forbid + __pm_runtime_set_status + __pm_stay_awake + sysfs_remove_group + typec_register_partner + typec_register_port + typec_set_data_role + typec_set_pwr_opmode + typec_set_pwr_role + typec_unregister_partner + typec_unregister_port + unregister_pm_notifier + usb_gadget_set_state + usb_otg_state_string + wakeup_source_register + wakeup_source_unregister + +# required by ect_parser.ko + memstart_addr + of_reserved_mem_lookup + strcpy + vmap + +# required by exynos-acme.ko + __bitmap_and + bitmap_parselist + __bitmap_weight + __cpu_active_mask + cpufreq_cpu_get + cpufreq_cpu_get_raw + 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_tasks_frozen + __cpu_online_mask + dev_pm_opp_add + _find_first_bit + freq_qos_add_request + freq_qos_update_request + get_cpu_device + nr_cpu_ids + scnprintf + sysfs_create_file_ns + system_state + +# required by exynos-bts.ko + devm_kstrdup + _dev_notice + +# required by exynos-chipid_v2.ko + kasprintf + of_find_node_opts_by_path + soc_device_register + subsys_system_register + +# required by exynos-pd.ko + atomic_notifier_call_chain + kstrdup + of_genpd_add_provider_simple + pm_genpd_add_subdomain + pm_genpd_init + +# required by exynos-pd_el3.ko + __arm_smccc_smc + +# required by exynos-pm-time.ko + jiffies_to_msecs + +# required by exynos-pm.ko + of_property_count_elems_of_size + +# required by exynos_acpm.ko + generic_file_llseek + simple_attr_open + simple_attr_read + simple_attr_release + simple_attr_write + wait_for_completion_interruptible_timeout + +# required by exynos_pm_qos.ko + blocking_notifier_chain_unregister + kstrtoint_from_user + misc_register + noop_llseek + _raw_read_lock_irqsave + _raw_read_unlock_irqrestore + _raw_write_lock_irqsave + _raw_write_unlock_irqrestore + __usecs_to_jiffies + +# required by exynos_tty.ko + atomic_notifier_chain_register + dma_get_slave_caps + dma_sync_single_for_cpu + dma_sync_single_for_device + do_SAK + handle_sysrq + iomem_resource + kmalloc_large + oops_in_progress + panic_notifier_list + _raw_spin_trylock + register_console + __release_region + __request_region + request_threaded_irq + sysrq_mask + tty_flip_buffer_push + tty_insert_flip_string_fixed_flag + tty_kref_put + tty_port_tty_get + uart_add_one_port + uart_console_write + uart_get_baud_rate + uart_parse_options + uart_register_driver + uart_remove_one_port + uart_resume_port + uart_set_options + uart_suspend_port + uart_try_toggle_sysrq + uart_unregister_driver + uart_update_timeout + uart_write_wakeup + +# required by exynosauto_v920_thermal.ko + devm_thermal_of_zone_register + devm_thermal_of_zone_unregister + of_device_is_compatible + of_thermal_get_ntrips + strncpy + thermal_zone_device_update + +# required by i2c-dev.ko + bus_register_notifier + bus_unregister_notifier + cdev_device_add + cdev_device_del + cdev_init + device_initialize + dev_set_name + i2c_adapter_type + i2c_bus_type + i2c_for_each_dev + i2c_get_adapter + i2c_put_adapter + i2c_smbus_xfer + i2c_transfer + i2c_transfer_buffer_flags + i2c_verify_client + register_chrdev_region + unregister_chrdev_region + +# required by i2c-exynosauto.ko + cpu_bit_bitmap + i2c_del_adapter + __irq_apply_affinity_hint + +# required by phy-exynosauto-usbdrd-super.ko + __clk_is_enabled + __devm_of_phy_provider_register + devm_phy_create + gpio_request + +# required by pinctrl-samsung-core.ko + device_get_next_child_node + devm_gpiochip_add_data_with_key + devm_kmemdup + devm_pinctrl_register + fwnode_handle_put + fwnode_property_present + generic_handle_domain_irq + gpiochip_generic_free + gpiochip_generic_request + gpiochip_get_data + gpiochip_lock_as_irq + gpiochip_unlock_as_irq + handle_edge_irq + irq_create_mapping_affinity + __irq_domain_add + irq_domain_remove + irq_domain_xlate_twocell + irq_set_chained_handler_and_data + kmemdup + krealloc + of_device_get_match_data + of_fwnode_ops + of_node_name_eq + of_prop_next_string + pinctrl_add_gpio_range + pinctrl_dev_get_drvdata + pinctrl_remove_gpio_range + +# required by pl330.ko + amba_driver_register + amba_driver_unregister + dev_err_probe + __devm_reset_control_get + dma_async_device_register + dma_async_device_unregister + dma_async_tx_descriptor_init + dmaengine_unmap_put + dma_get_slave_channel + dma_map_resource + dma_unmap_resource + of_dma_controller_free + of_dma_controller_register + pm_runtime_force_resume + pm_runtime_force_suspend + pm_runtime_irq_safe + reset_control_assert + reset_control_deassert + sg_next + tasklet_kill + __tasklet_schedule + tasklet_setup + +# required by pwm-samsung.ko + devm_platform_ioremap_resource + of_prop_next_u32 + pwmchip_add + pwmchip_remove + pwm_get_chip_data + pwm_set_chip_data + +# required by rtc-s2vps02.ko + devm_rtc_device_register + pm_wakeup_ws_event + rtc_update_irq + rtc_valid_tm + +# required by s2vps02-master-mfd.ko + destroy_workqueue + __devm_irq_alloc_descs + handle_nested_irq + +# required by spi-exynosauto.ko + gpio_free + gpio_request_one + __spi_alloc_controller + spi_controller_resume + spi_controller_suspend + spi_delay_exec + spi_finalize_current_message + spi_register_controller + spi_unregister_controller + +# required by spidev.ko + device_property_match_string + driver_unregister + _raw_spin_lock_irq + _raw_spin_unlock_irq + __register_chrdev + __spi_register_driver + spi_setup + spi_sync + stream_open + __unregister_chrdev + +# required by ufs-exynosauto-core.ko + _find_next_bit + flush_work + kstrtoull + of_property_read_variable_u16_array + of_property_read_variable_u8_array + scsi_dma_unmap + scsi_done + ufshcd_auto_hibern8_update + ufshcd_config_pwr_mode + ufshcd_dme_get_attr + ufshcd_dme_set_attr + ufshcd_dump_regs + ufshcd_link_recovery + ufshcd_pltfrm_init + ufshcd_release + ufshcd_remove + ufshcd_shutdown + ufshcd_system_resume + ufshcd_system_suspend diff --git a/android/abi_gki_aarch64_galaxy b/android/abi_gki_aarch64_galaxy index 76989b7b20b3..01f6927b0592 100644 --- a/android/abi_gki_aarch64_galaxy +++ b/android/abi_gki_aarch64_galaxy @@ -35,6 +35,7 @@ class_create_file_ns class_find_device class_remove_file_ns + cleancache_register_ops __const_udelay copy_from_kernel_nofault cpu_hwcaps @@ -62,6 +63,7 @@ _dev_info __devm_alloc_percpu devm_bitmap_zalloc + devm_clk_get_optional_enabled devm_gen_pool_create devm_gpiod_get_index devm_ioremap @@ -77,6 +79,7 @@ dma_alloc_attrs dma_free_attrs down_write + dummy_irq_chip elevator_alloc elv_bio_merge_ok elv_rb_add @@ -97,6 +100,8 @@ __free_pages free_pages free_pages_exact + fsnotify + __fsnotify_parent generic_file_read_iter generic_mii_ioctl generic_perform_write @@ -129,6 +134,7 @@ I_BDEV iio_channel_get iio_channel_release + iio_read_channel_raw init_task init_timer_key input_close_device @@ -140,10 +146,14 @@ ioremap_prot iounmap iov_iter_kvec + __irq_domain_alloc_fwnode + irq_domain_free_fwnode jiffies kasan_flag_enabled kasprintf kernel_cpustat + kernel_neon_begin + kernel_neon_end kernfs_find_and_get_ns kfree __kfree_skb @@ -159,6 +169,7 @@ kobject_put kstrdup kstrtoint + kstrtos16 kstrtouint kstrtoull kthread_create_on_node @@ -218,12 +229,16 @@ param_ops_ullong param_set_uint __per_cpu_offset + phy_connect_direct + phy_find_first + phy_get_pause phy_resolve_aneg_linkmode phy_start_aneg pinctrl_get pinctrl_put __platform_driver_register platform_driver_unregister + platform_get_ethdev_address preempt_schedule print_hex_dump _printk @@ -248,6 +263,7 @@ register_reboot_notifier register_restart_handler register_syscore_ops + regulator_get_current_limit remove_cpu rtc_class_open rtc_read_time @@ -268,6 +284,9 @@ single_open single_release skb_copy_ubufs + smpboot_register_percpu_thread + smpboot_unregister_percpu_thread + snd_soc_add_card_controls snd_soc_find_dai snd_soc_info_volsw_sx snd_soc_put_volsw_sx @@ -276,6 +295,7 @@ sprintf sscanf __stack_chk_fail + stack_trace_save_regs stpcpy strcmp strim @@ -297,6 +317,12 @@ system_long_wq system_unbound_wq sys_tz + tcp_register_congestion_control + tcp_reno_cong_avoid + tcp_reno_ssthresh + tcp_reno_undo_cwnd + tcp_slow_start + tcp_unregister_congestion_control time64_to_tm __traceiter_android_rvh_arm64_serror_panic __traceiter_android_rvh_die_kernel_fault @@ -311,8 +337,10 @@ __traceiter_android_vh_is_fpsimd_save __traceiter_android_vh_madvise_pageout_swap_entry __traceiter_android_vh_madvise_swapin_walk_pmd_entry + __traceiter_android_vh_meminfo_cache_adjust __traceiter_android_vh_mutex_wait_finish __traceiter_android_vh_mutex_wait_start + __traceiter_android_vh_process_madvise_end __traceiter_android_vh_ptype_head __traceiter_android_vh_rtmutex_wait_finish __traceiter_android_vh_rtmutex_wait_start @@ -320,18 +348,18 @@ __traceiter_android_vh_rwsem_read_wait_start __traceiter_android_vh_rwsem_write_wait_finish __traceiter_android_vh_rwsem_write_wait_start - __traceiter_android_vh_process_madvise_end __traceiter_android_vh_sched_show_task __traceiter_android_vh_show_smap + __traceiter_android_vh_si_mem_available_adjust + __traceiter_android_vh_si_meminfo_adjust __traceiter_android_vh_smaps_pte_entry __traceiter_android_vh_try_to_freeze_todo __traceiter_android_vh_try_to_freeze_todo_unfrozen __traceiter_android_vh_watchdog_timer_softlockup - __traceiter_android_vh_meminfo_cache_adjust - __traceiter_android_vh_si_mem_available_adjust - __traceiter_android_vh_si_meminfo_adjust + __traceiter_android_vh_wq_lockup_pool __traceiter_block_rq_insert __traceiter_console + __traceiter_error_report_end __traceiter_hrtimer_expire_entry __traceiter_hrtimer_expire_exit __traceiter_irq_handler_entry @@ -352,8 +380,10 @@ __tracepoint_android_vh_is_fpsimd_save __tracepoint_android_vh_madvise_pageout_swap_entry __tracepoint_android_vh_madvise_swapin_walk_pmd_entry + __tracepoint_android_vh_meminfo_cache_adjust __tracepoint_android_vh_mutex_wait_finish __tracepoint_android_vh_mutex_wait_start + __tracepoint_android_vh_process_madvise_end __tracepoint_android_vh_ptype_head __tracepoint_android_vh_rtmutex_wait_finish __tracepoint_android_vh_rtmutex_wait_start @@ -361,17 +391,17 @@ __tracepoint_android_vh_rwsem_read_wait_start __tracepoint_android_vh_rwsem_write_wait_finish __tracepoint_android_vh_rwsem_write_wait_start - __tracepoint_android_vh_process_madvise_end __tracepoint_android_vh_sched_show_task __tracepoint_android_vh_show_smap + __tracepoint_android_vh_si_mem_available_adjust + __tracepoint_android_vh_si_meminfo_adjust __tracepoint_android_vh_smaps_pte_entry __tracepoint_android_vh_try_to_freeze_todo __tracepoint_android_vh_try_to_freeze_todo_unfrozen __tracepoint_android_vh_watchdog_timer_softlockup - __tracepoint_android_vh_meminfo_cache_adjust - __tracepoint_android_vh_si_mem_available_adjust - __tracepoint_android_vh_si_meminfo_adjust + __tracepoint_android_vh_wq_lockup_pool __tracepoint_block_rq_insert + __tracepoint_error_report_end __tracepoint_console __tracepoint_hrtimer_expire_entry __tracepoint_hrtimer_expire_exit @@ -390,6 +420,7 @@ up_write usb_alloc_dev usb_gstrings_attach + usb_set_configuration usbnet_get_endpoints usbnet_link_change usb_set_device_state diff --git a/android/abi_gki_aarch64_imx b/android/abi_gki_aarch64_imx index ac16191a3545..478cb5cab475 100644 --- a/android/abi_gki_aarch64_imx +++ b/android/abi_gki_aarch64_imx @@ -822,6 +822,7 @@ flush_delayed_work flush_work __flush_workqueue + __folio_put fortify_panic fput free_candev @@ -969,7 +970,9 @@ i2c_smbus_read_i2c_block_data i2c_smbus_write_byte i2c_smbus_write_byte_data + __i2c_smbus_xfer i2c_smbus_xfer + __i2c_transfer i2c_transfer i2c_transfer_buffer_flags i2c_unregister_device @@ -1143,6 +1146,7 @@ kstrtoull kthread_bind kthread_create_on_node + kthread_freezable_should_stop kthread_park kthread_parkme kthread_should_park @@ -1324,6 +1328,9 @@ nsecs_to_jiffies ns_to_timespec64 __num_online_cpus + nvmem_cell_get + nvmem_cell_put + nvmem_cell_read nvmem_cell_read_u32 nvmem_cell_read_u64 nvmem_device_read @@ -1377,6 +1384,7 @@ of_gen_pool_get of_get_child_by_name of_get_compatible_child + of_get_cpu_node of_get_display_timing of_get_i2c_adapter_by_node of_get_mac_address @@ -1442,6 +1450,8 @@ of_usb_update_otg_caps oops_in_progress open_candev + page_pinner_inited + __page_pinner_put_page page_pool_alloc_pages page_pool_create page_pool_destroy @@ -1586,6 +1596,7 @@ platform_irqchip_probe platform_irq_count platform_msi_create_irq_domain + pm_genpd_add_subdomain pm_genpd_init pm_genpd_remove pm_genpd_remove_device @@ -1597,6 +1608,7 @@ pm_runtime_forbid pm_runtime_force_resume pm_runtime_force_suspend + pm_runtime_get_if_active __pm_runtime_idle pm_runtime_no_callbacks __pm_runtime_resume @@ -1796,10 +1808,14 @@ rtc_time64_to_tm rtc_tm_to_time64 rtc_update_irq + rt_mutex_lock + rt_mutex_trylock + rt_mutex_unlock rtnl_is_locked rtnl_lock rtnl_unlock sched_clock + sched_setattr_nocheck sched_set_fifo_low schedule schedule_hrtimeout @@ -2248,6 +2264,7 @@ __v4l2_device_register_subdev_nodes v4l2_device_unregister v4l2_device_unregister_subdev + v4l2_enum_dv_timings_cap v4l2_event_dequeue v4l2_event_pending v4l2_event_queue @@ -2298,6 +2315,7 @@ v4l2_m2m_unregister_media_controller v4l2_m2m_update_start_streaming_state v4l2_m2m_update_stop_streaming_state + v4l2_match_dv_timings v4l2_s_parm_cap v4l2_src_change_event_subscribe v4l2_subdev_call_wrappers @@ -2414,6 +2432,7 @@ xdp_do_redirect xdp_master_redirect xdp_return_frame + xdp_return_frame_rx_napi xdp_rxq_info_is_reg __xdp_rxq_info_reg xdp_rxq_info_reg_mem_model diff --git a/android/abi_gki_aarch64_meizu b/android/abi_gki_aarch64_meizu new file mode 100644 index 000000000000..32c666766bd9 --- /dev/null +++ b/android/abi_gki_aarch64_meizu @@ -0,0 +1,14 @@ +[abi_symbol_list] + __traceiter_android_vh_tune_scan_type + __traceiter_android_vh_tune_swappiness + __tracepoint_android_vh_tune_swappiness + __tracepoint_android_vh_tune_scan_type + __traceiter_android_rvh_sk_alloc + __traceiter_android_rvh_sk_free + __tracepoint_android_rvh_sk_alloc + __tracepoint_android_rvh_sk_free + __traceiter_android_vh_alloc_pages_slowpath + __tracepoint_android_vh_tune_swappiness + __tracepoint_android_vh_tune_scan_type + __tracepoint_android_vh_alloc_pages_slowpath + diff --git a/android/abi_gki_aarch64_mtk b/android/abi_gki_aarch64_mtk index f3af0c1114ba..2dcdd2f1f94c 100644 --- a/android/abi_gki_aarch64_mtk +++ b/android/abi_gki_aarch64_mtk @@ -98,10 +98,10 @@ blocking_notifier_call_chain blocking_notifier_chain_register blocking_notifier_chain_unregister + bpf_trace_run1 bpf_trace_run10 bpf_trace_run11 bpf_trace_run12 - bpf_trace_run1 bpf_trace_run2 bpf_trace_run3 bpf_trace_run4 @@ -395,6 +395,7 @@ device_del device_destroy device_find_child + device_find_child_by_name device_for_each_child device_get_child_node_count device_get_match_data @@ -415,6 +416,7 @@ device_release_driver device_remove_bin_file device_remove_file + device_remove_file_self device_rename __device_reset device_set_of_node_from_dev @@ -428,6 +430,22 @@ _dev_info __dev_kfree_skb_any __dev_kfree_skb_irq + devlink_alloc_ns + devlink_flash_update_status_notify + devlink_fmsg_binary_pair_nest_end + devlink_fmsg_binary_pair_nest_start + devlink_fmsg_binary_put + devlink_free + devlink_health_report + devlink_health_reporter_create + devlink_health_reporter_destroy + devlink_health_reporter_priv + devlink_health_reporter_state_update + devlink_priv + devlink_region_create + devlink_region_destroy + devlink_register + devlink_unregister dev_load devm_add_action __devm_alloc_percpu @@ -690,8 +708,11 @@ drm_atomic_helper_commit_modeset_disables drm_atomic_helper_commit_modeset_enables drm_atomic_helper_commit_planes + __drm_atomic_helper_connector_destroy_state drm_atomic_helper_connector_destroy_state + __drm_atomic_helper_connector_duplicate_state drm_atomic_helper_connector_duplicate_state + __drm_atomic_helper_connector_reset drm_atomic_helper_connector_reset __drm_atomic_helper_crtc_destroy_state __drm_atomic_helper_crtc_duplicate_state @@ -1089,6 +1110,7 @@ ida_destroy ida_free idr_alloc + idr_alloc_cyclic idr_alloc_u32 idr_destroy idr_find @@ -1180,6 +1202,7 @@ iommu_report_device_fault iommu_unmap ioremap_prot + io_schedule_timeout iounmap iov_iter_init iov_iter_kvec @@ -1195,6 +1218,7 @@ ip_send_check __ipv6_addr_type ipv6_dev_find + ipv6_ext_hdr ipv6_skip_exthdr ipv6_stub __irq_apply_affinity_hint @@ -1235,9 +1259,9 @@ is_vmalloc_addr iterate_dir iterate_fd + jiffies jiffies_64_to_clock_t jiffies64_to_nsecs - jiffies jiffies_to_msecs jiffies_to_usecs kasan_flag_enabled @@ -1332,10 +1356,14 @@ kthread_flush_work kthread_flush_worker __kthread_init_worker + kthread_park + kthread_parkme kthread_queue_delayed_work kthread_queue_work + kthread_should_park kthread_should_stop kthread_stop + kthread_unpark kthread_worker_fn ktime_get ktime_get_coarse_with_offset @@ -1430,8 +1458,8 @@ memremap memscan mem_section - memset64 memset + memset64 __memset_io memstart_addr memunmap @@ -1563,8 +1591,8 @@ nla_find nla_memcpy __nla_parse - nla_put_64bit nla_put + nla_put_64bit nla_put_nohdr nla_reserve nla_strscpy @@ -1687,6 +1715,9 @@ out_of_line_wait_on_bit_timeout overflowuid page_endio + page_frag_free + page_pinner_inited + __page_pinner_put_page page_pool_alloc_pages page_pool_create page_pool_destroy @@ -1708,6 +1739,7 @@ param_ops_uint param_ops_ullong param_ops_ulong + param_ops_ushort param_set_bool param_set_charp param_set_uint @@ -1715,18 +1747,25 @@ pci_alloc_irq_vectors_affinity pci_ats_supported pci_bus_type + pci_clear_master pci_device_group + pci_device_is_present pci_dev_put pci_disable_ats pci_disable_device + pcie_capability_clear_and_set_word + pcie_capability_read_word pci_enable_ats pci_find_ext_capability + pci_free_irq pci_free_irq_vectors pci_generic_config_read32 pci_generic_config_write32 pci_get_slot pci_host_probe pci_irq_vector + pci_load_and_free_saved_state + pci_load_saved_state pci_lock_rescan_remove pcim_enable_device pcim_iomap_regions @@ -1740,10 +1779,12 @@ pci_read_config_word __pci_register_driver pci_remove_root_bus + pci_request_irq pci_restore_state pci_save_state pci_set_master pci_stop_root_bus + pci_store_saved_state pci_unlock_rescan_remove pci_unregister_driver pci_write_config_dword @@ -1856,11 +1897,13 @@ pm_runtime_force_suspend pm_runtime_get_if_active __pm_runtime_idle + pm_runtime_irq_safe __pm_runtime_resume pm_runtime_set_autosuspend_delay __pm_runtime_set_status __pm_runtime_suspend __pm_runtime_use_autosuspend + pm_schedule_suspend __pm_stay_awake pm_stay_awake pm_suspend_default_s2idle @@ -1925,9 +1968,11 @@ queue_delayed_work_on queue_work_on radix_tree_delete + radix_tree_gang_lookup radix_tree_insert radix_tree_lookup radix_tree_maybe_preload + radix_tree_next_chunk radix_tree_tagged ___ratelimit raw_notifier_call_chain @@ -2061,6 +2106,7 @@ remove_proc_subtree remove_wait_queue request_firmware + request_firmware_direct request_firmware_nowait __request_module __request_percpu_irq @@ -2114,6 +2160,8 @@ rtc_tm_to_time64 rtc_update_irq rtc_valid_tm + rtnl_configure_link + rtnl_create_link rtnl_is_locked rtnl_link_register rtnl_link_unregister @@ -2123,6 +2171,7 @@ rtnl_unregister rtnl_unregister_all runqueues + sbitmap_weight sched_clock sched_clock_register sched_feat_keys @@ -2145,11 +2194,13 @@ scnprintf scsi_autopm_get_device scsi_autopm_put_device + scsi_block_requests scsi_device_get scsi_device_put scsi_execute_cmd __scsi_iterate_devices scsi_print_sense_hdr + scsi_unblock_requests sdio_claim_host sdio_claim_irq sdio_disable_func @@ -2283,6 +2334,7 @@ skb_try_coalesce skb_tstamp_tx skb_unlink + sk_capable sk_common_release sk_error_report sk_filter_trim_cap @@ -2501,6 +2553,7 @@ tasklist_lock __task_pid_nr_ns __task_rq_lock + task_rq_lock thermal_cooling_device_unregister thermal_of_cooling_device_register thermal_pressure @@ -2512,6 +2565,7 @@ timecounter_init timecounter_read timer_of_init + timer_reduce timer_unstable_counter_workaround topology_clear_scale_freq_source topology_update_thermal_pressure @@ -2576,6 +2630,7 @@ __traceiter_android_rvh_tick_entry __traceiter_android_rvh_try_to_wake_up __traceiter_android_rvh_try_to_wake_up_success + __traceiter_android_rvh_uclamp_eff_get __traceiter_android_rvh_update_cpu_capacity __traceiter_android_rvh_wake_up_new_task __traceiter_android_vh_alter_futex_plist_add @@ -2590,12 +2645,17 @@ __traceiter_android_vh_check_bpf_syscall __traceiter_android_vh_check_file_open __traceiter_android_vh_check_mmap_file + __traceiter_android_vh_compaction_exit + __traceiter_android_vh_compaction_try_to_compact_pages_exit __traceiter_android_vh_cpufreq_fast_switch __traceiter_android_vh_cpu_idle_enter __traceiter_android_vh_cpu_idle_exit __traceiter_android_vh_iommu_iovad_alloc_iova __traceiter_android_vh_iommu_iovad_free_iova __traceiter_android_vh_is_fpsimd_save + __traceiter_android_vh_mm_alloc_pages_direct_reclaim_enter + __traceiter_android_vh_mm_alloc_pages_direct_reclaim_exit + __traceiter_android_vh_mm_alloc_pages_may_oom_exit __traceiter_android_vh_rwsem_init __traceiter_android_vh_rwsem_wake __traceiter_android_vh_rwsem_write_finished @@ -2606,6 +2666,7 @@ __traceiter_android_vh_show_suspend_epoch_val __traceiter_android_vh_syscall_prctl_finished __traceiter_android_vh_ufs_clock_scaling + __traceiter_android_vh_vmscan_kswapd_done __traceiter_cpu_frequency __traceiter_gpu_mem_total __traceiter_ipi_entry @@ -2670,6 +2731,7 @@ __tracepoint_android_rvh_tick_entry __tracepoint_android_rvh_try_to_wake_up __tracepoint_android_rvh_try_to_wake_up_success + __tracepoint_android_rvh_uclamp_eff_get __tracepoint_android_rvh_update_cpu_capacity __tracepoint_android_rvh_wake_up_new_task __tracepoint_android_vh_alter_futex_plist_add @@ -2684,12 +2746,17 @@ __tracepoint_android_vh_check_bpf_syscall __tracepoint_android_vh_check_file_open __tracepoint_android_vh_check_mmap_file + __tracepoint_android_vh_compaction_exit + __tracepoint_android_vh_compaction_try_to_compact_pages_exit __tracepoint_android_vh_cpufreq_fast_switch __tracepoint_android_vh_cpu_idle_enter __tracepoint_android_vh_cpu_idle_exit __tracepoint_android_vh_iommu_iovad_alloc_iova __tracepoint_android_vh_iommu_iovad_free_iova __tracepoint_android_vh_is_fpsimd_save + __tracepoint_android_vh_mm_alloc_pages_direct_reclaim_enter + __tracepoint_android_vh_mm_alloc_pages_direct_reclaim_exit + __tracepoint_android_vh_mm_alloc_pages_may_oom_exit __tracepoint_android_vh_rwsem_init __tracepoint_android_vh_rwsem_wake __tracepoint_android_vh_rwsem_write_finished @@ -2700,6 +2767,7 @@ __tracepoint_android_vh_show_suspend_epoch_val __tracepoint_android_vh_syscall_prctl_finished __tracepoint_android_vh_ufs_clock_scaling + __tracepoint_android_vh_vmscan_kswapd_done __tracepoint_cpu_frequency __tracepoint_gpu_mem_total __tracepoint_ipi_entry @@ -2717,6 +2785,7 @@ __tracepoint_task_newtask trace_print_array_seq trace_print_flags_seq + trace_print_hex_seq trace_print_symbols_seq __trace_puts trace_raw_output_prep @@ -2801,6 +2870,7 @@ udp_tunnel6_xmit_skb udp_tunnel_sock_release udp_tunnel_xmit_skb + ufshcd_config_pwr_mode ufshcd_delay_us ufshcd_dme_configure_adapt ufshcd_dme_get_attr @@ -2810,14 +2880,19 @@ ufshcd_get_pwr_dev_param ufshcd_hba_enable ufshcd_hba_stop + ufshcd_hold ufshcd_init_pwr_dev_param ufshcd_link_recovery ufshcd_make_hba_operational + ufshcd_mcq_config_mac + ufshcd_mcq_make_queues_operational + ufshcd_mcq_read_cqis ufshcd_pltfrm_init ufshcd_query_attr ufshcd_query_descriptor_retry ufshcd_query_flag ufshcd_read_desc_param + ufshcd_release ufshcd_remove ufshcd_resume_complete ufshcd_runtime_resume diff --git a/android/abi_gki_aarch64_oplus b/android/abi_gki_aarch64_oplus index a5812def9b5b..8976672a1927 100644 --- a/android/abi_gki_aarch64_oplus +++ b/android/abi_gki_aarch64_oplus @@ -8,6 +8,7 @@ blk_rq_map_user blk_rq_map_user_iov blk_start_plug + cgroup_add_dfl_cftypes cgroup_add_legacy_cftypes console_printk cpufreq_frequency_table_get_index @@ -19,6 +20,9 @@ down_read_trylock drm_crtc_vblank_waitqueue filp_close + folio_add_lru + folio_mapping + folio_referenced for_each_kernel_tracepoint freq_qos_add_notifier freq_qos_remove_notifier @@ -31,22 +35,31 @@ iio_channel_get iio_channel_release iio_get_channel_type + ip_local_deliver ip6_local_out ip6_route_me_harder ip_route_me_harder ipv6_find_hdr + iov_iter_advance is_ashmem_file jiffies_64_to_clock_t + kick_process ktime_get_coarse_real_ts64 + mem_cgroup_update_lru_size memory_cgrp_subsys memory_cgrp_subsys_enabled_key mem_cgroup_from_id mipi_dsi_generic_write mmc_wait_for_cmd + __mod_lruvec_state + __mod_zone_page_state nf_ct_attach nf_ct_delete + nf_register_net_hook nf_register_net_hooks + nf_unregister_net_hook nf_unregister_net_hooks + nr_running of_css __page_file_index __page_mapcount @@ -55,6 +68,7 @@ prepare_to_wait_exclusive proc_symlink public_key_verify_signature + put_pages_list radix_tree_lookup_slot radix_tree_replace_slot _raw_write_trylock @@ -62,8 +76,10 @@ register_tcf_proto_ops regulator_map_voltage_linear_range remove_proc_subtree + root_mem_cgroup rtc_read_alarm rtc_set_alarm + __rtnl_link_unregister sdio_memcpy_fromio sdio_memcpy_toio sdio_set_block_size @@ -85,9 +101,13 @@ tcf_exts_validate tcf_queue_work __traceiter_android_rvh_post_init_entity_util_avg + __traceiter_android_rvh_rtmutex_force_update __traceiter_android_vh_account_process_tick_gran __traceiter_android_vh_account_task_time __traceiter_android_vh_do_futex + __traceiter_android_vh_exit_check + __traceiter_android_vh_exit_signal_whether_wake + __traceiter_android_vh_freeze_whether_wake __traceiter_android_vh_futex_sleep_start __traceiter_android_vh_futex_wait_end __traceiter_android_vh_futex_wait_start @@ -96,13 +116,9 @@ __traceiter_android_vh_futex_wake_up_q_finish __traceiter_android_vh_record_mutex_lock_starttime __traceiter_android_vh_record_pcpu_rwsem_starttime + __traceiter_android_vh_percpu_rwsem_wq_add __traceiter_android_vh_record_rtmutex_lock_starttime __traceiter_android_vh_record_rwsem_lock_starttime - __tracepoint_android_vh_record_mutex_lock_starttime - __tracepoint_android_vh_record_pcpu_rwsem_starttime - __tracepoint_android_vh_record_rtmutex_lock_starttime - __tracepoint_android_vh_record_rwsem_lock_starttime - __trace_puts __traceiter_android_vh_alter_mutex_list_add __traceiter_android_vh_binder_free_proc __traceiter_android_vh_binder_has_work_ilocked @@ -120,8 +136,12 @@ __traceiter_android_vh_binder_thread_release __traceiter_android_vh_binder_wait_for_work __traceiter_android_vh_cgroup_set_task + __traceiter_android_vh_check_folio_look_around_ref __traceiter_android_vh_dup_task_struct __traceiter_android_vh_exit_signal + __traceiter_android_vh_killed_process + __traceiter_android_vh_look_around + __traceiter_android_vh_look_around_migrate_folio __traceiter_android_vh_mem_cgroup_id_remove __traceiter_android_vh_mem_cgroup_css_offline __traceiter_android_vh_mem_cgroup_css_online @@ -135,6 +155,7 @@ __traceiter_android_vh_cleanup_old_buffers_bypass __traceiter_android_vh_dm_bufio_shrink_scan_bypass __traceiter_android_vh_mutex_unlock_slowpath + __traceiter_android_vh_rtmutex_waiter_prio __traceiter_android_vh_rwsem_can_spin_on_owner __traceiter_android_vh_rwsem_opt_spin_finish __traceiter_android_vh_rwsem_opt_spin_start @@ -142,12 +163,17 @@ __traceiter_android_vh_sched_stat_runtime_rt __traceiter_android_vh_shrink_node_memcgs __traceiter_android_vh_sync_txn_recvd + __traceiter_android_vh_task_blocks_on_rtmutex __traceiter_block_bio_queue __traceiter_block_getrq __traceiter_block_rq_complete __traceiter_block_rq_issue __traceiter_block_rq_merge __traceiter_block_rq_requeue + __traceiter_net_dev_queue + __traceiter_net_dev_xmit + __traceiter_netif_receive_skb + __traceiter_netif_rx __traceiter_sched_stat_blocked __traceiter_sched_stat_iowait __traceiter_sched_stat_runtime @@ -155,7 +181,15 @@ __traceiter_sched_stat_wait __traceiter_sched_waking __traceiter_task_rename + __traceiter_android_vh_test_clear_look_around_ref + __traceiter_android_vh_tune_swappiness + __traceiter_android_vh_alloc_oem_binder_struct + __traceiter_android_vh_binder_transaction_received + __traceiter_android_vh_free_oem_binder_struct + __traceiter_android_vh_binder_special_task + __traceiter_android_vh_binder_free_buf __tracepoint_android_rvh_post_init_entity_util_avg + __tracepoint_android_rvh_rtmutex_force_update __tracepoint_android_vh_account_process_tick_gran __tracepoint_android_vh_account_task_time __tracepoint_android_vh_alter_mutex_list_add @@ -175,14 +209,19 @@ __tracepoint_android_vh_binder_thread_release __tracepoint_android_vh_binder_wait_for_work __tracepoint_android_vh_cgroup_set_task + __tracepoint_android_vh_check_folio_look_around_ref __tracepoint_android_vh_do_futex __tracepoint_android_vh_dup_task_struct + __tracepoint_android_vh_exit_check __tracepoint_android_vh_exit_signal + __tracepoint_android_vh_killed_process + __tracepoint_android_vh_exit_signal_whether_wake __tracepoint_android_vh_mem_cgroup_id_remove __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_alloc + __tracepoint_android_vh_freeze_whether_wake __tracepoint_android_vh_futex_sleep_start __tracepoint_android_vh_futex_wait_end __tracepoint_android_vh_futex_wait_start @@ -190,6 +229,8 @@ __tracepoint_android_vh_futex_wake_traverse_plist __tracepoint_android_vh_futex_wake_up_q_finish __tracepoint_android_vh_irqtime_account_process_tick + __tracepoint_android_vh_look_around + __tracepoint_android_vh_look_around_migrate_folio __tracepoint_android_vh_mutex_can_spin_on_owner __tracepoint_android_vh_mutex_opt_spin_finish __tracepoint_android_vh_mutex_opt_spin_start @@ -197,6 +238,12 @@ __tracepoint_android_vh_cleanup_old_buffers_bypass __tracepoint_android_vh_dm_bufio_shrink_scan_bypass __tracepoint_android_vh_mutex_unlock_slowpath + __tracepoint_android_vh_record_mutex_lock_starttime + __tracepoint_android_vh_record_pcpu_rwsem_starttime + __tracepoint_android_vh_percpu_rwsem_wq_add + __tracepoint_android_vh_record_rtmutex_lock_starttime + __tracepoint_android_vh_record_rwsem_lock_starttime + __tracepoint_android_vh_rtmutex_waiter_prio __tracepoint_android_vh_rwsem_can_spin_on_owner __tracepoint_android_vh_rwsem_opt_spin_finish __tracepoint_android_vh_rwsem_opt_spin_start @@ -204,12 +251,19 @@ __tracepoint_android_vh_sched_stat_runtime_rt __tracepoint_android_vh_shrink_node_memcgs __tracepoint_android_vh_sync_txn_recvd + __tracepoint_android_vh_task_blocks_on_rtmutex + __tracepoint_android_vh_test_clear_look_around_ref + __tracepoint_android_vh_tune_swappiness __tracepoint_block_bio_queue __tracepoint_block_getrq __tracepoint_block_rq_complete __tracepoint_block_rq_issue __tracepoint_block_rq_merge __tracepoint_block_rq_requeue + __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 @@ -217,6 +271,12 @@ __tracepoint_sched_stat_wait __tracepoint_sched_waking __tracepoint_task_rename + __tracepoint_android_vh_alloc_oem_binder_struct + __tracepoint_android_vh_binder_transaction_received + __tracepoint_android_vh_free_oem_binder_struct + __tracepoint_android_vh_binder_special_task + __tracepoint_android_vh_binder_free_buf + __trace_puts try_to_free_mem_cgroup_pages typec_mux_get_drvdata unregister_memory_notifier @@ -225,4 +285,6 @@ wait_for_completion_io_timeout wait_for_completion_killable_timeout wakeup_source_remove + wake_up_state wq_worker_comm + zero_pfn diff --git a/android/abi_gki_aarch64_pixel b/android/abi_gki_aarch64_pixel index 06d7a6c7e801..d1af571b8452 100644 --- a/android/abi_gki_aarch64_pixel +++ b/android/abi_gki_aarch64_pixel @@ -1,4 +1,5 @@ [abi_symbol_list] + activate_task add_cpu add_timer add_timer_on @@ -11,6 +12,7 @@ alarm_try_to_cancel alloc_chrdev_region alloc_etherdev_mqs + alloc_iova_fast alloc_netdev_mqs __alloc_pages alloc_pages_exact @@ -29,6 +31,7 @@ __arch_clear_user __arch_copy_from_user __arch_copy_to_user + arch_freq_scale arch_timer_read_counter argv_free argv_split @@ -41,6 +44,7 @@ atomic_notifier_chain_register atomic_notifier_chain_unregister autoremove_wake_function + available_idle_cpu backlight_device_set_brightness badblocks_check badblocks_clear @@ -48,13 +52,19 @@ badblocks_init badblocks_set badblocks_show + balance_push_callback bcmp bdev_end_io_acct bdev_nr_zones bdev_start_io_acct bin2hex + bio_add_page + bio_alloc_bioset + bio_chain bio_endio bio_end_io_acct_remapped + bio_init + bio_put bio_start_io_acct __bitmap_and __bitmap_andnot @@ -75,6 +85,9 @@ bitmap_zalloc blk_abort_request __blk_alloc_disk + blk_check_plugged + blkdev_get_by_dev + blkdev_put blk_execute_rq_nowait __blk_mq_alloc_disk blk_mq_alloc_tag_set @@ -113,6 +126,8 @@ blocking_notifier_chain_unregister bpf_trace_run1 bpf_trace_run10 + bpf_trace_run11 + bpf_trace_run12 bpf_trace_run2 bpf_trace_run3 bpf_trace_run4 @@ -142,11 +157,13 @@ cdev_device_del cdev_init __check_object_size + check_preempt_curr __class_create class_destroy class_interface_unregister __class_register class_unregister + cleancache_register_ops clear_page __ClearPageMovable clk_disable @@ -203,22 +220,36 @@ _copy_from_iter __copy_overflow _copy_to_iter + __cpu_active_mask cpu_all_bits cpu_bit_bitmap + cpufreq_add_update_util_hook cpufreq_cpu_get cpufreq_cpu_get_raw cpufreq_cpu_put + cpufreq_disable_fast_switch + cpufreq_driver_fast_switch + cpufreq_driver_resolve_freq + __cpufreq_driver_target cpufreq_driver_target + cpufreq_enable_fast_switch cpufreq_freq_transition_begin cpufreq_freq_transition_end cpufreq_frequency_table_verify cpufreq_generic_attr cpufreq_get cpufreq_get_policy + cpufreq_policy_transition_delay_us cpufreq_quick_get cpufreq_register_driver + cpufreq_register_governor cpufreq_register_notifier + cpufreq_remove_update_util_hook cpufreq_table_index_unsorted + cpufreq_this_cpu_can_update + cpufreq_update_util_data + cpu_hotplug_disable + cpu_hotplug_enable __cpuhp_remove_state __cpuhp_setup_state __cpuhp_setup_state_cpuslocked @@ -226,15 +257,19 @@ __cpuhp_state_remove_instance cpuhp_tasks_frozen cpu_hwcaps + cpuidle_driver_state_disabled + cpuidle_get_driver cpu_latency_qos_add_request cpu_latency_qos_remove_request cpu_latency_qos_update_request + cpumask_local_spread cpu_number __cpu_online_mask cpu_pm_register_notifier cpu_pm_unregister_notifier __cpu_possible_mask __cpu_present_mask + cpupri_find_fitness cpu_scale cpus_read_lock cpus_read_unlock @@ -274,6 +309,7 @@ csum_partial csum_tcpudp_nofold _ctype + deactivate_task debugfs_attr_read debugfs_attr_write debugfs_create_atomic_t @@ -281,6 +317,7 @@ debugfs_create_devm_seqfile debugfs_create_dir debugfs_create_file + debugfs_create_file_unsafe debugfs_create_size_t debugfs_create_symlink debugfs_create_u16 @@ -325,6 +362,7 @@ __dev_get_by_index dev_get_by_index dev_get_by_name + dev_get_stats device_add device_add_disk device_add_groups @@ -339,6 +377,7 @@ device_get_child_node_count device_get_dma_attr device_get_match_data + device_get_named_child_node device_get_next_child_node device_initialize device_link_add @@ -368,15 +407,19 @@ devm_clk_put devm_device_add_group devm_device_add_groups + devm_device_remove_group __devm_drm_dev_alloc devm_drm_panel_bridge_add_typed devm_extcon_dev_allocate devm_extcon_dev_register devm_free_irq + devm_fwnode_gpiod_get_index + devm_fwnode_pwm_get devm_gen_pool_create devm_gpiochip_add_data_with_key devm_gpiod_get devm_gpiod_get_array + devm_gpiod_get_index_optional devm_gpiod_get_optional devm_gpiod_put_array devm_gpio_request @@ -389,12 +432,17 @@ devm_ioremap_resource devm_ioremap_wc devm_iounmap + __devm_irq_alloc_descs devm_kasprintf devm_kfree devm_kmalloc devm_kmemdup + devm_krealloc devm_kstrdup devm_kstrdup_const + devm_led_classdev_register_ext + devm_memremap + devm_memunmap devm_mfd_add_devices devm_nvmem_register __devm_of_phy_provider_register @@ -409,22 +457,26 @@ devm_platform_ioremap_resource devm_platform_ioremap_resource_byname devm_power_supply_register + devm_pwm_get devm_regmap_add_irq_chip __devm_regmap_init __devm_regmap_init_i2c __devm_regmap_init_spi + __devm_regmap_init_spmi_ext devm_regulator_bulk_get devm_regulator_get devm_regulator_get_exclusive devm_regulator_get_optional devm_regulator_put devm_regulator_register + devm_request_any_context_irq __devm_request_region devm_request_threaded_irq devm_rtc_device_register devm_snd_soc_register_component devm_thermal_of_cooling_device_register devm_thermal_of_zone_register + devm_thermal_of_zone_unregister devm_usb_get_phy_by_phandle _dev_notice dev_pm_domain_attach_by_name @@ -452,6 +504,7 @@ __devres_alloc_node devres_free dev_set_name + dev_vprintk_emit _dev_warn disable_irq disable_irq_nosync @@ -479,6 +532,7 @@ dmabuf_page_pool_free dmabuf_page_pool_get_size dma_buf_put + dma_buf_set_name dma_buf_unmap_attachment dma_buf_vmap dma_buf_vunmap @@ -535,19 +589,25 @@ drain_workqueue driver_register driver_unregister + drm_add_edid_modes drm_add_modes_noedid drm_atomic_add_affected_connectors drm_atomic_add_affected_planes + drm_atomic_bridge_chain_disable + drm_atomic_bridge_chain_post_disable drm_atomic_commit drm_atomic_get_connector_state drm_atomic_get_crtc_state drm_atomic_get_new_connector_for_encoder + drm_atomic_get_new_private_obj_state drm_atomic_get_old_connector_for_encoder + drm_atomic_get_old_private_obj_state drm_atomic_get_plane_state drm_atomic_get_private_obj_state drm_atomic_helper_bridge_destroy_state drm_atomic_helper_bridge_duplicate_state drm_atomic_helper_bridge_reset + drm_atomic_helper_calc_timestamping_constants drm_atomic_helper_check_modeset drm_atomic_helper_check_planes drm_atomic_helper_check_plane_state @@ -560,7 +620,10 @@ drm_atomic_helper_commit_planes drm_atomic_helper_commit_tail __drm_atomic_helper_connector_destroy_state + drm_atomic_helper_connector_destroy_state __drm_atomic_helper_connector_duplicate_state + drm_atomic_helper_connector_duplicate_state + drm_atomic_helper_connector_reset __drm_atomic_helper_crtc_destroy_state __drm_atomic_helper_crtc_duplicate_state __drm_atomic_helper_crtc_reset @@ -576,6 +639,7 @@ drm_atomic_helper_setup_commit drm_atomic_helper_shutdown drm_atomic_helper_swap_state + drm_atomic_helper_update_legacy_modeset_state drm_atomic_helper_update_plane drm_atomic_helper_wait_for_dependencies drm_atomic_helper_wait_for_flip_done @@ -603,12 +667,17 @@ drm_connector_list_iter_next drm_connector_register drm_connector_unregister + drm_connector_update_edid_property + drm_crtc_add_crc_entry drm_crtc_arm_vblank_event drm_crtc_cleanup + __drm_crtc_commit_free + drm_crtc_commit_wait drm_crtc_enable_color_mgmt drm_crtc_handle_vblank drm_crtc_init_with_planes drm_crtc_send_vblank_event + drm_crtc_vblank_count drm_crtc_vblank_count_and_time drm_crtc_vblank_get drm_crtc_vblank_off @@ -616,10 +685,20 @@ drm_crtc_vblank_put drm_crtc_wait_one_vblank ___drm_dbg + __drm_debug + drm_detect_monitor_audio + __drm_dev_dbg + drm_dev_printk drm_dev_put drm_dev_register drm_dev_unregister + drm_display_mode_from_cea_vic drm_display_mode_to_videomode + drm_do_get_edid + drm_edid_duplicate + drm_edid_get_monitor_name + drm_edid_is_valid + drm_edid_to_sad drm_encoder_cleanup drm_encoder_init __drm_err @@ -641,6 +720,7 @@ drm_gem_private_object_init drm_gem_vm_close drm_gem_vm_open + drm_get_edid drm_get_format_info drm_helper_mode_fill_fb_struct drm_helper_probe_single_connector_modes @@ -648,10 +728,13 @@ drm_kms_helper_hotplug_event drm_kms_helper_poll_fini drm_kms_helper_poll_init + drm_match_cea_mode drmm_kmalloc drmm_mode_config_init drm_mode_config_reset drm_mode_convert_to_umode + drm_mode_copy + drm_mode_destroy drm_mode_duplicate drm_mode_equal drm_mode_equal_no_clocks @@ -665,9 +748,11 @@ drm_modeset_drop_locks drm_modeset_lock drm_modeset_lock_all_ctx + drm_modeset_lock_single_interruptible drm_modeset_unlock drm_mode_vrefresh drm_object_attach_property + drm_object_property_set_value drm_open drm_panel_add drm_panel_disable @@ -717,10 +802,13 @@ dump_backtrace dump_stack dw_handle_msi_irq + dw_pcie_find_capability dw_pcie_host_init dw_pcie_read + dw_pcie_read_dbi dw_pcie_setup_rc dw_pcie_write + dw_pcie_write_dbi __dynamic_dev_dbg __dynamic_pr_debug em_cpu_get @@ -741,12 +829,16 @@ extcon_register_notifier extcon_set_property extcon_set_property_capability + extcon_set_property_sync extcon_set_state_sync extcon_unregister_notifier fasync_helper __fdget fd_install fget + file_path + filp_close + filp_open_block find_extend_vma _find_first_and_bit _find_first_bit @@ -757,12 +849,14 @@ _find_next_bit _find_next_zero_bit find_pid_ns + find_task_by_vpid find_vma_intersection finish_wait flush_dcache_page flush_delayed_work flush_work __flush_workqueue + __folio_lock __folio_put folio_wait_bit fortify_panic @@ -770,6 +864,7 @@ frame_vector_create frame_vector_destroy frame_vector_to_pages + free_iova_fast free_irq free_netdev __free_pages @@ -782,6 +877,9 @@ freq_qos_add_request freq_qos_remove_request freq_qos_update_request + fs_bio_set + fsnotify + __fsnotify_parent full_name_hash fwnode_get_name fwnode_gpiod_get_index @@ -800,11 +898,13 @@ gen_pool_add_owner gen_pool_alloc_algo_owner gen_pool_avail + gen_pool_best_fit gen_pool_create gen_pool_destroy gen_pool_first_fit_align gen_pool_free_owner gen_pool_has_addr + gen_pool_set_algo gen_pool_size get_cpu_device get_cpu_idle_time @@ -812,6 +912,22 @@ get_cpu_iowait_time_us get_device __get_free_pages + get_governor_parent_kobj + gether_cleanup + gether_connect + gether_disconnect + gether_get_dev_addr + gether_get_host_addr + gether_get_host_addr_u8 + gether_get_ifname + gether_get_qmult + gether_register_netdev + gether_set_dev_addr + gether_set_gadget + gether_set_host_addr + gether_set_ifname + gether_set_qmult + gether_setup_name_default get_net_ns_by_fd get_net_ns_by_pid get_pid_task @@ -821,6 +937,8 @@ __get_random_u32_below get_random_u8 get_sg_io_hdr + __get_task_comm + get_task_cred get_thermal_instance get_unused_fd_flags get_user_pages @@ -828,6 +946,10 @@ get_vaddr_frames gic_nonsecure_priorities glob_match + gov_attr_set_get + gov_attr_set_init + gov_attr_set_put + governor_sysfs_ops gpiochip_generic_config gpiochip_generic_free gpiochip_generic_request @@ -860,6 +982,7 @@ handle_simple_irq handle_sysrq hashlen_string + have_governor_per_policy hex2bin hex_dump_to_buffer hex_to_bin @@ -877,6 +1000,7 @@ hwrng_register hwrng_unregister i2c_adapter_type + i2c_add_adapter i2c_add_numbered_adapter i2c_bus_type i2c_del_adapter @@ -921,6 +1045,7 @@ inc_zone_page_state inet_csk_get_port init_dummy_netdev + init_iova_domain init_net init_pid_ns __init_rwsem @@ -953,12 +1078,15 @@ interval_tree_iter_first interval_tree_iter_next interval_tree_remove + int_pow int_sqrt int_to_scsilun iomem_resource iommu_alloc_resv_region + iommu_attach_device iommu_attach_device_pasid iommu_attach_group + iommu_detach_device iommu_detach_device_pasid iommu_device_register iommu_device_sysfs_add @@ -990,6 +1118,7 @@ io_schedule io_schedule_timeout iounmap + iova_domain_init_rcaches ip_compute_csum ip_send_check __irq_alloc_descs @@ -1000,7 +1129,9 @@ irq_domain_get_irq_data irq_domain_remove irq_domain_set_info + irq_domain_simple_ops irq_domain_xlate_twocell + irq_force_affinity irq_get_irq_data irq_modify_status irq_of_parse_and_map @@ -1012,6 +1143,8 @@ irq_set_irq_type irq_set_irq_wake irq_to_desc + irq_work_queue + irq_work_sync is_vmalloc_addr jiffies jiffies64_to_msecs @@ -1024,6 +1157,7 @@ kernel_param_lock kernel_param_unlock kernel_restart + kernfs_path_from_node key_create_or_update key_put keyring_alloc @@ -1049,6 +1183,7 @@ kmem_cache_destroy kmem_cache_free kmemdup + kmemdup_nul kobject_add kobject_create_and_add kobject_del @@ -1118,6 +1253,7 @@ kvmalloc_node led_classdev_register_ext led_classdev_unregister + led_init_default_state_get __list_add_valid __list_del_entry_valid list_sort @@ -1138,6 +1274,7 @@ mbox_request_channel mbox_send_message memchr + memchr_inv memcmp memcpy __memcpy_fromio @@ -1186,6 +1323,7 @@ __msecs_to_jiffies msleep msleep_interruptible + mtree_load __mutex_init mutex_is_locked mutex_lock @@ -1222,6 +1360,8 @@ netlink_unregister_notifier net_ns_type_operations net_ratelimit + nf_register_net_hooks + nf_unregister_net_hooks nla_find nla_memcpy __nla_parse @@ -1236,6 +1376,7 @@ noop_llseek nr_cpu_ids nr_irqs + ns_capable nsec_to_clock_t ns_to_timespec64 __num_online_cpus @@ -1268,6 +1409,7 @@ of_find_node_by_phandle of_find_node_by_type of_find_node_opts_by_path + of_find_node_with_property of_find_property of_fwnode_ops of_genpd_add_provider_simple @@ -1479,25 +1621,33 @@ prepare_to_wait_event print_hex_dump _printk + _printk_deferred proc_create proc_create_data proc_create_single_data proc_dointvec proc_dostring + proc_douintvec_minmax proc_mkdir proc_mkdir_data proc_remove + proc_set_size + proc_symlink pskb_expand_head __pskb_pull_tail ___pskb_trim + push_cpu_stop + __put_cred put_device put_disk + put_iova_domain __put_net put_pid put_sg_io_hdr __put_task_struct put_unused_fd put_vaddr_frames + pwm_apply_state queue_delayed_work_on queue_work_on radix_tree_delete_item @@ -1519,6 +1669,8 @@ _raw_spin_lock_bh _raw_spin_lock_irq _raw_spin_lock_irqsave + raw_spin_rq_lock_nested + raw_spin_rq_unlock _raw_spin_trylock _raw_spin_unlock _raw_spin_unlock_bh @@ -1600,6 +1752,7 @@ regulator_map_voltage_linear regulator_notifier_call_chain regulator_put + regulator_set_active_discharge_regmap regulator_set_voltage regulator_set_voltage_sel_regmap regulator_unregister @@ -1615,7 +1768,10 @@ __request_percpu_irq __request_region request_threaded_irq + resched_curr + reserve_iova return_address + reweight_task rfkill_alloc rfkill_blocked rfkill_destroy @@ -1632,6 +1788,7 @@ rht_bucket_nested_insert __root_device_register root_device_unregister + root_task_group round_jiffies round_jiffies_relative round_jiffies_up @@ -1649,12 +1806,18 @@ rt_mutex_unlock rtnl_is_locked rtnl_lock + rtnl_trylock rtnl_unlock + runqueues sched_clock + sched_feat_keys sched_setattr_nocheck + sched_set_fifo + sched_set_normal sched_setscheduler sched_setscheduler_nocheck sched_show_task + sched_uclamp_used schedule schedule_timeout schedule_timeout_interruptible @@ -1703,6 +1866,7 @@ set_page_dirty set_page_dirty_lock __SetPageMovable + set_task_cpu set_user_nice sg_alloc_table sg_alloc_table_from_pages_segment @@ -1770,6 +1934,7 @@ snd_jack_set_key snd_pcm_format_physical_width snd_pcm_format_width + snd_pcm_hw_constraint_integer snd_pcm_hw_constraint_list snd_pcm_lib_free_pages snd_pcm_lib_ioctl @@ -1826,6 +1991,7 @@ snd_soc_register_card snd_soc_register_component snd_soc_runtime_set_dai_fmt + snd_soc_set_runtime_hwparams snd_soc_unregister_card snd_soc_unregister_component snprintf @@ -1848,6 +2014,10 @@ spi_sync spi_sync_locked spi_unregister_controller + spmi_controller_add + spmi_controller_alloc + spmi_controller_remove + __spmi_driver_register sprintf sprint_symbol srcu_init_notifier_head @@ -1857,9 +2027,11 @@ sscanf __stack_chk_fail static_key_disable + static_key_enable static_key_slow_dec static_key_slow_inc stop_machine + stop_one_cpu_nowait strcasecmp strcat strchr @@ -1873,6 +2045,7 @@ strlen strncasecmp strncat + strnchr strncmp strncpy strncpy_from_user @@ -1885,6 +2058,8 @@ strsep strspn strstr + submit_bio + submit_bio_wait subsys_system_register suspend_set_ops __sw_hweight16 @@ -1898,6 +2073,8 @@ synchronize_net synchronize_rcu syscon_regmap_lookup_by_phandle + sysctl_sched_features + sysctl_sched_latency sysfs_add_file_to_group sysfs_add_link_to_group sysfs_create_file_ns @@ -1927,12 +2104,14 @@ system_wq sys_tz task_active_pid_ns + __tasklet_hi_schedule tasklet_init tasklet_kill __tasklet_schedule tasklet_setup tasklet_unlock_wait __task_pid_nr_ns + task_rq_lock tcpci_get_tcpm_port tcpci_irq tcpci_register_port @@ -1943,38 +2122,90 @@ tcpm_pd_transmit_complete tcpm_port_clean tcpm_port_is_toggling + tcpm_register_port tcpm_sink_frs tcpm_sourcing_vbus + tcpm_tcpc_reset + tcpm_unregister_port tcpm_vbus_change + teo_cpu_get_util_threshold + teo_cpu_set_util_threshold thermal_cdev_update thermal_cooling_device_unregister thermal_of_cooling_device_register + thermal_pressure thermal_zone_device_disable thermal_zone_device_enable thermal_zone_device_register thermal_zone_device_unregister thermal_zone_device_update + thermal_zone_get_temp + thermal_zone_get_zone_by_name thread_group_cputime_adjusted time64_to_tm topology_update_thermal_pressure _totalram_pages touch_softlockup_watchdog + __trace_bprintk + __trace_bputs trace_event_buffer_commit trace_event_buffer_reserve trace_event_printf trace_event_raw_init trace_event_reg trace_handle_return + __traceiter_android_rvh_attach_entity_load_avg + __traceiter_android_rvh_audio_usb_offload_disconnect + __traceiter_android_rvh_can_migrate_task + __traceiter_android_rvh_cgroup_force_kthread_migration + __traceiter_android_rvh_check_preempt_wakeup + __traceiter_android_rvh_cpu_overutilized + __traceiter_android_rvh_dequeue_task + __traceiter_android_rvh_dequeue_task_fair + __traceiter_android_rvh_detach_entity_load_avg + __traceiter_android_rvh_enqueue_task + __traceiter_android_rvh_enqueue_task_fair + __traceiter_android_rvh_find_lowest_rq + __traceiter_android_rvh_irqs_disable + __traceiter_android_rvh_irqs_enable + __traceiter_android_rvh_post_init_entity_util_avg + __traceiter_android_rvh_preempt_disable + __traceiter_android_rvh_preempt_enable + __traceiter_android_rvh_prepare_prio_fork + __traceiter_android_rvh_remove_entity_load_avg + __traceiter_android_rvh_rtmutex_prepare_setprio + __traceiter_android_rvh_sched_newidle_balance + __traceiter_android_rvh_select_task_rq_fair + __traceiter_android_rvh_select_task_rq_rt + __traceiter_android_rvh_set_cpus_allowed_by_task + __traceiter_android_rvh_set_iowait + __traceiter_android_rvh_setscheduler + __traceiter_android_rvh_set_task_cpu + __traceiter_android_rvh_set_user_nice __traceiter_android_rvh_typec_tcpci_get_vbus + __traceiter_android_rvh_uclamp_eff_get + __traceiter_android_rvh_update_blocked_fair + __traceiter_android_rvh_update_load_avg + __traceiter_android_rvh_update_rt_rq_load_avg + __traceiter_android_vh_arch_set_freq_scale + __traceiter_android_vh_audio_usb_offload_connect + __traceiter_android_vh_binder_restore_priority + __traceiter_android_vh_binder_set_priority __traceiter_android_vh_cpu_idle_enter __traceiter_android_vh_cpu_idle_exit + __traceiter_android_vh_dump_throttled_rt_tasks + __traceiter_android_vh_dup_task_struct + __traceiter_android_vh_enable_thermal_genl_check __traceiter_android_vh_ipi_stop __traceiter_android_vh_scheduler_tick + __traceiter_android_vh_setscheduler_uclamp __traceiter_android_vh_sysrq_crash __traceiter_android_vh_typec_store_partner_src_caps __traceiter_android_vh_typec_tcpci_override_toggling __traceiter_android_vh_typec_tcpm_get_timer __traceiter_android_vh_typec_tcpm_log + __traceiter_android_vh_typec_tcpm_modify_src_caps + __traceiter_android_vh_uclamp_validate __traceiter_android_vh_ufs_check_int_errors __traceiter_android_vh_ufs_compl_command __traceiter_android_vh_ufs_fill_prdt @@ -1984,25 +2215,85 @@ __traceiter_android_vh_ufs_send_uic_command __traceiter_android_vh_ufs_update_sdev __traceiter_android_vh_ufs_update_sysfs + __traceiter_android_vh_use_amu_fie __traceiter_clock_set_rate + __traceiter_cpu_frequency __traceiter_device_pm_callback_end __traceiter_device_pm_callback_start __traceiter_gpu_mem_total + __traceiter_hrtimer_expire_entry + __traceiter_hrtimer_expire_exit + __traceiter_irq_handler_entry + __traceiter_irq_handler_exit __traceiter_mmap_lock_acquire_returned __traceiter_mmap_lock_released __traceiter_mmap_lock_start_locking + __traceiter_pelt_cfs_tp + __traceiter_pelt_dl_tp + __traceiter_pelt_irq_tp + __traceiter_pelt_rt_tp + __traceiter_pelt_se_tp + __traceiter_sched_cpu_capacity_tp + __traceiter_sched_overutilized_tp + __traceiter_sched_switch + __traceiter_sched_util_est_cfs_tp + __traceiter_sched_util_est_se_tp __traceiter_suspend_resume + __traceiter_workqueue_execute_end + __traceiter_workqueue_execute_start trace_output_call + __tracepoint_android_rvh_attach_entity_load_avg + __tracepoint_android_rvh_audio_usb_offload_disconnect + __tracepoint_android_rvh_can_migrate_task + __tracepoint_android_rvh_cgroup_force_kthread_migration + __tracepoint_android_rvh_check_preempt_wakeup + __tracepoint_android_rvh_cpu_overutilized + __tracepoint_android_rvh_dequeue_task + __tracepoint_android_rvh_dequeue_task_fair + __tracepoint_android_rvh_detach_entity_load_avg + __tracepoint_android_rvh_enqueue_task + __tracepoint_android_rvh_enqueue_task_fair + __tracepoint_android_rvh_find_lowest_rq + __tracepoint_android_rvh_irqs_disable + __tracepoint_android_rvh_irqs_enable + __tracepoint_android_rvh_post_init_entity_util_avg + __tracepoint_android_rvh_preempt_disable + __tracepoint_android_rvh_preempt_enable + __tracepoint_android_rvh_prepare_prio_fork + __tracepoint_android_rvh_remove_entity_load_avg + __tracepoint_android_rvh_rtmutex_prepare_setprio + __tracepoint_android_rvh_sched_newidle_balance + __tracepoint_android_rvh_select_task_rq_fair + __tracepoint_android_rvh_select_task_rq_rt + __tracepoint_android_rvh_set_cpus_allowed_by_task + __tracepoint_android_rvh_set_iowait + __tracepoint_android_rvh_setscheduler + __tracepoint_android_rvh_set_task_cpu + __tracepoint_android_rvh_set_user_nice __tracepoint_android_rvh_typec_tcpci_get_vbus + __tracepoint_android_rvh_uclamp_eff_get + __tracepoint_android_rvh_update_blocked_fair + __tracepoint_android_rvh_update_load_avg + __tracepoint_android_rvh_update_rt_rq_load_avg + __tracepoint_android_vh_arch_set_freq_scale + __tracepoint_android_vh_audio_usb_offload_connect + __tracepoint_android_vh_binder_restore_priority + __tracepoint_android_vh_binder_set_priority __tracepoint_android_vh_cpu_idle_enter __tracepoint_android_vh_cpu_idle_exit + __tracepoint_android_vh_dump_throttled_rt_tasks + __tracepoint_android_vh_dup_task_struct + __tracepoint_android_vh_enable_thermal_genl_check __tracepoint_android_vh_ipi_stop __tracepoint_android_vh_scheduler_tick + __tracepoint_android_vh_setscheduler_uclamp __tracepoint_android_vh_sysrq_crash __tracepoint_android_vh_typec_store_partner_src_caps __tracepoint_android_vh_typec_tcpci_override_toggling __tracepoint_android_vh_typec_tcpm_get_timer __tracepoint_android_vh_typec_tcpm_log + __tracepoint_android_vh_typec_tcpm_modify_src_caps + __tracepoint_android_vh_uclamp_validate __tracepoint_android_vh_ufs_check_int_errors __tracepoint_android_vh_ufs_compl_command __tracepoint_android_vh_ufs_fill_prdt @@ -2012,16 +2303,34 @@ __tracepoint_android_vh_ufs_send_uic_command __tracepoint_android_vh_ufs_update_sdev __tracepoint_android_vh_ufs_update_sysfs + __tracepoint_android_vh_use_amu_fie __tracepoint_clock_set_rate + __tracepoint_cpu_frequency __tracepoint_device_pm_callback_end __tracepoint_device_pm_callback_start __tracepoint_gpu_mem_total + __tracepoint_hrtimer_expire_entry + __tracepoint_hrtimer_expire_exit + __tracepoint_irq_handler_entry + __tracepoint_irq_handler_exit __tracepoint_mmap_lock_acquire_returned __tracepoint_mmap_lock_released __tracepoint_mmap_lock_start_locking + __tracepoint_pelt_cfs_tp + __tracepoint_pelt_dl_tp + __tracepoint_pelt_irq_tp + __tracepoint_pelt_rt_tp + __tracepoint_pelt_se_tp tracepoint_probe_register tracepoint_probe_unregister + __tracepoint_sched_cpu_capacity_tp + __tracepoint_sched_overutilized_tp + __tracepoint_sched_switch + __tracepoint_sched_util_est_cfs_tp + __tracepoint_sched_util_est_se_tp __tracepoint_suspend_resume + __tracepoint_workqueue_execute_end + __tracepoint_workqueue_execute_start trace_print_array_seq trace_print_bitmask_seq trace_print_flags_seq @@ -2056,8 +2365,10 @@ uart_unregister_driver uart_update_timeout uart_write_wakeup + uclamp_eff_value __udelay udp4_hwcsum + ufshcd_auto_hibern8_update ufshcd_bkops_ctrl ufshcd_hold ufshcd_pltfrm_init @@ -2093,29 +2404,42 @@ unregister_virtio_driver up update_devfreq + ___update_load_avg + ___update_load_sum + update_rq_clock up_read up_write usb_add_function usb_add_hcd + usb_assign_descriptors usb_copy_descriptors __usb_create_hcd usb_disabled usb_enable_autosuspend + usb_ep_alloc_request usb_ep_autoconfig + usb_ep_disable + usb_ep_enable + usb_ep_free_request + usb_ep_queue + usb_free_all_descriptors usb_function_register usb_function_unregister usb_gadget_activate usb_gadget_deactivate usb_gadget_set_state + usb_gstrings_attach usb_hcd_is_primary_hcd usb_hcd_platform_shutdown usb_hub_find_child usb_interface_id + usb_os_desc_prepare_interf_dir usb_otg_state_string usb_put_function_instance usb_put_hcd usb_register_notify usb_remove_hcd + usb_role_string usb_role_switch_get_drvdata usb_role_switch_register usb_role_switch_unregister @@ -2210,6 +2534,7 @@ vmalloc_user vmap vmf_insert_pfn_prot + vm_iomap_memory vprintk vprintk_emit vring_del_virtqueue @@ -2244,17 +2569,35 @@ __xa_alloc xa_clear_mark xa_destroy + __xa_erase xa_erase xa_find xa_find_after xa_get_mark xa_load xa_set_mark + xas_find + xas_pause + __xa_store __xfrm_state_destroy xfrm_state_lookup_byspi xfrm_stateonly_find + xhci_address_device + xhci_bus_resume + xhci_bus_suspend xhci_gen_setup + xhci_get_endpoint_index xhci_init_driver xhci_resume xhci_run xhci_suspend + zs_compact + zs_create_pool + zs_destroy_pool + zs_free + zs_get_total_pages + zs_huge_class_size + zs_malloc + zs_map_object + zs_pool_stats + zs_unmap_object diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index 6a43499fb225..73632e9e1b31 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -73,6 +73,7 @@ bin2hex bio_endio bio_end_io_acct_remapped + bio_split bio_start_io_acct bitmap_allocate_region __bitmap_and @@ -94,6 +95,8 @@ bit_wait_timeout __blk_alloc_disk blkdev_get_by_dev + blk_crypto_keyslot_index + blk_crypto_register blk_execute_rq blk_execute_rq_nowait __blk_mq_alloc_disk @@ -340,7 +343,9 @@ contig_page_data _copy_from_iter copy_from_kernel_nofault + copy_page __copy_overflow + copy_page _copy_to_iter __cpu_active_mask cpu_bit_bitmap @@ -429,6 +434,7 @@ crypto_get_default_rng crypto_has_ahash crypto_has_alg + crypto_inc crypto_init_queue __crypto_memneq crypto_put_default_rng @@ -665,6 +671,7 @@ devm_rtc_allocate_device __devm_rtc_register_device devm_snd_soc_register_card + devm_snd_soc_register_component devm_thermal_of_cooling_device_register devm_thermal_of_zone_register devm_usb_get_phy_by_node @@ -733,6 +740,22 @@ divider_recalc_rate divider_ro_round_rate_parent divider_round_rate_parent + dm_bufio_client_create + dm_bufio_client_destroy + dm_bufio_mark_buffer_dirty + dm_bufio_new + dm_bufio_read + dm_bufio_release + dm_bufio_write_dirty_buffers + dm_disk + dm_get_device + dm_kobject_release + dm_read_arg_group + dm_register_target + dm_shift_arg + dm_table_get_md + dm_table_get_mode + dm_unregister_target dma_alloc_attrs dma_alloc_noncontiguous dma_alloc_pages @@ -852,8 +875,11 @@ drm_atomic_helper_commit_modeset_enables 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_connector_reset __drm_atomic_helper_crtc_destroy_state __drm_atomic_helper_crtc_duplicate_state drm_atomic_helper_dirtyfb @@ -927,6 +953,7 @@ drm_dev_register drm_dev_unregister drm_display_mode_from_cea_vic + drm_do_get_edid drm_edid_duplicate drm_edid_get_monitor_name drm_edid_is_valid @@ -951,6 +978,7 @@ drm_gem_object_init drm_gem_object_lookup drm_gem_object_release + drm_gem_prime_export drm_gem_prime_fd_to_handle drm_gem_prime_handle_to_fd drm_gem_private_object_init @@ -1018,6 +1046,7 @@ drm_panel_remove drm_plane_cleanup drm_plane_create_rotation_property + drm_plane_from_index drm_poll drm_prime_gem_destroy drm_prime_pages_to_sg @@ -1147,6 +1176,7 @@ fwnode_get_name fwnode_get_named_child_node fwnode_get_next_child_node + fwnode_get_phy_node fwnode_handle_get fwnode_handle_put fwnode_property_present @@ -1229,15 +1259,16 @@ get_user_ifreq get_user_pages get_zeroed_page + gf128mul_lle gh_rm_call gh_rm_notifier_register gh_rm_notifier_unregister gh_rm_register_platform_ops gh_rm_unregister_platform_ops + gic_nonsecure_priorities gic_v3_cpu_init gic_v3_dist_init gic_v3_dist_wait_for_rwp - gic_nonsecure_priorities gov_attr_set_init gov_attr_set_put governor_sysfs_ops @@ -1325,6 +1356,7 @@ hci_uart_unregister_device hci_unregister_cb hci_unregister_dev + hdmi_audio_infoframe_init hex2bin hex_asc_upper hex_dump_to_buffer @@ -1538,9 +1570,11 @@ iommu_group_get_iommudata iommu_group_put iommu_group_ref_get + iommu_group_remove_device iommu_group_set_iommudata iommu_iova_to_phys iommu_map + iommu_map_atomic iommu_map_sg iommu_present iommu_put_resv_regions @@ -1892,9 +1926,13 @@ migrate_pages migrate_swap __migrate_task + mipi_dsi_attach mipi_dsi_create_packet mipi_dsi_dcs_set_display_brightness mipi_dsi_dcs_set_tear_off + mipi_dsi_detach + mipi_dsi_device_register_full + mipi_dsi_device_unregister mipi_dsi_host_register mipi_dsi_host_unregister misc_deregister @@ -2194,6 +2232,7 @@ page_ext_put page_is_ram page_mapping + page_owner_inited page_pinner_inited __page_pinner_put_page page_pool_alloc_pages @@ -2311,6 +2350,7 @@ phylink_ethtool_set_eee phylink_ethtool_set_pauseparam phylink_ethtool_set_wol + phylink_expects_phy phylink_fwnode_phy_connect phylink_generic_validate phylink_get_eee_err @@ -2868,6 +2908,7 @@ set_normalized_timespec64 set_page_dirty_lock __SetPageMovable + __set_page_owner set_task_cpu setup_udp_tunnel_sock set_user_nice @@ -2971,6 +3012,8 @@ smp_call_function_single smp_call_function_single_async snapshot_get_image_size + snd_ctl_add + snd_ctl_new1 snd_ctl_remove snd_hwdep_new snd_info_create_card_entry @@ -2979,7 +3022,12 @@ snd_info_register snd_interval_refine snd_jack_set_key + 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_params_any snd_pcm_set_managed_buffer snd_pcm_std_chmaps @@ -3257,8 +3305,10 @@ __traceiter_android_rvh_after_dequeue_task __traceiter_android_rvh_after_enqueue_task __traceiter_android_rvh_audio_usb_offload_disconnect + __traceiter_android_rvh_before_do_sched_yield __traceiter_android_rvh_build_perf_domains __traceiter_android_rvh_can_migrate_task + __traceiter_android_rvh_cgroup_force_kthread_migration __traceiter_android_rvh_check_preempt_tick __traceiter_android_rvh_check_preempt_wakeup __traceiter_android_rvh_check_preempt_wakeup_ignore @@ -3335,12 +3385,12 @@ __traceiter_android_vh_binder_set_priority __traceiter_android_vh_binder_wakeup_ilocked __traceiter_android_vh_build_sched_domains + __traceiter_android_vh_check_hibernation_swap __traceiter_android_vh_check_uninterrupt_tasks __traceiter_android_vh_check_uninterrupt_tasks_done __traceiter_android_vh_cpufreq_fast_switch __traceiter_android_vh_cpufreq_resolve_freq __traceiter_android_vh_cpufreq_target - __traceiter_android_vh_check_hibernation_swap __traceiter_android_vh_cpu_idle_enter __traceiter_android_vh_cpu_idle_exit __traceiter_android_vh_cpuidle_psci_enter @@ -3348,26 +3398,27 @@ __traceiter_android_vh_disable_thermal_cooling_stats __traceiter_android_vh_do_wake_up_sync __traceiter_android_vh_dump_throttled_rt_tasks - __traceiter_android_vh_free_task __traceiter_android_vh_encrypt_page + __traceiter_android_vh_free_task __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_ignore_dmabuf_vmap_bounds __traceiter_android_vh_gic_v3_suspend + __traceiter_android_vh_ignore_dmabuf_vmap_bounds + __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_mpam_set - __traceiter_android_vh_init_aes_encrypt __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_scan_abort_check_wmarks __traceiter_android_vh_scheduler_tick __traceiter_android_vh_setscheduler_uclamp __traceiter_android_vh_show_resume_epoch_val @@ -3400,8 +3451,10 @@ __tracepoint_android_rvh_after_dequeue_task __tracepoint_android_rvh_after_enqueue_task __tracepoint_android_rvh_audio_usb_offload_disconnect + __tracepoint_android_rvh_before_do_sched_yield __tracepoint_android_rvh_build_perf_domains __tracepoint_android_rvh_can_migrate_task + __tracepoint_android_rvh_cgroup_force_kthread_migration __tracepoint_android_rvh_check_preempt_tick __tracepoint_android_rvh_check_preempt_wakeup __tracepoint_android_rvh_check_preempt_wakeup_ignore @@ -3478,12 +3531,12 @@ __tracepoint_android_vh_binder_set_priority __tracepoint_android_vh_binder_wakeup_ilocked __tracepoint_android_vh_build_sched_domains + __tracepoint_android_vh_check_hibernation_swap __tracepoint_android_vh_check_uninterrupt_tasks __tracepoint_android_vh_check_uninterrupt_tasks_done __tracepoint_android_vh_cpufreq_fast_switch __tracepoint_android_vh_cpufreq_resolve_freq __tracepoint_android_vh_cpufreq_target - __tracepoint_android_vh_check_hibernation_swap __tracepoint_android_vh_cpu_idle_enter __tracepoint_android_vh_cpu_idle_exit __tracepoint_android_vh_cpuidle_psci_enter @@ -3491,26 +3544,27 @@ __tracepoint_android_vh_disable_thermal_cooling_stats __tracepoint_android_vh_do_wake_up_sync __tracepoint_android_vh_dump_throttled_rt_tasks - __tracepoint_android_vh_free_task __tracepoint_android_vh_encrypt_page + __tracepoint_android_vh_free_task __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_ignore_dmabuf_vmap_bounds __tracepoint_android_vh_gic_v3_suspend + __tracepoint_android_vh_ignore_dmabuf_vmap_bounds + __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_mpam_set - __tracepoint_android_vh_init_aes_encrypt __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_scan_abort_check_wmarks __tracepoint_android_vh_scheduler_tick __tracepoint_android_vh_setscheduler_uclamp __tracepoint_android_vh_show_resume_epoch_val @@ -3637,6 +3691,7 @@ ufshcd_hold ufshcd_mcq_config_esi ufshcd_mcq_enable_esi + ufshcd_mcq_poll_cqe_lock ufshcd_mcq_poll_cqe_nolock ufshcd_mcq_write_cqis ufshcd_pltfrm_init @@ -3871,6 +3926,7 @@ vhost_dev_init vhost_dev_ioctl vhost_dev_stop + vhost_dev_flush vhost_disable_notify vhost_enable_notify vhost_get_vq_desc diff --git a/android/abi_gki_aarch64_rockchip b/android/abi_gki_aarch64_rockchip new file mode 100644 index 000000000000..8fdda5ad35fb --- /dev/null +++ b/android/abi_gki_aarch64_rockchip @@ -0,0 +1,2805 @@ +[abi_symbol_list] +# commonly used symbols + add_timer + alloc_chrdev_region + alloc_iova_fast + __alloc_pages + __alloc_skb + alloc_workqueue + alt_cb_patch_nops + anon_inode_getfd + __arch_copy_from_user + __arch_copy_to_user + arm64_use_ng_mappings + __arm_smccc_smc + atomic_notifier_call_chain + atomic_notifier_chain_register + atomic_notifier_chain_unregister + _bcd2bin + bcmp + _bin2bcd + __bitmap_andnot + __bitmap_equal + bitmap_free + __bitmap_or + __bitmap_set + __bitmap_xor + bitmap_zalloc + blocking_notifier_call_chain + blocking_notifier_chain_register + blocking_notifier_chain_unregister + bpf_trace_run1 + bpf_trace_run2 + bpf_trace_run3 + bpf_trace_run4 + bpf_trace_run5 + bpf_trace_run6 + bpf_trace_run7 + cancel_delayed_work + cancel_delayed_work_sync + cancel_work_sync + capable + cdev_add + cdev_del + cdev_device_add + cdev_device_del + cdev_init + cec_allocate_adapter + cec_delete_adapter + cec_fill_conn_info_from_drm + cec_notifier_cec_adap_register + cec_notifier_cec_adap_unregister + cec_notifier_conn_register + cec_notifier_conn_unregister + cec_notifier_set_phys_addr + cec_notifier_set_phys_addr_from_edid + cec_queue_pin_hpd_event + cec_received_msg_ts + cec_register_adapter + cec_transmit_attempt_done_ts + cec_unregister_adapter + __check_object_size + __class_create + class_create_file_ns + class_destroy + class_for_each_device + __class_register + class_remove_file_ns + class_unregister + clk_bulk_disable + clk_bulk_enable + clk_bulk_prepare + clk_bulk_unprepare + clk_disable + clk_enable + clk_gate_ops + clk_get + __clk_get_name + clk_get_parent + clk_get_rate + clk_hw_get_flags + clk_hw_get_name + clk_hw_get_parent + clk_hw_get_rate + clk_is_match + __clk_mux_determine_rate + clk_notifier_register + clk_notifier_unregister + clk_prepare + clk_put + clk_register + clk_round_rate + clk_set_parent + clk_set_phase + clk_set_rate + clk_unprepare + clk_unregister + cma_alloc + cma_release + compat_ptr_ioctl + complete + completion_done + __const_udelay + consume_skb + __copy_overflow + cpufreq_cpu_get + __cpufreq_driver_target + cpufreq_generic_suspend + cpufreq_register_governor + cpufreq_register_notifier + cpufreq_unregister_governor + cpu_have_feature + cpu_hwcaps + cpu_latency_qos_add_request + cpu_latency_qos_update_request + cpu_number + __cpu_online_mask + __cpu_possible_mask + cpus_read_lock + cpus_read_unlock + crc16 + crc32_le + crypto_aead_decrypt + crypto_aead_encrypt + crypto_aead_setauthsize + crypto_aead_setkey + crypto_ahash_final + crypto_ahash_setkey + crypto_alloc_aead + crypto_alloc_ahash + crypto_alloc_shash + crypto_alloc_skcipher + crypto_cipher_encrypt_one + crypto_destroy_tfm + __crypto_memneq + crypto_register_aead + crypto_register_template + crypto_shash_update + crypto_skcipher_decrypt + crypto_skcipher_encrypt + crypto_skcipher_setkey + crypto_unregister_aead + crypto_unregister_template + __crypto_xor + csum_partial + _ctype + default_llseek + delayed_work_timer_fn + del_timer + del_timer_sync + destroy_workqueue + dev_addr_mod + dev_close + dev_driver_string + _dev_err + dev_err_probe + devfreq_add_governor + devfreq_recommended_opp + devfreq_register_opp_notifier + devfreq_remove_governor + devfreq_resume_device + devfreq_suspend_device + devfreq_unregister_opp_notifier + dev_fwnode + dev_get_regmap + dev_get_tstats64 + device_create + device_create_file + device_destroy + device_get_child_node_count + device_get_match_data + device_get_named_child_node + device_get_next_child_node + device_initialize + device_link_add + device_link_del + device_property_match_string + device_property_present + device_property_read_string + device_property_read_u32_array + device_property_read_u8_array + device_remove_file + device_set_wakeup_capable + device_set_wakeup_enable + device_unregister + device_wakeup_disable + device_wakeup_enable + _dev_info + __dev_kfree_skb_any + devm_add_action + devm_backlight_device_register + devm_clk_bulk_get + devm_clk_bulk_get_all + devm_clk_get + devm_clk_get_optional + devm_clk_hw_register + devm_clk_register + devm_devfreq_add_device + devm_devfreq_event_add_edev + devm_device_add_group + devm_extcon_dev_allocate + devm_extcon_dev_register + devm_free_irq + devm_fwnode_gpiod_get_index + devm_get_clk_from_child + devm_gpiochip_add_data_with_key + devm_gpiod_get + devm_gpiod_get_index + devm_gpiod_get_index_optional + devm_gpiod_get_optional + devm_gpio_request + devm_gpio_request_one + devm_hwrng_register + devm_iio_channel_get + devm_iio_device_alloc + __devm_iio_device_register + devm_input_allocate_device + devm_ioremap + devm_ioremap_resource + devm_kasprintf + devm_kfree + devm_kmalloc + devm_kmemdup + devm_kstrdup + devm_led_classdev_register_ext + devm_mfd_add_devices + devm_nvmem_register + devm_of_clk_add_hw_provider + devm_of_phy_get + __devm_of_phy_provider_register + devm_phy_create + devm_phy_get + devm_phy_optional_get + devm_pinctrl_get + devm_pinctrl_register + devm_pinctrl_register_and_init + devm_platform_get_and_ioremap_resource + devm_platform_ioremap_resource + devm_platform_ioremap_resource_byname + devm_power_supply_register + devm_pwm_get + devm_regmap_field_alloc + __devm_regmap_init + __devm_regmap_init_i2c + __devm_regmap_init_mmio_clk + devm_regulator_bulk_get + devm_regulator_get + devm_regulator_get_optional + devm_regulator_register + devm_remove_action + devm_request_threaded_irq + devm_reset_control_array_get + __devm_reset_control_get + devm_rtc_allocate_device + __devm_rtc_register_device + devm_snd_dmaengine_pcm_register + devm_snd_soc_register_card + devm_snd_soc_register_component + devm_usb_get_phy + _dev_notice + dev_open + dev_pm_opp_clear_config + dev_pm_opp_disable + dev_pm_opp_find_freq_ceil + dev_pm_opp_find_freq_floor + dev_pm_opp_get_freq + dev_pm_opp_get_opp_count + dev_pm_opp_get_opp_table + dev_pm_opp_get_supplies + dev_pm_opp_get_voltage + dev_pm_opp_of_get_sharing_cpus + dev_pm_opp_of_remove_table + dev_pm_opp_put + dev_pm_opp_put_opp_table + dev_pm_opp_set_config + dev_pm_opp_set_rate + _dev_printk + devres_add + __devres_alloc_node + devres_free + dev_set_name + _dev_warn + disable_irq + disable_irq_nosync + dma_alloc_attrs + dma_buf_attach + dma_buf_begin_cpu_access + dma_buf_detach + dma_buf_end_cpu_access + dma_buf_export + dma_buf_fd + dma_buf_get + dma_buf_map_attachment + dma_buf_mmap + dma_buf_put + dma_buf_unmap_attachment + dma_buf_vmap + dma_buf_vunmap + dma_contiguous_default_area + dma_fence_add_callback + dma_fence_context_alloc + dma_fence_get_status + dma_fence_init + dma_fence_release + dma_fence_signal + dma_free_attrs + dma_get_sgtable_attrs + dma_heap_add + dma_heap_get_name + dmam_alloc_attrs + dma_map_page_attrs + dma_map_resource + dma_map_sg_attrs + dma_map_sgtable + dmam_free_coherent + dma_mmap_attrs + dma_release_channel + dma_request_chan + dma_set_coherent_mask + dma_set_mask + dma_sync_sg_for_cpu + dma_sync_sg_for_device + dma_sync_single_for_cpu + dma_sync_single_for_device + dma_unmap_page_attrs + dma_unmap_resource + dma_unmap_sg_attrs + do_trace_netlink_extack + down + down_read + down_write + driver_unregister + drm_add_edid_modes + drm_add_modes_noedid + drm_atomic_get_connector_state + drm_atomic_get_crtc_state + drm_atomic_get_new_connector_for_encoder + drm_atomic_helper_bridge_destroy_state + drm_atomic_helper_bridge_duplicate_state + drm_atomic_helper_bridge_propagate_bus_fmt + drm_atomic_helper_bridge_reset + drm_atomic_helper_connector_destroy_state + drm_atomic_helper_connector_duplicate_state + drm_atomic_helper_connector_reset + drm_bridge_add + drm_bridge_attach + drm_bridge_detect + drm_bridge_get_modes + drm_bridge_hpd_notify + drm_bridge_remove + drm_compat_ioctl + drm_connector_attach_encoder + drm_connector_cleanup + drm_connector_has_possible_encoder + drm_connector_init + drm_connector_init_with_ddc + drm_connector_list_iter_begin + drm_connector_list_iter_end + drm_connector_list_iter_next + drm_connector_unregister + drm_connector_update_edid_property + ___drm_dbg + drm_detect_hdmi_monitor + drm_detect_monitor_audio + drm_dev_alloc + __drm_dev_dbg + drm_dev_printk + drm_dev_put + drm_dev_register + drm_dev_unregister + drm_display_info_set_bus_formats + drm_display_mode_from_videomode + drm_display_mode_to_videomode + __drm_err + drm_gem_dumb_map_offset + drm_gem_get_pages + drm_gem_handle_create + drm_gem_mmap + drm_gem_object_free + drm_gem_object_init + drm_gem_object_lookup + drm_gem_object_release + drm_gem_prime_fd_to_handle + drm_gem_prime_handle_to_fd + drm_gem_prime_mmap + drm_gem_put_pages + drm_gem_vm_close + drm_gem_vm_open + drm_get_edid + drm_hdmi_avi_infoframe_from_display_mode + drm_hdmi_avi_infoframe_quant_range + drm_hdmi_vendor_infoframe_from_display_mode + drm_helper_hpd_irq_event + drm_helper_probe_single_connector_modes + drm_ioctl + drm_kms_helper_hotplug_event + drm_kms_helper_is_poll_worker + drm_match_cea_mode + drm_mode_copy + drm_mode_create + drm_mode_duplicate + drm_mode_is_420_also + drm_mode_is_420_only + drm_mode_object_put + drm_mode_probed_add + drm_modeset_acquire_fini + drm_modeset_acquire_init + drm_modeset_backoff + drm_modeset_drop_locks + drm_modeset_lock + drm_mode_set_name + drm_modeset_unlock + drm_mode_validate_driver + drm_mode_vrefresh + drm_object_attach_property + drm_of_find_panel_or_bridge + drm_open + drm_panel_add + drm_panel_disable + drm_panel_enable + drm_panel_get_modes + drm_panel_init + drm_panel_prepare + drm_panel_unprepare + drm_poll + drm_prime_gem_destroy + drm_prime_get_contiguous_size + drm_prime_pages_to_sg + drm_prime_sg_to_page_array + drm_printf + drm_property_create_enum + drm_property_replace_global_blob + drm_read + drm_release + dummy_irq_chip + enable_irq + eth_mac_addr + ethtool_op_get_link + ethtool_op_get_ts_info + eth_type_trans + eth_validate_addr + extcon_get_edev_by_phandle + extcon_get_state + extcon_register_notifier + extcon_set_property_capability + extcon_set_state + extcon_set_state_sync + extcon_unregister_notifier + fd_install + _find_first_bit + _find_first_zero_bit + _find_next_bit + _find_next_zero_bit + finish_wait + flush_delayed_work + flush_work + __flush_workqueue + __folio_put + fortify_panic + fput + free_iova_fast + free_irq + free_netdev + __free_pages + free_pages + freq_qos_add_request + freq_qos_remove_request + freq_qos_update_request + fwnode_device_is_available + fwnode_get_name + fwnode_graph_get_next_endpoint + fwnode_graph_get_port_parent + fwnode_graph_get_remote_endpoint + fwnode_graph_get_remote_port_parent + fwnode_handle_put + fwnode_property_present + fwnode_property_read_u32_array + gcd + generic_handle_domain_irq + generic_mii_ioctl + __genphy_config_aneg + genphy_read_status + genphy_resume + genphy_soft_reset + genphy_suspend + gen_pool_add_owner + gen_pool_alloc_algo_owner + gen_pool_create + gen_pool_destroy + gen_pool_free_owner + get_cpu_device + get_device + __get_free_pages + get_random_bytes + get_unused_fd_flags + get_user_pages_remote + get_zeroed_page + gic_nonsecure_priorities + gpiochip_add_pin_range + gpiochip_generic_free + gpiochip_generic_request + gpiochip_get_data + gpiod_cansleep + gpiod_direction_input + gpiod_direction_output + gpiod_direction_output_raw + gpiod_get_optional + gpiod_get_raw_value + gpiod_get_value + gpiod_get_value_cansleep + gpiod_set_consumer_name + gpiod_set_raw_value + gpiod_set_raw_value_cansleep + gpiod_set_value + gpiod_set_value_cansleep + gpiod_to_irq + gpio_free + gpio_request + gpio_to_desc + handle_nested_irq + handle_simple_irq + hdmi_audio_infoframe_init + hdmi_audio_infoframe_pack + hdmi_drm_infoframe_pack + hdmi_infoframe_pack + hdmi_vendor_infoframe_pack + hid_debug + hid_hw_close + hid_hw_open + hid_hw_output_report + hid_hw_raw_request + hid_hw_request + hid_hw_start + hid_hw_stop + hid_open_report + __hid_register_driver + hid_unregister_driver + hid_validate_values + hrtimer_cancel + hrtimer_forward + hrtimer_init + hrtimer_start_range_ns + i2c_adapter_type + i2c_add_adapter + i2c_add_numbered_adapter + i2c_del_adapter + i2c_del_driver + i2c_get_adapter + i2c_put_adapter + i2c_register_driver + i2c_smbus_read_byte + i2c_smbus_read_byte_data + i2c_smbus_read_i2c_block_data + i2c_smbus_read_word_data + i2c_smbus_write_byte_data + i2c_smbus_write_i2c_block_data + __i2c_smbus_xfer + i2c_smbus_xfer + i2c_transfer + i2c_transfer_buffer_flags + i2c_verify_client + idr_alloc + idr_destroy + idr_find + idr_for_each + idr_get_next + idr_preload + idr_remove + iio_buffer_init + iio_buffer_put + iio_device_attach_buffer + iio_push_to_buffers + iio_read_channel_processed + init_net + __init_rwsem + __init_swait_queue_head + init_timer_key + init_wait_entry + __init_waitqueue_head + input_allocate_device + input_event + input_ff_create_memless + input_free_device + input_mt_init_slots + input_mt_report_slot_state + input_register_device + input_set_abs_params + input_set_capability + input_unregister_device + iommu_attach_device + iommu_attach_group + iommu_detach_device + iommu_detach_group + iommu_get_domain_for_dev + iommu_group_get + iommu_group_put + iommu_map + iommu_map_sg + iommu_set_fault_handler + iommu_unmap + ioremap_prot + iounmap + __irq_apply_affinity_hint + irq_create_mapping_affinity + irq_dispose_mapping + __irq_domain_add + irq_domain_remove + irq_get_irq_data + irq_modify_status + irq_of_parse_and_map + __irq_resolve_mapping + irq_set_chained_handler_and_data + irq_set_chip + irq_set_chip_and_handler_name + irq_set_chip_data + irq_set_irq_type + irq_set_irq_wake + irq_to_desc + is_vmalloc_addr + jiffies + jiffies_to_msecs + kasan_flag_enabled + kasprintf + kernel_neon_begin + kernel_neon_end + __kfifo_alloc + __kfifo_free + __kfifo_in + __kfifo_out + kfree + kfree_sensitive + kfree_skb_reason + kimage_voffset + __kmalloc + kmalloc_caches + kmalloc_large + kmalloc_trace + kmem_cache_alloc + kmem_cache_create + kmem_cache_destroy + kmemdup + kobject_create_and_add + kobject_init_and_add + kobject_put + kstrdup + kstrdup_const + kstrtoint + kstrtoll + kstrtouint + kstrtouint_from_user + kstrtoull + kthread_create_on_node + kthread_flush_worker + kthread_queue_work + kthread_should_stop + kthread_stop + ktime_get + ktime_get_mono_fast_ns + ktime_get_real_ts64 + ktime_get_with_offset + kvfree + kvfree_call_rcu + kvmalloc_node + led_classdev_register_ext + led_classdev_unregister + led_set_brightness_nosleep + led_trigger_register + led_trigger_unregister + __list_add_valid + __list_del_entry_valid + __local_bh_enable_ip + log_post_read_mmio + log_post_write_mmio + log_read_mmio + log_write_mmio + mdiobus_alloc_size + mdiobus_free + mdiobus_read + mdiobus_unregister + mdiobus_write + media_create_pad_link + media_device_cleanup + media_device_init + __media_device_register + media_device_unregister + media_entity_pads_init + media_graph_walk_cleanup + media_graph_walk_init + media_graph_walk_next + media_graph_walk_start + media_pad_remote_pad_first + memcpy + __memcpy_fromio + __memcpy_toio + memdup_user + memmove + mem_section + memset + __memset_io + memstart_addr + mfd_add_devices + mfd_remove_devices + mii_check_media + mii_ethtool_gset + mii_nway_restart + mipi_dsi_attach + mipi_dsi_create_packet + mipi_dsi_detach + mipi_dsi_device_register_full + mipi_dsi_device_unregister + mipi_dsi_host_register + mipi_dsi_host_unregister + misc_deregister + misc_register + __mmap_lock_do_trace_acquire_returned + __mmap_lock_do_trace_released + __mmap_lock_do_trace_start_locking + mmc_cqe_request_done + mmc_of_parse + mmc_request_done + __mmdrop + mod_delayed_work_on + mod_timer + module_layout + module_put + __msecs_to_jiffies + msleep + msleep_interruptible + __mutex_init + mutex_is_locked + mutex_lock + mutex_lock_interruptible + mutex_trylock + mutex_unlock + napi_gro_receive + __netdev_alloc_skb + netdev_err + netdev_info + netdev_update_features + netdev_warn + netif_carrier_off + netif_carrier_on + netif_rx + netif_tx_wake_queue + netlink_unicast + net_ratelimit + nla_memcpy + __nla_parse + nla_put + nla_reserve + nonseekable_open + noop_llseek + nr_cpu_ids + ns_to_kernel_old_timeval + ns_to_timespec64 + nvmem_cell_get + nvmem_cell_put + nvmem_cell_read + of_address_to_resource + of_alias_get_id + of_clk_add_hw_provider + of_clk_add_provider + of_clk_del_provider + of_clk_get + of_clk_get_by_name + of_clk_get_parent_count + of_clk_hw_simple_get + of_clk_src_onecell_get + of_clk_src_simple_get + of_count_phandle_with_args + of_device_get_match_data + of_device_is_available + of_device_is_compatible + of_drm_find_bridge + of_drm_find_panel + of_find_compatible_node + of_find_device_by_node + of_find_i2c_device_by_node + of_find_matching_node_and_match + of_find_mipi_dsi_host_by_node + of_find_node_by_name + of_find_node_opts_by_path + of_find_property + of_get_child_by_name + of_get_drm_display_mode + of_get_i2c_adapter_by_node + of_get_named_gpio_flags + of_get_next_available_child + of_get_next_child + of_get_parent + of_get_property + of_get_regulator_init_data + of_graph_get_endpoint_by_regs + of_graph_get_next_endpoint + of_graph_get_remote_node + of_graph_get_remote_port_parent + of_graph_parse_endpoint + of_iomap + of_irq_get_byname + of_machine_is_compatible + of_match_device + of_match_node + of_node_name_eq + of_nvmem_cell_get + __of_parse_phandle_with_args + of_phy_simple_xlate + of_property_count_elems_of_size + of_property_match_string + of_property_read_string + of_property_read_string_helper + of_property_read_u32_index + of_property_read_u64 + of_property_read_u64_index + of_property_read_variable_u32_array + of_property_read_variable_u8_array + of_prop_next_string + of_regulator_match + of_reserved_mem_device_init_by_idx + __of_reset_control_get + of_usb_get_dr_mode_by_phy + of_usb_host_tpl_support + page_pinner_inited + __page_pinner_put_page + panic_notifier_list + param_get_int + param_ops_bool + param_ops_charp + param_ops_int + param_ops_string + param_ops_uint + pcie_capability_clear_and_set_word + pci_read_config_dword + pci_write_config_dword + __per_cpu_offset + perf_trace_buf_alloc + perf_trace_run_bpf_submit + phy_attached_info + phy_configure + phy_drivers_register + phy_drivers_unregister + phy_exit + phy_init + phy_mipi_dphy_config_validate + phy_power_off + phy_power_on + phy_set_mode_ext + pinconf_generic_dt_free_map + pinconf_generic_dt_node_to_map + pinctrl_dev_get_drvdata + pinctrl_enable + pinctrl_generic_add_group + pinctrl_generic_get_group + pinctrl_generic_get_group_count + pinctrl_generic_get_group_name + pinctrl_generic_get_group_pins + pinctrl_gpio_direction_input + pinctrl_gpio_direction_output + pinctrl_lookup_state + pinctrl_pm_select_default_state + pinctrl_pm_select_idle_state + pinctrl_pm_select_sleep_state + pinctrl_select_state + pinctrl_utils_free_map + pinmux_generic_add_function + pinmux_generic_get_function + pinmux_generic_get_function_count + pinmux_generic_get_function_groups + pinmux_generic_get_function_name + platform_device_put + platform_device_register_full + platform_device_unregister + __platform_driver_probe + __platform_driver_register + platform_driver_unregister + platform_get_ethdev_address + platform_get_irq + platform_get_irq_byname + platform_get_irq_optional + platform_get_resource + platform_get_resource_byname + pm_clk_create + pm_clk_destroy + pm_power_off + __pm_relax + pm_relax + __pm_runtime_disable + pm_runtime_enable + pm_runtime_forbid + pm_runtime_force_resume + pm_runtime_force_suspend + pm_runtime_get_if_active + __pm_runtime_idle + __pm_runtime_resume + pm_runtime_set_autosuspend_delay + __pm_runtime_set_status + __pm_runtime_suspend + __pm_runtime_use_autosuspend + __pm_stay_awake + pm_stay_awake + pm_wakeup_dev_event + pm_wakeup_ws_event + power_supply_am_i_supplied + power_supply_changed + power_supply_class + power_supply_get_battery_info + power_supply_get_by_name + power_supply_get_by_phandle + power_supply_get_drvdata + power_supply_get_property + power_supply_register + power_supply_reg_notifier + power_supply_unregister + preempt_schedule + preempt_schedule_notrace + prepare_to_wait_event + print_hex_dump + _printk + proc_create + proc_create_data + proc_dointvec + proc_mkdir + pskb_expand_head + __pskb_pull_tail + put_device + __put_task_struct + put_unused_fd + pwm_adjust_config + pwm_apply_state + queue_delayed_work_on + queue_work_on + ___ratelimit + rational_best_approximation + _raw_read_lock_irqsave + _raw_read_unlock_irqrestore + _raw_spin_lock + _raw_spin_lock_bh + _raw_spin_lock_irq + _raw_spin_lock_irqsave + _raw_spin_trylock + _raw_spin_unlock + _raw_spin_unlock_bh + _raw_spin_unlock_irq + _raw_spin_unlock_irqrestore + _raw_write_lock_irqsave + _raw_write_unlock_irqrestore + rb_erase + rb_insert_color + rb_next + __rcu_read_lock + __rcu_read_unlock + rdev_get_drvdata + rdev_get_id + refcount_warn_saturate + regcache_cache_only + regcache_mark_dirty + regcache_sync + register_chrdev_region + register_inetaddr_notifier + register_netdev + register_netdevice + register_netdevice_notifier + register_pm_notifier + register_reboot_notifier + register_restart_handler + regmap_bulk_read + regmap_bulk_write + regmap_field_read + regmap_field_update_bits_base + regmap_irq_get_domain + regmap_irq_get_virq + regmap_multi_reg_write + regmap_raw_read + regmap_raw_write + regmap_read + regmap_update_bits_base + regmap_write + regulator_bulk_disable + regulator_bulk_enable + regulator_disable + regulator_disable_regmap + regulator_enable + regulator_enable_regmap + regulator_get + regulator_get_optional + regulator_get_voltage + regulator_get_voltage_sel_regmap + regulator_is_enabled + regulator_is_enabled_regmap + regulator_list_voltage_linear + regulator_list_voltage_linear_range + regulator_map_voltage_linear + regulator_map_voltage_linear_range + regulator_put + regulator_register_notifier + regulator_set_ramp_delay_regmap + regulator_set_voltage + regulator_set_voltage_sel_regmap + regulator_set_voltage_time_sel + regulator_unregister + regulator_unregister_notifier + release_firmware + remap_pfn_range + remove_proc_entry + request_firmware + request_threaded_irq + reset_control_assert + reset_control_deassert + rfkill_alloc + rfkill_destroy + rfkill_register + rfkill_set_hw_state_reason + rfkill_unregister + round_jiffies_relative + rtc_class_open + rtc_read_time + rtc_time64_to_tm + rtc_tm_to_time64 + rtc_valid_tm + rtnl_is_locked + rtnl_lock + rtnl_unlock + scatterwalk_map_and_copy + sched_clock + sched_set_fifo + schedule + schedule_timeout + scnprintf + __sdhci_add_host + sdhci_cleanup_host + sdhci_enable_clk + sdhci_get_property + sdhci_pltfm_clk_get_max_clock + sdhci_pltfm_free + sdhci_pltfm_init + sdhci_reset + sdhci_resume_host + sdhci_set_bus_width + sdhci_set_clock + sdhci_setup_host + sdhci_suspend_host + seq_lseek + seq_printf + seq_putc + seq_puts + seq_read + set_page_dirty_lock + sg_alloc_table + sg_alloc_table_from_pages_segment + sg_free_table + sg_init_one + sg_init_table + sg_nents + sg_next + simple_attr_open + simple_attr_release + simple_read_from_buffer + simple_strtol + simple_strtoul + single_open + single_release + skb_add_rx_frag + skb_clone + skb_copy + skb_copy_bits + skb_copy_expand + skb_pull + skb_push + skb_put + skb_trim + skcipher_alloc_instance_simple + skcipher_register_instance + skcipher_walk_done + skcipher_walk_virt + snd_ctl_boolean_mono_info + snd_pcm_format_width + snd_pcm_stop_xrun + snd_soc_add_component_controls + snd_soc_add_dai_controls + snd_soc_card_jack_new_pins + snd_soc_component_read + snd_soc_component_set_jack + snd_soc_component_update_bits + snd_soc_component_write + snd_soc_daifmt_clock_provider_from_bitmap + snd_soc_daifmt_parse_clock_provider_raw + snd_soc_daifmt_parse_format + snd_soc_dai_set_sysclk + snd_soc_dapm_add_routes + snd_soc_dapm_disable_pin_unlocked + snd_soc_dapm_force_enable_pin_unlocked + snd_soc_dapm_get_enum_double + snd_soc_dapm_get_volsw + snd_soc_dapm_new_controls + snd_soc_dapm_put_enum_double + snd_soc_dapm_put_volsw + snd_soc_dapm_sync_unlocked + snd_soc_get_dai_name + snd_soc_get_enum_double + snd_soc_get_volsw + snd_soc_info_enum_double + snd_soc_info_volsw + snd_soc_jack_add_gpios + snd_soc_jack_report + snd_soc_of_parse_audio_routing + snd_soc_of_parse_card_name + snd_soc_params_to_frame_size + snd_soc_pm_ops + snd_soc_put_enum_double + snd_soc_put_volsw + snd_soc_unregister_component + snprintf + sort + __spi_register_driver + spi_setup + spi_sync + sprintf + sscanf + __stack_chk_fail + strcasecmp + strchr + strcmp + strcpy + strlcat + strlcpy + strlen + strncasecmp + strncmp + strncpy + strnlen + strrchr + strscpy + strsep + strstr + __sw_hweight16 + __sw_hweight32 + __sw_hweight64 + __sw_hweight8 + swiotlb_max_segment + sync_file_create + sync_file_get_fence + synchronize_irq + synchronize_net + synchronize_rcu + syscon_node_to_regmap + syscon_regmap_lookup_by_phandle + sysfs_create_file_ns + sysfs_create_group + sysfs_create_link + sysfs_remove_file_ns + sysfs_remove_group + sysfs_remove_link + sysfs_streq + system_freezable_wq + system_highpri_wq + system_long_wq + system_power_efficient_wq + system_state + system_wq + tasklet_init + tasklet_kill + __tasklet_schedule + tasklet_setup + tasklet_unlock_wait + __task_pid_nr_ns + tcpm_tcpc_reset + thermal_zone_get_zone_by_name + trace_event_buffer_commit + trace_event_buffer_reserve + trace_event_printf + trace_event_raw_init + trace_event_reg + trace_handle_return + __traceiter_mmap_lock_acquire_returned + __traceiter_mmap_lock_released + __traceiter_mmap_lock_start_locking + __tracepoint_mmap_lock_acquire_returned + __tracepoint_mmap_lock_released + __tracepoint_mmap_lock_start_locking + trace_print_array_seq + trace_raw_output_prep + __trace_trigger_soft_disabled + typec_mux_get_drvdata + typec_mux_register + typec_mux_unregister + typec_switch_get_drvdata + typec_switch_register + typec_switch_unregister + __udelay + unregister_chrdev_region + unregister_inetaddr_notifier + unregister_netdev + unregister_netdevice_notifier + unregister_netdevice_queue + unregister_reboot_notifier + unregister_sysctl_table + up + update_devfreq + up_read + up_write + usb_add_hcd + usb_alloc_urb + usb_autopm_get_interface + usb_autopm_put_interface + usb_calc_bus_time + usb_control_msg + usb_create_hcd + usb_debug_root + usb_deregister + usb_deregister_dev + usb_disabled + usb_free_urb + usb_hcd_check_unlink_urb + usb_hcd_giveback_urb + usb_hcd_link_urb_to_ep + usb_hcd_resume_root_hub + usb_hcd_unlink_urb_from_ep + usb_hid_driver + usbnet_change_mtu + usbnet_defer_kevent + usbnet_disconnect + usbnet_get_drvinfo + usbnet_get_endpoints + usbnet_get_link + usbnet_get_link_ksettings_mii + usbnet_get_msglevel + usbnet_link_change + usbnet_nway_reset + usbnet_open + usbnet_probe + usbnet_read_cmd + usbnet_read_cmd_nopm + usbnet_resume + usbnet_set_link_ksettings_mii + usbnet_set_msglevel + usbnet_skb_return + usbnet_start_xmit + usbnet_stop + usbnet_suspend + usbnet_tx_timeout + usbnet_write_cmd + usbnet_write_cmd_async + usbnet_write_cmd_nopm + usb_put_hcd + usb_register_dev + usb_register_driver + usb_remove_hcd + usb_set_interface + usb_submit_urb + __usecs_to_jiffies + usleep_range_state + v4l2_ctrl_find + v4l2_ctrl_g_ctrl + v4l2_ctrl_g_ctrl_int64 + v4l2_ctrl_handler_free + v4l2_ctrl_handler_init_class + __v4l2_ctrl_handler_setup + v4l2_ctrl_handler_setup + __v4l2_ctrl_modify_range + v4l2_ctrl_new_custom + v4l2_ctrl_new_int_menu + v4l2_ctrl_new_std + v4l2_ctrl_new_std_menu + v4l2_ctrl_new_std_menu_items + __v4l2_ctrl_s_ctrl + __v4l2_ctrl_s_ctrl_int64 + v4l2_ctrl_subdev_subscribe_event + v4l2_device_register + v4l2_device_register_subdev + __v4l2_device_register_subdev_nodes + v4l2_device_unregister + v4l2_device_unregister_subdev + v4l2_enum_dv_timings_cap + v4l2_event_queue + v4l2_event_subdev_unsubscribe + v4l2_event_subscribe + v4l2_event_unsubscribe + v4l2_fh_open + v4l2_i2c_subdev_init + v4l2_match_dv_timings + v4l2_pipeline_link_notify + v4l2_pipeline_pm_get + v4l2_pipeline_pm_put + v4l2_print_dv_timings + v4l2_querymenu + v4l2_src_change_event_subdev_subscribe + v4l2_subdev_call_wrappers + v4l2_subdev_init + v4l2_subdev_link_validate + v4l2_subdev_notify_event + v4l2_type_names + v4l2_valid_dv_timings + vb2_buffer_done + vb2_dma_contig_memops + vb2_fop_mmap + vb2_fop_poll + vb2_fop_release + vb2_ioctl_create_bufs + vb2_ioctl_dqbuf + vb2_ioctl_expbuf + vb2_ioctl_prepare_buf + vb2_ioctl_qbuf + vb2_ioctl_querybuf + vb2_ioctl_reqbufs + vb2_ioctl_streamoff + vb2_ioctl_streamon + vb2_ops_wait_finish + vb2_ops_wait_prepare + vb2_plane_cookie + vb2_plane_vaddr + vb2_queue_init + vb2_queue_release + vb2_vmalloc_memops + vfree + video_devdata + video_device_pipeline_start + video_device_pipeline_stop + video_device_release_empty + video_ioctl2 + __video_register_device + video_unregister_device + vmalloc + vmap + vm_get_page_prot + vm_map_pages + vsnprintf + vunmap + vzalloc + wait_for_completion + wait_for_completion_timeout + __wake_up + wake_up_process + wakeup_source_add + wakeup_source_remove + __warn_printk + work_busy + +# required by act8865-regulator.ko + regulator_set_pull_down_regmap + +# required by adc-keys.ko + iio_get_channel_type + input_set_poll_interval + input_setup_polling + +# required by aes-ce-ccm.ko + ce_aes_expandkey + skcipher_walk_aead_decrypt + skcipher_walk_aead_encrypt + +# required by analogix_dp.ko + drm_atomic_get_old_connector_for_encoder + +# required by aspm_ext.ko + pci_find_capability + pci_find_ext_capability + +# required by bcmdhd.ko + alloc_etherdev_mqs + cpu_bit_bitmap + down_interruptible + down_timeout + get_random_u32 + iwe_stream_add_event + iwe_stream_add_point + iwe_stream_add_value + __kfifo_init + kobject_uevent + kthread_complete_and_exit + mmc_set_data_timeout + mmc_sw_reset + mmc_wait_for_req + netdev_state_change + __netlink_kernel_create + netlink_kernel_release + nla_put_nohdr + __nlmsg_put + _raw_read_lock_bh + _raw_read_unlock_bh + sched_set_fifo_low + sched_set_normal + sdio_claim_host + sdio_disable_func + sdio_enable_func + sdio_f0_readb + sdio_f0_writeb + sdio_get_host_pm_caps + sdio_memcpy_fromio + sdio_memcpy_toio + sdio_readb + sdio_readl + sdio_readsb + sdio_readw + sdio_register_driver + sdio_release_host + sdio_set_block_size + sdio_set_host_pm_flags + sdio_unregister_driver + sdio_writeb + sdio_writel + sdio_writew + set_cpus_allowed_ptr + __skb_pad + sock_wfree + sprint_symbol + strcat + strspn + sys_tz + unregister_pm_notifier + vprintk + wireless_send_event + +# required by bifrost_kbase.ko + __arch_clear_user + __bitmap_weight + cache_line_size + clear_page + __ClearPageMovable + complete_all + devfreq_add_device + devfreq_cooling_em_register + devfreq_cooling_unregister + devfreq_remove_device + dev_pm_opp_find_freq_exact + dma_fence_default_wait + dma_fence_remove_callback + downgrade_write + down_read_trylock + dump_stack + find_get_pid + find_vma_intersection + __folio_lock + freezer_active + freezing_slow_path + generic_file_llseek + get_user_pages + get_user_pages_fast + hrtimer_active + iomem_resource + kobject_del + kstrndup + kstrtobool_from_user + ktime_get_raw + ktime_get_raw_ts64 + mas_empty_area_rev + memchr + of_dma_is_coherent + of_property_read_variable_u64_array + param_array_ops + param_ops_byte + pid_task + pin_user_pages + pin_user_pages_remote + put_pid + rb_first + rb_prev + rb_replace_node + __refrigerator + register_oom_notifier + register_shrinker + __release_region + remap_vmalloc_range + __request_region + seq_open + __seq_open_private + seq_release + seq_release_private + seq_write + set_freezable + __SetPageMovable + shmem_file_setup + simple_open + strcspn + _totalram_pages + __traceiter_gpu_mem_total + trace_output_call + __tracepoint_gpu_mem_total + trace_print_flags_seq + trace_print_symbols_seq + try_module_get + unlock_page + unmap_mapping_range + unpin_user_page + unregister_oom_notifier + unregister_shrinker + vmalloc_user + vmf_insert_pfn_prot + +# required by bq25890_charger.ko + devm_regmap_field_bulk_alloc + power_supply_get_property_from_supplier + +# required by cdc-wdm.ko + cdc_parse_cdc_header + usb_poison_urb + usb_unpoison_urb + +# required by cdc_mbim.ko + cdc_ncm_bind_common + cdc_ncm_change_mtu + cdc_ncm_fill_tx_frame + cdc_ncm_rx_verify_ndp16 + cdc_ncm_rx_verify_nth16 + cdc_ncm_select_altsetting + cdc_ncm_unbind + in6_dev_finish_destroy + __ipv6_addr_type + ipv6_stub + usb_match_id + __vlan_find_dev_deep_rcu + +# required by cfg80211.ko + bpf_trace_run10 + bpf_trace_run8 + __dev_change_net_namespace + __dev_get_by_index + dev_get_by_index + device_add + device_del + device_rename + genlmsg_multicast_allns + genlmsg_put + genl_register_family + genl_unregister_family + get_net_ns_by_fd + get_net_ns_by_pid + inet_csk_get_port + init_uts_ns + key_create_or_update + key_put + keyring_alloc + kobject_uevent_env + ktime_get_coarse_with_offset + memcmp + netlink_broadcast + netlink_register_notifier + netlink_unregister_notifier + net_ns_type_operations + nla_find + nla_put_64bit + __nla_validate + of_prop_next_u32 + __put_net + register_pernet_device + request_firmware_nowait + rfkill_blocked + rfkill_resume_polling + __sock_create + sock_release + unregister_pernet_device + verify_pkcs7_signature + wireless_nlevent_flush + +# required by clk-link.ko + pm_clk_add + pm_clk_resume + pm_clk_suspend + +# required by clk-out.ko + __clk_hw_register_gate + of_clk_parent_fill + +# required by clk-rk628.ko + devm_reset_controller_register + +# required by clk-rockchip-regmap.ko + clk_hw_get_num_parents + clk_hw_get_parent_by_index + divider_recalc_rate + divider_round_rate_parent + +# required by clk-rockchip.ko + clk_divider_ops + clk_divider_ro_ops + clk_fixed_factor_ops + clk_fractional_divider_general_approximation + clk_fractional_divider_ops + __clk_get_hw + clk_hw_register_composite + clk_hw_round_rate + clk_hw_unregister_composite + clk_mux_ops + clk_mux_ro_ops + clk_register_divider_table + clk_register_fixed_factor + clk_register_gate + clk_register_mux_table + match_string + reset_controller_register + +# required by clk-scmi.ko + clk_hw_set_rate_range + of_clk_hw_onecell_get + scmi_driver_register + scmi_driver_unregister + +# required by cm3218.ko + i2c_smbus_write_word_data + +# required by cma_heap.ko + cma_get_name + dma_heap_get_drvdata + +# required by cpufreq-dt.ko + cpufreq_enable_boost_support + cpufreq_freq_attr_scaling_available_freqs + cpufreq_freq_attr_scaling_boost_freqs + cpufreq_generic_frequency_table_verify + cpufreq_generic_get + cpufreq_register_driver + cpufreq_unregister_driver + dev_pm_opp_free_cpufreq_table + dev_pm_opp_get_max_transition_latency + dev_pm_opp_get_sharing_cpus + dev_pm_opp_get_suspend_opp_freq + dev_pm_opp_init_cpufreq_table + dev_pm_opp_of_cpumask_add_table + dev_pm_opp_of_cpumask_remove_table + dev_pm_opp_of_register_em + dev_pm_opp_set_sharing_cpus + policy_has_boost_freq + +# required by cpufreq_ondemand.ko + cpufreq_cpu_get_raw + cpufreq_dbs_governor_exit + cpufreq_dbs_governor_init + cpufreq_dbs_governor_limits + cpufreq_dbs_governor_start + cpufreq_dbs_governor_stop + cpufreq_table_index_unsorted + dbs_update + get_cpu_idle_time_us + gov_update_cpu_data + sampling_rate_store + +# required by cqhci.ko + devm_blk_crypto_profile_init + +# required by cryptodev.ko + crypto_alloc_akcipher + flush_dcache_page + krealloc + register_sysctl_table + sg_last + +# required by cw221x_battery.ko + power_supply_is_system_supplied + +# required by display-connector.ko + drm_atomic_get_new_bridge_state + drm_probe_ddc + +# required by dm9601.ko + mii_link_ok + +# required by drm_display_helper.ko + drm_atomic_get_new_private_obj_state + drm_atomic_get_old_private_obj_state + drm_atomic_get_private_obj_state + __drm_atomic_helper_private_obj_duplicate_state + drm_atomic_private_obj_fini + drm_atomic_private_obj_init + drm_connector_register + drm_crtc_add_crc_entry + __drm_crtc_commit_free + drm_crtc_commit_wait + drm_crtc_wait_one_vblank + __drm_debug + drm_display_mode_from_cea_vic + drm_edid_duplicate + drm_edid_get_monitor_name + drm_modeset_lock_single_interruptible + drm_object_property_set_value + __drm_printfn_debug + drm_sysfs_connector_status_event + hdmi_drm_infoframe_init + memchr_inv + request_firmware_direct + +# required by drm_dma_helper.ko + dma_alloc_pages + dma_free_pages + dma_mmap_pages + drm_atomic_helper_damage_iter_init + drm_atomic_helper_damage_iter_next + drm_format_info_block_height + drm_format_info_block_width + drm_gem_create_mmap_offset + drm_gem_fb_get_obj + drm_gem_private_object_init + +# required by dw-hdmi-hdcp.ko + kstrtobool + sha1_init + sha1_transform + +# required by dw-hdmi-qp.ko + drm_mode_equal + hdmi_avi_infoframe_pack_only + +# required by dw-hdmi.ko + drm_connector_attach_hdr_output_metadata_property + drm_connector_attach_max_bpc_property + drm_default_rgb_quant_range + +# required by dw-mipi-dsi.ko + drm_panel_bridge_remove + +# required by dw_mmc-rockchip.ko + clk_get_phase + mmc_send_tuning + +# required by dw_mmc.ko + device_property_read_string_array + mmc_add_host + mmc_alloc_host + mmc_can_gpio_cd + mmc_detect_change + mmc_free_host + mmc_gpio_get_cd + mmc_gpio_get_ro + mmc_regulator_get_supply + mmc_regulator_set_ocr + mmc_regulator_set_vqmmc + mmc_remove_host + sdio_signal_irq + sg_miter_next + sg_miter_start + sg_miter_stop + +# required by dw_wdt.ko + watchdog_init_timeout + watchdog_register_device + watchdog_set_restart_priority + watchdog_unregister_device + +# required by dwc2.ko + __bitmap_clear + bitmap_find_next_zero_area_off + kmem_cache_free + of_usb_update_otg_caps + phy_reset + usb_add_gadget_udc + usb_del_gadget_udc + usb_ep_set_maxpacket_limit + usb_gadget_giveback_request + usb_gadget_map_request + usb_gadget_set_state + usb_gadget_unmap_request + usb_get_dr_mode + usb_get_role_switch_default_mode + usb_hcd_map_urb_for_dma + usb_hcd_unmap_urb_for_dma + usb_hub_clear_tt_buffer + usb_phy_set_charger_current + usb_role_switch_get_drvdata + usb_role_switch_get_role + usb_role_switch_register + usb_role_switch_unregister + usb_speed_string + usb_wakeup_enabled_descendants + +# required by dwmac-rockchip.ko + csum_tcpudp_nofold + ip_send_check + of_get_phy_mode + +# required by fusb302.ko + extcon_get_extcon_dev + fwnode_create_software_node + kthread_create_worker + kthread_destroy_worker + tcpm_cc_change + tcpm_pd_hard_reset + tcpm_pd_receive + tcpm_pd_transmit_complete + tcpm_register_port + tcpm_unregister_port + tcpm_vbus_change + +# required by gc2145.ko + v4l2_ctrl_subdev_log_status + +# required by gpio-regulator.ko + gpiod_count + +# required by gpio-rockchip.ko + gpiochip_add_data_with_key + gpiochip_relres_irq + gpiochip_remove + gpiochip_reqres_irq + handle_edge_irq + handle_level_irq + __irq_alloc_domain_generic_chips + irq_gc_ack_set_bit + irq_gc_mask_clr_bit + irq_gc_mask_set_bit + irq_gc_set_wake + irq_generic_chip_ops + irq_get_domain_generic_chip + of_pinctrl_get + +# required by hid-alps.ko + input_alloc_absinfo + input_mt_sync_frame + +# required by hid-holtek-kbd.ko + usb_ifnum_to_if + +# required by hid-primax.ko + hid_report_raw_event + +# required by hid-thrustmaster.ko + usb_interrupt_msg + usb_kill_urb + +# required by i2c-dev.ko + bus_register_notifier + bus_unregister_notifier + device_for_each_child + i2c_bus_type + i2c_for_each_dev + sysfs_emit + +# required by i2c-gpio.ko + desc_to_gpio + i2c_bit_add_numbered_bus + +# required by i2c-hid.ko + hid_add_device + hid_allocate_device + hid_destroy_device + hid_driver_reset_resume + hid_driver_suspend + hid_input_report + hid_parse_report + +# required by i2c-mux.ko + __i2c_transfer + rt_mutex_lock + rt_mutex_trylock + rt_mutex_unlock + +# required by i2c-rk3x.ko + i2c_parse_fw_timings + unregister_restart_handler + +# required by industrialio-buffer-cb.ko + iio_channel_get_all + iio_channel_release_all + iio_update_buffers + +# required by industrialio-triggered-buffer.ko + iio_alloc_pollfunc + iio_dealloc_pollfunc + iio_device_id + +# required by io-domain.ko + _dev_crit + +# required by kalmia.ko + usb_bulk_msg + +# required by kfifo_buf.ko + __kfifo_from_user + __kfifo_to_user + +# required by leds-gpio.ko + led_init_default_state_get + +# required by leds-rgb13h.ko + led_classdev_flash_register_ext + led_classdev_flash_unregister + +# required by ledtrig-heartbeat.ko + avenrun + +# required by mac80211.ko + alloc_netdev_mqs + __alloc_percpu_gfp + arc4_crypt + arc4_setkey + call_rcu + crc32_be + crypto_shash_digest + crypto_shash_finup + crypto_shash_setkey + dev_alloc_name + dev_fetch_sw_netstats + __dev_queue_xmit + ether_setup + free_percpu + get_random_u16 + __hw_addr_init + __hw_addr_sync + __hw_addr_unsync + kernel_param_lock + kernel_param_unlock + kfree_skb_list_reason + ktime_get_seconds + netdev_set_default_ethtool_ops + netif_receive_skb + netif_receive_skb_list + netif_tx_stop_all_queues + ___pskb_trim + rcu_barrier + register_inet6addr_notifier + rhashtable_free_and_destroy + rhashtable_insert_slow + rhltable_init + __rht_bucket_nested + rht_bucket_nested + rht_bucket_nested_insert + round_jiffies + round_jiffies_up + skb_checksum_help + skb_clone_sk + skb_complete_wifi_ack + skb_dequeue + skb_ensure_writable + __skb_get_hash + __skb_gso_segment + skb_queue_head + skb_queue_purge + skb_queue_tail + unregister_inet6addr_notifier + unregister_netdevice_many + +# required by max96755f.ko + kstrtou8 + +# required by ohci-hcd.ko + dma_pool_alloc + dma_pool_create + dma_pool_destroy + dma_pool_free + gen_pool_dma_alloc_align + gen_pool_dma_zalloc_align + sb800_prefetch + schedule_timeout_uninterruptible + usb_amd_dev_put + usb_amd_quirk_pll_disable + usb_amd_quirk_pll_enable + usb_hc_died + usb_hcd_poll_rh_status + usb_hcds_loaded + usb_root_hub_lost_power + +# required by ohci-platform.ko + usb_hcd_platform_shutdown + +# required by optee-rng.ko + driver_register + +# required by optee.ko + alloc_pages_exact + __arm_smccc_hvc + bus_for_each_dev + device_register + free_pages_exact + mas_find + memremap + memunmap + pfn_is_map_memory + wait_for_completion_interruptible + +# required by panel-simple.ko + drm_bus_flags_from_videomode + drm_connector_set_panel_orientation + drm_panel_of_backlight + drm_panel_remove + mipi_dsi_compression_mode + mipi_dsi_dcs_get_display_brightness + mipi_dsi_dcs_set_display_brightness + mipi_dsi_dcs_write_buffer + mipi_dsi_driver_register_full + mipi_dsi_driver_unregister + mipi_dsi_generic_write + mipi_dsi_picture_parameter_set + of_drm_get_panel_orientation + of_find_i2c_adapter_by_node + of_get_display_timing + videomode_from_timing + +# required by pcie-dw-rockchip.ko + device_release_driver + dw_pcie_find_ext_capability + dw_pcie_host_init + dw_pcie_link_up + dw_pcie_read + dw_pcie_read_dbi + dw_pcie_setup_rc + dw_pcie_write + dw_pcie_write_dbi + generic_handle_irq + pci_disable_link_state + pci_set_power_state + +# required by pcierockchiphost.ko + devm_pci_alloc_host_bridge + devm_pci_remap_cfg_resource + jiffies_to_usecs + of_pci_get_max_link_speed + pci_host_probe + pci_remove_root_bus + pci_stop_root_bus + regulator_get_current_limit + +# required by pcs_xpcs.ko + __bitmap_and + mdiobus_modify_changed + phylink_mii_c22_pcs_decode_state + phylink_mii_c22_pcs_encode_advertisement + +# required by phy-rockchip-inno-usb2.ko + devm_extcon_register_notifier + extcon_sync + +# required by phy-rockchip-inno-usb3.ko + usb_add_phy + +# required by phy-rockchip-samsung-hdptx-hdmi.ko + of_platform_device_create + +# required by phy-rockchip-usbdp.ko + usb_get_maximum_speed + +# required by pinctrl-rk628.ko + irq_domain_xlate_twocell + pinctrl_add_gpio_range + pinctrl_find_gpio_range_from_pin + +# required by pinctrl-rk805.ko + device_set_node + +# required by pinctrl-rockchip.ko + devm_kasprintf_strarray + of_find_node_by_phandle + of_platform_depopulate + of_platform_populate + pinconf_generic_parse_dt_config + pinctrl_force_default + pinctrl_force_sleep + pin_get_name + +# required by pl330.ko + amba_driver_register + amba_driver_unregister + dma_async_device_register + dma_async_device_unregister + dma_async_tx_descriptor_init + dmaengine_unmap_put + dma_get_slave_channel + loops_per_jiffy + of_dma_controller_free + of_dma_controller_register + pm_runtime_irq_safe + +# required by pm_domains.ko + clk_bulk_put + of_genpd_add_provider_onecell + panic + param_get_bool + param_set_bool + pm_clk_add_clk + pm_genpd_add_subdomain + pm_genpd_init + pm_genpd_remove + pm_wq + +# required by pwm-regulator.ko + regulator_map_voltage_iterate + +# required by pwm-rockchip.ko + __ndelay + pwmchip_add + pwmchip_remove + +# required by pwm_bl.ko + backlight_device_register + backlight_device_unregister + pwm_free + pwm_request + +# required by pwrseq_simple.ko + bitmap_alloc + devm_gpiod_get_array + gpiod_set_array_value_cansleep + mmc_pwrseq_register + mmc_pwrseq_unregister + +# required by reboot-mode.ko + devres_release + kernel_kobj + kfree_const + +# required by rfkill-rk.ko + rfkill_init_sw_state + rfkill_set_sw_state + +# required by rga3.ko + dma_fence_wait_timeout + find_vma + idr_alloc_cyclic + kstrdup_quotable_cmdline + mmput + +# required by rk628.ko + irq_domain_xlate_onetwocell + irq_set_parent + +# required by rk628_dsi.ko + bus_find_device + device_match_name + platform_bus_type + +# required by rk805-pwrkey.ko + devm_request_any_context_irq + +# required by rk806-core.ko + devm_regmap_add_irq_chip + +# required by rk806-spi.ko + spi_write_then_read + +# required by rk808-regulator.ko + gpiod_is_active_low + +# required by rk808.ko + devm_register_sys_off_handler + platform_device_add + platform_device_alloc + register_syscore_ops + regmap_add_irq_chip + regmap_del_irq_chip + unregister_syscore_ops + +# required by rk860x-regulator.ko + regulator_suspend_enable + +# required by rk_crypto.ko + crypto_ahash_digest + crypto_ahash_finup + crypto_dequeue_request + crypto_enqueue_request + crypto_init_queue + crypto_register_ahash + crypto_register_akcipher + crypto_register_skcipher + crypto_req_done + crypto_unregister_ahash + crypto_unregister_akcipher + crypto_unregister_skcipher + des_expand_key + rsa_parse_priv_key + rsa_parse_pub_key + scatterwalk_ffwd + sg_copy_from_buffer + sg_copy_to_buffer + sg_nents_for_len + sg_pcopy_from_buffer + sg_pcopy_to_buffer + +# required by rk_fiq_debugger.ko + console_lock + console_unlock + __cpuhp_setup_state + cpu_pm_register_notifier + of_irq_parse_one + oops_in_progress + platform_device_register + +# required by rk_headset_irq_hook_adc.ko + iio_read_channel_raw + +# required by rk_ircut.ko + drain_workqueue + +# required by rk_vcodec.ko + devm_iounmap + disable_hardirq + __fdget + __kthread_init_worker + kthread_worker_fn + proc_create_single_data + proc_remove + reserve_iova + +# required by rknpu.ko + dev_pm_domain_attach_by_name + dev_pm_domain_detach + drm_gem_handle_delete + drm_gem_mmap_obj + drm_gem_prime_export + drm_gem_prime_import_dev + of_dma_configure_id + set_user_nice + vmf_insert_mixed + vm_insert_page + +# required by rockchip-cpufreq.ko + cpufreq_unregister_notifier + +# required by rockchip-hdmirx.ko + cec_s_phys_addr + cpu_latency_qos_remove_request + device_create_with_groups + of_reserved_mem_device_release + v4l2_ctrl_log_status + v4l2_ctrl_subscribe_event + v4l2_find_dv_timings_cap + v4l2_src_change_event_subscribe + vb2_fop_read + +# required by rockchip-rng.ko + devm_of_iomap + +# required by rockchip_bus.ko + cpu_topology + +# required by rockchip_dmc.ko + cpufreq_cpu_put + cpufreq_quick_get + devfreq_event_disable_edev + devfreq_event_enable_edev + devfreq_event_get_edev_by_phandle + devfreq_event_get_edev_count + devfreq_event_get_event + devfreq_monitor_resume + devfreq_monitor_start + devfreq_monitor_stop + devfreq_monitor_suspend + devfreq_update_interval + devm_devfreq_register_opp_notifier + dev_pm_opp_add + input_close_device + input_open_device + input_register_handle + input_register_handler + input_unregister_handle + +# required by rockchip_dmc_common.ko + down_write_trylock + +# required by rockchip_headset_core.ko + iio_channel_get + +# required by rockchip_iommu.ko + iommu_device_register + iommu_device_sysfs_add + iommu_device_sysfs_remove + iommu_group_alloc + iommu_group_ref_get + platform_irq_count + report_iommu_fault + +# required by rockchip_ipa.ko + of_get_compatible_child + +# required by rockchip_opp_select.ko + dev_pm_opp_of_add_table + regulator_get_linear_step + +# required by rockchip_pwm_remotectl.ko + __tasklet_hi_schedule + +# required by rockchip_saradc.ko + iio_get_time_ns + iio_trigger_notify_done + +# required by rockchip_system_monitor.ko + add_cpu + bitmap_parselist + compat_only_sysfs_link_entry_to_kobj + dev_pm_qos_add_request + dev_pm_qos_remove_request + dev_pm_qos_update_request + remove_cpu + thermal_zone_get_temp + +# required by rockchip_thermal.ko + devm_clk_put + devm_thermal_of_zone_register + thermal_zone_device_disable + thermal_zone_device_enable + thermal_zone_device_update + +# required by rockchipdrm.ko + adjust_managed_page_count + component_add + component_bind_all + component_compare_dev + component_del + component_master_add_with_match + component_master_del + component_match_add_release + component_unbind_all + devm_of_phy_get_by_index + driver_find_device + drm_aperture_remove_conflicting_framebuffers + drm_atomic_commit + drm_atomic_get_plane_state + drm_atomic_helper_check + drm_atomic_helper_check_plane_state + drm_atomic_helper_cleanup_planes + drm_atomic_helper_commit + drm_atomic_helper_commit_hw_done + drm_atomic_helper_commit_modeset_disables + drm_atomic_helper_commit_modeset_enables + drm_atomic_helper_commit_planes + __drm_atomic_helper_connector_destroy_state + __drm_atomic_helper_connector_duplicate_state + __drm_atomic_helper_connector_reset + __drm_atomic_helper_crtc_destroy_state + __drm_atomic_helper_crtc_duplicate_state + __drm_atomic_helper_disable_plane + drm_atomic_helper_duplicate_state + drm_atomic_helper_fake_vblank + drm_atomic_helper_page_flip + __drm_atomic_helper_plane_destroy_state + __drm_atomic_helper_plane_duplicate_state + __drm_atomic_helper_plane_reset + drm_atomic_helper_set_config + drm_atomic_helper_shutdown + drm_atomic_helper_swap_state + drm_atomic_helper_wait_for_vblanks + drm_atomic_set_crtc_for_connector + drm_atomic_set_crtc_for_plane + drm_atomic_set_fb_for_plane + drm_atomic_set_mode_for_crtc + drm_atomic_state_alloc + __drm_atomic_state_free + drm_bridge_chain_mode_set + drm_bridge_get_edid + drm_connector_list_update + drm_crtc_cleanup + drm_crtc_enable_color_mgmt + drm_crtc_from_index + drm_crtc_handle_vblank + drm_crtc_init_with_planes + drm_crtc_send_vblank_event + drm_crtc_vblank_get + drm_crtc_vblank_off + drm_crtc_vblank_on + drm_crtc_vblank_put + drm_do_get_edid + drm_encoder_cleanup + drm_encoder_init + drm_event_reserve_init_locked + drm_firmware_drivers_only + drm_flip_work_cleanup + drm_flip_work_commit + drm_flip_work_init + drm_flip_work_queue + drm_format_info + drm_format_info_min_pitch + drm_framebuffer_cleanup + drm_framebuffer_init + drm_gem_dmabuf_export + drm_gem_dmabuf_mmap + drm_gem_dmabuf_release + drm_gem_dmabuf_vmap + drm_gem_dmabuf_vunmap + drm_gem_fb_afbc_init + drm_gem_fb_create_handle + drm_gem_fb_init_with_funcs + drm_gem_map_attach + drm_gem_map_detach + drm_gem_map_dma_buf + drm_gem_unmap_dma_buf + drm_get_format_info + drm_helper_mode_fill_fb_struct + drm_kms_helper_poll_enable + drm_kms_helper_poll_fini + drm_kms_helper_poll_init + drm_mm_init + drm_mm_insert_node_in_range + drmm_mode_config_init + drm_mm_print + drm_mm_remove_node + drm_mm_reserve_node + drm_mm_takedown + drm_mode_config_cleanup + drm_mode_config_helper_resume + drm_mode_config_helper_suspend + drm_mode_config_reset + drm_mode_create_hdmi_colorspace_property + drm_mode_create_tv_properties + drm_mode_crtc_set_gamma_size + drm_mode_debug_printmodeline + drm_mode_is_420 + drm_mode_object_get + drm_mode_prune_invalid + drm_mode_set_crtcinfo + drm_modeset_lock_all + drm_modeset_unlock_all + drm_mode_sort + drm_mode_validate_size + drm_mode_validate_ycbcr420 + drm_of_crtc_port_mask + drm_of_encoder_active_endpoint + drm_plane_cleanup + drm_plane_create_alpha_property + drm_plane_create_blend_mode_property + drm_plane_create_rotation_property + drm_plane_create_zpos_property + __drm_printfn_seq_file + drm_property_blob_get + drm_property_blob_put + drm_property_create + drm_property_create_bitmask + drm_property_create_bool + drm_property_create_object + drm_property_create_range + drm_property_destroy + drm_property_lookup_blob + drm_property_replace_blob + __drm_puts_seq_file + drm_rect_calc_hscale + drm_self_refresh_helper_cleanup + drm_self_refresh_helper_init + drm_send_event_locked + drm_simple_encoder_init + drm_universal_plane_init + drm_vblank_init + drm_writeback_connector_init + drm_writeback_queue_job + drm_writeback_signal_completion + hdmi_drm_infoframe_pack_only + iommu_domain_alloc + iommu_domain_free + memblock_free + mipi_dsi_packet_format_is_short + of_clk_set_defaults + of_find_backlight_by_node + of_fwnode_ops + of_get_next_parent + of_graph_get_port_by_id + of_graph_get_remote_endpoint + of_graph_get_remote_port + phy_mipi_dphy_get_default_config + platform_find_device_by_driver + __platform_register_drivers + platform_unregister_drivers + system_unbound_wq + __vmalloc + +# required by rtc-rk808.ko + rtc_update_irq + +# required by sdhci-of-arasan.ko + sdhci_add_host + sdhci_cqe_disable + sdhci_cqe_enable + sdhci_cqe_irq + sdhci_dumpregs + sdhci_execute_tuning + sdhci_pltfm_unregister + sdhci_set_power_and_bus_voltage + sdhci_set_uhs_signaling + +# required by sdhci-of-dwcmshc.ko + devm_clk_bulk_get_optional + dma_get_required_mask + sdhci_adma_write_desc + sdhci_remove_host + sdhci_request + +# required by sg.ko + blk_execute_rq_nowait + blk_mq_free_request + blk_rq_map_user_io + blk_rq_unmap_user + cdev_alloc + class_interface_unregister + fasync_helper + get_sg_io_hdr + kill_fasync + __module_get + put_sg_io_hdr + _raw_write_lock_irq + _raw_write_unlock_irq + register_sysctl + scsi_alloc_request + scsi_autopm_get_device + scsi_autopm_put_device + scsi_block_when_processing_errors + scsi_cmd_allowed + scsi_command_size_tbl + scsi_device_get + scsi_device_put + scsi_ioctl + scsi_ioctl_block_when_processing_errors + scsi_normalize_sense + __scsi_print_sense + scsi_register_interface + sdev_prefix_printk + +# required by sha1-ce.ko + crypto_register_shash + crypto_sha1_finup + crypto_sha1_update + crypto_unregister_shash + fpsimd_context_busy + irq_stat + +# required by sii902x.ko + hdmi_avi_infoframe_pack + +# required by smsc.ko + devm_clk_get_optional_enabled + phy_error + phy_trigger_machine + +# required by smsc95xx.ko + __irq_domain_alloc_fwnode + irq_domain_free_fwnode + irq_domain_simple_ops + __mdiobus_register + net_selftest + net_selftest_get_count + net_selftest_get_strings + phy_connect_direct + phy_disconnect + phy_ethtool_get_link_ksettings + phy_ethtool_nway_reset + phy_ethtool_set_link_ksettings + phy_find_first + phy_get_pause + phy_init_hw + phy_mii_ioctl + phy_print_status + phy_start + phy_stop + usb_autopm_get_interface_no_resume + +# required by snd-soc-aw883xx.ko + snd_soc_register_component + +# required by snd-soc-es8316.ko + snd_pcm_hw_constraint_list + +# required by snd-soc-hdmi-codec.ko + snd_ctl_add + snd_ctl_new1 + snd_pcm_add_chmap_ctls + snd_pcm_create_iec958_consumer_default + snd_pcm_fill_iec958_consumer + snd_pcm_fill_iec958_consumer_hw_params + snd_pcm_hw_constraint_eld + snd_pcm_stop + +# required by snd-soc-rk817.ko + snd_soc_component_exit_regmap + snd_soc_component_init_regmap + +# required by snd-soc-rockchip-hdmi.ko + snd_soc_dapm_new_widgets + +# required by snd-soc-rockchip-multicodecs.ko + snd_soc_dapm_get_pin_switch + snd_soc_dapm_info_pin_switch + snd_soc_dapm_put_pin_switch + snd_soc_jack_add_zones + snd_soc_jack_get_type + +# required by snd-soc-rockchip-spdif.ko + snd_pcm_create_iec958_consumer_hw_params + +# required by snd-soc-rt5640.ko + regmap_register_patch + snd_soc_dapm_force_bias_level + +# required by snd-soc-simple-card-utils.ko + devm_kvasprintf + snd_pcm_hw_constraint_minmax + snd_soc_component_set_sysclk + snd_soc_dai_active + snd_soc_dai_set_tdm_slot + snd_soc_of_parse_audio_simple_widgets + snd_soc_of_parse_pin_switches + snd_soc_runtime_calc_hw + +# required by snd-soc-simple-card.ko + snd_soc_dai_link_set_capabilities + snd_soc_of_get_dai_name + snd_soc_of_parse_aux_devs + snd_soc_of_parse_node_prefix + snd_soc_of_parse_tdm_slot + +# required by spi-rockchip.ko + devm_spi_register_controller + __spi_alloc_controller + spi_controller_resume + spi_controller_suspend + +# required by spidev.ko + __register_chrdev + stream_open + __unregister_chrdev + +# required by stmmac-platform.ko + device_get_phy_mode + of_get_mac_address + of_phy_is_fixed_link + platform_get_irq_byname_optional + +# required by stmmac.ko + bpf_dispatcher_xdp_func + bpf_master_redirect_enabled_key + bpf_prog_put + bpf_stats_enabled_key + bpf_warn_invalid_xdp_action + devm_alloc_etherdev_mqs + dql_completed + dql_reset + ethtool_convert_legacy_u32_to_link_mode + ethtool_convert_link_mode_to_legacy_u32 + flow_block_cb_setup_simple + flow_rule_match_basic + flow_rule_match_ipv4_addrs + flow_rule_match_ports + flow_rule_match_vlan + fwnode_get_named_child_node + fwnode_get_phy_node + get_device_system_crosststamp + mdiobus_get_phy + mdio_device_create + mdio_device_free + __napi_alloc_skb + napi_complete_done + napi_disable + napi_enable + __napi_schedule + napi_schedule_prep + netdev_alert + netdev_pick_tx + netdev_rss_key_fill + netif_device_attach + netif_device_detach + netif_napi_add_weight + __netif_napi_del + netif_schedule_queue + netif_set_real_num_rx_queues + netif_set_real_num_tx_queues + __num_online_cpus + __of_mdiobus_register + page_pool_alloc_pages + page_pool_create + page_pool_destroy + page_pool_put_defragged_page + page_pool_release_page + phy_init_eee + phylink_connect_phy + phylink_create + phylink_destroy + phylink_disconnect_phy + phylink_ethtool_get_eee + phylink_ethtool_get_pauseparam + phylink_ethtool_get_wol + phylink_ethtool_ksettings_get + phylink_ethtool_ksettings_set + phylink_ethtool_nway_reset + phylink_ethtool_set_eee + phylink_ethtool_set_pauseparam + phylink_ethtool_set_wol + phylink_expects_phy + phylink_fwnode_phy_connect + phylink_generic_validate + phylink_get_eee_err + phylink_mii_ioctl + phylink_resume + phylink_speed_down + phylink_speed_up + phylink_start + phylink_stop + phylink_suspend + ptp_clock_event + ptp_clock_index + ptp_clock_register + ptp_clock_unregister + reset_control_reset + skb_tstamp_tx + __traceiter_xdp_exception + __tracepoint_xdp_exception + xdp_convert_zc_to_xdp_frame + xdp_do_flush + xdp_do_redirect + xdp_master_redirect + xdp_return_frame + xdp_return_frame_rx_napi + xdp_rxq_info_is_reg + __xdp_rxq_info_reg + xdp_rxq_info_reg_mem_model + xdp_rxq_info_unreg + xdp_rxq_info_unreg_mem_model + xdp_warn + xp_alloc + xp_dma_map + xp_dma_sync_for_cpu_slow + xp_dma_sync_for_device_slow + xp_dma_unmap + xp_free + xp_raw_get_dma + xp_set_rxq_info + xsk_clear_rx_need_wakeup + xsk_get_pool_from_qid + xsk_set_rx_need_wakeup + xsk_set_tx_need_wakeup + xsk_tx_completed + xsk_tx_peek_desc + xsk_tx_release + xsk_uses_need_wakeup + +# required by sw_sync.ko + dma_fence_free + dma_fence_signal_locked + __get_task_comm + +# required by system_heap.ko + dmabuf_page_pool_alloc + dmabuf_page_pool_create + dmabuf_page_pool_destroy + dmabuf_page_pool_free + dmabuf_page_pool_get_size + dma_heap_get_dev + __sg_page_iter_next + __sg_page_iter_start + +# required by tcpci_husb311.ko + tcpci_get_tcpm_port + tcpci_irq + tcpci_register_port + tcpci_unregister_port + +# required by tee.ko + add_uevent_var + bus_register + bus_unregister + class_find_device + crypto_shash_final + gen_pool_first_fit_align + gen_pool_virt_to_phys + get_kernel_pages + idr_replace + in_egroup_p + pin_user_pages_fast + unpin_user_pages + uuid_null + vmalloc_to_page + +# required by timer-rockchip.ko + clockevents_config_and_register + +# required by tps65132-regulator.ko + regulator_set_active_discharge_regmap + +# required by trancevibrator.ko + usb_get_dev + usb_put_dev + +# required by twofish_generic.ko + crypto_register_alg + crypto_unregister_alg + +# required by usblp.ko + add_wait_queue + default_wake_function + remove_wait_queue + stpcpy + usb_anchor_urb + usb_find_common_endpoints + usb_find_interface + usb_get_intf + usb_kill_anchored_urbs + usb_poison_anchored_urbs + usb_put_intf + usb_unanchor_urb + +# required by v4l2-async.ko + fwnode_handle_get + media_create_ancillary_link + +# required by v4l2-fwnode.ko + fwnode_graph_parse_endpoint + fwnode_property_get_reference_args + fwnode_property_read_string + fwnode_property_read_u64_array + +# required by video_rkcif.ko + media_entity_setup_link + +# required by video_rkisp.ko + param_ops_ullong + v4l2_ctrl_poll + +# required by videobuf2-cma-sg.ko + frame_vector_to_pages + split_page + vb2_common_vm_ops + vb2_create_framevec + vb2_destroy_framevec + vm_map_ram + vm_unmap_ram + +# required by vl6180.ko + iio_read_const_attr diff --git a/android/abi_gki_aarch64_tuxera b/android/abi_gki_aarch64_tuxera new file mode 100644 index 000000000000..cbffd3f1685f --- /dev/null +++ b/android/abi_gki_aarch64_tuxera @@ -0,0 +1,280 @@ +[abi_symbol_list] + alt_cb_patch_nops + __arch_copy_from_user + __arch_copy_to_user + autoremove_wake_function + balance_dirty_pages_ratelimited + bcmp + __bforget + __bh_read_batch + bio_add_page + bio_alloc_bioset + bio_put + __bitmap_weight + bit_waitqueue + blkdev_issue_discard + blkdev_issue_flush + blk_finish_plug + blk_start_plug + __blockdev_direct_IO + block_dirty_folio + block_invalidate_folio + block_is_partially_uptodate + __breadahead + __bread_gfp + __brelse + buffer_migrate_folio + call_rcu + capable + capable_wrt_inode_uidgid + __check_object_size + clean_bdev_aliases + clear_inode + clear_page + clear_page_dirty_for_io + copy_page_from_iter_atomic + cpu_hwcaps + create_empty_buffers + current_umask + d_add + d_add_ci + 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 + file_check_and_advance_wb_err + filemap_add_folio + filemap_dirty_folio + filemap_fault + filemap_fdatawait_range + filemap_fdatawrite + filemap_fdatawrite_range + 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 + __folio_alloc + __folio_cancel_dirty + __folio_lock + __folio_put + folio_wait_bit + folio_write_one + fortify_panic + fput + freezer_active + 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_maybe_inc_iversion + inode_newsize_ok + inode_set_flags + __insert_inode_hash + invalidate_bdev + invalidate_inode_pages2_range + invalidate_mapping_pages + io_schedule + iov_iter_advance + iov_iter_alignment + iov_iter_get_pages2 + 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 + kmalloc_trace + kmem_cache_alloc + kmem_cache_alloc_lru + kmem_cache_create + kmem_cache_create_usercopy + kmem_cache_destroy + kmem_cache_free + krealloc + kthread_complete_and_exit + kthread_create_on_node + kthread_should_stop + kthread_stop + ktime_get_coarse_real_ts64 + kvfree + __list_add_valid + __list_del_entry_valid + load_nls + load_nls_default + __lock_buffer + 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 + mount_bdev + mpage_readahead + mpage_read_folio + __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_pinner_inited + __page_pinner_put_page + 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 + ___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 + rcu_barrier + 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 + schedule_timeout_interruptible + security_inode_init_security + seq_printf + setattr_prepare + set_freezable + set_nlink + set_page_dirty + __set_page_dirty_nobuffers + set_page_writeback + 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 + sys_tz + tag_pages_for_writeback + time64_to_tm + timestamp_truncate + touch_atime + _trace_android_vh_record_pcpu_rwsem_starttime + _trace_android_vh_record_pcpu_rwsem_time_early + truncate_inode_pages + truncate_inode_pages_final + truncate_pagecache + truncate_setsize + try_to_writeback_inodes_sb + unload_nls + unlock_buffer + unlock_new_inode + unlock_page + unregister_filesystem + up_read + up_write + vfree + vfs_fsync_range + __vmalloc + vmalloc + vsnprintf + vzalloc + __wait_on_buffer + wake_bit_function + __wake_up + wake_up_process + __warn_printk + write_inode_now + xa_load diff --git a/android/abi_gki_aarch64_unisoc b/android/abi_gki_aarch64_unisoc index f2724b1aa984..af9b8e60d708 100644 --- a/android/abi_gki_aarch64_unisoc +++ b/android/abi_gki_aarch64_unisoc @@ -1,5 +1,6 @@ [abi_symbol_list] # commonly used symbols + access_process_vm add_cpu add_wait_queue add_wait_queue_exclusive @@ -14,6 +15,8 @@ __alloc_skb alloc_workqueue alt_cb_patch_nops + android_debug_per_cpu_symbol + android_debug_symbol arch_freq_scale __arch_copy_from_user __arch_copy_to_user @@ -171,6 +174,7 @@ dma_unmap_page_attrs do_trace_netlink_extack double_rq_lock + down down_read down_write driver_unregister @@ -181,6 +185,7 @@ __dynamic_dev_dbg __dynamic_netdev_dbg __dynamic_pr_debug + inet_proto_csum_replace4 init_task enable_irq eth_mac_addr @@ -191,7 +196,10 @@ eth_type_trans eth_validate_addr extcon_get_state + filp_open_block + find_get_pid _find_next_bit + find_task_by_vpid finish_wait flush_delayed_work flush_work @@ -217,6 +225,7 @@ get_device __get_free_pages get_random_bytes + get_zeroed_page gic_nonsecure_priorities gpiochip_disable_irq gpiochip_enable_irq @@ -286,6 +295,10 @@ kmem_cache_destroy kmem_cache_free kmemdup + kmsg_dump_get_buffer + kmsg_dump_register + kmsg_dump_rewind + kmsg_dump_unregister kobject_uevent kobject_uevent_env ksoftirqd @@ -310,11 +323,13 @@ log_post_write_mmio log_read_mmio log_write_mmio + mas_find mbox_chan_received_data mbox_chan_txdone memcpy memmove memset + mem_section memstart_addr migrate_swap misc_deregister @@ -354,12 +369,15 @@ netlink_unicast net_ratelimit nf_conntrack_destroy + nf_conntrack_find_get + nf_ct_destroy nla_memcpy __nla_parse nla_put nla_put_64bit nla_strscpy __nlmsg_put + node_states noop_llseek nr_cpu_ids ns_capable @@ -394,6 +412,7 @@ param_ops_int param_ops_uint pcpu_nr_pages + percpu_counter_batch __per_cpu_offset perf_trace_buf_alloc perf_trace_run_bpf_submit @@ -437,9 +456,11 @@ __pskb_copy_fclone pskb_expand_head __pskb_pull_tail + pskb_trim_rcsum_slow put_cmsg put_device __put_net + put_pid __put_task_struct queue_delayed_work_on queue_work_on @@ -498,6 +519,7 @@ request_threaded_irq return_address root_task_group + rt6_lookup rtc_time64_to_tm rtnl_is_locked rtnl_link_register @@ -513,6 +535,7 @@ scnprintf security_sk_clone security_sock_graft + send_sig_info seq_buf_printf seq_lseek seq_printf @@ -552,6 +575,8 @@ skb_unlink sk_error_report sk_free + snd_ctl_find_id + snd_info_get_line snprintf sock_alloc_send_pskb sock_create_kern @@ -688,9 +713,11 @@ __traceiter_android_vh_cpufreq_target __traceiter_android_vh_cpu_idle_enter __traceiter_android_vh_cpu_idle_exit + __traceiter_android_vh_enable_thermal_power_throttle __traceiter_android_vh_get_thermal_zone_device __traceiter_android_vh_modify_thermal_request_freq __traceiter_android_vh_modify_thermal_target_freq + __traceiter_android_vh_regmap_update __traceiter_android_vh_scheduler_tick __traceiter_android_vh_thermal_power_cap __traceiter_android_vh_thermal_register @@ -765,9 +792,11 @@ __tracepoint_android_vh_cpufreq_target __tracepoint_android_vh_cpu_idle_enter __tracepoint_android_vh_cpu_idle_exit + __tracepoint_android_vh_enable_thermal_power_throttle __tracepoint_android_vh_get_thermal_zone_device __tracepoint_android_vh_modify_thermal_request_freq __tracepoint_android_vh_modify_thermal_target_freq + __tracepoint_android_vh_regmap_update __tracepoint_android_vh_scheduler_tick __tracepoint_android_vh_thermal_power_cap __tracepoint_android_vh_thermal_register @@ -819,6 +848,7 @@ unregister_pernet_device unregister_pernet_subsys unregister_pm_notifier + up up_read up_write update_rq_clock @@ -1204,6 +1234,17 @@ sock_common_recvmsg sock_common_setsockopt +# required by ims_bridge.ko + icmp6_send + inet_select_addr + ip6_find_1stfragopt + ip6_route_output_flags + ipv6_dev_get_saddr + ipv6_select_ident + nf_ct_get_tuplepr + nf_ct_invert_tuple + xfrm_state_afinfo_get_rcu + # required by kfifo_buf.ko devres_add __devres_alloc_node @@ -1444,6 +1485,9 @@ power_supply_put power_supply_temp2resist_simple +# required by sc27xx_pd.ko + devm_extcon_register_notifier_all + # required by sc27xx_typec.ko devm_extcon_dev_allocate devm_extcon_dev_register @@ -1537,12 +1581,20 @@ spi_controller_suspend spi_finalize_current_transfer +# required by sprd-audio-codec.ko + regulator_register + snd_pcm_rate_bit_to_rate + snd_pcm_rate_to_rate_bit + # required by sprd-bc1p2.ko kthread_flush_worker __kthread_init_worker kthread_queue_work kthread_worker_fn +# required by sprd-charger-manager.ko + orderly_poweroff + # required by sprd-dma.ko dma_async_device_register dma_async_device_unregister @@ -1618,14 +1670,18 @@ drm_poll drm_read drm_release + drm_send_event_timestamp_locked drm_vblank_init mipi_dsi_host_register mipi_dsi_host_unregister + mipi_dsi_set_maximum_return_packet_size of_drm_find_bridge + of_get_drm_display_mode of_graph_get_port_by_id of_graph_get_remote_node __platform_register_drivers platform_unregister_drivers + regmap_get_reg_stride # required by sprd-iommu.ko iommu_device_register @@ -1651,6 +1707,30 @@ dev_pm_opp_add update_devfreq +# required by sprd_tcpm.ko + typec_altmode_attention + typec_altmode_notify + typec_altmode_update_active + typec_altmode_vdm + typec_find_power_role + typec_match_altmode + typec_partner_register_altmode + typec_port_register_altmode + typec_set_mode + typec_unregister_altmode + +# required by sprd_thermal_ctl.ko + cpufreq_quick_get_max + devfreq_cooling_em_register + devfreq_cooling_unregister + +# required by sprd_soc_thm.ko + thermal_of_zone_unregister + thermal_zone_bind_cooling_device + thermal_zone_device_register_with_trips + thermal_zone_device_update + thermal_zone_unbind_cooling_device + # required by sprd_hwspinlock.ko devm_hwspin_lock_register @@ -1693,6 +1773,9 @@ devm_watchdog_register_device watchdog_init_timeout +# required by sprdbt_tty.ko + tty_port_link_device + # required by sysdump.ko android_rvh_probe_register input_close_device @@ -1796,6 +1879,7 @@ sk_stop_timer sock_recvmsg sock_rfree + strcasecmp strchr strrchr sysctl_vals @@ -1829,6 +1913,8 @@ # required by trusty-log.ko vm_map_ram vm_unmap_ram +# required by sprd_time_sync_cp.ko + pvclock_gtod_register_notifier # required by trusty-pm.ko unregister_syscore_ops diff --git a/android/abi_gki_aarch64_vivo b/android/abi_gki_aarch64_vivo index 934892f00111..679c37e8b995 100644 --- a/android/abi_gki_aarch64_vivo +++ b/android/abi_gki_aarch64_vivo @@ -164,6 +164,7 @@ __kfifo_to_user __kfifo_to_user_r __kmalloc + __kmalloc_node __kmalloc_node_track_caller __kthread_init_worker __list_add_valid @@ -240,6 +241,7 @@ __reset_control_get __rht_bucket_nested __rt_mutex_init + __sbitmap_queue_get __scsi_add_device __scsi_iterate_devices __scsi_print_sense @@ -417,6 +419,7 @@ __traceiter_android_vh_try_to_freeze_todo __traceiter_android_vh_try_to_freeze_todo_unfrozen __traceiter_android_vh_try_to_unmap_one + __traceiter_android_vh_tune_scan_type __traceiter_android_vh_ufs_check_int_errors __traceiter_android_vh_ufs_clock_scaling __traceiter_android_vh_ufs_compl_command @@ -430,6 +433,7 @@ __traceiter_android_vh_update_topology_flags_workfn __traceiter_android_vh_watchdog_timer_softlockup __traceiter_binder_transaction_received + __traceiter_block_rq_insert __traceiter_clock_set_rate __traceiter_console __traceiter_cpu_frequency_limits @@ -585,6 +589,7 @@ __tracepoint_android_vh_try_to_unmap_one __tracepoint_android_vh_try_to_freeze_todo __tracepoint_android_vh_try_to_freeze_todo_unfrozen + __tracepoint_android_vh_tune_scan_type __tracepoint_android_vh_ufs_check_int_errors __tracepoint_android_vh_ufs_clock_scaling __tracepoint_android_vh_ufs_compl_command @@ -598,6 +603,7 @@ __tracepoint_android_vh_update_topology_flags_workfn __tracepoint_android_vh_watchdog_timer_softlockup __tracepoint_binder_transaction_received + __tracepoint_block_rq_insert __tracepoint_clock_set_rate __tracepoint_console __tracepoint_cpu_frequency_limits @@ -798,12 +804,15 @@ bitmap_release_region bitmap_to_arr32 bitmap_zalloc + blk_bio_list_merge blk_execute_rq blk_execute_rq_nowait + blk_fill_rwbs blk_mq_alloc_request blk_mq_alloc_sq_tag_set blk_mq_alloc_tag_set blk_mq_complete_request + blk_mq_debugfs_rq_show blk_mq_end_request blk_mq_end_request_batch blk_mq_free_request @@ -814,6 +823,7 @@ blk_mq_quiesce_queue blk_mq_requeue_request blk_mq_rq_cpu + blk_mq_run_hw_queue blk_mq_start_request blk_mq_start_stopped_hw_queues blk_mq_stop_hw_queue @@ -843,6 +853,8 @@ blk_rq_map_user_io blk_rq_map_user_iov blk_rq_unmap_user + blk_stat_disable_accounting + blk_stat_enable_accounting blk_status_to_errno blk_update_request blkdev_get_by_dev @@ -1986,6 +1998,9 @@ edac_device_free_ctl_info edac_device_handle_ce_count edac_device_handle_ue_count + elv_register + elv_unregister + elevator_alloc em_cpu_get emergency_restart enable_irq @@ -3832,6 +3847,15 @@ safe_candev_priv sampling_rate_store sb800_prefetch + sbitmap_add_wait_queue + sbitmap_any_bit_set + sbitmap_del_wait_queue + sbitmap_init_node + sbitmap_queue_clear + sbitmap_queue_init_node + sbitmap_queue_min_shallow_depth + sbitmap_queue_resize + sbitmap_queue_show scatterwalk_ffwd scatterwalk_map_and_copy sched_clock @@ -3924,6 +3948,8 @@ seq_hex_dump seq_hlist_next seq_hlist_start_head + seq_list_next + seq_list_start seq_lseek seq_open seq_printf @@ -4419,6 +4445,7 @@ timecounter_cyc2time timecounter_init timecounter_read + timer_reduce timer_unstable_counter_workaround timespec64_to_jiffies tipc_dump_done diff --git a/android/abi_gki_aarch64_xiaomi b/android/abi_gki_aarch64_xiaomi index 759d39f44517..5c5426861df6 100644 --- a/android/abi_gki_aarch64_xiaomi +++ b/android/abi_gki_aarch64_xiaomi @@ -144,6 +144,9 @@ sbitmap_weight scsi_done scsi_remove_device + param_get_bool + blk_mq_unique_tag + param_set_uint_minmax #required by mi_sched.ko __traceiter_android_vh_scheduler_tick @@ -186,6 +189,40 @@ io_cgrp_subsys_on_dfl_key ioc_lookup_icq bdi_dev_name + blk_mq_run_hw_queues + blkcg_policy_register + elv_register + blkcg_policy_unregister + elv_rb_former_request + elv_rb_latter_request + elevator_alloc + blk_stat_enable_accounting + blkcg_deactivate_policy + blk_stat_disable_accounting + sbitmap_queue_min_shallow_depth + blk_mq_sched_try_merge + elv_bio_merge_ok + elv_rb_find + elv_rb_del + elv_rb_add + elv_rqhash_del + ioc_find_get_icq + put_io_context + blk_mq_sched_try_insert_merge + elv_unregister + __tracepoint_block_rq_insert + elv_rqhash_add + __traceiter_block_rq_insert + kmem_cache_alloc_node + bio_associate_blkg_from_css + kernfs_path_from_node + blkcg_activate_policy + +#required by mq-deadline module + blk_mq_debugfs_rq_show + seq_list_start + seq_list_next + __blk_mq_debugfs_rq_show #required by metis.ko module __traceiter_android_vh_rwsem_read_wait_start @@ -205,6 +242,7 @@ __tracepoint_android_rvh_set_cpus_allowed_comm __tracepoint_android_rvh_dequeue_task cpuset_cpus_allowed + cpufreq_update_policy #required by millet.ko __traceiter_android_vh_binder_wait_for_work @@ -231,6 +269,9 @@ #required by touch module power_supply_is_system_supplied +#required by mi-power.ko + class_create_file_ns + #required by mi_mempool.ko __traceiter_android_vh_alloc_pages_reclaim_bypass __traceiter_android_vh_alloc_pages_failure_bypass @@ -244,3 +285,55 @@ #required by mi_mempool.ko __traceiter_android_vh_madvise_cold_pageout_skip __tracepoint_android_vh_madvise_cold_pageout_skip + +#required by n_gsm.ko + tty_write_room + tty_port_tty_set + tty_register_device + tty_hung_up_p + tty_name + tty_port_block_til_ready + tty_port_close_start + tty_port_lower_dtr_rts + tty_port_close_end + +#required by mtdoops.ko + of_node_name_prefix + bdi_unregister + +#required by dispaly.ko + mipi_dsi_dcs_set_display_off + +#required by debug_ext.ko + of_find_all_nodes + +# required by mi_mem_center.ko + __traceiter_android_vh_rmqueue_smallest_bypass + __tracepoint_android_vh_rmqueue_smallest_bypass + __traceiter_android_vh_free_one_page_bypass + __tracepoint_android_vh_free_one_page_bypass + +# required by SAGT module + __traceiter_android_rvh_before_do_sched_yield + __tracepoint_android_rvh_before_do_sched_yield + +#required by minetwork.ko + sock_wake_async + bpf_map_put + bpf_map_inc + __dev_direct_xmit + napi_busy_loop + int_active_memcg + bpf_redirect_info + dma_need_sync + page_pool_put_page_bulk + build_skb_around + +#required by xm_ispv4_pcie.ko + pci_ioremap_bar + pci_disable_pcie_error_reporting + +#required by lock_optimization module + __traceiter_android_vh_record_pcpu_rwsem_time_early + __tracepoint_android_vh_record_pcpu_rwsem_time_early + cgroup_threadgroup_rwsem diff --git a/android/abi_gki_protected_exports_aarch64 b/android/abi_gki_protected_exports_aarch64 index 6b40237c253a..7d97572e6175 100644 --- a/android/abi_gki_protected_exports_aarch64 +++ b/android/abi_gki_protected_exports_aarch64 @@ -334,4 +334,12 @@ wpan_phy_for_each wpan_phy_free wpan_phy_new wpan_phy_register -wpan_phy_unregister
\ No newline at end of file +wpan_phy_unregister +wwan_create_port +wwan_port_get_drvdata +wwan_port_rx +wwan_port_txoff +wwan_port_txon +wwan_register_ops +wwan_remove_port +wwan_unregister_ops
\ No newline at end of file diff --git a/android/abi_gki_protected_exports_x86_64 b/android/abi_gki_protected_exports_x86_64 index 6b40237c253a..7d97572e6175 100644 --- a/android/abi_gki_protected_exports_x86_64 +++ b/android/abi_gki_protected_exports_x86_64 @@ -334,4 +334,12 @@ wpan_phy_for_each wpan_phy_free wpan_phy_new wpan_phy_register -wpan_phy_unregister
\ No newline at end of file +wpan_phy_unregister +wwan_create_port +wwan_port_get_drvdata +wwan_port_rx +wwan_port_txoff +wwan_port_txon +wwan_register_ops +wwan_remove_port +wwan_unregister_ops
\ No newline at end of file diff --git a/android/gki_aarch64_protected_modules b/android/gki_aarch64_protected_modules index 2a232a69f4a5..3f1af7946695 100644 --- a/android/gki_aarch64_protected_modules +++ b/android/gki_aarch64_protected_modules @@ -1,3 +1,4 @@ +arch/arm64/geniezone/gzvm.ko drivers/bluetooth/btbcm.ko drivers/bluetooth/btqca.ko drivers/bluetooth/btsdio.ko @@ -23,6 +24,7 @@ drivers/net/usb/r8152.ko drivers/net/usb/r8153_ecm.ko drivers/net/usb/rtl8150.ko drivers/net/usb/usbnet.ko +drivers/net/wwan/wwan.ko drivers/usb/class/cdc-acm.ko drivers/usb/serial/ftdi_sio.ko drivers/usb/serial/usbserial.ko diff --git a/android/gki_system_dlkm_modules b/android/gki_system_dlkm_modules deleted file mode 100644 index 03979bbb88d1..000000000000 --- a/android/gki_system_dlkm_modules +++ /dev/null @@ -1,58 +0,0 @@ -drivers/block/zram/zram.ko -drivers/bluetooth/btbcm.ko -drivers/bluetooth/btqca.ko -drivers/bluetooth/btsdio.ko -drivers/bluetooth/hci_uart.ko -drivers/net/can/dev/can-dev.ko -drivers/net/can/slcan/slcan.ko -drivers/net/can/vcan.ko -drivers/net/mii.ko -drivers/net/ppp/bsd_comp.ko -drivers/net/ppp/ppp_deflate.ko -drivers/net/ppp/ppp_generic.ko -drivers/net/ppp/ppp_mppe.ko -drivers/net/ppp/pppox.ko -drivers/net/ppp/pptp.ko -drivers/net/slip/slhc.ko -drivers/net/usb/aqc111.ko -drivers/net/usb/asix.ko -drivers/net/usb/ax88179_178a.ko -drivers/net/usb/cdc_eem.ko -drivers/net/usb/cdc_ether.ko -drivers/net/usb/cdc_ncm.ko -drivers/net/usb/r8152.ko -drivers/net/usb/r8153_ecm.ko -drivers/net/usb/rtl8150.ko -drivers/net/usb/usbnet.ko -drivers/usb/class/cdc-acm.ko -drivers/usb/serial/ftdi_sio.ko -drivers/usb/serial/usbserial.ko -lib/crypto/libarc4.ko -mm/zsmalloc.ko -net/6lowpan/6lowpan.ko -net/6lowpan/nhc_dest.ko -net/6lowpan/nhc_fragment.ko -net/6lowpan/nhc_hop.ko -net/6lowpan/nhc_ipv6.ko -net/6lowpan/nhc_mobility.ko -net/6lowpan/nhc_routing.ko -net/6lowpan/nhc_udp.ko -net/8021q/8021q.ko -net/bluetooth/bluetooth.ko -net/bluetooth/hidp/hidp.ko -net/bluetooth/rfcomm/rfcomm.ko -net/can/can.ko -net/can/can-bcm.ko -net/can/can-gw.ko -net/can/can-raw.ko -net/ieee802154/6lowpan/ieee802154_6lowpan.ko -net/ieee802154/ieee802154.ko -net/ieee802154/ieee802154_socket.ko -net/l2tp/l2tp_core.ko -net/l2tp/l2tp_ppp.ko -net/mac802154/mac802154.ko -net/nfc/nfc.ko -net/rfkill/rfkill.ko -net/tipc/diag.ko -net/tipc/tipc.ko - diff --git a/android/gki_x86_64_protected_modules b/android/gki_x86_64_protected_modules index 2a232a69f4a5..d6b0777dd474 100644 --- a/android/gki_x86_64_protected_modules +++ b/android/gki_x86_64_protected_modules @@ -23,6 +23,7 @@ drivers/net/usb/r8152.ko drivers/net/usb/r8153_ecm.ko drivers/net/usb/rtl8150.ko drivers/net/usb/usbnet.ko +drivers/net/wwan/wwan.ko drivers/usb/class/cdc-acm.ko drivers/usb/serial/ftdi_sio.ko drivers/usb/serial/usbserial.ko diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index 97fce7386b00..d95d82abdf29 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig @@ -28,6 +28,7 @@ config ALPHA select GENERIC_SMP_IDLE_THREAD select HAVE_ARCH_AUDITSYSCALL select HAVE_MOD_ARCH_SPECIFIC + select LOCK_MM_AND_FIND_VMA select MODULES_USE_ELF_RELA select ODD_RT_SIGACTION select OLD_SIGSUSPEND diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c index ef427a6bdd1a..2b49aa94e4de 100644 --- a/arch/alpha/mm/fault.c +++ b/arch/alpha/mm/fault.c @@ -119,20 +119,12 @@ do_page_fault(unsigned long address, unsigned long mmcsr, flags |= FAULT_FLAG_USER; perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); retry: - mmap_read_lock(mm); - vma = find_vma(mm, address); + vma = lock_mm_and_find_vma(mm, address, regs); if (!vma) - goto bad_area; - if (vma->vm_start <= address) - goto good_area; - if (!(vma->vm_flags & VM_GROWSDOWN)) - goto bad_area; - if (expand_stack(vma, address)) - goto bad_area; + goto bad_area_nosemaphore; /* Ok, we have a good vm_area for this memory access, so we can handle it. */ - good_area: si_code = SEGV_ACCERR; if (cause < 0) { if (!(vma->vm_flags & VM_EXEC)) @@ -189,6 +181,7 @@ retry: bad_area: mmap_read_unlock(mm); + bad_area_nosemaphore: if (user_mode(regs)) goto do_sigsegv; diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index d9a13ccf89a3..cb1074f74c3f 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -41,6 +41,7 @@ config ARC select HAVE_PERF_EVENTS select HAVE_SYSCALL_TRACEPOINTS select IRQ_DOMAIN + select LOCK_MM_AND_FIND_VMA select MODULES_USE_ELF_RELA select OF select OF_EARLY_FLATTREE diff --git a/arch/arc/mm/fault.c b/arch/arc/mm/fault.c index 5ca59a482632..f59e722d147f 100644 --- a/arch/arc/mm/fault.c +++ b/arch/arc/mm/fault.c @@ -113,15 +113,9 @@ void do_page_fault(unsigned long address, struct pt_regs *regs) perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); retry: - mmap_read_lock(mm); - - vma = find_vma(mm, address); + vma = lock_mm_and_find_vma(mm, address, regs); if (!vma) - goto bad_area; - if (unlikely(address < vma->vm_start)) { - if (!(vma->vm_flags & VM_GROWSDOWN) || expand_stack(vma, address)) - goto bad_area; - } + goto bad_area_nosemaphore; /* * vm_area is good, now check permissions for this memory access @@ -161,6 +155,7 @@ retry: bad_area: mmap_read_unlock(mm); +bad_area_nosemaphore: /* * Major/minor page fault accounting * (in case of retry we only land here once) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index a08c9d092a33..0202e48e7a20 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -122,6 +122,7 @@ config ARM select HAVE_UID16 select HAVE_VIRT_CPU_ACCOUNTING_GEN select IRQ_FORCED_THREADING + select LOCK_MM_AND_FIND_VMA select MODULES_USE_ELF_REL select NEED_DMA_MAP_STATE select OF_EARLY_FLATTREE if OF diff --git a/arch/arm/OWNERS b/arch/arm/OWNERS deleted file mode 100644 index 54f66d6eb2ee..000000000000 --- a/arch/arm/OWNERS +++ /dev/null @@ -1 +0,0 @@ -include ../arm64/OWNERS diff --git a/arch/arm/include/asm/syscall.h b/arch/arm/include/asm/syscall.h index dfeed440254a..fe4326d938c1 100644 --- a/arch/arm/include/asm/syscall.h +++ b/arch/arm/include/asm/syscall.h @@ -25,6 +25,9 @@ static inline int syscall_get_nr(struct task_struct *task, if (IS_ENABLED(CONFIG_AEABI) && !IS_ENABLED(CONFIG_OABI_COMPAT)) return task_thread_info(task)->abi_syscall; + if (task_thread_info(task)->abi_syscall == -1) + return -1; + return task_thread_info(task)->abi_syscall & __NR_SYSCALL_MASK; } diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 405a607b754f..b413b541c3c7 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S @@ -103,6 +103,7 @@ slow_work_pending: cmp r0, #0 beq no_work_pending movlt scno, #(__NR_restart_syscall - __NR_SYSCALL_BASE) + str scno, [tsk, #TI_ABI_SYSCALL] @ make sure tracers see update ldmia sp, {r0 - r6} @ have to reload r0 - r6 b local_restart @ ... and off we go ENDPROC(ret_fast_syscall) diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index bfe88c6e60d5..cef106913ab7 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c @@ -785,8 +785,9 @@ long arch_ptrace(struct task_struct *child, long request, break; case PTRACE_SET_SYSCALL: - task_thread_info(child)->abi_syscall = data & - __NR_SYSCALL_MASK; + if (data != -1) + data &= __NR_SYSCALL_MASK; + task_thread_info(child)->abi_syscall = data; ret = 0; break; diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index de988cba9a4b..b0db85310331 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c @@ -231,37 +231,11 @@ static inline bool is_permission_fault(unsigned int fsr) return false; } -static vm_fault_t __kprobes -__do_page_fault(struct mm_struct *mm, unsigned long addr, unsigned int flags, - unsigned long vma_flags, struct pt_regs *regs) -{ - struct vm_area_struct *vma = find_vma(mm, addr); - if (unlikely(!vma)) - return VM_FAULT_BADMAP; - - if (unlikely(vma->vm_start > addr)) { - if (!(vma->vm_flags & VM_GROWSDOWN)) - return VM_FAULT_BADMAP; - if (addr < FIRST_USER_ADDRESS) - return VM_FAULT_BADMAP; - if (expand_stack(vma, addr)) - return VM_FAULT_BADMAP; - } - - /* - * ok, we have a good vm_area for this memory access, check the - * permissions on the VMA allow for the fault which occurred. - */ - if (!(vma->vm_flags & vma_flags)) - return VM_FAULT_BADACCESS; - - return handle_mm_fault(vma, addr & PAGE_MASK, flags, regs); -} - static int __kprobes do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs) { struct mm_struct *mm = current->mm; + struct vm_area_struct *vma; int sig, code; vm_fault_t fault; unsigned int flags = FAULT_FLAG_DEFAULT; @@ -300,31 +274,21 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs) perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, addr); - /* - * As per x86, we may deadlock here. However, since the kernel only - * validly references user space from well defined areas of the code, - * we can bug out early if this is from code which shouldn't. - */ - if (!mmap_read_trylock(mm)) { - if (!user_mode(regs) && !search_exception_tables(regs->ARM_pc)) - goto no_context; retry: - mmap_read_lock(mm); - } else { - /* - * The above down_read_trylock() might have succeeded in - * which case, we'll have missed the might_sleep() from - * down_read() - */ - might_sleep(); -#ifdef CONFIG_DEBUG_VM - if (!user_mode(regs) && - !search_exception_tables(regs->ARM_pc)) - goto no_context; -#endif + vma = lock_mm_and_find_vma(mm, addr, regs); + if (unlikely(!vma)) { + fault = VM_FAULT_BADMAP; + goto bad_area; } - fault = __do_page_fault(mm, addr, flags, vm_flags, regs); + /* + * ok, we have a good vm_area for this memory access, check the + * permissions on the VMA allow for the fault which occurred. + */ + if (!(vma->vm_flags & vm_flags)) + fault = VM_FAULT_BADACCESS; + else + fault = handle_mm_fault(vma, addr & PAGE_MASK, flags, regs); /* If we need to retry but a fatal signal is pending, handle the * signal first. We do not need to release the mmap_lock because @@ -355,6 +319,7 @@ retry: if (likely(!(fault & (VM_FAULT_ERROR | VM_FAULT_BADMAP | VM_FAULT_BADACCESS)))) return 0; +bad_area: /* * If we are in kernel mode at this point, we * have no context to handle this fault with. diff --git a/arch/arm64/Kbuild b/arch/arm64/Kbuild index e4847ba0e3c9..ddcb496ce66c 100644 --- a/arch/arm64/Kbuild +++ b/arch/arm64/Kbuild @@ -5,6 +5,7 @@ obj-$(CONFIG_XEN) += xen/ obj-$(subst m,y,$(CONFIG_HYPERV)) += hyperv/ obj-$(CONFIG_GUNYAH) += gunyah/ obj-$(CONFIG_CRYPTO) += crypto/ +obj-$(CONFIG_MTK_GZVM) += geniezone/ # for cleaning subdir- += boot diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index bf11f89de29a..7dafeacab872 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -216,6 +216,7 @@ config ARM64 select IRQ_DOMAIN select IRQ_FORCED_THREADING select KASAN_VMALLOC if KASAN + select LOCK_MM_AND_FIND_VMA select MODULES_USE_ELF_RELA select NEED_DMA_MAP_STATE select NEED_SG_DMA_LENGTH diff --git a/arch/arm64/OWNERS b/arch/arm64/OWNERS deleted file mode 100644 index f362e24fd9cf..000000000000 --- a/arch/arm64/OWNERS +++ /dev/null @@ -1,4 +0,0 @@ -per-file crypto/**=file:/crypto/OWNERS -per-file {include,kernel,kvm,lib}/**=mzyngier@google.com,willdeacon@google.com -per-file mm/**=file:/mm/OWNERS -per-file net/**=file:/net/OWNERS diff --git a/arch/arm64/configs/crashdump_defconfig b/arch/arm64/configs/crashdump_defconfig new file mode 100644 index 000000000000..75866b00b403 --- /dev/null +++ b/arch/arm64/configs/crashdump_defconfig @@ -0,0 +1,81 @@ +# CONFIG_WERROR is not set +# CONFIG_LOCALVERSION_AUTO is not set +# CONFIG_SWAP is not set +# CONFIG_CROSS_MEMORY_ATTACH is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_PREEMPT=y +# CONFIG_CPU_ISOLATION is not set +CONFIG_LOG_BUF_SHIFT=15 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=10 +# CONFIG_UTS_NS is not set +# CONFIG_TIME_NS is not set +# CONFIG_PID_NS is not set +CONFIG_BLK_DEV_INITRD=y +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_RD_ZSTD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB_MERGE_DEFAULT is not set +# CONFIG_SLUB_CPU_PARTIAL is not set +CONFIG_ARM64_VA_BITS_48=y +CONFIG_NR_CPUS=2 +CONFIG_CRASH_DUMP=y +# CONFIG_RODATA_FULL_DEFAULT_ENABLED is not set +# CONFIG_ARM64_TAGGED_ADDR_ABI is not set +# CONFIG_ARM64_SVE is not set +# CONFIG_EFI is not set +# CONFIG_SUSPEND is not set +CONFIG_JUMP_LABEL=y +# CONFIG_SECCOMP is not set +# CONFIG_STACKPROTECTOR is not set +# CONFIG_VMAP_STACK is not set +# CONFIG_MQ_IOSCHED_DEADLINE is not set +# CONFIG_MQ_IOSCHED_KYBER is not set +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_BINFMT_SCRIPT is not set +# CONFIG_SPECULATIVE_PAGE_FAULT is not set +CONFIG_PCI=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCI_ENDPOINT=y +CONFIG_DEVTMPFS=y +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_ARM_SCMI_PROTOCOL=y +# CONFIG_ARM_SMCCC_SOC_ID is not set +# CONFIG_BLK_DEV is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=1 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_VIRTIO_CONSOLE=y +# CONFIG_HW_RANDOM is not set +# CONFIG_DEVMEM is not set +# CONFIG_HWMON is not set +# CONFIG_HID is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_VIRTIO_PCI=y +# CONFIG_VIRTIO_PCI_LEGACY is not set +# CONFIG_VHOST_MENU is not set +# CONFIG_ARM_ARCH_TIMER_EVTSTREAM is not set +# CONFIG_FSL_ERRATUM_A008585 is not set +# CONFIG_HISILICON_ERRATUM_161010101 is not set +# CONFIG_ARM64_ERRATUM_858921 is not set +# CONFIG_IOMMU_SUPPORT is not set +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +CONFIG_TMPFS=y +CONFIG_TMPFS_XATTR=y +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_XZ_DEC=y +# CONFIG_SYMBOLIC_ERRNAME is not set +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/arch/arm64/configs/gki_defconfig b/arch/arm64/configs/gki_defconfig index 4fc03860f868..abf7b41cdc85 100644 --- a/arch/arm64/configs/gki_defconfig +++ b/arch/arm64/configs/gki_defconfig @@ -95,6 +95,7 @@ CONFIG_MODPROBE_PATH="/system/bin/modprobe" CONFIG_BLK_DEV_ZONED=y CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLK_CGROUP_IOCOST=y +CONFIG_BLK_CGROUP_IOPRIO=y CONFIG_BLK_INLINE_ENCRYPTION=y CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y CONFIG_IOSCHED_BFQ=y @@ -115,7 +116,7 @@ CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y CONFIG_CLEANCACHE=y CONFIG_CMA=y CONFIG_CMA_DEBUGFS=y -CONFIG_CMA_AREAS=16 +CONFIG_CMA_AREAS=32 # CONFIG_ZONE_DMA is not set CONFIG_ZONE_DEVICE=y CONFIG_ANON_VMA_NAME=y @@ -183,6 +184,7 @@ CONFIG_NETFILTER_XT_TARGET_SECMARK=y CONFIG_NETFILTER_XT_TARGET_TCPMSS=y CONFIG_NETFILTER_XT_MATCH_BPF=y CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y CONFIG_NETFILTER_XT_MATCH_CONNMARK=y CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y @@ -364,6 +366,8 @@ CONFIG_USB_NET_AQC111=m # CONFIG_WLAN_VENDOR_TI is not set # CONFIG_WLAN_VENDOR_ZYDAS is not set # CONFIG_WLAN_VENDOR_QUANTENNA is not set +CONFIG_WWAN=m +# CONFIG_WWAN_DEBUGFS is not set CONFIG_INPUT_EVDEV=y CONFIG_KEYBOARD_GPIO=y # CONFIG_MOUSE_PS2 is not set @@ -548,6 +552,7 @@ CONFIG_GUNYAH=y CONFIG_GUNYAH_VCPU=y CONFIG_GUNYAH_IRQFD=y CONFIG_GUNYAH_IOEVENTFD=y +CONFIG_MTK_GZVM=m CONFIG_VHOST_VSOCK=y CONFIG_STAGING=y CONFIG_ASHMEM=y @@ -574,6 +579,7 @@ CONFIG_GENERIC_PHY=y CONFIG_POWERCAP=y CONFIG_ANDROID_BINDER_IPC=y CONFIG_ANDROID_BINDERFS=y +CONFIG_ANDROID_DEBUG_SYMBOLS=y CONFIG_ANDROID_VENDOR_HOOKS=y CONFIG_ANDROID_DEBUG_KINFO=y CONFIG_LIBNVDIMM=y diff --git a/arch/arm64/configs/microdroid_defconfig b/arch/arm64/configs/microdroid_defconfig new file mode 100644 index 000000000000..3f8fb833040c --- /dev/null +++ b/arch/arm64/configs/microdroid_defconfig @@ -0,0 +1,216 @@ +CONFIG_AUDIT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_PSI=y +CONFIG_RCU_EXPERT=y +CONFIG_RCU_BOOST=y +CONFIG_RCU_NOCB_CPU=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +# CONFIG_UTS_NS is not set +# CONFIG_TIME_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_ZSTD is not set +CONFIG_BOOT_CONFIG=y +CONFIG_PROFILING=y +CONFIG_SCHED_MC=y +CONFIG_NR_CPUS=32 +CONFIG_PARAVIRT_TIME_ACCOUNTING=y +CONFIG_KEXEC_FILE=y +CONFIG_ARM64_SW_TTBR0_PAN=y +CONFIG_RANDOMIZE_BASE=y +# CONFIG_RANDOMIZE_MODULE_REGION_FULL is not set +CONFIG_CMDLINE="stack_depot_disable=on kasan.stacktrace=off cgroup_disable=pressure ioremap_guard panic=-1 bootconfig" +CONFIG_CMDLINE_EXTEND=y +# CONFIG_EFI is not set +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_WAKELOCKS_LIMIT=0 +# CONFIG_PM_WAKELOCKS_GC is not set +CONFIG_VIRTUALIZATION=y +CONFIG_JUMP_LABEL=y +CONFIG_SHADOW_CALL_STACK=y +CONFIG_CFI_CLANG=y +CONFIG_MODULES=y +CONFIG_BLK_DEV_ZONED=y +CONFIG_BLK_INLINE_ENCRYPTION=y +CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y +CONFIG_PARTITION_ADVANCED=y +# CONFIG_MSDOS_PARTITION is not set +CONFIG_IOSCHED_BFQ=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_BINFMT_MISC=y +# CONFIG_SLAB_MERGE_DEFAULT is not set +CONFIG_SLAB_FREELIST_RANDOM=y +CONFIG_SLAB_FREELIST_HARDENED=y +CONFIG_SHUFFLE_PAGE_ALLOCATOR=y +# CONFIG_COMPAT_BRK is not set +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_ANON_VMA_NAME=y +CONFIG_USERFAULTFD=y +CONFIG_LRU_GEN=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_INTERFACE=y +CONFIG_XFRM_MIGRATE=y +CONFIG_XFRM_STATISTICS=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_NET_IPIP=y +CONFIG_NET_IPGRE_DEMUX=y +CONFIG_NET_IPGRE=y +CONFIG_NET_IPVTI=y +CONFIG_INET_ESP=y +CONFIG_INET_UDP_DIAG=y +CONFIG_INET_DIAG_DESTROY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_IPV6_VTI=y +CONFIG_IPV6_GRE=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_VSOCKETS=y +CONFIG_VIRTIO_VSOCKETS=y +# CONFIG_WIRELESS is not set +CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIEAER=y +CONFIG_PCI_IOV=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCIE_DW_PLAT_EP=y +CONFIG_PCIE_KIRIN=y +CONFIG_PCI_ENDPOINT=y +CONFIG_FW_LOADER_USER_HELPER=y +# CONFIG_FW_CACHE is not set +CONFIG_ARM_SCMI_PROTOCOL=y +# CONFIG_ARM_SCMI_POWER_DOMAIN is not set +CONFIG_ZRAM=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=16 +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_VIRTIO_BLK=y +CONFIG_OPEN_DICE=y +CONFIG_VCPU_STALL_DETECTOR=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=y +CONFIG_DM_INIT=y +CONFIG_DM_UEVENT=y +CONFIG_DM_VERITY=y +CONFIG_DM_VERITY_FEC=y +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_CONSOLE=y +# CONFIG_SERIAL_8250_PCI is not set +CONFIG_SERIAL_8250_RUNTIME_UARTS=0 +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_NULL_TTY=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_CCTRNG=y +# CONFIG_DEVMEM is not set +# CONFIG_DEVPORT is not set +CONFIG_POWER_RESET_SYSCON=y +# CONFIG_HWMON is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_HID is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_EDAC=y +CONFIG_RTC_CLASS=y +# CONFIG_RTC_NVMEM is not set +CONFIG_RTC_DRV_PL030=y +CONFIG_RTC_DRV_PL031=y +CONFIG_DMABUF_HEAPS=y +CONFIG_DMABUF_SYSFS_STATS=y +CONFIG_UIO=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_STAGING=y +CONFIG_HWSPINLOCK=y +CONFIG_EXT4_FS=y +# CONFIG_EXT4_USE_FOR_EXT2 is not set +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_DNOTIFY is not set +CONFIG_FUSE_FS=y +CONFIG_TMPFS=y +CONFIG_EROFS_FS=y +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_UNICODE=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_HARDENED_USERCOPY=y +CONFIG_STATIC_USERMODEHELPER=y +CONFIG_STATIC_USERMODEHELPER_PATH="" +CONFIG_SECURITY_SELINUX=y +CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_ADIANTUM=y +CONFIG_CRYPTO_HCTR2=y +CONFIG_CRYPTO_CHACHA20POLY1305=y +CONFIG_CRYPTO_BLAKE2B=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_XCBC=y +CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_LZ4=y +CONFIG_CRYPTO_ZSTD=y +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_TRACE_MMIO_ACCESS=y +CONFIG_XZ_DEC=y +CONFIG_DMA_RESTRICTED_POOL=y +CONFIG_PRINTK_TIME=y +CONFIG_PRINTK_CALLER=y +CONFIG_DYNAMIC_DEBUG_CORE=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_INFO_DWARF5=y +CONFIG_DEBUG_INFO_REDUCED=y +CONFIG_DEBUG_INFO_COMPRESSED=y +CONFIG_HEADERS_INSTALL=y +# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_UBSAN=y +CONFIG_UBSAN_TRAP=y +CONFIG_UBSAN_LOCAL_BOUNDS=y +# CONFIG_UBSAN_SHIFT is not set +# CONFIG_UBSAN_BOOL is not set +# CONFIG_UBSAN_ENUM is not set +CONFIG_PAGE_OWNER=y +CONFIG_DEBUG_STACK_USAGE=y +CONFIG_KASAN=y +CONFIG_KASAN_HW_TAGS=y +CONFIG_PANIC_ON_OOPS=y +CONFIG_PANIC_TIMEOUT=-1 +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_WQ_WATCHDOG=y +CONFIG_SCHEDSTATS=y +# CONFIG_DEBUG_PREEMPT is not set +CONFIG_BUG_ON_DATA_CORRUPTION=y +CONFIG_HIST_TRIGGERS=y +CONFIG_PID_IN_CONTEXTIDR=y +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/arch/arm64/configs/rockchip_gki.fragment b/arch/arm64/configs/rockchip_gki.fragment new file mode 100644 index 000000000000..c31a4e8280f5 --- /dev/null +++ b/arch/arm64/configs/rockchip_gki.fragment @@ -0,0 +1,358 @@ +# CONFIG_MODULE_SIG_ALL is not set +CONFIG_PWRSEQ_SIMPLE=m +CONFIG_AP6XXX=m +CONFIG_ARCH_ROCKCHIP=y +CONFIG_ARM_ROCKCHIP_BUS_DEVFREQ=m +CONFIG_ARM_ROCKCHIP_CPUFREQ=m +CONFIG_ARM_ROCKCHIP_DMC_DEVFREQ=m +CONFIG_BACKLIGHT_PWM=m +CONFIG_BATTERY_CW2015=m +CONFIG_BATTERY_CW2017=m +CONFIG_BATTERY_CW221X=m +CONFIG_BATTERY_RK817=m +CONFIG_BATTERY_RK818=m +CONFIG_BMA2XX_ACC=m +CONFIG_CHARGER_BQ25700=m +CONFIG_CHARGER_BQ25890=m +CONFIG_CHARGER_RK817=m +CONFIG_CHARGER_RK818=m +CONFIG_CHARGER_SC89890=m +CONFIG_CHARGER_SGM41542=m +CONFIG_CHR_DEV_SG=m +CONFIG_COMMON_CLK_PWM=m +CONFIG_COMMON_CLK_RK808=m +CONFIG_COMMON_CLK_ROCKCHIP=m +CONFIG_COMMON_CLK_SCMI=m +CONFIG_COMPASS_AK8963=m +CONFIG_COMPASS_AK8975=m +CONFIG_COMPASS_DEVICE=m +CONFIG_CPUFREQ_DT=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_PX30=y +CONFIG_CPU_RK3399=y +CONFIG_CPU_RK3562=y +CONFIG_CPU_RK3568=y +CONFIG_CPU_RK3588=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=m +CONFIG_CRYPTO_DEV_ROCKCHIP=m +CONFIG_CRYPTO_DEV_ROCKCHIP_DEV=m +CONFIG_CRYPTO_SHA1_ARM64_CE=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_DEVFREQ_EVENT_ROCKCHIP_NOCP=m +CONFIG_DMABUF_HEAPS_CMA=m +CONFIG_DMABUF_HEAPS_SYSTEM=m +CONFIG_DRAGONRISE_FF=y +CONFIG_DRM_DISPLAY_CONNECTOR=m +CONFIG_DRM_DW_HDMI_CEC=m +CONFIG_DRM_DW_HDMI_I2S_AUDIO=m +CONFIG_DRM_MAXIM_MAX96745=m +CONFIG_DRM_MAXIM_MAX96755F=m +CONFIG_DRM_PANEL_SIMPLE=m +CONFIG_DRM_RK1000_TVE=m +CONFIG_DRM_RK630_TVE=m +CONFIG_DRM_ROCKCHIP=m +CONFIG_DRM_ROCKCHIP_RK618=m +CONFIG_DRM_ROCKCHIP_RK628=m +CONFIG_DRM_ROHM_BU18XL82=m +CONFIG_DRM_SII902X=m +CONFIG_DTC_SYMBOLS=y +# CONFIG_DWMAC_GENERIC is not set +# CONFIG_DWMAC_IPQ806X is not set +# CONFIG_DWMAC_QCOM_ETHQOS is not set +# CONFIG_DWMAC_SUN8I is not set +# CONFIG_DWMAC_SUNXI is not set +CONFIG_DW_WATCHDOG=m +CONFIG_FIQ_DEBUGGER=m +CONFIG_FIQ_DEBUGGER_CONSOLE=y +CONFIG_FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE=y +CONFIG_FIQ_DEBUGGER_NO_SLEEP=y +CONFIG_FIQ_DEBUGGER_TRUST_ZONE=y +CONFIG_GPIO_ROCKCHIP=m +CONFIG_GREENASIA_FF=y +CONFIG_GSENSOR_DEVICE=m +CONFIG_GS_DA223=m +CONFIG_GS_KXTJ9=m +CONFIG_GS_LIS3DH=m +CONFIG_GS_LSM303D=m +CONFIG_GS_MC3230=m +CONFIG_GS_MMA7660=m +CONFIG_GS_MMA8452=m +CONFIG_GS_MXC6655XA=m +CONFIG_GS_SC7660=m +CONFIG_GS_SC7A20=m +CONFIG_GS_SC7A30=m +CONFIG_GYROSCOPE_DEVICE=m +CONFIG_GYRO_EWTSA=m +CONFIG_GYRO_L3G20D=m +CONFIG_GYRO_L3G4200D=m +CONFIG_GYRO_LSM330=m +CONFIG_GYRO_MPU6500=m +CONFIG_GYRO_MPU6880=m +CONFIG_HALL_DEVICE=m +CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +CONFIG_HID_ACRUX_FF=y +CONFIG_HID_ALPS=m +CONFIG_HID_APPLEIR=m +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +CONFIG_HID_EMS_FF=m +CONFIG_HID_EZKEY=m +CONFIG_HID_GREENASIA=m +CONFIG_HID_GYRATION=m +CONFIG_HID_HOLTEK=m +CONFIG_HID_ICADE=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_LCPOWER=m +CONFIG_HID_LENOVO=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +CONFIG_HID_PETALYNX=m +CONFIG_HID_PRIMAX=m +CONFIG_HID_SAITEK=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_STEELSERIES=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_THINGM=m +CONFIG_HID_THRUSTMASTER=m +CONFIG_HID_TIVO=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_WALTOP=m +CONFIG_HID_ZEROPLUS=m +CONFIG_HID_ZYDACRON=m +CONFIG_HS_MH248=m +CONFIG_HW_RANDOM_ROCKCHIP=m +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_GPIO=m +CONFIG_I2C_HID_OF=m +CONFIG_I2C_RK3X=m +CONFIG_IEP=m +CONFIG_IIO_BUFFER_CB=m +CONFIG_INPUT_RK805_PWRKEY=m +CONFIG_KEYBOARD_ADC=m +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_RGB13H=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LIGHT_DEVICE=m +CONFIG_LSM330_ACC=m +CONFIG_LS_CM3217=m +CONFIG_LS_CM3218=m +CONFIG_LS_STK3410=m +CONFIG_LS_UCS14620=m +CONFIG_MALI_BIFROST=m +CONFIG_MALI_BIFROST_DEBUG=y +CONFIG_MALI_BIFROST_EXPERT=y +CONFIG_MALI_CSF_SUPPORT=y +CONFIG_MALI_PLATFORM_NAME="rk" +CONFIG_MALI_PWRSOFT_765=y +CONFIG_MFD_RK618=m +CONFIG_MFD_RK628=m +CONFIG_MFD_RK630_I2C=m +CONFIG_MFD_RK806_SPI=m +CONFIG_MFD_RK808=m +CONFIG_MMC_DW=m +CONFIG_MMC_DW_ROCKCHIP=m +CONFIG_MMC_SDHCI_OF_ARASAN=m +CONFIG_MMC_SDHCI_OF_DWCMSHC=m +CONFIG_MPU6500_ACC=m +CONFIG_MPU6880_ACC=m +CONFIG_NVMEM_ROCKCHIP_EFUSE=m +CONFIG_NVMEM_ROCKCHIP_OTP=m +CONFIG_OPTEE=m +CONFIG_PANTHERLORD_FF=y +CONFIG_PCIEASPM_EXT=m +CONFIG_PCIE_DW_ROCKCHIP=m +CONFIG_PCIE_ROCKCHIP_HOST=m +CONFIG_PHY_ROCKCHIP_CSI2_DPHY=m +CONFIG_PHY_ROCKCHIP_DP=m +CONFIG_PHY_ROCKCHIP_EMMC=m +CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=m +CONFIG_PHY_ROCKCHIP_INNO_HDMI=m +CONFIG_PHY_ROCKCHIP_INNO_USB2=m +CONFIG_PHY_ROCKCHIP_INNO_USB3=m +CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY=m +CONFIG_PHY_ROCKCHIP_NANENG_EDP=m +CONFIG_PHY_ROCKCHIP_PCIE=m +CONFIG_PHY_ROCKCHIP_SAMSUNG_DCPHY=m +CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX=m +CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX_HDMI=m +CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=m +CONFIG_PHY_ROCKCHIP_TYPEC=m +CONFIG_PHY_ROCKCHIP_USB=m +CONFIG_PHY_ROCKCHIP_USBDP=m +CONFIG_PINCTRL_RK805=m +CONFIG_PINCTRL_RK806=m +CONFIG_PINCTRL_ROCKCHIP=m +CONFIG_PL330_DMA=m +CONFIG_PROXIMITY_DEVICE=m +CONFIG_PS_STK3410=m +CONFIG_PS_UCS14620=m +CONFIG_PWM_ROCKCHIP=m +CONFIG_REGULATOR_ACT8865=m +CONFIG_REGULATOR_FAN53555=m +CONFIG_REGULATOR_GPIO=m +CONFIG_REGULATOR_LP8752=m +CONFIG_REGULATOR_MP8865=m +CONFIG_REGULATOR_PWM=m +CONFIG_REGULATOR_RK806=m +CONFIG_REGULATOR_RK808=m +CONFIG_REGULATOR_RK860X=m +CONFIG_REGULATOR_TPS65132=m +CONFIG_REGULATOR_WL2868C=m +CONFIG_REGULATOR_XZ3216=m +CONFIG_RFKILL_RK=m +CONFIG_RK_CONSOLE_THREAD=y +CONFIG_RK_HEADSET=m +CONFIG_ROCKCHIP_ANALOGIX_DP=y +CONFIG_ROCKCHIP_CDN_DP=y +CONFIG_ROCKCHIP_CPUINFO=m +CONFIG_ROCKCHIP_DEBUG=m +CONFIG_ROCKCHIP_DW_DP=y +CONFIG_ROCKCHIP_DW_HDCP2=m +CONFIG_ROCKCHIP_DW_HDMI=y +CONFIG_ROCKCHIP_DW_MIPI_DSI=y +CONFIG_ROCKCHIP_GRF=m +CONFIG_ROCKCHIP_INNO_HDMI=y +CONFIG_ROCKCHIP_IODOMAIN=m +CONFIG_ROCKCHIP_IOMMU=m +CONFIG_ROCKCHIP_IPA=m +CONFIG_ROCKCHIP_LVDS=y +CONFIG_ROCKCHIP_MPP_AV1DEC=y +CONFIG_ROCKCHIP_MPP_IEP2=y +CONFIG_ROCKCHIP_MPP_JPGDEC=y +CONFIG_ROCKCHIP_MPP_RKVDEC=y +CONFIG_ROCKCHIP_MPP_RKVDEC2=y +CONFIG_ROCKCHIP_MPP_RKVENC=y +CONFIG_ROCKCHIP_MPP_RKVENC2=y +CONFIG_ROCKCHIP_MPP_SERVICE=m +CONFIG_ROCKCHIP_MPP_VDPU1=y +CONFIG_ROCKCHIP_MPP_VDPU2=y +CONFIG_ROCKCHIP_MPP_VEPU1=y +CONFIG_ROCKCHIP_MPP_VEPU2=y +CONFIG_ROCKCHIP_MULTI_RGA=m +CONFIG_ROCKCHIP_OPP=m +CONFIG_ROCKCHIP_PHY=m +CONFIG_ROCKCHIP_PM_DOMAINS=m +CONFIG_ROCKCHIP_PVTM=m +CONFIG_ROCKCHIP_RAM_VENDOR_STORAGE=m +CONFIG_ROCKCHIP_REMOTECTL=m +CONFIG_ROCKCHIP_REMOTECTL_PWM=m +CONFIG_ROCKCHIP_RGB=y +CONFIG_ROCKCHIP_RKNPU=m +CONFIG_ROCKCHIP_SARADC=m +CONFIG_ROCKCHIP_SIP=m +CONFIG_ROCKCHIP_SUSPEND_MODE=m +CONFIG_ROCKCHIP_SYSTEM_MONITOR=m +CONFIG_ROCKCHIP_THERMAL=m +CONFIG_ROCKCHIP_TIMER=m +CONFIG_ROCKCHIP_VENDOR_STORAGE=m +CONFIG_ROCKCHIP_VENDOR_STORAGE_UPDATE_LOADER=y +CONFIG_RTC_DRV_HYM8563=m +CONFIG_RTC_DRV_RK808=m +CONFIG_SENSOR_DEVICE=m +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_SOC_AW883XX=m +CONFIG_SND_SOC_BT_SCO=m +CONFIG_SND_SOC_CX2072X=m +CONFIG_SND_SOC_DUMMY_CODEC=m +CONFIG_SND_SOC_ES7202=m +CONFIG_SND_SOC_ES7210=m +CONFIG_SND_SOC_ES7243E=m +CONFIG_SND_SOC_ES8311=m +CONFIG_SND_SOC_ES8316=m +CONFIG_SND_SOC_ES8323=m +CONFIG_SND_SOC_ES8326=m +CONFIG_SND_SOC_ES8396=m +CONFIG_SND_SOC_RK3328=m +CONFIG_SND_SOC_RK817=m +CONFIG_SND_SOC_RK_CODEC_DIGITAL=m +CONFIG_SND_SOC_RK_DSM=m +CONFIG_SND_SOC_ROCKCHIP=m +CONFIG_SND_SOC_ROCKCHIP_HDMI=m +CONFIG_SND_SOC_ROCKCHIP_I2S=m +CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=m +CONFIG_SND_SOC_ROCKCHIP_MULTICODECS=m +CONFIG_SND_SOC_ROCKCHIP_PDM=m +CONFIG_SND_SOC_ROCKCHIP_SAI=m +CONFIG_SND_SOC_ROCKCHIP_SPDIF=m +CONFIG_SND_SOC_ROCKCHIP_SPDIFRX=m +CONFIG_SND_SOC_RT5640=m +CONFIG_SND_SOC_SPDIF=m +CONFIG_SPI_ROCKCHIP=m +CONFIG_SPI_SPIDEV=m +CONFIG_STMMAC_ETH=m +CONFIG_SW_SYNC=m +CONFIG_SYSCON_REBOOT_MODE=m +CONFIG_TEE=m +CONFIG_TEST_POWER=m +CONFIG_TOUCHSCREEN_ELAN5515=m +CONFIG_TOUCHSCREEN_GSL3673=m +CONFIG_TOUCHSCREEN_GSLX680_PAD=m +CONFIG_TOUCHSCREEN_GT1X=m +CONFIG_TYPEC_FUSB302=m +CONFIG_TYPEC_HUSB311=m +CONFIG_UCS12CM0=m +CONFIG_USB_DWC2=m +CONFIG_USB_NET_CDC_MBIM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OHCI_HCD_PCI is not set +CONFIG_USB_OHCI_HCD_PLATFORM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_VIDEO_AW36518=m +CONFIG_VIDEO_AW8601=m +CONFIG_VIDEO_CN3927V=m +CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_FP5510=m +CONFIG_VIDEO_GC2145=m +CONFIG_VIDEO_GC2385=m +CONFIG_VIDEO_GC4C33=m +CONFIG_VIDEO_GC8034=m +CONFIG_VIDEO_IMX415=m +CONFIG_VIDEO_LT6911UXC=m +CONFIG_VIDEO_LT7911D=m +CONFIG_VIDEO_NVP6188=m +CONFIG_VIDEO_OV02B10=m +CONFIG_VIDEO_OV13850=m +CONFIG_VIDEO_OV13855=m +CONFIG_VIDEO_OV50C40=m +CONFIG_VIDEO_OV5695=m +CONFIG_VIDEO_OV8858=m +CONFIG_VIDEO_RK628_BT1120=m +CONFIG_VIDEO_RK628_CSI=m +CONFIG_VIDEO_RK_IRCUT=m +CONFIG_VIDEO_ROCKCHIP_CIF=m +CONFIG_VIDEO_ROCKCHIP_HDMIRX=m +CONFIG_VIDEO_ROCKCHIP_ISP=m +CONFIG_VIDEO_ROCKCHIP_ISPP=m +CONFIG_VIDEO_ROCKCHIP_RKISP1=m +CONFIG_VIDEO_S5K3L6XX=m +CONFIG_VIDEO_S5KJN1=m +CONFIG_VIDEO_SGM3784=m +CONFIG_VIDEO_THCV244=m +CONFIG_VL6180=m +CONFIG_WIFI_BUILD_MODULE=y +CONFIG_WL_ROCKCHIP=m +# CONFIG_USB_DUMMY_HCD is not set diff --git a/arch/arm64/geniezone/Makefile b/arch/arm64/geniezone/Makefile new file mode 100644 index 000000000000..0e4f1087f9de --- /dev/null +++ b/arch/arm64/geniezone/Makefile @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# Main Makefile for gzvm, this one includes drivers/virt/geniezone/Makefile +# +include $(srctree)/drivers/virt/geniezone/Makefile + +gzvm-y += vm.o vcpu.o vgic.o + +obj-$(CONFIG_MTK_GZVM) += gzvm.o diff --git a/arch/arm64/geniezone/gzvm_arch_common.h b/arch/arm64/geniezone/gzvm_arch_common.h new file mode 100644 index 000000000000..82d2c44e819b --- /dev/null +++ b/arch/arm64/geniezone/gzvm_arch_common.h @@ -0,0 +1,110 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#ifndef __GZVM_ARCH_COMMON_H__ +#define __GZVM_ARCH_COMMON_H__ + +#include <linux/arm-smccc.h> + +enum { + GZVM_FUNC_CREATE_VM = 0, + GZVM_FUNC_DESTROY_VM = 1, + GZVM_FUNC_CREATE_VCPU = 2, + GZVM_FUNC_DESTROY_VCPU = 3, + GZVM_FUNC_SET_MEMREGION = 4, + GZVM_FUNC_RUN = 5, + GZVM_FUNC_GET_ONE_REG = 8, + GZVM_FUNC_SET_ONE_REG = 9, + GZVM_FUNC_IRQ_LINE = 10, + GZVM_FUNC_CREATE_DEVICE = 11, + GZVM_FUNC_PROBE = 12, + GZVM_FUNC_ENABLE_CAP = 13, + GZVM_FUNC_INFORM_EXIT = 14, + GZVM_FUNC_MEMREGION_PURPOSE = 15, + GZVM_FUNC_SET_DTB_CONFIG = 16, + NR_GZVM_FUNC, +}; + +#define SMC_ENTITY_MTK 59 +#define GZVM_FUNCID_START (0x1000) +#define GZVM_HCALL_ID(func) \ + ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, ARM_SMCCC_SMC_32, \ + SMC_ENTITY_MTK, (GZVM_FUNCID_START + (func))) + +#define MT_HVC_GZVM_CREATE_VM GZVM_HCALL_ID(GZVM_FUNC_CREATE_VM) +#define MT_HVC_GZVM_DESTROY_VM GZVM_HCALL_ID(GZVM_FUNC_DESTROY_VM) +#define MT_HVC_GZVM_CREATE_VCPU GZVM_HCALL_ID(GZVM_FUNC_CREATE_VCPU) +#define MT_HVC_GZVM_DESTROY_VCPU GZVM_HCALL_ID(GZVM_FUNC_DESTROY_VCPU) +#define MT_HVC_GZVM_SET_MEMREGION GZVM_HCALL_ID(GZVM_FUNC_SET_MEMREGION) +#define MT_HVC_GZVM_RUN GZVM_HCALL_ID(GZVM_FUNC_RUN) +#define MT_HVC_GZVM_GET_ONE_REG GZVM_HCALL_ID(GZVM_FUNC_GET_ONE_REG) +#define MT_HVC_GZVM_SET_ONE_REG GZVM_HCALL_ID(GZVM_FUNC_SET_ONE_REG) +#define MT_HVC_GZVM_IRQ_LINE GZVM_HCALL_ID(GZVM_FUNC_IRQ_LINE) +#define MT_HVC_GZVM_CREATE_DEVICE GZVM_HCALL_ID(GZVM_FUNC_CREATE_DEVICE) +#define MT_HVC_GZVM_PROBE GZVM_HCALL_ID(GZVM_FUNC_PROBE) +#define MT_HVC_GZVM_ENABLE_CAP GZVM_HCALL_ID(GZVM_FUNC_ENABLE_CAP) +#define MT_HVC_GZVM_INFORM_EXIT GZVM_HCALL_ID(GZVM_FUNC_INFORM_EXIT) +#define MT_HVC_GZVM_MEMREGION_PURPOSE GZVM_HCALL_ID(GZVM_FUNC_MEMREGION_PURPOSE) +#define MT_HVC_GZVM_SET_DTB_CONFIG GZVM_HCALL_ID(GZVM_FUNC_SET_DTB_CONFIG) + +#define GIC_V3_NR_LRS 16 + +/** + * gzvm_hypcall_wrapper() - the wrapper for hvc calls + * @a0-a7: arguments passed in registers 0 to 7 + * @res: result values from registers 0 to 3 + * + * Return: The wrapper helps caller to convert geniezone errno to Linux errno. + */ +static inline int gzvm_hypcall_wrapper(unsigned long a0, unsigned long a1, + unsigned long a2, unsigned long a3, + unsigned long a4, unsigned long a5, + unsigned long a6, unsigned long a7, + struct arm_smccc_res *res) +{ + arm_smccc_hvc(a0, a1, a2, a3, a4, a5, a6, a7, res); + return gzvm_err_to_errno(res->a0); +} + +static inline u16 get_vmid_from_tuple(unsigned int tuple) +{ + return (u16)(tuple >> 16); +} + +static inline u16 get_vcpuid_from_tuple(unsigned int tuple) +{ + return (u16)(tuple & 0xffff); +} + +/** + * struct gzvm_vcpu_hwstate: Sync architecture state back to host for handling + * @nr_lrs: The available LRs(list registers) in Soc. + * @__pad: add an explicit '__u32 __pad;' in the middle to make it clear + * what the actual layout is. + * @lr: The array of LRs(list registers). + * + * - Keep the same layout of hypervisor data struct. + * - Sync list registers back for acking virtual device interrupt status. + */ +struct gzvm_vcpu_hwstate { + __le32 nr_lrs; + __le32 __pad; + __le64 lr[GIC_V3_NR_LRS]; +}; + +static inline unsigned int +assemble_vm_vcpu_tuple(u16 vmid, u16 vcpuid) +{ + return ((unsigned int)vmid << 16 | vcpuid); +} + +static inline void +disassemble_vm_vcpu_tuple(unsigned int tuple, u16 *vmid, u16 *vcpuid) +{ + *vmid = get_vmid_from_tuple(tuple); + *vcpuid = get_vcpuid_from_tuple(tuple); +} + +#endif /* __GZVM_ARCH_COMMON_H__ */ diff --git a/arch/arm64/geniezone/vcpu.c b/arch/arm64/geniezone/vcpu.c new file mode 100644 index 000000000000..95681fd66656 --- /dev/null +++ b/arch/arm64/geniezone/vcpu.c @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#include <linux/arm-smccc.h> +#include <linux/err.h> +#include <linux/uaccess.h> + +#include <linux/gzvm.h> +#include <linux/gzvm_drv.h> +#include "gzvm_arch_common.h" + +int gzvm_arch_vcpu_update_one_reg(struct gzvm_vcpu *vcpu, __u64 reg_id, + bool is_write, __u64 *data) +{ + struct arm_smccc_res res; + unsigned long a1; + int ret; + + /* reg id follows KVM's encoding */ + switch (reg_id & GZVM_REG_ARM_COPROC_MASK) { + case GZVM_REG_ARM_CORE: + break; + default: + return -EOPNOTSUPP; + } + + a1 = assemble_vm_vcpu_tuple(vcpu->gzvm->vm_id, vcpu->vcpuid); + if (!is_write) { + ret = gzvm_hypcall_wrapper(MT_HVC_GZVM_GET_ONE_REG, + a1, reg_id, 0, 0, 0, 0, 0, &res); + if (ret == 0) + *data = res.a1; + } else { + ret = gzvm_hypcall_wrapper(MT_HVC_GZVM_SET_ONE_REG, + a1, reg_id, *data, 0, 0, 0, 0, &res); + } + + return ret; +} + +int gzvm_arch_vcpu_run(struct gzvm_vcpu *vcpu, __u64 *exit_reason) +{ + struct arm_smccc_res res; + unsigned long a1; + int ret; + + a1 = assemble_vm_vcpu_tuple(vcpu->gzvm->vm_id, vcpu->vcpuid); + ret = gzvm_hypcall_wrapper(MT_HVC_GZVM_RUN, a1, 0, 0, 0, 0, 0, + 0, &res); + *exit_reason = res.a1; + return ret; +} + +int gzvm_arch_destroy_vcpu(u16 vm_id, int vcpuid) +{ + struct arm_smccc_res res; + unsigned long a1; + + a1 = assemble_vm_vcpu_tuple(vm_id, vcpuid); + gzvm_hypcall_wrapper(MT_HVC_GZVM_DESTROY_VCPU, a1, 0, 0, 0, 0, 0, 0, + &res); + + return 0; +} + +/** + * gzvm_arch_create_vcpu() - Call smc to gz hypervisor to create vcpu + * @vm_id: vm id + * @vcpuid: vcpu id + * @run: Virtual address of vcpu->run + * + * Return: The wrapper helps caller to convert geniezone errno to Linux errno. + */ +int gzvm_arch_create_vcpu(u16 vm_id, int vcpuid, void *run) +{ + struct arm_smccc_res res; + unsigned long a1, a2; + int ret; + + a1 = assemble_vm_vcpu_tuple(vm_id, vcpuid); + a2 = (__u64)virt_to_phys(run); + ret = gzvm_hypcall_wrapper(MT_HVC_GZVM_CREATE_VCPU, a1, a2, 0, 0, 0, 0, + 0, &res); + + return ret; +} diff --git a/arch/arm64/geniezone/vgic.c b/arch/arm64/geniezone/vgic.c new file mode 100644 index 000000000000..3746e0c9e247 --- /dev/null +++ b/arch/arm64/geniezone/vgic.c @@ -0,0 +1,108 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#include <linux/irqchip/arm-gic-v3.h> +#include <linux/gzvm.h> +#include <linux/gzvm_drv.h> +#include "gzvm_arch_common.h" + +/** + * is_irq_valid() - Check the irq number and irq_type are matched + * @irq: interrupt number + * @irq_type: interrupt type + * + * Return: + * true if irq is valid else false. + */ +static bool is_irq_valid(u32 irq, u32 irq_type) +{ + switch (irq_type) { + case GZVM_IRQ_TYPE_CPU: + /* 0 ~ 15: SGI */ + if (likely(irq <= GZVM_IRQ_CPU_FIQ)) + return true; + break; + case GZVM_IRQ_TYPE_PPI: + /* 16 ~ 31: PPI */ + if (likely(irq >= GZVM_VGIC_NR_SGIS && + irq < GZVM_VGIC_NR_PRIVATE_IRQS)) + return true; + break; + case GZVM_IRQ_TYPE_SPI: + /* 32 ~ : SPT */ + if (likely(irq >= GZVM_VGIC_NR_PRIVATE_IRQS)) + return true; + break; + default: + return false; + } + return false; +} + +/** + * gzvm_vgic_inject_irq() - Inject virtual interrupt to a VM + * @gzvm: Pointer to struct gzvm + * @vcpu_idx: vcpu index, only valid if PPI + * @irq_type: Interrupt type + * @irq: irq number + * @level: 1 if true else 0 + * + * Return: + * * 0 - Success. + * * Negative - Failure. + */ +static int gzvm_vgic_inject_irq(struct gzvm *gzvm, unsigned int vcpu_idx, + u32 irq_type, u32 irq, bool level) +{ + unsigned long a1 = assemble_vm_vcpu_tuple(gzvm->vm_id, vcpu_idx); + struct arm_smccc_res res; + + if (!unlikely(is_irq_valid(irq, irq_type))) + return -EINVAL; + + gzvm_hypcall_wrapper(MT_HVC_GZVM_IRQ_LINE, a1, irq, level, + 0, 0, 0, 0, &res); + if (res.a0) { + pr_err("Failed to set IRQ level (%d) to irq#%u on vcpu %d with ret=%d\n", + level, irq, vcpu_idx, (int)res.a0); + return -EFAULT; + } + + return 0; +} + +/** + * gzvm_vgic_inject_spi() - Inject virtual spi interrupt + * @gzvm: Pointer to struct gzvm + * @vcpu_idx: vcpu index + * @spi_irq: This is spi interrupt number (starts from 0 instead of 32) + * @level: 1 if true else 0 + * + * Return: + * * 0 if succeed else other negative values indicating each errors + */ +static int gzvm_vgic_inject_spi(struct gzvm *gzvm, unsigned int vcpu_idx, + u32 spi_irq, bool level) +{ + return gzvm_vgic_inject_irq(gzvm, 0, GZVM_IRQ_TYPE_SPI, + spi_irq + GZVM_VGIC_NR_PRIVATE_IRQS, + level); +} + +int gzvm_arch_create_device(u16 vm_id, struct gzvm_create_device *gzvm_dev) +{ + struct arm_smccc_res res; + + return gzvm_hypcall_wrapper(MT_HVC_GZVM_CREATE_DEVICE, vm_id, + virt_to_phys(gzvm_dev), 0, 0, 0, 0, 0, + &res); +} + +int gzvm_arch_inject_irq(struct gzvm *gzvm, unsigned int vcpu_idx, + u32 irq_type, u32 irq, bool level) +{ + /* default use spi */ + return gzvm_vgic_inject_spi(gzvm, vcpu_idx, irq, level); +} diff --git a/arch/arm64/geniezone/vm.c b/arch/arm64/geniezone/vm.c new file mode 100644 index 000000000000..a47e1d60dc1f --- /dev/null +++ b/arch/arm64/geniezone/vm.c @@ -0,0 +1,242 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#include <asm/sysreg.h> +#include <linux/arm-smccc.h> +#include <linux/err.h> +#include <linux/uaccess.h> + +#include <linux/gzvm.h> +#include <linux/gzvm_drv.h> +#include "gzvm_arch_common.h" + +#define PAR_PA47_MASK ((((1UL << 48) - 1) >> 12) << 12) + +int gzvm_arch_inform_exit(u16 vm_id) +{ + struct arm_smccc_res res; + + arm_smccc_hvc(MT_HVC_GZVM_INFORM_EXIT, vm_id, 0, 0, 0, 0, 0, 0, &res); + if (res.a0 == 0) + return 0; + + return -ENXIO; +} + +int gzvm_arch_probe(void) +{ + struct arm_smccc_res res; + + arm_smccc_hvc(MT_HVC_GZVM_PROBE, 0, 0, 0, 0, 0, 0, 0, &res); + if (res.a0 == 0) + return 0; + + return -ENXIO; +} + +int gzvm_arch_set_memregion(u16 vm_id, size_t buf_size, + phys_addr_t region) +{ + struct arm_smccc_res res; + + return gzvm_hypcall_wrapper(MT_HVC_GZVM_SET_MEMREGION, vm_id, + buf_size, region, 0, 0, 0, 0, &res); +} + +static int gzvm_cap_arm_vm_ipa_size(void __user *argp) +{ + __u64 value = CONFIG_ARM64_PA_BITS; + + if (copy_to_user(argp, &value, sizeof(__u64))) + return -EFAULT; + + return 0; +} + +int gzvm_arch_check_extension(struct gzvm *gzvm, __u64 cap, void __user *argp) +{ + int ret = -EOPNOTSUPP; + + switch (cap) { + case GZVM_CAP_ARM_PROTECTED_VM: { + __u64 success = 1; + + if (copy_to_user(argp, &success, sizeof(__u64))) + return -EFAULT; + ret = 0; + break; + } + case GZVM_CAP_ARM_VM_IPA_SIZE: { + ret = gzvm_cap_arm_vm_ipa_size(argp); + break; + } + default: + ret = -EOPNOTSUPP; + } + + return ret; +} + +/** + * gzvm_arch_create_vm() - create vm + * @vm_type: VM type. Only supports Linux VM now. + * + * Return: + * * positive value - VM ID + * * -ENOMEM - Memory not enough for storing VM data + */ +int gzvm_arch_create_vm(unsigned long vm_type) +{ + struct arm_smccc_res res; + int ret; + + ret = gzvm_hypcall_wrapper(MT_HVC_GZVM_CREATE_VM, vm_type, 0, 0, 0, 0, + 0, 0, &res); + + if (ret == 0) + return res.a1; + else + return ret; +} + +int gzvm_arch_destroy_vm(u16 vm_id) +{ + struct arm_smccc_res res; + + return gzvm_hypcall_wrapper(MT_HVC_GZVM_DESTROY_VM, vm_id, 0, 0, 0, 0, + 0, 0, &res); +} + +int gzvm_arch_memregion_purpose(struct gzvm *gzvm, + struct gzvm_userspace_memory_region *mem) +{ + struct arm_smccc_res res; + + return gzvm_hypcall_wrapper(MT_HVC_GZVM_MEMREGION_PURPOSE, gzvm->vm_id, + mem->guest_phys_addr, mem->memory_size, + mem->flags, 0, 0, 0, &res); +} + +int gzvm_arch_set_dtb_config(struct gzvm *gzvm, struct gzvm_dtb_config *cfg) +{ + struct arm_smccc_res res; + + return gzvm_hypcall_wrapper(MT_HVC_GZVM_SET_DTB_CONFIG, gzvm->vm_id, + cfg->dtb_addr, cfg->dtb_size, 0, 0, 0, 0, + &res); +} + +static int gzvm_vm_arch_enable_cap(struct gzvm *gzvm, + struct gzvm_enable_cap *cap, + struct arm_smccc_res *res) +{ + return gzvm_hypcall_wrapper(MT_HVC_GZVM_ENABLE_CAP, gzvm->vm_id, + cap->cap, cap->args[0], cap->args[1], + cap->args[2], cap->args[3], cap->args[4], + res); +} + +/** + * gzvm_vm_ioctl_get_pvmfw_size() - Get pvmfw size from hypervisor, return + * in x1, and return to userspace in args + * @gzvm: Pointer to struct gzvm. + * @cap: Pointer to struct gzvm_enable_cap. + * @argp: Pointer to struct gzvm_enable_cap in user space. + * + * Return: + * * 0 - Succeed + * * -EINVAL - Hypervisor return invalid results + * * -EFAULT - Fail to copy back to userspace buffer + */ +static int gzvm_vm_ioctl_get_pvmfw_size(struct gzvm *gzvm, + struct gzvm_enable_cap *cap, + void __user *argp) +{ + struct arm_smccc_res res = {0}; + + if (gzvm_vm_arch_enable_cap(gzvm, cap, &res) != 0) + return -EINVAL; + + cap->args[1] = res.a1; + if (copy_to_user(argp, cap, sizeof(*cap))) + return -EFAULT; + + return 0; +} + +/** + * gzvm_vm_ioctl_cap_pvm() - Proceed GZVM_CAP_ARM_PROTECTED_VM's subcommands + * @gzvm: Pointer to struct gzvm. + * @cap: Pointer to struct gzvm_enable_cap. + * @argp: Pointer to struct gzvm_enable_cap in user space. + * + * Return: + * * 0 - Succeed + * * -EINVAL - Invalid subcommand or arguments + */ +static int gzvm_vm_ioctl_cap_pvm(struct gzvm *gzvm, + struct gzvm_enable_cap *cap, + void __user *argp) +{ + int ret = -EINVAL; + struct arm_smccc_res res = {0}; + + switch (cap->args[0]) { + case GZVM_CAP_ARM_PVM_SET_PVMFW_IPA: + fallthrough; + case GZVM_CAP_ARM_PVM_SET_PROTECTED_VM: + ret = gzvm_vm_arch_enable_cap(gzvm, cap, &res); + break; + case GZVM_CAP_ARM_PVM_GET_PVMFW_SIZE: + ret = gzvm_vm_ioctl_get_pvmfw_size(gzvm, cap, argp); + break; + default: + ret = -EINVAL; + break; + } + + return ret; +} + +int gzvm_vm_ioctl_arch_enable_cap(struct gzvm *gzvm, + struct gzvm_enable_cap *cap, + void __user *argp) +{ + int ret = -EINVAL; + + switch (cap->cap) { + case GZVM_CAP_ARM_PROTECTED_VM: + ret = gzvm_vm_ioctl_cap_pvm(gzvm, cap, argp); + break; + default: + ret = -EINVAL; + break; + } + + return ret; +} + +/** + * gzvm_hva_to_pa_arch() - converts hva to pa with arch-specific way + * @hva: Host virtual address. + * + * Return: 0 if translation error + */ +u64 gzvm_hva_to_pa_arch(u64 hva) +{ + u64 par; + unsigned long flags; + + local_irq_save(flags); + asm volatile("at s1e1r, %0" :: "r" (hva)); + isb(); + par = read_sysreg_par(); + local_irq_restore(flags); + + if (par & SYS_PAR_EL1_F) + return 0; + + return par & PAR_PA47_MASK; +} diff --git a/arch/arm64/gunyah/gunyah_hypercall.c b/arch/arm64/gunyah/gunyah_hypercall.c index 3d48c8650851..e178b5a0f691 100644 --- a/arch/arm64/gunyah/gunyah_hypercall.c +++ b/arch/arm64/gunyah/gunyah_hypercall.c @@ -16,13 +16,15 @@ bool arch_is_gh_guest(void) { struct arm_smccc_res res; uuid_t uuid; + u32 *up; arm_smccc_1_1_hvc(ARM_SMCCC_VENDOR_HYP_CALL_UID_FUNC_ID, &res); - ((u32 *)&uuid.b[0])[0] = lower_32_bits(res.a0); - ((u32 *)&uuid.b[0])[1] = lower_32_bits(res.a1); - ((u32 *)&uuid.b[0])[2] = lower_32_bits(res.a2); - ((u32 *)&uuid.b[0])[3] = lower_32_bits(res.a3); + up = (u32 *)&uuid.b[0]; + up[0] = lower_32_bits(res.a0); + up[1] = lower_32_bits(res.a1); + up[2] = lower_32_bits(res.a2); + up[3] = lower_32_bits(res.a3); return uuid_equal(&uuid, &GUNYAH_UUID); } diff --git a/arch/arm64/include/asm/exception.h b/arch/arm64/include/asm/exception.h index 19713d0f013b..18dbb35a337f 100644 --- a/arch/arm64/include/asm/exception.h +++ b/arch/arm64/include/asm/exception.h @@ -8,16 +8,11 @@ #define __ASM_EXCEPTION_H #include <asm/esr.h> -#include <asm/kprobes.h> #include <asm/ptrace.h> #include <linux/interrupt.h> -#ifdef CONFIG_FUNCTION_GRAPH_TRACER #define __exception_irq_entry __irq_entry -#else -#define __exception_irq_entry __kprobes -#endif static inline unsigned long disr_to_esr(u64 disr) { diff --git a/arch/arm64/include/asm/kvm_asm.h b/arch/arm64/include/asm/kvm_asm.h index 6755a0d9f3f0..60e834c85ea7 100644 --- a/arch/arm64/include/asm/kvm_asm.h +++ b/arch/arm64/include/asm/kvm_asm.h @@ -259,6 +259,8 @@ extern unsigned long kvm_nvhe_sym(kvm_arm_hyp_percpu_base)[]; DECLARE_KVM_NVHE_SYM(__per_cpu_start); DECLARE_KVM_NVHE_SYM(__per_cpu_end); +extern unsigned long kvm_nvhe_sym(kvm_arm_hyp_host_fp_state)[]; + DECLARE_KVM_HYP_SYM(__bp_harden_hyp_vecs); #define __bp_harden_hyp_vecs CHOOSE_HYP_SYM(__bp_harden_hyp_vecs) diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index 740a62f88a10..af442f82699d 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -203,6 +203,11 @@ struct kvm_arch { /* Mandated version of PSCI */ u32 psci_version; +#ifndef __GENKSYMS__ + /* Protects VM-scoped configuration data */ + struct mutex config_lock; +#endif + /* * If we encounter a data abort without valid instruction syndrome * information, report this to user space. User space can (and @@ -350,7 +355,11 @@ struct kvm_cpu_context { u64 sys_regs[NR_SYS_REGS]; +#ifdef __GENKSYMS__ struct kvm_vcpu *__hyp_running_vcpu; +#else + void *__hyp_running_vcpu; +#endif }; struct kvm_host_data { @@ -509,6 +518,9 @@ struct kvm_vcpu_arch { /* vcpu power state */ struct kvm_mp_state mp_state; +#ifndef __GENKSYMS__ + spinlock_t mp_state_lock; +#endif union { /* Cache some mmu pages needed inside spinlock regions */ diff --git a/arch/arm64/include/asm/kvm_pkvm.h b/arch/arm64/include/asm/kvm_pkvm.h index a1459fbe2d46..3077c2514a6d 100644 --- a/arch/arm64/include/asm/kvm_pkvm.h +++ b/arch/arm64/include/asm/kvm_pkvm.h @@ -414,10 +414,4 @@ static inline size_t pkvm_host_fp_state_size(void) return sizeof(struct user_fpsimd_state); } -static inline unsigned long hyp_host_fp_pages(unsigned long nr_cpus) -{ - return PAGE_ALIGN(size_mul(nr_cpus, pkvm_host_fp_state_size())) >> - PAGE_SHIFT; -} - #endif /* __ARM64_KVM_PKVM_H__ */ diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h index 57fc7f17d9c8..ffaa502a4d42 100644 --- a/arch/arm64/include/asm/memory.h +++ b/arch/arm64/include/asm/memory.h @@ -253,9 +253,11 @@ static inline const void *__tag_set(const void *addr, u8 tag) } #ifdef CONFIG_KASAN_HW_TAGS -#define arch_enable_tagging_sync() mte_enable_kernel_sync() -#define arch_enable_tagging_async() mte_enable_kernel_async() -#define arch_enable_tagging_asymm() mte_enable_kernel_asymm() +#define arch_enable_tag_checks_sync() mte_enable_kernel_sync() +#define arch_enable_tag_checks_async() mte_enable_kernel_async() +#define arch_enable_tag_checks_asymm() mte_enable_kernel_asymm() +#define arch_suppress_tag_checks_start() mte_enable_tco() +#define arch_suppress_tag_checks_stop() mte_disable_tco() #define arch_force_async_tag_fault() mte_check_tfsr_exit() #define arch_get_random_tag() mte_get_random_tag() #define arch_get_mem_tag(addr) mte_get_mem_tag(addr) diff --git a/arch/arm64/include/asm/mte-kasan.h b/arch/arm64/include/asm/mte-kasan.h index 9f79425fc65a..2e98028c1965 100644 --- a/arch/arm64/include/asm/mte-kasan.h +++ b/arch/arm64/include/asm/mte-kasan.h @@ -13,9 +13,74 @@ #include <linux/types.h> +#ifdef CONFIG_KASAN_HW_TAGS + +/* Whether the MTE asynchronous mode is enabled. */ +DECLARE_STATIC_KEY_FALSE(mte_async_or_asymm_mode); + +static inline bool system_uses_mte_async_or_asymm_mode(void) +{ + return static_branch_unlikely(&mte_async_or_asymm_mode); +} + +#else /* CONFIG_KASAN_HW_TAGS */ + +static inline bool system_uses_mte_async_or_asymm_mode(void) +{ + return false; +} + +#endif /* CONFIG_KASAN_HW_TAGS */ + #ifdef CONFIG_ARM64_MTE /* + * The Tag Check Flag (TCF) mode for MTE is per EL, hence TCF0 + * affects EL0 and TCF affects EL1 irrespective of which TTBR is + * used. + * The kernel accesses TTBR0 usually with LDTR/STTR instructions + * when UAO is available, so these would act as EL0 accesses using + * TCF0. + * However futex.h code uses exclusives which would be executed as + * EL1, this can potentially cause a tag check fault even if the + * user disables TCF0. + * + * To address the problem we set the PSTATE.TCO bit in uaccess_enable() + * and reset it in uaccess_disable(). + * + * The Tag check override (TCO) bit disables temporarily the tag checking + * preventing the issue. + */ +static inline void mte_disable_tco(void) +{ + asm volatile(ALTERNATIVE("nop", SET_PSTATE_TCO(0), + ARM64_MTE, CONFIG_KASAN_HW_TAGS)); +} + +static inline void mte_enable_tco(void) +{ + asm volatile(ALTERNATIVE("nop", SET_PSTATE_TCO(1), + ARM64_MTE, CONFIG_KASAN_HW_TAGS)); +} + +/* + * These functions disable tag checking only if in MTE async mode + * since the sync mode generates exceptions synchronously and the + * nofault or load_unaligned_zeropad can handle them. + */ +static inline void __mte_disable_tco_async(void) +{ + if (system_uses_mte_async_or_asymm_mode()) + mte_disable_tco(); +} + +static inline void __mte_enable_tco_async(void) +{ + if (system_uses_mte_async_or_asymm_mode()) + mte_enable_tco(); +} + +/* * These functions are meant to be only used from KASAN runtime through * the arch_*() interface defined in asm/memory.h. * These functions don't include system_supports_mte() checks, @@ -138,6 +203,22 @@ void mte_enable_kernel_asymm(void); #else /* CONFIG_ARM64_MTE */ +static inline void mte_disable_tco(void) +{ +} + +static inline void mte_enable_tco(void) +{ +} + +static inline void __mte_disable_tco_async(void) +{ +} + +static inline void __mte_enable_tco_async(void) +{ +} + static inline u8 mte_get_ptr_tag(void *ptr) { return 0xFF; diff --git a/arch/arm64/include/asm/mte.h b/arch/arm64/include/asm/mte.h index 684fb1f85498..9341cc2452a3 100644 --- a/arch/arm64/include/asm/mte.h +++ b/arch/arm64/include/asm/mte.h @@ -145,14 +145,6 @@ static inline void mte_disable_tco_entry(struct task_struct *task) } #ifdef CONFIG_KASAN_HW_TAGS -/* Whether the MTE asynchronous mode is enabled. */ -DECLARE_STATIC_KEY_FALSE(mte_async_or_asymm_mode); - -static inline bool system_uses_mte_async_or_asymm_mode(void) -{ - return static_branch_unlikely(&mte_async_or_asymm_mode); -} - void mte_check_tfsr_el1(void); static inline void mte_check_tfsr_entry(void) @@ -179,10 +171,6 @@ static inline void mte_check_tfsr_exit(void) mte_check_tfsr_el1(); } #else -static inline bool system_uses_mte_async_or_asymm_mode(void) -{ - return false; -} static inline void mte_check_tfsr_el1(void) { } diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h index 5c7b2f9d5913..30ea7b5c3ccb 100644 --- a/arch/arm64/include/asm/uaccess.h +++ b/arch/arm64/include/asm/uaccess.h @@ -136,55 +136,9 @@ static inline void __uaccess_enable_hw_pan(void) CONFIG_ARM64_PAN)); } -/* - * The Tag Check Flag (TCF) mode for MTE is per EL, hence TCF0 - * affects EL0 and TCF affects EL1 irrespective of which TTBR is - * used. - * The kernel accesses TTBR0 usually with LDTR/STTR instructions - * when UAO is available, so these would act as EL0 accesses using - * TCF0. - * However futex.h code uses exclusives which would be executed as - * EL1, this can potentially cause a tag check fault even if the - * user disables TCF0. - * - * To address the problem we set the PSTATE.TCO bit in uaccess_enable() - * and reset it in uaccess_disable(). - * - * The Tag check override (TCO) bit disables temporarily the tag checking - * preventing the issue. - */ -static inline void __uaccess_disable_tco(void) -{ - asm volatile(ALTERNATIVE("nop", SET_PSTATE_TCO(0), - ARM64_MTE, CONFIG_KASAN_HW_TAGS)); -} - -static inline void __uaccess_enable_tco(void) -{ - asm volatile(ALTERNATIVE("nop", SET_PSTATE_TCO(1), - ARM64_MTE, CONFIG_KASAN_HW_TAGS)); -} - -/* - * These functions disable tag checking only if in MTE async mode - * since the sync mode generates exceptions synchronously and the - * nofault or load_unaligned_zeropad can handle them. - */ -static inline void __uaccess_disable_tco_async(void) -{ - if (system_uses_mte_async_or_asymm_mode()) - __uaccess_disable_tco(); -} - -static inline void __uaccess_enable_tco_async(void) -{ - if (system_uses_mte_async_or_asymm_mode()) - __uaccess_enable_tco(); -} - static inline void uaccess_disable_privileged(void) { - __uaccess_disable_tco(); + mte_disable_tco(); if (uaccess_ttbr0_disable()) return; @@ -194,7 +148,7 @@ static inline void uaccess_disable_privileged(void) static inline void uaccess_enable_privileged(void) { - __uaccess_enable_tco(); + mte_enable_tco(); if (uaccess_ttbr0_enable()) return; @@ -302,8 +256,8 @@ do { \ #define get_user __get_user /* - * We must not call into the scheduler between __uaccess_enable_tco_async() and - * __uaccess_disable_tco_async(). As `dst` and `src` may contain blocking + * We must not call into the scheduler between __mte_enable_tco_async() and + * __mte_disable_tco_async(). As `dst` and `src` may contain blocking * functions, we must evaluate these outside of the critical section. */ #define __get_kernel_nofault(dst, src, type, err_label) \ @@ -312,10 +266,10 @@ do { \ __typeof__(src) __gkn_src = (src); \ int __gkn_err = 0; \ \ - __uaccess_enable_tco_async(); \ + __mte_enable_tco_async(); \ __raw_get_mem("ldr", *((type *)(__gkn_dst)), \ (__force type *)(__gkn_src), __gkn_err, K); \ - __uaccess_disable_tco_async(); \ + __mte_disable_tco_async(); \ \ if (unlikely(__gkn_err)) \ goto err_label; \ @@ -388,8 +342,8 @@ do { \ #define put_user __put_user /* - * We must not call into the scheduler between __uaccess_enable_tco_async() and - * __uaccess_disable_tco_async(). As `dst` and `src` may contain blocking + * We must not call into the scheduler between __mte_enable_tco_async() and + * __mte_disable_tco_async(). As `dst` and `src` may contain blocking * functions, we must evaluate these outside of the critical section. */ #define __put_kernel_nofault(dst, src, type, err_label) \ @@ -398,10 +352,10 @@ do { \ __typeof__(src) __pkn_src = (src); \ int __pkn_err = 0; \ \ - __uaccess_enable_tco_async(); \ + __mte_enable_tco_async(); \ __raw_put_mem("str", *((type *)(__pkn_src)), \ (__force type *)(__pkn_dst), __pkn_err, K); \ - __uaccess_disable_tco_async(); \ + __mte_disable_tco_async(); \ \ if (unlikely(__pkn_err)) \ goto err_label; \ diff --git a/arch/arm64/include/asm/word-at-a-time.h b/arch/arm64/include/asm/word-at-a-time.h index 1c8e4f2490bf..f3b151ed0d7a 100644 --- a/arch/arm64/include/asm/word-at-a-time.h +++ b/arch/arm64/include/asm/word-at-a-time.h @@ -55,7 +55,7 @@ static inline unsigned long load_unaligned_zeropad(const void *addr) { unsigned long ret; - __uaccess_enable_tco_async(); + __mte_enable_tco_async(); /* Load word from unaligned pointer addr */ asm( @@ -65,7 +65,7 @@ static inline unsigned long load_unaligned_zeropad(const void *addr) : "=&r" (ret) : "r" (addr), "Q" (*(unsigned long *)addr)); - __uaccess_disable_tco_async(); + __mte_disable_tco_async(); return ret; } diff --git a/arch/arm64/include/uapi/asm/gzvm_arch.h b/arch/arm64/include/uapi/asm/gzvm_arch.h new file mode 100644 index 000000000000..acfe9be0f849 --- /dev/null +++ b/arch/arm64/include/uapi/asm/gzvm_arch.h @@ -0,0 +1,54 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#ifndef __GZVM_ARCH_H__ +#define __GZVM_ARCH_H__ + +#include <linux/types.h> + +#define GZVM_CAP_ARM_VM_IPA_SIZE 165 +#define GZVM_CAP_ARM_PROTECTED_VM 0xffbadab1 + +/* sub-commands put in args[0] for GZVM_CAP_ARM_PROTECTED_VM */ +#define GZVM_CAP_ARM_PVM_SET_PVMFW_IPA 0 +#define GZVM_CAP_ARM_PVM_GET_PVMFW_SIZE 1 +/* GZVM_CAP_ARM_PVM_SET_PROTECTED_VM only sets protected but not load pvmfw */ +#define GZVM_CAP_ARM_PVM_SET_PROTECTED_VM 2 + +/* + * Architecture specific registers are to be defined in arch headers and + * ORed with the arch identifier. + */ +#define GZVM_REG_ARM 0x4000000000000000ULL +#define GZVM_REG_ARM64 0x6000000000000000ULL + +#define GZVM_REG_SIZE_SHIFT 52 +#define GZVM_REG_SIZE_MASK 0x00f0000000000000ULL +#define GZVM_REG_SIZE_U8 0x0000000000000000ULL +#define GZVM_REG_SIZE_U16 0x0010000000000000ULL +#define GZVM_REG_SIZE_U32 0x0020000000000000ULL +#define GZVM_REG_SIZE_U64 0x0030000000000000ULL +#define GZVM_REG_SIZE_U128 0x0040000000000000ULL +#define GZVM_REG_SIZE_U256 0x0050000000000000ULL +#define GZVM_REG_SIZE_U512 0x0060000000000000ULL +#define GZVM_REG_SIZE_U1024 0x0070000000000000ULL +#define GZVM_REG_SIZE_U2048 0x0080000000000000ULL + +#define GZVM_REG_ARCH_MASK 0xff00000000000000ULL + +/* If you need to interpret the index values, here is the key: */ +#define GZVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 +#define GZVM_REG_ARM_COPROC_SHIFT 16 + +/* Normal registers are mapped as coprocessor 16. */ +#define GZVM_REG_ARM_CORE (0x0010 << GZVM_REG_ARM_COPROC_SHIFT) +#define GZVM_REG_ARM_CORE_REG(name) \ + (offsetof(struct gzvm_regs, name) / sizeof(__u32)) + +#define GZVM_VGIC_NR_SGIS 16 +#define GZVM_VGIC_NR_PPIS 16 +#define GZVM_VGIC_NR_PRIVATE_IRQS (GZVM_VGIC_NR_SGIS + GZVM_VGIC_NR_PPIS) + +#endif /* __GZVM_ARCH_H__ */ diff --git a/arch/arm64/kernel/topology.c b/arch/arm64/kernel/topology.c index 817d788cd866..7c93307bd960 100644 --- a/arch/arm64/kernel/topology.c +++ b/arch/arm64/kernel/topology.c @@ -22,6 +22,8 @@ #include <asm/cputype.h> #include <asm/topology.h> +#include <trace/hooks/topology.h> + #ifdef CONFIG_ACPI static bool __init acpi_cpu_is_threaded(int cpu) { @@ -151,6 +153,11 @@ static void amu_scale_freq_tick(void) { u64 prev_core_cnt, prev_const_cnt; u64 core_cnt, const_cnt, scale; + bool use_amu_fie = true; + + trace_android_vh_use_amu_fie(&use_amu_fie); + if(!use_amu_fie) + return; prev_const_cnt = this_cpu_read(arch_const_cycles_prev); prev_core_cnt = this_cpu_read(arch_core_cycles_prev); diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c index a219e6ddf4f5..c9428ce23d80 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c @@ -155,6 +155,16 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) if (type & ~KVM_VM_TYPE_MASK) return -EINVAL; + mutex_init(&kvm->arch.config_lock); + +#ifdef CONFIG_LOCKDEP + /* Clue in lockdep that the config_lock must be taken inside kvm->lock */ + mutex_lock(&kvm->lock); + mutex_lock(&kvm->arch.config_lock); + mutex_unlock(&kvm->arch.config_lock); + mutex_unlock(&kvm->lock); +#endif + ret = kvm_share_hyp(kvm, kvm + 1); if (ret) return ret; @@ -423,6 +433,16 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu) { int err; + spin_lock_init(&vcpu->arch.mp_state_lock); + +#ifdef CONFIG_LOCKDEP + /* Inform lockdep that the config_lock is acquired after vcpu->mutex */ + mutex_lock(&vcpu->mutex); + mutex_lock(&vcpu->kvm->arch.config_lock); + mutex_unlock(&vcpu->kvm->arch.config_lock); + mutex_unlock(&vcpu->mutex); +#endif + /* Force users to call KVM_ARM_VCPU_INIT */ vcpu->arch.target = -1; bitmap_zero(vcpu->arch.features, KVM_VCPU_MAX_FEATURES); @@ -566,34 +586,41 @@ void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu) vcpu->cpu = -1; } -void kvm_arm_vcpu_power_off(struct kvm_vcpu *vcpu) +static void __kvm_arm_vcpu_power_off(struct kvm_vcpu *vcpu) { - vcpu->arch.mp_state.mp_state = KVM_MP_STATE_STOPPED; + WRITE_ONCE(vcpu->arch.mp_state.mp_state, KVM_MP_STATE_STOPPED); kvm_make_request(KVM_REQ_SLEEP, vcpu); kvm_vcpu_kick(vcpu); } +void kvm_arm_vcpu_power_off(struct kvm_vcpu *vcpu) +{ + spin_lock(&vcpu->arch.mp_state_lock); + __kvm_arm_vcpu_power_off(vcpu); + spin_unlock(&vcpu->arch.mp_state_lock); +} + bool kvm_arm_vcpu_stopped(struct kvm_vcpu *vcpu) { - return vcpu->arch.mp_state.mp_state == KVM_MP_STATE_STOPPED; + return READ_ONCE(vcpu->arch.mp_state.mp_state) == KVM_MP_STATE_STOPPED; } static void kvm_arm_vcpu_suspend(struct kvm_vcpu *vcpu) { - vcpu->arch.mp_state.mp_state = KVM_MP_STATE_SUSPENDED; + WRITE_ONCE(vcpu->arch.mp_state.mp_state, KVM_MP_STATE_SUSPENDED); kvm_make_request(KVM_REQ_SUSPEND, vcpu); kvm_vcpu_kick(vcpu); } static bool kvm_arm_vcpu_suspended(struct kvm_vcpu *vcpu) { - return vcpu->arch.mp_state.mp_state == KVM_MP_STATE_SUSPENDED; + return READ_ONCE(vcpu->arch.mp_state.mp_state) == KVM_MP_STATE_SUSPENDED; } int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu, struct kvm_mp_state *mp_state) { - *mp_state = vcpu->arch.mp_state; + *mp_state = READ_ONCE(vcpu->arch.mp_state); return 0; } @@ -603,12 +630,14 @@ int kvm_arch_vcpu_ioctl_set_mpstate(struct kvm_vcpu *vcpu, { int ret = 0; + spin_lock(&vcpu->arch.mp_state_lock); + switch (mp_state->mp_state) { case KVM_MP_STATE_RUNNABLE: - vcpu->arch.mp_state = *mp_state; + WRITE_ONCE(vcpu->arch.mp_state, *mp_state); break; case KVM_MP_STATE_STOPPED: - kvm_arm_vcpu_power_off(vcpu); + __kvm_arm_vcpu_power_off(vcpu); break; case KVM_MP_STATE_SUSPENDED: kvm_arm_vcpu_suspend(vcpu); @@ -617,6 +646,8 @@ int kvm_arch_vcpu_ioctl_set_mpstate(struct kvm_vcpu *vcpu, ret = -EINVAL; } + spin_unlock(&vcpu->arch.mp_state_lock); + return ret; } @@ -711,9 +742,9 @@ int kvm_arch_vcpu_run_pid_change(struct kvm_vcpu *vcpu) static_branch_inc(&userspace_irqchip_in_use); } - mutex_lock(&kvm->lock); + mutex_lock(&kvm->arch.config_lock); set_bit(KVM_ARCH_FLAG_HAS_RAN_ONCE, &kvm->arch.flags); - mutex_unlock(&kvm->lock); + mutex_unlock(&kvm->arch.config_lock); return ret; } @@ -1327,7 +1358,7 @@ static int kvm_arch_vcpu_ioctl_vcpu_init(struct kvm_vcpu *vcpu, if (test_bit(KVM_ARM_VCPU_POWER_OFF, vcpu->arch.features)) kvm_arm_vcpu_power_off(vcpu); else - vcpu->arch.mp_state.mp_state = KVM_MP_STATE_RUNNABLE; + WRITE_ONCE(vcpu->arch.mp_state.mp_state, KVM_MP_STATE_RUNNABLE); return 0; } @@ -1611,6 +1642,11 @@ static unsigned long nvhe_percpu_order(void) return size ? get_order(size) : 0; } +static inline size_t pkvm_host_fp_state_order(void) +{ + return get_order(pkvm_host_fp_state_size()); +} + /* A lookup table holding the hypervisor VA for each vector slot */ static void *hyp_spectre_vector_selector[BP_HARDEN_EL2_SLOTS]; @@ -1975,6 +2011,8 @@ static void teardown_hyp_mode(void) for_each_possible_cpu(cpu) { free_page(per_cpu(kvm_arm_hyp_stack_page, cpu)); free_pages(kvm_nvhe_sym(kvm_arm_hyp_percpu_base)[cpu], nvhe_percpu_order()); + free_pages(kvm_nvhe_sym(kvm_arm_hyp_host_fp_state)[cpu], + pkvm_host_fp_state_order()); } } @@ -2061,6 +2099,48 @@ static int kvm_hyp_init_protection(u32 hyp_va_bits) return 0; } +static int init_pkvm_host_fp_state(void) +{ + int cpu; + + if (!is_protected_kvm_enabled()) + return 0; + + /* Allocate pages for protected-mode host-fp state. */ + for_each_possible_cpu(cpu) { + struct page *page; + unsigned long addr; + + page = alloc_pages(GFP_KERNEL, pkvm_host_fp_state_order()); + if (!page) + return -ENOMEM; + + addr = (unsigned long)page_address(page); + kvm_nvhe_sym(kvm_arm_hyp_host_fp_state)[cpu] = addr; + } + + /* + * Don't map the pages in hyp since these are only used in protected + * mode, which will (re)create its own mapping when initialized. + */ + + return 0; +} + +/* + * Finalizes the initialization of hyp mode, once everything else is initialized + * and the initialziation process cannot fail. + */ +static void finalize_init_hyp_mode(void) +{ + int cpu; + + for_each_possible_cpu(cpu) { + kvm_nvhe_sym(kvm_arm_hyp_host_fp_state)[cpu] = + kern_hyp_va(kvm_nvhe_sym(kvm_arm_hyp_host_fp_state)[cpu]); + } +} + /** * Inits Hyp-mode on all online CPUs */ @@ -2228,6 +2308,10 @@ static int init_hyp_mode(void) cpu_prepare_hyp_mode(cpu); } + err = init_pkvm_host_fp_state(); + if (err) + goto out_err; + kvm_hyp_init_symbols(); /* TODO: Real .h interface */ @@ -2386,6 +2470,13 @@ int kvm_arch_init(void *opaque) kvm_info("Hyp mode initialized successfully\n"); } + /* + * This should be called after initialization is done and failure isn't + * possible anymore. + */ + if (!in_hyp_mode) + finalize_init_hyp_mode(); + return 0; out_hyp: diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c index a3b31f2c7a6a..8ae9aafdd8d3 100644 --- a/arch/arm64/kvm/guest.c +++ b/arch/arm64/kvm/guest.c @@ -953,7 +953,9 @@ int kvm_arm_vcpu_arch_set_attr(struct kvm_vcpu *vcpu, switch (attr->group) { case KVM_ARM_VCPU_PMU_V3_CTRL: + mutex_lock(&vcpu->kvm->arch.config_lock); ret = kvm_arm_pmu_v3_set_attr(vcpu, attr); + mutex_unlock(&vcpu->kvm->arch.config_lock); break; case KVM_ARM_VCPU_TIMER_CTRL: ret = kvm_arm_timer_set_attr(vcpu, attr); diff --git a/arch/arm64/kvm/hyp/include/nvhe/pkvm.h b/arch/arm64/kvm/hyp/include/nvhe/pkvm.h index b11fd818fff9..943cf7fc7124 100644 --- a/arch/arm64/kvm/hyp/include/nvhe/pkvm.h +++ b/arch/arm64/kvm/hyp/include/nvhe/pkvm.h @@ -82,8 +82,6 @@ struct pkvm_hyp_vm { struct pkvm_hyp_vcpu *vcpus[]; }; -extern void *host_fp_state; - static inline struct pkvm_hyp_vm * pkvm_hyp_vcpu_to_hyp_vm(struct pkvm_hyp_vcpu *hyp_vcpu) { @@ -107,7 +105,6 @@ extern phys_addr_t pvmfw_base; extern phys_addr_t pvmfw_size; void pkvm_hyp_vm_table_init(void *tbl); -void pkvm_hyp_host_fp_init(void *host_fp); int __pkvm_init_vm(struct kvm *host_kvm, unsigned long vm_hva, unsigned long pgd_hva, unsigned long last_ran_hva); diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-main.c b/arch/arm64/kvm/hyp/nvhe/hyp-main.c index 16abb1e0de08..995c3a840010 100644 --- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c +++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c @@ -39,7 +39,12 @@ static bool (*default_trap_handler)(struct kvm_cpu_context *host_ctxt); int __pkvm_register_host_smc_handler(bool (*cb)(struct kvm_cpu_context *)) { - return cmpxchg(&default_host_smc_handler, NULL, cb) ? -EBUSY : 0; + /* + * Paired with smp_load_acquire(&default_host_smc_handler) in + * handle_host_smc(). Ensure memory stores happening during a pKVM module + * init are observed before executing the callback. + */ + return cmpxchg_release(&default_host_smc_handler, NULL, cb) ? -EBUSY : 0; } int __pkvm_register_default_trap_handler(bool (*cb)(struct kvm_cpu_context *)) @@ -1376,13 +1381,17 @@ static void handle_host_smc(struct kvm_cpu_context *host_ctxt) handled = kvm_host_psci_handler(host_ctxt); if (!handled) handled = kvm_host_ffa_handler(host_ctxt); - if (!handled && READ_ONCE(default_host_smc_handler)) + if (!handled && smp_load_acquire(&default_host_smc_handler)) handled = default_host_smc_handler(host_ctxt); - if (!handled) - __kvm_hyp_host_forward_smc(host_ctxt); trace_host_smc(func_id, !handled); + if (!handled) { + trace_hyp_exit(); + __kvm_hyp_host_forward_smc(host_ctxt); + trace_hyp_enter(); + } + /* SMC was trapped, move ELR past the current PC. */ kvm_skip_host_instr(); } diff --git a/arch/arm64/kvm/hyp/nvhe/mem_protect.c b/arch/arm64/kvm/hyp/nvhe/mem_protect.c index 2aeb5a8a7baa..34d737112e72 100644 --- a/arch/arm64/kvm/hyp/nvhe/mem_protect.c +++ b/arch/arm64/kvm/hyp/nvhe/mem_protect.c @@ -1048,9 +1048,20 @@ static int __host_check_page_state_range(u64 addr, u64 size, static int __host_set_page_state_range(u64 addr, u64 size, enum pkvm_page_state state) { + bool update_iommu = true; enum kvm_pgtable_prot prot = pkvm_mkstate(PKVM_HOST_MEM_PROT, state); - return host_stage2_idmap_locked(addr, size, prot, true); + /* + * Sharing and unsharing host pages shouldn't change the IOMMU page tables, + * so avoid extra page tables walks for the IOMMU. + * HOWEVER THIS WILL NOT WORK WHEN DEVICE ASSIGNMENT IS SUPPORTED AS THE GUEST + * MIGHT HAVE ACCESS TO DMA. + * but as Android-14 doesn't support device assignment this should be fine. + */ + if ((state == PKVM_PAGE_OWNED) || (state == PKVM_PAGE_SHARED_OWNED)) + update_iommu = false; + + return host_stage2_idmap_locked(addr, size, prot, update_iommu); } static int host_request_owned_transition(u64 *completer_addr, diff --git a/arch/arm64/kvm/hyp/nvhe/pkvm.c b/arch/arm64/kvm/hyp/nvhe/pkvm.c index bb25de654934..b3acb60a2d6c 100644 --- a/arch/arm64/kvm/hyp/nvhe/pkvm.c +++ b/arch/arm64/kvm/hyp/nvhe/pkvm.c @@ -41,17 +41,15 @@ static DEFINE_PER_CPU(struct pkvm_hyp_vcpu *, loaded_hyp_vcpu); * * Only valid when (fp_state == FP_STATE_GUEST_OWNED) in the hyp vCPU structure. */ -void *host_fp_state; +unsigned long __ro_after_init kvm_arm_hyp_host_fp_state[NR_CPUS]; static void *__get_host_fpsimd_bytes(void) { - void *state = host_fp_state + - size_mul(pkvm_host_fp_state_size(), hyp_smp_processor_id()); - - if (state < host_fp_state) - return NULL; - - return state; + /* + * The addresses in this array have been converted to hyp addresses + * in finalize_init_hyp_mode(). + */ + return (void *)kvm_arm_hyp_host_fp_state[hyp_smp_processor_id()]; } struct user_fpsimd_state *get_host_fpsimd_state(struct kvm_vcpu *vcpu) @@ -295,12 +293,6 @@ void pkvm_hyp_vm_table_init(void *tbl) vm_table = tbl; } -void pkvm_hyp_host_fp_init(void *host_fp) -{ - WARN_ON(host_fp_state); - host_fp_state = host_fp; -} - /* * Return the hyp vm structure corresponding to the handle. */ diff --git a/arch/arm64/kvm/hyp/nvhe/psci-relay.c b/arch/arm64/kvm/hyp/nvhe/psci-relay.c index d4825b6140ba..f8db5445b530 100644 --- a/arch/arm64/kvm/hyp/nvhe/psci-relay.c +++ b/arch/arm64/kvm/hyp/nvhe/psci-relay.c @@ -28,14 +28,19 @@ struct kvm_host_psci_config __ro_after_init kvm_host_psci_config; static void (*pkvm_psci_notifier)(enum pkvm_psci_notification, struct kvm_cpu_context *); static void pkvm_psci_notify(enum pkvm_psci_notification notif, struct kvm_cpu_context *host_ctxt) { - if (READ_ONCE(pkvm_psci_notifier)) + if (smp_load_acquire(&pkvm_psci_notifier)) pkvm_psci_notifier(notif, host_ctxt); } #ifdef CONFIG_MODULES int __pkvm_register_psci_notifier(void (*cb)(enum pkvm_psci_notification, struct kvm_cpu_context *)) { - return cmpxchg(&pkvm_psci_notifier, NULL, cb) ? -EBUSY : 0; + /* + * Paired with smp_load_acquire(&pkvm_psci_notifier) in + * pkvm_psci_notify(). Ensure memory stores hapenning during a pKVM module + * init are observed before executing the callback. + */ + return cmpxchg_release(&pkvm_psci_notifier, NULL, cb) ? -EBUSY : 0; } #endif diff --git a/arch/arm64/kvm/hyp/nvhe/serial.c b/arch/arm64/kvm/hyp/nvhe/serial.c index 0b2cf3b6d6a5..475ebf4ba7de 100644 --- a/arch/arm64/kvm/hyp/nvhe/serial.c +++ b/arch/arm64/kvm/hyp/nvhe/serial.c @@ -35,7 +35,8 @@ static inline void __hyp_putx4n(unsigned long x, int n) static inline bool hyp_serial_enabled(void) { - return !!READ_ONCE(__hyp_putc); + /* Paired with __pkvm_register_serial_driver()'s cmpxchg */ + return !!smp_load_acquire(&__hyp_putc); } void hyp_puts(const char *s) @@ -64,5 +65,10 @@ void hyp_putc(char c) int __pkvm_register_serial_driver(void (*cb)(char)) { - return cmpxchg(&__hyp_putc, NULL, cb) ? -EBUSY : 0; + /* + * Paired with smp_load_acquire(&__hyp_putc) in + * hyp_serial_enabled(). Ensure memory stores hapenning during a pKVM + * module init are observed before executing the callback. + */ + return cmpxchg_release(&__hyp_putc, NULL, cb) ? -EBUSY : 0; } diff --git a/arch/arm64/kvm/hyp/nvhe/setup.c b/arch/arm64/kvm/hyp/nvhe/setup.c index c0f502c5edb2..ac3a0dc79083 100644 --- a/arch/arm64/kvm/hyp/nvhe/setup.c +++ b/arch/arm64/kvm/hyp/nvhe/setup.c @@ -34,7 +34,6 @@ static void *vm_table_base; static void *hyp_pgt_base; static void *host_s2_pgt_base; static void *ffa_proxy_pages; -static void *hyp_host_fp_base; static struct kvm_pgtable_mm_ops pkvm_pgtable_mm_ops; static struct hyp_pool hpool; @@ -69,10 +68,21 @@ static int divide_memory_pool(void *virt, unsigned long size) if (!ffa_proxy_pages) return -ENOMEM; - nr_pages = hyp_host_fp_pages(hyp_nr_cpus); - hyp_host_fp_base = hyp_early_alloc_contig(nr_pages); - if (!hyp_host_fp_base) - return -ENOMEM; + return 0; +} + +static int create_hyp_host_fp_mappings(void) +{ + void *start, *end; + int ret, i; + + for (i = 0; i < hyp_nr_cpus; i++) { + start = (void *)kern_hyp_va(kvm_arm_hyp_host_fp_state[i]); + end = start + PAGE_ALIGN(pkvm_host_fp_state_size()); + ret = pkvm_create_mappings(start, end, PAGE_HYP); + if (ret) + return ret; + } return 0; } @@ -164,6 +174,8 @@ static int recreate_hyp_mappings(phys_addr_t phys, unsigned long size, params->stack_hyp_va = hyp_addr + (2 * PAGE_SIZE); } + create_hyp_host_fp_mappings(); + /* * Map the host sections RO in the hypervisor, but transfer the * ownership from the host to the hypervisor itself to make sure they @@ -405,7 +417,6 @@ void __noreturn __pkvm_init_finalise(void) goto out; pkvm_hyp_vm_table_init(vm_table_base); - pkvm_hyp_host_fp_init(hyp_host_fp_base); out: /* * We tail-called to here from handle___pkvm_init() and will not return, diff --git a/arch/arm64/kvm/hyp/nvhe/tlb.c b/arch/arm64/kvm/hyp/nvhe/tlb.c index 35092e154614..692bd7f881f1 100644 --- a/arch/arm64/kvm/hyp/nvhe/tlb.c +++ b/arch/arm64/kvm/hyp/nvhe/tlb.c @@ -32,13 +32,19 @@ static void enter_vmid_context(struct kvm_s2_mmu *mmu, * to do. */ if (vcpu) { + /* We're in guest context */ if (mmu == vcpu->arch.hw_mmu || WARN_ON(mmu != host_s2_mmu)) return; - } else if (mmu == host_s2_mmu) { - return; + + cxt->mmu = vcpu->arch.hw_mmu; + } else { + /* We're in host context */ + if (mmu == host_s2_mmu) + return; + + cxt->mmu = host_s2_mmu; } - cxt->mmu = mmu; if (cpus_have_final_cap(ARM64_WORKAROUND_SPECULATIVE_AT)) { u64 val; diff --git a/arch/arm64/kvm/hypercalls.c b/arch/arm64/kvm/hypercalls.c index 6c052411123c..3e069361ecfc 100644 --- a/arch/arm64/kvm/hypercalls.c +++ b/arch/arm64/kvm/hypercalls.c @@ -409,7 +409,7 @@ static int kvm_arm_set_fw_reg_bmap(struct kvm_vcpu *vcpu, u64 reg_id, u64 val) if (val & ~fw_reg_features) return -EINVAL; - mutex_lock(&kvm->lock); + mutex_lock(&kvm->arch.config_lock); if (test_bit(KVM_ARCH_FLAG_HAS_RAN_ONCE, &kvm->arch.flags) && val != *fw_reg_bmap) { @@ -419,7 +419,7 @@ static int kvm_arm_set_fw_reg_bmap(struct kvm_vcpu *vcpu, u64 reg_id, u64 val) WRITE_ONCE(*fw_reg_bmap, val); out: - mutex_unlock(&kvm->lock); + mutex_unlock(&kvm->arch.config_lock); return ret; } diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index 6259a72812e9..8d4d1374012a 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -701,7 +701,7 @@ static int get_user_mapping_size(struct kvm *kvm, u64 addr) static bool stage2_force_pte_cb(u64 addr, u64 end, enum kvm_pgtable_prot prot) { - return true; + return false; } static bool stage2_pte_is_counted(kvm_pte_t pte, u32 level) diff --git a/arch/arm64/kvm/pkvm.c b/arch/arm64/kvm/pkvm.c index b601ff98e9f2..1cff760b8f23 100644 --- a/arch/arm64/kvm/pkvm.c +++ b/arch/arm64/kvm/pkvm.c @@ -173,7 +173,6 @@ void __init kvm_hyp_reserve(void) hyp_mem_pages += hyp_vm_table_pages(); hyp_mem_pages += hyp_vmemmap_pages(STRUCT_HYP_PAGE_SIZE); hyp_mem_pages += hyp_ffa_proxy_pages(); - hyp_mem_pages += hyp_host_fp_pages(num_possible_cpus()); /* * Try to allocate a PMD-aligned region to reduce TLB pressure once @@ -504,10 +503,6 @@ static int __init finalize_pkvm(void) if (pkvm_load_early_modules()) pkvm_firmware_rmem_clear(); - /* If no DMA protection. */ - if (!pkvm_iommu_finalized()) - pkvm_firmware_rmem_clear(); - /* * Exclude HYP sections from kmemleak so that they don't get peeked * at, which would end badly once inaccessible. @@ -516,6 +511,12 @@ static int __init finalize_pkvm(void) kmemleak_free_part(__hyp_data_start, __hyp_data_end - __hyp_data_start); kmemleak_free_part_phys(hyp_mem_base, hyp_mem_size); + flush_deferred_probe_now(); + + /* If no DMA protection. */ + if (!pkvm_iommu_finalized()) + pkvm_firmware_rmem_clear(); + ret = pkvm_drop_host_privileges(); if (ret) { pr_err("Failed to de-privilege the host kernel: %d\n", ret); diff --git a/arch/arm64/kvm/pmu-emul.c b/arch/arm64/kvm/pmu-emul.c index ed12c5355afb..c7e5f6a28c28 100644 --- a/arch/arm64/kvm/pmu-emul.c +++ b/arch/arm64/kvm/pmu-emul.c @@ -850,7 +850,7 @@ static int kvm_arm_pmu_v3_set_pmu(struct kvm_vcpu *vcpu, int pmu_id) struct arm_pmu *arm_pmu; int ret = -ENXIO; - mutex_lock(&kvm->lock); + lockdep_assert_held(&kvm->arch.config_lock); mutex_lock(&arm_pmus_lock); list_for_each_entry(entry, &arm_pmus, entry) { @@ -870,7 +870,6 @@ static int kvm_arm_pmu_v3_set_pmu(struct kvm_vcpu *vcpu, int pmu_id) } mutex_unlock(&arm_pmus_lock); - mutex_unlock(&kvm->lock); return ret; } @@ -878,22 +877,20 @@ int kvm_arm_pmu_v3_set_attr(struct kvm_vcpu *vcpu, struct kvm_device_attr *attr) { struct kvm *kvm = vcpu->kvm; + lockdep_assert_held(&kvm->arch.config_lock); + if (!kvm_vcpu_has_pmu(vcpu)) return -ENODEV; if (vcpu->arch.pmu.created) return -EBUSY; - mutex_lock(&kvm->lock); if (!kvm->arch.arm_pmu) { /* No PMU set, get the default one */ kvm->arch.arm_pmu = kvm_pmu_probe_armpmu(); - if (!kvm->arch.arm_pmu) { - mutex_unlock(&kvm->lock); + if (!kvm->arch.arm_pmu) return -ENODEV; - } } - mutex_unlock(&kvm->lock); switch (attr->attr) { case KVM_ARM_VCPU_PMU_V3_IRQ: { @@ -937,19 +934,13 @@ int kvm_arm_pmu_v3_set_attr(struct kvm_vcpu *vcpu, struct kvm_device_attr *attr) filter.action != KVM_PMU_EVENT_DENY)) return -EINVAL; - mutex_lock(&kvm->lock); - - if (test_bit(KVM_ARCH_FLAG_HAS_RAN_ONCE, &kvm->arch.flags)) { - mutex_unlock(&kvm->lock); + if (test_bit(KVM_ARCH_FLAG_HAS_RAN_ONCE, &kvm->arch.flags)) return -EBUSY; - } if (!kvm->arch.pmu_filter) { kvm->arch.pmu_filter = bitmap_alloc(nr_events, GFP_KERNEL_ACCOUNT); - if (!kvm->arch.pmu_filter) { - mutex_unlock(&kvm->lock); + if (!kvm->arch.pmu_filter) return -ENOMEM; - } /* * The default depends on the first applied filter. @@ -968,8 +959,6 @@ int kvm_arm_pmu_v3_set_attr(struct kvm_vcpu *vcpu, struct kvm_device_attr *attr) else bitmap_clear(kvm->arch.pmu_filter, filter.base_event, filter.nevents); - mutex_unlock(&kvm->lock); - return 0; } case KVM_ARM_VCPU_PMU_V3_SET_PMU: { diff --git a/arch/arm64/kvm/psci.c b/arch/arm64/kvm/psci.c index 0f7001d726a2..70cabcea8a4f 100644 --- a/arch/arm64/kvm/psci.c +++ b/arch/arm64/kvm/psci.c @@ -46,6 +46,7 @@ static unsigned long kvm_psci_vcpu_on(struct kvm_vcpu *source_vcpu) struct vcpu_reset_state *reset_state; struct kvm *kvm = source_vcpu->kvm; struct kvm_vcpu *vcpu = NULL; + int ret = PSCI_RET_SUCCESS; unsigned long cpu_id; cpu_id = smccc_get_arg1(source_vcpu); @@ -60,11 +61,15 @@ static unsigned long kvm_psci_vcpu_on(struct kvm_vcpu *source_vcpu) */ if (!vcpu) return PSCI_RET_INVALID_PARAMS; + + spin_lock(&vcpu->arch.mp_state_lock); if (!kvm_arm_vcpu_stopped(vcpu)) { if (kvm_psci_version(source_vcpu) != KVM_ARM_PSCI_0_1) - return PSCI_RET_ALREADY_ON; + ret = PSCI_RET_ALREADY_ON; else - return PSCI_RET_INVALID_PARAMS; + ret = PSCI_RET_INVALID_PARAMS; + + goto out_unlock; } reset_state = &vcpu->arch.reset_state; @@ -80,7 +85,7 @@ static unsigned long kvm_psci_vcpu_on(struct kvm_vcpu *source_vcpu) */ reset_state->r0 = smccc_get_arg3(source_vcpu); - WRITE_ONCE(reset_state->reset, true); + reset_state->reset = true; kvm_make_request(KVM_REQ_VCPU_RESET, vcpu); /* @@ -92,7 +97,9 @@ static unsigned long kvm_psci_vcpu_on(struct kvm_vcpu *source_vcpu) vcpu->arch.mp_state.mp_state = KVM_MP_STATE_RUNNABLE; kvm_vcpu_wake_up(vcpu); - return PSCI_RET_SUCCESS; +out_unlock: + spin_unlock(&vcpu->arch.mp_state_lock); + return ret; } static unsigned long kvm_psci_vcpu_affinity_info(struct kvm_vcpu *vcpu) @@ -152,8 +159,11 @@ static void kvm_prepare_system_event(struct kvm_vcpu *vcpu, u32 type, u64 flags) * after this call is handled and before the VCPUs have been * re-initialized. */ - kvm_for_each_vcpu(i, tmp, vcpu->kvm) - tmp->arch.mp_state.mp_state = KVM_MP_STATE_STOPPED; + kvm_for_each_vcpu(i, tmp, vcpu->kvm) { + spin_lock(&tmp->arch.mp_state_lock); + WRITE_ONCE(tmp->arch.mp_state.mp_state, KVM_MP_STATE_STOPPED); + spin_unlock(&tmp->arch.mp_state_lock); + } kvm_make_all_cpus_request(vcpu->kvm, KVM_REQ_SLEEP); memset(&vcpu->run->system_event, 0, sizeof(vcpu->run->system_event)); @@ -201,7 +211,6 @@ static unsigned long kvm_psci_check_allowed_function(struct kvm_vcpu *vcpu, u32 static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu) { - struct kvm *kvm = vcpu->kvm; u32 psci_fn = smccc_get_function(vcpu); unsigned long val; int ret = 1; @@ -226,9 +235,7 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu) kvm_psci_narrow_to_32bit(vcpu); fallthrough; case PSCI_0_2_FN64_CPU_ON: - mutex_lock(&kvm->lock); val = kvm_psci_vcpu_on(vcpu); - mutex_unlock(&kvm->lock); break; case PSCI_0_2_FN_AFFINITY_INFO: kvm_psci_narrow_to_32bit(vcpu); @@ -367,7 +374,6 @@ static int kvm_psci_1_x_call(struct kvm_vcpu *vcpu, u32 minor) static int kvm_psci_0_1_call(struct kvm_vcpu *vcpu) { - struct kvm *kvm = vcpu->kvm; u32 psci_fn = smccc_get_function(vcpu); unsigned long val; @@ -377,9 +383,7 @@ static int kvm_psci_0_1_call(struct kvm_vcpu *vcpu) val = PSCI_RET_SUCCESS; break; case KVM_PSCI_FN_CPU_ON: - mutex_lock(&kvm->lock); val = kvm_psci_vcpu_on(vcpu); - mutex_unlock(&kvm->lock); break; default: val = PSCI_RET_NOT_SUPPORTED; diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c index 2ede29175bf0..4b80f4e2b438 100644 --- a/arch/arm64/kvm/reset.c +++ b/arch/arm64/kvm/reset.c @@ -176,7 +176,7 @@ static int kvm_set_vm_width(struct kvm_vcpu *vcpu) is32bit = vcpu_has_feature(vcpu, KVM_ARM_VCPU_EL1_32BIT); - lockdep_assert_held(&kvm->lock); + lockdep_assert_held(&kvm->arch.config_lock); if (test_bit(KVM_ARCH_FLAG_REG_WIDTH_CONFIGURED, &kvm->arch.flags)) { /* @@ -228,17 +228,18 @@ int kvm_reset_vcpu(struct kvm_vcpu *vcpu) int ret; bool loaded; - mutex_lock(&vcpu->kvm->lock); + mutex_lock(&vcpu->kvm->arch.config_lock); ret = kvm_set_vm_width(vcpu); - if (!ret) { - reset_state = vcpu->arch.reset_state; - WRITE_ONCE(vcpu->arch.reset_state.reset, false); - } - mutex_unlock(&vcpu->kvm->lock); + mutex_unlock(&vcpu->kvm->arch.config_lock); if (ret) return ret; + spin_lock(&vcpu->arch.mp_state_lock); + reset_state = vcpu->arch.reset_state; + vcpu->arch.reset_state.reset = false; + spin_unlock(&vcpu->arch.mp_state_lock); + /* Reset PMU outside of the non-preemptible section */ kvm_pmu_vcpu_reset(vcpu); diff --git a/arch/arm64/kvm/vgic/vgic-debug.c b/arch/arm64/kvm/vgic/vgic-debug.c index 78cde687383c..07aa0437125a 100644 --- a/arch/arm64/kvm/vgic/vgic-debug.c +++ b/arch/arm64/kvm/vgic/vgic-debug.c @@ -85,7 +85,7 @@ static void *vgic_debug_start(struct seq_file *s, loff_t *pos) struct kvm *kvm = s->private; struct vgic_state_iter *iter; - mutex_lock(&kvm->lock); + mutex_lock(&kvm->arch.config_lock); iter = kvm->arch.vgic.iter; if (iter) { iter = ERR_PTR(-EBUSY); @@ -104,7 +104,7 @@ static void *vgic_debug_start(struct seq_file *s, loff_t *pos) if (end_of_vgic(iter)) iter = NULL; out: - mutex_unlock(&kvm->lock); + mutex_unlock(&kvm->arch.config_lock); return iter; } @@ -132,12 +132,12 @@ static void vgic_debug_stop(struct seq_file *s, void *v) if (IS_ERR(v)) return; - mutex_lock(&kvm->lock); + mutex_lock(&kvm->arch.config_lock); iter = kvm->arch.vgic.iter; kfree(iter->lpi_array); kfree(iter); kvm->arch.vgic.iter = NULL; - mutex_unlock(&kvm->lock); + mutex_unlock(&kvm->arch.config_lock); } static void print_dist_state(struct seq_file *s, struct vgic_dist *dist) diff --git a/arch/arm64/kvm/vgic/vgic-init.c b/arch/arm64/kvm/vgic/vgic-init.c index f6d4f4052555..f2f3bf4a04b0 100644 --- a/arch/arm64/kvm/vgic/vgic-init.c +++ b/arch/arm64/kvm/vgic/vgic-init.c @@ -74,9 +74,6 @@ int kvm_vgic_create(struct kvm *kvm, u32 type) unsigned long i; int ret; - if (irqchip_in_kernel(kvm)) - return -EEXIST; - /* * This function is also called by the KVM_CREATE_IRQCHIP handler, * which had no chance yet to check the availability of the GICv2 @@ -87,10 +84,20 @@ int kvm_vgic_create(struct kvm *kvm, u32 type) !kvm_vgic_global_state.can_emulate_gicv2) return -ENODEV; + /* Must be held to avoid race with vCPU creation */ + lockdep_assert_held(&kvm->lock); + ret = -EBUSY; if (!lock_all_vcpus(kvm)) return ret; + mutex_lock(&kvm->arch.config_lock); + + if (irqchip_in_kernel(kvm)) { + ret = -EEXIST; + goto out_unlock; + } + kvm_for_each_vcpu(i, vcpu, kvm) { if (vcpu_has_run_once(vcpu)) goto out_unlock; @@ -118,6 +125,7 @@ int kvm_vgic_create(struct kvm *kvm, u32 type) INIT_LIST_HEAD(&kvm->arch.vgic.rd_regions); out_unlock: + mutex_unlock(&kvm->arch.config_lock); unlock_all_vcpus(kvm); return ret; } @@ -227,9 +235,9 @@ int kvm_vgic_vcpu_init(struct kvm_vcpu *vcpu) * KVM io device for the redistributor that belongs to this VCPU. */ if (dist->vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) { - mutex_lock(&vcpu->kvm->lock); + mutex_lock(&vcpu->kvm->slots_lock); ret = vgic_register_redist_iodev(vcpu); - mutex_unlock(&vcpu->kvm->lock); + mutex_unlock(&vcpu->kvm->slots_lock); } return ret; } @@ -250,7 +258,6 @@ static void kvm_vgic_vcpu_enable(struct kvm_vcpu *vcpu) * The function is generally called when nr_spis has been explicitly set * by the guest through the KVM DEVICE API. If not nr_spis is set to 256. * vgic_initialized() returns true when this function has succeeded. - * Must be called with kvm->lock held! */ int vgic_init(struct kvm *kvm) { @@ -259,6 +266,8 @@ int vgic_init(struct kvm *kvm) int ret = 0, i; unsigned long idx; + lockdep_assert_held(&kvm->arch.config_lock); + if (vgic_initialized(kvm)) return 0; @@ -373,12 +382,13 @@ void kvm_vgic_vcpu_destroy(struct kvm_vcpu *vcpu) vgic_cpu->rd_iodev.base_addr = VGIC_ADDR_UNDEF; } -/* To be called with kvm->lock held */ static void __kvm_vgic_destroy(struct kvm *kvm) { struct kvm_vcpu *vcpu; unsigned long i; + lockdep_assert_held(&kvm->arch.config_lock); + vgic_debug_destroy(kvm); kvm_for_each_vcpu(i, vcpu, kvm) @@ -389,9 +399,9 @@ static void __kvm_vgic_destroy(struct kvm *kvm) void kvm_vgic_destroy(struct kvm *kvm) { - mutex_lock(&kvm->lock); + mutex_lock(&kvm->arch.config_lock); __kvm_vgic_destroy(kvm); - mutex_unlock(&kvm->lock); + mutex_unlock(&kvm->arch.config_lock); } /** @@ -414,9 +424,9 @@ int vgic_lazy_init(struct kvm *kvm) if (kvm->arch.vgic.vgic_model != KVM_DEV_TYPE_ARM_VGIC_V2) return -EBUSY; - mutex_lock(&kvm->lock); + mutex_lock(&kvm->arch.config_lock); ret = vgic_init(kvm); - mutex_unlock(&kvm->lock); + mutex_unlock(&kvm->arch.config_lock); } return ret; @@ -436,30 +446,48 @@ int vgic_lazy_init(struct kvm *kvm) int kvm_vgic_map_resources(struct kvm *kvm) { struct vgic_dist *dist = &kvm->arch.vgic; + enum vgic_type type; + gpa_t dist_base; int ret = 0; if (likely(vgic_ready(kvm))) return 0; - mutex_lock(&kvm->lock); + mutex_lock(&kvm->slots_lock); + mutex_lock(&kvm->arch.config_lock); if (vgic_ready(kvm)) goto out; if (!irqchip_in_kernel(kvm)) goto out; - if (dist->vgic_model == KVM_DEV_TYPE_ARM_VGIC_V2) + if (dist->vgic_model == KVM_DEV_TYPE_ARM_VGIC_V2) { ret = vgic_v2_map_resources(kvm); - else + type = VGIC_V2; + } else { ret = vgic_v3_map_resources(kvm); + type = VGIC_V3; + } - if (ret) + if (ret) { __kvm_vgic_destroy(kvm); - else - dist->ready = true; + goto out; + } + dist->ready = true; + dist_base = dist->vgic_dist_base; + mutex_unlock(&kvm->arch.config_lock); + + ret = vgic_register_dist_iodev(kvm, dist_base, type); + if (ret) { + kvm_err("Unable to register VGIC dist MMIO regions\n"); + kvm_vgic_destroy(kvm); + } + mutex_unlock(&kvm->slots_lock); + return ret; out: - mutex_unlock(&kvm->lock); + mutex_unlock(&kvm->arch.config_lock); + mutex_unlock(&kvm->slots_lock); return ret; } diff --git a/arch/arm64/kvm/vgic/vgic-its.c b/arch/arm64/kvm/vgic/vgic-its.c index 733b53055f97..46ac071f71e1 100644 --- a/arch/arm64/kvm/vgic/vgic-its.c +++ b/arch/arm64/kvm/vgic/vgic-its.c @@ -1936,6 +1936,7 @@ void vgic_lpi_translation_cache_destroy(struct kvm *kvm) static int vgic_its_create(struct kvm_device *dev, u32 type) { + int ret; struct vgic_its *its; if (type != KVM_DEV_TYPE_ARM_VGIC_ITS) @@ -1945,9 +1946,12 @@ static int vgic_its_create(struct kvm_device *dev, u32 type) if (!its) return -ENOMEM; + mutex_lock(&dev->kvm->arch.config_lock); + if (vgic_initialized(dev->kvm)) { - int ret = vgic_v4_init(dev->kvm); + ret = vgic_v4_init(dev->kvm); if (ret < 0) { + mutex_unlock(&dev->kvm->arch.config_lock); kfree(its); return ret; } @@ -1958,6 +1962,14 @@ static int vgic_its_create(struct kvm_device *dev, u32 type) mutex_init(&its->its_lock); mutex_init(&its->cmd_lock); + /* Yep, even more trickery for lock ordering... */ +#ifdef CONFIG_LOCKDEP + mutex_lock(&its->cmd_lock); + mutex_lock(&its->its_lock); + mutex_unlock(&its->its_lock); + mutex_unlock(&its->cmd_lock); +#endif + its->vgic_its_base = VGIC_ADDR_UNDEF; INIT_LIST_HEAD(&its->device_list); @@ -1976,7 +1988,11 @@ static int vgic_its_create(struct kvm_device *dev, u32 type) dev->private = its; - return vgic_its_set_abi(its, NR_ITS_ABIS - 1); + ret = vgic_its_set_abi(its, NR_ITS_ABIS - 1); + + mutex_unlock(&dev->kvm->arch.config_lock); + + return ret; } static void vgic_its_destroy(struct kvm_device *kvm_dev) @@ -2045,6 +2061,13 @@ static int vgic_its_attr_regs_access(struct kvm_device *dev, mutex_lock(&dev->kvm->lock); + if (!lock_all_vcpus(dev->kvm)) { + mutex_unlock(&dev->kvm->lock); + return -EBUSY; + } + + mutex_lock(&dev->kvm->arch.config_lock); + if (IS_VGIC_ADDR_UNDEF(its->vgic_its_base)) { ret = -ENXIO; goto out; @@ -2058,11 +2081,6 @@ static int vgic_its_attr_regs_access(struct kvm_device *dev, goto out; } - if (!lock_all_vcpus(dev->kvm)) { - ret = -EBUSY; - goto out; - } - addr = its->vgic_its_base + offset; len = region->access_flags & VGIC_ACCESS_64bit ? 8 : 4; @@ -2076,8 +2094,9 @@ static int vgic_its_attr_regs_access(struct kvm_device *dev, } else { *reg = region->its_read(dev->kvm, its, addr, len); } - unlock_all_vcpus(dev->kvm); out: + mutex_unlock(&dev->kvm->arch.config_lock); + unlock_all_vcpus(dev->kvm); mutex_unlock(&dev->kvm->lock); return ret; } @@ -2187,7 +2206,7 @@ static int vgic_its_save_ite(struct vgic_its *its, struct its_device *dev, ((u64)ite->irq->intid << KVM_ITS_ITE_PINTID_SHIFT) | ite->collection->collection_id; val = cpu_to_le64(val); - return kvm_write_guest_lock(kvm, gpa, &val, ite_esz); + return vgic_write_guest_lock(kvm, gpa, &val, ite_esz); } /** @@ -2339,7 +2358,7 @@ static int vgic_its_save_dte(struct vgic_its *its, struct its_device *dev, (itt_addr_field << KVM_ITS_DTE_ITTADDR_SHIFT) | (dev->num_eventid_bits - 1)); val = cpu_to_le64(val); - return kvm_write_guest_lock(kvm, ptr, &val, dte_esz); + return vgic_write_guest_lock(kvm, ptr, &val, dte_esz); } /** @@ -2526,7 +2545,7 @@ static int vgic_its_save_cte(struct vgic_its *its, ((u64)collection->target_addr << KVM_ITS_CTE_RDBASE_SHIFT) | collection->collection_id); val = cpu_to_le64(val); - return kvm_write_guest_lock(its->dev->kvm, gpa, &val, esz); + return vgic_write_guest_lock(its->dev->kvm, gpa, &val, esz); } /* @@ -2607,7 +2626,7 @@ static int vgic_its_save_collection_table(struct vgic_its *its) */ val = 0; BUG_ON(cte_esz > sizeof(val)); - ret = kvm_write_guest_lock(its->dev->kvm, gpa, &val, cte_esz); + ret = vgic_write_guest_lock(its->dev->kvm, gpa, &val, cte_esz); return ret; } @@ -2749,14 +2768,15 @@ static int vgic_its_ctrl(struct kvm *kvm, struct vgic_its *its, u64 attr) return 0; mutex_lock(&kvm->lock); - mutex_lock(&its->its_lock); if (!lock_all_vcpus(kvm)) { - mutex_unlock(&its->its_lock); mutex_unlock(&kvm->lock); return -EBUSY; } + mutex_lock(&kvm->arch.config_lock); + mutex_lock(&its->its_lock); + switch (attr) { case KVM_DEV_ARM_ITS_CTRL_RESET: vgic_its_reset(kvm, its); @@ -2769,8 +2789,9 @@ static int vgic_its_ctrl(struct kvm *kvm, struct vgic_its *its, u64 attr) break; } - unlock_all_vcpus(kvm); mutex_unlock(&its->its_lock); + mutex_unlock(&kvm->arch.config_lock); + unlock_all_vcpus(kvm); mutex_unlock(&kvm->lock); return ret; } diff --git a/arch/arm64/kvm/vgic/vgic-kvm-device.c b/arch/arm64/kvm/vgic/vgic-kvm-device.c index edeac2380591..bf4b3d9631ce 100644 --- a/arch/arm64/kvm/vgic/vgic-kvm-device.c +++ b/arch/arm64/kvm/vgic/vgic-kvm-device.c @@ -46,7 +46,7 @@ int kvm_set_legacy_vgic_v2_addr(struct kvm *kvm, struct kvm_arm_device_addr *dev struct vgic_dist *vgic = &kvm->arch.vgic; int r; - mutex_lock(&kvm->lock); + mutex_lock(&kvm->arch.config_lock); switch (FIELD_GET(KVM_ARM_DEVICE_TYPE_MASK, dev_addr->id)) { case KVM_VGIC_V2_ADDR_TYPE_DIST: r = vgic_check_type(kvm, KVM_DEV_TYPE_ARM_VGIC_V2); @@ -68,7 +68,7 @@ int kvm_set_legacy_vgic_v2_addr(struct kvm *kvm, struct kvm_arm_device_addr *dev r = -ENODEV; } - mutex_unlock(&kvm->lock); + mutex_unlock(&kvm->arch.config_lock); return r; } @@ -102,7 +102,11 @@ static int kvm_vgic_addr(struct kvm *kvm, struct kvm_device_attr *attr, bool wri if (get_user(addr, uaddr)) return -EFAULT; - mutex_lock(&kvm->lock); + /* + * Since we can't hold config_lock while registering the redistributor + * iodevs, take the slots_lock immediately. + */ + mutex_lock(&kvm->slots_lock); switch (attr->attr) { case KVM_VGIC_V2_ADDR_TYPE_DIST: r = vgic_check_type(kvm, KVM_DEV_TYPE_ARM_VGIC_V2); @@ -182,6 +186,7 @@ static int kvm_vgic_addr(struct kvm *kvm, struct kvm_device_attr *attr, bool wri if (r) goto out; + mutex_lock(&kvm->arch.config_lock); if (write) { r = vgic_check_iorange(kvm, *addr_ptr, addr, alignment, size); if (!r) @@ -189,9 +194,10 @@ static int kvm_vgic_addr(struct kvm *kvm, struct kvm_device_attr *attr, bool wri } else { addr = *addr_ptr; } + mutex_unlock(&kvm->arch.config_lock); out: - mutex_unlock(&kvm->lock); + mutex_unlock(&kvm->slots_lock); if (!r && !write) r = put_user(addr, uaddr); @@ -227,7 +233,7 @@ static int vgic_set_common_attr(struct kvm_device *dev, (val & 31)) return -EINVAL; - mutex_lock(&dev->kvm->lock); + mutex_lock(&dev->kvm->arch.config_lock); if (vgic_ready(dev->kvm) || dev->kvm->arch.vgic.nr_spis) ret = -EBUSY; @@ -235,16 +241,16 @@ static int vgic_set_common_attr(struct kvm_device *dev, dev->kvm->arch.vgic.nr_spis = val - VGIC_NR_PRIVATE_IRQS; - mutex_unlock(&dev->kvm->lock); + mutex_unlock(&dev->kvm->arch.config_lock); return ret; } case KVM_DEV_ARM_VGIC_GRP_CTRL: { switch (attr->attr) { case KVM_DEV_ARM_VGIC_CTRL_INIT: - mutex_lock(&dev->kvm->lock); + mutex_lock(&dev->kvm->arch.config_lock); r = vgic_init(dev->kvm); - mutex_unlock(&dev->kvm->lock); + mutex_unlock(&dev->kvm->arch.config_lock); return r; case KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES: /* @@ -260,7 +266,10 @@ static int vgic_set_common_attr(struct kvm_device *dev, mutex_unlock(&dev->kvm->lock); return -EBUSY; } + + mutex_lock(&dev->kvm->arch.config_lock); r = vgic_v3_save_pending_tables(dev->kvm); + mutex_unlock(&dev->kvm->arch.config_lock); unlock_all_vcpus(dev->kvm); mutex_unlock(&dev->kvm->lock); return r; @@ -411,15 +420,17 @@ static int vgic_v2_attr_regs_access(struct kvm_device *dev, mutex_lock(&dev->kvm->lock); + if (!lock_all_vcpus(dev->kvm)) { + mutex_unlock(&dev->kvm->lock); + return -EBUSY; + } + + mutex_lock(&dev->kvm->arch.config_lock); + ret = vgic_init(dev->kvm); if (ret) goto out; - if (!lock_all_vcpus(dev->kvm)) { - ret = -EBUSY; - goto out; - } - switch (attr->group) { case KVM_DEV_ARM_VGIC_GRP_CPU_REGS: ret = vgic_v2_cpuif_uaccess(vcpu, is_write, addr, &val); @@ -432,8 +443,9 @@ static int vgic_v2_attr_regs_access(struct kvm_device *dev, break; } - unlock_all_vcpus(dev->kvm); out: + mutex_unlock(&dev->kvm->arch.config_lock); + unlock_all_vcpus(dev->kvm); mutex_unlock(&dev->kvm->lock); if (!ret && !is_write) @@ -569,12 +581,14 @@ static int vgic_v3_attr_regs_access(struct kvm_device *dev, mutex_lock(&dev->kvm->lock); - if (unlikely(!vgic_initialized(dev->kvm))) { - ret = -EBUSY; - goto out; + if (!lock_all_vcpus(dev->kvm)) { + mutex_unlock(&dev->kvm->lock); + return -EBUSY; } - if (!lock_all_vcpus(dev->kvm)) { + mutex_lock(&dev->kvm->arch.config_lock); + + if (unlikely(!vgic_initialized(dev->kvm))) { ret = -EBUSY; goto out; } @@ -609,8 +623,9 @@ static int vgic_v3_attr_regs_access(struct kvm_device *dev, break; } - unlock_all_vcpus(dev->kvm); out: + mutex_unlock(&dev->kvm->arch.config_lock); + unlock_all_vcpus(dev->kvm); mutex_unlock(&dev->kvm->lock); if (!ret && uaccess && !is_write) { diff --git a/arch/arm64/kvm/vgic/vgic-mmio-v3.c b/arch/arm64/kvm/vgic/vgic-mmio-v3.c index 91201f743033..188d2187eede 100644 --- a/arch/arm64/kvm/vgic/vgic-mmio-v3.c +++ b/arch/arm64/kvm/vgic/vgic-mmio-v3.c @@ -111,7 +111,7 @@ static void vgic_mmio_write_v3_misc(struct kvm_vcpu *vcpu, case GICD_CTLR: { bool was_enabled, is_hwsgi; - mutex_lock(&vcpu->kvm->lock); + mutex_lock(&vcpu->kvm->arch.config_lock); was_enabled = dist->enabled; is_hwsgi = dist->nassgireq; @@ -139,7 +139,7 @@ static void vgic_mmio_write_v3_misc(struct kvm_vcpu *vcpu, else if (!was_enabled && dist->enabled) vgic_kick_vcpus(vcpu->kvm); - mutex_unlock(&vcpu->kvm->lock); + mutex_unlock(&vcpu->kvm->arch.config_lock); break; } case GICD_TYPER: @@ -769,10 +769,13 @@ int vgic_register_redist_iodev(struct kvm_vcpu *vcpu) struct vgic_io_device *rd_dev = &vcpu->arch.vgic_cpu.rd_iodev; struct vgic_redist_region *rdreg; gpa_t rd_base; - int ret; + int ret = 0; + + lockdep_assert_held(&kvm->slots_lock); + mutex_lock(&kvm->arch.config_lock); if (!IS_VGIC_ADDR_UNDEF(vgic_cpu->rd_iodev.base_addr)) - return 0; + goto out_unlock; /* * We may be creating VCPUs before having set the base address for the @@ -782,10 +785,12 @@ int vgic_register_redist_iodev(struct kvm_vcpu *vcpu) */ rdreg = vgic_v3_rdist_free_slot(&vgic->rd_regions); if (!rdreg) - return 0; + goto out_unlock; - if (!vgic_v3_check_base(kvm)) - return -EINVAL; + if (!vgic_v3_check_base(kvm)) { + ret = -EINVAL; + goto out_unlock; + } vgic_cpu->rdreg = rdreg; vgic_cpu->rdreg_index = rdreg->free_index; @@ -799,16 +804,20 @@ int vgic_register_redist_iodev(struct kvm_vcpu *vcpu) rd_dev->nr_regions = ARRAY_SIZE(vgic_v3_rd_registers); rd_dev->redist_vcpu = vcpu; - mutex_lock(&kvm->slots_lock); + mutex_unlock(&kvm->arch.config_lock); + ret = kvm_io_bus_register_dev(kvm, KVM_MMIO_BUS, rd_base, 2 * SZ_64K, &rd_dev->dev); - mutex_unlock(&kvm->slots_lock); - if (ret) return ret; + /* Protected by slots_lock */ rdreg->free_index++; return 0; + +out_unlock: + mutex_unlock(&kvm->arch.config_lock); + return ret; } static void vgic_unregister_redist_iodev(struct kvm_vcpu *vcpu) @@ -834,12 +843,10 @@ static int vgic_register_all_redist_iodevs(struct kvm *kvm) /* The current c failed, so iterate over the previous ones. */ int i; - mutex_lock(&kvm->slots_lock); for (i = 0; i < c; i++) { vcpu = kvm_get_vcpu(kvm, i); vgic_unregister_redist_iodev(vcpu); } - mutex_unlock(&kvm->slots_lock); } return ret; @@ -938,7 +945,9 @@ int vgic_v3_set_redist_base(struct kvm *kvm, u32 index, u64 addr, u32 count) { int ret; + mutex_lock(&kvm->arch.config_lock); ret = vgic_v3_alloc_redist_region(kvm, index, addr, count); + mutex_unlock(&kvm->arch.config_lock); if (ret) return ret; @@ -950,8 +959,10 @@ int vgic_v3_set_redist_base(struct kvm *kvm, u32 index, u64 addr, u32 count) if (ret) { struct vgic_redist_region *rdreg; + mutex_lock(&kvm->arch.config_lock); rdreg = vgic_v3_rdist_region_from_index(kvm, index); vgic_v3_free_redist_region(rdreg); + mutex_unlock(&kvm->arch.config_lock); return ret; } diff --git a/arch/arm64/kvm/vgic/vgic-mmio.c b/arch/arm64/kvm/vgic/vgic-mmio.c index b32d434c1d4a..eb5c58d785b9 100644 --- a/arch/arm64/kvm/vgic/vgic-mmio.c +++ b/arch/arm64/kvm/vgic/vgic-mmio.c @@ -527,13 +527,13 @@ unsigned long vgic_mmio_read_active(struct kvm_vcpu *vcpu, u32 intid = VGIC_ADDR_TO_INTID(addr, 1); u32 val; - mutex_lock(&vcpu->kvm->lock); + mutex_lock(&vcpu->kvm->arch.config_lock); vgic_access_active_prepare(vcpu, intid); val = __vgic_mmio_read_active(vcpu, addr, len); vgic_access_active_finish(vcpu, intid); - mutex_unlock(&vcpu->kvm->lock); + mutex_unlock(&vcpu->kvm->arch.config_lock); return val; } @@ -622,13 +622,13 @@ void vgic_mmio_write_cactive(struct kvm_vcpu *vcpu, { u32 intid = VGIC_ADDR_TO_INTID(addr, 1); - mutex_lock(&vcpu->kvm->lock); + mutex_lock(&vcpu->kvm->arch.config_lock); vgic_access_active_prepare(vcpu, intid); __vgic_mmio_write_cactive(vcpu, addr, len, val); vgic_access_active_finish(vcpu, intid); - mutex_unlock(&vcpu->kvm->lock); + mutex_unlock(&vcpu->kvm->arch.config_lock); } int vgic_mmio_uaccess_write_cactive(struct kvm_vcpu *vcpu, @@ -659,13 +659,13 @@ void vgic_mmio_write_sactive(struct kvm_vcpu *vcpu, { u32 intid = VGIC_ADDR_TO_INTID(addr, 1); - mutex_lock(&vcpu->kvm->lock); + mutex_lock(&vcpu->kvm->arch.config_lock); vgic_access_active_prepare(vcpu, intid); __vgic_mmio_write_sactive(vcpu, addr, len, val); vgic_access_active_finish(vcpu, intid); - mutex_unlock(&vcpu->kvm->lock); + mutex_unlock(&vcpu->kvm->arch.config_lock); } int vgic_mmio_uaccess_write_sactive(struct kvm_vcpu *vcpu, @@ -1093,7 +1093,6 @@ int vgic_register_dist_iodev(struct kvm *kvm, gpa_t dist_base_address, enum vgic_type type) { struct vgic_io_device *io_device = &kvm->arch.vgic.dist_iodev; - int ret = 0; unsigned int len; switch (type) { @@ -1111,10 +1110,6 @@ int vgic_register_dist_iodev(struct kvm *kvm, gpa_t dist_base_address, io_device->iodev_type = IODEV_DIST; io_device->redist_vcpu = NULL; - mutex_lock(&kvm->slots_lock); - ret = kvm_io_bus_register_dev(kvm, KVM_MMIO_BUS, dist_base_address, - len, &io_device->dev); - mutex_unlock(&kvm->slots_lock); - - return ret; + return kvm_io_bus_register_dev(kvm, KVM_MMIO_BUS, dist_base_address, + len, &io_device->dev); } diff --git a/arch/arm64/kvm/vgic/vgic-v2.c b/arch/arm64/kvm/vgic/vgic-v2.c index 4e8bb90bd96f..846d6679c510 100644 --- a/arch/arm64/kvm/vgic/vgic-v2.c +++ b/arch/arm64/kvm/vgic/vgic-v2.c @@ -312,12 +312,6 @@ int vgic_v2_map_resources(struct kvm *kvm) return ret; } - ret = vgic_register_dist_iodev(kvm, dist->vgic_dist_base, VGIC_V2); - if (ret) { - kvm_err("Unable to register VGIC MMIO regions\n"); - return ret; - } - if (!static_branch_unlikely(&vgic_v2_cpuif_trap)) { ret = kvm_phys_addr_ioremap(kvm, dist->vgic_cpu_base, kvm_vgic_global_state.vcpu_base, diff --git a/arch/arm64/kvm/vgic/vgic-v3.c b/arch/arm64/kvm/vgic/vgic-v3.c index 8469155e08ff..5576c22c7e50 100644 --- a/arch/arm64/kvm/vgic/vgic-v3.c +++ b/arch/arm64/kvm/vgic/vgic-v3.c @@ -538,7 +538,6 @@ int vgic_v3_map_resources(struct kvm *kvm) { struct vgic_dist *dist = &kvm->arch.vgic; struct kvm_vcpu *vcpu; - int ret = 0; unsigned long c; kvm_for_each_vcpu(c, vcpu, kvm) { @@ -568,12 +567,6 @@ int vgic_v3_map_resources(struct kvm *kvm) return -EBUSY; } - ret = vgic_register_dist_iodev(kvm, dist->vgic_dist_base, VGIC_V3); - if (ret) { - kvm_err("Unable to register VGICv3 dist MMIO regions\n"); - return ret; - } - if (kvm_vgic_global_state.has_gicv4_1) vgic_v4_configure_vsgis(kvm); diff --git a/arch/arm64/kvm/vgic/vgic-v4.c b/arch/arm64/kvm/vgic/vgic-v4.c index a413718be92b..3bb003478060 100644 --- a/arch/arm64/kvm/vgic/vgic-v4.c +++ b/arch/arm64/kvm/vgic/vgic-v4.c @@ -232,9 +232,8 @@ int vgic_v4_request_vpe_irq(struct kvm_vcpu *vcpu, int irq) * @kvm: Pointer to the VM being initialized * * We may be called each time a vITS is created, or when the - * vgic is initialized. This relies on kvm->lock to be - * held. In both cases, the number of vcpus should now be - * fixed. + * vgic is initialized. In both cases, the number of vcpus + * should now be fixed. */ int vgic_v4_init(struct kvm *kvm) { @@ -243,6 +242,8 @@ int vgic_v4_init(struct kvm *kvm) int nr_vcpus, ret; unsigned long i; + lockdep_assert_held(&kvm->arch.config_lock); + if (!kvm_vgic_global_state.has_gicv4) return 0; /* Nothing to see here... move along. */ @@ -309,14 +310,14 @@ int vgic_v4_init(struct kvm *kvm) /** * vgic_v4_teardown - Free the GICv4 data structures * @kvm: Pointer to the VM being destroyed - * - * Relies on kvm->lock to be held. */ void vgic_v4_teardown(struct kvm *kvm) { struct its_vm *its_vm = &kvm->arch.vgic.its_vm; int i; + lockdep_assert_held(&kvm->arch.config_lock); + if (!its_vm->vpes) return; diff --git a/arch/arm64/kvm/vgic/vgic.c b/arch/arm64/kvm/vgic/vgic.c index 6189ad969675..c613b6aecccb 100644 --- a/arch/arm64/kvm/vgic/vgic.c +++ b/arch/arm64/kvm/vgic/vgic.c @@ -24,11 +24,13 @@ struct vgic_global kvm_vgic_global_state __ro_after_init = { /* * Locking order is always: * kvm->lock (mutex) - * its->cmd_lock (mutex) - * its->its_lock (mutex) - * vgic_cpu->ap_list_lock must be taken with IRQs disabled - * kvm->lpi_list_lock must be taken with IRQs disabled - * vgic_irq->irq_lock must be taken with IRQs disabled + * vcpu->mutex (mutex) + * kvm->arch.config_lock (mutex) + * its->cmd_lock (mutex) + * its->its_lock (mutex) + * vgic_cpu->ap_list_lock must be taken with IRQs disabled + * kvm->lpi_list_lock must be taken with IRQs disabled + * vgic_irq->irq_lock must be taken with IRQs disabled * * As the ap_list_lock might be taken from the timer interrupt handler, * we have to disable IRQs before taking this lock and everything lower diff --git a/arch/arm64/kvm/vgic/vgic.h b/arch/arm64/kvm/vgic/vgic.h index d9f54ac08042..4973c8803cab 100644 --- a/arch/arm64/kvm/vgic/vgic.h +++ b/arch/arm64/kvm/vgic/vgic.h @@ -6,6 +6,7 @@ #define __KVM_ARM_VGIC_NEW_H__ #include <linux/irqchip/arm-gic-common.h> +#include <asm/kvm_mmu.h> #define PRODUCT_ID_KVM 0x4b /* ASCII code K */ #define IMPLEMENTER_ARM 0x43b @@ -131,6 +132,16 @@ static inline bool vgic_irq_is_multi_sgi(struct vgic_irq *irq) return vgic_irq_get_lr_count(irq) > 1; } +static inline int vgic_write_guest_lock(struct kvm *kvm, gpa_t gpa, + const void *data, unsigned long len) +{ + int ret; + + ret = kvm_write_guest_lock(kvm, gpa, data, len); + + return ret; +} + /* * This struct provides an intermediate representation of the fields contained * in the GICH_VMCR and ICH_VMCR registers, such that code exporting the GIC diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index f4ab44e058b2..e5e07212126d 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c @@ -502,27 +502,14 @@ static void do_bad_area(unsigned long far, unsigned long esr, #define VM_FAULT_BADMAP 0x010000 #define VM_FAULT_BADACCESS 0x020000 -static vm_fault_t __do_page_fault(struct mm_struct *mm, unsigned long addr, +static vm_fault_t __do_page_fault(struct mm_struct *mm, + struct vm_area_struct *vma, unsigned long addr, unsigned int mm_flags, unsigned long vm_flags, struct pt_regs *regs) { - struct vm_area_struct *vma = find_vma(mm, addr); - - if (unlikely(!vma)) - return VM_FAULT_BADMAP; - /* * Ok, we have a good vm_area for this memory access, so we can handle * it. - */ - if (unlikely(vma->vm_start > addr)) { - if (!(vma->vm_flags & VM_GROWSDOWN)) - return VM_FAULT_BADMAP; - if (expand_stack(vma, addr)) - return VM_FAULT_BADMAP; - } - - /* * Check that the permissions on the VMA allow for the fault which * occurred. */ @@ -554,9 +541,7 @@ static int __kprobes do_page_fault(unsigned long far, unsigned long esr, unsigned long vm_flags; unsigned int mm_flags = FAULT_FLAG_DEFAULT; unsigned long addr = untagged_addr(far); -#ifdef CONFIG_PER_VMA_LOCK struct vm_area_struct *vma; -#endif if (kprobe_page_fault(regs, esr)) return 0; @@ -614,7 +599,6 @@ static int __kprobes do_page_fault(unsigned long far, unsigned long esr, perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, addr); -#ifdef CONFIG_PER_VMA_LOCK if (!(mm_flags & FAULT_FLAG_USER)) goto lock_mmap; @@ -626,9 +610,9 @@ static int __kprobes do_page_fault(unsigned long far, unsigned long esr, vma_end_read(vma); goto lock_mmap; } - fault = handle_mm_fault(vma, addr & PAGE_MASK, - mm_flags | FAULT_FLAG_VMA_LOCK, regs); - vma_end_read(vma); + fault = handle_mm_fault(vma, addr, mm_flags | FAULT_FLAG_VMA_LOCK, regs); + if (!(fault & (VM_FAULT_RETRY | VM_FAULT_COMPLETED))) + vma_end_read(vma); if (!(fault & VM_FAULT_RETRY)) { count_vm_vma_lock_event(VMA_LOCK_SUCCESS); @@ -643,32 +627,15 @@ static int __kprobes do_page_fault(unsigned long far, unsigned long esr, return 0; } lock_mmap: -#endif /* CONFIG_PER_VMA_LOCK */ - /* - * As per x86, we may deadlock here. However, since the kernel only - * validly references user space from well defined areas of the code, - * we can bug out early if this is from code which shouldn't. - */ - if (!mmap_read_trylock(mm)) { - if (!user_mode(regs) && !search_exception_tables(regs->pc)) - goto no_context; + retry: - mmap_read_lock(mm); - } else { - /* - * The above mmap_read_trylock() might have succeeded in which - * case, we'll have missed the might_sleep() from down_read(). - */ - might_sleep(); -#ifdef CONFIG_DEBUG_VM - if (!user_mode(regs) && !search_exception_tables(regs->pc)) { - mmap_read_unlock(mm); - goto no_context; - } -#endif + vma = lock_mm_and_find_vma(mm, addr, regs); + if (unlikely(!vma)) { + fault = VM_FAULT_BADMAP; + goto done; } - fault = __do_page_fault(mm, addr, mm_flags, vm_flags, regs); + fault = __do_page_fault(mm, vma, addr, mm_flags, vm_flags, regs); /* Quick path to respond to signals */ if (fault_signal_pending(fault, regs)) { @@ -687,9 +654,7 @@ retry: } mmap_read_unlock(mm); -#ifdef CONFIG_PER_VMA_LOCK done: -#endif /* * Handle the "normal" (no error) case first. */ diff --git a/arch/csky/Kconfig b/arch/csky/Kconfig index adee6ab36862..742009123fd5 100644 --- a/arch/csky/Kconfig +++ b/arch/csky/Kconfig @@ -96,6 +96,7 @@ config CSKY select HAVE_RSEQ select HAVE_STACKPROTECTOR select HAVE_SYSCALL_TRACEPOINTS + select LOCK_MM_AND_FIND_VMA select MAY_HAVE_SPARSE_IRQ select MODULES_USE_ELF_RELA if MODULES select OF diff --git a/arch/csky/mm/fault.c b/arch/csky/mm/fault.c index e15f736cca4b..ae9781b7d92e 100644 --- a/arch/csky/mm/fault.c +++ b/arch/csky/mm/fault.c @@ -97,13 +97,12 @@ static inline void mm_fault_error(struct pt_regs *regs, unsigned long addr, vm_f BUG(); } -static inline void bad_area(struct pt_regs *regs, struct mm_struct *mm, int code, unsigned long addr) +static inline void bad_area_nosemaphore(struct pt_regs *regs, struct mm_struct *mm, int code, unsigned long addr) { /* * Something tried to access memory that isn't in our memory map. * Fix it, but check if it's kernel or user first. */ - mmap_read_unlock(mm); /* User mode accesses just cause a SIGSEGV */ if (user_mode(regs)) { do_trap(regs, SIGSEGV, code, addr); @@ -238,20 +237,9 @@ asmlinkage void do_page_fault(struct pt_regs *regs) if (is_write(regs)) flags |= FAULT_FLAG_WRITE; retry: - mmap_read_lock(mm); - vma = find_vma(mm, addr); + vma = lock_mm_and_find_vma(mm, address, regs); if (unlikely(!vma)) { - bad_area(regs, mm, code, addr); - return; - } - if (likely(vma->vm_start <= addr)) - goto good_area; - if (unlikely(!(vma->vm_flags & VM_GROWSDOWN))) { - bad_area(regs, mm, code, addr); - return; - } - if (unlikely(expand_stack(vma, addr))) { - bad_area(regs, mm, code, addr); + bad_area_nosemaphore(regs, mm, code, addr); return; } @@ -259,11 +247,11 @@ retry: * Ok, we have a good vm_area for this memory access, so * we can handle it. */ -good_area: code = SEGV_ACCERR; if (unlikely(access_error(regs, vma))) { - bad_area(regs, mm, code, addr); + mmap_read_unlock(mm); + bad_area_nosemaphore(regs, mm, code, addr); return; } diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig index 54eadf265178..6726f4941015 100644 --- a/arch/hexagon/Kconfig +++ b/arch/hexagon/Kconfig @@ -28,6 +28,7 @@ config HEXAGON select GENERIC_SMP_IDLE_THREAD select STACKTRACE_SUPPORT select GENERIC_CLOCKEVENTS_BROADCAST + select LOCK_MM_AND_FIND_VMA select MODULES_USE_ELF_RELA select GENERIC_CPU_DEVICES select ARCH_WANT_LD_ORPHAN_WARN diff --git a/arch/hexagon/mm/vm_fault.c b/arch/hexagon/mm/vm_fault.c index f73c7cbfe326..583b08727166 100644 --- a/arch/hexagon/mm/vm_fault.c +++ b/arch/hexagon/mm/vm_fault.c @@ -57,21 +57,10 @@ void do_page_fault(unsigned long address, long cause, struct pt_regs *regs) perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); retry: - mmap_read_lock(mm); - vma = find_vma(mm, address); - if (!vma) - goto bad_area; + vma = lock_mm_and_find_vma(mm, address, regs); + if (unlikely(!vma)) + goto bad_area_nosemaphore; - if (vma->vm_start <= address) - goto good_area; - - if (!(vma->vm_flags & VM_GROWSDOWN)) - goto bad_area; - - if (expand_stack(vma, address)) - goto bad_area; - -good_area: /* Address space is OK. Now check access rights. */ si_code = SEGV_ACCERR; @@ -140,6 +129,7 @@ good_area: bad_area: mmap_read_unlock(mm); +bad_area_nosemaphore: if (user_mode(regs)) { force_sig_fault(SIGSEGV, si_code, (void __user *)address); return; diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c index ef78c2d66cdd..99a09abe1d2c 100644 --- a/arch/ia64/mm/fault.c +++ b/arch/ia64/mm/fault.c @@ -110,10 +110,12 @@ retry: * register backing store that needs to expand upwards, in * this case vma will be null, but prev_vma will ne non-null */ - if (( !vma && prev_vma ) || (address < vma->vm_start) ) - goto check_expansion; + if (( !vma && prev_vma ) || (address < vma->vm_start) ) { + vma = expand_stack(mm, address); + if (!vma) + goto bad_area_nosemaphore; + } - good_area: code = SEGV_ACCERR; /* OK, we've got a good vm_area for this memory area. Check the access permissions: */ @@ -174,35 +176,9 @@ retry: mmap_read_unlock(mm); return; - check_expansion: - if (!(prev_vma && (prev_vma->vm_flags & VM_GROWSUP) && (address == prev_vma->vm_end))) { - if (!vma) - goto bad_area; - if (!(vma->vm_flags & VM_GROWSDOWN)) - goto bad_area; - if (REGION_NUMBER(address) != REGION_NUMBER(vma->vm_start) - || REGION_OFFSET(address) >= RGN_MAP_LIMIT) - goto bad_area; - if (expand_stack(vma, address)) - goto bad_area; - } else { - vma = prev_vma; - if (REGION_NUMBER(address) != REGION_NUMBER(vma->vm_start) - || REGION_OFFSET(address) >= RGN_MAP_LIMIT) - goto bad_area; - /* - * Since the register backing store is accessed sequentially, - * we disallow growing it by more than a page at a time. - */ - if (address > vma->vm_end + PAGE_SIZE - sizeof(long)) - goto bad_area; - if (expand_upwards(vma, address)) - goto bad_area; - } - goto good_area; - bad_area: mmap_read_unlock(mm); + bad_area_nosemaphore: if ((isr & IA64_ISR_SP) || ((isr & IA64_ISR_NA) && (isr & IA64_ISR_CODE_MASK) == IA64_ISR_CODE_LFETCH)) { diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig index 903096bd87f8..51d738ac12e5 100644 --- a/arch/loongarch/Kconfig +++ b/arch/loongarch/Kconfig @@ -107,6 +107,7 @@ config LOONGARCH select HAVE_VIRT_CPU_ACCOUNTING_GEN if !SMP select IRQ_FORCED_THREADING select IRQ_LOONGARCH_CPU + select LOCK_MM_AND_FIND_VMA select MMU_GATHER_MERGE_VMAS if MMU select MODULES_USE_ELF_RELA if MODULES select NEED_PER_CPU_EMBED_FIRST_CHUNK diff --git a/arch/loongarch/mm/fault.c b/arch/loongarch/mm/fault.c index 1ccd53655cab..b829ab911a17 100644 --- a/arch/loongarch/mm/fault.c +++ b/arch/loongarch/mm/fault.c @@ -166,22 +166,18 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); retry: - mmap_read_lock(mm); - vma = find_vma(mm, address); - if (!vma) - goto bad_area; - if (vma->vm_start <= address) - goto good_area; - if (!(vma->vm_flags & VM_GROWSDOWN)) - goto bad_area; - if (!expand_stack(vma, address)) - goto good_area; + vma = lock_mm_and_find_vma(mm, address, regs); + if (unlikely(!vma)) + goto bad_area_nosemaphore; + goto good_area; + /* * Something tried to access memory that isn't in our memory map.. * Fix it, but check if it's kernel or user first.. */ bad_area: mmap_read_unlock(mm); +bad_area_nosemaphore: do_sigsegv(regs, write, address, si_code); return; diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c index 4d2837eb3e2a..6f62af8e293a 100644 --- a/arch/m68k/mm/fault.c +++ b/arch/m68k/mm/fault.c @@ -105,8 +105,9 @@ retry: if (address + 256 < rdusp()) goto map_err; } - if (expand_stack(vma, address)) - goto map_err; + vma = expand_stack(mm, address); + if (!vma) + goto map_err_nosemaphore; /* * Ok, we have a good vm_area for this memory access, so @@ -193,10 +194,12 @@ bus_err: goto send_sig; map_err: + mmap_read_unlock(mm); +map_err_nosemaphore: current->thread.signo = SIGSEGV; current->thread.code = SEGV_MAPERR; current->thread.faddr = address; - goto send_sig; + return send_fault_sig(regs); acc_err: current->thread.signo = SIGSEGV; diff --git a/arch/microblaze/mm/fault.c b/arch/microblaze/mm/fault.c index 5c40c3ebe52f..a409bb3f09f7 100644 --- a/arch/microblaze/mm/fault.c +++ b/arch/microblaze/mm/fault.c @@ -192,8 +192,9 @@ retry: && (kernel_mode(regs) || !store_updates_sp(regs))) goto bad_area; } - if (expand_stack(vma, address)) - goto bad_area; + vma = expand_stack(mm, address); + if (!vma) + goto bad_area_nosemaphore; good_area: code = SEGV_ACCERR; diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index b26b77673c2c..fecb681ff264 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -93,6 +93,7 @@ config MIPS select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP select IRQ_FORCED_THREADING select ISA if EISA + select LOCK_MM_AND_FIND_VMA select MODULES_USE_ELF_REL if MODULES select MODULES_USE_ELF_RELA if MODULES && 64BIT select PERF_USE_VMALLOC diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c index a27045f5a556..d7878208bd3f 100644 --- a/arch/mips/mm/fault.c +++ b/arch/mips/mm/fault.c @@ -99,21 +99,13 @@ static void __do_page_fault(struct pt_regs *regs, unsigned long write, perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); retry: - mmap_read_lock(mm); - vma = find_vma(mm, address); + vma = lock_mm_and_find_vma(mm, address, regs); if (!vma) - goto bad_area; - if (vma->vm_start <= address) - goto good_area; - if (!(vma->vm_flags & VM_GROWSDOWN)) - goto bad_area; - if (expand_stack(vma, address)) - goto bad_area; + goto bad_area_nosemaphore; /* * Ok, we have a good vm_area for this memory access, so * we can handle it.. */ -good_area: si_code = SEGV_ACCERR; if (write) { diff --git a/arch/nios2/Kconfig b/arch/nios2/Kconfig index a582f72104f3..1fb78865a459 100644 --- a/arch/nios2/Kconfig +++ b/arch/nios2/Kconfig @@ -16,6 +16,7 @@ config NIOS2 select HAVE_ARCH_TRACEHOOK select HAVE_ARCH_KGDB select IRQ_DOMAIN + select LOCK_MM_AND_FIND_VMA select MODULES_USE_ELF_RELA select OF select OF_EARLY_FLATTREE diff --git a/arch/nios2/mm/fault.c b/arch/nios2/mm/fault.c index edaca0a6c1c1..71939fb28c2e 100644 --- a/arch/nios2/mm/fault.c +++ b/arch/nios2/mm/fault.c @@ -86,27 +86,14 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long cause, perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); - if (!mmap_read_trylock(mm)) { - if (!user_mode(regs) && !search_exception_tables(regs->ea)) - goto bad_area_nosemaphore; retry: - mmap_read_lock(mm); - } - - vma = find_vma(mm, address); + vma = lock_mm_and_find_vma(mm, address, regs); if (!vma) - goto bad_area; - if (vma->vm_start <= address) - goto good_area; - if (!(vma->vm_flags & VM_GROWSDOWN)) - goto bad_area; - if (expand_stack(vma, address)) - goto bad_area; + goto bad_area_nosemaphore; /* * Ok, we have a good vm_area for this memory access, so * we can handle it.. */ -good_area: code = SEGV_ACCERR; switch (cause) { diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c index b4762d66e9ef..e3ad46d02fbd 100644 --- a/arch/openrisc/mm/fault.c +++ b/arch/openrisc/mm/fault.c @@ -127,8 +127,9 @@ retry: if (address + PAGE_SIZE < regs->sp) goto bad_area; } - if (expand_stack(vma, address)) - goto bad_area; + vma = expand_stack(mm, address); + if (!vma) + goto bad_area_nosemaphore; /* * Ok, we have a good vm_area for this memory access, so diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c index 869204e97ec9..1843b493910c 100644 --- a/arch/parisc/mm/fault.c +++ b/arch/parisc/mm/fault.c @@ -288,15 +288,19 @@ void do_page_fault(struct pt_regs *regs, unsigned long code, retry: mmap_read_lock(mm); vma = find_vma_prev(mm, address, &prev_vma); - if (!vma || address < vma->vm_start) - goto check_expansion; + if (!vma || address < vma->vm_start) { + if (!prev || !(prev->vm_flags & VM_GROWSUP)) + goto bad_area; + vma = expand_stack(mm, address); + if (!vma) + goto bad_area_nosemaphore; + } + /* * Ok, we have a good vm_area for this memory access. We still need to * check the access permissions. */ -good_area: - if ((vma->vm_flags & acc_type) != acc_type) goto bad_area; @@ -342,17 +346,13 @@ good_area: mmap_read_unlock(mm); return; -check_expansion: - vma = prev_vma; - if (vma && (expand_stack(vma, address) == 0)) - goto good_area; - /* * Something tried to access memory that isn't in our memory map.. */ bad_area: mmap_read_unlock(mm); +bad_area_nosemaphore: if (user_mode(regs)) { int signo, si_code; @@ -444,7 +444,7 @@ handle_nadtlb_fault(struct pt_regs *regs) { unsigned long insn = regs->iir; int breg, treg, xreg, val = 0; - struct vm_area_struct *vma, *prev_vma; + struct vm_area_struct *vma; struct task_struct *tsk; struct mm_struct *mm; unsigned long address; @@ -480,7 +480,7 @@ handle_nadtlb_fault(struct pt_regs *regs) /* Search for VMA */ address = regs->ior; mmap_read_lock(mm); - vma = find_vma_prev(mm, address, &prev_vma); + vma = vma_lookup(mm, address); mmap_read_unlock(mm); /* @@ -489,7 +489,6 @@ handle_nadtlb_fault(struct pt_regs *regs) */ acc_type = (insn & 0x40) ? VM_WRITE : VM_READ; if (vma - && address >= vma->vm_start && (vma->vm_flags & acc_type) == acc_type) val = 1; } diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 2b1141645d9e..6050e6e10d32 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -257,6 +257,7 @@ config PPC select IRQ_DOMAIN select IRQ_FORCED_THREADING select KASAN_VMALLOC if KASAN && MODULES + select LOCK_MM_AND_FIND_VMA select MMU_GATHER_PAGE_SIZE select MMU_GATHER_RCU_TABLE_FREE select MMU_GATHER_MERGE_VMAS diff --git a/arch/powerpc/kvm/book3s_hv_uvmem.c b/arch/powerpc/kvm/book3s_hv_uvmem.c index 303869f4855f..6f121a034cef 100644 --- a/arch/powerpc/kvm/book3s_hv_uvmem.c +++ b/arch/powerpc/kvm/book3s_hv_uvmem.c @@ -410,6 +410,7 @@ static int kvmppc_memslot_page_merge(struct kvm *kvm, ret = H_STATE; break; } + vma_start_write(vma); /* Copy vm_flags to avoid partial modifications in ksm_madvise */ vm_flags = vma->vm_flags; ret = ksm_madvise(vma, vma->vm_start, vma->vm_end, diff --git a/arch/powerpc/mm/book3s64/subpage_prot.c b/arch/powerpc/mm/book3s64/subpage_prot.c index b75a9fb99599..b0eea434ef08 100644 --- a/arch/powerpc/mm/book3s64/subpage_prot.c +++ b/arch/powerpc/mm/book3s64/subpage_prot.c @@ -143,6 +143,7 @@ static int subpage_walk_pmd_entry(pmd_t *pmd, unsigned long addr, static const struct mm_walk_ops subpage_walk_ops = { .pmd_entry = subpage_walk_pmd_entry, + .walk_lock = PGWALK_WRLOCK_VERIFY, }; static void subpage_mark_vma_nohuge(struct mm_struct *mm, unsigned long addr, diff --git a/arch/powerpc/mm/copro_fault.c b/arch/powerpc/mm/copro_fault.c index 7c507fb48182..f49fd873df8d 100644 --- a/arch/powerpc/mm/copro_fault.c +++ b/arch/powerpc/mm/copro_fault.c @@ -33,19 +33,11 @@ int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea, if (mm->pgd == NULL) return -EFAULT; - mmap_read_lock(mm); - ret = -EFAULT; - vma = find_vma(mm, ea); + vma = lock_mm_and_find_vma(mm, ea, NULL); if (!vma) - goto out_unlock; - - if (ea < vma->vm_start) { - if (!(vma->vm_flags & VM_GROWSDOWN)) - goto out_unlock; - if (expand_stack(vma, ea)) - goto out_unlock; - } + return -EFAULT; + ret = -EFAULT; is_write = dsisr & DSISR_ISSTORE; if (is_write) { if (!(vma->vm_flags & VM_WRITE)) diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c index 531177a4ee08..b1723094d464 100644 --- a/arch/powerpc/mm/fault.c +++ b/arch/powerpc/mm/fault.c @@ -84,11 +84,6 @@ static int __bad_area(struct pt_regs *regs, unsigned long address, int si_code) return __bad_area_nosemaphore(regs, address, si_code); } -static noinline int bad_area(struct pt_regs *regs, unsigned long address) -{ - return __bad_area(regs, address, SEGV_MAPERR); -} - static noinline int bad_access_pkey(struct pt_regs *regs, unsigned long address, struct vm_area_struct *vma) { @@ -474,7 +469,6 @@ static int ___do_page_fault(struct pt_regs *regs, unsigned long address, if (is_exec) flags |= FAULT_FLAG_INSTRUCTION; -#ifdef CONFIG_PER_VMA_LOCK if (!(flags & FAULT_FLAG_USER)) goto lock_mmap; @@ -494,7 +488,8 @@ static int ___do_page_fault(struct pt_regs *regs, unsigned long address, } fault = handle_mm_fault(vma, address, flags | FAULT_FLAG_VMA_LOCK, regs); - vma_end_read(vma); + if (!(fault & (VM_FAULT_RETRY | VM_FAULT_COMPLETED))) + vma_end_read(vma); if (!(fault & VM_FAULT_RETRY)) { count_vm_vma_lock_event(VMA_LOCK_SUCCESS); @@ -506,7 +501,6 @@ static int ___do_page_fault(struct pt_regs *regs, unsigned long address, return user_mode(regs) ? 0 : SIGBUS; lock_mmap: -#endif /* CONFIG_PER_VMA_LOCK */ /* When running in the kernel we expect faults to occur only to * addresses in user space. All other faults represent errors in the @@ -515,40 +509,12 @@ lock_mmap: * we will deadlock attempting to validate the fault against the * address space. Luckily the kernel only validly references user * space from well defined areas of code, which are listed in the - * exceptions table. - * - * As the vast majority of faults will be valid we will only perform - * the source reference check when there is a possibility of a deadlock. - * Attempt to lock the address space, if we cannot we then validate the - * source. If this is invalid we can skip the address space check, - * thus avoiding the deadlock. + * exceptions table. lock_mm_and_find_vma() handles that logic. */ - if (unlikely(!mmap_read_trylock(mm))) { - if (!is_user && !search_exception_tables(regs->nip)) - return bad_area_nosemaphore(regs, address); - retry: - mmap_read_lock(mm); - } else { - /* - * The above down_read_trylock() might have succeeded in - * which case we'll have missed the might_sleep() from - * down_read(): - */ - might_sleep(); - } - - vma = find_vma(mm, address); + vma = lock_mm_and_find_vma(mm, address, regs); if (unlikely(!vma)) - return bad_area(regs, address); - - if (unlikely(vma->vm_start > address)) { - if (unlikely(!(vma->vm_flags & VM_GROWSDOWN))) - return bad_area(regs, address); - - if (unlikely(expand_stack(vma, address))) - return bad_area(regs, address); - } + return bad_area_nosemaphore(regs, address); if (unlikely(access_pkey_error(is_write, is_exec, (error_code & DSISR_KEYFAULT), vma))) @@ -584,9 +550,7 @@ retry: mmap_read_unlock(current->mm); -#ifdef CONFIG_PER_VMA_LOCK done: -#endif if (unlikely(fault & VM_FAULT_ERROR)) return mm_fault_error(regs, address, fault); diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 06b9b2f60b9f..ac586089767d 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -39,6 +39,7 @@ config RISCV select ARCH_SUPPORTS_DEBUG_PAGEALLOC if MMU select ARCH_SUPPORTS_HUGETLBFS if MMU select ARCH_SUPPORTS_PAGE_TABLE_CHECK if MMU + select ARCH_SUPPORTS_PER_VMA_LOCK if MMU select ARCH_USE_MEMTEST select ARCH_USE_QUEUED_RWLOCKS select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU @@ -113,6 +114,7 @@ config RISCV select HAVE_RSEQ select IRQ_DOMAIN select IRQ_FORCED_THREADING + select LOCK_MM_AND_FIND_VMA select MODULES_USE_ELF_RELA if MODULES select MODULE_SECTIONS if MODULES select OF diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c index eb0774d9c03b..34a44febae86 100644 --- a/arch/riscv/mm/fault.c +++ b/arch/riscv/mm/fault.c @@ -83,13 +83,13 @@ static inline void mm_fault_error(struct pt_regs *regs, unsigned long addr, vm_f BUG(); } -static inline void bad_area(struct pt_regs *regs, struct mm_struct *mm, int code, unsigned long addr) +static inline void +bad_area_nosemaphore(struct pt_regs *regs, int code, unsigned long addr) { /* * Something tried to access memory that isn't in our memory map. * Fix it, but check if it's kernel or user first. */ - mmap_read_unlock(mm); /* User mode accesses just cause a SIGSEGV */ if (user_mode(regs)) { do_trap(regs, SIGSEGV, code, addr); @@ -99,6 +99,15 @@ static inline void bad_area(struct pt_regs *regs, struct mm_struct *mm, int code no_context(regs, addr); } +static inline void +bad_area(struct pt_regs *regs, struct mm_struct *mm, int code, + unsigned long addr) +{ + mmap_read_unlock(mm); + + bad_area_nosemaphore(regs, code, addr); +} + static inline void vmalloc_fault(struct pt_regs *regs, int code, unsigned long addr) { pgd_t *pgd, *pgd_k; @@ -280,24 +289,40 @@ asmlinkage void do_page_fault(struct pt_regs *regs) flags |= FAULT_FLAG_WRITE; else if (cause == EXC_INST_PAGE_FAULT) flags |= FAULT_FLAG_INSTRUCTION; -retry: - mmap_read_lock(mm); - vma = find_vma(mm, addr); - if (unlikely(!vma)) { - tsk->thread.bad_cause = cause; - bad_area(regs, mm, code, addr); - return; + if (!(flags & FAULT_FLAG_USER)) + goto lock_mmap; + + vma = lock_vma_under_rcu(mm, addr); + if (!vma) + goto lock_mmap; + + if (unlikely(access_error(cause, vma))) { + vma_end_read(vma); + goto lock_mmap; } - if (likely(vma->vm_start <= addr)) - goto good_area; - if (unlikely(!(vma->vm_flags & VM_GROWSDOWN))) { - tsk->thread.bad_cause = cause; - bad_area(regs, mm, code, addr); + + fault = handle_mm_fault(vma, addr, flags | FAULT_FLAG_VMA_LOCK, regs); + if (!(fault & (VM_FAULT_RETRY | VM_FAULT_COMPLETED))) + vma_end_read(vma); + + if (!(fault & VM_FAULT_RETRY)) { + count_vm_vma_lock_event(VMA_LOCK_SUCCESS); + goto done; + } + count_vm_vma_lock_event(VMA_LOCK_RETRY); + + if (fault_signal_pending(fault, regs)) { + if (!user_mode(regs)) + no_context(regs, addr); return; } - if (unlikely(expand_stack(vma, addr))) { +lock_mmap: + +retry: + vma = lock_mm_and_find_vma(mm, addr, regs); + if (unlikely(!vma)) { tsk->thread.bad_cause = cause; - bad_area(regs, mm, code, addr); + bad_area_nosemaphore(regs, code, addr); return; } @@ -305,7 +330,6 @@ retry: * Ok, we have a good vm_area for this memory access, so * we can handle it. */ -good_area: code = SEGV_ACCERR; if (unlikely(access_error(cause, vma))) { @@ -346,6 +370,7 @@ good_area: mmap_read_unlock(mm); +done: if (unlikely(fault & VM_FAULT_ERROR)) { tsk->thread.bad_cause = cause; mm_fault_error(regs, addr, fault); diff --git a/arch/riscv/mm/pageattr.c b/arch/riscv/mm/pageattr.c index 86c56616e5de..0f33fc40c911 100644 --- a/arch/riscv/mm/pageattr.c +++ b/arch/riscv/mm/pageattr.c @@ -102,6 +102,7 @@ static const struct mm_walk_ops pageattr_ops = { .pmd_entry = pageattr_pmd_entry, .pte_entry = pageattr_pte_entry, .pte_hole = pageattr_pte_hole, + .walk_lock = PGWALK_RDLOCK, }; static int __set_memory(unsigned long addr, int numpages, pgprot_t set_mask, diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c index 16223095045e..0843adb266d1 100644 --- a/arch/s390/mm/fault.c +++ b/arch/s390/mm/fault.c @@ -403,7 +403,6 @@ static inline vm_fault_t do_exception(struct pt_regs *regs, int access) access = VM_WRITE; if (access == VM_WRITE) flags |= FAULT_FLAG_WRITE; -#ifdef CONFIG_PER_VMA_LOCK if (!(flags & FAULT_FLAG_USER)) goto lock_mmap; vma = lock_vma_under_rcu(mm, address); @@ -414,7 +413,8 @@ static inline vm_fault_t do_exception(struct pt_regs *regs, int access) goto lock_mmap; } fault = handle_mm_fault(vma, address, flags | FAULT_FLAG_VMA_LOCK, regs); - vma_end_read(vma); + if (!(fault & (VM_FAULT_RETRY | VM_FAULT_COMPLETED))) + vma_end_read(vma); if (!(fault & VM_FAULT_RETRY)) { count_vm_vma_lock_event(VMA_LOCK_SUCCESS); goto out; @@ -426,7 +426,6 @@ static inline vm_fault_t do_exception(struct pt_regs *regs, int access) goto out; } lock_mmap: -#endif /* CONFIG_PER_VMA_LOCK */ mmap_read_lock(mm); gmap = NULL; @@ -453,8 +452,9 @@ retry: if (unlikely(vma->vm_start > address)) { if (!(vma->vm_flags & VM_GROWSDOWN)) goto out_up; - if (expand_stack(vma, address)) - goto out_up; + vma = expand_stack(mm, address); + if (!vma) + goto out; } /* diff --git a/arch/s390/mm/gmap.c b/arch/s390/mm/gmap.c index e4567b5fcdda..d3f4b2c0dd9a 100644 --- a/arch/s390/mm/gmap.c +++ b/arch/s390/mm/gmap.c @@ -2510,6 +2510,7 @@ static int thp_split_walk_pmd_entry(pmd_t *pmd, unsigned long addr, static const struct mm_walk_ops thp_split_walk_ops = { .pmd_entry = thp_split_walk_pmd_entry, + .walk_lock = PGWALK_WRLOCK_VERIFY, }; static inline void thp_split_mm(struct mm_struct *mm) @@ -2554,6 +2555,7 @@ static int __zap_zero_pages(pmd_t *pmd, unsigned long start, static const struct mm_walk_ops zap_zero_walk_ops = { .pmd_entry = __zap_zero_pages, + .walk_lock = PGWALK_WRLOCK, }; /* @@ -2655,6 +2657,7 @@ static const struct mm_walk_ops enable_skey_walk_ops = { .hugetlb_entry = __s390_enable_skey_hugetlb, .pte_entry = __s390_enable_skey_pte, .pmd_entry = __s390_enable_skey_pmd, + .walk_lock = PGWALK_WRLOCK, }; int s390_enable_skey(void) @@ -2692,6 +2695,7 @@ static int __s390_reset_cmma(pte_t *pte, unsigned long addr, static const struct mm_walk_ops reset_cmma_walk_ops = { .pte_entry = __s390_reset_cmma, + .walk_lock = PGWALK_WRLOCK, }; void s390_reset_cmma(struct mm_struct *mm) @@ -2728,6 +2732,7 @@ static int s390_gather_pages(pte_t *ptep, unsigned long addr, static const struct mm_walk_ops gather_pages_ops = { .pte_entry = s390_gather_pages, + .walk_lock = PGWALK_RDLOCK, }; /* diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 5f220e903e5a..8e4d1f757bcc 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -56,6 +56,7 @@ config SUPERH select HAVE_STACKPROTECTOR select HAVE_SYSCALL_TRACEPOINTS select IRQ_FORCED_THREADING + select LOCK_MM_AND_FIND_VMA select MODULES_USE_ELF_RELA select NEED_SG_DMA_LENGTH select NO_DMA if !MMU && !DMA_COHERENT diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c index acd2f5e50bfc..06e6b4952924 100644 --- a/arch/sh/mm/fault.c +++ b/arch/sh/mm/fault.c @@ -439,21 +439,9 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, } retry: - mmap_read_lock(mm); - - vma = find_vma(mm, address); + vma = lock_mm_and_find_vma(mm, address, regs); if (unlikely(!vma)) { - bad_area(regs, error_code, address); - return; - } - if (likely(vma->vm_start <= address)) - goto good_area; - if (unlikely(!(vma->vm_flags & VM_GROWSDOWN))) { - bad_area(regs, error_code, address); - return; - } - if (unlikely(expand_stack(vma, address))) { - bad_area(regs, error_code, address); + bad_area_nosemaphore(regs, error_code, address); return; } @@ -461,7 +449,6 @@ retry: * Ok, we have a good vm_area for this memory access, so * we can handle it.. */ -good_area: if (unlikely(access_error(error_code, vma))) { bad_area_access_error(regs, error_code, address); return; diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 84437a4c6545..dbb1760cbe8c 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -56,6 +56,7 @@ config SPARC32 select DMA_DIRECT_REMAP select GENERIC_ATOMIC64 select HAVE_UID16 + select LOCK_MM_AND_FIND_VMA select OLD_SIGACTION select ZONE_DMA diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c index 91259f291c54..aef2aebe2379 100644 --- a/arch/sparc/mm/fault_32.c +++ b/arch/sparc/mm/fault_32.c @@ -143,28 +143,19 @@ asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write, if (pagefault_disabled() || !mm) goto no_context; + if (!from_user && address >= PAGE_OFFSET) + goto no_context; + perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); retry: - mmap_read_lock(mm); - - if (!from_user && address >= PAGE_OFFSET) - goto bad_area; - - vma = find_vma(mm, address); + vma = lock_mm_and_find_vma(mm, address, regs); if (!vma) - goto bad_area; - if (vma->vm_start <= address) - goto good_area; - if (!(vma->vm_flags & VM_GROWSDOWN)) - goto bad_area; - if (expand_stack(vma, address)) - goto bad_area; + goto bad_area_nosemaphore; /* * Ok, we have a good vm_area for this memory access, so * we can handle it.. */ -good_area: code = SEGV_ACCERR; if (write) { if (!(vma->vm_flags & VM_WRITE)) @@ -318,17 +309,9 @@ static void force_user_fault(unsigned long address, int write) code = SEGV_MAPERR; - mmap_read_lock(mm); - vma = find_vma(mm, address); + vma = lock_mm_and_find_vma(mm, address, regs); if (!vma) - goto bad_area; - if (vma->vm_start <= address) - goto good_area; - if (!(vma->vm_flags & VM_GROWSDOWN)) - goto bad_area; - if (expand_stack(vma, address)) - goto bad_area; -good_area: + goto bad_area_nosemaphore; code = SEGV_ACCERR; if (write) { if (!(vma->vm_flags & VM_WRITE)) @@ -347,6 +330,7 @@ good_area: return; bad_area: mmap_read_unlock(mm); +bad_area_nosemaphore: __do_fault_siginfo(code, SIGSEGV, tsk->thread.kregs, address); return; diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c index 4acc12eafbf5..df685a241855 100644 --- a/arch/sparc/mm/fault_64.c +++ b/arch/sparc/mm/fault_64.c @@ -383,8 +383,9 @@ continue_fault: goto bad_area; } } - if (expand_stack(vma, address)) - goto bad_area; + vma = expand_stack(mm, address); + if (!vma) + goto bad_area_nosemaphore; /* * Ok, we have a good vm_area for this memory access, so * we can handle it.. @@ -482,8 +483,9 @@ exit_exception: * Fix it, but check if it's kernel or user first.. */ bad_area: - insn = get_fault_insn(regs, insn); mmap_read_unlock(mm); +bad_area_nosemaphore: + insn = get_fault_insn(regs, insn); handle_kernel_fault: do_kernel_fault(regs, si_code, fault_code, insn, address); diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c index d3ce21c4ca32..6d8ae86ae978 100644 --- a/arch/um/kernel/trap.c +++ b/arch/um/kernel/trap.c @@ -47,14 +47,15 @@ retry: vma = find_vma(mm, address); if (!vma) goto out; - else if (vma->vm_start <= address) + if (vma->vm_start <= address) goto good_area; - else if (!(vma->vm_flags & VM_GROWSDOWN)) + if (!(vma->vm_flags & VM_GROWSDOWN)) goto out; - else if (is_user && !ARCH_IS_STACKGROW(address)) - goto out; - else if (expand_stack(vma, address)) + if (is_user && !ARCH_IS_STACKGROW(address)) goto out; + vma = expand_stack(mm, address); + if (!vma) + goto out_nosemaphore; good_area: *code_out = SEGV_ACCERR; diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index ab3ce4ea05d0..22cdc45031d4 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -272,6 +272,7 @@ config X86 select HAVE_GENERIC_VDSO select HOTPLUG_SMT if SMP select IRQ_FORCED_THREADING + select LOCK_MM_AND_FIND_VMA select NEED_PER_CPU_EMBED_FIRST_CHUNK select NEED_PER_CPU_PAGE_FIRST_CHUNK select NEED_SG_DMA_LENGTH diff --git a/arch/x86/Makefile.um b/arch/x86/Makefile.um index d2e95d1d4db7..1aa64846e539 100644 --- a/arch/x86/Makefile.um +++ b/arch/x86/Makefile.um @@ -3,9 +3,14 @@ core-y += arch/x86/crypto/ # # Disable SSE and other FP/SIMD instructions to match normal x86 +# This is required to work around issues in older LLVM versions, but breaks +# GCC versions < 11. See: +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99652 # +ifeq ($(CONFIG_CC_IS_CLANG),y) KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2 +endif ifeq ($(CONFIG_X86_32),y) START := 0x8048000 diff --git a/arch/x86/OWNERS b/arch/x86/OWNERS deleted file mode 100644 index f59fa995b361..000000000000 --- a/arch/x86/OWNERS +++ /dev/null @@ -1,3 +0,0 @@ -per-file crypto/**=file:/crypto/OWNERS -per-file mm/**=file:/mm/OWNERS -per-file net/**=file:/net/OWNERS diff --git a/arch/x86/configs/crashdump_defconfig b/arch/x86/configs/crashdump_defconfig new file mode 100644 index 000000000000..5177d6e4619b --- /dev/null +++ b/arch/x86/configs/crashdump_defconfig @@ -0,0 +1,87 @@ +# CONFIG_WERROR is not set +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_KERNEL_LZ4=y +# CONFIG_SWAP is not set +# CONFIG_CROSS_MEMORY_ATTACH is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_PREEMPT=y +CONFIG_LOG_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=12 +# CONFIG_UTS_NS is not set +# CONFIG_TIME_NS is not set +# CONFIG_PID_NS is not set +CONFIG_BLK_DEV_INITRD=y +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_RD_ZSTD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB_MERGE_DEFAULT is not set +# CONFIG_RETPOLINE is not set +# CONFIG_X86_EXTENDED_PLATFORM is not set +# CONFIG_SCHED_OMIT_FRAME_POINTER is not set +# CONFIG_X86_MCE is not set +# CONFIG_PERF_EVENTS_AMD_UNCORE is not set +# CONFIG_X86_IOPL_IOPERM is not set +# CONFIG_MICROCODE is not set +# CONFIG_X86_5LEVEL is not set +# CONFIG_MTRR_SANITIZER is not set +# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set +CONFIG_CRASH_DUMP=y +CONFIG_PHYSICAL_START=0x100000 +# CONFIG_RANDOMIZE_BASE is not set +CONFIG_LEGACY_VSYSCALL_NONE=y +# CONFIG_SUSPEND is not set +# CONFIG_ACPI is not set +# CONFIG_VIRTUALIZATION is not set +CONFIG_JUMP_LABEL=y +# CONFIG_SECCOMP is not set +# CONFIG_STACKPROTECTOR is not set +# CONFIG_VMAP_STACK is not set +# CONFIG_MQ_IOSCHED_DEADLINE is not set +# CONFIG_MQ_IOSCHED_KYBER is not set +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_BINFMT_SCRIPT is not set +# CONFIG_SPARSEMEM_VMEMMAP is not set +# CONFIG_COMPACTION is not set +CONFIG_PCI=y +CONFIG_PCI_ENDPOINT=y +CONFIG_DEVTMPFS=y +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +# CONFIG_DMIID is not set +# CONFIG_BLK_DEV is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO_I8042 is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=1 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_DEV_BUS=y +# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set +CONFIG_VIRTIO_CONSOLE=y +# CONFIG_HW_RANDOM is not set +# CONFIG_DEVMEM is not set +# CONFIG_HWMON is not set +# CONFIG_HID is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_VIRTIO_PCI=y +# CONFIG_VIRTIO_PCI_LEGACY is not set +# CONFIG_VHOST_MENU is not set +# CONFIG_X86_PLATFORM_DEVICES is not set +# CONFIG_IOMMU_SUPPORT is not set +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +CONFIG_TMPFS=y +# CONFIG_MISC_FILESYSTEMS is not set +# CONFIG_PAGE_TABLE_ISOLATION is not set +# CONFIG_SYMBOLIC_ERRNAME is not set +# CONFIG_X86_VERBOSE_BOOTUP is not set +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/arch/x86/configs/gki_defconfig b/arch/x86/configs/gki_defconfig index fa893e2792b4..34a85587c4f4 100644 --- a/arch/x86/configs/gki_defconfig +++ b/arch/x86/configs/gki_defconfig @@ -90,6 +90,7 @@ CONFIG_MODULE_SIG_PROTECT=y CONFIG_BLK_DEV_ZONED=y CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLK_CGROUP_IOCOST=y +CONFIG_BLK_CGROUP_IOPRIO=y CONFIG_BLK_INLINE_ENCRYPTION=y CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y CONFIG_IOSCHED_BFQ=y @@ -178,6 +179,7 @@ CONFIG_NETFILTER_XT_TARGET_SECMARK=y CONFIG_NETFILTER_XT_TARGET_TCPMSS=y CONFIG_NETFILTER_XT_MATCH_BPF=y CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y CONFIG_NETFILTER_XT_MATCH_CONNMARK=y CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y @@ -350,6 +352,8 @@ CONFIG_USB_NET_AQC111=m # CONFIG_WLAN_VENDOR_TI is not set # CONFIG_WLAN_VENDOR_ZYDAS is not set # CONFIG_WLAN_VENDOR_QUANTENNA is not set +CONFIG_WWAN=m +# CONFIG_WWAN_DEBUGFS is not set CONFIG_INPUT_EVDEV=y CONFIG_KEYBOARD_GPIO=y # CONFIG_MOUSE_PS2 is not set @@ -518,6 +522,7 @@ CONFIG_IIO_TRIGGER=y CONFIG_POWERCAP=y CONFIG_ANDROID_BINDER_IPC=y CONFIG_ANDROID_BINDERFS=y +CONFIG_ANDROID_DEBUG_SYMBOLS=y CONFIG_ANDROID_VENDOR_HOOKS=y CONFIG_ANDROID_DEBUG_KINFO=y CONFIG_LIBNVDIMM=y diff --git a/arch/x86/configs/microdroid_defconfig b/arch/x86/configs/microdroid_defconfig new file mode 100644 index 000000000000..d2539f0adce9 --- /dev/null +++ b/arch/x86/configs/microdroid_defconfig @@ -0,0 +1,290 @@ +CONFIG_KERNEL_LZ4=y +CONFIG_AUDIT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_TASKSTATS=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_PSI=y +CONFIG_RCU_EXPERT=y +CONFIG_RCU_BOOST=y +CONFIG_RCU_NOCB_CPU=y +CONFIG_UCLAMP_TASK=y +CONFIG_UCLAMP_BUCKETS_COUNT=20 +CONFIG_CGROUPS=y +CONFIG_MEMCG=y +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_SCHED=y +CONFIG_UCLAMP_TASK_GROUP=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_CPUACCT=y +# CONFIG_UTS_NS is not set +# CONFIG_TIME_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +CONFIG_BOOT_CONFIG=y +CONFIG_PROFILING=y +CONFIG_SMP=y +CONFIG_X86_X2APIC=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +CONFIG_PARAVIRT_TIME_ACCOUNTING=y +CONFIG_NR_CPUS=32 +# CONFIG_X86_MCE is not set +CONFIG_EFI=y +CONFIG_KEXEC_FILE=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="stack_depot_disable=on cgroup_disable=pressure ioremap_guard panic=-1 bootconfig acpi=noirq" +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_WAKELOCKS_LIMIT=0 +# CONFIG_PM_WAKELOCKS_GC is not set +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_TIMES=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_JUMP_LABEL=y +CONFIG_MODULES=y +CONFIG_BLK_DEV_ZONED=y +CONFIG_BLK_CGROUP_IOCOST=y +CONFIG_BLK_INLINE_ENCRYPTION=y +CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y +CONFIG_PARTITION_ADVANCED=y +# CONFIG_MSDOS_PARTITION is not set +CONFIG_IOSCHED_BFQ=y +CONFIG_BFQ_GROUP_IOSCHED=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_BINFMT_MISC=y +# CONFIG_SLAB_MERGE_DEFAULT is not set +CONFIG_SLAB_FREELIST_RANDOM=y +CONFIG_SLAB_FREELIST_HARDENED=y +CONFIG_SHUFFLE_PAGE_ALLOCATOR=y +# CONFIG_COMPAT_BRK is not set +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_ANON_VMA_NAME=y +CONFIG_USERFAULTFD=y +CONFIG_LRU_GEN=y +CONFIG_DAMON=y +CONFIG_DAMON_PADDR=y +CONFIG_DAMON_RECLAIM=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_INTERFACE=y +CONFIG_XFRM_MIGRATE=y +CONFIG_XFRM_STATISTICS=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_NET_IPIP=y +CONFIG_NET_IPGRE_DEMUX=y +CONFIG_NET_IPGRE=y +CONFIG_NET_IPVTI=y +CONFIG_INET_ESP=y +CONFIG_INET_UDP_DIAG=y +CONFIG_INET_DIAG_DESTROY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_IPV6_VTI=y +CONFIG_IPV6_GRE=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_VSOCKETS=y +CONFIG_VIRTIO_VSOCKETS=y +CONFIG_CGROUP_NET_PRIO=y +# CONFIG_WIRELESS is not set +CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIEAER=y +CONFIG_PCI_MSI=y +CONFIG_PCI_IOV=y +CONFIG_PCIE_DW_PLAT_EP=y +CONFIG_PCI_ENDPOINT=y +CONFIG_FW_LOADER_USER_HELPER=y +# CONFIG_FW_CACHE is not set +CONFIG_OF=y +CONFIG_ZRAM=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=16 +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_VIRTIO_BLK=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=y +CONFIG_DM_INIT=y +CONFIG_DM_UEVENT=y +CONFIG_DM_VERITY=y +CONFIG_DM_VERITY_FEC=y +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_CONSOLE=y +# CONFIG_SERIAL_8250_PCI is not set +CONFIG_SERIAL_8250_RUNTIME_UARTS=0 +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_NULL_TTY=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_VIRTIO=y +# CONFIG_DEVMEM is not set +# CONFIG_DEVPORT is not set +CONFIG_HPET=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_GENERIC_PLATFORM=y +# CONFIG_HWMON is not set +CONFIG_THERMAL_NETLINK=y +CONFIG_THERMAL_STATISTICS=y +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=100 +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_CPU_THERMAL=y +CONFIG_THERMAL_EMULATION=y +# CONFIG_X86_PKG_TEMP_THERMAL is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +CONFIG_MFD_SYSCON=y +# CONFIG_HID is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_EDAC=y +CONFIG_RTC_CLASS=y +CONFIG_DMABUF_HEAPS=y +CONFIG_DMABUF_SYSFS_STATS=y +CONFIG_UIO=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_STAGING=y +CONFIG_LIBNVDIMM=y +CONFIG_EXT4_FS=y +# CONFIG_EXT4_USE_FOR_EXT2 is not set +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_DNOTIFY is not set +CONFIG_FUSE_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_EFIVAR_FS is not set +CONFIG_EROFS_FS=y +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=y +CONFIG_NLS_CODEPAGE_775=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_CODEPAGE_852=y +CONFIG_NLS_CODEPAGE_855=y +CONFIG_NLS_CODEPAGE_857=y +CONFIG_NLS_CODEPAGE_860=y +CONFIG_NLS_CODEPAGE_861=y +CONFIG_NLS_CODEPAGE_862=y +CONFIG_NLS_CODEPAGE_863=y +CONFIG_NLS_CODEPAGE_864=y +CONFIG_NLS_CODEPAGE_865=y +CONFIG_NLS_CODEPAGE_866=y +CONFIG_NLS_CODEPAGE_869=y +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_CODEPAGE_932=y +CONFIG_NLS_CODEPAGE_949=y +CONFIG_NLS_CODEPAGE_874=y +CONFIG_NLS_ISO8859_8=y +CONFIG_NLS_CODEPAGE_1250=y +CONFIG_NLS_CODEPAGE_1251=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=y +CONFIG_NLS_ISO8859_3=y +CONFIG_NLS_ISO8859_4=y +CONFIG_NLS_ISO8859_5=y +CONFIG_NLS_ISO8859_6=y +CONFIG_NLS_ISO8859_7=y +CONFIG_NLS_ISO8859_9=y +CONFIG_NLS_ISO8859_13=y +CONFIG_NLS_ISO8859_14=y +CONFIG_NLS_ISO8859_15=y +CONFIG_NLS_KOI8_R=y +CONFIG_NLS_KOI8_U=y +CONFIG_NLS_MAC_ROMAN=y +CONFIG_NLS_MAC_CELTIC=y +CONFIG_NLS_MAC_CENTEURO=y +CONFIG_NLS_MAC_CROATIAN=y +CONFIG_NLS_MAC_CYRILLIC=y +CONFIG_NLS_MAC_GAELIC=y +CONFIG_NLS_MAC_GREEK=y +CONFIG_NLS_MAC_ICELAND=y +CONFIG_NLS_MAC_INUIT=y +CONFIG_NLS_MAC_ROMANIAN=y +CONFIG_NLS_MAC_TURKISH=y +CONFIG_NLS_UTF8=y +CONFIG_UNICODE=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_HARDENED_USERCOPY=y +CONFIG_STATIC_USERMODEHELPER=y +CONFIG_STATIC_USERMODEHELPER_PATH="" +CONFIG_SECURITY_SELINUX=y +CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_ADIANTUM=y +CONFIG_CRYPTO_HCTR2=y +CONFIG_CRYPTO_CHACHA20POLY1305=y +CONFIG_CRYPTO_BLAKE2B=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_XCBC=y +CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_LZ4=y +CONFIG_CRYPTO_ZSTD=y +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_CRYPTO_AES_NI_INTEL=y +CONFIG_CRYPTO_POLYVAL_CLMUL_NI=y +CONFIG_CRYPTO_SHA256_SSSE3=y +CONFIG_CRYPTO_SHA512_SSSE3=y +CONFIG_CRC8=y +CONFIG_XZ_DEC=y +CONFIG_PRINTK_TIME=y +CONFIG_DYNAMIC_DEBUG_CORE=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_INFO_DWARF5=y +CONFIG_DEBUG_INFO_REDUCED=y +CONFIG_DEBUG_INFO_COMPRESSED=y +CONFIG_HEADERS_INSTALL=y +# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_UBSAN=y +CONFIG_UBSAN_TRAP=y +CONFIG_UBSAN_LOCAL_BOUNDS=y +# CONFIG_UBSAN_SHIFT is not set +# CONFIG_UBSAN_BOOL is not set +# CONFIG_UBSAN_ENUM is not set +CONFIG_PAGE_OWNER=y +CONFIG_DEBUG_STACK_USAGE=y +CONFIG_KFENCE=y +CONFIG_KFENCE_SAMPLE_INTERVAL=500 +CONFIG_KFENCE_NUM_OBJECTS=63 +CONFIG_PANIC_ON_OOPS=y +CONFIG_PANIC_TIMEOUT=-1 +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_WQ_WATCHDOG=y +CONFIG_SCHEDSTATS=y +CONFIG_BUG_ON_DATA_CORRUPTION=y +CONFIG_HIST_TRIGGERS=y +CONFIG_UNWINDER_FRAME_POINTER=y diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h index b472ef76826a..37639a2d9c34 100644 --- a/arch/x86/include/asm/cpu.h +++ b/arch/x86/include/asm/cpu.h @@ -96,4 +96,6 @@ static inline bool intel_cpu_signatures_match(unsigned int s1, unsigned int p1, extern u64 x86_read_arch_cap_msr(void); +extern struct cpumask cpus_stop_mask; + #endif /* _ASM_X86_CPU_H */ diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h index a73bced40e24..b3b34032ef23 100644 --- a/arch/x86/include/asm/smp.h +++ b/arch/x86/include/asm/smp.h @@ -132,6 +132,8 @@ void wbinvd_on_cpu(int cpu); int wbinvd_on_all_cpus(void); void cond_wakeup_cpu0(void); +void smp_kick_mwait_play_dead(void); + void native_smp_send_reschedule(int cpu); void native_send_call_func_ipi(const struct cpumask *mask); void native_send_call_func_single_ipi(int cpu); diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c index 461e45d85add..9a3092ec9b27 100644 --- a/arch/x86/kernel/cpu/microcode/amd.c +++ b/arch/x86/kernel/cpu/microcode/amd.c @@ -705,7 +705,7 @@ static enum ucode_state apply_microcode_amd(int cpu) rdmsr(MSR_AMD64_PATCH_LEVEL, rev, dummy); /* need to apply patch? */ - if (rev >= mc_amd->hdr.patch_id) { + if (rev > mc_amd->hdr.patch_id) { ret = UCODE_OK; goto out; } diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index e436c9c1ef3b..279b5e9be80f 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -744,15 +744,26 @@ bool xen_set_default_idle(void) } #endif +struct cpumask cpus_stop_mask; + void __noreturn stop_this_cpu(void *dummy) { + struct cpuinfo_x86 *c = this_cpu_ptr(&cpu_info); + unsigned int cpu = smp_processor_id(); + local_irq_disable(); + /* - * Remove this CPU: + * Remove this CPU from the online mask and disable it + * unconditionally. This might be redundant in case that the reboot + * vector was handled late and stop_other_cpus() sent an NMI. + * + * According to SDM and APM NMIs can be accepted even after soft + * disabling the local APIC. */ - set_cpu_online(smp_processor_id(), false); + set_cpu_online(cpu, false); disable_local_APIC(); - mcheck_cpu_clear(this_cpu_ptr(&cpu_info)); + mcheck_cpu_clear(c); /* * Use wbinvd on processors that support SME. This provides support @@ -766,8 +777,17 @@ void __noreturn stop_this_cpu(void *dummy) * Test the CPUID bit directly because the machine might've cleared * X86_FEATURE_SME due to cmdline options. */ - if (cpuid_eax(0x8000001f) & BIT(0)) + if (c->extended_cpuid_level >= 0x8000001f && (cpuid_eax(0x8000001f) & BIT(0))) native_wbinvd(); + + /* + * This brings a cache line back and dirties it, but + * native_stop_other_cpus() will overwrite cpus_stop_mask after it + * observed that all CPUs reported stop. This write will invalidate + * the related cache line on this CPU. + */ + cpumask_clear_cpu(cpu, &cpus_stop_mask); + for (;;) { /* * Use native_halt() so that memory contents don't change diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c index 375b33ecafa2..174d6232b87f 100644 --- a/arch/x86/kernel/smp.c +++ b/arch/x86/kernel/smp.c @@ -21,12 +21,14 @@ #include <linux/interrupt.h> #include <linux/cpu.h> #include <linux/gfp.h> +#include <linux/kexec.h> #include <asm/mtrr.h> #include <asm/tlbflush.h> #include <asm/mmu_context.h> #include <asm/proto.h> #include <asm/apic.h> +#include <asm/cpu.h> #include <asm/idtentry.h> #include <asm/nmi.h> #include <asm/mce.h> @@ -146,34 +148,47 @@ static int register_stop_handler(void) static void native_stop_other_cpus(int wait) { - unsigned long flags; - unsigned long timeout; + unsigned int cpu = smp_processor_id(); + unsigned long flags, timeout; if (reboot_force) return; - /* - * Use an own vector here because smp_call_function - * does lots of things not suitable in a panic situation. - */ + /* Only proceed if this is the first CPU to reach this code */ + if (atomic_cmpxchg(&stopping_cpu, -1, cpu) != -1) + return; + + /* For kexec, ensure that offline CPUs are out of MWAIT and in HLT */ + if (kexec_in_progress) + smp_kick_mwait_play_dead(); /* - * We start by using the REBOOT_VECTOR irq. - * The irq is treated as a sync point to allow critical - * regions of code on other cpus to release their spin locks - * and re-enable irqs. Jumping straight to an NMI might - * accidentally cause deadlocks with further shutdown/panic - * code. By syncing, we give the cpus up to one second to - * finish their work before we force them off with the NMI. + * 1) Send an IPI on the reboot vector to all other CPUs. + * + * The other CPUs should react on it after leaving critical + * sections and re-enabling interrupts. They might still hold + * locks, but there is nothing which can be done about that. + * + * 2) Wait for all other CPUs to report that they reached the + * HLT loop in stop_this_cpu() + * + * 3) If #2 timed out send an NMI to the CPUs which did not + * yet report + * + * 4) Wait for all other CPUs to report that they reached the + * HLT loop in stop_this_cpu() + * + * #3 can obviously race against a CPU reaching the HLT loop late. + * That CPU will have reported already and the "have all CPUs + * reached HLT" condition will be true despite the fact that the + * other CPU is still handling the NMI. Again, there is no + * protection against that as "disabled" APICs still respond to + * NMIs. */ - if (num_online_cpus() > 1) { - /* did someone beat us here? */ - if (atomic_cmpxchg(&stopping_cpu, -1, safe_smp_processor_id()) != -1) - return; - - /* sync above data before sending IRQ */ - wmb(); + cpumask_copy(&cpus_stop_mask, cpu_online_mask); + cpumask_clear_cpu(cpu, &cpus_stop_mask); + if (!cpumask_empty(&cpus_stop_mask)) { apic_send_IPI_allbutself(REBOOT_VECTOR); /* @@ -183,24 +198,22 @@ static void native_stop_other_cpus(int wait) * CPUs reach shutdown state. */ timeout = USEC_PER_SEC; - while (num_online_cpus() > 1 && timeout--) + while (!cpumask_empty(&cpus_stop_mask) && timeout--) udelay(1); } /* if the REBOOT_VECTOR didn't work, try with the NMI */ - if (num_online_cpus() > 1) { + if (!cpumask_empty(&cpus_stop_mask)) { /* * If NMI IPI is enabled, try to register the stop handler * and send the IPI. In any case try to wait for the other * CPUs to stop. */ if (!smp_no_nmi_ipi && !register_stop_handler()) { - /* Sync above data before sending IRQ */ - wmb(); - pr_emerg("Shutting down cpus with NMI\n"); - apic_send_IPI_allbutself(NMI_VECTOR); + for_each_cpu(cpu, &cpus_stop_mask) + apic->send_IPI(cpu, NMI_VECTOR); } /* * Don't wait longer than 10 ms if the caller didn't @@ -208,7 +221,7 @@ static void native_stop_other_cpus(int wait) * one or more CPUs do not reach shutdown state. */ timeout = USEC_PER_MSEC * 10; - while (num_online_cpus() > 1 && (wait || timeout--)) + while (!cpumask_empty(&cpus_stop_mask) && (wait || timeout--)) udelay(1); } @@ -216,6 +229,12 @@ static void native_stop_other_cpus(int wait) disable_local_APIC(); mcheck_cpu_clear(this_cpu_ptr(&cpu_info)); local_irq_restore(flags); + + /* + * Ensure that the cpus_stop_mask cache lines are invalidated on + * the other CPUs. See comment vs. SME in stop_this_cpu(). + */ + cpumask_clear(&cpus_stop_mask); } /* diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 3f3ea0287f69..f32ee967414e 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@ -53,6 +53,7 @@ #include <linux/tboot.h> #include <linux/gfp.h> #include <linux/cpuidle.h> +#include <linux/kexec.h> #include <linux/numa.h> #include <linux/pgtable.h> #include <linux/overflow.h> @@ -99,6 +100,20 @@ EXPORT_PER_CPU_SYMBOL(cpu_die_map); DEFINE_PER_CPU_READ_MOSTLY(struct cpuinfo_x86, cpu_info); EXPORT_PER_CPU_SYMBOL(cpu_info); +struct mwait_cpu_dead { + unsigned int control; + unsigned int status; +}; + +#define CPUDEAD_MWAIT_WAIT 0xDEADBEEF +#define CPUDEAD_MWAIT_KEXEC_HLT 0x4A17DEAD + +/* + * Cache line aligned data for mwait_play_dead(). Separate on purpose so + * that it's unlikely to be touched by other CPUs. + */ +static DEFINE_PER_CPU_ALIGNED(struct mwait_cpu_dead, mwait_cpu_dead); + /* Logical package management. We might want to allocate that dynamically */ unsigned int __max_logical_packages __read_mostly; EXPORT_SYMBOL(__max_logical_packages); @@ -155,6 +170,10 @@ static void smp_callin(void) { int cpuid; + /* Mop up eventual mwait_play_dead() wreckage */ + this_cpu_write(mwait_cpu_dead.status, 0); + this_cpu_write(mwait_cpu_dead.control, 0); + /* * If waken up by an INIT in an 82489DX configuration * cpu_callout_mask guarantees we don't get here before @@ -1746,10 +1765,10 @@ EXPORT_SYMBOL_GPL(cond_wakeup_cpu0); */ static inline void mwait_play_dead(void) { + struct mwait_cpu_dead *md = this_cpu_ptr(&mwait_cpu_dead); unsigned int eax, ebx, ecx, edx; unsigned int highest_cstate = 0; unsigned int highest_subcstate = 0; - void *mwait_ptr; int i; if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD || @@ -1784,12 +1803,9 @@ static inline void mwait_play_dead(void) (highest_subcstate - 1); } - /* - * This should be a memory location in a cache line which is - * unlikely to be touched by other processors. The actual - * content is immaterial as it is not actually modified in any way. - */ - mwait_ptr = ¤t_thread_info()->flags; + /* Set up state for the kexec() hack below */ + md->status = CPUDEAD_MWAIT_WAIT; + md->control = CPUDEAD_MWAIT_WAIT; wbinvd(); @@ -1802,16 +1818,63 @@ static inline void mwait_play_dead(void) * case where we return around the loop. */ mb(); - clflush(mwait_ptr); + clflush(md); mb(); - __monitor(mwait_ptr, 0, 0); + __monitor(md, 0, 0); mb(); __mwait(eax, 0); + if (READ_ONCE(md->control) == CPUDEAD_MWAIT_KEXEC_HLT) { + /* + * Kexec is about to happen. Don't go back into mwait() as + * the kexec kernel might overwrite text and data including + * page tables and stack. So mwait() would resume when the + * monitor cache line is written to and then the CPU goes + * south due to overwritten text, page tables and stack. + * + * Note: This does _NOT_ protect against a stray MCE, NMI, + * SMI. They will resume execution at the instruction + * following the HLT instruction and run into the problem + * which this is trying to prevent. + */ + WRITE_ONCE(md->status, CPUDEAD_MWAIT_KEXEC_HLT); + while(1) + native_halt(); + } + cond_wakeup_cpu0(); } } +/* + * Kick all "offline" CPUs out of mwait on kexec(). See comment in + * mwait_play_dead(). + */ +void smp_kick_mwait_play_dead(void) +{ + u32 newstate = CPUDEAD_MWAIT_KEXEC_HLT; + struct mwait_cpu_dead *md; + unsigned int cpu, i; + + for_each_cpu_andnot(cpu, cpu_present_mask, cpu_online_mask) { + md = per_cpu_ptr(&mwait_cpu_dead, cpu); + + /* Does it sit in mwait_play_dead() ? */ + if (READ_ONCE(md->status) != CPUDEAD_MWAIT_WAIT) + continue; + + /* Wait up to 5ms */ + for (i = 0; READ_ONCE(md->status) != newstate && i < 1000; i++) { + /* Bring it out of mwait */ + WRITE_ONCE(md->control, newstate); + udelay(5); + } + + if (READ_ONCE(md->status) != newstate) + pr_err_once("CPU%u is stuck in mwait_play_dead()\n", cpu); + } +} + void hlt_play_dead(void) { if (__this_cpu_read(cpu_info.x86) >= 4) diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index 6551d6249f8a..97599581ec6b 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -901,12 +901,6 @@ __bad_area(struct pt_regs *regs, unsigned long error_code, __bad_area_nosemaphore(regs, error_code, address, pkey, si_code); } -static noinline void -bad_area(struct pt_regs *regs, unsigned long error_code, unsigned long address) -{ - __bad_area(regs, error_code, address, 0, SEGV_MAPERR); -} - static inline bool bad_area_access_from_pkeys(unsigned long error_code, struct vm_area_struct *vma) { @@ -1355,7 +1349,6 @@ void do_user_addr_fault(struct pt_regs *regs, } #endif -#ifdef CONFIG_PER_VMA_LOCK if (!(flags & FAULT_FLAG_USER)) goto lock_mmap; @@ -1368,7 +1361,8 @@ void do_user_addr_fault(struct pt_regs *regs, goto lock_mmap; } fault = handle_mm_fault(vma, address, flags | FAULT_FLAG_VMA_LOCK, regs); - vma_end_read(vma); + if (!(fault & (VM_FAULT_RETRY | VM_FAULT_COMPLETED))) + vma_end_read(vma); if (!(fault & VM_FAULT_RETRY)) { count_vm_vma_lock_event(VMA_LOCK_SUCCESS); @@ -1385,53 +1379,11 @@ void do_user_addr_fault(struct pt_regs *regs, return; } lock_mmap: -#endif /* CONFIG_PER_VMA_LOCK */ - /* - * Kernel-mode access to the user address space should only occur - * on well-defined single instructions listed in the exception - * tables. But, an erroneous kernel fault occurring outside one of - * those areas which also holds mmap_lock might deadlock attempting - * to validate the fault against the address space. - * - * Only do the expensive exception table search when we might be at - * risk of a deadlock. This happens if we - * 1. Failed to acquire mmap_lock, and - * 2. The access did not originate in userspace. - */ - if (unlikely(!mmap_read_trylock(mm))) { - if (!user_mode(regs) && !search_exception_tables(regs->ip)) { - /* - * Fault from code in kernel from - * which we do not expect faults. - */ - bad_area_nosemaphore(regs, error_code, address); - return; - } retry: - mmap_read_lock(mm); - } else { - /* - * The above down_read_trylock() might have succeeded in - * which case we'll have missed the might_sleep() from - * down_read(): - */ - might_sleep(); - } - - vma = find_vma(mm, address); + vma = lock_mm_and_find_vma(mm, address, regs); if (unlikely(!vma)) { - bad_area(regs, error_code, address); - return; - } - if (likely(vma->vm_start <= address)) - goto good_area; - if (unlikely(!(vma->vm_flags & VM_GROWSDOWN))) { - bad_area(regs, error_code, address); - return; - } - if (unlikely(expand_stack(vma, address))) { - bad_area(regs, error_code, address); + bad_area_nosemaphore(regs, error_code, address); return; } @@ -1439,7 +1391,6 @@ retry: * Ok, we have a good vm_area for this memory access, so * we can handle it.. */ -good_area: if (unlikely(access_error(error_code, vma))) { bad_area_access_error(regs, error_code, address, vma); return; @@ -1487,9 +1438,7 @@ good_area: } mmap_read_unlock(mm); -#ifdef CONFIG_PER_VMA_LOCK done: -#endif if (likely(!(fault & VM_FAULT_ERROR))) return; diff --git a/arch/x86/mm/kaslr.c b/arch/x86/mm/kaslr.c index 557f0fe25dff..37db264866b6 100644 --- a/arch/x86/mm/kaslr.c +++ b/arch/x86/mm/kaslr.c @@ -172,10 +172,10 @@ void __meminit init_trampoline_kaslr(void) set_p4d(p4d_tramp, __p4d(_KERNPG_TABLE | __pa(pud_page_tramp))); - set_pgd(&trampoline_pgd_entry, - __pgd(_KERNPG_TABLE | __pa(p4d_page_tramp))); + trampoline_pgd_entry = + __pgd(_KERNPG_TABLE | __pa(p4d_page_tramp)); } else { - set_pgd(&trampoline_pgd_entry, - __pgd(_KERNPG_TABLE | __pa(pud_page_tramp))); + trampoline_pgd_entry = + __pgd(_KERNPG_TABLE | __pa(pud_page_tramp)); } } diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index bcb0c5d2abc2..6d3c9257aa13 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -49,6 +49,7 @@ config XTENSA select HAVE_SYSCALL_TRACEPOINTS select HAVE_VIRT_CPU_ACCOUNTING_GEN select IRQ_DOMAIN + select LOCK_MM_AND_FIND_VMA select MODULES_USE_ELF_RELA select PERF_USE_VMALLOC select TRACE_IRQFLAGS_SUPPORT diff --git a/arch/xtensa/mm/fault.c b/arch/xtensa/mm/fault.c index 8c781b05c0bd..d89b193c779f 100644 --- a/arch/xtensa/mm/fault.c +++ b/arch/xtensa/mm/fault.c @@ -130,23 +130,14 @@ void do_page_fault(struct pt_regs *regs) perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); retry: - mmap_read_lock(mm); - vma = find_vma(mm, address); - + vma = lock_mm_and_find_vma(mm, address, regs); if (!vma) - goto bad_area; - if (vma->vm_start <= address) - goto good_area; - if (!(vma->vm_flags & VM_GROWSDOWN)) - goto bad_area; - if (expand_stack(vma, address)) - goto bad_area; + goto bad_area_nosemaphore; /* Ok, we have a good vm_area for this memory access, so * we can handle it.. */ -good_area: code = SEGV_ACCERR; if (is_write) { @@ -205,6 +196,7 @@ good_area: */ bad_area: mmap_read_unlock(mm); +bad_area_nosemaphore: if (user_mode(regs)) { current->thread.bad_vaddr = address; current->thread.error_code = is_write; diff --git a/block/OWNERS b/block/OWNERS deleted file mode 100644 index 2641e066350b..000000000000 --- a/block/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -bvanassche@google.com -jaegeuk@google.com diff --git a/block/blk-crypto-fallback.c b/block/blk-crypto-fallback.c index 243953d9705d..f96ce6318658 100644 --- a/block/blk-crypto-fallback.c +++ b/block/blk-crypto-fallback.c @@ -78,7 +78,7 @@ static struct blk_crypto_fallback_keyslot { struct crypto_skcipher *tfms[BLK_ENCRYPTION_MODE_MAX]; } *blk_crypto_keyslots; -static struct blk_crypto_profile blk_crypto_fallback_profile; +static struct blk_crypto_profile *blk_crypto_fallback_profile; static struct workqueue_struct *blk_crypto_wq; static mempool_t *blk_crypto_bounce_page_pool; static struct bio_set crypto_bio_split; @@ -294,7 +294,7 @@ static bool blk_crypto_fallback_encrypt_bio(struct bio **bio_ptr) * Get a blk-crypto-fallback keyslot that contains a crypto_skcipher for * this bio's algorithm and key. */ - blk_st = blk_crypto_get_keyslot(&blk_crypto_fallback_profile, + blk_st = blk_crypto_get_keyslot(blk_crypto_fallback_profile, bc->bc_key, &slot); if (blk_st != BLK_STS_OK) { src_bio->bi_status = blk_st; @@ -397,7 +397,7 @@ static void blk_crypto_fallback_decrypt_bio(struct work_struct *work) * Get a blk-crypto-fallback keyslot that contains a crypto_skcipher for * this bio's algorithm and key. */ - blk_st = blk_crypto_get_keyslot(&blk_crypto_fallback_profile, + blk_st = blk_crypto_get_keyslot(blk_crypto_fallback_profile, bc->bc_key, &slot); if (blk_st != BLK_STS_OK) { bio->bi_status = blk_st; @@ -501,7 +501,7 @@ bool blk_crypto_fallback_bio_prep(struct bio **bio_ptr) return false; } - if (!__blk_crypto_cfg_supported(&blk_crypto_fallback_profile, + if (!__blk_crypto_cfg_supported(blk_crypto_fallback_profile, &bc->bc_key->crypto_cfg)) { bio->bi_status = BLK_STS_NOTSUPP; return false; @@ -528,7 +528,7 @@ bool blk_crypto_fallback_bio_prep(struct bio **bio_ptr) int blk_crypto_fallback_evict_key(const struct blk_crypto_key *key) { - return __blk_crypto_evict_key(&blk_crypto_fallback_profile, key); + return __blk_crypto_evict_key(blk_crypto_fallback_profile, key); } static bool blk_crypto_fallback_inited; @@ -536,7 +536,6 @@ static int blk_crypto_fallback_init(void) { int i; int err; - struct blk_crypto_profile *profile = &blk_crypto_fallback_profile; if (blk_crypto_fallback_inited) return 0; @@ -547,19 +546,28 @@ static int blk_crypto_fallback_init(void) if (err) goto out; - err = blk_crypto_profile_init(profile, blk_crypto_num_keyslots); - if (err) + /* Dynamic allocation is needed because of lockdep_register_key(). */ + blk_crypto_fallback_profile = + kzalloc(sizeof(*blk_crypto_fallback_profile), GFP_KERNEL); + if (!blk_crypto_fallback_profile) { + err = -ENOMEM; goto fail_free_bioset; + } + + err = blk_crypto_profile_init(blk_crypto_fallback_profile, + blk_crypto_num_keyslots); + if (err) + goto fail_free_profile; err = -ENOMEM; - profile->ll_ops = blk_crypto_fallback_ll_ops; - profile->max_dun_bytes_supported = BLK_CRYPTO_MAX_IV_SIZE; - profile->key_types_supported = BLK_CRYPTO_KEY_TYPE_STANDARD; + blk_crypto_fallback_profile->ll_ops = blk_crypto_fallback_ll_ops; + blk_crypto_fallback_profile->max_dun_bytes_supported = BLK_CRYPTO_MAX_IV_SIZE; + blk_crypto_fallback_profile->key_types_supported = BLK_CRYPTO_KEY_TYPE_STANDARD; /* All blk-crypto modes have a crypto API fallback. */ for (i = 0; i < BLK_ENCRYPTION_MODE_MAX; i++) - profile->modes_supported[i] = 0xFFFFFFFF; - profile->modes_supported[BLK_ENCRYPTION_MODE_INVALID] = 0; + blk_crypto_fallback_profile->modes_supported[i] = 0xFFFFFFFF; + blk_crypto_fallback_profile->modes_supported[BLK_ENCRYPTION_MODE_INVALID] = 0; blk_crypto_wq = alloc_workqueue("blk_crypto_wq", WQ_UNBOUND | WQ_HIGHPRI | @@ -600,7 +608,9 @@ fail_free_keyslots: fail_free_wq: destroy_workqueue(blk_crypto_wq); fail_destroy_profile: - blk_crypto_profile_destroy(profile); + blk_crypto_profile_destroy(blk_crypto_fallback_profile); +fail_free_profile: + kfree(blk_crypto_fallback_profile); fail_free_bioset: bioset_exit(&crypto_bio_split); out: diff --git a/block/blk-crypto-profile.c b/block/blk-crypto-profile.c index fe550725c777..7cdef1bee6f7 100644 --- a/block/blk-crypto-profile.c +++ b/block/blk-crypto-profile.c @@ -79,7 +79,18 @@ int blk_crypto_profile_init(struct blk_crypto_profile *profile, unsigned int slot_hashtable_size; memset(profile, 0, sizeof(*profile)); + + /* + * profile->lock of an underlying device can nest inside profile->lock + * of a device-mapper device, so use a dynamic lock class to avoid + * false-positive lockdep reports. + */ +#ifdef CONFIG_LOCKDEP + lockdep_register_key(&profile->lockdep_key); + __init_rwsem(&profile->lock, "&profile->lock", &profile->lockdep_key); +#else init_rwsem(&profile->lock); +#endif if (num_slots == 0) return 0; @@ -89,7 +100,7 @@ int blk_crypto_profile_init(struct blk_crypto_profile *profile, profile->slots = kvcalloc(num_slots, sizeof(profile->slots[0]), GFP_KERNEL); if (!profile->slots) - return -ENOMEM; + goto err_destroy; profile->num_slots = num_slots; @@ -443,6 +454,9 @@ void blk_crypto_profile_destroy(struct blk_crypto_profile *profile) { if (!profile) return; +#ifdef CONFIG_LOCKDEP + lockdep_unregister_key(&profile->lockdep_key); +#endif kvfree(profile->slot_hashtable); kvfree_sensitive(profile->slots, sizeof(profile->slots[0]) * profile->num_slots); diff --git a/block/blk-ioc.c b/block/blk-ioc.c index 63fc02042408..25dd4db11121 100644 --- a/block/blk-ioc.c +++ b/block/blk-ioc.c @@ -77,6 +77,10 @@ static void ioc_destroy_icq(struct io_cq *icq) struct elevator_type *et = q->elevator->type; lockdep_assert_held(&ioc->lock); + lockdep_assert_held(&q->queue_lock); + + if (icq->flags & ICQ_DESTROYED) + return; radix_tree_delete(&ioc->icq_tree, icq->q->id); hlist_del_init(&icq->ioc_node); @@ -128,12 +132,7 @@ static void ioc_release_fn(struct work_struct *work) spin_lock(&q->queue_lock); spin_lock(&ioc->lock); - /* - * The icq may have been destroyed when the ioc lock - * was released. - */ - if (!(icq->flags & ICQ_DESTROYED)) - ioc_destroy_icq(icq); + ioc_destroy_icq(icq); spin_unlock(&q->queue_lock); rcu_read_unlock(); @@ -171,23 +170,20 @@ static bool ioc_delay_free(struct io_context *ioc) */ void ioc_clear_queue(struct request_queue *q) { - LIST_HEAD(icq_list); - spin_lock_irq(&q->queue_lock); - list_splice_init(&q->icq_list, &icq_list); - spin_unlock_irq(&q->queue_lock); - - rcu_read_lock(); - while (!list_empty(&icq_list)) { + while (!list_empty(&q->icq_list)) { struct io_cq *icq = - list_entry(icq_list.next, struct io_cq, q_node); - - spin_lock_irq(&icq->ioc->lock); - if (!(icq->flags & ICQ_DESTROYED)) - ioc_destroy_icq(icq); - spin_unlock_irq(&icq->ioc->lock); + list_first_entry(&q->icq_list, struct io_cq, q_node); + + /* + * Other context won't hold ioc lock to wait for queue_lock, see + * details in ioc_release_fn(). + */ + spin_lock(&icq->ioc->lock); + ioc_destroy_icq(icq); + spin_unlock(&icq->ioc->lock); } - rcu_read_unlock(); + spin_unlock_irq(&q->queue_lock); } #else /* CONFIG_BLK_ICQ */ static inline void ioc_exit_icqs(struct io_context *ioc) diff --git a/block/blk-ioprio.c b/block/blk-ioprio.c index 8bb6b8eba4ce..4eba569d4823 100644 --- a/block/blk-ioprio.c +++ b/block/blk-ioprio.c @@ -23,25 +23,28 @@ /** * enum prio_policy - I/O priority class policy. * @POLICY_NO_CHANGE: (default) do not modify the I/O priority class. - * @POLICY_NONE_TO_RT: modify IOPRIO_CLASS_NONE into IOPRIO_CLASS_RT. + * @POLICY_PROMOTE_TO_RT: modify no-IOPRIO_CLASS_RT to IOPRIO_CLASS_RT. * @POLICY_RESTRICT_TO_BE: modify IOPRIO_CLASS_NONE and IOPRIO_CLASS_RT into * IOPRIO_CLASS_BE. * @POLICY_ALL_TO_IDLE: change the I/O priority class into IOPRIO_CLASS_IDLE. + * @POLICY_NONE_TO_RT: an alias for POLICY_PROMOTE_TO_RT. * * See also <linux/ioprio.h>. */ enum prio_policy { POLICY_NO_CHANGE = 0, - POLICY_NONE_TO_RT = 1, + POLICY_PROMOTE_TO_RT = 1, POLICY_RESTRICT_TO_BE = 2, POLICY_ALL_TO_IDLE = 3, + POLICY_NONE_TO_RT = 4, }; static const char *policy_name[] = { [POLICY_NO_CHANGE] = "no-change", - [POLICY_NONE_TO_RT] = "none-to-rt", + [POLICY_PROMOTE_TO_RT] = "promote-to-rt", [POLICY_RESTRICT_TO_BE] = "restrict-to-be", [POLICY_ALL_TO_IDLE] = "idle", + [POLICY_NONE_TO_RT] = "none-to-rt", }; static struct blkcg_policy ioprio_policy; @@ -189,6 +192,20 @@ void blkcg_set_ioprio(struct bio *bio) if (!blkcg || blkcg->prio_policy == POLICY_NO_CHANGE) return; + if (blkcg->prio_policy == POLICY_PROMOTE_TO_RT || + blkcg->prio_policy == POLICY_NONE_TO_RT) { + /* + * For RT threads, the default priority level is 4 because + * task_nice is 0. By promoting non-RT io-priority to RT-class + * and default level 4, those requests that are already + * RT-class but need a higher io-priority can use ioprio_set() + * to achieve this. + */ + if (IOPRIO_PRIO_CLASS(bio->bi_ioprio) != IOPRIO_CLASS_RT) + bio->bi_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 4); + return; + } + /* * Except for IOPRIO_CLASS_NONE, higher I/O priority numbers * correspond to a lower priority. Hence, the max_t() below selects diff --git a/block/blk-mq.c b/block/blk-mq.c index 1ad3e4f494df..3a6abebda851 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1188,8 +1188,9 @@ bool blk_mq_complete_request_remote(struct request *rq) * or a polled request, always complete locally, * it's pointless to redirect the completion. */ - if (rq->mq_hctx->nr_ctx == 1 || - rq->cmd_flags & REQ_POLLED) + if ((rq->mq_hctx->nr_ctx == 1 && + rq->mq_ctx->cpu == raw_smp_processor_id()) || + rq->cmd_flags & REQ_POLLED) return false; if (blk_mq_complete_need_ipi(rq)) { diff --git a/build.config.allmodconfig b/build.config.allmodconfig index 3d443b98714c..65d84dbb710d 100644 --- a/build.config.allmodconfig +++ b/build.config.allmodconfig @@ -4,7 +4,6 @@ POST_DEFCONFIG_CMDS="update_config" function update_config() { ${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \ -e UNWINDER_FRAME_POINTER \ - -d WERROR \ -d SAMPLES \ -d BPFILTER \ -e RANDSTRUCT_NONE \ diff --git a/build.config.common b/build.config.common index 38b7b26b0fcf..f9becf2d72d8 100644 --- a/build.config.common +++ b/build.config.common @@ -1,6 +1,6 @@ . ${ROOT_DIR}/${KERNEL_DIR}/build.config.constants -KMI_GENERATION=9 +KMI_GENERATION=11 LLVM=1 DEPMOD=depmod diff --git a/build.config.crashdump b/build.config.crashdump new file mode 100644 index 000000000000..8a4214358308 --- /dev/null +++ b/build.config.crashdump @@ -0,0 +1 @@ +DEFCONFIG=crashdump_defconfig diff --git a/build.config.crashdump.aarch64 b/build.config.crashdump.aarch64 new file mode 100644 index 000000000000..20a8acc98912 --- /dev/null +++ b/build.config.crashdump.aarch64 @@ -0,0 +1,7 @@ +KERNEL_DIR=common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64 +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.crashdump + +# No modules +IN_KERNEL_MODULES= diff --git a/build.config.crashdump.x86_64 b/build.config.crashdump.x86_64 new file mode 100644 index 000000000000..18eed729a8c1 --- /dev/null +++ b/build.config.crashdump.x86_64 @@ -0,0 +1,7 @@ +KERNEL_DIR=common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.x86_64 +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.crashdump + +# No modules +IN_KERNEL_MODULES= diff --git a/build.config.gki.aarch64 b/build.config.gki.aarch64 index 45c5199d471a..d3980621c116 100644 --- a/build.config.gki.aarch64 +++ b/build.config.gki.aarch64 @@ -8,7 +8,6 @@ arch/arm64/boot/Image.gz " BUILD_SYSTEM_DLKM=1 -MODULES_LIST=${ROOT_DIR}/${KERNEL_DIR}/android/gki_system_dlkm_modules BUILD_GKI_CERTIFICATION_TOOLS=1 diff --git a/build.config.gki.aarch64.16k b/build.config.gki.aarch64.16k deleted file mode 100644 index 20be95d54647..000000000000 --- a/build.config.gki.aarch64.16k +++ /dev/null @@ -1,5 +0,0 @@ -. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki.aarch64 - -DEFCONFIG=16k_gki_defconfig -PRE_DEFCONFIG_CMDS="mkdir -p \${OUT_DIR}/arch/arm64/configs/ && cat ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/16k_gki.fragment > \${OUT_DIR}/arch/arm64/configs/${DEFCONFIG};" -POST_DEFCONFIG_CMDS="" diff --git a/build.config.gki.riscv64 b/build.config.gki.riscv64 index c216a0472794..91070684eb7a 100644 --- a/build.config.gki.riscv64 +++ b/build.config.gki.riscv64 @@ -8,7 +8,6 @@ arch/riscv/boot/Image.gz " BUILD_SYSTEM_DLKM=1 -MODULES_LIST=${ROOT_DIR}/${KERNEL_DIR}/android/gki_system_dlkm_modules BUILD_GKI_CERTIFICATION_TOOLS=1 diff --git a/build.config.gki.x86_64 b/build.config.gki.x86_64 index 93f492cabec8..20092cc5e122 100644 --- a/build.config.gki.x86_64 +++ b/build.config.gki.x86_64 @@ -3,7 +3,6 @@ . ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki BUILD_SYSTEM_DLKM=1 -MODULES_LIST=${ROOT_DIR}/${KERNEL_DIR}/android/gki_system_dlkm_modules BUILD_GKI_CERTIFICATION_TOOLS=1 diff --git a/build.config.microdroid b/build.config.microdroid new file mode 100644 index 000000000000..d31e0d5587f3 --- /dev/null +++ b/build.config.microdroid @@ -0,0 +1 @@ +DEFCONFIG=microdroid_defconfig diff --git a/build.config.microdroid.aarch64 b/build.config.microdroid.aarch64 new file mode 100644 index 000000000000..a8ffa55bc2ad --- /dev/null +++ b/build.config.microdroid.aarch64 @@ -0,0 +1,7 @@ +KERNEL_DIR=common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64 +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.microdroid + +# No modules +IN_KERNEL_MODULES= diff --git a/build.config.microdroid.x86_64 b/build.config.microdroid.x86_64 new file mode 100644 index 000000000000..10cd8b23a748 --- /dev/null +++ b/build.config.microdroid.x86_64 @@ -0,0 +1,7 @@ +KERNEL_DIR=common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.x86_64 +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.microdroid + +# No modules +IN_KERNEL_MODULES= diff --git a/build.config.rockchip b/build.config.rockchip new file mode 100644 index 000000000000..c3d089708674 --- /dev/null +++ b/build.config.rockchip @@ -0,0 +1,15 @@ +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64 + +BUILD_INITRAMFS=1 +LZ4_RAMDISK=1 +DEFCONFIG=rockchip_gki_defconfig +FRAGMENT_CONFIG=${KERNEL_DIR}/arch/arm64/configs/rockchip_gki.fragment +PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${FRAGMENT_CONFIG}" +POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}" + +DTC_INCLUDE=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/boot/dts/rockchip + +FILES="${FILES} +arch/arm64/boot/dts/rockchip/rk3588*.dtb +" diff --git a/crypto/OWNERS b/crypto/OWNERS deleted file mode 100644 index 4ed35a0f4668..000000000000 --- a/crypto/OWNERS +++ /dev/null @@ -1 +0,0 @@ -ardb@google.com diff --git a/crypto/fips140-defs.h b/crypto/fips140-defs.h index 9005f9513308..d3f62e3c3f37 100644 --- a/crypto/fips140-defs.h +++ b/crypto/fips140-defs.h @@ -17,9 +17,9 @@ * related macros to be expanded as they would be for built-in code; e.g., * module_init() adds the function to the .initcalls section of the binary. * - * The .c file that contains the real module_init() for fips140.ko is then - * responsible for redefining MODULE, and the real module_init() is responsible - * for executing all the initcalls that were collected into .initcalls. + * The .c files that contain the real module_init, module license, and module + * parameters for fips140.ko are then responsible for redefining MODULE. The + * real module_init executes all initcalls that were collected into .initcalls. */ #undef MODULE diff --git a/crypto/fips140-eval-testing.c b/crypto/fips140-eval-testing.c index ea3cd653983a..fdc786884d11 100644 --- a/crypto/fips140-eval-testing.c +++ b/crypto/fips140-eval-testing.c @@ -20,6 +20,14 @@ __inline_maybe_unused notrace #undef BUILD_FIPS140_KO +/* + * Since this .c file contains real module parameters for fips140.ko, it needs + * to be compiled normally, so undo the hacks that were done in fips140-defs.h. + */ +#define MODULE +#undef KBUILD_MODFILE +#undef __DISABLE_EXPORTS + #include <linux/cdev.h> #include <linux/fs.h> #include <linux/module.h> diff --git a/drivers/OWNERS b/drivers/OWNERS deleted file mode 100644 index c13fa056367d..000000000000 --- a/drivers/OWNERS +++ /dev/null @@ -1,6 +0,0 @@ -per-file base/**=gregkh@google.com,saravanak@google.com -per-file block/**=akailash@google.com -per-file md/**=akailash@google.com,paullawrence@google.com -per-file net/**=file:/net/OWNERS -per-file scsi/**=bvanassche@google.com,jaegeuk@google.com -per-file {tty,usb}/**=gregkh@google.com diff --git a/drivers/android/Kconfig b/drivers/android/Kconfig index c5e063b723dd..c3a49e538988 100644 --- a/drivers/android/Kconfig +++ b/drivers/android/Kconfig @@ -47,6 +47,17 @@ config ANDROID_BINDER_IPC_SELFTEST exhaustively with combinations of various buffer sizes and alignments. +config ANDROID_DEBUG_SYMBOLS + bool "Android Debug Symbols" + help + Enables export of debug symbols that are useful for offline debugging + of a kernel. These symbols would be used in vendor modules to find + addresses of the core kernel symbols for vendor extensions. + + This driver is statically compiled into kernel and maintains all the + required symbol addresses for vendor modules and provides necessary + interface vendor modules. + config ANDROID_VENDOR_HOOKS bool "Android Vendor Hooks" depends on TRACEPOINTS diff --git a/drivers/android/Makefile b/drivers/android/Makefile index 9b89e4ba00a1..97cddb531ee0 100644 --- a/drivers/android/Makefile +++ b/drivers/android/Makefile @@ -4,5 +4,6 @@ ccflags-y += -I$(src) # needed for trace events obj-$(CONFIG_ANDROID_BINDERFS) += binderfs.o obj-$(CONFIG_ANDROID_BINDER_IPC) += binder.o binder_alloc.o obj-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o +obj-$(CONFIG_ANDROID_DEBUG_SYMBOLS) += android_debug_symbols.o obj-$(CONFIG_ANDROID_VENDOR_HOOKS) += vendor_hooks.o obj-$(CONFIG_ANDROID_DEBUG_KINFO) += debug_kinfo.o diff --git a/drivers/android/android_debug_symbols.c b/drivers/android/android_debug_symbols.c new file mode 100644 index 000000000000..4c0388575d57 --- /dev/null +++ b/drivers/android/android_debug_symbols.c @@ -0,0 +1,96 @@ +// SPDX-License-Identifier: GPL-2.0-only + +/* + * Copyright (c) 2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2023, Unisoc (Shanghai) Technologies Co., Ltd + */ + +#include <linux/types.h> +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/android_debug_symbols.h> +#include <asm/sections.h> +#include <asm/stacktrace.h> + +#include <linux/cma.h> +#include <linux/mm.h> +#include "../../mm/slab.h" +#include <linux/security.h> + +struct ads_entry { + char *name; + void *addr; +}; + +#define _ADS_ENTRY(index, symbol) \ + [index] = { .name = #symbol, .addr = (void *)symbol } +#define ADS_ENTRY(index, symbol) _ADS_ENTRY(index, symbol) + +#define _ADS_PER_CPU_ENTRY(index, symbol) \ + [index] = { .name = #symbol, .addr = (void *)&symbol } +#define ADS_PER_CPU_ENTRY(index, symbol) _ADS_PER_CPU_ENTRY(index, symbol) + +/* + * This module maintains static array of symbol and address information. + * Add all required core kernel symbols and their addresses into ads_entries[] array, + * so that vendor modules can query and to find address of non-exported symbol. + */ +static const struct ads_entry ads_entries[ADS_END] = { + ADS_ENTRY(ADS_SDATA, _sdata), + ADS_ENTRY(ADS_BSS_END, __bss_stop), + ADS_ENTRY(ADS_PER_CPU_START, __per_cpu_start), + ADS_ENTRY(ADS_PER_CPU_END, __per_cpu_end), + ADS_ENTRY(ADS_TEXT, _text), + ADS_ENTRY(ADS_SEND, _end), + ADS_ENTRY(ADS_LINUX_BANNER, linux_banner), + ADS_ENTRY(ADS_TOTAL_CMA, &totalcma_pages), + ADS_ENTRY(ADS_SLAB_CACHES, &slab_caches), + ADS_ENTRY(ADS_SLAB_MUTEX, &slab_mutex), +}; + +/* + * ads_per_cpu_entries array contains all the per_cpu variable address information. + */ +static const struct ads_entry ads_per_cpu_entries[ADS_DEBUG_PER_CPU_END] = { +#ifdef CONFIG_ARM64 + ADS_PER_CPU_ENTRY(ADS_IRQ_STACK_PTR, irq_stack_ptr), +#endif +#ifdef CONFIG_X86 + ADS_PER_CPU_ENTRY(ADS_IRQ_STACK_PTR, hardirq_stack_ptr), +#endif +}; + +/* + * android_debug_symbol - Provide address inforamtion of debug symbol. + * @symbol: Index of debug symbol array. + * + * Return address of core kernel symbol on success and a negative errno will be + * returned in error cases. + * + */ +void *android_debug_symbol(enum android_debug_symbol symbol) +{ + if (symbol >= ADS_END) + return ERR_PTR(-EINVAL); + + return ads_entries[symbol].addr; +} +EXPORT_SYMBOL_NS_GPL(android_debug_symbol, MINIDUMP); + +/* + * android_debug_per_cpu_symbol - Provide address inforamtion of per cpu debug symbol. + * @symbol: Index of per cpu debug symbol array. + * + * Return address of core kernel symbol on success and a negative errno will be + * returned in error cases. + * + */ +void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol) +{ + if (symbol >= ADS_DEBUG_PER_CPU_END) + return ERR_PTR(-EINVAL); + + return ads_per_cpu_entries[symbol].addr; +} +EXPORT_SYMBOL_NS_GPL(android_debug_per_cpu_symbol, MINIDUMP); + diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 4f89346dd283..8b7448753183 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -1761,6 +1761,7 @@ static void binder_free_transaction(struct binder_transaction *t) { struct binder_proc *target_proc = t->to_proc; + trace_android_vh_free_oem_binder_struct(t); if (target_proc) { binder_inner_proc_lock(target_proc); target_proc->outstanding_txns--; @@ -2945,6 +2946,7 @@ static int binder_proc_transaction(struct binder_transaction *t, bool pending_async = false; struct binder_transaction *t_outdated = NULL; bool skip = false; + bool enqueue_task = true; BUG_ON(!node); binder_node_lock(node); @@ -2984,7 +2986,10 @@ static int binder_proc_transaction(struct binder_transaction *t, binder_transaction_priority(thread, t, node); binder_enqueue_thread_work_ilocked(thread, &t->work); } else if (!pending_async) { - binder_enqueue_work_ilocked(&t->work, &proc->todo); + trace_android_vh_binder_special_task(t, proc, thread, + &t->work, &proc->todo, !oneway, &enqueue_task); + if (enqueue_task) + binder_enqueue_work_ilocked(&t->work, &proc->todo); } else { if ((t->flags & TF_UPDATE_TXN) && proc->is_frozen) { t_outdated = binder_find_outdated_transaction_ilocked(t, @@ -2997,7 +3002,10 @@ static int binder_proc_transaction(struct binder_transaction *t, proc->outstanding_txns--; } } - binder_enqueue_work_ilocked(&t->work, &node->async_todo); + trace_android_vh_binder_special_task(t, proc, thread, + &t->work, &node->async_todo, !oneway, &enqueue_task); + if (enqueue_task) + binder_enqueue_work_ilocked(&t->work, &node->async_todo); } trace_android_vh_binder_proc_transaction_finish(proc, t, @@ -3474,6 +3482,7 @@ static void binder_transaction(struct binder_proc *proc, t->buffer->target_node = target_node; t->buffer->clear_on_free = !!(t->flags & TF_CLEAR_BUF); trace_binder_transaction_alloc_buf(t->buffer); + trace_android_vh_alloc_oem_binder_struct(tr, t, target_proc); if (binder_alloc_copy_user_to_buffer( &target_proc->alloc, @@ -3978,6 +3987,9 @@ binder_free_buf(struct binder_proc *proc, struct binder_thread *thread, struct binder_buffer *buffer, bool is_failure) { + bool enqueue_task = true; + + trace_android_vh_binder_free_buf(proc, thread, buffer); binder_inner_proc_lock(proc); if (buffer->transaction) { buffer->transaction->buffer = NULL; @@ -3997,8 +4009,10 @@ binder_free_buf(struct binder_proc *proc, if (!w) { buf_node->has_async_transaction = false; } else { - binder_enqueue_work_ilocked( - w, &proc->todo); + trace_android_vh_binder_special_task(NULL, proc, thread, w, + &proc->todo, false, &enqueue_task); + if (enqueue_task) + binder_enqueue_work_ilocked(w, &proc->todo); binder_wakeup_proc_ilocked(proc); } binder_node_inner_unlock(buf_node); @@ -4940,6 +4954,7 @@ skip: ptr += trsize; trace_binder_transaction_received(t); + trace_android_vh_binder_transaction_received(t, proc, thread, cmd); binder_stat_br(proc, thread, cmd); binder_debug(BINDER_DEBUG_TRANSACTION, "%d:%d %s %d %d:%d, cmd %u size %zd-%zd ptr %016llx-%016llx\n", diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index c2af4cefe2f6..a705333dc1b3 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -66,7 +66,8 @@ #include <trace/hooks/psci.h> #include <trace/hooks/psi.h> #include <trace/hooks/bl_hib.h> - +#include <trace/hooks/regmap.h> +#include <trace/hooks/compaction.h> /* * Export tracepoints that act as a bare tracehook (ie: have no trace event * associated with them) to allow external modules to probe them. @@ -84,9 +85,12 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_set_priority); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_restore_priority); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wakeup_ilocked); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_send_sig_info); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_killed_process); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_start); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_finish); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_init); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_task_blocks_on_rtmutex); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_waiter_prio); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_start); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_finish); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_opt_spin_start); @@ -133,6 +137,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_update_sysfs); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_send_command); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_compl_command); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cgroup_set_task); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cgroup_force_kthread_migration); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_syscall_prctl_finished); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_send_uic_command); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_send_tm_command); @@ -177,12 +182,14 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_mutex_lock_starttime); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_rtmutex_lock_starttime); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_rwsem_lock_starttime); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_pcpu_rwsem_starttime); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_percpu_rwsem_wq_add); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_module_core_rw_nx); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_module_init_rw_nx); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_module_permit_before_init); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_module_permit_after_init); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_is_initialized); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_shmem_get_folio); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_pcpu_rwsem_time_early); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_mmap_file); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_file_open); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_bpf_syscall); @@ -291,6 +298,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_register); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_unregister); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_get_thermal_zone_device); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_power_cap); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_enable_thermal_power_throttle); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_reclaim_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_failure_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_pageout_swap_entry); @@ -307,3 +315,29 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_init_aes_encrypt); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_skip_swap_map_write); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_post_image_save); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_cold_pageout_skip); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue_smallest_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_one_page_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_regmap_update); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_enable_thermal_genl_check); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_folio_look_around_ref); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_look_around); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_look_around_migrate_folio); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_test_clear_look_around_ref); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_scan_type); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_swappiness); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_signal_whether_wake); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_check); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freeze_whether_wake); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_use_amu_fie); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scan_abort_check_wmarks); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_oem_binder_struct); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_transaction_received); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_oem_binder_struct); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_special_task); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_free_buf); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_compaction_exit); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_compaction_try_to_compact_pages_exit); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_alloc_pages_direct_reclaim_enter); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_alloc_pages_direct_reclaim_exit); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_alloc_pages_may_oom_exit); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_vmscan_kswapd_done); diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c index 2cdade8aa933..148e24b91cf1 100644 --- a/drivers/base/arch_topology.c +++ b/drivers/base/arch_topology.c @@ -34,6 +34,12 @@ static DEFINE_PER_CPU(u32, freq_factor) = 1; static bool supports_scale_freq_counters(const struct cpumask *cpus) { + bool use_amu_fie = true; + + trace_android_vh_use_amu_fie(&use_amu_fie); + if (!use_amu_fie) + return false; + return cpumask_subset(cpus, &scale_freq_counters_mask); } diff --git a/drivers/base/dd.c b/drivers/base/dd.c index c463173f1fb1..1b7378843ceb 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -754,6 +754,29 @@ void wait_for_device_probe(void) } EXPORT_SYMBOL_GPL(wait_for_device_probe); +/** + * flush_deferred_probe_now + * + * This function should be used sparingly. It's meant for when we need to flush + * the deferred probe list at earlier initcall levels. Really meant only for KVM + * needs. This function should never be exported because it makes no sense for + * modules to call this. + */ +void flush_deferred_probe_now(void) +{ + /* + * Really shouldn't using this if deferred probe has already been + * enabled + */ + if (WARN_ON(driver_deferred_probe_enable)) + return; + + driver_deferred_probe_enable = true; + driver_deferred_probe_trigger(); + wait_for_device_probe(); + driver_deferred_probe_enable = false; +} + static int __driver_probe_device(struct device_driver *drv, struct device *dev) { int ret = 0; diff --git a/drivers/clk/clk-fractional-divider.c b/drivers/clk/clk-fractional-divider.c index 8efa5142ff8c..cae0ea9fff98 100644 --- a/drivers/clk/clk-fractional-divider.c +++ b/drivers/clk/clk-fractional-divider.c @@ -126,6 +126,7 @@ void clk_fractional_divider_general_approximation(struct clk_hw *hw, GENMASK(fd->mwidth - 1, 0), GENMASK(fd->nwidth - 1, 0), m, n); } +EXPORT_SYMBOL_GPL(clk_fractional_divider_general_approximation); static long clk_fd_round_rate(struct clk_hw *hw, unsigned long rate, unsigned long *parent_rate) diff --git a/drivers/cpuidle/governors/teo.c b/drivers/cpuidle/governors/teo.c index 987fc5f3997d..356ffc41d284 100644 --- a/drivers/cpuidle/governors/teo.c +++ b/drivers/cpuidle/governors/teo.c @@ -202,6 +202,19 @@ struct teo_cpu { static DEFINE_PER_CPU(struct teo_cpu, teo_cpus); +unsigned long teo_cpu_get_util_threshold(int cpu) +{ + struct teo_cpu *cpu_data = per_cpu_ptr(&teo_cpus, cpu); + return cpu_data->util_threshold; +} +EXPORT_SYMBOL_GPL(teo_cpu_get_util_threshold); +void teo_cpu_set_util_threshold(int cpu, unsigned long util) +{ + struct teo_cpu *cpu_data = per_cpu_ptr(&teo_cpus, cpu); + cpu_data->util_threshold = util; +} +EXPORT_SYMBOL_GPL(teo_cpu_set_util_threshold); + /** * teo_cpu_is_utilized - Check if the CPU's util is above the threshold * @cpu: Target CPU diff --git a/drivers/dma-buf/dma-fence-unwrap.c b/drivers/dma-buf/dma-fence-unwrap.c index 7002bca792ff..c625bb2b5d56 100644 --- a/drivers/dma-buf/dma-fence-unwrap.c +++ b/drivers/dma-buf/dma-fence-unwrap.c @@ -66,18 +66,36 @@ struct dma_fence *__dma_fence_unwrap_merge(unsigned int num_fences, { struct dma_fence_array *result; struct dma_fence *tmp, **array; + ktime_t timestamp; unsigned int i; size_t count; count = 0; + timestamp = ns_to_ktime(0); for (i = 0; i < num_fences; ++i) { - dma_fence_unwrap_for_each(tmp, &iter[i], fences[i]) - if (!dma_fence_is_signaled(tmp)) + dma_fence_unwrap_for_each(tmp, &iter[i], fences[i]) { + if (!dma_fence_is_signaled(tmp)) { ++count; + } else if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT, + &tmp->flags)) { + if (ktime_after(tmp->timestamp, timestamp)) + timestamp = tmp->timestamp; + } else { + /* + * Use the current time if the fence is + * currently signaling. + */ + timestamp = ktime_get(); + } + } } + /* + * If we couldn't find a pending fence just return a private signaled + * fence with the timestamp of the last signaled one. + */ if (count == 0) - return dma_fence_get_stub(); + return dma_fence_allocate_private_stub(timestamp); array = kmalloc_array(count, sizeof(*array), GFP_KERNEL); if (!array) @@ -138,7 +156,7 @@ restart: } while (tmp); if (count == 0) { - tmp = dma_fence_get_stub(); + tmp = dma_fence_allocate_private_stub(ktime_get()); goto return_tmp; } diff --git a/drivers/dma-buf/dma-fence.c b/drivers/dma-buf/dma-fence.c index 0de0482cd36e..eef4786aaf86 100644 --- a/drivers/dma-buf/dma-fence.c +++ b/drivers/dma-buf/dma-fence.c @@ -150,16 +150,17 @@ EXPORT_SYMBOL(dma_fence_get_stub); /** * dma_fence_allocate_private_stub - return a private, signaled fence + * @timestamp: timestamp when the fence was signaled * * Return a newly allocated and signaled stub fence. */ -struct dma_fence *dma_fence_allocate_private_stub(void) +struct dma_fence *dma_fence_allocate_private_stub(ktime_t timestamp) { struct dma_fence *fence; fence = kzalloc(sizeof(*fence), GFP_KERNEL); if (fence == NULL) - return ERR_PTR(-ENOMEM); + return NULL; dma_fence_init(fence, &dma_fence_stub_ops, @@ -169,7 +170,7 @@ struct dma_fence *dma_fence_allocate_private_stub(void) set_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, &fence->flags); - dma_fence_signal(fence); + dma_fence_signal_timestamp(fence, timestamp); return fence; } diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c index 0c2be8360525..e592c5da70ce 100644 --- a/drivers/gpu/drm/drm_syncobj.c +++ b/drivers/gpu/drm/drm_syncobj.c @@ -353,10 +353,10 @@ EXPORT_SYMBOL(drm_syncobj_replace_fence); */ static int drm_syncobj_assign_null_handle(struct drm_syncobj *syncobj) { - struct dma_fence *fence = dma_fence_allocate_private_stub(); + struct dma_fence *fence = dma_fence_allocate_private_stub(ktime_get()); - if (IS_ERR(fence)) - return PTR_ERR(fence); + if (!fence) + return -ENOMEM; drm_syncobj_replace_fence(syncobj, fence); dma_fence_put(fence); diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c index d505603930a7..c9c297af53a7 100644 --- a/drivers/gpu/drm/ttm/ttm_tt.c +++ b/drivers/gpu/drm/ttm/ttm_tt.c @@ -370,6 +370,7 @@ void ttm_tt_unpopulate(struct ttm_device *bdev, struct ttm_tt *ttm) ttm->page_flags &= ~TTM_TT_FLAG_PRIV_POPULATED; } +EXPORT_SYMBOL_GPL(ttm_tt_unpopulate); #ifdef CONFIG_DEBUG_FS diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index e012a4382ea3..f017b457f222 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -293,7 +293,7 @@ static int hid_add_field(struct hid_parser *parser, unsigned report_type, unsign offset = report->size; report->size += parser->global.report_size * parser->global.report_count; - if (parser->device->ll_driver == &uhid_hid_driver) + if (IS_ENABLED(CONFIG_UHID) && parser->device->ll_driver == &uhid_hid_driver) max_buffer_size = UHID_DATA_MAX; /* Total size check: Allow for possible report index byte */ @@ -1987,7 +1987,7 @@ int hid_report_raw_event(struct hid_device *hid, enum hid_report_type type, u8 * rsize = hid_compute_report_size(report); - if (hid->ll_driver == &uhid_hid_driver) + if (IS_ENABLED(CONFIG_UHID) && hid->ll_driver == &uhid_hid_driver) max_buffer_size = UHID_DATA_MAX; if (report_enum->numbered && rsize >= max_buffer_size) @@ -2398,7 +2398,7 @@ int hid_hw_raw_request(struct hid_device *hdev, { unsigned int max_buffer_size = HID_MAX_BUFFER_SIZE; - if (hdev->ll_driver == &uhid_hid_driver) + if (IS_ENABLED(CONFIG_UHID) && hdev->ll_driver == &uhid_hid_driver) max_buffer_size = UHID_DATA_MAX; if (len < 1 || len > max_buffer_size || !buf) @@ -2422,7 +2422,7 @@ int hid_hw_output_report(struct hid_device *hdev, __u8 *buf, size_t len) { unsigned int max_buffer_size = HID_MAX_BUFFER_SIZE; - if (hdev->ll_driver == &uhid_hid_driver) + if (IS_ENABLED(CONFIG_UHID) && hdev->ll_driver == &uhid_hid_driver) max_buffer_size = UHID_DATA_MAX; if (len < 1 || len > max_buffer_size || !buf) diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c index e906ee375298..f1d5b7c38abb 100644 --- a/drivers/hid/hid-logitech-hidpp.c +++ b/drivers/hid/hid-logitech-hidpp.c @@ -4299,7 +4299,7 @@ static const struct hid_device_id hidpp_devices[] = { { /* wireless touchpad T651 */ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_T651), - .driver_data = HIDPP_QUIRK_CLASS_WTP }, + .driver_data = HIDPP_QUIRK_CLASS_WTP | HIDPP_QUIRK_DELAYED_INIT }, { /* Mouse Logitech Anywhere MX */ LDJ_DEVICE(0x1017), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_1P0 }, { /* Mouse logitech M560 */ diff --git a/drivers/hid/hidraw.c b/drivers/hid/hidraw.c index 197b1e7bf029..b617aada50b0 100644 --- a/drivers/hid/hidraw.c +++ b/drivers/hid/hidraw.c @@ -272,7 +272,12 @@ static int hidraw_open(struct inode *inode, struct file *file) goto out; } - down_read(&minors_rwsem); + /* + * Technically not writing to the hidraw_table but a write lock is + * required to protect the device refcount. This is symmetrical to + * hidraw_release(). + */ + down_write(&minors_rwsem); if (!hidraw_table[minor] || !hidraw_table[minor]->exist) { err = -ENODEV; goto out_unlock; @@ -301,7 +306,7 @@ static int hidraw_open(struct inode *inode, struct file *file) spin_unlock_irqrestore(&hidraw_table[minor]->list_lock, flags); file->private_data = list; out_unlock: - up_read(&minors_rwsem); + up_write(&minors_rwsem); out: if (err < 0) kfree(list); diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index 20adb9b323d8..d7676008ff57 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -2051,7 +2051,7 @@ static struct protection_domain *protection_domain_alloc(unsigned int type) { struct io_pgtable_ops *pgtbl_ops; struct protection_domain *domain; - int pgtable = amd_iommu_pgtable; + int pgtable; int mode = DEFAULT_PGTABLE_LEVEL; int ret; @@ -2068,6 +2068,10 @@ static struct protection_domain *protection_domain_alloc(unsigned int type) mode = PAGE_MODE_NONE; } else if (type == IOMMU_DOMAIN_UNMANAGED) { pgtable = AMD_IOMMU_V1; + } else if (type == IOMMU_DOMAIN_DMA || type == IOMMU_DOMAIN_DMA_FQ) { + pgtable = amd_iommu_pgtable; + } else { + return NULL; } switch (pgtable) { diff --git a/drivers/iommu/amd/iommu_v2.c b/drivers/iommu/amd/iommu_v2.c index 9f7fab49a5a9..75355ddca657 100644 --- a/drivers/iommu/amd/iommu_v2.c +++ b/drivers/iommu/amd/iommu_v2.c @@ -485,8 +485,8 @@ static void do_fault(struct work_struct *work) flags |= FAULT_FLAG_REMOTE; mmap_read_lock(mm); - vma = find_extend_vma(mm, address); - if (!vma || address < vma->vm_start) + vma = vma_lookup(mm, address); + if (!vma) /* failed to get a vma in the right range */ goto out; diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c index c9bdec523454..89c2c55aa690 100644 --- a/drivers/iommu/dma-iommu.c +++ b/drivers/iommu/dma-iommu.c @@ -23,6 +23,7 @@ #include <linux/memremap.h> #include <linux/mm.h> #include <linux/mutex.h> +#include <linux/of_iommu.h> #include <linux/pci.h> #include <linux/scatterlist.h> #include <linux/spinlock.h> @@ -392,6 +393,8 @@ void iommu_dma_get_resv_regions(struct device *dev, struct list_head *list) if (!is_of_node(dev_iommu_fwspec_get(dev)->iommu_fwnode)) iort_iommu_get_resv_regions(dev, list); + if (dev->of_node) + of_iommu_get_resv_regions(dev, list); } EXPORT_SYMBOL(iommu_dma_get_resv_regions); diff --git a/drivers/iommu/iommu-sva.c b/drivers/iommu/iommu-sva.c index 24bf9b2b58aa..ed5f11eb92e5 100644 --- a/drivers/iommu/iommu-sva.c +++ b/drivers/iommu/iommu-sva.c @@ -203,7 +203,7 @@ iommu_sva_handle_iopf(struct iommu_fault *fault, void *data) mmap_read_lock(mm); - vma = find_extend_vma(mm, prm->addr); + vma = vma_lookup(mm, prm->addr); if (!vma) /* Unmapped area */ goto out_put_mm; diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c index 5696314ae69e..da271c5596fb 100644 --- a/drivers/iommu/of_iommu.c +++ b/drivers/iommu/of_iommu.c @@ -11,6 +11,7 @@ #include <linux/module.h> #include <linux/msi.h> #include <linux/of.h> +#include <linux/of_address.h> #include <linux/of_iommu.h> #include <linux/of_pci.h> #include <linux/pci.h> @@ -172,3 +173,98 @@ const struct iommu_ops *of_iommu_configure(struct device *dev, return ops; } + +static enum iommu_resv_type __maybe_unused +iommu_resv_region_get_type(struct device *dev, + struct resource *phys, + phys_addr_t start, size_t length) +{ + phys_addr_t end = start + length - 1; + + /* + * IOMMU regions without an associated physical region cannot be + * mapped and are simply reservations. + */ + if (phys->start >= phys->end) + return IOMMU_RESV_RESERVED; + + /* may be IOMMU_RESV_DIRECT_RELAXABLE for certain cases */ + if (start == phys->start && end == phys->end) + return IOMMU_RESV_DIRECT; + + dev_warn(dev, "treating non-direct mapping [%pr] -> [%pap-%pap] as reservation\n", &phys, + &start, &end); + return IOMMU_RESV_RESERVED; +} + +/** + * of_iommu_get_resv_regions - reserved region driver helper for device tree + * @dev: device for which to get reserved regions + * @list: reserved region list + * + * IOMMU drivers can use this to implement their .get_resv_regions() callback + * for memory regions attached to a device tree node. See the reserved-memory + * device tree bindings on how to use these: + * + * Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt + */ +void of_iommu_get_resv_regions(struct device *dev, struct list_head *list) +{ +#if IS_ENABLED(CONFIG_OF_ADDRESS) + struct of_phandle_iterator it; + int err; + + of_for_each_phandle(&it, err, dev->of_node, "memory-region", NULL, 0) { + const __be32 *maps, *end; + struct resource phys; + int size; + + memset(&phys, 0, sizeof(phys)); + + /* + * The "reg" property is optional and can be omitted by reserved-memory regions + * that represent reservations in the IOVA space, which are regions that should + * not be mapped. + */ + if (of_find_property(it.node, "reg", NULL)) { + err = of_address_to_resource(it.node, 0, &phys); + if (err < 0) { + dev_err(dev, "failed to parse memory region %pOF: %d\n", + it.node, err); + continue; + } + } + + maps = of_get_property(it.node, "iommu-addresses", &size); + if (!maps) + continue; + + end = maps + size / sizeof(__be32); + + while (maps < end) { + struct device_node *np; + u32 phandle; + + phandle = be32_to_cpup(maps++); + np = of_find_node_by_phandle(phandle); + + if (np == dev->of_node) { + int prot = IOMMU_READ | IOMMU_WRITE; + struct iommu_resv_region *region; + enum iommu_resv_type type; + phys_addr_t iova; + size_t length; + + maps = of_translate_dma_region(np, maps, &iova, &length); + type = iommu_resv_region_get_type(dev, &phys, iova, length); + + region = iommu_alloc_resv_region(iova, length, prot, type, + GFP_KERNEL); + if (region) + list_add_tail(®ion->list, list); + } + } + } +#endif +} +EXPORT_SYMBOL(of_iommu_get_resv_regions); diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index 1684d19d46fb..a9d3d0e45d28 100644 --- a/drivers/irqchip/irq-gic-v3.c +++ b/drivers/irqchip/irq-gic-v3.c @@ -50,6 +50,8 @@ struct redist_region { static struct gic_chip_data_v3 gic_data __read_mostly; static DEFINE_STATIC_KEY_TRUE(supports_deactivate_key); +static DEFINE_STATIC_KEY_FALSE(gic_arm64_2941627_erratum); + #define GIC_ID_NR (1U << GICD_TYPER_ID_BITS(gic_data.rdists.gicd_typer)) #define GIC_LINE_NR min(GICD_TYPER_SPIS(gic_data.rdists.gicd_typer), 1020U) #define GIC_ESPI_NR GICD_TYPER_ESPIS(gic_data.rdists.gicd_typer) @@ -547,10 +549,39 @@ static void gic_irq_nmi_teardown(struct irq_data *d) gic_irq_set_prio(d, GICD_INT_DEF_PRI); } +static bool gic_arm64_erratum_2941627_needed(struct irq_data *d) +{ + enum gic_intid_range range; + + if (!static_branch_unlikely(&gic_arm64_2941627_erratum)) + return false; + + range = get_intid_range(d); + + /* + * The workaround is needed if the IRQ is an SPI and + * the target cpu is different from the one we are + * executing on. + */ + return (range == SPI_RANGE || range == ESPI_RANGE) && + !cpumask_test_cpu(raw_smp_processor_id(), + irq_data_get_effective_affinity_mask(d)); +} + static void gic_eoi_irq(struct irq_data *d) { write_gicreg(gic_irq(d), ICC_EOIR1_EL1); isb(); + + if (gic_arm64_erratum_2941627_needed(d)) { + /* + * Make sure the GIC stream deactivate packet + * issued by ICC_EOIR1_EL1 has completed before + * deactivating through GICD_IACTIVER. + */ + dsb(sy); + gic_poke_irq(d, GICD_ICACTIVER); + } } static void gic_eoimode1_eoi_irq(struct irq_data *d) @@ -561,7 +592,11 @@ static void gic_eoimode1_eoi_irq(struct irq_data *d) */ if (gic_irq(d) >= 8192 || irqd_is_forwarded_to_vcpu(d)) return; - gic_write_dir(gic_irq(d)); + + if (!gic_arm64_erratum_2941627_needed(d)) + gic_write_dir(gic_irq(d)); + else + gic_poke_irq(d, GICD_ICACTIVER); } static int gic_set_type(struct irq_data *d, unsigned int type) @@ -1747,6 +1782,12 @@ static bool gic_enable_quirk_hip06_07(void *data) return false; } +static bool gic_enable_quirk_arm64_2941627(void *data) +{ + static_branch_enable(&gic_arm64_2941627_erratum); + return true; +} + static const struct gic_quirk gic_quirks[] = { { .desc = "GICv3: Qualcomm MSM8996 broken firmware", @@ -1779,6 +1820,25 @@ static const struct gic_quirk gic_quirks[] = { .init = gic_enable_quirk_cavium_38539, }, { + /* + * GIC-700: 2941627 workaround - IP variant [0,1] + * + */ + .desc = "GICv3: ARM64 erratum 2941627", + .iidr = 0x0400043b, + .mask = 0xff0e0fff, + .init = gic_enable_quirk_arm64_2941627, + }, + { + /* + * GIC-700: 2941627 workaround - IP variant [2] + */ + .desc = "GICv3: ARM64 erratum 2941627", + .iidr = 0x0402043b, + .mask = 0xff0f0fff, + .init = gic_enable_quirk_arm64_2941627, + }, + { } }; diff --git a/drivers/mailbox/gunyah-msgq.c b/drivers/mailbox/gunyah-msgq.c index b7a54f233680..7f777339278e 100644 --- a/drivers/mailbox/gunyah-msgq.c +++ b/drivers/mailbox/gunyah-msgq.c @@ -96,8 +96,9 @@ static int gh_msgq_send_data(struct mbox_chan *chan, void *data) if (gh_error == GH_ERROR_OK) { if (!ready) return 0; - } else + } else { dev_err(msgq->mbox.dev, "Failed to send data: %d (%d)\n", gh_error, msgq->last_ret); + } /** * We can send more messages. Mailbox framework requires that tx done @@ -165,6 +166,8 @@ int gh_msgq_init(struct device *parent, struct gh_msgq *msgq, struct mbox_client if (ret) goto err_tx_ghrsc; + enable_irq_wake(msgq->tx_ghrsc->irq); + tasklet_setup(&msgq->txdone_tasklet, gh_msgq_txdone_tasklet); } @@ -175,6 +178,8 @@ int gh_msgq_init(struct device *parent, struct gh_msgq *msgq, struct mbox_client IRQF_ONESHOT, "gh_msgq_rx", msgq); if (ret) goto err_tx_irq; + + enable_irq_wake(msgq->rx_ghrsc->irq); } return 0; @@ -193,6 +198,8 @@ EXPORT_SYMBOL_GPL(gh_msgq_init); void gh_msgq_remove(struct gh_msgq *msgq) { + mbox_free_channel(gh_msgq_chan(msgq)); + if (msgq->rx_ghrsc) free_irq(msgq->rx_ghrsc->irq, msgq); diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c index c41a7e5c2b92..fce0e2094078 100644 --- a/drivers/media/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb-core/dvb_frontend.c @@ -293,14 +293,22 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe, } if (events->eventw == events->eventr) { - int ret; + struct wait_queue_entry wait; + int ret = 0; if (flags & O_NONBLOCK) return -EWOULDBLOCK; - ret = wait_event_interruptible(events->wait_queue, - dvb_frontend_test_event(fepriv, events)); - + init_waitqueue_entry(&wait, current); + add_wait_queue(&events->wait_queue, &wait); + while (!dvb_frontend_test_event(fepriv, events)) { + wait_woken(&wait, TASK_INTERRUPTIBLE, 0); + if (signal_pending(current)) { + ret = -ERESTARTSYS; + break; + } + } + remove_wait_queue(&events->wait_queue, &wait); if (ret < 0) return ret; } diff --git a/drivers/media/usb/siano/smsusb.c b/drivers/media/usb/siano/smsusb.c index 6f443c542c6d..640737d3b8ae 100644 --- a/drivers/media/usb/siano/smsusb.c +++ b/drivers/media/usb/siano/smsusb.c @@ -179,7 +179,8 @@ static void smsusb_stop_streaming(struct smsusb_device_t *dev) for (i = 0; i < MAX_URBS; i++) { usb_kill_urb(&dev->surbs[i].urb); - cancel_work_sync(&dev->surbs[i].wq); + if (dev->surbs[i].wq.func) + cancel_work_sync(&dev->surbs[i].wq); if (dev->surbs[i].cb) { smscore_putbuffer(dev->coredev, dev->surbs[i].cb); diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-core/v4l2-common.c index 40f56e044640..3c5ab5ecd678 100644 --- a/drivers/media/v4l2-core/v4l2-common.c +++ b/drivers/media/v4l2-core/v4l2-common.c @@ -252,12 +252,16 @@ const struct v4l2_format_info *v4l2_format_info(u32 format) { .format = V4L2_PIX_FMT_RGB565, .pixel_enc = V4L2_PIXEL_ENC_RGB, .mem_planes = 1, .comp_planes = 1, .bpp = { 2, 0, 0, 0 }, .hdiv = 1, .vdiv = 1 }, { .format = V4L2_PIX_FMT_RGB555, .pixel_enc = V4L2_PIXEL_ENC_RGB, .mem_planes = 1, .comp_planes = 1, .bpp = { 2, 0, 0, 0 }, .hdiv = 1, .vdiv = 1 }, { .format = V4L2_PIX_FMT_BGR666, .pixel_enc = V4L2_PIXEL_ENC_RGB, .mem_planes = 1, .comp_planes = 1, .bpp = { 4, 0, 0, 0 }, .hdiv = 1, .vdiv = 1 }, + { .format = V4L2_PIX_FMT_BGR48_12, .pixel_enc = V4L2_PIXEL_ENC_RGB, .mem_planes = 1, .comp_planes = 1, .bpp = { 6, 0, 0, 0 }, .hdiv = 1, .vdiv = 1 }, + { .format = V4L2_PIX_FMT_ABGR64_12, .pixel_enc = V4L2_PIXEL_ENC_RGB, .mem_planes = 1, .comp_planes = 1, .bpp = { 8, 0, 0, 0 }, .hdiv = 1, .vdiv = 1 }, /* YUV packed formats */ { .format = V4L2_PIX_FMT_YUYV, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 1, .bpp = { 2, 0, 0, 0 }, .hdiv = 2, .vdiv = 1 }, { .format = V4L2_PIX_FMT_YVYU, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 1, .bpp = { 2, 0, 0, 0 }, .hdiv = 2, .vdiv = 1 }, { .format = V4L2_PIX_FMT_UYVY, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 1, .bpp = { 2, 0, 0, 0 }, .hdiv = 2, .vdiv = 1 }, { .format = V4L2_PIX_FMT_VYUY, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 1, .bpp = { 2, 0, 0, 0 }, .hdiv = 2, .vdiv = 1 }, + { .format = V4L2_PIX_FMT_Y212, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 1, .bpp = { 4, 0, 0, 0 }, .hdiv = 2, .vdiv = 1 }, + { .format = V4L2_PIX_FMT_YUV48_12, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 1, .bpp = { 6, 0, 0, 0 }, .hdiv = 1, .vdiv = 1 }, /* YUV planar formats */ { .format = V4L2_PIX_FMT_NV12, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .hdiv = 2, .vdiv = 2 }, @@ -267,6 +271,7 @@ const struct v4l2_format_info *v4l2_format_info(u32 format) { .format = V4L2_PIX_FMT_NV24, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .hdiv = 1, .vdiv = 1 }, { .format = V4L2_PIX_FMT_NV42, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .hdiv = 1, .vdiv = 1 }, { .format = V4L2_PIX_FMT_P010, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 2, 2, 0, 0 }, .hdiv = 2, .vdiv = 1 }, + { .format = V4L2_PIX_FMT_P012, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 2, 4, 0, 0 }, .hdiv = 2, .vdiv = 2 }, { .format = V4L2_PIX_FMT_YUV410, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 3, .bpp = { 1, 1, 1, 0 }, .hdiv = 4, .vdiv = 4 }, { .format = V4L2_PIX_FMT_YVU410, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 3, .bpp = { 1, 1, 1, 0 }, .hdiv = 4, .vdiv = 4 }, @@ -292,6 +297,7 @@ const struct v4l2_format_info *v4l2_format_info(u32 format) { .format = V4L2_PIX_FMT_NV21M, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 2, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .hdiv = 2, .vdiv = 2 }, { .format = V4L2_PIX_FMT_NV16M, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 2, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .hdiv = 2, .vdiv = 1 }, { .format = V4L2_PIX_FMT_NV61M, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 2, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .hdiv = 2, .vdiv = 1 }, + { .format = V4L2_PIX_FMT_P012M, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 2, .comp_planes = 2, .bpp = { 2, 4, 0, 0 }, .hdiv = 2, .vdiv = 2 }, /* Bayer RGB formats */ { .format = V4L2_PIX_FMT_SBGGR8, .pixel_enc = V4L2_PIXEL_ENC_BAYER, .mem_planes = 1, .comp_planes = 1, .bpp = { 1, 0, 0, 0 }, .hdiv = 1, .vdiv = 1 }, diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c index 91ae25e092e2..3a4785b3b59a 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1304,11 +1304,14 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) case V4L2_PIX_FMT_BGRX32: descr = "32-bit XBGR 8-8-8-8"; break; case V4L2_PIX_FMT_RGBA32: descr = "32-bit RGBA 8-8-8-8"; break; case V4L2_PIX_FMT_RGBX32: descr = "32-bit RGBX 8-8-8-8"; break; + case V4L2_PIX_FMT_BGR48_12: descr = "12-bit Depth BGR"; break; + case V4L2_PIX_FMT_ABGR64_12: descr = "12-bit Depth BGRA"; break; case V4L2_PIX_FMT_GREY: descr = "8-bit Greyscale"; break; case V4L2_PIX_FMT_Y4: descr = "4-bit Greyscale"; break; case V4L2_PIX_FMT_Y6: descr = "6-bit Greyscale"; break; case V4L2_PIX_FMT_Y10: descr = "10-bit Greyscale"; break; case V4L2_PIX_FMT_Y12: descr = "12-bit Greyscale"; break; + case V4L2_PIX_FMT_Y012: descr = "12-bit Greyscale (bits 15-4)"; break; case V4L2_PIX_FMT_Y14: descr = "14-bit Greyscale"; break; case V4L2_PIX_FMT_Y16: descr = "16-bit Greyscale"; break; case V4L2_PIX_FMT_Y16_BE: descr = "16-bit Greyscale BE"; break; @@ -1347,6 +1350,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) case V4L2_PIX_FMT_YUV420: descr = "Planar YUV 4:2:0"; break; case V4L2_PIX_FMT_HI240: descr = "8-bit Dithered RGB (BTTV)"; break; case V4L2_PIX_FMT_M420: descr = "YUV 4:2:0 (M420)"; break; + case V4L2_PIX_FMT_YUV48_12: descr = "12-bit YUV 4:4:4 Packed"; break; case V4L2_PIX_FMT_NV12: descr = "Y/UV 4:2:0"; break; case V4L2_PIX_FMT_NV21: descr = "Y/VU 4:2:0"; break; case V4L2_PIX_FMT_NV16: descr = "Y/UV 4:2:2"; break; @@ -1354,6 +1358,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) case V4L2_PIX_FMT_NV24: descr = "Y/UV 4:4:4"; break; case V4L2_PIX_FMT_NV42: descr = "Y/VU 4:4:4"; break; case V4L2_PIX_FMT_P010: descr = "10-bit Y/UV 4:2:0"; break; + case V4L2_PIX_FMT_P012: descr = "12-bit Y/UV 4:2:0"; break; case V4L2_PIX_FMT_NV12_4L4: descr = "Y/UV 4:2:0 (4x4 Linear)"; break; case V4L2_PIX_FMT_NV12_16L16: descr = "Y/UV 4:2:0 (16x16 Linear)"; break; case V4L2_PIX_FMT_NV12_32L32: descr = "Y/UV 4:2:0 (32x32 Linear)"; break; @@ -1364,6 +1369,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) case V4L2_PIX_FMT_NV61M: descr = "Y/VU 4:2:2 (N-C)"; break; case V4L2_PIX_FMT_NV12MT: descr = "Y/UV 4:2:0 (64x32 MB, N-C)"; break; case V4L2_PIX_FMT_NV12MT_16X16: descr = "Y/UV 4:2:0 (16x16 MB, N-C)"; break; + case V4L2_PIX_FMT_P012M: descr = "12-bit Y/UV 4:2:0 (N-C)"; break; case V4L2_PIX_FMT_YUV420M: descr = "Planar YUV 4:2:0 (N-C)"; break; case V4L2_PIX_FMT_YVU420M: descr = "Planar YVU 4:2:0 (N-C)"; break; case V4L2_PIX_FMT_YUV422M: descr = "Planar YUV 4:2:2 (N-C)"; break; @@ -1448,6 +1454,9 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) case V4L2_PIX_FMT_NV12M_8L128: descr = "NV12M (8x128 Linear)"; break; case V4L2_PIX_FMT_NV12_10BE_8L128: descr = "10-bit NV12 (8x128 Linear, BE)"; break; case V4L2_PIX_FMT_NV12M_10BE_8L128: descr = "10-bit NV12M (8x128 Linear, BE)"; break; + case V4L2_PIX_FMT_Y210: descr = "10-bit YUYV Packed"; break; + case V4L2_PIX_FMT_Y212: descr = "12-bit YUYV Packed"; break; + case V4L2_PIX_FMT_Y216: descr = "16-bit YUYV Packed"; break; default: /* Compressed formats */ diff --git a/drivers/memstick/host/r592.c b/drivers/memstick/host/r592.c index 1d35d147552d..42bfc46842b8 100644 --- a/drivers/memstick/host/r592.c +++ b/drivers/memstick/host/r592.c @@ -829,7 +829,7 @@ static void r592_remove(struct pci_dev *pdev) /* Stop the processing thread. That ensures that we won't take any more requests */ kthread_stop(dev->io_thread); - + del_timer_sync(&dev->detect_timer); r592_enable_device(dev, false); while (!error && dev->req) { diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c index bdb2ce7ff03b..0871c97ae51a 100644 --- a/drivers/mfd/syscon.c +++ b/drivers/mfd/syscon.c @@ -22,6 +22,7 @@ #include <linux/regmap.h> #include <linux/mfd/syscon.h> #include <linux/slab.h> +#include <trace/hooks/regmap.h> static struct platform_driver syscon_driver; @@ -128,6 +129,7 @@ static struct syscon *of_syscon_register(struct device_node *np, bool check_clk) } } + trace_android_vh_regmap_update(&syscon_config, regmap); syscon->regmap = regmap; syscon->np = np; diff --git a/drivers/misc/uid_sys_stats.c b/drivers/misc/uid_sys_stats.c index 36a34b1461cf..095962102ac7 100644 --- a/drivers/misc/uid_sys_stats.c +++ b/drivers/misc/uid_sys_stats.c @@ -19,20 +19,24 @@ #include <linux/init.h> #include <linux/kernel.h> #include <linux/list.h> +#include <linux/llist.h> #include <linux/mm.h> #include <linux/proc_fs.h> #include <linux/profile.h> -#include <linux/rtmutex.h> #include <linux/sched/cputime.h> #include <linux/seq_file.h> #include <linux/slab.h> #include <linux/uaccess.h> - +#include <linux/spinlock_types.h> #define UID_HASH_BITS 10 +#define UID_HASH_NUMS (1 << UID_HASH_BITS) DECLARE_HASHTABLE(hash_table, UID_HASH_BITS); +/* + * uid_lock[bkt] ensure consistency of hash_table[bkt] + */ +spinlock_t uid_lock[UID_HASH_NUMS]; -static DEFINE_RT_MUTEX(uid_lock); static struct proc_dir_entry *cpu_parent; static struct proc_dir_entry *io_parent; static struct proc_dir_entry *proc_parent; @@ -77,6 +81,32 @@ struct uid_entry { #endif }; +static inline int trylock_uid(uid_t uid) +{ + return spin_trylock( + &uid_lock[hash_min(uid, HASH_BITS(hash_table))]); +} + +static inline void lock_uid(uid_t uid) +{ + spin_lock(&uid_lock[hash_min(uid, HASH_BITS(hash_table))]); +} + +static inline void unlock_uid(uid_t uid) +{ + spin_unlock(&uid_lock[hash_min(uid, HASH_BITS(hash_table))]); +} + +static inline void lock_uid_by_bkt(u32 bkt) +{ + spin_lock(&uid_lock[bkt]); +} + +static inline void unlock_uid_by_bkt(u32 bkt) +{ + spin_unlock(&uid_lock[bkt]); +} + static u64 compute_write_bytes(struct task_io_accounting *ioac) { if (ioac->write_bytes <= ioac->cancelled_write_bytes) @@ -332,24 +362,29 @@ static int uid_cputime_show(struct seq_file *m, void *v) struct user_namespace *user_ns = current_user_ns(); u64 utime; u64 stime; - unsigned long bkt; + u32 bkt; uid_t uid; - rt_mutex_lock(&uid_lock); - - hash_for_each(hash_table, bkt, uid_entry, hash) { - uid_entry->active_stime = 0; - uid_entry->active_utime = 0; + for (bkt = 0, uid_entry = NULL; uid_entry == NULL && + bkt < HASH_SIZE(hash_table); bkt++) { + lock_uid_by_bkt(bkt); + hlist_for_each_entry(uid_entry, &hash_table[bkt], hash) { + uid_entry->active_stime = 0; + uid_entry->active_utime = 0; + } + unlock_uid_by_bkt(bkt); } rcu_read_lock(); do_each_thread(temp, task) { uid = from_kuid_munged(user_ns, task_uid(task)); + lock_uid(uid); + if (!uid_entry || uid_entry->uid != uid) uid_entry = find_or_register_uid(uid); if (!uid_entry) { rcu_read_unlock(); - rt_mutex_unlock(&uid_lock); + unlock_uid(uid); pr_err("%s: failed to find the uid_entry for uid %d\n", __func__, uid); return -ENOMEM; @@ -360,19 +395,24 @@ static int uid_cputime_show(struct seq_file *m, void *v) uid_entry->active_utime += utime; uid_entry->active_stime += stime; } + unlock_uid(uid); } while_each_thread(temp, task); rcu_read_unlock(); - hash_for_each(hash_table, bkt, uid_entry, hash) { - u64 total_utime = uid_entry->utime + - uid_entry->active_utime; - u64 total_stime = uid_entry->stime + - uid_entry->active_stime; - seq_printf(m, "%d: %llu %llu\n", uid_entry->uid, - ktime_to_us(total_utime), ktime_to_us(total_stime)); + for (bkt = 0, uid_entry = NULL; uid_entry == NULL && + bkt < HASH_SIZE(hash_table); bkt++) { + lock_uid_by_bkt(bkt); + hlist_for_each_entry(uid_entry, &hash_table[bkt], hash) { + u64 total_utime = uid_entry->utime + + uid_entry->active_utime; + u64 total_stime = uid_entry->stime + + uid_entry->active_stime; + seq_printf(m, "%d: %llu %llu\n", uid_entry->uid, + ktime_to_us(total_utime), ktime_to_us(total_stime)); + } + unlock_uid_by_bkt(bkt); } - rt_mutex_unlock(&uid_lock); return 0; } @@ -420,9 +460,8 @@ static ssize_t uid_remove_write(struct file *file, return -EINVAL; } - rt_mutex_lock(&uid_lock); - for (; uid_start <= uid_end; uid_start++) { + lock_uid(uid_start); hash_for_each_possible_safe(hash_table, uid_entry, tmp, hash, (uid_t)uid_start) { if (uid_start == uid_entry->uid) { @@ -431,9 +470,9 @@ static ssize_t uid_remove_write(struct file *file, kfree(uid_entry); } } + unlock_uid(uid_start); } - rt_mutex_unlock(&uid_lock); return count; } @@ -471,41 +510,59 @@ static void add_uid_io_stats(struct uid_entry *uid_entry, __add_uid_io_stats(uid_entry, &task->ioac, slot); } -static void update_io_stats_all_locked(void) +static void update_io_stats_all(void) { struct uid_entry *uid_entry = NULL; struct task_struct *task, *temp; struct user_namespace *user_ns = current_user_ns(); - unsigned long bkt; + u32 bkt; uid_t uid; - hash_for_each(hash_table, bkt, uid_entry, hash) { - memset(&uid_entry->io[UID_STATE_TOTAL_CURR], 0, - sizeof(struct io_stats)); - set_io_uid_tasks_zero(uid_entry); + for (bkt = 0, uid_entry = NULL; uid_entry == NULL && bkt < HASH_SIZE(hash_table); + bkt++) { + lock_uid_by_bkt(bkt); + hlist_for_each_entry(uid_entry, &hash_table[bkt], hash) { + memset(&uid_entry->io[UID_STATE_TOTAL_CURR], 0, + sizeof(struct io_stats)); + set_io_uid_tasks_zero(uid_entry); + } + unlock_uid_by_bkt(bkt); } rcu_read_lock(); do_each_thread(temp, task) { uid = from_kuid_munged(user_ns, task_uid(task)); + lock_uid(uid); if (!uid_entry || uid_entry->uid != uid) uid_entry = find_or_register_uid(uid); - if (!uid_entry) + if (!uid_entry) { + unlock_uid(uid); continue; + } add_uid_io_stats(uid_entry, task, UID_STATE_TOTAL_CURR); + unlock_uid(uid); } while_each_thread(temp, task); rcu_read_unlock(); - hash_for_each(hash_table, bkt, uid_entry, hash) { - compute_io_bucket_stats(&uid_entry->io[uid_entry->state], - &uid_entry->io[UID_STATE_TOTAL_CURR], - &uid_entry->io[UID_STATE_TOTAL_LAST], - &uid_entry->io[UID_STATE_DEAD_TASKS]); - compute_io_uid_tasks(uid_entry); + for (bkt = 0, uid_entry = NULL; uid_entry == NULL && bkt < HASH_SIZE(hash_table); + bkt++) { + lock_uid_by_bkt(bkt); + hlist_for_each_entry(uid_entry, &hash_table[bkt], hash) { + compute_io_bucket_stats(&uid_entry->io[uid_entry->state], + &uid_entry->io[UID_STATE_TOTAL_CURR], + &uid_entry->io[UID_STATE_TOTAL_LAST], + &uid_entry->io[UID_STATE_DEAD_TASKS]); + compute_io_uid_tasks(uid_entry); + } + unlock_uid_by_bkt(bkt); } } +#ifndef CONFIG_UID_SYS_STATS_DEBUG +static void update_io_stats_uid(struct uid_entry *uid_entry) +#else static void update_io_stats_uid_locked(struct uid_entry *uid_entry) +#endif { struct task_struct *task, *temp; struct user_namespace *user_ns = current_user_ns(); @@ -533,14 +590,15 @@ static void update_io_stats_uid_locked(struct uid_entry *uid_entry) static int uid_io_show(struct seq_file *m, void *v) { struct uid_entry *uid_entry; - unsigned long bkt; - - rt_mutex_lock(&uid_lock); + u32 bkt; - update_io_stats_all_locked(); + update_io_stats_all(); + for (bkt = 0, uid_entry = NULL; uid_entry == NULL && bkt < HASH_SIZE(hash_table); + bkt++) { - hash_for_each(hash_table, bkt, uid_entry, hash) { - seq_printf(m, "%d %llu %llu %llu %llu %llu %llu %llu %llu %llu %llu\n", + lock_uid_by_bkt(bkt); + hlist_for_each_entry(uid_entry, &hash_table[bkt], hash) { + seq_printf(m, "%d %llu %llu %llu %llu %llu %llu %llu %llu %llu %llu\n", uid_entry->uid, uid_entry->io[UID_STATE_FOREGROUND].rchar, uid_entry->io[UID_STATE_FOREGROUND].wchar, @@ -553,10 +611,11 @@ static int uid_io_show(struct seq_file *m, void *v) uid_entry->io[UID_STATE_FOREGROUND].fsync, uid_entry->io[UID_STATE_BACKGROUND].fsync); - show_io_uid_tasks(m, uid_entry); + show_io_uid_tasks(m, uid_entry); + } + unlock_uid_by_bkt(bkt); } - rt_mutex_unlock(&uid_lock); return 0; } @@ -584,6 +643,9 @@ static ssize_t uid_procstat_write(struct file *file, uid_t uid; int argc, state; char input[128]; +#ifndef CONFIG_UID_SYS_STATS_DEBUG + struct uid_entry uid_entry_tmp; +#endif if (count >= sizeof(input)) return -EINVAL; @@ -600,24 +662,51 @@ static ssize_t uid_procstat_write(struct file *file, if (state != UID_STATE_BACKGROUND && state != UID_STATE_FOREGROUND) return -EINVAL; - rt_mutex_lock(&uid_lock); - + lock_uid(uid); uid_entry = find_or_register_uid(uid); if (!uid_entry) { - rt_mutex_unlock(&uid_lock); + unlock_uid(uid); return -EINVAL; } if (uid_entry->state == state) { - rt_mutex_unlock(&uid_lock); + unlock_uid(uid); return count; } +#ifndef CONFIG_UID_SYS_STATS_DEBUG + /* + * Update_io_stats_uid_locked would take a long lock-time of uid_lock + * due to call do_each_thread to compute uid_entry->io, which would + * cause to lock competition sometime. + * + * Using uid_entry_tmp to get the result of Update_io_stats_uid, + * so that we can unlock_uid during update_io_stats_uid, in order + * to avoid the unnecessary lock-time of uid_lock. + */ + uid_entry_tmp.uid = uid_entry->uid; + memcpy(uid_entry_tmp.io, uid_entry->io, + sizeof(struct io_stats) * UID_STATE_SIZE); + unlock_uid(uid); + update_io_stats_uid(&uid_entry_tmp); + + lock_uid(uid); + hlist_for_each_entry(uid_entry, &hash_table[hash_min(uid, HASH_BITS(hash_table))], hash) { + if (uid_entry->uid == uid_entry_tmp.uid) { + memcpy(uid_entry->io, uid_entry_tmp.io, + sizeof(struct io_stats) * UID_STATE_SIZE); + uid_entry->state = state; + break; + } + } + unlock_uid(uid); +#else update_io_stats_uid_locked(uid_entry); uid_entry->state = state; - rt_mutex_unlock(&uid_lock); + unlock_uid(uid); +#endif return count; } @@ -629,7 +718,6 @@ static const struct proc_ops uid_procstat_fops = { }; struct update_stats_work { - struct work_struct work; uid_t uid; #ifdef CONFIG_UID_SYS_STATS_DEBUG struct task_struct *task; @@ -637,38 +725,46 @@ struct update_stats_work { struct task_io_accounting ioac; u64 utime; u64 stime; + struct llist_node node; }; +static LLIST_HEAD(work_usw); + static void update_stats_workfn(struct work_struct *work) { - struct update_stats_work *usw = - container_of(work, struct update_stats_work, work); + struct update_stats_work *usw, *t; struct uid_entry *uid_entry; struct task_entry *task_entry __maybe_unused; + struct llist_node *node; - rt_mutex_lock(&uid_lock); - uid_entry = find_uid_entry(usw->uid); - if (!uid_entry) - goto exit; + node = llist_del_all(&work_usw); + llist_for_each_entry_safe(usw, t, node, node) { + lock_uid(usw->uid); + uid_entry = find_uid_entry(usw->uid); + if (!uid_entry) + goto next; - uid_entry->utime += usw->utime; - uid_entry->stime += usw->stime; + uid_entry->utime += usw->utime; + uid_entry->stime += usw->stime; #ifdef CONFIG_UID_SYS_STATS_DEBUG - task_entry = find_task_entry(uid_entry, usw->task); - if (!task_entry) - goto exit; - add_uid_tasks_io_stats(task_entry, &usw->ioac, - UID_STATE_DEAD_TASKS); + task_entry = find_task_entry(uid_entry, usw->task); + if (!task_entry) + goto next; + add_uid_tasks_io_stats(task_entry, &usw->ioac, + UID_STATE_DEAD_TASKS); #endif - __add_uid_io_stats(uid_entry, &usw->ioac, UID_STATE_DEAD_TASKS); -exit: - rt_mutex_unlock(&uid_lock); + __add_uid_io_stats(uid_entry, &usw->ioac, UID_STATE_DEAD_TASKS); +next: + unlock_uid(usw->uid); #ifdef CONFIG_UID_SYS_STATS_DEBUG - put_task_struct(usw->task); + put_task_struct(usw->task); #endif - kfree(usw); + kfree(usw); + } + } +static DECLARE_WORK(update_stats_work, update_stats_workfn); static int process_notifier(struct notifier_block *self, unsigned long cmd, void *v) @@ -682,12 +778,11 @@ static int process_notifier(struct notifier_block *self, return NOTIFY_OK; uid = from_kuid_munged(current_user_ns(), task_uid(task)); - if (!rt_mutex_trylock(&uid_lock)) { + if (!trylock_uid(uid)) { struct update_stats_work *usw; usw = kmalloc(sizeof(struct update_stats_work), GFP_KERNEL); if (usw) { - INIT_WORK(&usw->work, update_stats_workfn); usw->uid = uid; #ifdef CONFIG_UID_SYS_STATS_DEBUG usw->task = get_task_struct(task); @@ -698,7 +793,8 @@ static int process_notifier(struct notifier_block *self, */ usw->ioac = task->ioac; task_cputime_adjusted(task, &usw->utime, &usw->stime); - schedule_work(&usw->work); + llist_add(&usw->node, &work_usw); + schedule_work(&update_stats_work); } return NOTIFY_OK; } @@ -716,7 +812,7 @@ static int process_notifier(struct notifier_block *self, add_uid_io_stats(uid_entry, task, UID_STATE_DEAD_TASKS); exit: - rt_mutex_unlock(&uid_lock); + unlock_uid(uid); return NOTIFY_OK; } @@ -724,9 +820,18 @@ static struct notifier_block process_notifier_block = { .notifier_call = process_notifier, }; -static int __init proc_uid_sys_stats_init(void) +static void init_hash_table_and_lock(void) { + int i; + hash_init(hash_table); + for (i = 0; i < UID_HASH_NUMS; i++) + spin_lock_init(&uid_lock[i]); +} + +static int __init proc_uid_sys_stats_init(void) +{ + init_hash_table_and_lock(); cpu_parent = proc_mkdir("uid_cputime", NULL); if (!cpu_parent) { diff --git a/drivers/net/ipvlan/ipvlan_core.c b/drivers/net/ipvlan/ipvlan_core.c index bb1c298c1e78..2de3bd3b0c27 100644 --- a/drivers/net/ipvlan/ipvlan_core.c +++ b/drivers/net/ipvlan/ipvlan_core.c @@ -436,6 +436,9 @@ static int ipvlan_process_v4_outbound(struct sk_buff *skb) goto err; } skb_dst_set(skb, &rt->dst); + + memset(IPCB(skb), 0, sizeof(*IPCB(skb))); + err = ip_local_out(net, skb->sk, skb); if (unlikely(net_xmit_eval(err))) dev->stats.tx_errors++; @@ -474,6 +477,9 @@ static int ipvlan_process_v6_outbound(struct sk_buff *skb) goto err; } skb_dst_set(skb, dst); + + memset(IP6CB(skb), 0, sizeof(*IP6CB(skb))); + err = ip6_local_out(net, skb->sk, skb); if (unlikely(net_xmit_eval(err))) dev->stats.tx_errors++; diff --git a/drivers/net/tap.c b/drivers/net/tap.c index 760d8d1b6cba..f34ebd1d1f39 100644 --- a/drivers/net/tap.c +++ b/drivers/net/tap.c @@ -533,7 +533,7 @@ static int tap_open(struct inode *inode, struct file *file) q->sock.state = SS_CONNECTED; q->sock.file = file; q->sock.ops = &tap_socket_ops; - sock_init_data_uid(&q->sock, &q->sk, inode->i_uid); + sock_init_data_uid(&q->sock, &q->sk, current_fsuid()); q->sk.sk_write_space = tap_sock_write_space; q->sk.sk_destruct = tap_sock_destruct; q->flags = IFF_VNET_HDR | IFF_NO_PI | IFF_TAP; diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 91d198aff2f9..fa1d58fd741a 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -3449,7 +3449,7 @@ static int tun_chr_open(struct inode *inode, struct file * file) tfile->socket.file = file; tfile->socket.ops = &tun_socket_ops; - sock_init_data_uid(&tfile->socket, &tfile->sk, inode->i_uid); + sock_init_data_uid(&tfile->socket, &tfile->sk, current_fsuid()); tfile->sk.sk_write_space = tun_sock_write_space; tfile->sk.sk_sndbuf = INT_MAX; diff --git a/drivers/of/address.c b/drivers/of/address.c index 67763e5b8c0e..4c0b169ef9bf 100644 --- a/drivers/of/address.c +++ b/drivers/of/address.c @@ -626,6 +626,47 @@ u64 of_translate_dma_address(struct device_node *dev, const __be32 *in_addr) } EXPORT_SYMBOL(of_translate_dma_address); +/** + * of_translate_dma_region - Translate device tree address and size tuple + * @dev: device tree node for which to translate + * @prop: pointer into array of cells + * @start: return value for the start of the DMA range + * @length: return value for the length of the DMA range + * + * Returns a pointer to the cell immediately following the translated DMA region. + */ +const __be32 *of_translate_dma_region(struct device_node *dev, const __be32 *prop, + phys_addr_t *start, size_t *length) +{ + struct device_node *parent; + u64 address, size; + int na, ns; + + parent = __of_get_dma_parent(dev); + if (!parent) + return NULL; + + na = of_bus_n_addr_cells(parent); + ns = of_bus_n_size_cells(parent); + + of_node_put(parent); + + address = of_translate_dma_address(dev, prop); + if (address == OF_BAD_ADDR) + return NULL; + + size = of_read_number(prop + na, ns); + + if (start) + *start = address; + + if (length) + *length = size; + + return prop + na + ns; +} +EXPORT_SYMBOL(of_translate_dma_region); + const __be32 *__of_get_address(struct device_node *dev, int index, int bar_no, u64 *size, unsigned int *flags) { diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c index 7bab7586918c..82806f198074 100644 --- a/drivers/staging/media/rkvdec/rkvdec.c +++ b/drivers/staging/media/rkvdec/rkvdec.c @@ -1066,6 +1066,8 @@ static int rkvdec_remove(struct platform_device *pdev) { struct rkvdec_dev *rkvdec = platform_get_drvdata(pdev); + cancel_delayed_work_sync(&rkvdec->watchdog_work); + rkvdec_v4l2_cleanup(rkvdec); pm_runtime_disable(&pdev->dev); pm_runtime_dont_use_autosuspend(&pdev->dev); diff --git a/drivers/thermal/gov_power_allocator.c b/drivers/thermal/gov_power_allocator.c index 5471c9091f5f..b851d7cf0968 100644 --- a/drivers/thermal/gov_power_allocator.c +++ b/drivers/thermal/gov_power_allocator.c @@ -704,6 +704,7 @@ static int power_allocator_throttle(struct thermal_zone_device *tz, int trip) int switch_on_temp, control_temp; struct power_allocator_params *params = tz->governor_data; bool update; + bool enable = true; lockdep_assert_held(&tz->lock); @@ -714,9 +715,11 @@ static int power_allocator_throttle(struct thermal_zone_device *tz, int trip) if (trip != params->trip_max_desired_temperature) return 0; + trace_android_vh_enable_thermal_power_throttle(&enable); + ret = tz->ops->get_trip_temp(tz, params->trip_switch_on, &switch_on_temp); - if (!ret && (tz->temperature < switch_on_temp)) { + if ((!ret && (tz->temperature < switch_on_temp)) || !enable) { update = (tz->last_temperature >= switch_on_temp); tz->passive = 0; reset_pid_controller(params); diff --git a/drivers/thermal/thermal_netlink.c b/drivers/thermal/thermal_netlink.c index e2d78a996b5f..468eaae5ca82 100644 --- a/drivers/thermal/thermal_netlink.c +++ b/drivers/thermal/thermal_netlink.c @@ -9,6 +9,7 @@ #include <linux/module.h> #include <linux/kernel.h> #include <net/genetlink.h> +#include <trace/hooks/thermal.h> #include <uapi/linux/thermal.h> #include "thermal_core.h" @@ -274,6 +275,11 @@ static int thermal_genl_send_event(enum thermal_genl_event event, struct sk_buff *msg; int ret = -EMSGSIZE; void *hdr; + int enable_thermal_genl = 1; + + trace_android_vh_enable_thermal_genl_check(event, p->tz_id, &enable_thermal_genl); + if (!enable_thermal_genl) + return 0; msg = genlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL); if (!msg) diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c index b6e0cc4571ea..c1fa20a4e342 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c @@ -2481,12 +2481,13 @@ static void gsm_error(struct gsm_mux *gsm) static void gsm_cleanup_mux(struct gsm_mux *gsm, bool disc) { int i; - struct gsm_dlci *dlci = gsm->dlci[0]; + struct gsm_dlci *dlci; struct gsm_msg *txq, *ntxq; gsm->dead = true; mutex_lock(&gsm->mutex); + dlci = gsm->dlci[0]; if (dlci) { if (disc && dlci->state != DLCI_CLOSED) { gsm_dlci_begin_close(dlci); @@ -2508,8 +2509,10 @@ static void gsm_cleanup_mux(struct gsm_mux *gsm, bool disc) gsm->has_devices = false; } for (i = NUM_DLCI - 1; i >= 0; i--) - if (gsm->dlci[i]) + if (gsm->dlci[i]) { gsm_dlci_release(gsm->dlci[i]); + gsm->dlci[i] = NULL; + } mutex_unlock(&gsm->mutex); /* Now wipe the queues */ tty_ldisc_flush(gsm->tty); diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c index 774de67bb98f..1f18b417c8de 100644 --- a/drivers/tty/serial/qcom_geni_serial.c +++ b/drivers/tty/serial/qcom_geni_serial.c @@ -1530,7 +1530,7 @@ static int qcom_geni_serial_remove(struct platform_device *pdev) return 0; } -static int __maybe_unused qcom_geni_serial_sys_suspend(struct device *dev) +static int qcom_geni_serial_sys_suspend(struct device *dev) { struct qcom_geni_serial_port *port = dev_get_drvdata(dev); struct uart_port *uport = &port->uport; @@ -1547,7 +1547,7 @@ static int __maybe_unused qcom_geni_serial_sys_suspend(struct device *dev) return uart_suspend_port(private_data->drv, uport); } -static int __maybe_unused qcom_geni_serial_sys_resume(struct device *dev) +static int qcom_geni_serial_sys_resume(struct device *dev) { int ret; struct qcom_geni_serial_port *port = dev_get_drvdata(dev); @@ -1595,10 +1595,12 @@ static int qcom_geni_serial_sys_hib_resume(struct device *dev) } static const struct dev_pm_ops qcom_geni_serial_pm_ops = { - SET_SYSTEM_SLEEP_PM_OPS(qcom_geni_serial_sys_suspend, - qcom_geni_serial_sys_resume) - .restore = qcom_geni_serial_sys_hib_resume, - .thaw = qcom_geni_serial_sys_hib_resume, + .suspend = pm_sleep_ptr(qcom_geni_serial_sys_suspend), + .resume = pm_sleep_ptr(qcom_geni_serial_sys_resume), + .freeze = pm_sleep_ptr(qcom_geni_serial_sys_suspend), + .poweroff = pm_sleep_ptr(qcom_geni_serial_sys_suspend), + .restore = pm_sleep_ptr(qcom_geni_serial_sys_hib_resume), + .thaw = pm_sleep_ptr(qcom_geni_serial_sys_hib_resume), }; static const struct of_device_id qcom_geni_serial_match_table[] = { diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c index d5445084dfa7..64bad535f79f 100644 --- a/drivers/ufs/core/ufs-mcq.c +++ b/drivers/ufs/core/ufs-mcq.c @@ -20,12 +20,10 @@ #define MAX_QUEUE_SUP GENMASK(7, 0) #define UFS_MCQ_MIN_RW_QUEUES 2 #define UFS_MCQ_MIN_READ_QUEUES 0 -#define UFS_MCQ_NUM_DEV_CMD_QUEUES 1 #define UFS_MCQ_MIN_POLL_QUEUES 0 #define QUEUE_EN_OFFSET 31 #define QUEUE_ID_OFFSET 16 -#define MAX_DEV_CMD_ENTRIES 2 #define MCQ_CFG_MAC_MASK GENMASK(16, 8) #define MCQ_QCFG_SIZE 0x40 #define MCQ_ENTRY_SIZE_IN_DWORD 8 @@ -99,6 +97,7 @@ void ufshcd_mcq_config_mac(struct ufs_hba *hba, u32 max_active_cmds) val |= FIELD_PREP(MCQ_CFG_MAC_MASK, max_active_cmds); ufshcd_writel(hba, val, REG_UFS_MCQ_CFG); } +EXPORT_SYMBOL_GPL(ufshcd_mcq_config_mac); /** * ufshcd_mcq_req_to_hwq - find the hardware queue on which the @@ -115,8 +114,7 @@ struct ufs_hw_queue *ufshcd_mcq_req_to_hwq(struct ufs_hba *hba, u32 utag = blk_mq_unique_tag(req); u32 hwq = blk_mq_unique_tag_to_hwq(utag); - /* uhq[0] is used to serve device commands */ - return &hba->uhq[hwq + UFSHCD_MCQ_IO_QUEUE_OFFSET]; + return &hba->uhq[hwq]; } /** @@ -160,8 +158,7 @@ static int ufshcd_mcq_config_nr_queues(struct ufs_hba *hba) /* maxq is 0 based value */ hba_maxq = FIELD_GET(MAX_QUEUE_SUP, hba->mcq_capabilities) + 1; - tot_queues = UFS_MCQ_NUM_DEV_CMD_QUEUES + read_queues + poll_queues + - rw_queues; + tot_queues = read_queues + poll_queues + rw_queues; if (hba_maxq < tot_queues) { dev_err(hba->dev, "Total queues (%d) exceeds HC capacity (%d)\n", @@ -169,7 +166,7 @@ static int ufshcd_mcq_config_nr_queues(struct ufs_hba *hba) return -EOPNOTSUPP; } - rem = hba_maxq - UFS_MCQ_NUM_DEV_CMD_QUEUES; + rem = hba_maxq; if (rw_queues) { hba->nr_queues[HCTX_TYPE_DEFAULT] = rw_queues; @@ -195,7 +192,7 @@ static int ufshcd_mcq_config_nr_queues(struct ufs_hba *hba) for (i = 0; i < HCTX_MAX_TYPES; i++) host->nr_hw_queues += hba->nr_queues[i]; - hba->nr_hw_queues = host->nr_hw_queues + UFS_MCQ_NUM_DEV_CMD_QUEUES; + hba->nr_hw_queues = host->nr_hw_queues; return 0; } @@ -249,6 +246,7 @@ u32 ufshcd_mcq_read_cqis(struct ufs_hba *hba, int i) { return readl(mcq_opr_base(hba, OPR_CQIS, i) + REG_CQIS); } +EXPORT_SYMBOL_GPL(ufshcd_mcq_read_cqis); void ufshcd_mcq_write_cqis(struct ufs_hba *hba, u32 val, int i) { @@ -402,6 +400,7 @@ void ufshcd_mcq_make_queues_operational(struct ufs_hba *hba) MCQ_CFG_n(REG_SQATTR, i)); } } +EXPORT_SYMBOL_GPL(ufshcd_mcq_make_queues_operational); void ufshcd_mcq_enable_esi(struct ufs_hba *hba) { @@ -455,8 +454,6 @@ int ufshcd_mcq_init(struct ufs_hba *hba) /* The very first HW queue serves device commands */ hba->dev_cmd_queue = &hba->uhq[0]; - /* Give dev_cmd_queue the minimal number of entries */ - hba->dev_cmd_queue->max_entries = MAX_DEV_CMD_ENTRIES; host->host_tagset = 1; return 0; diff --git a/drivers/ufs/core/ufshcd-priv.h b/drivers/ufs/core/ufshcd-priv.h index 2541a52ecb8b..83cf0a47ec14 100644 --- a/drivers/ufs/core/ufshcd-priv.h +++ b/drivers/ufs/core/ufshcd-priv.h @@ -84,7 +84,6 @@ int ufshcd_try_to_abort_task(struct ufs_hba *hba, int tag); void ufshcd_release_scsi_cmd(struct ufs_hba *hba, struct ufshcd_lrb *lrbp); -#define UFSHCD_MCQ_IO_QUEUE_OFFSET 1 #define SD_ASCII_STD true #define SD_RAW false int ufshcd_read_string_desc(struct ufs_hba *hba, u8 desc_index, diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 25e7f7c2d83b..430ae3d2fc8a 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -294,7 +294,6 @@ static inline void ufshcd_add_delay_before_dme_cmd(struct ufs_hba *hba); static int ufshcd_host_reset_and_restore(struct ufs_hba *hba); static void ufshcd_resume_clkscaling(struct ufs_hba *hba); static void ufshcd_suspend_clkscaling(struct ufs_hba *hba); -static void __ufshcd_suspend_clkscaling(struct ufs_hba *hba); static int ufshcd_scale_clks(struct ufs_hba *hba, bool scale_up); static irqreturn_t ufshcd_intr(int irq, void *__hba); static int ufshcd_change_power_mode(struct ufs_hba *hba, @@ -1417,9 +1416,10 @@ static void ufshcd_clk_scaling_suspend_work(struct work_struct *work) return; } hba->clk_scaling.is_suspended = true; + hba->clk_scaling.window_start_t = 0; spin_unlock_irqrestore(hba->host->host_lock, irq_flags); - __ufshcd_suspend_clkscaling(hba); + devfreq_suspend_device(hba->devfreq); } static void ufshcd_clk_scaling_resume_work(struct work_struct *work) @@ -1464,6 +1464,13 @@ static int ufshcd_devfreq_target(struct device *dev, return 0; } + /* Skip scaling clock when clock scaling is suspended */ + if (hba->clk_scaling.is_suspended) { + spin_unlock_irqrestore(hba->host->host_lock, irq_flags); + dev_warn(hba->dev, "clock scaling is suspended, skip"); + return 0; + } + if (!hba->clk_scaling.active_reqs) sched_clk_scaling_suspend_work = true; @@ -1495,7 +1502,7 @@ static int ufshcd_devfreq_target(struct device *dev, ktime_to_us(ktime_sub(ktime_get(), start)), ret); out: - if (sched_clk_scaling_suspend_work) + if (sched_clk_scaling_suspend_work && !scale_up) queue_work(hba->clk_scaling.workq, &hba->clk_scaling.suspend_work); @@ -1601,16 +1608,6 @@ static void ufshcd_devfreq_remove(struct ufs_hba *hba) dev_pm_opp_remove(hba->dev, clki->max_freq); } -static void __ufshcd_suspend_clkscaling(struct ufs_hba *hba) -{ - unsigned long flags; - - devfreq_suspend_device(hba->devfreq); - spin_lock_irqsave(hba->host->host_lock, flags); - hba->clk_scaling.window_start_t = 0; - spin_unlock_irqrestore(hba->host->host_lock, flags); -} - static void ufshcd_suspend_clkscaling(struct ufs_hba *hba) { unsigned long flags; @@ -1623,11 +1620,12 @@ static void ufshcd_suspend_clkscaling(struct ufs_hba *hba) if (!hba->clk_scaling.is_suspended) { suspend = true; hba->clk_scaling.is_suspended = true; + hba->clk_scaling.window_start_t = 0; } spin_unlock_irqrestore(hba->host->host_lock, flags); if (suspend) - __ufshcd_suspend_clkscaling(hba); + devfreq_suspend_device(hba->devfreq); } static void ufshcd_resume_clkscaling(struct ufs_hba *hba) @@ -3166,7 +3164,7 @@ retry: * not trigger any race conditions. */ hba->dev_cmd.complete = NULL; - err = ufshcd_get_tr_ocs(lrbp, hba->dev_cmd.cqe); + err = ufshcd_get_tr_ocs(lrbp, NULL); if (!err) err = ufshcd_dev_cmd_completion(hba, lrbp); } else { @@ -3262,7 +3260,6 @@ static int ufshcd_exec_dev_cmd(struct ufs_hba *hba, goto out; hba->dev_cmd.complete = &wait; - hba->dev_cmd.cqe = NULL; ufshcd_add_query_upiu_trace(hba, UFS_QUERY_SEND, lrbp->ucd_req_ptr); @@ -5520,6 +5517,7 @@ void ufshcd_compl_one_cqe(struct ufs_hba *hba, int task_tag, { struct ufshcd_lrb *lrbp; struct scsi_cmnd *cmd; + enum utp_ocs ocs; lrbp = &hba->lrb[task_tag]; lrbp->compl_time_stamp = ktime_get(); @@ -5538,7 +5536,11 @@ void ufshcd_compl_one_cqe(struct ufs_hba *hba, int task_tag, lrbp->command_type == UTP_CMD_TYPE_UFS_STORAGE) { if (hba->dev_cmd.complete) { trace_android_vh_ufs_compl_command(hba, lrbp); - hba->dev_cmd.cqe = cqe; + if (cqe) { + ocs = le32_to_cpu(cqe->status) & MASK_OCS; + lrbp->utr_descriptor_ptr->header.dword_2 = + cpu_to_le32(ocs); + } ufshcd_add_command_trace(hba, task_tag, UFS_DEV_COMP); complete(hba->dev_cmd.complete); ufshcd_clk_scaling_update_busy(hba); @@ -5592,7 +5594,7 @@ static int ufshcd_poll(struct Scsi_Host *shost, unsigned int queue_num) struct ufs_hw_queue *hwq; if (is_mcq_enabled(hba)) { - hwq = &hba->uhq[queue_num + UFSHCD_MCQ_IO_QUEUE_OFFSET]; + hwq = &hba->uhq[queue_num]; return ufshcd_mcq_poll_cqe_lock(hba, hwq); } @@ -5646,7 +5648,7 @@ static void ufshcd_mcq_compl_pending_transfer(struct ufs_hba *hba, utag = blk_mq_unique_tag(scsi_cmd_to_rq(cmd)); hwq_num = blk_mq_unique_tag_to_hwq(utag); - hwq = &hba->uhq[hwq_num + UFSHCD_MCQ_IO_QUEUE_OFFSET]; + hwq = &hba->uhq[hwq_num]; if (force_compl) { ufshcd_mcq_compl_all_cqes_lock(hba, hwq); diff --git a/drivers/ufs/host/ufs-mediatek.c b/drivers/ufs/host/ufs-mediatek.c index 1541917939ff..603183082a56 100644 --- a/drivers/ufs/host/ufs-mediatek.c +++ b/drivers/ufs/host/ufs-mediatek.c @@ -27,8 +27,14 @@ #include <ufs/unipro.h> #include "ufs-mediatek.h" +static int ufs_mtk_config_mcq(struct ufs_hba *hba, bool irq); + #define CREATE_TRACE_POINTS #include "ufs-mediatek-trace.h" +#undef CREATE_TRACE_POINTS + +#define MAX_SUPP_MAC 64 +#define MCQ_QUEUE_OFFSET(c) ((((c) >> 16) & 0xFF) * 0x200) static const struct ufs_dev_quirk ufs_mtk_dev_fixups[] = { { .wmanufacturerid = UFS_ANY_VENDOR, @@ -843,6 +849,38 @@ static void ufs_mtk_vreg_fix_vccqx(struct ufs_hba *hba) } } +static void ufs_mtk_init_mcq_irq(struct ufs_hba *hba) +{ + struct ufs_mtk_host *host = ufshcd_get_variant(hba); + struct platform_device *pdev; + int i; + int irq; + + host->mcq_nr_intr = UFSHCD_MAX_Q_NR; + pdev = container_of(hba->dev, struct platform_device, dev); + + for (i = 0; i < host->mcq_nr_intr; i++) { + /* irq index 0 is legacy irq, sq/cq irq start from index 1 */ + irq = platform_get_irq(pdev, i + 1); + if (irq < 0) { + host->mcq_intr_info[i].irq = MTK_MCQ_INVALID_IRQ; + dev_err(hba->dev, "get platform mcq irq fail: %d\n", i); + goto failed; + } + host->mcq_intr_info[i].hba = hba; + host->mcq_intr_info[i].irq = irq; + dev_info(hba->dev, "get platform mcq irq: %d, %d\n", i, irq); + } + + return; +failed: + /* invalidate irq info */ + for (i = 0; i < host->mcq_nr_intr; i++) + host->mcq_intr_info[i].irq = MTK_MCQ_INVALID_IRQ; + + host->mcq_nr_intr = 0; +} + /** * ufs_mtk_init - find other essential mmio bases * @hba: host controller instance @@ -879,6 +917,8 @@ static int ufs_mtk_init(struct ufs_hba *hba) /* Initialize host capability */ ufs_mtk_init_host_caps(hba); + ufs_mtk_init_mcq_irq(hba); + err = ufs_mtk_bind_mphy(hba); if (err) goto out_variant_clear; @@ -1176,7 +1216,17 @@ static int ufs_mtk_link_set_hpm(struct ufs_hba *hba) else return err; - err = ufshcd_make_hba_operational(hba); + if (!hba->mcq_enabled) { + err = ufshcd_make_hba_operational(hba); + } else { + ufs_mtk_config_mcq(hba, false); + ufshcd_mcq_make_queues_operational(hba); + ufshcd_mcq_config_mac(hba, hba->nutrs); + /* Enable MCQ mode */ + ufshcd_writel(hba, ufshcd_readl(hba, REG_UFS_MEM_CFG) | 0x1, + REG_UFS_MEM_CFG); + } + if (err) return err; @@ -1500,6 +1550,121 @@ static int ufs_mtk_clk_scale_notify(struct ufs_hba *hba, bool scale_up, return 0; } +static int ufs_mtk_get_hba_mac(struct ufs_hba *hba) +{ + return MAX_SUPP_MAC; +} + +static int ufs_mtk_op_runtime_config(struct ufs_hba *hba) +{ + struct ufshcd_mcq_opr_info_t *opr; + int i; + + hba->mcq_opr[OPR_SQD].offset = REG_UFS_MTK_SQD; + hba->mcq_opr[OPR_SQIS].offset = REG_UFS_MTK_SQIS; + hba->mcq_opr[OPR_CQD].offset = REG_UFS_MTK_CQD; + hba->mcq_opr[OPR_CQIS].offset = REG_UFS_MTK_CQIS; + + for (i = 0; i < OPR_MAX; i++) { + opr = &hba->mcq_opr[i]; + opr->stride = REG_UFS_MCQ_STRIDE; + opr->base = hba->mmio_base + opr->offset; + } + + return 0; +} + +static int ufs_mtk_mcq_config_resource(struct ufs_hba *hba) +{ + struct ufs_mtk_host *host = ufshcd_get_variant(hba); + + /* fail mcq initialization if interrupt is not filled properly */ + if (!host->mcq_nr_intr) { + dev_info(hba->dev, "IRQs not ready. MCQ disabled."); + return -EINVAL; + } + + hba->mcq_base = hba->mmio_base + MCQ_QUEUE_OFFSET(hba->mcq_capabilities); + return 0; +} + +static irqreturn_t ufs_mtk_mcq_intr(int irq, void *__intr_info) +{ + struct ufs_mtk_mcq_intr_info *mcq_intr_info = __intr_info; + struct ufs_hba *hba = mcq_intr_info->hba; + struct ufs_hw_queue *hwq; + u32 events; + int qid = mcq_intr_info->qid; + + hwq = &hba->uhq[qid]; + + events = ufshcd_mcq_read_cqis(hba, qid); + if (events) + ufshcd_mcq_write_cqis(hba, events, qid); + + if (events & UFSHCD_MCQ_CQIS_TAIL_ENT_PUSH_STS) + ufshcd_mcq_poll_cqe_lock(hba, hwq); + + return IRQ_HANDLED; +} + +static int ufs_mtk_config_mcq_irq(struct ufs_hba *hba) +{ + struct ufs_mtk_host *host = ufshcd_get_variant(hba); + u32 irq, i; + int ret; + + for (i = 0; i < host->mcq_nr_intr; i++) { + irq = host->mcq_intr_info[i].irq; + if (irq == MTK_MCQ_INVALID_IRQ) { + dev_err(hba->dev, "invalid irq. %d\n", i); + return -ENOPARAM; + } + + host->mcq_intr_info[i].qid = i; + ret = devm_request_irq(hba->dev, irq, ufs_mtk_mcq_intr, 0, UFSHCD, + &host->mcq_intr_info[i]); + + dev_dbg(hba->dev, "request irq %d intr %s\n", irq, ret ? "failed" : ""); + + if (ret) { + dev_err(hba->dev, "Cannot request irq %d\n", ret); + return ret; + } + } + + return 0; +} + +static int ufs_mtk_config_mcq(struct ufs_hba *hba, bool irq) +{ + struct ufs_mtk_host *host = ufshcd_get_variant(hba); + int ret = 0; + + if (!host->mcq_set_intr) { + /* Disable irq option register */ + ufshcd_rmwl(hba, MCQ_INTR_EN_MSK, 0, REG_UFS_MMIO_OPT_CTRL_0); + + if (irq) { + ret = ufs_mtk_config_mcq_irq(hba); + if (ret) + return ret; + } + + host->mcq_set_intr = true; + } + + ufshcd_rmwl(hba, MCQ_AH8, MCQ_AH8, REG_UFS_MMIO_OPT_CTRL_0); + ufshcd_rmwl(hba, MCQ_INTR_EN_MSK, MCQ_MULTI_INTR_EN, REG_UFS_MMIO_OPT_CTRL_0); + + return 0; +} + +static int ufs_mtk_config_esi(struct ufs_hba *hba) +{ + return ufs_mtk_config_mcq(hba, true); +} + /* * struct ufs_hba_mtk_vops - UFS MTK specific variant operations * @@ -1523,6 +1688,11 @@ static const struct ufs_hba_variant_ops ufs_hba_mtk_vops = { .event_notify = ufs_mtk_event_notify, .config_scaling_param = ufs_mtk_config_scaling_param, .clk_scale_notify = ufs_mtk_clk_scale_notify, + /* mcq vops */ + .get_hba_mac = ufs_mtk_get_hba_mac, + .op_runtime_config = ufs_mtk_op_runtime_config, + .mcq_config_resource = ufs_mtk_mcq_config_resource, + .config_esi = ufs_mtk_config_esi, }; /** @@ -1569,7 +1739,7 @@ skip_reset: out: if (err) - dev_info(dev, "probe failed %d\n", err); + dev_err(dev, "probe failed %d\n", err); of_node_put(reset_node); return err; diff --git a/drivers/ufs/host/ufs-mediatek.h b/drivers/ufs/host/ufs-mediatek.h index 2fc6d7b87694..f76e80d91729 100644 --- a/drivers/ufs/host/ufs-mediatek.h +++ b/drivers/ufs/host/ufs-mediatek.h @@ -11,10 +11,26 @@ #include <linux/soc/mediatek/mtk_sip_svc.h> /* + * MCQ define and struct + */ +#define UFSHCD_MAX_Q_NR 8 +#define MTK_MCQ_INVALID_IRQ 0xFFFF + +/* REG_UFS_MMIO_OPT_CTRL_0 160h */ +#define EHS_EN BIT(0) +#define PFM_IMPV BIT(1) +#define MCQ_MULTI_INTR_EN BIT(2) +#define MCQ_CMB_INTR_EN BIT(3) +#define MCQ_AH8 BIT(4) + +#define MCQ_INTR_EN_MSK (MCQ_MULTI_INTR_EN | MCQ_CMB_INTR_EN) + +/* * Vendor specific UFSHCI Registers */ #define REG_UFS_XOUFS_CTRL 0x140 #define REG_UFS_REFCLK_CTRL 0x144 +#define REG_UFS_MMIO_OPT_CTRL_0 0x160 #define REG_UFS_EXTREG 0x2100 #define REG_UFS_MPHYCTRL 0x2200 #define REG_UFS_MTK_IP_VER 0x2240 @@ -26,6 +42,13 @@ #define REG_UFS_DEBUG_SEL_B2 0x22D8 #define REG_UFS_DEBUG_SEL_B3 0x22DC +#define REG_UFS_MTK_SQD 0x2800 +#define REG_UFS_MTK_SQIS 0x2814 +#define REG_UFS_MTK_CQD 0x281C +#define REG_UFS_MTK_CQIS 0x2824 + +#define REG_UFS_MCQ_STRIDE 0x30 + /* * Ref-clk control * @@ -136,6 +159,12 @@ struct ufs_mtk_hw_ver { u8 major; }; +struct ufs_mtk_mcq_intr_info { + struct ufs_hba *hba; + u32 irq; + u8 qid; +}; + struct ufs_mtk_host { struct phy *mphy; struct pm_qos_request pm_qos_req; @@ -155,6 +184,10 @@ struct ufs_mtk_host { u16 ref_clk_ungating_wait_us; u16 ref_clk_gating_wait_us; u32 ip_ver; + + bool mcq_set_intr; + int mcq_nr_intr; + struct ufs_mtk_mcq_intr_info mcq_intr_info[UFSHCD_MAX_Q_NR]; }; /* diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 58e7d1e4430f..a739403a9e45 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -3098,6 +3098,48 @@ done: return status; } +/* + * hub_port_stop_enumerate - stop USB enumeration or ignore port events + * @hub: target hub + * @port1: port num of the port + * @retries: port retries number of hub_port_init() + * + * Return: + * true: ignore port actions/events or give up connection attempts. + * false: keep original behavior. + * + * This function will be based on retries to check whether the port which is + * marked with early_stop attribute would stop enumeration or ignore events. + * + * Note: + * This function didn't change anything if early_stop is not set, and it will + * prevent all connection attempts when early_stop is set and the attempts of + * the port are more than 1. + */ +static bool hub_port_stop_enumerate(struct usb_hub *hub, int port1, int retries) +{ + struct usb_port *port_dev = hub->ports[port1 - 1]; + + if (port_dev->early_stop) { + if (port_dev->ignore_event) + return true; + + /* + * We want unsuccessful attempts to fail quickly. + * Since some devices may need one failure during + * port initialization, we allow two tries but no + * more. + */ + if (retries < 2) + return false; + + port_dev->ignore_event = 1; + } else + port_dev->ignore_event = 0; + + return port_dev->ignore_event; +} + /* Check if a port is power on */ int usb_port_is_power_on(struct usb_hub *hub, unsigned int portstatus) { @@ -4813,6 +4855,11 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, do_new_scheme = use_new_scheme(udev, retry_counter, port_dev); for (retries = 0; retries < GET_DESCRIPTOR_TRIES; (++retries, msleep(100))) { + if (hub_port_stop_enumerate(hub, port1, retries)) { + retval = -ENODEV; + break; + } + if (do_new_scheme) { struct usb_device_descriptor *buf; int r = 0; @@ -5263,6 +5310,11 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus, status = 0; for (i = 0; i < PORT_INIT_TRIES; i++) { + if (hub_port_stop_enumerate(hub, port1, i)) { + status = -ENODEV; + break; + } + usb_lock_port(port_dev); mutex_lock(hcd->address0_mutex); retry_locked = true; @@ -5631,6 +5683,10 @@ static void port_event(struct usb_hub *hub, int port1) if (!pm_runtime_active(&port_dev->dev)) return; + /* skip port actions if ignore_event and early_stop are true */ + if (port_dev->ignore_event && port_dev->early_stop) + return; + if (hub_handle_remote_wakeup(hub, port1, portstatus, portchange)) connect_change = 1; @@ -5954,6 +6010,10 @@ static int usb_reset_and_verify_device(struct usb_device *udev) mutex_lock(hcd->address0_mutex); for (i = 0; i < PORT_INIT_TRIES; ++i) { + if (hub_port_stop_enumerate(parent_hub, port1, i)) { + ret = -ENODEV; + break; + } /* ep0 maxpacket size may change; let the HCD know about it. * Other endpoints will be handled by re-enumeration. */ diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h index f244cc475e3e..37897afd1b64 100644 --- a/drivers/usb/core/hub.h +++ b/drivers/usb/core/hub.h @@ -92,6 +92,8 @@ struct usb_hub { * @is_superspeed cache super-speed status * @usb3_lpm_u1_permit: whether USB3 U1 LPM is permitted. * @usb3_lpm_u2_permit: whether USB3 U2 LPM is permitted. + * @early_stop: whether port initialization will be stopped earlier. + * @ignore_event: whether events of the port are ignored. */ struct usb_port { struct usb_device *child; @@ -107,6 +109,8 @@ struct usb_port { u32 over_current_count; u8 portnum; u32 quirks; + unsigned int early_stop:1; + unsigned int ignore_event:1; unsigned int is_superspeed:1; unsigned int usb3_lpm_u1_permit:1; unsigned int usb3_lpm_u2_permit:1; diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c index e458ed17c7a1..b2cad06885b5 100644 --- a/drivers/usb/core/port.c +++ b/drivers/usb/core/port.c @@ -17,6 +17,32 @@ static int usb_port_block_power_off; static const struct attribute_group *port_dev_group[]; +static ssize_t early_stop_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct usb_port *port_dev = to_usb_port(dev); + + return sysfs_emit(buf, "%s\n", port_dev->early_stop ? "yes" : "no"); +} + +static ssize_t early_stop_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + struct usb_port *port_dev = to_usb_port(dev); + bool value; + + if (kstrtobool(buf, &value)) + return -EINVAL; + + if (value) + port_dev->early_stop = 1; + else + port_dev->early_stop = 0; + + return count; +} +static DEVICE_ATTR_RW(early_stop); + static ssize_t disable_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -247,6 +273,7 @@ static struct attribute *port_dev_attrs[] = { &dev_attr_quirks.attr, &dev_attr_over_current_count.attr, &dev_attr_disable.attr, + &dev_attr_early_stop.attr, NULL, }; diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index a3e39bacbdd7..87bcd569fbb4 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -2645,13 +2645,16 @@ static int dwc3_gadget_pullup(struct usb_gadget *g, int is_on) * device-initiated disconnect requires a core soft reset * (DCTL.CSftRst) before enabling the run/stop bit. */ - dwc3_core_soft_reset(dwc); + ret = dwc3_core_soft_reset(dwc); + if (ret) + goto done; dwc3_event_buffers_setup(dwc); __dwc3_gadget_start(dwc); ret = dwc3_gadget_run_stop(dwc, true); } +done: pm_runtime_put(dwc->dev); return ret; diff --git a/drivers/usb/gadget/function/u_serial.c b/drivers/usb/gadget/function/u_serial.c index db6fd0238d4b..8673b9a5ab53 100644 --- a/drivers/usb/gadget/function/u_serial.c +++ b/drivers/usb/gadget/function/u_serial.c @@ -538,16 +538,20 @@ static int gs_alloc_requests(struct usb_ep *ep, struct list_head *head, static int gs_start_io(struct gs_port *port) { struct list_head *head = &port->read_pool; - struct usb_ep *ep = port->port_usb->out; + struct usb_ep *ep; int status; unsigned started; + if (!port->port_usb || !port->port.tty) + return -EIO; + /* Allocate RX and TX I/O buffers. We can't easily do this much * earlier (with GFP_KERNEL) because the requests are coupled to * endpoints, as are the packet sizes we'll be using. Different * configurations may use different endpoints with a given port; * and high speed vs full speed changes packet sizes too. */ + ep = port->port_usb->out; status = gs_alloc_requests(ep, head, gs_read_complete, &port->read_allocated); if (status) @@ -1419,10 +1423,19 @@ EXPORT_SYMBOL_GPL(gserial_disconnect); void gserial_suspend(struct gserial *gser) { - struct gs_port *port = gser->ioport; + struct gs_port *port; unsigned long flags; - spin_lock_irqsave(&port->port_lock, flags); + spin_lock_irqsave(&serial_port_lock, flags); + port = gser->ioport; + + if (!port) { + spin_unlock_irqrestore(&serial_port_lock, flags); + return; + } + + spin_lock(&port->port_lock); + spin_unlock(&serial_port_lock); port->suspended = true; spin_unlock_irqrestore(&port->port_lock, flags); } diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c index bf9878e1a72a..ed2129be43aa 100644 --- a/drivers/usb/gadget/udc/core.c +++ b/drivers/usb/gadget/udc/core.c @@ -37,6 +37,14 @@ static struct bus_type gadget_bus_type; * @vbus: for udcs who care about vbus status, this value is real vbus status; * for udcs who do not care about vbus status, this value is always true * @started: the UDC's started state. True if the UDC had started. + * @allow_connect: Indicates whether UDC is allowed to be pulled up. + * Set/cleared by gadget_(un)bind_driver() after gadget driver is bound or + * unbound. + * @connect_lock: protects udc->started, gadget->connect, + * gadget->allow_connect and gadget->deactivate. The routines + * usb_gadget_connect_locked(), usb_gadget_disconnect_locked(), + * usb_udc_connect_control_locked(), usb_gadget_udc_start_locked() and + * usb_gadget_udc_stop_locked() are called with this lock held. * * This represents the internal data structure which is used by the UDC-class * to hold information about udc driver and gadget together. @@ -48,6 +56,9 @@ struct usb_udc { struct list_head list; bool vbus; bool started; + bool allow_connect; + struct work_struct vbus_work; + struct mutex connect_lock; }; static struct class *udc_class; @@ -660,17 +671,8 @@ out: } EXPORT_SYMBOL_GPL(usb_gadget_vbus_disconnect); -/** - * usb_gadget_connect - software-controlled connect to USB host - * @gadget:the peripheral being connected - * - * Enables the D+ (or potentially D-) pullup. The host will start - * enumerating this gadget when the pullup is active and a VBUS session - * is active (the link is powered). - * - * Returns zero on success, else negative errno. - */ -int usb_gadget_connect(struct usb_gadget *gadget) +static int usb_gadget_connect_locked(struct usb_gadget *gadget) + __must_hold(&gadget->udc->connect_lock) { int ret = 0; @@ -679,10 +681,12 @@ int usb_gadget_connect(struct usb_gadget *gadget) goto out; } - if (gadget->deactivated) { + if (gadget->deactivated || !gadget->udc->allow_connect || !gadget->udc->started) { /* - * If gadget is deactivated we only save new state. - * Gadget will be connected automatically after activation. + * If the gadget isn't usable (because it is deactivated, + * unbound, or not yet started), we only save the new state. + * The gadget will be connected automatically when it is + * activated/bound/started. */ gadget->connected = true; goto out; @@ -697,22 +701,31 @@ out: return ret; } -EXPORT_SYMBOL_GPL(usb_gadget_connect); /** - * usb_gadget_disconnect - software-controlled disconnect from USB host - * @gadget:the peripheral being disconnected - * - * Disables the D+ (or potentially D-) pullup, which the host may see - * as a disconnect (when a VBUS session is active). Not all systems - * support software pullup controls. + * usb_gadget_connect - software-controlled connect to USB host + * @gadget:the peripheral being connected * - * Following a successful disconnect, invoke the ->disconnect() callback - * for the current gadget driver so that UDC drivers don't need to. + * Enables the D+ (or potentially D-) pullup. The host will start + * enumerating this gadget when the pullup is active and a VBUS session + * is active (the link is powered). * * Returns zero on success, else negative errno. */ -int usb_gadget_disconnect(struct usb_gadget *gadget) +int usb_gadget_connect(struct usb_gadget *gadget) +{ + int ret; + + mutex_lock(&gadget->udc->connect_lock); + ret = usb_gadget_connect_locked(gadget); + mutex_unlock(&gadget->udc->connect_lock); + + return ret; +} +EXPORT_SYMBOL_GPL(usb_gadget_connect); + +static int usb_gadget_disconnect_locked(struct usb_gadget *gadget) + __must_hold(&gadget->udc->connect_lock) { int ret = 0; @@ -724,7 +737,7 @@ int usb_gadget_disconnect(struct usb_gadget *gadget) if (!gadget->connected) goto out; - if (gadget->deactivated) { + if (gadget->deactivated || !gadget->udc->started) { /* * If gadget is deactivated we only save new state. * Gadget will stay disconnected after activation. @@ -747,6 +760,30 @@ out: return ret; } + +/** + * usb_gadget_disconnect - software-controlled disconnect from USB host + * @gadget:the peripheral being disconnected + * + * Disables the D+ (or potentially D-) pullup, which the host may see + * as a disconnect (when a VBUS session is active). Not all systems + * support software pullup controls. + * + * Following a successful disconnect, invoke the ->disconnect() callback + * for the current gadget driver so that UDC drivers don't need to. + * + * Returns zero on success, else negative errno. + */ +int usb_gadget_disconnect(struct usb_gadget *gadget) +{ + int ret; + + mutex_lock(&gadget->udc->connect_lock); + ret = usb_gadget_disconnect_locked(gadget); + mutex_unlock(&gadget->udc->connect_lock); + + return ret; +} EXPORT_SYMBOL_GPL(usb_gadget_disconnect); /** @@ -758,19 +795,23 @@ EXPORT_SYMBOL_GPL(usb_gadget_disconnect); * usb_gadget_activate() is called. For example, user mode components may * need to be activated before the system can talk to hosts. * + * This routine may sleep; it must not be called in interrupt context + * (such as from within a gadget driver's disconnect() callback). + * * Returns zero on success, else negative errno. */ int usb_gadget_deactivate(struct usb_gadget *gadget) { int ret = 0; + mutex_lock(&gadget->udc->connect_lock); if (gadget->deactivated) - goto out; + goto unlock; if (gadget->connected) { - ret = usb_gadget_disconnect(gadget); + ret = usb_gadget_disconnect_locked(gadget); if (ret) - goto out; + goto unlock; /* * If gadget was being connected before deactivation, we want @@ -780,7 +821,8 @@ int usb_gadget_deactivate(struct usb_gadget *gadget) } gadget->deactivated = true; -out: +unlock: + mutex_unlock(&gadget->udc->connect_lock); trace_usb_gadget_deactivate(gadget, ret); return ret; @@ -794,14 +836,17 @@ EXPORT_SYMBOL_GPL(usb_gadget_deactivate); * This routine activates gadget which was previously deactivated with * usb_gadget_deactivate() call. It calls usb_gadget_connect() if needed. * + * This routine may sleep; it must not be called in interrupt context. + * * Returns zero on success, else negative errno. */ int usb_gadget_activate(struct usb_gadget *gadget) { int ret = 0; + mutex_lock(&gadget->udc->connect_lock); if (!gadget->deactivated) - goto out; + goto unlock; gadget->deactivated = false; @@ -810,9 +855,11 @@ int usb_gadget_activate(struct usb_gadget *gadget) * while it was being deactivated, we call usb_gadget_connect(). */ if (gadget->connected) - ret = usb_gadget_connect(gadget); + ret = usb_gadget_connect_locked(gadget); + mutex_unlock(&gadget->udc->connect_lock); -out: +unlock: + mutex_unlock(&gadget->udc->connect_lock); trace_usb_gadget_activate(gadget, ret); return ret; @@ -1051,12 +1098,22 @@ EXPORT_SYMBOL_GPL(usb_gadget_set_state); /* ------------------------------------------------------------------------- */ -static void usb_udc_connect_control(struct usb_udc *udc) +/* Acquire connect_lock before calling this function. */ +static void usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock) { if (udc->vbus) - usb_gadget_connect(udc->gadget); + usb_gadget_connect_locked(udc->gadget); else - usb_gadget_disconnect(udc->gadget); + usb_gadget_disconnect_locked(udc->gadget); +} + +static void vbus_event_work(struct work_struct *work) +{ + struct usb_udc *udc = container_of(work, struct usb_udc, vbus_work); + + mutex_lock(&udc->connect_lock); + usb_udc_connect_control_locked(udc); + mutex_unlock(&udc->connect_lock); } /** @@ -1067,6 +1124,14 @@ static void usb_udc_connect_control(struct usb_udc *udc) * * The udc driver calls it when it wants to connect or disconnect gadget * according to vbus status. + * + * This function can be invoked from interrupt context by irq handlers of + * the gadget drivers, however, usb_udc_connect_control() has to run in + * non-atomic context due to the following: + * a. Some of the gadget driver implementations expect the ->pullup + * callback to be invoked in non-atomic context. + * b. usb_gadget_disconnect() acquires udc_lock which is a mutex. + * Hence offload invocation of usb_udc_connect_control() to workqueue. */ void usb_udc_vbus_handler(struct usb_gadget *gadget, bool status) { @@ -1074,7 +1139,7 @@ void usb_udc_vbus_handler(struct usb_gadget *gadget, bool status) if (udc) { udc->vbus = status; - usb_udc_connect_control(udc); + schedule_work(&udc->vbus_work); } } EXPORT_SYMBOL_GPL(usb_udc_vbus_handler); @@ -1097,7 +1162,7 @@ void usb_gadget_udc_reset(struct usb_gadget *gadget, EXPORT_SYMBOL_GPL(usb_gadget_udc_reset); /** - * usb_gadget_udc_start - tells usb device controller to start up + * usb_gadget_udc_start_locked - tells usb device controller to start up * @udc: The UDC to be started * * This call is issued by the UDC Class driver when it's about @@ -1108,8 +1173,11 @@ EXPORT_SYMBOL_GPL(usb_gadget_udc_reset); * necessary to have it powered on. * * Returns zero on success, else negative errno. + * + * Caller should acquire connect_lock before invoking this function. */ -static inline int usb_gadget_udc_start(struct usb_udc *udc) +static inline int usb_gadget_udc_start_locked(struct usb_udc *udc) + __must_hold(&udc->connect_lock) { int ret; @@ -1126,7 +1194,7 @@ static inline int usb_gadget_udc_start(struct usb_udc *udc) } /** - * usb_gadget_udc_stop - tells usb device controller we don't need it anymore + * usb_gadget_udc_stop_locked - tells usb device controller we don't need it anymore * @udc: The UDC to be stopped * * This call is issued by the UDC Class driver after calling @@ -1135,8 +1203,11 @@ static inline int usb_gadget_udc_start(struct usb_udc *udc) * The details are implementation specific, but it can go as * far as powering off UDC completely and disable its data * line pullups. + * + * Caller should acquire connect lock before invoking this function. */ -static inline void usb_gadget_udc_stop(struct usb_udc *udc) +static inline void usb_gadget_udc_stop_locked(struct usb_udc *udc) + __must_hold(&udc->connect_lock) { if (!udc->started) { dev_err(&udc->dev, "UDC had already stopped\n"); @@ -1295,12 +1366,14 @@ int usb_add_gadget(struct usb_gadget *gadget) udc->gadget = gadget; gadget->udc = udc; + mutex_init(&udc->connect_lock); udc->started = false; mutex_lock(&udc_lock); list_add_tail(&udc->list, &udc_list); mutex_unlock(&udc_lock); + INIT_WORK(&udc->vbus_work, vbus_event_work); ret = device_add(&udc->dev); if (ret) @@ -1432,6 +1505,7 @@ void usb_del_gadget(struct usb_gadget *gadget) flush_work(&gadget->work); device_del(&gadget->dev); ida_free(&gadget_id_numbers, gadget->id_number); + cancel_work_sync(&udc->vbus_work); device_unregister(&udc->dev); } EXPORT_SYMBOL_GPL(usb_del_gadget); @@ -1496,11 +1570,16 @@ static int gadget_bind_driver(struct device *dev) if (ret) goto err_bind; - ret = usb_gadget_udc_start(udc); - if (ret) + mutex_lock(&udc->connect_lock); + ret = usb_gadget_udc_start_locked(udc); + if (ret) { + mutex_unlock(&udc->connect_lock); goto err_start; + } usb_gadget_enable_async_callbacks(udc); - usb_udc_connect_control(udc); + udc->allow_connect = true; + usb_udc_connect_control_locked(udc); + mutex_unlock(&udc->connect_lock); kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); return 0; @@ -1531,12 +1610,20 @@ static void gadget_unbind_driver(struct device *dev) kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); - usb_gadget_disconnect(gadget); + udc->allow_connect = false; + cancel_work_sync(&udc->vbus_work); + mutex_lock(&udc->connect_lock); + usb_gadget_disconnect_locked(gadget); usb_gadget_disable_async_callbacks(udc); if (gadget->irq) synchronize_irq(gadget->irq); + mutex_unlock(&udc->connect_lock); + udc->driver->unbind(gadget); - usb_gadget_udc_stop(udc); + + mutex_lock(&udc->connect_lock); + usb_gadget_udc_stop_locked(udc); + mutex_unlock(&udc->connect_lock); mutex_lock(&udc_lock); driver->is_bound = false; @@ -1622,11 +1709,15 @@ static ssize_t soft_connect_store(struct device *dev, } if (sysfs_streq(buf, "connect")) { - usb_gadget_udc_start(udc); - usb_gadget_connect(udc->gadget); + mutex_lock(&udc->connect_lock); + usb_gadget_udc_start_locked(udc); + usb_gadget_connect_locked(udc->gadget); + mutex_unlock(&udc->connect_lock); } else if (sysfs_streq(buf, "disconnect")) { - usb_gadget_disconnect(udc->gadget); - usb_gadget_udc_stop(udc); + mutex_lock(&udc->connect_lock); + usb_gadget_disconnect_locked(udc->gadget); + usb_gadget_udc_stop_locked(udc); + mutex_unlock(&udc->connect_lock); } else { dev_err(dev, "unsupported command '%s'\n", buf); ret = -EINVAL; diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c index 615ba0a6fbee..32c9e369216c 100644 --- a/drivers/usb/gadget/udc/renesas_usb3.c +++ b/drivers/usb/gadget/udc/renesas_usb3.c @@ -2596,6 +2596,7 @@ static int renesas_usb3_remove(struct platform_device *pdev) debugfs_remove_recursive(usb3->dentry); device_remove_file(&pdev->dev, &dev_attr_role); + cancel_work_sync(&usb3->role_work); usb_role_switch_unregister(usb3->role_sw); usb_del_gadget_udc(&usb3->gadget); diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index a1930db0da1c..68674b19f15d 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -755,10 +755,14 @@ restart: /* normal [4.15.1.2] or error [4.15.1.1] completion */ if (likely ((status & (STS_INT|STS_ERR)) != 0)) { - if (likely ((status & STS_ERR) == 0)) + if (likely ((status & STS_ERR) == 0)) { INCR(ehci->stats.normal); - else + } else { + /* Force to check port status */ + if (ehci->has_fsl_port_bug) + status |= STS_PCD; INCR(ehci->stats.error); + } bh = 1; } diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c index efe30e3be22f..1aee392e8492 100644 --- a/drivers/usb/host/ehci-hub.c +++ b/drivers/usb/host/ehci-hub.c @@ -674,7 +674,8 @@ ehci_hub_status_data (struct usb_hcd *hcd, char *buf) if ((temp & mask) != 0 || test_bit(i, &ehci->port_c_suspend) || (ehci->reset_done[i] && time_after_eq( - jiffies, ehci->reset_done[i]))) { + jiffies, ehci->reset_done[i])) + || ehci_has_ci_pec_bug(ehci, temp)) { if (i < 7) buf [0] |= 1 << (i + 1); else @@ -875,6 +876,13 @@ int ehci_hub_control( if (temp & PORT_PEC) status |= USB_PORT_STAT_C_ENABLE << 16; + if (ehci_has_ci_pec_bug(ehci, temp)) { + status |= USB_PORT_STAT_C_ENABLE << 16; + ehci_info(ehci, + "PE is cleared by HW port:%d PORTSC:%08x\n", + wIndex + 1, temp); + } + if ((temp & PORT_OCC) && (!ignore_oc && !ehci->spurious_oc)){ status |= USB_PORT_STAT_C_OVERCURRENT << 16; diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c index bd542b6fc46b..7e834587e7de 100644 --- a/drivers/usb/host/ehci-sched.c +++ b/drivers/usb/host/ehci-sched.c @@ -490,13 +490,14 @@ static int tt_no_collision( static void enable_periodic(struct ehci_hcd *ehci) { if (ehci->periodic_count++) - return; + goto out; /* Stop waiting to turn off the periodic schedule */ ehci->enabled_hrtimer_events &= ~BIT(EHCI_HRTIMER_DISABLE_PERIODIC); /* Don't start the schedule until PSS is 0 */ ehci_poll_PSS(ehci); +out: turn_on_io_watchdog(ehci); } diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h index ad3f13a3eaf1..4ee0d34323cf 100644 --- a/drivers/usb/host/ehci.h +++ b/drivers/usb/host/ehci.h @@ -708,6 +708,15 @@ ehci_port_speed(struct ehci_hcd *ehci, unsigned int portsc) #define ehci_has_fsl_susp_errata(e) ((e)->has_fsl_susp_errata) /* + * Some Freescale/NXP processors using ChipIdea IP have a bug in which + * disabling the port (PE is cleared) does not cause PEC to be asserted + * when frame babble is detected. + */ +#define ehci_has_ci_pec_bug(e, portsc) \ + ((e)->has_fsl_port_bug && ((e)->command & CMD_PSE) \ + && !(portsc & PORT_PEC) && !(portsc & PORT_PE)) + +/* * While most USB host controllers implement their registers in * little-endian format, a minority (celleb companion chip) implement * them in big endian format. diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index 2ef716fc3212..3829e1be0383 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -188,11 +188,10 @@ EXPORT_SYMBOL_GPL(xhci_plat_register_vendor_ops); static int xhci_vendor_init(struct xhci_hcd *xhci) { - struct xhci_vendor_ops *ops = xhci_vendor_get_ops(xhci); - struct xhci_plat_priv *priv = xhci_to_priv(xhci); + struct xhci_vendor_ops *ops = NULL; if (xhci_plat_vendor_overwrite.vendor_ops) - ops = priv->vendor_ops = xhci_plat_vendor_overwrite.vendor_ops; + ops = xhci->vendor_ops = xhci_plat_vendor_overwrite.vendor_ops; if (ops && ops->vendor_init) return ops->vendor_init(xhci); @@ -202,12 +201,11 @@ static int xhci_vendor_init(struct xhci_hcd *xhci) static void xhci_vendor_cleanup(struct xhci_hcd *xhci) { struct xhci_vendor_ops *ops = xhci_vendor_get_ops(xhci); - struct xhci_plat_priv *priv = xhci_to_priv(xhci); if (ops && ops->vendor_cleanup) ops->vendor_cleanup(xhci); - priv->vendor_ops = NULL; + xhci->vendor_ops = NULL; } static int xhci_plat_probe(struct platform_device *pdev) @@ -436,8 +434,8 @@ static int xhci_plat_remove(struct platform_device *dev) struct clk *reg_clk = xhci->reg_clk; struct usb_hcd *shared_hcd = xhci->shared_hcd; - pm_runtime_get_sync(&dev->dev); xhci->xhc_state |= XHCI_STATE_REMOVING; + pm_runtime_get_sync(&dev->dev); if (shared_hcd) { usb_remove_hcd(shared_hcd); @@ -453,7 +451,6 @@ static int xhci_plat_remove(struct platform_device *dev) xhci_vendor_cleanup(xhci); - usb_put_hcd(shared_hcd); clk_disable_unprepare(clk); clk_disable_unprepare(reg_clk); usb_put_hcd(hcd); diff --git a/drivers/usb/host/xhci-plat.h b/drivers/usb/host/xhci-plat.h index 5b096f72636f..e726a572321d 100644 --- a/drivers/usb/host/xhci-plat.h +++ b/drivers/usb/host/xhci-plat.h @@ -13,7 +13,6 @@ struct xhci_plat_priv { const char *firmware_name; unsigned long long quirks; - struct xhci_vendor_ops *vendor_ops; struct xhci_vendor_data *vendor_data; int (*plat_setup)(struct usb_hcd *); void (*plat_start)(struct usb_hcd *); diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 4f33afa418b0..be041bd65b19 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -25,7 +25,6 @@ #include "xhci-trace.h" #include "xhci-debugfs.h" #include "xhci-dbgcap.h" -#include "xhci-plat.h" #define DRIVER_AUTHOR "Sarah Sharp" #define DRIVER_DESC "'eXtensible' Host Controller (xHC) Driver" @@ -1194,7 +1193,8 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated) temp = readl(&xhci->op_regs->status); /* re-initialize the HC on Restore Error, or Host Controller Error */ - if (temp & (STS_SRE | STS_HCE)) { + if ((temp & (STS_SRE | STS_HCE)) && + !(xhci->xhc_state & XHCI_STATE_REMOVING)) { reinit_xhc = true; if (!xhci->broken_suspend) xhci_warn(xhci, "xHC error in resume, USBSTS 0x%x, Reinit\n", temp); @@ -4516,7 +4516,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci, struct xhci_vendor_ops *xhci_vendor_get_ops(struct xhci_hcd *xhci) { - return xhci_to_priv(xhci)->vendor_ops; + return xhci->vendor_ops; } EXPORT_SYMBOL_GPL(xhci_vendor_get_ops); @@ -5619,6 +5619,12 @@ void xhci_init_driver(struct hc_driver *drv, drv->reset_bandwidth = over->reset_bandwidth; if (over->update_hub_device) drv->update_hub_device = over->update_hub_device; + if (over->address_device) + drv->address_device = over->address_device; + if (over->bus_suspend) + drv->bus_suspend = over->bus_suspend; + if (over->bus_resume) + drv->bus_resume = over->bus_resume; } } EXPORT_SYMBOL_GPL(xhci_init_driver); diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h index eb2e66a68693..dd634668f5d4 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1941,7 +1941,9 @@ struct xhci_hcd { void *dbc; - ANDROID_KABI_RESERVE(1); + /* Used for bug 194461020 */ + ANDROID_KABI_USE(1, struct xhci_vendor_ops *vendor_ops); + ANDROID_KABI_RESERVE(2); ANDROID_KABI_RESERVE(3); ANDROID_KABI_RESERVE(4); @@ -1963,6 +1965,14 @@ struct xhci_driver_overrides { void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); int (*update_hub_device)(struct usb_hcd *hcd, struct usb_device *hdev, struct usb_tt *tt, gfp_t mem_flags); + int (*address_device)(struct usb_hcd *hcd, struct usb_device *udev); + int (*bus_suspend)(struct usb_hcd *hcd); + int (*bus_resume)(struct usb_hcd *hcd); + + ANDROID_KABI_RESERVE(1); + ANDROID_KABI_RESERVE(2); + ANDROID_KABI_RESERVE(3); + ANDROID_KABI_RESERVE(4); }; #define XHCI_CFC_DELAY 10 @@ -2288,6 +2298,11 @@ struct xhci_vendor_ops { void (*alloc_container_ctx)(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx, int type, gfp_t flags); void (*free_container_ctx)(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx); + + ANDROID_KABI_RESERVE(1); + ANDROID_KABI_RESERVE(2); + ANDROID_KABI_RESERVE(3); + ANDROID_KABI_RESERVE(4); }; struct xhci_vendor_ops *xhci_vendor_get_ops(struct xhci_hcd *xhci); diff --git a/drivers/usb/typec/bus.c b/drivers/usb/typec/bus.c index 31c2a3130cad..ef79217a903f 100644 --- a/drivers/usb/typec/bus.c +++ b/drivers/usb/typec/bus.c @@ -156,7 +156,20 @@ EXPORT_SYMBOL_GPL(typec_altmode_exit); */ void typec_altmode_attention(struct typec_altmode *adev, u32 vdo) { - struct typec_altmode *pdev = &to_altmode(adev)->partner->adev; + struct altmode *partner = to_altmode(adev)->partner; + struct typec_altmode *pdev; + + /* + * If partner is NULL then a NULL pointer error occurs when + * dereferencing pdev and its operations. The original upstream commit + * changes the return type so the tcpm can log when this occurs, but + * due to KMI restrictions we can only silently prevent the error for + * now. + */ + if (!partner) + return; + + pdev = &partner->adev; if (pdev->ops && pdev->ops->attention) pdev->ops->attention(pdev, vdo); diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c index 6af7c21aeaac..b5e4433a01c5 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -2748,6 +2748,13 @@ static void tcpm_pd_ctrl_request(struct tcpm_port *port, port->sink_cap_done = true; tcpm_set_state(port, ready_state(port), 0); break; + /* + * Some port partners do not support GET_STATUS, avoid soft reset the link to + * prevent redundant power re-negotiation + */ + case GET_STATUS_SEND: + tcpm_set_state(port, ready_state(port), 0); + break; case SRC_READY: case SNK_READY: if (port->vdm_state > VDM_STATE_READY) { @@ -3248,23 +3255,12 @@ static int tcpm_pd_select_pdo(struct tcpm_port *port, int *sink_pdo, return ret; } -#define min_pps_apdo_current(x, y) \ - min(pdo_pps_apdo_max_current(x), pdo_pps_apdo_max_current(y)) - static unsigned int tcpm_pd_select_pps_apdo(struct tcpm_port *port) { - unsigned int i, j, max_mw = 0, max_mv = 0; - unsigned int min_src_mv, max_src_mv, src_ma, src_mw; - unsigned int min_snk_mv, max_snk_mv; - unsigned int max_op_mv; - u32 pdo, src, snk; - unsigned int src_pdo = 0, snk_pdo = 0; + unsigned int i, src_ma, max_temp_mw = 0, max_op_ma, op_mw; + unsigned int src_pdo = 0; + u32 pdo, src; - /* - * Select the source PPS APDO providing the most power while staying - * within the board's limits. We skip the first PDO as this is always - * 5V 3A. - */ for (i = 1; i < port->nr_source_caps; ++i) { pdo = port->source_caps[i]; @@ -3275,54 +3271,17 @@ static unsigned int tcpm_pd_select_pps_apdo(struct tcpm_port *port) continue; } - min_src_mv = pdo_pps_apdo_min_voltage(pdo); - max_src_mv = pdo_pps_apdo_max_voltage(pdo); - src_ma = pdo_pps_apdo_max_current(pdo); - src_mw = (src_ma * max_src_mv) / 1000; - - /* - * Now search through the sink PDOs to find a matching - * PPS APDO. Again skip the first sink PDO as this will - * always be 5V 3A. - */ - for (j = 1; j < port->nr_snk_pdo; j++) { - pdo = port->snk_pdo[j]; - - switch (pdo_type(pdo)) { - case PDO_TYPE_APDO: - if (pdo_apdo_type(pdo) != APDO_TYPE_PPS) { - tcpm_log(port, - "Not PPS APDO (sink), ignoring"); - continue; - } - - min_snk_mv = - pdo_pps_apdo_min_voltage(pdo); - max_snk_mv = - pdo_pps_apdo_max_voltage(pdo); - break; - default: - tcpm_log(port, - "Not APDO type (sink), ignoring"); - continue; - } + if (port->pps_data.req_out_volt > pdo_pps_apdo_max_voltage(pdo) || + port->pps_data.req_out_volt < pdo_pps_apdo_min_voltage(pdo)) + continue; - if (min_src_mv <= max_snk_mv && - max_src_mv >= min_snk_mv) { - max_op_mv = min(max_src_mv, max_snk_mv); - src_mw = (max_op_mv * src_ma) / 1000; - /* Prefer higher voltages if available */ - if ((src_mw == max_mw && - max_op_mv > max_mv) || - src_mw > max_mw) { - src_pdo = i; - snk_pdo = j; - max_mw = src_mw; - max_mv = max_op_mv; - } - } + src_ma = pdo_pps_apdo_max_current(pdo); + max_op_ma = min(src_ma, port->pps_data.req_op_curr); + op_mw = max_op_ma * port->pps_data.req_out_volt / 1000; + if (op_mw > max_temp_mw) { + src_pdo = i; + max_temp_mw = op_mw; } - break; default: tcpm_log(port, "Not APDO type (source), ignoring"); @@ -3332,16 +3291,10 @@ static unsigned int tcpm_pd_select_pps_apdo(struct tcpm_port *port) if (src_pdo) { src = port->source_caps[src_pdo]; - snk = port->snk_pdo[snk_pdo]; - - port->pps_data.req_min_volt = max(pdo_pps_apdo_min_voltage(src), - pdo_pps_apdo_min_voltage(snk)); - port->pps_data.req_max_volt = min(pdo_pps_apdo_max_voltage(src), - pdo_pps_apdo_max_voltage(snk)); - port->pps_data.req_max_curr = min_pps_apdo_current(src, snk); - port->pps_data.req_out_volt = min(port->pps_data.req_max_volt, - max(port->pps_data.req_min_volt, - port->pps_data.req_out_volt)); + + port->pps_data.req_min_volt = pdo_pps_apdo_min_voltage(src); + port->pps_data.req_max_volt = pdo_pps_apdo_max_voltage(src); + port->pps_data.req_max_curr = pdo_pps_apdo_max_current(src); port->pps_data.req_op_curr = min(port->pps_data.req_max_curr, port->pps_data.req_op_curr); } @@ -3459,32 +3412,16 @@ static int tcpm_pd_send_request(struct tcpm_port *port) static int tcpm_pd_build_pps_request(struct tcpm_port *port, u32 *rdo) { unsigned int out_mv, op_ma, op_mw, max_mv, max_ma, flags; - enum pd_pdo_type type; unsigned int src_pdo_index; - u32 pdo; src_pdo_index = tcpm_pd_select_pps_apdo(port); if (!src_pdo_index) return -EOPNOTSUPP; - pdo = port->source_caps[src_pdo_index]; - type = pdo_type(pdo); - - switch (type) { - case PDO_TYPE_APDO: - if (pdo_apdo_type(pdo) != APDO_TYPE_PPS) { - tcpm_log(port, "Invalid APDO selected!"); - return -EINVAL; - } - max_mv = port->pps_data.req_max_volt; - max_ma = port->pps_data.req_max_curr; - out_mv = port->pps_data.req_out_volt; - op_ma = port->pps_data.req_op_curr; - break; - default: - tcpm_log(port, "Invalid PDO selected!"); - return -EINVAL; - } + max_mv = port->pps_data.req_max_volt; + max_ma = port->pps_data.req_max_curr; + out_mv = port->pps_data.req_out_volt; + op_ma = port->pps_data.req_op_curr; flags = RDO_USB_COMM | RDO_NO_SUSPEND; @@ -3923,6 +3860,29 @@ static enum typec_cc_status tcpm_pwr_opmode_to_rp(enum typec_pwr_opmode opmode) } } +static void tcpm_set_initial_svdm_version(struct tcpm_port *port) +{ + switch (port->negotiated_rev) { + case PD_REV30: + break; + /* + * 6.4.4.2.3 Structured VDM Version + * 2.0 states "At this time, there is only one version (1.0) defined. + * This field Shall be set to zero to indicate Version 1.0." + * 3.0 states "This field Shall be set to 01b to indicate Version 2.0." + * To ensure that we follow the Power Delivery revision we are currently + * operating on, downgrade the SVDM version to the highest one supported + * by the Power Delivery revision. + */ + case PD_REV20: + typec_partner_set_svdm_version(port->partner, SVDM_VER_1_0); + break; + default: + typec_partner_set_svdm_version(port->partner, SVDM_VER_1_0); + break; + } +} + static void run_state_machine(struct tcpm_port *port) { int ret; @@ -4167,10 +4127,12 @@ static void run_state_machine(struct tcpm_port *port) * For now, this driver only supports SOP for DISCOVER_IDENTITY, thus using * port->explicit_contract to decide whether to send the command. */ - if (port->explicit_contract) + if (port->explicit_contract) { + tcpm_set_initial_svdm_version(port); mod_send_discover_delayed_work(port, 0); - else + } else { port->send_discover = false; + } /* * 6.3.5 @@ -4312,7 +4274,9 @@ static void run_state_machine(struct tcpm_port *port) if (port->slow_charger_loop && (current_lim > PD_P_SNK_STDBY_MW / 5)) current_lim = PD_P_SNK_STDBY_MW / 5; tcpm_set_current_limit(port, current_lim, 5000); - tcpm_set_charge(port, true); + /* Not sink vbus if operational current is 0mA */ + tcpm_set_charge(port, !!pdo_max_current(port->snk_pdo[0])); + if (!port->pd_supported) tcpm_set_state(port, SNK_READY, 0); else @@ -4471,10 +4435,12 @@ static void run_state_machine(struct tcpm_port *port) * For now, this driver only supports SOP for DISCOVER_IDENTITY, thus using * port->explicit_contract. */ - if (port->explicit_contract) + if (port->explicit_contract) { + tcpm_set_initial_svdm_version(port); mod_send_discover_delayed_work(port, 0); - else + } else { port->send_discover = false; + } power_supply_changed(port->psy); break; @@ -4601,7 +4567,8 @@ static void run_state_machine(struct tcpm_port *port) tcpm_set_current_limit(port, tcpm_get_current_limit(port), 5000); - tcpm_set_charge(port, true); + /* Not sink vbus if operational current is 0mA */ + tcpm_set_charge(port, !!pdo_max_current(port->snk_pdo[0])); } if (port->ams == HARD_RESET) tcpm_ams_finish(port); @@ -5378,6 +5345,10 @@ static void _tcpm_pd_vbus_off(struct tcpm_port *port) /* Do nothing, vbus drop expected */ break; + case SNK_HARD_RESET_WAIT_VBUS: + /* Do nothing, its OK to receive vbus off events */ + break; + default: if (port->pwr_role == TYPEC_SINK && port->attached) tcpm_set_state(port, SNK_UNATTACHED, tcpm_wait_for_discharge(port)); @@ -5429,6 +5400,9 @@ static void _tcpm_pd_vbus_vsafe0v(struct tcpm_port *port) case SNK_DEBOUNCED: /*Do nothing, still waiting for VSAFE5V for connect */ break; + case SNK_HARD_RESET_WAIT_VBUS: + /* Do nothing, its OK to receive vbus off events */ + break; default: if (port->pwr_role == TYPEC_SINK && port->auto_vbus_discharge_enabled) tcpm_set_state(port, SNK_UNATTACHED, 0); @@ -5945,12 +5919,6 @@ static int tcpm_pps_set_out_volt(struct tcpm_port *port, u16 req_out_volt) goto port_unlock; } - if (req_out_volt < port->pps_data.min_volt || - req_out_volt > port->pps_data.max_volt) { - ret = -EINVAL; - goto port_unlock; - } - target_mw = (port->current_limit * req_out_volt) / 1000; if (target_mw < port->operating_snk_mw) { ret = -EINVAL; @@ -6479,11 +6447,7 @@ static int tcpm_psy_set_prop(struct power_supply *psy, ret = tcpm_psy_set_online(port, val); break; case POWER_SUPPLY_PROP_VOLTAGE_NOW: - if (val->intval < port->pps_data.min_volt * 1000 || - val->intval > port->pps_data.max_volt * 1000) - ret = -EINVAL; - else - ret = tcpm_pps_set_out_volt(port, val->intval / 1000); + ret = tcpm_pps_set_out_volt(port, val->intval / 1000); break; case POWER_SUPPLY_PROP_CURRENT_NOW: if (val->intval > port->pps_data.max_curr * 1000) diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c index 086b50968983..dc2dea3768fb 100644 --- a/drivers/usb/typec/ucsi/ucsi.c +++ b/drivers/usb/typec/ucsi/ucsi.c @@ -132,10 +132,8 @@ static int ucsi_exec_command(struct ucsi *ucsi, u64 cmd) if (ret) return ret; - if (cci & UCSI_CCI_BUSY) { - ucsi->ops->async_write(ucsi, UCSI_CANCEL, NULL, 0); - return -EBUSY; - } + if (cmd != UCSI_CANCEL && cci & UCSI_CCI_BUSY) + return ucsi_exec_command(ucsi, UCSI_CANCEL); if (!(cci & UCSI_CCI_COMMAND_COMPLETE)) return -EIO; @@ -149,6 +147,11 @@ static int ucsi_exec_command(struct ucsi *ucsi, u64 cmd) return ucsi_read_error(ucsi); } + if (cmd == UCSI_CANCEL && cci & UCSI_CCI_CANCEL_COMPLETE) { + ret = ucsi_acknowledge_command(ucsi); + return ret ? ret : -EBUSY; + } + return UCSI_CCI_LENGTH(cci); } @@ -782,6 +785,7 @@ static void ucsi_handle_connector_change(struct work_struct *work) if (ret < 0) { dev_err(ucsi->dev, "%s: GET_CONNECTOR_STATUS failed (%d)\n", __func__, ret); + clear_bit(EVENT_PENDING, &con->ucsi->flags); goto out_unlock; } diff --git a/drivers/video/fbdev/core/sysimgblt.c b/drivers/video/fbdev/core/sysimgblt.c index 335e92b813fc..665ef7a0a249 100644 --- a/drivers/video/fbdev/core/sysimgblt.c +++ b/drivers/video/fbdev/core/sysimgblt.c @@ -189,7 +189,7 @@ static void fast_imageblit(const struct fb_image *image, struct fb_info *p, u32 fgx = fgcolor, bgx = bgcolor, bpp = p->var.bits_per_pixel; u32 ppw = 32/bpp, spitch = (image->width + 7)/8; u32 bit_mask, eorx, shift; - const char *s = image->data, *src; + const u8 *s = image->data, *src; u32 *dst; const u32 *tab; size_t tablen; diff --git a/drivers/virt/Kconfig b/drivers/virt/Kconfig index c39409b69d01..41440e116e71 100644 --- a/drivers/virt/Kconfig +++ b/drivers/virt/Kconfig @@ -54,4 +54,6 @@ source "drivers/virt/coco/sev-guest/Kconfig" source "drivers/virt/gunyah/Kconfig" +source "drivers/virt/geniezone/Kconfig" + endif diff --git a/drivers/virt/geniezone/Kconfig b/drivers/virt/geniezone/Kconfig new file mode 100644 index 000000000000..2643fb8913cc --- /dev/null +++ b/drivers/virt/geniezone/Kconfig @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: GPL-2.0-only + +config MTK_GZVM + tristate "GenieZone Hypervisor driver for guest VM operation" + depends on ARM64 + help + This driver, gzvm, enables to run guest VMs on MTK GenieZone + hypervisor. It exports kvm-like interfaces for VMM (e.g., crosvm) in + order to operate guest VMs on GenieZone hypervisor. + + GenieZone hypervisor now only supports MediaTek SoC and arm64 + architecture. + + Select M if you want it be built as a module (gzvm.ko). + + If unsure, say N. diff --git a/drivers/virt/geniezone/Makefile b/drivers/virt/geniezone/Makefile new file mode 100644 index 000000000000..bc5ae49f2407 --- /dev/null +++ b/drivers/virt/geniezone/Makefile @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# Makefile for GenieZone driver, this file should be include in arch's +# to avoid two ko being generated. +# + +GZVM_DIR ?= ../../../drivers/virt/geniezone + +gzvm-y := $(GZVM_DIR)/gzvm_main.o $(GZVM_DIR)/gzvm_vm.o \ + $(GZVM_DIR)/gzvm_vcpu.o $(GZVM_DIR)/gzvm_irqfd.o \ + $(GZVM_DIR)/gzvm_ioeventfd.o diff --git a/drivers/virt/geniezone/gzvm_common.h b/drivers/virt/geniezone/gzvm_common.h new file mode 100644 index 000000000000..d0e39ded79e6 --- /dev/null +++ b/drivers/virt/geniezone/gzvm_common.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#ifndef __GZ_COMMON_H__ +#define __GZ_COMMON_H__ + +int gzvm_irqchip_inject_irq(struct gzvm *gzvm, unsigned int vcpu_idx, + u32 irq_type, u32 irq, bool level); + +#endif /* __GZVM_COMMON_H__ */ diff --git a/drivers/virt/geniezone/gzvm_ioeventfd.c b/drivers/virt/geniezone/gzvm_ioeventfd.c new file mode 100644 index 000000000000..8d41db16ada2 --- /dev/null +++ b/drivers/virt/geniezone/gzvm_ioeventfd.c @@ -0,0 +1,273 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#include <linux/eventfd.h> +#include <linux/file.h> +#include <linux/syscalls.h> +#include <linux/gzvm.h> +#include <linux/gzvm_drv.h> +#include <linux/wait.h> +#include <linux/poll.h> +#include <linux/module.h> +#include <linux/slab.h> + +struct gzvm_ioevent { + struct list_head list; + __u64 addr; + __u32 len; + struct eventfd_ctx *evt_ctx; + __u64 datamatch; + bool wildcard; +}; + +/** + * ioeventfd_check_collision() - Check collison assumes gzvm->slots_lock held. + * @gzvm: Pointer to gzvm. + * @p: Pointer to gzvm_ioevent. + * + * Return: + * * true - collison found + * * false - no collison + */ +static bool ioeventfd_check_collision(struct gzvm *gzvm, struct gzvm_ioevent *p) +{ + struct gzvm_ioevent *_p; + + list_for_each_entry(_p, &gzvm->ioevents, list) + if (_p->addr == p->addr && + (!_p->len || !p->len || + (_p->len == p->len && + (_p->wildcard || p->wildcard || + _p->datamatch == p->datamatch)))) + return true; + + return false; +} + +static void gzvm_ioevent_release(struct gzvm_ioevent *p) +{ + eventfd_ctx_put(p->evt_ctx); + list_del(&p->list); + kfree(p); +} + +static bool gzvm_ioevent_in_range(struct gzvm_ioevent *p, __u64 addr, int len, + const void *val) +{ + u64 _val; + + if (addr != p->addr) + /* address must be precise for a hit */ + return false; + + if (!p->len) + /* length = 0 means only look at the address, so always a hit */ + return true; + + if (len != p->len) + /* address-range must be precise for a hit */ + return false; + + if (p->wildcard) + /* all else equal, wildcard is always a hit */ + return true; + + /* otherwise, we have to actually compare the data */ + + WARN_ON_ONCE(!IS_ALIGNED((unsigned long)val, len)); + + switch (len) { + case 1: + _val = *(u8 *)val; + break; + case 2: + _val = *(u16 *)val; + break; + case 4: + _val = *(u32 *)val; + break; + case 8: + _val = *(u64 *)val; + break; + default: + return false; + } + + return _val == p->datamatch; +} + +static int gzvm_deassign_ioeventfd(struct gzvm *gzvm, + struct gzvm_ioeventfd *args) +{ + struct gzvm_ioevent *p, *tmp; + struct eventfd_ctx *evt_ctx; + int ret = -ENOENT; + bool wildcard; + + evt_ctx = eventfd_ctx_fdget(args->fd); + if (IS_ERR(evt_ctx)) + return PTR_ERR(evt_ctx); + + wildcard = !(args->flags & GZVM_IOEVENTFD_FLAG_DATAMATCH); + + mutex_lock(&gzvm->lock); + + list_for_each_entry_safe(p, tmp, &gzvm->ioevents, list) { + if (p->evt_ctx != evt_ctx || + p->addr != args->addr || + p->len != args->len || + p->wildcard != wildcard) + continue; + + if (!p->wildcard && p->datamatch != args->datamatch) + continue; + + gzvm_ioevent_release(p); + ret = 0; + break; + } + + mutex_unlock(&gzvm->lock); + + /* got in the front of this function */ + eventfd_ctx_put(evt_ctx); + + return ret; +} + +static int gzvm_assign_ioeventfd(struct gzvm *gzvm, struct gzvm_ioeventfd *args) +{ + struct eventfd_ctx *evt_ctx; + struct gzvm_ioevent *evt; + int ret; + + evt_ctx = eventfd_ctx_fdget(args->fd); + if (IS_ERR(evt_ctx)) + return PTR_ERR(evt_ctx); + + evt = kmalloc(sizeof(*evt), GFP_KERNEL); + if (!evt) + return -ENOMEM; + *evt = (struct gzvm_ioevent) { + .addr = args->addr, + .len = args->len, + .evt_ctx = evt_ctx, + }; + if (args->flags & GZVM_IOEVENTFD_FLAG_DATAMATCH) { + evt->datamatch = args->datamatch; + evt->wildcard = false; + } else { + evt->wildcard = true; + } + + if (ioeventfd_check_collision(gzvm, evt)) { + ret = -EEXIST; + goto err_free; + } + + mutex_lock(&gzvm->lock); + list_add_tail(&evt->list, &gzvm->ioevents); + mutex_unlock(&gzvm->lock); + + return 0; + +err_free: + kfree(evt); + eventfd_ctx_put(evt_ctx); + return ret; +} + +/** + * gzvm_ioeventfd_check_valid() - Check user arguments is valid. + * @args: Pointer to gzvm_ioeventfd. + * + * Return: + * * true if user arguments are valid. + * * false if user arguments are invalid. + */ +static bool gzvm_ioeventfd_check_valid(struct gzvm_ioeventfd *args) +{ + /* must be natural-word sized, or 0 to ignore length */ + switch (args->len) { + case 0: + case 1: + case 2: + case 4: + case 8: + break; + default: + return false; + } + + /* check for range overflow */ + if (args->addr + args->len < args->addr) + return false; + + /* check for extra flags that we don't understand */ + if (args->flags & ~GZVM_IOEVENTFD_VALID_FLAG_MASK) + return false; + + /* ioeventfd with no length can't be combined with DATAMATCH */ + if (!args->len && (args->flags & GZVM_IOEVENTFD_FLAG_DATAMATCH)) + return false; + + /* gzvm does not support pio bus ioeventfd */ + if (args->flags & GZVM_IOEVENTFD_FLAG_PIO) + return false; + + return true; +} + +/** + * gzvm_ioeventfd() - Register ioevent to ioevent list. + * @gzvm: Pointer to gzvm. + * @args: Pointer to gzvm_ioeventfd. + * + * Return: + * * 0 - Success. + * * Negative - Failure. + */ +int gzvm_ioeventfd(struct gzvm *gzvm, struct gzvm_ioeventfd *args) +{ + if (gzvm_ioeventfd_check_valid(args) == false) + return -EINVAL; + + if (args->flags & GZVM_IOEVENTFD_FLAG_DEASSIGN) + return gzvm_deassign_ioeventfd(gzvm, args); + return gzvm_assign_ioeventfd(gzvm, args); +} + +/** + * gzvm_ioevent_write() - Travers this vm's registered ioeventfd to see if + * need notifying it. + * @vcpu: Pointer to vcpu. + * @addr: mmio address. + * @len: mmio size. + * @val: Pointer to void. + * + * Return: + * * true if this io is already sent to ioeventfd's listener. + * * false if we cannot find any ioeventfd registering this mmio write. + */ +bool gzvm_ioevent_write(struct gzvm_vcpu *vcpu, __u64 addr, int len, + const void *val) +{ + struct gzvm_ioevent *e; + + list_for_each_entry(e, &vcpu->gzvm->ioevents, list) { + if (gzvm_ioevent_in_range(e, addr, len, val)) { + eventfd_signal(e->evt_ctx, 1); + return true; + } + } + return false; +} + +int gzvm_init_ioeventfd(struct gzvm *gzvm) +{ + INIT_LIST_HEAD(&gzvm->ioevents); + + return 0; +} diff --git a/drivers/virt/geniezone/gzvm_irqfd.c b/drivers/virt/geniezone/gzvm_irqfd.c new file mode 100644 index 000000000000..b10ac3a940ee --- /dev/null +++ b/drivers/virt/geniezone/gzvm_irqfd.c @@ -0,0 +1,566 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#include <linux/eventfd.h> +#include <linux/syscalls.h> +#include <linux/gzvm_drv.h> +#include "gzvm_common.h" + +struct gzvm_irq_ack_notifier { + struct hlist_node link; + unsigned int gsi; + void (*irq_acked)(struct gzvm_irq_ack_notifier *ian); +}; + +/** + * struct gzvm_kernel_irqfd_resampler - irqfd resampler descriptor. + * @gzvm: Poiner to gzvm. + * @list: List of resampling struct _irqfd objects sharing this gsi. + * RCU list modified under gzvm->irqfds.resampler_lock. + * @notifier: gzvm irq ack notifier. + * @link: Entry in list of gzvm->irqfd.resampler_list. + * Use for sharing esamplers among irqfds on the same gsi. + * Accessed and modified under gzvm->irqfds.resampler_lock. + * + * Resampling irqfds are a special variety of irqfds used to emulate + * level triggered interrupts. The interrupt is asserted on eventfd + * trigger. On acknowledgment through the irq ack notifier, the + * interrupt is de-asserted and userspace is notified through the + * resamplefd. All resamplers on the same gsi are de-asserted + * together, so we don't need to track the state of each individual + * user. We can also therefore share the same irq source ID. + */ +struct gzvm_kernel_irqfd_resampler { + struct gzvm *gzvm; + + struct list_head list; + struct gzvm_irq_ack_notifier notifier; + + struct list_head link; +}; + +/** + * struct gzvm_kernel_irqfd: gzvm kernel irqfd descriptor. + * @gzvm: Pointer to struct gzvm. + * @wait: Wait queue entry. + * @gsi: Used for level IRQ fast-path. + * @resampler: The resampler used by this irqfd (resampler-only). + * @resamplefd: Eventfd notified on resample (resampler-only). + * @resampler_link: Entry in list of irqfds for a resampler (resampler-only). + * @eventfd: Used for setup/shutdown. + * @list: struct list_head. + * @pt: struct poll_table_struct. + * @shutdown: struct work_struct. + */ +struct gzvm_kernel_irqfd { + struct gzvm *gzvm; + wait_queue_entry_t wait; + + int gsi; + + struct gzvm_kernel_irqfd_resampler *resampler; + + struct eventfd_ctx *resamplefd; + + struct list_head resampler_link; + + struct eventfd_ctx *eventfd; + struct list_head list; + poll_table pt; + struct work_struct shutdown; +}; + +static struct workqueue_struct *irqfd_cleanup_wq; + +/** + * irqfd_set_spi(): irqfd to inject virtual interrupt. + * @gzvm: Pointer to gzvm. + * @irq_source_id: irq source id. + * @irq: This is spi interrupt number (starts from 0 instead of 32). + * @level: irq triggered level. + * @line_status: irq status. + */ +static void irqfd_set_spi(struct gzvm *gzvm, int irq_source_id, u32 irq, + int level, bool line_status) +{ + if (level) + gzvm_irqchip_inject_irq(gzvm, irq_source_id, 0, irq, level); +} + +/** + * irqfd_resampler_ack() - Notify all of the resampler irqfds using this GSI + * when IRQ de-assert once. + * @ian: Pointer to gzvm_irq_ack_notifier. + * + * Since resampler irqfds share an IRQ source ID, we de-assert once + * then notify all of the resampler irqfds using this GSI. We can't + * do multiple de-asserts or we risk racing with incoming re-asserts. + */ +static void irqfd_resampler_ack(struct gzvm_irq_ack_notifier *ian) +{ + struct gzvm_kernel_irqfd_resampler *resampler; + struct gzvm *gzvm; + struct gzvm_kernel_irqfd *irqfd; + int idx; + + resampler = container_of(ian, + struct gzvm_kernel_irqfd_resampler, notifier); + gzvm = resampler->gzvm; + + irqfd_set_spi(gzvm, GZVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, + resampler->notifier.gsi, 0, false); + + idx = srcu_read_lock(&gzvm->irq_srcu); + + list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, + srcu_read_lock_held(&gzvm->irq_srcu)) { + eventfd_signal(irqfd->resamplefd, 1); + } + + srcu_read_unlock(&gzvm->irq_srcu, idx); +} + +static void gzvm_register_irq_ack_notifier(struct gzvm *gzvm, + struct gzvm_irq_ack_notifier *ian) +{ + mutex_lock(&gzvm->irq_lock); + hlist_add_head_rcu(&ian->link, &gzvm->irq_ack_notifier_list); + mutex_unlock(&gzvm->irq_lock); +} + +static void gzvm_unregister_irq_ack_notifier(struct gzvm *gzvm, + struct gzvm_irq_ack_notifier *ian) +{ + mutex_lock(&gzvm->irq_lock); + hlist_del_init_rcu(&ian->link); + mutex_unlock(&gzvm->irq_lock); + synchronize_srcu(&gzvm->irq_srcu); +} + +static void irqfd_resampler_shutdown(struct gzvm_kernel_irqfd *irqfd) +{ + struct gzvm_kernel_irqfd_resampler *resampler = irqfd->resampler; + struct gzvm *gzvm = resampler->gzvm; + + mutex_lock(&gzvm->irqfds.resampler_lock); + + list_del_rcu(&irqfd->resampler_link); + synchronize_srcu(&gzvm->irq_srcu); + + if (list_empty(&resampler->list)) { + list_del(&resampler->link); + gzvm_unregister_irq_ack_notifier(gzvm, &resampler->notifier); + irqfd_set_spi(gzvm, GZVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, + resampler->notifier.gsi, 0, false); + kfree(resampler); + } + + mutex_unlock(&gzvm->irqfds.resampler_lock); +} + +/** + * irqfd_shutdown() - Race-free decouple logic (ordering is critical). + * @work: Pointer to work_struct. + */ +static void irqfd_shutdown(struct work_struct *work) +{ + struct gzvm_kernel_irqfd *irqfd = + container_of(work, struct gzvm_kernel_irqfd, shutdown); + struct gzvm *gzvm = irqfd->gzvm; + u64 cnt; + + /* Make sure irqfd has been initialized in assign path. */ + synchronize_srcu(&gzvm->irq_srcu); + + /* + * Synchronize with the wait-queue and unhook ourselves to prevent + * further events. + */ + eventfd_ctx_remove_wait_queue(irqfd->eventfd, &irqfd->wait, &cnt); + + if (irqfd->resampler) { + irqfd_resampler_shutdown(irqfd); + eventfd_ctx_put(irqfd->resamplefd); + } + + /* + * It is now safe to release the object's resources + */ + eventfd_ctx_put(irqfd->eventfd); + kfree(irqfd); +} + +/** + * irqfd_is_active() - Assumes gzvm->irqfds.lock is held. + * @irqfd: Pointer to gzvm_kernel_irqfd. + * + * Return: + * * true - irqfd is active. + */ +static bool irqfd_is_active(struct gzvm_kernel_irqfd *irqfd) +{ + return list_empty(&irqfd->list) ? false : true; +} + +/** + * irqfd_deactivate() - Mark the irqfd as inactive and schedule it for removal. + * assumes gzvm->irqfds.lock is held. + * @irqfd: Pointer to gzvm_kernel_irqfd. + */ +static void irqfd_deactivate(struct gzvm_kernel_irqfd *irqfd) +{ + if (!irqfd_is_active(irqfd)) + return; + + list_del_init(&irqfd->list); + + queue_work(irqfd_cleanup_wq, &irqfd->shutdown); +} + +/** + * irqfd_wakeup() - Callback of irqfd wait queue, would be woken by writing to + * irqfd to do virtual interrupt injection. + * @wait: Pointer to wait_queue_entry_t. + * @mode: Unused. + * @sync: Unused. + * @key: Get flags about Epoll events. + * + * Return: + * * 0 - Success + */ +static int irqfd_wakeup(wait_queue_entry_t *wait, unsigned int mode, int sync, + void *key) +{ + struct gzvm_kernel_irqfd *irqfd = + container_of(wait, struct gzvm_kernel_irqfd, wait); + __poll_t flags = key_to_poll(key); + struct gzvm *gzvm = irqfd->gzvm; + + if (flags & EPOLLIN) { + u64 cnt; + + eventfd_ctx_do_read(irqfd->eventfd, &cnt); + /* gzvm's irq injection is not blocked, don't need workq */ + irqfd_set_spi(gzvm, GZVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, + 1, false); + } + + if (flags & EPOLLHUP) { + /* The eventfd is closing, detach from GZVM */ + unsigned long iflags; + + spin_lock_irqsave(&gzvm->irqfds.lock, iflags); + + /* + * Do more check if someone deactivated the irqfd before + * we could acquire the irqfds.lock. + */ + if (irqfd_is_active(irqfd)) + irqfd_deactivate(irqfd); + + spin_unlock_irqrestore(&gzvm->irqfds.lock, iflags); + } + + return 0; +} + +static void irqfd_ptable_queue_proc(struct file *file, wait_queue_head_t *wqh, + poll_table *pt) +{ + struct gzvm_kernel_irqfd *irqfd = + container_of(pt, struct gzvm_kernel_irqfd, pt); + add_wait_queue_priority(wqh, &irqfd->wait); +} + +static int gzvm_irqfd_assign(struct gzvm *gzvm, struct gzvm_irqfd *args) +{ + struct gzvm_kernel_irqfd *irqfd, *tmp; + struct fd f; + struct eventfd_ctx *eventfd = NULL, *resamplefd = NULL; + int ret; + __poll_t events; + int idx; + + irqfd = kzalloc(sizeof(*irqfd), GFP_KERNEL_ACCOUNT); + if (!irqfd) + return -ENOMEM; + + irqfd->gzvm = gzvm; + irqfd->gsi = args->gsi; + irqfd->resampler = NULL; + + INIT_LIST_HEAD(&irqfd->list); + INIT_WORK(&irqfd->shutdown, irqfd_shutdown); + + f = fdget(args->fd); + if (!f.file) { + ret = -EBADF; + goto out; + } + + eventfd = eventfd_ctx_fileget(f.file); + if (IS_ERR(eventfd)) { + ret = PTR_ERR(eventfd); + goto fail; + } + + irqfd->eventfd = eventfd; + + if (args->flags & GZVM_IRQFD_FLAG_RESAMPLE) { + struct gzvm_kernel_irqfd_resampler *resampler; + + resamplefd = eventfd_ctx_fdget(args->resamplefd); + if (IS_ERR(resamplefd)) { + ret = PTR_ERR(resamplefd); + goto fail; + } + + irqfd->resamplefd = resamplefd; + INIT_LIST_HEAD(&irqfd->resampler_link); + + mutex_lock(&gzvm->irqfds.resampler_lock); + + list_for_each_entry(resampler, + &gzvm->irqfds.resampler_list, link) { + if (resampler->notifier.gsi == irqfd->gsi) { + irqfd->resampler = resampler; + break; + } + } + + if (!irqfd->resampler) { + resampler = kzalloc(sizeof(*resampler), + GFP_KERNEL_ACCOUNT); + if (!resampler) { + ret = -ENOMEM; + mutex_unlock(&gzvm->irqfds.resampler_lock); + goto fail; + } + + resampler->gzvm = gzvm; + INIT_LIST_HEAD(&resampler->list); + resampler->notifier.gsi = irqfd->gsi; + resampler->notifier.irq_acked = irqfd_resampler_ack; + INIT_LIST_HEAD(&resampler->link); + + list_add(&resampler->link, &gzvm->irqfds.resampler_list); + gzvm_register_irq_ack_notifier(gzvm, + &resampler->notifier); + irqfd->resampler = resampler; + } + + list_add_rcu(&irqfd->resampler_link, &irqfd->resampler->list); + synchronize_srcu(&gzvm->irq_srcu); + + mutex_unlock(&gzvm->irqfds.resampler_lock); + } + + /* + * Install our own custom wake-up handling so we are notified via + * a callback whenever someone signals the underlying eventfd + */ + init_waitqueue_func_entry(&irqfd->wait, irqfd_wakeup); + init_poll_funcptr(&irqfd->pt, irqfd_ptable_queue_proc); + + spin_lock_irq(&gzvm->irqfds.lock); + + ret = 0; + list_for_each_entry(tmp, &gzvm->irqfds.items, list) { + if (irqfd->eventfd != tmp->eventfd) + continue; + /* This fd is used for another irq already. */ + pr_err("already used: gsi=%d fd=%d\n", args->gsi, args->fd); + ret = -EBUSY; + spin_unlock_irq(&gzvm->irqfds.lock); + goto fail; + } + + idx = srcu_read_lock(&gzvm->irq_srcu); + + list_add_tail(&irqfd->list, &gzvm->irqfds.items); + + spin_unlock_irq(&gzvm->irqfds.lock); + + /* + * Check if there was an event already pending on the eventfd + * before we registered, and trigger it as if we didn't miss it. + */ + events = vfs_poll(f.file, &irqfd->pt); + + /* In case there is already a pending event */ + if (events & EPOLLIN) + irqfd_set_spi(gzvm, GZVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, + irqfd->gsi, 1, false); + + srcu_read_unlock(&gzvm->irq_srcu, idx); + + /* + * do not drop the file until the irqfd is fully initialized, otherwise + * we might race against the EPOLLHUP + */ + fdput(f); + return 0; + +fail: + if (irqfd->resampler) + irqfd_resampler_shutdown(irqfd); + + if (resamplefd && !IS_ERR(resamplefd)) + eventfd_ctx_put(resamplefd); + + if (eventfd && !IS_ERR(eventfd)) + eventfd_ctx_put(eventfd); + + fdput(f); + +out: + kfree(irqfd); + return ret; +} + +static void gzvm_notify_acked_gsi(struct gzvm *gzvm, int gsi) +{ + struct gzvm_irq_ack_notifier *gian; + + hlist_for_each_entry_srcu(gian, &gzvm->irq_ack_notifier_list, + link, srcu_read_lock_held(&gzvm->irq_srcu)) + if (gian->gsi == gsi) + gian->irq_acked(gian); +} + +void gzvm_notify_acked_irq(struct gzvm *gzvm, unsigned int gsi) +{ + int idx; + + idx = srcu_read_lock(&gzvm->irq_srcu); + gzvm_notify_acked_gsi(gzvm, gsi); + srcu_read_unlock(&gzvm->irq_srcu, idx); +} + +/** + * gzvm_irqfd_deassign() - Shutdown any irqfd's that match fd+gsi. + * @gzvm: Pointer to gzvm. + * @args: Pointer to gzvm_irqfd. + * + * Return: + * * 0 - Success. + * * Negative value - Failure. + */ +static int gzvm_irqfd_deassign(struct gzvm *gzvm, struct gzvm_irqfd *args) +{ + struct gzvm_kernel_irqfd *irqfd, *tmp; + struct eventfd_ctx *eventfd; + + eventfd = eventfd_ctx_fdget(args->fd); + if (IS_ERR(eventfd)) + return PTR_ERR(eventfd); + + spin_lock_irq(&gzvm->irqfds.lock); + + list_for_each_entry_safe(irqfd, tmp, &gzvm->irqfds.items, list) { + if (irqfd->eventfd == eventfd && irqfd->gsi == args->gsi) + irqfd_deactivate(irqfd); + } + + spin_unlock_irq(&gzvm->irqfds.lock); + eventfd_ctx_put(eventfd); + + /* + * Block until we know all outstanding shutdown jobs have completed + * so that we guarantee there will not be any more interrupts on this + * gsi once this deassign function returns. + */ + flush_workqueue(irqfd_cleanup_wq); + + return 0; +} + +int gzvm_irqfd(struct gzvm *gzvm, struct gzvm_irqfd *args) +{ + for (int i = 0; i < ARRAY_SIZE(args->pad); i++) { + if (args->pad[i]) + return -EINVAL; + } + + if (args->flags & + ~(GZVM_IRQFD_FLAG_DEASSIGN | GZVM_IRQFD_FLAG_RESAMPLE)) + return -EINVAL; + + if (args->flags & GZVM_IRQFD_FLAG_DEASSIGN) + return gzvm_irqfd_deassign(gzvm, args); + + return gzvm_irqfd_assign(gzvm, args); +} + +/** + * gzvm_vm_irqfd_init() - Initialize irqfd data structure per VM + * + * @gzvm: Pointer to struct gzvm. + * + * Return: + * * 0 - Success. + * * Negative - Failure. + */ +int gzvm_vm_irqfd_init(struct gzvm *gzvm) +{ + mutex_init(&gzvm->irq_lock); + + spin_lock_init(&gzvm->irqfds.lock); + INIT_LIST_HEAD(&gzvm->irqfds.items); + INIT_LIST_HEAD(&gzvm->irqfds.resampler_list); + if (init_srcu_struct(&gzvm->irq_srcu)) + return -EINVAL; + INIT_HLIST_HEAD(&gzvm->irq_ack_notifier_list); + mutex_init(&gzvm->irqfds.resampler_lock); + + return 0; +} + +/** + * gzvm_vm_irqfd_release() - This function is called as the gzvm VM fd is being + * released. Shutdown all irqfds that still remain open. + * @gzvm: Pointer to gzvm. + */ +void gzvm_vm_irqfd_release(struct gzvm *gzvm) +{ + struct gzvm_kernel_irqfd *irqfd, *tmp; + + spin_lock_irq(&gzvm->irqfds.lock); + + list_for_each_entry_safe(irqfd, tmp, &gzvm->irqfds.items, list) + irqfd_deactivate(irqfd); + + spin_unlock_irq(&gzvm->irqfds.lock); + + /* + * Block until we know all outstanding shutdown jobs have completed. + */ + flush_workqueue(irqfd_cleanup_wq); +} + +/** + * gzvm_drv_irqfd_init() - Erase flushing work items when a VM exits. + * + * Return: + * * 0 - Success. + * * Negative - Failure. + * + * Create a host-wide workqueue for issuing deferred shutdown requests + * aggregated from all vm* instances. We need our own isolated + * queue to ease flushing work items when a VM exits. + */ +int gzvm_drv_irqfd_init(void) +{ + irqfd_cleanup_wq = alloc_workqueue("gzvm-irqfd-cleanup", 0, 0); + if (!irqfd_cleanup_wq) + return -ENOMEM; + + return 0; +} + +void gzvm_drv_irqfd_exit(void) +{ + destroy_workqueue(irqfd_cleanup_wq); +} diff --git a/drivers/virt/geniezone/gzvm_main.c b/drivers/virt/geniezone/gzvm_main.c new file mode 100644 index 000000000000..3d970ab1dd8a --- /dev/null +++ b/drivers/virt/geniezone/gzvm_main.c @@ -0,0 +1,143 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#include <linux/anon_inodes.h> +#include <linux/device.h> +#include <linux/file.h> +#include <linux/kdev_t.h> +#include <linux/module.h> +#include <linux/of.h> +#include <linux/platform_device.h> +#include <linux/slab.h> +#include <linux/gzvm_drv.h> + +/** + * gzvm_err_to_errno() - Convert geniezone return value to standard errno + * + * @err: Return value from geniezone function return + * + * Return: Standard errno + */ +int gzvm_err_to_errno(unsigned long err) +{ + int gz_err = (int)err; + + switch (gz_err) { + case 0: + return 0; + case ERR_NO_MEMORY: + return -ENOMEM; + case ERR_NOT_SUPPORTED: + return -EOPNOTSUPP; + case ERR_NOT_IMPLEMENTED: + return -EOPNOTSUPP; + case ERR_FAULT: + return -EFAULT; + default: + break; + } + + return -EINVAL; +} + +/** + * gzvm_dev_ioctl_check_extension() - Check if given capability is support + * or not + * + * @gzvm: Pointer to struct gzvm + * @args: Pointer in u64 from userspace + * + * Return: + * * 0 - Support, no error + * * -EOPNOTSUPP - Not support + * * -EFAULT - Failed to get data from userspace + */ +long gzvm_dev_ioctl_check_extension(struct gzvm *gzvm, unsigned long args) +{ + __u64 cap; + void __user *argp = (void __user *)args; + + if (copy_from_user(&cap, argp, sizeof(uint64_t))) + return -EFAULT; + return gzvm_arch_check_extension(gzvm, cap, argp); +} + +static long gzvm_dev_ioctl(struct file *filp, unsigned int cmd, + unsigned long user_args) +{ + long ret = -ENOTTY; + + switch (cmd) { + case GZVM_CREATE_VM: + ret = gzvm_dev_ioctl_create_vm(user_args); + break; + case GZVM_CHECK_EXTENSION: + if (!user_args) + return -EINVAL; + ret = gzvm_dev_ioctl_check_extension(NULL, user_args); + break; + default: + ret = -ENOTTY; + } + + return ret; +} + +static const struct file_operations gzvm_chardev_ops = { + .unlocked_ioctl = gzvm_dev_ioctl, + .llseek = noop_llseek, +}; + +static struct miscdevice gzvm_dev = { + .minor = MISC_DYNAMIC_MINOR, + .name = KBUILD_MODNAME, + .fops = &gzvm_chardev_ops, +}; + +static int gzvm_drv_probe(struct platform_device *pdev) +{ + int ret; + + if (gzvm_arch_probe() != 0) { + dev_err(&pdev->dev, "Not found available conduit\n"); + return -ENODEV; + } + + ret = misc_register(&gzvm_dev); + if (ret) + return ret; + + return gzvm_drv_irqfd_init(); +} + +static int gzvm_drv_remove(struct platform_device *pdev) +{ + gzvm_drv_irqfd_exit(); + gzvm_destroy_all_vms(); + misc_deregister(&gzvm_dev); + return 0; +} + +static const struct of_device_id gzvm_of_match[] = { + { .compatible = "mediatek,geniezone-hyp", }, + {/* sentinel */}, +}; + +static struct platform_driver gzvm_driver = { + .probe = gzvm_drv_probe, + .remove = gzvm_drv_remove, + .driver = { + .name = KBUILD_MODNAME, + .owner = THIS_MODULE, + .of_match_table = gzvm_of_match, + }, +}; + +module_platform_driver(gzvm_driver); + +MODULE_DEVICE_TABLE(of, gzvm_of_match); +MODULE_AUTHOR("MediaTek"); +MODULE_DESCRIPTION("GenieZone interface for VMM"); +MODULE_LICENSE("GPL"); diff --git a/drivers/virt/geniezone/gzvm_vcpu.c b/drivers/virt/geniezone/gzvm_vcpu.c new file mode 100644 index 000000000000..72bd122a8be7 --- /dev/null +++ b/drivers/virt/geniezone/gzvm_vcpu.c @@ -0,0 +1,276 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#include <asm/sysreg.h> +#include <linux/anon_inodes.h> +#include <linux/device.h> +#include <linux/file.h> +#include <linux/mm.h> +#include <linux/platform_device.h> +#include <linux/slab.h> +#include <linux/gzvm_drv.h> + +/* maximum size needed for holding an integer */ +#define ITOA_MAX_LEN 12 + +static long gzvm_vcpu_update_one_reg(struct gzvm_vcpu *vcpu, + void * __user argp, + bool is_write) +{ + struct gzvm_one_reg reg; + void __user *reg_addr; + u64 data = 0; + u64 reg_size; + long ret; + + if (copy_from_user(®, argp, sizeof(reg))) + return -EFAULT; + + reg_addr = (void __user *)reg.addr; + reg_size = (reg.id & GZVM_REG_SIZE_MASK) >> GZVM_REG_SIZE_SHIFT; + reg_size = BIT(reg_size); + + if (is_write) { + if (copy_from_user(&data, reg_addr, reg_size)) + return -EFAULT; + } + + ret = gzvm_arch_vcpu_update_one_reg(vcpu, reg.id, is_write, &data); + + if (ret) + return ret; + + if (!is_write) { + if (copy_to_user(reg_addr, &data, reg_size)) + return -EFAULT; + } + + return 0; +} + +/** + * gzvm_vcpu_handle_mmio() - Handle mmio in kernel space. + * @vcpu: Pointer to vcpu. + * + * Return: + * * true - This mmio exit has been processed. + * * false - This mmio exit has not been processed, require userspace. + */ +static bool gzvm_vcpu_handle_mmio(struct gzvm_vcpu *vcpu) +{ + __u64 addr; + __u32 len; + const void *val_ptr; + + /* So far, we don't have in-kernel mmio read handler */ + if (!vcpu->run->mmio.is_write) + return false; + addr = vcpu->run->mmio.phys_addr; + len = vcpu->run->mmio.size; + val_ptr = &vcpu->run->mmio.data; + + return gzvm_ioevent_write(vcpu, addr, len, val_ptr); +} + +/** + * gzvm_vcpu_run() - Handle vcpu run ioctl, entry point to guest and exit + * point from guest + * @vcpu: Pointer to struct gzvm_vcpu + * @argp: Pointer to struct gzvm_vcpu_run in userspace + * + * Return: + * * 0 - Success. + * * Negative - Failure. + */ +static long gzvm_vcpu_run(struct gzvm_vcpu *vcpu, void * __user argp) +{ + bool need_userspace = false; + u64 exit_reason = 0; + + if (copy_from_user(vcpu->run, argp, sizeof(struct gzvm_vcpu_run))) + return -EFAULT; + + for (int i = 0; i < ARRAY_SIZE(vcpu->run->padding1); i++) { + if (vcpu->run->padding1[i]) + return -EINVAL; + } + + if (vcpu->run->immediate_exit == 1) + return -EINTR; + + while (!need_userspace && !signal_pending(current)) { + gzvm_arch_vcpu_run(vcpu, &exit_reason); + + switch (exit_reason) { + case GZVM_EXIT_MMIO: + if (!gzvm_vcpu_handle_mmio(vcpu)) + need_userspace = true; + break; + /** + * it's geniezone's responsibility to fill corresponding data + * structure + */ + case GZVM_EXIT_HYPERCALL: + fallthrough; + case GZVM_EXIT_EXCEPTION: + fallthrough; + case GZVM_EXIT_DEBUG: + fallthrough; + case GZVM_EXIT_FAIL_ENTRY: + fallthrough; + case GZVM_EXIT_INTERNAL_ERROR: + fallthrough; + case GZVM_EXIT_SYSTEM_EVENT: + fallthrough; + case GZVM_EXIT_SHUTDOWN: + need_userspace = true; + break; + case GZVM_EXIT_IRQ: + fallthrough; + case GZVM_EXIT_GZ: + break; + case GZVM_EXIT_UNKNOWN: + fallthrough; + default: + pr_err("vcpu unknown exit\n"); + need_userspace = true; + goto out; + } + } + +out: + if (copy_to_user(argp, vcpu->run, sizeof(struct gzvm_vcpu_run))) + return -EFAULT; + if (signal_pending(current)) { + // invoke hvc to inform gz to map memory + gzvm_arch_inform_exit(vcpu->gzvm->vm_id); + return -ERESTARTSYS; + } + return 0; +} + +static long gzvm_vcpu_ioctl(struct file *filp, unsigned int ioctl, + unsigned long arg) +{ + int ret = -ENOTTY; + void __user *argp = (void __user *)arg; + struct gzvm_vcpu *vcpu = filp->private_data; + + switch (ioctl) { + case GZVM_RUN: + ret = gzvm_vcpu_run(vcpu, argp); + break; + case GZVM_GET_ONE_REG: + /* is_write */ + ret = gzvm_vcpu_update_one_reg(vcpu, argp, false); + break; + case GZVM_SET_ONE_REG: + /* is_write */ + ret = gzvm_vcpu_update_one_reg(vcpu, argp, true); + break; + default: + break; + } + + return ret; +} + +static const struct file_operations gzvm_vcpu_fops = { + .unlocked_ioctl = gzvm_vcpu_ioctl, + .llseek = noop_llseek, +}; + +/* caller must hold the vm lock */ +static void gzvm_destroy_vcpu(struct gzvm_vcpu *vcpu) +{ + if (!vcpu) + return; + + gzvm_arch_destroy_vcpu(vcpu->gzvm->vm_id, vcpu->vcpuid); + /* clean guest's data */ + memset(vcpu->run, 0, GZVM_VCPU_RUN_MAP_SIZE); + free_pages_exact(vcpu->run, GZVM_VCPU_RUN_MAP_SIZE); + kfree(vcpu); +} + +/** + * gzvm_destroy_vcpus() - Destroy all vcpus, caller has to hold the vm lock + * + * @gzvm: vm struct that owns the vcpus + */ +void gzvm_destroy_vcpus(struct gzvm *gzvm) +{ + int i; + + for (i = 0; i < GZVM_MAX_VCPUS; i++) { + gzvm_destroy_vcpu(gzvm->vcpus[i]); + gzvm->vcpus[i] = NULL; + } +} + +/* create_vcpu_fd() - Allocates an inode for the vcpu. */ +static int create_vcpu_fd(struct gzvm_vcpu *vcpu) +{ + /* sizeof("gzvm-vcpu:") + max(strlen(itoa(vcpuid))) + null */ + char name[10 + ITOA_MAX_LEN + 1]; + + snprintf(name, sizeof(name), "gzvm-vcpu:%d", vcpu->vcpuid); + return anon_inode_getfd(name, &gzvm_vcpu_fops, vcpu, O_RDWR | O_CLOEXEC); +} + +/** + * gzvm_vm_ioctl_create_vcpu() - for GZVM_CREATE_VCPU + * @gzvm: Pointer to struct gzvm + * @cpuid: equals arg + * + * Return: Fd of vcpu, negative errno if error occurs + */ +int gzvm_vm_ioctl_create_vcpu(struct gzvm *gzvm, u32 cpuid) +{ + struct gzvm_vcpu *vcpu; + int ret; + + if (cpuid >= GZVM_MAX_VCPUS) + return -EINVAL; + + vcpu = kzalloc(sizeof(*vcpu), GFP_KERNEL); + if (!vcpu) + return -ENOMEM; + + /** + * Allocate 2 pages for data sharing between driver and gz hypervisor + * + * |- page 0 -|- page 1 -| + * |gzvm_vcpu_run|......|hwstate|.......| + * + */ + vcpu->run = alloc_pages_exact(GZVM_VCPU_RUN_MAP_SIZE, + GFP_KERNEL_ACCOUNT | __GFP_ZERO); + if (!vcpu->run) { + ret = -ENOMEM; + goto free_vcpu; + } + vcpu->hwstate = (void *)vcpu->run + PAGE_SIZE; + vcpu->vcpuid = cpuid; + vcpu->gzvm = gzvm; + mutex_init(&vcpu->lock); + + ret = gzvm_arch_create_vcpu(gzvm->vm_id, vcpu->vcpuid, vcpu->run); + if (ret < 0) + goto free_vcpu_run; + + ret = create_vcpu_fd(vcpu); + if (ret < 0) + goto free_vcpu_run; + gzvm->vcpus[cpuid] = vcpu; + + return ret; + +free_vcpu_run: + free_pages_exact(vcpu->run, GZVM_VCPU_RUN_MAP_SIZE); +free_vcpu: + kfree(vcpu); + return ret; +} diff --git a/drivers/virt/geniezone/gzvm_vm.c b/drivers/virt/geniezone/gzvm_vm.c new file mode 100644 index 000000000000..8e9967b754df --- /dev/null +++ b/drivers/virt/geniezone/gzvm_vm.c @@ -0,0 +1,539 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#include <linux/anon_inodes.h> +#include <linux/file.h> +#include <linux/kdev_t.h> +#include <linux/mm.h> +#include <linux/module.h> +#include <linux/platform_device.h> +#include <linux/slab.h> +#include <linux/gzvm_drv.h> +#include "gzvm_common.h" + +static DEFINE_MUTEX(gzvm_list_lock); +static LIST_HEAD(gzvm_list); + +/** + * hva_to_pa_fast() - converts hva to pa in generic fast way + * @hva: Host virtual address. + * + * Return: 0 if translation error + */ +static u64 hva_to_pa_fast(u64 hva) +{ + struct page *page[1]; + + u64 pfn; + + if (get_user_page_fast_only(hva, 0, page)) { + pfn = page_to_phys(page[0]); + put_page((struct page *)page); + return pfn; + } else { + return 0; + } +} + +/** + * hva_to_pa_slow() - note that this function may sleep + * @hva: Host virtual address. + * + * Return: 0 if translation error + */ +static u64 hva_to_pa_slow(u64 hva) +{ + struct page *page; + int npages; + u64 pfn; + + npages = get_user_pages_unlocked(hva, 1, &page, 0); + if (npages != 1) + return 0; + + pfn = page_to_phys(page); + put_page(page); + + return pfn; +} + +static u64 gzvm_gfn_to_hva_memslot(struct gzvm_memslot *memslot, u64 gfn) +{ + u64 offset = gfn - memslot->base_gfn; + + return memslot->userspace_addr + offset * PAGE_SIZE; +} + +static u64 __gzvm_gfn_to_pfn_memslot(struct gzvm_memslot *memslot, u64 gfn) +{ + u64 hva, pa; + + hva = gzvm_gfn_to_hva_memslot(memslot, gfn); + + pa = gzvm_hva_to_pa_arch(hva); + if (pa != 0) + return PHYS_PFN(pa); + + pa = hva_to_pa_fast(hva); + if (pa) + return PHYS_PFN(pa); + + pa = hva_to_pa_slow(hva); + if (pa) + return PHYS_PFN(pa); + + return 0; +} + +/** + * gzvm_gfn_to_pfn_memslot() - Translate gfn (guest ipa) to pfn (host pa), + * result is in @pfn + * @memslot: Pointer to struct gzvm_memslot. + * @gfn: Guest frame number. + * @pfn: Host page frame number. + * + * Return: + * * 0 - Succeed + * * -EFAULT - Failed to convert + */ +static int gzvm_gfn_to_pfn_memslot(struct gzvm_memslot *memslot, u64 gfn, + u64 *pfn) +{ + u64 __pfn; + + if (!memslot) + return -EFAULT; + + __pfn = __gzvm_gfn_to_pfn_memslot(memslot, gfn); + if (__pfn == 0) { + *pfn = 0; + return -EFAULT; + } + + *pfn = __pfn; + + return 0; +} + +/** + * fill_constituents() - Populate pa to buffer until full + * @consti: Pointer to struct mem_region_addr_range. + * @consti_cnt: Constituent count. + * @max_nr_consti: Maximum number of constituent count. + * @gfn: Guest frame number. + * @total_pages: Total page numbers. + * @slot: Pointer to struct gzvm_memslot. + * + * Return: how many pages we've fill in, negative if error + */ +static int fill_constituents(struct mem_region_addr_range *consti, + int *consti_cnt, int max_nr_consti, u64 gfn, + u32 total_pages, struct gzvm_memslot *slot) +{ + u64 pfn, prev_pfn, gfn_end; + int nr_pages = 1; + int i = 0; + + if (unlikely(total_pages == 0)) + return -EINVAL; + gfn_end = gfn + total_pages; + + /* entry 0 */ + if (gzvm_gfn_to_pfn_memslot(slot, gfn, &pfn) != 0) + return -EFAULT; + consti[0].address = PFN_PHYS(pfn); + consti[0].pg_cnt = 1; + gfn++; + prev_pfn = pfn; + + while (i < max_nr_consti && gfn < gfn_end) { + if (gzvm_gfn_to_pfn_memslot(slot, gfn, &pfn) != 0) + return -EFAULT; + if (pfn == (prev_pfn + 1)) { + consti[i].pg_cnt++; + } else { + i++; + if (i >= max_nr_consti) + break; + consti[i].address = PFN_PHYS(pfn); + consti[i].pg_cnt = 1; + } + prev_pfn = pfn; + gfn++; + nr_pages++; + } + if (i != max_nr_consti) + i++; + *consti_cnt = i; + + return nr_pages; +} + +/* register_memslot_addr_range() - Register memory region to GZ */ +static int +register_memslot_addr_range(struct gzvm *gzvm, struct gzvm_memslot *memslot) +{ + struct gzvm_memory_region_ranges *region; + u32 buf_size; + int max_nr_consti, remain_pages; + u64 gfn, gfn_end; + + buf_size = PAGE_SIZE * 2; + region = alloc_pages_exact(buf_size, GFP_KERNEL); + if (!region) + return -ENOMEM; + max_nr_consti = (buf_size - sizeof(*region)) / + sizeof(struct mem_region_addr_range); + + region->slot = memslot->slot_id; + remain_pages = memslot->npages; + gfn = memslot->base_gfn; + gfn_end = gfn + remain_pages; + while (gfn < gfn_end) { + int nr_pages; + + nr_pages = fill_constituents(region->constituents, + ®ion->constituent_cnt, + max_nr_consti, gfn, + remain_pages, memslot); + if (nr_pages < 0) { + pr_err("Failed to fill constituents\n"); + free_pages_exact(region, buf_size); + return nr_pages; + } + region->gpa = PFN_PHYS(gfn); + region->total_pages = nr_pages; + + remain_pages -= nr_pages; + gfn += nr_pages; + + if (gzvm_arch_set_memregion(gzvm->vm_id, buf_size, + virt_to_phys(region))) { + pr_err("Failed to register memregion to hypervisor\n"); + free_pages_exact(region, buf_size); + return -EFAULT; + } + } + free_pages_exact(region, buf_size); + return 0; +} + +/** + * gzvm_vm_ioctl_set_memory_region() - Set memory region of guest + * @gzvm: Pointer to struct gzvm. + * @mem: Input memory region from user. + * + * Return: + * * -EXIO - memslot is out-of-range + * * -EFAULT - Cannot find corresponding vma + * * -EINVAL - region size and vma size does not match + */ +static int +gzvm_vm_ioctl_set_memory_region(struct gzvm *gzvm, + struct gzvm_userspace_memory_region *mem) +{ + int ret; + struct vm_area_struct *vma; + struct gzvm_memslot *memslot; + unsigned long size; + __u32 slot; + + slot = mem->slot; + if (slot >= GZVM_MAX_MEM_REGION) + return -ENXIO; + memslot = &gzvm->memslot[slot]; + + vma = vma_lookup(gzvm->mm, mem->userspace_addr); + if (!vma) + return -EFAULT; + + size = vma->vm_end - vma->vm_start; + if (size != mem->memory_size) + return -EINVAL; + + memslot->base_gfn = __phys_to_pfn(mem->guest_phys_addr); + memslot->npages = size >> PAGE_SHIFT; + memslot->userspace_addr = mem->userspace_addr; + memslot->vma = vma; + memslot->flags = mem->flags; + memslot->slot_id = mem->slot; + + ret = gzvm_arch_memregion_purpose(gzvm, mem); + if (ret) { + pr_err("Failed to config memory region for the specified purpose\n"); + return -EFAULT; + } + return register_memslot_addr_range(gzvm, memslot); +} + +int gzvm_irqchip_inject_irq(struct gzvm *gzvm, unsigned int vcpu_idx, + u32 irq_type, u32 irq, bool level) +{ + return gzvm_arch_inject_irq(gzvm, vcpu_idx, irq_type, irq, level); +} + +static int gzvm_vm_ioctl_irq_line(struct gzvm *gzvm, + struct gzvm_irq_level *irq_level) +{ + u32 irq = irq_level->irq; + u32 irq_type, vcpu_idx, vcpu2_idx, irq_num; + bool level = irq_level->level; + + irq_type = FIELD_GET(GZVM_IRQ_LINE_TYPE, irq); + vcpu_idx = FIELD_GET(GZVM_IRQ_LINE_VCPU, irq); + vcpu2_idx = FIELD_GET(GZVM_IRQ_LINE_VCPU2, irq) * (GZVM_IRQ_VCPU_MASK + 1); + irq_num = FIELD_GET(GZVM_IRQ_LINE_NUM, irq); + + return gzvm_irqchip_inject_irq(gzvm, vcpu_idx + vcpu2_idx, irq_type, irq_num, + level); +} + +static int gzvm_vm_ioctl_create_device(struct gzvm *gzvm, void __user *argp) +{ + struct gzvm_create_device *gzvm_dev; + void *dev_data = NULL; + int ret; + + gzvm_dev = (struct gzvm_create_device *)alloc_pages_exact(PAGE_SIZE, + GFP_KERNEL); + if (!gzvm_dev) + return -ENOMEM; + if (copy_from_user(gzvm_dev, argp, sizeof(*gzvm_dev))) { + ret = -EFAULT; + goto err_free_dev; + } + + if (gzvm_dev->attr_addr != 0 && gzvm_dev->attr_size != 0) { + size_t attr_size = gzvm_dev->attr_size; + void __user *attr_addr = (void __user *)gzvm_dev->attr_addr; + + /* Size of device specific data should not be over a page. */ + if (attr_size > PAGE_SIZE) + return -EINVAL; + + dev_data = alloc_pages_exact(attr_size, GFP_KERNEL); + if (!dev_data) { + ret = -ENOMEM; + goto err_free_dev; + } + + if (copy_from_user(dev_data, attr_addr, attr_size)) { + ret = -EFAULT; + goto err_free_dev_data; + } + gzvm_dev->attr_addr = virt_to_phys(dev_data); + } + + ret = gzvm_arch_create_device(gzvm->vm_id, gzvm_dev); +err_free_dev_data: + if (dev_data) + free_pages_exact(dev_data, 0); +err_free_dev: + free_pages_exact(gzvm_dev, 0); + return ret; +} + +static int gzvm_vm_ioctl_enable_cap(struct gzvm *gzvm, + struct gzvm_enable_cap *cap, + void __user *argp) +{ + return gzvm_vm_ioctl_arch_enable_cap(gzvm, cap, argp); +} + +/* gzvm_vm_ioctl() - Ioctl handler of VM FD */ +static long gzvm_vm_ioctl(struct file *filp, unsigned int ioctl, + unsigned long arg) +{ + long ret = -ENOTTY; + void __user *argp = (void __user *)arg; + struct gzvm *gzvm = filp->private_data; + + switch (ioctl) { + case GZVM_CHECK_EXTENSION: { + ret = gzvm_dev_ioctl_check_extension(gzvm, arg); + break; + } + case GZVM_CREATE_VCPU: { + ret = gzvm_vm_ioctl_create_vcpu(gzvm, arg); + break; + } + case GZVM_SET_USER_MEMORY_REGION: { + struct gzvm_userspace_memory_region userspace_mem; + + if (copy_from_user(&userspace_mem, argp, sizeof(userspace_mem))) { + ret = -EFAULT; + goto out; + } + ret = gzvm_vm_ioctl_set_memory_region(gzvm, &userspace_mem); + break; + } + case GZVM_IRQ_LINE: { + struct gzvm_irq_level irq_event; + + if (copy_from_user(&irq_event, argp, sizeof(irq_event))) { + ret = -EFAULT; + goto out; + } + ret = gzvm_vm_ioctl_irq_line(gzvm, &irq_event); + break; + } + case GZVM_CREATE_DEVICE: { + ret = gzvm_vm_ioctl_create_device(gzvm, argp); + break; + } + case GZVM_IRQFD: { + struct gzvm_irqfd data; + + if (copy_from_user(&data, argp, sizeof(data))) { + ret = -EFAULT; + goto out; + } + ret = gzvm_irqfd(gzvm, &data); + break; + } + case GZVM_IOEVENTFD: { + struct gzvm_ioeventfd data; + + if (copy_from_user(&data, argp, sizeof(data))) { + ret = -EFAULT; + goto out; + } + ret = gzvm_ioeventfd(gzvm, &data); + break; + } + case GZVM_ENABLE_CAP: { + struct gzvm_enable_cap cap; + + if (copy_from_user(&cap, argp, sizeof(cap))) { + ret = -EFAULT; + goto out; + } + ret = gzvm_vm_ioctl_enable_cap(gzvm, &cap, argp); + break; + } + case GZVM_SET_DTB_CONFIG: { + struct gzvm_dtb_config cfg; + + if (copy_from_user(&cfg, argp, sizeof(cfg))) { + ret = -EFAULT; + goto out; + } + ret = gzvm_arch_set_dtb_config(gzvm, &cfg); + break; + } + default: + ret = -ENOTTY; + } +out: + return ret; +} + +static void gzvm_destroy_vm(struct gzvm *gzvm) +{ + pr_debug("VM-%u is going to be destroyed\n", gzvm->vm_id); + + mutex_lock(&gzvm->lock); + + gzvm_vm_irqfd_release(gzvm); + gzvm_destroy_vcpus(gzvm); + gzvm_arch_destroy_vm(gzvm->vm_id); + + mutex_lock(&gzvm_list_lock); + list_del(&gzvm->vm_list); + mutex_unlock(&gzvm_list_lock); + + mutex_unlock(&gzvm->lock); + + kfree(gzvm); +} + +static int gzvm_vm_release(struct inode *inode, struct file *filp) +{ + struct gzvm *gzvm = filp->private_data; + + gzvm_destroy_vm(gzvm); + return 0; +} + +static const struct file_operations gzvm_vm_fops = { + .release = gzvm_vm_release, + .unlocked_ioctl = gzvm_vm_ioctl, + .llseek = noop_llseek, +}; + +static struct gzvm *gzvm_create_vm(unsigned long vm_type) +{ + int ret; + struct gzvm *gzvm; + + gzvm = kzalloc(sizeof(*gzvm), GFP_KERNEL); + if (!gzvm) + return ERR_PTR(-ENOMEM); + + ret = gzvm_arch_create_vm(vm_type); + if (ret < 0) { + kfree(gzvm); + return ERR_PTR(ret); + } + + gzvm->vm_id = ret; + gzvm->mm = current->mm; + mutex_init(&gzvm->lock); + + ret = gzvm_vm_irqfd_init(gzvm); + if (ret) { + pr_err("Failed to initialize irqfd\n"); + kfree(gzvm); + return ERR_PTR(ret); + } + + ret = gzvm_init_ioeventfd(gzvm); + if (ret) { + pr_err("Failed to initialize ioeventfd\n"); + kfree(gzvm); + return ERR_PTR(ret); + } + + mutex_lock(&gzvm_list_lock); + list_add(&gzvm->vm_list, &gzvm_list); + mutex_unlock(&gzvm_list_lock); + + pr_debug("VM-%u is created\n", gzvm->vm_id); + + return gzvm; +} + +/** + * gzvm_dev_ioctl_create_vm - Create vm fd + * @vm_type: VM type. Only supports Linux VM now. + * + * Return: fd of vm, negative if error + */ +int gzvm_dev_ioctl_create_vm(unsigned long vm_type) +{ + struct gzvm *gzvm; + + gzvm = gzvm_create_vm(vm_type); + if (IS_ERR(gzvm)) + return PTR_ERR(gzvm); + + return anon_inode_getfd("gzvm-vm", &gzvm_vm_fops, gzvm, + O_RDWR | O_CLOEXEC); +} + +void gzvm_destroy_all_vms(void) +{ + struct gzvm *gzvm, *tmp; + + mutex_lock(&gzvm_list_lock); + if (list_empty(&gzvm_list)) + goto out; + + list_for_each_entry_safe(gzvm, tmp, &gzvm_list, vm_list) + gzvm_destroy_vm(gzvm); + +out: + mutex_unlock(&gzvm_list_lock); +} diff --git a/drivers/virt/gunyah/gunyah_platform_hooks.c b/drivers/virt/gunyah/gunyah_platform_hooks.c index 60da0e154e98..905515b4589e 100644 --- a/drivers/virt/gunyah/gunyah_platform_hooks.c +++ b/drivers/virt/gunyah/gunyah_platform_hooks.c @@ -9,7 +9,7 @@ #include "rsc_mgr.h" -static struct gh_rm_platform_ops *rm_platform_ops; +static const struct gh_rm_platform_ops *rm_platform_ops; static DECLARE_RWSEM(rm_platform_ops_lock); int gh_rm_platform_pre_mem_share(struct gh_rm *rm, struct gh_rm_mem_parcel *mem_parcel) @@ -36,7 +36,7 @@ int gh_rm_platform_post_mem_reclaim(struct gh_rm *rm, struct gh_rm_mem_parcel *m } EXPORT_SYMBOL_GPL(gh_rm_platform_post_mem_reclaim); -int gh_rm_register_platform_ops(struct gh_rm_platform_ops *platform_ops) +int gh_rm_register_platform_ops(const struct gh_rm_platform_ops *platform_ops) { int ret = 0; @@ -50,7 +50,7 @@ int gh_rm_register_platform_ops(struct gh_rm_platform_ops *platform_ops) } EXPORT_SYMBOL_GPL(gh_rm_register_platform_ops); -void gh_rm_unregister_platform_ops(struct gh_rm_platform_ops *platform_ops) +void gh_rm_unregister_platform_ops(const struct gh_rm_platform_ops *platform_ops) { down_write(&rm_platform_ops_lock); if (rm_platform_ops == platform_ops) @@ -61,10 +61,10 @@ EXPORT_SYMBOL_GPL(gh_rm_unregister_platform_ops); static void _devm_gh_rm_unregister_platform_ops(void *data) { - gh_rm_unregister_platform_ops(data); + gh_rm_unregister_platform_ops((const struct gh_rm_platform_ops *)data); } -int devm_gh_rm_register_platform_ops(struct device *dev, struct gh_rm_platform_ops *ops) +int devm_gh_rm_register_platform_ops(struct device *dev, const struct gh_rm_platform_ops *ops) { int ret; @@ -72,7 +72,7 @@ int devm_gh_rm_register_platform_ops(struct device *dev, struct gh_rm_platform_o if (ret) return ret; - return devm_add_action(dev, _devm_gh_rm_unregister_platform_ops, ops); + return devm_add_action(dev, _devm_gh_rm_unregister_platform_ops, (void *)ops); } EXPORT_SYMBOL_GPL(devm_gh_rm_register_platform_ops); diff --git a/drivers/virt/gunyah/gunyah_qcom.c b/drivers/virt/gunyah/gunyah_qcom.c index 996688446b06..be5363f53bd8 100644 --- a/drivers/virt/gunyah/gunyah_qcom.c +++ b/drivers/virt/gunyah/gunyah_qcom.c @@ -38,36 +38,40 @@ static int qcom_scm_gh_rm_pre_mem_share(void *rm, struct gh_rm_mem_parcel *mem_p new_perms[n].perm |= QCOM_SCM_PERM_READ; } - src = (1ull << QCOM_SCM_VMID_HLOS); + src = BIT_ULL(QCOM_SCM_VMID_HLOS); for (i = 0; i < mem_parcel->n_mem_entries; i++) { src_cpy = src; ret = qcom_scm_assign_mem(le64_to_cpu(mem_parcel->mem_entries[i].phys_addr), le64_to_cpu(mem_parcel->mem_entries[i].size), &src_cpy, new_perms, mem_parcel->n_acl_entries); - if (ret) { - src = 0; - for (n = 0; n < mem_parcel->n_acl_entries; n++) { - vmid = le16_to_cpu(mem_parcel->acl_entries[n].vmid); - if (vmid <= QCOM_SCM_MAX_MANAGED_VMID) - src |= (1ull << vmid); - else - src |= (1ull << QCOM_SCM_RM_MANAGED_VMID); - } - - new_perms[0].vmid = QCOM_SCM_VMID_HLOS; - - for (i--; i >= 0; i--) { - src_cpy = src; - WARN_ON_ONCE(qcom_scm_assign_mem( - le64_to_cpu(mem_parcel->mem_entries[i].phys_addr), - le64_to_cpu(mem_parcel->mem_entries[i].size), - &src_cpy, new_perms, 1)); - } + if (ret) break; - } } + if (!ret) + goto out; + + src = 0; + for (n = 0; n < mem_parcel->n_acl_entries; n++) { + vmid = le16_to_cpu(mem_parcel->acl_entries[n].vmid); + if (vmid <= QCOM_SCM_MAX_MANAGED_VMID) + src |= BIT_ULL(vmid); + else + src |= BIT_ULL(QCOM_SCM_RM_MANAGED_VMID); + } + + new_perms[0].vmid = QCOM_SCM_VMID_HLOS; + + for (i--; i >= 0; i--) { + src_cpy = src; + WARN_ON_ONCE(qcom_scm_assign_mem( + le64_to_cpu(mem_parcel->mem_entries[i].phys_addr), + le64_to_cpu(mem_parcel->mem_entries[i].size), + &src_cpy, new_perms, 1)); + } + +out: kfree(new_perms); return ret; } @@ -117,13 +121,15 @@ static bool gh_has_qcom_extensions(void) { struct arm_smccc_res res; uuid_t uuid; + u32 *up; arm_smccc_1_1_smc(GH_QCOM_EXT_CALL_UUID_ID, &res); - ((u32 *)&uuid.b[0])[0] = lower_32_bits(res.a0); - ((u32 *)&uuid.b[0])[1] = lower_32_bits(res.a1); - ((u32 *)&uuid.b[0])[2] = lower_32_bits(res.a2); - ((u32 *)&uuid.b[0])[3] = lower_32_bits(res.a3); + up = (u32 *)&uuid.b[0]; + up[0] = lower_32_bits(res.a0); + up[1] = lower_32_bits(res.a1); + up[2] = lower_32_bits(res.a2); + up[3] = lower_32_bits(res.a3); return uuid_equal(&uuid, &QCOM_EXT_UUID); } diff --git a/drivers/virt/gunyah/gunyah_vcpu.c b/drivers/virt/gunyah/gunyah_vcpu.c index 4f0bbd58a205..82a0cbf55caf 100644 --- a/drivers/virt/gunyah/gunyah_vcpu.c +++ b/drivers/virt/gunyah/gunyah_vcpu.c @@ -335,6 +335,8 @@ static bool gh_vcpu_populate(struct gh_vm_resource_ticket *ticket, struct gh_res if (ret) pr_warn("Failed to request vcpu irq %d: %d", vcpu->rsc->irq, ret); + enable_irq_wake(vcpu->rsc->irq); + out: mutex_unlock(&vcpu->run_lock); return !ret; diff --git a/drivers/virt/gunyah/rsc_mgr.c b/drivers/virt/gunyah/rsc_mgr.c index 2df3283f0b45..170a2d37da68 100644 --- a/drivers/virt/gunyah/rsc_mgr.c +++ b/drivers/virt/gunyah/rsc_mgr.c @@ -123,7 +123,7 @@ struct gh_rm_connection { /** * struct gh_rm - private data for communicating w/Gunyah resource manager - * @dev: pointer to device + * @dev: pointer to RM platform device * @tx_ghrsc: message queue resource to TX to RM * @rx_ghrsc: message queue resource to RX from RM * @msgq: mailbox instance of TX/RX resources above @@ -160,10 +160,10 @@ struct gh_rm { }; /** - * gh_rm_remap_error() - Remap Gunyah resource manager errors into a Linux error code + * gh_rm_error_remap() - Remap Gunyah resource manager errors into a Linux error code * @rm_error: "Standard" return value from Gunyah resource manager */ -static inline int gh_rm_remap_error(enum gh_rm_error rm_error) +static inline int gh_rm_error_remap(enum gh_rm_error rm_error) { switch (rm_error) { case GH_RM_ERROR_OK: @@ -226,7 +226,7 @@ static int gh_rm_irq_domain_alloc(struct irq_domain *d, unsigned int virq, unsig void *arg) { struct gh_irq_chip_data *chip_data, *spec = arg; - struct irq_fwspec parent_fwspec; + struct irq_fwspec parent_fwspec = {}; struct gh_rm *rm = d->host_data; u32 gh_virq = spec->gh_virq; int ret; @@ -300,7 +300,7 @@ struct gh_resource *gh_rm_alloc_resource(struct gh_rm *rm, struct gh_rm_hyp_reso ghrsc->capid = le64_to_cpu(hyp_resource->cap_id); ghrsc->irq = IRQ_NOTCONNECTED; ghrsc->rm_label = le32_to_cpu(hyp_resource->resource_label); - if (hyp_resource->virq) { + if (hyp_resource->virq && hyp_resource->virq != GH_RM_RESOURCE_NO_VIRQ) { struct gh_irq_chip_data irq_data = { .gh_virq = le32_to_cpu(hyp_resource->virq), }; @@ -309,7 +309,9 @@ struct gh_resource *gh_rm_alloc_resource(struct gh_rm *rm, struct gh_rm_hyp_reso if (ret < 0) { dev_err(rm->dev, "Failed to allocate interrupt for resource %d label: %d: %d\n", - ghrsc->type, ghrsc->rm_label, ghrsc->irq); + ghrsc->type, ghrsc->rm_label, ret); + kfree(ghrsc); + return NULL; } else { ghrsc->irq = ret; } @@ -417,7 +419,7 @@ static void gh_rm_process_notif(struct gh_rm *rm, void *msg, size_t msg_size) rm->active_rx_connection = connection; } -static void gh_rm_process_rply(struct gh_rm *rm, void *msg, size_t msg_size) +static void gh_rm_process_reply(struct gh_rm *rm, void *msg, size_t msg_size) { struct gh_rm_rpc_reply_hdr *reply_hdr = msg; struct gh_rm_connection *connection; @@ -514,7 +516,7 @@ static void gh_rm_msgq_rx_data(struct mbox_client *cl, void *mssg) gh_rm_process_notif(rm, msg, msg_size); break; case RM_RPC_TYPE_REPLY: - gh_rm_process_rply(rm, msg, msg_size); + gh_rm_process_reply(rm, msg, msg_size); break; case RM_RPC_TYPE_CONTINUATION: gh_rm_process_cont(rm, rm->active_rx_connection, msg, msg_size); @@ -565,10 +567,7 @@ static int gh_rm_send_request(struct gh_rm *rm, u32 message_id, hdr_template.seq = cpu_to_le16(connection->reply.seq); hdr_template.msg_id = cpu_to_le32(message_id); - ret = mutex_lock_interruptible(&rm->send_lock); - if (ret) - return ret; - + mutex_lock(&rm->send_lock); do { msg = kmem_cache_zalloc(rm->cache, GFP_KERNEL); if (!msg) { @@ -665,10 +664,10 @@ int gh_rm_call(void *_rm, u32 message_id, const void *req_buf, size_t req_buf_si if (ret < 0) goto out; - /* Wait for response */ - ret = wait_for_completion_interruptible(&connection->reply.seq_done); - if (ret) - goto out; + /* Wait for response. Uninterruptible because rollback based on what RM did to VM + * requires us to know how RM handled the call. + */ + wait_for_completion(&connection->reply.seq_done); /* Check for internal (kernel) error waiting for the response */ if (connection->reply.ret) { @@ -682,8 +681,7 @@ int gh_rm_call(void *_rm, u32 message_id, const void *req_buf, size_t req_buf_si if (connection->reply.rm_error != GH_RM_ERROR_OK) { dev_warn(rm->dev, "RM rejected message %08x. Error: %d\n", message_id, connection->reply.rm_error); - dump_stack(); - ret = gh_rm_remap_error(connection->reply.rm_error); + ret = gh_rm_error_remap(connection->reply.rm_error); kfree(connection->payload); goto out; } @@ -913,7 +911,6 @@ err_misc_device: err_irq_domain: irq_domain_remove(rm->irq_domain); err_msgq: - mbox_free_channel(gh_msgq_chan(&rm->msgq)); gh_msgq_remove(&rm->msgq); err_cache: kmem_cache_destroy(rm->cache); @@ -928,7 +925,6 @@ static int gh_rm_drv_remove(struct platform_device *pdev) auxiliary_device_uninit(&rm->adev); misc_deregister(&rm->miscdev); irq_domain_remove(rm->irq_domain); - mbox_free_channel(gh_msgq_chan(&rm->msgq)); gh_msgq_remove(&rm->msgq); kmem_cache_destroy(rm->cache); diff --git a/drivers/virt/gunyah/rsc_mgr_rpc.c b/drivers/virt/gunyah/rsc_mgr_rpc.c index f48e7df2dbef..3deb2e456866 100644 --- a/drivers/virt/gunyah/rsc_mgr_rpc.c +++ b/drivers/virt/gunyah/rsc_mgr_rpc.c @@ -139,7 +139,7 @@ static int _gh_rm_mem_append(struct gh_rm *rm, u32 mem_handle, bool end_append, return -ENOMEM; req_header = msg; - mem_section = (void *)req_header + sizeof(struct gh_rm_mem_append_req_header); + mem_section = (void *)(req_header + 1); req_header->mem_handle = cpu_to_le32(mem_handle); if (end_append) diff --git a/drivers/virt/gunyah/vm_mgr.c b/drivers/virt/gunyah/vm_mgr.c index 4e824758ddf3..e643e33668b4 100644 --- a/drivers/virt/gunyah/vm_mgr.c +++ b/drivers/virt/gunyah/vm_mgr.c @@ -31,13 +31,10 @@ static void gh_vm_put_function(struct gh_vm_function *fn) static struct gh_vm_function *gh_vm_get_function(u32 type) { struct gh_vm_function *fn; - int r; fn = xa_load(&gh_vm_functions, type); if (!fn) { - r = request_module("ghfunc:%d", type); - if (r) - return ERR_PTR(r > 0 ? -r : r); + request_module("ghfunc:%d", type); fn = xa_load(&gh_vm_functions, type); } @@ -617,7 +614,7 @@ static int gh_vm_ensure_started(struct gh_vm *ghvm) if (ret) return ret; /** gh_vm_start() is guaranteed to bring status out of - * GH_RM_VM_STATUS_LOAD, thus inifitely recursive call is not + * GH_RM_VM_STATUS_LOAD, thus infinitely recursive call is not * possible */ return gh_vm_ensure_started(ghvm); @@ -668,10 +665,6 @@ static long gh_vm_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) if (overflows_type(dtb_config.guest_phys_addr + dtb_config.size, u64)) return -EOVERFLOW; - /* Gunyah requires that dtb_config is page aligned */ - if (!PAGE_ALIGNED(dtb_config.guest_phys_addr) || !PAGE_ALIGNED(dtb_config.size)) - return -EINVAL; - ghvm->dtb_config = dtb_config; r = 0; diff --git a/drivers/virt/gunyah/vm_mgr_mm.c b/drivers/virt/gunyah/vm_mgr_mm.c index 627225ba4ca7..f7ddfd82910a 100644 --- a/drivers/virt/gunyah/vm_mgr_mm.c +++ b/drivers/virt/gunyah/vm_mgr_mm.c @@ -14,9 +14,7 @@ static bool pages_are_mergeable(struct page *a, struct page *b) { - if (page_to_pfn(a) + 1 != page_to_pfn(b)) - return false; - return true; + return page_to_pfn(a) + 1 == page_to_pfn(b); } static bool gh_vm_mem_overlap(struct gh_vm_mem *a, u64 addr, u64 size) diff --git a/fs/OWNERS b/fs/OWNERS deleted file mode 100644 index 7780f6be0335..000000000000 --- a/fs/OWNERS +++ /dev/null @@ -1 +0,0 @@ -per-file {crypto,verity}/**=ebiggers@google.com diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 444302afc673..e6c9c0e08448 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -315,10 +315,10 @@ create_elf_tables(struct linux_binprm *bprm, const struct elfhdr *exec, * Grow the stack manually; some architectures have a limit on how * far ahead a user-space access may be in order to grow the stack. */ - if (mmap_read_lock_killable(mm)) + if (mmap_write_lock_killable(mm)) return -EINTR; - vma = find_extend_vma(mm, bprm->p); - mmap_read_unlock(mm); + vma = find_extend_vma_locked(mm, bprm->p); + mmap_write_unlock(mm); if (!vma) return -EFAULT; diff --git a/fs/cifs/fs_context.c b/fs/cifs/fs_context.c index 89e810b27a4b..6bd713c6c869 100644 --- a/fs/cifs/fs_context.c +++ b/fs/cifs/fs_context.c @@ -1479,6 +1479,7 @@ static int smb3_fs_context_parse_param(struct fs_context *fc, cifs_parse_mount_err: kfree_sensitive(ctx->password); + ctx->password = NULL; return -EINVAL; } diff --git a/fs/drop_caches.c b/fs/drop_caches.c index e619c31b6bd9..b9575957a7c2 100644 --- a/fs/drop_caches.c +++ b/fs/drop_caches.c @@ -10,6 +10,7 @@ #include <linux/writeback.h> #include <linux/sysctl.h> #include <linux/gfp.h> +#include <linux/swap.h> #include "internal.h" /* A global variable is a bit ugly, but it keeps the code simple */ @@ -59,6 +60,7 @@ int drop_caches_sysctl_handler(struct ctl_table *table, int write, static int stfu; if (sysctl_drop_caches & 1) { + lru_add_drain_all(); iterate_supers(drop_pagecache_sb, NULL); count_vm_event(DROP_PAGECACHE); } diff --git a/fs/erofs/data.c b/fs/erofs/data.c index a6cfb2ac1cd1..83532525282e 100644 --- a/fs/erofs/data.c +++ b/fs/erofs/data.c @@ -29,11 +29,15 @@ void erofs_put_metabuf(struct erofs_buf *buf) buf->page = NULL; } +/* + * Derive the block size from inode->i_blkbits to make compatible with + * anonymous inode in fscache mode. + */ void *erofs_bread(struct erofs_buf *buf, struct inode *inode, erofs_blk_t blkaddr, enum erofs_kmap_type type) { + erofs_off_t offset = (erofs_off_t)blkaddr << inode->i_blkbits; struct address_space *const mapping = inode->i_mapping; - erofs_off_t offset = blknr_to_addr(blkaddr); pgoff_t index = offset >> PAGE_SHIFT; struct page *page = buf->page; struct folio *folio; @@ -84,36 +88,32 @@ static int erofs_map_blocks_flatmode(struct inode *inode, erofs_blk_t nblocks, lastblk; u64 offset = map->m_la; struct erofs_inode *vi = EROFS_I(inode); + struct super_block *sb = inode->i_sb; bool tailendpacking = (vi->datalayout == EROFS_INODE_FLAT_INLINE); - nblocks = DIV_ROUND_UP(inode->i_size, EROFS_BLKSIZ); + nblocks = erofs_iblks(inode); lastblk = nblocks - tailendpacking; /* there is no hole in flatmode */ map->m_flags = EROFS_MAP_MAPPED; - if (offset < blknr_to_addr(lastblk)) { - map->m_pa = blknr_to_addr(vi->raw_blkaddr) + map->m_la; - map->m_plen = blknr_to_addr(lastblk) - offset; + if (offset < erofs_pos(sb, lastblk)) { + map->m_pa = erofs_pos(sb, vi->raw_blkaddr) + map->m_la; + map->m_plen = erofs_pos(sb, lastblk) - offset; } else if (tailendpacking) { - /* 2 - inode inline B: inode, [xattrs], inline last blk... */ - struct erofs_sb_info *sbi = EROFS_SB(inode->i_sb); - - map->m_pa = iloc(sbi, vi->nid) + vi->inode_isize + - vi->xattr_isize + erofs_blkoff(map->m_la); + map->m_pa = erofs_iloc(inode) + vi->inode_isize + + vi->xattr_isize + erofs_blkoff(sb, offset); map->m_plen = inode->i_size - offset; /* inline data should be located in the same meta block */ - if (erofs_blkoff(map->m_pa) + map->m_plen > EROFS_BLKSIZ) { - erofs_err(inode->i_sb, - "inline data cross block boundary @ nid %llu", + if (erofs_blkoff(sb, map->m_pa) + map->m_plen > sb->s_blocksize) { + erofs_err(sb, "inline data cross block boundary @ nid %llu", vi->nid); DBG_BUGON(1); return -EFSCORRUPTED; } map->m_flags |= EROFS_MAP_META; } else { - erofs_err(inode->i_sb, - "internal error @ nid: %llu (size %llu), m_la 0x%llx", + erofs_err(sb, "internal error @ nid: %llu (size %llu), m_la 0x%llx", vi->nid, inode->i_size, map->m_la); DBG_BUGON(1); return -EIO; @@ -154,32 +154,32 @@ int erofs_map_blocks(struct inode *inode, unit = EROFS_BLOCK_MAP_ENTRY_SIZE; /* block map */ chunknr = map->m_la >> vi->chunkbits; - pos = ALIGN(iloc(EROFS_SB(sb), vi->nid) + vi->inode_isize + + pos = ALIGN(erofs_iloc(inode) + vi->inode_isize + vi->xattr_isize, unit) + unit * chunknr; - kaddr = erofs_read_metabuf(&buf, sb, erofs_blknr(pos), EROFS_KMAP); + kaddr = erofs_read_metabuf(&buf, sb, erofs_blknr(sb, pos), EROFS_KMAP); if (IS_ERR(kaddr)) { err = PTR_ERR(kaddr); goto out; } map->m_la = chunknr << vi->chunkbits; map->m_plen = min_t(erofs_off_t, 1UL << vi->chunkbits, - roundup(inode->i_size - map->m_la, EROFS_BLKSIZ)); + round_up(inode->i_size - map->m_la, sb->s_blocksize)); /* handle block map */ if (!(vi->chunkformat & EROFS_CHUNK_FORMAT_INDEXES)) { - __le32 *blkaddr = kaddr + erofs_blkoff(pos); + __le32 *blkaddr = kaddr + erofs_blkoff(sb, pos); if (le32_to_cpu(*blkaddr) == EROFS_NULL_ADDR) { map->m_flags = 0; } else { - map->m_pa = blknr_to_addr(le32_to_cpu(*blkaddr)); + map->m_pa = erofs_pos(sb, le32_to_cpu(*blkaddr)); map->m_flags = EROFS_MAP_MAPPED; } goto out_unlock; } /* parse chunk indexes */ - idx = kaddr + erofs_blkoff(pos); + idx = kaddr + erofs_blkoff(sb, pos); switch (le32_to_cpu(idx->blkaddr)) { case EROFS_NULL_ADDR: map->m_flags = 0; @@ -187,7 +187,7 @@ int erofs_map_blocks(struct inode *inode, default: map->m_deviceid = le16_to_cpu(idx->device_id) & EROFS_SB(sb)->device_id_mask; - map->m_pa = blknr_to_addr(le32_to_cpu(idx->blkaddr)); + map->m_pa = erofs_pos(sb, le32_to_cpu(idx->blkaddr)); map->m_flags = EROFS_MAP_MAPPED; break; } @@ -231,8 +231,8 @@ int erofs_map_dev(struct super_block *sb, struct erofs_map_dev *map) if (!dif->mapped_blkaddr) continue; - startoff = blknr_to_addr(dif->mapped_blkaddr); - length = blknr_to_addr(dif->blocks); + startoff = erofs_pos(sb, dif->mapped_blkaddr); + length = erofs_pos(sb, dif->blocks); if (map->m_pa >= startoff && map->m_pa < startoff + length) { @@ -253,6 +253,7 @@ static int erofs_iomap_begin(struct inode *inode, loff_t offset, loff_t length, unsigned int flags, struct iomap *iomap, struct iomap *srcmap) { int ret; + struct super_block *sb = inode->i_sb; struct erofs_map_blocks map; struct erofs_map_dev mdev; @@ -267,7 +268,7 @@ static int erofs_iomap_begin(struct inode *inode, loff_t offset, loff_t length, .m_deviceid = map.m_deviceid, .m_pa = map.m_pa, }; - ret = erofs_map_dev(inode->i_sb, &mdev); + ret = erofs_map_dev(sb, &mdev); if (ret) return ret; @@ -293,11 +294,11 @@ static int erofs_iomap_begin(struct inode *inode, loff_t offset, loff_t length, struct erofs_buf buf = __EROFS_BUF_INITIALIZER; iomap->type = IOMAP_INLINE; - ptr = erofs_read_metabuf(&buf, inode->i_sb, - erofs_blknr(mdev.m_pa), EROFS_KMAP); + ptr = erofs_read_metabuf(&buf, sb, + erofs_blknr(sb, mdev.m_pa), EROFS_KMAP); if (IS_ERR(ptr)) return PTR_ERR(ptr); - iomap->inline_data = ptr + erofs_blkoff(mdev.m_pa); + iomap->inline_data = ptr + erofs_blkoff(sb, mdev.m_pa); iomap->private = buf.base; } else { iomap->type = IOMAP_MAPPED; diff --git a/fs/erofs/decompressor.c b/fs/erofs/decompressor.c index 51b7ac7166d9..7021e2cf6146 100644 --- a/fs/erofs/decompressor.c +++ b/fs/erofs/decompressor.c @@ -42,7 +42,7 @@ int z_erofs_load_lz4_config(struct super_block *sb, if (!sbi->lz4.max_pclusterblks) { sbi->lz4.max_pclusterblks = 1; /* reserved case */ } else if (sbi->lz4.max_pclusterblks > - Z_EROFS_PCLUSTER_MAX_SIZE / EROFS_BLKSIZ) { + erofs_blknr(sb, Z_EROFS_PCLUSTER_MAX_SIZE)) { erofs_err(sb, "too large lz4 pclusterblks %u", sbi->lz4.max_pclusterblks); return -EINVAL; @@ -221,13 +221,13 @@ static int z_erofs_lz4_decompress_mem(struct z_erofs_lz4_decompress_ctx *ctx, support_0padding = true; ret = z_erofs_fixup_insize(rq, headpage + rq->pageofs_in, min_t(unsigned int, rq->inputsize, - EROFS_BLKSIZ - rq->pageofs_in)); + rq->sb->s_blocksize - rq->pageofs_in)); if (ret) { kunmap_atomic(headpage); return ret; } may_inplace = !((rq->pageofs_in + rq->inputsize) & - (EROFS_BLKSIZ - 1)); + (rq->sb->s_blocksize - 1)); } inputmargin = rq->pageofs_in; diff --git a/fs/erofs/decompressor_lzma.c b/fs/erofs/decompressor_lzma.c index 5cd612a8f858..2fd49091c1bb 100644 --- a/fs/erofs/decompressor_lzma.c +++ b/fs/erofs/decompressor_lzma.c @@ -166,8 +166,8 @@ int z_erofs_lzma_decompress(struct z_erofs_decompress_req *rq, /* 1. get the exact LZMA compressed size */ kin = kmap(*rq->in); err = z_erofs_fixup_insize(rq, kin + rq->pageofs_in, - min_t(unsigned int, rq->inputsize, - EROFS_BLKSIZ - rq->pageofs_in)); + min_t(unsigned int, rq->inputsize, + rq->sb->s_blocksize - rq->pageofs_in)); if (err) { kunmap(*rq->in); return err; diff --git a/fs/erofs/dir.c b/fs/erofs/dir.c index ecf28f66b97d..966a88cc529e 100644 --- a/fs/erofs/dir.c +++ b/fs/erofs/dir.c @@ -67,9 +67,11 @@ static int erofs_readdir(struct file *f, struct dir_context *ctx) { struct inode *dir = file_inode(f); struct erofs_buf buf = __EROFS_BUF_INITIALIZER; + struct super_block *sb = dir->i_sb; + unsigned long bsz = sb->s_blocksize; const size_t dirsize = i_size_read(dir); - unsigned int i = ctx->pos / EROFS_BLKSIZ; - unsigned int ofs = ctx->pos % EROFS_BLKSIZ; + unsigned int i = erofs_blknr(sb, ctx->pos); + unsigned int ofs = erofs_blkoff(sb, ctx->pos); int err = 0; bool initial = true; @@ -79,32 +81,28 @@ static int erofs_readdir(struct file *f, struct dir_context *ctx) de = erofs_bread(&buf, dir, i, EROFS_KMAP); if (IS_ERR(de)) { - erofs_err(dir->i_sb, - "fail to readdir of logical block %u of nid %llu", + erofs_err(sb, "fail to readdir of logical block %u of nid %llu", i, EROFS_I(dir)->nid); err = PTR_ERR(de); break; } nameoff = le16_to_cpu(de->nameoff); - if (nameoff < sizeof(struct erofs_dirent) || - nameoff >= EROFS_BLKSIZ) { - erofs_err(dir->i_sb, - "invalid de[0].nameoff %u @ nid %llu", + if (nameoff < sizeof(struct erofs_dirent) || nameoff >= bsz) { + erofs_err(sb, "invalid de[0].nameoff %u @ nid %llu", nameoff, EROFS_I(dir)->nid); err = -EFSCORRUPTED; break; } - maxsize = min_t(unsigned int, - dirsize - ctx->pos + ofs, EROFS_BLKSIZ); + maxsize = min_t(unsigned int, dirsize - ctx->pos + ofs, bsz); /* search dirents at the arbitrary position */ if (initial) { initial = false; ofs = roundup(ofs, sizeof(struct erofs_dirent)); - ctx->pos = blknr_to_addr(i) + ofs; + ctx->pos = erofs_pos(sb, i) + ofs; if (ofs >= nameoff) goto skip_this; } @@ -114,7 +112,7 @@ static int erofs_readdir(struct file *f, struct dir_context *ctx) if (err) break; skip_this: - ctx->pos = blknr_to_addr(i) + maxsize; + ctx->pos = erofs_pos(sb, i) + maxsize; ++i; ofs = 0; } diff --git a/fs/erofs/erofs_fs.h b/fs/erofs/erofs_fs.h index dbcd24371002..44876a97cabd 100644 --- a/fs/erofs/erofs_fs.h +++ b/fs/erofs/erofs_fs.h @@ -53,7 +53,7 @@ struct erofs_super_block { __le32 magic; /* file system magic number */ __le32 checksum; /* crc32c(super_block) */ __le32 feature_compat; - __u8 blkszbits; /* support block_size == PAGE_SIZE only */ + __u8 blkszbits; /* filesystem block size in bit shift */ __u8 sb_extslots; /* superblock size = 128 + sb_extslots * 16 */ __le16 root_nid; /* nid of root directory */ @@ -75,7 +75,8 @@ struct erofs_super_block { } __packed u1; __le16 extra_devices; /* # of devices besides the primary device */ __le16 devt_slotoff; /* startoff = devt_slotoff * devt_slotsize */ - __u8 reserved[6]; + __u8 dirblkbits; /* directory block size in bit shift */ + __u8 reserved[5]; __le64 packed_nid; /* nid of the special packed inode */ __u8 reserved2[24]; }; diff --git a/fs/erofs/fscache.c b/fs/erofs/fscache.c index 076cf8a149ef..7ce60ad121f0 100644 --- a/fs/erofs/fscache.c +++ b/fs/erofs/fscache.c @@ -282,8 +282,8 @@ static int erofs_fscache_data_read(struct address_space *mapping, void *src; /* For tail packing layout, the offset may be non-zero. */ - offset = erofs_blkoff(map.m_pa); - blknr = erofs_blknr(map.m_pa); + offset = erofs_blkoff(sb, map.m_pa); + blknr = erofs_blknr(sb, map.m_pa); size = map.m_llen; src = erofs_read_metabuf(&buf, sb, blknr, EROFS_KMAP); @@ -333,8 +333,6 @@ static int erofs_fscache_read_folio(struct file *file, struct folio *folio) bool unlock; int ret; - DBG_BUGON(folio_size(folio) != EROFS_BLKSIZ); - ret = erofs_fscache_data_read(folio_mapping(folio), folio_pos(folio), folio_size(folio), &unlock); if (unlock) { @@ -530,6 +528,7 @@ struct erofs_fscache *erofs_fscache_acquire_cookie(struct super_block *sb, inode->i_size = OFFSET_MAX; inode->i_mapping->a_ops = &erofs_fscache_meta_aops; mapping_set_gfp_mask(inode->i_mapping, GFP_NOFS); + inode->i_blkbits = EROFS_SB(sb)->blkszbits; ctx->inode = inode; } diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c index ad2a82f2eb4c..db344ca0fcd3 100644 --- a/fs/erofs/inode.c +++ b/fs/erofs/inode.c @@ -14,7 +14,7 @@ static void *erofs_read_inode(struct erofs_buf *buf, struct super_block *sb = inode->i_sb; struct erofs_sb_info *sbi = EROFS_SB(sb); struct erofs_inode *vi = EROFS_I(inode); - const erofs_off_t inode_loc = iloc(sbi, vi->nid); + const erofs_off_t inode_loc = erofs_iloc(inode); erofs_blk_t blkaddr, nblks = 0; void *kaddr; @@ -23,8 +23,8 @@ static void *erofs_read_inode(struct erofs_buf *buf, unsigned int ifmt; int err; - blkaddr = erofs_blknr(inode_loc); - *ofs = erofs_blkoff(inode_loc); + blkaddr = erofs_blknr(sb, inode_loc); + *ofs = erofs_blkoff(sb, inode_loc); erofs_dbg("%s, reading inode nid %llu at %u of blkaddr %u", __func__, vi->nid, *ofs, blkaddr); @@ -58,11 +58,11 @@ static void *erofs_read_inode(struct erofs_buf *buf, case EROFS_INODE_LAYOUT_EXTENDED: vi->inode_isize = sizeof(struct erofs_inode_extended); /* check if the extended inode acrosses block boundary */ - if (*ofs + vi->inode_isize <= EROFS_BLKSIZ) { + if (*ofs + vi->inode_isize <= sb->s_blocksize) { *ofs += vi->inode_isize; die = (struct erofs_inode_extended *)dic; } else { - const unsigned int gotten = EROFS_BLKSIZ - *ofs; + const unsigned int gotten = sb->s_blocksize - *ofs; copied = kmalloc(vi->inode_isize, GFP_NOFS); if (!copied) { @@ -176,7 +176,7 @@ static void *erofs_read_inode(struct erofs_buf *buf, err = -EOPNOTSUPP; goto err_out; } - vi->chunkbits = LOG_BLOCK_SIZE + + vi->chunkbits = sb->s_blocksize_bits + (vi->chunkformat & EROFS_CHUNK_FORMAT_BLKBITS_MASK); } inode->i_mtime.tv_sec = inode->i_ctime.tv_sec; @@ -188,11 +188,12 @@ static void *erofs_read_inode(struct erofs_buf *buf, if (test_opt(&sbi->opt, DAX_ALWAYS) && S_ISREG(inode->i_mode) && vi->datalayout == EROFS_INODE_FLAT_PLAIN) inode->i_flags |= S_DAX; + if (!nblks) /* measure inode.i_blocks as generic filesystems */ - inode->i_blocks = roundup(inode->i_size, EROFS_BLKSIZ) >> 9; + inode->i_blocks = round_up(inode->i_size, sb->s_blocksize) >> 9; else - inode->i_blocks = nblks << LOG_SECTORS_PER_BLOCK; + inode->i_blocks = nblks << (sb->s_blocksize_bits - 9); return kaddr; bogusimode: @@ -210,11 +211,12 @@ static int erofs_fill_symlink(struct inode *inode, void *kaddr, unsigned int m_pofs) { struct erofs_inode *vi = EROFS_I(inode); + unsigned int bsz = i_blocksize(inode); char *lnk; /* if it cannot be handled with fast symlink scheme */ if (vi->datalayout != EROFS_INODE_FLAT_INLINE || - inode->i_size >= EROFS_BLKSIZ || inode->i_size < 0) { + inode->i_size >= bsz || inode->i_size < 0) { inode->i_op = &erofs_symlink_iops; return 0; } @@ -225,7 +227,7 @@ static int erofs_fill_symlink(struct inode *inode, void *kaddr, m_pofs += vi->xattr_isize; /* inline symlink data shouldn't cross block boundary */ - if (m_pofs + inode->i_size > EROFS_BLKSIZ) { + if (m_pofs + inode->i_size > bsz) { kfree(lnk); erofs_err(inode->i_sb, "inline data cross block boundary @ nid %llu", @@ -288,7 +290,8 @@ static int erofs_fill_inode(struct inode *inode) } if (erofs_inode_is_data_compressed(vi->datalayout)) { - if (!erofs_is_fscache_mode(inode->i_sb)) + if (!erofs_is_fscache_mode(inode->i_sb) && + inode->i_sb->s_blocksize_bits == PAGE_SHIFT) err = z_erofs_fill_inode(inode); else err = -EOPNOTSUPP; diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h index e51f27b6bde1..1c03daf83a68 100644 --- a/fs/erofs/internal.h +++ b/fs/erofs/internal.h @@ -145,8 +145,8 @@ struct erofs_sb_info { #endif u16 device_id_mask; /* valid bits of device id to be used */ - /* inode slot unit size in bit shift */ - unsigned char islotbits; + unsigned char islotbits; /* inode slot unit size in bit shift */ + unsigned char blkszbits; /* filesystem block size in bit shift */ u32 sb_size; /* total superblock size */ u32 build_time_nsec; @@ -154,6 +154,7 @@ struct erofs_sb_info { /* what we really care is nid, rather than ino.. */ erofs_nid_t root_nid; + erofs_nid_t packed_nid; /* used for statfs, f_files - f_favail */ u64 inos; @@ -238,21 +239,6 @@ static inline int erofs_wait_on_workgroup_freezed(struct erofs_workgroup *grp) VAL != EROFS_LOCKED_MAGIC); } -/* we strictly follow PAGE_SIZE and no buffer head yet */ -#define LOG_BLOCK_SIZE PAGE_SHIFT - -#undef LOG_SECTORS_PER_BLOCK -#define LOG_SECTORS_PER_BLOCK (PAGE_SHIFT - 9) - -#undef SECTORS_PER_BLOCK -#define SECTORS_PER_BLOCK (1 << SECTORS_PER_BLOCK) - -#define EROFS_BLKSIZ (1 << LOG_BLOCK_SIZE) - -#if (EROFS_BLKSIZ % 4096 || !EROFS_BLKSIZ) -#error erofs cannot be used in this platform -#endif - enum erofs_kmap_type { EROFS_NO_KMAP, /* don't map the buffer */ EROFS_KMAP, /* use kmap() to map the buffer */ @@ -268,14 +254,10 @@ struct erofs_buf { #define ROOT_NID(sb) ((sb)->root_nid) -#define erofs_blknr(addr) ((addr) / EROFS_BLKSIZ) -#define erofs_blkoff(addr) ((addr) % EROFS_BLKSIZ) -#define blknr_to_addr(nr) ((erofs_off_t)(nr) * EROFS_BLKSIZ) - -static inline erofs_off_t iloc(struct erofs_sb_info *sbi, erofs_nid_t nid) -{ - return blknr_to_addr(sbi->meta_blkaddr) + (nid << sbi->islotbits); -} +#define erofs_blknr(sb, addr) ((addr) >> (sb)->s_blocksize_bits) +#define erofs_blkoff(sb, addr) ((addr) & ((sb)->s_blocksize - 1)) +#define erofs_pos(sb, blk) ((erofs_off_t)(blk) << (sb)->s_blocksize_bits) +#define erofs_iblks(i) (round_up((i)->i_size, i_blocksize(i)) >> (i)->i_blkbits) #define EROFS_FEATURE_FUNCS(name, compat, feature) \ static inline bool erofs_sb_has_##name(struct erofs_sb_info *sbi) \ @@ -310,7 +292,7 @@ struct erofs_inode { unsigned char datalayout; unsigned char inode_isize; - unsigned short xattr_isize; + unsigned int xattr_isize; unsigned int xattr_shared_count; unsigned int *xattr_shared_xattrs; @@ -341,13 +323,14 @@ struct erofs_inode { struct inode vfs_inode; }; -#define EROFS_I(ptr) \ - container_of(ptr, struct erofs_inode, vfs_inode) +#define EROFS_I(ptr) container_of(ptr, struct erofs_inode, vfs_inode) -static inline unsigned long erofs_inode_datablocks(struct inode *inode) +static inline erofs_off_t erofs_iloc(struct inode *inode) { - /* since i_size cannot be changed */ - return DIV_ROUND_UP(inode->i_size, EROFS_BLKSIZ); + struct erofs_sb_info *sbi = EROFS_I_SB(inode); + + return erofs_pos(inode->i_sb, sbi->meta_blkaddr) + + (EROFS_I(inode)->nid << sbi->islotbits); } static inline unsigned int erofs_bitrange(unsigned int value, unsigned int bit, diff --git a/fs/erofs/namei.c b/fs/erofs/namei.c index 0dc34721080c..cf56a8acafbb 100644 --- a/fs/erofs/namei.c +++ b/fs/erofs/namei.c @@ -5,7 +5,6 @@ * Copyright (C) 2022, Alibaba Cloud */ #include "xattr.h" - #include <trace/events/erofs.h> struct erofs_qstr { @@ -87,19 +86,14 @@ static struct erofs_dirent *find_target_dirent(struct erofs_qstr *name, return ERR_PTR(-ENOENT); } -static void *find_target_block_classic(struct erofs_buf *target, - struct inode *dir, - struct erofs_qstr *name, - int *_ndirents) +static void *erofs_find_target_block(struct erofs_buf *target, + struct inode *dir, struct erofs_qstr *name, int *_ndirents) { - unsigned int startprfx, endprfx; - int head, back; + unsigned int bsz = i_blocksize(dir); + int head = 0, back = erofs_iblks(dir) - 1; + unsigned int startprfx = 0, endprfx = 0; void *candidate = ERR_PTR(-ENOENT); - startprfx = endprfx = 0; - head = 0; - back = erofs_inode_datablocks(dir) - 1; - while (head <= back) { const int mid = head + (back - head) / 2; struct erofs_buf buf = __EROFS_BUF_INITIALIZER; @@ -107,8 +101,7 @@ static void *find_target_block_classic(struct erofs_buf *target, de = erofs_bread(&buf, dir, mid, EROFS_KMAP); if (!IS_ERR(de)) { - const int nameoff = nameoff_from_disk(de->nameoff, - EROFS_BLKSIZ); + const int nameoff = nameoff_from_disk(de->nameoff, bsz); const int ndirents = nameoff / sizeof(*de); int diff; unsigned int matched; @@ -128,11 +121,10 @@ static void *find_target_block_classic(struct erofs_buf *target, dname.name = (u8 *)de + nameoff; if (ndirents == 1) - dname.end = (u8 *)de + EROFS_BLKSIZ; + dname.end = (u8 *)de + bsz; else dname.end = (u8 *)de + - nameoff_from_disk(de[1].nameoff, - EROFS_BLKSIZ); + nameoff_from_disk(de[1].nameoff, bsz); /* string comparison without already matched prefix */ diff = erofs_dirnamecmp(name, &dname, &matched); @@ -180,13 +172,13 @@ int erofs_namei(struct inode *dir, const struct qstr *name, erofs_nid_t *nid, qn.end = name->name + name->len; ndirents = 0; - - de = find_target_block_classic(&buf, dir, &qn, &ndirents); + de = erofs_find_target_block(&buf, dir, &qn, &ndirents); if (IS_ERR(de)) return PTR_ERR(de); if (ndirents) - de = find_target_dirent(&qn, (u8 *)de, EROFS_BLKSIZ, ndirents); + de = find_target_dirent(&qn, (u8 *)de, i_blocksize(dir), + ndirents); if (!IS_ERR(de)) { *nid = le64_to_cpu(de->nid); diff --git a/fs/erofs/super.c b/fs/erofs/super.c index 626a615dafc2..b073b38c1c77 100644 --- a/fs/erofs/super.c +++ b/fs/erofs/super.c @@ -53,18 +53,21 @@ void _erofs_info(struct super_block *sb, const char *function, static int erofs_superblock_csum_verify(struct super_block *sb, void *sbdata) { + size_t len = 1 << EROFS_SB(sb)->blkszbits; struct erofs_super_block *dsb; u32 expected_crc, crc; - dsb = kmemdup(sbdata + EROFS_SUPER_OFFSET, - EROFS_BLKSIZ - EROFS_SUPER_OFFSET, GFP_KERNEL); + if (len > EROFS_SUPER_OFFSET) + len -= EROFS_SUPER_OFFSET; + + dsb = kmemdup(sbdata + EROFS_SUPER_OFFSET, len, GFP_KERNEL); if (!dsb) return -ENOMEM; expected_crc = le32_to_cpu(dsb->checksum); dsb->checksum = 0; /* to allow for x86 boot sectors and other oddities. */ - crc = crc32c(~0, dsb, EROFS_BLKSIZ - EROFS_SUPER_OFFSET); + crc = crc32c(~0, dsb, len); kfree(dsb); if (crc != expected_crc) { @@ -133,11 +136,11 @@ static void *erofs_read_metadata(struct super_block *sb, struct erofs_buf *buf, int len, i, cnt; *offset = round_up(*offset, 4); - ptr = erofs_read_metabuf(buf, sb, erofs_blknr(*offset), EROFS_KMAP); + ptr = erofs_read_metabuf(buf, sb, erofs_blknr(sb, *offset), EROFS_KMAP); if (IS_ERR(ptr)) return ptr; - len = le16_to_cpu(*(__le16 *)&ptr[erofs_blkoff(*offset)]); + len = le16_to_cpu(*(__le16 *)&ptr[erofs_blkoff(sb, *offset)]); if (!len) len = U16_MAX + 1; buffer = kmalloc(len, GFP_KERNEL); @@ -147,14 +150,15 @@ static void *erofs_read_metadata(struct super_block *sb, struct erofs_buf *buf, *lengthp = len; for (i = 0; i < len; i += cnt) { - cnt = min(EROFS_BLKSIZ - (int)erofs_blkoff(*offset), len - i); - ptr = erofs_read_metabuf(buf, sb, erofs_blknr(*offset), + cnt = min_t(int, sb->s_blocksize - erofs_blkoff(sb, *offset), + len - i); + ptr = erofs_read_metabuf(buf, sb, erofs_blknr(sb, *offset), EROFS_KMAP); if (IS_ERR(ptr)) { kfree(buffer); return ptr; } - memcpy(buffer + i, ptr + erofs_blkoff(*offset), cnt); + memcpy(buffer + i, ptr + erofs_blkoff(sb, *offset), cnt); *offset += cnt; } return buffer; @@ -229,10 +233,10 @@ static int erofs_init_device(struct erofs_buf *buf, struct super_block *sb, struct block_device *bdev; void *ptr; - ptr = erofs_read_metabuf(buf, sb, erofs_blknr(*pos), EROFS_KMAP); + ptr = erofs_read_metabuf(buf, sb, erofs_blknr(sb, *pos), EROFS_KMAP); if (IS_ERR(ptr)) return PTR_ERR(ptr); - dis = ptr + erofs_blkoff(*pos); + dis = ptr + erofs_blkoff(sb, *pos); if (!dif->path) { if (!dis->tag[0]) { @@ -330,7 +334,6 @@ static int erofs_read_superblock(struct super_block *sb) struct erofs_sb_info *sbi; struct erofs_buf buf = __EROFS_BUF_INITIALIZER; struct erofs_super_block *dsb; - unsigned int blkszbits; void *data; int ret; @@ -349,6 +352,16 @@ static int erofs_read_superblock(struct super_block *sb) goto out; } + sbi->blkszbits = dsb->blkszbits; + if (sbi->blkszbits < 9 || sbi->blkszbits > PAGE_SHIFT) { + erofs_err(sb, "blkszbits %u isn't supported", sbi->blkszbits); + goto out; + } + if (dsb->dirblkbits) { + erofs_err(sb, "dirblkbits %u isn't supported", dsb->dirblkbits); + goto out; + } + sbi->feature_compat = le32_to_cpu(dsb->feature_compat); if (erofs_sb_has_sb_chksum(sbi)) { ret = erofs_superblock_csum_verify(sb, data); @@ -357,19 +370,11 @@ static int erofs_read_superblock(struct super_block *sb) } ret = -EINVAL; - blkszbits = dsb->blkszbits; - /* 9(512 bytes) + LOG_SECTORS_PER_BLOCK == LOG_BLOCK_SIZE */ - if (blkszbits != LOG_BLOCK_SIZE) { - erofs_err(sb, "blkszbits %u isn't supported on this platform", - blkszbits); - goto out; - } - if (!check_layout_compatibility(sb, dsb)) goto out; sbi->sb_size = 128 + dsb->sb_extslots * EROFS_SB_EXTSLOT_SIZE; - if (sbi->sb_size > EROFS_BLKSIZ) { + if (sbi->sb_size > PAGE_SIZE - EROFS_SUPER_OFFSET) { erofs_err(sb, "invalid sb_extslots %u (more than a fs block)", sbi->sb_size); goto out; @@ -381,17 +386,7 @@ static int erofs_read_superblock(struct super_block *sb) #endif sbi->islotbits = ilog2(sizeof(struct erofs_inode_compact)); sbi->root_nid = le16_to_cpu(dsb->root_nid); -#ifdef CONFIG_EROFS_FS_ZIP - sbi->packed_inode = NULL; - if (erofs_sb_has_fragments(sbi) && dsb->packed_nid) { - sbi->packed_inode = - erofs_iget(sb, le64_to_cpu(dsb->packed_nid)); - if (IS_ERR(sbi->packed_inode)) { - ret = PTR_ERR(sbi->packed_inode); - goto out; - } - } -#endif + sbi->packed_nid = le64_to_cpu(dsb->packed_nid); sbi->inos = le64_to_cpu(dsb->inos); sbi->build_time = le64_to_cpu(dsb->build_time); @@ -734,9 +729,10 @@ static int erofs_fc_fill_super(struct super_block *sb, struct fs_context *fc) sbi->domain_id = ctx->domain_id; ctx->domain_id = NULL; + sbi->blkszbits = PAGE_SHIFT; if (erofs_is_fscache_mode(sb)) { - sb->s_blocksize = EROFS_BLKSIZ; - sb->s_blocksize_bits = LOG_BLOCK_SIZE; + sb->s_blocksize = PAGE_SIZE; + sb->s_blocksize_bits = PAGE_SHIFT; err = erofs_fscache_register_fs(sb); if (err) @@ -746,8 +742,8 @@ static int erofs_fc_fill_super(struct super_block *sb, struct fs_context *fc) if (err) return err; } else { - if (!sb_set_blocksize(sb, EROFS_BLKSIZ)) { - erofs_err(sb, "failed to set erofs blksize"); + if (!sb_set_blocksize(sb, PAGE_SIZE)) { + errorfc(fc, "failed to set initial blksize"); return -EINVAL; } @@ -760,12 +756,24 @@ static int erofs_fc_fill_super(struct super_block *sb, struct fs_context *fc) if (err) return err; - if (test_opt(&sbi->opt, DAX_ALWAYS)) { - BUILD_BUG_ON(EROFS_BLKSIZ != PAGE_SIZE); + if (sb->s_blocksize_bits != sbi->blkszbits) { + if (erofs_is_fscache_mode(sb)) { + errorfc(fc, "unsupported blksize for fscache mode"); + return -EINVAL; + } + if (!sb_set_blocksize(sb, 1 << sbi->blkszbits)) { + errorfc(fc, "failed to set erofs blksize"); + return -EINVAL; + } + } + if (test_opt(&sbi->opt, DAX_ALWAYS)) { if (!sbi->dax_dev) { errorfc(fc, "DAX unsupported by block device. Turning off DAX."); clear_opt(&sbi->opt, DAX_ALWAYS); + } else if (sbi->blkszbits != PAGE_SHIFT) { + errorfc(fc, "unsupported blocksize for DAX"); + clear_opt(&sbi->opt, DAX_ALWAYS); } } @@ -800,6 +808,16 @@ static int erofs_fc_fill_super(struct super_block *sb, struct fs_context *fc) erofs_shrinker_register(sb); /* sb->s_umount is already locked, SB_ACTIVE and SB_BORN are not set */ +#ifdef CONFIG_EROFS_FS_ZIP + if (erofs_sb_has_fragments(sbi) && sbi->packed_nid) { + sbi->packed_inode = erofs_iget(sb, sbi->packed_nid); + if (IS_ERR(sbi->packed_inode)) { + err = PTR_ERR(sbi->packed_inode); + sbi->packed_inode = NULL; + return err; + } + } +#endif err = erofs_init_managed_cache(sb); if (err) return err; @@ -1059,7 +1077,7 @@ static int erofs_statfs(struct dentry *dentry, struct kstatfs *buf) id = huge_encode_dev(sb->s_bdev->bd_dev); buf->f_type = sb->s_magic; - buf->f_bsize = EROFS_BLKSIZ; + buf->f_bsize = sb->s_blocksize; buf->f_blocks = sbi->total_blocks; buf->f_bfree = buf->f_bavail = 0; diff --git a/fs/erofs/xattr.c b/fs/erofs/xattr.c index 8106bcb5a38d..7c09ad1beb83 100644 --- a/fs/erofs/xattr.c +++ b/fs/erofs/xattr.c @@ -22,8 +22,7 @@ static int init_inode_xattrs(struct inode *inode) struct xattr_iter it; unsigned int i; struct erofs_xattr_ibody_header *ih; - struct super_block *sb; - struct erofs_sb_info *sbi; + struct super_block *sb = inode->i_sb; int ret = 0; /* the most case is that xattrs of this inode are initialized. */ @@ -52,15 +51,14 @@ static int init_inode_xattrs(struct inode *inode) * undefined right now (maybe use later with some new sb feature). */ if (vi->xattr_isize == sizeof(struct erofs_xattr_ibody_header)) { - erofs_err(inode->i_sb, + erofs_err(sb, "xattr_isize %d of nid %llu is not supported yet", vi->xattr_isize, vi->nid); ret = -EOPNOTSUPP; goto out_unlock; } else if (vi->xattr_isize < sizeof(struct erofs_xattr_ibody_header)) { if (vi->xattr_isize) { - erofs_err(inode->i_sb, - "bogus xattr ibody @ nid %llu", vi->nid); + erofs_err(sb, "bogus xattr ibody @ nid %llu", vi->nid); DBG_BUGON(1); ret = -EFSCORRUPTED; goto out_unlock; /* xattr ondisk layout error */ @@ -69,11 +67,9 @@ static int init_inode_xattrs(struct inode *inode) goto out_unlock; } - sb = inode->i_sb; - sbi = EROFS_SB(sb); it.buf = __EROFS_BUF_INITIALIZER; - it.blkaddr = erofs_blknr(iloc(sbi, vi->nid) + vi->inode_isize); - it.ofs = erofs_blkoff(iloc(sbi, vi->nid) + vi->inode_isize); + it.blkaddr = erofs_blknr(sb, erofs_iloc(inode) + vi->inode_isize); + it.ofs = erofs_blkoff(sb, erofs_iloc(inode) + vi->inode_isize); /* read in shared xattr array (non-atomic, see kmalloc below) */ it.kaddr = erofs_read_metabuf(&it.buf, sb, it.blkaddr, EROFS_KMAP); @@ -96,9 +92,9 @@ static int init_inode_xattrs(struct inode *inode) it.ofs += sizeof(struct erofs_xattr_ibody_header); for (i = 0; i < vi->xattr_shared_count; ++i) { - if (it.ofs >= EROFS_BLKSIZ) { + if (it.ofs >= sb->s_blocksize) { /* cannot be unaligned */ - DBG_BUGON(it.ofs != EROFS_BLKSIZ); + DBG_BUGON(it.ofs != sb->s_blocksize); it.kaddr = erofs_read_metabuf(&it.buf, sb, ++it.blkaddr, EROFS_KMAP); @@ -143,15 +139,15 @@ struct xattr_iter_handlers { static inline int xattr_iter_fixup(struct xattr_iter *it) { - if (it->ofs < EROFS_BLKSIZ) + if (it->ofs < it->sb->s_blocksize) return 0; - it->blkaddr += erofs_blknr(it->ofs); + it->blkaddr += erofs_blknr(it->sb, it->ofs); it->kaddr = erofs_read_metabuf(&it->buf, it->sb, it->blkaddr, EROFS_KMAP_ATOMIC); if (IS_ERR(it->kaddr)) return PTR_ERR(it->kaddr); - it->ofs = erofs_blkoff(it->ofs); + it->ofs = erofs_blkoff(it->sb, it->ofs); return 0; } @@ -159,7 +155,6 @@ static int inline_xattr_iter_begin(struct xattr_iter *it, struct inode *inode) { struct erofs_inode *const vi = EROFS_I(inode); - struct erofs_sb_info *const sbi = EROFS_SB(inode->i_sb); unsigned int xattr_header_sz, inline_xattr_ofs; xattr_header_sz = inlinexattr_header_size(inode); @@ -170,9 +165,8 @@ static int inline_xattr_iter_begin(struct xattr_iter *it, inline_xattr_ofs = vi->inode_isize + xattr_header_sz; - it->blkaddr = erofs_blknr(iloc(sbi, vi->nid) + inline_xattr_ofs); - it->ofs = erofs_blkoff(iloc(sbi, vi->nid) + inline_xattr_ofs); - + it->blkaddr = erofs_blknr(it->sb, erofs_iloc(inode) + inline_xattr_ofs); + it->ofs = erofs_blkoff(it->sb, erofs_iloc(inode) + inline_xattr_ofs); it->kaddr = erofs_read_metabuf(&it->buf, inode->i_sb, it->blkaddr, EROFS_KMAP_ATOMIC); if (IS_ERR(it->kaddr)) @@ -228,8 +222,8 @@ static int xattr_foreach(struct xattr_iter *it, processed = 0; while (processed < entry.e_name_len) { - if (it->ofs >= EROFS_BLKSIZ) { - DBG_BUGON(it->ofs > EROFS_BLKSIZ); + if (it->ofs >= it->sb->s_blocksize) { + DBG_BUGON(it->ofs > it->sb->s_blocksize); err = xattr_iter_fixup(it); if (err) @@ -237,7 +231,7 @@ static int xattr_foreach(struct xattr_iter *it, it->ofs = 0; } - slice = min_t(unsigned int, EROFS_BLKSIZ - it->ofs, + slice = min_t(unsigned int, it->sb->s_blocksize - it->ofs, entry.e_name_len - processed); /* handle name */ @@ -263,8 +257,8 @@ static int xattr_foreach(struct xattr_iter *it, } while (processed < value_sz) { - if (it->ofs >= EROFS_BLKSIZ) { - DBG_BUGON(it->ofs > EROFS_BLKSIZ); + if (it->ofs >= it->sb->s_blocksize) { + DBG_BUGON(it->ofs > it->sb->s_blocksize); err = xattr_iter_fixup(it); if (err) @@ -272,7 +266,7 @@ static int xattr_foreach(struct xattr_iter *it, it->ofs = 0; } - slice = min_t(unsigned int, EROFS_BLKSIZ - it->ofs, + slice = min_t(unsigned int, it->sb->s_blocksize - it->ofs, value_sz - processed); op->value(it, processed, it->kaddr + it->ofs, slice); it->ofs += slice; @@ -358,15 +352,14 @@ static int shared_getxattr(struct inode *inode, struct getxattr_iter *it) { struct erofs_inode *const vi = EROFS_I(inode); struct super_block *const sb = inode->i_sb; - struct erofs_sb_info *const sbi = EROFS_SB(sb); unsigned int i; int ret = -ENOATTR; for (i = 0; i < vi->xattr_shared_count; ++i) { erofs_blk_t blkaddr = - xattrblock_addr(sbi, vi->xattr_shared_xattrs[i]); + xattrblock_addr(sb, vi->xattr_shared_xattrs[i]); - it->it.ofs = xattrblock_offset(sbi, vi->xattr_shared_xattrs[i]); + it->it.ofs = xattrblock_offset(sb, vi->xattr_shared_xattrs[i]); it->it.kaddr = erofs_read_metabuf(&it->it.buf, sb, blkaddr, EROFS_KMAP_ATOMIC); if (IS_ERR(it->it.kaddr)) @@ -570,15 +563,14 @@ static int shared_listxattr(struct listxattr_iter *it) struct inode *const inode = d_inode(it->dentry); struct erofs_inode *const vi = EROFS_I(inode); struct super_block *const sb = inode->i_sb; - struct erofs_sb_info *const sbi = EROFS_SB(sb); unsigned int i; int ret = 0; for (i = 0; i < vi->xattr_shared_count; ++i) { erofs_blk_t blkaddr = - xattrblock_addr(sbi, vi->xattr_shared_xattrs[i]); + xattrblock_addr(sb, vi->xattr_shared_xattrs[i]); - it->it.ofs = xattrblock_offset(sbi, vi->xattr_shared_xattrs[i]); + it->it.ofs = xattrblock_offset(sb, vi->xattr_shared_xattrs[i]); it->it.kaddr = erofs_read_metabuf(&it->it.buf, sb, blkaddr, EROFS_KMAP_ATOMIC); if (IS_ERR(it->it.kaddr)) diff --git a/fs/erofs/xattr.h b/fs/erofs/xattr.h index 0a43c9ee9f8f..f7a21aaa9755 100644 --- a/fs/erofs/xattr.h +++ b/fs/erofs/xattr.h @@ -19,21 +19,21 @@ static inline unsigned int inlinexattr_header_size(struct inode *inode) sizeof(u32) * EROFS_I(inode)->xattr_shared_count; } -static inline erofs_blk_t xattrblock_addr(struct erofs_sb_info *sbi, +static inline erofs_blk_t xattrblock_addr(struct super_block *sb, unsigned int xattr_id) { #ifdef CONFIG_EROFS_FS_XATTR - return sbi->xattr_blkaddr + - xattr_id * sizeof(__u32) / EROFS_BLKSIZ; + return EROFS_SB(sb)->xattr_blkaddr + + xattr_id * sizeof(__u32) / sb->s_blocksize; #else return 0; #endif } -static inline unsigned int xattrblock_offset(struct erofs_sb_info *sbi, +static inline unsigned int xattrblock_offset(struct super_block *sb, unsigned int xattr_id) { - return (xattr_id * sizeof(__u32)) % EROFS_BLKSIZ; + return (xattr_id * sizeof(__u32)) % sb->s_blocksize; } #ifdef CONFIG_EROFS_FS_XATTR diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index bc4971ee26d2..bfb10ba74aab 100644 --- a/fs/erofs/zdata.c +++ b/fs/erofs/zdata.c @@ -356,20 +356,6 @@ out_error_pcluster_pool: enum z_erofs_pclustermode { Z_EROFS_PCLUSTER_INFLIGHT, /* - * The current pclusters was the tail of an exist chain, in addition - * that the previous processed chained pclusters are all decided to - * be hooked up to it. - * A new chain will be created for the remaining pclusters which are - * not processed yet, so different from Z_EROFS_PCLUSTER_FOLLOWED, - * the next pcluster cannot reuse the whole page safely for inplace I/O - * in the following scenario: - * ________________________________________________________________ - * | tail (partial) page | head (partial) page | - * | (belongs to the next pcl) | (belongs to the current pcl) | - * |_______PCLUSTER_FOLLOWED______|________PCLUSTER_HOOKED__________| - */ - Z_EROFS_PCLUSTER_HOOKED, - /* * a weak form of Z_EROFS_PCLUSTER_FOLLOWED, the difference is that it * could be dispatched into bypass queue later due to uptodated managed * pages. All related online pages cannot be reused for inplace I/O (or @@ -386,8 +372,8 @@ enum z_erofs_pclustermode { * ________________________________________________________________ * | tail (partial) page | head (partial) page | * | (of the current cl) | (of the previous collection) | - * | PCLUSTER_FOLLOWED or | | - * |_____PCLUSTER_HOOKED__|___________PCLUSTER_FOLLOWED____________| + * | | | + * |__PCLUSTER_FOLLOWED___|___________PCLUSTER_FOLLOWED____________| * * [ (*) the above page can be used as inplace I/O. ] */ @@ -400,7 +386,7 @@ struct z_erofs_decompress_frontend { struct z_erofs_bvec_iter biter; struct page *candidate_bvpage; - struct z_erofs_pcluster *pcl, *tailpcl; + struct z_erofs_pcluster *pcl; z_erofs_next_pcluster_t owned_head; enum z_erofs_pclustermode mode; @@ -589,19 +575,7 @@ static void z_erofs_try_to_claim_pcluster(struct z_erofs_decompress_frontend *f) return; } - /* - * type 2, link to the end of an existing open chain, be careful - * that its submission is controlled by the original attached chain. - */ - if (*owned_head != &pcl->next && pcl != f->tailpcl && - cmpxchg(&pcl->next, Z_EROFS_PCLUSTER_TAIL, - *owned_head) == Z_EROFS_PCLUSTER_TAIL) { - *owned_head = Z_EROFS_PCLUSTER_TAIL; - f->mode = Z_EROFS_PCLUSTER_HOOKED; - f->tailpcl = NULL; - return; - } - /* type 3, it belongs to a chain, but it isn't the end of the chain */ + /* type 2, it belongs to an ongoing chain */ f->mode = Z_EROFS_PCLUSTER_INFLIGHT; } @@ -644,7 +618,7 @@ static int z_erofs_register_pcluster(struct z_erofs_decompress_frontend *fe) if (ztailpacking) { pcl->obj.index = 0; /* which indicates ztailpacking */ - pcl->pageofs_in = erofs_blkoff(map->m_pa); + pcl->pageofs_in = erofs_blkoff(fe->inode->i_sb, map->m_pa); pcl->tailpacking_size = map->m_plen; } else { pcl->obj.index = map->m_pa >> PAGE_SHIFT; @@ -662,9 +636,6 @@ static int z_erofs_register_pcluster(struct z_erofs_decompress_frontend *fe) goto err_out; } } - /* used to check tail merging loop due to corrupted images */ - if (fe->owned_head == Z_EROFS_PCLUSTER_TAIL) - fe->tailpcl = pcl; fe->owned_head = &pcl->next; fe->pcl = pcl; return 0; @@ -685,7 +656,6 @@ static int z_erofs_collector_begin(struct z_erofs_decompress_frontend *fe) /* must be Z_EROFS_PCLUSTER_TAIL or pointed to previous pcluster */ DBG_BUGON(fe->owned_head == Z_EROFS_PCLUSTER_NIL); - DBG_BUGON(fe->owned_head == Z_EROFS_PCLUSTER_TAIL_CLOSED); if (!(map->m_flags & EROFS_MAP_META)) { grp = erofs_find_workgroup(fe->inode->i_sb, @@ -704,10 +674,6 @@ static int z_erofs_collector_begin(struct z_erofs_decompress_frontend *fe) if (ret == -EEXIST) { mutex_lock(&fe->pcl->lock); - /* used to check tail merging loop due to corrupted images */ - if (fe->owned_head == Z_EROFS_PCLUSTER_TAIL) - fe->tailpcl = fe->pcl; - z_erofs_try_to_claim_pcluster(fe); } else if (ret) { return ret; @@ -781,6 +747,7 @@ static int z_erofs_read_fragment(struct inode *inode, erofs_off_t pos, struct page *page, unsigned int pageofs, unsigned int len) { + struct super_block *sb = inode->i_sb; struct inode *packed_inode = EROFS_I_SB(inode)->packed_inode; struct erofs_buf buf = __EROFS_BUF_INITIALIZER; u8 *src, *dst; @@ -792,16 +759,16 @@ static int z_erofs_read_fragment(struct inode *inode, erofs_off_t pos, pos += EROFS_I(inode)->z_fragmentoff; for (i = 0; i < len; i += cnt) { cnt = min_t(unsigned int, len - i, - EROFS_BLKSIZ - erofs_blkoff(pos)); + sb->s_blocksize - erofs_blkoff(sb, pos)); src = erofs_bread(&buf, packed_inode, - erofs_blknr(pos), EROFS_KMAP); + erofs_blknr(sb, pos), EROFS_KMAP); if (IS_ERR(src)) { erofs_put_metabuf(&buf); return PTR_ERR(src); } dst = kmap_local_page(page); - memcpy(dst + pageofs + i, src + erofs_blkoff(pos), cnt); + memcpy(dst + pageofs + i, src + erofs_blkoff(sb, pos), cnt); kunmap_local(dst); pos += cnt; } @@ -859,7 +826,8 @@ repeat: void *mp; mp = erofs_read_metabuf(&fe->map.buf, inode->i_sb, - erofs_blknr(map->m_pa), EROFS_NO_KMAP); + erofs_blknr(inode->i_sb, map->m_pa), + EROFS_NO_KMAP); if (IS_ERR(mp)) { err = PTR_ERR(mp); erofs_err(inode->i_sb, @@ -887,10 +855,9 @@ hitted: * those chains are handled asynchronously thus the page cannot be used * for inplace I/O or bvpage (should be processed in a strict order.) */ - tight &= (fe->mode >= Z_EROFS_PCLUSTER_HOOKED && - fe->mode != Z_EROFS_PCLUSTER_FOLLOWED_NOINPLACE); + tight &= (fe->mode > Z_EROFS_PCLUSTER_FOLLOWED_NOINPLACE); - cur = end - min_t(unsigned int, offset + end - map->m_la, end); + cur = end - min_t(erofs_off_t, offset + end - map->m_la, end); if (!(map->m_flags & EROFS_MAP_MAPPED)) { zero_user_segment(page, cur, end); goto next_part; @@ -1013,9 +980,11 @@ static void z_erofs_do_decompressed_bvec(struct z_erofs_decompress_backend *be, struct z_erofs_bvec *bvec) { struct z_erofs_bvec_item *item; + unsigned int pgnr; - if (!((bvec->offset + be->pcl->pageofs_out) & ~PAGE_MASK)) { - unsigned int pgnr; + if (!((bvec->offset + be->pcl->pageofs_out) & ~PAGE_MASK) && + (bvec->end == PAGE_SIZE || + bvec->offset + bvec->end == be->pcl->length)) { pgnr = (bvec->offset + be->pcl->pageofs_out) >> PAGE_SHIFT; DBG_BUGON(pgnr >= be->nr_pages); @@ -1268,11 +1237,7 @@ static void z_erofs_decompress_queue(const struct z_erofs_decompressqueue *io, LIST_HEAD_INIT(be.decompressed_secondary_bvecs), }; z_erofs_next_pcluster_t owned = io->head; - - while (owned != Z_EROFS_PCLUSTER_TAIL_CLOSED) { - /* impossible that 'owned' equals Z_EROFS_WORK_TPTR_TAIL */ - DBG_BUGON(owned == Z_EROFS_PCLUSTER_TAIL); - /* impossible that 'owned' equals Z_EROFS_PCLUSTER_NIL */ + while (owned != Z_EROFS_PCLUSTER_TAIL) { DBG_BUGON(owned == Z_EROFS_PCLUSTER_NIL); be.pcl = container_of(owned, struct z_erofs_pcluster, next); @@ -1289,7 +1254,7 @@ static void z_erofs_decompressqueue_work(struct work_struct *work) container_of(work, struct z_erofs_decompressqueue, u.work); struct page *pagepool = NULL; - DBG_BUGON(bgq->head == Z_EROFS_PCLUSTER_TAIL_CLOSED); + DBG_BUGON(bgq->head == Z_EROFS_PCLUSTER_TAIL); z_erofs_decompress_queue(bgq, &pagepool); erofs_release_pages(&pagepool); kvfree(bgq); @@ -1317,7 +1282,7 @@ static void z_erofs_decompress_kickoff(struct z_erofs_decompressqueue *io, if (atomic_add_return(bios, &io->pending_bios)) return; /* Use (kthread_)work and sync decompression for atomic contexts only */ - if (in_atomic() || irqs_disabled()) { + if (!in_task() || irqs_disabled() || rcu_read_lock_any_held()) { #ifdef CONFIG_EROFS_FS_PCPU_KTHREAD struct kthread_worker *worker; @@ -1481,7 +1446,7 @@ fg_out: q->eio = false; } q->sb = sb; - q->head = Z_EROFS_PCLUSTER_TAIL_CLOSED; + q->head = Z_EROFS_PCLUSTER_TAIL; return q; } @@ -1513,11 +1478,7 @@ static void move_to_bypass_jobqueue(struct z_erofs_pcluster *pcl, z_erofs_next_pcluster_t *const submit_qtail = qtail[JQ_SUBMIT]; z_erofs_next_pcluster_t *const bypass_qtail = qtail[JQ_BYPASS]; - DBG_BUGON(owned_head == Z_EROFS_PCLUSTER_TAIL_CLOSED); - if (owned_head == Z_EROFS_PCLUSTER_TAIL) - owned_head = Z_EROFS_PCLUSTER_TAIL_CLOSED; - - WRITE_ONCE(pcl->next, Z_EROFS_PCLUSTER_TAIL_CLOSED); + WRITE_ONCE(pcl->next, Z_EROFS_PCLUSTER_TAIL); WRITE_ONCE(*submit_qtail, owned_head); WRITE_ONCE(*bypass_qtail, &pcl->next); @@ -1584,15 +1545,11 @@ static void z_erofs_submit_queue(struct z_erofs_decompress_frontend *f, unsigned int i = 0; bool bypass = true; - /* no possible 'owned_head' equals the following */ - DBG_BUGON(owned_head == Z_EROFS_PCLUSTER_TAIL_CLOSED); DBG_BUGON(owned_head == Z_EROFS_PCLUSTER_NIL); pcl = container_of(owned_head, struct z_erofs_pcluster, next); + owned_head = READ_ONCE(pcl->next); - /* close the main owned chain at first */ - owned_head = cmpxchg(&pcl->next, Z_EROFS_PCLUSTER_TAIL, - Z_EROFS_PCLUSTER_TAIL_CLOSED); if (z_erofs_is_inline_pcluster(pcl)) { move_to_bypass_jobqueue(pcl, qtail, owned_head); continue; @@ -1600,11 +1557,11 @@ static void z_erofs_submit_queue(struct z_erofs_decompress_frontend *f, /* no device id here, thus it will always succeed */ mdev = (struct erofs_map_dev) { - .m_pa = blknr_to_addr(pcl->obj.index), + .m_pa = erofs_pos(sb, pcl->obj.index), }; (void)erofs_map_dev(sb, &mdev); - cur = erofs_blknr(mdev.m_pa); + cur = erofs_blknr(sb, mdev.m_pa); end = cur + pcl->pclusterpages; do { @@ -1638,7 +1595,7 @@ submit_bio_retry: last_bdev = mdev.m_bdev; bio->bi_iter.bi_sector = (sector_t)cur << - LOG_SECTORS_PER_BLOCK; + (sb->s_blocksize_bits - 9); bio->bi_private = bi_private; if (f->readahead) bio->bi_opf |= REQ_RAHEAD; @@ -1736,7 +1693,7 @@ static void z_erofs_pcluster_readmore(struct z_erofs_decompress_frontend *f, } cur = map->m_la + map->m_llen - 1; - while (cur >= end) { + while ((cur >= end) && (cur < i_size_read(inode))) { pgoff_t index = cur >> PAGE_SHIFT; struct page *page; diff --git a/fs/erofs/zdata.h b/fs/erofs/zdata.h index 4588a47c867e..9fd6abe967a9 100644 --- a/fs/erofs/zdata.h +++ b/fs/erofs/zdata.h @@ -94,11 +94,8 @@ struct z_erofs_pcluster { /* let's avoid the valid 32-bit kernel addresses */ -/* the chained workgroup has't submitted io (still open) */ +/* the end of a chain of pclusters */ #define Z_EROFS_PCLUSTER_TAIL ((void *)0x5F0ECAFE) -/* the chained workgroup has already submitted io */ -#define Z_EROFS_PCLUSTER_TAIL_CLOSED ((void *)0x5F0EDEAD) - #define Z_EROFS_PCLUSTER_NIL (NULL) struct z_erofs_decompressqueue { diff --git a/fs/erofs/zmap.c b/fs/erofs/zmap.c index 39cc014dba40..8973ccad707d 100644 --- a/fs/erofs/zmap.c +++ b/fs/erofs/zmap.c @@ -7,10 +7,6 @@ #include <asm/unaligned.h> #include <trace/events/erofs.h> -static int z_erofs_do_map_blocks(struct inode *inode, - struct erofs_map_blocks *map, - int flags); - int z_erofs_fill_inode(struct inode *inode) { struct erofs_inode *const vi = EROFS_I(inode); @@ -22,133 +18,13 @@ int z_erofs_fill_inode(struct inode *inode) vi->z_advise = 0; vi->z_algorithmtype[0] = 0; vi->z_algorithmtype[1] = 0; - vi->z_logical_clusterbits = LOG_BLOCK_SIZE; + vi->z_logical_clusterbits = inode->i_sb->s_blocksize_bits; set_bit(EROFS_I_Z_INITED_BIT, &vi->flags); } inode->i_mapping->a_ops = &z_erofs_aops; return 0; } -static int z_erofs_fill_inode_lazy(struct inode *inode) -{ - struct erofs_inode *const vi = EROFS_I(inode); - struct super_block *const sb = inode->i_sb; - int err, headnr; - erofs_off_t pos; - struct erofs_buf buf = __EROFS_BUF_INITIALIZER; - void *kaddr; - struct z_erofs_map_header *h; - - if (test_bit(EROFS_I_Z_INITED_BIT, &vi->flags)) { - /* - * paired with smp_mb() at the end of the function to ensure - * fields will only be observed after the bit is set. - */ - smp_mb(); - return 0; - } - - if (wait_on_bit_lock(&vi->flags, EROFS_I_BL_Z_BIT, TASK_KILLABLE)) - return -ERESTARTSYS; - - err = 0; - if (test_bit(EROFS_I_Z_INITED_BIT, &vi->flags)) - goto out_unlock; - - pos = ALIGN(iloc(EROFS_SB(sb), vi->nid) + vi->inode_isize + - vi->xattr_isize, 8); - kaddr = erofs_read_metabuf(&buf, sb, erofs_blknr(pos), EROFS_KMAP); - if (IS_ERR(kaddr)) { - err = PTR_ERR(kaddr); - goto out_unlock; - } - - h = kaddr + erofs_blkoff(pos); - /* - * if the highest bit of the 8-byte map header is set, the whole file - * is stored in the packed inode. The rest bits keeps z_fragmentoff. - */ - if (h->h_clusterbits >> Z_EROFS_FRAGMENT_INODE_BIT) { - vi->z_advise = Z_EROFS_ADVISE_FRAGMENT_PCLUSTER; - vi->z_fragmentoff = le64_to_cpu(*(__le64 *)h) ^ (1ULL << 63); - vi->z_tailextent_headlcn = 0; - goto done; - } - vi->z_advise = le16_to_cpu(h->h_advise); - vi->z_algorithmtype[0] = h->h_algorithmtype & 15; - vi->z_algorithmtype[1] = h->h_algorithmtype >> 4; - - headnr = 0; - if (vi->z_algorithmtype[0] >= Z_EROFS_COMPRESSION_MAX || - vi->z_algorithmtype[++headnr] >= Z_EROFS_COMPRESSION_MAX) { - erofs_err(sb, "unknown HEAD%u format %u for nid %llu, please upgrade kernel", - headnr + 1, vi->z_algorithmtype[headnr], vi->nid); - err = -EOPNOTSUPP; - goto out_put_metabuf; - } - - vi->z_logical_clusterbits = LOG_BLOCK_SIZE + (h->h_clusterbits & 7); - if (!erofs_sb_has_big_pcluster(EROFS_SB(sb)) && - vi->z_advise & (Z_EROFS_ADVISE_BIG_PCLUSTER_1 | - Z_EROFS_ADVISE_BIG_PCLUSTER_2)) { - erofs_err(sb, "per-inode big pcluster without sb feature for nid %llu", - vi->nid); - err = -EFSCORRUPTED; - goto out_put_metabuf; - } - if (vi->datalayout == EROFS_INODE_FLAT_COMPRESSION && - !(vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_1) ^ - !(vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_2)) { - erofs_err(sb, "big pcluster head1/2 of compact indexes should be consistent for nid %llu", - vi->nid); - err = -EFSCORRUPTED; - goto out_put_metabuf; - } - - if (vi->z_advise & Z_EROFS_ADVISE_INLINE_PCLUSTER) { - struct erofs_map_blocks map = { - .buf = __EROFS_BUF_INITIALIZER - }; - - vi->z_idata_size = le16_to_cpu(h->h_idata_size); - err = z_erofs_do_map_blocks(inode, &map, - EROFS_GET_BLOCKS_FINDTAIL); - erofs_put_metabuf(&map.buf); - - if (!map.m_plen || - erofs_blkoff(map.m_pa) + map.m_plen > EROFS_BLKSIZ) { - erofs_err(sb, "invalid tail-packing pclustersize %llu", - map.m_plen); - err = -EFSCORRUPTED; - } - if (err < 0) - goto out_put_metabuf; - } - - if (vi->z_advise & Z_EROFS_ADVISE_FRAGMENT_PCLUSTER && - !(h->h_clusterbits >> Z_EROFS_FRAGMENT_INODE_BIT)) { - struct erofs_map_blocks map = { - .buf = __EROFS_BUF_INITIALIZER - }; - - vi->z_fragmentoff = le32_to_cpu(h->h_fragmentoff); - err = z_erofs_do_map_blocks(inode, &map, - EROFS_GET_BLOCKS_FINDTAIL); - erofs_put_metabuf(&map.buf); - if (err < 0) - goto out_put_metabuf; - } -done: - /* paired with smp_mb() at the beginning of the function */ - smp_mb(); - set_bit(EROFS_I_Z_INITED_BIT, &vi->flags); -out_put_metabuf: - erofs_put_metabuf(&buf); -out_unlock: - clear_and_wake_up_bit(EROFS_I_BL_Z_BIT, &vi->flags); - return err; -} - struct z_erofs_maprecorder { struct inode *inode; struct erofs_map_blocks *map; @@ -169,22 +45,21 @@ static int legacy_load_cluster_from_disk(struct z_erofs_maprecorder *m, { struct inode *const inode = m->inode; struct erofs_inode *const vi = EROFS_I(inode); - const erofs_off_t ibase = iloc(EROFS_I_SB(inode), vi->nid); const erofs_off_t pos = - Z_EROFS_VLE_LEGACY_INDEX_ALIGN(ibase + vi->inode_isize + - vi->xattr_isize) + + Z_EROFS_VLE_LEGACY_INDEX_ALIGN(erofs_iloc(inode) + + vi->inode_isize + vi->xattr_isize) + lcn * sizeof(struct z_erofs_vle_decompressed_index); struct z_erofs_vle_decompressed_index *di; unsigned int advise, type; m->kaddr = erofs_read_metabuf(&m->map->buf, inode->i_sb, - erofs_blknr(pos), EROFS_KMAP_ATOMIC); + erofs_blknr(inode->i_sb, pos), EROFS_KMAP_ATOMIC); if (IS_ERR(m->kaddr)) return PTR_ERR(m->kaddr); m->nextpackoff = pos + sizeof(struct z_erofs_vle_decompressed_index); m->lcn = lcn; - di = m->kaddr + erofs_blkoff(pos); + di = m->kaddr + erofs_blkoff(inode->i_sb, pos); advise = le16_to_cpu(di->di_advise); type = (advise >> Z_EROFS_VLE_DI_CLUSTER_TYPE_BIT) & @@ -211,6 +86,10 @@ static int legacy_load_cluster_from_disk(struct z_erofs_maprecorder *m, if (advise & Z_EROFS_VLE_DI_PARTIAL_REF) m->partialref = true; m->clusterofs = le16_to_cpu(di->di_clusterofs); + if (m->clusterofs >= 1 << vi->z_logical_clusterbits) { + DBG_BUGON(1); + return -EFSCORRUPTED; + } m->pblk = le32_to_cpu(di->di_u.blkaddr); break; default: @@ -269,7 +148,7 @@ static int unpack_compacted_index(struct z_erofs_maprecorder *m, u8 *in, type; bool big_pcluster; - if (1 << amortizedshift == 4) + if (1 << amortizedshift == 4 && lclusterbits <= 14) vcnt = 2; else if (1 << amortizedshift == 2 && lclusterbits == 12) vcnt = 16; @@ -281,7 +160,7 @@ static int unpack_compacted_index(struct z_erofs_maprecorder *m, (vcnt << amortizedshift); big_pcluster = vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_1; encodebits = ((vcnt << amortizedshift) - sizeof(__le32)) * 8 / vcnt; - eofs = erofs_blkoff(pos); + eofs = erofs_blkoff(m->inode->i_sb, pos); base = round_down(eofs, vcnt << amortizedshift); in = m->kaddr + base; @@ -371,18 +250,13 @@ static int compacted_load_cluster_from_disk(struct z_erofs_maprecorder *m, { struct inode *const inode = m->inode; struct erofs_inode *const vi = EROFS_I(inode); - const unsigned int lclusterbits = vi->z_logical_clusterbits; - const erofs_off_t ebase = ALIGN(iloc(EROFS_I_SB(inode), vi->nid) + - vi->inode_isize + vi->xattr_isize, 8) + - sizeof(struct z_erofs_map_header); - const unsigned int totalidx = DIV_ROUND_UP(inode->i_size, EROFS_BLKSIZ); + const erofs_off_t ebase = sizeof(struct z_erofs_map_header) + + ALIGN(erofs_iloc(inode) + vi->inode_isize + vi->xattr_isize, 8); + unsigned int totalidx = erofs_iblks(inode); unsigned int compacted_4b_initial, compacted_2b; unsigned int amortizedshift; erofs_off_t pos; - if (lclusterbits != 12) - return -EOPNOTSUPP; - if (lcn >= totalidx) return -EINVAL; @@ -416,7 +290,7 @@ static int compacted_load_cluster_from_disk(struct z_erofs_maprecorder *m, out: pos += lcn * (1 << amortizedshift); m->kaddr = erofs_read_metabuf(&m->map->buf, inode->i_sb, - erofs_blknr(pos), EROFS_KMAP_ATOMIC); + erofs_blknr(inode->i_sb, pos), EROFS_KMAP_ATOMIC); if (IS_ERR(m->kaddr)) return PTR_ERR(m->kaddr); return unpack_compacted_index(m, amortizedshift, pos, lookahead); @@ -486,6 +360,7 @@ static int z_erofs_extent_lookback(struct z_erofs_maprecorder *m, static int z_erofs_get_extent_compressedlen(struct z_erofs_maprecorder *m, unsigned int initial_lcn) { + struct super_block *sb = m->inode->i_sb; struct erofs_inode *const vi = EROFS_I(m->inode); struct erofs_map_blocks *const map = m->map; const unsigned int lclusterbits = vi->z_logical_clusterbits; @@ -532,7 +407,7 @@ static int z_erofs_get_extent_compressedlen(struct z_erofs_maprecorder *m, * if the 1st NONHEAD lcluster is actually PLAIN or HEAD type * rather than CBLKCNT, it's a 1 lcluster-sized pcluster. */ - m->compressedblks = 1 << (lclusterbits - LOG_BLOCK_SIZE); + m->compressedblks = 1 << (lclusterbits - sb->s_blocksize_bits); break; case Z_EROFS_VLE_CLUSTER_TYPE_NONHEAD: if (m->delta[0] != 1) @@ -548,7 +423,7 @@ static int z_erofs_get_extent_compressedlen(struct z_erofs_maprecorder *m, return -EFSCORRUPTED; } out: - map->m_plen = (u64)m->compressedblks << LOG_BLOCK_SIZE; + map->m_plen = erofs_pos(sb, m->compressedblks); return 0; err_bonus_cblkcnt: erofs_err(m->inode->i_sb, @@ -691,7 +566,7 @@ static int z_erofs_do_map_blocks(struct inode *inode, } else if (fragment && m.lcn == vi->z_tailextent_headlcn) { map->m_flags |= EROFS_MAP_FRAGMENT; } else { - map->m_pa = blknr_to_addr(m.pblk); + map->m_pa = erofs_pos(inode->i_sb, m.pblk); err = z_erofs_get_extent_compressedlen(&m, initial_lcn); if (err) goto unmap_out; @@ -718,7 +593,7 @@ static int z_erofs_do_map_blocks(struct inode *inode, if ((flags & EROFS_GET_BLOCKS_FIEMAP) || ((flags & EROFS_GET_BLOCKS_READMORE) && map->m_algorithmformat == Z_EROFS_COMPRESSION_LZMA && - map->m_llen >= EROFS_BLKSIZ)) { + map->m_llen >= i_blocksize(inode))) { err = z_erofs_get_extent_decompressedlen(&m); if (!err) map->m_flags |= EROFS_MAP_FULL_MAPPED; @@ -732,6 +607,125 @@ unmap_out: return err; } +static int z_erofs_fill_inode_lazy(struct inode *inode) +{ + struct erofs_inode *const vi = EROFS_I(inode); + struct super_block *const sb = inode->i_sb; + int err, headnr; + erofs_off_t pos; + struct erofs_buf buf = __EROFS_BUF_INITIALIZER; + void *kaddr; + struct z_erofs_map_header *h; + + if (test_bit(EROFS_I_Z_INITED_BIT, &vi->flags)) { + /* + * paired with smp_mb() at the end of the function to ensure + * fields will only be observed after the bit is set. + */ + smp_mb(); + return 0; + } + + if (wait_on_bit_lock(&vi->flags, EROFS_I_BL_Z_BIT, TASK_KILLABLE)) + return -ERESTARTSYS; + + err = 0; + if (test_bit(EROFS_I_Z_INITED_BIT, &vi->flags)) + goto out_unlock; + + pos = ALIGN(erofs_iloc(inode) + vi->inode_isize + vi->xattr_isize, 8); + kaddr = erofs_read_metabuf(&buf, sb, erofs_blknr(sb, pos), EROFS_KMAP); + if (IS_ERR(kaddr)) { + err = PTR_ERR(kaddr); + goto out_unlock; + } + + h = kaddr + erofs_blkoff(sb, pos); + /* + * if the highest bit of the 8-byte map header is set, the whole file + * is stored in the packed inode. The rest bits keeps z_fragmentoff. + */ + if (h->h_clusterbits >> Z_EROFS_FRAGMENT_INODE_BIT) { + vi->z_advise = Z_EROFS_ADVISE_FRAGMENT_PCLUSTER; + vi->z_fragmentoff = le64_to_cpu(*(__le64 *)h) ^ (1ULL << 63); + vi->z_tailextent_headlcn = 0; + goto done; + } + vi->z_advise = le16_to_cpu(h->h_advise); + vi->z_algorithmtype[0] = h->h_algorithmtype & 15; + vi->z_algorithmtype[1] = h->h_algorithmtype >> 4; + + headnr = 0; + if (vi->z_algorithmtype[0] >= Z_EROFS_COMPRESSION_MAX || + vi->z_algorithmtype[++headnr] >= Z_EROFS_COMPRESSION_MAX) { + erofs_err(sb, "unknown HEAD%u format %u for nid %llu, please upgrade kernel", + headnr + 1, vi->z_algorithmtype[headnr], vi->nid); + err = -EOPNOTSUPP; + goto out_put_metabuf; + } + + vi->z_logical_clusterbits = sb->s_blocksize_bits + (h->h_clusterbits & 7); + if (!erofs_sb_has_big_pcluster(EROFS_SB(sb)) && + vi->z_advise & (Z_EROFS_ADVISE_BIG_PCLUSTER_1 | + Z_EROFS_ADVISE_BIG_PCLUSTER_2)) { + erofs_err(sb, "per-inode big pcluster without sb feature for nid %llu", + vi->nid); + err = -EFSCORRUPTED; + goto out_put_metabuf; + } + if (vi->datalayout == EROFS_INODE_FLAT_COMPRESSION && + !(vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_1) ^ + !(vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_2)) { + erofs_err(sb, "big pcluster head1/2 of compact indexes should be consistent for nid %llu", + vi->nid); + err = -EFSCORRUPTED; + goto out_put_metabuf; + } + + if (vi->z_advise & Z_EROFS_ADVISE_INLINE_PCLUSTER) { + struct erofs_map_blocks map = { + .buf = __EROFS_BUF_INITIALIZER + }; + + vi->z_idata_size = le16_to_cpu(h->h_idata_size); + err = z_erofs_do_map_blocks(inode, &map, + EROFS_GET_BLOCKS_FINDTAIL); + erofs_put_metabuf(&map.buf); + + if (!map.m_plen || + erofs_blkoff(sb, map.m_pa) + map.m_plen > sb->s_blocksize) { + erofs_err(sb, "invalid tail-packing pclustersize %llu", + map.m_plen); + err = -EFSCORRUPTED; + } + if (err < 0) + goto out_put_metabuf; + } + + if (vi->z_advise & Z_EROFS_ADVISE_FRAGMENT_PCLUSTER && + !(h->h_clusterbits >> Z_EROFS_FRAGMENT_INODE_BIT)) { + struct erofs_map_blocks map = { + .buf = __EROFS_BUF_INITIALIZER + }; + + vi->z_fragmentoff = le32_to_cpu(h->h_fragmentoff); + err = z_erofs_do_map_blocks(inode, &map, + EROFS_GET_BLOCKS_FINDTAIL); + erofs_put_metabuf(&map.buf); + if (err < 0) + goto out_put_metabuf; + } +done: + /* paired with smp_mb() at the beginning of the function */ + smp_mb(); + set_bit(EROFS_I_Z_INITED_BIT, &vi->flags); +out_put_metabuf: + erofs_put_metabuf(&buf); +out_unlock: + clear_and_wake_up_bit(EROFS_I_BL_Z_BIT, &vi->flags); + return err; +} + int z_erofs_map_blocks_iter(struct inode *inode, struct erofs_map_blocks *map, int flags) { diff --git a/fs/exec.c b/fs/exec.c index 2d6bca1cda6e..ef93a4d5911b 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -198,33 +198,39 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos, int write) { struct page *page; + struct vm_area_struct *vma = bprm->vma; + struct mm_struct *mm = bprm->mm; int ret; - unsigned int gup_flags = FOLL_FORCE; -#ifdef CONFIG_STACK_GROWSUP - if (write) { - ret = expand_downwards(bprm->vma, pos); - if (ret < 0) + /* + * Avoid relying on expanding the stack down in GUP (which + * does not work for STACK_GROWSUP anyway), and just do it + * by hand ahead of time. + */ + if (write && pos < vma->vm_start) { + mmap_write_lock(mm); + ret = expand_downwards(vma, pos); + if (unlikely(ret < 0)) { + mmap_write_unlock(mm); return NULL; - } -#endif - - if (write) - gup_flags |= FOLL_WRITE; + } + mmap_write_downgrade(mm); + } else + mmap_read_lock(mm); /* * We are doing an exec(). 'current' is the process - * doing the exec and bprm->mm is the new process's mm. + * doing the exec and 'mm' is the new process's mm. */ - mmap_read_lock(bprm->mm); - ret = get_user_pages_remote(bprm->mm, pos, 1, gup_flags, + ret = get_user_pages_remote(mm, pos, 1, + write ? FOLL_WRITE : 0, &page, NULL, NULL); - mmap_read_unlock(bprm->mm); + mmap_read_unlock(mm); if (ret <= 0) return NULL; if (write) - acct_arg_size(bprm, vma_pages(bprm->vma)); + acct_arg_size(bprm, vma_pages(vma)); return page; } @@ -854,7 +860,7 @@ int setup_arg_pages(struct linux_binprm *bprm, stack_base = vma->vm_start - stack_expand; #endif current->mm->start_stack = bprm->p; - ret = expand_stack(vma, stack_base); + ret = expand_stack_locked(vma, stack_base); if (ret) ret = -EFAULT; diff --git a/fs/exfat/dir.c b/fs/exfat/dir.c index 15c4f901be36..33100904c951 100644 --- a/fs/exfat/dir.c +++ b/fs/exfat/dir.c @@ -34,6 +34,7 @@ static void exfat_get_uniname_from_ext_entry(struct super_block *sb, { int i; struct exfat_entry_set_cache *es; + unsigned int uni_len = 0, len; es = exfat_get_dentry_set(sb, p_dir, entry, ES_ALL_ENTRIES); if (!es) @@ -52,7 +53,10 @@ static void exfat_get_uniname_from_ext_entry(struct super_block *sb, if (exfat_get_entry_type(ep) != TYPE_EXTEND) break; - exfat_extract_uni_name(ep, uniname); + len = exfat_extract_uni_name(ep, uniname); + uni_len += len; + if (len != EXFAT_FILE_NAME_LEN || uni_len >= MAX_NAME_LENGTH) + break; uniname += EXFAT_FILE_NAME_LEN; } @@ -1027,7 +1031,8 @@ rewind: if (entry_type == TYPE_EXTEND) { unsigned short entry_uniname[16], unichar; - if (step != DIRENT_STEP_NAME) { + if (step != DIRENT_STEP_NAME || + name_len >= MAX_NAME_LENGTH) { step = DIRENT_STEP_FILE; continue; } diff --git a/fs/f2fs/OWNERS b/fs/f2fs/OWNERS deleted file mode 100644 index 6a5c01163993..000000000000 --- a/fs/f2fs/OWNERS +++ /dev/null @@ -1 +0,0 @@ -jaegeuk@google.com diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c index 887e55988450..d635c58cf5a3 100644 --- a/fs/f2fs/dir.c +++ b/fs/f2fs/dir.c @@ -775,8 +775,15 @@ int f2fs_add_dentry(struct inode *dir, const struct f2fs_filename *fname, { int err = -EAGAIN; - if (f2fs_has_inline_dentry(dir)) + if (f2fs_has_inline_dentry(dir)) { + /* + * Should get i_xattr_sem to keep the lock order: + * i_xattr_sem -> inode_page lock used by f2fs_setxattr. + */ + f2fs_down_read(&F2FS_I(dir)->i_xattr_sem); err = f2fs_add_inline_entry(dir, fname, inode, ino, mode); + f2fs_up_read(&F2FS_I(dir)->i_xattr_sem); + } if (err == -EAGAIN) err = f2fs_add_regular_entry(dir, fname, inode, ino, mode); diff --git a/fs/f2fs/xattr.c b/fs/f2fs/xattr.c index dc2e8637189e..db3b641f2158 100644 --- a/fs/f2fs/xattr.c +++ b/fs/f2fs/xattr.c @@ -527,10 +527,12 @@ int f2fs_getxattr(struct inode *inode, int index, const char *name, if (len > F2FS_NAME_LEN) return -ERANGE; - f2fs_down_read(&F2FS_I(inode)->i_xattr_sem); + if (!ipage) + f2fs_down_read(&F2FS_I(inode)->i_xattr_sem); error = lookup_all_xattrs(inode, ipage, index, len, name, &entry, &base_addr, &base_size, &is_inline); - f2fs_up_read(&F2FS_I(inode)->i_xattr_sem); + if (!ipage) + f2fs_up_read(&F2FS_I(inode)->i_xattr_sem); if (error) return error; diff --git a/fs/fuse/OWNERS b/fs/fuse/OWNERS deleted file mode 100644 index 5ee6098fadeb..000000000000 --- a/fs/fuse/OWNERS +++ /dev/null @@ -1 +0,0 @@ -balsini@google.com diff --git a/fs/fuse/backing.c b/fs/fuse/backing.c index 269a4dfd76d8..303a78a63cd2 100644 --- a/fs/fuse/backing.c +++ b/fs/fuse/backing.c @@ -208,6 +208,7 @@ int fuse_create_open_backing( struct file *file, unsigned int flags, umode_t mode) { struct fuse_inode *dir_fuse_inode = get_fuse_inode(dir); + struct fuse_dentry *fuse_entry = get_fuse_dentry(entry); struct fuse_dentry *dir_fuse_dentry = get_fuse_dentry(entry->d_parent); struct dentry *backing_dentry = NULL; struct inode *inode = NULL; @@ -239,29 +240,28 @@ int fuse_create_open_backing( if (err) goto out; - if (get_fuse_dentry(entry)->backing_path.dentry) - path_put(&get_fuse_dentry(entry)->backing_path); - get_fuse_dentry(entry)->backing_path = (struct path) { + if (fuse_entry->backing_path.dentry) + path_put(&fuse_entry->backing_path); + fuse_entry->backing_path = (struct path) { .mnt = dir_fuse_dentry->backing_path.mnt, .dentry = backing_dentry, }; - path_get(&get_fuse_dentry(entry)->backing_path); + path_get(&fuse_entry->backing_path); if (d_inode) target_nodeid = get_fuse_inode(d_inode)->nodeid; inode = fuse_iget_backing(dir->i_sb, target_nodeid, - get_fuse_dentry(entry)->backing_path.dentry->d_inode); - if (IS_ERR(inode)) { - err = PTR_ERR(inode); + fuse_entry->backing_path.dentry->d_inode); + if (!inode) { + err = -EIO; goto out; } if (get_fuse_inode(inode)->bpf) bpf_prog_put(get_fuse_inode(inode)->bpf); - get_fuse_inode(inode)->bpf = dir_fuse_inode->bpf; - if (get_fuse_inode(inode)->bpf) - bpf_prog_inc(dir_fuse_inode->bpf); + get_fuse_inode(inode)->bpf = fuse_entry->bpf; + fuse_entry->bpf = NULL; newent = d_splice_alias(inode, entry); if (IS_ERR(newent)) { @@ -269,10 +269,12 @@ int fuse_create_open_backing( goto out; } + inode = NULL; entry = newent ? newent : entry; err = finish_open(file, entry, fuse_open_file_backing); out: + iput(inode); dput(backing_dentry); return err; } @@ -295,44 +297,19 @@ void *fuse_create_open_finalize( } int fuse_release_initialize(struct fuse_bpf_args *fa, struct fuse_release_in *fri, - struct inode *inode, struct file *file) -{ - struct fuse_file *fuse_file = file->private_data; - - /* Always put backing file whatever bpf/userspace says */ - fput(fuse_file->backing_file); - - *fri = (struct fuse_release_in) { - .fh = ((struct fuse_file *)(file->private_data))->fh, - }; - - *fa = (struct fuse_bpf_args) { - .nodeid = get_fuse_inode(inode)->nodeid, - .opcode = FUSE_RELEASE, - .in_numargs = 1, - .in_args[0].size = sizeof(*fri), - .in_args[0].value = fri, - }; - - return 0; -} - -int fuse_releasedir_initialize(struct fuse_bpf_args *fa, - struct fuse_release_in *fri, - struct inode *inode, struct file *file) + struct inode *inode, struct fuse_file *ff) { - struct fuse_file *fuse_file = file->private_data; - /* Always put backing file whatever bpf/userspace says */ - fput(fuse_file->backing_file); + fput(ff->backing_file); *fri = (struct fuse_release_in) { - .fh = ((struct fuse_file *)(file->private_data))->fh, + .fh = ff->fh, }; *fa = (struct fuse_bpf_args) { .nodeid = get_fuse_inode(inode)->nodeid, - .opcode = FUSE_RELEASEDIR, + .opcode = S_ISDIR(inode->i_mode) ? FUSE_RELEASEDIR + : FUSE_RELEASE, .in_numargs = 1, .in_args[0].size = sizeof(*fri), .in_args[0].value = fri, @@ -342,15 +319,14 @@ int fuse_releasedir_initialize(struct fuse_bpf_args *fa, } int fuse_release_backing(struct fuse_bpf_args *fa, - struct inode *inode, struct file *file) + struct inode *inode, struct fuse_file *ff) { return 0; } void *fuse_release_finalize(struct fuse_bpf_args *fa, - struct inode *inode, struct file *file) + struct inode *inode, struct fuse_file *ff) { - fuse_file_free(file->private_data); return NULL; } @@ -992,6 +968,33 @@ void *fuse_file_write_iter_finalize(struct fuse_bpf_args *fa, return ERR_PTR(fwio->ret); } +long fuse_backing_ioctl(struct file *file, unsigned int command, unsigned long arg, int flags) +{ + struct fuse_file *ff = file->private_data; + long ret; + + if (flags & FUSE_IOCTL_COMPAT) + ret = -ENOTTY; + else + ret = vfs_ioctl(ff->backing_file, command, arg); + + return ret; +} + +int fuse_file_flock_backing(struct file *file, int cmd, struct file_lock *fl) +{ + struct fuse_file *ff = file->private_data; + struct file *backing_file = ff->backing_file; + int error; + + fl->fl_file = backing_file; + if (backing_file->f_op->flock) + error = backing_file->f_op->flock(backing_file, cmd, fl); + else + error = locks_lock_file_wait(backing_file, fl); + return error; +} + ssize_t fuse_backing_mmap(struct file *file, struct vm_area_struct *vma) { int ret; @@ -1224,14 +1227,12 @@ int fuse_handle_bpf_prog(struct fuse_entry_bpf *feb, struct inode *parent, } /* Cannot change existing program */ - if (*bpf && new_bpf) { - bpf_prog_put(new_bpf); + if (*bpf) { + if (new_bpf) + bpf_prog_put(new_bpf); return new_bpf == *bpf ? 0 : -EINVAL; } - if (*bpf) - bpf_prog_put(*bpf); - *bpf = new_bpf; return 0; } @@ -1239,61 +1240,62 @@ int fuse_handle_bpf_prog(struct fuse_entry_bpf *feb, struct inode *parent, struct dentry *fuse_lookup_finalize(struct fuse_bpf_args *fa, struct inode *dir, struct dentry *entry, unsigned int flags) { - struct fuse_dentry *fd; - struct dentry *bd; - struct inode *inode, *backing_inode; - struct inode *d_inode = entry->d_inode; + struct fuse_dentry *fuse_entry; + struct dentry *backing_entry; + struct inode *inode = NULL, *backing_inode; + struct inode *entry_inode = entry->d_inode; struct fuse_entry_out *feo = fa->out_args[0].value; struct fuse_entry_bpf_out *febo = fa->out_args[1].value; - struct fuse_entry_bpf *feb = container_of(febo, struct fuse_entry_bpf, out); + struct fuse_entry_bpf *feb = container_of(febo, struct fuse_entry_bpf, + out); int error = -1; u64 target_nodeid = 0; - struct dentry *ret; + struct dentry *ret = NULL; - fd = get_fuse_dentry(entry); - if (!fd) { + fuse_entry = get_fuse_dentry(entry); + if (!fuse_entry) { ret = ERR_PTR(-EIO); goto out; } - bd = fd->backing_path.dentry; - if (!bd) { + backing_entry = fuse_entry->backing_path.dentry; + if (!backing_entry) { ret = ERR_PTR(-ENOENT); goto out; } - backing_inode = bd->d_inode; - if (!backing_inode) { - ret = 0; - goto out; - } + if (entry_inode) + target_nodeid = get_fuse_inode(entry_inode)->nodeid; - if (d_inode) - target_nodeid = get_fuse_inode(d_inode)->nodeid; - - inode = fuse_iget_backing(dir->i_sb, target_nodeid, backing_inode); + backing_inode = backing_entry->d_inode; + if (backing_inode) + inode = fuse_iget_backing(dir->i_sb, target_nodeid, + backing_inode); - if (IS_ERR(inode)) { - ret = ERR_PTR(PTR_ERR(inode)); - goto out; - } - - error = fuse_handle_bpf_prog(feb, dir, &get_fuse_inode(inode)->bpf); + error = inode ? + fuse_handle_bpf_prog(feb, dir, &get_fuse_inode(inode)->bpf) : + fuse_handle_bpf_prog(feb, dir, &fuse_entry->bpf); if (error) { ret = ERR_PTR(error); goto out; } - error = fuse_handle_backing(feb, &get_fuse_inode(inode)->backing_inode, &fd->backing_path); - if (error) { - ret = ERR_PTR(error); - goto out; - } - - get_fuse_inode(inode)->nodeid = feo->nodeid; + if (inode) { + error = fuse_handle_backing(feb, + &get_fuse_inode(inode)->backing_inode, + &fuse_entry->backing_path); + if (error) { + ret = ERR_PTR(error); + goto out; + } - ret = d_splice_alias(inode, entry); + get_fuse_inode(inode)->nodeid = feo->nodeid; + ret = d_splice_alias(inode, entry); + if (!IS_ERR(ret)) + inode = NULL; + } out: + iput(inode); if (feb->backing_file) fput(feb->backing_file); return ret; @@ -1444,32 +1446,34 @@ int fuse_mkdir_initialize( int fuse_mkdir_backing( struct fuse_bpf_args *fa, - struct inode *dir, struct dentry *entry, umode_t mode) + struct inode *dir_inode, struct dentry *entry, umode_t mode) { int err = 0; const struct fuse_mkdir_in *fmi = fa->in_args[0].value; - struct fuse_inode *fuse_inode = get_fuse_inode(dir); - struct inode *backing_inode = fuse_inode->backing_inode; + struct fuse_inode *dir_fuse_inode = get_fuse_inode(dir_inode); + struct inode *dir_backing_inode = dir_fuse_inode->backing_inode; struct path backing_path = {}; struct inode *inode = NULL; - struct dentry *d; //TODO Actually deal with changing the backing entry in mkdir get_fuse_backing_path(entry, &backing_path); if (!backing_path.dentry) return -EBADF; - inode_lock_nested(backing_inode, I_MUTEX_PARENT); + inode_lock_nested(dir_backing_inode, I_MUTEX_PARENT); mode = fmi->mode; - if (!IS_POSIXACL(backing_inode)) + if (!IS_POSIXACL(dir_backing_inode)) mode &= ~fmi->umask; - err = vfs_mkdir(&init_user_ns, backing_inode, backing_path.dentry, mode); + err = vfs_mkdir(&init_user_ns, dir_backing_inode, backing_path.dentry, + mode); if (err) goto out; if (d_really_is_negative(backing_path.dentry) || unlikely(d_unhashed(backing_path.dentry))) { - d = lookup_one_len(entry->d_name.name, backing_path.dentry->d_parent, - entry->d_name.len); + struct dentry *d = lookup_one_len(entry->d_name.name, + backing_path.dentry->d_parent, + entry->d_name.len); + if (IS_ERR(d)) { err = PTR_ERR(d); goto out; @@ -1477,14 +1481,19 @@ int fuse_mkdir_backing( dput(backing_path.dentry); backing_path.dentry = d; } - inode = fuse_iget_backing(dir->i_sb, fuse_inode->nodeid, backing_inode); + inode = fuse_iget_backing(dir_inode->i_sb, 0, + backing_path.dentry->d_inode); if (IS_ERR(inode)) { err = PTR_ERR(inode); goto out; } d_instantiate(entry, inode); + if (get_fuse_inode(inode)->bpf) + bpf_prog_put(get_fuse_inode(inode)->bpf); + get_fuse_inode(inode)->bpf = get_fuse_dentry(entry)->bpf; + get_fuse_dentry(entry)->bpf = NULL; out: - inode_unlock(backing_inode); + inode_unlock(dir_backing_inode); path_put(&backing_path); return err; } diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index dd184a36dc55..59dee8d5b578 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c @@ -321,7 +321,7 @@ static int fuse_dentry_revalidate(struct dentry *entry, unsigned int flags) spin_unlock(&fi->lock); } kfree(forget); - if (ret == -ENOMEM) + if (ret == -ENOMEM || ret == -EINTR) goto out; if (ret || fuse_invalid_attr(&outarg.attr) || fuse_stale_inode(inode, outarg.generation, &outarg.attr)) @@ -364,9 +364,14 @@ static void fuse_dentry_release(struct dentry *dentry) { struct fuse_dentry *fd = dentry->d_fsdata; +#ifdef CONFIG_FUSE_BPF if (fd && fd->backing_path.dentry) path_put(&fd->backing_path); + if (fd && fd->bpf) + bpf_prog_put(fd->bpf); +#endif + kfree_rcu(fd, rcu); } #endif @@ -504,7 +509,6 @@ int fuse_lookup_name(struct super_block *sb, u64 nodeid, const struct qstr *name if (name->len > FUSE_NAME_MAX) goto out; - forget = fuse_alloc_forget(); err = -ENOMEM; if (!forget) @@ -523,32 +527,34 @@ int fuse_lookup_name(struct super_block *sb, u64 nodeid, const struct qstr *name err = -ENOENT; if (!entry) - goto out_queue_forget; + goto out_put_forget; err = -EINVAL; backing_file = bpf_arg.backing_file; if (!backing_file) - goto out_queue_forget; + goto out_put_forget; if (IS_ERR(backing_file)) { err = PTR_ERR(backing_file); - goto out_queue_forget; + goto out_put_forget; } backing_inode = backing_file->f_inode; *inode = fuse_iget_backing(sb, outarg->nodeid, backing_inode); if (!*inode) - goto out; + goto out_put_forget; err = fuse_handle_backing(&bpf_arg, &get_fuse_inode(*inode)->backing_inode, &get_fuse_dentry(entry)->backing_path); - if (err) - goto out; - - err = fuse_handle_bpf_prog(&bpf_arg, NULL, &get_fuse_inode(*inode)->bpf); - if (err) - goto out; + if (!err) + err = fuse_handle_bpf_prog(&bpf_arg, NULL, + &get_fuse_inode(*inode)->bpf); + if (err) { + iput(*inode); + *inode = NULL; + goto out_put_forget; + } } else #endif { @@ -568,9 +574,6 @@ int fuse_lookup_name(struct super_block *sb, u64 nodeid, const struct qstr *name } err = -ENOMEM; -#ifdef CONFIG_FUSE_BPF -out_queue_forget: -#endif if (!*inode && outarg->nodeid) { fuse_queue_forget(fm->fc, forget, outarg->nodeid, 1); goto out; @@ -1790,17 +1793,6 @@ static int fuse_dir_open(struct inode *inode, struct file *file) static int fuse_dir_release(struct inode *inode, struct file *file) { -#ifdef CONFIG_FUSE_BPF - struct fuse_err_ret fer; - - fer = fuse_bpf_backing(inode, struct fuse_release_in, - fuse_releasedir_initialize, fuse_release_backing, - fuse_release_finalize, - inode, file); - if (fer.ret) - return PTR_ERR(fer.result); -#endif - fuse_release_common(file, true); return 0; } diff --git a/fs/fuse/file.c b/fs/fuse/file.c index d37f90b3c59f..6608de8bea12 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -104,25 +104,39 @@ static void fuse_release_end(struct fuse_mount *fm, struct fuse_args *args, kfree(ra); } -static void fuse_file_put(struct fuse_file *ff, bool sync, bool isdir) +static void fuse_file_put(struct inode *inode, struct fuse_file *ff, + bool sync, bool isdir) { - if (refcount_dec_and_test(&ff->count)) { - struct fuse_args *args = &ff->release_args->args; + struct fuse_args *args = &ff->release_args->args; +#ifdef CONFIG_FUSE_BPF + struct fuse_err_ret fer; +#endif - if (isdir ? ff->fm->fc->no_opendir : ff->fm->fc->no_open) { - /* Do nothing when client does not implement 'open' */ - fuse_release_end(ff->fm, args, 0); - } else if (sync) { - fuse_simple_request(ff->fm, args); - fuse_release_end(ff->fm, args, 0); - } else { - args->end = fuse_release_end; - if (fuse_simple_background(ff->fm, args, - GFP_KERNEL | __GFP_NOFAIL)) - fuse_release_end(ff->fm, args, -ENOTCONN); - } - kfree(ff); + if (!refcount_dec_and_test(&ff->count)) + return; + +#ifdef CONFIG_FUSE_BPF + fer = fuse_bpf_backing(inode, struct fuse_release_in, + fuse_release_initialize, fuse_release_backing, + fuse_release_finalize, + inode, ff); + if (fer.ret) { + fuse_release_end(ff->fm, args, 0); + } else +#endif + if (isdir ? ff->fm->fc->no_opendir : ff->fm->fc->no_open) { + /* Do nothing when client does not implement 'open' */ + fuse_release_end(ff->fm, args, 0); + } else if (sync) { + fuse_simple_request(ff->fm, args); + fuse_release_end(ff->fm, args, 0); + } else { + args->end = fuse_release_end; + if (fuse_simple_background(ff->fm, args, + GFP_KERNEL | __GFP_NOFAIL)) + fuse_release_end(ff->fm, args, -ENOTCONN); } + kfree(ff); } struct fuse_file *fuse_file_open(struct fuse_mount *fm, u64 nodeid, @@ -343,7 +357,7 @@ void fuse_file_release(struct inode *inode, struct fuse_file *ff, * synchronous RELEASE is allowed (and desirable) in this case * because the server can be trusted not to screw up. */ - fuse_file_put(ff, ff->fm->fc->destroy, isdir); + fuse_file_put(ra->inode, ff, ff->fm->fc->destroy, isdir); } void fuse_release_common(struct file *file, bool isdir) @@ -361,17 +375,6 @@ static int fuse_release(struct inode *inode, struct file *file) { struct fuse_conn *fc = get_fuse_conn(inode); -#ifdef CONFIG_FUSE_BPF - struct fuse_err_ret fer; - - fer = fuse_bpf_backing(inode, struct fuse_release_in, - fuse_release_initialize, fuse_release_backing, - fuse_release_finalize, - inode, file); - if (fer.ret) - return PTR_ERR(fer.result); -#endif - /* * Dirty pages might remain despite write_inode_now() call from * fuse_flush() due to writes racing with the close. @@ -394,7 +397,7 @@ void fuse_sync_release(struct fuse_inode *fi, struct fuse_file *ff, * iput(NULL) is a no-op and since the refcount is 1 and everything's * synchronous, we are fine with not doing igrab() here" */ - fuse_file_put(ff, true, false); + fuse_file_put(&fi->inode, ff, true, false); } EXPORT_SYMBOL_GPL(fuse_sync_release); @@ -972,8 +975,11 @@ static void fuse_readpages_end(struct fuse_mount *fm, struct fuse_args *args, unlock_page(page); put_page(page); } - if (ia->ff) - fuse_file_put(ia->ff, false, false); + if (ia->ff) { + WARN_ON(!mapping); + fuse_file_put(mapping ? mapping->host : NULL, ia->ff, + false, false); + } fuse_io_free(ia); } @@ -1716,7 +1722,7 @@ static void fuse_writepage_free(struct fuse_writepage_args *wpa) __free_page(ap->pages[i]); if (wpa->ia.ff) - fuse_file_put(wpa->ia.ff, false, false); + fuse_file_put(wpa->inode, wpa->ia.ff, false, false); kfree(ap->pages); kfree(wpa); @@ -1971,7 +1977,7 @@ int fuse_write_inode(struct inode *inode, struct writeback_control *wbc) ff = __fuse_write_file_get(fi); err = fuse_flush_times(inode, ff); if (ff) - fuse_file_put(ff, false, false); + fuse_file_put(inode, ff, false, false); return err; } @@ -2369,7 +2375,7 @@ static int fuse_writepages(struct address_space *mapping, fuse_writepages_send(&data); } if (data.ff) - fuse_file_put(data.ff, false, false); + fuse_file_put(inode, data.ff, false, false); kfree(data.orig_pages); out: @@ -2689,12 +2695,18 @@ static int fuse_file_flock(struct file *file, int cmd, struct file_lock *fl) { struct inode *inode = file_inode(file); struct fuse_conn *fc = get_fuse_conn(inode); + struct fuse_file *ff = file->private_data; int err; +#ifdef CONFIG_FUSE_BPF + /* TODO - this is simply passthrough, not a proper BPF filter */ + if (ff->backing_file) + return fuse_file_flock_backing(file, cmd, fl); +#endif + if (fc->no_flock) { err = locks_lock_file_wait(file, fl); } else { - struct fuse_file *ff = file->private_data; /* emulate flock with POSIX locks */ ff->flock = true; diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index a659c89cc685..723d462a54eb 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h @@ -76,7 +76,13 @@ struct fuse_dentry { u64 time; struct rcu_head rcu; }; + +#ifdef CONFIG_FUSE_BPF struct path backing_path; + + /* bpf program *only* set for negative dentries */ + struct bpf_prog *bpf; +#endif }; static inline struct fuse_dentry *get_fuse_dentry(const struct dentry *entry) @@ -1536,14 +1542,11 @@ void *fuse_link_finalize(struct fuse_bpf_args *fa, struct dentry *entry, struct inode *dir, struct dentry *newent); int fuse_release_initialize(struct fuse_bpf_args *fa, struct fuse_release_in *fri, - struct inode *inode, struct file *file); -int fuse_releasedir_initialize(struct fuse_bpf_args *fa, - struct fuse_release_in *fri, - struct inode *inode, struct file *file); + struct inode *inode, struct fuse_file *ff); int fuse_release_backing(struct fuse_bpf_args *fa, - struct inode *inode, struct file *file); + struct inode *inode, struct fuse_file *ff); void *fuse_release_finalize(struct fuse_bpf_args *fa, - struct inode *inode, struct file *file); + struct inode *inode, struct fuse_file *ff); int fuse_flush_initialize(struct fuse_bpf_args *fa, struct fuse_flush_in *ffi, struct file *file, fl_owner_t id); @@ -1667,6 +1670,9 @@ int fuse_file_write_iter_backing(struct fuse_bpf_args *fa, void *fuse_file_write_iter_finalize(struct fuse_bpf_args *fa, struct kiocb *iocb, struct iov_iter *from); +long fuse_backing_ioctl(struct file *file, unsigned int command, unsigned long arg, int flags); + +int fuse_file_flock_backing(struct file *file, int cmd, struct file_lock *fl); ssize_t fuse_backing_mmap(struct file *file, struct vm_area_struct *vma); int fuse_file_fallocate_initialize(struct fuse_bpf_args *fa, diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index 1f593230bd4a..697e7b5b8319 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c @@ -114,6 +114,10 @@ static void fuse_free_inode(struct inode *inode) #ifdef CONFIG_FUSE_DAX kfree(fi->dax); #endif +#ifdef CONFIG_FUSE_BPF + if (fi->bpf) + bpf_prog_put(fi->bpf); +#endif kmem_cache_free(fuse_inode_cachep, fi); } @@ -123,13 +127,6 @@ static void fuse_evict_inode(struct inode *inode) /* Will write inode on close/munmap and in all other dirtiers */ WARN_ON(inode->i_state & I_DIRTY_INODE); - -#ifdef CONFIG_FUSE_BPF - iput(fi->backing_inode); - if (fi->bpf) - bpf_prog_put(fi->bpf); - fi->bpf = NULL; -#endif truncate_inode_pages_final(&inode->i_data); clear_inode(inode); if (inode->i_sb->s_flags & SB_ACTIVE) { @@ -149,6 +146,15 @@ static void fuse_evict_inode(struct inode *inode) } } +#ifdef CONFIG_FUSE_BPF +static void fuse_destroy_inode(struct inode *inode) +{ + struct fuse_inode *fi = get_fuse_inode(inode); + + iput(fi->backing_inode); +} +#endif + static int fuse_reconfigure(struct fs_context *fsc) { struct super_block *sb = fsc->root->d_sb; @@ -1209,6 +1215,9 @@ static const struct export_operations fuse_export_operations = { static const struct super_operations fuse_super_operations = { .alloc_inode = fuse_alloc_inode, +#ifdef CONFIG_FUSE_BPF + .destroy_inode = fuse_destroy_inode, +#endif .free_inode = fuse_free_inode, .evict_inode = fuse_evict_inode, .write_inode = fuse_write_inode, diff --git a/fs/fuse/ioctl.c b/fs/fuse/ioctl.c index 8ba1545e01f9..d266f640266f 100644 --- a/fs/fuse/ioctl.c +++ b/fs/fuse/ioctl.c @@ -353,6 +353,15 @@ long fuse_ioctl_common(struct file *file, unsigned int cmd, if (fuse_is_bad(inode)) return -EIO; +#ifdef CONFIG_FUSE_BPF + { + struct fuse_file *ff = file->private_data; + + /* TODO - this is simply passthrough, not a proper BPF filter */ + if (ff->backing_file) + return fuse_backing_ioctl(file, cmd, arg, flags); + } +#endif return fuse_do_ioctl(file, cmd, arg, flags); } diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 2015bd05cba1..9d27aa8bd2bc 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c @@ -1380,6 +1380,14 @@ static void gfs2_evict_inode(struct inode *inode) if (inode->i_nlink || sb_rdonly(sb)) goto out; + /* + * In case of an incomplete mount, gfs2_evict_inode() may be called for + * system files without having an active journal to write to. In that + * case, skip the filesystem evict. + */ + if (!sdp->sd_jdesc) + goto out; + gfs2_holder_mark_uninitialized(&gh); ret = evict_should_delete(inode, &gh); if (ret == SHOULD_DEFER_EVICTION) diff --git a/fs/incfs/OWNERS b/fs/incfs/OWNERS deleted file mode 100644 index 1b97669c9b15..000000000000 --- a/fs/incfs/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -akailash@google.com -paullawrence@google.com diff --git a/fs/incfs/pseudo_files.c b/fs/incfs/pseudo_files.c index 57c3353666ee..814d7063581a 100644 --- a/fs/incfs/pseudo_files.c +++ b/fs/incfs/pseudo_files.c @@ -918,10 +918,10 @@ static long ioctl_get_read_timeouts(struct mount_info *mi, void __user *arg) if (copy_from_user(&args, args_usr_ptr, sizeof(args))) return -EINVAL; - if (args.timeouts_array_size_out > INCFS_DATA_FILE_BLOCK_SIZE) + if (args.timeouts_array_size > INCFS_DATA_FILE_BLOCK_SIZE) return -EINVAL; - buffer = kzalloc(args.timeouts_array_size_out, GFP_NOFS); + buffer = kzalloc(args.timeouts_array_size, GFP_NOFS); if (!buffer) return -ENOMEM; diff --git a/fs/locks.c b/fs/locks.c index 240b9309ed6d..1047ab2b15e9 100644 --- a/fs/locks.c +++ b/fs/locks.c @@ -1300,6 +1300,7 @@ retry: out: spin_unlock(&ctx->flc_lock); percpu_up_read(&file_rwsem); + trace_posix_lock_inode(inode, request, error); /* * Free any unused locks. */ @@ -1308,7 +1309,6 @@ retry: if (new_fl2) locks_free_lock(new_fl2); locks_dispose_list(&dispose); - trace_posix_lock_inode(inode, request, error); return error; } diff --git a/fs/ntfs3/index.c b/fs/ntfs3/index.c index c27b4fe57513..24a26744a691 100644 --- a/fs/ntfs3/index.c +++ b/fs/ntfs3/index.c @@ -605,11 +605,58 @@ static const struct NTFS_DE *hdr_insert_head(struct INDEX_HDR *hdr, return e; } +/* + * index_hdr_check + * + * return true if INDEX_HDR is valid + */ +static bool index_hdr_check(const struct INDEX_HDR *hdr, u32 bytes) +{ + u32 end = le32_to_cpu(hdr->used); + u32 tot = le32_to_cpu(hdr->total); + u32 off = le32_to_cpu(hdr->de_off); + + if (!IS_ALIGNED(off, 8) || tot > bytes || end > tot || + off + sizeof(struct NTFS_DE) > end) { + /* incorrect index buffer. */ + return false; + } + + return true; +} + +/* + * index_buf_check + * + * return true if INDEX_BUFFER seems is valid + */ +static bool index_buf_check(const struct INDEX_BUFFER *ib, u32 bytes, + const CLST *vbn) +{ + const struct NTFS_RECORD_HEADER *rhdr = &ib->rhdr; + u16 fo = le16_to_cpu(rhdr->fix_off); + u16 fn = le16_to_cpu(rhdr->fix_num); + + if (bytes <= offsetof(struct INDEX_BUFFER, ihdr) || + rhdr->sign != NTFS_INDX_SIGNATURE || + fo < sizeof(struct INDEX_BUFFER) + /* Check index buffer vbn. */ + || (vbn && *vbn != le64_to_cpu(ib->vbn)) || (fo % sizeof(short)) || + fo + fn * sizeof(short) >= bytes || + fn != ((bytes >> SECTOR_SHIFT) + 1)) { + /* incorrect index buffer. */ + return false; + } + + return index_hdr_check(&ib->ihdr, + bytes - offsetof(struct INDEX_BUFFER, ihdr)); +} + void fnd_clear(struct ntfs_fnd *fnd) { int i; - for (i = 0; i < fnd->level; i++) { + for (i = fnd->level - 1; i >= 0; i--) { struct indx_node *n = fnd->nodes[i]; if (!n) @@ -820,9 +867,16 @@ int indx_init(struct ntfs_index *indx, struct ntfs_sb_info *sbi, u32 t32; const struct INDEX_ROOT *root = resident_data(attr); + t32 = le32_to_cpu(attr->res.data_size); + if (t32 <= offsetof(struct INDEX_ROOT, ihdr) || + !index_hdr_check(&root->ihdr, + t32 - offsetof(struct INDEX_ROOT, ihdr))) { + goto out; + } + /* Check root fields. */ if (!root->index_block_clst) - return -EINVAL; + goto out; indx->type = type; indx->idx2vbn_bits = __ffs(root->index_block_clst); @@ -834,19 +888,19 @@ int indx_init(struct ntfs_index *indx, struct ntfs_sb_info *sbi, if (t32 < sbi->cluster_size) { /* Index record is smaller than a cluster, use 512 blocks. */ if (t32 != root->index_block_clst * SECTOR_SIZE) - return -EINVAL; + goto out; /* Check alignment to a cluster. */ if ((sbi->cluster_size >> SECTOR_SHIFT) & (root->index_block_clst - 1)) { - return -EINVAL; + goto out; } indx->vbn2vbo_bits = SECTOR_SHIFT; } else { /* Index record must be a multiple of cluster size. */ if (t32 != root->index_block_clst << sbi->cluster_bits) - return -EINVAL; + goto out; indx->vbn2vbo_bits = sbi->cluster_bits; } @@ -854,7 +908,14 @@ int indx_init(struct ntfs_index *indx, struct ntfs_sb_info *sbi, init_rwsem(&indx->run_lock); indx->cmp = get_cmp_func(root); - return indx->cmp ? 0 : -EINVAL; + if (!indx->cmp) + goto out; + + return 0; + +out: + ntfs_set_state(sbi, NTFS_DIRTY_DIRTY); + return -EINVAL; } static struct indx_node *indx_new(struct ntfs_index *indx, @@ -1012,6 +1073,13 @@ int indx_read(struct ntfs_index *indx, struct ntfs_inode *ni, CLST vbn, goto out; ok: + if (!index_buf_check(ib, bytes, &vbn)) { + ntfs_inode_err(&ni->vfs_inode, "directory corrupted"); + ntfs_set_state(ni->mi.sbi, NTFS_DIRTY_ERROR); + err = -EINVAL; + goto out; + } + if (err == -E_NTFS_FIXUP) { ntfs_write_bh(ni->mi.sbi, &ib->rhdr, &in->nb, 0); err = 0; @@ -1599,9 +1667,9 @@ static int indx_insert_into_root(struct ntfs_index *indx, struct ntfs_inode *ni, if (err) { /* Restore root. */ - if (mi_resize_attr(mi, attr, -ds_root)) + if (mi_resize_attr(mi, attr, -ds_root)) { memcpy(attr, a_root, asize); - else { + } else { /* Bug? */ ntfs_set_state(sbi, NTFS_DIRTY_ERROR); } diff --git a/fs/ntfs3/inode.c b/fs/ntfs3/inode.c index 22152300e60c..ece7daa2266a 100644 --- a/fs/ntfs3/inode.c +++ b/fs/ntfs3/inode.c @@ -81,7 +81,7 @@ static struct inode *ntfs_read_mft(struct inode *inode, le16_to_cpu(ref->seq), le16_to_cpu(rec->seq)); goto out; } else if (!is_rec_inuse(rec)) { - err = -EINVAL; + err = -ESTALE; ntfs_err(sb, "Inode r=%x is not in use!", (u32)ino); goto out; } @@ -92,8 +92,10 @@ static struct inode *ntfs_read_mft(struct inode *inode, goto out; } - if (!is_rec_base(rec)) - goto Ok; + if (!is_rec_base(rec)) { + err = -EINVAL; + goto out; + } /* Record should contain $I30 root. */ is_dir = rec->flags & RECORD_FLAG_DIR; @@ -466,7 +468,6 @@ end_enum: inode->i_flags |= S_NOSEC; } -Ok: if (ino == MFT_REC_MFT && !sb->s_root) sbi->mft.ni = NULL; @@ -520,6 +521,9 @@ struct inode *ntfs_iget5(struct super_block *sb, const struct MFT_REF *ref, _ntfs_bad_inode(inode); } + if (IS_ERR(inode) && name) + ntfs_set_state(sb->s_fs_info, NTFS_DIRTY_ERROR); + return inode; } @@ -1635,10 +1639,8 @@ out6: ntfs_remove_reparse(sbi, IO_REPARSE_TAG_SYMLINK, &new_de->ref); out5: - if (S_ISDIR(mode) || run_is_empty(&ni->file.run)) - goto out4; - - run_deallocate(sbi, &ni->file.run, false); + if (!S_ISDIR(mode)) + run_deallocate(sbi, &ni->file.run, false); out4: clear_rec_inuse(rec); diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h index ca8b4d273feb..60c944d2811d 100644 --- a/fs/ntfs3/ntfs_fs.h +++ b/fs/ntfs3/ntfs_fs.h @@ -794,12 +794,12 @@ int run_pack(const struct runs_tree *run, CLST svcn, CLST len, u8 *run_buf, u32 run_buf_size, CLST *packed_vcns); int run_unpack(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino, CLST svcn, CLST evcn, CLST vcn, const u8 *run_buf, - u32 run_buf_size); + int run_buf_size); #ifdef NTFS3_CHECK_FREE_CLST int run_unpack_ex(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino, CLST svcn, CLST evcn, CLST vcn, const u8 *run_buf, - u32 run_buf_size); + int run_buf_size); #else #define run_unpack_ex run_unpack #endif diff --git a/fs/ntfs3/run.c b/fs/ntfs3/run.c index aaaa0d3d35a2..12d8682f33b5 100644 --- a/fs/ntfs3/run.c +++ b/fs/ntfs3/run.c @@ -919,12 +919,15 @@ out: */ int run_unpack(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino, CLST svcn, CLST evcn, CLST vcn, const u8 *run_buf, - u32 run_buf_size) + int run_buf_size) { u64 prev_lcn, vcn64, lcn, next_vcn; const u8 *run_last, *run_0; bool is_mft = ino == MFT_REC_MFT; + if (run_buf_size < 0) + return -EINVAL; + /* Check for empty. */ if (evcn + 1 == svcn) return 0; @@ -1046,7 +1049,7 @@ int run_unpack(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino, */ int run_unpack_ex(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino, CLST svcn, CLST evcn, CLST vcn, const u8 *run_buf, - u32 run_buf_size) + int run_buf_size) { int ret, err; CLST next_vcn, lcn, len; diff --git a/fs/ntfs3/xattr.c b/fs/ntfs3/xattr.c index ea582b4fe1d9..884781e423e1 100644 --- a/fs/ntfs3/xattr.c +++ b/fs/ntfs3/xattr.c @@ -42,28 +42,26 @@ static inline size_t packed_ea_size(const struct EA_FULL *ea) * Assume there is at least one xattr in the list. */ static inline bool find_ea(const struct EA_FULL *ea_all, u32 bytes, - const char *name, u8 name_len, u32 *off) + const char *name, u8 name_len, u32 *off, u32 *ea_sz) { - *off = 0; + u32 ea_size; - if (!ea_all || !bytes) + *off = 0; + if (!ea_all) return false; - for (;;) { + for (; *off < bytes; *off += ea_size) { const struct EA_FULL *ea = Add2Ptr(ea_all, *off); - u32 next_off = *off + unpacked_ea_size(ea); - - if (next_off > bytes) - return false; - + ea_size = unpacked_ea_size(ea); if (ea->name_len == name_len && - !memcmp(ea->name, name, name_len)) + !memcmp(ea->name, name, name_len)) { + if (ea_sz) + *ea_sz = ea_size; return true; - - *off = next_off; - if (next_off >= bytes) - return false; + } } + + return false; } /* @@ -74,12 +72,12 @@ static inline bool find_ea(const struct EA_FULL *ea_all, u32 bytes, static int ntfs_read_ea(struct ntfs_inode *ni, struct EA_FULL **ea, size_t add_bytes, const struct EA_INFO **info) { - int err; + int err = -EINVAL; struct ntfs_sb_info *sbi = ni->mi.sbi; struct ATTR_LIST_ENTRY *le = NULL; struct ATTRIB *attr_info, *attr_ea; void *ea_p; - u32 size; + u32 size, off, ea_size; static_assert(le32_to_cpu(ATTR_EA_INFO) < le32_to_cpu(ATTR_EA)); @@ -96,24 +94,31 @@ static int ntfs_read_ea(struct ntfs_inode *ni, struct EA_FULL **ea, *info = resident_data_ex(attr_info, sizeof(struct EA_INFO)); if (!*info) - return -EINVAL; + goto out; /* Check Ea limit. */ size = le32_to_cpu((*info)->size); - if (size > sbi->ea_max_size) - return -EFBIG; + if (size > sbi->ea_max_size) { + err = -EFBIG; + goto out; + } + + if (attr_size(attr_ea) > sbi->ea_max_size) { + err = -EFBIG; + goto out; + } - if (attr_size(attr_ea) > sbi->ea_max_size) - return -EFBIG; + if (!size) { + /* EA info persists, but xattr is empty. Looks like EA problem. */ + goto out; + } /* Allocate memory for packed Ea. */ ea_p = kmalloc(size_add(size, add_bytes), GFP_NOFS); if (!ea_p) return -ENOMEM; - if (!size) { - /* EA info persists, but xattr is empty. Looks like EA problem. */ - } else if (attr_ea->non_res) { + if (attr_ea->non_res) { struct runs_tree run; run_init(&run); @@ -124,24 +129,52 @@ static int ntfs_read_ea(struct ntfs_inode *ni, struct EA_FULL **ea, run_close(&run); if (err) - goto out; + goto out1; } else { void *p = resident_data_ex(attr_ea, size); - if (!p) { - err = -EINVAL; - goto out; - } + if (!p) + goto out1; memcpy(ea_p, p, size); } memset(Add2Ptr(ea_p, size), 0, add_bytes); + + /* Check all attributes for consistency. */ + for (off = 0; off < size; off += ea_size) { + const struct EA_FULL *ef = Add2Ptr(ea_p, off); + u32 bytes = size - off; + + /* Check if we can use field ea->size. */ + if (bytes < sizeof(ef->size)) + goto out1; + + if (ef->size) { + ea_size = le32_to_cpu(ef->size); + if (ea_size > bytes) + goto out1; + continue; + } + + /* Check if we can use fields ef->name_len and ef->elength. */ + if (bytes < offsetof(struct EA_FULL, name)) + goto out1; + + ea_size = ALIGN(struct_size(ef, name, + 1 + ef->name_len + + le16_to_cpu(ef->elength)), + 4); + if (ea_size > bytes) + goto out1; + } + *ea = ea_p; return 0; -out: +out1: kfree(ea_p); - *ea = NULL; +out: + ntfs_set_state(sbi, NTFS_DIRTY_DIRTY); return err; } @@ -163,6 +196,7 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer, const struct EA_FULL *ea; u32 off, size; int err; + int ea_size; size_t ret; err = ntfs_read_ea(ni, &ea_all, 0, &info); @@ -175,8 +209,9 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer, size = le32_to_cpu(info->size); /* Enumerate all xattrs. */ - for (ret = 0, off = 0; off < size; off += unpacked_ea_size(ea)) { + for (ret = 0, off = 0; off < size; off += ea_size) { ea = Add2Ptr(ea_all, off); + ea_size = unpacked_ea_size(ea); if (buffer) { if (ret + ea->name_len + 1 > bytes_per_buffer) { @@ -227,7 +262,8 @@ static int ntfs_get_ea(struct inode *inode, const char *name, size_t name_len, goto out; /* Enumerate all xattrs. */ - if (!find_ea(ea_all, le32_to_cpu(info->size), name, name_len, &off)) { + if (!find_ea(ea_all, le32_to_cpu(info->size), name, name_len, &off, + NULL)) { err = -ENODATA; goto out; } @@ -269,7 +305,7 @@ static noinline int ntfs_set_ea(struct inode *inode, const char *name, struct EA_FULL *new_ea; struct EA_FULL *ea_all = NULL; size_t add, new_pack; - u32 off, size; + u32 off, size, ea_sz; __le16 size_pack; struct ATTRIB *attr; struct ATTR_LIST_ENTRY *le; @@ -304,9 +340,8 @@ static noinline int ntfs_set_ea(struct inode *inode, const char *name, size_pack = ea_info.size_pack; } - if (info && find_ea(ea_all, size, name, name_len, &off)) { + if (info && find_ea(ea_all, size, name, name_len, &off, &ea_sz)) { struct EA_FULL *ea; - size_t ea_sz; if (flags & XATTR_CREATE) { err = -EEXIST; @@ -329,8 +364,6 @@ static noinline int ntfs_set_ea(struct inode *inode, const char *name, if (ea->flags & FILE_NEED_EA) le16_add_cpu(&ea_info.count, -1); - ea_sz = unpacked_ea_size(ea); - le16_add_cpu(&ea_info.size_pack, 0 - packed_ea_size(ea)); memmove(ea, Add2Ptr(ea, ea_sz), size - off - ea_sz); diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index a23541614a0d..fe244a271620 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -758,12 +758,14 @@ static int smaps_hugetlb_range(pte_t *pte, unsigned long hmask, static const struct mm_walk_ops smaps_walk_ops = { .pmd_entry = smaps_pte_range, .hugetlb_entry = smaps_hugetlb_range, + .walk_lock = PGWALK_RDLOCK, }; static const struct mm_walk_ops smaps_shmem_walk_ops = { .pmd_entry = smaps_pte_range, .hugetlb_entry = smaps_hugetlb_range, .pte_hole = smaps_pte_hole, + .walk_lock = PGWALK_RDLOCK, }; /* @@ -1247,6 +1249,7 @@ static int clear_refs_test_walk(unsigned long start, unsigned long end, static const struct mm_walk_ops clear_refs_walk_ops = { .pmd_entry = clear_refs_pte_range, .test_walk = clear_refs_test_walk, + .walk_lock = PGWALK_WRLOCK, }; static ssize_t clear_refs_write(struct file *file, const char __user *buf, @@ -1623,6 +1626,7 @@ static const struct mm_walk_ops pagemap_ops = { .pmd_entry = pagemap_pmd_range, .pte_hole = pagemap_pte_hole, .hugetlb_entry = pagemap_hugetlb_range, + .walk_lock = PGWALK_RDLOCK, }; /* @@ -1929,6 +1933,7 @@ static int gather_hugetlb_stats(pte_t *pte, unsigned long hmask, static const struct mm_walk_ops show_numa_ops = { .hugetlb_entry = gather_hugetlb_stats, .pmd_entry = gather_pte_stats, + .walk_lock = PGWALK_RDLOCK, }; /* diff --git a/fs/pstore/ram_core.c b/fs/pstore/ram_core.c index 8bf09886e7e6..fea6e42b2dd2 100644 --- a/fs/pstore/ram_core.c +++ b/fs/pstore/ram_core.c @@ -518,7 +518,7 @@ static int persistent_ram_post_init(struct persistent_ram_zone *prz, u32 sig, sig ^= PERSISTENT_RAM_SIG; if (prz->buffer->sig == sig) { - if (buffer_size(prz) == 0) { + if (buffer_size(prz) == 0 && buffer_start(prz) == 0) { pr_debug("found existing empty buffer\n"); return 0; } diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index 65bf92615772..bec3e2341421 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -247,18 +247,17 @@ static inline struct uffd_msg userfault_msg(unsigned long address, * hugepmd ranges. */ static inline bool userfaultfd_huge_must_wait(struct userfaultfd_ctx *ctx, - struct vm_area_struct *vma, - unsigned long address, - unsigned long flags, - unsigned long reason) + struct vm_fault *vmf, + unsigned long reason) { + struct vm_area_struct *vma = vmf->vma; struct mm_struct *mm = ctx->mm; pte_t *ptep, pte; bool ret = true; - mmap_assert_locked(mm); + assert_fault_locked(vmf); - ptep = huge_pte_offset(mm, address, vma_mmu_pagesize(vma)); + ptep = huge_pte_offset(mm, vmf->address, vma_mmu_pagesize(vma)); if (!ptep) goto out; @@ -280,10 +279,8 @@ out: } #else static inline bool userfaultfd_huge_must_wait(struct userfaultfd_ctx *ctx, - struct vm_area_struct *vma, - unsigned long address, - unsigned long flags, - unsigned long reason) + struct vm_fault *vmf, + unsigned long reason) { return false; /* should never get here */ } @@ -297,11 +294,11 @@ static inline bool userfaultfd_huge_must_wait(struct userfaultfd_ctx *ctx, * threads. */ static inline bool userfaultfd_must_wait(struct userfaultfd_ctx *ctx, - unsigned long address, - unsigned long flags, + struct vm_fault *vmf, unsigned long reason) { struct mm_struct *mm = ctx->mm; + unsigned long address = vmf->address; pgd_t *pgd; p4d_t *p4d; pud_t *pud; @@ -309,7 +306,7 @@ static inline bool userfaultfd_must_wait(struct userfaultfd_ctx *ctx, pte_t *pte; bool ret = true; - mmap_assert_locked(mm); + assert_fault_locked(vmf); pgd = pgd_offset(mm, address); if (!pgd_present(*pgd)) @@ -416,7 +413,7 @@ vm_fault_t handle_userfault(struct vm_fault *vmf, unsigned long reason) * Coredumping runs without mmap_lock so we can only check that * the mmap_lock is held, if PF_DUMPCORE was not set. */ - mmap_assert_locked(mm); + assert_fault_locked(vmf); ctx = vmf->vma->vm_userfaultfd_ctx.ctx; if (!ctx) @@ -523,13 +520,10 @@ vm_fault_t handle_userfault(struct vm_fault *vmf, unsigned long reason) spin_unlock_irq(&ctx->fault_pending_wqh.lock); if (!is_vm_hugetlb_page(vmf->vma)) - must_wait = userfaultfd_must_wait(ctx, vmf->address, vmf->flags, - reason); + must_wait = userfaultfd_must_wait(ctx, vmf, reason); else - must_wait = userfaultfd_huge_must_wait(ctx, vmf->vma, - vmf->address, - vmf->flags, reason); - mmap_read_unlock(mm); + must_wait = userfaultfd_huge_must_wait(ctx, vmf, reason); + release_fault_lock(vmf); if (likely(must_wait && !READ_ONCE(ctx->released))) { wake_up_poll(&ctx->fd_wqh, EPOLLIN); @@ -632,6 +626,7 @@ static void userfaultfd_event_wait_completion(struct userfaultfd_ctx *ctx, mmap_write_lock(mm); for_each_vma(vmi, vma) { if (vma->vm_userfaultfd_ctx.ctx == release_new_ctx) { + vma_start_write(vma); vma->vm_userfaultfd_ctx = NULL_VM_UFFD_CTX; userfaultfd_set_vm_flags(vma, vma->vm_flags & ~__VM_UFFD_FLAGS); @@ -667,6 +662,7 @@ int dup_userfaultfd(struct vm_area_struct *vma, struct list_head *fcs) octx = vma->vm_userfaultfd_ctx.ctx; if (!octx || !(octx->features & UFFD_FEATURE_EVENT_FORK)) { + vma_start_write(vma); vma->vm_userfaultfd_ctx = NULL_VM_UFFD_CTX; userfaultfd_set_vm_flags(vma, vma->vm_flags & ~__VM_UFFD_FLAGS); return 0; @@ -748,6 +744,7 @@ void mremap_userfaultfd_prep(struct vm_area_struct *vma, atomic_inc(&ctx->mmap_changing); } else { /* Drop uffd context if remap feature not enabled */ + vma_start_write(vma); vma->vm_userfaultfd_ctx = NULL_VM_UFFD_CTX; userfaultfd_set_vm_flags(vma, vma->vm_flags & ~__VM_UFFD_FLAGS); } @@ -906,6 +903,7 @@ static int userfaultfd_release(struct inode *inode, struct file *file) prev = vma; } + vma_start_write(vma); userfaultfd_set_vm_flags(vma, new_flags); vma->vm_userfaultfd_ctx = NULL_VM_UFFD_CTX; } @@ -1474,6 +1472,7 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, * the next vma was merged into the current one and * the current one has not been updated yet. */ + vma_start_write(vma); userfaultfd_set_vm_flags(vma, new_flags); vma->vm_userfaultfd_ctx.ctx = ctx; @@ -1662,6 +1661,7 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, * the next vma was merged into the current one and * the current one has not been updated yet. */ + vma_start_write(vma); userfaultfd_set_vm_flags(vma, new_flags); vma->vm_userfaultfd_ctx = NULL_VM_UFFD_CTX; diff --git a/fs/verity/enable.c b/fs/verity/enable.c index 3018f6d8403a..6e31d512d76a 100644 --- a/fs/verity/enable.c +++ b/fs/verity/enable.c @@ -14,6 +14,7 @@ struct block_buffer { u32 filled; + bool is_root_hash; u8 *data; }; @@ -25,6 +26,14 @@ static int hash_one_block(struct inode *inode, struct block_buffer *next = cur + 1; int err; + /* + * Safety check to prevent a buffer overflow in case of a filesystem bug + * that allows the file size to change despite deny_write_access(), or a + * bug in the Merkle tree logic itself + */ + if (WARN_ON_ONCE(next->is_root_hash && next->filled != 0)) + return -EINVAL; + /* Zero-pad the block if it's shorter than the block size. */ memset(&cur->data[cur->filled], 0, params->block_size - cur->filled); @@ -98,6 +107,7 @@ static int build_merkle_tree(struct file *filp, } } buffers[num_levels].data = root_hash; + buffers[num_levels].is_root_hash = true; BUILD_BUG_ON(sizeof(level_offset) != sizeof(params->level_start)); memcpy(level_offset, params->level_start, sizeof(level_offset)); @@ -348,6 +358,13 @@ int fsverity_ioctl_enable(struct file *filp, const void __user *uarg) err = file_permission(filp, MAY_WRITE); if (err) return err; + /* + * __kernel_read() is used while building the Merkle tree. So, we can't + * allow file descriptors that were opened for ioctl access only, using + * the special nonstandard access mode 3. O_RDONLY only, please! + */ + if (!(filp->f_mode & FMODE_READ)) + return -EBADF; if (IS_APPEND(inode)) return -EPERM; diff --git a/fs/xfs/xfs_buf_item_recover.c b/fs/xfs/xfs_buf_item_recover.c index ffa94102094d..43167f543afc 100644 --- a/fs/xfs/xfs_buf_item_recover.c +++ b/fs/xfs/xfs_buf_item_recover.c @@ -943,6 +943,16 @@ xlog_recover_buf_commit_pass2( if (lsn && lsn != -1 && XFS_LSN_CMP(lsn, current_lsn) >= 0) { trace_xfs_log_recover_buf_skip(log, buf_f); xlog_recover_validate_buf_type(mp, bp, buf_f, NULLCOMMITLSN); + + /* + * We're skipping replay of this buffer log item due to the log + * item LSN being behind the ondisk buffer. Verify the buffer + * contents since we aren't going to run the write verifier. + */ + if (bp->b_ops) { + bp->b_ops->verify_read(bp); + error = bp->b_error; + } goto out_release; } diff --git a/include/OWNERS b/include/OWNERS deleted file mode 100644 index 4b815c212f9d..000000000000 --- a/include/OWNERS +++ /dev/null @@ -1 +0,0 @@ -per-file net/**=file:/net/OWNERS diff --git a/include/linux/OWNERS b/include/linux/OWNERS deleted file mode 100644 index 68b6dedea64f..000000000000 --- a/include/linux/OWNERS +++ /dev/null @@ -1,4 +0,0 @@ -per-file bio.h=file:/block/OWNERS -per-file blk*.h=file:/block/OWNERS -per-file f2fs**=file:/fs/f2fs/OWNERS -per-file net**=file:/net/OWNERS diff --git a/include/linux/android_debug_symbols.h b/include/linux/android_debug_symbols.h new file mode 100644 index 000000000000..92c0259e6f89 --- /dev/null +++ b/include/linux/android_debug_symbols.h @@ -0,0 +1,47 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) 2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2023, Unisoc (Shanghai) Technologies Co., Ltd + */ + +#ifndef _ANDROID_DEBUG_SYMBOLS_H +#define _ANDROID_DEBUG_SYMBOLS_H + +enum android_debug_symbol { + ADS_SDATA = 0, + ADS_BSS_END, + ADS_PER_CPU_START, + ADS_PER_CPU_END, + ADS_TEXT, + ADS_SEND, + ADS_LINUX_BANNER, + ADS_TOTAL_CMA, + ADS_SLAB_CACHES, + ADS_SLAB_MUTEX, + ADS_END +}; + +enum android_debug_per_cpu_symbol { + ADS_IRQ_STACK_PTR = 0, + ADS_DEBUG_PER_CPU_END +}; + +#ifdef CONFIG_ANDROID_DEBUG_SYMBOLS + +void *android_debug_symbol(enum android_debug_symbol symbol); +void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol); + +#else /* !CONFIG_ANDROID_DEBUG_SYMBOLS */ + +static inline void *android_debug_symbol(enum android_debug_symbol symbol) +{ + return NULL; +} +static inline void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol) +{ + return NULL; +} + +#endif /* CONFIG_ANDROID_DEBUG_SYMBOLS */ + +#endif /* _ANDROID_DEBUG_SYMBOLS_H */ diff --git a/include/linux/blk-crypto-profile.h b/include/linux/blk-crypto-profile.h index 8b30d04ef008..794f608a8994 100644 --- a/include/linux/blk-crypto-profile.h +++ b/include/linux/blk-crypto-profile.h @@ -131,6 +131,9 @@ struct blk_crypto_profile { * keyslots while ensuring that they can't be changed concurrently. */ struct rw_semaphore lock; +#ifdef CONFIG_LOCKDEP + struct lock_class_key lockdep_key; +#endif /* List of idle slots, with least recently used slot at front */ wait_queue_head_t idle_slots_wait_queue; diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index 1035cb423fc1..c223ca3eebaa 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h @@ -314,4 +314,12 @@ extern s64 cpuidle_governor_latency_req(unsigned int cpu); #define CPU_PM_CPU_IDLE_ENTER_RETENTION_PARAM(low_level_idle_enter, idx, state) \ __CPU_PM_CPU_IDLE_ENTER(low_level_idle_enter, idx, state, 1) +#ifdef CONFIG_CPU_IDLE_GOV_TEO +unsigned long teo_cpu_get_util_threshold(int cpu); +void teo_cpu_set_util_threshold(int cpu, unsigned long util); +#else +static inline unsigned long teo_cpu_get_util_threshold(int cpu) {return -1;} +static inline void teo_cpu_set_util_threshold(int cpu, unsigned long util) {} +#endif + #endif /* _LINUX_CPUIDLE_H */ diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h index d2a71e25caab..b2d338904de2 100644 --- a/include/linux/device/driver.h +++ b/include/linux/device/driver.h @@ -134,6 +134,7 @@ extern struct device_driver *driver_find(const char *name, struct bus_type *bus); extern int driver_probe_done(void); extern void wait_for_device_probe(void); +extern void flush_deferred_probe_now(void); void __init wait_for_init_devices_probe(void); /* sysfs interface for exporting driver attributes */ diff --git a/include/linux/dma-fence.h b/include/linux/dma-fence.h index 775cdc0b4f24..be572c3a4dcd 100644 --- a/include/linux/dma-fence.h +++ b/include/linux/dma-fence.h @@ -584,7 +584,7 @@ static inline signed long dma_fence_wait(struct dma_fence *fence, bool intr) } struct dma_fence *dma_fence_get_stub(void); -struct dma_fence *dma_fence_allocate_private_stub(void); +struct dma_fence *dma_fence_allocate_private_stub(ktime_t timestamp); u64 dma_fence_context_alloc(unsigned num); extern const struct dma_fence_ops dma_fence_array_ops; diff --git a/include/linux/gunyah_rsc_mgr.h b/include/linux/gunyah_rsc_mgr.h index 5453c90fbe6a..0d9ec6d5162d 100644 --- a/include/linux/gunyah_rsc_mgr.h +++ b/include/linux/gunyah_rsc_mgr.h @@ -139,6 +139,7 @@ struct gh_rm_hyp_resource { __le32 resource_label; __le64 cap_id; __le32 virq_handle; +#define GH_RM_RESOURCE_NO_VIRQ 0xFFFFFFFF __le32 virq; __le64 base; __le64 size; @@ -167,15 +168,15 @@ struct gh_rm_platform_ops { }; #if IS_ENABLED(CONFIG_GUNYAH_PLATFORM_HOOKS) -int gh_rm_register_platform_ops(struct gh_rm_platform_ops *platform_ops); -void gh_rm_unregister_platform_ops(struct gh_rm_platform_ops *platform_ops); -int devm_gh_rm_register_platform_ops(struct device *dev, struct gh_rm_platform_ops *ops); +int gh_rm_register_platform_ops(const struct gh_rm_platform_ops *platform_ops); +void gh_rm_unregister_platform_ops(const struct gh_rm_platform_ops *platform_ops); +int devm_gh_rm_register_platform_ops(struct device *dev, const struct gh_rm_platform_ops *ops); #else -static inline int gh_rm_register_platform_ops(struct gh_rm_platform_ops *platform_ops) +static inline int gh_rm_register_platform_ops(const struct gh_rm_platform_ops *platform_ops) { return 0; } -static inline void gh_rm_unregister_platform_ops(struct gh_rm_platform_ops *platform_ops) { } +static inline void gh_rm_unregister_platform_ops(const struct gh_rm_platform_ops *platform_ops) { } static inline int devm_gh_rm_register_platform_ops(struct device *dev, - struct gh_rm_platform_ops *ops) { return 0; } + const struct gh_rm_platform_ops *ops) { return 0; } #endif #endif diff --git a/include/linux/gunyah_vm_mgr.h b/include/linux/gunyah_vm_mgr.h index 0fa3cf6bcaca..527e94624369 100644 --- a/include/linux/gunyah_vm_mgr.h +++ b/include/linux/gunyah_vm_mgr.h @@ -21,6 +21,16 @@ int __must_check gh_vm_get(struct gh_vm *ghvm); void gh_vm_put(struct gh_vm *ghvm); struct gh_vm_function_instance; +/** + * struct gh_vm_function - Represents a function type + * @type: value from &enum gh_fn_type + * @name: friendly name for debug purposes + * @mod: owner of the function type + * @bind: Called when a new function of this type has been allocated. + * @unbind: Called when the function instance is being destroyed. + * @compare: Compare function instance @f's argument to the provided arg. + * Return true if they are equivalent. Used on GH_VM_REMOVE_FUNCTION. + */ struct gh_vm_function { u32 type; const char *name; @@ -84,9 +94,26 @@ void gh_vm_function_unregister(struct gh_vm_function *f); module_gh_vm_function(_name); \ MODULE_ALIAS_GH_VM_FUNCTION(_type, _idx) +/** + * struct gh_vm_resource_ticket - Represents a ticket to reserve exclusive access to VM resource(s) + * @vm_list: for @gh_vm->resource_tickets + * @resources: List of resource(s) associated with this ticket(members are from @gh_resource->list) + * @resource_type: Type of resource this ticket reserves + * @label: Label of the resource from resource manager this ticket reserves. + * @owner: owner of the ticket + * @populate: callback provided by the ticket owner and called when a resource is found that + * matches @resource_type and @label. Note that this callback could be called + * multiple times if userspace created mutliple resources with the same type/label. + * This callback may also have significant delay after gh_vm_add_resource_ticket() + * since gh_vm_add_resource_ticket() could be called before the VM starts. + * @unpopulate: callback provided by the ticket owner and called when the ticket owner should no + * no longer use the resource provided in the argument. When unpopulate() returns, + * the ticket owner should not be able to use the resource any more as the resource + * might being freed. + */ struct gh_vm_resource_ticket { - struct list_head vm_list; /* for gh_vm's resource tickets list */ - struct list_head resources; /* resources associated with this ticket */ + struct list_head vm_list; + struct list_head resources; enum gh_resource_type resource_type; u32 label; diff --git a/include/linux/gzvm_drv.h b/include/linux/gzvm_drv.h new file mode 100644 index 000000000000..d76c2adc3c22 --- /dev/null +++ b/include/linux/gzvm_drv.h @@ -0,0 +1,158 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#ifndef __GZVM_DRV_H__ +#define __GZVM_DRV_H__ + +#include <linux/eventfd.h> +#include <linux/list.h> +#include <linux/mutex.h> +#include <linux/miscdevice.h> +#include <linux/gzvm.h> +#include <linux/srcu.h> + +#define GZVM_VCPU_MMAP_SIZE PAGE_SIZE +#define INVALID_VM_ID 0xffff + +/* + * These are the efinitions of APIs between GenieZone hypervisor and driver, + * there's no need to be visible to uapi. Furthermore, We need GenieZone + * specific error code in order to map to Linux errno + */ +#define NO_ERROR (0) +#define ERR_NO_MEMORY (-5) +#define ERR_NOT_SUPPORTED (-24) +#define ERR_NOT_IMPLEMENTED (-27) +#define ERR_FAULT (-40) +#define GZVM_USERSPACE_IRQ_SOURCE_ID 0 +#define GZVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID 1 + +/* + * The following data structures are for data transferring between driver and + * hypervisor, and they're aligned with hypervisor definitions + */ +#define GZVM_MAX_VCPUS 8 +#define GZVM_MAX_MEM_REGION 10 + +#define GZVM_VCPU_RUN_MAP_SIZE (PAGE_SIZE * 2) + +/* struct mem_region_addr_range - Identical to ffa memory constituent */ +struct mem_region_addr_range { + /* the base IPA of the constituent memory region, aligned to 4 kiB */ + __u64 address; + /* the number of 4 kiB pages in the constituent memory region. */ + __u32 pg_cnt; + __u32 reserved; +}; + +struct gzvm_memory_region_ranges { + __u32 slot; + __u32 constituent_cnt; + __u64 total_pages; + __u64 gpa; + struct mem_region_addr_range constituents[]; +}; + +/* struct gzvm_memslot - VM's memory slot descriptor */ +struct gzvm_memslot { + u64 base_gfn; /* begin of guest page frame */ + unsigned long npages; /* number of pages this slot covers */ + unsigned long userspace_addr; /* corresponding userspace va */ + struct vm_area_struct *vma; /* vma related to this userspace addr */ + u32 flags; + u32 slot_id; +}; + +struct gzvm_vcpu { + struct gzvm *gzvm; + int vcpuid; + /* lock of vcpu*/ + struct mutex lock; + struct gzvm_vcpu_run *run; + struct gzvm_vcpu_hwstate *hwstate; +}; + +struct gzvm { + struct gzvm_vcpu *vcpus[GZVM_MAX_VCPUS]; + /* userspace tied to this vm */ + struct mm_struct *mm; + struct gzvm_memslot memslot[GZVM_MAX_MEM_REGION]; + /* lock for list_add*/ + struct mutex lock; + + struct { + /* lock for irqfds list operation */ + spinlock_t lock; + struct list_head items; + struct list_head resampler_list; + /* lock for irqfds resampler */ + struct mutex resampler_lock; + } irqfds; + + struct list_head ioevents; + + struct list_head vm_list; + u16 vm_id; + + struct hlist_head irq_ack_notifier_list; + struct srcu_struct irq_srcu; + /* lock for irq injection */ + struct mutex irq_lock; +}; + +long gzvm_dev_ioctl_check_extension(struct gzvm *gzvm, unsigned long args); +int gzvm_dev_ioctl_create_vm(unsigned long vm_type); + +int gzvm_err_to_errno(unsigned long err); + +void gzvm_destroy_all_vms(void); + +void gzvm_destroy_vcpus(struct gzvm *gzvm); + +/* arch-dependant functions */ +int gzvm_arch_probe(void); +int gzvm_arch_set_memregion(u16 vm_id, size_t buf_size, + phys_addr_t region); +int gzvm_arch_check_extension(struct gzvm *gzvm, __u64 cap, void __user *argp); +int gzvm_arch_create_vm(unsigned long vm_type); +int gzvm_arch_destroy_vm(u16 vm_id); +int gzvm_vm_ioctl_arch_enable_cap(struct gzvm *gzvm, + struct gzvm_enable_cap *cap, + void __user *argp); + +u64 gzvm_hva_to_pa_arch(u64 hva); +int gzvm_vm_ioctl_create_vcpu(struct gzvm *gzvm, u32 cpuid); +int gzvm_arch_vcpu_update_one_reg(struct gzvm_vcpu *vcpu, __u64 reg_id, + bool is_write, __u64 *data); +int gzvm_arch_create_vcpu(u16 vm_id, int vcpuid, void *run); +int gzvm_arch_vcpu_run(struct gzvm_vcpu *vcpu, __u64 *exit_reason); +int gzvm_arch_destroy_vcpu(u16 vm_id, int vcpuid); +int gzvm_arch_inform_exit(u16 vm_id); + +int gzvm_arch_create_device(u16 vm_id, struct gzvm_create_device *gzvm_dev); +int gzvm_arch_inject_irq(struct gzvm *gzvm, unsigned int vcpu_idx, + u32 irq_type, u32 irq, bool level); + +void gzvm_notify_acked_irq(struct gzvm *gzvm, unsigned int gsi); +int gzvm_irqfd(struct gzvm *gzvm, struct gzvm_irqfd *args); +int gzvm_drv_irqfd_init(void); +void gzvm_drv_irqfd_exit(void); +int gzvm_vm_irqfd_init(struct gzvm *gzvm); +void gzvm_vm_irqfd_release(struct gzvm *gzvm); + +int gzvm_arch_memregion_purpose(struct gzvm *gzvm, + struct gzvm_userspace_memory_region *mem); +int gzvm_arch_set_dtb_config(struct gzvm *gzvm, struct gzvm_dtb_config *args); + +int gzvm_init_ioeventfd(struct gzvm *gzvm); +int gzvm_ioeventfd(struct gzvm *gzvm, struct gzvm_ioeventfd *args); +bool gzvm_ioevent_write(struct gzvm_vcpu *vcpu, __u64 addr, int len, + const void *val); +void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt); +struct vm_area_struct *vma_lookup(struct mm_struct *mm, unsigned long addr); +void add_wait_queue_priority(struct wait_queue_head *wq_head, + struct wait_queue_entry *wq_entry); + +#endif /* __GZVM_DRV_H__ */ diff --git a/include/linux/highmem.h b/include/linux/highmem.h index 94b50dc0e131..a2d4e15464c3 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -319,6 +319,32 @@ static inline void copy_user_highpage(struct page *to, struct page *from, #endif +#ifdef copy_mc_to_kernel +static inline int copy_mc_user_highpage(struct page *to, struct page *from, + unsigned long vaddr, struct vm_area_struct *vma) +{ + unsigned long ret; + char *vfrom, *vto; + + vfrom = kmap_local_page(from); + vto = kmap_local_page(to); + ret = copy_mc_to_kernel(vto, vfrom, PAGE_SIZE); + if (!ret) + kmsan_unpoison_memory(page_address(to), PAGE_SIZE); + kunmap_local(vto); + kunmap_local(vfrom); + + return ret; +} +#else +static inline int copy_mc_user_highpage(struct page *to, struct page *from, + unsigned long vaddr, struct vm_area_struct *vma) +{ + copy_user_highpage(to, from, vaddr, vma); + return 0; +} +#endif + #ifndef __HAVE_ARCH_COPY_HIGHPAGE static inline void copy_highpage(struct page *to, struct page *from) diff --git a/include/linux/mm.h b/include/linux/mm.h index ab2f33910d06..8c1bfae77799 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -635,8 +635,14 @@ struct vm_operations_struct { */ static inline bool vma_start_read(struct vm_area_struct *vma) { - /* Check before locking. A race might cause false locked result. */ - if (vma->vm_lock_seq == READ_ONCE(vma->vm_mm->mm_lock_seq)) + /* + * Check before locking. A race might cause false locked result. + * We can use READ_ONCE() for the mm_lock_seq here, and don't need + * ACQUIRE semantics, because this is just a lockless check whose result + * we don't rely on for anything - the mm_lock_seq read against which we + * need ordering is below. + */ + if (READ_ONCE(vma->vm_lock_seq) == READ_ONCE(vma->vm_mm->mm_lock_seq)) return false; if (unlikely(down_read_trylock(&vma->vm_lock->lock) == 0)) @@ -647,8 +653,13 @@ static inline bool vma_start_read(struct vm_area_struct *vma) * False unlocked result is impossible because we modify and check * vma->vm_lock_seq under vma->vm_lock protection and mm->mm_lock_seq * modification invalidates all existing locks. + * + * We must use ACQUIRE semantics for the mm_lock_seq so that if we are + * racing with vma_end_write_all(), we only start reading from the VMA + * after it has been unlocked. + * This pairs with RELEASE semantics in vma_end_write_all(). */ - if (unlikely(vma->vm_lock_seq == READ_ONCE(vma->vm_mm->mm_lock_seq))) { + if (unlikely(vma->vm_lock_seq == smp_load_acquire(&vma->vm_mm->mm_lock_seq))) { up_read(&vma->vm_lock->lock); return false; } @@ -662,6 +673,7 @@ static inline void vma_end_read(struct vm_area_struct *vma) rcu_read_unlock(); } +/* WARNING! Can only be used if mmap_lock is expected to be write-locked */ static bool __is_vma_write_locked(struct vm_area_struct *vma, int *mm_lock_seq) { mmap_assert_write_locked(vma->vm_mm); @@ -670,10 +682,15 @@ static bool __is_vma_write_locked(struct vm_area_struct *vma, int *mm_lock_seq) * current task is holding mmap_write_lock, both vma->vm_lock_seq and * mm->mm_lock_seq can't be concurrently modified. */ - *mm_lock_seq = READ_ONCE(vma->vm_mm->mm_lock_seq); + *mm_lock_seq = vma->vm_mm->mm_lock_seq; return (vma->vm_lock_seq == *mm_lock_seq); } +/* + * Begin writing to a VMA. + * Exclude concurrent readers under the per-VMA lock until the currently + * write-locked mmap_lock is dropped or downgraded. + */ static inline void vma_start_write(struct vm_area_struct *vma) { int mm_lock_seq; @@ -682,7 +699,13 @@ static inline void vma_start_write(struct vm_area_struct *vma) return; down_write(&vma->vm_lock->lock); - vma->vm_lock_seq = mm_lock_seq; + /* + * We should use WRITE_ONCE() here because we can have concurrent reads + * from the early lockless pessimistic check in vma_start_read(). + * We don't really care about the correctness of that early check, but + * we should use WRITE_ONCE() for cleanliness and to keep KCSAN happy. + */ + WRITE_ONCE(vma->vm_lock_seq, mm_lock_seq); up_write(&vma->vm_lock->lock); } @@ -696,7 +719,7 @@ static inline bool vma_try_start_write(struct vm_area_struct *vma) if (!down_write_trylock(&vma->vm_lock->lock)) return false; - vma->vm_lock_seq = mm_lock_seq; + WRITE_ONCE(vma->vm_lock_seq, mm_lock_seq); up_write(&vma->vm_lock->lock); return true; } @@ -708,6 +731,12 @@ static inline void vma_assert_write_locked(struct vm_area_struct *vma) VM_BUG_ON_VMA(!__is_vma_write_locked(vma, &mm_lock_seq), vma); } +static inline void vma_assert_locked(struct vm_area_struct *vma) +{ + if (!rwsem_is_locked(&vma->vm_lock->lock)) + vma_assert_write_locked(vma); +} + static inline void vma_mark_detached(struct vm_area_struct *vma, bool detached) { /* When detaching vma should be write-locked */ @@ -716,6 +745,22 @@ static inline void vma_mark_detached(struct vm_area_struct *vma, bool detached) vma->detached = detached; } +static inline void release_fault_lock(struct vm_fault *vmf) +{ + if (vmf->flags & FAULT_FLAG_VMA_LOCK) + vma_end_read(vmf->vma); + else + mmap_read_unlock(vmf->vma->vm_mm); +} + +static inline void assert_fault_locked(struct vm_fault *vmf) +{ + if (vmf->flags & FAULT_FLAG_VMA_LOCK) + vma_assert_locked(vmf->vma); + else + mmap_assert_locked(vmf->vma->vm_mm); +} + struct vm_area_struct *lock_vma_under_rcu(struct mm_struct *mm, unsigned long address); @@ -728,10 +773,27 @@ static inline void vma_end_read(struct vm_area_struct *vma) {} static inline void vma_start_write(struct vm_area_struct *vma) {} static inline bool vma_try_start_write(struct vm_area_struct *vma) { return true; } -static inline void vma_assert_write_locked(struct vm_area_struct *vma) {} +static inline void vma_assert_write_locked(struct vm_area_struct *vma) + { mmap_assert_write_locked(vma->vm_mm); } static inline void vma_mark_detached(struct vm_area_struct *vma, bool detached) {} +static inline void release_fault_lock(struct vm_fault *vmf) +{ + mmap_read_unlock(vmf->vma->vm_mm); +} + +static inline void assert_fault_locked(struct vm_fault *vmf) +{ + mmap_assert_locked(vmf->vma->vm_mm); +} + +static inline struct vm_area_struct *lock_vma_under_rcu(struct mm_struct *mm, + unsigned long address) +{ + return NULL; +} + #endif /* CONFIG_PER_VMA_LOCK */ /* @@ -756,18 +818,22 @@ static inline void vm_flags_init(struct vm_area_struct *vma, ACCESS_PRIVATE(vma, __vm_flags) = flags; } -/* Use when VMA is part of the VMA tree and modifications need coordination */ +/* + * Use when VMA is part of the VMA tree and modifications need coordination + * Note: vm_flags_reset and vm_flags_reset_once do not lock the vma and + * it should be locked explicitly beforehand. + */ static inline void vm_flags_reset(struct vm_area_struct *vma, vm_flags_t flags) { - vma_start_write(vma); + vma_assert_write_locked(vma); vm_flags_init(vma, flags); } static inline void vm_flags_reset_once(struct vm_area_struct *vma, vm_flags_t flags) { - vma_start_write(vma); + vma_assert_write_locked(vma); WRITE_ONCE(ACCESS_PRIVATE(vma, __vm_flags), flags); } @@ -2117,6 +2183,8 @@ void unmap_mapping_pages(struct address_space *mapping, pgoff_t start, pgoff_t nr, bool even_cows); void unmap_mapping_range(struct address_space *mapping, loff_t const holebegin, loff_t const holelen, int even_cows); +struct vm_area_struct *lock_mm_and_find_vma(struct mm_struct *mm, + unsigned long address, struct pt_regs *regs); #else static inline vm_fault_t handle_mm_fault(struct vm_area_struct *vma, unsigned long address, unsigned int flags, @@ -2993,16 +3061,11 @@ extern vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf); extern unsigned long stack_guard_gap; /* Generic expand stack which grows the stack according to GROWS{UP,DOWN} */ -extern int expand_stack(struct vm_area_struct *vma, unsigned long address); +int expand_stack_locked(struct vm_area_struct *vma, unsigned long address); +struct vm_area_struct *expand_stack(struct mm_struct * mm, unsigned long addr); /* CONFIG_STACK_GROWSUP still needs to grow downwards at some places */ -extern int expand_downwards(struct vm_area_struct *vma, - unsigned long address); -#if VM_GROWSUP -extern int expand_upwards(struct vm_area_struct *vma, unsigned long address); -#else - #define expand_upwards(vma, address) (0) -#endif +int expand_downwards(struct vm_area_struct *vma, unsigned long address); /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr); @@ -3098,6 +3161,8 @@ unsigned long change_prot_numa(struct vm_area_struct *vma, #endif struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr); +struct vm_area_struct *find_extend_vma_locked(struct mm_struct *, + unsigned long addr); int remap_pfn_range(struct vm_area_struct *, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t); int remap_pfn_range_notrack(struct vm_area_struct *vma, unsigned long addr, @@ -3480,7 +3545,6 @@ enum mf_flags { int mf_dax_kill_procs(struct address_space *mapping, pgoff_t index, unsigned long count, int mf_flags); extern int memory_failure(unsigned long pfn, int flags); -extern void memory_failure_queue(unsigned long pfn, int flags); extern void memory_failure_queue_kick(int cpu); extern int unpoison_memory(unsigned long pfn); extern int sysctl_memory_failure_early_kill; @@ -3489,8 +3553,12 @@ extern void shake_page(struct page *p); extern atomic_long_t num_poisoned_pages __read_mostly; extern int soft_offline_page(unsigned long pfn, int flags); #ifdef CONFIG_MEMORY_FAILURE +extern void memory_failure_queue(unsigned long pfn, int flags); extern int __get_huge_page_for_hwpoison(unsigned long pfn, int flags); #else +static inline void memory_failure_queue(unsigned long pfn, int flags) +{ +} static inline int __get_huge_page_for_hwpoison(unsigned long pfn, int flags) { return 0; diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 248151aa6be9..4e9453ab5985 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -478,6 +478,20 @@ struct vm_area_struct { }; #ifdef CONFIG_PER_VMA_LOCK + /* + * Can only be written (using WRITE_ONCE()) while holding both: + * - mmap_lock (in write mode) + * - vm_lock->lock (in write mode) + * Can be read reliably while holding one of: + * - mmap_lock (in read or write mode) + * - vm_lock->lock (in read or write mode) + * Can be read unreliably (using READ_ONCE()) for pessimistic bailout + * while holding nothing (except RCU to keep the VMA struct allocated). + * + * This sequence counter is explicitly allowed to overflow; sequence + * counter reuse can only lead to occasional unnecessary use of the + * slowpath. + */ int vm_lock_seq; struct vma_lock *vm_lock; @@ -618,6 +632,20 @@ struct mm_struct { * by mmlist_lock */ #ifdef CONFIG_PER_VMA_LOCK + /* + * This field has lock-like semantics, meaning it is sometimes + * accessed with ACQUIRE/RELEASE semantics. + * Roughly speaking, incrementing the sequence number is + * equivalent to releasing locks on VMAs; reading the sequence + * number can be part of taking a read lock on a VMA. + * + * Can be modified under write mmap_lock using RELEASE + * semantics. + * Can be read with no other protection when holding write + * mmap_lock. + * Can be read with ACQUIRE semantics if not holding write + * mmap_lock. + */ int mm_lock_seq; #endif @@ -942,7 +970,8 @@ enum vm_fault_reason { { VM_FAULT_RETRY, "RETRY" }, \ { VM_FAULT_FALLBACK, "FALLBACK" }, \ { VM_FAULT_DONE_COW, "DONE_COW" }, \ - { VM_FAULT_NEEDDSYNC, "NEEDDSYNC" } + { VM_FAULT_NEEDDSYNC, "NEEDDSYNC" }, \ + { VM_FAULT_COMPLETED, "COMPLETED" } struct vm_special_mapping { const char *name; /* The name, e.g. "[vdso]". */ diff --git a/include/linux/mmap_lock.h b/include/linux/mmap_lock.h index aab8f1b28d26..4745ea859398 100644 --- a/include/linux/mmap_lock.h +++ b/include/linux/mmap_lock.h @@ -73,11 +73,25 @@ static inline void mmap_assert_write_locked(struct mm_struct *mm) } #ifdef CONFIG_PER_VMA_LOCK +/* + * Drop all currently-held per-VMA locks. + * This is called from the mmap_lock implementation directly before releasing + * a write-locked mmap_lock (or downgrading it to read-locked). + * This should normally NOT be called manually from other places. + * If you want to call this manually anyway, keep in mind that this will release + * *all* VMA write locks, including ones from further up the stack. + */ static inline void vma_end_write_all(struct mm_struct *mm) { mmap_assert_write_locked(mm); - /* No races during update due to exclusive mmap_lock being held */ - WRITE_ONCE(mm->mm_lock_seq, mm->mm_lock_seq + 1); + /* + * Nobody can concurrently modify mm->mm_lock_seq due to exclusive + * mmap_lock being held. + * We need RELEASE semantics here to ensure that preceding stores into + * the VMA take effect before we unlock it with this store. + * Pairs with ACQUIRE semantics in vma_start_read(). + */ + smp_store_release(&mm->mm_lock_seq, mm->mm_lock_seq + 1); } #else static inline void vma_end_write_all(struct mm_struct *mm) {} diff --git a/include/linux/of_address.h b/include/linux/of_address.h index 45598dbec269..78d3fa9b4ff8 100644 --- a/include/linux/of_address.h +++ b/include/linux/of_address.h @@ -38,6 +38,8 @@ struct of_pci_range { /* Translate a DMA address from device space to CPU space */ extern u64 of_translate_dma_address(struct device_node *dev, const __be32 *in_addr); +extern const __be32 *of_translate_dma_region(struct device_node *dev, const __be32 *addr, + phys_addr_t *start, size_t *length); #ifdef CONFIG_OF_ADDRESS extern u64 of_translate_address(struct device_node *np, const __be32 *addr); diff --git a/include/linux/of_iommu.h b/include/linux/of_iommu.h index 55c1eb300a86..9a5e6b410dd2 100644 --- a/include/linux/of_iommu.h +++ b/include/linux/of_iommu.h @@ -12,6 +12,9 @@ extern const struct iommu_ops *of_iommu_configure(struct device *dev, struct device_node *master_np, const u32 *id); +extern void of_iommu_get_resv_regions(struct device *dev, + struct list_head *list); + #else static inline const struct iommu_ops *of_iommu_configure(struct device *dev, @@ -21,6 +24,11 @@ static inline const struct iommu_ops *of_iommu_configure(struct device *dev, return NULL; } +static inline void of_iommu_get_resv_regions(struct device *dev, + struct list_head *list) +{ +} + #endif /* CONFIG_OF_IOMMU */ #endif /* __OF_IOMMU_H */ diff --git a/include/linux/oom.h b/include/linux/oom.h index 7d0c9c48a0c5..f008e23d9b41 100644 --- a/include/linux/oom.h +++ b/include/linux/oom.h @@ -112,4 +112,6 @@ extern void oom_killer_enable(void); extern struct task_struct *find_lock_task_mm(struct task_struct *p); +/* call for adding killed process to reaper. */ +extern void add_to_oom_reaper(struct task_struct *p); #endif /* _INCLUDE_LINUX_OOM_H */ diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index df232c0003de..17a18aed632b 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -882,8 +882,7 @@ static inline bool wake_page_match(struct wait_page_queue *wait_page, void __folio_lock(struct folio *folio); int __folio_lock_killable(struct folio *folio); -bool __folio_lock_or_retry(struct folio *folio, struct mm_struct *mm, - unsigned int flags); +vm_fault_t __folio_lock_or_retry(struct folio *folio, struct vm_fault *vmf); void unlock_page(struct page *page); void folio_unlock(struct folio *folio); @@ -997,11 +996,13 @@ static inline int lock_page_killable(struct page *page) * Return value and mmap_lock implications depend on flags; see * __folio_lock_or_retry(). */ -static inline bool folio_lock_or_retry(struct folio *folio, - struct mm_struct *mm, unsigned int flags) +static inline vm_fault_t folio_lock_or_retry(struct folio *folio, + struct vm_fault *vmf) { might_sleep(); - return folio_trylock(folio) || __folio_lock_or_retry(folio, mm, flags); + if (!folio_trylock(folio)) + return __folio_lock_or_retry(folio, vmf); + return 0; } /* diff --git a/include/linux/pagewalk.h b/include/linux/pagewalk.h index f3fafb731ffd..d29ada832fa1 100644 --- a/include/linux/pagewalk.h +++ b/include/linux/pagewalk.h @@ -6,6 +6,16 @@ struct mm_walk; +/* Locking requirement during a page walk. */ +enum page_walk_lock { + /* mmap_lock should be locked for read to stabilize the vma tree */ + PGWALK_RDLOCK = 0, + /* vma will be write-locked during the walk */ + PGWALK_WRLOCK = 1, + /* vma is expected to be already write-locked during the walk */ + PGWALK_WRLOCK_VERIFY = 2, +}; + /** * struct mm_walk_ops - callbacks for walk_page_range * @pgd_entry: if set, called for each non-empty PGD (top-level) entry @@ -55,6 +65,7 @@ struct mm_walk_ops { int (*pre_vma)(unsigned long start, unsigned long end, struct mm_walk *walk); void (*post_vma)(struct mm_walk *walk); + enum page_walk_lock walk_lock; }; /* diff --git a/include/linux/percpu-rwsem.h b/include/linux/percpu-rwsem.h index ebd81e03f3c1..7734ef905011 100644 --- a/include/linux/percpu-rwsem.h +++ b/include/linux/percpu-rwsem.h @@ -23,6 +23,9 @@ struct percpu_rw_semaphore { #endif }; +void _trace_android_vh_record_pcpu_rwsem_time_early( + unsigned long settime, struct percpu_rw_semaphore *sem); + #ifdef CONFIG_DEBUG_LOCK_ALLOC #define __PERCPU_RWSEM_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname }, #else @@ -54,6 +57,8 @@ static inline void percpu_down_read(struct percpu_rw_semaphore *sem) rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); preempt_disable(); + _trace_android_vh_record_pcpu_rwsem_time_early(jiffies, sem); + /* * We are in an RCU-sched read-side critical section, so the writer * cannot both change sem->state from readers_fast and start checking @@ -93,6 +98,7 @@ static inline bool percpu_down_read_trylock(struct percpu_rw_semaphore *sem) */ if (ret) { + _trace_android_vh_record_pcpu_rwsem_time_early(jiffies, sem); _trace_android_vh_record_pcpu_rwsem_starttime(current, jiffies); rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_); } @@ -124,6 +130,7 @@ static inline void percpu_up_read(struct percpu_rw_semaphore *sem) this_cpu_dec(*sem->read_count); rcuwait_wake_up(&sem->writer); } + _trace_android_vh_record_pcpu_rwsem_time_early(0, sem); _trace_android_vh_record_pcpu_rwsem_starttime(current, 0); preempt_enable(); } diff --git a/include/linux/sched.h b/include/linux/sched.h index 19a43aa5a021..cf3d130319cb 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -758,10 +758,8 @@ struct task_struct { #endif unsigned int __state; -#ifdef CONFIG_PREEMPT_RT /* saved state for "spinlock sleepers" */ - unsigned int saved_state; -#endif + /* moved to ANDROID_KABI_USE(1, unsigned int saved_state) */ /* * This begins the randomizable portion of task_struct. Only @@ -1548,7 +1546,7 @@ struct task_struct { */ union rv_task_monitor rv[RV_PER_TASK_MONITORS]; #endif - ANDROID_KABI_RESERVE(1); + ANDROID_KABI_USE(1, unsigned int saved_state); ANDROID_KABI_RESERVE(2); ANDROID_KABI_RESERVE(3); ANDROID_KABI_RESERVE(4); @@ -2029,15 +2027,12 @@ static __always_inline void scheduler_ipi(void) */ preempt_fold_need_resched(); } -extern unsigned long wait_task_inactive(struct task_struct *, unsigned int match_state); #else static inline void scheduler_ipi(void) { } -static inline unsigned long wait_task_inactive(struct task_struct *p, unsigned int match_state) -{ - return 1; -} #endif +extern unsigned long wait_task_inactive(struct task_struct *, unsigned int match_state); + /* * Set thread flags in other task's structures. * See asm/thread_info.h for TIF_xxxx flags available: diff --git a/include/linux/skmsg.h b/include/linux/skmsg.h index 84f787416a54..054d7911bfc9 100644 --- a/include/linux/skmsg.h +++ b/include/linux/skmsg.h @@ -71,7 +71,6 @@ struct sk_psock_link { }; struct sk_psock_work_state { - struct sk_buff *skb; u32 len; u32 off; }; @@ -105,7 +104,7 @@ struct sk_psock { struct proto *sk_proto; struct mutex work_mutex; struct sk_psock_work_state work_state; - struct work_struct work; + struct delayed_work work; struct rcu_work rwork; }; diff --git a/include/linux/usb/phy.h b/include/linux/usb/phy.h index 888d2fdb662f..e98e1ed26542 100644 --- a/include/linux/usb/phy.h +++ b/include/linux/usb/phy.h @@ -157,7 +157,17 @@ struct usb_phy { */ enum usb_charger_type (*charger_detect)(struct usb_phy *x); + /* + * Reserved slot 0 here is seserved for a notify_port_status callback addition that narrowly + * missed the ABI freeze deadline due to upstream review disussions. See + * https://lore.kernel.org/linux-usb/20230607062500.24669-1-stanley_chang@realtek.com/ + * for details. All other slots are for "normal" future ABI breaks in LTS updates + */ + ANDROID_KABI_RESERVE(0); ANDROID_KABI_RESERVE(1); + ANDROID_KABI_RESERVE(2); + ANDROID_KABI_RESERVE(3); + ANDROID_KABI_RESERVE(4); }; /* for board-specific init logic */ diff --git a/include/linux/wwan.h b/include/linux/wwan.h index 5ce2acf444fb..e3ea3c12c588 100644 --- a/include/linux/wwan.h +++ b/include/linux/wwan.h @@ -7,6 +7,7 @@ #include <linux/poll.h> #include <linux/netdevice.h> #include <linux/types.h> +#include <linux/android_kabi.h> /** * enum wwan_port_type - WWAN port types @@ -60,6 +61,9 @@ struct wwan_port_ops { int (*tx_blocking)(struct wwan_port *port, struct sk_buff *skb); __poll_t (*tx_poll)(struct wwan_port *port, struct file *filp, poll_table *wait); + + ANDROID_KABI_RESERVE(1); + ANDROID_KABI_RESERVE(2); }; /** @@ -165,6 +169,9 @@ struct wwan_ops { u32 if_id, struct netlink_ext_ack *extack); void (*dellink)(void *ctxt, struct net_device *dev, struct list_head *head); + + ANDROID_KABI_RESERVE(1); + ANDROID_KABI_RESERVE(2); }; int wwan_register_ops(struct device *parent, const struct wwan_ops *ops, diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index 7a381fcef939..822c88d059b9 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h @@ -335,6 +335,7 @@ enum { enum { HCI_SETUP, HCI_CONFIG, + HCI_DEBUGFS_CREATED, HCI_AUTO_OFF, HCI_RFKILLED, HCI_MGMT, diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index c600366b09d1..755b1a8f4b8e 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h @@ -514,6 +514,7 @@ struct hci_dev { struct work_struct cmd_sync_work; struct list_head cmd_sync_work_list; struct mutex cmd_sync_work_lock; + struct mutex unregister_lock; struct work_struct cmd_sync_cancel_work; struct work_struct reenable_adv_work; diff --git a/include/net/neighbour.h b/include/net/neighbour.h index e2a491132c60..272dbf5bdba2 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h @@ -186,7 +186,7 @@ struct pneigh_entry { netdevice_tracker dev_tracker; u32 flags; u8 protocol; - u8 key[]; + u32 key[]; }; /* diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h index a1ccf1276f3e..cfc9aa5c059f 100644 --- a/include/net/netfilter/nf_tables.h +++ b/include/net/netfilter/nf_tables.h @@ -1000,7 +1000,10 @@ static inline struct nft_userdata *nft_userdata(const struct nft_rule *rule) return (void *)&rule->data[rule->dlen]; } -void nf_tables_rule_release(const struct nft_ctx *ctx, struct nft_rule *rule); +void nft_rule_expr_activate(const struct nft_ctx *ctx, struct nft_rule *rule); +void nft_rule_expr_deactivate(const struct nft_ctx *ctx, struct nft_rule *rule, + enum nft_trans_phase phase); +void nf_tables_rule_destroy(const struct nft_ctx *ctx, struct nft_rule *rule); static inline void nft_set_elem_update_expr(const struct nft_set_ext *ext, struct nft_regs *regs, @@ -1083,6 +1086,7 @@ int nft_setelem_validate(const struct nft_ctx *ctx, struct nft_set *set, const struct nft_set_iter *iter, struct nft_set_elem *elem); int nft_set_catchall_validate(const struct nft_ctx *ctx, struct nft_set *set); +int nf_tables_bind_chain(const struct nft_ctx *ctx, struct nft_chain *chain); enum nft_chain_types { NFT_CHAIN_T_DEFAULT = 0, @@ -1119,11 +1123,17 @@ int nft_chain_validate_dependency(const struct nft_chain *chain, int nft_chain_validate_hooks(const struct nft_chain *chain, unsigned int hook_flags); +static inline bool nft_chain_binding(const struct nft_chain *chain) +{ + return chain->flags & NFT_CHAIN_BINDING; +} + static inline bool nft_chain_is_bound(struct nft_chain *chain) { return (chain->flags & NFT_CHAIN_BINDING) && chain->bound; } +int nft_chain_add(struct nft_table *table, struct nft_chain *chain); void nft_chain_del(struct nft_chain *chain); void nf_tables_chain_destroy(struct nft_ctx *ctx); @@ -1558,6 +1568,7 @@ struct nft_trans_rule { struct nft_rule *rule; struct nft_flow_rule *flow; u32 rule_id; + bool bound; }; #define nft_trans_rule(trans) \ @@ -1566,6 +1577,8 @@ struct nft_trans_rule { (((struct nft_trans_rule *)trans->data)->flow) #define nft_trans_rule_id(trans) \ (((struct nft_trans_rule *)trans->data)->rule_id) +#define nft_trans_rule_bound(trans) \ + (((struct nft_trans_rule *)trans->data)->bound) struct nft_trans_set { struct nft_set *set; @@ -1590,13 +1603,17 @@ struct nft_trans_set { (((struct nft_trans_set *)trans->data)->gc_int) struct nft_trans_chain { + struct nft_chain *chain; bool update; char *name; struct nft_stats __percpu *stats; u8 policy; + bool bound; u32 chain_id; }; +#define nft_trans_chain(trans) \ + (((struct nft_trans_chain *)trans->data)->chain) #define nft_trans_chain_update(trans) \ (((struct nft_trans_chain *)trans->data)->update) #define nft_trans_chain_name(trans) \ @@ -1605,6 +1622,8 @@ struct nft_trans_chain { (((struct nft_trans_chain *)trans->data)->stats) #define nft_trans_chain_policy(trans) \ (((struct nft_trans_chain *)trans->data)->policy) +#define nft_trans_chain_bound(trans) \ + (((struct nft_trans_chain *)trans->data)->bound) #define nft_trans_chain_id(trans) \ (((struct nft_trans_chain *)trans->data)->chain_id) diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h index 9020f07cae92..3764ac0cf1b5 100644 --- a/include/net/netns/ipv6.h +++ b/include/net/netns/ipv6.h @@ -54,7 +54,7 @@ struct netns_sysctl_ipv6 { int seg6_flowlabel; u32 ioam6_id; u64 ioam6_id_wide; - bool skip_notify_on_dev_down; + int skip_notify_on_dev_down; u8 fib_notify_on_flag_change; ANDROID_KABI_RESERVE(1); }; diff --git a/include/net/sock.h b/include/net/sock.h index c5b25854443d..18455549911e 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -335,6 +335,7 @@ struct sk_filter; * @sk_cgrp_data: cgroup data for this cgroup * @sk_memcg: this socket's memory cgroup association * @sk_write_pending: a write to stream socket waits to start + * @sk_wait_pending: number of threads blocked on this socket * @sk_state_change: callback to indicate change in the state of the sock * @sk_data_ready: callback to indicate there is data to be processed * @sk_write_space: callback to indicate there is bf sending space available @@ -427,6 +428,7 @@ struct sock { unsigned int sk_napi_id; #endif int sk_rcvbuf; + int sk_wait_pending; struct sk_filter __rcu *sk_filter; union { @@ -1182,6 +1184,7 @@ static inline void sock_rps_reset_rxhash(struct sock *sk) #define sk_wait_event(__sk, __timeo, __condition, __wait) \ ({ int __rc; \ + __sk->sk_wait_pending++; \ release_sock(__sk); \ __rc = __condition; \ if (!__rc) { \ @@ -1191,6 +1194,7 @@ static inline void sock_rps_reset_rxhash(struct sock *sk) } \ sched_annotate_sleep(); \ lock_sock(__sk); \ + __sk->sk_wait_pending--; \ __rc = __condition; \ __rc; \ }) diff --git a/include/net/tcp.h b/include/net/tcp.h index 5b70b241ce71..0744717f5caa 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -1467,6 +1467,8 @@ static inline void tcp_adjust_rcv_ssthresh(struct sock *sk) } void tcp_cleanup_rbuf(struct sock *sk, int copied); +void __tcp_cleanup_rbuf(struct sock *sk, int copied); + /* We provision sk_rcvbuf around 200% of sk_rcvlowat. * If 87.5 % (7/8) of the space has been consumed, we want to override @@ -2291,6 +2293,14 @@ int tcp_bpf_update_proto(struct sock *sk, struct sk_psock *psock, bool restore); void tcp_bpf_clone(const struct sock *sk, struct sock *newsk); #endif /* CONFIG_BPF_SYSCALL */ +#ifdef CONFIG_INET +void tcp_eat_skb(struct sock *sk, struct sk_buff *skb); +#else +static inline void tcp_eat_skb(struct sock *sk, struct sk_buff *skb) +{ +} +#endif + int tcp_bpf_sendmsg_redir(struct sock *sk, bool ingress, struct sk_msg *msg, u32 bytes, int flags); #endif /* CONFIG_NET_SOCK_MSG */ diff --git a/include/trace/events/OWNERS b/include/trace/events/OWNERS deleted file mode 100644 index a63dbf4659f2..000000000000 --- a/include/trace/events/OWNERS +++ /dev/null @@ -1 +0,0 @@ -per-file f2fs**=file:/fs/f2fs/OWNERS diff --git a/include/trace/events/erofs.h b/include/trace/events/erofs.h index 4f4c44ea3a65..01d0b8927376 100644 --- a/include/trace/events/erofs.h +++ b/include/trace/events/erofs.h @@ -66,8 +66,8 @@ TRACE_EVENT(erofs_fill_inode, TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->nid = EROFS_I(inode)->nid; - __entry->blkaddr = erofs_blknr(iloc(EROFS_I_SB(inode), __entry->nid)); - __entry->ofs = erofs_blkoff(iloc(EROFS_I_SB(inode), __entry->nid)); + __entry->blkaddr = erofs_blknr(inode->i_sb, erofs_iloc(inode)); + __entry->ofs = erofs_blkoff(inode->i_sb, erofs_iloc(inode)); ), TP_printk("dev = (%d,%d), nid = %llu, blkaddr %u ofs %u", diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h index e87cb2b80ed3..3e06b3fe81a6 100644 --- a/include/trace/events/mmflags.h +++ b/include/trace/events/mmflags.h @@ -51,7 +51,8 @@ gfpflag_string(__GFP_RECLAIM), \ gfpflag_string(__GFP_DIRECT_RECLAIM), \ gfpflag_string(__GFP_KSWAPD_RECLAIM), \ - gfpflag_string(__GFP_ZEROTAGS) + gfpflag_string(__GFP_ZEROTAGS), \ + gfpflag_string(__GFP_CMA) #ifdef CONFIG_KASAN_HW_TAGS #define __def_gfpflag_names_kasan , \ diff --git a/include/trace/hooks/binder.h b/include/trace/hooks/binder.h index 991e9b1271a1..216b5645db73 100644 --- a/include/trace/hooks/binder.h +++ b/include/trace/hooks/binder.h @@ -11,7 +11,11 @@ * mechanism for vendor modules to hook and extend functionality */ struct binder_transaction; +struct binder_transaction_data; struct task_struct; +struct binder_work; +struct binder_buffer; + DECLARE_HOOK(android_vh_binder_transaction_init, TP_PROTO(struct binder_transaction *t), TP_ARGS(t)); @@ -93,6 +97,26 @@ DECLARE_HOOK(android_vh_binder_new_ref, DECLARE_HOOK(android_vh_binder_del_ref, TP_PROTO(struct task_struct *proc, uint32_t ref_desc), TP_ARGS(proc, ref_desc)); +DECLARE_HOOK(android_vh_alloc_oem_binder_struct, + TP_PROTO(struct binder_transaction_data *tr, struct binder_transaction *t, + struct binder_proc *proc), + TP_ARGS(tr, t, proc)); +DECLARE_HOOK(android_vh_binder_transaction_received, + TP_PROTO(struct binder_transaction *t, struct binder_proc *proc, + struct binder_thread *thread, uint32_t cmd), + TP_ARGS(t, proc, thread, cmd)); +DECLARE_HOOK(android_vh_free_oem_binder_struct, + TP_PROTO(struct binder_transaction *t), + TP_ARGS(t)); +DECLARE_HOOK(android_vh_binder_special_task, + TP_PROTO(struct binder_transaction *t, struct binder_proc *proc, + struct binder_thread *thread, struct binder_work *w, + struct list_head *head, bool sync, bool *special_task), + TP_ARGS(t, proc, thread, w, head, sync, special_task)); +DECLARE_HOOK(android_vh_binder_free_buf, + TP_PROTO(struct binder_proc *proc, struct binder_thread *thread, + struct binder_buffer *buffer), + TP_ARGS(proc, thread, buffer)); #endif /* _TRACE_HOOK_BINDER_H */ /* This part must be outside protection */ diff --git a/include/trace/hooks/cgroup.h b/include/trace/hooks/cgroup.h index 15582cc572bd..b824197118f9 100644 --- a/include/trace/hooks/cgroup.h +++ b/include/trace/hooks/cgroup.h @@ -8,6 +8,9 @@ #include <trace/hooks/vendor_hooks.h> struct task_struct; +struct cgroup_taskset; +struct cgroup_subsys; +struct cgroup_subsys_state; DECLARE_HOOK(android_vh_cgroup_set_task, TP_PROTO(int ret, struct task_struct *task), TP_ARGS(ret, task)); @@ -16,18 +19,14 @@ DECLARE_RESTRICTED_HOOK(android_rvh_refrigerator, TP_PROTO(bool f), TP_ARGS(f), 1); -struct cgroup_subsys; -struct cgroup_taskset; DECLARE_HOOK(android_vh_cgroup_attach, TP_PROTO(struct cgroup_subsys *ss, struct cgroup_taskset *tset), - TP_ARGS(ss, tset)) + TP_ARGS(ss, tset)); + DECLARE_RESTRICTED_HOOK(android_rvh_cgroup_force_kthread_migration, TP_PROTO(struct task_struct *tsk, struct cgroup *dst_cgrp, bool *force_migration), TP_ARGS(tsk, dst_cgrp, force_migration), 1); -struct cgroup_taskset; -struct cgroup_subsys; - DECLARE_RESTRICTED_HOOK(android_rvh_cpuset_fork, TP_PROTO(struct task_struct *p, bool *inherit_cpus), TP_ARGS(p, inherit_cpus), 1); diff --git a/include/trace/hooks/compaction.h b/include/trace/hooks/compaction.h new file mode 100644 index 000000000000..3286de01d58b --- /dev/null +++ b/include/trace/hooks/compaction.h @@ -0,0 +1,20 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM compaction + +#define TRACE_INCLUDE_PATH trace/hooks + +#if !defined(_TRACE_HOOK_COMPACTION_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_HOOK_COMPACTION_H + +#include <trace/hooks/vendor_hooks.h> + +DECLARE_HOOK(android_vh_compaction_exit, + TP_PROTO(int node_id, int order, const int highest_zoneidx), + TP_ARGS(node_id, order, highest_zoneidx)); +enum compact_result; +DECLARE_HOOK(android_vh_compaction_try_to_compact_pages_exit, + TP_PROTO(enum compact_result *compact_result), + TP_ARGS(compact_result)); +#endif /* _TRACE_HOOK_COMPACTION_H */ +/* This part must be outside protection */ +#include <trace/define_trace.h> diff --git a/include/trace/hooks/dtask.h b/include/trace/hooks/dtask.h index cbf3dfd38d36..a63a2868e626 100644 --- a/include/trace/hooks/dtask.h +++ b/include/trace/hooks/dtask.h @@ -15,6 +15,7 @@ struct mutex; struct rt_mutex_base; struct rw_semaphore; struct task_struct; +struct percpu_rw_semaphore; DECLARE_HOOK(android_vh_mutex_wait_start, TP_PROTO(struct mutex *lock), @@ -80,6 +81,12 @@ DECLARE_HOOK(android_vh_record_rwsem_lock_starttime, DECLARE_HOOK(android_vh_record_pcpu_rwsem_starttime, TP_PROTO(struct task_struct *tsk, unsigned long settime_jiffies), TP_ARGS(tsk, settime_jiffies)); +DECLARE_HOOK(android_vh_record_pcpu_rwsem_time_early, + TP_PROTO(unsigned long settime_jiffies, struct percpu_rw_semaphore *sem), + TP_ARGS(settime_jiffies, sem)); +DECLARE_HOOK(android_vh_percpu_rwsem_wq_add, + TP_PROTO(struct percpu_rw_semaphore *sem, bool reader), + TP_ARGS(sem, reader)); struct mutex_waiter; DECLARE_HOOK(android_vh_alter_mutex_list_add, @@ -91,6 +98,28 @@ DECLARE_HOOK(android_vh_alter_mutex_list_add, DECLARE_HOOK(android_vh_mutex_unlock_slowpath, TP_PROTO(struct mutex *lock), TP_ARGS(lock)); +struct rt_mutex_waiter; +struct ww_acquire_ctx; +DECLARE_HOOK(android_vh_task_blocks_on_rtmutex, + TP_PROTO(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter, + struct task_struct *task, struct ww_acquire_ctx *ww_ctx, + unsigned int *chwalk), + TP_ARGS(lock, waiter, task, ww_ctx, chwalk)); +DECLARE_HOOK(android_vh_rtmutex_waiter_prio, + TP_PROTO(struct task_struct *task, int *waiter_prio), + TP_ARGS(task, waiter_prio)); + +DECLARE_HOOK(android_vh_exit_signal_whether_wake, + TP_PROTO(struct task_struct *p, bool *wake), + TP_ARGS(p, wake)); + +DECLARE_HOOK(android_vh_exit_check, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)); + +DECLARE_HOOK(android_vh_freeze_whether_wake, + TP_PROTO(struct task_struct *t, bool *wake), + TP_ARGS(t, wake)); #endif /* _TRACE_HOOK_DTASK_H */ diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index fb0bc38380fa..254da451178e 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -11,6 +11,7 @@ struct shmem_inode_info; struct folio; +struct page_vma_mapped_walk; DECLARE_RESTRICTED_HOOK(android_rvh_shmem_get_folio, TP_PROTO(struct shmem_inode_info *info, struct folio **folio), @@ -122,7 +123,34 @@ DECLARE_HOOK(android_vh_mem_cgroup_css_online, DECLARE_HOOK(android_vh_mem_cgroup_css_offline, TP_PROTO(struct cgroup_subsys_state *css, struct mem_cgroup *memcg), TP_ARGS(css, memcg)); +DECLARE_HOOK(android_vh_rmqueue_smallest_bypass, + TP_PROTO(struct page **page, struct zone *zone, int order, int migratetype), + TP_ARGS(page, zone, order, migratetype)); +DECLARE_HOOK(android_vh_free_one_page_bypass, + TP_PROTO(struct page *page, struct zone *zone, int order, int migratetype, + int fpi_flags, bool *bypass), + TP_ARGS(page, zone, order, migratetype, fpi_flags, bypass)); +DECLARE_HOOK(android_vh_test_clear_look_around_ref, + TP_PROTO(struct page *page), + TP_ARGS(page)); +DECLARE_HOOK(android_vh_look_around_migrate_folio, + TP_PROTO(struct folio *old_folio, struct folio *new_folio), + TP_ARGS(old_folio, new_folio)); +DECLARE_HOOK(android_vh_look_around, + TP_PROTO(struct page_vma_mapped_walk *pvmw, struct folio *folio, + struct vm_area_struct *vma, int *referenced), + TP_ARGS(pvmw, folio, vma, referenced)); +DECLARE_HOOK(android_vh_mm_alloc_pages_direct_reclaim_enter, + TP_PROTO(unsigned int order), + TP_ARGS(order)); +DECLARE_HOOK(android_vh_mm_alloc_pages_direct_reclaim_exit, + TP_PROTO(unsigned long did_some_progress, int retry_times), + TP_ARGS(did_some_progress, retry_times)); +struct oom_control; +DECLARE_HOOK(android_vh_mm_alloc_pages_may_oom_exit, + TP_PROTO(struct oom_control *oc, unsigned long did_some_progress), + TP_ARGS(oc, did_some_progress)); #endif /* _TRACE_HOOK_MM_H */ /* This part must be outside protection */ diff --git a/include/trace/hooks/regmap.h b/include/trace/hooks/regmap.h new file mode 100644 index 000000000000..cb6fc43d3472 --- /dev/null +++ b/include/trace/hooks/regmap.h @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM regmap +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH trace/hooks + +#if !defined(_TRACE_HOOK_REGMAP_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_HOOK_REGMAP_H +#include <trace/hooks/vendor_hooks.h> + +struct regmap_config; +struct regmap; + +/* + * Following tracepoints are not exported in tracefs and provide a + * mechanism for vendor modules to hook and extend functionality + */ +DECLARE_HOOK(android_vh_regmap_update, + TP_PROTO(const struct regmap_config *config, struct regmap *map), + TP_ARGS(config, map)); + +#endif /* _TRACE_HOOK_REGMAP_H */ +/* This part must be outside protection */ +#include <trace/define_trace.h> diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index fc1a832ccac1..594d6bd6c38b 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -52,6 +52,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_finish_prio_fork, TP_PROTO(struct task_struct *p), TP_ARGS(p), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_rtmutex_force_update, + TP_PROTO(struct task_struct *p, struct task_struct *pi_task, int *update), + TP_ARGS(p, pi_task, update), 1); + DECLARE_RESTRICTED_HOOK(android_rvh_rtmutex_prepare_setprio, TP_PROTO(struct task_struct *p, struct task_struct *pi_task), TP_ARGS(p, pi_task), 1); @@ -161,8 +165,9 @@ DECLARE_RESTRICTED_HOOK(android_rvh_tick_entry, TP_ARGS(rq), 1); DECLARE_RESTRICTED_HOOK(android_rvh_schedule, - TP_PROTO(struct task_struct *prev, struct task_struct *next, struct rq *rq), - TP_ARGS(prev, next, rq), 1); + TP_PROTO(unsigned int sched_mode, struct task_struct *prev, + struct task_struct *next, struct rq *rq), + TP_ARGS(sched_mode, prev, next, rq), 1); DECLARE_RESTRICTED_HOOK(android_rvh_sched_cpu_starting, TP_PROTO(int cpu), @@ -254,6 +259,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_do_sched_yield, TP_PROTO(struct rq *rq), TP_ARGS(rq), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_before_do_sched_yield, + TP_PROTO(long *unused), + TP_ARGS(unused), 1); + DECLARE_HOOK(android_vh_free_task, TP_PROTO(struct task_struct *p), TP_ARGS(p)); @@ -312,6 +321,11 @@ DECLARE_HOOK(android_vh_setscheduler_uclamp, TP_PROTO(struct task_struct *tsk, int clamp_id, unsigned int value), TP_ARGS(tsk, clamp_id, value)); +DECLARE_HOOK(android_vh_uclamp_validate, + TP_PROTO(struct task_struct *p, const struct sched_attr *attr, + bool user, int *ret, bool *done), + TP_ARGS(p, attr, user, ret, done)); + DECLARE_HOOK(android_vh_update_topology_flags_workfn, TP_PROTO(void *unused), TP_ARGS(unused)); @@ -380,7 +394,37 @@ DECLARE_HOOK(android_vh_mmput, TP_PROTO(struct mm_struct *mm), TP_ARGS(mm)); -/* macro versions of hooks are no longer required */ +struct sched_attr; +DECLARE_HOOK(android_vh_set_sugov_sched_attr, + TP_PROTO(struct sched_attr *attr), + TP_ARGS(attr)); +DECLARE_RESTRICTED_HOOK(android_rvh_set_iowait, + TP_PROTO(struct task_struct *p, struct rq *rq, int *should_iowait_boost), + TP_ARGS(p, rq, should_iowait_boost), 1); + +DECLARE_RESTRICTED_HOOK(android_rvh_attach_entity_load_avg, + TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se), + TP_ARGS(cfs_rq, se), 1); + +DECLARE_RESTRICTED_HOOK(android_rvh_detach_entity_load_avg, + TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se), + TP_ARGS(cfs_rq, se), 1); + +DECLARE_RESTRICTED_HOOK(android_rvh_update_load_avg, + TP_PROTO(u64 now, struct cfs_rq *cfs_rq, struct sched_entity *se), + TP_ARGS(now, cfs_rq, se), 1); + +DECLARE_RESTRICTED_HOOK(android_rvh_remove_entity_load_avg, + TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se), + TP_ARGS(cfs_rq, se), 1); + +DECLARE_RESTRICTED_HOOK(android_rvh_update_blocked_fair, + TP_PROTO(struct rq *rq), + TP_ARGS(rq), 1); + +DECLARE_RESTRICTED_HOOK(android_rvh_update_rt_rq_load_avg, + TP_PROTO(u64 now, struct rq *rq, struct task_struct *tsk, int running), + TP_ARGS(now, rq, tsk, running), 1); #endif /* _TRACE_HOOK_SCHED_H */ /* This part must be outside protection */ diff --git a/include/trace/hooks/signal.h b/include/trace/hooks/signal.h index 4e61006cb145..c845aec359d7 100644 --- a/include/trace/hooks/signal.h +++ b/include/trace/hooks/signal.h @@ -14,6 +14,9 @@ DECLARE_HOOK(android_vh_do_send_sig_info, DECLARE_HOOK(android_vh_exit_signal, TP_PROTO(struct task_struct *task), TP_ARGS(task)); +DECLARE_HOOK(android_vh_killed_process, + TP_PROTO(struct task_struct *killer, struct task_struct *dst, bool *reap), + TP_ARGS(killer, dst, reap)); #endif /* _TRACE_HOOK_SIGNAL_H */ /* This part must be outside protection */ #include <trace/define_trace.h> diff --git a/include/trace/hooks/thermal.h b/include/trace/hooks/thermal.h index dd42f1d6766a..3e928aa1920d 100644 --- a/include/trace/hooks/thermal.h +++ b/include/trace/hooks/thermal.h @@ -48,6 +48,10 @@ DECLARE_HOOK(android_vh_thermal_power_cap, TP_PROTO(u32 *power_range), TP_ARGS(power_range)); +DECLARE_HOOK(android_vh_enable_thermal_power_throttle, + TP_PROTO(bool *enable), + TP_ARGS(enable)); + #endif /* _TRACE_HOOK_THERMAL_H */ /* This part must be outside protection */ #include <trace/define_trace.h> diff --git a/include/trace/hooks/topology.h b/include/trace/hooks/topology.h index d2673d4379c1..56a9fd22f8c6 100644 --- a/include/trace/hooks/topology.h +++ b/include/trace/hooks/topology.h @@ -24,6 +24,10 @@ DECLARE_HOOK(android_vh_arch_set_freq_scale, #endif +DECLARE_HOOK(android_vh_use_amu_fie, + TP_PROTO(bool *use_amu_fie), + TP_ARGS(use_amu_fie)); + #endif /* _TRACE_HOOK_TOPOLOGY_H */ /* This part must be outside protection */ #include <trace/define_trace.h> diff --git a/include/trace/hooks/vmscan.h b/include/trace/hooks/vmscan.h index 0896b1134de5..f9effdd2d03e 100644 --- a/include/trace/hooks/vmscan.h +++ b/include/trace/hooks/vmscan.h @@ -36,6 +36,23 @@ DECLARE_HOOK(android_vh_should_continue_reclaim, DECLARE_HOOK(android_vh_file_is_tiny_bypass, TP_PROTO(bool file_is_tiny, bool *bypass), TP_ARGS(file_is_tiny, bypass)); +DECLARE_HOOK(android_vh_check_folio_look_around_ref, + TP_PROTO(struct folio *folio, int *skip), + TP_ARGS(folio, skip)); +enum scan_balance; +DECLARE_HOOK(android_vh_tune_scan_type, + TP_PROTO(enum scan_balance *scan_type), + TP_ARGS(scan_type)); +DECLARE_HOOK(android_vh_tune_swappiness, + TP_PROTO(int *swappiness), + TP_ARGS(swappiness)); +DECLARE_HOOK(android_vh_scan_abort_check_wmarks, + TP_PROTO(bool *check_wmarks), + TP_ARGS(check_wmarks)); +DECLARE_HOOK(android_vh_vmscan_kswapd_done, + TP_PROTO(int node_id, unsigned int highest_zoneidx, unsigned int alloc_order, + unsigned int reclaim_order), + TP_ARGS(node_id, highest_zoneidx, alloc_order, reclaim_order)); #endif /* _TRACE_HOOK_VMSCAN_H */ /* This part must be outside protection */ #include <trace/define_trace.h> diff --git a/include/uapi/asm-generic/Kbuild b/include/uapi/asm-generic/Kbuild index ebb180aac74e..5af115a3c1a8 100644 --- a/include/uapi/asm-generic/Kbuild +++ b/include/uapi/asm-generic/Kbuild @@ -34,3 +34,4 @@ mandatory-y += termbits.h mandatory-y += termios.h mandatory-y += types.h mandatory-y += unistd.h +mandatory-y += gzvm_arch.h diff --git a/include/uapi/asm-generic/gzvm_arch.h b/include/uapi/asm-generic/gzvm_arch.h new file mode 100644 index 000000000000..c4cc12716c91 --- /dev/null +++ b/include/uapi/asm-generic/gzvm_arch.h @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +#ifndef __ASM_GENERIC_GZVM_ARCH_H +#define __ASM_GENERIC_GZVM_ARCH_H +/* geniezone only supports aarch64 platform for now */ + +#endif /* __ASM_GENERIC_GZVM_ARCH_H */ diff --git a/include/uapi/linux/OWNERS b/include/uapi/linux/OWNERS deleted file mode 100644 index 8aed640a4679..000000000000 --- a/include/uapi/linux/OWNERS +++ /dev/null @@ -1,3 +0,0 @@ -per-file f2fs**=file:/fs/f2fs/OWNERS -per-file fuse**=file:/fs/fuse/OWNERS -per-file net**=file:/net/OWNERS diff --git a/include/uapi/linux/android_fuse.h b/include/uapi/linux/android_fuse.h index 221e30ea7f01..58f3d171952d 100644 --- a/include/uapi/linux/android_fuse.h +++ b/include/uapi/linux/android_fuse.h @@ -56,15 +56,29 @@ struct fuse_in_postfilter_header { /** One input argument of a request */ struct fuse_bpf_in_arg { uint32_t size; - const void *value; - const void *end_offset; + uint32_t padding; + union { + const void *value; + uint64_t padding2; + }; + union { + const void *end_offset; + uint64_t padding3; + }; }; /** One output argument of a request */ struct fuse_bpf_arg { uint32_t size; - void *value; - void *end_offset; + uint32_t padding; + union { + void *value; + uint64_t padding2; + }; + union { + void *end_offset; + uint64_t padding3; + }; }; #define FUSE_MAX_IN_ARGS 5 @@ -80,6 +94,7 @@ struct fuse_bpf_args { uint32_t in_numargs; uint32_t out_numargs; uint32_t flags; + uint32_t padding; struct fuse_bpf_in_arg in_args[FUSE_MAX_IN_ARGS]; struct fuse_bpf_arg out_args[FUSE_MAX_OUT_ARGS]; }; diff --git a/include/uapi/linux/gzvm.h b/include/uapi/linux/gzvm.h new file mode 100644 index 000000000000..d37be00fbeea --- /dev/null +++ b/include/uapi/linux/gzvm.h @@ -0,0 +1,343 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * Copyright (c) 2023 MediaTek Inc. + */ + +/** + * DOC: UAPI of GenieZone Hypervisor + * + * This file declares common data structure shared among user space, + * kernel space, and GenieZone hypervisor. + */ +#ifndef __GZVM_H__ +#define __GZVM_H__ + +#include <linux/const.h> +#include <linux/types.h> +#include <linux/ioctl.h> + +#include <asm/gzvm_arch.h> + +/* GZVM ioctls */ +#define GZVM_IOC_MAGIC 0x92 /* gz */ + +/* ioctls for /dev/gzvm fds */ +#define GZVM_CREATE_VM _IO(GZVM_IOC_MAGIC, 0x01) /* Returns a Geniezone VM fd */ + +/* + * Check if the given capability is supported or not. + * The argument is capability. Ex. GZVM_CAP_ARM_PROTECTED_VM or GZVM_CAP_ARM_VM_IPA_SIZE + * return is 0 (supported, no error) + * return is -EOPNOTSUPP (unsupported) + * return is -EFAULT (failed to get the argument from userspace) + */ +#define GZVM_CHECK_EXTENSION _IO(GZVM_IOC_MAGIC, 0x03) + +/* ioctls for VM fds */ +/* for GZVM_SET_MEMORY_REGION */ +struct gzvm_memory_region { + __u32 slot; + __u32 flags; + __u64 guest_phys_addr; + __u64 memory_size; /* bytes */ +}; + +#define GZVM_SET_MEMORY_REGION _IOW(GZVM_IOC_MAGIC, 0x40, \ + struct gzvm_memory_region) +/* + * GZVM_CREATE_VCPU receives as a parameter the vcpu slot, + * and returns a vcpu fd. + */ +#define GZVM_CREATE_VCPU _IO(GZVM_IOC_MAGIC, 0x41) + +/* for GZVM_SET_USER_MEMORY_REGION */ +struct gzvm_userspace_memory_region { + __u32 slot; + __u32 flags; + __u64 guest_phys_addr; + /* bytes */ + __u64 memory_size; + /* start of the userspace allocated memory */ + __u64 userspace_addr; +}; + +#define GZVM_SET_USER_MEMORY_REGION _IOW(GZVM_IOC_MAGIC, 0x46, \ + struct gzvm_userspace_memory_region) + +/* for GZVM_IRQ_LINE, irq field index values */ +#define GZVM_IRQ_VCPU_MASK 0xff +#define GZVM_IRQ_LINE_TYPE GENMASK(27, 24) +#define GZVM_IRQ_LINE_VCPU GENMASK(23, 16) +#define GZVM_IRQ_LINE_VCPU2 GENMASK(31, 28) +#define GZVM_IRQ_LINE_NUM GENMASK(15, 0) + +/* irq_type field */ +#define GZVM_IRQ_TYPE_CPU 0 +#define GZVM_IRQ_TYPE_SPI 1 +#define GZVM_IRQ_TYPE_PPI 2 + +/* out-of-kernel GIC cpu interrupt injection irq_number field */ +#define GZVM_IRQ_CPU_IRQ 0 +#define GZVM_IRQ_CPU_FIQ 1 + +struct gzvm_irq_level { + union { + __u32 irq; + __s32 status; + }; + __u32 level; +}; + +#define GZVM_IRQ_LINE _IOW(GZVM_IOC_MAGIC, 0x61, \ + struct gzvm_irq_level) + +enum gzvm_device_type { + GZVM_DEV_TYPE_ARM_VGIC_V3_DIST = 0, + GZVM_DEV_TYPE_ARM_VGIC_V3_REDIST = 1, + GZVM_DEV_TYPE_MAX, +}; + +/** + * struct gzvm_create_device: For GZVM_CREATE_DEVICE. + * @dev_type: Device type. + * @id: Device id. + * @flags: Bypass to hypervisor to handle them and these are flags of virtual + * devices. + * @dev_addr: Device ipa address in VM's view. + * @dev_reg_size: Device register range size. + * @attr_addr: If user -> kernel, this is user virtual address of device + * specific attributes (if needed). If kernel->hypervisor, + * this is ipa. + * @attr_size: This attr_size is the buffer size in bytes of each attribute + * needed from various devices. The attribute here refers to the + * additional data passed from VMM(e.g. Crosvm) to GenieZone + * hypervisor when virtual devices were to be created. Thus, + * we need attr_addr and attr_size in the gzvm_create_device + * structure to keep track of the attribute mentioned. + * + * Store information needed to create device. + */ +struct gzvm_create_device { + __u32 dev_type; + __u32 id; + __u64 flags; + __u64 dev_addr; + __u64 dev_reg_size; + __u64 attr_addr; + __u64 attr_size; +}; + +#define GZVM_CREATE_DEVICE _IOWR(GZVM_IOC_MAGIC, 0xe0, \ + struct gzvm_create_device) + +/* + * ioctls for vcpu fds + */ +#define GZVM_RUN _IO(GZVM_IOC_MAGIC, 0x80) + +/* VM exit reason */ +enum { + GZVM_EXIT_UNKNOWN = 0x92920000, + GZVM_EXIT_MMIO = 0x92920001, + GZVM_EXIT_HYPERCALL = 0x92920002, + GZVM_EXIT_IRQ = 0x92920003, + GZVM_EXIT_EXCEPTION = 0x92920004, + GZVM_EXIT_DEBUG = 0x92920005, + GZVM_EXIT_FAIL_ENTRY = 0x92920006, + GZVM_EXIT_INTERNAL_ERROR = 0x92920007, + GZVM_EXIT_SYSTEM_EVENT = 0x92920008, + GZVM_EXIT_SHUTDOWN = 0x92920009, + GZVM_EXIT_GZ = 0x9292000a, +}; + +/** + * struct gzvm_vcpu_run: Same purpose as kvm_run, this struct is + * shared between userspace, kernel and + * GenieZone hypervisor + * @exit_reason: The reason why gzvm_vcpu_run has stopped running the vCPU + * @immediate_exit: Polled when the vcpu is scheduled. + * If set, immediately returns -EINTR + * @padding1: Reserved for future-proof and must be zero filled + * @mmio: The nested struct in anonymous union. Handle mmio in host side + * @phys_addr: The address guest tries to access + * @data: The value to be written (is_write is 1) or + * be filled by user for reads (is_write is 0) + * @size: The size of written data. + * Only the first `size` bytes of `data` are handled + * @reg_nr: The register number where the data is stored + * @is_write: 1 for VM to perform a write or 0 for VM to perform a read + * @fail_entry: The nested struct in anonymous union. + * Handle invalid entry address at the first run + * @hardware_entry_failure_reason: The reason codes about hardware entry failure + * @cpu: The current processor number via smp_processor_id() + * @exception: The nested struct in anonymous union. + * Handle exception occurred in VM + * @exception: Which exception vector + * @error_code: Exception error codes + * @hypercall: The nested struct in anonymous union. + * Some hypercalls issued from VM must be handled + * @args: The hypercall's arguments + * @internal: The nested struct in anonymous union. The errors from hypervisor + * @suberror: The errors codes about GZVM_EXIT_INTERNAL_ERROR + * @ndata: The number of elements used in data[] + * @data: Keep the detailed information about GZVM_EXIT_INTERNAL_ERROR + * @system_event: The nested struct in anonymous union. + * VM's PSCI must be handled by host + * @type: System event type. + * Ex. GZVM_SYSTEM_EVENT_SHUTDOWN or GZVM_SYSTEM_EVENT_RESET...etc. + * @ndata: The number of elements used in data[] + * @data: Keep the detailed information about GZVM_EXIT_SYSTEM_EVENT + * @padding: Fix it to a reasonable size future-proof for keeping the same + * struct size when adding new variables in the union is needed + * + * Keep identical layout between the 3 modules + */ +struct gzvm_vcpu_run { + /* to userspace */ + __u32 exit_reason; + __u8 immediate_exit; + __u8 padding1[3]; + /* union structure of collection of guest exit reason */ + union { + /* GZVM_EXIT_MMIO */ + struct { + /* from FAR_EL2 */ + __u64 phys_addr; + __u8 data[8]; + /* from ESR_EL2 as */ + __u64 size; + /* from ESR_EL2 */ + __u32 reg_nr; + /* from ESR_EL2 */ + __u8 is_write; + } mmio; + /* GZVM_EXIT_FAIL_ENTRY */ + struct { + __u64 hardware_entry_failure_reason; + __u32 cpu; + } fail_entry; + /* GZVM_EXIT_EXCEPTION */ + struct { + __u32 exception; + __u32 error_code; + } exception; + /* GZVM_EXIT_HYPERCALL */ + struct { + __u64 args[8]; /* in-out */ + } hypercall; + /* GZVM_EXIT_INTERNAL_ERROR */ + struct { + __u32 suberror; + __u32 ndata; + __u64 data[16]; + } internal; + /* GZVM_EXIT_SYSTEM_EVENT */ + struct { +#define GZVM_SYSTEM_EVENT_SHUTDOWN 1 +#define GZVM_SYSTEM_EVENT_RESET 2 +#define GZVM_SYSTEM_EVENT_CRASH 3 +#define GZVM_SYSTEM_EVENT_WAKEUP 4 +#define GZVM_SYSTEM_EVENT_SUSPEND 5 +#define GZVM_SYSTEM_EVENT_SEV_TERM 6 +#define GZVM_SYSTEM_EVENT_S2IDLE 7 + __u32 type; + __u32 ndata; + __u64 data[16]; + } system_event; + char padding[256]; + }; +}; + +/* for GZVM_ENABLE_CAP */ +struct gzvm_enable_cap { + /* in */ + __u64 cap; + /** + * we have total 5 (8 - 3) registers can be used for + * additional args + */ + __u64 args[5]; +}; + +#define GZVM_ENABLE_CAP _IOW(GZVM_IOC_MAGIC, 0xa3, \ + struct gzvm_enable_cap) + +/* for GZVM_GET/SET_ONE_REG */ +struct gzvm_one_reg { + __u64 id; + __u64 addr; +}; + +#define GZVM_GET_ONE_REG _IOW(GZVM_IOC_MAGIC, 0xab, \ + struct gzvm_one_reg) +#define GZVM_SET_ONE_REG _IOW(GZVM_IOC_MAGIC, 0xac, \ + struct gzvm_one_reg) + +#define GZVM_REG_GENERIC 0x0000000000000000ULL + +#define GZVM_IRQFD_FLAG_DEASSIGN BIT(0) +/* + * GZVM_IRQFD_FLAG_RESAMPLE indicates resamplefd is valid and specifies + * the irqfd to operate in resampling mode for level triggered interrupt + * emulation. + */ +#define GZVM_IRQFD_FLAG_RESAMPLE BIT(1) + +/** + * struct gzvm_irqfd: gzvm irqfd descriptor + * @fd: File descriptor. + * @gsi: Used for level IRQ fast-path. + * @flags: FLAG_DEASSIGN or FLAG_RESAMPLE. + * @resamplefd: The file descriptor of the resampler. + * @pad: Reserved for future-proof. + */ +struct gzvm_irqfd { + __u32 fd; + __u32 gsi; + __u32 flags; + __u32 resamplefd; + __u8 pad[16]; +}; + +#define GZVM_IRQFD _IOW(GZVM_IOC_MAGIC, 0x76, struct gzvm_irqfd) + +enum { + gzvm_ioeventfd_flag_nr_datamatch = 0, + gzvm_ioeventfd_flag_nr_pio = 1, + gzvm_ioeventfd_flag_nr_deassign = 2, + gzvm_ioeventfd_flag_nr_max, +}; + +#define GZVM_IOEVENTFD_FLAG_DATAMATCH (1 << gzvm_ioeventfd_flag_nr_datamatch) +#define GZVM_IOEVENTFD_FLAG_PIO (1 << gzvm_ioeventfd_flag_nr_pio) +#define GZVM_IOEVENTFD_FLAG_DEASSIGN (1 << gzvm_ioeventfd_flag_nr_deassign) +#define GZVM_IOEVENTFD_VALID_FLAG_MASK ((1 << gzvm_ioeventfd_flag_nr_max) - 1) + +struct gzvm_ioeventfd { + __u64 datamatch; + /* private: legal pio/mmio address */ + __u64 addr; + /* private: 1, 2, 4, or 8 bytes; or 0 to ignore length */ + __u32 len; + __s32 fd; + __u32 flags; + __u8 pad[36]; +}; + +#define GZVM_IOEVENTFD _IOW(GZVM_IOC_MAGIC, 0x79, struct gzvm_ioeventfd) + +/** + * struct gzvm_dtb_config: store address and size of dtb passed from userspace + * + * @dtb_addr: dtb address set by VMM (guset memory) + * @dtb_size: dtb size + */ +struct gzvm_dtb_config { + __u64 dtb_addr; + __u64 dtb_size; +}; + +#define GZVM_SET_DTB_CONFIG _IOW(GZVM_IOC_MAGIC, 0xff, \ + struct gzvm_dtb_config) + +#endif /* __GZVM_H__ */ diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index d67a7ff0da9a..b43f3bbd55ee 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -577,12 +577,17 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_ARGB32 v4l2_fourcc('B', 'A', '2', '4') /* 32 ARGB-8-8-8-8 */ #define V4L2_PIX_FMT_XRGB32 v4l2_fourcc('B', 'X', '2', '4') /* 32 XRGB-8-8-8-8 */ +/* RGB formats (6 or 8 bytes per pixel) */ +#define V4L2_PIX_FMT_BGR48_12 v4l2_fourcc('B', '3', '1', '2') /* 48 BGR 12-bit per component */ +#define V4L2_PIX_FMT_ABGR64_12 v4l2_fourcc('B', '4', '1', '2') /* 64 BGRA 12-bit per component */ + /* Grey formats */ #define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */ #define V4L2_PIX_FMT_Y4 v4l2_fourcc('Y', '0', '4', ' ') /* 4 Greyscale */ #define V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ') /* 6 Greyscale */ #define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */ #define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */ +#define V4L2_PIX_FMT_Y012 v4l2_fourcc('Y', '0', '1', '2') /* 12 Greyscale */ #define V4L2_PIX_FMT_Y14 v4l2_fourcc('Y', '1', '4', ' ') /* 14 Greyscale */ #define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ #define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ') /* 16 Greyscale BE */ @@ -617,6 +622,15 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_YUVA32 v4l2_fourcc('Y', 'U', 'V', 'A') /* 32 YUVA-8-8-8-8 */ #define V4L2_PIX_FMT_YUVX32 v4l2_fourcc('Y', 'U', 'V', 'X') /* 32 YUVX-8-8-8-8 */ #define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */ +#define V4L2_PIX_FMT_YUV48_12 v4l2_fourcc('Y', '3', '1', '2') /* 48 YUV 4:4:4 12-bit per component */ + +/* + * YCbCr packed format. For each Y2xx format, xx bits of valid data occupy the MSBs + * of the 16 bit components, and 16-xx bits of zero padding occupy the LSBs. + */ +#define V4L2_PIX_FMT_Y210 v4l2_fourcc('Y', '2', '1', '0') /* 32 YUYV 4:2:2 */ +#define V4L2_PIX_FMT_Y212 v4l2_fourcc('Y', '2', '1', '2') /* 32 YUYV 4:2:2 */ +#define V4L2_PIX_FMT_Y216 v4l2_fourcc('Y', '2', '1', '6') /* 32 YUYV 4:2:2 */ /* two planes -- one Y, one Cr + Cb interleaved */ #define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ @@ -626,12 +640,14 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */ #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */ #define V4L2_PIX_FMT_P010 v4l2_fourcc('P', '0', '1', '0') /* 24 Y/CbCr 4:2:0 10-bit per component */ +#define V4L2_PIX_FMT_P012 v4l2_fourcc('P', '0', '1', '2') /* 24 Y/CbCr 4:2:0 12-bit per component */ /* two non contiguous planes - one Y, one Cr + Cb interleaved */ #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */ #define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1') /* 21 Y/CrCb 4:2:0 */ #define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6') /* 16 Y/CbCr 4:2:2 */ #define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1') /* 16 Y/CrCb 4:2:2 */ +#define V4L2_PIX_FMT_P012M v4l2_fourcc('P', 'M', '1', '2') /* 24 Y/CbCr 4:2:0 12-bit per component */ /* three planes - Y Cb, Cr */ #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */ diff --git a/include/uapi/scsi/scsi_bsg_ufs.h b/include/uapi/scsi/scsi_bsg_ufs.h index 5e4891fd99c2..ad6f5e1be2ab 100644 --- a/include/uapi/scsi/scsi_bsg_ufs.h +++ b/include/uapi/scsi/scsi_bsg_ufs.h @@ -97,18 +97,18 @@ struct utp_upiu_req { }; struct ufs_arpmb_meta { - __u16 req_resp_type; + __be16 req_resp_type; __u8 nonce[16]; - __u32 write_counter; - __u16 addr_lun; - __u16 block_count; - __u16 result; + __be32 write_counter; + __be16 addr_lun; + __be16 block_count; + __be16 result; } __attribute__((__packed__)); struct ufs_ehs { __u8 length; __u8 ehs_type; - __u16 ehssub_type; + __be16 ehssub_type; struct ufs_arpmb_meta meta; __u8 mac_key[32]; } __attribute__((__packed__)); diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h index c6962ac122ba..12965946d194 100644 --- a/include/ufs/ufshcd.h +++ b/include/ufs/ufshcd.h @@ -1297,11 +1297,14 @@ void ufshcd_parse_dev_ref_clk_freq(struct ufs_hba *hba, struct clk *refclk); void ufshcd_update_evt_hist(struct ufs_hba *hba, u32 id, u32 val); void ufshcd_hba_stop(struct ufs_hba *hba); void ufshcd_schedule_eh_work(struct ufs_hba *hba); +void ufshcd_mcq_config_mac(struct ufs_hba *hba, u32 max_active_cmds); +u32 ufshcd_mcq_read_cqis(struct ufs_hba *hba, int i); void ufshcd_mcq_write_cqis(struct ufs_hba *hba, u32 val, int i); unsigned long ufshcd_mcq_poll_cqe_nolock(struct ufs_hba *hba, struct ufs_hw_queue *hwq); unsigned long ufshcd_mcq_poll_cqe_lock(struct ufs_hba *hba, struct ufs_hw_queue *hwq); +void ufshcd_mcq_make_queues_operational(struct ufs_hba *hba); void ufshcd_mcq_enable_esi(struct ufs_hba *hba); void ufshcd_mcq_config_esi(struct ufs_hba *hba, struct msi_msg *msg); diff --git a/init/Kconfig.gki b/init/Kconfig.gki index 29eb1eefbd3d..081b1cdc9c7e 100644 --- a/init/Kconfig.gki +++ b/init/Kconfig.gki @@ -201,6 +201,7 @@ config GKI_HIDDEN_NET_CONFIGS bool "Hidden networking configuration needed for GKI" select PAGE_POOL select NET_PTP_CLASSIFY + select NET_DEVLINK help Dummy config option used to enable the networking hidden config, required by various SoC platforms. diff --git a/io_uring/poll.c b/io_uring/poll.c index 4788073ec45d..869e1d2a4413 100644 --- a/io_uring/poll.c +++ b/io_uring/poll.c @@ -993,8 +993,9 @@ int io_poll_remove(struct io_kiocb *req, unsigned int issue_flags) struct io_hash_bucket *bucket; struct io_kiocb *preq; int ret2, ret = 0; - bool locked; + bool locked = true; + io_ring_submit_lock(ctx, issue_flags); preq = io_poll_find(ctx, true, &cd, &ctx->cancel_table, &bucket); ret2 = io_poll_disarm(preq); if (bucket) @@ -1006,12 +1007,10 @@ int io_poll_remove(struct io_kiocb *req, unsigned int issue_flags) goto out; } - io_ring_submit_lock(ctx, issue_flags); preq = io_poll_find(ctx, true, &cd, &ctx->cancel_table_locked, &bucket); ret2 = io_poll_disarm(preq); if (bucket) spin_unlock(&bucket->lock); - io_ring_submit_unlock(ctx, issue_flags); if (ret2) { ret = ret2; goto out; @@ -1035,7 +1034,7 @@ found: if (poll_update->update_user_data) preq->cqe.user_data = poll_update->new_user_data; - ret2 = io_poll_add(preq, issue_flags); + ret2 = io_poll_add(preq, issue_flags & ~IO_URING_F_UNLOCKED); /* successfully updated, don't complete poll request */ if (!ret2 || ret2 == -EIOCBQUEUED) goto out; @@ -1043,9 +1042,9 @@ found: req_set_fail(preq); io_req_set_res(preq, -ECANCELED, 0); - locked = !(issue_flags & IO_URING_F_UNLOCKED); io_req_task_complete(preq, &locked); out: + io_ring_submit_unlock(ctx, issue_flags); if (ret < 0) { req_set_fail(req); return ret; diff --git a/kernel/cgroup/cgroup-internal.h b/kernel/cgroup/cgroup-internal.h index 367b0a42ada9..892b770067b5 100644 --- a/kernel/cgroup/cgroup-internal.h +++ b/kernel/cgroup/cgroup-internal.h @@ -251,7 +251,8 @@ int cgroup_attach_task(struct cgroup *dst_cgrp, struct task_struct *leader, void cgroup_attach_lock(bool lock_threadgroup); void cgroup_attach_unlock(bool lock_threadgroup); struct task_struct *cgroup_procs_write_start(char *buf, bool threadgroup, - bool *locked) + bool *locked, + struct cgroup *dst_cgrp); __acquires(&cgroup_threadgroup_rwsem); void cgroup_procs_write_finish(struct task_struct *task, bool locked) __releases(&cgroup_threadgroup_rwsem); diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c index c6822bf6c918..fed5bf717ce1 100644 --- a/kernel/cgroup/cgroup-v1.c +++ b/kernel/cgroup/cgroup-v1.c @@ -501,7 +501,7 @@ static ssize_t __cgroup1_procs_write(struct kernfs_open_file *of, if (!cgrp) return -ENODEV; - task = cgroup_procs_write_start(buf, threadgroup, &locked); + task = cgroup_procs_write_start(buf, threadgroup, &locked, cgrp); ret = PTR_ERR_OR_ZERO(task); if (ret) goto out_unlock; diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index e4045593ea2b..4f5074da1448 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -114,6 +114,7 @@ static DEFINE_SPINLOCK(cgroup_idr_lock); static DEFINE_SPINLOCK(cgroup_file_kn_lock); DEFINE_PERCPU_RWSEM(cgroup_threadgroup_rwsem); +EXPORT_SYMBOL_GPL(cgroup_threadgroup_rwsem); #define cgroup_assert_mutex_or_rcu_locked() \ RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \ @@ -2920,10 +2921,12 @@ int cgroup_attach_task(struct cgroup *dst_cgrp, struct task_struct *leader, } struct task_struct *cgroup_procs_write_start(char *buf, bool threadgroup, - bool *threadgroup_locked) + bool *threadgroup_locked, + struct cgroup *dst_cgrp) { struct task_struct *tsk; pid_t pid; + bool force_migration = false; if (kstrtoint(strstrip(buf), 0, &pid) || pid < 0) return ERR_PTR(-EINVAL); @@ -2954,13 +2957,16 @@ struct task_struct *cgroup_procs_write_start(char *buf, bool threadgroup, if (threadgroup) tsk = tsk->group_leader; + if (tsk->flags & PF_KTHREAD) + trace_android_rvh_cgroup_force_kthread_migration(tsk, dst_cgrp, &force_migration); + /* * kthreads may acquire PF_NO_SETAFFINITY during initialization. * If userland migrates such a kthread to a non-root cgroup, it can * become trapped in a cpuset, or RT kthread may be born in a * cgroup with no rt_runtime allocated. Just say no. */ - if (tsk->no_cgroup_migration || (tsk->flags & PF_NO_SETAFFINITY)) { + if (!force_migration && (tsk->no_cgroup_migration || (tsk->flags & PF_NO_SETAFFINITY))) { tsk = ERR_PTR(-EINVAL); goto out_unlock_threadgroup; } @@ -4443,6 +4449,7 @@ int cgroup_add_dfl_cftypes(struct cgroup_subsys *ss, struct cftype *cfts) cft->flags |= __CFTYPE_ONLY_ON_DFL; return cgroup_add_cftypes(ss, cfts); } +EXPORT_SYMBOL_GPL(cgroup_add_dfl_cftypes); /** * cgroup_add_legacy_cftypes - add an array of cftypes for legacy hierarchies @@ -5146,7 +5153,7 @@ static ssize_t __cgroup_procs_write(struct kernfs_open_file *of, char *buf, if (!dst_cgrp) return -ENODEV; - task = cgroup_procs_write_start(buf, threadgroup, &threadgroup_locked); + task = cgroup_procs_write_start(buf, threadgroup, &threadgroup_locked, dst_cgrp); ret = PTR_ERR_OR_ZERO(task); if (ret) goto out_unlock; diff --git a/kernel/cgroup/freezer.c b/kernel/cgroup/freezer.c index 617861a54793..d0224d3c0a32 100644 --- a/kernel/cgroup/freezer.c +++ b/kernel/cgroup/freezer.c @@ -7,6 +7,7 @@ #include "cgroup-internal.h" #include <trace/events/cgroup.h> +#include <trace/hooks/dtask.h> /* * Propagate the cgroup frozen state upwards by the cgroup tree. @@ -155,17 +156,21 @@ void cgroup_leave_frozen(bool always_leave) static void cgroup_freeze_task(struct task_struct *task, bool freeze) { unsigned long flags; + bool wake = true; /* If the task is about to die, don't bother with freezing it. */ if (!lock_task_sighand(task, &flags)) return; + trace_android_vh_freeze_whether_wake(task, &wake); if (freeze) { task->jobctl |= JOBCTL_TRAP_FREEZE; - signal_wake_up(task, false); + if (wake) + signal_wake_up(task, false); } else { task->jobctl &= ~JOBCTL_TRAP_FREEZE; - wake_up_process(task); + if (wake) + wake_up_process(task); } unlock_task_sighand(task, &flags); diff --git a/kernel/dma/remap.c b/kernel/dma/remap.c index b4526668072e..27596f3b4aef 100644 --- a/kernel/dma/remap.c +++ b/kernel/dma/remap.c @@ -43,13 +43,13 @@ void *dma_common_contiguous_remap(struct page *page, size_t size, void *vaddr; int i; - pages = kmalloc_array(count, sizeof(struct page *), GFP_KERNEL); + pages = kvmalloc_array(count, sizeof(struct page *), GFP_KERNEL); if (!pages) return NULL; for (i = 0; i < count; i++) pages[i] = nth_page(page, i); vaddr = vmap(pages, count, VM_DMA_COHERENT, prot); - kfree(pages); + kvfree(pages); return vaddr; } diff --git a/kernel/exit.c b/kernel/exit.c index 1e3b9675fbe5..15ae928cdd2f 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -73,6 +73,7 @@ #include <asm/unistd.h> #include <asm/mmu_context.h> #include <trace/hooks/mm.h> +#include <trace/hooks/dtask.h> /* * The default value should be high enough to not crash a system that randomly @@ -827,6 +828,8 @@ void __noreturn do_exit(long code) io_uring_files_cancel(); exit_signals(tsk); /* sets PF_EXITING */ + trace_android_vh_exit_check(current); + /* sync mm's RSS info before statistics gathering */ if (tsk->mm) sync_mm_rss(tsk->mm); diff --git a/kernel/fork.c b/kernel/fork.c index 67d61842d6b8..b890209ae115 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -694,6 +694,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, mas_for_each(&old_mas, mpnt, ULONG_MAX) { struct file *file; + vma_start_write(mpnt); if (mpnt->vm_flags & VM_DONTCOPY) { vm_stat_account(mm, mpnt->vm_flags, -vma_pages(mpnt)); continue; diff --git a/kernel/freezer.c b/kernel/freezer.c index b672c614b1e9..abd7f58cfe04 100644 --- a/kernel/freezer.c +++ b/kernel/freezer.c @@ -74,7 +74,11 @@ bool __refrigerator(bool check_kthr_stop) for (;;) { bool freeze; + raw_spin_lock_irq(¤t->pi_lock); set_current_state(TASK_FROZEN); + /* unstale saved_state so that __thaw_task() will wake us up */ + current->saved_state = TASK_RUNNING; + raw_spin_unlock_irq(¤t->pi_lock); spin_lock_irq(&freezer_lock); freeze = freezing(current) && !(check_kthr_stop && kthread_should_stop()); @@ -133,6 +137,7 @@ static int __set_task_frozen(struct task_struct *p, void *arg) WARN_ON_ONCE(debug_locks && p->lockdep_depth); #endif + p->saved_state = p->__state; WRITE_ONCE(p->__state, TASK_FROZEN); return TASK_FROZEN; } @@ -174,42 +179,34 @@ bool freeze_task(struct task_struct *p) } /* - * The special task states (TASK_STOPPED, TASK_TRACED) keep their canonical - * state in p->jobctl. If either of them got a wakeup that was missed because - * TASK_FROZEN, then their canonical state reflects that and the below will - * refuse to restore the special state and instead issue the wakeup. + * Restore the saved_state before the task entered freezer. For typical task + * in the __refrigerator(), saved_state == TASK_RUNNING so nothing happens + * here. For tasks which were TASK_NORMAL | TASK_FREEZABLE, their initial state + * is restored unless they got an expected wakeup (see ttwu_state_match()). + * Returns 1 if the task state was restored. */ -static int __set_task_special(struct task_struct *p, void *arg) +static int __restore_freezer_state(struct task_struct *p, void *arg) { - unsigned int state = 0; + unsigned int state = p->saved_state; - if (p->jobctl & JOBCTL_TRACED) - state = TASK_TRACED; - - else if (p->jobctl & JOBCTL_STOPPED) - state = TASK_STOPPED; - - if (state) + if (state != TASK_RUNNING) { WRITE_ONCE(p->__state, state); + return 1; + } - return state; + return 0; } void __thaw_task(struct task_struct *p) { - unsigned long flags, flags2; + unsigned long flags; spin_lock_irqsave(&freezer_lock, flags); if (WARN_ON_ONCE(freezing(p))) goto unlock; - if (lock_task_sighand(p, &flags2)) { - /* TASK_FROZEN -> TASK_{STOPPED,TRACED} */ - bool ret = task_call_func(p, __set_task_special, NULL); - unlock_task_sighand(p, &flags2); - if (ret) - goto unlock; - } + if (task_call_func(p, __restore_freezer_state, NULL)) + goto unlock; wake_up_state(p, TASK_FROZEN); unlock: diff --git a/kernel/gen_kheaders.sh b/kernel/gen_kheaders.sh index 473036b43c83..bb8945ca53cd 100755 --- a/kernel/gen_kheaders.sh +++ b/kernel/gen_kheaders.sh @@ -66,7 +66,7 @@ if [ "$building_out_of_srctree" ]; then cd $srctree for f in $dir_list do find "$f" -name "*.h"; - done | cpio --quiet -pd $cpio_dir + done | cpio --quiet -L -pd $cpio_dir ) fi @@ -74,7 +74,7 @@ fi # of tree builds having stale headers in srctree. Just silence CPIO for now. for f in $dir_list; do find "$f" -name "*.h"; -done | cpio --quiet -pdu $cpio_dir >/dev/null 2>&1 +done | cpio --quiet -L -pdu $cpio_dir >/dev/null 2>&1 # Remove comments except SDPX lines find $cpio_dir -type f -print0 | diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c index 4ff70da18e3c..525648da693f 100644 --- a/kernel/locking/mutex.c +++ b/kernel/locking/mutex.c @@ -556,8 +556,10 @@ static noinline void __sched __mutex_unlock_slowpath(struct mutex *lock, unsigne void __sched mutex_unlock(struct mutex *lock) { #ifndef CONFIG_DEBUG_LOCK_ALLOC - if (__mutex_unlock_fast(lock)) + if (__mutex_unlock_fast(lock)) { + trace_android_vh_record_mutex_lock_starttime(current, 0); return; + } #endif __mutex_unlock_slowpath(lock, _RET_IP_); trace_android_vh_record_mutex_lock_starttime(current, 0); diff --git a/kernel/locking/percpu-rwsem.c b/kernel/locking/percpu-rwsem.c index 084aedde3d0f..549da829c954 100644 --- a/kernel/locking/percpu-rwsem.c +++ b/kernel/locking/percpu-rwsem.c @@ -26,6 +26,20 @@ void _trace_android_vh_record_pcpu_rwsem_starttime(struct task_struct *tsk, } EXPORT_SYMBOL_GPL(_trace_android_vh_record_pcpu_rwsem_starttime); +/* + * trace_android_vh_record_pcpu_rwsem_time_early is called in + * include/linux/percpu-rwsem.h by including include/hooks/dtask.h, which + * will result to build-err. So we create + * func: _trace_android_vh_record_pcpu_rwsem_time_early for percpu-rwsem.h to call. +*/ + +void _trace_android_vh_record_pcpu_rwsem_time_early( + unsigned long settime, struct percpu_rw_semaphore *sem) +{ + trace_android_vh_record_pcpu_rwsem_time_early(settime, sem); +} +EXPORT_SYMBOL_GPL(_trace_android_vh_record_pcpu_rwsem_time_early); + int __percpu_init_rwsem(struct percpu_rw_semaphore *sem, const char *name, struct lock_class_key *key) { @@ -167,6 +181,7 @@ static void percpu_rwsem_wait(struct percpu_rw_semaphore *sem, bool reader) if (wait) { wq_entry.flags |= WQ_FLAG_EXCLUSIVE | reader * WQ_FLAG_CUSTOM; __add_wait_queue_entry_tail(&sem->waiters, &wq_entry); + trace_android_vh_percpu_rwsem_wq_add(sem, reader); } spin_unlock_irq(&sem->waiters.lock); @@ -242,6 +257,8 @@ void __sched percpu_down_write(struct percpu_rw_semaphore *sem) rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_); trace_contention_begin(sem, LCB_F_PERCPU | LCB_F_WRITE); + trace_android_vh_record_pcpu_rwsem_time_early(jiffies, sem); + /* Notify readers to take the slow path. */ rcu_sync_enter(&sem->rss); @@ -294,6 +311,7 @@ void percpu_up_write(struct percpu_rw_semaphore *sem) * exclusive write lock because its counting. */ rcu_sync_exit(&sem->rss); + trace_android_vh_record_pcpu_rwsem_time_early(0, sem); trace_android_vh_record_pcpu_rwsem_starttime(current, 0); } EXPORT_SYMBOL_GPL(percpu_up_write); diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c index 229ce6bc7d62..351716fe9138 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -327,6 +327,11 @@ static __always_inline bool unlock_rt_mutex_safe(struct rt_mutex_base *lock, static __always_inline int __waiter_prio(struct task_struct *task) { int prio = task->prio; + int waiter_prio = 0; + + trace_android_vh_rtmutex_waiter_prio(task, &waiter_prio); + if (waiter_prio > 0) + return waiter_prio; if (!rt_prio(prio)) return DEFAULT_PRIO; @@ -1151,6 +1156,7 @@ static int __sched task_blocks_on_rt_mutex(struct rt_mutex_base *lock, if (owner == task && !(build_ww_mutex() && ww_ctx)) return -EDEADLK; + trace_android_vh_task_blocks_on_rtmutex(lock, waiter, task, ww_ctx, &chwalk); raw_spin_lock(&task->pi_lock); waiter->task = task; waiter->lock = lock; diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c index 1988ac0dc3b3..aa85792d352e 100644 --- a/kernel/locking/rwsem.c +++ b/kernel/locking/rwsem.c @@ -1078,6 +1078,8 @@ queue: raw_spin_unlock_irq(&sem->wait_lock); rwsem_set_reader_owned(sem); lockevent_inc(rwsem_rlock_fast); + trace_android_vh_record_rwsem_lock_starttime( + current, jiffies); return sem; } adjustment += RWSEM_FLAG_WAITERS; diff --git a/kernel/module/Makefile b/kernel/module/Makefile index a23e93c6ef10..5d9035643b9a 100644 --- a/kernel/module/Makefile +++ b/kernel/module/Makefile @@ -25,12 +25,12 @@ obj-$(CONFIG_MODULE_UNLOAD_TAINT_TRACKING) += tracking.o # ANDROID: GKI: Generate headerfiles required for gki_module.o # # Dependencies on generated files need to be listed explicitly -$(obj)/gki_module.o: $(obj)/gki_module_protected_exports.h \ - $(obj)/gki_module_unprotected.h +$(obj)/gki_module.o: include/generated/gki_module_protected_exports.h \ + include/generated/gki_module_unprotected.h -ALL_KMI_SYMBOLS := all_kmi_symbols +ALL_KMI_SYMBOLS := include/config/abi_gki_kmi_symbols -$(obj)/gki_module_unprotected.h: $(ALL_KMI_SYMBOLS) \ +include/generated/gki_module_unprotected.h: $(ALL_KMI_SYMBOLS) \ $(srctree)/scripts/gen_gki_modules_headers.sh $(Q)$(CONFIG_SHELL) $(srctree)/scripts/gen_gki_modules_headers.sh $@ \ "$(srctree)" \ @@ -48,7 +48,7 @@ else ABI_PROTECTED_EXPORTS_FILE := $(wildcard $(srctree)/android/abi_gki_protected_exports_$(ARCH)) endif -$(obj)/gki_module_protected_exports.h: $(ABI_PROTECTED_EXPORTS_FILE) \ +include/generated/gki_module_protected_exports.h: $(ABI_PROTECTED_EXPORTS_FILE) \ $(srctree)/scripts/gen_gki_modules_headers.sh $(Q)$(CONFIG_SHELL) $(srctree)/scripts/gen_gki_modules_headers.sh $@ \ "$(srctree)" \ diff --git a/kernel/module/gki_module.c b/kernel/module/gki_module.c index 4f124f9a14ec..65a2883b539e 100644 --- a/kernel/module/gki_module.c +++ b/kernel/module/gki_module.c @@ -16,8 +16,8 @@ * gki_module_protected_exports.h -- Symbols protected from _export_ by unsigned modules * gki_module_unprotected.h -- Symbols allowed to _access_ by unsigned modules */ -#include "gki_module_protected_exports.h" -#include "gki_module_unprotected.h" +#include <generated/gki_module_protected_exports.h> +#include <generated/gki_module_unprotected.h> #define MAX_STRCMP_LEN (max(MAX_UNPROTECTED_NAME_LEN, MAX_PROTECTED_EXPORTS_NAME_LEN)) diff --git a/kernel/printk/printk_ringbuffer.c b/kernel/printk/printk_ringbuffer.c index 2b7b6ddab4f7..0bbcd1344f21 100644 --- a/kernel/printk/printk_ringbuffer.c +++ b/kernel/printk/printk_ringbuffer.c @@ -1735,7 +1735,7 @@ static bool copy_data(struct prb_data_ring *data_ring, if (!buf || !buf_size) return true; - data_size = min_t(u16, buf_size, len); + data_size = min_t(unsigned int, buf_size, len); memcpy(&buf[0], data, data_size); /* LMM(copy_data:A) */ return true; diff --git a/kernel/relay.c b/kernel/relay.c index 28fbe2d1e54c..d9c2e4fa805b 100644 --- a/kernel/relay.c +++ b/kernel/relay.c @@ -989,7 +989,8 @@ static size_t relay_file_read_start_pos(struct rchan_buf *buf) size_t subbuf_size = buf->chan->subbuf_size; size_t n_subbufs = buf->chan->n_subbufs; size_t consumed = buf->subbufs_consumed % n_subbufs; - size_t read_pos = consumed * subbuf_size + buf->bytes_consumed; + size_t read_pos = (consumed * subbuf_size + buf->bytes_consumed) + % (n_subbufs * subbuf_size); read_subbuf = read_pos / subbuf_size; padding = buf->padding[read_subbuf]; diff --git a/kernel/sched/OWNERS b/kernel/sched/OWNERS deleted file mode 100644 index 09a9f8e85576..000000000000 --- a/kernel/sched/OWNERS +++ /dev/null @@ -1,4 +0,0 @@ -connoro@google.com -elavila@google.com -qperret@google.com -tkjos@google.com diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 52e3a26643af..16941a9cb5a9 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1880,10 +1880,16 @@ done: #endif static int uclamp_validate(struct task_struct *p, - const struct sched_attr *attr) + const struct sched_attr *attr, bool user) { int util_min = p->uclamp_req[UCLAMP_MIN].value; int util_max = p->uclamp_req[UCLAMP_MAX].value; + bool done = false; + int ret = 0; + + trace_android_vh_uclamp_validate(p, attr, user, &ret, &done); + if (done) + return ret; if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MIN) { util_min = attr->sched_util_min; @@ -1905,11 +1911,19 @@ static int uclamp_validate(struct task_struct *p, /* * We have valid uclamp attributes; make sure uclamp is enabled. * - * We need to do that here, because enabling static branches is a - * blocking operation which obviously cannot be done while holding + * We need to do that here, because enabling static branches is + * a blocking operation which obviously cannot be done while holding * scheduler locks. - */ - static_branch_enable(&sched_uclamp_used); + * + * We only enable the static key if this was initiated by user space + * request. There should be no in-kernel users of uclamp except to + * implement things like inheritance like in binder. These in-kernel + * callers can rightfully be called be sometimes in_atomic() context + * which is invalid context to enable the key in. The enabling path + * unconditionally holds the cpus_read_lock() which might_sleep(). + */ + if (user) + static_branch_enable(&sched_uclamp_used); return 0; } @@ -2050,7 +2064,7 @@ static void __init init_uclamp(void) static inline void uclamp_rq_inc(struct rq *rq, struct task_struct *p) { } static inline void uclamp_rq_dec(struct rq *rq, struct task_struct *p) { } static inline int uclamp_validate(struct task_struct *p, - const struct sched_attr *attr) + const struct sched_attr *attr, bool user) { return -EOPNOTSUPP; } @@ -2235,6 +2249,149 @@ void check_preempt_curr(struct rq *rq, struct task_struct *p, int flags) } EXPORT_SYMBOL_GPL(check_preempt_curr); +static __always_inline +int __task_state_match(struct task_struct *p, unsigned int state) +{ + if (READ_ONCE(p->__state) & state) + return 1; + + if (READ_ONCE(p->saved_state) & state) + return -1; + + return 0; +} + +static __always_inline +int task_state_match(struct task_struct *p, unsigned int state) +{ + int match; + + /* + * Serialize against current_save_and_set_rtlock_wait_state(), + * current_restore_rtlock_saved_state(), and __refrigerator(). + */ + raw_spin_lock_irq(&p->pi_lock); + match = __task_state_match(p, state); + raw_spin_unlock_irq(&p->pi_lock); + + return match; +} + +/* + * wait_task_inactive - wait for a thread to unschedule. + * + * Wait for the thread to block in any of the states set in @match_state. + * If it changes, i.e. @p might have woken up, then return zero. When we + * succeed in waiting for @p to be off its CPU, we return a positive number + * (its total switch count). If a second call a short while later returns the + * same number, the caller can be sure that @p has remained unscheduled the + * whole time. + * + * The caller must ensure that the task *will* unschedule sometime soon, + * else this function might spin for a *long* time. This function can't + * be called with interrupts off, or it may introduce deadlock with + * smp_call_function() if an IPI is sent by the same process we are + * waiting to become inactive. + */ +unsigned long wait_task_inactive(struct task_struct *p, unsigned int match_state) +{ + int running, queued, match; + struct rq_flags rf; + unsigned long ncsw; + struct rq *rq; + + for (;;) { + /* + * We do the initial early heuristics without holding + * any task-queue locks at all. We'll only try to get + * the runqueue lock when things look like they will + * work out! + */ + rq = task_rq(p); + + /* + * If the task is actively running on another CPU + * still, just relax and busy-wait without holding + * any locks. + * + * NOTE! Since we don't hold any locks, it's not + * even sure that "rq" stays as the right runqueue! + * But we don't care, since "task_on_cpu()" will + * return false if the runqueue has changed and p + * is actually now running somewhere else! + */ + while (task_on_cpu(rq, p)) { + if (!task_state_match(p, match_state)) + return 0; + cpu_relax(); + } + + /* + * Ok, time to look more closely! We need the rq + * lock now, to be *sure*. If we're wrong, we'll + * just go back and repeat. + */ + rq = task_rq_lock(p, &rf); + trace_sched_wait_task(p); + running = task_on_cpu(rq, p); + queued = task_on_rq_queued(p); + ncsw = 0; + if ((match = __task_state_match(p, match_state))) { + /* + * When matching on p->saved_state, consider this task + * still queued so it will wait. + */ + if (match < 0) + queued = 1; + ncsw = p->nvcsw | LONG_MIN; /* sets MSB */ + } + task_rq_unlock(rq, p, &rf); + + /* + * If it changed from the expected state, bail out now. + */ + if (unlikely(!ncsw)) + break; + + /* + * Was it really running after all now that we + * checked with the proper locks actually held? + * + * Oops. Go back and try again.. + */ + if (unlikely(running)) { + cpu_relax(); + continue; + } + + /* + * It's not enough that it's not actively running, + * it must be off the runqueue _entirely_, and not + * preempted! + * + * So if it was still runnable (but just not actively + * running right now), it's preempted, and we should + * yield - it could be a while. + */ + if (unlikely(queued)) { + ktime_t to = NSEC_PER_SEC / HZ; + + set_current_state(TASK_UNINTERRUPTIBLE); + schedule_hrtimeout(&to, HRTIMER_MODE_REL_HARD); + continue; + } + + /* + * Ahh, all good. It wasn't running, and it wasn't + * runnable, which means that it will never become + * running in the future either. We're all done! + */ + break; + } + + return ncsw; +} + #ifdef CONFIG_SMP static void @@ -2588,6 +2745,7 @@ out_unlock: put_task_struct(p); return 0; } +EXPORT_SYMBOL_GPL(push_cpu_stop); /* * sched_class::set_cpus_allowed must do the below, but is not required to @@ -3348,114 +3506,6 @@ out: } EXPORT_SYMBOL_GPL(migrate_swap); -/* - * wait_task_inactive - wait for a thread to unschedule. - * - * Wait for the thread to block in any of the states set in @match_state. - * If it changes, i.e. @p might have woken up, then return zero. When we - * succeed in waiting for @p to be off its CPU, we return a positive number - * (its total switch count). If a second call a short while later returns the - * same number, the caller can be sure that @p has remained unscheduled the - * whole time. - * - * The caller must ensure that the task *will* unschedule sometime soon, - * else this function might spin for a *long* time. This function can't - * be called with interrupts off, or it may introduce deadlock with - * smp_call_function() if an IPI is sent by the same process we are - * waiting to become inactive. - */ -unsigned long wait_task_inactive(struct task_struct *p, unsigned int match_state) -{ - int running, queued; - struct rq_flags rf; - unsigned long ncsw; - struct rq *rq; - - for (;;) { - /* - * We do the initial early heuristics without holding - * any task-queue locks at all. We'll only try to get - * the runqueue lock when things look like they will - * work out! - */ - rq = task_rq(p); - - /* - * If the task is actively running on another CPU - * still, just relax and busy-wait without holding - * any locks. - * - * NOTE! Since we don't hold any locks, it's not - * even sure that "rq" stays as the right runqueue! - * But we don't care, since "task_on_cpu()" will - * return false if the runqueue has changed and p - * is actually now running somewhere else! - */ - while (task_on_cpu(rq, p)) { - if (!(READ_ONCE(p->__state) & match_state)) - return 0; - cpu_relax(); - } - - /* - * Ok, time to look more closely! We need the rq - * lock now, to be *sure*. If we're wrong, we'll - * just go back and repeat. - */ - rq = task_rq_lock(p, &rf); - trace_sched_wait_task(p); - running = task_on_cpu(rq, p); - queued = task_on_rq_queued(p); - ncsw = 0; - if (READ_ONCE(p->__state) & match_state) - ncsw = p->nvcsw | LONG_MIN; /* sets MSB */ - task_rq_unlock(rq, p, &rf); - - /* - * If it changed from the expected state, bail out now. - */ - if (unlikely(!ncsw)) - break; - - /* - * Was it really running after all now that we - * checked with the proper locks actually held? - * - * Oops. Go back and try again.. - */ - if (unlikely(running)) { - cpu_relax(); - continue; - } - - /* - * It's not enough that it's not actively running, - * it must be off the runqueue _entirely_, and not - * preempted! - * - * So if it was still runnable (but just not actively - * running right now), it's preempted, and we should - * yield - it could be a while. - */ - if (unlikely(queued)) { - ktime_t to = NSEC_PER_SEC / HZ; - - set_current_state(TASK_UNINTERRUPTIBLE); - schedule_hrtimeout(&to, HRTIMER_MODE_REL_HARD); - continue; - } - - /* - * Ahh, all good. It wasn't running, and it wasn't - * runnable, which means that it will never become - * running in the future either. We're all done! - */ - break; - } - - return ncsw; -} - /*** * kick_process - kick a running thread to enter/exit the kernel * @p: the to-be-kicked thread @@ -3993,34 +4043,37 @@ static void ttwu_queue(struct task_struct *p, int cpu, int wake_flags) * The caller holds p::pi_lock if p != current or has preemption * disabled when p == current. * - * The rules of PREEMPT_RT saved_state: + * The rules of saved_state: * * The related locking code always holds p::pi_lock when updating * p::saved_state, which means the code is fully serialized in both cases. * - * The lock wait and lock wakeups happen via TASK_RTLOCK_WAIT. No other - * bits set. This allows to distinguish all wakeup scenarios. + * For PREEMPT_RT, the lock wait and lock wakeups happen via TASK_RTLOCK_WAIT. + * No other bits set. This allows to distinguish all wakeup scenarios. + * + * For FREEZER, the wakeup happens via TASK_FROZEN. No other bits set. This + * allows us to prevent early wakeup of tasks before they can be run on + * asymmetric ISA architectures (eg ARMv9). */ static __always_inline bool ttwu_state_match(struct task_struct *p, unsigned int state, int *success) { + int match; + if (IS_ENABLED(CONFIG_DEBUG_PREEMPT)) { WARN_ON_ONCE((state & TASK_RTLOCK_WAIT) && state != TASK_RTLOCK_WAIT); } - if (READ_ONCE(p->__state) & state) { - *success = 1; - return true; - } + *success = !!(match = __task_state_match(p, state)); -#ifdef CONFIG_PREEMPT_RT /* * Saved state preserves the task state across blocking on - * an RT lock. If the state matches, set p::saved_state to - * TASK_RUNNING, but do not wake the task because it waits - * for a lock wakeup. Also indicate success because from - * the regular waker's point of view this has succeeded. + * an RT lock or TASK_FREEZABLE tasks. If the state matches, + * set p::saved_state to TASK_RUNNING, but do not wake the task + * because it waits for a lock wakeup or __thaw_task(). Also + * indicate success because from the regular waker's point of + * view this has succeeded. * * After acquiring the lock the task will restore p::__state * from p::saved_state which ensures that the regular @@ -4028,12 +4081,10 @@ bool ttwu_state_match(struct task_struct *p, unsigned int state, int *success) * p::saved_state to TASK_RUNNING so any further tests will * not result in false positives vs. @success */ - if (p->saved_state & state) { + if (match < 0) p->saved_state = TASK_RUNNING; - *success = 1; - } -#endif - return false; + + return match > 0; } /* @@ -4455,6 +4506,7 @@ int wake_up_state(struct task_struct *p, unsigned int state) { return try_to_wake_up(p, state, 0); } +EXPORT_SYMBOL(wake_up_state); /* * Perform scheduler related setup for a newly forked process p. @@ -5364,6 +5416,7 @@ unsigned int nr_running(void) return sum; } +EXPORT_SYMBOL(nr_running); /* * Check if only the current task is running on the CPU. @@ -6638,7 +6691,7 @@ static void __sched notrace __schedule(unsigned int sched_mode) rq->last_seen_need_resched_ns = 0; #endif - trace_android_rvh_schedule(prev, next, rq); + trace_android_rvh_schedule(sched_mode, prev, next, rq); if (likely(prev != next)) { rq->nr_switches++; /* @@ -7043,15 +7096,17 @@ void rt_mutex_setprio(struct task_struct *p, struct task_struct *pi_task) const struct sched_class *prev_class; struct rq_flags rf; struct rq *rq; + int update = 0; trace_android_rvh_rtmutex_prepare_setprio(p, pi_task); /* XXX used to be waiter->prio, not waiter->task->prio */ prio = __rt_effective_prio(pi_task, p->normal_prio); + trace_android_rvh_rtmutex_force_update(p, pi_task, &update); /* * If nothing changed; bail early. */ - if (p->pi_top_task == pi_task && prio == p->prio && !dl_prio(prio)) + if (!update && p->pi_top_task == pi_task && prio == p->prio && !dl_prio(prio)) return; rq = __task_rq_lock(p, &rf); @@ -7071,7 +7126,7 @@ void rt_mutex_setprio(struct task_struct *p, struct task_struct *pi_task) /* * For FIFO/RR we only need to set prio, if that matches we're done. */ - if (prio == p->prio && !dl_prio(prio)) + if (!update && prio == p->prio && !dl_prio(prio)) goto out_unlock; /* @@ -7644,7 +7699,7 @@ recheck: /* Update task specific "requested" clamps */ if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP) { - retval = uclamp_validate(p, attr); + retval = uclamp_validate(p, attr, user); if (retval) return retval; } @@ -8446,6 +8501,11 @@ static void do_sched_yield(void) { struct rq_flags rf; struct rq *rq; + long skip = 0; + + trace_android_rvh_before_do_sched_yield(&skip); + if (skip) + return; rq = this_rq_lock_irq(&rf); diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index 042e5ad60843..bf0426428915 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c @@ -603,6 +603,7 @@ static int sugov_kthread_create(struct sugov_policy *sg_policy) if (policy->fast_switch_enabled) return 0; + trace_android_vh_set_sugov_sched_attr(&attr); kthread_init_work(&sg_policy->work, sugov_work); kthread_init_worker(&sg_policy->worker); thread = kthread_create(kthread_worker_fn, &sg_policy->worker, diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 9ae8f41e3372..f7d381b6c313 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2246,6 +2246,7 @@ static struct rq *find_lock_later_rq(struct task_struct *task, struct rq *rq) !cpumask_test_cpu(later_rq->cpu, &task->cpus_mask) || task_on_cpu(rq, task) || !dl_task(task) || + is_migration_disabled(task) || !task_on_rq_queued(task))) { double_unlock_balance(rq, later_rq); later_rq = NULL; diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 06e8f15819dd..fddd87c38cf3 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -3350,6 +3350,7 @@ void reweight_task(struct task_struct *p, int prio) reweight_entity(cfs_rq, se, weight); load->inv_weight = sched_prio_to_wmult[prio]; } +EXPORT_SYMBOL_GPL(reweight_task); static inline int throttled_hierarchy(struct cfs_rq *cfs_rq); @@ -4128,6 +4129,8 @@ static void attach_entity_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *s else se->avg.load_sum = 1; + trace_android_rvh_attach_entity_load_avg(cfs_rq, se); + enqueue_load_avg(cfs_rq, se); cfs_rq->avg.util_avg += se->avg.util_avg; cfs_rq->avg.util_sum += se->avg.util_sum; @@ -4151,6 +4154,8 @@ static void attach_entity_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *s */ static void detach_entity_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *se) { + trace_android_rvh_detach_entity_load_avg(cfs_rq, se); + dequeue_load_avg(cfs_rq, se); sub_positive(&cfs_rq->avg.util_avg, se->avg.util_avg); sub_positive(&cfs_rq->avg.util_sum, se->avg.util_sum); @@ -4195,6 +4200,8 @@ static inline void update_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *s decayed = update_cfs_rq_load_avg(now, cfs_rq); decayed |= propagate_entity_load_avg(se); + trace_android_rvh_update_load_avg(now, cfs_rq, se); + if (!se->avg.last_update_time && (flags & DO_ATTACH)) { /* @@ -4252,6 +4259,8 @@ static void remove_entity_load_avg(struct sched_entity *se) sync_entity_load_avg(se); + trace_android_rvh_remove_entity_load_avg(cfs_rq, se); + raw_spin_lock_irqsave(&cfs_rq->removed.lock, flags); ++cfs_rq->removed.nr; cfs_rq->removed.util_avg += se->avg.util_avg; @@ -6129,6 +6138,7 @@ enqueue_task_fair(struct rq *rq, struct task_struct *p, int flags) struct sched_entity *se = &p->se; int idle_h_nr_running = task_has_idle_policy(p); int task_new = !(flags & ENQUEUE_WAKEUP); + int should_iowait_boost; /* * The code below (indirectly) updates schedutil which looks at @@ -6143,7 +6153,9 @@ enqueue_task_fair(struct rq *rq, struct task_struct *p, int flags) * utilization updates, so do it here explicitly with the IOWAIT flag * passed. */ - if (p->in_iowait) + should_iowait_boost = p->in_iowait; + trace_android_rvh_set_iowait(p, rq, &should_iowait_boost); + if (should_iowait_boost) cpufreq_update_util(rq, SCHED_CPUFREQ_IOWAIT); for_each_sched_entity(se) { @@ -8752,6 +8764,8 @@ static bool __update_blocked_fair(struct rq *rq, bool *done) bool decayed = false; int cpu = cpu_of(rq); + trace_android_rvh_update_blocked_fair(rq); + /* * Iterates the task_group tree in a bottom up fashion, see * list_add_leaf_cfs_rq() for details. diff --git a/kernel/sched/pelt.c b/kernel/sched/pelt.c index a005458373be..c1c84f5a3c03 100644 --- a/kernel/sched/pelt.c +++ b/kernel/sched/pelt.c @@ -176,7 +176,7 @@ accumulate_sum(u64 delta, struct sched_avg *sa, * load_avg = u_0` + y*(u_0 + u_1*y + u_2*y^2 + ... ) * = u_0 + u_1*y + u_2*y^2 + ... [re-labeling u_i --> u_{i+1}] */ -static __always_inline int +int ___update_load_sum(u64 now, struct sched_avg *sa, unsigned long load, unsigned long runnable, int running) { @@ -228,6 +228,7 @@ ___update_load_sum(u64 now, struct sched_avg *sa, return 1; } +EXPORT_SYMBOL_GPL(___update_load_sum); /* * When syncing *_avg with *_sum, we must take into account the current @@ -253,7 +254,7 @@ ___update_load_sum(u64 now, struct sched_avg *sa, * the period_contrib of cfs_rq when updating the sched_avg of a sched_entity * if it's more convenient. */ -static __always_inline void +void ___update_load_avg(struct sched_avg *sa, unsigned long load) { u32 divider = get_pelt_divider(sa); @@ -265,6 +266,7 @@ ___update_load_avg(struct sched_avg *sa, unsigned long load) sa->runnable_avg = div_u64(sa->runnable_sum, divider); WRITE_ONCE(sa->util_avg, sa->util_sum / divider); } +EXPORT_SYMBOL_GPL(___update_load_avg); /* * sched_entity: diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index b55c5221fc4c..d8f751beb7dc 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1848,6 +1848,7 @@ static inline void set_next_task_rt(struct rq *rq, struct task_struct *p, bool f */ if (rq->curr->sched_class != &rt_sched_class) update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 0); + trace_android_rvh_update_rt_rq_load_avg(rq_clock_pelt(rq), rq, p, 0); rt_queue_push_tasks(rq); } @@ -1918,6 +1919,7 @@ static void put_prev_task_rt(struct rq *rq, struct task_struct *p) update_curr_rt(rq); update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 1); + trace_android_rvh_update_rt_rq_load_avg(rq_clock_pelt(rq), rq, p, 1); /* * The previous task needs to be made eligible for pushing @@ -2096,11 +2098,15 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq) * the mean time, task could have * migrated already or had its affinity changed. * Also make sure that it wasn't scheduled on its rq. + * It is possible the task was scheduled, set + * "migrate_disabled" and then got preempted, so we must + * check the task migration disable flag here too. */ if (unlikely(task_rq(task) != rq || !cpumask_test_cpu(lowest_rq->cpu, &task->cpus_mask) || task_on_cpu(rq, task) || !rt_task(task) || + is_migration_disabled(task) || !task_on_rq_queued(task))) { double_unlock_balance(rq, lowest_rq); @@ -2737,6 +2743,7 @@ static void task_tick_rt(struct rq *rq, struct task_struct *p, int queued) update_curr_rt(rq); update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 1); + trace_android_rvh_update_rt_rq_load_avg(rq_clock_pelt(rq), rq, p, 1); watchdog(rq, p); diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index c480058808bc..b60c3e178c31 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -6,6 +6,9 @@ #include <trace/hooks/sched.h> DEFINE_MUTEX(sched_domains_mutex); +#ifdef CONFIG_LOCKDEP +EXPORT_SYMBOL_GPL(sched_domains_mutex); +#endif /* Protected by sched_domains_mutex: */ static cpumask_var_t sched_domains_tmpmask; diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index e1e2601fd84f..9a8f2c3b2758 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -22,6 +22,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_can_migrate_task); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_lowest_rq); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_prepare_prio_fork); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_finish_prio_fork); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rtmutex_force_update); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rtmutex_prepare_setprio); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_user_nice); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_setscheduler); @@ -75,6 +76,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_is_cpu_allowed); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_get_nohz_timer_target); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_getaffinity); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sched_yield); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_before_do_sched_yield); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_fork_init); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ttwu_cond); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_schedule_bug); @@ -97,3 +99,12 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_irqtime_account_process_tick); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_post_init_entity_util_avg); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_effective_cpu_util); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmput); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_uclamp_validate); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_sugov_sched_attr); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_iowait); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_attach_entity_load_avg); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_detach_entity_load_avg); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_load_avg); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_remove_entity_load_avg); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_blocked_fair); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_rt_rq_load_avg); diff --git a/kernel/signal.c b/kernel/signal.c index 95d48c43fd9e..2f90f315ec1b 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -45,6 +45,7 @@ #include <linux/posix-timers.h> #include <linux/cgroup.h> #include <linux/audit.h> +#include <linux/oom.h> #define CREATE_TRACE_POINTS #include <trace/events/signal.h> @@ -58,6 +59,7 @@ #undef CREATE_TRACE_POINTS #include <trace/hooks/signal.h> +#include <trace/hooks/dtask.h> /* * SLAB caches for signal bits. */ @@ -1001,6 +1003,7 @@ static void complete_signal(int sig, struct task_struct *p, enum pid_type type) { struct signal_struct *signal = p->signal; struct task_struct *t; + bool wake; /* * Now find a thread we can wake up to take the signal off the queue. @@ -1060,7 +1063,10 @@ static void complete_signal(int sig, struct task_struct *p, enum pid_type type) trace_android_vh_exit_signal(t); task_clear_jobctl_pending(t, JOBCTL_PENDING_MASK); sigaddset(&t->pending.signal, SIGKILL); - signal_wake_up(t, 1); + wake = true; + trace_android_vh_exit_signal_whether_wake(t, &wake); + if (wake) + signal_wake_up(t, 1); } while_each_thread(p, t); return; } @@ -1443,8 +1449,16 @@ int group_send_sig_info(int sig, struct kernel_siginfo *info, ret = check_kill_permission(sig, info, p); rcu_read_unlock(); - if (!ret && sig) + if (!ret && sig) { ret = do_send_sig_info(sig, info, p, type); + if (!ret && sig == SIGKILL) { + bool reap = false; + + trace_android_vh_killed_process(current, p, &reap); + if (reap) + add_to_oom_reaper(p); + } + } return ret; } diff --git a/lib/maple_tree.c b/lib/maple_tree.c index ca65dbe98e51..b0a828f863c3 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3189,7 +3189,7 @@ static inline int mas_rebalance(struct ma_state *mas, * tries to combine the data in the same way. If one node contains the * entire range of the tree, then that node is used as a new root node. */ - mas_node_count(mas, 1 + empty_count * 3); + mas_node_count(mas, empty_count * 2 - 1); if (mas_is_err(mas)) return 0; @@ -4322,11 +4322,13 @@ static inline void mas_wr_end_piv(struct ma_wr_state *wr_mas) { wr_mas->end_piv = wr_mas->r_max; - while ((wr_mas->mas->last > wr_mas->end_piv) && - (wr_mas->offset_end < wr_mas->node_end)) - wr_mas->end_piv = wr_mas->pivots[++wr_mas->offset_end]; + while ((wr_mas->offset_end < wr_mas->node_end) && + (wr_mas->mas->last > wr_mas->pivots[wr_mas->offset_end])) + wr_mas->offset_end++; - if (wr_mas->mas->last > wr_mas->end_piv) + if (wr_mas->offset_end < wr_mas->node_end) + wr_mas->end_piv = wr_mas->pivots[wr_mas->offset_end]; + else wr_mas->end_piv = wr_mas->mas->max; if (!wr_mas->entry) @@ -5607,20 +5609,34 @@ static inline void mte_destroy_walk(struct maple_enode *enode, static void mas_wr_store_setup(struct ma_wr_state *wr_mas) { + if (mas_is_start(wr_mas->mas)) + return; + if (unlikely(mas_is_paused(wr_mas->mas))) - mas_reset(wr_mas->mas); + goto reset; - if (!mas_is_start(wr_mas->mas)) { - if (mas_is_none(wr_mas->mas)) { - mas_reset(wr_mas->mas); - } else { - wr_mas->r_max = wr_mas->mas->max; - wr_mas->type = mte_node_type(wr_mas->mas->node); - if (mas_is_span_wr(wr_mas)) - mas_reset(wr_mas->mas); - } - } + if (unlikely(mas_is_none(wr_mas->mas))) + goto reset; + + /* + * A less strict version of mas_is_span_wr() where we allow spanning + * writes within this node. This is to stop partial walks in + * mas_prealloc() from being reset. + */ + if (wr_mas->mas->last > wr_mas->mas->max) + goto reset; + if (wr_mas->entry) + return; + + if (mte_is_leaf(wr_mas->mas->node) && + wr_mas->mas->last == wr_mas->mas->max) + goto reset; + + return; + +reset: + mas_reset(wr_mas->mas); } /* Interface */ @@ -5747,25 +5763,25 @@ int mas_preallocate(struct ma_state *mas, void *entry, gfp_t gfp) mas_wr_end_piv(&wr_mas); node_size = mas_wr_node_size(&wr_mas); + /* Slot store can avoid using any nodes */ + if (node_size == wr_mas.node_end && wr_mas.offset_end - mas->offset == 1) + return 0; + if (node_size >= mt_slots[wr_mas.type]) { - /* Slot store is possible in some cases */ - if ((node_size == mt_slots[wr_mas.type]) && - (wr_mas.r_min == mas->index || wr_mas.r_max == mas->last)) - goto ask_now; /* Split, worst case for now. */ request = 1 + mas_mt_height(mas) * 2; goto ask_now; } - /* New root needs a singe node */ - if (unlikely(mte_is_root(mas->node))) - goto ask_now; + /* Appending does not need any nodes */ + if (node_size == wr_mas.node_end + 1 && mas->offset == wr_mas.node_end) + return 0; /* Potential spanning rebalance collapsing a node, use worst-case */ if (node_size - 1 <= mt_min_slots[wr_mas.type]) request = mas_mt_height(mas) * 2 - 1; - /* node store, slot store needs one node */ + /* node store needs one node */ ask_now: mas_node_count_gfp(mas, request, gfp); mas->mas_flags |= MA_STATE_PREALLOC; diff --git a/mm/Kconfig b/mm/Kconfig index a58632a9fbd9..985ed3d2adbd 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -1196,6 +1196,10 @@ config PER_VMA_LOCK This feature allows locking each virtual memory area separately when handling page faults instead of taking mmap_lock. +config LOCK_MM_AND_FIND_VMA + bool + depends on !STACK_GROWSUP + source "mm/damon/Kconfig" endmenu diff --git a/mm/OWNERS b/mm/OWNERS deleted file mode 100644 index 5f97cfd4bee5..000000000000 --- a/mm/OWNERS +++ /dev/null @@ -1,3 +0,0 @@ -kaleshsingh@google.com -surenb@google.com -minchan@google.com diff --git a/mm/compaction.c b/mm/compaction.c index 2d9bc2ebfadf..4fd76f427e29 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -49,6 +49,8 @@ static inline void count_compact_events(enum vm_event_item item, long delta) #define CREATE_TRACE_POINTS #include <trace/events/compaction.h> +#undef CREATE_TRACE_POINTS +#include <trace/hooks/compaction.h> #define block_start_pfn(pfn, order) round_down(pfn, 1UL << (order)) #define block_end_pfn(pfn, order) ALIGN((pfn) + 1, 1UL << (order)) @@ -2655,7 +2657,7 @@ enum compact_result try_to_compact_pages(gfp_t gfp_mask, unsigned int order, || fatal_signal_pending(current)) break; } - + trace_android_vh_compaction_try_to_compact_pages_exit(&rc); return rc; } @@ -2902,6 +2904,7 @@ static void kcompactd_do_work(pg_data_t *pgdat) VM_BUG_ON(!list_empty(&cc.freepages)); VM_BUG_ON(!list_empty(&cc.migratepages)); } + trace_android_vh_compaction_exit(pgdat->node_id, cc.order, cc.highest_zoneidx); /* * Regardless of success, we are done until woken up next. But remember diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c index 15f03df66db6..3036ebfcdd83 100644 --- a/mm/damon/vaddr.c +++ b/mm/damon/vaddr.c @@ -384,6 +384,7 @@ out: static const struct mm_walk_ops damon_mkold_ops = { .pmd_entry = damon_mkold_pmd_entry, .hugetlb_entry = damon_mkold_hugetlb_entry, + .walk_lock = PGWALK_RDLOCK, }; static void damon_va_mkold(struct mm_struct *mm, unsigned long addr) @@ -521,6 +522,7 @@ out: static const struct mm_walk_ops damon_young_ops = { .pmd_entry = damon_young_pmd_entry, .hugetlb_entry = damon_young_hugetlb_entry, + .walk_lock = PGWALK_RDLOCK, }; static bool damon_va_young(struct mm_struct *mm, unsigned long addr, diff --git a/mm/filemap.c b/mm/filemap.c index 695d92428173..65bc874b7996 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1707,46 +1707,47 @@ static int __folio_lock_async(struct folio *folio, struct wait_page_queue *wait) /* * Return values: - * true - folio is locked; mmap_lock is still held. - * false - folio is not locked. - * mmap_lock has been released (mmap_read_unlock(), unless flags had both - * FAULT_FLAG_ALLOW_RETRY and FAULT_FLAG_RETRY_NOWAIT set, in - * which case mmap_lock is still held. + * 0 - folio is locked. + * non-zero - folio is not locked. + * mmap_lock or per-VMA lock has been released (mmap_read_unlock() or + * vma_end_read()), unless flags had both FAULT_FLAG_ALLOW_RETRY and + * FAULT_FLAG_RETRY_NOWAIT set, in which case the lock is still held. * - * If neither ALLOW_RETRY nor KILLABLE are set, will always return true - * with the folio locked and the mmap_lock unperturbed. + * If neither ALLOW_RETRY nor KILLABLE are set, will always return 0 + * with the folio locked and the mmap_lock/per-VMA lock is left unperturbed. */ -bool __folio_lock_or_retry(struct folio *folio, struct mm_struct *mm, - unsigned int flags) +vm_fault_t __folio_lock_or_retry(struct folio *folio, struct vm_fault *vmf) { + unsigned int flags = vmf->flags; + if (fault_flag_allow_retry_first(flags)) { /* - * CAUTION! In this case, mmap_lock is not released - * even though return 0. + * CAUTION! In this case, mmap_lock/per-VMA lock is not + * released even though returning VM_FAULT_RETRY. */ if (flags & FAULT_FLAG_RETRY_NOWAIT) - return false; + return VM_FAULT_RETRY; - mmap_read_unlock(mm); + release_fault_lock(vmf); if (flags & FAULT_FLAG_KILLABLE) folio_wait_locked_killable(folio); else folio_wait_locked(folio); - return false; + return VM_FAULT_RETRY; } if (flags & FAULT_FLAG_KILLABLE) { bool ret; ret = __folio_lock_killable(folio); if (ret) { - mmap_read_unlock(mm); - return false; + release_fault_lock(vmf); + return VM_FAULT_RETRY; } } else { __folio_lock(folio); } - return true; + return 0; } /** @@ -1182,7 +1182,7 @@ static long __get_user_pages(struct mm_struct *mm, /* first iteration or cross vma bound */ if (!vma || start >= vma->vm_end) { - vma = find_extend_vma(mm, start); + vma = vma_lookup(mm, start); if (!vma && in_gate_area(mm, start)) { ret = get_gate_page(mm, start & PAGE_MASK, gup_flags, &vma, @@ -1351,8 +1351,8 @@ int fixup_user_fault(struct mm_struct *mm, fault_flags |= FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE; retry: - vma = find_extend_vma(mm, address); - if (!vma || address < vma->vm_start) + vma = vma_lookup(mm, address); + if (!vma) return -EFAULT; if (!vma_permits_fault(vma, fault_flags)) @@ -548,6 +548,7 @@ static const struct mm_walk_ops hmm_walk_ops = { .pte_hole = hmm_vma_walk_hole, .hugetlb_entry = hmm_vma_walk_hugetlb_entry, .test_walk = hmm_vma_walk_test, + .walk_lock = PGWALK_RDLOCK, }; /** diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 34d7816b13bc..4737d9fc505d 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4968,7 +4968,7 @@ int copy_hugetlb_page_range(struct mm_struct *dst, struct mm_struct *src, src_vma->vm_start, src_vma->vm_end); mmu_notifier_invalidate_range_start(&range); - mmap_assert_write_locked(src); + vma_assert_write_locked(src_vma); raw_write_seqcount_begin(&src->write_protect_seq); } else { /* @@ -6005,6 +6005,12 @@ vm_fault_t hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, int need_wait_lock = 0; unsigned long haddr = address & huge_page_mask(h); + /* TODO: Handle faults under the VMA lock */ + if (flags & FAULT_FLAG_VMA_LOCK) { + vma_end_read(vma); + return VM_FAULT_RETRY; + } + ptep = huge_pte_offset(mm, haddr, huge_page_size(h)); if (ptep) { /* diff --git a/mm/internal.h b/mm/internal.h index fe0925d7cbb5..0997c0c82c02 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -619,7 +619,7 @@ static inline struct file *maybe_unlock_mmap_for_io(struct vm_fault *vmf, if (fault_flag_allow_retry_first(flags) && !(flags & FAULT_FLAG_RETRY_NOWAIT)) { fpin = get_file(vmf->vma->vm_file); - mmap_read_unlock(vmf->vma->vm_mm); + release_fault_lock(vmf); } return fpin; } diff --git a/mm/kasan/hw_tags.c b/mm/kasan/hw_tags.c index d1bcb0205327..b092e37b69a7 100644 --- a/mm/kasan/hw_tags.c +++ b/mm/kasan/hw_tags.c @@ -205,7 +205,7 @@ void kasan_init_hw_tags_cpu(void) * Enable async or asymm modes only when explicitly requested * through the command line. */ - kasan_enable_tagging(); + kasan_enable_hw_tags(); } /* kasan_init_hw_tags() is called once on boot CPU. */ @@ -373,19 +373,19 @@ void __kasan_poison_vmalloc(const void *start, unsigned long size) #endif -void kasan_enable_tagging(void) +void kasan_enable_hw_tags(void) { if (kasan_arg_mode == KASAN_ARG_MODE_ASYNC) - hw_enable_tagging_async(); + hw_enable_tag_checks_async(); else if (kasan_arg_mode == KASAN_ARG_MODE_ASYMM) - hw_enable_tagging_asymm(); + hw_enable_tag_checks_asymm(); else - hw_enable_tagging_sync(); + hw_enable_tag_checks_sync(); } #if IS_ENABLED(CONFIG_KASAN_KUNIT_TEST) -EXPORT_SYMBOL_GPL(kasan_enable_tagging); +EXPORT_SYMBOL_GPL(kasan_enable_hw_tags); void kasan_force_async_fault(void) { diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h index 8b6e09839d8d..6db6638d7e3b 100644 --- a/mm/kasan/kasan.h +++ b/mm/kasan/kasan.h @@ -401,46 +401,22 @@ static inline const void *arch_kasan_set_tag(const void *addr, u8 tag) #ifdef CONFIG_KASAN_HW_TAGS -#ifndef arch_enable_tagging_sync -#define arch_enable_tagging_sync() -#endif -#ifndef arch_enable_tagging_async -#define arch_enable_tagging_async() -#endif -#ifndef arch_enable_tagging_asymm -#define arch_enable_tagging_asymm() -#endif -#ifndef arch_force_async_tag_fault -#define arch_force_async_tag_fault() -#endif -#ifndef arch_get_random_tag -#define arch_get_random_tag() (0xFF) -#endif -#ifndef arch_get_mem_tag -#define arch_get_mem_tag(addr) (0xFF) -#endif -#ifndef arch_set_mem_tag_range -#define arch_set_mem_tag_range(addr, size, tag, init) ((void *)(addr)) -#endif - -#define hw_enable_tagging_sync() arch_enable_tagging_sync() -#define hw_enable_tagging_async() arch_enable_tagging_async() -#define hw_enable_tagging_asymm() arch_enable_tagging_asymm() +#define hw_enable_tag_checks_sync() arch_enable_tag_checks_sync() +#define hw_enable_tag_checks_async() arch_enable_tag_checks_async() +#define hw_enable_tag_checks_asymm() arch_enable_tag_checks_asymm() +#define hw_suppress_tag_checks_start() arch_suppress_tag_checks_start() +#define hw_suppress_tag_checks_stop() arch_suppress_tag_checks_stop() #define hw_force_async_tag_fault() arch_force_async_tag_fault() #define hw_get_random_tag() arch_get_random_tag() #define hw_get_mem_tag(addr) arch_get_mem_tag(addr) #define hw_set_mem_tag_range(addr, size, tag, init) \ arch_set_mem_tag_range((addr), (size), (tag), (init)) -void kasan_enable_tagging(void); +void kasan_enable_hw_tags(void); #else /* CONFIG_KASAN_HW_TAGS */ -#define hw_enable_tagging_sync() -#define hw_enable_tagging_async() -#define hw_enable_tagging_asymm() - -static inline void kasan_enable_tagging(void) { } +static inline void kasan_enable_hw_tags(void) { } #endif /* CONFIG_KASAN_HW_TAGS */ diff --git a/mm/kasan/kasan_test.c b/mm/kasan/kasan_test.c index 0d59098f0876..875553961eeb 100644 --- a/mm/kasan/kasan_test.c +++ b/mm/kasan/kasan_test.c @@ -107,7 +107,7 @@ static void kasan_test_exit(struct kunit *test) kasan_sync_fault_possible()) { \ if (READ_ONCE(test_status.report_found) && \ READ_ONCE(test_status.sync_fault)) \ - kasan_enable_tagging(); \ + kasan_enable_hw_tags(); \ migrate_enable(); \ } \ WRITE_ONCE(test_status.report_found, false); \ diff --git a/mm/kasan/report.c b/mm/kasan/report.c index cc98dfdd3ed2..dfe686be59df 100644 --- a/mm/kasan/report.c +++ b/mm/kasan/report.c @@ -73,10 +73,18 @@ static int __init kasan_set_multi_shot(char *str) __setup("kasan_multi_shot", kasan_set_multi_shot); /* - * Used to suppress reports within kasan_disable/enable_current() critical - * sections, which are used for marking accesses to slab metadata. + * This function is used to check whether KASAN reports are suppressed for + * software KASAN modes via kasan_disable/enable_current() critical sections. + * + * This is done to avoid: + * 1. False-positive reports when accessing slab metadata, + * 2. Deadlocking when poisoned memory is accessed by the reporting code. + * + * Hardware Tag-Based KASAN instead relies on: + * For #1: Resetting tags via kasan_reset_tag(). + * For #2: Suppression of tag checks via CPU, see report_suppress_start/end(). */ -static bool report_suppressed(void) +static bool report_suppressed_sw(void) { #if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS) if (current->kasan_depth) @@ -85,6 +93,30 @@ static bool report_suppressed(void) return false; } +static void report_suppress_start(void) +{ +#ifdef CONFIG_KASAN_HW_TAGS + /* + * Disable preemption for the duration of printing a KASAN report, as + * hw_suppress_tag_checks_start() disables checks on the current CPU. + */ + preempt_disable(); + hw_suppress_tag_checks_start(); +#else + kasan_disable_current(); +#endif +} + +static void report_suppress_stop(void) +{ +#ifdef CONFIG_KASAN_HW_TAGS + hw_suppress_tag_checks_stop(); + preempt_enable(); +#else + kasan_enable_current(); +#endif +} + /* * Used to avoid reporting more than one KASAN bug unless kasan_multi_shot * is enabled. Note that KASAN tests effectively enable kasan_multi_shot @@ -152,7 +184,7 @@ static void start_report(unsigned long *flags, bool sync) /* Do not allow LOCKDEP mangling KASAN reports. */ lockdep_off(); /* Make sure we don't end up in loop. */ - kasan_disable_current(); + report_suppress_start(); spin_lock_irqsave(&report_lock, *flags); pr_err("==================================================================\n"); } @@ -170,7 +202,7 @@ static void end_report(unsigned long *flags, void *addr) panic("kasan.fault=panic set ...\n"); add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE); lockdep_on(); - kasan_enable_current(); + report_suppress_stop(); } static void print_error_description(struct kasan_report_info *info) @@ -439,9 +471,13 @@ void kasan_report_invalid_free(void *ptr, unsigned long ip, enum kasan_report_ty struct kasan_report_info info; /* - * Do not check report_suppressed(), as an invalid-free cannot be - * caused by accessing slab metadata and thus should not be - * suppressed by kasan_disable/enable_current() critical sections. + * Do not check report_suppressed_sw(), as an invalid-free cannot be + * caused by accessing poisoned memory and thus should not be suppressed + * by kasan_disable/enable_current() critical sections. + * + * Note that for Hardware Tag-Based KASAN, kasan_report_invalid_free() + * is triggered by explicit tag checks and not by the ones performed by + * the CPU. Thus, reporting invalid-free is not suppressed as well. */ if (unlikely(!report_enabled())) return; @@ -476,7 +512,7 @@ bool kasan_report(unsigned long addr, size_t size, bool is_write, unsigned long irq_flags; struct kasan_report_info info; - if (unlikely(report_suppressed()) || unlikely(!report_enabled())) { + if (unlikely(report_suppressed_sw()) || unlikely(!report_enabled())) { ret = false; goto out; } @@ -508,8 +544,9 @@ void kasan_report_async(void) unsigned long flags; /* - * Do not check report_suppressed(), as kasan_disable/enable_current() - * critical sections do not affect Hardware Tag-Based KASAN. + * Do not check report_suppressed_sw(), as + * kasan_disable/enable_current() critical sections do not affect + * Hardware Tag-Based KASAN. */ if (unlikely(!report_enabled())) return; @@ -434,13 +434,18 @@ static inline bool ksm_test_exit(struct mm_struct *mm) * of the process that owns 'vma'. We also do not want to enforce * protection keys here anyway. */ -static int break_ksm(struct vm_area_struct *vma, unsigned long addr) +static int break_ksm(struct vm_area_struct *vma, unsigned long addr, bool lock_vma) { struct page *page; vm_fault_t ret = 0; do { cond_resched(); + if (lock_vma) + vma_start_write(vma); + else + mmap_assert_locked(vma->vm_mm); + page = follow_page(vma, addr, FOLL_GET | FOLL_MIGRATION | FOLL_REMOTE); if (IS_ERR_OR_NULL(page)) @@ -511,7 +516,7 @@ static void break_cow(struct ksm_rmap_item *rmap_item) mmap_read_lock(mm); vma = find_mergeable_vma(mm, addr); if (vma) - break_ksm(vma, addr); + break_ksm(vma, addr, false); mmap_read_unlock(mm); } @@ -814,7 +819,7 @@ static void remove_trailing_rmap_items(struct ksm_rmap_item **rmap_list) * in cmp_and_merge_page on one of the rmap_items we would be removing. */ static int unmerge_ksm_pages(struct vm_area_struct *vma, - unsigned long start, unsigned long end) + unsigned long start, unsigned long end, bool lock_vma) { unsigned long addr; int err = 0; @@ -825,7 +830,7 @@ static int unmerge_ksm_pages(struct vm_area_struct *vma, if (signal_pending(current)) err = -ERESTARTSYS; else - err = break_ksm(vma, addr); + err = break_ksm(vma, addr, lock_vma); } return err; } @@ -972,7 +977,7 @@ static int unmerge_and_remove_all_rmap_items(void) if (!(vma->vm_flags & VM_MERGEABLE) || !vma->anon_vma) continue; err = unmerge_ksm_pages(vma, - vma->vm_start, vma->vm_end); + vma->vm_start, vma->vm_end, false); if (err) goto error; } @@ -2487,7 +2492,7 @@ int ksm_madvise(struct vm_area_struct *vma, unsigned long start, return 0; /* just ignore the advice */ if (vma->anon_vma) { - err = unmerge_ksm_pages(vma, start, end); + err = unmerge_ksm_pages(vma, start, end, true); if (err) return err; } diff --git a/mm/madvise.c b/mm/madvise.c index f49a62a35827..21b5de11c329 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -180,9 +180,8 @@ static int madvise_update_vma(struct vm_area_struct *vma, } success: - /* - * vm_flags is protected by the mmap_lock held in write mode. - */ + /* vm_flags is protected by the mmap_lock held in write mode. */ + vma_start_write(vma); vm_flags_reset(vma, new_flags); if (!vma->vm_file) { error = replace_anon_vma_name(vma, anon_name); @@ -223,7 +222,7 @@ static int swapin_walk_pmd_entry(pmd_t *pmd, unsigned long start, trace_android_vh_madvise_swapin_walk_pmd_entry(entry); page = read_swap_cache_async(entry, GFP_HIGHUSER_MOVABLE, - vma, index, false, &splug); + vma, index, &splug); if (page) put_page(page); } @@ -234,6 +233,7 @@ static int swapin_walk_pmd_entry(pmd_t *pmd, unsigned long start, static const struct mm_walk_ops swapin_walk_ops = { .pmd_entry = swapin_walk_pmd_entry, + .walk_lock = PGWALK_RDLOCK, }; static void force_shm_swapin_readahead(struct vm_area_struct *vma, @@ -259,7 +259,7 @@ static void force_shm_swapin_readahead(struct vm_area_struct *vma, rcu_read_unlock(); page = read_swap_cache_async(swap, GFP_HIGHUSER_MOVABLE, - NULL, 0, false, &splug); + NULL, 0, &splug); if (page) put_page(page); @@ -541,6 +541,7 @@ regular_page: static const struct mm_walk_ops cold_walk_ops = { .pmd_entry = madvise_cold_or_pageout_pte_range, + .walk_lock = PGWALK_RDLOCK, }; static void madvise_cold_page_range(struct mmu_gather *tlb, @@ -763,6 +764,7 @@ next: static const struct mm_walk_ops madvise_free_walk_ops = { .pmd_entry = madvise_free_pte_range, + .walk_lock = PGWALK_RDLOCK, }; static int madvise_free_single_vma(struct vm_area_struct *vma, diff --git a/mm/memcontrol.c b/mm/memcontrol.c index aa09cf4e8bb5..cb9289925915 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -78,6 +78,7 @@ struct cgroup_subsys memory_cgrp_subsys __read_mostly; EXPORT_SYMBOL(memory_cgrp_subsys); struct mem_cgroup *root_mem_cgroup __read_mostly; +EXPORT_SYMBOL_GPL(root_mem_cgroup); /* Active memory cgroup to use from an interrupt context */ DEFINE_PER_CPU(struct mem_cgroup *, int_active_memcg); @@ -827,6 +828,7 @@ void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, if (!mem_cgroup_disabled()) __mod_memcg_lruvec_state(lruvec, idx, val); } +EXPORT_SYMBOL_GPL(__mod_lruvec_state); void __mod_lruvec_page_state(struct page *page, enum node_stat_item idx, int val) @@ -1392,6 +1394,7 @@ void mem_cgroup_update_lru_size(struct lruvec *lruvec, enum lru_list lru, if (nr_pages > 0) *lru_size += nr_pages; } +EXPORT_SYMBOL_GPL(mem_cgroup_update_lru_size); /** * mem_cgroup_margin - calculate chargeable space of a memory cgroup @@ -5966,6 +5969,7 @@ static int mem_cgroup_count_precharge_pte_range(pmd_t *pmd, static const struct mm_walk_ops precharge_walk_ops = { .pmd_entry = mem_cgroup_count_precharge_pte_range, + .walk_lock = PGWALK_RDLOCK, }; static unsigned long mem_cgroup_count_precharge(struct mm_struct *mm) @@ -6242,6 +6246,7 @@ put: /* get_mctgt_type() gets the page */ static const struct mm_walk_ops charge_walk_ops = { .pmd_entry = mem_cgroup_move_charge_pte_range, + .walk_lock = PGWALK_RDLOCK, }; static void mem_cgroup_move_charge(void) diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 4457f9423e2c..3badad5ab293 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -722,6 +722,7 @@ static int hwpoison_hugetlb_range(pte_t *ptep, unsigned long hmask, static const struct mm_walk_ops hwp_walk_ops = { .pmd_entry = hwpoison_pte_range, .hugetlb_entry = hwpoison_hugetlb_range, + .walk_lock = PGWALK_RDLOCK, }; /* diff --git a/mm/memory.c b/mm/memory.c index 16063c490b7f..78d5312c0078 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -1319,7 +1319,7 @@ copy_page_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma) * Use the raw variant of the seqcount_t write API to avoid * lockdep complaining about preemptibility. */ - mmap_assert_write_locked(src_mm); + vma_assert_write_locked(src_vma); raw_write_seqcount_begin(&src_mm->write_protect_seq); } @@ -2851,10 +2851,16 @@ static inline int pte_unmap_same(struct vm_fault *vmf) return same; } -static inline bool __wp_page_copy_user(struct page *dst, struct page *src, - struct vm_fault *vmf) +/* + * Return: + * 0: copied succeeded + * -EHWPOISON: copy failed due to hwpoison in source page + * -EAGAIN: copied failed (some other reason) + */ +static inline int __wp_page_copy_user(struct page *dst, struct page *src, + struct vm_fault *vmf) { - bool ret; + int ret; void *kaddr; void __user *uaddr; bool locked = false; @@ -2863,8 +2869,11 @@ static inline bool __wp_page_copy_user(struct page *dst, struct page *src, unsigned long addr = vmf->address; if (likely(src)) { - copy_user_highpage(dst, src, addr, vma); - return true; + if (copy_mc_user_highpage(dst, src, addr, vma)) { + memory_failure_queue(page_to_pfn(src), 0); + return -EHWPOISON; + } + return 0; } /* @@ -2891,7 +2900,7 @@ static inline bool __wp_page_copy_user(struct page *dst, struct page *src, * and update local tlb only */ update_mmu_tlb(vma, addr, vmf->pte); - ret = false; + ret = -EAGAIN; goto pte_unlock; } @@ -2916,7 +2925,7 @@ static inline bool __wp_page_copy_user(struct page *dst, struct page *src, if (!likely(pte_same(*vmf->pte, vmf->orig_pte))) { /* The PTE changed under us, update local tlb */ update_mmu_tlb(vma, addr, vmf->pte); - ret = false; + ret = -EAGAIN; goto pte_unlock; } @@ -2935,7 +2944,7 @@ warn: } } - ret = true; + ret = 0; pte_unlock: if (locked) @@ -3107,6 +3116,7 @@ static vm_fault_t wp_page_copy(struct vm_fault *vmf) pte_t entry; int page_copied = 0; struct mmu_notifier_range range; + int ret; delayacct_wpcopy_start(); @@ -3124,19 +3134,21 @@ static vm_fault_t wp_page_copy(struct vm_fault *vmf) if (!new_page) goto oom; - if (!__wp_page_copy_user(new_page, old_page, vmf)) { + ret = __wp_page_copy_user(new_page, old_page, vmf); + if (ret) { /* * COW failed, if the fault was solved by other, * it's fine. If not, userspace would re-fault on * the same address and we will handle the fault * from the second attempt. + * The -EHWPOISON case will not be retried. */ put_page(new_page); if (old_page) put_page(old_page); delayacct_wpcopy_end(); - return 0; + return ret == -EHWPOISON ? VM_FAULT_HWPOISON : 0; } kmsan_copy_page_meta(new_page, old_page); } @@ -3302,6 +3314,11 @@ static vm_fault_t wp_pfn_shared(struct vm_fault *vmf) vm_fault_t ret; pte_unmap_unlock(vmf->pte, vmf->ptl); + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { + vma_end_read(vmf->vma); + return VM_FAULT_RETRY; + } + vmf->flags |= FAULT_FLAG_MKWRITE; ret = vma->vm_ops->pfn_mkwrite(vmf); if (ret & (VM_FAULT_ERROR | VM_FAULT_NOPAGE)) @@ -3324,6 +3341,12 @@ static vm_fault_t wp_page_shared(struct vm_fault *vmf) vm_fault_t tmp; pte_unmap_unlock(vmf->pte, vmf->ptl); + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { + put_page(vmf->page); + vma_end_read(vmf->vma); + return VM_FAULT_RETRY; + } + tmp = do_page_mkwrite(vmf); if (unlikely(!tmp || (tmp & (VM_FAULT_ERROR | VM_FAULT_NOPAGE)))) { @@ -3477,6 +3500,12 @@ reuse: return wp_page_shared(vmf); } copy: + if ((vmf->flags & FAULT_FLAG_VMA_LOCK) && !vma->anon_vma) { + pte_unmap_unlock(vmf->pte, vmf->ptl); + vma_end_read(vmf->vma); + return VM_FAULT_RETRY; + } + /* * Ok, we need to copy. Oh, well.. */ @@ -3626,6 +3655,7 @@ static vm_fault_t remove_device_exclusive_entry(struct vm_fault *vmf) struct folio *folio = page_folio(vmf->page); struct vm_area_struct *vma = vmf->vma; struct mmu_notifier_range range; + vm_fault_t ret; /* * We need a reference to lock the folio because we don't hold @@ -3638,9 +3668,10 @@ static vm_fault_t remove_device_exclusive_entry(struct vm_fault *vmf) if (!folio_try_get(folio)) return 0; - if (!folio_lock_or_retry(folio, vma->vm_mm, vmf->flags)) { + ret = folio_lock_or_retry(folio, vmf); + if (ret) { folio_put(folio); - return VM_FAULT_RETRY; + return ret; } mmu_notifier_range_init_owner(&range, MMU_NOTIFY_EXCLUSIVE, 0, vma, vma->vm_mm, vmf->address & PAGE_MASK, @@ -3750,18 +3781,12 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) bool exclusive = false; swp_entry_t entry; pte_t pte; - int locked; vm_fault_t ret = 0; void *shadow = NULL; if (!pte_unmap_same(vmf)) goto out; - if (vmf->flags & FAULT_FLAG_VMA_LOCK) { - ret = VM_FAULT_RETRY; - goto out; - } - entry = pte_to_swp_entry(vmf->orig_pte); if (unlikely(non_swap_entry(entry))) { if (is_migration_entry(entry)) { @@ -3771,6 +3796,16 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) vmf->page = pfn_swap_entry_to_page(entry); ret = remove_device_exclusive_entry(vmf); } else if (is_device_private_entry(entry)) { + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { + /* + * migrate_to_ram is not yet ready to operate + * under VMA lock. + */ + vma_end_read(vma); + ret = VM_FAULT_RETRY; + goto out; + } + vmf->page = pfn_swap_entry_to_page(entry); vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, vmf->address, &vmf->ptl); @@ -3874,12 +3909,9 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) goto out_release; } - locked = folio_lock_or_retry(folio, vma->vm_mm, vmf->flags); - - if (!locked) { - ret |= VM_FAULT_RETRY; + ret |= folio_lock_or_retry(folio, vmf); + if (ret & VM_FAULT_RETRY) goto out_release; - } if (swapcache) { /* @@ -4581,6 +4613,11 @@ static vm_fault_t do_read_fault(struct vm_fault *vmf) return ret; } + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { + vma_end_read(vmf->vma); + return VM_FAULT_RETRY; + } + ret = __do_fault(vmf); if (unlikely(ret & (VM_FAULT_ERROR | VM_FAULT_NOPAGE | VM_FAULT_RETRY))) return ret; @@ -4597,6 +4634,11 @@ static vm_fault_t do_cow_fault(struct vm_fault *vmf) struct vm_area_struct *vma = vmf->vma; vm_fault_t ret; + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { + vma_end_read(vma); + return VM_FAULT_RETRY; + } + if (unlikely(anon_vma_prepare(vma))) return VM_FAULT_OOM; @@ -4636,6 +4678,11 @@ static vm_fault_t do_shared_fault(struct vm_fault *vmf) struct vm_area_struct *vma = vmf->vma; vm_fault_t ret, tmp; + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { + vma_end_read(vma); + return VM_FAULT_RETRY; + } + ret = __do_fault(vmf); if (unlikely(ret & (VM_FAULT_ERROR | VM_FAULT_NOPAGE | VM_FAULT_RETRY))) return ret; @@ -4846,33 +4893,45 @@ out_map: static inline vm_fault_t create_huge_pmd(struct vm_fault *vmf) { - if (vma_is_anonymous(vmf->vma)) + struct vm_area_struct *vma = vmf->vma; + if (vma_is_anonymous(vma)) return do_huge_pmd_anonymous_page(vmf); - if (vmf->vma->vm_ops->huge_fault) - return vmf->vma->vm_ops->huge_fault(vmf, PE_SIZE_PMD); + if (vma->vm_ops->huge_fault) { + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { + vma_end_read(vma); + return VM_FAULT_RETRY; + } + return vma->vm_ops->huge_fault(vmf, PE_SIZE_PMD); + } return VM_FAULT_FALLBACK; } /* `inline' is required to avoid gcc 4.1.2 build error */ static inline vm_fault_t wp_huge_pmd(struct vm_fault *vmf) { + struct vm_area_struct *vma = vmf->vma; const bool unshare = vmf->flags & FAULT_FLAG_UNSHARE; + vm_fault_t ret; - if (vma_is_anonymous(vmf->vma)) { + if (vma_is_anonymous(vma)) { if (likely(!unshare) && - userfaultfd_huge_pmd_wp(vmf->vma, vmf->orig_pmd)) + userfaultfd_huge_pmd_wp(vma, vmf->orig_pmd)) return handle_userfault(vmf, VM_UFFD_WP); return do_huge_pmd_wp_page(vmf); } - if (vmf->vma->vm_ops->huge_fault) { - vm_fault_t ret = vmf->vma->vm_ops->huge_fault(vmf, PE_SIZE_PMD); + if (vma->vm_ops->huge_fault) { + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { + vma_end_read(vma); + return VM_FAULT_RETRY; + } + ret = vma->vm_ops->huge_fault(vmf, PE_SIZE_PMD); if (!(ret & VM_FAULT_FALLBACK)) return ret; } /* COW or write-notify handled on pte level: split pmd. */ - __split_huge_pmd(vmf->vma, vmf->pmd, vmf->address, false, NULL); + __split_huge_pmd(vma, vmf->pmd, vmf->address, false, NULL); return VM_FAULT_FALLBACK; } @@ -4881,11 +4940,17 @@ static vm_fault_t create_huge_pud(struct vm_fault *vmf) { #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \ defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) + struct vm_area_struct *vma = vmf->vma; /* No support for anonymous transparent PUD pages yet */ - if (vma_is_anonymous(vmf->vma)) + if (vma_is_anonymous(vma)) return VM_FAULT_FALLBACK; - if (vmf->vma->vm_ops->huge_fault) - return vmf->vma->vm_ops->huge_fault(vmf, PE_SIZE_PUD); + if (vma->vm_ops->huge_fault) { + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { + vma_end_read(vma); + return VM_FAULT_RETRY; + } + return vma->vm_ops->huge_fault(vmf, PE_SIZE_PUD); + } #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ return VM_FAULT_FALLBACK; } @@ -4894,18 +4959,25 @@ static vm_fault_t wp_huge_pud(struct vm_fault *vmf, pud_t orig_pud) { #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \ defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) + struct vm_area_struct *vma = vmf->vma; + vm_fault_t ret; + /* No support for anonymous transparent PUD pages yet */ - if (vma_is_anonymous(vmf->vma)) + if (vma_is_anonymous(vma)) goto split; - if (vmf->vma->vm_ops->huge_fault) { - vm_fault_t ret = vmf->vma->vm_ops->huge_fault(vmf, PE_SIZE_PUD); + if (vma->vm_ops->huge_fault) { + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { + vma_end_read(vma); + return VM_FAULT_RETRY; + } + ret = vma->vm_ops->huge_fault(vmf, PE_SIZE_PUD); if (!(ret & VM_FAULT_FALLBACK)) return ret; } split: /* COW or write-notify not handled on PUD level: split pud.*/ - __split_huge_pud(vmf->vma, vmf->pud, vmf->address); + __split_huge_pud(vma, vmf->pud, vmf->address); #endif /* CONFIG_TRANSPARENT_HUGEPAGE && CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD */ return VM_FAULT_FALLBACK; } @@ -5027,10 +5099,10 @@ unlock: } /* - * By the time we get here, we already hold the mm semaphore - * - * The mmap_lock may have been released depending on flags and our - * return value. See filemap_fault() and __folio_lock_or_retry(). + * On entry, we hold either the VMA lock or the mmap_lock + * (FAULT_FLAG_VMA_LOCK tells you which). If VM_FAULT_RETRY is set in + * the result, the mmap_lock is not held on exit. See filemap_fault() + * and __folio_lock_or_retry(). */ static vm_fault_t __handle_mm_fault(struct vm_area_struct *vma, unsigned long address, unsigned int flags) @@ -5231,6 +5303,17 @@ vm_fault_t handle_mm_fault(struct vm_area_struct *vma, unsigned long address, __set_current_state(TASK_RUNNING); +#ifdef CONFIG_PER_VMA_LOCK + /* + * Per-VMA locks can't be used with FAULT_FLAG_RETRY_NOWAIT because of + * the assumption that lock is dropped on VM_FAULT_RETRY. + */ + if (WARN_ON_ONCE((flags & + (FAULT_FLAG_VMA_LOCK | FAULT_FLAG_RETRY_NOWAIT)) == + (FAULT_FLAG_VMA_LOCK | FAULT_FLAG_RETRY_NOWAIT))) + return VM_FAULT_SIGSEGV; +#endif + /* do counter updates before entering really critical section. */ check_sync_rss_stat(current); @@ -5275,6 +5358,125 @@ out: } EXPORT_SYMBOL_GPL(handle_mm_fault); +#ifdef CONFIG_LOCK_MM_AND_FIND_VMA +#include <linux/extable.h> + +static inline bool get_mmap_lock_carefully(struct mm_struct *mm, struct pt_regs *regs) +{ + /* Even if this succeeds, make it clear we *might* have slept */ + if (likely(mmap_read_trylock(mm))) { + might_sleep(); + return true; + } + + if (regs && !user_mode(regs)) { + unsigned long ip = instruction_pointer(regs); + if (!search_exception_tables(ip)) + return false; + } + + return !mmap_read_lock_killable(mm); +} + +static inline bool mmap_upgrade_trylock(struct mm_struct *mm) +{ + /* + * We don't have this operation yet. + * + * It should be easy enough to do: it's basically a + * atomic_long_try_cmpxchg_acquire() + * from RWSEM_READER_BIAS -> RWSEM_WRITER_LOCKED, but + * it also needs the proper lockdep magic etc. + */ + return false; +} + +static inline bool upgrade_mmap_lock_carefully(struct mm_struct *mm, struct pt_regs *regs) +{ + mmap_read_unlock(mm); + if (regs && !user_mode(regs)) { + unsigned long ip = instruction_pointer(regs); + if (!search_exception_tables(ip)) + return false; + } + return !mmap_write_lock_killable(mm); +} + +/* + * Helper for page fault handling. + * + * This is kind of equivalend to "mmap_read_lock()" followed + * by "find_extend_vma()", except it's a lot more careful about + * the locking (and will drop the lock on failure). + * + * For example, if we have a kernel bug that causes a page + * fault, we don't want to just use mmap_read_lock() to get + * the mm lock, because that would deadlock if the bug were + * to happen while we're holding the mm lock for writing. + * + * So this checks the exception tables on kernel faults in + * order to only do this all for instructions that are actually + * expected to fault. + * + * We can also actually take the mm lock for writing if we + * need to extend the vma, which helps the VM layer a lot. + */ +struct vm_area_struct *lock_mm_and_find_vma(struct mm_struct *mm, + unsigned long addr, struct pt_regs *regs) +{ + struct vm_area_struct *vma; + + if (!get_mmap_lock_carefully(mm, regs)) + return NULL; + + vma = find_vma(mm, addr); + if (likely(vma && (vma->vm_start <= addr))) + return vma; + + /* + * Well, dang. We might still be successful, but only + * if we can extend a vma to do so. + */ + if (!vma || !(vma->vm_flags & VM_GROWSDOWN)) { + mmap_read_unlock(mm); + return NULL; + } + + /* + * We can try to upgrade the mmap lock atomically, + * in which case we can continue to use the vma + * we already looked up. + * + * Otherwise we'll have to drop the mmap lock and + * re-take it, and also look up the vma again, + * re-checking it. + */ + if (!mmap_upgrade_trylock(mm)) { + if (!upgrade_mmap_lock_carefully(mm, regs)) + return NULL; + + vma = find_vma(mm, addr); + if (!vma) + goto fail; + if (vma->vm_start <= addr) + goto success; + if (!(vma->vm_flags & VM_GROWSDOWN)) + goto fail; + } + + if (expand_stack_locked(vma, addr)) + goto fail; + +success: + mmap_write_downgrade(mm); + return vma; + +fail: + mmap_write_unlock(mm); + return NULL; +} +#endif + #ifdef CONFIG_PER_VMA_LOCK /* * Lookup and lock a VMA under RCU protection. Returned VMA is guaranteed to be @@ -5293,31 +5495,21 @@ retry: if (!vma) goto inval; - /* Only anonymous vmas are supported for now */ - if (!vma_is_anonymous(vma)) - goto inval; - - /* find_mergeable_anon_vma uses adjacent vmas which are not locked */ - if (!vma->anon_vma) - goto inval; - if (!vma_start_read(vma)) goto inval; /* - * Due to the possibility of userfault handler dropping mmap_lock, avoid - * it for now and fall back to page fault handling under mmap_lock. + * find_mergeable_anon_vma uses adjacent vmas which are not locked. + * This check must happen after vma_start_read(); otherwise, a + * concurrent mremap() with MREMAP_DONTUNMAP could dissociate the VMA + * from its anon_vma. */ - if (userfaultfd_armed(vma)) { - vma_end_read(vma); - goto inval; - } + if (unlikely(!vma->anon_vma)) + goto inval_end_read; /* Check since vm_start/vm_end might change before we lock the VMA */ - if (unlikely(address < vma->vm_start || address >= vma->vm_end)) { - vma_end_read(vma); - goto inval; - } + if (unlikely(address < vma->vm_start || address >= vma->vm_end)) + goto inval_end_read; /* Check if the VMA got isolated after we found it */ if (vma->detached) { @@ -5329,6 +5521,9 @@ retry: rcu_read_unlock(); return vma; + +inval_end_read: + vma_end_read(vma); inval: rcu_read_unlock(); count_vm_vma_lock_event(VMA_LOCK_ABORT); @@ -5607,6 +5802,14 @@ int __access_remote_vm(struct mm_struct *mm, unsigned long addr, void *buf, if (mmap_read_lock_killable(mm)) return 0; + /* We might need to expand the stack to access it */ + vma = vma_lookup(mm, addr); + if (!vma) { + vma = expand_stack(mm, addr); + if (!vma) + return 0; + } + /* ignore errors, just check how much was successfully transferred */ while (len) { int bytes, ret, offset; diff --git a/mm/mempolicy.c b/mm/mempolicy.c index f940395667c8..7deb394c669a 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -384,8 +384,10 @@ void mpol_rebind_mm(struct mm_struct *mm, nodemask_t *new) VMA_ITERATOR(vmi, mm, 0); mmap_write_lock(mm); - for_each_vma(vmi, vma) + for_each_vma(vmi, vma) { + vma_start_write(vma); mpol_rebind_policy(vma->vm_policy, new); + } mmap_write_unlock(mm); } @@ -707,6 +709,14 @@ static const struct mm_walk_ops queue_pages_walk_ops = { .hugetlb_entry = queue_pages_hugetlb, .pmd_entry = queue_pages_pte_range, .test_walk = queue_pages_test_walk, + .walk_lock = PGWALK_RDLOCK, +}; + +static const struct mm_walk_ops queue_pages_lock_vma_walk_ops = { + .hugetlb_entry = queue_pages_hugetlb, + .pmd_entry = queue_pages_pte_range, + .test_walk = queue_pages_test_walk, + .walk_lock = PGWALK_WRLOCK, }; /* @@ -727,7 +737,7 @@ static const struct mm_walk_ops queue_pages_walk_ops = { static int queue_pages_range(struct mm_struct *mm, unsigned long start, unsigned long end, nodemask_t *nodes, unsigned long flags, - struct list_head *pagelist) + struct list_head *pagelist, bool lock_vma) { int err; struct queue_pages qp = { @@ -738,8 +748,10 @@ queue_pages_range(struct mm_struct *mm, unsigned long start, unsigned long end, .end = end, .first = NULL, }; + const struct mm_walk_ops *ops = lock_vma ? + &queue_pages_lock_vma_walk_ops : &queue_pages_walk_ops; - err = walk_page_range(mm, start, end, &queue_pages_walk_ops, &qp); + err = walk_page_range(mm, start, end, ops, &qp); if (!qp.first) /* whole range in hole */ @@ -759,6 +771,8 @@ static int vma_replace_policy(struct vm_area_struct *vma, struct mempolicy *old; struct mempolicy *new; + vma_assert_write_locked(vma); + pr_debug("vma %lx-%lx/%lx vm_ops %p vm_file %p set_policy %p\n", vma->vm_start, vma->vm_end, vma->vm_pgoff, vma->vm_ops, vma->vm_file, @@ -1082,7 +1096,7 @@ static int migrate_to_node(struct mm_struct *mm, int source, int dest, vma = find_vma(mm, 0); VM_BUG_ON(!(flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL))); queue_pages_range(mm, vma->vm_start, mm->task_size, &nmask, - flags | MPOL_MF_DISCONTIG_OK, &pagelist); + flags | MPOL_MF_DISCONTIG_OK, &pagelist, false); if (!list_empty(&pagelist)) { err = migrate_pages(&pagelist, alloc_migration_target, NULL, @@ -1320,8 +1334,12 @@ static long do_mbind(unsigned long start, unsigned long len, if (err) goto mpol_out; + /* + * Lock the VMAs before scanning for pages to migrate, to ensure we don't + * miss a concurrently inserted page. + */ ret = queue_pages_range(mm, start, end, nmask, - flags | MPOL_MF_INVERT, &pagelist); + flags | MPOL_MF_INVERT, &pagelist, true); if (ret < 0) { err = ret; @@ -1546,6 +1564,7 @@ SYSCALL_DEFINE4(set_mempolicy_home_node, unsigned long, start, unsigned long, le break; } + vma_start_write(vma); new->home_node = home_node; err = mbind_range(mm, vmstart, vmend, new); mpol_put(new); diff --git a/mm/migrate.c b/mm/migrate.c index 5c61c3d5b646..ef490976c98e 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -56,6 +56,10 @@ #include <trace/events/migrate.h> +#undef CREATE_TRACE_POINTS +#include <trace/hooks/mm.h> +#include <trace/hooks/vmscan.h> + #include "internal.h" int isolate_movable_page(struct page *page, isolate_mode_t mode) @@ -554,6 +558,8 @@ void folio_migrate_flags(struct folio *newfolio, struct folio *folio) if (folio_test_mappedtodisk(folio)) folio_set_mappedtodisk(newfolio); + trace_android_vh_look_around_migrate_folio(folio, newfolio); + /* Move dirty on pages not done by folio_migrate_mapping() */ if (folio_test_dirty(folio)) folio_set_dirty(newfolio); diff --git a/mm/migrate_device.c b/mm/migrate_device.c index 721b2365dbca..4b1491d5710a 100644 --- a/mm/migrate_device.c +++ b/mm/migrate_device.c @@ -286,6 +286,7 @@ next: static const struct mm_walk_ops migrate_vma_walk_ops = { .pmd_entry = migrate_vma_collect_pmd, .pte_hole = migrate_vma_collect_hole, + .walk_lock = PGWALK_RDLOCK, }; /* diff --git a/mm/mincore.c b/mm/mincore.c index 1eb6aac88d84..dd8f8837f7d5 100644 --- a/mm/mincore.c +++ b/mm/mincore.c @@ -177,6 +177,7 @@ static const struct mm_walk_ops mincore_walk_ops = { .pmd_entry = mincore_pte_range, .pte_hole = mincore_unmapped_range, .hugetlb_entry = mincore_hugetlb, + .walk_lock = PGWALK_RDLOCK, }; /* diff --git a/mm/mlock.c b/mm/mlock.c index 9738d49bbc24..580f1d39f454 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -365,6 +365,7 @@ static void mlock_vma_pages_range(struct vm_area_struct *vma, { static const struct mm_walk_ops mlock_walk_ops = { .pmd_entry = mlock_pte_range, + .walk_lock = PGWALK_WRLOCK_VERIFY, }; /* @@ -380,6 +381,7 @@ static void mlock_vma_pages_range(struct vm_area_struct *vma, */ if (newflags & VM_LOCKED) newflags |= VM_IO; + vma_start_write(vma); vm_flags_reset_once(vma, newflags); lru_add_drain(); @@ -453,9 +455,9 @@ success: * It's okay if try_to_unmap_one unmaps a page just after we * set VM_LOCKED, populate_vma_page_range will bring it back. */ - if ((newflags & VM_LOCKED) && (oldflags & VM_LOCKED)) { /* No work to do, and mlocking twice would be wrong */ + vma_start_write(vma); vm_flags_reset(vma, newflags); } else { mlock_vma_pages_range(vma, start, end, newflags); diff --git a/mm/mmap.c b/mm/mmap.c index 36f129f23dfb..bd2140cfcf36 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -484,6 +484,8 @@ static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma) if (mas_preallocate(&mas, vma, GFP_KERNEL)) return -ENOMEM; + vma_start_write(vma); + if (vma->vm_file) { mapping = vma->vm_file->f_mapping; i_mmap_lock_write(mapping); @@ -529,6 +531,7 @@ inline int vma_expand(struct ma_state *mas, struct vm_area_struct *vma, struct file *file = vma->vm_file; bool remove_next = false; + vma_start_write(vma); if (next && (vma != next) && (end == next->vm_end)) { remove_next = true; /* Lock the VMA before removing it */ @@ -553,7 +556,6 @@ inline int vma_expand(struct ma_state *mas, struct vm_area_struct *vma, if (mas_preallocate(mas, vma, GFP_KERNEL)) goto nomem; - vma_start_write(vma); vma_adjust_trans_huge(vma, start, end, 0); if (file) { @@ -743,8 +745,10 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, if (adjust_next < 0) mas_set_range(&mas, next->vm_start + adjust_next, next->vm_end - 1); - else if (insert) + else if (insert) { + vma_start_write(insert); mas_set_range(&mas, insert->vm_start, insert->vm_end - 1); + } if (mas_preallocate(&mas, vma, GFP_KERNEL)) @@ -801,7 +805,8 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, } if (end != vma->vm_end) { if (vma->vm_end > end) { - if (adjust_next >= 0 && !insert) { + if ((vma->vm_end + adjust_next != end) && + (!insert || (insert->vm_start != end))) { vma_mas_szero(&mas, end, vma->vm_end); mas_reset(&mas); VM_WARN_ON(insert && @@ -841,6 +846,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, * (it may either follow vma or precede it). */ mas_reset(&mas); + vma_start_write(insert); vma_mas_store(insert, &mas); mm->map_count++; } @@ -1988,7 +1994,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, * PA-RISC uses this for its stack; IA64 for its Register Backing Store. * vma is the last one with address > vma->vm_end. Have to extend vma. */ -int expand_upwards(struct vm_area_struct *vma, unsigned long address) +static int expand_upwards(struct vm_area_struct *vma, unsigned long address) { struct mm_struct *mm = vma->vm_mm; struct vm_area_struct *next; @@ -2029,6 +2035,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) return -ENOMEM; } + /* Lock the VMA before expanding to prevent concurrent page faults */ + vma_start_write(vma); /* * vma->vm_start/vm_end cannot change under us because the caller * is required to hold the mmap_lock in read mode. We need the @@ -2080,6 +2088,7 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) /* * vma is the first one with address < vma->vm_start. Have to extend vma. + * mmap_lock held for writing. */ int expand_downwards(struct vm_area_struct *vma, unsigned long address) { @@ -2088,16 +2097,20 @@ int expand_downwards(struct vm_area_struct *vma, unsigned long address) struct vm_area_struct *prev; int error = 0; + if (!(vma->vm_flags & VM_GROWSDOWN)) + return -EFAULT; + address &= PAGE_MASK; - if (address < mmap_min_addr) + if (address < mmap_min_addr || address < FIRST_USER_ADDRESS) return -EPERM; /* Enforce stack_guard_gap */ prev = mas_prev(&mas, 0); /* Check that both stack segments have the same anon_vma? */ - if (prev && !(prev->vm_flags & VM_GROWSDOWN) && - vma_is_accessible(prev)) { - if (address - prev->vm_end < stack_guard_gap) + if (prev) { + if (!(prev->vm_flags & VM_GROWSDOWN) && + vma_is_accessible(prev) && + (address - prev->vm_end < stack_guard_gap)) return -ENOMEM; } @@ -2111,6 +2124,8 @@ int expand_downwards(struct vm_area_struct *vma, unsigned long address) return -ENOMEM; } + /* Lock the VMA before expanding to prevent concurrent page faults */ + vma_start_write(vma); /* * vma->vm_start/vm_end cannot change under us because the caller * is required to hold the mmap_lock in read mode. We need the @@ -2177,13 +2192,12 @@ static int __init cmdline_parse_stack_guard_gap(char *p) __setup("stack_guard_gap=", cmdline_parse_stack_guard_gap); #ifdef CONFIG_STACK_GROWSUP -int expand_stack(struct vm_area_struct *vma, unsigned long address) +int expand_stack_locked(struct vm_area_struct *vma, unsigned long address) { return expand_upwards(vma, address); } -struct vm_area_struct * -find_extend_vma(struct mm_struct *mm, unsigned long addr) +struct vm_area_struct *find_extend_vma_locked(struct mm_struct *mm, unsigned long addr) { struct vm_area_struct *vma, *prev; @@ -2191,20 +2205,23 @@ find_extend_vma(struct mm_struct *mm, unsigned long addr) vma = find_vma_prev(mm, addr, &prev); if (vma && (vma->vm_start <= addr)) return vma; - if (!prev || expand_stack(prev, addr)) + if (!prev) + return NULL; + if (expand_stack_locked(prev, addr)) return NULL; if (prev->vm_flags & VM_LOCKED) populate_vma_page_range(prev, addr, prev->vm_end, NULL); return prev; } #else -int expand_stack(struct vm_area_struct *vma, unsigned long address) +int expand_stack_locked(struct vm_area_struct *vma, unsigned long address) { + if (unlikely(!(vma->vm_flags & VM_GROWSDOWN))) + return -EINVAL; return expand_downwards(vma, address); } -struct vm_area_struct * -find_extend_vma(struct mm_struct *mm, unsigned long addr) +struct vm_area_struct *find_extend_vma_locked(struct mm_struct *mm, unsigned long addr) { struct vm_area_struct *vma; unsigned long start; @@ -2215,10 +2232,8 @@ find_extend_vma(struct mm_struct *mm, unsigned long addr) return NULL; if (vma->vm_start <= addr) return vma; - if (!(vma->vm_flags & VM_GROWSDOWN)) - return NULL; start = vma->vm_start; - if (expand_stack(vma, addr)) + if (expand_stack_locked(vma, addr)) return NULL; if (vma->vm_flags & VM_LOCKED) populate_vma_page_range(vma, addr, start, NULL); @@ -2226,9 +2241,107 @@ find_extend_vma(struct mm_struct *mm, unsigned long addr) } #endif +/* + * ANDROID: Reintroduce find_extend_vma() as it's still used by some external + * modules. It was removed in commit 8d7071af8907 ("mm: always expand the + * stack with the mmap write lock held") + * In the future, everyone should just move to use the correct function instead + * of this old, legacy one. + */ +struct vm_area_struct *find_extend_vma(struct mm_struct *mm, + unsigned long addr) +{ + return find_extend_vma_locked(mm, addr); +} EXPORT_SYMBOL_GPL(find_extend_vma); /* + * IA64 has some horrid mapping rules: it can expand both up and down, + * but with various special rules. + * + * We'll get rid of this architecture eventually, so the ugliness is + * temporary. + */ +#ifdef CONFIG_IA64 +static inline bool vma_expand_ok(struct vm_area_struct *vma, unsigned long addr) +{ + return REGION_NUMBER(addr) == REGION_NUMBER(vma->vm_start) && + REGION_OFFSET(addr) < RGN_MAP_LIMIT; +} + +/* + * IA64 stacks grow down, but there's a special register backing store + * that can grow up. Only sequentially, though, so the new address must + * match vm_end. + */ +static inline int vma_expand_up(struct vm_area_struct *vma, unsigned long addr) +{ + if (!vma_expand_ok(vma, addr)) + return -EFAULT; + if (vma->vm_end != (addr & PAGE_MASK)) + return -EFAULT; + return expand_upwards(vma, addr); +} + +static inline bool vma_expand_down(struct vm_area_struct *vma, unsigned long addr) +{ + if (!vma_expand_ok(vma, addr)) + return -EFAULT; + return expand_downwards(vma, addr); +} + +#elif defined(CONFIG_STACK_GROWSUP) + +#define vma_expand_up(vma,addr) expand_upwards(vma, addr) +#define vma_expand_down(vma, addr) (-EFAULT) + +#else + +#define vma_expand_up(vma,addr) (-EFAULT) +#define vma_expand_down(vma, addr) expand_downwards(vma, addr) + +#endif + +/* + * expand_stack(): legacy interface for page faulting. Don't use unless + * you have to. + * + * This is called with the mm locked for reading, drops the lock, takes + * the lock for writing, tries to look up a vma again, expands it if + * necessary, and downgrades the lock to reading again. + * + * If no vma is found or it can't be expanded, it returns NULL and has + * dropped the lock. + */ +struct vm_area_struct *expand_stack(struct mm_struct *mm, unsigned long addr) +{ + struct vm_area_struct *vma, *prev; + + mmap_read_unlock(mm); + if (mmap_write_lock_killable(mm)) + return NULL; + + vma = find_vma_prev(mm, addr, &prev); + if (vma && vma->vm_start <= addr) + goto success; + + if (prev && !vma_expand_up(prev, addr)) { + vma = prev; + goto success; + } + + if (vma && !vma_expand_down(vma, addr)) + goto success; + + mmap_write_unlock(mm); + return NULL; + +success: + mmap_write_downgrade(mm); + return vma; +} + +/* * Ok - we have the memory areas we should free on a maple tree so release them, * and do the vma updates. * @@ -2319,6 +2432,9 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma, if (new->vm_ops && new->vm_ops->open) new->vm_ops->open(new); + vma_start_write(vma); + vma_start_write(new); + if (new_below) err = vma_adjust(vma, addr, vma->vm_end, vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), new); @@ -2359,21 +2475,6 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma, return __split_vma(mm, vma, addr, new_below); } -static inline int munmap_sidetree(struct vm_area_struct *vma, int count, - struct ma_state *mas_detach) -{ - vma_start_write(vma); - mas_set(mas_detach, count); - if (mas_store_gfp(mas_detach, vma, GFP_KERNEL)) - return -ENOMEM; - - vma_mark_detached(vma, true); - if (vma->vm_flags & VM_LOCKED) - vma->vm_mm->locked_vm -= vma_pages(vma); - - return 0; -} - /* * do_mas_align_munmap() - munmap the aligned region from @start to @end. * @mas: The maple_state, ideally set up to alter the correct tree location. @@ -2395,6 +2496,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, struct maple_tree mt_detach; int count = 0; int error = -ENOMEM; + unsigned long locked_vm = 0; MA_STATE(mas_detach, &mt_detach, 0, 0); mt_init_flags(&mt_detach, mas->tree->ma_flags & MT_FLAGS_LOCK_MASK); mt_set_external_lock(&mt_detach, &mm->mmap_lock); @@ -2450,18 +2552,28 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, mas_set(mas, end); split = mas_prev(mas, 0); - error = munmap_sidetree(split, count, &mas_detach); + vma_start_write(split); + mas_set(&mas_detach, count); + error = mas_store_gfp(&mas_detach, split, GFP_KERNEL); if (error) - goto munmap_sidetree_failed; + goto munmap_gather_failed; + vma_mark_detached(split, true); + if (split->vm_flags & VM_LOCKED) + locked_vm += vma_pages(split); count++; if (vma == next) vma = split; break; } - error = munmap_sidetree(next, count, &mas_detach); + vma_start_write(next); + mas_set(&mas_detach, count); + error = mas_store_gfp(&mas_detach, next, GFP_KERNEL); if (error) - goto munmap_sidetree_failed; + goto munmap_gather_failed; + vma_mark_detached(next, true); + if (next->vm_flags & VM_LOCKED) + locked_vm += vma_pages(next); count++; if (unlikely(uf)) { @@ -2519,6 +2631,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, if (mas_store_gfp(mas, NULL, GFP_KERNEL)) return -ENOMEM; + mm->locked_vm -= locked_vm; mm->map_count -= count; /* * Do not downgrade mmap_lock if we are next to VM_GROWSDOWN or @@ -2550,7 +2663,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, return downgrade ? 1 : 0; userfaultfd_error: -munmap_sidetree_failed: +munmap_gather_failed: end_split_failed: __mt_destroy(&mt_detach); start_split_failed: @@ -2795,6 +2908,8 @@ cannot_expand: goto free_vma; } + /* Lock the VMA since it is modified after insertion into VMA tree */ + vma_start_write(vma); if (vma->vm_file) i_mmap_lock_write(vma->vm_file->f_mapping); @@ -3096,6 +3211,7 @@ static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, vma->vm_pgoff = addr >> PAGE_SHIFT; vm_flags_init(vma, flags); vma->vm_page_prot = vm_get_page_prot(flags); + vma_start_write(vma); mas_set_range(mas, vma->vm_start, addr + len - 1); if (mas_store_gfp(mas, vma, GFP_KERNEL)) goto mas_store_fail; @@ -3342,7 +3458,6 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, get_file(new_vma->vm_file); if (new_vma->vm_ops && new_vma->vm_ops->open) new_vma->vm_ops->open(new_vma); - vma_start_write(new_vma); if (vma_link(mm, new_vma)) goto out_vma_link; *need_rmap_locks = false; @@ -3660,6 +3775,12 @@ int mm_take_all_locks(struct mm_struct *mm) mutex_lock(&mm_all_locks_mutex); + /* + * vma_start_write() does not have a complement in mm_drop_all_locks() + * because vma_start_write() is always asymmetrical; it marks a VMA as + * being written to until mmap_write_unlock() or mmap_write_downgrade() + * is reached. + */ mas_for_each(&mas, vma, ULONG_MAX) { if (signal_pending(current)) goto out_unlock; @@ -3756,7 +3877,6 @@ void mm_drop_all_locks(struct mm_struct *mm) if (vma->vm_file && vma->vm_file->f_mapping) vm_unlock_mapping(vma->vm_file->f_mapping); } - vma_end_write_all(mm); mutex_unlock(&mm_all_locks_mutex); } diff --git a/mm/mprotect.c b/mm/mprotect.c index 1b9198d38cdf..45a87f0ce625 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -542,6 +542,7 @@ static const struct mm_walk_ops prot_none_walk_ops = { .pte_entry = prot_none_pte_entry, .hugetlb_entry = prot_none_hugetlb_entry, .test_walk = prot_none_test, + .walk_lock = PGWALK_WRLOCK, }; int @@ -630,6 +631,7 @@ success: * vm_flags and vm_page_prot are protected by the mmap_lock * held in write mode. */ + vma_start_write(vma); vm_flags_reset(vma, newflags); /* * We want to check manually if we can change individual PTEs writable diff --git a/mm/nommu.c b/mm/nommu.c index 14ffd4c668fe..30cc1228bd06 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -682,23 +682,20 @@ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr) EXPORT_SYMBOL(find_vma); /* - * find a VMA - * - we don't extend stack VMAs under NOMMU conditions - */ -struct vm_area_struct *find_extend_vma(struct mm_struct *mm, unsigned long addr) -{ - return find_vma(mm, addr); -} - -/* * expand a stack to a given address * - not supported under NOMMU conditions */ -int expand_stack(struct vm_area_struct *vma, unsigned long address) +int expand_stack_locked(struct vm_area_struct *vma, unsigned long addr) { return -ENOMEM; } +struct vm_area_struct *expand_stack(struct mm_struct *mm, unsigned long addr) +{ + mmap_read_unlock(mm); + return NULL; +} + /* * look up the first VMA exactly that exactly matches addr * - should be called with mm->mmap_lock at least held readlocked diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 1276e49b31b0..2c5b854f767b 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -746,6 +746,19 @@ static inline void queue_oom_reaper(struct task_struct *tsk) #endif /* CONFIG_MMU */ /** + * tsk->mm has to be non NULL and caller has to guarantee it is stable (either + * under task_lock or operate on the current). + */ +static void __mark_oom_victim(struct task_struct *tsk) +{ + struct mm_struct *mm = tsk->mm; + + if (!cmpxchg(&tsk->signal->oom_mm, NULL, mm)) { + mmgrab(tsk->signal->oom_mm); + } +} + +/** * mark_oom_victim - mark the given task as OOM victim * @tsk: task to mark * @@ -757,16 +770,13 @@ static inline void queue_oom_reaper(struct task_struct *tsk) */ static void mark_oom_victim(struct task_struct *tsk) { - struct mm_struct *mm = tsk->mm; - WARN_ON(oom_killer_disabled); /* OOM killer might race with memcg OOM */ if (test_and_set_tsk_thread_flag(tsk, TIF_MEMDIE)) return; /* oom_mm is bound to the signal struct life time. */ - if (!cmpxchg(&tsk->signal->oom_mm, NULL, mm)) - mmgrab(tsk->signal->oom_mm); + __mark_oom_victim(tsk); /* * Make sure that the task is woken up from uninterruptible sleep @@ -1260,3 +1270,16 @@ put_task: return -ENOSYS; #endif /* CONFIG_MMU */ } + +void add_to_oom_reaper(struct task_struct *p) +{ + p = find_lock_task_mm(p); + if (!p) + return; + + if (task_will_free_mem(p)) { + __mark_oom_victim(p); + queue_oom_reaper(p); + } + task_unlock(p); +} diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 856b0009b21f..501d69ac8b95 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -77,6 +77,7 @@ #include <linux/buffer_head.h> #include <linux/delayacct.h> #include <trace/hooks/mm.h> +#include <trace/hooks/vmscan.h> #include <asm/sections.h> #include <asm/tlbflush.h> @@ -1141,6 +1142,13 @@ static inline void __free_one_page(struct page *page, unsigned long combined_pfn; struct page *buddy; bool to_tail; + bool bypass = false; + + trace_android_vh_free_one_page_bypass(page, zone, order, + migratetype, (int)fpi_flags, &bypass); + + if (bypass) + return; VM_BUG_ON(!zone_is_initialized(zone)); VM_BUG_ON_PAGE(page->flags & PAGE_FLAGS_CHECK_AT_PREP, page); @@ -2593,6 +2601,7 @@ static void prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags set_page_pfmemalloc(page); else clear_page_pfmemalloc(page); + trace_android_vh_test_clear_look_around_ref(page); } /* @@ -3129,7 +3138,11 @@ static __always_inline struct page * __rmqueue(struct zone *zone, unsigned int order, int migratetype, unsigned int alloc_flags) { - struct page *page; + struct page *page = NULL; + + trace_android_vh_rmqueue_smallest_bypass(&page, zone, order, migratetype); + if (page) + return page; retry: page = __rmqueue_smallest(zone, order, migratetype); @@ -4490,6 +4503,7 @@ __alloc_pages_may_oom(gfp_t gfp_mask, unsigned int order, if (!mutex_trylock(&oom_lock)) { *did_some_progress = 1; schedule_timeout_uninterruptible(1); + trace_android_vh_mm_alloc_pages_may_oom_exit(&oc, *did_some_progress); return NULL; } @@ -4552,6 +4566,7 @@ __alloc_pages_may_oom(gfp_t gfp_mask, unsigned int order, } out: mutex_unlock(&oom_lock); + trace_android_vh_mm_alloc_pages_may_oom_exit(&oc, *did_some_progress); return page; } @@ -4855,10 +4870,12 @@ __alloc_pages_direct_reclaim(gfp_t gfp_mask, unsigned int order, unsigned int alloc_flags, const struct alloc_context *ac, unsigned long *did_some_progress) { + int retry_times = 0; struct page *page = NULL; unsigned long pflags; bool drained = false; + trace_android_vh_mm_alloc_pages_direct_reclaim_enter(order); psi_memstall_enter(&pflags); *did_some_progress = __perform_reclaim(gfp_mask, order, ac); if (unlikely(!(*did_some_progress))) @@ -4876,11 +4893,12 @@ retry: unreserve_highatomic_pageblock(ac, false); drain_all_pages(NULL); drained = true; + ++retry_times; goto retry; } out: psi_memstall_leave(&pflags); - + trace_android_vh_mm_alloc_pages_direct_reclaim_exit(*did_some_progress, retry_times); return page; } diff --git a/mm/page_owner.c b/mm/page_owner.c index ab06f4391954..95c436aec4c0 100644 --- a/mm/page_owner.c +++ b/mm/page_owner.c @@ -36,6 +36,7 @@ struct page_owner { static bool page_owner_enabled __initdata; DEFINE_STATIC_KEY_FALSE(page_owner_inited); +EXPORT_SYMBOL_GPL(page_owner_inited); static depot_stack_handle_t dummy_handle; static depot_stack_handle_t failure_handle; @@ -214,6 +215,7 @@ noinline void __set_page_owner(struct page *page, unsigned short order, __set_page_owner_handle(page_ext, handle, order, gfp_mask); page_ext_put(page_ext); } +EXPORT_SYMBOL_GPL(__set_page_owner); void __set_page_owner_migrate_reason(struct page *page, int reason) { diff --git a/mm/pagewalk.c b/mm/pagewalk.c index 2ff3a5bebceb..d92c5b567837 100644 --- a/mm/pagewalk.c +++ b/mm/pagewalk.c @@ -384,6 +384,33 @@ static int __walk_page_range(unsigned long start, unsigned long end, return err; } +static inline void process_mm_walk_lock(struct mm_struct *mm, + enum page_walk_lock walk_lock) +{ + if (walk_lock == PGWALK_RDLOCK) + mmap_assert_locked(mm); + else + mmap_assert_write_locked(mm); +} + +static inline void process_vma_walk_lock(struct vm_area_struct *vma, + enum page_walk_lock walk_lock) +{ +#ifdef CONFIG_PER_VMA_LOCK + switch (walk_lock) { + case PGWALK_WRLOCK: + vma_start_write(vma); + break; + case PGWALK_WRLOCK_VERIFY: + vma_assert_write_locked(vma); + break; + case PGWALK_RDLOCK: + /* PGWALK_RDLOCK is handled by process_mm_walk_lock */ + break; + } +#endif +} + /** * walk_page_range - walk page table with caller specific callbacks * @mm: mm_struct representing the target process of page table walk @@ -443,7 +470,7 @@ int walk_page_range(struct mm_struct *mm, unsigned long start, if (!walk.mm) return -EINVAL; - mmap_assert_locked(walk.mm); + process_mm_walk_lock(walk.mm, ops->walk_lock); vma = find_vma(walk.mm, start); do { @@ -458,6 +485,7 @@ int walk_page_range(struct mm_struct *mm, unsigned long start, if (ops->pte_hole) err = ops->pte_hole(start, next, -1, &walk); } else { /* inside vma */ + process_vma_walk_lock(vma, ops->walk_lock); walk.vma = vma; next = min(end, vma->vm_end); vma = find_vma(mm, vma->vm_end); @@ -531,7 +559,8 @@ int walk_page_vma(struct vm_area_struct *vma, const struct mm_walk_ops *ops, if (!walk.mm) return -EINVAL; - mmap_assert_locked(walk.mm); + process_mm_walk_lock(walk.mm, ops->walk_lock); + process_vma_walk_lock(vma, ops->walk_lock); err = walk_page_test(vma->vm_start, vma->vm_end, &walk); if (err > 0) diff --git a/mm/rmap.c b/mm/rmap.c index 9cf4f09cd71d..707de1aa3ceb 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -826,6 +826,7 @@ static bool folio_referenced_one(struct folio *folio, } if (pvmw.pte) { + trace_android_vh_look_around(&pvmw, folio, vma, &referenced); if (lru_gen_enabled() && pte_young(*pvmw.pte)) { lru_gen_look_around(&pvmw); referenced++; @@ -935,6 +936,7 @@ int folio_referenced(struct folio *folio, int is_locked, return rwc.contended ? -1 : pra.referenced; } +EXPORT_SYMBOL_GPL(folio_referenced); static int page_vma_mkclean_one(struct page_vma_mapped_walk *pvmw) { diff --git a/mm/shmem.c b/mm/shmem.c index f5232a35f04d..90ffdfd35bc6 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -805,14 +805,16 @@ unsigned long shmem_partial_swap_usage(struct address_space *mapping, XA_STATE(xas, &mapping->i_pages, start); struct page *page; unsigned long swapped = 0; + unsigned long max = end - 1; rcu_read_lock(); - xas_for_each(&xas, page, end - 1) { + xas_for_each(&xas, page, max) { if (xas_retry(&xas, page)) continue; if (xa_is_value(page)) swapped++; - + if (xas.xa_index == max) + break; if (need_resched()) { xas_pause(&xas); cond_resched_rcu(); diff --git a/mm/swap.h b/mm/swap.h index cc08c459c619..9ad061576192 100644 --- a/mm/swap.h +++ b/mm/swap.h @@ -46,7 +46,6 @@ struct page *find_get_incore_page(struct address_space *mapping, pgoff_t index); struct page *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask, struct vm_area_struct *vma, unsigned long addr, - bool do_poll, struct swap_iocb **plug); struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask, struct vm_area_struct *vma, diff --git a/mm/swap_state.c b/mm/swap_state.c index 438d0676c5be..3e7db8ea40f3 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c @@ -515,15 +515,14 @@ fail_unlock: */ struct page *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask, struct vm_area_struct *vma, - unsigned long addr, bool do_poll, - struct swap_iocb **plug) + unsigned long addr, struct swap_iocb **plug) { bool page_was_allocated; struct page *retpage = __read_swap_cache_async(entry, gfp_mask, vma, addr, &page_was_allocated); if (page_was_allocated) - swap_readpage(retpage, do_poll, plug); + swap_readpage(retpage, false, plug); return retpage; } @@ -618,7 +617,7 @@ struct page *swap_cluster_readahead(swp_entry_t entry, gfp_t gfp_mask, struct swap_info_struct *si = swp_swap_info(entry); struct blk_plug plug; struct swap_iocb *splug = NULL; - bool do_poll = true, page_allocated; + bool page_allocated; struct vm_area_struct *vma = vmf->vma; unsigned long addr = vmf->address; @@ -626,7 +625,6 @@ struct page *swap_cluster_readahead(swp_entry_t entry, gfp_t gfp_mask, if (!mask) goto skip; - do_poll = false; /* Read a page_cluster sized and aligned cluster around offset. */ start_offset = offset & ~mask; end_offset = offset | mask; @@ -658,7 +656,7 @@ struct page *swap_cluster_readahead(swp_entry_t entry, gfp_t gfp_mask, lru_add_drain(); /* Push any new pages onto the LRU now */ skip: /* The page was likely read above, so no need for plugging here */ - return read_swap_cache_async(entry, gfp_mask, vma, addr, do_poll, NULL); + return read_swap_cache_async(entry, gfp_mask, vma, addr, NULL); } int init_swap_address_space(unsigned int type, unsigned long nr_pages) @@ -832,7 +830,7 @@ static struct page *swap_vma_readahead(swp_entry_t fentry, gfp_t gfp_mask, skip: /* The page was likely read above, so no need for plugging here */ return read_swap_cache_async(fentry, gfp_mask, vma, vmf->address, - ra_info.win == 1, NULL); + NULL); } /** diff --git a/mm/vmscan.c b/mm/vmscan.c index cd4323f336a6..de0a079c029f 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1468,6 +1468,11 @@ static enum folio_references folio_check_references(struct folio *folio, { int referenced_ptes, referenced_folio; unsigned long vm_flags; + int ret = 0; + + trace_android_vh_check_folio_look_around_ref(folio, &ret); + if (ret) + return ret; referenced_ptes = folio_referenced(folio, 1, sc->target_mem_cgroup, &vm_flags); @@ -2176,6 +2181,25 @@ static __always_inline void update_lru_sizes(struct lruvec *lruvec, } +#ifdef CONFIG_CMA +/* + * It is waste of effort to scan and reclaim CMA pages if it is not available + * for current allocation context. Kswapd can not be enrolled as it can not + * distinguish this scenario by using sc->gfp_mask = GFP_KERNEL + */ +static bool skip_cma(struct folio *folio, struct scan_control *sc) +{ + return !current_is_kswapd() && + gfp_migratetype(sc->gfp_mask) != MIGRATE_MOVABLE && + get_pageblock_migratetype(&folio->page) == MIGRATE_CMA; +} +#else +static bool skip_cma(struct folio *folio, struct scan_control *sc) +{ + return false; +} +#endif + /* * Isolating page from the lruvec to fill in @dst list by nr_to_scan times. * @@ -2222,7 +2246,8 @@ static unsigned long isolate_lru_folios(unsigned long nr_to_scan, nr_pages = folio_nr_pages(folio); total_scan += nr_pages; - if (folio_zonenum(folio) > sc->reclaim_idx) { + if (folio_zonenum(folio) > sc->reclaim_idx || + skip_cma(folio, sc)) { nr_skipped[folio_zonenum(folio)] += nr_pages; move_to = &folios_skipped; goto move; @@ -2941,6 +2966,8 @@ static void get_scan_count(struct lruvec *lruvec, struct scan_control *sc, goto out; } + + trace_android_vh_tune_swappiness(&swappiness); /* * Global reclaim will swap to prevent OOM even with no * swappiness, but memcg users want to use this knob to @@ -3015,6 +3042,7 @@ static void get_scan_count(struct lruvec *lruvec, struct scan_control *sc, fraction[1] = fp; denominator = ap + fp; out: + trace_android_vh_tune_scan_type(&scan_balance); for_each_evictable_lru(lru) { int file = is_file_lru(lru); unsigned long lruvec_size; @@ -3193,6 +3221,7 @@ static struct lruvec *get_lruvec(struct mem_cgroup *memcg, int nid) static int get_swappiness(struct lruvec *lruvec, struct scan_control *sc) { + int swappiness; struct mem_cgroup *memcg = lruvec_memcg(lruvec); struct pglist_data *pgdat = lruvec_pgdat(lruvec); @@ -3203,7 +3232,10 @@ static int get_swappiness(struct lruvec *lruvec, struct scan_control *sc) mem_cgroup_get_nr_swap_pages(memcg) <= 0) return 0; - return mem_cgroup_swappiness(memcg); + swappiness = mem_cgroup_swappiness(memcg); + trace_android_vh_tune_swappiness(&swappiness); + + return swappiness; } static int get_nr_gens(struct lruvec *lruvec, int type) @@ -4188,6 +4220,7 @@ static void walk_mm(struct lruvec *lruvec, struct mm_struct *mm, struct lru_gen_ static const struct mm_walk_ops mm_walk_ops = { .test_walk = should_skip_vma, .p4d_entry = walk_pud_range, + .walk_lock = PGWALK_RDLOCK, }; int err; @@ -4343,7 +4376,7 @@ static void inc_max_seq(struct lruvec *lruvec, bool can_swap, bool force_scan) int prev, next; int type, zone; struct lru_gen_folio *lrugen = &lruvec->lrugen; - +restart: spin_lock_irq(&lruvec->lru_lock); VM_WARN_ON_ONCE(!seq_is_valid(lruvec)); @@ -4354,11 +4387,12 @@ static void inc_max_seq(struct lruvec *lruvec, bool can_swap, bool force_scan) VM_WARN_ON_ONCE(!force_scan && (type == LRU_GEN_FILE || can_swap)); - while (!inc_min_seq(lruvec, type, can_swap)) { - spin_unlock_irq(&lruvec->lru_lock); - cond_resched(); - spin_lock_irq(&lruvec->lru_lock); - } + if (inc_min_seq(lruvec, type, can_swap)) + continue; + + spin_unlock_irq(&lruvec->lru_lock); + cond_resched(); + goto restart; } /* @@ -4559,6 +4593,7 @@ void lru_gen_look_around(struct page_vma_mapped_walk *pvmw) pte_t *pte = pvmw->pte; unsigned long addr = pvmw->address; struct folio *folio = pfn_folio(pvmw->pfn); + bool can_swap = !folio_is_file_lru(folio); struct mem_cgroup *memcg = folio_memcg(folio); struct pglist_data *pgdat = folio_pgdat(folio); struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); @@ -4606,7 +4641,7 @@ void lru_gen_look_around(struct page_vma_mapped_walk *pvmw) if (!pte_young(pte[i])) continue; - folio = get_pfn_folio(pfn, memcg, pgdat, !walk || walk->can_swap); + folio = get_pfn_folio(pfn, memcg, pgdat, can_swap); if (!folio) continue; @@ -4789,7 +4824,8 @@ static int lru_gen_memcg_seg(struct lruvec *lruvec) * the eviction ******************************************************************************/ -static bool sort_folio(struct lruvec *lruvec, struct folio *folio, int tier_idx) +static bool sort_folio(struct lruvec *lruvec, struct folio *folio, struct scan_control *sc, + int tier_idx) { bool success; int gen = folio_lru_gen(folio); @@ -4839,6 +4875,13 @@ static bool sort_folio(struct lruvec *lruvec, struct folio *folio, int tier_idx) return true; } + /* ineligible */ + if (zone > sc->reclaim_idx || skip_cma(folio, sc)) { + gen = folio_inc_gen(lruvec, folio, false); + list_move_tail(&folio->lru, &lrugen->folios[gen][type][zone]); + return true; + } + /* waiting for writeback */ if (folio_test_locked(folio) || folio_test_writeback(folio) || (type == LRU_GEN_FILE && folio_test_dirty(folio))) { @@ -4887,7 +4930,8 @@ static bool isolate_folio(struct lruvec *lruvec, struct folio *folio, struct sca static int scan_folios(struct lruvec *lruvec, struct scan_control *sc, int type, int tier, struct list_head *list) { - int gen, zone; + int i; + int gen; enum vm_event_item item; int sorted = 0; int scanned = 0; @@ -4903,9 +4947,10 @@ static int scan_folios(struct lruvec *lruvec, struct scan_control *sc, gen = lru_gen_from_seq(lrugen->min_seq[type]); - for (zone = sc->reclaim_idx; zone >= 0; zone--) { + for (i = MAX_NR_ZONES; i > 0; i--) { LIST_HEAD(moved); int skipped = 0; + int zone = (sc->reclaim_idx + i) % MAX_NR_ZONES; struct list_head *head = &lrugen->folios[gen][type][zone]; while (!list_empty(head)) { @@ -4919,7 +4964,7 @@ static int scan_folios(struct lruvec *lruvec, struct scan_control *sc, scanned += delta; - if (sort_folio(lruvec, folio, tier)) + if (sort_folio(lruvec, folio, sc, tier)) sorted += delta; else if (isolate_folio(lruvec, folio, sc)) { list_add(&folio->lru, list); @@ -5236,11 +5281,51 @@ static unsigned long get_nr_to_reclaim(struct scan_control *sc) return max(sc->nr_to_reclaim, compact_gap(sc->order)); } +static bool should_abort_scan(struct lruvec *lruvec, struct scan_control *sc) +{ + unsigned long nr_to_reclaim = get_nr_to_reclaim(sc); + bool check_wmarks = false; + int i; + + if (sc->nr_reclaimed >= nr_to_reclaim) + return true; + + trace_android_vh_scan_abort_check_wmarks(&check_wmarks); + + if (!check_wmarks) + return false; + + if (!current_is_kswapd()) + return false; + + for (i = 0; i <= sc->reclaim_idx; i++) { + unsigned long wmark; + struct zone *zone = lruvec_pgdat(lruvec)->node_zones + i; + + if (!managed_zone(zone)) + continue; + + if (sysctl_numa_balancing_mode & NUMA_BALANCING_MEMORY_TIERING) + wmark = wmark_pages(zone, WMARK_PROMO); + else + wmark = high_wmark_pages(zone); + + /* + * Abort scan once the target number of order zero pages are met. + * Reclaim MIN_LRU_BATCH << 2 to facilitate immediate kswapd sleep. + */ + wmark += MIN_LRU_BATCH << 2; + if (!zone_watermark_ok_safe(zone, 0, wmark, sc->reclaim_idx)) + return false; + } + + return true; +} + static bool try_to_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) { long nr_to_scan; unsigned long scanned = 0; - unsigned long nr_to_reclaim = get_nr_to_reclaim(sc); int swappiness = get_swappiness(lruvec, sc); /* clean file folios are more likely to exist */ @@ -5262,7 +5347,7 @@ static bool try_to_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) if (scanned >= nr_to_scan) break; - if (sc->nr_reclaimed >= nr_to_reclaim) + if (should_abort_scan(lruvec, sc)) break; cond_resched(); @@ -5321,10 +5406,9 @@ static void shrink_many(struct pglist_data *pgdat, struct scan_control *sc) int bin; int first_bin; struct lruvec *lruvec; - struct lru_gen_folio *lrugen; + struct lru_gen_folio *lrugen = NULL; struct mem_cgroup *memcg; const struct hlist_nulls_node *pos; - unsigned long nr_to_reclaim = get_nr_to_reclaim(sc); bin = first_bin = get_random_u32_below(MEMCG_NR_BINS); restart: @@ -5355,7 +5439,7 @@ restart: rcu_read_lock(); - if (sc->nr_reclaimed >= nr_to_reclaim) + if (should_abort_scan(lruvec, sc)) break; } @@ -5366,7 +5450,7 @@ restart: mem_cgroup_put(memcg); - if (sc->nr_reclaimed >= nr_to_reclaim) + if (lruvec && should_abort_scan(lruvec, sc)) return; /* restart if raced with lru_gen_rotate_memcg() */ @@ -7704,6 +7788,8 @@ kswapd_try_sleep: alloc_order); reclaim_order = balance_pgdat(pgdat, alloc_order, highest_zoneidx); + trace_android_vh_vmscan_kswapd_done(pgdat->node_id, highest_zoneidx, + alloc_order, reclaim_order); if (reclaim_order < alloc_order) goto kswapd_try_sleep; } diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 649376f17bd9..02e784182c20 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -33,8 +33,7 @@ /* * lock ordering: * page_lock - * pool->migrate_lock - * class->lock + * pool->lock * zspage->lock */ @@ -192,7 +191,6 @@ static const int fullness_threshold_frac = 4; static size_t huge_class_size; struct size_class { - spinlock_t lock; struct list_head fullness_list[NR_ZS_FULLNESS]; /* * Size of objects stored in this class. Must be multiple @@ -247,8 +245,8 @@ struct zs_pool { #ifdef CONFIG_COMPACTION struct work_struct free_work; #endif - /* protect page/zspage migration */ - rwlock_t migrate_lock; + spinlock_t lock; + atomic_t compaction_in_progress; }; struct zspage { @@ -355,7 +353,7 @@ static void cache_free_zspage(struct zs_pool *pool, struct zspage *zspage) kmem_cache_free(pool->zspage_cachep, zspage); } -/* class->lock(which owns the handle) synchronizes races */ +/* pool->lock(which owns the handle) synchronizes races */ static void record_obj(unsigned long handle, unsigned long obj) { *(unsigned long *)handle = obj; @@ -452,7 +450,7 @@ static __maybe_unused int is_first_page(struct page *page) return PagePrivate(page); } -/* Protected by class->lock */ +/* Protected by pool->lock */ static inline int get_zspage_inuse(struct zspage *zspage) { return zspage->inuse; @@ -597,13 +595,13 @@ static int zs_stats_size_show(struct seq_file *s, void *v) if (class->index != i) continue; - spin_lock(&class->lock); + spin_lock(&pool->lock); class_almost_full = zs_stat_get(class, CLASS_ALMOST_FULL); class_almost_empty = zs_stat_get(class, CLASS_ALMOST_EMPTY); obj_allocated = zs_stat_get(class, OBJ_ALLOCATED); obj_used = zs_stat_get(class, OBJ_USED); freeable = zs_can_compact(class); - spin_unlock(&class->lock); + spin_unlock(&pool->lock); objs_per_zspage = class->objs_per_zspage; pages_used = obj_allocated / objs_per_zspage * @@ -916,7 +914,7 @@ static void __free_zspage(struct zs_pool *pool, struct size_class *class, get_zspage_mapping(zspage, &class_idx, &fg); - assert_spin_locked(&class->lock); + assert_spin_locked(&pool->lock); VM_BUG_ON(get_zspage_inuse(zspage)); VM_BUG_ON(fg != ZS_EMPTY); @@ -1247,19 +1245,19 @@ void *zs_map_object(struct zs_pool *pool, unsigned long handle, BUG_ON(in_interrupt()); /* It guarantees it can get zspage from handle safely */ - read_lock(&pool->migrate_lock); + spin_lock(&pool->lock); obj = handle_to_obj(handle); obj_to_location(obj, &page, &obj_idx); zspage = get_zspage(page); /* - * migration cannot move any zpages in this zspage. Here, class->lock + * migration cannot move any zpages in this zspage. Here, pool->lock * is too heavy since callers would take some time until they calls * zs_unmap_object API so delegate the locking from class to zspage * which is smaller granularity. */ migrate_read_lock(zspage); - read_unlock(&pool->migrate_lock); + spin_unlock(&pool->lock); class = zspage_class(pool, zspage); off = (class->size * obj_idx) & ~PAGE_MASK; @@ -1412,8 +1410,8 @@ unsigned long zs_malloc(struct zs_pool *pool, size_t size, gfp_t gfp) size += ZS_HANDLE_SIZE; class = pool->size_class[get_size_class_index(size)]; - /* class->lock effectively protects the zpage migration */ - spin_lock(&class->lock); + /* pool->lock effectively protects the zpage migration */ + spin_lock(&pool->lock); zspage = find_get_zspage(class); if (likely(zspage)) { obj = obj_malloc(pool, zspage, handle); @@ -1421,12 +1419,12 @@ unsigned long zs_malloc(struct zs_pool *pool, size_t size, gfp_t gfp) fix_fullness_group(class, zspage); record_obj(handle, obj); class_stat_inc(class, OBJ_USED, 1); - spin_unlock(&class->lock); + spin_unlock(&pool->lock); return handle; } - spin_unlock(&class->lock); + spin_unlock(&pool->lock); zspage = alloc_zspage(pool, class, gfp); if (!zspage) { @@ -1434,7 +1432,7 @@ unsigned long zs_malloc(struct zs_pool *pool, size_t size, gfp_t gfp) return (unsigned long)ERR_PTR(-ENOMEM); } - spin_lock(&class->lock); + spin_lock(&pool->lock); obj = obj_malloc(pool, zspage, handle); newfg = get_fullness_group(class, zspage); insert_zspage(class, zspage, newfg); @@ -1447,7 +1445,7 @@ unsigned long zs_malloc(struct zs_pool *pool, size_t size, gfp_t gfp) /* We completely set up zspage so mark them as movable */ SetZsPageMovable(pool, zspage); - spin_unlock(&class->lock); + spin_unlock(&pool->lock); return handle; } @@ -1491,16 +1489,14 @@ void zs_free(struct zs_pool *pool, unsigned long handle) return; /* - * The pool->migrate_lock protects the race with zpage's migration + * The pool->lock protects the race with zpage's migration * so it's safe to get the page from handle. */ - read_lock(&pool->migrate_lock); + spin_lock(&pool->lock); obj = handle_to_obj(handle); obj_to_page(obj, &f_page); zspage = get_zspage(f_page); class = zspage_class(pool, zspage); - spin_lock(&class->lock); - read_unlock(&pool->migrate_lock); obj_free(class->size, obj); class_stat_dec(class, OBJ_USED, 1); @@ -1510,7 +1506,7 @@ void zs_free(struct zs_pool *pool, unsigned long handle) free_zspage(pool, class, zspage); out: - spin_unlock(&class->lock); + spin_unlock(&pool->lock); cache_free_handle(pool, handle); } EXPORT_SYMBOL_GPL(zs_free); @@ -1821,6 +1817,7 @@ static void replace_sub_page(struct size_class *class, struct zspage *zspage, static bool zs_page_isolate(struct page *page, isolate_mode_t mode) { + struct zs_pool *pool; struct zspage *zspage; /* @@ -1831,9 +1828,10 @@ static bool zs_page_isolate(struct page *page, isolate_mode_t mode) VM_BUG_ON_PAGE(PageIsolated(page), page); zspage = get_zspage(page); - migrate_write_lock(zspage); + pool = zspage->pool; + spin_lock(&pool->lock); inc_zspage_isolation(zspage); - migrate_write_unlock(zspage); + spin_unlock(&pool->lock); return true; } @@ -1867,16 +1865,12 @@ static int zs_page_migrate(struct page *newpage, struct page *page, pool = zspage->pool; /* - * The pool migrate_lock protects the race between zpage migration + * The pool's lock protects the race between zpage migration * and zs_free. */ - write_lock(&pool->migrate_lock); + spin_lock(&pool->lock); class = zspage_class(pool, zspage); - /* - * the class lock protects zpage alloc/free in the zspage. - */ - spin_lock(&class->lock); /* the migrate_write_lock protects zpage access via zs_map_object */ migrate_write_lock(zspage); @@ -1904,13 +1898,12 @@ static int zs_page_migrate(struct page *newpage, struct page *page, kunmap_atomic(s_addr); replace_sub_page(class, zspage, newpage, page); + dec_zspage_isolation(zspage); /* * Since we complete the data copy and set up new zspage structure, - * it's okay to release migration_lock. + * it's okay to release the pool's lock. */ - write_unlock(&pool->migrate_lock); - spin_unlock(&class->lock); - dec_zspage_isolation(zspage); + spin_unlock(&pool->lock); migrate_write_unlock(zspage); get_page(newpage); @@ -1928,14 +1921,16 @@ static int zs_page_migrate(struct page *newpage, struct page *page, static void zs_page_putback(struct page *page) { struct zspage *zspage; + struct zs_pool *pool; VM_BUG_ON_PAGE(!PageMovable(page), page); VM_BUG_ON_PAGE(!PageIsolated(page), page); zspage = get_zspage(page); - migrate_write_lock(zspage); + pool = zspage->pool; + spin_lock(&pool->lock); dec_zspage_isolation(zspage); - migrate_write_unlock(zspage); + spin_unlock(&pool->lock); } static const struct movable_operations zsmalloc_mops = { @@ -1964,9 +1959,9 @@ static void async_free_zspage(struct work_struct *work) if (class->index != i) continue; - spin_lock(&class->lock); + spin_lock(&pool->lock); list_splice_init(&class->fullness_list[ZS_EMPTY], &free_pages); - spin_unlock(&class->lock); + spin_unlock(&pool->lock); } list_for_each_entry_safe(zspage, tmp, &free_pages, list) { @@ -1976,9 +1971,9 @@ static void async_free_zspage(struct work_struct *work) get_zspage_mapping(zspage, &class_idx, &fullness); VM_BUG_ON(fullness != ZS_EMPTY); class = pool->size_class[class_idx]; - spin_lock(&class->lock); + spin_lock(&pool->lock); __free_zspage(pool, class, zspage); - spin_unlock(&class->lock); + spin_unlock(&pool->lock); } }; @@ -2039,10 +2034,11 @@ static unsigned long __zs_compact(struct zs_pool *pool, struct zspage *dst_zspage = NULL; unsigned long pages_freed = 0; - /* protect the race between zpage migration and zs_free */ - write_lock(&pool->migrate_lock); - /* protect zpage allocation/free */ - spin_lock(&class->lock); + /* + * protect the race between zpage migration and zs_free + * as well as zpage allocation/free + */ + spin_lock(&pool->lock); while ((src_zspage = isolate_zspage(class, true))) { /* protect someone accessing the zspage(i.e., zs_map_object) */ migrate_write_lock(src_zspage); @@ -2067,7 +2063,7 @@ static unsigned long __zs_compact(struct zs_pool *pool, putback_zspage(class, dst_zspage); migrate_write_unlock(dst_zspage); dst_zspage = NULL; - if (rwlock_is_contended(&pool->migrate_lock)) + if (spin_is_contended(&pool->lock)) break; } @@ -2084,11 +2080,9 @@ static unsigned long __zs_compact(struct zs_pool *pool, pages_freed += class->pages_per_zspage; } else migrate_write_unlock(src_zspage); - spin_unlock(&class->lock); - write_unlock(&pool->migrate_lock); + spin_unlock(&pool->lock); cond_resched(); - write_lock(&pool->migrate_lock); - spin_lock(&class->lock); + spin_lock(&pool->lock); } if (src_zspage) { @@ -2096,8 +2090,7 @@ static unsigned long __zs_compact(struct zs_pool *pool, migrate_write_unlock(src_zspage); } - spin_unlock(&class->lock); - write_unlock(&pool->migrate_lock); + spin_unlock(&pool->lock); return pages_freed; } @@ -2108,6 +2101,15 @@ unsigned long zs_compact(struct zs_pool *pool) struct size_class *class; unsigned long pages_freed = 0; + /* + * Pool compaction is performed under pool->lock so it is basically + * single-threaded. Having more than one thread in __zs_compact() + * will increase pool->lock contention, which will impact other + * zsmalloc operations that need pool->lock. + */ + if (atomic_xchg(&pool->compaction_in_progress, 1)) + return 0; + for (i = ZS_SIZE_CLASSES - 1; i >= 0; i--) { class = pool->size_class[i]; if (class->index != i) @@ -2115,6 +2117,7 @@ unsigned long zs_compact(struct zs_pool *pool) pages_freed += __zs_compact(pool, class); } atomic_long_add(pages_freed, &pool->stats.pages_compacted); + atomic_set(&pool->compaction_in_progress, 0); return pages_freed; } @@ -2200,7 +2203,8 @@ struct zs_pool *zs_create_pool(const char *name) return NULL; init_deferred_free(pool); - rwlock_init(&pool->migrate_lock); + spin_lock_init(&pool->lock); + atomic_set(&pool->compaction_in_progress, 0); pool->name = kstrdup(name, GFP_KERNEL); if (!pool->name) @@ -2271,7 +2275,6 @@ struct zs_pool *zs_create_pool(const char *name) class->index = i; class->pages_per_zspage = pages_per_zspage; class->objs_per_zspage = objs_per_zspage; - spin_lock_init(&class->lock); pool->size_class[i] = class; for (fullness = ZS_EMPTY; fullness < NR_ZS_FULLNESS; fullness++) diff --git a/modules.bzl b/modules.bzl index 5d3d31af91f7..52d92225aab4 100644 --- a/modules.bzl +++ b/modules.bzl @@ -6,7 +6,7 @@ This module contains a full list of kernel modules compiled by GKI. """ -COMMON_GKI_MODULES_LIST = [ +_COMMON_GKI_MODULES_LIST = [ # keep sorted "drivers/block/zram/zram.ko", "drivers/bluetooth/btbcm.ko", @@ -34,6 +34,7 @@ COMMON_GKI_MODULES_LIST = [ "drivers/net/usb/r8153_ecm.ko", "drivers/net/usb/rtl8150.ko", "drivers/net/usb/usbnet.ko", + "drivers/net/wwan/wwan.ko", "drivers/usb/class/cdc-acm.ko", "drivers/usb/serial/ftdi_sio.ko", "drivers/usb/serial/usbserial.ko", @@ -67,3 +68,56 @@ COMMON_GKI_MODULES_LIST = [ "net/tipc/diag.ko", "net/tipc/tipc.ko", ] + +# Deprecated - Use `get_gki_modules_list` function instead. +COMMON_GKI_MODULES_LIST = _COMMON_GKI_MODULES_LIST + +_ARM_GKI_MODULES_LIST = [ + # keep sorted +] + +_ARM64_GKI_MODULES_LIST = [ + # keep sorted + "arch/arm64/geniezone/gzvm.ko", +] + +_RISCV64_GKI_MODULES_LIST = [ + # keep sorted +] + +_X86_GKI_MODULES_LIST = [ + # keep sorted +] + +_X86_64_GKI_MODULES_LIST = [ + # keep sorted +] + +# buildifier: disable=unnamed-macro +def get_gki_modules_list(arch = None): + """ Provides the list of GKI modules. + + Args: + arch: One of [arm, arm64, i386, x86_64, riscv64]. + + Returns: + The list of GKI modules for the given |arch|. + """ + gki_modules_list = [] + _COMMON_GKI_MODULES_LIST + if arch == "arm": + gki_modules_list += _ARM_GKI_MODULES_LIST + elif arch == "arm64": + gki_modules_list += _ARM64_GKI_MODULES_LIST + elif arch == "i386": + gki_modules_list += _X86_GKI_MODULES_LIST + elif arch == "x86_64": + gki_modules_list += _X86_64_GKI_MODULES_LIST + elif arch == "riscv64": + gki_modules_list += _RISCV64_GKI_MODULES_LIST + else: + fail("{}: arch {} not supported. Use one of [arm, arm64, i386, x86_64, riscv64]".format( + str(native.package_relative_label(":x")).removesuffix(":x"), + arch, + )) + + return gki_modules_list diff --git a/net/OWNERS b/net/OWNERS deleted file mode 100644 index cbbfa70f7d89..000000000000 --- a/net/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -lorenzo@google.com -maze@google.com diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index 334e308451f5..ac36e7ae70b2 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -2685,7 +2685,9 @@ void hci_unregister_dev(struct hci_dev *hdev) { BT_DBG("%p name %s bus %d", hdev, hdev->name, hdev->bus); + mutex_lock(&hdev->unregister_lock); hci_dev_set_flag(hdev, HCI_UNREGISTER); + mutex_unlock(&hdev->unregister_lock); write_lock(&hci_dev_list_lock); list_del(&hdev->list); diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c index 06581223238c..f597fe0db9f8 100644 --- a/net/bluetooth/hci_sock.c +++ b/net/bluetooth/hci_sock.c @@ -1003,7 +1003,14 @@ static int hci_sock_ioctl(struct socket *sock, unsigned int cmd, if (hci_sock_gen_cookie(sk)) { struct sk_buff *skb; - if (capable(CAP_NET_ADMIN)) + /* Perform careful checks before setting the HCI_SOCK_TRUSTED + * flag. Make sure that not only the current task but also + * the socket opener has the required capability, since + * privileged programs can be tricked into making ioctl calls + * on HCI sockets, and the socket should not be marked as + * trusted simply because the ioctl caller is privileged. + */ + if (sk_capable(sk, CAP_NET_ADMIN)) hci_sock_set_flag(sk, HCI_SOCK_TRUSTED); /* Send event to monitor */ diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c index 9361fb3685cc..5ae27c6f87ee 100644 --- a/net/bluetooth/hci_sync.c +++ b/net/bluetooth/hci_sync.c @@ -629,6 +629,7 @@ void hci_cmd_sync_init(struct hci_dev *hdev) INIT_WORK(&hdev->cmd_sync_work, hci_cmd_sync_work); INIT_LIST_HEAD(&hdev->cmd_sync_work_list); mutex_init(&hdev->cmd_sync_work_lock); + mutex_init(&hdev->unregister_lock); INIT_WORK(&hdev->cmd_sync_cancel_work, hci_cmd_sync_cancel_work); INIT_WORK(&hdev->reenable_adv_work, reenable_adv); @@ -688,14 +689,19 @@ int hci_cmd_sync_queue(struct hci_dev *hdev, hci_cmd_sync_work_func_t func, void *data, hci_cmd_sync_work_destroy_t destroy) { struct hci_cmd_sync_work_entry *entry; + int err = 0; - if (hci_dev_test_flag(hdev, HCI_UNREGISTER)) - return -ENODEV; + mutex_lock(&hdev->unregister_lock); + if (hci_dev_test_flag(hdev, HCI_UNREGISTER)) { + err = -ENODEV; + goto unlock; + } entry = kmalloc(sizeof(*entry), GFP_KERNEL); - if (!entry) - return -ENOMEM; - + if (!entry) { + err = -ENOMEM; + goto unlock; + } entry->func = func; entry->data = data; entry->destroy = destroy; @@ -706,7 +712,9 @@ int hci_cmd_sync_queue(struct hci_dev *hdev, hci_cmd_sync_work_func_t func, queue_work(hdev->req_workqueue, &hdev->cmd_sync_work); - return 0; +unlock: + mutex_unlock(&hdev->unregister_lock); + return err; } EXPORT_SYMBOL(hci_cmd_sync_queue); @@ -4483,6 +4491,9 @@ static int hci_init_sync(struct hci_dev *hdev) !hci_dev_test_flag(hdev, HCI_CONFIG)) return 0; + if (hci_dev_test_and_set_flag(hdev, HCI_DEBUGFS_CREATED)) + return 0; + hci_debugfs_create_common(hdev); if (lmp_bredr_capable(hdev)) diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c index eebe256104bc..947ca580bb9a 100644 --- a/net/bluetooth/l2cap_sock.c +++ b/net/bluetooth/l2cap_sock.c @@ -46,6 +46,7 @@ static const struct proto_ops l2cap_sock_ops; static void l2cap_sock_init(struct sock *sk, struct sock *parent); static struct sock *l2cap_sock_alloc(struct net *net, struct socket *sock, int proto, gfp_t prio, int kern); +static void l2cap_sock_cleanup_listen(struct sock *parent); bool l2cap_is_socket(struct socket *sock) { @@ -1415,6 +1416,7 @@ static int l2cap_sock_release(struct socket *sock) if (!sk) return 0; + l2cap_sock_cleanup_listen(sk); bt_sock_unlink(&l2cap_sk_list, sk); err = l2cap_sock_shutdown(sock, SHUT_RDWR); diff --git a/net/can/isotp.c b/net/can/isotp.c index 5761d4ab839d..82280ac70df9 100644 --- a/net/can/isotp.c +++ b/net/can/isotp.c @@ -1079,8 +1079,9 @@ wait_free_buffer: if (err) goto err_event_drop; - if (sk->sk_err) - return -sk->sk_err; + err = sock_error(sk); + if (err) + return err; } return size; diff --git a/net/core/net-traces.c b/net/core/net-traces.c index 82a8a5c05639..ed7d56d17665 100644 --- a/net/core/net-traces.c +++ b/net/core/net-traces.c @@ -60,3 +60,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(napi_poll); EXPORT_TRACEPOINT_SYMBOL_GPL(tcp_send_reset); EXPORT_TRACEPOINT_SYMBOL_GPL(tcp_bad_csum); + +EXPORT_TRACEPOINT_SYMBOL_GPL(net_dev_queue); +EXPORT_TRACEPOINT_SYMBOL_GPL(net_dev_xmit); +EXPORT_TRACEPOINT_SYMBOL_GPL(netif_receive_skb); +EXPORT_TRACEPOINT_SYMBOL_GPL(netif_rx); + diff --git a/net/core/skbuff.c b/net/core/skbuff.c index cd4b3a610961..732ea19927a4 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -4032,6 +4032,11 @@ struct sk_buff *skb_segment_list(struct sk_buff *skb, skb_push(skb, -skb_network_offset(skb) + offset); + /* Ensure the head is writeable before touching the shared info */ + err = skb_unclone(skb, GFP_ATOMIC); + if (err) + goto err_linearize; + skb_shinfo(skb)->frag_list = NULL; while (list_skb) { diff --git a/net/core/skmsg.c b/net/core/skmsg.c index 53d0251788aa..65fb6f5b21b2 100644 --- a/net/core/skmsg.c +++ b/net/core/skmsg.c @@ -480,8 +480,6 @@ int sk_msg_recvmsg(struct sock *sk, struct sk_psock *psock, struct msghdr *msg, msg_rx = sk_psock_peek_msg(psock); } out: - if (psock->work_state.skb && copied > 0) - schedule_work(&psock->work); return copied; } EXPORT_SYMBOL_GPL(sk_msg_recvmsg); @@ -623,42 +621,33 @@ static int sk_psock_handle_skb(struct sk_psock *psock, struct sk_buff *skb, static void sk_psock_skb_state(struct sk_psock *psock, struct sk_psock_work_state *state, - struct sk_buff *skb, int len, int off) { spin_lock_bh(&psock->ingress_lock); if (sk_psock_test_state(psock, SK_PSOCK_TX_ENABLED)) { - state->skb = skb; state->len = len; state->off = off; - } else { - sock_drop(psock->sk, skb); } spin_unlock_bh(&psock->ingress_lock); } static void sk_psock_backlog(struct work_struct *work) { - struct sk_psock *psock = container_of(work, struct sk_psock, work); + struct delayed_work *dwork = to_delayed_work(work); + struct sk_psock *psock = container_of(dwork, struct sk_psock, work); struct sk_psock_work_state *state = &psock->work_state; struct sk_buff *skb = NULL; + u32 len = 0, off = 0; bool ingress; - u32 len, off; int ret; mutex_lock(&psock->work_mutex); - if (unlikely(state->skb)) { - spin_lock_bh(&psock->ingress_lock); - skb = state->skb; + if (unlikely(state->len)) { len = state->len; off = state->off; - state->skb = NULL; - spin_unlock_bh(&psock->ingress_lock); } - if (skb) - goto start; - while ((skb = skb_dequeue(&psock->ingress_skb))) { + while ((skb = skb_peek(&psock->ingress_skb))) { len = skb->len; off = 0; if (skb_bpf_strparser(skb)) { @@ -667,7 +656,6 @@ static void sk_psock_backlog(struct work_struct *work) off = stm->offset; len = stm->full_len; } -start: ingress = skb_bpf_ingress(skb); skb_bpf_redirect_clear(skb); do { @@ -677,22 +665,28 @@ start: len, ingress); if (ret <= 0) { if (ret == -EAGAIN) { - sk_psock_skb_state(psock, state, skb, - len, off); + sk_psock_skb_state(psock, state, len, off); + + /* Delay slightly to prioritize any + * other work that might be here. + */ + if (sk_psock_test_state(psock, SK_PSOCK_TX_ENABLED)) + schedule_delayed_work(&psock->work, 1); goto end; } /* Hard errors break pipe and stop xmit. */ sk_psock_report_error(psock, ret ? -ret : EPIPE); sk_psock_clear_state(psock, SK_PSOCK_TX_ENABLED); - sock_drop(psock->sk, skb); goto end; } off += ret; len -= ret; } while (len); - if (!ingress) + skb = skb_dequeue(&psock->ingress_skb); + if (!ingress) { kfree_skb(skb); + } } end: mutex_unlock(&psock->work_mutex); @@ -733,7 +727,7 @@ struct sk_psock *sk_psock_init(struct sock *sk, int node) INIT_LIST_HEAD(&psock->link); spin_lock_init(&psock->link_lock); - INIT_WORK(&psock->work, sk_psock_backlog); + INIT_DELAYED_WORK(&psock->work, sk_psock_backlog); mutex_init(&psock->work_mutex); INIT_LIST_HEAD(&psock->ingress_msg); spin_lock_init(&psock->ingress_lock); @@ -785,11 +779,6 @@ static void __sk_psock_zap_ingress(struct sk_psock *psock) skb_bpf_redirect_clear(skb); sock_drop(psock->sk, skb); } - kfree_skb(psock->work_state.skb); - /* We null the skb here to ensure that calls to sk_psock_backlog - * do not pick up the free'd skb. - */ - psock->work_state.skb = NULL; __sk_psock_purge_ingress_msg(psock); } @@ -808,7 +797,6 @@ void sk_psock_stop(struct sk_psock *psock) spin_lock_bh(&psock->ingress_lock); sk_psock_clear_state(psock, SK_PSOCK_TX_ENABLED); sk_psock_cork_free(psock); - __sk_psock_zap_ingress(psock); spin_unlock_bh(&psock->ingress_lock); } @@ -822,7 +810,8 @@ static void sk_psock_destroy(struct work_struct *work) sk_psock_done_strp(psock); - cancel_work_sync(&psock->work); + cancel_delayed_work_sync(&psock->work); + __sk_psock_zap_ingress(psock); mutex_destroy(&psock->work_mutex); psock_progs_drop(&psock->progs); @@ -937,7 +926,7 @@ static int sk_psock_skb_redirect(struct sk_psock *from, struct sk_buff *skb) } skb_queue_tail(&psock_other->ingress_skb, skb); - schedule_work(&psock_other->work); + schedule_delayed_work(&psock_other->work, 0); spin_unlock_bh(&psock_other->ingress_lock); return 0; } @@ -989,10 +978,8 @@ static int sk_psock_verdict_apply(struct sk_psock *psock, struct sk_buff *skb, err = -EIO; sk_other = psock->sk; if (sock_flag(sk_other, SOCK_DEAD) || - !sk_psock_test_state(psock, SK_PSOCK_TX_ENABLED)) { - skb_bpf_redirect_clear(skb); + !sk_psock_test_state(psock, SK_PSOCK_TX_ENABLED)) goto out_free; - } skb_bpf_set_ingress(skb); @@ -1017,22 +1004,23 @@ static int sk_psock_verdict_apply(struct sk_psock *psock, struct sk_buff *skb, spin_lock_bh(&psock->ingress_lock); if (sk_psock_test_state(psock, SK_PSOCK_TX_ENABLED)) { skb_queue_tail(&psock->ingress_skb, skb); - schedule_work(&psock->work); + schedule_delayed_work(&psock->work, 0); err = 0; } spin_unlock_bh(&psock->ingress_lock); - if (err < 0) { - skb_bpf_redirect_clear(skb); + if (err < 0) goto out_free; - } } break; case __SK_REDIRECT: + tcp_eat_skb(psock->sk, skb); err = sk_psock_skb_redirect(psock, skb); break; case __SK_DROP: default: out_free: + skb_bpf_redirect_clear(skb); + tcp_eat_skb(psock->sk, skb); sock_drop(psock->sk, skb); } @@ -1048,7 +1036,7 @@ static void sk_psock_write_space(struct sock *sk) psock = sk_psock(sk); if (likely(psock)) { if (sk_psock_test_state(psock, SK_PSOCK_TX_ENABLED)) - schedule_work(&psock->work); + schedule_delayed_work(&psock->work, 0); write_space = psock->saved_write_space; } rcu_read_unlock(); @@ -1077,8 +1065,7 @@ static void sk_psock_strp_read(struct strparser *strp, struct sk_buff *skb) skb_dst_drop(skb); skb_bpf_redirect_clear(skb); ret = bpf_prog_run_pin_on_cpu(prog, skb); - if (ret == SK_PASS) - skb_bpf_set_strparser(skb); + skb_bpf_set_strparser(skb); ret = sk_psock_map_verd(ret, skb_bpf_redirect_fetch(skb)); skb->sk = NULL; } @@ -1180,12 +1167,11 @@ static int sk_psock_verdict_recv(struct sock *sk, struct sk_buff *skb) int ret = __SK_DROP; int len = skb->len; - skb_get(skb); - rcu_read_lock(); psock = sk_psock(sk); if (unlikely(!psock)) { len = 0; + tcp_eat_skb(sk, skb); sock_drop(sk, skb); goto out; } @@ -1209,10 +1195,20 @@ out: static void sk_psock_verdict_data_ready(struct sock *sk) { struct socket *sock = sk->sk_socket; + int copied; if (unlikely(!sock || !sock->ops || !sock->ops->read_skb)) return; - sock->ops->read_skb(sk, sk_psock_verdict_recv); + copied = sock->ops->read_skb(sk, sk_psock_verdict_recv); + if (copied >= 0) { + struct sk_psock *psock; + + rcu_read_lock(); + psock = sk_psock(sk); + if (psock) + psock->saved_data_ready(sk); + rcu_read_unlock(); + } } void sk_psock_start_verdict(struct sock *sk, struct sk_psock *psock) diff --git a/net/core/sock_map.c b/net/core/sock_map.c index a68a7290a3b2..7904811ff62d 100644 --- a/net/core/sock_map.c +++ b/net/core/sock_map.c @@ -414,8 +414,9 @@ static int __sock_map_delete(struct bpf_stab *stab, struct sock *sk_test, { struct sock *sk; int err = 0; + unsigned long flags; - raw_spin_lock_bh(&stab->lock); + raw_spin_lock_irqsave(&stab->lock, flags); sk = *psk; if (!sk_test || sk_test == sk) sk = xchg(psk, NULL); @@ -425,7 +426,7 @@ static int __sock_map_delete(struct bpf_stab *stab, struct sock *sk_test, else err = -EINVAL; - raw_spin_unlock_bh(&stab->lock); + raw_spin_unlock_irqrestore(&stab->lock, flags); return err; } @@ -923,11 +924,12 @@ static int sock_hash_delete_elem(struct bpf_map *map, void *key) struct bpf_shtab_bucket *bucket; struct bpf_shtab_elem *elem; int ret = -ENOENT; + unsigned long flags; hash = sock_hash_bucket_hash(key, key_size); bucket = sock_hash_select_bucket(htab, hash); - raw_spin_lock_bh(&bucket->lock); + raw_spin_lock_irqsave(&bucket->lock, flags); elem = sock_hash_lookup_elem_raw(&bucket->head, hash, key, key_size); if (elem) { hlist_del_rcu(&elem->node); @@ -935,7 +937,7 @@ static int sock_hash_delete_elem(struct bpf_map *map, void *key) sock_hash_free_elem(htab, elem); ret = 0; } - raw_spin_unlock_bh(&bucket->lock); + raw_spin_unlock_irqrestore(&bucket->lock, flags); return ret; } @@ -1624,9 +1626,10 @@ void sock_map_close(struct sock *sk, long timeout) rcu_read_unlock(); sk_psock_stop(psock); release_sock(sk); - cancel_work_sync(&psock->work); + cancel_delayed_work_sync(&psock->work); sk_psock_put(sk, psock); } + /* Make sure we do not recurse. This is a bug. * Leak the socket instead of crashing on a stack overflow. */ diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index 5b19b77d5d75..c1ba999ba0fb 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -589,6 +589,7 @@ static long inet_wait_for_connect(struct sock *sk, long timeo, int writebias) add_wait_queue(sk_sleep(sk), &wait); sk->sk_write_pending += writebias; + sk->sk_wait_pending++; /* Basic assumption: if someone sets sk->sk_err, he _must_ * change state of the socket from TCP_SYN_*. @@ -604,6 +605,7 @@ static long inet_wait_for_connect(struct sock *sk, long timeo, int writebias) } remove_wait_queue(sk_sleep(sk), &wait); sk->sk_write_pending -= writebias; + sk->sk_wait_pending--; return timeo; } diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c index 916075e00d06..8e35ea66d930 100644 --- a/net/ipv4/inet_connection_sock.c +++ b/net/ipv4/inet_connection_sock.c @@ -1143,6 +1143,7 @@ struct sock *inet_csk_clone_lock(const struct sock *sk, if (newsk) { struct inet_connection_sock *newicsk = inet_csk(newsk); + newsk->sk_wait_pending = 0; inet_sk_set_state(newsk, TCP_SYN_RECV); newicsk->icsk_bind_hash = NULL; newicsk->icsk_bind2_hash = NULL; diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index cd1320aca8a9..6aac196a74d0 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -1568,7 +1568,7 @@ static int tcp_peek_sndq(struct sock *sk, struct msghdr *msg, int len) * calculation of whether or not we must ACK for the sake of * a window update. */ -static void __tcp_cleanup_rbuf(struct sock *sk, int copied) +void __tcp_cleanup_rbuf(struct sock *sk, int copied) { struct tcp_sock *tp = tcp_sk(sk); bool time_to_ack = false; @@ -1770,7 +1770,6 @@ int tcp_read_skb(struct sock *sk, skb_read_actor_t recv_actor) WARN_ON_ONCE(!skb_set_owner_sk_safe(skb, sk)); tcp_flags = TCP_SKB_CB(skb)->tcp_flags; used = recv_actor(sk, skb); - consume_skb(skb); if (used < 0) { if (!copied) copied = used; @@ -1784,14 +1783,6 @@ int tcp_read_skb(struct sock *sk, skb_read_actor_t recv_actor) break; } } - WRITE_ONCE(tp->copied_seq, seq); - - tcp_rcv_space_adjust(sk); - - /* Clean up data we have read: This will do ACK frames. */ - if (copied > 0) - __tcp_cleanup_rbuf(sk, copied); - return copied; } EXPORT_SYMBOL(tcp_read_skb); @@ -3086,6 +3077,12 @@ int tcp_disconnect(struct sock *sk, int flags) int old_state = sk->sk_state; u32 seq; + /* Deny disconnect if other threads are blocked in sk_wait_event() + * or inet_wait_for_connect(). + */ + if (sk->sk_wait_pending) + return -EBUSY; + if (old_state != TCP_CLOSE) tcp_set_state(sk, TCP_CLOSE); diff --git a/net/ipv4/tcp_bpf.c b/net/ipv4/tcp_bpf.c index ebf917511937..0f8b09553dc1 100644 --- a/net/ipv4/tcp_bpf.c +++ b/net/ipv4/tcp_bpf.c @@ -11,6 +11,24 @@ #include <net/inet_common.h> #include <net/tls.h> +void tcp_eat_skb(struct sock *sk, struct sk_buff *skb) +{ + struct tcp_sock *tcp; + int copied; + + if (!skb || !skb->len || !sk_is_tcp(sk)) + return; + + if (skb_bpf_strparser(skb)) + return; + + tcp = tcp_sk(sk); + copied = tcp->copied_seq + skb->len; + WRITE_ONCE(tcp->copied_seq, copied); + tcp_rcv_space_adjust(sk); + __tcp_cleanup_rbuf(sk, skb->len); +} + static int bpf_tcp_ingress(struct sock *sk, struct sk_psock *psock, struct sk_msg *msg, u32 apply_bytes, int flags) { @@ -174,14 +192,34 @@ static int tcp_msg_wait_data(struct sock *sk, struct sk_psock *psock, return ret; } +static bool is_next_msg_fin(struct sk_psock *psock) +{ + struct scatterlist *sge; + struct sk_msg *msg_rx; + int i; + + msg_rx = sk_psock_peek_msg(psock); + i = msg_rx->sg.start; + sge = sk_msg_elem(msg_rx, i); + if (!sge->length) { + struct sk_buff *skb = msg_rx->skb; + + if (skb && TCP_SKB_CB(skb)->tcp_flags & TCPHDR_FIN) + return true; + } + return false; +} + static int tcp_bpf_recvmsg_parser(struct sock *sk, struct msghdr *msg, size_t len, int flags, int *addr_len) { + struct tcp_sock *tcp = tcp_sk(sk); + u32 seq = tcp->copied_seq; struct sk_psock *psock; - int copied; + int copied = 0; if (unlikely(flags & MSG_ERRQUEUE)) return inet_recv_error(sk, msg, len, addr_len); @@ -194,8 +232,43 @@ static int tcp_bpf_recvmsg_parser(struct sock *sk, return tcp_recvmsg(sk, msg, len, flags, addr_len); lock_sock(sk); + + /* We may have received data on the sk_receive_queue pre-accept and + * then we can not use read_skb in this context because we haven't + * assigned a sk_socket yet so have no link to the ops. The work-around + * is to check the sk_receive_queue and in these cases read skbs off + * queue again. The read_skb hook is not running at this point because + * of lock_sock so we avoid having multiple runners in read_skb. + */ + if (unlikely(!skb_queue_empty(&sk->sk_receive_queue))) { + tcp_data_ready(sk); + /* This handles the ENOMEM errors if we both receive data + * pre accept and are already under memory pressure. At least + * let user know to retry. + */ + if (unlikely(!skb_queue_empty(&sk->sk_receive_queue))) { + copied = -EAGAIN; + goto out; + } + } + msg_bytes_ready: copied = sk_msg_recvmsg(sk, psock, msg, len, flags); + /* The typical case for EFAULT is the socket was gracefully + * shutdown with a FIN pkt. So check here the other case is + * some error on copy_page_to_iter which would be unexpected. + * On fin return correct return code to zero. + */ + if (copied == -EFAULT) { + bool is_fin = is_next_msg_fin(psock); + + if (is_fin) { + copied = 0; + seq++; + goto out; + } + } + seq += copied; if (!copied) { long timeo; int data; @@ -233,6 +306,10 @@ msg_bytes_ready: copied = -EAGAIN; } out: + WRITE_ONCE(tcp->copied_seq, seq); + tcp_rcv_space_adjust(sk); + if (copied > 0) + __tcp_cleanup_rbuf(sk, copied); release_sock(sk); sk_psock_put(sk, psock); return copied; diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 3ffa30c37293..956d6797c76f 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -1806,7 +1806,7 @@ EXPORT_SYMBOL(__skb_recv_udp); int udp_read_skb(struct sock *sk, skb_read_actor_t recv_actor) { struct sk_buff *skb; - int err, copied; + int err; try_again: skb = skb_recv_udp(sk, MSG_DONTWAIT, &err); @@ -1825,10 +1825,7 @@ try_again: } WARN_ON_ONCE(!skb_set_owner_sk_safe(skb, sk)); - copied = recv_actor(sk, skb); - kfree_skb(skb); - - return copied; + return recv_actor(sk, skb); } EXPORT_SYMBOL(udp_read_skb); diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index f82a61d92aa9..b3339741c32f 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -195,6 +195,48 @@ static void nft_set_trans_bind(const struct nft_ctx *ctx, struct nft_set *set) } } +static void nft_chain_trans_bind(const struct nft_ctx *ctx, struct nft_chain *chain) +{ + struct nftables_pernet *nft_net; + struct net *net = ctx->net; + struct nft_trans *trans; + + if (!nft_chain_binding(chain)) + return; + + nft_net = nft_pernet(net); + list_for_each_entry_reverse(trans, &nft_net->commit_list, list) { + switch (trans->msg_type) { + case NFT_MSG_NEWCHAIN: + if (nft_trans_chain(trans) == chain) + nft_trans_chain_bound(trans) = true; + break; + case NFT_MSG_NEWRULE: + if (trans->ctx.chain == chain) + nft_trans_rule_bound(trans) = true; + break; + } + } +} + +int nf_tables_bind_chain(const struct nft_ctx *ctx, struct nft_chain *chain) +{ + if (!nft_chain_binding(chain)) + return 0; + + if (nft_chain_binding(ctx->chain)) + return -EOPNOTSUPP; + + if (chain->bound) + return -EBUSY; + + chain->bound = true; + chain->use++; + nft_chain_trans_bind(ctx, chain); + + return 0; +} + static int nft_netdev_register_hooks(struct net *net, struct list_head *hook_list) { @@ -340,8 +382,9 @@ static struct nft_trans *nft_trans_chain_add(struct nft_ctx *ctx, int msg_type) ntohl(nla_get_be32(ctx->nla[NFTA_CHAIN_ID])); } } - + nft_trans_chain(trans) = ctx->chain; nft_trans_commit_list_add_tail(ctx->net, trans); + return trans; } @@ -359,8 +402,7 @@ static int nft_delchain(struct nft_ctx *ctx) return 0; } -static void nft_rule_expr_activate(const struct nft_ctx *ctx, - struct nft_rule *rule) +void nft_rule_expr_activate(const struct nft_ctx *ctx, struct nft_rule *rule) { struct nft_expr *expr; @@ -373,9 +415,8 @@ static void nft_rule_expr_activate(const struct nft_ctx *ctx, } } -static void nft_rule_expr_deactivate(const struct nft_ctx *ctx, - struct nft_rule *rule, - enum nft_trans_phase phase) +void nft_rule_expr_deactivate(const struct nft_ctx *ctx, struct nft_rule *rule, + enum nft_trans_phase phase) { struct nft_expr *expr; @@ -1281,7 +1322,7 @@ static int nft_flush_table(struct nft_ctx *ctx) if (!nft_is_active_next(ctx->net, chain)) continue; - if (nft_chain_is_bound(chain)) + if (nft_chain_binding(chain)) continue; ctx->chain = chain; @@ -1326,7 +1367,7 @@ static int nft_flush_table(struct nft_ctx *ctx) if (!nft_is_active_next(ctx->net, chain)) continue; - if (nft_chain_is_bound(chain)) + if (nft_chain_binding(chain)) continue; ctx->chain = chain; @@ -2188,7 +2229,7 @@ static int nft_basechain_init(struct nft_base_chain *basechain, u8 family, return 0; } -static int nft_chain_add(struct nft_table *table, struct nft_chain *chain) +int nft_chain_add(struct nft_table *table, struct nft_chain *chain) { int err; @@ -2643,6 +2684,9 @@ static int nf_tables_delchain(struct sk_buff *skb, const struct nfnl_info *info, return PTR_ERR(chain); } + if (nft_chain_binding(chain)) + return -EOPNOTSUPP; + if (info->nlh->nlmsg_flags & NLM_F_NONREC && chain->use > 0) return -EBUSY; @@ -3315,8 +3359,7 @@ err_fill_rule_info: return err; } -static void nf_tables_rule_destroy(const struct nft_ctx *ctx, - struct nft_rule *rule) +void nf_tables_rule_destroy(const struct nft_ctx *ctx, struct nft_rule *rule) { struct nft_expr *expr, *next; @@ -3333,7 +3376,7 @@ static void nf_tables_rule_destroy(const struct nft_ctx *ctx, kfree(rule); } -void nf_tables_rule_release(const struct nft_ctx *ctx, struct nft_rule *rule) +static void nf_tables_rule_release(const struct nft_ctx *ctx, struct nft_rule *rule) { nft_rule_expr_deactivate(ctx, rule, NFT_TRANS_RELEASE); nf_tables_rule_destroy(ctx, rule); @@ -3493,8 +3536,6 @@ static int nf_tables_newrule(struct sk_buff *skb, const struct nfnl_info *info, NL_SET_BAD_ATTR(extack, nla[NFTA_RULE_CHAIN]); return PTR_ERR(chain); } - if (nft_chain_is_bound(chain)) - return -EOPNOTSUPP; } else if (nla[NFTA_RULE_CHAIN_ID]) { chain = nft_chain_lookup_byid(net, table, nla[NFTA_RULE_CHAIN_ID]); @@ -3506,6 +3547,9 @@ static int nf_tables_newrule(struct sk_buff *skb, const struct nfnl_info *info, return -EINVAL; } + if (nft_chain_is_bound(chain)) + return -EOPNOTSUPP; + if (nla[NFTA_RULE_HANDLE]) { handle = be64_to_cpu(nla_get_be64(nla[NFTA_RULE_HANDLE])); rule = __nft_rule_lookup(chain, handle); @@ -3625,6 +3669,11 @@ static int nf_tables_newrule(struct sk_buff *skb, const struct nfnl_info *info, } if (info->nlh->nlmsg_flags & NLM_F_REPLACE) { + if (nft_chain_binding(chain)) { + err = -EOPNOTSUPP; + goto err_destroy_flow_rule; + } + err = nft_delrule(&ctx, old_rule); if (err < 0) goto err_destroy_flow_rule; @@ -3669,7 +3718,8 @@ err_destroy_flow_rule: if (flow) nft_flow_rule_destroy(flow); err_release_rule: - nf_tables_rule_release(&ctx, rule); + nft_rule_expr_deactivate(&ctx, rule, NFT_TRANS_PREPARE); + nf_tables_rule_destroy(&ctx, rule); err_release_expr: for (i = 0; i < n; i++) { if (expr_info[i].ops) { @@ -3729,7 +3779,7 @@ static int nf_tables_delrule(struct sk_buff *skb, const struct nfnl_info *info, NL_SET_BAD_ATTR(extack, nla[NFTA_RULE_CHAIN]); return PTR_ERR(chain); } - if (nft_chain_is_bound(chain)) + if (nft_chain_binding(chain)) return -EOPNOTSUPP; } @@ -3759,6 +3809,8 @@ static int nf_tables_delrule(struct sk_buff *skb, const struct nfnl_info *info, list_for_each_entry(chain, &table->chains, list) { if (!nft_is_active_next(net, chain)) continue; + if (nft_chain_binding(chain)) + continue; ctx.chain = chain; err = nft_delrule_by_chain(&ctx); @@ -6446,7 +6498,6 @@ static int nf_tables_newsetelem(struct sk_buff *skb, void nft_data_hold(const struct nft_data *data, enum nft_data_types type) { struct nft_chain *chain; - struct nft_rule *rule; if (type == NFT_DATA_VERDICT) { switch (data->verdict.code) { @@ -6454,15 +6505,6 @@ void nft_data_hold(const struct nft_data *data, enum nft_data_types type) case NFT_GOTO: chain = data->verdict.chain; chain->use++; - - if (!nft_chain_is_bound(chain)) - break; - - chain->table->use++; - list_for_each_entry(rule, &chain->rules, list) - chain->use++; - - nft_chain_add(chain->table, chain); break; } } @@ -6654,6 +6696,7 @@ static int nft_set_catchall_flush(const struct nft_ctx *ctx, ret = __nft_set_catchall_flush(ctx, set, &elem); if (ret < 0) break; + nft_set_elem_change_active(ctx->net, set, ext); } return ret; @@ -9324,7 +9367,7 @@ static int __nf_tables_abort(struct net *net, enum nfnl_abort_action action) kfree(nft_trans_chain_name(trans)); nft_trans_destroy(trans); } else { - if (nft_chain_is_bound(trans->ctx.chain)) { + if (nft_trans_chain_bound(trans)) { nft_trans_destroy(trans); break; } @@ -9341,6 +9384,10 @@ static int __nf_tables_abort(struct net *net, enum nfnl_abort_action action) nft_trans_destroy(trans); break; case NFT_MSG_NEWRULE: + if (nft_trans_rule_bound(trans)) { + nft_trans_destroy(trans); + break; + } trans->ctx.chain->use--; list_del_rcu(&nft_trans_rule(trans)->list); nft_rule_expr_deactivate(&trans->ctx, @@ -9892,22 +9939,12 @@ static int nft_verdict_init(const struct nft_ctx *ctx, struct nft_data *data, static void nft_verdict_uninit(const struct nft_data *data) { struct nft_chain *chain; - struct nft_rule *rule; switch (data->verdict.code) { case NFT_JUMP: case NFT_GOTO: chain = data->verdict.chain; chain->use--; - - if (!nft_chain_is_bound(chain)) - break; - - chain->table->use--; - list_for_each_entry(rule, &chain->rules, list) - chain->use--; - - nft_chain_del(chain); break; } } diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c index d97eb280cb2e..485465d7624e 100644 --- a/net/netfilter/nfnetlink_log.c +++ b/net/netfilter/nfnetlink_log.c @@ -460,7 +460,6 @@ __build_packet_message(struct nfnl_log_net *log, sk_buff_data_t old_tail = inst->skb->tail; struct sock *sk; const unsigned char *hwhdrp; - ktime_t tstamp; nlh = nfnl_msg_put(inst->skb, 0, 0, nfnl_msg_type(NFNL_SUBSYS_ULOG, NFULNL_MSG_PACKET), @@ -589,10 +588,9 @@ __build_packet_message(struct nfnl_log_net *log, goto nla_put_failure; } - tstamp = skb_tstamp_cond(skb, false); - if (hooknum <= NF_INET_FORWARD && tstamp) { + if (hooknum <= NF_INET_FORWARD) { + struct timespec64 kts = ktime_to_timespec64(skb_tstamp_cond(skb, true)); struct nfulnl_msg_packet_timestamp ts; - struct timespec64 kts = ktime_to_timespec64(tstamp); ts.sec = cpu_to_be64(kts.tv_sec); ts.usec = cpu_to_be64(kts.tv_nsec / NSEC_PER_USEC); diff --git a/net/netfilter/nft_byteorder.c b/net/netfilter/nft_byteorder.c index f952a80275a8..2e2eb2cb17bc 100644 --- a/net/netfilter/nft_byteorder.c +++ b/net/netfilter/nft_byteorder.c @@ -30,11 +30,11 @@ void nft_byteorder_eval(const struct nft_expr *expr, const struct nft_byteorder *priv = nft_expr_priv(expr); u32 *src = ®s->data[priv->sreg]; u32 *dst = ®s->data[priv->dreg]; - union { u32 u32; u16 u16; } *s, *d; + u16 *s16, *d16; unsigned int i; - s = (void *)src; - d = (void *)dst; + s16 = (void *)src; + d16 = (void *)dst; switch (priv->size) { case 8: { @@ -62,11 +62,11 @@ void nft_byteorder_eval(const struct nft_expr *expr, switch (priv->op) { case NFT_BYTEORDER_NTOH: for (i = 0; i < priv->len / 4; i++) - d[i].u32 = ntohl((__force __be32)s[i].u32); + dst[i] = ntohl((__force __be32)src[i]); break; case NFT_BYTEORDER_HTON: for (i = 0; i < priv->len / 4; i++) - d[i].u32 = (__force __u32)htonl(s[i].u32); + dst[i] = (__force __u32)htonl(src[i]); break; } break; @@ -74,11 +74,11 @@ void nft_byteorder_eval(const struct nft_expr *expr, switch (priv->op) { case NFT_BYTEORDER_NTOH: for (i = 0; i < priv->len / 2; i++) - d[i].u16 = ntohs((__force __be16)s[i].u16); + d16[i] = ntohs((__force __be16)s16[i]); break; case NFT_BYTEORDER_HTON: for (i = 0; i < priv->len / 2; i++) - d[i].u16 = (__force __u16)htons(s[i].u16); + d16[i] = (__force __u16)htons(s16[i]); break; } break; diff --git a/net/netfilter/nft_immediate.c b/net/netfilter/nft_immediate.c index 5f28b21abc7d..457fc1e21841 100644 --- a/net/netfilter/nft_immediate.c +++ b/net/netfilter/nft_immediate.c @@ -76,11 +76,9 @@ static int nft_immediate_init(const struct nft_ctx *ctx, switch (priv->data.verdict.code) { case NFT_JUMP: case NFT_GOTO: - if (nft_chain_is_bound(chain)) { - err = -EBUSY; - goto err1; - } - chain->bound = true; + err = nf_tables_bind_chain(ctx, chain); + if (err < 0) + return err; break; default: break; @@ -98,6 +96,31 @@ static void nft_immediate_activate(const struct nft_ctx *ctx, const struct nft_expr *expr) { const struct nft_immediate_expr *priv = nft_expr_priv(expr); + const struct nft_data *data = &priv->data; + struct nft_ctx chain_ctx; + struct nft_chain *chain; + struct nft_rule *rule; + + if (priv->dreg == NFT_REG_VERDICT) { + switch (data->verdict.code) { + case NFT_JUMP: + case NFT_GOTO: + chain = data->verdict.chain; + if (!nft_chain_binding(chain)) + break; + + chain_ctx = *ctx; + chain_ctx.chain = chain; + + list_for_each_entry(rule, &chain->rules, list) + nft_rule_expr_activate(&chain_ctx, rule); + + nft_clear(ctx->net, chain); + break; + default: + break; + } + } return nft_data_hold(&priv->data, nft_dreg_to_type(priv->dreg)); } @@ -107,6 +130,40 @@ static void nft_immediate_deactivate(const struct nft_ctx *ctx, enum nft_trans_phase phase) { const struct nft_immediate_expr *priv = nft_expr_priv(expr); + const struct nft_data *data = &priv->data; + struct nft_ctx chain_ctx; + struct nft_chain *chain; + struct nft_rule *rule; + + if (priv->dreg == NFT_REG_VERDICT) { + switch (data->verdict.code) { + case NFT_JUMP: + case NFT_GOTO: + chain = data->verdict.chain; + if (!nft_chain_binding(chain)) + break; + + chain_ctx = *ctx; + chain_ctx.chain = chain; + + list_for_each_entry(rule, &chain->rules, list) + nft_rule_expr_deactivate(&chain_ctx, rule, phase); + + switch (phase) { + case NFT_TRANS_PREPARE: + nft_deactivate_next(ctx->net, chain); + break; + default: + nft_chain_del(chain); + chain->bound = false; + chain->table->use--; + break; + } + break; + default: + break; + } + } if (phase == NFT_TRANS_COMMIT) return; @@ -131,15 +188,27 @@ static void nft_immediate_destroy(const struct nft_ctx *ctx, case NFT_GOTO: chain = data->verdict.chain; - if (!nft_chain_is_bound(chain)) + if (!nft_chain_binding(chain)) + break; + + /* Rule construction failed, but chain is already bound: + * let the transaction records release this chain and its rules. + */ + if (chain->bound) { + chain->use--; break; + } + /* Rule has been deleted, release chain and its rules. */ chain_ctx = *ctx; chain_ctx.chain = chain; - list_for_each_entry_safe(rule, n, &chain->rules, list) - nf_tables_rule_release(&chain_ctx, rule); - + chain->use--; + list_for_each_entry_safe(rule, n, &chain->rules, list) { + chain->use--; + list_del(&rule->list); + nf_tables_rule_destroy(&chain_ctx, rule); + } nf_tables_chain_destroy(&chain_ctx); break; default: diff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c index 06d46d182634..4b79df6ecf6c 100644 --- a/net/netfilter/nft_set_pipapo.c +++ b/net/netfilter/nft_set_pipapo.c @@ -1908,7 +1908,11 @@ static void nft_pipapo_remove(const struct net *net, const struct nft_set *set, int i, start, rules_fx; match_start = data; - match_end = (const u8 *)nft_set_ext_key_end(&e->ext)->data; + + if (nft_set_ext_exists(&e->ext, NFT_SET_EXT_KEY_END)) + match_end = (const u8 *)nft_set_ext_key_end(&e->ext)->data; + else + match_end = data; start = first_rule; rules_fx = rules_f0; diff --git a/net/nfc/llcp.h b/net/nfc/llcp.h index c1d9be636933..d8345ed57c95 100644 --- a/net/nfc/llcp.h +++ b/net/nfc/llcp.h @@ -201,7 +201,6 @@ void nfc_llcp_sock_link(struct llcp_sock_list *l, struct sock *s); void nfc_llcp_sock_unlink(struct llcp_sock_list *l, struct sock *s); void nfc_llcp_socket_remote_param_init(struct nfc_llcp_sock *sock); struct nfc_llcp_local *nfc_llcp_find_local(struct nfc_dev *dev); -struct nfc_llcp_local *nfc_llcp_local_get(struct nfc_llcp_local *local); int nfc_llcp_local_put(struct nfc_llcp_local *local); u8 nfc_llcp_get_sdp_ssap(struct nfc_llcp_local *local, struct nfc_llcp_sock *sock); diff --git a/net/nfc/llcp_commands.c b/net/nfc/llcp_commands.c index 41e3a20c8935..5d2d4bc26ef9 100644 --- a/net/nfc/llcp_commands.c +++ b/net/nfc/llcp_commands.c @@ -359,6 +359,7 @@ int nfc_llcp_send_symm(struct nfc_dev *dev) struct sk_buff *skb; struct nfc_llcp_local *local; u16 size = 0; + int err; local = nfc_llcp_find_local(dev); if (local == NULL) @@ -368,8 +369,10 @@ int nfc_llcp_send_symm(struct nfc_dev *dev) size += dev->tx_headroom + dev->tx_tailroom + NFC_HEADER_SIZE; skb = alloc_skb(size, GFP_KERNEL); - if (skb == NULL) - return -ENOMEM; + if (skb == NULL) { + err = -ENOMEM; + goto out; + } skb_reserve(skb, dev->tx_headroom + NFC_HEADER_SIZE); @@ -379,8 +382,11 @@ int nfc_llcp_send_symm(struct nfc_dev *dev) nfc_llcp_send_to_raw_sock(local, skb, NFC_DIRECTION_TX); - return nfc_data_exchange(dev, local->target_idx, skb, + err = nfc_data_exchange(dev, local->target_idx, skb, nfc_llcp_recv, local); +out: + nfc_llcp_local_put(local); + return err; } int nfc_llcp_send_connect(struct nfc_llcp_sock *sock) diff --git a/net/nfc/llcp_core.c b/net/nfc/llcp_core.c index a27e1842b2a0..f60e424e0607 100644 --- a/net/nfc/llcp_core.c +++ b/net/nfc/llcp_core.c @@ -17,6 +17,8 @@ static u8 llcp_magic[3] = {0x46, 0x66, 0x6d}; static LIST_HEAD(llcp_devices); +/* Protects llcp_devices list */ +static DEFINE_SPINLOCK(llcp_devices_lock); static void nfc_llcp_rx_skb(struct nfc_llcp_local *local, struct sk_buff *skb); @@ -141,7 +143,7 @@ static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool device, write_unlock(&local->raw_sockets.lock); } -struct nfc_llcp_local *nfc_llcp_local_get(struct nfc_llcp_local *local) +static struct nfc_llcp_local *nfc_llcp_local_get(struct nfc_llcp_local *local) { kref_get(&local->ref); @@ -169,7 +171,6 @@ static void local_release(struct kref *ref) local = container_of(ref, struct nfc_llcp_local, ref); - list_del(&local->list); local_cleanup(local); kfree(local); } @@ -282,12 +283,33 @@ static void nfc_llcp_sdreq_timer(struct timer_list *t) struct nfc_llcp_local *nfc_llcp_find_local(struct nfc_dev *dev) { struct nfc_llcp_local *local; + struct nfc_llcp_local *res = NULL; + spin_lock(&llcp_devices_lock); list_for_each_entry(local, &llcp_devices, list) - if (local->dev == dev) + if (local->dev == dev) { + res = nfc_llcp_local_get(local); + break; + } + spin_unlock(&llcp_devices_lock); + + return res; +} + +static struct nfc_llcp_local *nfc_llcp_remove_local(struct nfc_dev *dev) +{ + struct nfc_llcp_local *local, *tmp; + + spin_lock(&llcp_devices_lock); + list_for_each_entry_safe(local, tmp, &llcp_devices, list) + if (local->dev == dev) { + list_del(&local->list); + spin_unlock(&llcp_devices_lock); return local; + } + spin_unlock(&llcp_devices_lock); - pr_debug("No device found\n"); + pr_warn("Shutting down device not found\n"); return NULL; } @@ -608,12 +630,15 @@ u8 *nfc_llcp_general_bytes(struct nfc_dev *dev, size_t *general_bytes_len) *general_bytes_len = local->gb_len; + nfc_llcp_local_put(local); + return local->gb; } int nfc_llcp_set_remote_gb(struct nfc_dev *dev, const u8 *gb, u8 gb_len) { struct nfc_llcp_local *local; + int err; if (gb_len < 3 || gb_len > NFC_MAX_GT_LEN) return -EINVAL; @@ -630,12 +655,16 @@ int nfc_llcp_set_remote_gb(struct nfc_dev *dev, const u8 *gb, u8 gb_len) if (memcmp(local->remote_gb, llcp_magic, 3)) { pr_err("MAC does not support LLCP\n"); - return -EINVAL; + err = -EINVAL; + goto out; } - return nfc_llcp_parse_gb_tlv(local, + err = nfc_llcp_parse_gb_tlv(local, &local->remote_gb[3], local->remote_gb_len - 3); +out: + nfc_llcp_local_put(local); + return err; } static u8 nfc_llcp_dsap(const struct sk_buff *pdu) @@ -1517,6 +1546,8 @@ int nfc_llcp_data_received(struct nfc_dev *dev, struct sk_buff *skb) __nfc_llcp_recv(local, skb); + nfc_llcp_local_put(local); + return 0; } @@ -1533,6 +1564,8 @@ void nfc_llcp_mac_is_down(struct nfc_dev *dev) /* Close and purge all existing sockets */ nfc_llcp_socket_release(local, true, 0); + + nfc_llcp_local_put(local); } void nfc_llcp_mac_is_up(struct nfc_dev *dev, u32 target_idx, @@ -1558,6 +1591,8 @@ void nfc_llcp_mac_is_up(struct nfc_dev *dev, u32 target_idx, mod_timer(&local->link_timer, jiffies + msecs_to_jiffies(local->remote_lto)); } + + nfc_llcp_local_put(local); } int nfc_llcp_register_device(struct nfc_dev *ndev) @@ -1608,7 +1643,7 @@ int nfc_llcp_register_device(struct nfc_dev *ndev) void nfc_llcp_unregister_device(struct nfc_dev *dev) { - struct nfc_llcp_local *local = nfc_llcp_find_local(dev); + struct nfc_llcp_local *local = nfc_llcp_remove_local(dev); if (local == NULL) { pr_debug("No such device\n"); diff --git a/net/nfc/llcp_sock.c b/net/nfc/llcp_sock.c index 77642d18a3b4..645677f84dba 100644 --- a/net/nfc/llcp_sock.c +++ b/net/nfc/llcp_sock.c @@ -99,7 +99,7 @@ static int llcp_sock_bind(struct socket *sock, struct sockaddr *addr, int alen) } llcp_sock->dev = dev; - llcp_sock->local = nfc_llcp_local_get(local); + llcp_sock->local = local; llcp_sock->nfc_protocol = llcp_addr.nfc_protocol; llcp_sock->service_name_len = min_t(unsigned int, llcp_addr.service_name_len, @@ -186,7 +186,7 @@ static int llcp_raw_sock_bind(struct socket *sock, struct sockaddr *addr, } llcp_sock->dev = dev; - llcp_sock->local = nfc_llcp_local_get(local); + llcp_sock->local = local; llcp_sock->nfc_protocol = llcp_addr.nfc_protocol; nfc_llcp_sock_link(&local->raw_sockets, sk); @@ -696,22 +696,22 @@ static int llcp_sock_connect(struct socket *sock, struct sockaddr *_addr, if (dev->dep_link_up == false) { ret = -ENOLINK; device_unlock(&dev->dev); - goto put_dev; + goto sock_llcp_put_local; } device_unlock(&dev->dev); if (local->rf_mode == NFC_RF_INITIATOR && addr->target_idx != local->target_idx) { ret = -ENOLINK; - goto put_dev; + goto sock_llcp_put_local; } llcp_sock->dev = dev; - llcp_sock->local = nfc_llcp_local_get(local); + llcp_sock->local = local; llcp_sock->ssap = nfc_llcp_get_local_ssap(local); if (llcp_sock->ssap == LLCP_SAP_MAX) { ret = -ENOMEM; - goto sock_llcp_put_local; + goto sock_llcp_nullify; } llcp_sock->reserved_ssap = llcp_sock->ssap; @@ -757,11 +757,13 @@ sock_unlink: sock_llcp_release: nfc_llcp_put_ssap(local, llcp_sock->ssap); -sock_llcp_put_local: - nfc_llcp_local_put(llcp_sock->local); +sock_llcp_nullify: llcp_sock->local = NULL; llcp_sock->dev = NULL; +sock_llcp_put_local: + nfc_llcp_local_put(local); + put_dev: nfc_put_device(dev); diff --git a/net/nfc/netlink.c b/net/nfc/netlink.c index b9264e730fd9..e9ac6a6f934e 100644 --- a/net/nfc/netlink.c +++ b/net/nfc/netlink.c @@ -1039,11 +1039,14 @@ static int nfc_genl_llc_get_params(struct sk_buff *skb, struct genl_info *info) msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); if (!msg) { rc = -ENOMEM; - goto exit; + goto put_local; } rc = nfc_genl_send_params(msg, local, info->snd_portid, info->snd_seq); +put_local: + nfc_llcp_local_put(local); + exit: device_unlock(&dev->dev); @@ -1105,7 +1108,7 @@ static int nfc_genl_llc_set_params(struct sk_buff *skb, struct genl_info *info) if (info->attrs[NFC_ATTR_LLC_PARAM_LTO]) { if (dev->dep_link_up) { rc = -EINPROGRESS; - goto exit; + goto put_local; } local->lto = nla_get_u8(info->attrs[NFC_ATTR_LLC_PARAM_LTO]); @@ -1117,6 +1120,9 @@ static int nfc_genl_llc_set_params(struct sk_buff *skb, struct genl_info *info) if (info->attrs[NFC_ATTR_LLC_PARAM_MIUX]) local->miux = cpu_to_be16(miux); +put_local: + nfc_llcp_local_put(local); + exit: device_unlock(&dev->dev); @@ -1172,7 +1178,7 @@ static int nfc_genl_llc_sdreq(struct sk_buff *skb, struct genl_info *info) if (rc != 0) { rc = -EINVAL; - goto exit; + goto put_local; } if (!sdp_attrs[NFC_SDP_ATTR_URI]) @@ -1191,7 +1197,7 @@ static int nfc_genl_llc_sdreq(struct sk_buff *skb, struct genl_info *info) sdreq = nfc_llcp_build_sdreq_tlv(tid, uri, uri_len); if (sdreq == NULL) { rc = -ENOMEM; - goto exit; + goto put_local; } tlvs_len += sdreq->tlv_len; @@ -1201,10 +1207,14 @@ static int nfc_genl_llc_sdreq(struct sk_buff *skb, struct genl_info *info) if (hlist_empty(&sdreq_list)) { rc = -EINVAL; - goto exit; + goto put_local; } rc = nfc_llcp_send_snl_sdreq(local, &sdreq_list, tlvs_len); + +put_local: + nfc_llcp_local_put(local); + exit: device_unlock(&dev->dev); diff --git a/net/nfc/nfc.h b/net/nfc/nfc.h index de2ec66d7e83..0b1e6466f4fb 100644 --- a/net/nfc/nfc.h +++ b/net/nfc/nfc.h @@ -52,6 +52,7 @@ int nfc_llcp_set_remote_gb(struct nfc_dev *dev, const u8 *gb, u8 gb_len); u8 *nfc_llcp_general_bytes(struct nfc_dev *dev, size_t *general_bytes_len); int nfc_llcp_data_received(struct nfc_dev *dev, struct sk_buff *skb); struct nfc_llcp_local *nfc_llcp_find_local(struct nfc_dev *dev); +int nfc_llcp_local_put(struct nfc_llcp_local *local); int __init nfc_llcp_init(void); void nfc_llcp_exit(void); void nfc_llcp_free_sdp_tlv(struct nfc_llcp_sdp_tlv *sdp); diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 25bc57ee6ea1..3de72e7c1075 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -1147,6 +1147,9 @@ static int fl_set_geneve_opt(const struct nlattr *nla, struct fl_flow_key *key, if (option_len > sizeof(struct geneve_opt)) data_len = option_len - sizeof(struct geneve_opt); + if (key->enc_opts.len > FLOW_DIS_TUN_OPTS_MAX - 4) + return -ERANGE; + opt = (struct geneve_opt *)&key->enc_opts.data[key->enc_opts.len]; memset(opt, 0xff, option_len); opt->length = data_len / 4; diff --git a/net/sched/cls_fw.c b/net/sched/cls_fw.c index a32351da968c..6160ef7d646a 100644 --- a/net/sched/cls_fw.c +++ b/net/sched/cls_fw.c @@ -210,11 +210,6 @@ static int fw_set_parms(struct net *net, struct tcf_proto *tp, if (err < 0) return err; - if (tb[TCA_FW_CLASSID]) { - f->res.classid = nla_get_u32(tb[TCA_FW_CLASSID]); - tcf_bind_filter(tp, &f->res, base); - } - if (tb[TCA_FW_INDEV]) { int ret; ret = tcf_change_indev(net, tb[TCA_FW_INDEV], extack); @@ -231,6 +226,11 @@ static int fw_set_parms(struct net *net, struct tcf_proto *tp, } else if (head->mask != 0xFFFFFFFF) return err; + if (tb[TCA_FW_CLASSID]) { + f->res.classid = nla_get_u32(tb[TCA_FW_CLASSID]); + tcf_bind_filter(tp, &f->res, base); + } + return 0; } @@ -265,7 +265,6 @@ static int fw_change(struct net *net, struct sk_buff *in_skb, return -ENOBUFS; fnew->id = f->id; - fnew->res = f->res; fnew->ifindex = f->ifindex; fnew->tp = f->tp; diff --git a/net/sched/cls_route.c b/net/sched/cls_route.c index 9e43b929d4ca..306188bf2d1f 100644 --- a/net/sched/cls_route.c +++ b/net/sched/cls_route.c @@ -511,7 +511,6 @@ static int route4_change(struct net *net, struct sk_buff *in_skb, if (fold) { f->id = fold->id; f->iif = fold->iif; - f->res = fold->res; f->handle = fold->handle; f->tp = fold->tp; diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c index 34d25f7a0687..b28b42de8be4 100644 --- a/net/sched/cls_u32.c +++ b/net/sched/cls_u32.c @@ -716,13 +716,19 @@ static int u32_set_parms(struct net *net, struct tcf_proto *tp, struct nlattr *est, u32 flags, u32 fl_flags, struct netlink_ext_ack *extack) { - int err; + int err, ifindex = -1; err = tcf_exts_validate_ex(net, tp, tb, est, &n->exts, flags, fl_flags, extack); if (err < 0) return err; + if (tb[TCA_U32_INDEV]) { + ifindex = tcf_change_indev(net, tb[TCA_U32_INDEV], extack); + if (ifindex < 0) + return -EINVAL; + } + if (tb[TCA_U32_LINK]) { u32 handle = nla_get_u32(tb[TCA_U32_LINK]); struct tc_u_hnode *ht_down = NULL, *ht_old; @@ -757,13 +763,9 @@ static int u32_set_parms(struct net *net, struct tcf_proto *tp, tcf_bind_filter(tp, &n->res, base); } - if (tb[TCA_U32_INDEV]) { - int ret; - ret = tcf_change_indev(net, tb[TCA_U32_INDEV], extack); - if (ret < 0) - return -EINVAL; - n->ifindex = ret; - } + if (ifindex >= 0) + n->ifindex = ifindex; + return 0; } @@ -811,7 +813,6 @@ static struct tc_u_knode *u32_init_knode(struct net *net, struct tcf_proto *tp, new->ifindex = n->ifindex; new->fshift = n->fshift; - new->res = n->res; new->flags = n->flags; RCU_INIT_POINTER(new->ht_down, ht); diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c index 70b0c5873d32..61d52594ff6d 100644 --- a/net/sched/sch_hfsc.c +++ b/net/sched/sch_hfsc.c @@ -1012,6 +1012,10 @@ hfsc_change_class(struct Qdisc *sch, u32 classid, u32 parentid, if (parent == NULL) return -ENOENT; } + if (!(parent->cl_flags & HFSC_FSC) && parent != &q->root) { + NL_SET_ERR_MSG(extack, "Invalid parent - parent class must have FSC"); + return -EINVAL; + } if (classid == 0 || TC_H_MAJ(classid ^ sch->handle) != 0) return -EINVAL; diff --git a/net/sched/sch_plug.c b/net/sched/sch_plug.c index ea8c4a7174bb..35f49edf63db 100644 --- a/net/sched/sch_plug.c +++ b/net/sched/sch_plug.c @@ -207,7 +207,7 @@ static struct Qdisc_ops plug_qdisc_ops __read_mostly = { .priv_size = sizeof(struct plug_sched_data), .enqueue = plug_enqueue, .dequeue = plug_dequeue, - .peek = qdisc_peek_head, + .peek = qdisc_peek_dequeued, .init = plug_init, .change = plug_change, .reset = qdisc_reset_queue, diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c index 02098a02943e..2a824c2a8037 100644 --- a/net/sched/sch_qfq.c +++ b/net/sched/sch_qfq.c @@ -113,6 +113,7 @@ #define QFQ_MTU_SHIFT 16 /* to support TSO/GSO */ #define QFQ_MIN_LMAX 512 /* see qfq_slot_insert */ +#define QFQ_MAX_LMAX (1UL << QFQ_MTU_SHIFT) #define QFQ_MAX_AGG_CLASSES 8 /* max num classes per aggregate allowed */ @@ -214,9 +215,14 @@ static struct qfq_class *qfq_find_class(struct Qdisc *sch, u32 classid) return container_of(clc, struct qfq_class, common); } +static struct netlink_range_validation lmax_range = { + .min = QFQ_MIN_LMAX, + .max = QFQ_MAX_LMAX, +}; + static const struct nla_policy qfq_policy[TCA_QFQ_MAX + 1] = { - [TCA_QFQ_WEIGHT] = { .type = NLA_U32 }, - [TCA_QFQ_LMAX] = { .type = NLA_U32 }, + [TCA_QFQ_WEIGHT] = NLA_POLICY_RANGE(NLA_U32, 1, QFQ_MAX_WEIGHT), + [TCA_QFQ_LMAX] = NLA_POLICY_FULL_RANGE(NLA_U32, &lmax_range), }; /* @@ -375,8 +381,13 @@ static int qfq_change_agg(struct Qdisc *sch, struct qfq_class *cl, u32 weight, u32 lmax) { struct qfq_sched *q = qdisc_priv(sch); - struct qfq_aggregate *new_agg = qfq_find_agg(q, lmax, weight); + struct qfq_aggregate *new_agg; + + /* 'lmax' can range from [QFQ_MIN_LMAX, pktlen + stab overhead] */ + if (lmax > QFQ_MAX_LMAX) + return -EINVAL; + new_agg = qfq_find_agg(q, lmax, weight); if (new_agg == NULL) { /* create new aggregate */ new_agg = kzalloc(sizeof(*new_agg), GFP_ATOMIC); if (new_agg == NULL) @@ -408,17 +419,13 @@ static int qfq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, } err = nla_parse_nested_deprecated(tb, TCA_QFQ_MAX, tca[TCA_OPTIONS], - qfq_policy, NULL); + qfq_policy, extack); if (err < 0) return err; - if (tb[TCA_QFQ_WEIGHT]) { + if (tb[TCA_QFQ_WEIGHT]) weight = nla_get_u32(tb[TCA_QFQ_WEIGHT]); - if (!weight || weight > (1UL << QFQ_MAX_WSHIFT)) { - pr_notice("qfq: invalid weight %u\n", weight); - return -EINVAL; - } - } else + else weight = 1; if (tb[TCA_QFQ_LMAX]) @@ -426,11 +433,6 @@ static int qfq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, else lmax = psched_mtu(qdisc_dev(sch)); - if (lmax < QFQ_MIN_LMAX || lmax > (1UL << QFQ_MTU_SHIFT)) { - pr_notice("qfq: invalid max length %u\n", lmax); - return -EINVAL; - } - inv_w = ONE_FP / weight; weight = ONE_FP / inv_w; @@ -964,10 +966,13 @@ static void qfq_update_eligible(struct qfq_sched *q) } /* Dequeue head packet of the head class in the DRR queue of the aggregate. */ -static void agg_dequeue(struct qfq_aggregate *agg, - struct qfq_class *cl, unsigned int len) +static struct sk_buff *agg_dequeue(struct qfq_aggregate *agg, + struct qfq_class *cl, unsigned int len) { - qdisc_dequeue_peeked(cl->qdisc); + struct sk_buff *skb = qdisc_dequeue_peeked(cl->qdisc); + + if (!skb) + return NULL; cl->deficit -= (int) len; @@ -977,6 +982,8 @@ static void agg_dequeue(struct qfq_aggregate *agg, cl->deficit += agg->lmax; list_move_tail(&cl->alist, &agg->active); } + + return skb; } static inline struct sk_buff *qfq_peek_skb(struct qfq_aggregate *agg, @@ -1122,11 +1129,18 @@ static struct sk_buff *qfq_dequeue(struct Qdisc *sch) if (!skb) return NULL; - qdisc_qstats_backlog_dec(sch, skb); sch->q.qlen--; + + skb = agg_dequeue(in_serv_agg, cl, len); + + if (!skb) { + sch->q.qlen++; + return NULL; + } + + qdisc_qstats_backlog_dec(sch, skb); qdisc_bstats_update(sch, skb); - agg_dequeue(in_serv_agg, cl, len); /* If lmax is lowered, through qfq_change_class, for a class * owning pending packets with larger size than the new value * of lmax, then the following condition may hold. diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 7d17601ceee7..999182d3c1a2 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -2290,6 +2290,7 @@ static ssize_t unix_stream_sendpage(struct socket *socket, struct page *page, if (false) { alloc_skb: + spin_unlock(&other->sk_receive_queue.lock); unix_state_unlock(other); mutex_unlock(&unix_sk(other)->iolock); newskb = sock_alloc_send_pskb(sk, 0, 0, flags & MSG_DONTWAIT, @@ -2329,6 +2330,7 @@ alloc_skb: init_scm = false; } + spin_lock(&other->sk_receive_queue.lock); skb = skb_peek_tail(&other->sk_receive_queue); if (tail && tail == skb) { skb = newskb; @@ -2359,14 +2361,11 @@ alloc_skb: refcount_add(size, &sk->sk_wmem_alloc); if (newskb) { - err = unix_scm_to_skb(&scm, skb, false); - if (err) - goto err_state_unlock; - spin_lock(&other->sk_receive_queue.lock); + unix_scm_to_skb(&scm, skb, false); __skb_queue_tail(&other->sk_receive_queue, newskb); - spin_unlock(&other->sk_receive_queue.lock); } + spin_unlock(&other->sk_receive_queue.lock); unix_state_unlock(other); mutex_unlock(&unix_sk(other)->iolock); @@ -2552,7 +2551,7 @@ static int unix_read_skb(struct sock *sk, skb_read_actor_t recv_actor) { struct unix_sock *u = unix_sk(sk); struct sk_buff *skb; - int err, copied; + int err; mutex_lock(&u->iolock); skb = skb_recv_datagram(sk, MSG_DONTWAIT, &err); @@ -2560,10 +2559,7 @@ static int unix_read_skb(struct sock *sk, skb_read_actor_t recv_actor) if (!skb) return err; - copied = recv_actor(sk, skb); - kfree_skb(skb); - - return copied; + return recv_actor(sk, skb); } /* diff --git a/samples/gunyah/gunyah_vmm.c b/samples/gunyah/gunyah_vmm.c index d0eb49e86372..6f636ac227c6 100644 --- a/samples/gunyah/gunyah_vmm.c +++ b/samples/gunyah/gunyah_vmm.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. */ #include <stdlib.h> @@ -21,6 +21,11 @@ #include <linux/gunyah.h> +#define DEFAULT_GUEST_BASE 0x80000000 +#define DEFAULT_GUEST_SIZE 0x6400000 /* 100 MiB */ +#define DEFAULT_DTB_OFFSET 0x45f0000 /* 70MiB - 64 KiB */ +#define DEFAULT_RAMDISK_OFFSET 0x4600000 /* 70MiB */ + struct vm_config { int image_fd; int dtb_fd; @@ -29,7 +34,6 @@ struct vm_config { uint64_t guest_base; uint64_t guest_size; - uint64_t image_offset; off_t image_size; uint64_t dtb_offset; off_t dtb_size; @@ -44,7 +48,6 @@ static struct option options[] = { { "ramdisk", optional_argument, NULL, 'r' }, { "base", optional_argument, NULL, 'B' }, { "size", optional_argument, NULL, 'S' }, - { "image_offset", optional_argument, NULL, 'I' }, { "dtb_offset", optional_argument, NULL, 'D' }, { "ramdisk_offset", optional_argument, NULL, 'R' }, { } @@ -58,12 +61,12 @@ static void print_help(char *cmd) " --image, -i <image> VM image file to load (e.g. a kernel Image) [Required]\n" " --dtb, -d <dtb> Devicetree file to load [Required]\n" " --ramdisk, -r <ramdisk> Ramdisk file to load\n" - " --base, -B <address> Set the base address of guest's memory [Default: 0x80000000]\n" - " --size, -S <number> The number of bytes large to make the guest's memory [Default: 0x6400000 (100 MB)]\n" - " --image_offset, -I <number> Offset into guest memory to load the VM image file [Default: 0x10000]\n" - " --dtb_offset, -D <number> Offset into guest memory to load the DTB [Default: 0]\n" - " --ramdisk_offset, -R <number> Offset into guest memory to load a ramdisk [Default: 0x4600000]\n" - , cmd); + " --base, -B <address> Set the base address of guest's memory [Default: 0x%08x]\n" + " --size, -S <number> The number of bytes large to make the guest's memory [Default: 0x%08x]\n" + " --dtb_offset, -D <number> Offset into guest memory to load the DTB [Default: 0x%08x]\n" + " --ramdisk_offset, -R <number> Offset into guest memory to load a ramdisk [Default: 0x%08x]\n" + , cmd, DEFAULT_GUEST_BASE, DEFAULT_GUEST_SIZE, + DEFAULT_DTB_OFFSET, DEFAULT_RAMDISK_OFFSET); } int main(int argc, char **argv) @@ -74,18 +77,19 @@ int main(int argc, char **argv) char *guest_mem; struct vm_config config = { /* Defaults good enough to boot static kernel and a basic ramdisk */ + .image_fd = -1, + .dtb_fd = -1, .ramdisk_fd = -1, - .guest_base = 0x80000000, - .guest_size = 0x6400000, /* 100 MB */ - .image_offset = 0, - .dtb_offset = 0x45f0000, - .ramdisk_offset = 0x4600000, /* put at +70MB (30MB for ramdisk) */ + .guest_base = DEFAULT_GUEST_BASE, + .guest_size = DEFAULT_GUEST_SIZE, + .dtb_offset = DEFAULT_DTB_OFFSET, + .ramdisk_offset = DEFAULT_RAMDISK_OFFSET, }; struct stat st; int opt, optidx, ret = 0; long l; - while ((opt = getopt_long(argc, argv, "hi:d:r:B:S:I:D:R:c:", options, &optidx)) != -1) { + while ((opt = getopt_long(argc, argv, "hi:d:r:B:S:D:R:c:", options, &optidx)) != -1) { switch (opt) { case 'i': config.image_fd = open(optarg, O_RDONLY | O_CLOEXEC); @@ -139,14 +143,6 @@ int main(int argc, char **argv) } config.guest_size = l; break; - case 'I': - l = strtol(optarg, NULL, 0); - if (l == LONG_MIN) { - perror("Failed to parse image offset"); - return -1; - } - config.image_offset = l; - break; case 'D': l = strtol(optarg, NULL, 0); if (l == LONG_MIN) { @@ -172,13 +168,13 @@ int main(int argc, char **argv) } } - if (!config.image_fd || !config.dtb_fd) { + if (config.image_fd == -1 || config.dtb_fd == -1) { print_help(argv[0]); return -1; } - if (config.image_offset + config.image_size > config.guest_size) { - fprintf(stderr, "Image offset and size puts it outside guest memory. Make image smaller or increase guest memory size.\n"); + if (config.image_size > config.guest_size) { + fprintf(stderr, "Image size puts it outside guest memory. Make image smaller or increase guest memory size.\n"); return -1; } @@ -222,7 +218,7 @@ int main(int argc, char **argv) return -1; } - if (read(config.image_fd, guest_mem + config.image_offset, config.image_size) < 0) { + if (read(config.image_fd, guest_mem, config.image_size) < 0) { perror("Failed to read image into guest memory"); return -1; } @@ -264,7 +260,7 @@ int main(int argc, char **argv) } while (1) - sleep(10); + pause(); return 0; } diff --git a/scripts/gen_gki_modules_headers.sh b/scripts/gen_gki_modules_headers.sh index 3aa221a058f4..ca435f49b62f 100755 --- a/scripts/gen_gki_modules_headers.sh +++ b/scripts/gen_gki_modules_headers.sh @@ -108,7 +108,7 @@ if [ "$(basename "${TARGET}")" = "gki_module_unprotected.h" ]; then generate_header "${TARGET}" "${GKI_VENDOR_SYMBOLS}" "unprotected" else # Sorted list of exported symbols - GKI_EXPORTED_SYMBOLS="${objtree}/abi_gki_protected_exports" + GKI_EXPORTED_SYMBOLS="include/config/abi_gki_protected_exports" if [ -z "${SYMBOL_LIST}" ]; then # Create empty list if ARCH doesn't have protected exports diff --git a/sound/usb/card.c b/sound/usb/card.c index 4e535eeddd43..96d8e1742af0 100644 --- a/sound/usb/card.c +++ b/sound/usb/card.c @@ -119,6 +119,56 @@ MODULE_PARM_DESC(skip_validation, "Skip unit descriptor validation (default: no) static DEFINE_MUTEX(register_mutex); static struct snd_usb_audio *usb_chip[SNDRV_CARDS]; static struct usb_driver usb_audio_driver; +static struct snd_usb_audio_vendor_ops *usb_vendor_ops; + +int snd_vendor_set_ops(struct snd_usb_audio_vendor_ops *ops) +{ + if ((!ops->set_interface) || + (!ops->set_pcm_intf) || + (!ops->set_pcm_connection)) + return -EINVAL; + + usb_vendor_ops = ops; + return 0; +} +EXPORT_SYMBOL_GPL(snd_vendor_set_ops); + +struct snd_usb_audio_vendor_ops *snd_vendor_get_ops(void) +{ + return usb_vendor_ops; +} + +int snd_vendor_set_interface(struct usb_device *udev, + struct usb_host_interface *intf, + int iface, int alt) +{ + struct snd_usb_audio_vendor_ops *ops = snd_vendor_get_ops(); + + if (ops) + return ops->set_interface(udev, intf, iface, alt); + return 0; +} + +int snd_vendor_set_pcm_intf(struct usb_interface *intf, int iface, int alt, + int direction, struct snd_usb_substream *subs) +{ + struct snd_usb_audio_vendor_ops *ops = snd_vendor_get_ops(); + + if (ops) + return ops->set_pcm_intf(intf, iface, alt, direction, subs); + return 0; +} + +int snd_vendor_set_pcm_connection(struct usb_device *udev, + enum snd_vendor_pcm_open_close onoff, + int direction) +{ + struct snd_usb_audio_vendor_ops *ops = snd_vendor_get_ops(); + + if (ops) + return ops->set_pcm_connection(udev, onoff, direction); + return 0; +} /* * disconnect streams diff --git a/sound/usb/card.h b/sound/usb/card.h index e9b6afd2275a..5421f9e53c54 100644 --- a/sound/usb/card.h +++ b/sound/usb/card.h @@ -216,4 +216,19 @@ struct snd_usb_stream { struct list_head list; }; +int snd_vendor_set_ops(struct snd_usb_audio_vendor_ops *vendor_ops); +struct snd_usb_audio_vendor_ops *snd_vendor_get_ops(void); +int snd_vendor_set_interface(struct usb_device *udev, + struct usb_host_interface *alts, + int iface, int alt); +int snd_vendor_set_rate(int iface, int rate, int alt); +int snd_vendor_set_pcm_intf(struct usb_interface *intf, int iface, int alt, + int direction, struct snd_usb_substream *subs); +int snd_vendor_set_pcm_connection(struct usb_device *udev, + enum snd_vendor_pcm_open_close onoff, + int direction); +int snd_vendor_set_pcm_binterval(const struct audioformat *fp, + const struct audioformat *found, + int *cur_attr, int *attr); + #endif /* __USBAUDIO_CARD_H */ diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c index 1e1d7458bce1..78e809241e19 100644 --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c @@ -641,6 +641,7 @@ static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream) struct snd_usb_audio *chip = subs->stream->chip; int retry = 0; int ret; + struct usb_interface *iface; ret = snd_usb_lock_shutdown(chip); if (ret < 0) @@ -653,6 +654,7 @@ static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream) again: if (subs->sync_endpoint) { ret = snd_usb_endpoint_prepare(chip, subs->sync_endpoint); + if (ret < 0) goto unlock; } @@ -664,6 +666,14 @@ static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream) snd_usb_set_format_quirk(subs, subs->cur_audiofmt); ret = 0; + iface = usb_ifnum_to_if(chip->dev, subs->data_endpoint->iface); + + ret = snd_vendor_set_pcm_intf(iface, subs->data_endpoint->iface, + subs->data_endpoint->altsetting, + subs->direction, subs); + if (ret) + goto unlock; + /* reset the pointer */ subs->buffer_bytes = frames_to_bytes(runtime, runtime->buffer_size); subs->inflight_bytes = 0; @@ -1162,6 +1172,11 @@ static int snd_usb_pcm_open(struct snd_pcm_substream *substream) struct snd_usb_substream *subs = &as->substream[direction]; int ret; + ret = snd_vendor_set_pcm_connection(subs->dev, SOUND_PCM_OPEN, + direction); + if (ret) + return ret; + runtime->hw = snd_usb_hardware; /* need an explicit sync to catch applptr update in low-latency mode */ if (direction == SNDRV_PCM_STREAM_PLAYBACK && @@ -1195,6 +1210,11 @@ static int snd_usb_pcm_close(struct snd_pcm_substream *substream) struct snd_usb_substream *subs = &as->substream[direction]; int ret; + ret = snd_vendor_set_pcm_connection(subs->dev, SOUND_PCM_CLOSE, + direction); + if (ret) + return ret; + snd_media_stop_pipeline(subs); if (!snd_usb_lock_shutdown(subs->stream->chip)) { diff --git a/sound/usb/stream.c b/sound/usb/stream.c index f10f4e6d3fb8..dbe86811346f 100644 --- a/sound/usb/stream.c +++ b/sound/usb/stream.c @@ -1228,6 +1228,8 @@ static int __snd_usb_parse_audio_interface(struct snd_usb_audio *chip, snd_usb_init_pitch(chip, fp); snd_usb_init_sample_rate(chip, fp, fp->rate_max); usb_set_interface(chip->dev, iface_no, altno); + if (protocol > UAC_VERSION_1) + snd_vendor_set_interface(chip->dev, alts, iface_no, 0); } return 0; } diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h index 1b463ce52324..b2cafc0b5eef 100644 --- a/sound/usb/usbaudio.h +++ b/sound/usb/usbaudio.h @@ -20,6 +20,7 @@ struct media_device; struct media_intf_devnode; +struct snd_usb_substream; #define MAX_CARD_INTERFACES 16 @@ -210,4 +211,37 @@ extern bool snd_usb_skip_validation; #define QUIRK_FLAG_FORCE_IFACE_RESET (1U << 20) #define QUIRK_FLAG_FIXED_RATE (1U << 21) +struct audioformat; + +enum snd_vendor_pcm_open_close { + SOUND_PCM_CLOSE = 0, + SOUND_PCM_OPEN, +}; + +/** + * struct snd_usb_audio_vendor_ops - function callbacks for USB audio accelerators + * @set_interface: called when an interface is initialized + * @set_pcm_intf: called when the pcm interface is set + * @set_pcm_connection: called when pcm is opened/closed + * + * Set of callbacks for some accelerated USB audio streaming hardware. + * + * TODO: make this USB host-controller specific, right now this only works for + * one USB controller in the system at a time, which is only realistic for + * self-contained systems like phones. + */ +struct snd_usb_audio_vendor_ops { + int (*set_interface)(struct usb_device *udev, + struct usb_host_interface *alts, + int iface, int alt); + int (*set_pcm_intf)(struct usb_interface *intf, int iface, int alt, + int direction, struct snd_usb_substream *subs); + int (*set_pcm_connection)(struct usb_device *udev, + enum snd_vendor_pcm_open_close onoff, + int direction); + ANDROID_KABI_RESERVE(1); + ANDROID_KABI_RESERVE(2); + ANDROID_KABI_RESERVE(3); + ANDROID_KABI_RESERVE(4); +}; #endif /* __USBAUDIO_H */ diff --git a/tools/testing/selftests/filesystems/fuse/OWNERS b/tools/testing/selftests/filesystems/fuse/OWNERS deleted file mode 100644 index 5eb371e1a5a3..000000000000 --- a/tools/testing/selftests/filesystems/fuse/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -# include OWNERS from the authoritative android-mainline branch -include kernel/common:android-mainline:/tools/testing/selftests/filesystems/incfs/OWNERS diff --git a/tools/testing/selftests/filesystems/fuse/fuse_test.c b/tools/testing/selftests/filesystems/fuse/fuse_test.c index a52a9db1014c..01730e57dc51 100644 --- a/tools/testing/selftests/filesystems/fuse/fuse_test.c +++ b/tools/testing/selftests/filesystems/fuse/fuse_test.c @@ -12,6 +12,7 @@ #include <string.h> #include <unistd.h> +#include <sys/file.h> #include <sys/inotify.h> #include <sys/mman.h> #include <sys/mount.h> @@ -1336,6 +1337,49 @@ out: return result; } +static int flock_test(const char *mount_dir) +{ + const char *file = "file"; + int result = TEST_FAILURE; + int src_fd = -1; + int fuse_dev = -1; + int fd = -1, fd2 = -1; + int backing_fd = -1; + + TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC), + src_fd != -1); + TESTEQUAL(mount_fuse(mount_dir, -1, src_fd, &fuse_dev), 0); + TEST(fd = s_open(s_path(s(mount_dir), s(file)), + O_CREAT | O_RDWR | O_CLOEXEC, 0777), + fd != -1); + TEST(fd2 = s_open(s_path(s(mount_dir), s(file)), + O_RDWR | O_CLOEXEC, 0777), + fd2 != -1); + TESTSYSCALL(flock(fd, LOCK_EX | LOCK_NB)); + TESTCONDERR((flock(fd2, LOCK_EX | LOCK_NB)) == -1); + TESTCOND(errno == EAGAIN); + TESTSYSCALL(flock(fd, LOCK_UN)); + TESTSYSCALL(flock(fd2, LOCK_EX | LOCK_NB)); + TEST(backing_fd = s_open(s_path(s(ft_src), s(file)), + O_RDONLY | O_CLOEXEC), + backing_fd != -1); + TESTCONDERR((flock(backing_fd, LOCK_EX | LOCK_NB)) == -1); + TESTCOND(errno == EAGAIN); + close(fd2); + fd2 = 0; + TESTSYSCALL(flock(backing_fd, LOCK_EX | LOCK_NB)); + + result = TEST_SUCCESS; +out: + close(fd); + close(fd2); + close(backing_fd); + umount(mount_dir); + close(fuse_dev); + close(src_fd); + return result; +} + static int readdir_perms_test(const char *mount_dir) { int result = TEST_FAILURE; @@ -1965,6 +2009,76 @@ static int bpf_test_lookup_postfilter(const char *mount_dir) return result; } +/** + * Test that a file made via create_and_open correctly gets the bpf assigned + * from the negative lookup + * bpf blocks file open, but also removes itself from children + * This test will fail if the 'remove' is unsuccessful + */ +static int bpf_test_create_and_remove_bpf(const char *mount_dir) +{ + const char *file = "file"; + + int result = TEST_FAILURE; + int src_fd = -1; + int bpf_fd = -1; + int fuse_dev = -1; + int fd = -1; + int fd2 = -1; + + TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC), + src_fd != -1); + TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_create_remove", &bpf_fd, + NULL, NULL), 0); + TESTEQUAL(mount_fuse_no_init(mount_dir, bpf_fd, src_fd, &fuse_dev), 0); + TEST(fd = s_creat(s_path(s(mount_dir), s(file)), 0777), + fd != -1); + TEST(fd2 = s_open(s_path(s(mount_dir), s(file)), O_RDONLY), + fd2 != -1); + + result = TEST_SUCCESS; +out: + close(fd2); + close(fd); + close(fuse_dev); + close(bpf_fd); + close(src_fd); + umount(mount_dir); + return result; +} + +static int bpf_test_mkdir_and_remove_bpf(const char *mount_dir) +{ + const char *dir = "dir"; + + int result = TEST_FAILURE; + int src_fd = -1; + int bpf_fd = -1; + int fuse_dev = -1; + int fd = -1; + int fd2 = -1; + + TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC), + src_fd != -1); + TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_mkdir_remove", &bpf_fd, + NULL, NULL), 0); + TESTEQUAL(mount_fuse_no_init(mount_dir, bpf_fd, src_fd, &fuse_dev), 0); + TEST(fd = s_mkdir(s_path(s(mount_dir), s(dir)), 0777), + fd != -1); + TEST(fd2 = s_open(s_path(s(mount_dir), s(dir)), O_RDONLY), + fd2 != -1); + + result = TEST_SUCCESS; +out: + close(fd2); + close(fd); + close(fuse_dev); + close(bpf_fd); + close(src_fd); + umount(mount_dir); + return result; +} + static void parse_range(const char *ranges, bool *run_test, size_t tests) { size_t i; @@ -2091,6 +2205,9 @@ int main(int argc, char *argv[]) MAKE_TEST(bpf_test_no_readdirplus_without_nodeid), MAKE_TEST(bpf_test_revalidate_handle_backing_fd), MAKE_TEST(bpf_test_lookup_postfilter), + MAKE_TEST(flock_test), + MAKE_TEST(bpf_test_create_and_remove_bpf), + MAKE_TEST(bpf_test_mkdir_and_remove_bpf), }; #undef MAKE_TEST diff --git a/tools/testing/selftests/filesystems/fuse/test_bpf.c b/tools/testing/selftests/filesystems/fuse/test_bpf.c index 032cb1178f9f..a014b915c059 100644 --- a/tools/testing/selftests/filesystems/fuse/test_bpf.c +++ b/tools/testing/selftests/filesystems/fuse/test_bpf.c @@ -505,3 +505,51 @@ int lookuppostfilter_test(struct fuse_bpf_args *fa) return FUSE_BPF_BACKING; } } + +SEC("test_create_remove") +int createremovebpf_test(struct fuse_bpf_args *fa) +{ + switch (fa->opcode) { + case FUSE_LOOKUP | FUSE_PREFILTER: { + return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER; + } + + case FUSE_LOOKUP | FUSE_POSTFILTER: { + struct fuse_entry_bpf_out *febo = fa->out_args[1].value; + + febo->bpf_action = FUSE_ACTION_REMOVE; + return 0; + } + + case FUSE_OPEN | FUSE_PREFILTER: { + return -EIO; + } + + default: + return FUSE_BPF_BACKING; + } +} + +SEC("test_mkdir_remove") +int mkdirremovebpf_test(struct fuse_bpf_args *fa) +{ + switch (fa->opcode) { + case FUSE_LOOKUP | FUSE_PREFILTER: { + return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER; + } + + case FUSE_LOOKUP | FUSE_POSTFILTER: { + struct fuse_entry_bpf_out *febo = fa->out_args[1].value; + + febo->bpf_action = FUSE_ACTION_REMOVE; + return 0; + } + + case FUSE_OPENDIR | FUSE_PREFILTER: { + return -EIO; + } + + default: + return FUSE_BPF_BACKING; + } +} diff --git a/tools/testing/selftests/filesystems/incfs/OWNERS b/tools/testing/selftests/filesystems/incfs/OWNERS deleted file mode 100644 index f26e11cd5740..000000000000 --- a/tools/testing/selftests/filesystems/incfs/OWNERS +++ /dev/null @@ -1 +0,0 @@ -file:/fs/incfs/OWNERS |